diff --git a/backend/beastiary/webapp-dist/index.html b/backend/beastiary/webapp-dist/index.html index e8bd709..e26a079 100644 --- a/backend/beastiary/webapp-dist/index.html +++ b/backend/beastiary/webapp-dist/index.html @@ -1,3 +1,3 @@ Beastiary
\ No newline at end of file + }
\ No newline at end of file diff --git a/backend/beastiary/webapp-dist/js/app.bcc06aa4.js b/backend/beastiary/webapp-dist/js/app.4a6cbf8f.js similarity index 84% rename from backend/beastiary/webapp-dist/js/app.bcc06aa4.js rename to backend/beastiary/webapp-dist/js/app.4a6cbf8f.js index 488fb32..1baf44a 100644 --- a/backend/beastiary/webapp-dist/js/app.bcc06aa4.js +++ b/backend/beastiary/webapp-dist/js/app.4a6cbf8f.js @@ -1,2 +1,2 @@ -!function(t){function webpackJsonpCallback(r){for(var a,i,u=r[0],l=r[1],_=r[2],d=0,h=[];d0&&t.notifications[0]}},i=Object(o.getStoreAccessors)("").read,u=i(c.dashboardMiniDrawer),l=i(c.dashboardShowDrawer),p=i(c.isLoggedIn),_=i(c.loginError),d=(i(c.token),i(c.firstNotification))},"5f03":function(t,r,a){"use strict";a.d(r,"a",(function(){return o})),a.d(r,"b",(function(){return c}));var o="".concat(""),c="Beastiary"},"5f86":function(t,r,a){"use strict";var o=a("2b0e"),c=a("8c4f");o.default.use(c.a),r.a=new c.a({mode:"history",base:"/",routes:[{path:"/",component:function component(){return a.e("start").then(a.bind(null,"cd28"))},children:[{path:"login",component:function component(){return Promise.all([a.e("login~main~main-dashboard"),a.e("login~main-dashboard"),a.e("login")]).then(a.bind(null,"a55b"))}},{path:"404",component:function component(){return a.e("reset-password").then(a.bind(null,"8cdb"))}},{path:"main",component:function component(){return Promise.all([a.e("login~main~main-dashboard"),a.e("main~main-dashboard"),a.e("main")]).then(a.bind(null,"6b61"))},children:[{path:"dashboard",component:function component(){return Promise.all([a.e("login~main~main-dashboard"),a.e("main~main-dashboard"),a.e("login~main-dashboard"),a.e("main-dashboard")]).then(a.bind(null,"f021"))}}]}]},{path:"/*",redirect:"/404"}]})},"635a":function(t,r,a){"use strict";a.d(r,"h",(function(){return c})),a.d(r,"c",(function(){return u})),a.d(r,"d",(function(){return l})),a.d(r,"f",(function(){return p})),a.d(r,"e",(function(){return _})),a.d(r,"g",(function(){return d})),a.d(r,"a",(function(){return h})),a.d(r,"b",(function(){return b}));var o=a("e8fb"),c={setToken:function setToken(t,r){t.token=r},setLoggedIn:function setLoggedIn(t,r){t.isLoggedIn=r},setLogInError:function setLogInError(t,r){t.logInError=r},setDashboardMiniDrawer:function setDashboardMiniDrawer(t,r){t.dashboardMiniDrawer=r},setDashboardShowDrawer:function setDashboardShowDrawer(t,r){t.dashboardShowDrawer=r},addNotification:function addNotification(t,r){t.notifications.push(r)},removeNotification:function removeNotification(t,r){t.notifications=t.notifications.filter((function(t){return t!==r}))}},i=Object(o.getStoreAccessors)("").commit,u=i(c.setDashboardMiniDrawer),l=i(c.setDashboardShowDrawer),p=i(c.setLoggedIn),_=i(c.setLogInError),d=i(c.setToken),h=i(c.addNotification),b=i(c.removeNotification)},"72e7":function(t,r,a){"use strict";a.d(r,"a",(function(){return c})),a.d(r,"d",(function(){return u})),a.d(r,"c",(function(){return l})),a.d(r,"b",(function(){return p}));var o=a("e8fb"),c={traces:function traces(t){return t.traces},loadingSamples:function loadingSamples(t){return t.loadingSamples},activeTraceIDs:function activeTraceIDs(t){return Object.values(t.traces).filter((function(t){return t.isActive})).map((function(t){return t.id}))}},i=Object(o.getStoreAccessors)("").read,u=i(c.traces),l=i(c.loadingSamples),p=i(c.activeTraceIDs)},"7f5d":function(t,r,a){"use strict";a.d(r,"a",(function(){return p}));var o=a("a34a"),c=a.n(o),i=a("5f03"),u=a("bc3a"),l=a.n(u);function asyncGeneratorStep(t,r,a,o,c,i,u){try{var l=t[i](u),p=l.value}catch(t){return void a(t)}l.done?r(p):Promise.resolve(p).then(o,c)}function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,c){var i=t.apply(r,a);function _next(t){asyncGeneratorStep(i,o,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(i,o,c,_next,_throw,"throw",t)}_next(void 0)}))}}function authHeaders(t){return{headers:{Authorization:"Bearer ".concat(t)},params:{}}}var p={getToken:function getToken(t){return _asyncToGenerator(c.a.mark((function _callee(){return c.a.wrap((function _callee$(r){for(;;)switch(r.prev=r.next){case 0:return r.abrupt("return",l.a.get("".concat(i.a,"/api/security/token"),authHeaders(t)));case 1:case"end":return r.stop()}}),_callee)})))()},getTraces:function getTraces(t){return _asyncToGenerator(c.a.mark((function _callee2(){return c.a.wrap((function _callee2$(r){for(;;)switch(r.prev=r.next){case 0:return r.abrupt("return",l.a.get("".concat(i.a,"/api/traces/"),authHeaders(t)));case 1:case"end":return r.stop()}}),_callee2)})))()},createTrace:function createTrace(t,r){return _asyncToGenerator(c.a.mark((function _callee3(){return c.a.wrap((function _callee3$(a){for(;;)switch(a.prev=a.next){case 0:return a.abrupt("return",l.a.post("".concat(i.a,"/api/traces/"),r,authHeaders(t)));case 1:case"end":return a.stop()}}),_callee3)})))()},getSamples:function getSamples(t,r){var a=arguments;return _asyncToGenerator(c.a.mark((function _callee4(){var o,u,p;return c.a.wrap((function _callee4$(c){for(;;)switch(c.prev=c.next){case 0:return o=a.length>2&&void 0!==a[2]?a[2]:0,u=a.length>3&&void 0!==a[3]?a[3]:100,(p=authHeaders(t)).params={trace_id:r.id,skip:o,limit:u},c.abrupt("return",l.a.get("".concat(i.a,"/api/samples/"),p));case 5:case"end":return c.stop()}}),_callee4)})))()},listDirectory:function listDirectory(t,r){return _asyncToGenerator(c.a.mark((function _callee5(){var a;return c.a.wrap((function _callee5$(o){for(;;)switch(o.prev=o.next){case 0:return(a=authHeaders(t)).params={path:r},o.abrupt("return",l.a.get("".concat(i.a,"/api/explorer/"),a));case 3:case"end":return o.stop()}}),_callee5)})))()}}},8041:function(t,r,a){"use strict";a.d(r,"h",(function(){return i})),a.d(r,"g",(function(){return l})),a.d(r,"f",(function(){return p})),a.d(r,"b",(function(){return _})),a.d(r,"e",(function(){return d})),a.d(r,"a",(function(){return h})),a.d(r,"c",(function(){return b})),a.d(r,"d",(function(){return m}));var o=a("e8fb"),c=a("2b0e");function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,c=function F(){};return{s:c,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,l=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();return u=t.done,t},e:function e(t){l=!0,i=t},f:function f(){try{u||null==a.return||a.return()}finally{if(l)throw i}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a0&&t.notifications[0]}},i=Object(o.getStoreAccessors)("").read,u=i(c.dashboardMiniDrawer),l=i(c.dashboardShowDrawer),p=i(c.isLoggedIn),_=i(c.loginError),d=(i(c.token),i(c.firstNotification))},"5f03":function(t,r,a){"use strict";a.d(r,"a",(function(){return o})),a.d(r,"b",(function(){return c}));var o="".concat(""),c="Beastiary"},"5f86":function(t,r,a){"use strict";var o=a("2b0e"),c=a("8c4f");o.default.use(c.a),r.a=new c.a({mode:"history",base:"/",routes:[{path:"/",component:function component(){return a.e("start").then(a.bind(null,"cd28"))},children:[{path:"login",component:function component(){return Promise.all([a.e("login~main~main-dashboard"),a.e("login~main-dashboard"),a.e("login")]).then(a.bind(null,"a55b"))}},{path:"404",component:function component(){return a.e("reset-password").then(a.bind(null,"8cdb"))}},{path:"main",component:function component(){return Promise.all([a.e("login~main~main-dashboard"),a.e("main~main-dashboard"),a.e("main")]).then(a.bind(null,"6b61"))},children:[{path:"dashboard",component:function component(){return Promise.all([a.e("login~main~main-dashboard"),a.e("main~main-dashboard"),a.e("login~main-dashboard"),a.e("main-dashboard")]).then(a.bind(null,"f021"))}}]}]},{path:"/*",redirect:"/404"}]})},"635a":function(t,r,a){"use strict";a.d(r,"h",(function(){return c})),a.d(r,"c",(function(){return u})),a.d(r,"d",(function(){return l})),a.d(r,"f",(function(){return p})),a.d(r,"e",(function(){return _})),a.d(r,"g",(function(){return d})),a.d(r,"a",(function(){return h})),a.d(r,"b",(function(){return b}));var o=a("e8fb"),c={setToken:function setToken(t,r){t.token=r},setLoggedIn:function setLoggedIn(t,r){t.isLoggedIn=r},setLogInError:function setLogInError(t,r){t.logInError=r},setDashboardMiniDrawer:function setDashboardMiniDrawer(t,r){t.dashboardMiniDrawer=r},setDashboardShowDrawer:function setDashboardShowDrawer(t,r){t.dashboardShowDrawer=r},addNotification:function addNotification(t,r){t.notifications.push(r)},removeNotification:function removeNotification(t,r){t.notifications=t.notifications.filter((function(t){return t!==r}))}},i=Object(o.getStoreAccessors)("").commit,u=i(c.setDashboardMiniDrawer),l=i(c.setDashboardShowDrawer),p=i(c.setLoggedIn),_=i(c.setLogInError),d=i(c.setToken),h=i(c.addNotification),b=i(c.removeNotification)},"72e7":function(t,r,a){"use strict";a.d(r,"a",(function(){return c})),a.d(r,"d",(function(){return u})),a.d(r,"c",(function(){return l})),a.d(r,"b",(function(){return p}));var o=a("e8fb"),c={traces:function traces(t){return t.traces},loadingSamples:function loadingSamples(t){return t.loadingSamples},activeTraceIDs:function activeTraceIDs(t){return Object.values(t.traces).filter((function(t){return t.isActive})).map((function(t){return t.id}))}},i=Object(o.getStoreAccessors)("").read,u=i(c.traces),l=i(c.loadingSamples),p=i(c.activeTraceIDs)},"7f5d":function(t,r,a){"use strict";a.d(r,"a",(function(){return p}));var o=a("a34a"),c=a.n(o),i=a("5f03"),u=a("bc3a"),l=a.n(u);function asyncGeneratorStep(t,r,a,o,c,i,u){try{var l=t[i](u),p=l.value}catch(t){return void a(t)}l.done?r(p):Promise.resolve(p).then(o,c)}function _asyncToGenerator(t){return function(){var r=this,a=arguments;return new Promise((function(o,c){var i=t.apply(r,a);function _next(t){asyncGeneratorStep(i,o,c,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(i,o,c,_next,_throw,"throw",t)}_next(void 0)}))}}function authHeaders(t){return{headers:{Authorization:"Bearer ".concat(t)},params:{}}}var p={getToken:function getToken(t){return _asyncToGenerator(c.a.mark((function _callee(){return c.a.wrap((function _callee$(r){for(;;)switch(r.prev=r.next){case 0:return r.abrupt("return",l.a.get("".concat(i.a,"/api/security/token"),authHeaders(t)));case 1:case"end":return r.stop()}}),_callee)})))()},getTraces:function getTraces(t){return _asyncToGenerator(c.a.mark((function _callee2(){return c.a.wrap((function _callee2$(r){for(;;)switch(r.prev=r.next){case 0:return r.abrupt("return",l.a.get("".concat(i.a,"/api/traces/"),authHeaders(t)));case 1:case"end":return r.stop()}}),_callee2)})))()},createTrace:function createTrace(t,r){return _asyncToGenerator(c.a.mark((function _callee3(){return c.a.wrap((function _callee3$(a){for(;;)switch(a.prev=a.next){case 0:return a.abrupt("return",l.a.post("".concat(i.a,"/api/traces/"),r,authHeaders(t)));case 1:case"end":return a.stop()}}),_callee3)})))()},getSamples:function getSamples(t,r){var a=arguments;return _asyncToGenerator(c.a.mark((function _callee4(){var o,u,p;return c.a.wrap((function _callee4$(c){for(;;)switch(c.prev=c.next){case 0:return o=a.length>2&&void 0!==a[2]?a[2]:0,u=a.length>3&&void 0!==a[3]?a[3]:100,(p=authHeaders(t)).params={trace_id:r.id,skip:o,limit:u},c.abrupt("return",l.a.get("".concat(i.a,"/api/samples/"),p));case 5:case"end":return c.stop()}}),_callee4)})))()},listDirectory:function listDirectory(t,r){return _asyncToGenerator(c.a.mark((function _callee5(){var a;return c.a.wrap((function _callee5$(o){for(;;)switch(o.prev=o.next){case 0:return(a=authHeaders(t)).params={path:r},o.abrupt("return",l.a.get("".concat(i.a,"/api/explorer/"),a));case 3:case"end":return o.stop()}}),_callee5)})))()}}},8041:function(t,r,a){"use strict";a.d(r,"h",(function(){return i})),a.d(r,"g",(function(){return l})),a.d(r,"f",(function(){return p})),a.d(r,"b",(function(){return _})),a.d(r,"e",(function(){return d})),a.d(r,"a",(function(){return h})),a.d(r,"c",(function(){return b})),a.d(r,"d",(function(){return v}));var o=a("e8fb"),c=a("2b0e");function _createForOfIteratorHelper(t,r){var a="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=function _unsupportedIterableToArray(t,r){if(!t)return;if("string"==typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);"Object"===a&&t.constructor&&(a=t.constructor.name);if("Map"===a||"Set"===a)return Array.from(t);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return _arrayLikeToArray(t,r)}(t))||r&&t&&"number"==typeof t.length){a&&(t=a);var o=0,c=function F(){};return{s:c,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:c}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,l=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();return u=t.done,t},e:function e(t){l=!0,i=t},f:function f(){try{u||null==a.return||a.return()}finally{if(l)throw i}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a = {\n modules: {\n main: mainModule,\n data: dataModule,\n },\n};\n\nexport const store = new Vuex.Store(storeOptions);\n\nexport default store;\n","import { getStoreAccessors } from 'typesafe-vuex';\nimport { State } from '../state';\nimport { MainState } from './state';\n\nexport const getters = {\n loginError: (state: MainState) => state.logInError,\n dashboardShowDrawer: (state: MainState) => state.dashboardShowDrawer,\n dashboardMiniDrawer: (state: MainState) => state.dashboardMiniDrawer,\n token: (state: MainState) => state.token,\n isLoggedIn: (state: MainState) => state.isLoggedIn,\n firstNotification: (state: MainState) => state.notifications.length > 0 && state.notifications[0],\n};\n\nconst {read} = getStoreAccessors('');\n\nexport const readDashboardMiniDrawer = read(getters.dashboardMiniDrawer);\nexport const readDashboardShowDrawer = read(getters.dashboardShowDrawer);\nexport const readIsLoggedIn = read(getters.isLoggedIn);\nexport const readLoginError = read(getters.loginError);\nexport const readToken = read(getters.token);\nexport const readFirstNotification = read(getters.firstNotification);\n","const env = process.env.VUE_APP_ENV;\n\nlet envApiUrl = '';\n\nif (env === 'production') {\n envApiUrl = `${process.env.VUE_APP_DOMAIN_PROD}`;\n} else if (env === 'staging') {\n envApiUrl = `${process.env.VUE_APP_DOMAIN_STAG}`;\n} else {\n envApiUrl = `${process.env.VUE_APP_DOMAIN_DEV}`;\n}\n\nexport const apiUrl = envApiUrl;\nexport const appName = process.env.VUE_APP_NAME;\n","import Vue from 'vue';\nimport Router from 'vue-router';\n\nimport RouterComponent from './components/RouterComponent.vue';\n\nVue.use(Router);\n\nexport default new Router({\n mode: 'history',\n base: process.env.BASE_URL,\n routes: [\n {\n path: '/',\n component: () => import(/* webpackChunkName: \"start\" */ './views/main/Start.vue'),\n children: [\n {\n path: 'login',\n // route level code-splitting\n // this generates a separate chunk (about.[hash].js) for this route\n // which is lazy-loaded when the route is visited.\n component: () => import(/* webpackChunkName: \"login\" */ './views/Login.vue'),\n },\n {\n path: '404',\n component: () => import(/* webpackChunkName: \"reset-password\" */ './views/404.vue'),\n },\n {\n path: 'main',\n component: () => import(/* webpackChunkName: \"main\" */ './views/main/Main.vue'),\n children: [\n {\n path: 'dashboard',\n component: () => import(/* webpackChunkName: \"main-dashboard\" */ './views/main/Dashboard.vue'),\n },\n ],\n },\n ],\n },\n {\n path: '/*', redirect: '/404',\n },\n ],\n});\n","import { getStoreAccessors } from 'typesafe-vuex';\nimport { State } from '../state';\nimport { AppNotification, MainState } from './state';\n\n\nexport const mutations = {\n setToken(state: MainState, payload: string) {\n state.token = payload;\n },\n setLoggedIn(state: MainState, payload: boolean) {\n state.isLoggedIn = payload;\n },\n setLogInError(state: MainState, payload: boolean) {\n state.logInError = payload;\n },\n setDashboardMiniDrawer(state: MainState, payload: boolean) {\n state.dashboardMiniDrawer = payload;\n },\n setDashboardShowDrawer(state: MainState, payload: boolean) {\n state.dashboardShowDrawer = payload;\n },\n addNotification(state: MainState, payload: AppNotification) {\n state.notifications.push(payload);\n },\n removeNotification(state: MainState, payload: AppNotification) {\n state.notifications = state.notifications.filter((notification) => notification !== payload);\n },\n};\n\nconst {commit} = getStoreAccessors('');\n\nexport const commitSetDashboardMiniDrawer = commit(mutations.setDashboardMiniDrawer);\nexport const commitSetDashboardShowDrawer = commit(mutations.setDashboardShowDrawer);\nexport const commitSetLoggedIn = commit(mutations.setLoggedIn);\nexport const commitSetLogInError = commit(mutations.setLogInError);\nexport const commitSetToken = commit(mutations.setToken);\nexport const commitAddNotification = commit(mutations.addNotification);\nexport const commitRemoveNotification = commit(mutations.removeNotification);\n","import { getStoreAccessors } from 'typesafe-vuex';\nimport { State } from '../state';\nimport { DataState } from './state';\n\nexport const getters = {\n traces: (state: DataState) => state.traces,\n loadingSamples: (state: DataState) => state.loadingSamples,\n activeTraceIDs: (state: DataState) => Object.values(state.traces).filter((t) => t.isActive).map((t) => t.id),\n};\nconst {read} = getStoreAccessors('');\n\nexport const readTraces = read(getters.traces);\nexport const readLoadingSamples = read(getters.loadingSamples);\nexport const readActiveTraceIDs = read(getters.activeTraceIDs);\n\n","import { apiUrl } from '@/env';\nimport { InSample, Trace, TraceCreate } from '@/interfaces';\nimport axios from 'axios';\nimport { config } from 'vue/types/umd';\n\nfunction authHeaders(token: string) {\n return {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n params: {},\n };\n}\n\nexport const api = {\n async getToken(token: string) {\n return axios.get(`${apiUrl}/api/security/token`, authHeaders(token));\n },\n async getTraces(token: string) {\n return axios.get(`${apiUrl}/api/traces/`, authHeaders(token));\n },\n async createTrace(token: string, data: TraceCreate) {\n return axios.post(`${apiUrl}/api/traces/`, data, authHeaders(token));\n },\n async getSamples(token: string, trace: Trace, skip: number = 0, limit: number = 100) {\n const options = authHeaders(token);\n options.params = {trace_id: trace.id, skip, limit};\n return axios.get(`${apiUrl}/api/samples/`, options);\n },\n async listDirectory(token: string, path: string) {\n const options = authHeaders(token);\n options.params = {path};\n return axios.get(`${apiUrl}/api/explorer/`, options);\n },\n};\n","import { Data, InSample, SetSample, Trace } from '@/interfaces';\nimport { getStoreAccessors } from 'typesafe-vuex';\nimport Vue from 'vue';\nimport { State } from '../state';\nimport { DataState } from './state';\n\nfunction formatData(samples: InSample[]) {\n const parameters: { [key: string]: Data[] } = {};\n for (let index = 0; index < samples.length; index++) {\n const row = samples[index].data;\n const state = samples[index].state;\n for (const param in row) {\n if (param) {\n if (index === 0) {\n parameters[param] = [];\n }\n parameters[param].push({ state, value: row[param] });\n }\n }\n\n }\n\n return parameters;\n}\n\nfunction setTraceDefaults(trace: Trace) {\n trace.parameters = {};\n trace.activeParams = [];\n trace.isActive = false;\n trace.burnIn = 10;\n trace.isLoading = false;\n}\n\nexport const mutations = {\n setTraces(state: DataState, payload: Trace[]) {\n for (const trace of payload) {\n setTraceDefaults(trace);\n }\n const traces = payload.reduce((obj, trace) => {\n obj[trace.id] = trace;\n return obj;\n }, {});\n state.traces = traces;\n },\n setTrace(state: DataState, payload: Trace) {\n setTraceDefaults(payload);\n // https://vuex.vuejs.org/guide/mutations.html#mutations-follow-vue-s-reactivity-rules\n Vue.set(state.traces, payload.id, payload);\n },\n setActiveTrace(state: DataState, payload: Trace) {\n state.traces[payload.id].isActive = true;\n\n },\n setActiveParams(state: DataState, payload: {traceID: number, params: string[]}) {\n state.traces[payload.traceID].activeParams = payload.params;\n },\n setBurnIn(state: DataState, payload: {traceID: number, burnIn: number}) {\n state.traces[payload.traceID].burnIn = payload.burnIn;\n },\n setLoadingSamples(state: DataState, payload: {traceID: number, loading: boolean}) {\n state.loadingSamples = payload.loading;\n state.traces[payload.traceID].isLoading = payload.loading;\n },\n setSetSamples(state: DataState, payload: {traceID: number, data: InSample[]}) {\n const data = formatData(payload.data);\n const trace = state.traces[payload.traceID];\n if (Object.keys(trace.parameters).length === 0) {\n trace.parameters = data;\n } else {\n for (const paramName in data) {\n if (paramName) {\n trace.parameters[paramName] = trace.parameters[paramName].concat(\n data[paramName], // ).sort((a, b) => a.state - b.state,\n );\n }\n }\n }\n },\n};\n\nconst {commit} = getStoreAccessors('');\n\nexport const commitSetTraces = commit(mutations.setTraces);\nexport const commitSetTrace = commit(mutations.setTrace);\nexport const commitSetActiveTrace = commit(mutations.setActiveTrace);\nexport const commitSetSamples = commit(mutations.setSetSamples);\nexport const commitSetActiveParams = commit(mutations.setActiveParams);\nexport const commitSetBurnIn = commit(mutations.setBurnIn);\nexport const commitSetLoadingSamples = commit(mutations.setLoadingSamples);\n\n","import { api } from '@/api';\nimport { Trace, TraceCreate } from '@/interfaces';\nimport { AxiosResponse } from 'axios';\nimport { getStoreAccessors } from 'typesafe-vuex';\nimport { ActionContext } from 'vuex';\nimport { dispatchCheckApiError } from '../main/actions';\nimport { commitAddNotification, commitRemoveNotification } from '../main/mutations';\nimport { State } from '../state';\nimport {\n commitSetActiveParams,\n commitSetActiveTrace,\n commitSetBurnIn,\n commitSetLoadingSamples,\n commitSetSamples,\n commitSetTrace,\n commitSetTraces,\n} from './mutations';\nimport { DataState } from './state';\n\ntype MainContext = ActionContext;\n\nexport const actions = {\n async actionGetTraces(context: MainContext) {\n let response: AxiosResponse | null = null;\n try {\n response = await api.getTraces(context.rootState.main.token);\n } catch (error) {\n await dispatchCheckApiError(context, error);\n }\n if (response) {\n commitSetTraces(context, response.data);\n }\n },\n async actionCreateTrace(context: MainContext, payload: TraceCreate) {\n const loadingNotification = { content: 'saving', showProgress: true };\n commitAddNotification(context, loadingNotification);\n let response: AxiosResponse | null = null;\n try {\n response = await api.createTrace(context.rootState.main.token, payload);\n } catch (error) {\n await dispatchCheckApiError(context, error);\n }\n commitRemoveNotification(context, loadingNotification);\n if (response != null) {\n commitSetTrace(context, response.data);\n commitAddNotification(context, { content: 'Trace successfully created', color: 'success' });\n }\n },\n async actionSetActiveTrace(context: MainContext, payload: Trace) {\n commitSetActiveTrace(context, payload);\n },\n async actionSetActiveParams(context: MainContext, payload: {traceID: number, params: string[]}) {\n commitSetActiveParams(context, payload);\n },\n async actionGetSamples(\n context: MainContext,\n payload: {trace: Trace,\n skip?: number,\n limit?: number,\n all?: boolean}) {\n const trace = payload.trace;\n const skip = payload.skip ? payload.skip : 0;\n const limit = payload.limit ? payload.limit : 100;\n const all = payload.all ? payload.all : false;\n const loadingNotification = { content: 'Loading samples...', showProgress: true };\n if (skip === 0) {\n commitAddNotification(context, loadingNotification);\n }\n let response: AxiosResponse | null = null;\n try {\n response = await api.getSamples(context.rootState.main.token, trace, skip, limit);\n } catch (error) {\n await dispatchCheckApiError(context, error);\n }\n if (response != null) {\n commitSetSamples(context, {traceID: trace.id, data: response.data});\n if (all === true && response.data.length === limit) {\n // if you get back what you request go again\n await dispatchGetSamples(context, {trace, skip: skip + limit, limit, all: true});\n }}\n commitRemoveNotification(context, loadingNotification);\n },\n async actionSetBurnIn(context: MainContext, payload: {traceID: number, burnIn: number}) {\n commitSetBurnIn(context, payload);\n },\n async actionSetLoadingSamples(context: MainContext, payload: {traceID: number, loading: boolean}) {\n commitSetLoadingSamples(context, payload);\n },\n};\n\nconst { dispatch } = getStoreAccessors('');\n\nexport const dispatchGetTraces = dispatch(actions.actionGetTraces);\nexport const dispatchCreateTrace = dispatch(actions.actionCreateTrace);\nexport const dispatchSetActiveTrace = dispatch(actions.actionSetActiveTrace);\nexport const dispatchGetSamples = dispatch(actions.actionGetSamples);\nexport const dispatchSetActiveParams = dispatch(actions.actionSetActiveParams);\nexport const dispatchSetBurnIn = dispatch(actions.actionSetBurnIn);\nexport const dispatchSetLoadingSamples = dispatch(actions.actionSetLoadingSamples);\n\n\n","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { dispatchRemoveNotification } from '@/store/main/actions';\nimport { readFirstNotification } from '@/store/main/getters';\nimport { commitRemoveNotification } from '@/store/main/mutations';\nimport { AppNotification } from '@/store/main/state';\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\n\n@Component\nexport default class NotificationsManager extends Vue {\n public show: boolean = false;\n public text: string = '';\n public showProgress: boolean = false;\n public notFound: boolean = false;\n public currentNotification: AppNotification | false = false;\n\n public async hide() {\n this.show = false;\n await new Promise((resolve, reject) => setTimeout(() => resolve(), 500));\n }\n\n public async close() {\n await this.hide();\n await this.removeCurrentNotification();\n }\n\n public async removeCurrentNotification() {\n if (this.currentNotification) {\n commitRemoveNotification(this.$store, this.currentNotification);\n }\n }\n\n public get firstNotification() {\n return readFirstNotification(this.$store);\n }\n\n public async setNotification(notification: AppNotification | false) {\n if (this.show) {\n await this.hide();\n }\n if (notification) {\n this.currentNotification = notification;\n this.showProgress = notification.showProgress || false;\n this.notFound = notification.notFound || false;\n this.show = true;\n } else {\n this.currentNotification = false;\n }\n }\n\n @Watch('firstNotification')\n public async onNotificationChange(\n newNotification: AppNotification | false,\n oldNotification: AppNotification | false,\n ) {\n if (newNotification !== this.currentNotification) {\n await this.setNotification(newNotification);\n if (newNotification) {\n dispatchRemoveNotification(this.$store, { notification: newNotification, timeout: 10000 });\n }\n }\n }\n\n public get currentNotificationContent() {\n return this.currentNotification && this.currentNotification.content || '';\n }\n\n public get currentNotificationColor() {\n return this.currentNotification && this.currentNotification.color || 'info';\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationsManager.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationsManager.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationsManager.vue?vue&type=template&id=2b4f56c1&\"\nimport script from \"./NotificationsManager.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationsManager.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular,VSnackbar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-snackbar',{attrs:{\"color\":_vm.currentNotificationColor},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('div',{staticClass:\"d-flex justify-space-between align-center \"},[_c('v-progress-circular',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showProgress),expression:\"showProgress\"}],staticClass:\"ma-1\",attrs:{\"indeterminate\":\"\"}}),_c('v-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.notFound),expression:\"notFound\"}],staticClass:\"ma-1\",attrs:{\"large\":\"\"}},[_vm._v(\"mdi-cancel\")]),_vm._v(\" \"+_vm._s(_vm.currentNotificationContent)+\" \"),_c('v-btn',{attrs:{\"text\":\"\"},nativeOn:{\"click\":function($event){return _vm.close.apply(null, arguments)}}},[_vm._v(\"Close\")])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport NotificationsManager from '@/components/NotificationsManager.vue';\nimport { dispatchCheckLoggedIn } from '@/store/main/actions';\nimport { readIsLoggedIn } from '@/store/main/getters';\nimport { Component, Vue } from 'vue-property-decorator';\n\n@Component({\n components: {\n NotificationsManager,\n },\n})\nexport default class App extends Vue {\n\n get loggedIn() {\n return readIsLoggedIn(this.$store);\n }\n\n public async created() {\n await dispatchCheckLoggedIn(this.$store);\n }\n}\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=12c528ee&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VContent } from 'vuetify/lib/components/VContent';\nimport { VFlex } from 'vuetify/lib/components/VGrid';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VApp,VContainer,VContent,VFlex,VProgressCircular,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('v-app',[(_vm.loggedIn===null)?_c('v-content',[_c('v-container',{attrs:{\"fill-height\":\"\"}},[_c('v-row',{attrs:{\"align-center\":\"\",\"justify-center\":\"\"}},[_c('v-flex',[_c('div',{staticClass:\"text-xs-center\"},[_c('div',{staticClass:\"headline my-5\"},[_vm._v(\"Loading...\")]),_c('v-progress-circular',{attrs:{\"size\":\"100\",\"indeterminate\":\"\",\"color\":\"primary\"}})],1)])],1)],1)],1):_c('router-view'),_c('NotificationsManager')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Component from 'vue-class-component';\n\n// Register the router hooks with their names\nComponent.registerHooks([\n 'beforeRouteEnter',\n 'beforeRouteLeave',\n 'beforeRouteUpdate', // for vue-router 2.2+\n]);\n","import VeeValidate from 'vee-validate';\nimport Vue from 'vue';\n\nVue.use(VeeValidate);\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\nimport colors from 'vuetify/lib/util/colors';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: {\n themes: {\n light: {\n primary: colors.teal.lighten1,\n },\n dark: {\n primary: colors.teal.lighten1,\n },\n },\n },\n});\n","import store from '@/store';\nimport '@babel/polyfill';\nimport Vue from 'vue';\nimport VueWorker from 'vue-worker';\nimport App from './App.vue';\n// Import Component hooks before component definitions\nimport './component-hooks';\nimport './plugins/vee-validate';\nimport vuetify from './plugins/vuetify';\nimport router from './router';\n\nVue.config.productionTip = false;\n\nVue.use(VueWorker);\n\nnew Vue({\n router,\n store,\n vuetify,\n render: (h) => h(App),\n}).$mount('#app');\n","import { api } from '@/api';\nimport router from '@/router';\nimport { AxiosError } from 'axios';\nimport { getStoreAccessors } from 'typesafe-vuex';\nimport { ActionContext } from 'vuex';\nimport { State } from '../state';\nimport {\n commitAddNotification,\n commitRemoveNotification,\n commitSetLoggedIn,\n commitSetLogInError,\n commitSetToken,\n} from './mutations';\nimport { AppNotification, MainState } from './state';\n\ntype MainContext = ActionContext;\n\nexport const actions = {\n async actionCheckToken(context: MainContext, payload: { token: string }) {\n try {\n const response = await api.getToken(payload.token);\n const token = response.data.token;\n if (token) {\n commitSetToken(context, token);\n commitSetLoggedIn(context, true);\n commitSetLogInError(context, false);\n await dispatchRouteLoggedIn(context);\n commitAddNotification(context, { content: 'Logged in', color: 'success' });\n } else {\n await dispatchLogOut(context);\n }\n } catch (err) {\n commitSetLogInError(context, true);\n await dispatchLogOut(context);\n }\n },\n async actionCheckLoggedIn(context: MainContext) {\n if (!context.state.isLoggedIn) {\n const token = context.state.token;\n if (token) {\n try {\n commitSetLoggedIn(context, true);\n } catch (error) {\n await dispatchRemoveLogIn(context);\n }\n } else {\n await dispatchRemoveLogIn(context);\n }\n }\n },\n async actionRemoveLogIn(context: MainContext) {\n commitSetToken(context, '');\n commitSetLoggedIn(context, false);\n },\n async actionLogOut(context: MainContext) {\n await dispatchRemoveLogIn(context);\n await dispatchRouteLogOut(context);\n },\n async actionUserLogOut(context: MainContext) {\n await dispatchLogOut(context);\n commitAddNotification(context, { content: 'Logged out', color: 'success' });\n },\n actionRouteLogOut(context: MainContext) {\n if (router.currentRoute.path !== '/login') {\n router.push('/login');\n }\n },\n async actionCheckApiError(context: MainContext, payload: AxiosError) {\n if (payload.response!.status === 401) {\n await dispatchLogOut(context);\n }\n if (payload.response!.status === 404) {\n commitAddNotification(context, { content: payload.response!.data.detail, color: 'error', notFound: true});\n }\n if (payload.response!.status === 500) {\n commitAddNotification(context, { content: payload.response!.data.detail, color: 'error', notFound: true});\n }\n },\n actionRouteLoggedIn(context: MainContext) {\n if (router.currentRoute.path === '/login' || router.currentRoute.path === '/') {\n router.push('/main/dashboard');\n }\n },\n async removeNotification(context: MainContext, payload: { notification: AppNotification, timeout: number }) {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n commitRemoveNotification(context, payload.notification);\n resolve(true);\n }, payload.timeout);\n });\n },\n};\n\nconst { dispatch } = getStoreAccessors('');\n\nexport const dispatchCheckApiError = dispatch(actions.actionCheckApiError);\nexport const dispatchCheckLoggedIn = dispatch(actions.actionCheckLoggedIn);\nexport const dispatchCheckToken = dispatch(actions.actionCheckToken);\nexport const dispatchLogOut = dispatch(actions.actionLogOut);\nexport const dispatchUserLogOut = dispatch(actions.actionUserLogOut);\nexport const dispatchRemoveLogIn = dispatch(actions.actionRemoveLogIn);\nexport const dispatchRouteLoggedIn = dispatch(actions.actionRouteLoggedIn);\nexport const dispatchRouteLogOut = dispatch(actions.actionRouteLogOut);\nexport const dispatchRemoveNotification = dispatch(actions.removeNotification);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/backend/beastiary/webapp-dist/js/app.bcc06aa4.js.map b/backend/beastiary/webapp-dist/js/app.bcc06aa4.js.map deleted file mode 100644 index 1b0863e..0000000 --- a/backend/beastiary/webapp-dist/js/app.bcc06aa4.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/store/data/index.ts","webpack:///./src/store/main/index.ts","webpack:///./src/store/index.ts","webpack:///./src/store/main/getters.ts","webpack:///./src/env.ts","webpack:///./src/router.ts","webpack:///./src/store/main/mutations.ts","webpack:///./src/store/data/getters.ts","webpack:///./src/api.ts","webpack:///./src/store/data/mutations.ts","webpack:///./src/store/data/actions.ts","webpack:///./src/components/NotificationsManager.vue","webpack:///./src/components/NotificationsManager.vue?820d","webpack:///./src/components/NotificationsManager.vue?c2a9","webpack:///./src/components/NotificationsManager.vue?8927","webpack:///./src/App.vue","webpack:///./src/App.vue?640d","webpack:///./src/App.vue?b1ee","webpack:///./src/App.vue?fcdd","webpack:///./src/component-hooks.ts","webpack:///./src/plugins/vee-validate.ts","webpack:///./src/plugins/vuetify.ts","webpack:///./src/main.ts","webpack:///./src/utils.ts","webpack:///./src/store/main/actions.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","exports","module","l","e","requireEnsure","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","jsonpScriptSrc","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","head","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","getDefault","getModuleExports","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","dataModule","state","traces","loadingSamples","mutations","actions","getters","mainModule","isLoggedIn","token","logInError","dashboardMiniDrawer","dashboardShowDrawer","notifications","use","storeOptions","main","store","Store","loginError","firstNotification","read","readDashboardMiniDrawer","readDashboardShowDrawer","readIsLoggedIn","readLoginError","readFirstNotification","apiUrl","appName","base","routes","path","component","children","redirect","setToken","payload","setLoggedIn","setLogInError","setDashboardMiniDrawer","setDashboardShowDrawer","addNotification","removeNotification","filter","notification","commit","commitSetDashboardMiniDrawer","commitSetDashboardShowDrawer","commitSetLoggedIn","commitSetLogInError","commitSetToken","commitAddNotification","commitRemoveNotification","activeTraceIDs","values","isActive","map","id","readTraces","readLoadingSamples","readActiveTraceIDs","authHeaders","headers","Authorization","params","api","getToken","a","getTraces","createTrace","post","getSamples","trace","skip","limit","options","trace_id","listDirectory","setTraceDefaults","parameters","activeParams","burnIn","isLoading","setTraces","reduce","obj","setTrace","set","setActiveTrace","setActiveParams","traceID","setBurnIn","setLoadingSamples","loading","setSetSamples","formatData","samples","index","row","param","keys","paramName","concat","commitSetTraces","commitSetTrace","commitSetActiveTrace","commitSetSamples","commitSetActiveParams","commitSetBurnIn","commitSetLoadingSamples","actionGetTraces","context","response","rootState","actionCreateTrace","loadingNotification","content","showProgress","color","actionSetActiveTrace","actionSetActiveParams","actionGetSamples","dispatchGetSamples","actionSetBurnIn","actionSetLoadingSamples","dispatch","dispatchGetTraces","dispatchCreateTrace","dispatchSetActiveTrace","dispatchSetActiveParams","dispatchSetBurnIn","dispatchSetLoadingSamples","show","text","notFound","currentNotification","this","hide","removeCurrentNotification","$store","newNotification","oldNotification","setNotification","_vm","_h","$createElement","_c","_self","attrs","currentNotificationColor","model","callback","$$v","expression","staticClass","directives","rawName","_v","_s","currentNotificationContent","nativeOn","$event","close","arguments","VBtn","VIcon","VProgressCircular","VSnackbar","components","NotificationsManager","loggedIn","VApp","VContainer","VContent","VFlex","VRow","registerHooks","theme","themes","light","primary","colors","teal","lighten1","dark","config","productionTip","router","vuetify","render","h","$mount","getLocalToken","localStorage","getItem","saveLocalToken","setItem","removeLocalToken","removeItem","actionCheckToken","dispatchRouteLoggedIn","dispatchLogOut","actionCheckLoggedIn","localToken","dispatchRemoveLogIn","actionRemoveLogIn","actionLogOut","dispatchRouteLogOut","actionUserLogOut","actionRouteLogOut","currentRoute","actionCheckApiError","status","detail","actionRouteLoggedIn","dispatchCheckApiError","dispatchCheckLoggedIn","dispatchCheckToken","dispatchUserLogOut","dispatchRemoveNotification"],"mappings":"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","file":"js/app.bcc06aa4.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"login~main~main-dashboard\":\"login~main~main-dashboard\",\"login~main-dashboard\":\"login~main-dashboard\",\"login\":\"login\",\"main~main-dashboard\":\"main~main-dashboard\",\"main-dashboard\":\"main-dashboard\",\"main\":\"main\",\"reset-password\":\"reset-password\",\"start\":\"start\"}[chunkId]||chunkId) + \".\" + {\"login~main~main-dashboard\":\"3a1f6d10\",\"login~main-dashboard\":\"3ae3e551\",\"login\":\"baabd1f0\",\"main~main-dashboard\":\"80ebc61e\",\"main-dashboard\":\"4fa637e1\",\"main\":\"5136f4ee\",\"reset-password\":\"fe1c5ee2\",\"start\":\"4abc32f1\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"login~main~main-dashboard\":1,\"login~main-dashboard\":1,\"login\":1,\"main~main-dashboard\":1,\"main-dashboard\":1,\"main\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"login~main~main-dashboard\":\"login~main~main-dashboard\",\"login~main-dashboard\":\"login~main-dashboard\",\"login\":\"login\",\"main~main-dashboard\":\"main~main-dashboard\",\"main-dashboard\":\"main-dashboard\",\"main\":\"main\",\"reset-password\":\"reset-password\",\"start\":\"start\"}[chunkId]||chunkId) + \".\" + {\"login~main~main-dashboard\":\"87cb79bc\",\"login~main-dashboard\":\"49552835\",\"login\":\"4b7f13da\",\"main~main-dashboard\":\"27813474\",\"main-dashboard\":\"21941226\",\"main\":\"38cd41ea\",\"reset-password\":\"31d6cfe0\",\"start\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { actions } from './actions';\nimport { getters } from './getters';\nimport { mutations } from './mutations';\nimport { DataState } from './state';\n\nconst defaultState: DataState = {\n traces: {},\n loadingSamples: false,\n};\n\nexport const dataModule = {\n state: defaultState,\n mutations,\n actions,\n getters,\n};\n","import { actions } from './actions';\nimport { getters } from './getters';\nimport { mutations } from './mutations';\nimport { MainState } from './state';\n\nconst defaultState: MainState = {\n isLoggedIn: null,\n token: '',\n logInError: false,\n dashboardMiniDrawer: false,\n dashboardShowDrawer: false,\n notifications: [],\n};\n\nexport const mainModule = {\n state: defaultState,\n mutations,\n actions,\n getters,\n};\n","import Vue from 'vue';\nimport Vuex, { StoreOptions } from 'vuex';\n\nimport { dataModule } from './data';\nimport { mainModule } from './main';\nimport { State } from './state';\n\nVue.use(Vuex);\n\nconst storeOptions: StoreOptions = {\n modules: {\n main: mainModule,\n data: dataModule,\n },\n};\n\nexport const store = new Vuex.Store(storeOptions);\n\nexport default store;\n","import { getStoreAccessors } from 'typesafe-vuex';\nimport { State } from '../state';\nimport { MainState } from './state';\n\nexport const getters = {\n loginError: (state: MainState) => state.logInError,\n dashboardShowDrawer: (state: MainState) => state.dashboardShowDrawer,\n dashboardMiniDrawer: (state: MainState) => state.dashboardMiniDrawer,\n token: (state: MainState) => state.token,\n isLoggedIn: (state: MainState) => state.isLoggedIn,\n firstNotification: (state: MainState) => state.notifications.length > 0 && state.notifications[0],\n};\n\nconst {read} = getStoreAccessors('');\n\nexport const readDashboardMiniDrawer = read(getters.dashboardMiniDrawer);\nexport const readDashboardShowDrawer = read(getters.dashboardShowDrawer);\nexport const readIsLoggedIn = read(getters.isLoggedIn);\nexport const readLoginError = read(getters.loginError);\nexport const readToken = read(getters.token);\nexport const readFirstNotification = read(getters.firstNotification);\n","const env = process.env.VUE_APP_ENV;\n\nlet envApiUrl = '';\n\nif (env === 'production') {\n envApiUrl = `${process.env.VUE_APP_DOMAIN_PROD}`;\n} else if (env === 'staging') {\n envApiUrl = `${process.env.VUE_APP_DOMAIN_STAG}`;\n} else {\n envApiUrl = `${process.env.VUE_APP_DOMAIN_DEV}`;\n}\n\nexport const apiUrl = envApiUrl;\nexport const appName = process.env.VUE_APP_NAME;\n","import Vue from 'vue';\nimport Router from 'vue-router';\n\nimport RouterComponent from './components/RouterComponent.vue';\n\nVue.use(Router);\n\nexport default new Router({\n mode: 'history',\n base: process.env.BASE_URL,\n routes: [\n {\n path: '/',\n component: () => import(/* webpackChunkName: \"start\" */ './views/main/Start.vue'),\n children: [\n {\n path: 'login',\n // route level code-splitting\n // this generates a separate chunk (about.[hash].js) for this route\n // which is lazy-loaded when the route is visited.\n component: () => import(/* webpackChunkName: \"login\" */ './views/Login.vue'),\n },\n {\n path: '404',\n component: () => import(/* webpackChunkName: \"reset-password\" */ './views/404.vue'),\n },\n {\n path: 'main',\n component: () => import(/* webpackChunkName: \"main\" */ './views/main/Main.vue'),\n children: [\n {\n path: 'dashboard',\n component: () => import(/* webpackChunkName: \"main-dashboard\" */ './views/main/Dashboard.vue'),\n },\n ],\n },\n ],\n },\n {\n path: '/*', redirect: '/404',\n },\n ],\n});\n","import { getStoreAccessors } from 'typesafe-vuex';\nimport { State } from '../state';\nimport { AppNotification, MainState } from './state';\n\n\nexport const mutations = {\n setToken(state: MainState, payload: string) {\n state.token = payload;\n },\n setLoggedIn(state: MainState, payload: boolean) {\n state.isLoggedIn = payload;\n },\n setLogInError(state: MainState, payload: boolean) {\n state.logInError = payload;\n },\n setDashboardMiniDrawer(state: MainState, payload: boolean) {\n state.dashboardMiniDrawer = payload;\n },\n setDashboardShowDrawer(state: MainState, payload: boolean) {\n state.dashboardShowDrawer = payload;\n },\n addNotification(state: MainState, payload: AppNotification) {\n state.notifications.push(payload);\n },\n removeNotification(state: MainState, payload: AppNotification) {\n state.notifications = state.notifications.filter((notification) => notification !== payload);\n },\n};\n\nconst {commit} = getStoreAccessors('');\n\nexport const commitSetDashboardMiniDrawer = commit(mutations.setDashboardMiniDrawer);\nexport const commitSetDashboardShowDrawer = commit(mutations.setDashboardShowDrawer);\nexport const commitSetLoggedIn = commit(mutations.setLoggedIn);\nexport const commitSetLogInError = commit(mutations.setLogInError);\nexport const commitSetToken = commit(mutations.setToken);\nexport const commitAddNotification = commit(mutations.addNotification);\nexport const commitRemoveNotification = commit(mutations.removeNotification);\n","import { getStoreAccessors } from 'typesafe-vuex';\nimport { State } from '../state';\nimport { DataState } from './state';\n\nexport const getters = {\n traces: (state: DataState) => state.traces,\n loadingSamples: (state: DataState) => state.loadingSamples,\n activeTraceIDs: (state: DataState) => Object.values(state.traces).filter((t) => t.isActive).map((t) => t.id),\n};\nconst {read} = getStoreAccessors('');\n\nexport const readTraces = read(getters.traces);\nexport const readLoadingSamples = read(getters.loadingSamples);\nexport const readActiveTraceIDs = read(getters.activeTraceIDs);\n\n","import { apiUrl } from '@/env';\nimport { InSample, Trace, TraceCreate } from '@/interfaces';\nimport axios from 'axios';\nimport { config } from 'vue/types/umd';\n\nfunction authHeaders(token: string) {\n return {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n params: {},\n };\n}\n\nexport const api = {\n async getToken(token: string) {\n return axios.get(`${apiUrl}/api/security/token`, authHeaders(token));\n },\n async getTraces(token: string) {\n return axios.get(`${apiUrl}/api/traces/`, authHeaders(token));\n },\n async createTrace(token: string, data: TraceCreate) {\n return axios.post(`${apiUrl}/api/traces/`, data, authHeaders(token));\n },\n async getSamples(token: string, trace: Trace, skip: number = 0, limit: number = 100) {\n const options = authHeaders(token);\n options.params = {trace_id: trace.id, skip, limit};\n return axios.get(`${apiUrl}/api/samples/`, options);\n },\n async listDirectory(token: string, path: string) {\n const options = authHeaders(token);\n options.params = {path};\n return axios.get(`${apiUrl}/api/explorer/`, options);\n },\n};\n","import { Data, InSample, SetSample, Trace } from '@/interfaces';\nimport { getStoreAccessors } from 'typesafe-vuex';\nimport Vue from 'vue';\nimport { State } from '../state';\nimport { DataState } from './state';\n\nfunction formatData(samples: InSample[]) {\n const parameters: { [key: string]: Data[] } = {};\n for (let index = 0; index < samples.length; index++) {\n const row = samples[index].data;\n const state = samples[index].state;\n for (const param in row) {\n if (param) {\n if (index === 0) {\n parameters[param] = [];\n }\n parameters[param].push({ state, value: row[param] });\n }\n }\n\n }\n\n return parameters;\n}\n\nfunction setTraceDefaults(trace: Trace) {\n trace.parameters = {};\n trace.activeParams = [];\n trace.isActive = false;\n trace.burnIn = 10;\n trace.isLoading = false;\n}\n\nexport const mutations = {\n setTraces(state: DataState, payload: Trace[]) {\n for (const trace of payload) {\n setTraceDefaults(trace);\n }\n const traces = payload.reduce((obj, trace) => {\n obj[trace.id] = trace;\n return obj;\n }, {});\n state.traces = traces;\n },\n setTrace(state: DataState, payload: Trace) {\n setTraceDefaults(payload);\n // https://vuex.vuejs.org/guide/mutations.html#mutations-follow-vue-s-reactivity-rules\n Vue.set(state.traces, payload.id, payload);\n },\n setActiveTrace(state: DataState, payload: Trace) {\n state.traces[payload.id].isActive = true;\n\n },\n setActiveParams(state: DataState, payload: {traceID: number, params: string[]}) {\n state.traces[payload.traceID].activeParams = payload.params;\n },\n setBurnIn(state: DataState, payload: {traceID: number, burnIn: number}) {\n state.traces[payload.traceID].burnIn = payload.burnIn;\n },\n setLoadingSamples(state: DataState, payload: {traceID: number, loading: boolean}) {\n state.loadingSamples = payload.loading;\n state.traces[payload.traceID].isLoading = payload.loading;\n },\n setSetSamples(state: DataState, payload: {traceID: number, data: InSample[]}) {\n const data = formatData(payload.data);\n const trace = state.traces[payload.traceID];\n if (Object.keys(trace.parameters).length === 0) {\n trace.parameters = data;\n } else {\n for (const paramName in data) {\n if (paramName) {\n trace.parameters[paramName] = trace.parameters[paramName].concat(\n data[paramName], // ).sort((a, b) => a.state - b.state,\n );\n }\n }\n }\n },\n};\n\nconst {commit} = getStoreAccessors('');\n\nexport const commitSetTraces = commit(mutations.setTraces);\nexport const commitSetTrace = commit(mutations.setTrace);\nexport const commitSetActiveTrace = commit(mutations.setActiveTrace);\nexport const commitSetSamples = commit(mutations.setSetSamples);\nexport const commitSetActiveParams = commit(mutations.setActiveParams);\nexport const commitSetBurnIn = commit(mutations.setBurnIn);\nexport const commitSetLoadingSamples = commit(mutations.setLoadingSamples);\n\n","import { api } from '@/api';\nimport { Trace, TraceCreate } from '@/interfaces';\nimport { AxiosResponse } from 'axios';\nimport { getStoreAccessors } from 'typesafe-vuex';\nimport { ActionContext } from 'vuex';\nimport { dispatchCheckApiError } from '../main/actions';\nimport { commitAddNotification, commitRemoveNotification } from '../main/mutations';\nimport { State } from '../state';\nimport {\n commitSetActiveParams,\n commitSetActiveTrace,\n commitSetBurnIn,\n commitSetLoadingSamples,\n commitSetSamples,\n commitSetTrace,\n commitSetTraces,\n} from './mutations';\nimport { DataState } from './state';\n\ntype MainContext = ActionContext;\n\nexport const actions = {\n async actionGetTraces(context: MainContext) {\n let response: AxiosResponse | null = null;\n try {\n response = await api.getTraces(context.rootState.main.token);\n } catch (error) {\n await dispatchCheckApiError(context, error);\n }\n if (response) {\n commitSetTraces(context, response.data);\n }\n },\n async actionCreateTrace(context: MainContext, payload: TraceCreate) {\n const loadingNotification = { content: 'saving', showProgress: true };\n commitAddNotification(context, loadingNotification);\n let response: AxiosResponse | null = null;\n try {\n response = await api.createTrace(context.rootState.main.token, payload);\n } catch (error) {\n await dispatchCheckApiError(context, error);\n }\n commitRemoveNotification(context, loadingNotification);\n if (response != null) {\n commitSetTrace(context, response.data);\n commitAddNotification(context, { content: 'Trace successfully created', color: 'success' });\n }\n },\n async actionSetActiveTrace(context: MainContext, payload: Trace) {\n commitSetActiveTrace(context, payload);\n },\n async actionSetActiveParams(context: MainContext, payload: {traceID: number, params: string[]}) {\n commitSetActiveParams(context, payload);\n },\n async actionGetSamples(\n context: MainContext,\n payload: {trace: Trace,\n skip?: number,\n limit?: number,\n all?: boolean}) {\n const trace = payload.trace;\n const skip = payload.skip ? payload.skip : 0;\n const limit = payload.limit ? payload.limit : 100;\n const all = payload.all ? payload.all : false;\n const loadingNotification = { content: 'Loading samples...', showProgress: true };\n if (skip === 0) {\n commitAddNotification(context, loadingNotification);\n }\n let response: AxiosResponse | null = null;\n try {\n response = await api.getSamples(context.rootState.main.token, trace, skip, limit);\n } catch (error) {\n await dispatchCheckApiError(context, error);\n }\n if (response != null) {\n commitSetSamples(context, {traceID: trace.id, data: response.data});\n if (all === true && response.data.length === limit) {\n // if you get back what you request go again\n await dispatchGetSamples(context, {trace, skip: skip + limit, limit, all: true});\n }}\n commitRemoveNotification(context, loadingNotification);\n },\n async actionSetBurnIn(context: MainContext, payload: {traceID: number, burnIn: number}) {\n commitSetBurnIn(context, payload);\n },\n async actionSetLoadingSamples(context: MainContext, payload: {traceID: number, loading: boolean}) {\n commitSetLoadingSamples(context, payload);\n },\n};\n\nconst { dispatch } = getStoreAccessors('');\n\nexport const dispatchGetTraces = dispatch(actions.actionGetTraces);\nexport const dispatchCreateTrace = dispatch(actions.actionCreateTrace);\nexport const dispatchSetActiveTrace = dispatch(actions.actionSetActiveTrace);\nexport const dispatchGetSamples = dispatch(actions.actionGetSamples);\nexport const dispatchSetActiveParams = dispatch(actions.actionSetActiveParams);\nexport const dispatchSetBurnIn = dispatch(actions.actionSetBurnIn);\nexport const dispatchSetLoadingSamples = dispatch(actions.actionSetLoadingSamples);\n\n\n","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { dispatchRemoveNotification } from '@/store/main/actions';\nimport { readFirstNotification } from '@/store/main/getters';\nimport { commitRemoveNotification } from '@/store/main/mutations';\nimport { AppNotification } from '@/store/main/state';\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\n\n@Component\nexport default class NotificationsManager extends Vue {\n public show: boolean = false;\n public text: string = '';\n public showProgress: boolean = false;\n public notFound: boolean = false;\n public currentNotification: AppNotification | false = false;\n\n public async hide() {\n this.show = false;\n await new Promise((resolve, reject) => setTimeout(() => resolve(), 500));\n }\n\n public async close() {\n await this.hide();\n await this.removeCurrentNotification();\n }\n\n public async removeCurrentNotification() {\n if (this.currentNotification) {\n commitRemoveNotification(this.$store, this.currentNotification);\n }\n }\n\n public get firstNotification() {\n return readFirstNotification(this.$store);\n }\n\n public async setNotification(notification: AppNotification | false) {\n if (this.show) {\n await this.hide();\n }\n if (notification) {\n this.currentNotification = notification;\n this.showProgress = notification.showProgress || false;\n this.notFound = notification.notFound || false;\n this.show = true;\n } else {\n this.currentNotification = false;\n }\n }\n\n @Watch('firstNotification')\n public async onNotificationChange(\n newNotification: AppNotification | false,\n oldNotification: AppNotification | false,\n ) {\n if (newNotification !== this.currentNotification) {\n await this.setNotification(newNotification);\n if (newNotification) {\n dispatchRemoveNotification(this.$store, { notification: newNotification, timeout: 10000 });\n }\n }\n }\n\n public get currentNotificationContent() {\n return this.currentNotification && this.currentNotification.content || '';\n }\n\n public get currentNotificationColor() {\n return this.currentNotification && this.currentNotification.color || 'info';\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationsManager.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotificationsManager.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationsManager.vue?vue&type=template&id=2b4f56c1&\"\nimport script from \"./NotificationsManager.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationsManager.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\ninstallComponents(component, {VBtn,VIcon,VProgressCircular,VSnackbar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-snackbar',{attrs:{\"color\":_vm.currentNotificationColor},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('div',{staticClass:\"d-flex justify-space-between align-center \"},[_c('v-progress-circular',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showProgress),expression:\"showProgress\"}],staticClass:\"ma-1\",attrs:{\"indeterminate\":\"\"}}),_c('v-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.notFound),expression:\"notFound\"}],staticClass:\"ma-1\",attrs:{\"large\":\"\"}},[_vm._v(\"mdi-cancel\")]),_vm._v(\" \"+_vm._s(_vm.currentNotificationContent)+\" \"),_c('v-btn',{attrs:{\"text\":\"\"},nativeOn:{\"click\":function($event){return _vm.close.apply(null, arguments)}}},[_vm._v(\"Close\")])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport NotificationsManager from '@/components/NotificationsManager.vue';\nimport { dispatchCheckLoggedIn } from '@/store/main/actions';\nimport { readIsLoggedIn } from '@/store/main/getters';\nimport { Component, Vue } from 'vue-property-decorator';\n\n@Component({\n components: {\n NotificationsManager,\n },\n})\nexport default class App extends Vue {\n\n get loggedIn() {\n return readIsLoggedIn(this.$store);\n }\n\n public async created() {\n await dispatchCheckLoggedIn(this.$store);\n }\n}\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=12c528ee&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VContent } from 'vuetify/lib/components/VContent';\nimport { VFlex } from 'vuetify/lib/components/VGrid';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VApp,VContainer,VContent,VFlex,VProgressCircular,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('v-app',[(_vm.loggedIn===null)?_c('v-content',[_c('v-container',{attrs:{\"fill-height\":\"\"}},[_c('v-row',{attrs:{\"align-center\":\"\",\"justify-center\":\"\"}},[_c('v-flex',[_c('div',{staticClass:\"text-xs-center\"},[_c('div',{staticClass:\"headline my-5\"},[_vm._v(\"Loading...\")]),_c('v-progress-circular',{attrs:{\"size\":\"100\",\"indeterminate\":\"\",\"color\":\"primary\"}})],1)])],1)],1)],1):_c('router-view'),_c('NotificationsManager')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Component from 'vue-class-component';\n\n// Register the router hooks with their names\nComponent.registerHooks([\n 'beforeRouteEnter',\n 'beforeRouteLeave',\n 'beforeRouteUpdate', // for vue-router 2.2+\n]);\n","import VeeValidate from 'vee-validate';\nimport Vue from 'vue';\n\nVue.use(VeeValidate);\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\nimport colors from 'vuetify/lib/util/colors';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: {\n themes: {\n light: {\n primary: colors.teal.lighten1,\n },\n dark: {\n primary: colors.teal.lighten1,\n },\n },\n },\n});\n","import store from '@/store';\nimport '@babel/polyfill';\nimport Vue from 'vue';\nimport VueWorker from 'vue-worker';\nimport App from './App.vue';\n// Import Component hooks before component definitions\nimport './component-hooks';\nimport './plugins/vee-validate';\nimport vuetify from './plugins/vuetify';\nimport router from './router';\n\nVue.config.productionTip = false;\n\nVue.use(VueWorker);\n\nnew Vue({\n router,\n store,\n vuetify,\n render: (h) => h(App),\n}).$mount('#app');\n","export const getLocalToken = () => localStorage.getItem('token');\n\nexport const saveLocalToken = (token: string) => localStorage.setItem('token', token);\n\nexport const removeLocalToken = () => localStorage.removeItem('token');\n","import { api } from '@/api';\nimport router from '@/router';\nimport { getLocalToken, removeLocalToken, saveLocalToken } from '@/utils';\nimport { AxiosError } from 'axios';\nimport { getStoreAccessors } from 'typesafe-vuex';\nimport { ActionContext } from 'vuex';\nimport { State } from '../state';\nimport {\n commitAddNotification,\n commitRemoveNotification,\n commitSetLoggedIn,\n commitSetLogInError,\n commitSetToken,\n} from './mutations';\nimport { AppNotification, MainState } from './state';\n\ntype MainContext = ActionContext;\n\nexport const actions = {\n async actionCheckToken(context: MainContext, payload: { token: string }) {\n try {\n const response = await api.getToken(payload.token);\n const token = response.data.token;\n if (token) {\n saveLocalToken(token);\n commitSetToken(context, token);\n commitSetLoggedIn(context, true);\n commitSetLogInError(context, false);\n await dispatchRouteLoggedIn(context);\n commitAddNotification(context, { content: 'Logged in', color: 'success' });\n } else {\n await dispatchLogOut(context);\n }\n } catch (err) {\n commitSetLogInError(context, true);\n await dispatchLogOut(context);\n }\n },\n async actionCheckLoggedIn(context: MainContext) {\n if (!context.state.isLoggedIn) {\n let token = context.state.token;\n if (!token) {\n const localToken = getLocalToken();\n if (localToken) {\n commitSetToken(context, localToken);\n token = localToken;\n }\n }\n if (token) {\n try {\n commitSetLoggedIn(context, true);\n } catch (error) {\n await dispatchRemoveLogIn(context);\n }\n } else {\n await dispatchRemoveLogIn(context);\n }\n }\n },\n async actionRemoveLogIn(context: MainContext) {\n removeLocalToken();\n commitSetToken(context, '');\n commitSetLoggedIn(context, false);\n },\n async actionLogOut(context: MainContext) {\n await dispatchRemoveLogIn(context);\n await dispatchRouteLogOut(context);\n },\n async actionUserLogOut(context: MainContext) {\n await dispatchLogOut(context);\n commitAddNotification(context, { content: 'Logged out', color: 'success' });\n },\n actionRouteLogOut(context: MainContext) {\n if (router.currentRoute.path !== '/login') {\n router.push('/login');\n }\n },\n async actionCheckApiError(context: MainContext, payload: AxiosError) {\n if (payload.response!.status === 401) {\n await dispatchLogOut(context);\n }\n if (payload.response!.status === 404) {\n commitAddNotification(context, { content: payload.response!.data.detail, color: 'error', notFound: true});\n }\n if (payload.response!.status === 500) {\n commitAddNotification(context, { content: payload.response!.data.detail, color: 'error', notFound: true});\n }\n },\n actionRouteLoggedIn(context: MainContext) {\n if (router.currentRoute.path === '/login' || router.currentRoute.path === '/') {\n router.push('/main/dashboard');\n }\n },\n async removeNotification(context: MainContext, payload: { notification: AppNotification, timeout: number }) {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n commitRemoveNotification(context, payload.notification);\n resolve(true);\n }, payload.timeout);\n });\n },\n};\n\nconst { dispatch } = getStoreAccessors('');\n\nexport const dispatchCheckApiError = dispatch(actions.actionCheckApiError);\nexport const dispatchCheckLoggedIn = dispatch(actions.actionCheckLoggedIn);\nexport const dispatchCheckToken = dispatch(actions.actionCheckToken);\nexport const dispatchLogOut = dispatch(actions.actionLogOut);\nexport const dispatchUserLogOut = dispatch(actions.actionUserLogOut);\nexport const dispatchRemoveLogIn = dispatch(actions.actionRemoveLogIn);\nexport const dispatchRouteLoggedIn = dispatch(actions.actionRouteLoggedIn);\nexport const dispatchRouteLogOut = dispatch(actions.actionRouteLogOut);\nexport const dispatchRemoveNotification = dispatch(actions.removeNotification);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/backend/beastiary/webapp-dist/js/login.aa85044f.js b/backend/beastiary/webapp-dist/js/login.aa85044f.js new file mode 100644 index 0000000..12f9ee1 --- /dev/null +++ b/backend/beastiary/webapp-dist/js/login.aa85044f.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([["login"],{"0c18":function(t,e,r){},a55b:function(t,e,r){"use strict";r.r(e);var o=r("9ab4"),n=r("5f03"),i=r("d568"),s=r("2963"),a=r("60a3");function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,e){for(var r=0;r (this.isActive = false),\n },\n }, [\n this.$createElement(VIcon, {\n props: { color },\n }, this.closeIcon),\n ])\n },\n __cachedIcon (): VNode | null {\n if (!this.computedIcon) return null\n\n return this.$createElement(VIcon, {\n staticClass: 'v-alert__icon',\n props: { color: this.iconColor },\n }, this.computedIcon)\n },\n classes (): object {\n const classes: Record = {\n ...VSheet.options.computed.classes.call(this),\n 'v-alert--border': Boolean(this.border),\n 'v-alert--dense': this.dense,\n 'v-alert--outlined': this.outlined,\n 'v-alert--prominent': this.prominent,\n 'v-alert--text': this.text,\n }\n\n if (this.border) {\n classes[`v-alert--border-${this.border}`] = true\n }\n\n return classes\n },\n computedColor (): string {\n return this.color || this.type\n },\n computedIcon (): string | boolean {\n if (this.icon === false) return false\n if (typeof this.icon === 'string' && this.icon) return this.icon\n if (!['error', 'info', 'success', 'warning'].includes(this.type)) return false\n\n return `$${this.type}`\n },\n hasColoredIcon (): boolean {\n return (\n this.hasText ||\n (Boolean(this.border) && this.coloredBorder)\n )\n },\n hasText (): boolean {\n return this.text || this.outlined\n },\n iconColor (): string | undefined {\n return this.hasColoredIcon ? this.computedColor : undefined\n },\n isDark (): boolean {\n if (\n this.type &&\n !this.coloredBorder &&\n !this.outlined\n ) return true\n\n return Themeable.options.computed.isDark.call(this)\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('outline')) {\n breaking('outline', 'outlined', this)\n }\n },\n\n methods: {\n genWrapper (): VNode {\n const children = [\n this.$slots.prepend || this.__cachedIcon,\n this.genContent(),\n this.__cachedBorder,\n this.$slots.append,\n this.$scopedSlots.close\n ? this.$scopedSlots.close({ toggle: this.toggle })\n : this.__cachedDismissible,\n ]\n\n const data: VNodeData = {\n staticClass: 'v-alert__wrapper',\n }\n\n return this.$createElement('div', data, children)\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-alert__content',\n }, this.$slots.default)\n },\n genAlert (): VNode {\n let data: VNodeData = {\n staticClass: 'v-alert',\n attrs: {\n role: 'alert',\n },\n on: this.listeners$,\n class: this.classes,\n style: this.styles,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }\n\n if (!this.coloredBorder) {\n const setColor = this.hasText ? this.setTextColor : this.setBackgroundColor\n data = setColor(this.computedColor, data)\n }\n\n return this.$createElement('div', data, [this.genWrapper()])\n },\n /** @public */\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (h): VNode {\n const render = this.genAlert()\n\n if (!this.transition) return render\n\n return h('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [render])\n },\n})\n","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=7b62d0b9&\"\nimport script from \"./Login.vue?vue&type=script&lang=ts&\"\nexport * from \"./Login.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VContent } from 'vuetify/lib/components/VContent';\nimport { VFlex } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VLayout } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VContainer,VContent,VFlex,VForm,VLayout,VSpacer,VTextField,VToolbar,VToolbarTitle})\n"],"sourceRoot":""} \ No newline at end of file diff --git a/backend/beastiary/webapp-dist/js/login.baabd1f0.js b/backend/beastiary/webapp-dist/js/login.baabd1f0.js deleted file mode 100644 index 73aa7f3..0000000 --- a/backend/beastiary/webapp-dist/js/login.baabd1f0.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([["login"],{"0c18":function(t,e,r){},a55b:function(t,e,r){"use strict";r.r(e);var o=r("9ab4"),n=r("5f03"),i=r("d568"),s=r("2963"),a=r("60a3");function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(t){return typeof t}:function _typeof(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,e){for(var r=0;r (this.isActive = false),\n },\n }, [\n this.$createElement(VIcon, {\n props: { color },\n }, this.closeIcon),\n ])\n },\n __cachedIcon (): VNode | null {\n if (!this.computedIcon) return null\n\n return this.$createElement(VIcon, {\n staticClass: 'v-alert__icon',\n props: { color: this.iconColor },\n }, this.computedIcon)\n },\n classes (): object {\n const classes: Record = {\n ...VSheet.options.computed.classes.call(this),\n 'v-alert--border': Boolean(this.border),\n 'v-alert--dense': this.dense,\n 'v-alert--outlined': this.outlined,\n 'v-alert--prominent': this.prominent,\n 'v-alert--text': this.text,\n }\n\n if (this.border) {\n classes[`v-alert--border-${this.border}`] = true\n }\n\n return classes\n },\n computedColor (): string {\n return this.color || this.type\n },\n computedIcon (): string | boolean {\n if (this.icon === false) return false\n if (typeof this.icon === 'string' && this.icon) return this.icon\n if (!['error', 'info', 'success', 'warning'].includes(this.type)) return false\n\n return `$${this.type}`\n },\n hasColoredIcon (): boolean {\n return (\n this.hasText ||\n (Boolean(this.border) && this.coloredBorder)\n )\n },\n hasText (): boolean {\n return this.text || this.outlined\n },\n iconColor (): string | undefined {\n return this.hasColoredIcon ? this.computedColor : undefined\n },\n isDark (): boolean {\n if (\n this.type &&\n !this.coloredBorder &&\n !this.outlined\n ) return true\n\n return Themeable.options.computed.isDark.call(this)\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('outline')) {\n breaking('outline', 'outlined', this)\n }\n },\n\n methods: {\n genWrapper (): VNode {\n const children = [\n this.$slots.prepend || this.__cachedIcon,\n this.genContent(),\n this.__cachedBorder,\n this.$slots.append,\n this.$scopedSlots.close\n ? this.$scopedSlots.close({ toggle: this.toggle })\n : this.__cachedDismissible,\n ]\n\n const data: VNodeData = {\n staticClass: 'v-alert__wrapper',\n }\n\n return this.$createElement('div', data, children)\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-alert__content',\n }, this.$slots.default)\n },\n genAlert (): VNode {\n let data: VNodeData = {\n staticClass: 'v-alert',\n attrs: {\n role: 'alert',\n },\n on: this.listeners$,\n class: this.classes,\n style: this.styles,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }\n\n if (!this.coloredBorder) {\n const setColor = this.hasText ? this.setTextColor : this.setBackgroundColor\n data = setColor(this.computedColor, data)\n }\n\n return this.$createElement('div', data, [this.genWrapper()])\n },\n /** @public */\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (h): VNode {\n const render = this.genAlert()\n\n if (!this.transition) return render\n\n return h('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [render])\n },\n})\n","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=0857f21c&\"\nimport script from \"./Login.vue?vue&type=script&lang=ts&\"\nexport * from \"./Login.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VContent } from 'vuetify/lib/components/VContent';\nimport { VFlex } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VLayout } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VContainer,VContent,VFlex,VForm,VLayout,VSpacer,VTextField,VToolbar,VToolbarTitle})\n"],"sourceRoot":""} \ No newline at end of file diff --git a/backend/beastiary/webapp-dist/js/main-dashboard.4fa637e1.js b/backend/beastiary/webapp-dist/js/main-dashboard.5da8a2ea.js similarity index 92% rename from backend/beastiary/webapp-dist/js/main-dashboard.4fa637e1.js rename to backend/beastiary/webapp-dist/js/main-dashboard.5da8a2ea.js index 47f2eac..efe68cd 100644 --- a/backend/beastiary/webapp-dist/js/main-dashboard.4fa637e1.js +++ b/backend/beastiary/webapp-dist/js/main-dashboard.5da8a2ea.js @@ -61,5 +61,5 @@ var Ue=Be("1fb5"),We=Be("9152"),$e=Be("2335");function kMaxLength(){return Buffe * * Copyright (c) 2020, Robert Eisele (robert@xarg.org) * Dual licensed under the MIT or GPL Version 2 licenses. - **/!function(Be){"use strict";var cosh=function(Ee){return.5*(Math.exp(Ee)+Math.exp(-Ee))},sinh=function(Ee){return.5*(Math.exp(Ee)-Math.exp(-Ee))},parser_exit=function(){throw SyntaxError("Invalid Param")};function logHypot(Ee,ze){var Be=Math.abs(Ee),Ue=Math.abs(ze);return 0===Ee?Math.log(Ue):0===ze?Math.log(Be):Be<3e3&&Ue<3e3?.5*Math.log(Ee*Ee+ze*ze):Math.log(Ee/Math.cos(Math.atan2(ze,Ee)))}function Complex(Ee,ze){if(!(this instanceof Complex))return new Complex(Ee,ze);var Be=function(Ee,ze){var Be={re:0,im:0};if(null==Ee)Be.re=Be.im=0;else if(void 0!==ze)Be.re=Ee,Be.im=ze;else switch(typeof Ee){case"object":if("im"in Ee&&"re"in Ee)Be.re=Ee.re,Be.im=Ee.im;else if("abs"in Ee&&"arg"in Ee){if(!Number.isFinite(Ee.abs)&&Number.isFinite(Ee.arg))return Complex.INFINITY;Be.re=Ee.abs*Math.cos(Ee.arg),Be.im=Ee.abs*Math.sin(Ee.arg)}else if("r"in Ee&&"phi"in Ee){if(!Number.isFinite(Ee.r)&&Number.isFinite(Ee.phi))return Complex.INFINITY;Be.re=Ee.r*Math.cos(Ee.phi),Be.im=Ee.r*Math.sin(Ee.phi)}else 2===Ee.length?(Be.re=Ee[0],Be.im=Ee[1]):parser_exit();break;case"string":Be.im=Be.re=0;var Ue=Ee.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),We=1,$e=0;null===Ue&&parser_exit();for(var Qe=0;Qe0&&parser_exit();break;case"number":Be.im=0,Be.re=Ee;break;default:parser_exit()}return isNaN(Be.re)||isNaN(Be.im),Be}(Ee,ze);this.re=Be.re,this.im=Be.im}Complex.prototype={re:0,im:0,sign:function(){var Ee=this.abs();return new Complex(this.re/Ee,this.im/Ee)},add:function(Ee,ze){var Be=new Complex(Ee,ze);return this.isInfinite()&&Be.isInfinite()?Complex.NAN:this.isInfinite()||Be.isInfinite()?Complex.INFINITY:new Complex(this.re+Be.re,this.im+Be.im)},sub:function(Ee,ze){var Be=new Complex(Ee,ze);return this.isInfinite()&&Be.isInfinite()?Complex.NAN:this.isInfinite()||Be.isInfinite()?Complex.INFINITY:new Complex(this.re-Be.re,this.im-Be.im)},mul:function(Ee,ze){var Be=new Complex(Ee,ze);return this.isInfinite()&&Be.isZero()||this.isZero()&&Be.isInfinite()?Complex.NAN:this.isInfinite()||Be.isInfinite()?Complex.INFINITY:0===Be.im&&0===this.im?new Complex(this.re*Be.re,0):new Complex(this.re*Be.re-this.im*Be.im,this.re*Be.im+this.im*Be.re)},div:function(Ee,ze){var Be=new Complex(Ee,ze);if(this.isZero()&&Be.isZero()||this.isInfinite()&&Be.isInfinite())return Complex.NAN;if(this.isInfinite()||Be.isZero())return Complex.INFINITY;if(this.isZero()||Be.isInfinite())return Complex.ZERO;Ee=this.re,ze=this.im;var Ue,We,$e=Be.re,Qe=Be.im;return 0===Qe?new Complex(Ee/$e,ze/$e):Math.abs($e)0)return new Complex(Math.pow(Ee,Be.re),0);if(0===Ee)switch((Be.re%4+4)%4){case 0:return new Complex(Math.pow(ze,Be.re),0);case 1:return new Complex(0,Math.pow(ze,Be.re));case 2:return new Complex(-Math.pow(ze,Be.re),0);case 3:return new Complex(0,-Math.pow(ze,Be.re))}}if(0===Ee&&0===ze&&Be.re>0&&Be.im>=0)return Complex.ZERO;var Ue=Math.atan2(ze,Ee),We=logHypot(Ee,ze);return Ee=Math.exp(Be.re*We-Be.im*Ue),ze=Be.im*We+Be.re*Ue,new Complex(Ee*Math.cos(ze),Ee*Math.sin(ze))},sqrt:function(){var Ee,ze,Be=this.re,Ue=this.im,We=this.abs();if(Be>=0){if(0===Ue)return new Complex(Math.sqrt(Be),0);Ee=.5*Math.sqrt(2*(We+Be))}else Ee=Math.abs(Ue)/Math.sqrt(2*(We-Be));return ze=Be<=0?.5*Math.sqrt(2*(We-Be)):Math.abs(Ue)/Math.sqrt(2*(We+Be)),new Complex(Ee,Ue<0?-ze:ze)},exp:function(){var Ee=Math.exp(this.re);return this.im,new Complex(Ee*Math.cos(this.im),Ee*Math.sin(this.im))},expm1:function(){var Ee=this.re,ze=this.im;return new Complex(Math.expm1(Ee)*Math.cos(ze)+function(Ee){var ze=Math.PI/4;if(-ze>Ee||Ee>ze)return Math.cos(Ee)-1;var Be=Ee*Ee;return Be*(Be*(Be*(Be*(Be*(Be*(Be*(Be/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-.5)}(ze),Math.exp(Ee)*Math.sin(ze))},log:function(){var Ee=this.re,ze=this.im;return new Complex(logHypot(Ee,ze),Math.atan2(ze,Ee))},abs:function(){return Ee=this.re,ze=this.im,Be=Math.abs(Ee),Ue=Math.abs(ze),Be<3e3&&Ue<3e3?Math.sqrt(Be*Be+Ue*Ue):(Be1&&0===ze,Ue=1-Ee,We=1+Ee,$e=Ue*Ue+ze*ze,Qe=0!==$e?new Complex((We*Ue-ze*ze)/$e,(ze*Ue+We*ze)/$e):new Complex(-1!==Ee?Ee/0:0,0!==ze?ze/0:0),rt=Qe.re;return Qe.re=logHypot(Qe.re,Qe.im)/2,Qe.im=Math.atan2(Qe.im,rt)/2,Be&&(Qe.im=-Qe.im),Qe},acoth:function(){var Ee=this.re,ze=this.im;if(0===Ee&&0===ze)return new Complex(0,Math.PI/2);var Be=Ee*Ee+ze*ze;return 0!==Be?new Complex(Ee/Be,-ze/Be).atanh():new Complex(0!==Ee?Ee/0:0,0!==ze?-ze/0:0).atanh()},acsch:function(){var Ee=this.re,ze=this.im;if(0===ze)return new Complex(0!==Ee?Math.log(Ee+Math.sqrt(Ee*Ee+1)):1/0,0);var Be=Ee*Ee+ze*ze;return 0!==Be?new Complex(Ee/Be,-ze/Be).asinh():new Complex(0!==Ee?Ee/0:0,0!==ze?-ze/0:0).asinh()},asech:function(){var Ee=this.re,ze=this.im;if(this.isZero())return Complex.INFINITY;var Be=Ee*Ee+ze*ze;return 0!==Be?new Complex(Ee/Be,-ze/Be).acosh():new Complex(0!==Ee?Ee/0:0,0!==ze?-ze/0:0).acosh()},inverse:function(){if(this.isZero())return Complex.INFINITY;if(this.isInfinite())return Complex.ZERO;var Ee=this.re,ze=this.im,Be=Ee*Ee+ze*ze;return new Complex(Ee/Be,-ze/Be)},conjugate:function(){return new Complex(this.re,-this.im)},neg:function(){return new Complex(-this.re,-this.im)},ceil:function(Ee){return Ee=Math.pow(10,Ee||0),new Complex(Math.ceil(this.re*Ee)/Ee,Math.ceil(this.im*Ee)/Ee)},floor:function(Ee){return Ee=Math.pow(10,Ee||0),new Complex(Math.floor(this.re*Ee)/Ee,Math.floor(this.im*Ee)/Ee)},round:function(Ee){return Ee=Math.pow(10,Ee||0),new Complex(Math.round(this.re*Ee)/Ee,Math.round(this.im*Ee)/Ee)},equals:function(Ee,ze){var Be=new Complex(Ee,ze);return Math.abs(Be.re-this.re)<=Complex.EPSILON&&Math.abs(Be.im-this.im)<=Complex.EPSILON},clone:function(){return new Complex(this.re,this.im)},toString:function(){var Ee=this.re,ze=this.im,Be="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(Ee)\'',this),this.addActivatorEvents()},beforeDestroy:function beforeDestroy(){this.removeActivatorEvents()},methods:{addActivatorEvents:function addActivatorEvents(){if(this.activator&&!this.disabled&&this.getActivator()){this.listeners=this.genActivatorListeners();for(var Ee=0,ze=Object.keys(this.listeners);EeEe.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0&&void 0!==arguments[0]?arguments[0]:[],ze=this.$el,Be=[this.stackMinZIndex,Object(sn.u)(ze)],Ue=[].concat(_toConsumableArray(document.getElementsByClassName("v-menu__content--active")),_toConsumableArray(document.getElementsByClassName("v-dialog__content--active"))),We=0;WeEe.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be=this.getMaxZIndex()},hideScroll:function hideScroll(){this.fullscreen?document.documentElement.classList.add("overflow-y-hidden"):yn.a.options.methods.hideScroll.call(this)},show:function show(){var Ee=this;!this.fullscreen&&!this.hideOverlay&&this.genOverlay(),this.$nextTick((function(){Ee.$nextTick((function(){Ee.previousActiveElement=document.activeElement,Ee.$refs.content.focus(),Ee.bind()}))}))},bind:function bind(){window.addEventListener("focusin",this.onFocusin)},unbind:function unbind(){window.removeEventListener("focusin",this.onFocusin)},onClickOutside:function onClickOutside(Ee){this.$emit("click:outside",Ee),this.persistent?this.noClickAnimation||this.animateClick():this.isActive=!1},onKeydown:function onKeydown(Ee){if(Ee.keyCode===sn.x.esc&&!this.getOpenDependents().length)if(this.persistent)this.noClickAnimation||this.animateClick();else{this.isActive=!1;var ze=this.getActivator();this.$nextTick((function(){return ze&&ze.focus()}))}this.$emit("keydown",Ee)},onFocusin:function onFocusin(Ee){if(Ee&&this.retainFocus){var ze=Ee.target;if(ze&&![document,this.$refs.content].includes(ze)&&!this.$refs.content.contains(ze)&&this.activeZIndex>=this.getMaxZIndex()&&!this.getOpenDependentElements().some((function(Ee){return Ee.contains(ze)}))){var Be=VDialog_toConsumableArray(this.$refs.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')).find((function(Ee){return!Ee.hasAttribute("disabled")}));Be&&Be.focus()}}},genContent:function genContent(){var Ee=this;return this.showLazyContent((function(){return[Ee.$createElement(rr,{props:{root:!0,light:Ee.light,dark:Ee.dark}},[Ee.$createElement("div",{class:Ee.contentClasses,attrs:_objectSpread({role:"document",tabindex:Ee.isActive?0:void 0},Ee.getScopeIdAttrs()),on:{keydown:Ee.onKeydown},style:{zIndex:Ee.activeZIndex},ref:"content"},[Ee.genTransition()])])]}))},genTransition:function genTransition(){var Ee=this.genInnerContent();return this.transition?this.$createElement("transition",{props:{name:this.transition,origin:this.origin,appear:!0}},[Ee]):Ee},genInnerContent:function genInnerContent(){var Ee={class:this.classes,ref:"dialog",directives:[{name:"click-outside",value:{handler:this.onClickOutside,closeConditional:this.closeConditional,include:this.getOpenDependentElements}},{name:"show",value:this.isActive}],style:{transformOrigin:this.origin}};return this.fullscreen||(Ee.style=_objectSpread(_objectSpread({},Ee.style),{},{maxWidth:"none"===this.maxWidth?void 0:Object(sn.g)(this.maxWidth),width:"auto"===this.width?void 0:Object(sn.g)(this.width)})),this.$createElement("div",Ee,this.getContentSlot())}},render:function render(Ee){return Ee("div",{staticClass:"v-dialog__container",class:{"v-dialog__container--attached":""===this.attach||!0===this.attach||"attach"===this.attach},attrs:{role:"dialog"}},[this.genActivator(),this.genContent()])}}),Pn=Be("4bd4"),In=Be("132d"),Bn=Be("8860"),Hn=Be("da13"),Kn=Be("1800"),Jn=Be("8270"),ei=Be("5d23"),ti=Be("2fa4"),ri=Be("8654"),ni=Object(ft.a)(ct,(function(){var Ee=this,ze=Ee.$createElement,Be=Ee._self._c||ze;return Be("v-dialog",{attrs:{persistent:"","max-width":"600px"},scopedSlots:Ee._u([{key:"activator",fn:function(ze){var Ue=ze.on,We=ze.attrs;return[Be("v-btn",Ee._g(Ee._b({attrs:{color:"teal lighten-2",dark:"",fab:"",elevation:"2","x-small":""},on:{click:function(ze){return Ee.reset()}}},"v-btn",We,!1),Ue),[Be("v-icon",{attrs:{dark:""}},[Ee._v(" mdi-plus ")])],1)]}}]),model:{value:Ee.dialog,callback:function(ze){Ee.dialog=ze},expression:"dialog"}},[Be("v-card",[Be("v-card-title",[Be("span",{staticClass:"text-h5"},[Ee._v("Add trace to Beastiary")])]),Be("v-card-text",[Be("v-form",{on:{submit:function(ze){return ze.preventDefault(),Ee.submit.apply(null,arguments)}}},[Be("v-text-field",{attrs:{required:"",label:"Path to the log file"},model:{value:Ee.path,callback:function(ze){Ee.path=ze},expression:"path"}})],1),Be("v-list",{staticStyle:{"max-height":"300px",overflow:"auto"}},[Be("v-list-item",[Be("v-list-item-avatar",[Be("v-icon",{staticClass:"grey lighten-1",attrs:{dark:""}},[Ee._v(" mdi-folder ")])],1),Be("v-list-item-content",[Be("v-list-item-title",[Ee._v("..")])],1),Be("v-list-item-action",[Be("v-btn",{attrs:{icon:""},on:{click:function(ze){Ee.currentPath=Ee.parentDir,Ee.list_dir()}}},[Be("v-icon",{attrs:{color:"grey lighten-1"}},[Ee._v("mdi-chevron-right")])],1)],1)],1),Ee._l(Ee.files,(function(ze){return Be("v-list-item",{key:ze.name},[Be("v-list-item-avatar",[ze.is_dir?Be("v-icon",{staticClass:"grey lighten-1",attrs:{dark:""}},[Ee._v(" mdi-folder ")]):Be("v-icon",{staticClass:"primary lighten-1",attrs:{dark:""}},[Ee._v(" mdi-file ")])],1),Be("v-list-item-content",[Be("v-list-item-title",{domProps:{textContent:Ee._s(ze.name)}})],1),Be("v-list-item-action",[ze.is_dir?Be("v-btn",{attrs:{icon:""},on:{click:function(Be){Ee.currentPath=ze.path,Ee.list_dir()}}},[Be("v-icon",{attrs:{color:"grey lighten-1"}},[Ee._v("mdi-chevron-right")])],1):Be("v-btn",{attrs:{icon:""},on:{click:function(Be){Ee.path=ze.path}}},[Be("v-icon",{attrs:{color:"primary"}},[Ee._v("mdi-plus")])],1)],1)],1)}))],2)],1),Be("v-card-actions",[Be("v-spacer"),Be("v-btn",{attrs:{color:"red lighten-3",text:""},on:{click:function(ze){Ee.dialog=!1}}},[Ee._v(" Close ")]),Be("v-btn",{attrs:{color:"primary",text:""},on:{click:Ee.submit}},[Ee._v(" Add ")])],1)],1)],1)}),[],!1,null,null,null),ii=ni.exports;kt()(ni,{VBtn:Lt.a,VCard:Ut.a,VCardActions:er.a,VCardText:er.b,VCardTitle:er.c,VDialog:En,VForm:Pn.a,VIcon:In.a,VList:Bn.a,VListItem:Hn.a,VListItemAction:Kn.a,VListItemAvatar:Jn.a,VListItemContent:ei.a,VListItemTitle:ei.c,VSpacer:ti.a,VTextField:ri.a});var ai=Be("72e7"),oi=Be("04d1");function ESSvue_type_script_lang_ts_typeof(Ee){return(ESSvue_type_script_lang_ts_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(Ee){return typeof Ee}:function _typeof(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(Ee)}function ESSvue_type_script_lang_ts_classCallCheck(Ee,ze){if(!(Ee instanceof ze))throw new TypeError("Cannot call a class as a function")}function ESSvue_type_script_lang_ts_defineProperties(Ee,ze){for(var Be=0;Be0))break;kt+=2*(ft[Lt-1]+ft[Lt])}}var rr=0;ft[0]>0&&(rr=rt*kt/ft[0]);var ar=1;0!==rr&&(ar=rt*it/rr),We[$e]={state:Ue[$e].state,value:ar}}return We}}],Ee.worker=Ee.$worker.create(Ee.actions),Ee}return function ESSvue_type_script_lang_ts_createClass(Ee,ze,Be){return ze&&ESSvue_type_script_lang_ts_defineProperties(Ee.prototype,ze),Be&&ESSvue_type_script_lang_ts_defineProperties(Ee,Be),Ee}(CumulativeESS,[{key:"modeBarButtons",get:function get(){return["zoom2d","pan2d","select2d","lasso2d","zoomIn2d","zoomOut2d","autoScale2d","resetScale2d","hoverClosestCartesian","hoverCompareCartesian","zoom3d","pan3d","resetCameraDefault3d","resetCameraLastSave3d","hoverClosest3d","orbitRotation","tableRotation","zoomInGeo","zoomOutGeo","resetGeo","hoverClosestGeo","sendDataToCloud","hoverClosestGl2d","hoverClosestPie","toggleHover","resetViews","toggleSpikelines","resetViewMapbox"]}},{key:"layout",get:function get(){return{xaxis:{showgrid:!0,color:this.$vuetify.theme.dark?"white":"#2c3e50"},yaxis:{showgrid:!0,color:this.$vuetify.theme.dark?"white":"#2c3e50"},plot_bgcolor:this.$vuetify.theme.dark?"#1E1E1E":"white",paper_bgcolor:this.$vuetify.theme.dark?"#1E1E1E":"white",legend:{orientation:"h",x:.5,y:1.15,xanchor:"center",font:{size:15,color:this.$vuetify.theme.dark?"white":"#2c3e50"}},margin:{l:50,r:20,b:30,t:0,pad:0},shapes:[{type:"line",xref:"paper",x0:.05,y0:200,x1:.95,y1:200,line:{color:"#4CAF50",dash:"dot",width:3}},{type:"line",xref:"paper",x0:.05,y0:100,x1:.95,y1:100,line:{color:"#ff9800",dash:"dot",width:3}}]}}},{key:"cumulativeESSData",get:function get(){for(var Ee,ze=this,Be=[],Ue=["#2980b9","#2ecc71","#9b59b6","#f1c40f","#e74c3c","#1abc9c","#8e44ad","#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],We=0,$e=0,Qe=Object.values(this.traces);$e0})).length?"".concat($e):"".concat(ze.fileName(Ee.path)," - ").concat($e),marker:{color:Ue[We]},hovertemplate:"%{y}",showlegend:!0}),We++)},it=0,at=Object.values(Ee.activeParams);it=Ee.length?{done:!0}:{done:!1,value:Ee[Ue++]}},e:function e(Ee){throw Ee},f:We}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var $e,Qe=!0,rt=!1;return{s:function s(){Be=Be.call(Ee)},n:function n(){var Ee=Be.next();return Qe=Ee.done,Ee},e:function e(Ee){rt=!0,$e=Ee},f:function f(){try{Qe||null==Be.return||Be.return()}finally{if(rt)throw $e}}}}function Histogramvue_type_script_lang_ts_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0})).length?"".concat(at):"".concat(this.fileName($e.path)," - ").concat(at),hovertemplate:"%{y}",showlegend:!0}),Be++}}catch(Ee){it.e(Ee)}finally{it.f()}}}return Ee}},{key:"fileName",value:function fileName(Ee){return Ee.substring(Ee.lastIndexOf("/")+1)}}]),Histogram}(it.c),Ci=hi=Object(Ue.a)([Object(it.a)({components:{Plotly:oi.Plotly}})],hi),Pi=Object(ft.a)(Ci,(function(){var Ee=this.$createElement;return(this._self._c||Ee)("Plotly",{attrs:{data:this.HistogramData,layout:this.layout,toImageButtonOptions:{filename:"histogram",width:null,height:null,format:"svg"},displaylogo:!1,"mode-bar-buttons-to-remove":this.modeBarButtons,"display-mode-bar":!0}})}),[],!1,null,null,null).exports;function Marginalvue_type_script_lang_ts_typeof(Ee){return(Marginalvue_type_script_lang_ts_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(Ee){return typeof Ee}:function _typeof(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(Ee)}function Marginalvue_type_script_lang_ts_createForOfIteratorHelper(Ee,ze){var Be="undefined"!=typeof Symbol&&Ee[Symbol.iterator]||Ee["@@iterator"];if(!Be){if(Array.isArray(Ee)||(Be=function Marginalvue_type_script_lang_ts_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return Marginalvue_type_script_lang_ts_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return Marginalvue_type_script_lang_ts_arrayLikeToArray(Ee,ze)}(Ee))||ze&&Ee&&"number"==typeof Ee.length){Be&&(Ee=Be);var Ue=0,We=function F(){};return{s:We,n:function n(){return Ue>=Ee.length?{done:!0}:{done:!1,value:Ee[Ue++]}},e:function e(Ee){throw Ee},f:We}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var $e,Qe=!0,rt=!1;return{s:function s(){Be=Be.call(Ee)},n:function n(){var Ee=Be.next();return Qe=Ee.done,Ee},e:function e(Ee){rt=!0,$e=Ee},f:function f(){try{Qe||null==Be.return||Be.return()}finally{if(rt)throw $e}}}}function Marginalvue_type_script_lang_ts_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be3?150*this.numberOfActivePrams:450,displayModeBar:!0,margin:{l:70,r:50,b:40,t:0,pad:0}},ze=2;ze=Ee.length?{done:!0}:{done:!1,value:Ee[Ue++]}},e:function e(Ee){throw Ee},f:We}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var $e,Qe=!0,rt=!1;return{s:function s(){Be=Be.call(Ee)},n:function n(){var Ee=Be.next();return Qe=Ee.done,Ee},e:function e(Ee){rt=!0,$e=Ee},f:function f(){try{Qe||null==Be.return||Be.return()}finally{if(rt)throw $e}}}}function Parallelvue_type_script_lang_ts_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be=Ee.length?{done:!0}:{done:!1,value:Ee[Ue++]}},e:function e(Ee){throw Ee},f:We}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var $e,Qe=!0,rt=!1;return{s:function s(){Be=Be.call(Ee)},n:function n(){var Ee=Be.next();return Qe=Ee.done,Ee},e:function e(Ee){rt=!0,$e=Ee},f:function f(){try{Qe||null==Be.return||Be.return()}finally{if(rt)throw $e}}}}function Tracevue_type_script_lang_ts_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0})).length?"".concat(at):"".concat(this.fileName($e.path)," - ").concat(at),marker:{color:ze[Be]},hovertemplate:"%{y}",showlegend:!1}),Ee.push({y:$e.parameters[at].slice($e.parameters.state.length*rt).map((function(Ee){return Ee.value})),type:"histogram",histnorm:"probability",xaxis:"x2",yaxis:"y1",opacity:.6,name:1===Object.values(this.traces).filter((function(Ee){return Ee.activeParams.length>0})).length?"".concat(at):"".concat(this.fileName($e.path)," - ").concat(at),marker:{color:ze[Be]},hovertemplate:"%{y}"}),Be++}}catch(Ee){it.e(Ee)}finally{it.f()}}}return Ee}},{key:"fileName",value:function fileName(Ee){return Ee.substring(Ee.lastIndexOf("/")+1)}}]),Histogram}(it.c),Ra=Ia=Object(Ue.a)([Object(it.a)({components:{Plotly:oi.Plotly}})],Ia),Na=Object(ft.a)(Ra,(function(){var Ee=this.$createElement,ze=this._self._c||Ee;return ze("div",[ze("Plotly",{attrs:{data:this.traceData,layout:this.layout,toImageButtonOptions:{filename:"trace",width:null,height:null,format:"svg"},displaylogo:!1,"mode-bar-buttons-to-remove":this.modeBarButtons,"display-mode-bar":!0}})],1)}),[],!1,null,null,null).exports;function Violinvue_type_script_lang_ts_typeof(Ee){return(Violinvue_type_script_lang_ts_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(Ee){return typeof Ee}:function _typeof(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(Ee)}function Violinvue_type_script_lang_ts_createForOfIteratorHelper(Ee,ze){var Be="undefined"!=typeof Symbol&&Ee[Symbol.iterator]||Ee["@@iterator"];if(!Be){if(Array.isArray(Ee)||(Be=function Violinvue_type_script_lang_ts_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return Violinvue_type_script_lang_ts_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return Violinvue_type_script_lang_ts_arrayLikeToArray(Ee,ze)}(Ee))||ze&&Ee&&"number"==typeof Ee.length){Be&&(Ee=Be);var Ue=0,We=function F(){};return{s:We,n:function n(){return Ue>=Ee.length?{done:!0}:{done:!1,value:Ee[Ue++]}},e:function e(Ee){throw Ee},f:We}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var $e,Qe=!0,rt=!1;return{s:function s(){Be=Be.call(Ee)},n:function n(){var Ee=Be.next();return Qe=Ee.done,Ee},e:function e(Ee){rt=!0,$e=Ee},f:function f(){try{Qe||null==Be.return||Be.return()}finally{if(rt)throw $e}}}}function Violinvue_type_script_lang_ts_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0})).length?"".concat(at):"".concat(this.fileName($e.path)," - ").concat(at),hovertemplate:"%{y}",showlegend:!0}),Be++}}catch(Ee){it.e(Ee)}finally{it.f()}}}return Ee}},{key:"fileName",value:function fileName(Ee){return Ee.substring(Ee.lastIndexOf("/")+1)}}]),Violin}(it.c),qa=Ua=Object(Ue.a)([Object(it.a)({components:{Plotly:oi.Plotly}})],Ua),Ka=Object(ft.a)(qa,(function(){var Ee=this.$createElement;return(this._self._c||Ee)("Plotly",{attrs:{data:this.ViolinData,layout:this.layout,toImageButtonOptions:{filename:"violin",width:null,height:null,format:"svg"},displaylogo:!1,"mode-bar-buttons-to-remove":this.modeBarButtons,"display-mode-bar":!0}})}),[],!1,null,null,null).exports;function ESSChipvue_type_script_lang_ts_typeof(Ee){return(ESSChipvue_type_script_lang_ts_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(Ee){return typeof Ee}:function _typeof(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(Ee)}function ESSChipvue_type_script_lang_ts_classCallCheck(Ee,ze){if(!(Ee instanceof ze))throw new TypeError("Cannot call a class as a function")}function ESSChipvue_type_script_lang_ts_defineProperties(Ee,ze){for(var Be=0;Be0))break;at+=2*(rt[ct-1]+rt[ct])}}var Lt=0;rt[0]>0&&(Lt=Ue*at/rt[0]);var Ut=1;return 0!==Lt&&(Ut=Ue*We/Lt),Ut}}],Ee.worker=Ee.$worker.create(Ee.actions),Ee}return function ESSChipvue_type_script_lang_ts_createClass(Ee,ze,Be){return ze&&ESSChipvue_type_script_lang_ts_defineProperties(Ee.prototype,ze),Be&&ESSChipvue_type_script_lang_ts_defineProperties(Ee,Be),Ee}(ESSChip,[{key:"color",get:function get(){return null===this.ESS||this.ESS<100?"red":this.ESS<200?"orange":"green"}},{key:"dataChanged",value:function dataChanged(){this.updateESS()}},{key:"burnInChanged",value:function burnInChanged(){this.updateESS()}},{key:"updateESS",value:function updateESS(){var Ee=this,ze=this.data,Be=this.burnIn;this.worker.postMessage("ESS",[ze,Be]).then((function(ze){return Ee.ESS=Math.round(ze)})).catch(console.error)}},{key:"mounted",value:function mounted(){var Ee=this,ze=this.data,Be=this.burnIn;this.worker.postMessage("ESS",[ze,Be]).then((function(ze){return Ee.ESS=Math.round(ze)})).catch(console.error)}}]),ESSChip}(it.c);Object(Ue.a)([Object(it.b)()],Co.prototype,"data",void 0),Object(Ue.a)([Object(it.b)()],Co.prototype,"burnIn",void 0),Object(Ue.a)([Object(it.d)("data")],Co.prototype,"dataChanged",null),Object(Ue.a)([Object(it.d)("burnIn")],Co.prototype,"burnInChanged",null);var zo=Co=Object(Ue.a)([it.a],Co),Bo=(Be("8adc"),Be("0789")),Vo=Be("9d26"),Uo=Be("a9ad"),Ho=Be("4e82"),Wo=Be("1c87"),Xo=Be("af2b");function _slicedToArray(Ee,ze){return function _arrayWithHoles(Ee){if(Array.isArray(Ee))return Ee}(Ee)||function _iterableToArrayLimit(Ee,ze){var Be=null==Ee?null:"undefined"!=typeof Symbol&&Ee[Symbol.iterator]||Ee["@@iterator"];if(null==Be)return;var Ue,We,$e=[],Qe=!0,rt=!1;try{for(Be=Be.call(Ee);!(Qe=(Ue=Be.next()).done)&&($e.push(Ue.value),!ze||$e.length!==ze);Qe=!0);}catch(Ee){rt=!0,We=Ee}finally{try{Qe||null==Be.return||Be.return()}finally{if(rt)throw We}}return $e}(Ee,ze)||function VChip_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return VChip_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return VChip_arrayLikeToArray(Ee,ze)}(Ee,ze)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function VChip_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0?Math.max(Ee-Be,0):Math.max(Ee,12))+this.getOffsetLeft()},calcYOverflow:function calcYOverflow(Ee){var ze=this.getInnerHeight(),Be=this.absoluteYOffset+ze,Ue=this.dimensions.activator,We=this.dimensions.content.height,$e=BeWe?Ee=this.pageYOffset+(Ue.top-We):$e&&!this.allowOverflow?Ee=Be-We-12:Ee'",this)},methods:{activate:function activate(){this.updateDimensions(),requestAnimationFrame(this.startTransition)},deactivate:function deactivate(){this.runDelay("close")},genActivatorListeners:function genActivatorListeners(){var Ee=this,ze=un.options.methods.genActivatorListeners.call(this);return ze.focus=function(ze){Ee.getActivator(ze),Ee.runDelay("open")},ze.blur=function(ze){Ee.getActivator(ze),Ee.runDelay("close")},ze.keydown=function(ze){ze.keyCode===sn.x.esc&&(Ee.getActivator(ze),Ee.runDelay("close"))},ze},genActivatorAttributes:function genActivatorAttributes(){return{"aria-haspopup":!0,"aria-expanded":String(this.isActive)}},genTransition:function genTransition(){var Ee=this.genContent();return this.computedTransition?this.$createElement("transition",{props:{name:this.computedTransition}},[Ee]):Ee},genContent:function genContent(){var Ee;return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-tooltip__content",class:(Ee={},VTooltip_defineProperty(Ee,this.contentClass,!0),VTooltip_defineProperty(Ee,"menuable__content__active",this.isActive),VTooltip_defineProperty(Ee,"v-tooltip__content--fixed",this.activatorFixed),Ee),style:this.styles,attrs:this.getScopeIdAttrs(),directives:[{name:"show",value:this.isContentActive}],ref:"content"}),this.getContentSlot())}},render:function render(Ee){var ze=this;return Ee(this.tag,{staticClass:"v-tooltip",class:this.classes},[this.showLazyContent((function(){return[ze.genTransition()]})),this.genActivator()])}}),ns=Object(ft.a)(zo,(function(){var Ee=this,ze=Ee.$createElement,Be=Ee._self._c||ze;return Be("v-tooltip",{attrs:{color:"black",bottom:""},scopedSlots:Ee._u([{key:"activator",fn:function(ze){var Ue=ze.on;return[Be("v-chip",Ee._g({directives:[{name:"show",rawName:"v-show",value:Ee.ESS,expression:"ESS"}],attrs:{color:Ee.color,"text-color":"white",small:""}},Ue),[Ee._v(Ee._s(Ee.ESS))])]}}])},[Be("span",[Ee._v("ESS")])])}),[],!1,null,null,null),as=ns.exports;kt()(ns,{VChip:$o,VTooltip:rs});var os=Be("a559"),ss=Be.n(os),ls={epsilon:1e-12,matrix:"Matrix",number:"number",precision:64,predictable:!1,randomSeed:null};function isNumber(Ee){return"number"==typeof Ee}function isBigNumber(Ee){return!(!Ee||"object"!=typeof Ee||"function"!=typeof Ee.constructor)&&(!0===Ee.isBigNumber&&"object"==typeof Ee.constructor.prototype&&!0===Ee.constructor.prototype.isBigNumber||"function"==typeof Ee.constructor.isDecimal&&!0===Ee.constructor.isDecimal(Ee))}function isComplex(Ee){return Ee&&"object"==typeof Ee&&!0===Object.getPrototypeOf(Ee).isComplex||!1}function isFraction(Ee){return Ee&&"object"==typeof Ee&&!0===Object.getPrototypeOf(Ee).isFraction||!1}function isUnit(Ee){return Ee&&!0===Ee.constructor.prototype.isUnit||!1}function isString(Ee){return"string"==typeof Ee}var cs=Array.isArray;function isMatrix(Ee){return Ee&&!0===Ee.constructor.prototype.isMatrix||!1}function isCollection(Ee){return Array.isArray(Ee)||isMatrix(Ee)}function isDenseMatrix(Ee){return Ee&&Ee.isDenseMatrix&&!0===Ee.constructor.prototype.isMatrix||!1}function isSparseMatrix(Ee){return Ee&&Ee.isSparseMatrix&&!0===Ee.constructor.prototype.isMatrix||!1}function isRange(Ee){return Ee&&!0===Ee.constructor.prototype.isRange||!1}function isIndex(Ee){return Ee&&!0===Ee.constructor.prototype.isIndex||!1}function isBoolean(Ee){return"boolean"==typeof Ee}function isResultSet(Ee){return Ee&&!0===Ee.constructor.prototype.isResultSet||!1}function isHelp(Ee){return Ee&&!0===Ee.constructor.prototype.isHelp||!1}function isFunction(Ee){return"function"==typeof Ee}function isDate(Ee){return Ee instanceof Date}function isRegExp(Ee){return Ee instanceof RegExp}function isObject(Ee){return!(!Ee||"object"!=typeof Ee||Ee.constructor!==Object||isComplex(Ee)||isFraction(Ee))}function isNull(Ee){return null===Ee}function isUndefined(Ee){return void 0===Ee}function isAccessorNode(Ee){return Ee&&!0===Ee.isAccessorNode&&!0===Ee.constructor.prototype.isNode||!1}function isArrayNode(Ee){return Ee&&!0===Ee.isArrayNode&&!0===Ee.constructor.prototype.isNode||!1}function isAssignmentNode(Ee){return Ee&&!0===Ee.isAssignmentNode&&!0===Ee.constructor.prototype.isNode||!1}function isBlockNode(Ee){return Ee&&!0===Ee.isBlockNode&&!0===Ee.constructor.prototype.isNode||!1}function isConditionalNode(Ee){return Ee&&!0===Ee.isConditionalNode&&!0===Ee.constructor.prototype.isNode||!1}function isConstantNode(Ee){return Ee&&!0===Ee.isConstantNode&&!0===Ee.constructor.prototype.isNode||!1}function isFunctionAssignmentNode(Ee){return Ee&&!0===Ee.isFunctionAssignmentNode&&!0===Ee.constructor.prototype.isNode||!1}function isFunctionNode(Ee){return Ee&&!0===Ee.isFunctionNode&&!0===Ee.constructor.prototype.isNode||!1}function isIndexNode(Ee){return Ee&&!0===Ee.isIndexNode&&!0===Ee.constructor.prototype.isNode||!1}function isNode(Ee){return Ee&&!0===Ee.isNode&&!0===Ee.constructor.prototype.isNode||!1}function isObjectNode(Ee){return Ee&&!0===Ee.isObjectNode&&!0===Ee.constructor.prototype.isNode||!1}function isOperatorNode(Ee){return Ee&&!0===Ee.isOperatorNode&&!0===Ee.constructor.prototype.isNode||!1}function isParenthesisNode(Ee){return Ee&&!0===Ee.isParenthesisNode&&!0===Ee.constructor.prototype.isNode||!1}function isRangeNode(Ee){return Ee&&!0===Ee.isRangeNode&&!0===Ee.constructor.prototype.isNode||!1}function isSymbolNode(Ee){return Ee&&!0===Ee.isSymbolNode&&!0===Ee.constructor.prototype.isNode||!1}function isChain(Ee){return Ee&&!0===Ee.constructor.prototype.isChain||!1}function typeOf(Ee){var ze=typeof Ee;return"object"===ze?null===Ee?"null":Array.isArray(Ee)?"Array":Ee instanceof Date?"Date":Ee instanceof RegExp?"RegExp":isBigNumber(Ee)?"BigNumber":isComplex(Ee)?"Complex":isFraction(Ee)?"Fraction":isMatrix(Ee)?"Matrix":isUnit(Ee)?"Unit":isIndex(Ee)?"Index":isRange(Ee)?"Range":isResultSet(Ee)?"ResultSet":isNode(Ee)?Ee.type:isChain(Ee)?"Chain":isHelp(Ee)?"Help":"Object":"function"===ze?"Function":ze}function clone(Ee){var ze=typeof Ee;if("number"===ze||"string"===ze||"boolean"===ze||null==Ee)return Ee;if("function"==typeof Ee.clone)return Ee.clone();if(Array.isArray(Ee))return Ee.map((function(Ee){return clone(Ee)}));if(Ee instanceof Date)return new Date(Ee.valueOf());if(isBigNumber(Ee))return Ee;if(Ee instanceof RegExp)throw new TypeError("Cannot clone "+Ee);return mapObject(Ee,clone)}function mapObject(Ee,ze){var Be={};for(var Ue in Ee)object_hasOwnProperty(Ee,Ue)&&(Be[Ue]=ze(Ee[Ue]));return Be}function extend(Ee,ze){for(var Be in ze)object_hasOwnProperty(ze,Be)&&(Ee[Be]=ze[Be]);return Ee}function deepStrictEqual(Ee,ze){var Be,Ue,We;if(Array.isArray(Ee)){if(!Array.isArray(ze))return!1;if(Ee.length!==ze.length)return!1;for(Ue=0,We=Ee.length;Ue0?1:Ee<0?-1:0},vs=Math.log2||function log2(Ee){return Math.log(Ee)/Math.LN2},ks=Math.log10||function log10(Ee){return Math.log(Ee)/Math.LN10},Ms=(Math.log1p,Math.cbrt||function cbrt(Ee){if(0===Ee)return Ee;var ze,Be=Ee<0;return Be&&(Ee=-Ee),ze=isFinite(Ee)?(Ee/((ze=Math.exp(Math.log(Ee)/3))*ze)+2*ze)/3:Ee,Be?-ze:ze}),Ss=Math.expm1||function expm1(Ee){return Ee>=2e-4||Ee<=-2e-4?Math.exp(Ee)-1:Ee+Ee*Ee/2+Ee*Ee*Ee/6};function formatNumberToBase(Ee,ze,Be){var Ue={2:"0b",8:"0o",16:"0x"}[ze],We="";if(Be){if(Be<1)throw new Error("size must be in greater than 0");if(!number_isInteger(Be))throw new Error("size must be an integer");if(Ee>2**(Be-1)-1||Ee<-(2**(Be-1)))throw new Error("Value must be in range [-2^".concat(Be-1,", 2^").concat(Be-1,"-1]"));if(!number_isInteger(Ee))throw new Error("Value must be an integer");Ee<0&&(Ee+=2**Be),We="i".concat(Be)}var $e="";return Ee<0&&(Ee=-Ee,$e="-"),"".concat($e).concat(Ue).concat(Ee.toString(ze)).concat(We)}function number_format(Ee,ze){if("function"==typeof ze)return ze(Ee);if(Ee===1/0)return"Infinity";if(Ee===-1/0)return"-Infinity";if(isNaN(Ee))return"NaN";var Be,Ue,We="auto";if(ze&&(ze.notation&&(We=ze.notation),isNumber(ze)?Be=ze:isNumber(ze.precision)&&(Be=ze.precision),ze.wordSize&&"number"!=typeof(Ue=ze.wordSize)))throw new Error('Option "wordSize" must be a number');switch(We){case"fixed":return toFixed(Ee,Be);case"exponential":return toExponential(Ee,Be);case"engineering":return function toEngineering(Ee,ze){if(isNaN(Ee)||!isFinite(Ee))return String(Ee);var Be=roundDigits(splitNumber(Ee),ze),Ue=Be.exponent,We=Be.coefficients,$e=Ue%3==0?Ue:Ue<0?Ue-3-Ue%3:Ue-Ue%3;if(isNumber(ze))for(;ze>We.length||Ue-$e+1>We.length;)We.push(0);else for(var Qe=Math.abs(Ue-$e)-(We.length-1),rt=0;rt0;)at++,it--;var ct=We.slice(at).join(""),ft=isNumber(ze)&&ct.length||ct.match(/[1-9]/)?"."+ct:"",xt=We.slice(0,at).join("")+ft+"e"+(Ue>=0?"+":"")+$e.toString();return Be.sign+xt}(Ee,Be);case"bin":return formatNumberToBase(Ee,2,Ue);case"oct":return formatNumberToBase(Ee,8,Ue);case"hex":return formatNumberToBase(Ee,16,Ue);case"auto":return function toPrecision(Ee,ze,Be){if(isNaN(Ee)||!isFinite(Ee))return String(Ee);var Ue=Be&&void 0!==Be.lowerExp?Be.lowerExp:-3,We=Be&&void 0!==Be.upperExp?Be.upperExp:5,$e=splitNumber(Ee),Qe=ze?roundDigits($e,ze):$e;if(Qe.exponent=We)return toExponential(Ee,ze);var rt=Qe.coefficients,it=Qe.exponent;rt.length0?it:0;return at0?"."+We.join(""):"")+"e"+($e>=0?"+":"")+$e}function roundDigits(Ee,ze){for(var Be={sign:Ee.sign,coefficients:Ee.coefficients,exponent:Ee.exponent},Ue=Be.coefficients;ze<=0;)Ue.unshift(0),Be.exponent++,ze++;if(Ue.length>ze&&Ue.splice(ze,Ue.length-ze)[0]>=5){var We=ze-1;for(Ue[We]++;10===Ue[We];)Ue.pop(),0===We&&(Ue.unshift(0),Be.exponent++,We++),Ue[--We]++}return Be}function number_zeros(Ee){for(var ze=[],Be=0;Be=0?"+":"")+Ue.toString()}(Ee,Be);case"bin":return formatBigNumberToBase(Ee,2,Ue);case"oct":return formatBigNumberToBase(Ee,8,Ue);case"hex":return formatBigNumberToBase(Ee,16,Ue);case"auto":var $e=ze&&void 0!==ze.lowerExp?ze.lowerExp:-3,Qe=ze&&void 0!==ze.upperExp?ze.upperExp:5;if(Ee.isZero())return"0";var rt=Ee.toSignificantDigits(Be),it=rt.e;return(it>=$e&&it'"'+Be+'": '+string_format(Ee[Be],ze)).join(", ")+"}":String(Ee)}function DimensionError(Ee,ze,Be){if(!(this instanceof DimensionError))throw new SyntaxError("Constructor must be called with the new operator");this.actual=Ee,this.expected=ze,this.relation=Be,this.message="Dimension mismatch ("+(Array.isArray(Ee)?"["+Ee.join(", ")+"]":Ee)+" "+(this.relation||"!=")+" "+(Array.isArray(ze)?"["+ze.join(", ")+"]":ze)+")",this.stack=(new Error).stack}function IndexError(Ee,ze,Be){if(!(this instanceof IndexError))throw new SyntaxError("Constructor must be called with the new operator");this.index=Ee,arguments.length<3?(this.min=0,this.max=ze):(this.min=ze,this.max=Be),void 0!==this.min&&this.index=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=(new Error).stack}function arraySize(Ee){for(var ze=[];Array.isArray(Ee);)ze.push(Ee.length),Ee=Ee[0];return ze}function utils_array_validate(Ee,ze){if(0===ze.length){if(Array.isArray(Ee))throw new DimensionError(Ee.length,0)}else!function array_validate(Ee,ze,Be){var Ue,We=Ee.length;if(We!==ze[Be])throw new DimensionError(We,ze[Be]);if(Be")}(Ee,ze,0)}function validateIndex(Ee,ze){if(!isNumber(Ee)||!number_isInteger(Ee))throw new TypeError("Index must be an integer (value: "+Ee+")");if(Ee<0||"number"==typeof ze&&Ee>=ze)throw new IndexError(Ee,ze)}function array_resize(Ee,ze,Be){if(!Array.isArray(Ee)||!Array.isArray(ze))throw new TypeError("Array expected");if(0===ze.length)throw new Error("Resizing to scalar is not supported");return ze.forEach((function(Ee){if(!isNumber(Ee)||!number_isInteger(Ee)||Ee<0)throw new TypeError("Invalid size, must contain positive integers (size: "+string_format(ze)+")")})),function utils_array_resize(Ee,ze,Be,Ue){var We,$e,Qe=Ee.length,rt=ze[Be],it=Math.min(Qe,rt);if(Ee.length=rt,Be=0){if(!(ze%Be==0))throw new Error("Could not replace wildcard, since "+ze+" is no multiple of "+-Be);Ue[We]=-ze/Be}return Ue}function array_product(Ee){return Ee.reduce((Ee,ze)=>Ee*ze,1)}function unsqueeze(Ee,ze,Be,Ue){var We=Ue||arraySize(Ee);if(Be)for(var $e=0;$e!function isOptionalDependency(Ee){return Ee&&"?"===Ee[0]}(Ee)).every(Ee=>void 0!==Be[Ee])){var Ue=ze.filter(Ee=>void 0===Be[Ee]);throw new Error('Cannot create function "'.concat(Ee,'", ')+"some dependencies are missing: ".concat(Ue.map(Ee=>'"'.concat(Ee,'"')).join(", "),"."))}}(Ee,ze,Ue),Be(We)}return assertAndCreate.isFactory=!0,assertAndCreate.fn=Ee,assertAndCreate.dependencies=ze.slice().sort(),Ue&&(assertAndCreate.meta=Ue),assertAndCreate}function stripOptionalNotation(Ee){return Ee&&"?"===Ee[0]?Ee.slice(1):Ee}DimensionError.prototype=new RangeError,DimensionError.prototype.constructor=RangeError,DimensionError.prototype.name="DimensionError",DimensionError.prototype.isDimensionError=!0,IndexError.prototype=new RangeError,IndexError.prototype.constructor=RangeError,IndexError.prototype.name="IndexError",IndexError.prototype.isIndexError=!0;var Ns=Be("edaf"),js=Be.n(Ns),Hs=factory_factory("Complex",[],()=>(js.a.prototype.type="Complex",js.a.prototype.isComplex=!0,js.a.prototype.toJSON=function(){return{mathjs:"Complex",re:this.re,im:this.im}},js.a.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},js.a.prototype.format=function(Ee){var ze=this.im,Be=this.re,Ue=number_format(this.re,Ee),We=number_format(this.im,Ee),$e=isNumber(Ee)?Ee:Ee?Ee.precision:null;if(null!==$e){var Qe=Math.pow(10,-$e);Math.abs(Be/ze)ze.re?1:Ee.reze.im?1:Ee.im1&&void 0!==arguments[1]?arguments[1]:{};return Be=null==Be?Number.POSITIVE_INFINITY:Be,ze=null==ze?JSON.stringify:ze,function memoize(){"object"!=typeof memoize.cache&&(memoize.cache={values:new Map,lru:lruQueue(Be||Number.POSITIVE_INFINITY)});for(var Ue=[],We=0;We{var{on:ze,config:Be}=Ee,Ue=Zs.a.clone({precision:Be.precision,modulo:Zs.a.EUCLID});return Ue.prototype=Object.create(Ue.prototype),Ue.prototype.type="BigNumber",Ue.prototype.isBigNumber=!0,Ue.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},Ue.fromJSON=function(Ee){return new Ue(Ee.value)},ze&&ze("config",(function(Ee,ze){Ee.precision!==ze.precision&&Ue.config({precision:Ee.precision})})),Ue},{isClass:!0}),$s=factory_factory("Matrix",[],()=>{function Matrix(){if(!(this instanceof Matrix))throw new SyntaxError("Constructor must be called with the new operator")}return Matrix.prototype.type="Matrix",Matrix.prototype.isMatrix=!0,Matrix.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},Matrix.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},Matrix.prototype.create=function(Ee,ze){throw new Error("Cannot invoke create on a Matrix interface")},Matrix.prototype.subset=function(Ee,ze,Be){throw new Error("Cannot invoke subset on a Matrix interface")},Matrix.prototype.get=function(Ee){throw new Error("Cannot invoke get on a Matrix interface")},Matrix.prototype.set=function(Ee,ze,Be){throw new Error("Cannot invoke set on a Matrix interface")},Matrix.prototype.resize=function(Ee,ze){throw new Error("Cannot invoke resize on a Matrix interface")},Matrix.prototype.reshape=function(Ee,ze){throw new Error("Cannot invoke reshape on a Matrix interface")},Matrix.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},Matrix.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},Matrix.prototype.map=function(Ee,ze){throw new Error("Cannot invoke map on a Matrix interface")},Matrix.prototype.forEach=function(Ee){throw new Error("Cannot invoke forEach on a Matrix interface")},Matrix.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},Matrix.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},Matrix.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},Matrix.prototype.format=function(Ee){throw new Error("Cannot invoke format on a Matrix interface")},Matrix.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},Matrix},{isClass:!0});numberFactory("fineStructure",.0072973525693),numberFactory("weakMixingAngle",.2229),numberFactory("efimovFactor",22.7),numberFactory("sackurTetrode",-1.16487052358);function numberFactory(Ee,ze){return factory_factory(Ee,["config","BigNumber"],Ee=>{var{config:Be,BigNumber:Ue}=Ee;return"BigNumber"===Be.number?new Ue(ze):ze})}var Ks=Be("d61e"),Qs=Be.n(Ks),cl=factory_factory("Fraction",[],()=>(Qs.a.prototype.type="Fraction",Qs.a.prototype.isFraction=!0,Qs.a.prototype.toJSON=function(){return{mathjs:"Fraction",n:this.s*this.n,d:this.d}},Qs.a.fromJSON=function(Ee){return new Qs.a(Ee)},Qs.a),{isClass:!0}),fl=factory_factory("DenseMatrix",["Matrix"],Ee=>{var{Matrix:ze}=Ee;function DenseMatrix(Ee,ze){if(!(this instanceof DenseMatrix))throw new SyntaxError("Constructor must be called with the new operator");if(ze&&!isString(ze))throw new Error("Invalid datatype: "+ze);if(isMatrix(Ee))"DenseMatrix"===Ee.type?(this._data=clone(Ee._data),this._size=clone(Ee._size),this._datatype=ze||Ee._datatype):(this._data=Ee.toArray(),this._size=Ee.size(),this._datatype=ze||Ee._datatype);else if(Ee&&cs(Ee.data)&&cs(Ee.size))this._data=Ee.data,this._size=Ee.size,utils_array_validate(this._data,this._size),this._datatype=ze||Ee.datatype;else if(cs(Ee))this._data=function preprocess(Ee){for(var ze=0,Be=Ee.length;ze");_fit(Ee,ze.max().map((function(Ee){return Ee+1})),Ue);var at=$e.length;!function _setSubmatrix(Ee,ze,Be,Ue,We){var $e=We===Ue-1,Qe=ze.dimension(We);$e?Qe.forEach((function(ze,Ue){validateIndex(ze),Ee[ze]=Be[Ue[0]]})):Qe.forEach((function($e,Qe){validateIndex($e),_setSubmatrix(Ee[$e],ze,Be[Qe[0]],Ue,We+1)}))}(Ee._data,ze,Be,at,0)}return Ee}function _resize(Ee,ze,Be){if(0===ze.length){for(var Ue=Ee._data;cs(Ue);)Ue=Ue[0];return Ue}return Ee._size=ze.slice(0),Ee._data=array_resize(Ee._data,Ee._size,Be),Ee}function _fit(Ee,ze,Be){for(var Ue=Ee._size.slice(0),We=!1;Ue.lengthUe[$e]&&(Ue[$e]=ze[$e],We=!0);We&&_resize(Ee,Ue,Be)}return DenseMatrix.prototype=new ze,DenseMatrix.prototype.createDenseMatrix=function(Ee,ze){return new DenseMatrix(Ee,ze)},DenseMatrix.prototype.type="DenseMatrix",DenseMatrix.prototype.isDenseMatrix=!0,DenseMatrix.prototype.getDataType=function(){return getArrayDataType(this._data,typeOf)},DenseMatrix.prototype.storage=function(){return"dense"},DenseMatrix.prototype.datatype=function(){return this._datatype},DenseMatrix.prototype.create=function(Ee,ze){return new DenseMatrix(Ee,ze)},DenseMatrix.prototype.subset=function(Ee,ze,Be){switch(arguments.length){case 1:return _get(this,Ee);case 2:case 3:return _set(this,Ee,ze,Be);default:throw new SyntaxError("Wrong number of arguments")}},DenseMatrix.prototype.get=function(Ee){if(!cs(Ee))throw new TypeError("Array expected");if(Ee.length!==this._size.length)throw new DimensionError(Ee.length,this._size.length);for(var ze=0;zeArray.isArray(Ee)&&1===Ee.length?Ee[0]:Ee);return _resize(Be?this.clone():this,Ue,ze)},DenseMatrix.prototype.reshape=function(Ee,ze){var Be=ze?this.clone():this;Be._data=reshape(Be._data,Ee);var Ue=Be._size.reduce((Ee,ze)=>Ee*ze);return Be._size=processSizesWildcard(Ee,Ue),Be},DenseMatrix.prototype.clone=function(){return new DenseMatrix({data:clone(this._data),size:clone(this._size),datatype:this._datatype})},DenseMatrix.prototype.size=function(){return this._size.slice(0)},DenseMatrix.prototype.map=function(Ee){var ze=this,Be=function recurse(Be,Ue){return cs(Be)?Be.map((function(Ee,ze){return recurse(Ee,Ue.concat(ze))})):Ee(Be,Ue,ze)}(this._data,[]);return new DenseMatrix(Be,void 0!==this._datatype?getArrayDataType(Be,typeOf):void 0)},DenseMatrix.prototype.forEach=function(Ee){var ze=this;!function recurse(Be,Ue){cs(Be)?Be.forEach((function(Ee,ze){recurse(Ee,Ue.concat(ze))})):Ee(Be,Ue,ze)}(this._data,[])},DenseMatrix.prototype[Symbol.iterator]=function*(){yield*function*recurse(Ee,ze){if(cs(Ee))for(var Be=0;Be[Ee[Be]]);ze.push(new DenseMatrix(We,Ee._datatype))},$e=0;$e0?Ee:0,Be=Ee<0?-Ee:0,Ue=this._size[0],We=this._size[1],$e=Math.min(Ue-Be,We-ze),Qe=[],rt=0;rt<$e;rt++)Qe[rt]=this._data[rt+Be][rt+ze];return new DenseMatrix({data:Qe,size:[$e],datatype:this._datatype})},DenseMatrix.diagonal=function(Ee,ze,Be,Ue){if(!cs(Ee))throw new TypeError("Array expected, size parameter");if(2!==Ee.length)throw new Error("Only two dimensions matrix are supported");if(Ee=Ee.map((function(Ee){if(isBigNumber(Ee)&&(Ee=Ee.toNumber()),!isNumber(Ee)||!number_isInteger(Ee)||Ee<1)throw new Error("Size values must be positive integers");return Ee})),Be){if(isBigNumber(Be)&&(Be=Be.toNumber()),!isNumber(Be)||!number_isInteger(Be))throw new TypeError("The parameter k must be an integer number")}else Be=0;var We,$e=Be>0?Be:0,Qe=Be<0?-Be:0,rt=Ee[0],it=Ee[1],at=Math.min(rt-Qe,it-$e);if(cs(ze)){if(ze.length!==at)throw new Error("Invalid value array length");We=function _value(Ee){return ze[Ee]}}else if(isMatrix(ze)){var ct=ze.size();if(1!==ct.length||ct[0]!==at)throw new Error("Invalid matrix length");We=function _value(Ee){return ze.get([Ee])}}else We=function _value(){return ze};Ue||(Ue=isBigNumber(We(0))?We(0).mul(0):0);var ft=[];if(Ee.length>0){ft=array_resize(ft,Ee,Ue);for(var xt=0;xt15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+Ee+"). Use function bignumber(x) to convert to BigNumber.");return new ze(Ee)}},{from:"number",to:"Complex",convert:function convert(Ee){return Be||throwNoComplex(Ee),new Be(Ee,0)}},{from:"number",to:"string",convert:function convert(Ee){return Ee+""}},{from:"BigNumber",to:"Complex",convert:function convert(Ee){return Be||throwNoComplex(Ee),new Be(Ee.toNumber(),0)}},{from:"Fraction",to:"BigNumber",convert:function convert(Ee){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function convert(Ee){return Be||throwNoComplex(Ee),new Be(Ee.valueOf(),0)}},{from:"number",to:"Fraction",convert:function convert(Ee){We||throwNoFraction(Ee);var ze=new We(Ee);if(ze.valueOf()!==Ee)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+Ee+"). Use function fraction(x) to convert to Fraction.");return ze}},{from:"string",to:"number",convert:function convert(Ee){var ze=Number(Ee);if(isNaN(ze))throw new Error('Cannot convert "'+Ee+'" to a number');return ze}},{from:"string",to:"BigNumber",convert:function convert(Ee){ze||throwNoBignumber(Ee);try{return new ze(Ee)}catch(ze){throw new Error('Cannot convert "'+Ee+'" to BigNumber')}}},{from:"string",to:"Fraction",convert:function convert(Ee){We||throwNoFraction(Ee);try{return new We(Ee)}catch(ze){throw new Error('Cannot convert "'+Ee+'" to Fraction')}}},{from:"string",to:"Complex",convert:function convert(Ee){Be||throwNoComplex(Ee);try{return new Be(Ee)}catch(ze){throw new Error('Cannot convert "'+Ee+'" to Complex')}}},{from:"boolean",to:"number",convert:function convert(Ee){return+Ee}},{from:"boolean",to:"BigNumber",convert:function convert(Ee){return ze||throwNoBignumber(Ee),new ze(+Ee)}},{from:"boolean",to:"Fraction",convert:function convert(Ee){return We||throwNoFraction(Ee),new We(+Ee)}},{from:"boolean",to:"string",convert:function convert(Ee){return String(Ee)}},{from:"Array",to:"Matrix",convert:function convert(Ee){return Ue||function throwNoMatrix(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}(),new Ue(Ee)}},{from:"Matrix",to:"Array",convert:function convert(Ee){return Ee.valueOf()}}],$e}));function throwNoBignumber(Ee){throw new Error("Cannot convert value ".concat(Ee," into a BigNumber: no class 'BigNumber' provided"))}function throwNoComplex(Ee){throw new Error("Cannot convert value ".concat(Ee," into a Complex number: no class 'Complex' provided"))}function throwNoFraction(Ee){throw new Error("Cannot convert value ".concat(Ee," into a Fraction, no class 'Fraction' provided."))}function containsCollections(Ee){for(var ze=0;ze=Ue.length)throw new IndexError(ze,Ue.length);return isMatrix(Ee)?Ee.create(_reduce(Ee.valueOf(),ze,Be)):_reduce(Ee,ze,Be)}function _reduce(Ee,ze,Be){var Ue,We,$e,Qe;if(ze<=0){if(Array.isArray(Ee[0])){for(Qe=function _switch(Ee){var ze,Be,Ue=Ee.length,We=Ee[0].length,$e=[];for(Be=0;Be{var{typed:ze}=Ee;return ze("isInteger",{number:number_isInteger,BigNumber:function BigNumber(Ee){return Ee.isInt()},Fraction:function Fraction(Ee){return 1===Ee.d&&isFinite(Ee.n)},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this)}})}),Al=factory_factory("isNumeric",["typed"],Ee=>{var{typed:ze}=Ee;return ze("isNumeric",{"number | BigNumber | Fraction | boolean":function numberBigNumberFractionBoolean(){return!0},"Complex | Unit | string | null | undefined | Node":function ComplexUnitStringNullUndefinedNode(){return!1},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this)}})}),Ml="number";function isNegativeNumber(Ee){return Ee<0}function isPositiveNumber(Ee){return Ee>0}function isZeroNumber(Ee){return 0===Ee}function isNaNNumber(Ee){return Number.isNaN(Ee)}isNegativeNumber.signature=Ml,isPositiveNumber.signature=Ml,isZeroNumber.signature=Ml,isNaNNumber.signature=Ml;var Sl=factory_factory("isNaN",["typed"],Ee=>{var{typed:ze}=Ee;return ze("isNaN",{number:isNaNNumber,BigNumber:function BigNumber(Ee){return Ee.isNaN()},Fraction:function Fraction(Ee){return!1},Complex:function Complex(Ee){return Ee.isNaN()},Unit:function Unit(Ee){return Number.isNaN(Ee.value)},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,Number.isNaN)}})});function nearlyEqual_nearlyEqual(Ee,ze,Be){if(null==Be)return Ee.eq(ze);if(Ee.eq(ze))return!0;if(Ee.isNaN()||ze.isNaN())return!1;if(Ee.isFinite()&&ze.isFinite()){var Ue=Ee.minus(ze).abs();if(Ue.isZero())return!0;var We=Ee.constructor.max(Ee.abs(),ze.abs());return Ue.lte(We.times(Be))}return!1}var Cl=factory_factory("equalScalar",["typed","config"],Ee=>{var{typed:ze,config:Be}=Ee;return ze("equalScalar",{"boolean, boolean":function booleanBoolean(Ee,ze){return Ee===ze},"number, number":function numberNumber(Ee,ze){return nearlyEqual(Ee,ze,Be.epsilon)},"BigNumber, BigNumber":function BigNumberBigNumber(Ee,ze){return Ee.eq(ze)||nearlyEqual_nearlyEqual(Ee,ze,Be.epsilon)},"Fraction, Fraction":function FractionFraction(Ee,ze){return Ee.equals(ze)},"Complex, Complex":function ComplexComplex(Ee,ze){return function complexEquals(Ee,ze,Be){return nearlyEqual(Ee.re,ze.re,Be)&&nearlyEqual(Ee.im,ze.im,Be)}(Ee,ze,Be.epsilon)},"Unit, Unit":function UnitUnit(Ee,ze){if(!Ee.equalBase(ze))throw new Error("Cannot compare units with different base");return this(Ee.value,ze.value)}})});factory_factory("equalScalar",["typed","config"],Ee=>{var{typed:ze,config:Be}=Ee;return ze("equalScalar",{"number, number":function numberNumber(Ee,ze){return nearlyEqual(Ee,ze,Be.epsilon)}})});var El=factory_factory("number",["typed"],Ee=>{var{typed:ze}=Ee,Be=ze("number",{"":function _(){return 0},number:function number(Ee){return Ee},string:function string(Ee){if("NaN"===Ee)return NaN;var ze=function getNonDecimalNumberParts(Ee){var ze=Ee.match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/);return ze?{input:Ee,radix:{"0b":2,"0o":8,"0x":16}[ze[1]],integerPart:ze[2],fractionalPart:ze[3]}:null}(Ee);if(ze)return function makeNumberFromNonDecimalParts(Ee){for(var ze=parseInt(Ee.integerPart,Ee.radix),Be=0,Ue=0;Ue2**Be-1)throw new SyntaxError('String "'.concat(Ee,'" is out of range'));We>=2**(Be-1)&&(We-=2**Be)}return We},BigNumber:function BigNumber(Ee){return Ee.toNumber()},Fraction:function Fraction(Ee){return Ee.valueOf()},Unit:function Unit(Ee){throw new Error("Second argument with valueless unit expected")},null:function _null(Ee){return 0},"Unit, string | Unit":function UnitStringUnit(Ee,ze){return Ee.toNumber(ze)},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this)}});return Be.fromJSON=function(Ee){return parseFloat(Ee.value)},Be}),Pl="number, number";function absNumber(Ee){return Math.abs(Ee)}function addNumber(Ee,ze){return Ee+ze}function multiplyNumber(Ee,ze){return Ee*ze}function unaryMinusNumber(Ee){return-Ee}function unaryPlusNumber(Ee){return Ee}function cbrtNumber(Ee){return Ms(Ee)}function ceilNumber(Ee){return Math.ceil(Ee)}function cubeNumber(Ee){return Ee*Ee*Ee}function expNumber(Ee){return Math.exp(Ee)}function expm1Number(Ee){return Ss(Ee)}function gcdNumber(Ee,ze){if(!number_isInteger(Ee)||!number_isInteger(ze))throw new Error("Parameters in function gcd must be integer numbers");for(var Be;0!==ze;)Be=Ee%ze,Ee=ze,ze=Be;return Ee<0?-Ee:Ee}function lcmNumber(Ee,ze){if(!number_isInteger(Ee)||!number_isInteger(ze))throw new Error("Parameters in function lcm must be integer numbers");if(0===Ee||0===ze)return 0;for(var Be,Ue=Ee*ze;0!==ze;)ze=Ee%(Be=ze),Ee=Be;return Math.abs(Ue/Ee)}function logNumber(Ee){return Math.log(Ee)}function log10Number(Ee){return ks(Ee)}function log2Number(Ee){return vs(Ee)}function modNumber(Ee,ze){if(ze>0)return Ee-ze*Math.floor(Ee/ze);if(0===ze)return Ee;throw new Error("Cannot calculate mod for a negative divisor")}function nthRootNumber(Ee,ze){var Be=ze<0;if(Be&&(ze=-ze),0===ze)throw new Error("Root must be non-zero");if(Ee<0&&Math.abs(ze)%2!=1)throw new Error("Root must be odd when a is negative.");if(0===Ee)return Be?1/0:0;if(!isFinite(Ee))return Be?0:Ee;var Ue=Math.pow(Math.abs(Ee),1/ze);return Ue=Ee<0?-Ue:Ue,Be?1/Ue:Ue}function signNumber(Ee){return ms(Ee)}function squareNumber(Ee){return Ee*Ee}function xgcdNumber(Ee,ze){var Be,Ue,We,$e=0,Qe=1,rt=1,it=0;if(!number_isInteger(Ee)||!number_isInteger(ze))throw new Error("Parameters in function xgcd must be integer numbers");for(;ze;)We=Ee-(Ue=Math.floor(Ee/ze))*ze,Be=$e,$e=Qe-Ue*$e,Qe=Be,Be=rt,rt=it-Ue*rt,it=Be,Ee=ze,ze=We;return Ee<0?[-Ee,-Qe,-it]:[Ee,Ee?Qe:0,it]}function powNumber(Ee,ze){return Ee*Ee<1&&ze===1/0||Ee*Ee>1&&ze===-1/0?0:Math.pow(Ee,ze)}function roundNumber(Ee){var ze=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return parseFloat(toFixed(Ee,ze))}absNumber.signature="number",addNumber.signature=Pl,multiplyNumber.signature=Pl,unaryMinusNumber.signature="number",unaryPlusNumber.signature="number",cbrtNumber.signature="number",ceilNumber.signature="number",cubeNumber.signature="number",expNumber.signature="number",expm1Number.signature="number",gcdNumber.signature=Pl,lcmNumber.signature=Pl,logNumber.signature="number",log10Number.signature="number",log2Number.signature="number",modNumber.signature=Pl,nthRootNumber.signature=Pl,signNumber.signature="number",squareNumber.signature="number",xgcdNumber.signature=Pl,powNumber.signature=Pl,roundNumber.signature=Pl;var Ol=factory_factory("apply",["typed","isInteger"],Ee=>{var{typed:ze,isInteger:Be}=Ee;return ze("apply",{"Array | Matrix, number | BigNumber, function":function ArrayMatrixNumberBigNumberFunction(Ee,ze,Ue){if(!Be(ze))throw new TypeError("Integer number expected for dimension");var We=Array.isArray(Ee)?arraySize(Ee):Ee.size();if(ze<0||ze>=We.length)throw new IndexError(ze,We.length);return isMatrix(Ee)?Ee.create(_apply(Ee.valueOf(),ze,Ue)):_apply(Ee,ze,Ue)}})});function _apply(Ee,ze,Be){var Ue,We,$e;if(ze<=0){if(Array.isArray(Ee[0])){for($e=function apply_switch(Ee){var ze,Be,Ue=Ee.length,We=Ee[0].length,$e=[];for(Be=0;Be{var{typed:ze}=Ee;return ze("multiplyScalar",{"number, number":multiplyNumber,"Complex, Complex":function ComplexComplex(Ee,ze){return Ee.mul(ze)},"BigNumber, BigNumber":function BigNumberBigNumber(Ee,ze){return Ee.times(ze)},"Fraction, Fraction":function FractionFraction(Ee,ze){return Ee.mul(ze)},"number | Fraction | BigNumber | Complex, Unit":function numberFractionBigNumberComplexUnit(Ee,ze){var Be=ze.clone();return Be.value=null===Be.value?Be._normalize(Ee):this(Be.value,Ee),Be},"Unit, number | Fraction | BigNumber | Complex":function UnitNumberFractionBigNumberComplex(Ee,ze){var Be=Ee.clone();return Be.value=null===Be.value?Be._normalize(ze):this(Be.value,ze),Be},"Unit, Unit":function UnitUnit(Ee,ze){return Ee.multiply(ze)}})});var Dl="number, number";function bitAndNumber(Ee,ze){if(!number_isInteger(Ee)||!number_isInteger(ze))throw new Error("Integers expected in function bitAnd");return Ee&ze}function bitNotNumber(Ee){if(!number_isInteger(Ee))throw new Error("Integer expected in function bitNot");return~Ee}function bitOrNumber(Ee,ze){if(!number_isInteger(Ee)||!number_isInteger(ze))throw new Error("Integers expected in function bitOr");return Ee|ze}function bitXorNumber(Ee,ze){if(!number_isInteger(Ee)||!number_isInteger(ze))throw new Error("Integers expected in function bitXor");return Ee^ze}function leftShiftNumber(Ee,ze){if(!number_isInteger(Ee)||!number_isInteger(ze))throw new Error("Integers expected in function leftShift");return Ee<>ze}function rightLogShiftNumber(Ee,ze){if(!number_isInteger(Ee)||!number_isInteger(ze))throw new Error("Integers expected in function rightLogShift");return Ee>>>ze}bitAndNumber.signature=Dl,bitNotNumber.signature="number",bitOrNumber.signature=Dl,bitXorNumber.signature=Dl,leftShiftNumber.signature=Dl,rightArithShiftNumber.signature=Dl,rightLogShiftNumber.signature=Dl;function notNumber(Ee){return!Ee}function orNumber(Ee,ze){return!(!Ee&&!ze)}function xorNumber(Ee,ze){return!!Ee!=!!ze}function andNumber(Ee,ze){return!(!Ee||!ze)}notNumber.signature="number",orNumber.signature="number, number",xorNumber.signature="number, number",andNumber.signature="number, number";Math.pow(2,53);var Il=factory_factory("format",["typed"],Ee=>{var{typed:ze}=Ee;return ze("format",{any:string_format,"any, Object | function | number":string_format})});factory_factory("oct",["typed","format"],Ee=>{var{typed:ze,format:Be}=Ee;return ze("oct",{"number | BigNumber":function numberBigNumber(Ee){return Be(Ee,{notation:"oct"})},"number | BigNumber, number":function numberBigNumberNumber(Ee,ze){return Be(Ee,{notation:"oct",wordSize:ze})}})});function acoshNumber(Ee){return Ls(Ee)}function acotNumber(Ee){return Math.atan(1/Ee)}function acothNumber(Ee){return isFinite(Ee)?(Math.log((Ee+1)/Ee)+Math.log(Ee/(Ee-1)))/2:0}function acscNumber(Ee){return Math.asin(1/Ee)}function acschNumber(Ee){var ze=1/Ee;return Math.log(ze+Math.sqrt(ze*ze+1))}function asecNumber(Ee){return Math.acos(1/Ee)}function asechNumber(Ee){var ze=1/Ee,Be=Math.sqrt(ze*ze-1);return Math.log(Be+ze)}function asinhNumber(Ee){return Ds(Ee)}function atanhNumber(Ee){return Rs(Ee)}function cotNumber(Ee){return 1/Math.tan(Ee)}function cothNumber(Ee){var ze=Math.exp(2*Ee);return(ze+1)/(ze-1)}function cscNumber(Ee){return 1/Math.sin(Ee)}function cschNumber(Ee){return 0===Ee?Number.POSITIVE_INFINITY:Math.abs(2/(Math.exp(Ee)-Math.exp(-Ee)))*ms(Ee)}function secNumber(Ee){return 1/Math.cos(Ee)}function sechNumber(Ee){return 2/(Math.exp(Ee)+Math.exp(-Ee))}function sinhNumber(Ee){return Bs(Ee)}acoshNumber.signature="number",acotNumber.signature="number",acothNumber.signature="number",acscNumber.signature="number",acschNumber.signature="number",asecNumber.signature="number",asechNumber.signature="number",asinhNumber.signature="number",atanhNumber.signature="number",cotNumber.signature="number",cothNumber.signature="number",cscNumber.signature="number",cschNumber.signature="number",secNumber.signature="number",sechNumber.signature="number",sinhNumber.signature="number";function product_product(Ee,ze){if(ze>1;return product_product(Ee,Be)*product_product(Be+1,ze)}function combinationsNumber(Ee,ze){if(!number_isInteger(Ee)||Ee<0)throw new TypeError("Positive integer value expected in function combinations");if(!number_isInteger(ze)||ze<0)throw new TypeError("Positive integer value expected in function combinations");if(ze>Ee)throw new TypeError("k must be less than or equal to n");var Be=Ee-ze;return ze{var{typed:ze,Fraction:Be}=Ee;return ze("fraction",{number:function number(Ee){if(!isFinite(Ee)||isNaN(Ee))throw new Error(Ee+" cannot be represented as a fraction");return new Be(Ee)},string:function string(Ee){return new Be(Ee)},"number, number":function numberNumber(Ee,ze){return new Be(Ee,ze)},null:function _null(Ee){return new Be(0)},BigNumber:function BigNumber(Ee){return new Be(Ee.toString())},Fraction:function Fraction(Ee){return Ee},Object:function Object(Ee){return new Be(Ee)},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this)}})}),Nl=factory_factory("unaryMinus",["typed"],Ee=>{var{typed:ze}=Ee;return ze("unaryMinus",{number:unaryMinusNumber,Complex:function Complex(Ee){return Ee.neg()},BigNumber:function BigNumber(Ee){return Ee.neg()},Fraction:function Fraction(Ee){return Ee.neg()},Unit:function Unit(Ee){var ze=Ee.clone();return ze.value=this(Ee.value),ze},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this,!0)}})}),Fl=factory_factory("addScalar",["typed"],Ee=>{var{typed:ze}=Ee;return ze("addScalar",{"number, number":addNumber,"Complex, Complex":function ComplexComplex(Ee,ze){return Ee.add(ze)},"BigNumber, BigNumber":function BigNumberBigNumber(Ee,ze){return Ee.plus(ze)},"Fraction, Fraction":function FractionFraction(Ee,ze){return Ee.add(ze)},"Unit, Unit":function UnitUnit(Ee,ze){if(null===Ee.value||void 0===Ee.value)throw new Error("Parameter x contains a unit with undefined value");if(null===ze.value||void 0===ze.value)throw new Error("Parameter y contains a unit with undefined value");if(!Ee.equalBase(ze))throw new Error("Units do not match");var Be=Ee.clone();return Be.value=this(Be.value,ze.value),Be.fixPrefix=!1,Be}})}),jl=factory_factory("sqrt",["config","typed","Complex"],Ee=>{var{config:ze,typed:Be,Complex:Ue}=Ee;return Be("sqrt",{number:_sqrtNumber,Complex:function Complex(Ee){return Ee.sqrt()},BigNumber:function BigNumber(Ee){return!Ee.isNegative()||ze.predictable?Ee.sqrt():_sqrtNumber(Ee.toNumber())},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this,!0)},Unit:function Unit(Ee){return Ee.pow(.5)}});function _sqrtNumber(Ee){return isNaN(Ee)?NaN:Ee>=0||ze.predictable?Math.sqrt(Ee):new Ue(Ee,0).sqrt()}}),Vl=factory_factory("conj",["typed"],Ee=>{var{typed:ze}=Ee;return ze("conj",{number:function number(Ee){return Ee},BigNumber:function BigNumber(Ee){return Ee},Complex:function Complex(Ee){return Ee.conjugate()},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this)}})});factory_factory("bin",["typed","format"],Ee=>{var{typed:ze,format:Be}=Ee;return ze("bin",{"number | BigNumber":function numberBigNumber(Ee){return Be(Ee,{notation:"bin"})},"number | BigNumber, number":function numberBigNumberNumber(Ee,ze){return Be(Ee,{notation:"bin",wordSize:ze})}})});var Ul=factory_factory("SparseMatrix",["typed","equalScalar","Matrix"],Ee=>{var{typed:ze,equalScalar:Be,Matrix:Ue}=Ee;function SparseMatrix(Ee,ze){if(!(this instanceof SparseMatrix))throw new SyntaxError("Constructor must be called with the new operator");if(ze&&!isString(ze))throw new Error("Invalid datatype: "+ze);if(isMatrix(Ee))!function _createFromMatrix(Ee,ze,Be){"SparseMatrix"===ze.type?(Ee._values=ze._values?clone(ze._values):void 0,Ee._index=clone(ze._index),Ee._ptr=clone(ze._ptr),Ee._size=clone(ze._size),Ee._datatype=Be||ze._datatype):_createFromArray(Ee,ze.valueOf(),Be||ze._datatype)}(this,Ee,ze);else if(Ee&&cs(Ee.index)&&cs(Ee.ptr)&&cs(Ee.size))this._values=Ee.values,this._index=Ee.index,this._ptr=Ee.ptr,this._size=Ee.size,this._datatype=ze||Ee.datatype;else if(cs(Ee))_createFromArray(this,Ee,ze);else{if(Ee)throw new TypeError("Unsupported type of data ("+typeOf(Ee)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=ze}}function _createFromArray(Ee,Ue,We){Ee._values=[],Ee._index=[],Ee._ptr=[],Ee._datatype=We;var $e=Ue.length,Qe=0,rt=Be,it=0;if(isString(We)&&(rt=ze.find(Be,[We,We])||Be,it=ze.convert(0,We)),$e>0){var at=0;do{Ee._ptr.push(Ee._index.length);for(var ct=0;ct<$e;ct++){var ft=Ue[ct];if(cs(ft)){if(0===at&&Qe");for(var at=ze.min()[0],ct=ze.min()[1],ft=We[0],xt=We[1],kt=0;ktLt){for(ct=Lt;ctkt){if(xt){var Ut=0;for(ct=0;ctUe-1&&(Ee._values.splice(ft,1),Ee._index.splice(ft,1),tr++)}Ee._ptr[ct]=Ee._values.length}return Ee._size[0]=Ue,Ee._size[1]=We,Ee}function _toArray(Ee,ze,Be,Ue,We){var $e,Qe,rt=Ue[0],it=Ue[1],at=[];for($e=0;$ert-1||Qe>it-1)&&(_resize(this,Math.max($e+1,rt),Math.max(Qe+1,it),We),rt=this._size[0],it=this._size[1]),validateIndex($e,rt),validateIndex(Qe,it);var ft=_getValueIndex($e,this._ptr[Qe],this._ptr[Qe+1],this._index);return ftArray.isArray(Ee)&&1===Ee.length?Ee[0]:Ee);if(2!==Ue.length)throw new Error("Only two dimensions matrix are supported");return Ue.forEach((function(Ee){if(!isNumber(Ee)||!number_isInteger(Ee)||Ee<0)throw new TypeError("Invalid size, must contain positive integers (size: "+string_format(Ue)+")")})),_resize(Be?this.clone():this,Ue[0],Ue[1],ze)},SparseMatrix.prototype.reshape=function(Ee,ze){if(!cs(Ee))throw new TypeError("Array expected");if(2!==Ee.length)throw new Error("Sparse matrices can only be reshaped in two dimensions");Ee.forEach((function(ze){if(!isNumber(ze)||!number_isInteger(ze)||ze<=-2||0===ze)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+string_format(Ee)+")")}));var Be=this._size[0]*this._size[1];if(Be!==(Ee=processSizesWildcard(Ee,Be))[0]*Ee[1])throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var Ue=ze?this.clone():this;if(this._size[0]===Ee[0]&&this._size[1]===Ee[1])return Ue;for(var We=[],$e=0;$e=Ue&&ar<=We&&Lt(Ee._values[rr],ar-Ue,Ut-$e)}else{for(var Lr={},Qr=er;Qr "+(this._values?string_format(this._values[it],Ee):"X")}return We},SparseMatrix.prototype.toString=function(){return string_format(this.toArray())},SparseMatrix.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},SparseMatrix.prototype.diagonal=function(Ee){if(Ee){if(isBigNumber(Ee)&&(Ee=Ee.toNumber()),!isNumber(Ee)||!number_isInteger(Ee))throw new TypeError("The parameter k must be an integer number")}else Ee=0;var ze=Ee>0?Ee:0,Be=Ee<0?-Ee:0,Ue=this._size[0],We=this._size[1],$e=Math.min(Ue-Be,We-ze),Qe=[],rt=[],it=[];it[0]=0;for(var at=ze;at0?We:0,ft=We<0?-We:0,xt=Ee[0],kt=Ee[1],Lt=Math.min(xt-ft,kt-ct);if(cs(Ue)){if(Ue.length!==Lt)throw new Error("Invalid value array length");at=function _value(Ee){return Ue[Ee]}}else if(isMatrix(Ue)){var Ut=Ue.size();if(1!==Ut.length||Ut[0]!==Lt)throw new Error("Invalid matrix length");at=function _value(Ee){return Ue.get([Ee])}}else at=function _value(){return Ue};for(var er=[],tr=[],rr=[],ar=0;ar=0&&Lr=it||We[ct]!==ze)){var xt=Ue?Ue[at]:void 0;We.splice(ct,0,ze),Ue&&Ue.splice(ct,0,xt),We.splice(ct<=at?at+1:at,1),Ue&&Ue.splice(ct<=at?at+1:at,1)}else if(ct=it||We[at]!==Ee)){var kt=Ue?Ue[ct]:void 0;We.splice(at,0,Ee),Ue&&Ue.splice(at,0,kt),We.splice(at<=ct?ct+1:ct,1),Ue&&Ue.splice(at<=ct?ct+1:ct,1)}}},SparseMatrix},{isClass:!0}),Hl=factory_factory("matrix",["typed","Matrix","DenseMatrix","SparseMatrix"],Ee=>{var{typed:ze,Matrix:Be,DenseMatrix:Ue,SparseMatrix:We}=Ee;return ze("matrix",{"":function _(){return _create([])},string:function string(Ee){return _create([],Ee)},"string, string":function stringString(Ee,ze){return _create([],Ee,ze)},Array:function Array(Ee){return _create(Ee)},Matrix:function Matrix(Ee){return _create(Ee,Ee.storage())},"Array | Matrix, string":_create,"Array | Matrix, string, string":_create});function _create(Ee,ze,Be){if("dense"===ze||"default"===ze||void 0===ze)return new Ue(Ee,Be);if("sparse"===ze)return new We(Ee,Be);throw new TypeError("Unknown matrix type "+JSON.stringify(ze)+".")}}),ql=factory_factory("abs",["typed"],Ee=>{var{typed:ze}=Ee;return ze("abs",{number:absNumber,Complex:function Complex(Ee){return Ee.abs()},BigNumber:function BigNumber(Ee){return Ee.abs()},Fraction:function Fraction(Ee){return Ee.abs()},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this,!0)},Unit:function Unit(Ee){return Ee.abs()}})}),Gl=factory_factory("algorithm01",["typed"],Ee=>{var{typed:ze}=Ee;return function algorithm1(Ee,Be,Ue,We){var $e=Ee._data,Qe=Ee._size,rt=Ee._datatype,it=Be._values,at=Be._index,ct=Be._ptr,ft=Be._size,xt=Be._datatype;if(Qe.length!==ft.length)throw new DimensionError(Qe.length,ft.length);if(Qe[0]!==ft[0]||Qe[1]!==ft[1])throw new RangeError("Dimension mismatch. Matrix A ("+Qe+") must match Matrix B ("+ft+")");if(!it)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var kt,Lt,Ut=Qe[0],er=Qe[1],tr="string"==typeof rt&&rt===xt?rt:void 0,rr=tr?ze.find(Ue,[tr,tr]):Ue,ar=[];for(kt=0;kt{var{typed:ze,equalScalar:Be}=Ee;return function algorithm04(Ee,Ue,We){var $e=Ee._values,Qe=Ee._index,rt=Ee._ptr,it=Ee._size,at=Ee._datatype,ct=Ue._values,ft=Ue._index,xt=Ue._ptr,kt=Ue._size,Lt=Ue._datatype;if(it.length!==kt.length)throw new DimensionError(it.length,kt.length);if(it[0]!==kt[0]||it[1]!==kt[1])throw new RangeError("Dimension mismatch. Matrix A ("+it+") must match Matrix B ("+kt+")");var Ut,er=it[0],tr=it[1],rr=Be,ar=0,Lr=We;"string"==typeof at&&at===Lt&&(Ut=at,rr=ze.find(Be,[Ut,Ut]),ar=ze.convert(0,Ut),Lr=ze.find(We,[Ut,Ut]));var Qr,on,sn,cn,un,hn=$e&&ct?[]:void 0,dn=[],vn=[],yn=$e&&ct?[]:void 0,_n=$e&&ct?[]:void 0,Mn=[],Cn=[];for(on=0;on{var{typed:ze,DenseMatrix:Be}=Ee;return function algorithm10(Ee,Ue,We,$e){var Qe=Ee._values,rt=Ee._index,it=Ee._ptr,at=Ee._size,ct=Ee._datatype;if(!Qe)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var ft,xt=at[0],kt=at[1],Lt=We;"string"==typeof ct&&(ft=ct,Ue=ze.convert(Ue,ft),Lt=ze.find(We,[ft,ft]));for(var Ut=[],er=[],tr=[],rr=0;rr{var{typed:ze}=Ee;return function algorithm13(Ee,Be,Ue){var We,$e=Ee._data,Qe=Ee._size,rt=Ee._datatype,it=Be._data,at=Be._size,ct=Be._datatype,ft=[];if(Qe.length!==at.length)throw new DimensionError(Qe.length,at.length);for(var xt=0;xt0?function _iterate(Ee,ze,Be,Ue,We,$e){var Qe=[];if(ze===Be.length-1)for(var rt=0;rt{var{typed:ze}=Ee;return function algorithm14(Ee,Be,Ue,We){var $e,Qe=Ee._data,rt=Ee._size,it=Ee._datatype,at=Ue;"string"==typeof it&&($e=it,Be=ze.convert(Be,$e),at=ze.find(Ue,[$e,$e]));var ct=rt.length>0?function _iterate(Ee,ze,Be,Ue,We,$e,Qe){var rt=[];if(ze===Be.length-1)for(var it=0;it{var{typed:ze}=Ee;return function algorithm03(Ee,Be,Ue,We){var $e=Ee._data,Qe=Ee._size,rt=Ee._datatype,it=Be._values,at=Be._index,ct=Be._ptr,ft=Be._size,xt=Be._datatype;if(Qe.length!==ft.length)throw new DimensionError(Qe.length,ft.length);if(Qe[0]!==ft[0]||Qe[1]!==ft[1])throw new RangeError("Dimension mismatch. Matrix A ("+Qe+") must match Matrix B ("+ft+")");if(!it)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var kt,Lt=Qe[0],Ut=Qe[1],er=0,tr=Ue;"string"==typeof rt&&rt===xt&&(kt=rt,er=ze.convert(0,kt),tr=ze.find(Ue,[kt,kt]));for(var rr=[],ar=0;ar{var{typed:ze,equalScalar:Be}=Ee;return function algorithm05(Ee,Ue,We){var $e=Ee._values,Qe=Ee._index,rt=Ee._ptr,it=Ee._size,at=Ee._datatype,ct=Ue._values,ft=Ue._index,xt=Ue._ptr,kt=Ue._size,Lt=Ue._datatype;if(it.length!==kt.length)throw new DimensionError(it.length,kt.length);if(it[0]!==kt[0]||it[1]!==kt[1])throw new RangeError("Dimension mismatch. Matrix A ("+it+") must match Matrix B ("+kt+")");var Ut,er=it[0],tr=it[1],rr=Be,ar=0,Lr=We;"string"==typeof at&&at===Lt&&(Ut=at,rr=ze.find(Be,[Ut,Ut]),ar=ze.convert(0,Ut),Lr=ze.find(We,[Ut,Ut]));var Qr,on,sn,cn,un=$e&&ct?[]:void 0,hn=[],dn=[],vn=un?[]:void 0,yn=un?[]:void 0,_n=[],Mn=[];for(on=0;on{var{typed:ze,equalScalar:Be}=Ee;return function algorithm11(Ee,Ue,We,$e){var Qe=Ee._values,rt=Ee._index,it=Ee._ptr,at=Ee._size,ct=Ee._datatype;if(!Qe)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var ft,xt=at[0],kt=at[1],Lt=Be,Ut=0,er=We;"string"==typeof ct&&(ft=ct,Lt=ze.find(Be,[ft,ft]),Ut=ze.convert(0,ft),Ue=ze.convert(Ue,ft),er=ze.find(We,[ft,ft]));for(var tr=[],rr=[],ar=[],Lr=0;Lr{var{typed:ze,DenseMatrix:Be}=Ee;return function algorithm12(Ee,Ue,We,$e){var Qe=Ee._values,rt=Ee._index,it=Ee._ptr,at=Ee._size,ct=Ee._datatype;if(!Qe)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var ft,xt=at[0],kt=at[1],Lt=We;"string"==typeof ct&&(ft=ct,Ue=ze.convert(Ue,ft),Lt=ze.find(We,[ft,ft]));for(var Ut=[],er=[],tr=[],rr=0;rr{var{typed:ze,DenseMatrix:Be}=Ee;return function algorithm07(Ee,Ue,We){var $e=Ee._size,Qe=Ee._datatype,rt=Ue._size,it=Ue._datatype;if($e.length!==rt.length)throw new DimensionError($e.length,rt.length);if($e[0]!==rt[0]||$e[1]!==rt[1])throw new RangeError("Dimension mismatch. Matrix A ("+$e+") must match Matrix B ("+rt+")");var at,ct,ft,xt=$e[0],kt=$e[1],Lt=0,Ut=We;"string"==typeof Qe&&Qe===it&&(at=Qe,Lt=ze.convert(0,at),Ut=ze.find(We,[at,at]));var er=[];for(ct=0;ct{var{typed:ze,config:Be,matrix:Ue,BigNumber:We,DenseMatrix:$e,SparseMatrix:Qe}=Ee;return ze("identity",{"":function _(){return"Matrix"===Be.matrix?Ue([]):[]},string:function string(Ee){return Ue(Ee)},"number | BigNumber":function numberBigNumber(Ee){return _identity(Ee,Ee,"Matrix"===Be.matrix?"dense":void 0)},"number | BigNumber, string":function numberBigNumberString(Ee,ze){return _identity(Ee,Ee,ze)},"number | BigNumber, number | BigNumber":function numberBigNumberNumberBigNumber(Ee,ze){return _identity(Ee,ze,"Matrix"===Be.matrix?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function numberBigNumberNumberBigNumberString(Ee,ze,Be){return _identity(Ee,ze,Be)},Array:function Array(Ee){return _identityVector(Ee)},"Array, string":function ArrayString(Ee,ze){return _identityVector(Ee,ze)},Matrix:function Matrix(Ee){return _identityVector(Ee.valueOf(),Ee.storage())},"Matrix, string":function MatrixString(Ee,ze){return _identityVector(Ee.valueOf(),ze)}});function _identityVector(Ee,ze){switch(Ee.length){case 0:return ze?Ue(ze):[];case 1:return _identity(Ee[0],Ee[0],ze);case 2:return _identity(Ee[0],Ee[1],ze);default:throw new Error("Vector containing two values expected")}}function _identity(Ee,ze,Be){var Ue=isBigNumber(Ee)||isBigNumber(ze)?We:null;if(isBigNumber(Ee)&&(Ee=Ee.toNumber()),isBigNumber(ze)&&(ze=ze.toNumber()),!number_isInteger(Ee)||Ee<1)throw new Error("Parameters in function identity must be positive integers");if(!number_isInteger(ze)||ze<1)throw new Error("Parameters in function identity must be positive integers");var rt=Ue?new We(1):1,it=Ue?new Ue(0):0,at=[Ee,ze];if(Be){if("sparse"===Be)return Qe.diagonal(at,rt,0,it);if("dense"===Be)return $e.diagonal(at,rt,0,it);throw new TypeError('Unknown matrix type "'.concat(Be,'"'))}for(var ct=array_resize([],at,it),ft=Ee{var{typed:ze,config:Be,matrix:Ue}=Ee;return ze("size",{Matrix:function Matrix(Ee){return Ee.create(Ee.size())},Array:arraySize,string:function string(Ee){return"Array"===Be.matrix?[Ee.length]:Ue([Ee.length])},"number | Complex | BigNumber | Unit | boolean | null":function numberComplexBigNumberUnitBooleanNull(Ee){return"Array"===Be.matrix?[]:Ue?Ue([]):noMatrix()}})});factory_factory("hex",["typed","format"],Ee=>{var{typed:ze,format:Be}=Ee;return ze("hex",{"number | BigNumber":function numberBigNumber(Ee){return Be(Ee,{notation:"hex"})},"number | BigNumber, number":function numberBigNumberNumber(Ee,ze){return Be(Ee,{notation:"hex",wordSize:ze})}})}),Be("9523");var nc=factory_factory("compare",["typed","config","matrix","equalScalar","BigNumber","Fraction","DenseMatrix"],Ee=>{var{typed:ze,config:Be,equalScalar:Ue,matrix:We,BigNumber:$e,Fraction:Qe,DenseMatrix:rt}=Ee,it=$l({typed:ze}),at=Kl({typed:ze,equalScalar:Ue}),ct=Ql({typed:ze,DenseMatrix:rt}),ft=Zl({typed:ze}),xt=Xl({typed:ze});return ze("compare",{"boolean, boolean":function booleanBoolean(Ee,ze){return Ee===ze?0:Ee>ze?1:-1},"number, number":function numberNumber(Ee,ze){return nearlyEqual(Ee,ze,Be.epsilon)?0:Ee>ze?1:-1},"BigNumber, BigNumber":function BigNumberBigNumber(Ee,ze){return nearlyEqual_nearlyEqual(Ee,ze,Be.epsilon)?new $e(0):new $e(Ee.cmp(ze))},"Fraction, Fraction":function FractionFraction(Ee,ze){return new Qe(Ee.compare(ze))},"Complex, Complex":function ComplexComplex(){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function UnitUnit(Ee,ze){if(!Ee.equalBase(ze))throw new Error("Cannot compare units with different base");return this(Ee.value,ze.value)},"SparseMatrix, SparseMatrix":function SparseMatrixSparseMatrix(Ee,ze){return at(Ee,ze,this)},"SparseMatrix, DenseMatrix":function SparseMatrixDenseMatrix(Ee,ze){return it(ze,Ee,this,!0)},"DenseMatrix, SparseMatrix":function DenseMatrixSparseMatrix(Ee,ze){return it(Ee,ze,this,!1)},"DenseMatrix, DenseMatrix":function DenseMatrixDenseMatrix(Ee,ze){return ft(Ee,ze,this)},"Array, Array":function ArrayArray(Ee,ze){return this(We(Ee),We(ze)).valueOf()},"Array, Matrix":function ArrayMatrix(Ee,ze){return this(We(Ee),ze)},"Matrix, Array":function MatrixArray(Ee,ze){return this(Ee,We(ze))},"SparseMatrix, any":function SparseMatrixAny(Ee,ze){return ct(Ee,ze,this,!1)},"DenseMatrix, any":function DenseMatrixAny(Ee,ze){return xt(Ee,ze,this,!1)},"any, SparseMatrix":function anySparseMatrix(Ee,ze){return ct(ze,Ee,this,!0)},"any, DenseMatrix":function anyDenseMatrix(Ee,ze){return xt(ze,Ee,this,!0)},"Array, any":function ArrayAny(Ee,ze){return xt(We(Ee),ze,this,!1).valueOf()},"any, Array":function anyArray(Ee,ze){return xt(We(ze),Ee,this,!0).valueOf()}})}),ic=factory_factory("smaller",["typed","config","matrix","DenseMatrix"],Ee=>{var{typed:ze,config:Be,matrix:Ue,DenseMatrix:We}=Ee,$e=$l({typed:ze}),Qe=ec({typed:ze,DenseMatrix:We}),rt=Ql({typed:ze,DenseMatrix:We}),it=Zl({typed:ze}),at=Xl({typed:ze});return ze("smaller",{"boolean, boolean":function booleanBoolean(Ee,ze){return Ee{var{typed:ze,config:Be,matrix:Ue,DenseMatrix:We}=Ee,$e=$l({typed:ze}),Qe=ec({typed:ze,DenseMatrix:We}),rt=Ql({typed:ze,DenseMatrix:We}),it=Zl({typed:ze}),at=Xl({typed:ze});return ze("larger",{"boolean, boolean":function booleanBoolean(Ee,ze){return Ee>ze},"number, number":function numberNumber(Ee,ze){return Ee>ze&&!nearlyEqual(Ee,ze,Be.epsilon)},"BigNumber, BigNumber":function BigNumberBigNumber(Ee,ze){return Ee.gt(ze)&&!nearlyEqual_nearlyEqual(Ee,ze,Be.epsilon)},"Fraction, Fraction":function FractionFraction(Ee,ze){return 1===Ee.compare(ze)},"Complex, Complex":function ComplexComplex(){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function UnitUnit(Ee,ze){if(!Ee.equalBase(ze))throw new Error("Cannot compare units with different base");return this(Ee.value,ze.value)},"SparseMatrix, SparseMatrix":function SparseMatrixSparseMatrix(Ee,ze){return Qe(Ee,ze,this)},"SparseMatrix, DenseMatrix":function SparseMatrixDenseMatrix(Ee,ze){return $e(ze,Ee,this,!0)},"DenseMatrix, SparseMatrix":function DenseMatrixSparseMatrix(Ee,ze){return $e(Ee,ze,this,!1)},"DenseMatrix, DenseMatrix":function DenseMatrixDenseMatrix(Ee,ze){return it(Ee,ze,this)},"Array, Array":function ArrayArray(Ee,ze){return this(Ue(Ee),Ue(ze)).valueOf()},"Array, Matrix":function ArrayMatrix(Ee,ze){return this(Ue(Ee),ze)},"Matrix, Array":function MatrixArray(Ee,ze){return this(Ee,Ue(ze))},"SparseMatrix, any":function SparseMatrixAny(Ee,ze){return rt(Ee,ze,this,!1)},"DenseMatrix, any":function DenseMatrixAny(Ee,ze){return at(Ee,ze,this,!1)},"any, SparseMatrix":function anySparseMatrix(Ee,ze){return rt(ze,Ee,this,!0)},"any, DenseMatrix":function anyDenseMatrix(Ee,ze){return at(ze,Ee,this,!0)},"Array, any":function ArrayAny(Ee,ze){return at(Ue(Ee),ze,this,!1).valueOf()},"any, Array":function anyArray(Ee,ze){return at(Ue(ze),Ee,this,!0).valueOf()}})}),oc=(factory_factory("unequal",["typed","equalScalar"],Ee=>{var{typed:ze,equalScalar:Be}=Ee;return ze("unequal",{"any, any":function anyAny(Ee,ze){return null===Ee?null!==ze:null===ze?null!==Ee:void 0===Ee?void 0!==ze:void 0===ze?void 0!==Ee:!Be(Ee,ze)}})}),factory_factory("FibonacciHeap",["smaller","larger"],Ee=>{var{smaller:ze,larger:Be}=Ee,Ue=1/Math.log((1+Math.sqrt(5))/2);function FibonacciHeap(){if(!(this instanceof FibonacciHeap))throw new SyntaxError("Constructor must be called with the new operator");this._minimum=null,this._size=0}function _cut(Ee,ze,Be){ze.left.right=ze.right,ze.right.left=ze.left,Be.degree--,Be.child===ze&&(Be.child=ze.right),0===Be.degree&&(Be.child=null),ze.left=Ee,ze.right=Ee.right,Ee.right=ze,ze.right.left=ze,ze.parent=null,ze.mark=!1}FibonacciHeap.prototype.type="FibonacciHeap",FibonacciHeap.prototype.isFibonacciHeap=!0,FibonacciHeap.prototype.insert=function(Ee,Be){var Ue={key:Ee,value:Be,degree:0};if(this._minimum){var We=this._minimum;Ue.left=We,Ue.right=We.right,We.right=Ue,Ue.right.left=Ue,ze(Ee,We.key)&&(this._minimum=Ue)}else Ue.left=Ue,Ue.right=Ue,this._minimum=Ue;return this._size++,Ue},FibonacciHeap.prototype.size=function(){return this._size},FibonacciHeap.prototype.clear=function(){this._minimum=null,this._size=0},FibonacciHeap.prototype.isEmpty=function(){return 0===this._size},FibonacciHeap.prototype.extractMinimum=function(){var Ee=this._minimum;if(null===Ee)return Ee;for(var $e=this._minimum,Qe=Ee.degree,rt=Ee.child;Qe>0;){var it=rt.right;rt.left.right=rt.right,rt.right.left=rt.left,rt.left=$e,rt.right=$e.right,$e.right=rt,rt.right.left=rt,rt.parent=null,rt=it,Qe--}return Ee.left.right=Ee.right,Ee.right.left=Ee.left,$e=Ee===Ee.right?null:function _findMinimumNode(Ee,$e){var Qe,rt=Math.floor(Math.log($e)*Ue)+1,it=new Array(rt),at=0,ct=Ee;if(ct)for(at++,ct=ct.right;ct!==Ee;)at++,ct=ct.right;for(;at>0;){for(var ft=ct.degree,xt=ct.right;Qe=it[ft];){if(Be(ct.key,Qe.key)){var kt=Qe;Qe=ct,ct=kt}We(Qe,ct),it[ft]=null,ft++}it[ft]=ct,ct=xt,at--}Ee=null;for(var Lt=0;Lt{var{typed:ze,matrix:Be,addScalar:Ue,equalScalar:We,DenseMatrix:$e,SparseMatrix:Qe}=Ee,rt=Gl({typed:ze}),it=Wl({typed:ze,equalScalar:We}),at=Yl({typed:ze,DenseMatrix:$e}),ct=Zl({typed:ze}),ft=Xl({typed:ze});return ze("add",extend({"DenseMatrix, DenseMatrix":function DenseMatrixDenseMatrix(Ee,ze){return ct(Ee,ze,Ue)},"DenseMatrix, SparseMatrix":function DenseMatrixSparseMatrix(Ee,ze){return rt(Ee,ze,Ue,!1)},"SparseMatrix, DenseMatrix":function SparseMatrixDenseMatrix(Ee,ze){return rt(ze,Ee,Ue,!0)},"SparseMatrix, SparseMatrix":function SparseMatrixSparseMatrix(Ee,ze){return it(Ee,ze,Ue)},"Array, Array":function ArrayArray(Ee,ze){return this(Be(Ee),Be(ze)).valueOf()},"Array, Matrix":function ArrayMatrix(Ee,ze){return this(Be(Ee),ze)},"Matrix, Array":function MatrixArray(Ee,ze){return this(Ee,Be(ze))},"DenseMatrix, any":function DenseMatrixAny(Ee,ze){return ft(Ee,ze,Ue,!1)},"SparseMatrix, any":function SparseMatrixAny(Ee,ze){return at(Ee,ze,Ue,!1)},"any, DenseMatrix":function anyDenseMatrix(Ee,ze){return ft(ze,Ee,Ue,!0)},"any, SparseMatrix":function anySparseMatrix(Ee,ze){return at(ze,Ee,Ue,!0)},"Array, any":function ArrayAny(Ee,ze){return ft(Be(Ee),ze,Ue,!1).valueOf()},"any, Array":function anyArray(Ee,ze){return ft(Be(ze),Ee,Ue,!0).valueOf()},"any, any":Ue,"any, any, ...any":function anyAnyAny(Ee,ze,Be){for(var Ue=this(Ee,ze),We=0;We{var{typed:ze,addScalar:Be,multiplyScalar:Ue,conj:We,size:$e}=Ee;return ze("dot",{"Array | DenseMatrix, Array | DenseMatrix":function _denseDot(Ee,$e){var Qe=_validateDim(Ee,$e),rt=isMatrix(Ee)?Ee._data:Ee,it=isMatrix(Ee)?Ee._datatype:void 0,at=isMatrix($e)?$e._data:$e,ct=isMatrix($e)?$e._datatype:void 0,ft=2===_size(Ee).length,xt=2===_size($e).length,kt=Be,Lt=Ue;if(it&&ct&&it===ct&&"string"==typeof it){var Ut=it;kt=ze.find(Be,[Ut,Ut]),Lt=ze.find(Ue,[Ut,Ut])}if(!ft&&!xt){for(var er=Lt(We(rt[0]),at[0]),tr=1;trLt?xt++:kt===Lt&&(it=at(it,ct($e[ft],rt[xt])),ft++,xt++)}return it}});function _validateDim(Ee,ze){var Be,Ue,We=_size(Ee),$e=_size(ze);if(1===We.length)Be=We[0];else{if(2!==We.length||1!==We[1])throw new RangeError("Expected a column vector, instead got a matrix of size ("+We.join(", ")+")");Be=We[0]}if(1===$e.length)Ue=$e[0];else{if(2!==$e.length||1!==$e[1])throw new RangeError("Expected a column vector, instead got a matrix of size ("+$e.join(", ")+")");Ue=$e[0]}if(Be!==Ue)throw new RangeError("Vectors must have equal length ("+Be+" != "+Ue+")");if(0===Be)throw new RangeError("Cannot calculate the dot product of empty vectors");return Be}function _size(Ee){return isMatrix(Ee)?Ee.size():$e(Ee)}}),cc=factory_factory("multiply",["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],Ee=>{var{typed:ze,matrix:Be,addScalar:Ue,multiplyScalar:We,equalScalar:$e,dot:Qe}=Ee,rt=Jl({typed:ze,equalScalar:$e}),it=Xl({typed:ze});function _validateMatrixDimensions(Ee,ze){switch(Ee.length){case 1:switch(ze.length){case 1:if(Ee[0]!==ze[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(Ee[0]!==ze[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+Ee[0]+") must match Matrix rows ("+ze[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+ze.length+" dimensions)")}break;case 2:switch(ze.length){case 1:if(Ee[1]!==ze[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+Ee[1]+") must match Vector length ("+ze[0]+")");break;case 2:if(Ee[1]!==ze[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+Ee[1]+") must match Matrix B rows ("+ze[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+ze.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+Ee.length+" dimensions)")}}function _multiplyVectorMatrix(Ee,Be){if("dense"!==Be.storage())throw new Error("Support for SparseMatrix not implemented");return function _multiplyVectorDenseMatrix(Ee,Be){var $e,Qe=Ee._data,rt=Ee._size,it=Ee._datatype,at=Be._data,ct=Be._size,ft=Be._datatype,xt=rt[0],kt=ct[1],Lt=Ue,Ut=We;it&&ft&&it===ft&&"string"==typeof it&&($e=it,Lt=ze.find(Ue,[$e,$e]),Ut=ze.find(We,[$e,$e]));for(var er=[],tr=0;trhn)for(var vn=0,yn=0;yn{var{typed:ze,isNumeric:Be,isNaN:Ue,compare:We}=Ee,$e=We,desc=(Ee,ze)=>-We(Ee,ze);return ze("partitionSelect",{"Array | Matrix, number":function ArrayMatrixNumber(Ee,ze){return _partitionSelect(Ee,ze,$e)},"Array | Matrix, number, string":function ArrayMatrixNumberString(Ee,ze,Be){if("asc"===Be)return _partitionSelect(Ee,ze,$e);if("desc"===Be)return _partitionSelect(Ee,ze,desc);throw new Error('Compare string must be "asc" or "desc"')},"Array | Matrix, number, function":_partitionSelect});function _partitionSelect(Ee,ze,Be){if(!number_isInteger(ze)||ze<0)throw new Error("k must be a non-negative integer");if(isMatrix(Ee)){if(Ee.size().length>1)throw new Error("Only one dimensional matrices supported");return quickSelect(Ee.valueOf(),ze,Be)}if(Array.isArray(Ee))return quickSelect(Ee,ze,Be)}function quickSelect(Ee,ze,We){if(ze>=Ee.length)throw new Error("k out of bounds");for(var $e=0;$e=0){var ft=Ee[at];Ee[at]=Ee[it],Ee[it]=ft,--at}else++it;We(Ee[it],ct)>0&&--it,ze<=it?rt=it:Qe=it+1}return Ee[ze]}}),fc=factory_factory("quantileSeq",["typed","add","multiply","partitionSelect","compare"],Ee=>{var{typed:ze,add:Be,multiply:Ue,partitionSelect:We,compare:$e}=Ee;function _quantileSeq(Ee,ze,rt){var it=array_flatten(Ee),at=it.length;if(0===at)throw new Error("Cannot calculate quantile of an empty sequence");if(isNumber(ze)){var ct=ze*(at-1),ft=ct%1;if(0===ft){var xt=rt?it[ct]:We(it,ct);return Qe(xt),xt}var kt,Lt,Ut=Math.floor(ct);if(rt)kt=it[Ut],Lt=it[Ut+1];else{Lt=We(it,Ut+1),kt=it[Ut];for(var er=0;er0&&(kt=it[er])}return Qe(kt),Qe(Lt),Be(Ue(kt,1-ft),Ue(Lt,ft))}var tr=ze.times(at-1);if(tr.isInteger()){tr=tr.toNumber();var rr=rt?it[tr]:We(it,tr);return Qe(rr),rr}var ar,Lr,Qr=tr.floor(),on=tr.minus(Qr),sn=Qr.toNumber();if(rt)ar=it[sn],Lr=it[sn+1];else{Lr=We(it,sn+1),ar=it[sn];for(var cn=0;cn0&&(ar=it[cn])}Qe(ar),Qe(Lr);var un=new on.constructor(1);return Be(Ue(ar,un.minus(on)),Ue(Lr,on))}var Qe=ze({"number | BigNumber | Unit":function numberBigNumberUnit(Ee){return Ee}});return function quantileSeq(Ee,ze,Be){var Ue,We,$e;if(arguments.length<2||arguments.length>3)throw new SyntaxError("Function quantileSeq requires two or three parameters");if(isCollection(Ee)){if("boolean"==typeof(Be=Be||!1)){if(We=Ee.valueOf(),isNumber(ze)){if(ze<0)throw new Error("N/prob must be non-negative");if(ze<=1)return _quantileSeq(We,ze,Be);if(ze>1){if(!number_isInteger(ze))throw new Error("N must be a positive integer");var Qe=ze+1;Ue=new Array(ze);for(var rt=0;rt4294967295)throw new Error("N must be less than or equal to 2^32-1, as that is the maximum length of an Array");var ct=new it(at+1);Ue=new Array(at);for(var ft=0;ft1)throw new Error("Probability must be between 0 and 1, inclusive")}else{if(!isBigNumber(kt))throw new TypeError("Unexpected type of argument in function quantileSeq");if($e=new kt.constructor(1),kt.isNegative()||kt.gt($e))throw new Error("Probability must be between 0 and 1, inclusive")}Ue[xt]=_quantileSeq(We,kt,Be)}return Ue}throw new TypeError("Unexpected type of argument in function quantileSeq")}throw new TypeError("Unexpected type of argument in function quantileSeq")}throw new TypeError("Unexpected type of argument in function quantileSeq")}});function gammaNumber(Ee){var ze;if(number_isInteger(Ee))return Ee<=0?isFinite(Ee)?1/0:NaN:Ee>171?1/0:product_product(1,Ee-1);if(Ee<.5)return Math.PI/(Math.sin(Math.PI*Ee)*gammaNumber(1-Ee));if(Ee>=171.35)return 1/0;if(Ee>85){var Be=Ee*Ee,Ue=Be*Ee,We=Ue*Ee,$e=We*Ee;return Math.sqrt(2*Math.PI/Ee)*Math.pow(Ee/Math.E,Ee)*(1+1/(12*Ee)+1/(288*Be)-139/(51840*Ue)-571/(2488320*We)+163879/(209018880*$e)+5246819/(75246796800*$e*Ee))}--Ee,ze=pc[0];for(var Qe=1;Qe{var{typed:ze,BigNumber:Be}=Ee;return ze("bignumber",{"":function _(){return new Be(0)},number:function number(Ee){return new Be(Ee+"")},string:function string(Ee){var ze=Ee.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(ze){var Ue=ze[2],We=Be(ze[1]),$e=new Be(2).pow(Number(Ue));if(We.gt($e.sub(1)))throw new SyntaxError('String "'.concat(Ee,'" is out of range'));var Qe=new Be(2).pow(Number(Ue)-1);return We.gte(Qe)?We.sub($e):We}return new Be(Ee)},BigNumber:function BigNumber(Ee){return Ee},Fraction:function Fraction(Ee){return new Be(Ee.n).div(Ee.d).times(Ee.s)},null:function _null(Ee){return new Be(0)},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this)}})}),gc=factory_factory("numeric",["number","?bignumber","?fraction"],Ee=>{var{number:ze,bignumber:Be,fraction:Ue}=Ee,We={string:!0,number:!0,BigNumber:!0,Fraction:!0},$e={number:Ee=>ze(Ee),BigNumber:Be?Ee=>Be(Ee):noBignumber,Fraction:Ue?Ee=>Ue(Ee):noFraction};return function numeric(Ee,ze){var Be=typeOf(Ee);if(!(Be in We))throw new TypeError("Cannot convert "+Ee+' of type "'+Be+'"; valid input types are '+Object.keys(We).join(", "));if(!(ze in $e))throw new TypeError("Cannot convert "+Ee+' to type "'+ze+'"; valid output types are '+Object.keys($e).join(", "));return ze===Be?Ee:$e[ze](Ee)}});function improveErrorMessage(Ee,ze,Be){var Ue;return-1!==String(Ee).indexOf("Unexpected type")?(Ue=arguments.length>2?" (type: "+typeOf(Be)+", value: "+JSON.stringify(Be)+")":" (type: "+Ee.data.actual+")",new TypeError("Cannot calculate "+ze+", unexpected type of argument"+Ue)):-1!==String(Ee).indexOf("complex numbers")?(Ue=arguments.length>2?" (type: "+typeOf(Be)+", value: "+JSON.stringify(Be)+")":"",new TypeError("Cannot calculate "+ze+", no ordering relation is defined for complex numbers"+Ue)):Ee}var mc=factory_factory("subtract",["typed","matrix","equalScalar","addScalar","unaryMinus","DenseMatrix"],Ee=>{var{typed:ze,matrix:Be,equalScalar:Ue,addScalar:We,unaryMinus:$e,DenseMatrix:Qe}=Ee,rt=Gl({typed:ze}),it=$l({typed:ze}),at=Kl({typed:ze,equalScalar:Ue}),ct=Yl({typed:ze,DenseMatrix:Qe}),ft=Zl({typed:ze}),xt=Xl({typed:ze});return ze("subtract",{"number, number":function numberNumber(Ee,ze){return Ee-ze},"Complex, Complex":function ComplexComplex(Ee,ze){return Ee.sub(ze)},"BigNumber, BigNumber":function BigNumberBigNumber(Ee,ze){return Ee.minus(ze)},"Fraction, Fraction":function FractionFraction(Ee,ze){return Ee.sub(ze)},"Unit, Unit":function UnitUnit(Ee,ze){if(null===Ee.value)throw new Error("Parameter x contains a unit with undefined value");if(null===ze.value)throw new Error("Parameter y contains a unit with undefined value");if(!Ee.equalBase(ze))throw new Error("Units do not match");var Be=Ee.clone();return Be.value=this(Be.value,ze.value),Be.fixPrefix=!1,Be},"SparseMatrix, SparseMatrix":function SparseMatrixSparseMatrix(Ee,ze){return checkEqualDimensions(Ee,ze),at(Ee,ze,this)},"SparseMatrix, DenseMatrix":function SparseMatrixDenseMatrix(Ee,ze){return checkEqualDimensions(Ee,ze),it(ze,Ee,this,!0)},"DenseMatrix, SparseMatrix":function DenseMatrixSparseMatrix(Ee,ze){return checkEqualDimensions(Ee,ze),rt(Ee,ze,this,!1)},"DenseMatrix, DenseMatrix":function DenseMatrixDenseMatrix(Ee,ze){return checkEqualDimensions(Ee,ze),ft(Ee,ze,this)},"Array, Array":function ArrayArray(Ee,ze){return this(Be(Ee),Be(ze)).valueOf()},"Array, Matrix":function ArrayMatrix(Ee,ze){return this(Be(Ee),ze)},"Matrix, Array":function MatrixArray(Ee,ze){return this(Ee,Be(ze))},"SparseMatrix, any":function SparseMatrixAny(Ee,ze){return ct(Ee,$e(ze),We)},"DenseMatrix, any":function DenseMatrixAny(Ee,ze){return xt(Ee,ze,this)},"any, SparseMatrix":function anySparseMatrix(Ee,ze){return ct(ze,Ee,this,!0)},"any, DenseMatrix":function anyDenseMatrix(Ee,ze){return xt(ze,Ee,this,!0)},"Array, any":function ArrayAny(Ee,ze){return xt(Be(Ee),ze,this,!1).valueOf()},"any, Array":function anyArray(Ee,ze){return xt(Be(ze),Ee,this,!0).valueOf()}})});function checkEqualDimensions(Ee,ze){var Be=Ee.size(),Ue=ze.size();if(Be.length!==Ue.length)throw new DimensionError(Be.length,Ue.length)}factory_factory("equal",["typed","equalScalar"],Ee=>{var{typed:ze,equalScalar:Be}=Ee;return ze("equal",{"any, any":function anyAny(Ee,ze){return null===Ee?null===ze:null===ze?null===Ee:void 0===Ee?void 0===ze:void 0===ze?void 0===Ee:Be(Ee,ze)}})});var vc=factory_factory("divideScalar",["typed","numeric"],Ee=>{var{typed:ze,numeric:Be}=Ee;return ze("divideScalar",{"number, number":function numberNumber(Ee,ze){return Ee/ze},"Complex, Complex":function ComplexComplex(Ee,ze){return Ee.div(ze)},"BigNumber, BigNumber":function BigNumberBigNumber(Ee,ze){return Ee.div(ze)},"Fraction, Fraction":function FractionFraction(Ee,ze){return Ee.div(ze)},"Unit, number | Fraction | BigNumber":function UnitNumberFractionBigNumber(Ee,ze){var Ue=Ee.clone(),We=Be(1,typeOf(ze));return Ue.value=this(null===Ue.value?Ue._normalize(We):Ue.value,ze),Ue},"number | Fraction | BigNumber, Unit":function numberFractionBigNumberUnit(Ee,ze){var Ue=ze.clone();Ue=Ue.pow(-1);var We=Be(1,typeOf(Ee));return Ue.value=this(Ee,null===ze.value?ze._normalize(We):ze.value),Ue},"Unit, Unit":function UnitUnit(Ee,ze){return Ee.divide(ze)}})});var yc=factory_factory("Spa",["addScalar","equalScalar","FibonacciHeap"],Ee=>{var{addScalar:ze,equalScalar:Be,FibonacciHeap:Ue}=Ee;function Spa(){if(!(this instanceof Spa))throw new SyntaxError("Constructor must be called with the new operator");this._values=[],this._heap=new Ue}return Spa.prototype.type="Spa",Spa.prototype.isSpa=!0,Spa.prototype.set=function(Ee,ze){if(this._values[Ee])this._values[Ee].value=ze;else{var Be=this._heap.insert(Ee,ze);this._values[Ee]=Be}},Spa.prototype.get=function(Ee){var ze=this._values[Ee];return ze?ze.value:0},Spa.prototype.accumulate=function(Ee,Be){var Ue=this._values[Ee];Ue?Ue.value=ze(Ue.value,Be):(Ue=this._heap.insert(Ee,Be),this._values[Ee]=Ue)},Spa.prototype.forEach=function(Ee,ze,Ue){var We=this._heap,$e=this._values,Qe=[],rt=We.extractMinimum();for(rt&&Qe.push(rt);rt&&rt.key<=ze;)rt.key>=Ee&&(Be(rt.value,0)||Ue(rt.key,rt.value,this)),(rt=We.extractMinimum())&&Qe.push(rt);for(var it=0;it{var{typed:ze,matrix:Be,abs:Ue,addScalar:We,divideScalar:$e,multiplyScalar:Qe,subtract:rt,larger:it,equalScalar:at,unaryMinus:ct,DenseMatrix:ft,SparseMatrix:xt,Spa:kt}=Ee;return ze("lup",{DenseMatrix:function DenseMatrix(Ee){return _denseLUP(Ee)},SparseMatrix:function SparseMatrix(Ee){return _sparseLUP(Ee)},Array:function Array(Ee){var ze=_denseLUP(Be(Ee));return{L:ze.L.valueOf(),U:ze.U.valueOf(),p:ze.p}}});function _denseLUP(Ee){var ze,Be,ct,xt=Ee._size[0],kt=Ee._size[1],Lt=Math.min(xt,kt),Ut=clone(Ee._data),er=[],tr=[xt,Lt],rr=[],ar=[Lt,kt],Lr=[];for(ze=0;ze0)for(ze=0;ze0&&Ee.forEach(0,Be-1,(function(ze,Be){xt._forEachRow(ze,rr,ar,Lr,(function(Ue,We){Ue>ze&&Ee.accumulate(Ue,ct(Qe(We,Be)))}))}));var vn=Be,yn=Ee.get(Be),_n=Ue(yn);Ee.forEach(Be+1,rt-1,(function(Ee,ze){var Be=Ue(ze);it(Be,_n)&&(vn=Ee,_n=Be,yn=ze)})),Be!==vn&&(xt._swapRows(Be,vn,Qr[1],rr,ar,Lr),xt._swapRows(Be,vn,un[1],on,sn,cn),Ee.swap(Be,vn),function swapIndeces(Ee,ze){var Be=dn[Ee],Ue=dn[ze];hn[Be]=ze,hn[Ue]=Ee,dn[Ee]=Ue,dn[ze]=Be}(Be,vn)),Ee.forEach(0,rt-1,(function(Ee,ze){Ee<=Be?(on.push(ze),sn.push(Ee)):(ze=$e(ze,yn),at(ze,0)||(rr.push(ze),ar.push(Ee)))}))};for(Be=0;Be{var{typed:ze,matrix:Be,subtract:Ue,multiply:We,unaryMinus:$e,lup:Qe}=Ee;return ze("det",{any:function any(Ee){return clone(Ee)},"Array | Matrix":function det(Ee){var ze;switch((ze=isMatrix(Ee)?Ee.size():Array.isArray(Ee)?(Ee=Be(Ee)).size():[]).length){case 0:return clone(Ee);case 1:if(1===ze[0])return clone(Ee.valueOf()[0]);throw new RangeError("Matrix must be square (size: "+string_format(ze)+")");case 2:var rt=ze[0],it=ze[1];if(rt===it)return function _det(Ee,ze,Be){if(1===ze)return clone(Ee[0][0]);if(2===ze)return Ue(We(Ee[0][0],Ee[1][1]),We(Ee[1][0],Ee[0][1]));for(var rt=Qe(Ee),it=rt.U[0][0],at=1;at=ze)break;for(var kt=ft,Lt=0;!xt[rt.p[kt]];)xt[rt.p[kt]]=!0,kt=rt.p[kt],Lt++;Lt%2==0&&ct++}return ct%2==0?it:$e(it)}(Ee.clone().valueOf(),rt);throw new RangeError("Matrix must be square (size: "+string_format(ze)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+string_format(ze)+")")}}})}),_c=factory_factory("inv",["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],Ee=>{var{typed:ze,matrix:Be,divideScalar:Ue,addScalar:We,multiply:$e,unaryMinus:Qe,det:rt,identity:it,abs:at}=Ee;return ze("inv",{"Array | Matrix":function ArrayMatrix(Ee){var ze=isMatrix(Ee)?Ee.size():arraySize(Ee);switch(ze.length){case 1:if(1===ze[0])return isMatrix(Ee)?Be([Ue(1,Ee.valueOf()[0])]):[Ue(1,Ee[0])];throw new RangeError("Matrix must be square (size: "+string_format(ze)+")");case 2:var We=ze[0],$e=ze[1];if(We===$e)return isMatrix(Ee)?Be(_inv(Ee.valueOf(),We,$e),Ee.storage()):_inv(Ee,We,$e);throw new RangeError("Matrix must be square (size: "+string_format(ze)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+string_format(ze)+")")}},any:function any(Ee){return Ue(1,Ee)}});function _inv(Ee,ze,Be){var ct,ft,xt,kt,Lt;if(1===ze){if(0===(kt=Ee[0][0]))throw Error("Cannot calculate inverse, determinant is zero");return[[Ue(1,kt)]]}if(2===ze){var Ut=rt(Ee);if(0===Ut)throw Error("Cannot calculate inverse, determinant is zero");return[[Ue(Ee[1][1],Ut),Ue(Qe(Ee[0][1]),Ut)],[Ue(Qe(Ee[1][0]),Ut),Ue(Ee[0][0],Ut)]]}var er=Ee.concat();for(ct=0;ctar&&(ar=at(er[ct][rr]),Lr=ct),ct++;if(0===ar)throw Error("Cannot calculate inverse, determinant is zero");(ct=Lr)!==rr&&(Lt=er[rr],er[rr]=er[ct],er[ct]=Lt,Lt=tr[rr],tr[rr]=tr[ct],tr[ct]=Lt);var Qr=er[rr],on=tr[rr];for(ct=0;ct{var{typed:ze,matrix:Be,multiply:Ue,equalScalar:We,divideScalar:$e,inv:Qe}=Ee,rt=Jl({typed:ze,equalScalar:We}),it=Xl({typed:ze});return ze("divide",extend({"Array | Matrix, Array | Matrix":function ArrayMatrixArrayMatrix(Ee,ze){return Ue(Ee,Qe(ze))},"DenseMatrix, any":function DenseMatrixAny(Ee,ze){return it(Ee,ze,$e,!1)},"SparseMatrix, any":function SparseMatrixAny(Ee,ze){return rt(Ee,ze,$e,!1)},"Array, any":function ArrayAny(Ee,ze){return it(Be(Ee),ze,$e,!1).valueOf()},"any, Array | Matrix":function anyArrayMatrix(Ee,ze){return Ue(Ee,Qe(ze))}},$e.signatures))}),Tc=factory_factory("mean",["typed","add","divide"],Ee=>{var{typed:ze,add:Be,divide:Ue}=Ee;return ze("mean",{"Array | Matrix":_mean,"Array | Matrix, number | BigNumber":function _nmeanDim(Ee,ze){try{var We=reduce(Ee,ze,Be),$e=Array.isArray(Ee)?arraySize(Ee):Ee.size();return Ue(We,$e[ze])}catch(Ee){throw improveErrorMessage(Ee,"mean")}},"...":function _(Ee){if(containsCollections(Ee))throw new TypeError("Scalar values expected in function mean");return _mean(Ee)}});function _mean(Ee){var ze,We=0;if(deepForEach(Ee,(function(Ee){try{ze=void 0===ze?Ee:Be(ze,Ee),We++}catch(ze){throw improveErrorMessage(ze,"mean",Ee)}})),0===We)throw new Error("Cannot calculate the mean of an empty array");return Ue(ze,We)}}),kc=factory_factory("variance",["typed","add","subtract","multiply","divide","apply","isNaN"],Ee=>{var{typed:ze,add:Be,subtract:Ue,multiply:We,divide:$e,apply:Qe,isNaN:rt}=Ee;return ze("variance",{"Array | Matrix":function ArrayMatrix(Ee){return _var(Ee,"unbiased")},"Array | Matrix, string":_var,"Array | Matrix, number | BigNumber":function ArrayMatrixNumberBigNumber(Ee,ze){return _varDim(Ee,ze,"unbiased")},"Array | Matrix, number | BigNumber, string":_varDim,"...":function _(Ee){return _var(Ee,"unbiased")}});function _var(Ee,ze){var Qe,it=0;if(0===Ee.length)throw new SyntaxError("Function variance requires one or more parameters (0 provided)");if(deepForEach(Ee,(function(Ee){try{Qe=void 0===Qe?Ee:Be(Qe,Ee),it++}catch(ze){throw improveErrorMessage(ze,"variance",Ee)}})),0===it)throw new Error("Cannot calculate variance of an empty array");var at=$e(Qe,it);if(Qe=void 0,deepForEach(Ee,(function(Ee){var ze=Ue(Ee,at);Qe=void 0===Qe?We(ze,ze):Be(Qe,We(ze,ze))})),rt(Qe))return Qe;switch(ze){case"uncorrected":return $e(Qe,it);case"biased":return $e(Qe,it+1);case"unbiased":var ct=isBigNumber(Qe)?Qe.mul(0):0;return 1===it?ct:$e(Qe,it-1);default:throw new Error('Unknown normalization "'+ze+'". Choose "unbiased" (default), "uncorrected", or "biased".')}}function _varDim(Ee,ze,Be){try{if(0===Ee.length)throw new SyntaxError("Function variance requires one or more parameters (0 provided)");return Qe(Ee,ze,Ee=>_var(Ee,Be))}catch(Ee){throw improveErrorMessage(Ee,"variance")}}});var Ac=factory_factory("median",["typed","add","divide","compare","partitionSelect"],Ee=>{var{typed:ze,add:Be,divide:Ue,compare:We,partitionSelect:$e}=Ee;function _median(Ee){try{var ze=(Ee=array_flatten(Ee.valueOf())).length;if(0===ze)throw new Error("Cannot calculate median of an empty array");if(ze%2==0){for(var Be=ze/2-1,Ue=$e(Ee,Be+1),it=Ee[Be],at=0;at0&&(it=Ee[at]);return rt(it,Ue)}var ct=$e(Ee,(ze-1)/2);return Qe(ct)}catch(Ee){throw improveErrorMessage(Ee,"median")}}var Qe=ze({"number | BigNumber | Complex | Unit":function numberBigNumberComplexUnit(Ee){return Ee}}),rt=ze({"number | BigNumber | Complex | Unit, number | BigNumber | Complex | Unit":function numberBigNumberComplexUnitNumberBigNumberComplexUnit(Ee,ze){return Ue(Be(Ee,ze),2)}});return ze("median",{"Array | Matrix":_median,"Array | Matrix, number | BigNumber":function ArrayMatrixNumberBigNumber(Ee,ze){throw new Error("median(A, dim) is not yet supported")},"...":function _(Ee){if(containsCollections(Ee))throw new TypeError("Scalar values expected in function median");return _median(Ee)}})}),Mc=factory_factory("std",["typed","sqrt","variance"],Ee=>{var{typed:ze,sqrt:Be,variance:Ue}=Ee;return ze("std",{"Array | Matrix":_std,"Array | Matrix, string":_std,"Array | Matrix, number | BigNumber":_std,"Array | Matrix, number | BigNumber, string":_std,"...":function _(Ee){return _std(Ee)}});function _std(Ee,ze){if(0===Ee.length)throw new SyntaxError("Function std requires one or more parameters (0 provided)");try{return Be(Ue.apply(null,arguments))}catch(Ee){throw Ee instanceof TypeError&&-1!==Ee.message.indexOf(" variance")?new TypeError(Ee.message.replace(" variance"," std")):Ee}}});var Sc=Hs({}),Cc=Xs({config:hs}),Ec=$s({}),Pc=cl({}),Oc=fl({Matrix:Ec}),Lc=Tl({BigNumber:Cc,Complex:Sc,DenseMatrix:Oc,Fraction:Pc}),Dc=kl({typed:Lc}),Ic=Al({typed:Lc}),zc=Sl({typed:Lc}),Rc=Cl({config:hs,typed:Lc}),Bc=El({typed:Lc}),Nc=Ol({isInteger:Dc,typed:Lc}),Fc=Ll({typed:Lc}),jc=Il({typed:Lc}),Vc=Bl({Fraction:Pc,typed:Lc}),Uc=Nl({typed:Lc}),Hc=Fl({typed:Lc}),qc=jl({Complex:Sc,config:hs,typed:Lc}),Gc=Vl({typed:Lc}),Wc=Ul({Matrix:Ec,equalScalar:Rc,typed:Lc}),Yc=Hl({DenseMatrix:Oc,Matrix:Ec,SparseMatrix:Wc,typed:Lc}),Zc=ql({typed:Lc}),Xc=tc({BigNumber:Cc,DenseMatrix:Oc,SparseMatrix:Wc,config:hs,matrix:Yc,typed:Lc}),$c=rc({matrix:Yc,config:hs,typed:Lc}),Kc=nc({BigNumber:Cc,DenseMatrix:Oc,Fraction:Pc,config:hs,equalScalar:Rc,matrix:Yc,typed:Lc}),Jc=ic({DenseMatrix:Oc,config:hs,matrix:Yc,typed:Lc}),Qc=ac({DenseMatrix:Oc,config:hs,matrix:Yc,typed:Lc}),tu=oc({larger:Qc,smaller:Jc}),iu=sc({DenseMatrix:Oc,SparseMatrix:Wc,addScalar:Hc,equalScalar:Rc,matrix:Yc,typed:Lc}),_u=lc({addScalar:Hc,conj:Gc,multiplyScalar:Fc,size:$c,typed:Lc}),Mu=cc({addScalar:Hc,dot:_u,equalScalar:Rc,matrix:Yc,multiplyScalar:Fc,typed:Lc}),Su=uc({compare:Kc,isNaN:zc,isNumeric:Ic,typed:Lc}),Nu=fc({add:iu,compare:Kc,multiply:Mu,partitionSelect:Su,typed:Lc}),Xu=dc({BigNumber:Cc,typed:Lc}),ef=gc({bignumber:Xu,fraction:Vc,number:Bc}),tf=mc({DenseMatrix:Oc,addScalar:Hc,equalScalar:Rc,matrix:Yc,typed:Lc,unaryMinus:Uc}),rf=vc({numeric:ef,typed:Lc}),nf=yc({FibonacciHeap:tu,addScalar:Hc,equalScalar:Rc}),af=xc({DenseMatrix:Oc,Spa:nf,SparseMatrix:Wc,abs:Zc,addScalar:Hc,divideScalar:rf,equalScalar:Rc,larger:Qc,matrix:Yc,multiplyScalar:Fc,subtract:tf,typed:Lc,unaryMinus:Uc}),of=bc({lup:af,matrix:Yc,multiply:Mu,subtract:tf,typed:Lc,unaryMinus:Uc}),sf=_c({abs:Zc,addScalar:Hc,det:of,divideScalar:rf,identity:Xc,matrix:Yc,multiply:Mu,typed:Lc,unaryMinus:Uc}),lf=wc({divideScalar:rf,equalScalar:Rc,inv:sf,matrix:Yc,multiply:Mu,typed:Lc}),cf=Tc({add:iu,divide:lf,typed:Lc}),uf=kc({add:iu,apply:Nc,divide:lf,isNaN:zc,multiply:Mu,subtract:tf,typed:Lc}),ff=Ac({add:iu,compare:Kc,divide:lf,partitionSelect:Su,typed:Lc}),hf=Mc({sqrt:qc,typed:Lc,variance:uf}),pf=Be("3fc3");function ParamsPanelvue_type_script_lang_ts_typeof(Ee){return(ParamsPanelvue_type_script_lang_ts_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(Ee){return typeof Ee}:function _typeof(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(Ee)}function ParamsPanelvue_type_script_lang_ts_classCallCheck(Ee,ze){if(!(Ee instanceof ze))throw new TypeError("Cannot call a class as a function")}function ParamsPanelvue_type_script_lang_ts_defineProperties(Ee,ze){for(var Be=0;Be0?jc(cf(Be),{precision:4}):null}}]),ParamsPanel}(it.c);Object(Ue.a)([Object(it.b)(pf.Trace)],df.prototype,"trace",void 0);var gf=df=Object(Ue.a)([Object(it.a)({components:{ESSChip:as}})],df),mf=(Be("6ca7"),Be("ec29"),Be("c37a")),vf=Be("fe09"),yf=["title"];function _objectWithoutProperties(Ee,ze){if(null==Ee)return{};var Be,Ue,We=function _objectWithoutPropertiesLoose(Ee,ze){if(null==Ee)return{};var Be,Ue,We={},$e=Object.keys(Ee);for(Ue=0;Ue<$e.length;Ue++)Be=$e[Ue],ze.indexOf(Be)>=0||(We[Be]=Ee[Be]);return We}(Ee,ze);if(Object.getOwnPropertySymbols){var $e=Object.getOwnPropertySymbols(Ee);for(Ue=0;Ue<$e.length;Ue++)Be=$e[Ue],ze.indexOf(Be)>=0||Object.prototype.propertyIsEnumerable.call(Ee,Be)&&(We[Be]=Ee[Be])}return We}function VCheckbox_ownKeys(Ee,ze){var Be=Object.keys(Ee);if(Object.getOwnPropertySymbols){var Ue=Object.getOwnPropertySymbols(Ee);ze&&(Ue=Ue.filter((function(ze){return Object.getOwnPropertyDescriptor(Ee,ze).enumerable}))),Be.push.apply(Be,Ue)}return Be}function VCheckbox_objectSpread(Ee){for(var ze=1;ze=Ee.length?{done:!0}:{done:!1,value:Ee[Ue++]}},e:function e(Ee){throw Ee},f:We}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var $e,Qe=!0,rt=!1;return{s:function s(){Be=Be.call(Ee)},n:function n(){var Ee=Be.next();return Qe=Ee.done,Ee},e:function e(Ee){rt=!0,$e=Ee},f:function f(){try{Qe||null==Be.return||Be.return()}finally{if(rt)throw $e}}}}function StatsTablevue_type_script_lang_ts_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0))break;at+=2*(rt[ct-1]+rt[ct])}}var Lt=0;rt[0]>0&&(Lt=Ue*at/rt[0]);var Ut=1;0!==Lt&&(Ut=Ue*We/Lt);var er=hf(Be);return{ESS:Ut,ACT:Lt,mean:Qe,variance:uf(Be),nSamples:We,std:er,stderr:er/qc(We),median:ff(Be),quantile:Nu(Be,[.025,.975]),HPD:this.HPDInterval(.95,Be)}}}]),StatsTable}(it.c),Sf=Mf=Object(Ue.a)([Object(it.a)({components:{VueJsonToCsv:Af.a}})],Mf);Be("91f4");function VData_ownKeys(Ee,ze){var Be=Object.keys(Ee);if(Object.getOwnPropertySymbols){var Ue=Object.getOwnPropertySymbols(Ee);ze&&(Ue=Ue.filter((function(ze){return Object.getOwnPropertyDescriptor(Ee,ze).enumerable}))),Be.push.apply(Be,Ue)}return Be}function VData_objectSpread(Ee){for(var ze=1;zeEe.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0&&(ze=Ee.sortDesc).push.apply(ze,VData_toConsumableArray(Object(sn.m)(it,!1)));at>0&&(Be=Ee.groupDesc).push.apply(Be,VData_toConsumableArray(Object(sn.m)(at,!1)));return{internalOptions:Ee}},computed:{itemsLength:function itemsLength(){return this.serverItemsLength>=0?this.serverItemsLength:this.filteredItems.length},pageCount:function pageCount(){return this.internalOptions.itemsPerPage<=0?1:Math.ceil(this.itemsLength/this.internalOptions.itemsPerPage)},pageStart:function pageStart(){return-1!==this.internalOptions.itemsPerPage&&this.items.length?(this.internalOptions.page-1)*this.internalOptions.itemsPerPage:0},pageStop:function pageStop(){return-1===this.internalOptions.itemsPerPage?this.itemsLength:this.items.length?Math.min(this.itemsLength,this.internalOptions.page*this.internalOptions.itemsPerPage):0},isGrouped:function isGrouped(){return!!this.internalOptions.groupBy.length},pagination:function pagination(){return{page:this.internalOptions.page,itemsPerPage:this.internalOptions.itemsPerPage,pageStart:this.pageStart,pageStop:this.pageStop,pageCount:this.pageCount,itemsLength:this.itemsLength}},filteredItems:function filteredItems(){var Ee=this.items.slice();return!this.disableFiltering&&this.serverItemsLength<=0&&(Ee=this.customFilter(Ee,this.search)),Ee},computedItems:function computedItems(){var Ee=this.filteredItems.slice();return(!this.disableSort||this.internalOptions.groupBy.length)&&this.serverItemsLength<=0&&(Ee=this.sortItems(Ee)),!this.disablePagination&&this.serverItemsLength<=0&&(Ee=this.paginateItems(Ee)),Ee},groupedItems:function groupedItems(){return this.isGrouped?this.groupItems(this.computedItems):null},scopedProps:function scopedProps(){return{sort:this.sort,sortArray:this.sortArray,group:this.group,items:this.computedItems,options:this.internalOptions,updateOptions:this.updateOptions,pagination:this.pagination,groupedItems:this.groupedItems,originalItemsLength:this.items.length}},computedOptions:function computedOptions(){return VData_objectSpread({},this.options)}},watch:{computedOptions:{handler:function handler(Ee,ze){Object(sn.j)(Ee,ze)||this.updateOptions(Ee)},deep:!0,immediate:!0},internalOptions:{handler:function handler(Ee,ze){Object(sn.j)(Ee,ze)||this.$emit("update:options",Ee)},deep:!0,immediate:!0},page:function page(Ee){this.updateOptions({page:Ee})},"internalOptions.page":function internalOptionsPage(Ee){this.$emit("update:page",Ee)},itemsPerPage:function itemsPerPage(Ee){this.updateOptions({itemsPerPage:Ee})},"internalOptions.itemsPerPage":function internalOptionsItemsPerPage(Ee){this.$emit("update:items-per-page",Ee)},sortBy:function sortBy(Ee){this.updateOptions({sortBy:Object(sn.G)(Ee)})},"internalOptions.sortBy":function internalOptionsSortBy(Ee,ze){!Object(sn.j)(Ee,ze)&&this.$emit("update:sort-by",Array.isArray(this.sortBy)?Ee:Ee[0])},sortDesc:function sortDesc(Ee){this.updateOptions({sortDesc:Object(sn.G)(Ee)})},"internalOptions.sortDesc":function internalOptionsSortDesc(Ee,ze){!Object(sn.j)(Ee,ze)&&this.$emit("update:sort-desc",Array.isArray(this.sortDesc)?Ee:Ee[0])},groupBy:function groupBy(Ee){this.updateOptions({groupBy:Object(sn.G)(Ee)})},"internalOptions.groupBy":function internalOptionsGroupBy(Ee,ze){!Object(sn.j)(Ee,ze)&&this.$emit("update:group-by",Array.isArray(this.groupBy)?Ee:Ee[0])},groupDesc:function groupDesc(Ee){this.updateOptions({groupDesc:Object(sn.G)(Ee)})},"internalOptions.groupDesc":function internalOptionsGroupDesc(Ee,ze){!Object(sn.j)(Ee,ze)&&this.$emit("update:group-desc",Array.isArray(this.groupDesc)?Ee:Ee[0])},multiSort:function multiSort(Ee){this.updateOptions({multiSort:Ee})},"internalOptions.multiSort":function internalOptionsMultiSort(Ee){this.$emit("update:multi-sort",Ee)},mustSort:function mustSort(Ee){this.updateOptions({mustSort:Ee})},"internalOptions.mustSort":function internalOptionsMustSort(Ee){this.$emit("update:must-sort",Ee)},pageCount:{handler:function handler(Ee){this.$emit("page-count",Ee)},immediate:!0},computedItems:{handler:function handler(Ee){this.$emit("current-items",Ee)},immediate:!0},pagination:{handler:function handler(Ee,ze){Object(sn.j)(Ee,ze)||this.$emit("pagination",this.pagination)},immediate:!0}},methods:{toggle:function toggle(Ee,ze,Be,Ue,We,$e){var Qe=ze.slice(),rt=Be.slice(),it=Qe.findIndex((function(ze){return ze===Ee}));return it<0?($e||(Qe=[],rt=[]),Qe.push(Ee),rt.push(!1)):it>=0&&!rt[it]?rt[it]=!0:We?rt[it]=!1:(Qe.splice(it,1),rt.splice(it,1)),Object(sn.j)(Qe,ze)&&Object(sn.j)(rt,Be)||(Ue=1),{by:Qe,desc:rt,page:Ue}},group:function group(Ee){var ze=this.toggle(Ee,this.internalOptions.groupBy,this.internalOptions.groupDesc,this.internalOptions.page,!0,!1),Be=ze.by,Ue=ze.desc,We=ze.page;this.updateOptions({groupBy:Be,groupDesc:Ue,page:We})},sort:function sort(Ee){if(Array.isArray(Ee))return this.sortArray(Ee);var ze=this.toggle(Ee,this.internalOptions.sortBy,this.internalOptions.sortDesc,this.internalOptions.page,this.internalOptions.mustSort,this.internalOptions.multiSort),Be=ze.by,Ue=ze.desc,We=ze.page;this.updateOptions({sortBy:Be,sortDesc:Ue,page:We})},sortArray:function sortArray(Ee){var ze=this,Be=Ee.map((function(Ee){var Be=ze.internalOptions.sortBy.findIndex((function(ze){return ze===Ee}));return Be>-1&&ze.internalOptions.sortDesc[Be]}));this.updateOptions({sortBy:Ee,sortDesc:Be})},updateOptions:function updateOptions(Ee){this.internalOptions=VData_objectSpread(VData_objectSpread(VData_objectSpread({},this.internalOptions),Ee),{},{page:this.serverItemsLength<0?Math.max(1,Math.min(Ee.page||this.internalOptions.page,this.pageCount)):Ee.page||this.internalOptions.page})},sortItems:function sortItems(Ee){var ze=[],Be=[];return this.disableSort||(ze=this.internalOptions.sortBy,Be=this.internalOptions.sortDesc),this.internalOptions.groupBy.length&&(ze=[].concat(VData_toConsumableArray(this.internalOptions.groupBy),VData_toConsumableArray(ze)),Be=[].concat(VData_toConsumableArray(this.internalOptions.groupDesc),VData_toConsumableArray(Be))),this.customSort(Ee,ze,Be,this.locale)},groupItems:function groupItems(Ee){return this.customGroup(Ee,this.internalOptions.groupBy,this.internalOptions.groupDesc)},paginateItems:function paginateItems(Ee){return-1===this.serverItemsLength&&Ee.length<=this.pageStart&&(this.internalOptions.page=Math.max(1,Math.ceil(Ee.length/this.internalOptions.itemsPerPage))||1),Ee.slice(this.pageStart,this.pageStop)}},render:function render(){return this.$scopedSlots.default&&this.$scopedSlots.default(this.scopedProps)}}),Ef=(Be("495d"),Be("4ff9"),Be("68dd"),$o),Pf=(Be("ee6f"),Be("a236")),Of=Be("dc22");function VMenu_toConsumableArray(Ee){return function VMenu_arrayWithoutHoles(Ee){if(Array.isArray(Ee))return VMenu_arrayLikeToArray(Ee)}(Ee)||function VMenu_iterableToArray(Ee){if("undefined"!=typeof Symbol&&null!=Ee[Symbol.iterator]||null!=Ee["@@iterator"])return Array.from(Ee)}(Ee)||function VMenu_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return VMenu_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return VMenu_arrayLikeToArray(Ee,ze)}(Ee)||function VMenu_nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function VMenu_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be-1})))},styles:function styles(){return{maxHeight:this.calculatedMaxHeight,minWidth:this.calculatedMinWidth,maxWidth:this.calculatedMaxWidth,top:this.calculatedTop,left:this.calculatedLeft,transformOrigin:this.origin,zIndex:this.zIndex||this.activeZIndex}}},watch:{isActive:function isActive(Ee){Ee||(this.listIndex=-1)},isContentActive:function isContentActive(Ee){this.hasJustFocused=Ee},listIndex:function listIndex(Ee,ze){if(Ee in this.tiles){var Be=this.tiles[Ee];Be.classList.add("v-list-item--highlighted"),this.$refs.content.scrollTop=Be.offsetTop-Be.clientHeight}ze in this.tiles&&this.tiles[ze].classList.remove("v-list-item--highlighted")}},created:function created(){this.$attrs.hasOwnProperty("full-width")&&Object(cn.e)("full-width",this)},mounted:function mounted(){this.isActive&&this.callActivate()},methods:{activate:function activate(){var Ee=this;this.updateDimensions(),requestAnimationFrame((function(){Ee.startTransition().then((function(){Ee.$refs.content&&(Ee.calculatedTopAuto=Ee.calcTopAuto(),Ee.auto&&(Ee.$refs.content.scrollTop=Ee.calcScrollPosition()))}))}))},calcScrollPosition:function calcScrollPosition(){var Ee=this.$refs.content,ze=Ee.querySelector(".v-list-item--active"),Be=Ee.scrollHeight-Ee.offsetHeight;return ze?Math.min(Be,Math.max(0,ze.offsetTop-Ee.offsetHeight/2+ze.offsetHeight/2)):Ee.scrollTop},calcLeftAuto:function calcLeftAuto(){return parseInt(this.dimensions.activator.left-2*this.defaultOffset)},calcTopAuto:function calcTopAuto(){var Ee=this.$refs.content,ze=Ee.querySelector(".v-list-item--active");if(ze||(this.selectedIndex=null),this.offsetY||!ze)return this.computedTop;this.selectedIndex=Array.from(this.tiles).indexOf(ze);var Be=ze.offsetTop-this.calcScrollPosition(),Ue=Ee.querySelector(".v-list-item").offsetTop;return this.computedTop-Be-Ue-1},changeListIndex:function changeListIndex(Ee){if(this.getTiles(),this.isActive&&this.hasClickableTiles)if(Ee.keyCode!==sn.x.tab){if(Ee.keyCode===sn.x.down)this.nextTile();else if(Ee.keyCode===sn.x.up)this.prevTile();else if(Ee.keyCode===sn.x.end)this.lastTile();else if(Ee.keyCode===sn.x.home)this.firstTile();else{if(Ee.keyCode!==sn.x.enter||-1===this.listIndex)return;this.tiles[this.listIndex].click()}Ee.preventDefault()}else this.isActive=!1},closeConditional:function closeConditional(Ee){var ze=Ee.target;return this.isActive&&!this._isDestroyed&&this.closeOnClick&&!this.$refs.content.contains(ze)},genActivatorAttributes:function genActivatorAttributes(){var Ee=un.options.methods.genActivatorAttributes.call(this);return this.activeTile&&this.activeTile.id?VMenu_objectSpread(VMenu_objectSpread({},Ee),{},{"aria-activedescendant":this.activeTile.id}):Ee},genActivatorListeners:function genActivatorListeners(){var Ee=ts.options.methods.genActivatorListeners.call(this);return this.disableKeys||(Ee.keydown=this.onKeyDown),Ee},genTransition:function genTransition(){var Ee=this.genContent();return this.transition?this.$createElement("transition",{props:{name:this.transition}},[Ee]):Ee},genDirectives:function genDirectives(){var Ee=this,ze=[{name:"show",value:this.isContentActive}];return!this.openOnHover&&this.closeOnClick&&ze.push({name:"click-outside",value:{handler:function handler(){Ee.isActive=!1},closeConditional:this.closeConditional,include:function include(){return[Ee.$el].concat(VMenu_toConsumableArray(Ee.getOpenDependentElements()))}}}),ze},genContent:function genContent(){var Ee=this,ze={attrs:VMenu_objectSpread(VMenu_objectSpread({},this.getScopeIdAttrs()),{},{role:"role"in this.$attrs?this.$attrs.role:"menu"}),staticClass:"v-menu__content",class:VMenu_objectSpread(VMenu_objectSpread(VMenu_objectSpread({},this.rootThemeClasses),this.roundedClasses),{},VMenu_defineProperty({"v-menu__content--auto":this.auto,"v-menu__content--fixed":this.activatorFixed,menuable__content__active:this.isActive},this.contentClass.trim(),!0)),style:this.styles,directives:this.genDirectives(),ref:"content",on:{click:function click(ze){ze.target.getAttribute("disabled")||Ee.closeOnContentClick&&(Ee.isActive=!1)},keydown:this.onKeyDown}};return this.$listeners.scroll&&(ze.on=ze.on||{},ze.on.scroll=this.$listeners.scroll),!this.disabled&&this.openOnHover&&(ze.on=ze.on||{},ze.on.mouseenter=this.mouseEnterHandler),this.openOnHover&&(ze.on=ze.on||{},ze.on.mouseleave=this.mouseLeaveHandler),this.$createElement("div",ze,this.getContentSlot())},getTiles:function getTiles(){this.$refs.content&&(this.tiles=Array.from(this.$refs.content.querySelectorAll(".v-list-item")))},mouseEnterHandler:function mouseEnterHandler(){var Ee=this;this.runDelay("open",(function(){Ee.hasJustFocused||(Ee.hasJustFocused=!0)}))},mouseLeaveHandler:function mouseLeaveHandler(Ee){var ze=this;this.runDelay("close",(function(){ze.$refs.content.contains(Ee.relatedTarget)||requestAnimationFrame((function(){ze.isActive=!1,ze.callDeactivate()}))}))},nextTile:function nextTile(){var Ee=this.tiles[this.listIndex+1];if(!Ee){if(!this.tiles.length)return;return this.listIndex=-1,void this.nextTile()}this.listIndex++,-1===Ee.tabIndex&&this.nextTile()},prevTile:function prevTile(){var Ee=this.tiles[this.listIndex-1];if(!Ee){if(!this.tiles.length)return;return this.listIndex=this.tiles.length,void this.prevTile()}this.listIndex--,-1===Ee.tabIndex&&this.prevTile()},lastTile:function lastTile(){var Ee=this.tiles[this.tiles.length-1];Ee&&(this.listIndex=this.tiles.length-1,-1===Ee.tabIndex&&this.prevTile())},firstTile:function firstTile(){var Ee=this.tiles[0];Ee&&(this.listIndex=0,-1===Ee.tabIndex&&this.nextTile())},onKeyDown:function onKeyDown(Ee){var ze=this;if(Ee.keyCode===sn.x.esc){setTimeout((function(){ze.isActive=!1}));var Be=this.getActivator();this.$nextTick((function(){return Be&&Be.focus()}))}else!this.isActive&&[sn.x.up,sn.x.down].includes(Ee.keyCode)&&(this.isActive=!0);this.$nextTick((function(){return ze.changeListIndex(Ee)}))},onResize:function onResize(){this.isActive&&(this.$refs.content.offsetWidth,this.updateDimensions(),clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout(this.updateDimensions,100))}},render:function render(Ee){var ze=this;return Ee("div",{staticClass:"v-menu",class:{"v-menu--attached":""===this.attach||!0===this.attach||"attach"===this.attach},directives:[{arg:"500",name:"resize",value:this.onResize}]},[!this.activator&&this.genActivator(),this.showLazyContent((function(){return[ze.$createElement(rr,{props:{root:!0,light:ze.light,dark:ze.dark}},[ze.genTransition()])]}))])}}),Df=(Be("cf36"),Be("5607")),If=Be("d9f7");function VSimpleCheckbox_ownKeys(Ee,ze){var Be=Object.keys(Ee);if(Object.getOwnPropertySymbols){var Ue=Object.getOwnPropertySymbols(Ee);ze&&(Ue=Ue.filter((function(ze){return Object.getOwnPropertyDescriptor(Ee,ze).enumerable}))),Be.push.apply(Be,Ue)}return Be}function VSimpleCheckbox_objectSpread(Ee){for(var ze=1;ze'.concat(Object(sn.l)(Ee),"")},getMaskedCharacters:function getMaskedCharacters(Ee){var ze=(this.searchInput||"").toString().toLocaleLowerCase(),Be=Ee.toLocaleLowerCase().indexOf(ze);return Be<0?{start:Ee,middle:"",end:""}:{start:Ee.slice(0,Be),middle:Ee.slice(Be,Be+ze.length),end:Ee.slice(Be+ze.length)}},genTile:function genTile(Ee){var ze=this,Be=Ee.item,Ue=Ee.index,We=Ee.disabled,$e=void 0===We?null:We,Qe=Ee.value,rt=void 0!==Qe&&Qe;rt||(rt=this.hasItem(Be)),Be===Object(Be)&&($e=null!==$e?$e:this.getDisabled(Be));var it={attrs:{"aria-selected":String(rt),id:"list-item-".concat(this._uid,"-").concat(Ue),role:"option"},on:{mousedown:function mousedown(Ee){Ee.preventDefault()},click:function click(){return $e||ze.$emit("select",Be)}},props:{activeClass:this.tileActiveClass,disabled:$e,ripple:!0,inputValue:rt}};if(!this.$scopedSlots.item)return this.$createElement(Hn.a,it,[this.action&&!this.hideSelected&&this.items.length>0?this.genAction(Be,rt):null,this.genTileContent(Be,Ue)]);var at=this.$scopedSlots.item({parent:this,item:Be,attrs:VSelectList_objectSpread(VSelectList_objectSpread({},it.attrs),it.props),on:it.on});return this.needsTile(at)?this.$createElement(Hn.a,it,at):at},genTileContent:function genTileContent(Ee){var ze=this.genFilteredText(this.getText(Ee));return this.$createElement(ei.a,[this.$createElement(ei.c,{domProps:{innerHTML:ze}})])},hasItem:function hasItem(Ee){return this.parsedItems.indexOf(this.getValue(Ee))>-1},needsTile:function needsTile(Ee){return 1!==Ee.length||null==Ee[0].componentOptions||"v-list-item"!==Ee[0].componentOptions.Ctor.options.name},getDisabled:function getDisabled(Ee){return Boolean(Object(sn.r)(Ee,this.itemDisabled,!1))},getText:function getText(Ee){return String(Object(sn.r)(Ee,this.itemText,Ee))},getValue:function getValue(Ee){return Object(sn.r)(Ee,this.itemValue,this.getText(Ee))}},render:function render(){for(var Ee=[],ze=this.items.length,Be=0;Be=Ee.length?{done:!0}:{done:!1,value:Ee[Ue++]}},e:function e(Ee){throw Ee},f:We}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var $e,Qe=!0,rt=!1;return{s:function s(){Be=Be.call(Ee)},n:function n(){var Ee=Be.next();return Qe=Ee.done,Ee},e:function e(Ee){rt=!0,$e=Ee},f:function f(){try{Qe||null==Be.return||Be.return()}finally{if(rt)throw $e}}}}function VSelect_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0},listData:function listData(){var Ee=this.$vnode&&this.$vnode.context.$options._scopeId;return{attrs:VSelect_objectSpread(VSelect_objectSpread({},Ee?VSelect_defineProperty({},Ee,!0):{}),{},{id:this.computedOwns}),props:{action:this.multiple,color:this.itemColor,dense:this.dense,hideSelected:this.hideSelected,items:this.virtualizedItems,itemDisabled:this.itemDisabled,itemText:this.itemText,itemValue:this.itemValue,noDataText:this.$vuetify.lang.t(this.noDataText),selectedItems:this.selectedItems},on:{select:this.selectItem},scopedSlots:{item:this.$scopedSlots.item}}},staticList:function staticList(){return(this.$slots["no-data"]||this.$slots["prepend-item"]||this.$slots["append-item"])&&Object(cn.b)("assert: staticList should not be called if slots are used"),this.$createElement(Nf,this.listData)},virtualizedItems:function virtualizedItems(){return this.$_menuProps.auto?this.computedItems:this.computedItems.slice(0,this.lastItem)},menuCanShow:function menuCanShow(){return!0},$_menuProps:function $_menuProps(){var Ee="string"==typeof this.menuProps?this.menuProps.split(","):this.menuProps;return Array.isArray(Ee)&&(Ee=Ee.reduce((function(Ee,ze){return Ee[ze.trim()]=!0,Ee}),{})),VSelect_objectSpread(VSelect_objectSpread({},Vf),{},{eager:this.eager,value:this.menuCanShow&&this.isMenuActive,nudgeBottom:Ee.offsetY?1:0},Ee)}},watch:{internalValue:function internalValue(Ee){this.initialValue=Ee,this.setSelectedItems()},isMenuActive:function isMenuActive(Ee){var ze=this;window.setTimeout((function(){return ze.onMenuActiveChange(Ee)}))},items:{immediate:!0,handler:function handler(Ee){var ze=this;this.cacheItems&&this.$nextTick((function(){ze.cachedItems=ze.filterDuplicates(ze.cachedItems.concat(Ee))})),this.setSelectedItems()}}},methods:{blur:function blur(Ee){ri.a.options.methods.blur.call(this,Ee),this.isMenuActive=!1,this.isFocused=!1,this.selectedIndex=-1,this.setMenuIndex(-1)},activateMenu:function activateMenu(){this.isInteractive&&!this.isMenuActive&&(this.isMenuActive=!0)},clearableCallback:function clearableCallback(){var Ee=this;this.setValue(this.multiple?[]:null),this.setMenuIndex(-1),this.$nextTick((function(){return Ee.$refs.input&&Ee.$refs.input.focus()})),this.openOnClear&&(this.isMenuActive=!0)},closeConditional:function closeConditional(Ee){return!this.isMenuActive||!this._isDestroyed&&(!this.getContent()||!this.getContent().contains(Ee.target))&&this.$el&&!this.$el.contains(Ee.target)&&Ee.target!==this.$el},filterDuplicates:function filterDuplicates(Ee){for(var ze=new Map,Be=0;Be1e3&&(this.keyboardLookupPrefix=""),this.keyboardLookupPrefix+=Ee.key.toLowerCase(),this.keyboardLookupLastTime=Be;var Ue=this.allItems.findIndex((function(Ee){return(ze.getText(Ee)||"").toString().toLowerCase().startsWith(ze.keyboardLookupPrefix)})),We=this.allItems[Ue];-1!==Ue&&(this.lastItem=Math.max(this.lastItem,Ue+5),this.setValue(this.returnObject?We:this.getValue(We)),this.$nextTick((function(){return ze.$refs.menu.getTiles()})),setTimeout((function(){return ze.setMenuIndex(Ue)})))}},onKeyDown:function onKeyDown(Ee){var ze=this;if(!this.isReadonly||Ee.keyCode===sn.x.tab){var Be=Ee.keyCode,Ue=this.$refs.menu;if(this.$emit("keydown",Ee),Ue)return this.isMenuActive&&Be!==sn.x.tab&&this.$nextTick((function(){Ue.changeListIndex(Ee),ze.$emit("update:list-index",Ue.listIndex)})),[sn.x.enter,sn.x.space].includes(Be)&&this.activateMenu(),!this.isMenuActive&&[sn.x.up,sn.x.down,sn.x.home,sn.x.end].includes(Be)?this.onUpDown(Ee):Be===sn.x.esc?this.onEscDown(Ee):Be===sn.x.tab?this.onTabDown(Ee):Be===sn.x.space?this.onSpaceDown(Ee):void 0}},onMenuActiveChange:function onMenuActiveChange(Ee){if(!(this.multiple&&!Ee||this.getMenuIndex()>-1)){var ze=this.$refs.menu;if(ze&&this.isDirty){this.$refs.menu.getTiles();for(var Be=0;Bethis.computedItems.length)return;this.getContent().scrollHeight-(this.getContent().scrollTop+this.getContent().clientHeight)<200&&(this.lastItem+=20)}else requestAnimationFrame((function(){return Ee.getContent().scrollTop=0}))},onSpaceDown:function onSpaceDown(Ee){Ee.preventDefault()},onTabDown:function onTabDown(Ee){var ze=this.$refs.menu;if(ze){var Be=ze.activeTile;!this.multiple&&Be&&this.isMenuActive?(Ee.preventDefault(),Ee.stopPropagation(),Be.click()):this.blur(Ee)}},onUpDown:function onUpDown(Ee){var ze=this,Be=this.$refs.menu;if(Be){if(Ee.preventDefault(),this.multiple)return this.activateMenu();var Ue=Ee.keyCode;Be.isBooted=!0,window.requestAnimationFrame((function(){if(Be.getTiles(),!Be.hasClickableTiles)return ze.activateMenu();switch(Ue){case sn.x.up:Be.prevTile();break;case sn.x.down:Be.nextTile();break;case sn.x.home:Be.firstTile();break;case sn.x.end:Be.lastTile()}ze.selectItem(ze.allItems[ze.getMenuIndex()])}))}},selectItem:function selectItem(Ee){var ze=this;if(this.multiple){var Be=(this.internalValue||[]).slice(),Ue=this.findExistingIndex(Ee);-1!==Ue?Be.splice(Ue,1):Be.push(Ee),this.setValue(Be.map((function(Ee){return ze.returnObject?Ee:ze.getValue(Ee)}))),this.$nextTick((function(){ze.$refs.menu&&ze.$refs.menu.updateDimensions()}));var We=this.getMenuIndex();if(this.setMenuIndex(-1),this.hideSelected)return;this.$nextTick((function(){return ze.setMenuIndex(We)}))}else this.setValue(this.returnObject?Ee:this.getValue(Ee)),this.isMenuActive=!1},setMenuIndex:function setMenuIndex(Ee){this.$refs.menu&&(this.$refs.menu.listIndex=Ee)},setSelectedItems:function setSelectedItems(){var Ee,ze=this,Be=[],Ue=VSelect_createForOfIteratorHelper(this.multiple&&Array.isArray(this.internalValue)?this.internalValue:[this.internalValue]);try{var We=function _loop(){var Ue=Ee.value,We=ze.allItems.findIndex((function(Ee){return ze.valueComparator(ze.getValue(Ee),ze.getValue(Ue))}));We>-1&&Be.push(ze.allItems[We])};for(Ue.s();!(Ee=Ue.n()).done;)We()}catch(Ee){Ue.e(Ee)}finally{Ue.f()}this.selectedItems=Be},setValue:function setValue(Ee){this.valueComparator(Ee,this.internalValue)||(this.internalValue=Ee,this.$emit("change",Ee))},isAppendInner:function isAppendInner(Ee){var ze=this.$refs["append-inner"];return ze&&(ze===Ee||ze.contains(Ee))}}}),Hf=Be("afdd");function VDataFooter_typeof(Ee){return(VDataFooter_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(Ee){return typeof Ee}:function _typeof(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(Ee)}var qf=ar.default.extend({name:"v-data-footer",props:{options:{type:Object,required:!0},pagination:{type:Object,required:!0},itemsPerPageOptions:{type:Array,default:function _default(){return[5,10,15,-1]}},prevIcon:{type:String,default:"$prev"},nextIcon:{type:String,default:"$next"},firstIcon:{type:String,default:"$first"},lastIcon:{type:String,default:"$last"},itemsPerPageText:{type:String,default:"$vuetify.dataFooter.itemsPerPageText"},itemsPerPageAllText:{type:String,default:"$vuetify.dataFooter.itemsPerPageAll"},showFirstLastPage:Boolean,showCurrentPage:Boolean,disablePagination:Boolean,disableItemsPerPage:Boolean,pageText:{type:String,default:"$vuetify.dataFooter.pageText"}},computed:{disableNextPageIcon:function disableNextPageIcon(){return this.options.itemsPerPage<=0||this.options.page*this.options.itemsPerPage>=this.pagination.itemsLength||this.pagination.pageStop<0},computedDataItemsPerPageOptions:function computedDataItemsPerPageOptions(){var Ee=this;return this.itemsPerPageOptions.map((function(ze){return"object"===VDataFooter_typeof(ze)?ze:Ee.genDataItemsPerPageOption(ze)}))}},methods:{updateOptions:function updateOptions(Ee){this.$emit("update:options",Object.assign({},this.options,Ee))},onFirstPage:function onFirstPage(){this.updateOptions({page:1})},onPreviousPage:function onPreviousPage(){this.updateOptions({page:this.options.page-1})},onNextPage:function onNextPage(){this.updateOptions({page:this.options.page+1})},onLastPage:function onLastPage(){this.updateOptions({page:this.pagination.pageCount})},onChangeItemsPerPage:function onChangeItemsPerPage(Ee){this.updateOptions({itemsPerPage:Ee,page:1})},genDataItemsPerPageOption:function genDataItemsPerPageOption(Ee){return{text:-1===Ee?this.$vuetify.lang.t(this.itemsPerPageAllText):String(Ee),value:Ee}},genItemsPerPageSelect:function genItemsPerPageSelect(){var Ee=this.options.itemsPerPage,ze=this.computedDataItemsPerPageOptions;return ze.length<=1?null:(ze.find((function(ze){return ze.value===Ee}))||(Ee=ze[0]),this.$createElement("div",{staticClass:"v-data-footer__select"},[this.$vuetify.lang.t(this.itemsPerPageText),this.$createElement(Uf,{attrs:{"aria-label":this.$vuetify.lang.t(this.itemsPerPageText)},props:{disabled:this.disableItemsPerPage,items:ze,value:Ee,hideDetails:!0,auto:!0,minWidth:"75px"},on:{input:this.onChangeItemsPerPage}})]))},genPaginationInfo:function genPaginationInfo(){var Ee=["–"],ze=this.pagination.itemsLength,Be=this.pagination.pageStart,Ue=this.pagination.pageStop;return this.pagination.itemsLength&&this.pagination.itemsPerPage?(Be=this.pagination.pageStart+1,Ue=ze=this.pagination.pageCount||-1===this.options.itemsPerPage,this.$vuetify.lang.t("$vuetify.dataFooter.lastPage"),this.$vuetify.rtl?this.firstIcon:this.lastIcon))),[this.$createElement("div",{staticClass:"v-data-footer__icons-before"},Ee),this.showCurrentPage&&this.$createElement("span",[this.options.page.toString()]),this.$createElement("div",{staticClass:"v-data-footer__icons-after"},ze)]}},render:function render(){return this.$createElement("div",{staticClass:"v-data-footer"},[Object(sn.s)(this,"prepend"),this.genItemsPerPageSelect(),this.genPaginationInfo(),this.genIcons()])}}),Gf=Be("e4cd");function VDataIterator_slicedToArray(Ee,ze){return function VDataIterator_arrayWithHoles(Ee){if(Array.isArray(Ee))return Ee}(Ee)||function VDataIterator_iterableToArrayLimit(Ee,ze){var Be=null==Ee?null:"undefined"!=typeof Symbol&&Ee[Symbol.iterator]||Ee["@@iterator"];if(null==Be)return;var Ue,We,$e=[],Qe=!0,rt=!1;try{for(Be=Be.call(Ee);!(Qe=(Ue=Be.next()).done)&&($e.push(Ue.value),!ze||$e.length!==ze);Qe=!0);}catch(Ee){rt=!0,We=Ee}finally{try{Qe||null==Be.return||Be.return()}finally{if(rt)throw We}}return $e}(Ee,ze)||function VDataIterator_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return VDataIterator_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return VDataIterator_arrayLikeToArray(Ee,ze)}(Ee,ze)||function VDataIterator_nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function VDataIterator_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be1&&void 0!==arguments[1])||arguments[1],Ue=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(this.isSelectable(Ee)){var We=this.singleSelect?{}:Object.assign({},this.selection),$e=Object(sn.p)(Ee,this.itemKey);Be?We[$e]=Ee:delete We[$e];var Qe=this.selectableItems.findIndex((function(Ee){return Object(sn.p)(Ee,ze.itemKey)===$e}));if(-1===this.lastEntry)this.lastEntry=Qe;else if(this.shiftKeyDown&&!this.singleSelect&&Ue){var rt=Object(sn.p)(this.selectableItems[this.lastEntry],this.itemKey),it=Object.keys(this.selection).includes(String(rt));this.multipleSelect(it,Ue,We,Qe)}if(this.lastEntry=Qe,this.singleSelect&&Ue){var at=Object.keys(this.selection),ct=at.length&&Object(sn.p)(this.selection[at[0]],this.itemKey);ct&&ct!==$e&&this.$emit("item-selected",{item:this.selection[ct],value:!1})}this.selection=We,Ue&&this.$emit("item-selected",{item:Ee,value:Be})}},multipleSelect:function multipleSelect(){for(var Ee=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],ze=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],Be=arguments.length>2?arguments[2]:void 0,Ue=arguments.length>3?arguments[3]:void 0,We=Ue1&&void 0!==arguments[1])||arguments[1],Be=this.singleExpand?{}:Object.assign({},this.expansion),Ue=Object(sn.p)(Ee,this.itemKey);ze?Be[Ue]=!0:delete Be[Ue],this.expansion=Be,this.$emit("item-expanded",{item:Ee,value:ze})},createItemProps:function createItemProps(Ee,ze){var Be=this;return{item:Ee,index:ze,select:function select(ze){return Be.select(Ee,ze)},isSelected:this.isSelected(Ee),expand:function expand(ze){return Be.expand(Ee,ze)},isExpanded:this.isExpanded(Ee),isMobile:this.isMobile}},genEmptyWrapper:function genEmptyWrapper(Ee){return this.$createElement("div",Ee)},genEmpty:function genEmpty(Ee,ze){if(0===Ee&&this.loading){var Be=this.$slots.loading||this.$vuetify.lang.t(this.loadingText);return this.genEmptyWrapper(Be)}if(0===Ee){var Ue=this.$slots["no-data"]||this.$vuetify.lang.t(this.noDataText);return this.genEmptyWrapper(Ue)}if(0===ze){var We=this.$slots["no-results"]||this.$vuetify.lang.t(this.noResultsText);return this.genEmptyWrapper(We)}return null},genItems:function genItems(Ee){var ze=this,Be=this.genEmpty(Ee.originalItemsLength,Ee.pagination.itemsLength);return Be?[Be]:this.$scopedSlots.default?this.$scopedSlots.default(VDataIterator_objectSpread(VDataIterator_objectSpread({},Ee),{},{isSelected:this.isSelected,select:this.select,isExpanded:this.isExpanded,isMobile:this.isMobile,expand:this.expand})):this.$scopedSlots.item?Ee.items.map((function(Ee,Be){return ze.$scopedSlots.item(ze.createItemProps(Ee,Be))})):[]},genFooter:function genFooter(Ee){if(this.hideDefaultFooter)return null;var ze={props:VDataIterator_objectSpread(VDataIterator_objectSpread({},this.sanitizedFooterProps),{},{options:Ee.options,pagination:Ee.pagination}),on:{"update:options":function updateOptions(ze){return Ee.updateOptions(ze)}}},Be=Object(sn.q)("footer.",this.$scopedSlots);return this.$createElement(qf,VDataIterator_objectSpread({scopedSlots:Be},ze))},genDefaultScopedSlot:function genDefaultScopedSlot(Ee){var ze=VDataIterator_objectSpread(VDataIterator_objectSpread({},Ee),{},{someItems:this.someItems,everyItem:this.everyItem,toggleSelectAll:this.toggleSelectAll});return this.$createElement("div",{staticClass:"v-data-iterator"},[Object(sn.s)(this,"header",ze,!0),this.genItems(Ee),this.genFooter(Ee),Object(sn.s)(this,"footer",ze,!0)])}},render:function render(){var Ee=this;return this.$createElement(Cf,{props:this.$props,on:{"update:options":function updateOptions(ze,Be){return!Object(sn.j)(ze,Be)&&Ee.$emit("update:options",ze)},"update:page":function updatePage(ze){return Ee.$emit("update:page",ze)},"update:items-per-page":function updateItemsPerPage(ze){return Ee.$emit("update:items-per-page",ze)},"update:sort-by":function updateSortBy(ze){return Ee.$emit("update:sort-by",ze)},"update:sort-desc":function updateSortDesc(ze){return Ee.$emit("update:sort-desc",ze)},"update:group-by":function updateGroupBy(ze){return Ee.$emit("update:group-by",ze)},"update:group-desc":function updateGroupDesc(ze){return Ee.$emit("update:group-desc",ze)},pagination:function pagination(ze,Be){return!Object(sn.j)(ze,Be)&&Ee.$emit("pagination",ze)},"current-items":function currentItems(ze){Ee.internalCurrentItems=ze,Ee.$emit("current-items",ze)},"page-count":function pageCount(ze){return Ee.$emit("page-count",ze)}},scopedSlots:{default:this.genDefaultScopedSlot}})}});Be("f823");function header_ownKeys(Ee,ze){var Be=Object.keys(Ee);if(Object.getOwnPropertySymbols){var Ue=Object.getOwnPropertySymbols(Ee);ze&&(Ue=Ue.filter((function(ze){return Object.getOwnPropertyDescriptor(Ee,ze).enumerable}))),Be.push.apply(Be,Ue)}return Be}function header_defineProperty(Ee,ze,Be){return ze in Ee?Object.defineProperty(Ee,ze,{value:Be,enumerable:!0,configurable:!0,writable:!0}):Ee[ze]=Be,Ee}var Yf=Object(on.a)().extend({directives:{ripple:Df.a},props:{headers:{type:Array,default:function _default(){return[]}},options:{type:Object,default:function _default(){return{page:1,itemsPerPage:10,sortBy:[],sortDesc:[],groupBy:[],groupDesc:[],multiSort:!1,mustSort:!1}}},checkboxColor:String,sortIcon:{type:String,default:"$sort"},everyItem:Boolean,someItems:Boolean,showGroupBy:Boolean,singleSelect:Boolean,disableSort:Boolean},methods:{genSelectAll:function genSelectAll(){var Ee,ze=this,Be={props:{value:this.everyItem,indeterminate:!this.everyItem&&this.someItems,color:null!=(Ee=this.checkboxColor)?Ee:""},on:{input:function input(Ee){return ze.$emit("toggle-select-all",Ee)}}};return this.$scopedSlots["data-table-select"]?this.$scopedSlots["data-table-select"](Be):this.$createElement(zf,function header_objectSpread(Ee){for(var ze=1;zeEe.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be=0,$e=this.options.sortDesc[Ue];return Be.push(this.$createElement("div",{staticClass:"v-chip__close",class:{sortable:!0,active:We,asc:We&&!$e,desc:We&&$e}},[this.genSortIcon()])),this.$createElement(Ef,{staticClass:"sortable",on:{click:function click(Be){Be.stopPropagation(),ze.$emit("sort",Ee.item.value)}}},Be)},genSortSelect:function genSortSelect(Ee){var ze=this;return this.$createElement(Uf,{props:{label:this.$vuetify.lang.t(this.sortByText),items:Ee,hideDetails:!0,multiple:this.options.multiSort,value:this.options.multiSort?this.options.sortBy:this.options.sortBy[0],menuProps:{closeOnContentClick:!0}},on:{change:function change(Ee){return ze.$emit("sort",Ee)}},scopedSlots:{selection:function selection(Ee){return ze.genSortChip(Ee)}}})}},render:function render(Ee){var ze=[],Be=this.headers.find((function(Ee){return"data-table-select"===Ee.value}));Be&&!this.singleSelect&&ze.push(this.$createElement("div",{class:["v-data-table-header-mobile__select"].concat(VDataTableHeaderMobile_toConsumableArray(Object(sn.G)(Be.class))),attrs:{width:Be.width}},[this.genSelectAll()]));var Ue=this.headers.filter((function(Ee){return!1!==Ee.sortable&&"data-table-select"!==Ee.value})).map((function(Ee){return{text:Ee.text,value:Ee.value}}));!this.disableSort&&Ue.length&&ze.push(this.genSortSelect(Ue));var We=Ee("th",[Ee("div",{staticClass:"v-data-table-header-mobile__wrapper"},ze)]),$e=Ee("tr",[We]);return Ee("thead",{staticClass:"v-data-table-header v-data-table-header-mobile"},[$e])}});function VDataTableHeaderDesktop_toConsumableArray(Ee){return function VDataTableHeaderDesktop_arrayWithoutHoles(Ee){if(Array.isArray(Ee))return VDataTableHeaderDesktop_arrayLikeToArray(Ee)}(Ee)||function VDataTableHeaderDesktop_iterableToArray(Ee){if("undefined"!=typeof Symbol&&null!=Ee[Symbol.iterator]||null!=Ee["@@iterator"])return Array.from(Ee)}(Ee)||function VDataTableHeaderDesktop_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return VDataTableHeaderDesktop_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return VDataTableHeaderDesktop_arrayLikeToArray(Ee,ze)}(Ee)||function VDataTableHeaderDesktop_nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function VDataTableHeaderDesktop_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be=0,Qe=this.options.sortDesc[We];Be.class.push("sortable");var rt=this.getAria($e,Qe),it=rt.ariaLabel,at=rt.ariaSort;Be.attrs["aria-label"]+="".concat(Ee.text?": ":"").concat(it),Be.attrs["aria-sort"]=at,$e&&(Be.class.push("active"),Be.class.push(Qe?"desc":"asc")),"end"===Ee.align?Ue.unshift(this.genSortIcon()):Ue.push(this.genSortIcon()),this.options.multiSort&&$e&&Ue.push(this.$createElement("span",{class:"v-data-table-header__sort-badge"},[String(We+1)]))}return this.showGroupBy&&!1!==Ee.groupable&&Ue.push(this.genGroupByToggle(Ee)),this.$createElement("th",Be,Ue)}},render:function render(){var Ee=this;return this.$createElement("thead",{staticClass:"v-data-table-header"},[this.$createElement("tr",this.headers.map((function(ze){return Ee.genHeader(ze)})))])}});function VDataTableHeader_ownKeys(Ee,ze){var Be=Object.keys(Ee);if(Object.getOwnPropertySymbols){var Ue=Object.getOwnPropertySymbols(Ee);ze&&(Ue=Ue.filter((function(ze){return Object.getOwnPropertyDescriptor(Ee,ze).enumerable}))),Be.push.apply(Be,Ue)}return Be}function VDataTableHeader_objectSpread(Ee){for(var ze=1;ze-1&&Ee.on.input.splice(ze,1)}else delete Ee.on.input}(Ue);var $e=function rebuildFunctionalSlots(Ee,ze){var Be=[];for(var Ue in Ee)Ee.hasOwnProperty(Ue)&&Be.push(ze("template",{slot:Ue},Ee[Ue]));return Be}(We(),Ee);return Ue=Object(If.a)(Ue,{props:Be}),Be.mobile?Ee(Zf,Ue,$e):Ee(Xf,Ue,$e)}}),Kf=ar.default.extend({name:"row",functional:!0,props:{headers:Array,index:Number,item:Object,rtl:Boolean},render:function render(Ee,ze){var Be=ze.props,Ue=ze.slots,We=ze.data,$e=Ue(),Qe=Be.headers.map((function(ze){var Ue=[],Qe=Object(sn.p)(Be.item,ze.value),rt=ze.value,it=We.scopedSlots&&We.scopedSlots[rt],at=$e[rt];it?Ue.push(it({item:Be.item,isMobile:!1,header:ze,index:Be.index,value:Qe})):at?Ue.push(at):Ue.push(null==Qe?Qe:String(Qe));var ct="text-".concat(ze.align||"start");return Ee("td",{class:[ct,ze.cellClass,{"v-data-table__divider":ze.divider}]},Ue)}));return Ee("tr",We,Qe)}});function RowGroup_toConsumableArray(Ee){return function RowGroup_arrayWithoutHoles(Ee){if(Array.isArray(Ee))return RowGroup_arrayLikeToArray(Ee)}(Ee)||function RowGroup_iterableToArray(Ee){if("undefined"!=typeof Symbol&&null!=Ee[Symbol.iterator]||null!=Ee["@@iterator"])return Array.from(Ee)}(Ee)||function RowGroup_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return RowGroup_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return RowGroup_arrayLikeToArray(Ee,ze)}(Ee)||function RowGroup_nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function RowGroup_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);BeEe.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be2&&void 0!==arguments[2]?arguments[2]:{},We=Object(sn.q)("item.",this.$scopedSlots),$e=this.createItemProps(Ee,ze);if(this.showSelect){var Qe=We["data-table-select"];We["data-table-select"]=Qe?function(){return Qe(VDataTable_objectSpread(VDataTable_objectSpread({},$e),{},{isMobile:Be.isMobile}))}:function(){var ze;return Be.$createElement(zf,{staticClass:"v-data-table__checkbox",props:{value:$e.isSelected,disabled:!Be.isSelectable(Ee),color:null!=(ze=Be.checkboxColor)?ze:""},on:{input:function input(Ee){return $e.select(Ee)}}})}}if(this.showExpand){var rt=We["data-table-expand"];We["data-table-expand"]=rt?function(){return rt($e)}:function(){return Be.$createElement(Vo.a,{staticClass:"v-data-table__expand-icon",class:{"v-data-table__expand-icon--active":$e.isExpanded},on:{click:function click(Ee){Ee.stopPropagation(),$e.expand(!$e.isExpanded)}}},[Be.expandIcon])}}return this.$createElement(this.isMobile?eh:Kf,{key:Object(sn.p)(Ee,this.itemKey),class:Object(If.b)(VDataTable_objectSpread(VDataTable_objectSpread({},Ue),{},{"v-data-table__selected":$e.isSelected}),Object(sn.r)(Ee,this.itemClass)),props:{headers:this.computedHeaders,hideDefaultHeader:this.hideDefaultHeader,index:ze,item:Ee,rtl:this.$vuetify.rtl},scopedSlots:We,on:{click:function click(){return Be.$emit("click:row",Ee,$e)},contextmenu:function contextmenu(Ee){return Be.$emit("contextmenu:row",Ee,$e)},dblclick:function dblclick(Ee){return Be.$emit("dblclick:row",Ee,$e)}}})},genBody:function genBody(Ee){var ze=VDataTable_objectSpread(VDataTable_objectSpread({},Ee),{},{expand:this.expand,headers:this.computedHeaders,isExpanded:this.isExpanded,isMobile:this.isMobile,isSelected:this.isSelected,select:this.select});return this.$scopedSlots.body?this.$scopedSlots.body(ze):this.$createElement("tbody",[Object(sn.s)(this,"body.prepend",ze,!0),this.genItems(Ee.items,Ee),Object(sn.s)(this,"body.append",ze,!0)])},genFoot:function genFoot(Ee){var ze,Be;return null==(ze=(Be=this.$scopedSlots).foot)?void 0:ze.call(Be,Ee)},genFooters:function genFooters(Ee){var ze={props:VDataTable_objectSpread({options:Ee.options,pagination:Ee.pagination,itemsPerPageText:"$vuetify.dataTable.itemsPerPageText"},this.sanitizedFooterProps),on:{"update:options":function updateOptions(ze){return Ee.updateOptions(ze)}},widths:this.widths,headers:this.computedHeaders},Be=[Object(sn.s)(this,"footer",ze,!0)];return this.hideDefaultFooter||Be.push(this.$createElement(qf,VDataTable_objectSpread(VDataTable_objectSpread({},ze),{},{scopedSlots:Object(sn.q)("footer.",this.$scopedSlots)}))),Be},genDefaultScopedSlot:function genDefaultScopedSlot(Ee){var ze={height:this.height,fixedHeader:this.fixedHeader,dense:this.dense};return this.$createElement(Qf,{props:ze,class:{"v-data-table--mobile":this.isMobile}},[this.proxySlot("top",Object(sn.s)(this,"top",VDataTable_objectSpread(VDataTable_objectSpread({},Ee),{},{isMobile:this.isMobile}),!0)),this.genCaption(Ee),this.genColgroup(Ee),this.genHeaders(Ee),this.genBody(Ee),this.genFoot(Ee),this.proxySlot("bottom",this.genFooters(Ee))])},proxySlot:function proxySlot(Ee,ze){return this.$createElement("template",{slot:Ee},ze)}},render:function render(){var Ee=this;return this.$createElement(Cf,{props:VDataTable_objectSpread(VDataTable_objectSpread({},this.$props),{},{customFilter:this.customFilterWithColumns,customSort:this.customSortWithHeaders,itemsPerPage:this.computedItemsPerPage}),on:{"update:options":function updateOptions(ze,Be){Ee.internalGroupBy=ze.groupBy||[],!Object(sn.j)(ze,Be)&&Ee.$emit("update:options",ze)},"update:page":function updatePage(ze){return Ee.$emit("update:page",ze)},"update:items-per-page":function updateItemsPerPage(ze){return Ee.$emit("update:items-per-page",ze)},"update:sort-by":function updateSortBy(ze){return Ee.$emit("update:sort-by",ze)},"update:sort-desc":function updateSortDesc(ze){return Ee.$emit("update:sort-desc",ze)},"update:group-by":function updateGroupBy(ze){return Ee.$emit("update:group-by",ze)},"update:group-desc":function updateGroupDesc(ze){return Ee.$emit("update:group-desc",ze)},pagination:function pagination(ze,Be){return!Object(sn.j)(ze,Be)&&Ee.$emit("pagination",ze)},"current-items":function currentItems(ze){Ee.internalCurrentItems=ze,Ee.$emit("current-items",ze)},"page-count":function pageCount(ze){return Ee.$emit("page-count",ze)}},scopedSlots:{default:this.genDefaultScopedSlot}})}}),nh=Object(ft.a)(Sf,(function(){var Ee=this,ze=Ee.$createElement,Be=Ee._self._c||ze;return Be("div",[Be("v-data-table",{attrs:{headers:Ee.headers,items:Ee.statistics,dense:""},scopedSlots:Ee._u([{key:"footer.page-text",fn:function(){return[Be("vue-json-to-csv",{attrs:{"json-data":Ee.statistics,"csv-title":"beastiary"}},[Be("v-btn",{attrs:{color:"primary",dark:"",small:""}},[Ee._v(" Download ")])],1)]},proxy:!0}])})],1)}),[],!1,null,null,null),ih=nh.exports;kt()(nh,{VBtn:Lt.a,VDataTable:rh});function TraceListvue_type_script_lang_ts_typeof(Ee){return(TraceListvue_type_script_lang_ts_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(Ee){return typeof Ee}:function _typeof(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(Ee)}function TraceListvue_type_script_lang_ts_asyncGeneratorStep(Ee,ze,Be,Ue,We,$e,Qe){try{var rt=Ee[$e](Qe),it=rt.value}catch(Ee){return void Be(Ee)}rt.done?ze(it):Promise.resolve(it).then(Ue,We)}function TraceListvue_type_script_lang_ts_asyncToGenerator(Ee){return function(){var ze=this,Be=arguments;return new Promise((function(Ue,We){var $e=Ee.apply(ze,Be);function _next(Ee){TraceListvue_type_script_lang_ts_asyncGeneratorStep($e,Ue,We,_next,_throw,"next",Ee)}function _throw(Ee){TraceListvue_type_script_lang_ts_asyncGeneratorStep($e,Ue,We,_next,_throw,"throw",Ee)}_next(void 0)}))}}function TraceListvue_type_script_lang_ts_classCallCheck(Ee,ze){if(!(Ee instanceof ze))throw new TypeError("Cannot call a class as a function")}function TraceListvue_type_script_lang_ts_defineProperties(Ee,ze){for(var Be=0;Be0;case"mobile":return this.isMobile||this.isOverflowing||Math.abs(this.scrollOffset)>0;default:return!this.isMobile&&(this.isOverflowing||Math.abs(this.scrollOffset)>0)}},hasNext:function hasNext(){if(!this.hasAffixes)return!1;var Ee=this.widths,ze=Ee.content,Be=Ee.wrapper;return ze>Math.abs(this.scrollOffset)+Be},hasPrev:function hasPrev(){return this.hasAffixes&&0!==this.scrollOffset}},watch:{internalValue:"setWidths",isOverflowing:"setWidths",scrollOffset:function scrollOffset(Ee){this.$refs.content.style.transform="translateX(".concat(-Ee,"px)")}},beforeUpdate:function beforeUpdate(){this.internalItemsLength=(this.$children||[]).length},updated:function updated(){this.internalItemsLength!==(this.$children||[]).length&&this.setWidths()},methods:{genNext:function genNext(){var Ee=this,ze=this.$scopedSlots.next?this.$scopedSlots.next({}):this.$slots.next||this.__cachedNext;return this.$createElement("div",{staticClass:"v-slide-group__next",class:{"v-slide-group__next--disabled":!this.hasNext},on:{click:function click(){return Ee.onAffixClick("next")}},key:"next"},[ze])},genContent:function genContent(){return this.$createElement("div",{staticClass:"v-slide-group__content",ref:"content"},this.$slots.default)},genData:function genData(){return{class:this.classes,directives:[{name:"resize",value:this.onResize}]}},genIcon:function genIcon(Ee){var ze=Ee;this.$vuetify.rtl&&"prev"===Ee?ze="next":this.$vuetify.rtl&&"next"===Ee&&(ze="prev");var Be="".concat(Ee[0].toUpperCase()).concat(Ee.slice(1)),Ue=this["has".concat(Be)];return this.showArrows||Ue?this.$createElement(Vo.a,{props:{disabled:!Ue}},this["".concat(ze,"Icon")]):null},genPrev:function genPrev(){var Ee=this,ze=this.$scopedSlots.prev?this.$scopedSlots.prev({}):this.$slots.prev||this.__cachedPrev;return this.$createElement("div",{staticClass:"v-slide-group__prev",class:{"v-slide-group__prev--disabled":!this.hasPrev},on:{click:function click(){return Ee.onAffixClick("prev")}},key:"prev"},[ze])},genTransition:function genTransition(Ee){return this.$createElement(Bo.d,[this.genIcon(Ee)])},genWrapper:function genWrapper(){var Ee=this;return this.$createElement("div",{staticClass:"v-slide-group__wrapper",directives:[{name:"touch",value:{start:function start(ze){return Ee.overflowCheck(ze,Ee.onTouchStart)},move:function move(ze){return Ee.overflowCheck(ze,Ee.onTouchMove)},end:function end(ze){return Ee.overflowCheck(ze,Ee.onTouchEnd)}}}],ref:"wrapper"},[this.genContent()])},calculateNewOffset:function calculateNewOffset(Ee,ze,Be,Ue){var We=Be?-1:1,$e=We*Ue+("prev"===Ee?-1:1)*ze.wrapper;return We*Math.max(Math.min($e,ze.content-ze.wrapper),0)},onAffixClick:function onAffixClick(Ee){this.$emit("click:".concat(Ee)),this.scrollTo(Ee)},onResize:function onResize(){this._isDestroyed||this.setWidths()},onTouchStart:function onTouchStart(Ee){var ze=this.$refs.content;this.startX=this.scrollOffset+Ee.touchstartX,ze.style.setProperty("transition","none"),ze.style.setProperty("willChange","transform")},onTouchMove:function onTouchMove(Ee){if(this.canTouch){if(!this.isSwiping){var ze=Ee.touchmoveX-Ee.touchstartX,Be=Ee.touchmoveY-Ee.touchstartY;this.isSwipingHorizontal=Math.abs(ze)>Math.abs(Be),this.isSwiping=!0}this.isSwipingHorizontal&&(this.scrollOffset=this.startX-Ee.touchmoveX,document.documentElement.style.overflowY="hidden")}},onTouchEnd:function onTouchEnd(){if(this.canTouch){var Ee=this.$refs,ze=Ee.content,Be=Ee.wrapper,Ue=ze.clientWidth-Be.clientWidth;ze.style.setProperty("transition",null),ze.style.setProperty("willChange",null),this.$vuetify.rtl?this.scrollOffset>0||!this.isOverflowing?this.scrollOffset=0:this.scrollOffset<=-Ue&&(this.scrollOffset=-Ue):this.scrollOffset<0||!this.isOverflowing?this.scrollOffset=0:this.scrollOffset>=Ue&&(this.scrollOffset=Ue),this.isSwiping=!1,document.documentElement.style.removeProperty("overflow-y")}},overflowCheck:function overflowCheck(Ee,ze){Ee.stopPropagation(),this.isOverflowing&&ze(Ee)},scrollIntoView:function scrollIntoView(){if(!this.selectedItem&&this.items.length){var Ee=this.items[this.items.length-1].$el.getBoundingClientRect(),ze=this.$refs.wrapper.getBoundingClientRect();(this.$vuetify.rtl&&ze.rightEe.left)&&this.scrollTo("prev")}this.selectedItem&&(0===this.selectedIndex||!this.centerActive&&!this.isOverflowing?this.scrollOffset=0:this.centerActive?this.scrollOffset=this.calculateCenteredOffset(this.selectedItem.$el,this.widths,this.$vuetify.rtl):this.isOverflowing&&(this.scrollOffset=this.calculateUpdatedOffset(this.selectedItem.$el,this.widths,this.$vuetify.rtl,this.scrollOffset)))},calculateUpdatedOffset:function calculateUpdatedOffset(Ee,ze,Be,Ue){var We=Ee.clientWidth,$e=Be?ze.content-Ee.offsetLeft-We:Ee.offsetLeft;Be&&(Ue=-Ue);var Qe=ze.wrapper+Ue,rt=We+$e,it=.4*We;return $e<=Ue?Ue=Math.max($e-it,0):Qe<=rt&&(Ue=Math.min(Ue-(Qe-rt-it),ze.content-ze.wrapper)),Be?-Ue:Ue},calculateCenteredOffset:function calculateCenteredOffset(Ee,ze,Be){var Ue=Ee.offsetLeft,We=Ee.clientWidth;if(Be){var $e=ze.content-Ue-We/2-ze.wrapper/2;return-Math.min(ze.content-ze.wrapper,Math.max(0,$e))}var Qe=Ue+We/2-ze.wrapper/2;return Math.min(ze.content-ze.wrapper,Math.max(0,Qe))},scrollTo:function scrollTo(Ee){this.scrollOffset=this.calculateNewOffset(Ee,{content:this.$refs.content?this.$refs.content.clientWidth:0,wrapper:this.$refs.wrapper?this.$refs.wrapper.clientWidth:0},this.$vuetify.rtl,this.scrollOffset)},setWidths:function setWidths(){var Ee=this;window.requestAnimationFrame((function(){var ze=Ee.$refs,Be=ze.content,Ue=ze.wrapper;Ee.widths={content:Be?Be.clientWidth:0,wrapper:Ue?Ue.clientWidth:0},Ee.isOverflowing=Ee.widths.wrapper+10?parseFloat(this.step):0},inputWidth:function inputWidth(){return(this.roundValue(this.internalValue)-this.minValue)/(this.maxValue-this.minValue)*100},trackFillStyles:function trackFillStyles(){var Ee,ze=this.vertical?"bottom":"left",Be=this.vertical?"top":"right",Ue=this.vertical?"height":"width",We=this.$vuetify.rtl?"auto":"0",$e=this.$vuetify.rtl?"0":"auto",Qe=this.isDisabled?"calc(".concat(this.inputWidth,"% - 10px)"):"".concat(this.inputWidth,"%");return VSlider_defineProperty(Ee={transition:this.trackTransition},ze,We),VSlider_defineProperty(Ee,Be,$e),VSlider_defineProperty(Ee,Ue,Qe),Ee},trackStyles:function trackStyles(){var Ee,ze=this.vertical?this.$vuetify.rtl?"bottom":"top":this.$vuetify.rtl?"left":"right",Be=this.vertical?"height":"width",Ue=this.isDisabled?"calc(".concat(100-this.inputWidth,"% - 10px)"):"calc(".concat(100-this.inputWidth,"%)");return VSlider_defineProperty(Ee={transition:this.trackTransition},ze,"0px"),VSlider_defineProperty(Ee,Be,Ue),Ee},showTicks:function showTicks(){return this.tickLabels.length>0||!(this.isDisabled||!this.stepNumeric||!this.ticks)},numTicks:function numTicks(){return Math.ceil((this.maxValue-this.minValue)/this.stepNumeric)},showThumbLabel:function showThumbLabel(){return!(this.isDisabled||!this.thumbLabel&&!this.$scopedSlots["thumb-label"])},computedTrackColor:function computedTrackColor(){if(!this.isDisabled)return this.trackColor?this.trackColor:this.isDark?this.validationState:this.validationState||"primary lighten-3"},computedTrackFillColor:function computedTrackFillColor(){if(!this.isDisabled)return this.trackFillColor?this.trackFillColor:this.validationState||this.computedColor},computedThumbColor:function computedThumbColor(){return this.thumbColor?this.thumbColor:this.validationState||this.computedColor}},watch:{min:function min(Ee){var ze=parseFloat(Ee);ze>this.internalValue&&this.$emit("input",ze)},max:function max(Ee){var ze=parseFloat(Ee);ze0}},$e)},genThumbContainer:function genThumbContainer(Ee,ze,Be,Ue,We,$e){var Qe=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"thumb",rt=[this.genThumb()],it=this.genThumbLabelContent(Ee);return this.showThumbLabel&&rt.push(this.genThumbLabel(it)),this.$createElement("div",this.setTextColor(this.computedThumbColor,{ref:Qe,key:Qe,staticClass:"v-slider__thumb-container",class:{"v-slider__thumb-container--active":Be,"v-slider__thumb-container--focused":Ue,"v-slider__thumb-container--show-label":this.showThumbLabel},style:this.getThumbContainerStyles(ze),attrs:VSlider_objectSpread({role:"slider",tabindex:this.isDisabled?-1:this.$attrs.tabindex?this.$attrs.tabindex:0,"aria-label":this.label,"aria-valuemin":this.min,"aria-valuemax":this.max,"aria-valuenow":this.internalValue,"aria-readonly":String(this.isReadonly),"aria-orientation":this.vertical?"vertical":"horizontal"},this.$attrs),on:{focus:We,blur:$e,keydown:this.onKeyDown}}),rt)},genThumbLabelContent:function genThumbLabelContent(Ee){return this.$scopedSlots["thumb-label"]?this.$scopedSlots["thumb-label"]({value:Ee}):[this.$createElement("span",[String(Ee)])]},genThumbLabel:function genThumbLabel(Ee){var ze=Object(sn.g)(this.thumbSize),Be=this.vertical?"translateY(20%) translateY(".concat(Number(this.thumbSize)/3-1,"px) translateX(55%) rotate(135deg)"):"translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)";return this.$createElement(Bo.e,{props:{origin:"bottom center"}},[this.$createElement("div",{staticClass:"v-slider__thumb-label-container",directives:[{name:"show",value:this.isFocused||this.isActive||"always"===this.thumbLabel}]},[this.$createElement("div",this.setBackgroundColor(this.computedThumbColor,{staticClass:"v-slider__thumb-label",style:{height:ze,width:ze,transform:Be}}),[this.$createElement("div",Ee)])])])},genThumb:function genThumb(){return this.$createElement("div",this.setBackgroundColor(this.computedThumbColor,{staticClass:"v-slider__thumb"}))},getThumbContainerStyles:function getThumbContainerStyles(Ee){var ze=this.vertical?"top":"left",Be=this.$vuetify.rtl?100-Ee:Ee;return Be=this.vertical?100-Be:Be,VSlider_defineProperty({transition:this.trackTransition},ze,"".concat(Be,"%"))},onSliderMouseDown:function onSliderMouseDown(Ee){var ze,Be=this;if(Ee.preventDefault(),this.oldValue=this.internalValue,this.isActive=!0,null!=(ze=Ee.target)&&ze.matches(".v-slider__thumb-container, .v-slider__thumb-container *")){this.thumbPressed=!0;var Ue=Ee.target.getBoundingClientRect(),We="touches"in Ee?Ee.touches[0]:Ee;this.startOffset=this.vertical?We.clientY-(Ue.top+Ue.height/2):We.clientX-(Ue.left+Ue.width/2)}else this.startOffset=0,window.clearTimeout(this.mouseTimeout),this.mouseTimeout=window.setTimeout((function(){Be.thumbPressed=!0}),300);var $e=!sn.B||{passive:!0,capture:!0},Qe=!!sn.B&&{passive:!0},rt="touches"in Ee;this.onMouseMove(Ee),this.app.addEventListener(rt?"touchmove":"mousemove",this.onMouseMove,Qe),Object(sn.a)(this.app,rt?"touchend":"mouseup",this.onSliderMouseUp,$e),this.$emit("start",this.internalValue)},onSliderMouseUp:function onSliderMouseUp(Ee){Ee.stopPropagation(),window.clearTimeout(this.mouseTimeout),this.thumbPressed=!1;var ze=!!sn.B&&{passive:!0};this.app.removeEventListener("touchmove",this.onMouseMove,ze),this.app.removeEventListener("mousemove",this.onMouseMove,ze),this.$emit("mouseup",Ee),this.$emit("end",this.internalValue),Object(sn.j)(this.oldValue,this.internalValue)||(this.$emit("change",this.internalValue),this.noClick=!0),this.isActive=!1},onMouseMove:function onMouseMove(Ee){"mousemove"===Ee.type&&(this.thumbPressed=!0),this.internalValue=this.parseMouseMove(Ee)},onKeyDown:function onKeyDown(Ee){if(this.isInteractive){var ze=this.parseKeyDown(Ee,this.internalValue);null==ze||zethis.maxValue||(this.internalValue=ze,this.$emit("change",ze))}},onSliderClick:function onSliderClick(Ee){this.noClick?this.noClick=!1:(this.$refs.thumb.focus(),this.onMouseMove(Ee),this.$emit("change",this.internalValue))},onBlur:function onBlur(Ee){this.isFocused=!1,this.$emit("blur",Ee)},onFocus:function onFocus(Ee){this.isFocused=!0,this.$emit("focus",Ee)},parseMouseMove:function parseMouseMove(Ee){var ze=this.vertical?"top":"left",Be=this.vertical?"height":"width",Ue=this.vertical?"clientY":"clientX",We=this.$refs.track.getBoundingClientRect(),$e=We[ze],Qe=We[Be],rt="touches"in Ee?Ee.touches[0][Ue]:Ee[Ue],it=Math.min(Math.max((rt-$e-this.startOffset)/Qe,0),1)||0;return this.vertical&&(it=1-it),this.$vuetify.rtl&&(it=1-it),parseFloat(this.min)+it*(this.maxValue-this.minValue)},parseKeyDown:function parseKeyDown(Ee,ze){if(this.isInteractive){var Be=sn.x.pageup,Ue=sn.x.pagedown,We=sn.x.end,$e=sn.x.home,Qe=sn.x.left,rt=sn.x.right,it=sn.x.down,at=sn.x.up;if([Be,Ue,We,$e,Qe,rt,it,at].includes(Ee.keyCode)){Ee.preventDefault();var ct=this.stepNumeric||1,ft=(this.maxValue-this.minValue)/ct;if([Qe,rt,it,at].includes(Ee.keyCode))ze+=((this.$vuetify.rtl?[Qe,at]:[rt,at]).includes(Ee.keyCode)?1:-1)*ct*(Ee.shiftKey?3:Ee.ctrlKey?2:1);else if(Ee.keyCode===$e)ze=this.minValue;else if(Ee.keyCode===We)ze=this.maxValue;else{ze-=(Ee.keyCode===Ue?1:-1)*ct*(ft>100?ft/10:10)}return ze}}},roundValue:function roundValue(Ee){if(!this.stepNumeric)return Ee;var ze=this.step.toString().trim(),Be=ze.indexOf(".")>-1?ze.length-ze.indexOf(".")-1:0,Ue=this.minValue%this.stepNumeric,We=Math.round((Ee-Ue)/this.stepNumeric)*this.stepNumeric+Ue;return parseFloat(Math.min(We,this.maxValue).toFixed(Be))}}}),wh=Object(ft.a)(oh,(function(){var Ee=this,ze=Ee.$createElement,Be=Ee._self._c||ze;return Be("v-list",{staticClass:"col mb-0 py-0 my-0 rounded-b-lg no-scrollbar",staticStyle:{"overflow-x":"hidden"}},Ee._l(Ee.traces,(function(ze){return Be("v-list-group",{key:ze.id,attrs:{color:"primary",disabled:Ee.isLoading},on:{click:function(Be){return Ee.setAcitveTrace(ze)}},scopedSlots:Ee._u([{key:"activator",fn:function(){return[Be("v-list-item-content",{staticClass:"mb-0 px-0"},[Be("v-list-item-title",{staticClass:"text-h6 font-weight-regular"},[Ee._v(" "+Ee._s(Ee.fileName(ze.path))+" ")]),Be("v-list-item-subtitle",{staticClass:"wrap-text text-caption"},[Ee._v(" "+Ee._s(ze.path)+" ")]),Be("v-list-item-content",{staticClass:"pb-0"},[Object.keys(ze.parameters).length>0?Be("div",{staticClass:"d-flex align-center"},[Be("v-chip-group",{attrs:{column:""}},[Be("v-tooltip",{attrs:{color:"black",bottom:""},scopedSlots:Ee._u([{key:"activator",fn:function(Ue){var We=Ue.on;return[Be("v-chip",Ee._g({attrs:{color:"cyan","text-color":"white",small:""}},We),[Ee._v(" "+Ee._s(ze.parameters.state[ze.parameters.state.length-1].state)+" ")])]}}],null,!0)},[Be("span",[Ee._v("Length")])]),Be("v-tooltip",{attrs:{color:"black",bottom:""},scopedSlots:Ee._u([{key:"activator",fn:function(Ue){var We=Ue.on;return[Be("v-chip",Ee._g({attrs:{color:"green","text-color":"white",small:""}},We),[Ee._v(" "+Ee._s(ze.parameters.state.length)+" ")])]}}],null,!0)},[Be("span",[Ee._v("Samples")])]),ze.activeParams.length?Be("v-tooltip",{attrs:{color:"black",bottom:""},scopedSlots:Ee._u([{key:"activator",fn:function(Ue){var We=Ue.on;return[Be("v-chip",Ee._g({attrs:{color:"red","text-color":"white",small:"",close:""},on:{"click:close":function(Be){return Ee.setActiveParams(ze)}}},We),[Ee._v(" "+Ee._s(ze.activeParams.length))])]}}],null,!0)},[Be("span",[Ee._v("Active")])]):Ee._e()],1),ze.isLoading?Be("v-progress-circular",{staticClass:"pl-1",attrs:{indeterminate:"",color:"primary",size:"20"}}):Ee._e()],1):Ee._e()])],1)]},proxy:!0}],null,!0)},[Ee.openTraceID===ze.id&&Ee.activeTraceIDs.includes(ze.id)?Be("div",{staticStyle:{"overflow-x":"hidden !important","overflow-y":"auto !important"}},[Be("v-col",{staticClass:" mr-4 mb-0"},[Be("div",[Ee._v("Burn-in "+Ee._s(Ee.burnIn[ze.id])+"%")]),Be("v-slider",{staticClass:"align-center",attrs:{max:100,min:0,"hide-details":""},on:{change:function(Be){return Ee.setBurnIn(Be,ze.id)}},model:{value:Ee.burnIn[ze.id],callback:function(Be){Ee.$set(Ee.burnIn,ze.id,Be)},expression:"burnIn[trace.id]"}})],1),Be("v-divider",{staticClass:"my-0"}),Be("div",{staticStyle:{"overflow-x":"hidden"}},[Be("ParamsPanel",{attrs:{trace:ze,height:"400px"}})],1)],1):Ee._e(),Be("div",{directives:[{name:"show",rawName:"v-show",value:!("state"in ze.parameters),expression:"!('state' in trace.parameters)"}],staticClass:"text-center my-4"},[Be("v-progress-circular",{attrs:{indeterminate:"",color:"primary"}})],1),Be("v-divider")],1)})),1)}),[],!1,null,null,null),Th=wh.exports;function Dashboardvue_type_script_lang_ts_typeof(Ee){return(Dashboardvue_type_script_lang_ts_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(Ee){return typeof Ee}:function _typeof(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(Ee)}function Dashboardvue_type_script_lang_ts_toConsumableArray(Ee){return function Dashboardvue_type_script_lang_ts_arrayWithoutHoles(Ee){if(Array.isArray(Ee))return Dashboardvue_type_script_lang_ts_arrayLikeToArray(Ee)}(Ee)||function Dashboardvue_type_script_lang_ts_iterableToArray(Ee){if("undefined"!=typeof Symbol&&null!=Ee[Symbol.iterator]||null!=Ee["@@iterator"])return Array.from(Ee)}(Ee)||function Dashboardvue_type_script_lang_ts_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return Dashboardvue_type_script_lang_ts_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return Dashboardvue_type_script_lang_ts_arrayLikeToArray(Ee,ze)}(Ee)||function Dashboardvue_type_script_lang_ts_nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Dashboardvue_type_script_lang_ts_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be-1&&Ee.preventDefault(),Ee.detail&&this.$el.blur(),this.$emit("click",Ee),this.to||this.toggle()}},render:function render(Ee){var ze=this,Be=this.generateRouteLink(),Ue=Be.tag,We=Be.data;return We.attrs=VTab_objectSpread(VTab_objectSpread({},We.attrs),{},{"aria-selected":String(this.isActive),role:"tab",tabindex:0}),We.on=VTab_objectSpread(VTab_objectSpread({},We.on),{},{keydown:function keydown(Ee){Ee.keyCode===sn.x.enter&&ze.click(Ee),ze.$emit("keydown",Ee)}}),Ee(Ue,We,this.$slots.default)}}),Eh=Object(on.a)(dn.a,Object(Ho.a)("windowGroup","v-window-item","v-window")).extend().extend().extend({name:"v-window-item",directives:{Touch:lh.a},props:{disabled:Boolean,reverseTransition:{type:[Boolean,String],default:void 0},transition:{type:[Boolean,String],default:void 0},value:{required:!1}},data:function data(){return{isActive:!1,inTransition:!1}},computed:{classes:function classes(){return this.groupClasses},computedTransition:function computedTransition(){return this.windowGroup.internalReverse?void 0!==this.reverseTransition?this.reverseTransition||"":this.windowGroup.computedTransition:void 0!==this.transition?this.transition||"":this.windowGroup.computedTransition}},methods:{genDefaultSlot:function genDefaultSlot(){return this.$slots.default},genWindowItem:function genWindowItem(){return this.$createElement("div",{staticClass:"v-window-item",class:this.classes,directives:[{name:"show",value:this.isActive}],on:this.$listeners},this.genDefaultSlot())},onAfterTransition:function onAfterTransition(){this.inTransition&&(this.inTransition=!1,this.windowGroup.transitionCount>0&&(this.windowGroup.transitionCount--,0===this.windowGroup.transitionCount&&(this.windowGroup.transitionHeight=void 0)))},onBeforeTransition:function onBeforeTransition(){this.inTransition||(this.inTransition=!0,0===this.windowGroup.transitionCount&&(this.windowGroup.transitionHeight=Object(sn.g)(this.windowGroup.$el.clientHeight)),this.windowGroup.transitionCount++)},onTransitionCancelled:function onTransitionCancelled(){this.onAfterTransition()},onEnter:function onEnter(Ee){var ze=this;this.inTransition&&this.$nextTick((function(){ze.computedTransition&&ze.inTransition&&(ze.windowGroup.transitionHeight=Object(sn.g)(Ee.clientHeight))}))}},render:function render(Ee){var ze=this;return Ee("transition",{props:{name:this.computedTransition},on:{beforeEnter:this.onBeforeTransition,afterEnter:this.onAfterTransition,enterCancelled:this.onTransitionCancelled,beforeLeave:this.onBeforeTransition,afterLeave:this.onAfterTransition,leaveCancelled:this.onTransitionCancelled,enter:this.onEnter}},this.showLazyContent((function(){return[ze.genWindowItem()]})))}}),Ph=Eh.extend({name:"v-tab-item",props:{id:String},methods:{genWindowItem:function genWindowItem(){var Ee=Eh.options.methods.genWindowItem.call(this);return Ee.data.domProps=Ee.data.domProps||{},Ee.data.domProps.id=this.id||this.value,Ee}}}),Oh=(Be("1bfbd"),Be("d10f"));function VTabsBar_createForOfIteratorHelper(Ee,ze){var Be="undefined"!=typeof Symbol&&Ee[Symbol.iterator]||Ee["@@iterator"];if(!Be){if(Array.isArray(Ee)||(Be=function VTabsBar_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return VTabsBar_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return VTabsBar_arrayLikeToArray(Ee,ze)}(Ee))||ze&&Ee&&"number"==typeof Ee.length){Be&&(Ee=Be);var Ue=0,We=function F(){};return{s:We,n:function n(){return Ue>=Ee.length?{done:!0}:{done:!1,value:Ee[Ue++]}},e:function e(Ee){throw Ee},f:We}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var $e,Qe=!0,rt=!1;return{s:function s(){Be=Be.call(Ee)},n:function n(){var Ee=Be.next();return Qe=Ee.done,Ee},e:function e(Ee){rt=!0,$e=Ee},f:function f(){try{Qe||null==Be.return||Be.return()}finally{if(rt)throw $e}}}}function VTabsBar_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0},classes:function classes(){return VWindow_objectSpread(VWindow_objectSpread({},sh.a.options.computed.classes.call(this)),{},{"v-window--show-arrows-on-hover":this.showArrowsOnHover})},computedTransition:function computedTransition(){if(!this.isBooted)return"";var Ee=this.vertical?"y":"x",ze=(this.internalReverse?!this.isReverse:this.isReverse)?"-reverse":"";return"v-window-".concat(Ee).concat(ze,"-transition")},hasActiveItems:function hasActiveItems(){return Boolean(this.items.find((function(Ee){return!Ee.disabled})))},hasNext:function hasNext(){return this.continuous||this.internalIndex0},internalIndex:function internalIndex(){var Ee=this;return this.items.findIndex((function(ze,Be){return Ee.internalValue===Ee.getValue(ze,Be)}))},internalReverse:function internalReverse(){return this.$vuetify.rtl?!this.reverse:this.reverse}},watch:{internalIndex:function internalIndex(Ee,ze){this.isReverse=this.updateReverse(Ee,ze)}},mounted:function mounted(){var Ee=this;window.requestAnimationFrame((function(){return Ee.isBooted=!0}))},methods:{genDefaultSlot:function genDefaultSlot(){return this.$slots.default},genContainer:function genContainer(){var Ee=[this.genDefaultSlot()];return this.showArrows&&Ee.push(this.genControlIcons()),this.$createElement("div",{staticClass:"v-window__container",class:{"v-window__container--is-active":this.isActive},style:{height:this.internalHeight||this.transitionHeight}},Ee)},genIcon:function genIcon(Ee,ze,Be){var Ue,We,$e,Qe=this,rt={click:function click(Ee){Ee.stopPropagation(),Qe.changedByDelimiters=!0,Be()}},it={"aria-label":this.$vuetify.lang.t("$vuetify.carousel.".concat(Ee))},at=null!=(Ue=null==(We=($e=this.$scopedSlots)[Ee])?void 0:We.call($e,{on:rt,attrs:it}))?Ue:[this.$createElement(Hf.a,{props:{icon:!0},attrs:it,on:rt},[this.$createElement(Vo.a,{props:{large:!0}},ze)])];return this.$createElement("div",{staticClass:"v-window__".concat(Ee)},at)},genControlIcons:function genControlIcons(){var Ee=[],ze=this.$vuetify.rtl?this.nextIcon:this.prevIcon;if(this.hasPrev&&ze&&"string"==typeof ze){var Be=this.genIcon("prev",ze,this.prev);Be&&Ee.push(Be)}var Ue=this.$vuetify.rtl?this.prevIcon:this.nextIcon;if(this.hasNext&&Ue&&"string"==typeof Ue){var We=this.genIcon("next",Ue,this.next);We&&Ee.push(We)}return Ee},getNextIndex:function getNextIndex(Ee){var ze=(Ee+1)%this.items.length;return this.items[ze].disabled?this.getNextIndex(ze):ze},getPrevIndex:function getPrevIndex(Ee){var ze=(Ee+this.items.length-1)%this.items.length;return this.items[ze].disabled?this.getPrevIndex(ze):ze},next:function next(){if(this.hasActiveItems&&this.hasNext){var Ee=this.getNextIndex(this.internalIndex),ze=this.items[Ee];this.internalValue=this.getValue(ze,Ee)}},prev:function prev(){if(this.hasActiveItems&&this.hasPrev){var Ee=this.getPrevIndex(this.internalIndex),ze=this.items[Ee];this.internalValue=this.getValue(ze,Ee)}},updateReverse:function updateReverse(Ee,ze){var Be=this.items.length,Ue=Be-1;return Be<=2?Ee0?Be("v-divider"):Ee._e(),Be("div",{staticClass:"no-scrollbar",staticStyle:{"max-height":"80vh"}},[Be("TraceList")],1)],1)],1),Be("v-col",{staticClass:"pl-4 mt-4 pt-0",attrs:{cols:"9"}},[Ee.activeParams?Be("v-card",{staticClass:"rounded-lg "},[Be("v-tabs",{staticClass:"mb-4",attrs:{right:""},model:{value:Ee.tab,callback:function(ze){Ee.tab=ze},expression:"tab"}},[Be("v-tab",[Ee._v(" Trace ")]),Be("v-tab",[Ee._v(" Violin ")]),Be("v-tab",[Ee._v(" Histogram ")]),Be("v-tab",[Ee._v(" Marginal ")]),Be("v-tab",[Ee._v(" Parallel ")]),Be("v-tab",[Ee._v(" ESS ")]),Be("v-tab",[Ee._v(" Estimates ")])],1),Be("v-tabs-items",{model:{value:Ee.tab,callback:function(ze){Ee.tab=ze},expression:"tab"}},[Be("v-tab-item",[Be("v-card",{staticClass:"pa-2",attrs:{flat:""}},[0===Ee.tab?Be("Trace"):Ee._e()],1)],1),Be("v-tab-item",[Be("v-card",{staticClass:"pa-2",attrs:{flat:"","fill-height":""}},[1===Ee.tab?Be("Violin"):Ee._e()],1)],1),Be("v-tab-item",[Be("v-card",{staticClass:"pa-2",attrs:{flat:"","fill-height":""}},[2===Ee.tab?Be("Histogram"):Ee._e()],1)],1),Be("v-tab-item",[Be("v-card",{staticClass:"pa-2",attrs:{flat:"","fill-height":""}},[3===Ee.tab?Be("Marginal"):Ee._e()],1)],1),Be("v-tab-item",[Be("v-card",{staticClass:"pa-2",attrs:{flat:"","fill-height":""}},[4===Ee.tab?Be("Parallel"):Ee._e()],1)],1),Be("v-tab-item",[Be("v-card",{staticClass:"pa-2",attrs:{flat:"","fill-height":""}},[5===Ee.tab?Be("CumulativeESS"):Ee._e()],1)],1),Be("v-tab-item",[Be("v-card",{staticClass:"pa-2",attrs:{flat:"","fill-height":""}},[6===Ee.tab?Be("StatsTable"):Ee._e()],1)],1)],1)],1):Ee._e()],1)],1)],1)}),[],!1,null,null,null);ze.default=jh.exports;kt()(jh,{VCard:Ut.a,VCol:vh,VDivider:yh.a,VLayout:Mh.a,VRow:Sh.a,VSpacer:ti.a,VTab:Ch,VTabItem:Ph,VTabs:Bh,VTabsItems:Ih,VToolbar:Nh.a,VToolbarTitle:Fh.a})},f823:function(Ee,ze,Be){}}]); -//# sourceMappingURL=main-dashboard.4fa637e1.js.map \ No newline at end of file + **/!function(Be){"use strict";var cosh=function(Ee){return.5*(Math.exp(Ee)+Math.exp(-Ee))},sinh=function(Ee){return.5*(Math.exp(Ee)-Math.exp(-Ee))},parser_exit=function(){throw SyntaxError("Invalid Param")};function logHypot(Ee,ze){var Be=Math.abs(Ee),Ue=Math.abs(ze);return 0===Ee?Math.log(Ue):0===ze?Math.log(Be):Be<3e3&&Ue<3e3?.5*Math.log(Ee*Ee+ze*ze):Math.log(Ee/Math.cos(Math.atan2(ze,Ee)))}function Complex(Ee,ze){if(!(this instanceof Complex))return new Complex(Ee,ze);var Be=function(Ee,ze){var Be={re:0,im:0};if(null==Ee)Be.re=Be.im=0;else if(void 0!==ze)Be.re=Ee,Be.im=ze;else switch(typeof Ee){case"object":if("im"in Ee&&"re"in Ee)Be.re=Ee.re,Be.im=Ee.im;else if("abs"in Ee&&"arg"in Ee){if(!Number.isFinite(Ee.abs)&&Number.isFinite(Ee.arg))return Complex.INFINITY;Be.re=Ee.abs*Math.cos(Ee.arg),Be.im=Ee.abs*Math.sin(Ee.arg)}else if("r"in Ee&&"phi"in Ee){if(!Number.isFinite(Ee.r)&&Number.isFinite(Ee.phi))return Complex.INFINITY;Be.re=Ee.r*Math.cos(Ee.phi),Be.im=Ee.r*Math.sin(Ee.phi)}else 2===Ee.length?(Be.re=Ee[0],Be.im=Ee[1]):parser_exit();break;case"string":Be.im=Be.re=0;var Ue=Ee.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),We=1,$e=0;null===Ue&&parser_exit();for(var Qe=0;Qe0&&parser_exit();break;case"number":Be.im=0,Be.re=Ee;break;default:parser_exit()}return isNaN(Be.re)||isNaN(Be.im),Be}(Ee,ze);this.re=Be.re,this.im=Be.im}Complex.prototype={re:0,im:0,sign:function(){var Ee=this.abs();return new Complex(this.re/Ee,this.im/Ee)},add:function(Ee,ze){var Be=new Complex(Ee,ze);return this.isInfinite()&&Be.isInfinite()?Complex.NAN:this.isInfinite()||Be.isInfinite()?Complex.INFINITY:new Complex(this.re+Be.re,this.im+Be.im)},sub:function(Ee,ze){var Be=new Complex(Ee,ze);return this.isInfinite()&&Be.isInfinite()?Complex.NAN:this.isInfinite()||Be.isInfinite()?Complex.INFINITY:new Complex(this.re-Be.re,this.im-Be.im)},mul:function(Ee,ze){var Be=new Complex(Ee,ze);return this.isInfinite()&&Be.isZero()||this.isZero()&&Be.isInfinite()?Complex.NAN:this.isInfinite()||Be.isInfinite()?Complex.INFINITY:0===Be.im&&0===this.im?new Complex(this.re*Be.re,0):new Complex(this.re*Be.re-this.im*Be.im,this.re*Be.im+this.im*Be.re)},div:function(Ee,ze){var Be=new Complex(Ee,ze);if(this.isZero()&&Be.isZero()||this.isInfinite()&&Be.isInfinite())return Complex.NAN;if(this.isInfinite()||Be.isZero())return Complex.INFINITY;if(this.isZero()||Be.isInfinite())return Complex.ZERO;Ee=this.re,ze=this.im;var Ue,We,$e=Be.re,Qe=Be.im;return 0===Qe?new Complex(Ee/$e,ze/$e):Math.abs($e)0)return new Complex(Math.pow(Ee,Be.re),0);if(0===Ee)switch((Be.re%4+4)%4){case 0:return new Complex(Math.pow(ze,Be.re),0);case 1:return new Complex(0,Math.pow(ze,Be.re));case 2:return new Complex(-Math.pow(ze,Be.re),0);case 3:return new Complex(0,-Math.pow(ze,Be.re))}}if(0===Ee&&0===ze&&Be.re>0&&Be.im>=0)return Complex.ZERO;var Ue=Math.atan2(ze,Ee),We=logHypot(Ee,ze);return Ee=Math.exp(Be.re*We-Be.im*Ue),ze=Be.im*We+Be.re*Ue,new Complex(Ee*Math.cos(ze),Ee*Math.sin(ze))},sqrt:function(){var Ee,ze,Be=this.re,Ue=this.im,We=this.abs();if(Be>=0){if(0===Ue)return new Complex(Math.sqrt(Be),0);Ee=.5*Math.sqrt(2*(We+Be))}else Ee=Math.abs(Ue)/Math.sqrt(2*(We-Be));return ze=Be<=0?.5*Math.sqrt(2*(We-Be)):Math.abs(Ue)/Math.sqrt(2*(We+Be)),new Complex(Ee,Ue<0?-ze:ze)},exp:function(){var Ee=Math.exp(this.re);return this.im,new Complex(Ee*Math.cos(this.im),Ee*Math.sin(this.im))},expm1:function(){var Ee=this.re,ze=this.im;return new Complex(Math.expm1(Ee)*Math.cos(ze)+function(Ee){var ze=Math.PI/4;if(-ze>Ee||Ee>ze)return Math.cos(Ee)-1;var Be=Ee*Ee;return Be*(Be*(Be*(Be*(Be*(Be*(Be*(Be/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-.5)}(ze),Math.exp(Ee)*Math.sin(ze))},log:function(){var Ee=this.re,ze=this.im;return new Complex(logHypot(Ee,ze),Math.atan2(ze,Ee))},abs:function(){return Ee=this.re,ze=this.im,Be=Math.abs(Ee),Ue=Math.abs(ze),Be<3e3&&Ue<3e3?Math.sqrt(Be*Be+Ue*Ue):(Be1&&0===ze,Ue=1-Ee,We=1+Ee,$e=Ue*Ue+ze*ze,Qe=0!==$e?new Complex((We*Ue-ze*ze)/$e,(ze*Ue+We*ze)/$e):new Complex(-1!==Ee?Ee/0:0,0!==ze?ze/0:0),rt=Qe.re;return Qe.re=logHypot(Qe.re,Qe.im)/2,Qe.im=Math.atan2(Qe.im,rt)/2,Be&&(Qe.im=-Qe.im),Qe},acoth:function(){var Ee=this.re,ze=this.im;if(0===Ee&&0===ze)return new Complex(0,Math.PI/2);var Be=Ee*Ee+ze*ze;return 0!==Be?new Complex(Ee/Be,-ze/Be).atanh():new Complex(0!==Ee?Ee/0:0,0!==ze?-ze/0:0).atanh()},acsch:function(){var Ee=this.re,ze=this.im;if(0===ze)return new Complex(0!==Ee?Math.log(Ee+Math.sqrt(Ee*Ee+1)):1/0,0);var Be=Ee*Ee+ze*ze;return 0!==Be?new Complex(Ee/Be,-ze/Be).asinh():new Complex(0!==Ee?Ee/0:0,0!==ze?-ze/0:0).asinh()},asech:function(){var Ee=this.re,ze=this.im;if(this.isZero())return Complex.INFINITY;var Be=Ee*Ee+ze*ze;return 0!==Be?new Complex(Ee/Be,-ze/Be).acosh():new Complex(0!==Ee?Ee/0:0,0!==ze?-ze/0:0).acosh()},inverse:function(){if(this.isZero())return Complex.INFINITY;if(this.isInfinite())return Complex.ZERO;var Ee=this.re,ze=this.im,Be=Ee*Ee+ze*ze;return new Complex(Ee/Be,-ze/Be)},conjugate:function(){return new Complex(this.re,-this.im)},neg:function(){return new Complex(-this.re,-this.im)},ceil:function(Ee){return Ee=Math.pow(10,Ee||0),new Complex(Math.ceil(this.re*Ee)/Ee,Math.ceil(this.im*Ee)/Ee)},floor:function(Ee){return Ee=Math.pow(10,Ee||0),new Complex(Math.floor(this.re*Ee)/Ee,Math.floor(this.im*Ee)/Ee)},round:function(Ee){return Ee=Math.pow(10,Ee||0),new Complex(Math.round(this.re*Ee)/Ee,Math.round(this.im*Ee)/Ee)},equals:function(Ee,ze){var Be=new Complex(Ee,ze);return Math.abs(Be.re-this.re)<=Complex.EPSILON&&Math.abs(Be.im-this.im)<=Complex.EPSILON},clone:function(){return new Complex(this.re,this.im)},toString:function(){var Ee=this.re,ze=this.im,Be="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(Ee)\'',this),this.addActivatorEvents()},beforeDestroy:function beforeDestroy(){this.removeActivatorEvents()},methods:{addActivatorEvents:function addActivatorEvents(){if(this.activator&&!this.disabled&&this.getActivator()){this.listeners=this.genActivatorListeners();for(var Ee=0,ze=Object.keys(this.listeners);EeEe.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0&&void 0!==arguments[0]?arguments[0]:[],ze=this.$el,Be=[this.stackMinZIndex,Object(sn.u)(ze)],Ue=[].concat(_toConsumableArray(document.getElementsByClassName("v-menu__content--active")),_toConsumableArray(document.getElementsByClassName("v-dialog__content--active"))),We=0;WeEe.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be=this.getMaxZIndex()},hideScroll:function hideScroll(){this.fullscreen?document.documentElement.classList.add("overflow-y-hidden"):yn.a.options.methods.hideScroll.call(this)},show:function show(){var Ee=this;!this.fullscreen&&!this.hideOverlay&&this.genOverlay(),this.$nextTick((function(){Ee.$nextTick((function(){Ee.previousActiveElement=document.activeElement,Ee.$refs.content.focus(),Ee.bind()}))}))},bind:function bind(){window.addEventListener("focusin",this.onFocusin)},unbind:function unbind(){window.removeEventListener("focusin",this.onFocusin)},onClickOutside:function onClickOutside(Ee){this.$emit("click:outside",Ee),this.persistent?this.noClickAnimation||this.animateClick():this.isActive=!1},onKeydown:function onKeydown(Ee){if(Ee.keyCode===sn.x.esc&&!this.getOpenDependents().length)if(this.persistent)this.noClickAnimation||this.animateClick();else{this.isActive=!1;var ze=this.getActivator();this.$nextTick((function(){return ze&&ze.focus()}))}this.$emit("keydown",Ee)},onFocusin:function onFocusin(Ee){if(Ee&&this.retainFocus){var ze=Ee.target;if(ze&&![document,this.$refs.content].includes(ze)&&!this.$refs.content.contains(ze)&&this.activeZIndex>=this.getMaxZIndex()&&!this.getOpenDependentElements().some((function(Ee){return Ee.contains(ze)}))){var Be=VDialog_toConsumableArray(this.$refs.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')).find((function(Ee){return!Ee.hasAttribute("disabled")}));Be&&Be.focus()}}},genContent:function genContent(){var Ee=this;return this.showLazyContent((function(){return[Ee.$createElement(rr,{props:{root:!0,light:Ee.light,dark:Ee.dark}},[Ee.$createElement("div",{class:Ee.contentClasses,attrs:_objectSpread({role:"document",tabindex:Ee.isActive?0:void 0},Ee.getScopeIdAttrs()),on:{keydown:Ee.onKeydown},style:{zIndex:Ee.activeZIndex},ref:"content"},[Ee.genTransition()])])]}))},genTransition:function genTransition(){var Ee=this.genInnerContent();return this.transition?this.$createElement("transition",{props:{name:this.transition,origin:this.origin,appear:!0}},[Ee]):Ee},genInnerContent:function genInnerContent(){var Ee={class:this.classes,ref:"dialog",directives:[{name:"click-outside",value:{handler:this.onClickOutside,closeConditional:this.closeConditional,include:this.getOpenDependentElements}},{name:"show",value:this.isActive}],style:{transformOrigin:this.origin}};return this.fullscreen||(Ee.style=_objectSpread(_objectSpread({},Ee.style),{},{maxWidth:"none"===this.maxWidth?void 0:Object(sn.g)(this.maxWidth),width:"auto"===this.width?void 0:Object(sn.g)(this.width)})),this.$createElement("div",Ee,this.getContentSlot())}},render:function render(Ee){return Ee("div",{staticClass:"v-dialog__container",class:{"v-dialog__container--attached":""===this.attach||!0===this.attach||"attach"===this.attach},attrs:{role:"dialog"}},[this.genActivator(),this.genContent()])}}),Pn=Be("4bd4"),In=Be("132d"),Bn=Be("8860"),Hn=Be("da13"),Kn=Be("1800"),Jn=Be("8270"),ei=Be("5d23"),ti=Be("2fa4"),ri=Be("8654"),ni=Object(ft.a)(ct,(function(){var Ee=this,ze=Ee.$createElement,Be=Ee._self._c||ze;return Be("v-dialog",{attrs:{persistent:"","max-width":"600px"},scopedSlots:Ee._u([{key:"activator",fn:function(ze){var Ue=ze.on,We=ze.attrs;return[Be("v-btn",Ee._g(Ee._b({attrs:{color:"teal lighten-2",dark:"",fab:"",elevation:"2","x-small":""},on:{click:function(ze){return Ee.reset()}}},"v-btn",We,!1),Ue),[Be("v-icon",{attrs:{dark:""}},[Ee._v(" mdi-plus ")])],1)]}}]),model:{value:Ee.dialog,callback:function(ze){Ee.dialog=ze},expression:"dialog"}},[Be("v-card",[Be("v-card-title",[Be("span",{staticClass:"text-h5"},[Ee._v("Add trace to Beastiary")])]),Be("v-card-text",[Be("v-form",{on:{submit:function(ze){return ze.preventDefault(),Ee.submit.apply(null,arguments)}}},[Be("v-text-field",{attrs:{required:"",label:"Path to the log file"},model:{value:Ee.path,callback:function(ze){Ee.path=ze},expression:"path"}})],1),Be("v-list",{staticStyle:{"max-height":"300px",overflow:"auto"}},[Be("v-list-item",[Be("v-list-item-avatar",[Be("v-icon",{staticClass:"grey lighten-1",attrs:{dark:""}},[Ee._v(" mdi-folder ")])],1),Be("v-list-item-content",[Be("v-list-item-title",[Ee._v("..")])],1),Be("v-list-item-action",[Be("v-btn",{attrs:{icon:""},on:{click:function(ze){Ee.currentPath=Ee.parentDir,Ee.list_dir()}}},[Be("v-icon",{attrs:{color:"grey lighten-1"}},[Ee._v("mdi-chevron-right")])],1)],1)],1),Ee._l(Ee.files,(function(ze){return Be("v-list-item",{key:ze.name},[Be("v-list-item-avatar",[ze.is_dir?Be("v-icon",{staticClass:"grey lighten-1",attrs:{dark:""}},[Ee._v(" mdi-folder ")]):Be("v-icon",{staticClass:"primary lighten-1",attrs:{dark:""}},[Ee._v(" mdi-file ")])],1),Be("v-list-item-content",[Be("v-list-item-title",{domProps:{textContent:Ee._s(ze.name)}})],1),Be("v-list-item-action",[ze.is_dir?Be("v-btn",{attrs:{icon:""},on:{click:function(Be){Ee.currentPath=ze.path,Ee.list_dir()}}},[Be("v-icon",{attrs:{color:"grey lighten-1"}},[Ee._v("mdi-chevron-right")])],1):Be("v-btn",{attrs:{icon:""},on:{click:function(Be){Ee.path=ze.path}}},[Be("v-icon",{attrs:{color:"primary"}},[Ee._v("mdi-plus")])],1)],1)],1)}))],2)],1),Be("v-card-actions",[Be("v-spacer"),Be("v-btn",{attrs:{color:"red lighten-3",text:""},on:{click:function(ze){Ee.dialog=!1}}},[Ee._v(" Close ")]),Be("v-btn",{attrs:{color:"primary",text:""},on:{click:Ee.submit}},[Ee._v(" Add ")])],1)],1)],1)}),[],!1,null,null,null),ii=ni.exports;kt()(ni,{VBtn:Lt.a,VCard:Ut.a,VCardActions:er.a,VCardText:er.b,VCardTitle:er.c,VDialog:En,VForm:Pn.a,VIcon:In.a,VList:Bn.a,VListItem:Hn.a,VListItemAction:Kn.a,VListItemAvatar:Jn.a,VListItemContent:ei.a,VListItemTitle:ei.c,VSpacer:ti.a,VTextField:ri.a});var ai=Be("72e7"),oi=Be("04d1");function ESSvue_type_script_lang_ts_typeof(Ee){return(ESSvue_type_script_lang_ts_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(Ee){return typeof Ee}:function _typeof(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(Ee)}function ESSvue_type_script_lang_ts_classCallCheck(Ee,ze){if(!(Ee instanceof ze))throw new TypeError("Cannot call a class as a function")}function ESSvue_type_script_lang_ts_defineProperties(Ee,ze){for(var Be=0;Be0))break;kt+=2*(ft[Lt-1]+ft[Lt])}}var rr=0;ft[0]>0&&(rr=rt*kt/ft[0]);var ar=1;0!==rr&&(ar=rt*it/rr),We[$e]={state:Ue[$e].state,value:ar}}return We}}],Ee.worker=Ee.$worker.create(Ee.actions),Ee}return function ESSvue_type_script_lang_ts_createClass(Ee,ze,Be){return ze&&ESSvue_type_script_lang_ts_defineProperties(Ee.prototype,ze),Be&&ESSvue_type_script_lang_ts_defineProperties(Ee,Be),Ee}(CumulativeESS,[{key:"modeBarButtons",get:function get(){return["zoom2d","pan2d","select2d","lasso2d","zoomIn2d","zoomOut2d","autoScale2d","resetScale2d","hoverClosestCartesian","hoverCompareCartesian","zoom3d","pan3d","resetCameraDefault3d","resetCameraLastSave3d","hoverClosest3d","orbitRotation","tableRotation","zoomInGeo","zoomOutGeo","resetGeo","hoverClosestGeo","sendDataToCloud","hoverClosestGl2d","hoverClosestPie","toggleHover","resetViews","toggleSpikelines","resetViewMapbox"]}},{key:"layout",get:function get(){return{xaxis:{showgrid:!0,color:this.$vuetify.theme.dark?"white":"#2c3e50"},yaxis:{showgrid:!0,color:this.$vuetify.theme.dark?"white":"#2c3e50"},plot_bgcolor:this.$vuetify.theme.dark?"#1E1E1E":"white",paper_bgcolor:this.$vuetify.theme.dark?"#1E1E1E":"white",legend:{orientation:"h",x:.5,y:1.15,xanchor:"center",font:{size:15,color:this.$vuetify.theme.dark?"white":"#2c3e50"}},margin:{l:50,r:20,b:30,t:0,pad:0},shapes:[{type:"line",xref:"paper",x0:.05,y0:200,x1:.95,y1:200,line:{color:"#4CAF50",dash:"dot",width:3}},{type:"line",xref:"paper",x0:.05,y0:100,x1:.95,y1:100,line:{color:"#ff9800",dash:"dot",width:3}}]}}},{key:"cumulativeESSData",get:function get(){for(var Ee,ze=this,Be=[],Ue=["#2980b9","#2ecc71","#9b59b6","#f1c40f","#e74c3c","#1abc9c","#8e44ad","#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],We=0,$e=0,Qe=Object.values(this.traces);$e0})).length?"".concat($e):"".concat(ze.fileName(Ee.path)," - ").concat($e),marker:{color:Ue[We]},hovertemplate:"%{y}",showlegend:!0}),We++)},it=0,at=Object.values(Ee.activeParams);it=Ee.length?{done:!0}:{done:!1,value:Ee[Ue++]}},e:function e(Ee){throw Ee},f:We}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var $e,Qe=!0,rt=!1;return{s:function s(){Be=Be.call(Ee)},n:function n(){var Ee=Be.next();return Qe=Ee.done,Ee},e:function e(Ee){rt=!0,$e=Ee},f:function f(){try{Qe||null==Be.return||Be.return()}finally{if(rt)throw $e}}}}function Histogramvue_type_script_lang_ts_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0})).length?"".concat(at):"".concat(this.fileName($e.path)," - ").concat(at),hovertemplate:"%{y}",showlegend:!0}),Be++}}catch(Ee){it.e(Ee)}finally{it.f()}}}return Ee}},{key:"fileName",value:function fileName(Ee){return Ee.substring(Ee.lastIndexOf("/")+1)}}]),Histogram}(it.c),Ci=hi=Object(Ue.a)([Object(it.a)({components:{Plotly:oi.Plotly}})],hi),Pi=Object(ft.a)(Ci,(function(){var Ee=this.$createElement;return(this._self._c||Ee)("Plotly",{attrs:{data:this.HistogramData,layout:this.layout,toImageButtonOptions:{filename:"histogram",width:null,height:null,format:"svg"},displaylogo:!1,"mode-bar-buttons-to-remove":this.modeBarButtons,"display-mode-bar":!0}})}),[],!1,null,null,null).exports;function Marginalvue_type_script_lang_ts_typeof(Ee){return(Marginalvue_type_script_lang_ts_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(Ee){return typeof Ee}:function _typeof(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(Ee)}function Marginalvue_type_script_lang_ts_createForOfIteratorHelper(Ee,ze){var Be="undefined"!=typeof Symbol&&Ee[Symbol.iterator]||Ee["@@iterator"];if(!Be){if(Array.isArray(Ee)||(Be=function Marginalvue_type_script_lang_ts_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return Marginalvue_type_script_lang_ts_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return Marginalvue_type_script_lang_ts_arrayLikeToArray(Ee,ze)}(Ee))||ze&&Ee&&"number"==typeof Ee.length){Be&&(Ee=Be);var Ue=0,We=function F(){};return{s:We,n:function n(){return Ue>=Ee.length?{done:!0}:{done:!1,value:Ee[Ue++]}},e:function e(Ee){throw Ee},f:We}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var $e,Qe=!0,rt=!1;return{s:function s(){Be=Be.call(Ee)},n:function n(){var Ee=Be.next();return Qe=Ee.done,Ee},e:function e(Ee){rt=!0,$e=Ee},f:function f(){try{Qe||null==Be.return||Be.return()}finally{if(rt)throw $e}}}}function Marginalvue_type_script_lang_ts_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be3?150*this.numberOfActivePrams:450,displayModeBar:!0,margin:{l:70,r:50,b:40,t:0,pad:0}},ze=2;ze=Ee.length?{done:!0}:{done:!1,value:Ee[Ue++]}},e:function e(Ee){throw Ee},f:We}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var $e,Qe=!0,rt=!1;return{s:function s(){Be=Be.call(Ee)},n:function n(){var Ee=Be.next();return Qe=Ee.done,Ee},e:function e(Ee){rt=!0,$e=Ee},f:function f(){try{Qe||null==Be.return||Be.return()}finally{if(rt)throw $e}}}}function Parallelvue_type_script_lang_ts_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be=Ee.length?{done:!0}:{done:!1,value:Ee[Ue++]}},e:function e(Ee){throw Ee},f:We}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var $e,Qe=!0,rt=!1;return{s:function s(){Be=Be.call(Ee)},n:function n(){var Ee=Be.next();return Qe=Ee.done,Ee},e:function e(Ee){rt=!0,$e=Ee},f:function f(){try{Qe||null==Be.return||Be.return()}finally{if(rt)throw $e}}}}function Tracevue_type_script_lang_ts_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0})).length?"".concat(at):"".concat(this.fileName($e.path)," - ").concat(at),marker:{color:ze[Be]},hovertemplate:"%{y}",showlegend:!1}),Ee.push({y:$e.parameters[at].slice($e.parameters.state.length*rt).map((function(Ee){return Ee.value})),type:"histogram",histnorm:"probability",xaxis:"x2",yaxis:"y1",opacity:.6,name:1===Object.values(this.traces).filter((function(Ee){return Ee.activeParams.length>0})).length?"".concat(at):"".concat(this.fileName($e.path)," - ").concat(at),marker:{color:ze[Be]},hovertemplate:"%{y}"}),Be++}}catch(Ee){it.e(Ee)}finally{it.f()}}}return Ee}},{key:"fileName",value:function fileName(Ee){return Ee.substring(Ee.lastIndexOf("/")+1)}}]),Histogram}(it.c),Ra=Ia=Object(Ue.a)([Object(it.a)({components:{Plotly:oi.Plotly}})],Ia),Na=Object(ft.a)(Ra,(function(){var Ee=this.$createElement,ze=this._self._c||Ee;return ze("div",[ze("Plotly",{attrs:{data:this.traceData,layout:this.layout,toImageButtonOptions:{filename:"trace",width:null,height:null,format:"svg"},displaylogo:!1,"mode-bar-buttons-to-remove":this.modeBarButtons,"display-mode-bar":!0}})],1)}),[],!1,null,null,null).exports;function Violinvue_type_script_lang_ts_typeof(Ee){return(Violinvue_type_script_lang_ts_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(Ee){return typeof Ee}:function _typeof(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(Ee)}function Violinvue_type_script_lang_ts_createForOfIteratorHelper(Ee,ze){var Be="undefined"!=typeof Symbol&&Ee[Symbol.iterator]||Ee["@@iterator"];if(!Be){if(Array.isArray(Ee)||(Be=function Violinvue_type_script_lang_ts_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return Violinvue_type_script_lang_ts_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return Violinvue_type_script_lang_ts_arrayLikeToArray(Ee,ze)}(Ee))||ze&&Ee&&"number"==typeof Ee.length){Be&&(Ee=Be);var Ue=0,We=function F(){};return{s:We,n:function n(){return Ue>=Ee.length?{done:!0}:{done:!1,value:Ee[Ue++]}},e:function e(Ee){throw Ee},f:We}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var $e,Qe=!0,rt=!1;return{s:function s(){Be=Be.call(Ee)},n:function n(){var Ee=Be.next();return Qe=Ee.done,Ee},e:function e(Ee){rt=!0,$e=Ee},f:function f(){try{Qe||null==Be.return||Be.return()}finally{if(rt)throw $e}}}}function Violinvue_type_script_lang_ts_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0})).length?"".concat(at):"".concat(this.fileName($e.path)," - ").concat(at),hovertemplate:"%{y}",showlegend:!0}),Be++}}catch(Ee){it.e(Ee)}finally{it.f()}}}return Ee}},{key:"fileName",value:function fileName(Ee){return Ee.substring(Ee.lastIndexOf("/")+1)}}]),Violin}(it.c),qa=Ua=Object(Ue.a)([Object(it.a)({components:{Plotly:oi.Plotly}})],Ua),Ka=Object(ft.a)(qa,(function(){var Ee=this.$createElement;return(this._self._c||Ee)("Plotly",{attrs:{data:this.ViolinData,layout:this.layout,toImageButtonOptions:{filename:"violin",width:null,height:null,format:"svg"},displaylogo:!1,"mode-bar-buttons-to-remove":this.modeBarButtons,"display-mode-bar":!0}})}),[],!1,null,null,null).exports;function ESSChipvue_type_script_lang_ts_typeof(Ee){return(ESSChipvue_type_script_lang_ts_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(Ee){return typeof Ee}:function _typeof(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(Ee)}function ESSChipvue_type_script_lang_ts_classCallCheck(Ee,ze){if(!(Ee instanceof ze))throw new TypeError("Cannot call a class as a function")}function ESSChipvue_type_script_lang_ts_defineProperties(Ee,ze){for(var Be=0;Be0))break;at+=2*(rt[ct-1]+rt[ct])}}var Lt=0;rt[0]>0&&(Lt=Ue*at/rt[0]);var Ut=1;return 0!==Lt&&(Ut=Ue*We/Lt),Ut}}],Ee.worker=Ee.$worker.create(Ee.actions),Ee}return function ESSChipvue_type_script_lang_ts_createClass(Ee,ze,Be){return ze&&ESSChipvue_type_script_lang_ts_defineProperties(Ee.prototype,ze),Be&&ESSChipvue_type_script_lang_ts_defineProperties(Ee,Be),Ee}(ESSChip,[{key:"color",get:function get(){return null===this.ESS||this.ESS<100?"red":this.ESS<200?"orange":"green"}},{key:"dataChanged",value:function dataChanged(){this.updateESS()}},{key:"burnInChanged",value:function burnInChanged(){this.updateESS()}},{key:"updateESS",value:function updateESS(){var Ee=this,ze=this.data,Be=this.burnIn;this.worker.postMessage("ESS",[ze,Be]).then((function(ze){return Ee.ESS=Math.round(ze)})).catch(console.error)}},{key:"mounted",value:function mounted(){var Ee=this,ze=this.data,Be=this.burnIn;this.worker.postMessage("ESS",[ze,Be]).then((function(ze){return Ee.ESS=Math.round(ze)})).catch(console.error)}}]),ESSChip}(it.c);Object(Ue.a)([Object(it.b)()],Co.prototype,"data",void 0),Object(Ue.a)([Object(it.b)()],Co.prototype,"burnIn",void 0),Object(Ue.a)([Object(it.d)("data")],Co.prototype,"dataChanged",null),Object(Ue.a)([Object(it.d)("burnIn")],Co.prototype,"burnInChanged",null);var zo=Co=Object(Ue.a)([it.a],Co),Bo=(Be("8adc"),Be("0789")),Vo=Be("9d26"),Uo=Be("a9ad"),Ho=Be("4e82"),Wo=Be("1c87"),Xo=Be("af2b");function _slicedToArray(Ee,ze){return function _arrayWithHoles(Ee){if(Array.isArray(Ee))return Ee}(Ee)||function _iterableToArrayLimit(Ee,ze){var Be=null==Ee?null:"undefined"!=typeof Symbol&&Ee[Symbol.iterator]||Ee["@@iterator"];if(null==Be)return;var Ue,We,$e=[],Qe=!0,rt=!1;try{for(Be=Be.call(Ee);!(Qe=(Ue=Be.next()).done)&&($e.push(Ue.value),!ze||$e.length!==ze);Qe=!0);}catch(Ee){rt=!0,We=Ee}finally{try{Qe||null==Be.return||Be.return()}finally{if(rt)throw We}}return $e}(Ee,ze)||function VChip_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return VChip_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return VChip_arrayLikeToArray(Ee,ze)}(Ee,ze)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function VChip_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0?Math.max(Ee-Be,0):Math.max(Ee,12))+this.getOffsetLeft()},calcYOverflow:function calcYOverflow(Ee){var ze=this.getInnerHeight(),Be=this.absoluteYOffset+ze,Ue=this.dimensions.activator,We=this.dimensions.content.height,$e=BeWe?Ee=this.pageYOffset+(Ue.top-We):$e&&!this.allowOverflow?Ee=Be-We-12:Ee'",this)},methods:{activate:function activate(){this.updateDimensions(),requestAnimationFrame(this.startTransition)},deactivate:function deactivate(){this.runDelay("close")},genActivatorListeners:function genActivatorListeners(){var Ee=this,ze=un.options.methods.genActivatorListeners.call(this);return ze.focus=function(ze){Ee.getActivator(ze),Ee.runDelay("open")},ze.blur=function(ze){Ee.getActivator(ze),Ee.runDelay("close")},ze.keydown=function(ze){ze.keyCode===sn.x.esc&&(Ee.getActivator(ze),Ee.runDelay("close"))},ze},genActivatorAttributes:function genActivatorAttributes(){return{"aria-haspopup":!0,"aria-expanded":String(this.isActive)}},genTransition:function genTransition(){var Ee=this.genContent();return this.computedTransition?this.$createElement("transition",{props:{name:this.computedTransition}},[Ee]):Ee},genContent:function genContent(){var Ee;return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-tooltip__content",class:(Ee={},VTooltip_defineProperty(Ee,this.contentClass,!0),VTooltip_defineProperty(Ee,"menuable__content__active",this.isActive),VTooltip_defineProperty(Ee,"v-tooltip__content--fixed",this.activatorFixed),Ee),style:this.styles,attrs:this.getScopeIdAttrs(),directives:[{name:"show",value:this.isContentActive}],ref:"content"}),this.getContentSlot())}},render:function render(Ee){var ze=this;return Ee(this.tag,{staticClass:"v-tooltip",class:this.classes},[this.showLazyContent((function(){return[ze.genTransition()]})),this.genActivator()])}}),ns=Object(ft.a)(zo,(function(){var Ee=this,ze=Ee.$createElement,Be=Ee._self._c||ze;return Be("v-tooltip",{attrs:{color:"black",bottom:""},scopedSlots:Ee._u([{key:"activator",fn:function(ze){var Ue=ze.on;return[Be("v-chip",Ee._g({directives:[{name:"show",rawName:"v-show",value:Ee.ESS,expression:"ESS"}],attrs:{color:Ee.color,"text-color":"white",small:""}},Ue),[Ee._v(Ee._s(Ee.ESS))])]}}])},[Be("span",[Ee._v("ESS")])])}),[],!1,null,null,null),as=ns.exports;kt()(ns,{VChip:$o,VTooltip:rs});var os=Be("a559"),ss=Be.n(os),ls={epsilon:1e-12,matrix:"Matrix",number:"number",precision:64,predictable:!1,randomSeed:null};function isNumber(Ee){return"number"==typeof Ee}function isBigNumber(Ee){return!(!Ee||"object"!=typeof Ee||"function"!=typeof Ee.constructor)&&(!0===Ee.isBigNumber&&"object"==typeof Ee.constructor.prototype&&!0===Ee.constructor.prototype.isBigNumber||"function"==typeof Ee.constructor.isDecimal&&!0===Ee.constructor.isDecimal(Ee))}function isComplex(Ee){return Ee&&"object"==typeof Ee&&!0===Object.getPrototypeOf(Ee).isComplex||!1}function isFraction(Ee){return Ee&&"object"==typeof Ee&&!0===Object.getPrototypeOf(Ee).isFraction||!1}function isUnit(Ee){return Ee&&!0===Ee.constructor.prototype.isUnit||!1}function isString(Ee){return"string"==typeof Ee}var cs=Array.isArray;function isMatrix(Ee){return Ee&&!0===Ee.constructor.prototype.isMatrix||!1}function isCollection(Ee){return Array.isArray(Ee)||isMatrix(Ee)}function isDenseMatrix(Ee){return Ee&&Ee.isDenseMatrix&&!0===Ee.constructor.prototype.isMatrix||!1}function isSparseMatrix(Ee){return Ee&&Ee.isSparseMatrix&&!0===Ee.constructor.prototype.isMatrix||!1}function isRange(Ee){return Ee&&!0===Ee.constructor.prototype.isRange||!1}function isIndex(Ee){return Ee&&!0===Ee.constructor.prototype.isIndex||!1}function isBoolean(Ee){return"boolean"==typeof Ee}function isResultSet(Ee){return Ee&&!0===Ee.constructor.prototype.isResultSet||!1}function isHelp(Ee){return Ee&&!0===Ee.constructor.prototype.isHelp||!1}function isFunction(Ee){return"function"==typeof Ee}function isDate(Ee){return Ee instanceof Date}function isRegExp(Ee){return Ee instanceof RegExp}function isObject(Ee){return!(!Ee||"object"!=typeof Ee||Ee.constructor!==Object||isComplex(Ee)||isFraction(Ee))}function isNull(Ee){return null===Ee}function isUndefined(Ee){return void 0===Ee}function isAccessorNode(Ee){return Ee&&!0===Ee.isAccessorNode&&!0===Ee.constructor.prototype.isNode||!1}function isArrayNode(Ee){return Ee&&!0===Ee.isArrayNode&&!0===Ee.constructor.prototype.isNode||!1}function isAssignmentNode(Ee){return Ee&&!0===Ee.isAssignmentNode&&!0===Ee.constructor.prototype.isNode||!1}function isBlockNode(Ee){return Ee&&!0===Ee.isBlockNode&&!0===Ee.constructor.prototype.isNode||!1}function isConditionalNode(Ee){return Ee&&!0===Ee.isConditionalNode&&!0===Ee.constructor.prototype.isNode||!1}function isConstantNode(Ee){return Ee&&!0===Ee.isConstantNode&&!0===Ee.constructor.prototype.isNode||!1}function isFunctionAssignmentNode(Ee){return Ee&&!0===Ee.isFunctionAssignmentNode&&!0===Ee.constructor.prototype.isNode||!1}function isFunctionNode(Ee){return Ee&&!0===Ee.isFunctionNode&&!0===Ee.constructor.prototype.isNode||!1}function isIndexNode(Ee){return Ee&&!0===Ee.isIndexNode&&!0===Ee.constructor.prototype.isNode||!1}function isNode(Ee){return Ee&&!0===Ee.isNode&&!0===Ee.constructor.prototype.isNode||!1}function isObjectNode(Ee){return Ee&&!0===Ee.isObjectNode&&!0===Ee.constructor.prototype.isNode||!1}function isOperatorNode(Ee){return Ee&&!0===Ee.isOperatorNode&&!0===Ee.constructor.prototype.isNode||!1}function isParenthesisNode(Ee){return Ee&&!0===Ee.isParenthesisNode&&!0===Ee.constructor.prototype.isNode||!1}function isRangeNode(Ee){return Ee&&!0===Ee.isRangeNode&&!0===Ee.constructor.prototype.isNode||!1}function isSymbolNode(Ee){return Ee&&!0===Ee.isSymbolNode&&!0===Ee.constructor.prototype.isNode||!1}function isChain(Ee){return Ee&&!0===Ee.constructor.prototype.isChain||!1}function typeOf(Ee){var ze=typeof Ee;return"object"===ze?null===Ee?"null":Array.isArray(Ee)?"Array":Ee instanceof Date?"Date":Ee instanceof RegExp?"RegExp":isBigNumber(Ee)?"BigNumber":isComplex(Ee)?"Complex":isFraction(Ee)?"Fraction":isMatrix(Ee)?"Matrix":isUnit(Ee)?"Unit":isIndex(Ee)?"Index":isRange(Ee)?"Range":isResultSet(Ee)?"ResultSet":isNode(Ee)?Ee.type:isChain(Ee)?"Chain":isHelp(Ee)?"Help":"Object":"function"===ze?"Function":ze}function clone(Ee){var ze=typeof Ee;if("number"===ze||"string"===ze||"boolean"===ze||null==Ee)return Ee;if("function"==typeof Ee.clone)return Ee.clone();if(Array.isArray(Ee))return Ee.map((function(Ee){return clone(Ee)}));if(Ee instanceof Date)return new Date(Ee.valueOf());if(isBigNumber(Ee))return Ee;if(Ee instanceof RegExp)throw new TypeError("Cannot clone "+Ee);return mapObject(Ee,clone)}function mapObject(Ee,ze){var Be={};for(var Ue in Ee)object_hasOwnProperty(Ee,Ue)&&(Be[Ue]=ze(Ee[Ue]));return Be}function extend(Ee,ze){for(var Be in ze)object_hasOwnProperty(ze,Be)&&(Ee[Be]=ze[Be]);return Ee}function deepStrictEqual(Ee,ze){var Be,Ue,We;if(Array.isArray(Ee)){if(!Array.isArray(ze))return!1;if(Ee.length!==ze.length)return!1;for(Ue=0,We=Ee.length;Ue0?1:Ee<0?-1:0},vs=Math.log2||function log2(Ee){return Math.log(Ee)/Math.LN2},ks=Math.log10||function log10(Ee){return Math.log(Ee)/Math.LN10},Ms=(Math.log1p,Math.cbrt||function cbrt(Ee){if(0===Ee)return Ee;var ze,Be=Ee<0;return Be&&(Ee=-Ee),ze=isFinite(Ee)?(Ee/((ze=Math.exp(Math.log(Ee)/3))*ze)+2*ze)/3:Ee,Be?-ze:ze}),Ss=Math.expm1||function expm1(Ee){return Ee>=2e-4||Ee<=-2e-4?Math.exp(Ee)-1:Ee+Ee*Ee/2+Ee*Ee*Ee/6};function formatNumberToBase(Ee,ze,Be){var Ue={2:"0b",8:"0o",16:"0x"}[ze],We="";if(Be){if(Be<1)throw new Error("size must be in greater than 0");if(!number_isInteger(Be))throw new Error("size must be an integer");if(Ee>2**(Be-1)-1||Ee<-(2**(Be-1)))throw new Error("Value must be in range [-2^".concat(Be-1,", 2^").concat(Be-1,"-1]"));if(!number_isInteger(Ee))throw new Error("Value must be an integer");Ee<0&&(Ee+=2**Be),We="i".concat(Be)}var $e="";return Ee<0&&(Ee=-Ee,$e="-"),"".concat($e).concat(Ue).concat(Ee.toString(ze)).concat(We)}function number_format(Ee,ze){if("function"==typeof ze)return ze(Ee);if(Ee===1/0)return"Infinity";if(Ee===-1/0)return"-Infinity";if(isNaN(Ee))return"NaN";var Be,Ue,We="auto";if(ze&&(ze.notation&&(We=ze.notation),isNumber(ze)?Be=ze:isNumber(ze.precision)&&(Be=ze.precision),ze.wordSize&&"number"!=typeof(Ue=ze.wordSize)))throw new Error('Option "wordSize" must be a number');switch(We){case"fixed":return toFixed(Ee,Be);case"exponential":return toExponential(Ee,Be);case"engineering":return function toEngineering(Ee,ze){if(isNaN(Ee)||!isFinite(Ee))return String(Ee);var Be=roundDigits(splitNumber(Ee),ze),Ue=Be.exponent,We=Be.coefficients,$e=Ue%3==0?Ue:Ue<0?Ue-3-Ue%3:Ue-Ue%3;if(isNumber(ze))for(;ze>We.length||Ue-$e+1>We.length;)We.push(0);else for(var Qe=Math.abs(Ue-$e)-(We.length-1),rt=0;rt0;)at++,it--;var ct=We.slice(at).join(""),ft=isNumber(ze)&&ct.length||ct.match(/[1-9]/)?"."+ct:"",xt=We.slice(0,at).join("")+ft+"e"+(Ue>=0?"+":"")+$e.toString();return Be.sign+xt}(Ee,Be);case"bin":return formatNumberToBase(Ee,2,Ue);case"oct":return formatNumberToBase(Ee,8,Ue);case"hex":return formatNumberToBase(Ee,16,Ue);case"auto":return function toPrecision(Ee,ze,Be){if(isNaN(Ee)||!isFinite(Ee))return String(Ee);var Ue=Be&&void 0!==Be.lowerExp?Be.lowerExp:-3,We=Be&&void 0!==Be.upperExp?Be.upperExp:5,$e=splitNumber(Ee),Qe=ze?roundDigits($e,ze):$e;if(Qe.exponent=We)return toExponential(Ee,ze);var rt=Qe.coefficients,it=Qe.exponent;rt.length0?it:0;return at0?"."+We.join(""):"")+"e"+($e>=0?"+":"")+$e}function roundDigits(Ee,ze){for(var Be={sign:Ee.sign,coefficients:Ee.coefficients,exponent:Ee.exponent},Ue=Be.coefficients;ze<=0;)Ue.unshift(0),Be.exponent++,ze++;if(Ue.length>ze&&Ue.splice(ze,Ue.length-ze)[0]>=5){var We=ze-1;for(Ue[We]++;10===Ue[We];)Ue.pop(),0===We&&(Ue.unshift(0),Be.exponent++,We++),Ue[--We]++}return Be}function number_zeros(Ee){for(var ze=[],Be=0;Be=0?"+":"")+Ue.toString()}(Ee,Be);case"bin":return formatBigNumberToBase(Ee,2,Ue);case"oct":return formatBigNumberToBase(Ee,8,Ue);case"hex":return formatBigNumberToBase(Ee,16,Ue);case"auto":var $e=ze&&void 0!==ze.lowerExp?ze.lowerExp:-3,Qe=ze&&void 0!==ze.upperExp?ze.upperExp:5;if(Ee.isZero())return"0";var rt=Ee.toSignificantDigits(Be),it=rt.e;return(it>=$e&&it'"'+Be+'": '+string_format(Ee[Be],ze)).join(", ")+"}":String(Ee)}function DimensionError(Ee,ze,Be){if(!(this instanceof DimensionError))throw new SyntaxError("Constructor must be called with the new operator");this.actual=Ee,this.expected=ze,this.relation=Be,this.message="Dimension mismatch ("+(Array.isArray(Ee)?"["+Ee.join(", ")+"]":Ee)+" "+(this.relation||"!=")+" "+(Array.isArray(ze)?"["+ze.join(", ")+"]":ze)+")",this.stack=(new Error).stack}function IndexError(Ee,ze,Be){if(!(this instanceof IndexError))throw new SyntaxError("Constructor must be called with the new operator");this.index=Ee,arguments.length<3?(this.min=0,this.max=ze):(this.min=ze,this.max=Be),void 0!==this.min&&this.index=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=(new Error).stack}function arraySize(Ee){for(var ze=[];Array.isArray(Ee);)ze.push(Ee.length),Ee=Ee[0];return ze}function utils_array_validate(Ee,ze){if(0===ze.length){if(Array.isArray(Ee))throw new DimensionError(Ee.length,0)}else!function array_validate(Ee,ze,Be){var Ue,We=Ee.length;if(We!==ze[Be])throw new DimensionError(We,ze[Be]);if(Be")}(Ee,ze,0)}function validateIndex(Ee,ze){if(!isNumber(Ee)||!number_isInteger(Ee))throw new TypeError("Index must be an integer (value: "+Ee+")");if(Ee<0||"number"==typeof ze&&Ee>=ze)throw new IndexError(Ee,ze)}function array_resize(Ee,ze,Be){if(!Array.isArray(Ee)||!Array.isArray(ze))throw new TypeError("Array expected");if(0===ze.length)throw new Error("Resizing to scalar is not supported");return ze.forEach((function(Ee){if(!isNumber(Ee)||!number_isInteger(Ee)||Ee<0)throw new TypeError("Invalid size, must contain positive integers (size: "+string_format(ze)+")")})),function utils_array_resize(Ee,ze,Be,Ue){var We,$e,Qe=Ee.length,rt=ze[Be],it=Math.min(Qe,rt);if(Ee.length=rt,Be=0){if(!(ze%Be==0))throw new Error("Could not replace wildcard, since "+ze+" is no multiple of "+-Be);Ue[We]=-ze/Be}return Ue}function array_product(Ee){return Ee.reduce((Ee,ze)=>Ee*ze,1)}function unsqueeze(Ee,ze,Be,Ue){var We=Ue||arraySize(Ee);if(Be)for(var $e=0;$e!function isOptionalDependency(Ee){return Ee&&"?"===Ee[0]}(Ee)).every(Ee=>void 0!==Be[Ee])){var Ue=ze.filter(Ee=>void 0===Be[Ee]);throw new Error('Cannot create function "'.concat(Ee,'", ')+"some dependencies are missing: ".concat(Ue.map(Ee=>'"'.concat(Ee,'"')).join(", "),"."))}}(Ee,ze,Ue),Be(We)}return assertAndCreate.isFactory=!0,assertAndCreate.fn=Ee,assertAndCreate.dependencies=ze.slice().sort(),Ue&&(assertAndCreate.meta=Ue),assertAndCreate}function stripOptionalNotation(Ee){return Ee&&"?"===Ee[0]?Ee.slice(1):Ee}DimensionError.prototype=new RangeError,DimensionError.prototype.constructor=RangeError,DimensionError.prototype.name="DimensionError",DimensionError.prototype.isDimensionError=!0,IndexError.prototype=new RangeError,IndexError.prototype.constructor=RangeError,IndexError.prototype.name="IndexError",IndexError.prototype.isIndexError=!0;var Ns=Be("edaf"),js=Be.n(Ns),Hs=factory_factory("Complex",[],()=>(js.a.prototype.type="Complex",js.a.prototype.isComplex=!0,js.a.prototype.toJSON=function(){return{mathjs:"Complex",re:this.re,im:this.im}},js.a.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},js.a.prototype.format=function(Ee){var ze=this.im,Be=this.re,Ue=number_format(this.re,Ee),We=number_format(this.im,Ee),$e=isNumber(Ee)?Ee:Ee?Ee.precision:null;if(null!==$e){var Qe=Math.pow(10,-$e);Math.abs(Be/ze)ze.re?1:Ee.reze.im?1:Ee.im1&&void 0!==arguments[1]?arguments[1]:{};return Be=null==Be?Number.POSITIVE_INFINITY:Be,ze=null==ze?JSON.stringify:ze,function memoize(){"object"!=typeof memoize.cache&&(memoize.cache={values:new Map,lru:lruQueue(Be||Number.POSITIVE_INFINITY)});for(var Ue=[],We=0;We{var{on:ze,config:Be}=Ee,Ue=Zs.a.clone({precision:Be.precision,modulo:Zs.a.EUCLID});return Ue.prototype=Object.create(Ue.prototype),Ue.prototype.type="BigNumber",Ue.prototype.isBigNumber=!0,Ue.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},Ue.fromJSON=function(Ee){return new Ue(Ee.value)},ze&&ze("config",(function(Ee,ze){Ee.precision!==ze.precision&&Ue.config({precision:Ee.precision})})),Ue},{isClass:!0}),$s=factory_factory("Matrix",[],()=>{function Matrix(){if(!(this instanceof Matrix))throw new SyntaxError("Constructor must be called with the new operator")}return Matrix.prototype.type="Matrix",Matrix.prototype.isMatrix=!0,Matrix.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},Matrix.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},Matrix.prototype.create=function(Ee,ze){throw new Error("Cannot invoke create on a Matrix interface")},Matrix.prototype.subset=function(Ee,ze,Be){throw new Error("Cannot invoke subset on a Matrix interface")},Matrix.prototype.get=function(Ee){throw new Error("Cannot invoke get on a Matrix interface")},Matrix.prototype.set=function(Ee,ze,Be){throw new Error("Cannot invoke set on a Matrix interface")},Matrix.prototype.resize=function(Ee,ze){throw new Error("Cannot invoke resize on a Matrix interface")},Matrix.prototype.reshape=function(Ee,ze){throw new Error("Cannot invoke reshape on a Matrix interface")},Matrix.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},Matrix.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},Matrix.prototype.map=function(Ee,ze){throw new Error("Cannot invoke map on a Matrix interface")},Matrix.prototype.forEach=function(Ee){throw new Error("Cannot invoke forEach on a Matrix interface")},Matrix.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},Matrix.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},Matrix.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},Matrix.prototype.format=function(Ee){throw new Error("Cannot invoke format on a Matrix interface")},Matrix.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},Matrix},{isClass:!0});numberFactory("fineStructure",.0072973525693),numberFactory("weakMixingAngle",.2229),numberFactory("efimovFactor",22.7),numberFactory("sackurTetrode",-1.16487052358);function numberFactory(Ee,ze){return factory_factory(Ee,["config","BigNumber"],Ee=>{var{config:Be,BigNumber:Ue}=Ee;return"BigNumber"===Be.number?new Ue(ze):ze})}var Ks=Be("d61e"),Qs=Be.n(Ks),cl=factory_factory("Fraction",[],()=>(Qs.a.prototype.type="Fraction",Qs.a.prototype.isFraction=!0,Qs.a.prototype.toJSON=function(){return{mathjs:"Fraction",n:this.s*this.n,d:this.d}},Qs.a.fromJSON=function(Ee){return new Qs.a(Ee)},Qs.a),{isClass:!0}),fl=factory_factory("DenseMatrix",["Matrix"],Ee=>{var{Matrix:ze}=Ee;function DenseMatrix(Ee,ze){if(!(this instanceof DenseMatrix))throw new SyntaxError("Constructor must be called with the new operator");if(ze&&!isString(ze))throw new Error("Invalid datatype: "+ze);if(isMatrix(Ee))"DenseMatrix"===Ee.type?(this._data=clone(Ee._data),this._size=clone(Ee._size),this._datatype=ze||Ee._datatype):(this._data=Ee.toArray(),this._size=Ee.size(),this._datatype=ze||Ee._datatype);else if(Ee&&cs(Ee.data)&&cs(Ee.size))this._data=Ee.data,this._size=Ee.size,utils_array_validate(this._data,this._size),this._datatype=ze||Ee.datatype;else if(cs(Ee))this._data=function preprocess(Ee){for(var ze=0,Be=Ee.length;ze");_fit(Ee,ze.max().map((function(Ee){return Ee+1})),Ue);var at=$e.length;!function _setSubmatrix(Ee,ze,Be,Ue,We){var $e=We===Ue-1,Qe=ze.dimension(We);$e?Qe.forEach((function(ze,Ue){validateIndex(ze),Ee[ze]=Be[Ue[0]]})):Qe.forEach((function($e,Qe){validateIndex($e),_setSubmatrix(Ee[$e],ze,Be[Qe[0]],Ue,We+1)}))}(Ee._data,ze,Be,at,0)}return Ee}function _resize(Ee,ze,Be){if(0===ze.length){for(var Ue=Ee._data;cs(Ue);)Ue=Ue[0];return Ue}return Ee._size=ze.slice(0),Ee._data=array_resize(Ee._data,Ee._size,Be),Ee}function _fit(Ee,ze,Be){for(var Ue=Ee._size.slice(0),We=!1;Ue.lengthUe[$e]&&(Ue[$e]=ze[$e],We=!0);We&&_resize(Ee,Ue,Be)}return DenseMatrix.prototype=new ze,DenseMatrix.prototype.createDenseMatrix=function(Ee,ze){return new DenseMatrix(Ee,ze)},DenseMatrix.prototype.type="DenseMatrix",DenseMatrix.prototype.isDenseMatrix=!0,DenseMatrix.prototype.getDataType=function(){return getArrayDataType(this._data,typeOf)},DenseMatrix.prototype.storage=function(){return"dense"},DenseMatrix.prototype.datatype=function(){return this._datatype},DenseMatrix.prototype.create=function(Ee,ze){return new DenseMatrix(Ee,ze)},DenseMatrix.prototype.subset=function(Ee,ze,Be){switch(arguments.length){case 1:return _get(this,Ee);case 2:case 3:return _set(this,Ee,ze,Be);default:throw new SyntaxError("Wrong number of arguments")}},DenseMatrix.prototype.get=function(Ee){if(!cs(Ee))throw new TypeError("Array expected");if(Ee.length!==this._size.length)throw new DimensionError(Ee.length,this._size.length);for(var ze=0;zeArray.isArray(Ee)&&1===Ee.length?Ee[0]:Ee);return _resize(Be?this.clone():this,Ue,ze)},DenseMatrix.prototype.reshape=function(Ee,ze){var Be=ze?this.clone():this;Be._data=reshape(Be._data,Ee);var Ue=Be._size.reduce((Ee,ze)=>Ee*ze);return Be._size=processSizesWildcard(Ee,Ue),Be},DenseMatrix.prototype.clone=function(){return new DenseMatrix({data:clone(this._data),size:clone(this._size),datatype:this._datatype})},DenseMatrix.prototype.size=function(){return this._size.slice(0)},DenseMatrix.prototype.map=function(Ee){var ze=this,Be=function recurse(Be,Ue){return cs(Be)?Be.map((function(Ee,ze){return recurse(Ee,Ue.concat(ze))})):Ee(Be,Ue,ze)}(this._data,[]);return new DenseMatrix(Be,void 0!==this._datatype?getArrayDataType(Be,typeOf):void 0)},DenseMatrix.prototype.forEach=function(Ee){var ze=this;!function recurse(Be,Ue){cs(Be)?Be.forEach((function(Ee,ze){recurse(Ee,Ue.concat(ze))})):Ee(Be,Ue,ze)}(this._data,[])},DenseMatrix.prototype[Symbol.iterator]=function*(){yield*function*recurse(Ee,ze){if(cs(Ee))for(var Be=0;Be[Ee[Be]]);ze.push(new DenseMatrix(We,Ee._datatype))},$e=0;$e0?Ee:0,Be=Ee<0?-Ee:0,Ue=this._size[0],We=this._size[1],$e=Math.min(Ue-Be,We-ze),Qe=[],rt=0;rt<$e;rt++)Qe[rt]=this._data[rt+Be][rt+ze];return new DenseMatrix({data:Qe,size:[$e],datatype:this._datatype})},DenseMatrix.diagonal=function(Ee,ze,Be,Ue){if(!cs(Ee))throw new TypeError("Array expected, size parameter");if(2!==Ee.length)throw new Error("Only two dimensions matrix are supported");if(Ee=Ee.map((function(Ee){if(isBigNumber(Ee)&&(Ee=Ee.toNumber()),!isNumber(Ee)||!number_isInteger(Ee)||Ee<1)throw new Error("Size values must be positive integers");return Ee})),Be){if(isBigNumber(Be)&&(Be=Be.toNumber()),!isNumber(Be)||!number_isInteger(Be))throw new TypeError("The parameter k must be an integer number")}else Be=0;var We,$e=Be>0?Be:0,Qe=Be<0?-Be:0,rt=Ee[0],it=Ee[1],at=Math.min(rt-Qe,it-$e);if(cs(ze)){if(ze.length!==at)throw new Error("Invalid value array length");We=function _value(Ee){return ze[Ee]}}else if(isMatrix(ze)){var ct=ze.size();if(1!==ct.length||ct[0]!==at)throw new Error("Invalid matrix length");We=function _value(Ee){return ze.get([Ee])}}else We=function _value(){return ze};Ue||(Ue=isBigNumber(We(0))?We(0).mul(0):0);var ft=[];if(Ee.length>0){ft=array_resize(ft,Ee,Ue);for(var xt=0;xt15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+Ee+"). Use function bignumber(x) to convert to BigNumber.");return new ze(Ee)}},{from:"number",to:"Complex",convert:function convert(Ee){return Be||throwNoComplex(Ee),new Be(Ee,0)}},{from:"number",to:"string",convert:function convert(Ee){return Ee+""}},{from:"BigNumber",to:"Complex",convert:function convert(Ee){return Be||throwNoComplex(Ee),new Be(Ee.toNumber(),0)}},{from:"Fraction",to:"BigNumber",convert:function convert(Ee){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function convert(Ee){return Be||throwNoComplex(Ee),new Be(Ee.valueOf(),0)}},{from:"number",to:"Fraction",convert:function convert(Ee){We||throwNoFraction(Ee);var ze=new We(Ee);if(ze.valueOf()!==Ee)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+Ee+"). Use function fraction(x) to convert to Fraction.");return ze}},{from:"string",to:"number",convert:function convert(Ee){var ze=Number(Ee);if(isNaN(ze))throw new Error('Cannot convert "'+Ee+'" to a number');return ze}},{from:"string",to:"BigNumber",convert:function convert(Ee){ze||throwNoBignumber(Ee);try{return new ze(Ee)}catch(ze){throw new Error('Cannot convert "'+Ee+'" to BigNumber')}}},{from:"string",to:"Fraction",convert:function convert(Ee){We||throwNoFraction(Ee);try{return new We(Ee)}catch(ze){throw new Error('Cannot convert "'+Ee+'" to Fraction')}}},{from:"string",to:"Complex",convert:function convert(Ee){Be||throwNoComplex(Ee);try{return new Be(Ee)}catch(ze){throw new Error('Cannot convert "'+Ee+'" to Complex')}}},{from:"boolean",to:"number",convert:function convert(Ee){return+Ee}},{from:"boolean",to:"BigNumber",convert:function convert(Ee){return ze||throwNoBignumber(Ee),new ze(+Ee)}},{from:"boolean",to:"Fraction",convert:function convert(Ee){return We||throwNoFraction(Ee),new We(+Ee)}},{from:"boolean",to:"string",convert:function convert(Ee){return String(Ee)}},{from:"Array",to:"Matrix",convert:function convert(Ee){return Ue||function throwNoMatrix(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}(),new Ue(Ee)}},{from:"Matrix",to:"Array",convert:function convert(Ee){return Ee.valueOf()}}],$e}));function throwNoBignumber(Ee){throw new Error("Cannot convert value ".concat(Ee," into a BigNumber: no class 'BigNumber' provided"))}function throwNoComplex(Ee){throw new Error("Cannot convert value ".concat(Ee," into a Complex number: no class 'Complex' provided"))}function throwNoFraction(Ee){throw new Error("Cannot convert value ".concat(Ee," into a Fraction, no class 'Fraction' provided."))}function containsCollections(Ee){for(var ze=0;ze=Ue.length)throw new IndexError(ze,Ue.length);return isMatrix(Ee)?Ee.create(_reduce(Ee.valueOf(),ze,Be)):_reduce(Ee,ze,Be)}function _reduce(Ee,ze,Be){var Ue,We,$e,Qe;if(ze<=0){if(Array.isArray(Ee[0])){for(Qe=function _switch(Ee){var ze,Be,Ue=Ee.length,We=Ee[0].length,$e=[];for(Be=0;Be{var{typed:ze}=Ee;return ze("isInteger",{number:number_isInteger,BigNumber:function BigNumber(Ee){return Ee.isInt()},Fraction:function Fraction(Ee){return 1===Ee.d&&isFinite(Ee.n)},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this)}})}),Al=factory_factory("isNumeric",["typed"],Ee=>{var{typed:ze}=Ee;return ze("isNumeric",{"number | BigNumber | Fraction | boolean":function numberBigNumberFractionBoolean(){return!0},"Complex | Unit | string | null | undefined | Node":function ComplexUnitStringNullUndefinedNode(){return!1},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this)}})}),Ml="number";function isNegativeNumber(Ee){return Ee<0}function isPositiveNumber(Ee){return Ee>0}function isZeroNumber(Ee){return 0===Ee}function isNaNNumber(Ee){return Number.isNaN(Ee)}isNegativeNumber.signature=Ml,isPositiveNumber.signature=Ml,isZeroNumber.signature=Ml,isNaNNumber.signature=Ml;var Sl=factory_factory("isNaN",["typed"],Ee=>{var{typed:ze}=Ee;return ze("isNaN",{number:isNaNNumber,BigNumber:function BigNumber(Ee){return Ee.isNaN()},Fraction:function Fraction(Ee){return!1},Complex:function Complex(Ee){return Ee.isNaN()},Unit:function Unit(Ee){return Number.isNaN(Ee.value)},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,Number.isNaN)}})});function nearlyEqual_nearlyEqual(Ee,ze,Be){if(null==Be)return Ee.eq(ze);if(Ee.eq(ze))return!0;if(Ee.isNaN()||ze.isNaN())return!1;if(Ee.isFinite()&&ze.isFinite()){var Ue=Ee.minus(ze).abs();if(Ue.isZero())return!0;var We=Ee.constructor.max(Ee.abs(),ze.abs());return Ue.lte(We.times(Be))}return!1}var Cl=factory_factory("equalScalar",["typed","config"],Ee=>{var{typed:ze,config:Be}=Ee;return ze("equalScalar",{"boolean, boolean":function booleanBoolean(Ee,ze){return Ee===ze},"number, number":function numberNumber(Ee,ze){return nearlyEqual(Ee,ze,Be.epsilon)},"BigNumber, BigNumber":function BigNumberBigNumber(Ee,ze){return Ee.eq(ze)||nearlyEqual_nearlyEqual(Ee,ze,Be.epsilon)},"Fraction, Fraction":function FractionFraction(Ee,ze){return Ee.equals(ze)},"Complex, Complex":function ComplexComplex(Ee,ze){return function complexEquals(Ee,ze,Be){return nearlyEqual(Ee.re,ze.re,Be)&&nearlyEqual(Ee.im,ze.im,Be)}(Ee,ze,Be.epsilon)},"Unit, Unit":function UnitUnit(Ee,ze){if(!Ee.equalBase(ze))throw new Error("Cannot compare units with different base");return this(Ee.value,ze.value)}})});factory_factory("equalScalar",["typed","config"],Ee=>{var{typed:ze,config:Be}=Ee;return ze("equalScalar",{"number, number":function numberNumber(Ee,ze){return nearlyEqual(Ee,ze,Be.epsilon)}})});var El=factory_factory("number",["typed"],Ee=>{var{typed:ze}=Ee,Be=ze("number",{"":function _(){return 0},number:function number(Ee){return Ee},string:function string(Ee){if("NaN"===Ee)return NaN;var ze=function getNonDecimalNumberParts(Ee){var ze=Ee.match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/);return ze?{input:Ee,radix:{"0b":2,"0o":8,"0x":16}[ze[1]],integerPart:ze[2],fractionalPart:ze[3]}:null}(Ee);if(ze)return function makeNumberFromNonDecimalParts(Ee){for(var ze=parseInt(Ee.integerPart,Ee.radix),Be=0,Ue=0;Ue2**Be-1)throw new SyntaxError('String "'.concat(Ee,'" is out of range'));We>=2**(Be-1)&&(We-=2**Be)}return We},BigNumber:function BigNumber(Ee){return Ee.toNumber()},Fraction:function Fraction(Ee){return Ee.valueOf()},Unit:function Unit(Ee){throw new Error("Second argument with valueless unit expected")},null:function _null(Ee){return 0},"Unit, string | Unit":function UnitStringUnit(Ee,ze){return Ee.toNumber(ze)},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this)}});return Be.fromJSON=function(Ee){return parseFloat(Ee.value)},Be}),Pl="number, number";function absNumber(Ee){return Math.abs(Ee)}function addNumber(Ee,ze){return Ee+ze}function multiplyNumber(Ee,ze){return Ee*ze}function unaryMinusNumber(Ee){return-Ee}function unaryPlusNumber(Ee){return Ee}function cbrtNumber(Ee){return Ms(Ee)}function ceilNumber(Ee){return Math.ceil(Ee)}function cubeNumber(Ee){return Ee*Ee*Ee}function expNumber(Ee){return Math.exp(Ee)}function expm1Number(Ee){return Ss(Ee)}function gcdNumber(Ee,ze){if(!number_isInteger(Ee)||!number_isInteger(ze))throw new Error("Parameters in function gcd must be integer numbers");for(var Be;0!==ze;)Be=Ee%ze,Ee=ze,ze=Be;return Ee<0?-Ee:Ee}function lcmNumber(Ee,ze){if(!number_isInteger(Ee)||!number_isInteger(ze))throw new Error("Parameters in function lcm must be integer numbers");if(0===Ee||0===ze)return 0;for(var Be,Ue=Ee*ze;0!==ze;)ze=Ee%(Be=ze),Ee=Be;return Math.abs(Ue/Ee)}function logNumber(Ee){return Math.log(Ee)}function log10Number(Ee){return ks(Ee)}function log2Number(Ee){return vs(Ee)}function modNumber(Ee,ze){if(ze>0)return Ee-ze*Math.floor(Ee/ze);if(0===ze)return Ee;throw new Error("Cannot calculate mod for a negative divisor")}function nthRootNumber(Ee,ze){var Be=ze<0;if(Be&&(ze=-ze),0===ze)throw new Error("Root must be non-zero");if(Ee<0&&Math.abs(ze)%2!=1)throw new Error("Root must be odd when a is negative.");if(0===Ee)return Be?1/0:0;if(!isFinite(Ee))return Be?0:Ee;var Ue=Math.pow(Math.abs(Ee),1/ze);return Ue=Ee<0?-Ue:Ue,Be?1/Ue:Ue}function signNumber(Ee){return ms(Ee)}function squareNumber(Ee){return Ee*Ee}function xgcdNumber(Ee,ze){var Be,Ue,We,$e=0,Qe=1,rt=1,it=0;if(!number_isInteger(Ee)||!number_isInteger(ze))throw new Error("Parameters in function xgcd must be integer numbers");for(;ze;)We=Ee-(Ue=Math.floor(Ee/ze))*ze,Be=$e,$e=Qe-Ue*$e,Qe=Be,Be=rt,rt=it-Ue*rt,it=Be,Ee=ze,ze=We;return Ee<0?[-Ee,-Qe,-it]:[Ee,Ee?Qe:0,it]}function powNumber(Ee,ze){return Ee*Ee<1&&ze===1/0||Ee*Ee>1&&ze===-1/0?0:Math.pow(Ee,ze)}function roundNumber(Ee){var ze=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return parseFloat(toFixed(Ee,ze))}absNumber.signature="number",addNumber.signature=Pl,multiplyNumber.signature=Pl,unaryMinusNumber.signature="number",unaryPlusNumber.signature="number",cbrtNumber.signature="number",ceilNumber.signature="number",cubeNumber.signature="number",expNumber.signature="number",expm1Number.signature="number",gcdNumber.signature=Pl,lcmNumber.signature=Pl,logNumber.signature="number",log10Number.signature="number",log2Number.signature="number",modNumber.signature=Pl,nthRootNumber.signature=Pl,signNumber.signature="number",squareNumber.signature="number",xgcdNumber.signature=Pl,powNumber.signature=Pl,roundNumber.signature=Pl;var Ol=factory_factory("apply",["typed","isInteger"],Ee=>{var{typed:ze,isInteger:Be}=Ee;return ze("apply",{"Array | Matrix, number | BigNumber, function":function ArrayMatrixNumberBigNumberFunction(Ee,ze,Ue){if(!Be(ze))throw new TypeError("Integer number expected for dimension");var We=Array.isArray(Ee)?arraySize(Ee):Ee.size();if(ze<0||ze>=We.length)throw new IndexError(ze,We.length);return isMatrix(Ee)?Ee.create(_apply(Ee.valueOf(),ze,Ue)):_apply(Ee,ze,Ue)}})});function _apply(Ee,ze,Be){var Ue,We,$e;if(ze<=0){if(Array.isArray(Ee[0])){for($e=function apply_switch(Ee){var ze,Be,Ue=Ee.length,We=Ee[0].length,$e=[];for(Be=0;Be{var{typed:ze}=Ee;return ze("multiplyScalar",{"number, number":multiplyNumber,"Complex, Complex":function ComplexComplex(Ee,ze){return Ee.mul(ze)},"BigNumber, BigNumber":function BigNumberBigNumber(Ee,ze){return Ee.times(ze)},"Fraction, Fraction":function FractionFraction(Ee,ze){return Ee.mul(ze)},"number | Fraction | BigNumber | Complex, Unit":function numberFractionBigNumberComplexUnit(Ee,ze){var Be=ze.clone();return Be.value=null===Be.value?Be._normalize(Ee):this(Be.value,Ee),Be},"Unit, number | Fraction | BigNumber | Complex":function UnitNumberFractionBigNumberComplex(Ee,ze){var Be=Ee.clone();return Be.value=null===Be.value?Be._normalize(ze):this(Be.value,ze),Be},"Unit, Unit":function UnitUnit(Ee,ze){return Ee.multiply(ze)}})});var Dl="number, number";function bitAndNumber(Ee,ze){if(!number_isInteger(Ee)||!number_isInteger(ze))throw new Error("Integers expected in function bitAnd");return Ee&ze}function bitNotNumber(Ee){if(!number_isInteger(Ee))throw new Error("Integer expected in function bitNot");return~Ee}function bitOrNumber(Ee,ze){if(!number_isInteger(Ee)||!number_isInteger(ze))throw new Error("Integers expected in function bitOr");return Ee|ze}function bitXorNumber(Ee,ze){if(!number_isInteger(Ee)||!number_isInteger(ze))throw new Error("Integers expected in function bitXor");return Ee^ze}function leftShiftNumber(Ee,ze){if(!number_isInteger(Ee)||!number_isInteger(ze))throw new Error("Integers expected in function leftShift");return Ee<>ze}function rightLogShiftNumber(Ee,ze){if(!number_isInteger(Ee)||!number_isInteger(ze))throw new Error("Integers expected in function rightLogShift");return Ee>>>ze}bitAndNumber.signature=Dl,bitNotNumber.signature="number",bitOrNumber.signature=Dl,bitXorNumber.signature=Dl,leftShiftNumber.signature=Dl,rightArithShiftNumber.signature=Dl,rightLogShiftNumber.signature=Dl;function notNumber(Ee){return!Ee}function orNumber(Ee,ze){return!(!Ee&&!ze)}function xorNumber(Ee,ze){return!!Ee!=!!ze}function andNumber(Ee,ze){return!(!Ee||!ze)}notNumber.signature="number",orNumber.signature="number, number",xorNumber.signature="number, number",andNumber.signature="number, number";Math.pow(2,53);var Il=factory_factory("format",["typed"],Ee=>{var{typed:ze}=Ee;return ze("format",{any:string_format,"any, Object | function | number":string_format})});factory_factory("oct",["typed","format"],Ee=>{var{typed:ze,format:Be}=Ee;return ze("oct",{"number | BigNumber":function numberBigNumber(Ee){return Be(Ee,{notation:"oct"})},"number | BigNumber, number":function numberBigNumberNumber(Ee,ze){return Be(Ee,{notation:"oct",wordSize:ze})}})});function acoshNumber(Ee){return Ls(Ee)}function acotNumber(Ee){return Math.atan(1/Ee)}function acothNumber(Ee){return isFinite(Ee)?(Math.log((Ee+1)/Ee)+Math.log(Ee/(Ee-1)))/2:0}function acscNumber(Ee){return Math.asin(1/Ee)}function acschNumber(Ee){var ze=1/Ee;return Math.log(ze+Math.sqrt(ze*ze+1))}function asecNumber(Ee){return Math.acos(1/Ee)}function asechNumber(Ee){var ze=1/Ee,Be=Math.sqrt(ze*ze-1);return Math.log(Be+ze)}function asinhNumber(Ee){return Ds(Ee)}function atanhNumber(Ee){return Rs(Ee)}function cotNumber(Ee){return 1/Math.tan(Ee)}function cothNumber(Ee){var ze=Math.exp(2*Ee);return(ze+1)/(ze-1)}function cscNumber(Ee){return 1/Math.sin(Ee)}function cschNumber(Ee){return 0===Ee?Number.POSITIVE_INFINITY:Math.abs(2/(Math.exp(Ee)-Math.exp(-Ee)))*ms(Ee)}function secNumber(Ee){return 1/Math.cos(Ee)}function sechNumber(Ee){return 2/(Math.exp(Ee)+Math.exp(-Ee))}function sinhNumber(Ee){return Bs(Ee)}acoshNumber.signature="number",acotNumber.signature="number",acothNumber.signature="number",acscNumber.signature="number",acschNumber.signature="number",asecNumber.signature="number",asechNumber.signature="number",asinhNumber.signature="number",atanhNumber.signature="number",cotNumber.signature="number",cothNumber.signature="number",cscNumber.signature="number",cschNumber.signature="number",secNumber.signature="number",sechNumber.signature="number",sinhNumber.signature="number";function product_product(Ee,ze){if(ze>1;return product_product(Ee,Be)*product_product(Be+1,ze)}function combinationsNumber(Ee,ze){if(!number_isInteger(Ee)||Ee<0)throw new TypeError("Positive integer value expected in function combinations");if(!number_isInteger(ze)||ze<0)throw new TypeError("Positive integer value expected in function combinations");if(ze>Ee)throw new TypeError("k must be less than or equal to n");var Be=Ee-ze;return ze{var{typed:ze,Fraction:Be}=Ee;return ze("fraction",{number:function number(Ee){if(!isFinite(Ee)||isNaN(Ee))throw new Error(Ee+" cannot be represented as a fraction");return new Be(Ee)},string:function string(Ee){return new Be(Ee)},"number, number":function numberNumber(Ee,ze){return new Be(Ee,ze)},null:function _null(Ee){return new Be(0)},BigNumber:function BigNumber(Ee){return new Be(Ee.toString())},Fraction:function Fraction(Ee){return Ee},Object:function Object(Ee){return new Be(Ee)},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this)}})}),Nl=factory_factory("unaryMinus",["typed"],Ee=>{var{typed:ze}=Ee;return ze("unaryMinus",{number:unaryMinusNumber,Complex:function Complex(Ee){return Ee.neg()},BigNumber:function BigNumber(Ee){return Ee.neg()},Fraction:function Fraction(Ee){return Ee.neg()},Unit:function Unit(Ee){var ze=Ee.clone();return ze.value=this(Ee.value),ze},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this,!0)}})}),Fl=factory_factory("addScalar",["typed"],Ee=>{var{typed:ze}=Ee;return ze("addScalar",{"number, number":addNumber,"Complex, Complex":function ComplexComplex(Ee,ze){return Ee.add(ze)},"BigNumber, BigNumber":function BigNumberBigNumber(Ee,ze){return Ee.plus(ze)},"Fraction, Fraction":function FractionFraction(Ee,ze){return Ee.add(ze)},"Unit, Unit":function UnitUnit(Ee,ze){if(null===Ee.value||void 0===Ee.value)throw new Error("Parameter x contains a unit with undefined value");if(null===ze.value||void 0===ze.value)throw new Error("Parameter y contains a unit with undefined value");if(!Ee.equalBase(ze))throw new Error("Units do not match");var Be=Ee.clone();return Be.value=this(Be.value,ze.value),Be.fixPrefix=!1,Be}})}),jl=factory_factory("sqrt",["config","typed","Complex"],Ee=>{var{config:ze,typed:Be,Complex:Ue}=Ee;return Be("sqrt",{number:_sqrtNumber,Complex:function Complex(Ee){return Ee.sqrt()},BigNumber:function BigNumber(Ee){return!Ee.isNegative()||ze.predictable?Ee.sqrt():_sqrtNumber(Ee.toNumber())},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this,!0)},Unit:function Unit(Ee){return Ee.pow(.5)}});function _sqrtNumber(Ee){return isNaN(Ee)?NaN:Ee>=0||ze.predictable?Math.sqrt(Ee):new Ue(Ee,0).sqrt()}}),Vl=factory_factory("conj",["typed"],Ee=>{var{typed:ze}=Ee;return ze("conj",{number:function number(Ee){return Ee},BigNumber:function BigNumber(Ee){return Ee},Complex:function Complex(Ee){return Ee.conjugate()},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this)}})});factory_factory("bin",["typed","format"],Ee=>{var{typed:ze,format:Be}=Ee;return ze("bin",{"number | BigNumber":function numberBigNumber(Ee){return Be(Ee,{notation:"bin"})},"number | BigNumber, number":function numberBigNumberNumber(Ee,ze){return Be(Ee,{notation:"bin",wordSize:ze})}})});var Ul=factory_factory("SparseMatrix",["typed","equalScalar","Matrix"],Ee=>{var{typed:ze,equalScalar:Be,Matrix:Ue}=Ee;function SparseMatrix(Ee,ze){if(!(this instanceof SparseMatrix))throw new SyntaxError("Constructor must be called with the new operator");if(ze&&!isString(ze))throw new Error("Invalid datatype: "+ze);if(isMatrix(Ee))!function _createFromMatrix(Ee,ze,Be){"SparseMatrix"===ze.type?(Ee._values=ze._values?clone(ze._values):void 0,Ee._index=clone(ze._index),Ee._ptr=clone(ze._ptr),Ee._size=clone(ze._size),Ee._datatype=Be||ze._datatype):_createFromArray(Ee,ze.valueOf(),Be||ze._datatype)}(this,Ee,ze);else if(Ee&&cs(Ee.index)&&cs(Ee.ptr)&&cs(Ee.size))this._values=Ee.values,this._index=Ee.index,this._ptr=Ee.ptr,this._size=Ee.size,this._datatype=ze||Ee.datatype;else if(cs(Ee))_createFromArray(this,Ee,ze);else{if(Ee)throw new TypeError("Unsupported type of data ("+typeOf(Ee)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=ze}}function _createFromArray(Ee,Ue,We){Ee._values=[],Ee._index=[],Ee._ptr=[],Ee._datatype=We;var $e=Ue.length,Qe=0,rt=Be,it=0;if(isString(We)&&(rt=ze.find(Be,[We,We])||Be,it=ze.convert(0,We)),$e>0){var at=0;do{Ee._ptr.push(Ee._index.length);for(var ct=0;ct<$e;ct++){var ft=Ue[ct];if(cs(ft)){if(0===at&&Qe");for(var at=ze.min()[0],ct=ze.min()[1],ft=We[0],xt=We[1],kt=0;ktLt){for(ct=Lt;ctkt){if(xt){var Ut=0;for(ct=0;ctUe-1&&(Ee._values.splice(ft,1),Ee._index.splice(ft,1),tr++)}Ee._ptr[ct]=Ee._values.length}return Ee._size[0]=Ue,Ee._size[1]=We,Ee}function _toArray(Ee,ze,Be,Ue,We){var $e,Qe,rt=Ue[0],it=Ue[1],at=[];for($e=0;$ert-1||Qe>it-1)&&(_resize(this,Math.max($e+1,rt),Math.max(Qe+1,it),We),rt=this._size[0],it=this._size[1]),validateIndex($e,rt),validateIndex(Qe,it);var ft=_getValueIndex($e,this._ptr[Qe],this._ptr[Qe+1],this._index);return ftArray.isArray(Ee)&&1===Ee.length?Ee[0]:Ee);if(2!==Ue.length)throw new Error("Only two dimensions matrix are supported");return Ue.forEach((function(Ee){if(!isNumber(Ee)||!number_isInteger(Ee)||Ee<0)throw new TypeError("Invalid size, must contain positive integers (size: "+string_format(Ue)+")")})),_resize(Be?this.clone():this,Ue[0],Ue[1],ze)},SparseMatrix.prototype.reshape=function(Ee,ze){if(!cs(Ee))throw new TypeError("Array expected");if(2!==Ee.length)throw new Error("Sparse matrices can only be reshaped in two dimensions");Ee.forEach((function(ze){if(!isNumber(ze)||!number_isInteger(ze)||ze<=-2||0===ze)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+string_format(Ee)+")")}));var Be=this._size[0]*this._size[1];if(Be!==(Ee=processSizesWildcard(Ee,Be))[0]*Ee[1])throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var Ue=ze?this.clone():this;if(this._size[0]===Ee[0]&&this._size[1]===Ee[1])return Ue;for(var We=[],$e=0;$e=Ue&&ar<=We&&Lt(Ee._values[rr],ar-Ue,Ut-$e)}else{for(var Lr={},Qr=er;Qr "+(this._values?string_format(this._values[it],Ee):"X")}return We},SparseMatrix.prototype.toString=function(){return string_format(this.toArray())},SparseMatrix.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},SparseMatrix.prototype.diagonal=function(Ee){if(Ee){if(isBigNumber(Ee)&&(Ee=Ee.toNumber()),!isNumber(Ee)||!number_isInteger(Ee))throw new TypeError("The parameter k must be an integer number")}else Ee=0;var ze=Ee>0?Ee:0,Be=Ee<0?-Ee:0,Ue=this._size[0],We=this._size[1],$e=Math.min(Ue-Be,We-ze),Qe=[],rt=[],it=[];it[0]=0;for(var at=ze;at0?We:0,ft=We<0?-We:0,xt=Ee[0],kt=Ee[1],Lt=Math.min(xt-ft,kt-ct);if(cs(Ue)){if(Ue.length!==Lt)throw new Error("Invalid value array length");at=function _value(Ee){return Ue[Ee]}}else if(isMatrix(Ue)){var Ut=Ue.size();if(1!==Ut.length||Ut[0]!==Lt)throw new Error("Invalid matrix length");at=function _value(Ee){return Ue.get([Ee])}}else at=function _value(){return Ue};for(var er=[],tr=[],rr=[],ar=0;ar=0&&Lr=it||We[ct]!==ze)){var xt=Ue?Ue[at]:void 0;We.splice(ct,0,ze),Ue&&Ue.splice(ct,0,xt),We.splice(ct<=at?at+1:at,1),Ue&&Ue.splice(ct<=at?at+1:at,1)}else if(ct=it||We[at]!==Ee)){var kt=Ue?Ue[ct]:void 0;We.splice(at,0,Ee),Ue&&Ue.splice(at,0,kt),We.splice(at<=ct?ct+1:ct,1),Ue&&Ue.splice(at<=ct?ct+1:ct,1)}}},SparseMatrix},{isClass:!0}),Hl=factory_factory("matrix",["typed","Matrix","DenseMatrix","SparseMatrix"],Ee=>{var{typed:ze,Matrix:Be,DenseMatrix:Ue,SparseMatrix:We}=Ee;return ze("matrix",{"":function _(){return _create([])},string:function string(Ee){return _create([],Ee)},"string, string":function stringString(Ee,ze){return _create([],Ee,ze)},Array:function Array(Ee){return _create(Ee)},Matrix:function Matrix(Ee){return _create(Ee,Ee.storage())},"Array | Matrix, string":_create,"Array | Matrix, string, string":_create});function _create(Ee,ze,Be){if("dense"===ze||"default"===ze||void 0===ze)return new Ue(Ee,Be);if("sparse"===ze)return new We(Ee,Be);throw new TypeError("Unknown matrix type "+JSON.stringify(ze)+".")}}),ql=factory_factory("abs",["typed"],Ee=>{var{typed:ze}=Ee;return ze("abs",{number:absNumber,Complex:function Complex(Ee){return Ee.abs()},BigNumber:function BigNumber(Ee){return Ee.abs()},Fraction:function Fraction(Ee){return Ee.abs()},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this,!0)},Unit:function Unit(Ee){return Ee.abs()}})}),Gl=factory_factory("algorithm01",["typed"],Ee=>{var{typed:ze}=Ee;return function algorithm1(Ee,Be,Ue,We){var $e=Ee._data,Qe=Ee._size,rt=Ee._datatype,it=Be._values,at=Be._index,ct=Be._ptr,ft=Be._size,xt=Be._datatype;if(Qe.length!==ft.length)throw new DimensionError(Qe.length,ft.length);if(Qe[0]!==ft[0]||Qe[1]!==ft[1])throw new RangeError("Dimension mismatch. Matrix A ("+Qe+") must match Matrix B ("+ft+")");if(!it)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var kt,Lt,Ut=Qe[0],er=Qe[1],tr="string"==typeof rt&&rt===xt?rt:void 0,rr=tr?ze.find(Ue,[tr,tr]):Ue,ar=[];for(kt=0;kt{var{typed:ze,equalScalar:Be}=Ee;return function algorithm04(Ee,Ue,We){var $e=Ee._values,Qe=Ee._index,rt=Ee._ptr,it=Ee._size,at=Ee._datatype,ct=Ue._values,ft=Ue._index,xt=Ue._ptr,kt=Ue._size,Lt=Ue._datatype;if(it.length!==kt.length)throw new DimensionError(it.length,kt.length);if(it[0]!==kt[0]||it[1]!==kt[1])throw new RangeError("Dimension mismatch. Matrix A ("+it+") must match Matrix B ("+kt+")");var Ut,er=it[0],tr=it[1],rr=Be,ar=0,Lr=We;"string"==typeof at&&at===Lt&&(Ut=at,rr=ze.find(Be,[Ut,Ut]),ar=ze.convert(0,Ut),Lr=ze.find(We,[Ut,Ut]));var Qr,on,sn,cn,un,hn=$e&&ct?[]:void 0,dn=[],vn=[],yn=$e&&ct?[]:void 0,_n=$e&&ct?[]:void 0,Mn=[],Cn=[];for(on=0;on{var{typed:ze,DenseMatrix:Be}=Ee;return function algorithm10(Ee,Ue,We,$e){var Qe=Ee._values,rt=Ee._index,it=Ee._ptr,at=Ee._size,ct=Ee._datatype;if(!Qe)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var ft,xt=at[0],kt=at[1],Lt=We;"string"==typeof ct&&(ft=ct,Ue=ze.convert(Ue,ft),Lt=ze.find(We,[ft,ft]));for(var Ut=[],er=[],tr=[],rr=0;rr{var{typed:ze}=Ee;return function algorithm13(Ee,Be,Ue){var We,$e=Ee._data,Qe=Ee._size,rt=Ee._datatype,it=Be._data,at=Be._size,ct=Be._datatype,ft=[];if(Qe.length!==at.length)throw new DimensionError(Qe.length,at.length);for(var xt=0;xt0?function _iterate(Ee,ze,Be,Ue,We,$e){var Qe=[];if(ze===Be.length-1)for(var rt=0;rt{var{typed:ze}=Ee;return function algorithm14(Ee,Be,Ue,We){var $e,Qe=Ee._data,rt=Ee._size,it=Ee._datatype,at=Ue;"string"==typeof it&&($e=it,Be=ze.convert(Be,$e),at=ze.find(Ue,[$e,$e]));var ct=rt.length>0?function _iterate(Ee,ze,Be,Ue,We,$e,Qe){var rt=[];if(ze===Be.length-1)for(var it=0;it{var{typed:ze}=Ee;return function algorithm03(Ee,Be,Ue,We){var $e=Ee._data,Qe=Ee._size,rt=Ee._datatype,it=Be._values,at=Be._index,ct=Be._ptr,ft=Be._size,xt=Be._datatype;if(Qe.length!==ft.length)throw new DimensionError(Qe.length,ft.length);if(Qe[0]!==ft[0]||Qe[1]!==ft[1])throw new RangeError("Dimension mismatch. Matrix A ("+Qe+") must match Matrix B ("+ft+")");if(!it)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var kt,Lt=Qe[0],Ut=Qe[1],er=0,tr=Ue;"string"==typeof rt&&rt===xt&&(kt=rt,er=ze.convert(0,kt),tr=ze.find(Ue,[kt,kt]));for(var rr=[],ar=0;ar{var{typed:ze,equalScalar:Be}=Ee;return function algorithm05(Ee,Ue,We){var $e=Ee._values,Qe=Ee._index,rt=Ee._ptr,it=Ee._size,at=Ee._datatype,ct=Ue._values,ft=Ue._index,xt=Ue._ptr,kt=Ue._size,Lt=Ue._datatype;if(it.length!==kt.length)throw new DimensionError(it.length,kt.length);if(it[0]!==kt[0]||it[1]!==kt[1])throw new RangeError("Dimension mismatch. Matrix A ("+it+") must match Matrix B ("+kt+")");var Ut,er=it[0],tr=it[1],rr=Be,ar=0,Lr=We;"string"==typeof at&&at===Lt&&(Ut=at,rr=ze.find(Be,[Ut,Ut]),ar=ze.convert(0,Ut),Lr=ze.find(We,[Ut,Ut]));var Qr,on,sn,cn,un=$e&&ct?[]:void 0,hn=[],dn=[],vn=un?[]:void 0,yn=un?[]:void 0,_n=[],Mn=[];for(on=0;on{var{typed:ze,equalScalar:Be}=Ee;return function algorithm11(Ee,Ue,We,$e){var Qe=Ee._values,rt=Ee._index,it=Ee._ptr,at=Ee._size,ct=Ee._datatype;if(!Qe)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var ft,xt=at[0],kt=at[1],Lt=Be,Ut=0,er=We;"string"==typeof ct&&(ft=ct,Lt=ze.find(Be,[ft,ft]),Ut=ze.convert(0,ft),Ue=ze.convert(Ue,ft),er=ze.find(We,[ft,ft]));for(var tr=[],rr=[],ar=[],Lr=0;Lr{var{typed:ze,DenseMatrix:Be}=Ee;return function algorithm12(Ee,Ue,We,$e){var Qe=Ee._values,rt=Ee._index,it=Ee._ptr,at=Ee._size,ct=Ee._datatype;if(!Qe)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var ft,xt=at[0],kt=at[1],Lt=We;"string"==typeof ct&&(ft=ct,Ue=ze.convert(Ue,ft),Lt=ze.find(We,[ft,ft]));for(var Ut=[],er=[],tr=[],rr=0;rr{var{typed:ze,DenseMatrix:Be}=Ee;return function algorithm07(Ee,Ue,We){var $e=Ee._size,Qe=Ee._datatype,rt=Ue._size,it=Ue._datatype;if($e.length!==rt.length)throw new DimensionError($e.length,rt.length);if($e[0]!==rt[0]||$e[1]!==rt[1])throw new RangeError("Dimension mismatch. Matrix A ("+$e+") must match Matrix B ("+rt+")");var at,ct,ft,xt=$e[0],kt=$e[1],Lt=0,Ut=We;"string"==typeof Qe&&Qe===it&&(at=Qe,Lt=ze.convert(0,at),Ut=ze.find(We,[at,at]));var er=[];for(ct=0;ct{var{typed:ze,config:Be,matrix:Ue,BigNumber:We,DenseMatrix:$e,SparseMatrix:Qe}=Ee;return ze("identity",{"":function _(){return"Matrix"===Be.matrix?Ue([]):[]},string:function string(Ee){return Ue(Ee)},"number | BigNumber":function numberBigNumber(Ee){return _identity(Ee,Ee,"Matrix"===Be.matrix?"dense":void 0)},"number | BigNumber, string":function numberBigNumberString(Ee,ze){return _identity(Ee,Ee,ze)},"number | BigNumber, number | BigNumber":function numberBigNumberNumberBigNumber(Ee,ze){return _identity(Ee,ze,"Matrix"===Be.matrix?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function numberBigNumberNumberBigNumberString(Ee,ze,Be){return _identity(Ee,ze,Be)},Array:function Array(Ee){return _identityVector(Ee)},"Array, string":function ArrayString(Ee,ze){return _identityVector(Ee,ze)},Matrix:function Matrix(Ee){return _identityVector(Ee.valueOf(),Ee.storage())},"Matrix, string":function MatrixString(Ee,ze){return _identityVector(Ee.valueOf(),ze)}});function _identityVector(Ee,ze){switch(Ee.length){case 0:return ze?Ue(ze):[];case 1:return _identity(Ee[0],Ee[0],ze);case 2:return _identity(Ee[0],Ee[1],ze);default:throw new Error("Vector containing two values expected")}}function _identity(Ee,ze,Be){var Ue=isBigNumber(Ee)||isBigNumber(ze)?We:null;if(isBigNumber(Ee)&&(Ee=Ee.toNumber()),isBigNumber(ze)&&(ze=ze.toNumber()),!number_isInteger(Ee)||Ee<1)throw new Error("Parameters in function identity must be positive integers");if(!number_isInteger(ze)||ze<1)throw new Error("Parameters in function identity must be positive integers");var rt=Ue?new We(1):1,it=Ue?new Ue(0):0,at=[Ee,ze];if(Be){if("sparse"===Be)return Qe.diagonal(at,rt,0,it);if("dense"===Be)return $e.diagonal(at,rt,0,it);throw new TypeError('Unknown matrix type "'.concat(Be,'"'))}for(var ct=array_resize([],at,it),ft=Ee{var{typed:ze,config:Be,matrix:Ue}=Ee;return ze("size",{Matrix:function Matrix(Ee){return Ee.create(Ee.size())},Array:arraySize,string:function string(Ee){return"Array"===Be.matrix?[Ee.length]:Ue([Ee.length])},"number | Complex | BigNumber | Unit | boolean | null":function numberComplexBigNumberUnitBooleanNull(Ee){return"Array"===Be.matrix?[]:Ue?Ue([]):noMatrix()}})});factory_factory("hex",["typed","format"],Ee=>{var{typed:ze,format:Be}=Ee;return ze("hex",{"number | BigNumber":function numberBigNumber(Ee){return Be(Ee,{notation:"hex"})},"number | BigNumber, number":function numberBigNumberNumber(Ee,ze){return Be(Ee,{notation:"hex",wordSize:ze})}})}),Be("9523");var nc=factory_factory("compare",["typed","config","matrix","equalScalar","BigNumber","Fraction","DenseMatrix"],Ee=>{var{typed:ze,config:Be,equalScalar:Ue,matrix:We,BigNumber:$e,Fraction:Qe,DenseMatrix:rt}=Ee,it=$l({typed:ze}),at=Kl({typed:ze,equalScalar:Ue}),ct=Ql({typed:ze,DenseMatrix:rt}),ft=Zl({typed:ze}),xt=Xl({typed:ze});return ze("compare",{"boolean, boolean":function booleanBoolean(Ee,ze){return Ee===ze?0:Ee>ze?1:-1},"number, number":function numberNumber(Ee,ze){return nearlyEqual(Ee,ze,Be.epsilon)?0:Ee>ze?1:-1},"BigNumber, BigNumber":function BigNumberBigNumber(Ee,ze){return nearlyEqual_nearlyEqual(Ee,ze,Be.epsilon)?new $e(0):new $e(Ee.cmp(ze))},"Fraction, Fraction":function FractionFraction(Ee,ze){return new Qe(Ee.compare(ze))},"Complex, Complex":function ComplexComplex(){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function UnitUnit(Ee,ze){if(!Ee.equalBase(ze))throw new Error("Cannot compare units with different base");return this(Ee.value,ze.value)},"SparseMatrix, SparseMatrix":function SparseMatrixSparseMatrix(Ee,ze){return at(Ee,ze,this)},"SparseMatrix, DenseMatrix":function SparseMatrixDenseMatrix(Ee,ze){return it(ze,Ee,this,!0)},"DenseMatrix, SparseMatrix":function DenseMatrixSparseMatrix(Ee,ze){return it(Ee,ze,this,!1)},"DenseMatrix, DenseMatrix":function DenseMatrixDenseMatrix(Ee,ze){return ft(Ee,ze,this)},"Array, Array":function ArrayArray(Ee,ze){return this(We(Ee),We(ze)).valueOf()},"Array, Matrix":function ArrayMatrix(Ee,ze){return this(We(Ee),ze)},"Matrix, Array":function MatrixArray(Ee,ze){return this(Ee,We(ze))},"SparseMatrix, any":function SparseMatrixAny(Ee,ze){return ct(Ee,ze,this,!1)},"DenseMatrix, any":function DenseMatrixAny(Ee,ze){return xt(Ee,ze,this,!1)},"any, SparseMatrix":function anySparseMatrix(Ee,ze){return ct(ze,Ee,this,!0)},"any, DenseMatrix":function anyDenseMatrix(Ee,ze){return xt(ze,Ee,this,!0)},"Array, any":function ArrayAny(Ee,ze){return xt(We(Ee),ze,this,!1).valueOf()},"any, Array":function anyArray(Ee,ze){return xt(We(ze),Ee,this,!0).valueOf()}})}),ic=factory_factory("smaller",["typed","config","matrix","DenseMatrix"],Ee=>{var{typed:ze,config:Be,matrix:Ue,DenseMatrix:We}=Ee,$e=$l({typed:ze}),Qe=ec({typed:ze,DenseMatrix:We}),rt=Ql({typed:ze,DenseMatrix:We}),it=Zl({typed:ze}),at=Xl({typed:ze});return ze("smaller",{"boolean, boolean":function booleanBoolean(Ee,ze){return Ee{var{typed:ze,config:Be,matrix:Ue,DenseMatrix:We}=Ee,$e=$l({typed:ze}),Qe=ec({typed:ze,DenseMatrix:We}),rt=Ql({typed:ze,DenseMatrix:We}),it=Zl({typed:ze}),at=Xl({typed:ze});return ze("larger",{"boolean, boolean":function booleanBoolean(Ee,ze){return Ee>ze},"number, number":function numberNumber(Ee,ze){return Ee>ze&&!nearlyEqual(Ee,ze,Be.epsilon)},"BigNumber, BigNumber":function BigNumberBigNumber(Ee,ze){return Ee.gt(ze)&&!nearlyEqual_nearlyEqual(Ee,ze,Be.epsilon)},"Fraction, Fraction":function FractionFraction(Ee,ze){return 1===Ee.compare(ze)},"Complex, Complex":function ComplexComplex(){throw new TypeError("No ordering relation is defined for complex numbers")},"Unit, Unit":function UnitUnit(Ee,ze){if(!Ee.equalBase(ze))throw new Error("Cannot compare units with different base");return this(Ee.value,ze.value)},"SparseMatrix, SparseMatrix":function SparseMatrixSparseMatrix(Ee,ze){return Qe(Ee,ze,this)},"SparseMatrix, DenseMatrix":function SparseMatrixDenseMatrix(Ee,ze){return $e(ze,Ee,this,!0)},"DenseMatrix, SparseMatrix":function DenseMatrixSparseMatrix(Ee,ze){return $e(Ee,ze,this,!1)},"DenseMatrix, DenseMatrix":function DenseMatrixDenseMatrix(Ee,ze){return it(Ee,ze,this)},"Array, Array":function ArrayArray(Ee,ze){return this(Ue(Ee),Ue(ze)).valueOf()},"Array, Matrix":function ArrayMatrix(Ee,ze){return this(Ue(Ee),ze)},"Matrix, Array":function MatrixArray(Ee,ze){return this(Ee,Ue(ze))},"SparseMatrix, any":function SparseMatrixAny(Ee,ze){return rt(Ee,ze,this,!1)},"DenseMatrix, any":function DenseMatrixAny(Ee,ze){return at(Ee,ze,this,!1)},"any, SparseMatrix":function anySparseMatrix(Ee,ze){return rt(ze,Ee,this,!0)},"any, DenseMatrix":function anyDenseMatrix(Ee,ze){return at(ze,Ee,this,!0)},"Array, any":function ArrayAny(Ee,ze){return at(Ue(Ee),ze,this,!1).valueOf()},"any, Array":function anyArray(Ee,ze){return at(Ue(ze),Ee,this,!0).valueOf()}})}),oc=(factory_factory("unequal",["typed","equalScalar"],Ee=>{var{typed:ze,equalScalar:Be}=Ee;return ze("unequal",{"any, any":function anyAny(Ee,ze){return null===Ee?null!==ze:null===ze?null!==Ee:void 0===Ee?void 0!==ze:void 0===ze?void 0!==Ee:!Be(Ee,ze)}})}),factory_factory("FibonacciHeap",["smaller","larger"],Ee=>{var{smaller:ze,larger:Be}=Ee,Ue=1/Math.log((1+Math.sqrt(5))/2);function FibonacciHeap(){if(!(this instanceof FibonacciHeap))throw new SyntaxError("Constructor must be called with the new operator");this._minimum=null,this._size=0}function _cut(Ee,ze,Be){ze.left.right=ze.right,ze.right.left=ze.left,Be.degree--,Be.child===ze&&(Be.child=ze.right),0===Be.degree&&(Be.child=null),ze.left=Ee,ze.right=Ee.right,Ee.right=ze,ze.right.left=ze,ze.parent=null,ze.mark=!1}FibonacciHeap.prototype.type="FibonacciHeap",FibonacciHeap.prototype.isFibonacciHeap=!0,FibonacciHeap.prototype.insert=function(Ee,Be){var Ue={key:Ee,value:Be,degree:0};if(this._minimum){var We=this._minimum;Ue.left=We,Ue.right=We.right,We.right=Ue,Ue.right.left=Ue,ze(Ee,We.key)&&(this._minimum=Ue)}else Ue.left=Ue,Ue.right=Ue,this._minimum=Ue;return this._size++,Ue},FibonacciHeap.prototype.size=function(){return this._size},FibonacciHeap.prototype.clear=function(){this._minimum=null,this._size=0},FibonacciHeap.prototype.isEmpty=function(){return 0===this._size},FibonacciHeap.prototype.extractMinimum=function(){var Ee=this._minimum;if(null===Ee)return Ee;for(var $e=this._minimum,Qe=Ee.degree,rt=Ee.child;Qe>0;){var it=rt.right;rt.left.right=rt.right,rt.right.left=rt.left,rt.left=$e,rt.right=$e.right,$e.right=rt,rt.right.left=rt,rt.parent=null,rt=it,Qe--}return Ee.left.right=Ee.right,Ee.right.left=Ee.left,$e=Ee===Ee.right?null:function _findMinimumNode(Ee,$e){var Qe,rt=Math.floor(Math.log($e)*Ue)+1,it=new Array(rt),at=0,ct=Ee;if(ct)for(at++,ct=ct.right;ct!==Ee;)at++,ct=ct.right;for(;at>0;){for(var ft=ct.degree,xt=ct.right;Qe=it[ft];){if(Be(ct.key,Qe.key)){var kt=Qe;Qe=ct,ct=kt}We(Qe,ct),it[ft]=null,ft++}it[ft]=ct,ct=xt,at--}Ee=null;for(var Lt=0;Lt{var{typed:ze,matrix:Be,addScalar:Ue,equalScalar:We,DenseMatrix:$e,SparseMatrix:Qe}=Ee,rt=Gl({typed:ze}),it=Wl({typed:ze,equalScalar:We}),at=Yl({typed:ze,DenseMatrix:$e}),ct=Zl({typed:ze}),ft=Xl({typed:ze});return ze("add",extend({"DenseMatrix, DenseMatrix":function DenseMatrixDenseMatrix(Ee,ze){return ct(Ee,ze,Ue)},"DenseMatrix, SparseMatrix":function DenseMatrixSparseMatrix(Ee,ze){return rt(Ee,ze,Ue,!1)},"SparseMatrix, DenseMatrix":function SparseMatrixDenseMatrix(Ee,ze){return rt(ze,Ee,Ue,!0)},"SparseMatrix, SparseMatrix":function SparseMatrixSparseMatrix(Ee,ze){return it(Ee,ze,Ue)},"Array, Array":function ArrayArray(Ee,ze){return this(Be(Ee),Be(ze)).valueOf()},"Array, Matrix":function ArrayMatrix(Ee,ze){return this(Be(Ee),ze)},"Matrix, Array":function MatrixArray(Ee,ze){return this(Ee,Be(ze))},"DenseMatrix, any":function DenseMatrixAny(Ee,ze){return ft(Ee,ze,Ue,!1)},"SparseMatrix, any":function SparseMatrixAny(Ee,ze){return at(Ee,ze,Ue,!1)},"any, DenseMatrix":function anyDenseMatrix(Ee,ze){return ft(ze,Ee,Ue,!0)},"any, SparseMatrix":function anySparseMatrix(Ee,ze){return at(ze,Ee,Ue,!0)},"Array, any":function ArrayAny(Ee,ze){return ft(Be(Ee),ze,Ue,!1).valueOf()},"any, Array":function anyArray(Ee,ze){return ft(Be(ze),Ee,Ue,!0).valueOf()},"any, any":Ue,"any, any, ...any":function anyAnyAny(Ee,ze,Be){for(var Ue=this(Ee,ze),We=0;We{var{typed:ze,addScalar:Be,multiplyScalar:Ue,conj:We,size:$e}=Ee;return ze("dot",{"Array | DenseMatrix, Array | DenseMatrix":function _denseDot(Ee,$e){var Qe=_validateDim(Ee,$e),rt=isMatrix(Ee)?Ee._data:Ee,it=isMatrix(Ee)?Ee._datatype:void 0,at=isMatrix($e)?$e._data:$e,ct=isMatrix($e)?$e._datatype:void 0,ft=2===_size(Ee).length,xt=2===_size($e).length,kt=Be,Lt=Ue;if(it&&ct&&it===ct&&"string"==typeof it){var Ut=it;kt=ze.find(Be,[Ut,Ut]),Lt=ze.find(Ue,[Ut,Ut])}if(!ft&&!xt){for(var er=Lt(We(rt[0]),at[0]),tr=1;trLt?xt++:kt===Lt&&(it=at(it,ct($e[ft],rt[xt])),ft++,xt++)}return it}});function _validateDim(Ee,ze){var Be,Ue,We=_size(Ee),$e=_size(ze);if(1===We.length)Be=We[0];else{if(2!==We.length||1!==We[1])throw new RangeError("Expected a column vector, instead got a matrix of size ("+We.join(", ")+")");Be=We[0]}if(1===$e.length)Ue=$e[0];else{if(2!==$e.length||1!==$e[1])throw new RangeError("Expected a column vector, instead got a matrix of size ("+$e.join(", ")+")");Ue=$e[0]}if(Be!==Ue)throw new RangeError("Vectors must have equal length ("+Be+" != "+Ue+")");if(0===Be)throw new RangeError("Cannot calculate the dot product of empty vectors");return Be}function _size(Ee){return isMatrix(Ee)?Ee.size():$e(Ee)}}),cc=factory_factory("multiply",["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],Ee=>{var{typed:ze,matrix:Be,addScalar:Ue,multiplyScalar:We,equalScalar:$e,dot:Qe}=Ee,rt=Jl({typed:ze,equalScalar:$e}),it=Xl({typed:ze});function _validateMatrixDimensions(Ee,ze){switch(Ee.length){case 1:switch(ze.length){case 1:if(Ee[0]!==ze[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(Ee[0]!==ze[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+Ee[0]+") must match Matrix rows ("+ze[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+ze.length+" dimensions)")}break;case 2:switch(ze.length){case 1:if(Ee[1]!==ze[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+Ee[1]+") must match Vector length ("+ze[0]+")");break;case 2:if(Ee[1]!==ze[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+Ee[1]+") must match Matrix B rows ("+ze[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+ze.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+Ee.length+" dimensions)")}}function _multiplyVectorMatrix(Ee,Be){if("dense"!==Be.storage())throw new Error("Support for SparseMatrix not implemented");return function _multiplyVectorDenseMatrix(Ee,Be){var $e,Qe=Ee._data,rt=Ee._size,it=Ee._datatype,at=Be._data,ct=Be._size,ft=Be._datatype,xt=rt[0],kt=ct[1],Lt=Ue,Ut=We;it&&ft&&it===ft&&"string"==typeof it&&($e=it,Lt=ze.find(Ue,[$e,$e]),Ut=ze.find(We,[$e,$e]));for(var er=[],tr=0;trhn)for(var vn=0,yn=0;yn{var{typed:ze,isNumeric:Be,isNaN:Ue,compare:We}=Ee,$e=We,desc=(Ee,ze)=>-We(Ee,ze);return ze("partitionSelect",{"Array | Matrix, number":function ArrayMatrixNumber(Ee,ze){return _partitionSelect(Ee,ze,$e)},"Array | Matrix, number, string":function ArrayMatrixNumberString(Ee,ze,Be){if("asc"===Be)return _partitionSelect(Ee,ze,$e);if("desc"===Be)return _partitionSelect(Ee,ze,desc);throw new Error('Compare string must be "asc" or "desc"')},"Array | Matrix, number, function":_partitionSelect});function _partitionSelect(Ee,ze,Be){if(!number_isInteger(ze)||ze<0)throw new Error("k must be a non-negative integer");if(isMatrix(Ee)){if(Ee.size().length>1)throw new Error("Only one dimensional matrices supported");return quickSelect(Ee.valueOf(),ze,Be)}if(Array.isArray(Ee))return quickSelect(Ee,ze,Be)}function quickSelect(Ee,ze,We){if(ze>=Ee.length)throw new Error("k out of bounds");for(var $e=0;$e=0){var ft=Ee[at];Ee[at]=Ee[it],Ee[it]=ft,--at}else++it;We(Ee[it],ct)>0&&--it,ze<=it?rt=it:Qe=it+1}return Ee[ze]}}),fc=factory_factory("quantileSeq",["typed","add","multiply","partitionSelect","compare"],Ee=>{var{typed:ze,add:Be,multiply:Ue,partitionSelect:We,compare:$e}=Ee;function _quantileSeq(Ee,ze,rt){var it=array_flatten(Ee),at=it.length;if(0===at)throw new Error("Cannot calculate quantile of an empty sequence");if(isNumber(ze)){var ct=ze*(at-1),ft=ct%1;if(0===ft){var xt=rt?it[ct]:We(it,ct);return Qe(xt),xt}var kt,Lt,Ut=Math.floor(ct);if(rt)kt=it[Ut],Lt=it[Ut+1];else{Lt=We(it,Ut+1),kt=it[Ut];for(var er=0;er0&&(kt=it[er])}return Qe(kt),Qe(Lt),Be(Ue(kt,1-ft),Ue(Lt,ft))}var tr=ze.times(at-1);if(tr.isInteger()){tr=tr.toNumber();var rr=rt?it[tr]:We(it,tr);return Qe(rr),rr}var ar,Lr,Qr=tr.floor(),on=tr.minus(Qr),sn=Qr.toNumber();if(rt)ar=it[sn],Lr=it[sn+1];else{Lr=We(it,sn+1),ar=it[sn];for(var cn=0;cn0&&(ar=it[cn])}Qe(ar),Qe(Lr);var un=new on.constructor(1);return Be(Ue(ar,un.minus(on)),Ue(Lr,on))}var Qe=ze({"number | BigNumber | Unit":function numberBigNumberUnit(Ee){return Ee}});return function quantileSeq(Ee,ze,Be){var Ue,We,$e;if(arguments.length<2||arguments.length>3)throw new SyntaxError("Function quantileSeq requires two or three parameters");if(isCollection(Ee)){if("boolean"==typeof(Be=Be||!1)){if(We=Ee.valueOf(),isNumber(ze)){if(ze<0)throw new Error("N/prob must be non-negative");if(ze<=1)return _quantileSeq(We,ze,Be);if(ze>1){if(!number_isInteger(ze))throw new Error("N must be a positive integer");var Qe=ze+1;Ue=new Array(ze);for(var rt=0;rt4294967295)throw new Error("N must be less than or equal to 2^32-1, as that is the maximum length of an Array");var ct=new it(at+1);Ue=new Array(at);for(var ft=0;ft1)throw new Error("Probability must be between 0 and 1, inclusive")}else{if(!isBigNumber(kt))throw new TypeError("Unexpected type of argument in function quantileSeq");if($e=new kt.constructor(1),kt.isNegative()||kt.gt($e))throw new Error("Probability must be between 0 and 1, inclusive")}Ue[xt]=_quantileSeq(We,kt,Be)}return Ue}throw new TypeError("Unexpected type of argument in function quantileSeq")}throw new TypeError("Unexpected type of argument in function quantileSeq")}throw new TypeError("Unexpected type of argument in function quantileSeq")}});function gammaNumber(Ee){var ze;if(number_isInteger(Ee))return Ee<=0?isFinite(Ee)?1/0:NaN:Ee>171?1/0:product_product(1,Ee-1);if(Ee<.5)return Math.PI/(Math.sin(Math.PI*Ee)*gammaNumber(1-Ee));if(Ee>=171.35)return 1/0;if(Ee>85){var Be=Ee*Ee,Ue=Be*Ee,We=Ue*Ee,$e=We*Ee;return Math.sqrt(2*Math.PI/Ee)*Math.pow(Ee/Math.E,Ee)*(1+1/(12*Ee)+1/(288*Be)-139/(51840*Ue)-571/(2488320*We)+163879/(209018880*$e)+5246819/(75246796800*$e*Ee))}--Ee,ze=pc[0];for(var Qe=1;Qe{var{typed:ze,BigNumber:Be}=Ee;return ze("bignumber",{"":function _(){return new Be(0)},number:function number(Ee){return new Be(Ee+"")},string:function string(Ee){var ze=Ee.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(ze){var Ue=ze[2],We=Be(ze[1]),$e=new Be(2).pow(Number(Ue));if(We.gt($e.sub(1)))throw new SyntaxError('String "'.concat(Ee,'" is out of range'));var Qe=new Be(2).pow(Number(Ue)-1);return We.gte(Qe)?We.sub($e):We}return new Be(Ee)},BigNumber:function BigNumber(Ee){return Ee},Fraction:function Fraction(Ee){return new Be(Ee.n).div(Ee.d).times(Ee.s)},null:function _null(Ee){return new Be(0)},"Array | Matrix":function ArrayMatrix(Ee){return deepMap(Ee,this)}})}),gc=factory_factory("numeric",["number","?bignumber","?fraction"],Ee=>{var{number:ze,bignumber:Be,fraction:Ue}=Ee,We={string:!0,number:!0,BigNumber:!0,Fraction:!0},$e={number:Ee=>ze(Ee),BigNumber:Be?Ee=>Be(Ee):noBignumber,Fraction:Ue?Ee=>Ue(Ee):noFraction};return function numeric(Ee,ze){var Be=typeOf(Ee);if(!(Be in We))throw new TypeError("Cannot convert "+Ee+' of type "'+Be+'"; valid input types are '+Object.keys(We).join(", "));if(!(ze in $e))throw new TypeError("Cannot convert "+Ee+' to type "'+ze+'"; valid output types are '+Object.keys($e).join(", "));return ze===Be?Ee:$e[ze](Ee)}});function improveErrorMessage(Ee,ze,Be){var Ue;return-1!==String(Ee).indexOf("Unexpected type")?(Ue=arguments.length>2?" (type: "+typeOf(Be)+", value: "+JSON.stringify(Be)+")":" (type: "+Ee.data.actual+")",new TypeError("Cannot calculate "+ze+", unexpected type of argument"+Ue)):-1!==String(Ee).indexOf("complex numbers")?(Ue=arguments.length>2?" (type: "+typeOf(Be)+", value: "+JSON.stringify(Be)+")":"",new TypeError("Cannot calculate "+ze+", no ordering relation is defined for complex numbers"+Ue)):Ee}var mc=factory_factory("subtract",["typed","matrix","equalScalar","addScalar","unaryMinus","DenseMatrix"],Ee=>{var{typed:ze,matrix:Be,equalScalar:Ue,addScalar:We,unaryMinus:$e,DenseMatrix:Qe}=Ee,rt=Gl({typed:ze}),it=$l({typed:ze}),at=Kl({typed:ze,equalScalar:Ue}),ct=Yl({typed:ze,DenseMatrix:Qe}),ft=Zl({typed:ze}),xt=Xl({typed:ze});return ze("subtract",{"number, number":function numberNumber(Ee,ze){return Ee-ze},"Complex, Complex":function ComplexComplex(Ee,ze){return Ee.sub(ze)},"BigNumber, BigNumber":function BigNumberBigNumber(Ee,ze){return Ee.minus(ze)},"Fraction, Fraction":function FractionFraction(Ee,ze){return Ee.sub(ze)},"Unit, Unit":function UnitUnit(Ee,ze){if(null===Ee.value)throw new Error("Parameter x contains a unit with undefined value");if(null===ze.value)throw new Error("Parameter y contains a unit with undefined value");if(!Ee.equalBase(ze))throw new Error("Units do not match");var Be=Ee.clone();return Be.value=this(Be.value,ze.value),Be.fixPrefix=!1,Be},"SparseMatrix, SparseMatrix":function SparseMatrixSparseMatrix(Ee,ze){return checkEqualDimensions(Ee,ze),at(Ee,ze,this)},"SparseMatrix, DenseMatrix":function SparseMatrixDenseMatrix(Ee,ze){return checkEqualDimensions(Ee,ze),it(ze,Ee,this,!0)},"DenseMatrix, SparseMatrix":function DenseMatrixSparseMatrix(Ee,ze){return checkEqualDimensions(Ee,ze),rt(Ee,ze,this,!1)},"DenseMatrix, DenseMatrix":function DenseMatrixDenseMatrix(Ee,ze){return checkEqualDimensions(Ee,ze),ft(Ee,ze,this)},"Array, Array":function ArrayArray(Ee,ze){return this(Be(Ee),Be(ze)).valueOf()},"Array, Matrix":function ArrayMatrix(Ee,ze){return this(Be(Ee),ze)},"Matrix, Array":function MatrixArray(Ee,ze){return this(Ee,Be(ze))},"SparseMatrix, any":function SparseMatrixAny(Ee,ze){return ct(Ee,$e(ze),We)},"DenseMatrix, any":function DenseMatrixAny(Ee,ze){return xt(Ee,ze,this)},"any, SparseMatrix":function anySparseMatrix(Ee,ze){return ct(ze,Ee,this,!0)},"any, DenseMatrix":function anyDenseMatrix(Ee,ze){return xt(ze,Ee,this,!0)},"Array, any":function ArrayAny(Ee,ze){return xt(Be(Ee),ze,this,!1).valueOf()},"any, Array":function anyArray(Ee,ze){return xt(Be(ze),Ee,this,!0).valueOf()}})});function checkEqualDimensions(Ee,ze){var Be=Ee.size(),Ue=ze.size();if(Be.length!==Ue.length)throw new DimensionError(Be.length,Ue.length)}factory_factory("equal",["typed","equalScalar"],Ee=>{var{typed:ze,equalScalar:Be}=Ee;return ze("equal",{"any, any":function anyAny(Ee,ze){return null===Ee?null===ze:null===ze?null===Ee:void 0===Ee?void 0===ze:void 0===ze?void 0===Ee:Be(Ee,ze)}})});var vc=factory_factory("divideScalar",["typed","numeric"],Ee=>{var{typed:ze,numeric:Be}=Ee;return ze("divideScalar",{"number, number":function numberNumber(Ee,ze){return Ee/ze},"Complex, Complex":function ComplexComplex(Ee,ze){return Ee.div(ze)},"BigNumber, BigNumber":function BigNumberBigNumber(Ee,ze){return Ee.div(ze)},"Fraction, Fraction":function FractionFraction(Ee,ze){return Ee.div(ze)},"Unit, number | Fraction | BigNumber":function UnitNumberFractionBigNumber(Ee,ze){var Ue=Ee.clone(),We=Be(1,typeOf(ze));return Ue.value=this(null===Ue.value?Ue._normalize(We):Ue.value,ze),Ue},"number | Fraction | BigNumber, Unit":function numberFractionBigNumberUnit(Ee,ze){var Ue=ze.clone();Ue=Ue.pow(-1);var We=Be(1,typeOf(Ee));return Ue.value=this(Ee,null===ze.value?ze._normalize(We):ze.value),Ue},"Unit, Unit":function UnitUnit(Ee,ze){return Ee.divide(ze)}})});var yc=factory_factory("Spa",["addScalar","equalScalar","FibonacciHeap"],Ee=>{var{addScalar:ze,equalScalar:Be,FibonacciHeap:Ue}=Ee;function Spa(){if(!(this instanceof Spa))throw new SyntaxError("Constructor must be called with the new operator");this._values=[],this._heap=new Ue}return Spa.prototype.type="Spa",Spa.prototype.isSpa=!0,Spa.prototype.set=function(Ee,ze){if(this._values[Ee])this._values[Ee].value=ze;else{var Be=this._heap.insert(Ee,ze);this._values[Ee]=Be}},Spa.prototype.get=function(Ee){var ze=this._values[Ee];return ze?ze.value:0},Spa.prototype.accumulate=function(Ee,Be){var Ue=this._values[Ee];Ue?Ue.value=ze(Ue.value,Be):(Ue=this._heap.insert(Ee,Be),this._values[Ee]=Ue)},Spa.prototype.forEach=function(Ee,ze,Ue){var We=this._heap,$e=this._values,Qe=[],rt=We.extractMinimum();for(rt&&Qe.push(rt);rt&&rt.key<=ze;)rt.key>=Ee&&(Be(rt.value,0)||Ue(rt.key,rt.value,this)),(rt=We.extractMinimum())&&Qe.push(rt);for(var it=0;it{var{typed:ze,matrix:Be,abs:Ue,addScalar:We,divideScalar:$e,multiplyScalar:Qe,subtract:rt,larger:it,equalScalar:at,unaryMinus:ct,DenseMatrix:ft,SparseMatrix:xt,Spa:kt}=Ee;return ze("lup",{DenseMatrix:function DenseMatrix(Ee){return _denseLUP(Ee)},SparseMatrix:function SparseMatrix(Ee){return _sparseLUP(Ee)},Array:function Array(Ee){var ze=_denseLUP(Be(Ee));return{L:ze.L.valueOf(),U:ze.U.valueOf(),p:ze.p}}});function _denseLUP(Ee){var ze,Be,ct,xt=Ee._size[0],kt=Ee._size[1],Lt=Math.min(xt,kt),Ut=clone(Ee._data),er=[],tr=[xt,Lt],rr=[],ar=[Lt,kt],Lr=[];for(ze=0;ze0)for(ze=0;ze0&&Ee.forEach(0,Be-1,(function(ze,Be){xt._forEachRow(ze,rr,ar,Lr,(function(Ue,We){Ue>ze&&Ee.accumulate(Ue,ct(Qe(We,Be)))}))}));var vn=Be,yn=Ee.get(Be),_n=Ue(yn);Ee.forEach(Be+1,rt-1,(function(Ee,ze){var Be=Ue(ze);it(Be,_n)&&(vn=Ee,_n=Be,yn=ze)})),Be!==vn&&(xt._swapRows(Be,vn,Qr[1],rr,ar,Lr),xt._swapRows(Be,vn,un[1],on,sn,cn),Ee.swap(Be,vn),function swapIndeces(Ee,ze){var Be=dn[Ee],Ue=dn[ze];hn[Be]=ze,hn[Ue]=Ee,dn[Ee]=Ue,dn[ze]=Be}(Be,vn)),Ee.forEach(0,rt-1,(function(Ee,ze){Ee<=Be?(on.push(ze),sn.push(Ee)):(ze=$e(ze,yn),at(ze,0)||(rr.push(ze),ar.push(Ee)))}))};for(Be=0;Be{var{typed:ze,matrix:Be,subtract:Ue,multiply:We,unaryMinus:$e,lup:Qe}=Ee;return ze("det",{any:function any(Ee){return clone(Ee)},"Array | Matrix":function det(Ee){var ze;switch((ze=isMatrix(Ee)?Ee.size():Array.isArray(Ee)?(Ee=Be(Ee)).size():[]).length){case 0:return clone(Ee);case 1:if(1===ze[0])return clone(Ee.valueOf()[0]);throw new RangeError("Matrix must be square (size: "+string_format(ze)+")");case 2:var rt=ze[0],it=ze[1];if(rt===it)return function _det(Ee,ze,Be){if(1===ze)return clone(Ee[0][0]);if(2===ze)return Ue(We(Ee[0][0],Ee[1][1]),We(Ee[1][0],Ee[0][1]));for(var rt=Qe(Ee),it=rt.U[0][0],at=1;at=ze)break;for(var kt=ft,Lt=0;!xt[rt.p[kt]];)xt[rt.p[kt]]=!0,kt=rt.p[kt],Lt++;Lt%2==0&&ct++}return ct%2==0?it:$e(it)}(Ee.clone().valueOf(),rt);throw new RangeError("Matrix must be square (size: "+string_format(ze)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+string_format(ze)+")")}}})}),_c=factory_factory("inv",["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],Ee=>{var{typed:ze,matrix:Be,divideScalar:Ue,addScalar:We,multiply:$e,unaryMinus:Qe,det:rt,identity:it,abs:at}=Ee;return ze("inv",{"Array | Matrix":function ArrayMatrix(Ee){var ze=isMatrix(Ee)?Ee.size():arraySize(Ee);switch(ze.length){case 1:if(1===ze[0])return isMatrix(Ee)?Be([Ue(1,Ee.valueOf()[0])]):[Ue(1,Ee[0])];throw new RangeError("Matrix must be square (size: "+string_format(ze)+")");case 2:var We=ze[0],$e=ze[1];if(We===$e)return isMatrix(Ee)?Be(_inv(Ee.valueOf(),We,$e),Ee.storage()):_inv(Ee,We,$e);throw new RangeError("Matrix must be square (size: "+string_format(ze)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+string_format(ze)+")")}},any:function any(Ee){return Ue(1,Ee)}});function _inv(Ee,ze,Be){var ct,ft,xt,kt,Lt;if(1===ze){if(0===(kt=Ee[0][0]))throw Error("Cannot calculate inverse, determinant is zero");return[[Ue(1,kt)]]}if(2===ze){var Ut=rt(Ee);if(0===Ut)throw Error("Cannot calculate inverse, determinant is zero");return[[Ue(Ee[1][1],Ut),Ue(Qe(Ee[0][1]),Ut)],[Ue(Qe(Ee[1][0]),Ut),Ue(Ee[0][0],Ut)]]}var er=Ee.concat();for(ct=0;ctar&&(ar=at(er[ct][rr]),Lr=ct),ct++;if(0===ar)throw Error("Cannot calculate inverse, determinant is zero");(ct=Lr)!==rr&&(Lt=er[rr],er[rr]=er[ct],er[ct]=Lt,Lt=tr[rr],tr[rr]=tr[ct],tr[ct]=Lt);var Qr=er[rr],on=tr[rr];for(ct=0;ct{var{typed:ze,matrix:Be,multiply:Ue,equalScalar:We,divideScalar:$e,inv:Qe}=Ee,rt=Jl({typed:ze,equalScalar:We}),it=Xl({typed:ze});return ze("divide",extend({"Array | Matrix, Array | Matrix":function ArrayMatrixArrayMatrix(Ee,ze){return Ue(Ee,Qe(ze))},"DenseMatrix, any":function DenseMatrixAny(Ee,ze){return it(Ee,ze,$e,!1)},"SparseMatrix, any":function SparseMatrixAny(Ee,ze){return rt(Ee,ze,$e,!1)},"Array, any":function ArrayAny(Ee,ze){return it(Be(Ee),ze,$e,!1).valueOf()},"any, Array | Matrix":function anyArrayMatrix(Ee,ze){return Ue(Ee,Qe(ze))}},$e.signatures))}),Tc=factory_factory("mean",["typed","add","divide"],Ee=>{var{typed:ze,add:Be,divide:Ue}=Ee;return ze("mean",{"Array | Matrix":_mean,"Array | Matrix, number | BigNumber":function _nmeanDim(Ee,ze){try{var We=reduce(Ee,ze,Be),$e=Array.isArray(Ee)?arraySize(Ee):Ee.size();return Ue(We,$e[ze])}catch(Ee){throw improveErrorMessage(Ee,"mean")}},"...":function _(Ee){if(containsCollections(Ee))throw new TypeError("Scalar values expected in function mean");return _mean(Ee)}});function _mean(Ee){var ze,We=0;if(deepForEach(Ee,(function(Ee){try{ze=void 0===ze?Ee:Be(ze,Ee),We++}catch(ze){throw improveErrorMessage(ze,"mean",Ee)}})),0===We)throw new Error("Cannot calculate the mean of an empty array");return Ue(ze,We)}}),kc=factory_factory("variance",["typed","add","subtract","multiply","divide","apply","isNaN"],Ee=>{var{typed:ze,add:Be,subtract:Ue,multiply:We,divide:$e,apply:Qe,isNaN:rt}=Ee;return ze("variance",{"Array | Matrix":function ArrayMatrix(Ee){return _var(Ee,"unbiased")},"Array | Matrix, string":_var,"Array | Matrix, number | BigNumber":function ArrayMatrixNumberBigNumber(Ee,ze){return _varDim(Ee,ze,"unbiased")},"Array | Matrix, number | BigNumber, string":_varDim,"...":function _(Ee){return _var(Ee,"unbiased")}});function _var(Ee,ze){var Qe,it=0;if(0===Ee.length)throw new SyntaxError("Function variance requires one or more parameters (0 provided)");if(deepForEach(Ee,(function(Ee){try{Qe=void 0===Qe?Ee:Be(Qe,Ee),it++}catch(ze){throw improveErrorMessage(ze,"variance",Ee)}})),0===it)throw new Error("Cannot calculate variance of an empty array");var at=$e(Qe,it);if(Qe=void 0,deepForEach(Ee,(function(Ee){var ze=Ue(Ee,at);Qe=void 0===Qe?We(ze,ze):Be(Qe,We(ze,ze))})),rt(Qe))return Qe;switch(ze){case"uncorrected":return $e(Qe,it);case"biased":return $e(Qe,it+1);case"unbiased":var ct=isBigNumber(Qe)?Qe.mul(0):0;return 1===it?ct:$e(Qe,it-1);default:throw new Error('Unknown normalization "'+ze+'". Choose "unbiased" (default), "uncorrected", or "biased".')}}function _varDim(Ee,ze,Be){try{if(0===Ee.length)throw new SyntaxError("Function variance requires one or more parameters (0 provided)");return Qe(Ee,ze,Ee=>_var(Ee,Be))}catch(Ee){throw improveErrorMessage(Ee,"variance")}}});var Ac=factory_factory("median",["typed","add","divide","compare","partitionSelect"],Ee=>{var{typed:ze,add:Be,divide:Ue,compare:We,partitionSelect:$e}=Ee;function _median(Ee){try{var ze=(Ee=array_flatten(Ee.valueOf())).length;if(0===ze)throw new Error("Cannot calculate median of an empty array");if(ze%2==0){for(var Be=ze/2-1,Ue=$e(Ee,Be+1),it=Ee[Be],at=0;at0&&(it=Ee[at]);return rt(it,Ue)}var ct=$e(Ee,(ze-1)/2);return Qe(ct)}catch(Ee){throw improveErrorMessage(Ee,"median")}}var Qe=ze({"number | BigNumber | Complex | Unit":function numberBigNumberComplexUnit(Ee){return Ee}}),rt=ze({"number | BigNumber | Complex | Unit, number | BigNumber | Complex | Unit":function numberBigNumberComplexUnitNumberBigNumberComplexUnit(Ee,ze){return Ue(Be(Ee,ze),2)}});return ze("median",{"Array | Matrix":_median,"Array | Matrix, number | BigNumber":function ArrayMatrixNumberBigNumber(Ee,ze){throw new Error("median(A, dim) is not yet supported")},"...":function _(Ee){if(containsCollections(Ee))throw new TypeError("Scalar values expected in function median");return _median(Ee)}})}),Mc=factory_factory("std",["typed","sqrt","variance"],Ee=>{var{typed:ze,sqrt:Be,variance:Ue}=Ee;return ze("std",{"Array | Matrix":_std,"Array | Matrix, string":_std,"Array | Matrix, number | BigNumber":_std,"Array | Matrix, number | BigNumber, string":_std,"...":function _(Ee){return _std(Ee)}});function _std(Ee,ze){if(0===Ee.length)throw new SyntaxError("Function std requires one or more parameters (0 provided)");try{return Be(Ue.apply(null,arguments))}catch(Ee){throw Ee instanceof TypeError&&-1!==Ee.message.indexOf(" variance")?new TypeError(Ee.message.replace(" variance"," std")):Ee}}});var Sc=Hs({}),Cc=Xs({config:hs}),Ec=$s({}),Pc=cl({}),Oc=fl({Matrix:Ec}),Lc=Tl({BigNumber:Cc,Complex:Sc,DenseMatrix:Oc,Fraction:Pc}),Dc=kl({typed:Lc}),Ic=Al({typed:Lc}),zc=Sl({typed:Lc}),Rc=Cl({config:hs,typed:Lc}),Bc=El({typed:Lc}),Nc=Ol({isInteger:Dc,typed:Lc}),Fc=Ll({typed:Lc}),jc=Il({typed:Lc}),Vc=Bl({Fraction:Pc,typed:Lc}),Uc=Nl({typed:Lc}),Hc=Fl({typed:Lc}),qc=jl({Complex:Sc,config:hs,typed:Lc}),Gc=Vl({typed:Lc}),Wc=Ul({Matrix:Ec,equalScalar:Rc,typed:Lc}),Yc=Hl({DenseMatrix:Oc,Matrix:Ec,SparseMatrix:Wc,typed:Lc}),Zc=ql({typed:Lc}),Xc=tc({BigNumber:Cc,DenseMatrix:Oc,SparseMatrix:Wc,config:hs,matrix:Yc,typed:Lc}),$c=rc({matrix:Yc,config:hs,typed:Lc}),Kc=nc({BigNumber:Cc,DenseMatrix:Oc,Fraction:Pc,config:hs,equalScalar:Rc,matrix:Yc,typed:Lc}),Jc=ic({DenseMatrix:Oc,config:hs,matrix:Yc,typed:Lc}),Qc=ac({DenseMatrix:Oc,config:hs,matrix:Yc,typed:Lc}),tu=oc({larger:Qc,smaller:Jc}),iu=sc({DenseMatrix:Oc,SparseMatrix:Wc,addScalar:Hc,equalScalar:Rc,matrix:Yc,typed:Lc}),_u=lc({addScalar:Hc,conj:Gc,multiplyScalar:Fc,size:$c,typed:Lc}),Mu=cc({addScalar:Hc,dot:_u,equalScalar:Rc,matrix:Yc,multiplyScalar:Fc,typed:Lc}),Su=uc({compare:Kc,isNaN:zc,isNumeric:Ic,typed:Lc}),Nu=fc({add:iu,compare:Kc,multiply:Mu,partitionSelect:Su,typed:Lc}),Xu=dc({BigNumber:Cc,typed:Lc}),ef=gc({bignumber:Xu,fraction:Vc,number:Bc}),tf=mc({DenseMatrix:Oc,addScalar:Hc,equalScalar:Rc,matrix:Yc,typed:Lc,unaryMinus:Uc}),rf=vc({numeric:ef,typed:Lc}),nf=yc({FibonacciHeap:tu,addScalar:Hc,equalScalar:Rc}),af=xc({DenseMatrix:Oc,Spa:nf,SparseMatrix:Wc,abs:Zc,addScalar:Hc,divideScalar:rf,equalScalar:Rc,larger:Qc,matrix:Yc,multiplyScalar:Fc,subtract:tf,typed:Lc,unaryMinus:Uc}),of=bc({lup:af,matrix:Yc,multiply:Mu,subtract:tf,typed:Lc,unaryMinus:Uc}),sf=_c({abs:Zc,addScalar:Hc,det:of,divideScalar:rf,identity:Xc,matrix:Yc,multiply:Mu,typed:Lc,unaryMinus:Uc}),lf=wc({divideScalar:rf,equalScalar:Rc,inv:sf,matrix:Yc,multiply:Mu,typed:Lc}),cf=Tc({add:iu,divide:lf,typed:Lc}),uf=kc({add:iu,apply:Nc,divide:lf,isNaN:zc,multiply:Mu,subtract:tf,typed:Lc}),ff=Ac({add:iu,compare:Kc,divide:lf,partitionSelect:Su,typed:Lc}),hf=Mc({sqrt:qc,typed:Lc,variance:uf}),pf=Be("3fc3");function ParamsPanelvue_type_script_lang_ts_typeof(Ee){return(ParamsPanelvue_type_script_lang_ts_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(Ee){return typeof Ee}:function _typeof(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(Ee)}function ParamsPanelvue_type_script_lang_ts_classCallCheck(Ee,ze){if(!(Ee instanceof ze))throw new TypeError("Cannot call a class as a function")}function ParamsPanelvue_type_script_lang_ts_defineProperties(Ee,ze){for(var Be=0;Be0?jc(cf(Be),{precision:4}):null}}]),ParamsPanel}(it.c);Object(Ue.a)([Object(it.b)(pf.Trace)],df.prototype,"trace",void 0);var gf=df=Object(Ue.a)([Object(it.a)({components:{ESSChip:as}})],df),mf=(Be("6ca7"),Be("ec29"),Be("c37a")),vf=Be("fe09"),yf=["title"];function _objectWithoutProperties(Ee,ze){if(null==Ee)return{};var Be,Ue,We=function _objectWithoutPropertiesLoose(Ee,ze){if(null==Ee)return{};var Be,Ue,We={},$e=Object.keys(Ee);for(Ue=0;Ue<$e.length;Ue++)Be=$e[Ue],ze.indexOf(Be)>=0||(We[Be]=Ee[Be]);return We}(Ee,ze);if(Object.getOwnPropertySymbols){var $e=Object.getOwnPropertySymbols(Ee);for(Ue=0;Ue<$e.length;Ue++)Be=$e[Ue],ze.indexOf(Be)>=0||Object.prototype.propertyIsEnumerable.call(Ee,Be)&&(We[Be]=Ee[Be])}return We}function VCheckbox_ownKeys(Ee,ze){var Be=Object.keys(Ee);if(Object.getOwnPropertySymbols){var Ue=Object.getOwnPropertySymbols(Ee);ze&&(Ue=Ue.filter((function(ze){return Object.getOwnPropertyDescriptor(Ee,ze).enumerable}))),Be.push.apply(Be,Ue)}return Be}function VCheckbox_objectSpread(Ee){for(var ze=1;ze=Ee.length?{done:!0}:{done:!1,value:Ee[Ue++]}},e:function e(Ee){throw Ee},f:We}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var $e,Qe=!0,rt=!1;return{s:function s(){Be=Be.call(Ee)},n:function n(){var Ee=Be.next();return Qe=Ee.done,Ee},e:function e(Ee){rt=!0,$e=Ee},f:function f(){try{Qe||null==Be.return||Be.return()}finally{if(rt)throw $e}}}}function StatsTablevue_type_script_lang_ts_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0))break;at+=2*(rt[ct-1]+rt[ct])}}var Lt=0;rt[0]>0&&(Lt=Ue*at/rt[0]);var Ut=1;0!==Lt&&(Ut=Ue*We/Lt);var er=hf(Be);return{ESS:Ut,ACT:Lt,mean:Qe,variance:uf(Be),nSamples:We,std:er,stderr:er/qc(We),median:ff(Be),quantile:Nu(Be,[.025,.975]),HPD:this.HPDInterval(.95,Be)}}}]),StatsTable}(it.c),Sf=Mf=Object(Ue.a)([Object(it.a)({components:{VueJsonToCsv:Af.a}})],Mf);Be("91f4");function VData_ownKeys(Ee,ze){var Be=Object.keys(Ee);if(Object.getOwnPropertySymbols){var Ue=Object.getOwnPropertySymbols(Ee);ze&&(Ue=Ue.filter((function(ze){return Object.getOwnPropertyDescriptor(Ee,ze).enumerable}))),Be.push.apply(Be,Ue)}return Be}function VData_objectSpread(Ee){for(var ze=1;zeEe.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0&&(ze=Ee.sortDesc).push.apply(ze,VData_toConsumableArray(Object(sn.m)(it,!1)));at>0&&(Be=Ee.groupDesc).push.apply(Be,VData_toConsumableArray(Object(sn.m)(at,!1)));return{internalOptions:Ee}},computed:{itemsLength:function itemsLength(){return this.serverItemsLength>=0?this.serverItemsLength:this.filteredItems.length},pageCount:function pageCount(){return this.internalOptions.itemsPerPage<=0?1:Math.ceil(this.itemsLength/this.internalOptions.itemsPerPage)},pageStart:function pageStart(){return-1!==this.internalOptions.itemsPerPage&&this.items.length?(this.internalOptions.page-1)*this.internalOptions.itemsPerPage:0},pageStop:function pageStop(){return-1===this.internalOptions.itemsPerPage?this.itemsLength:this.items.length?Math.min(this.itemsLength,this.internalOptions.page*this.internalOptions.itemsPerPage):0},isGrouped:function isGrouped(){return!!this.internalOptions.groupBy.length},pagination:function pagination(){return{page:this.internalOptions.page,itemsPerPage:this.internalOptions.itemsPerPage,pageStart:this.pageStart,pageStop:this.pageStop,pageCount:this.pageCount,itemsLength:this.itemsLength}},filteredItems:function filteredItems(){var Ee=this.items.slice();return!this.disableFiltering&&this.serverItemsLength<=0&&(Ee=this.customFilter(Ee,this.search)),Ee},computedItems:function computedItems(){var Ee=this.filteredItems.slice();return(!this.disableSort||this.internalOptions.groupBy.length)&&this.serverItemsLength<=0&&(Ee=this.sortItems(Ee)),!this.disablePagination&&this.serverItemsLength<=0&&(Ee=this.paginateItems(Ee)),Ee},groupedItems:function groupedItems(){return this.isGrouped?this.groupItems(this.computedItems):null},scopedProps:function scopedProps(){return{sort:this.sort,sortArray:this.sortArray,group:this.group,items:this.computedItems,options:this.internalOptions,updateOptions:this.updateOptions,pagination:this.pagination,groupedItems:this.groupedItems,originalItemsLength:this.items.length}},computedOptions:function computedOptions(){return VData_objectSpread({},this.options)}},watch:{computedOptions:{handler:function handler(Ee,ze){Object(sn.j)(Ee,ze)||this.updateOptions(Ee)},deep:!0,immediate:!0},internalOptions:{handler:function handler(Ee,ze){Object(sn.j)(Ee,ze)||this.$emit("update:options",Ee)},deep:!0,immediate:!0},page:function page(Ee){this.updateOptions({page:Ee})},"internalOptions.page":function internalOptionsPage(Ee){this.$emit("update:page",Ee)},itemsPerPage:function itemsPerPage(Ee){this.updateOptions({itemsPerPage:Ee})},"internalOptions.itemsPerPage":function internalOptionsItemsPerPage(Ee){this.$emit("update:items-per-page",Ee)},sortBy:function sortBy(Ee){this.updateOptions({sortBy:Object(sn.G)(Ee)})},"internalOptions.sortBy":function internalOptionsSortBy(Ee,ze){!Object(sn.j)(Ee,ze)&&this.$emit("update:sort-by",Array.isArray(this.sortBy)?Ee:Ee[0])},sortDesc:function sortDesc(Ee){this.updateOptions({sortDesc:Object(sn.G)(Ee)})},"internalOptions.sortDesc":function internalOptionsSortDesc(Ee,ze){!Object(sn.j)(Ee,ze)&&this.$emit("update:sort-desc",Array.isArray(this.sortDesc)?Ee:Ee[0])},groupBy:function groupBy(Ee){this.updateOptions({groupBy:Object(sn.G)(Ee)})},"internalOptions.groupBy":function internalOptionsGroupBy(Ee,ze){!Object(sn.j)(Ee,ze)&&this.$emit("update:group-by",Array.isArray(this.groupBy)?Ee:Ee[0])},groupDesc:function groupDesc(Ee){this.updateOptions({groupDesc:Object(sn.G)(Ee)})},"internalOptions.groupDesc":function internalOptionsGroupDesc(Ee,ze){!Object(sn.j)(Ee,ze)&&this.$emit("update:group-desc",Array.isArray(this.groupDesc)?Ee:Ee[0])},multiSort:function multiSort(Ee){this.updateOptions({multiSort:Ee})},"internalOptions.multiSort":function internalOptionsMultiSort(Ee){this.$emit("update:multi-sort",Ee)},mustSort:function mustSort(Ee){this.updateOptions({mustSort:Ee})},"internalOptions.mustSort":function internalOptionsMustSort(Ee){this.$emit("update:must-sort",Ee)},pageCount:{handler:function handler(Ee){this.$emit("page-count",Ee)},immediate:!0},computedItems:{handler:function handler(Ee){this.$emit("current-items",Ee)},immediate:!0},pagination:{handler:function handler(Ee,ze){Object(sn.j)(Ee,ze)||this.$emit("pagination",this.pagination)},immediate:!0}},methods:{toggle:function toggle(Ee,ze,Be,Ue,We,$e){var Qe=ze.slice(),rt=Be.slice(),it=Qe.findIndex((function(ze){return ze===Ee}));return it<0?($e||(Qe=[],rt=[]),Qe.push(Ee),rt.push(!1)):it>=0&&!rt[it]?rt[it]=!0:We?rt[it]=!1:(Qe.splice(it,1),rt.splice(it,1)),Object(sn.j)(Qe,ze)&&Object(sn.j)(rt,Be)||(Ue=1),{by:Qe,desc:rt,page:Ue}},group:function group(Ee){var ze=this.toggle(Ee,this.internalOptions.groupBy,this.internalOptions.groupDesc,this.internalOptions.page,!0,!1),Be=ze.by,Ue=ze.desc,We=ze.page;this.updateOptions({groupBy:Be,groupDesc:Ue,page:We})},sort:function sort(Ee){if(Array.isArray(Ee))return this.sortArray(Ee);var ze=this.toggle(Ee,this.internalOptions.sortBy,this.internalOptions.sortDesc,this.internalOptions.page,this.internalOptions.mustSort,this.internalOptions.multiSort),Be=ze.by,Ue=ze.desc,We=ze.page;this.updateOptions({sortBy:Be,sortDesc:Ue,page:We})},sortArray:function sortArray(Ee){var ze=this,Be=Ee.map((function(Ee){var Be=ze.internalOptions.sortBy.findIndex((function(ze){return ze===Ee}));return Be>-1&&ze.internalOptions.sortDesc[Be]}));this.updateOptions({sortBy:Ee,sortDesc:Be})},updateOptions:function updateOptions(Ee){this.internalOptions=VData_objectSpread(VData_objectSpread(VData_objectSpread({},this.internalOptions),Ee),{},{page:this.serverItemsLength<0?Math.max(1,Math.min(Ee.page||this.internalOptions.page,this.pageCount)):Ee.page||this.internalOptions.page})},sortItems:function sortItems(Ee){var ze=[],Be=[];return this.disableSort||(ze=this.internalOptions.sortBy,Be=this.internalOptions.sortDesc),this.internalOptions.groupBy.length&&(ze=[].concat(VData_toConsumableArray(this.internalOptions.groupBy),VData_toConsumableArray(ze)),Be=[].concat(VData_toConsumableArray(this.internalOptions.groupDesc),VData_toConsumableArray(Be))),this.customSort(Ee,ze,Be,this.locale)},groupItems:function groupItems(Ee){return this.customGroup(Ee,this.internalOptions.groupBy,this.internalOptions.groupDesc)},paginateItems:function paginateItems(Ee){return-1===this.serverItemsLength&&Ee.length<=this.pageStart&&(this.internalOptions.page=Math.max(1,Math.ceil(Ee.length/this.internalOptions.itemsPerPage))||1),Ee.slice(this.pageStart,this.pageStop)}},render:function render(){return this.$scopedSlots.default&&this.$scopedSlots.default(this.scopedProps)}}),Ef=(Be("495d"),Be("4ff9"),Be("68dd"),$o),Pf=(Be("ee6f"),Be("a236")),Of=Be("dc22");function VMenu_toConsumableArray(Ee){return function VMenu_arrayWithoutHoles(Ee){if(Array.isArray(Ee))return VMenu_arrayLikeToArray(Ee)}(Ee)||function VMenu_iterableToArray(Ee){if("undefined"!=typeof Symbol&&null!=Ee[Symbol.iterator]||null!=Ee["@@iterator"])return Array.from(Ee)}(Ee)||function VMenu_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return VMenu_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return VMenu_arrayLikeToArray(Ee,ze)}(Ee)||function VMenu_nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function VMenu_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be-1})))},styles:function styles(){return{maxHeight:this.calculatedMaxHeight,minWidth:this.calculatedMinWidth,maxWidth:this.calculatedMaxWidth,top:this.calculatedTop,left:this.calculatedLeft,transformOrigin:this.origin,zIndex:this.zIndex||this.activeZIndex}}},watch:{isActive:function isActive(Ee){Ee||(this.listIndex=-1)},isContentActive:function isContentActive(Ee){this.hasJustFocused=Ee},listIndex:function listIndex(Ee,ze){if(Ee in this.tiles){var Be=this.tiles[Ee];Be.classList.add("v-list-item--highlighted"),this.$refs.content.scrollTop=Be.offsetTop-Be.clientHeight}ze in this.tiles&&this.tiles[ze].classList.remove("v-list-item--highlighted")}},created:function created(){this.$attrs.hasOwnProperty("full-width")&&Object(cn.e)("full-width",this)},mounted:function mounted(){this.isActive&&this.callActivate()},methods:{activate:function activate(){var Ee=this;this.updateDimensions(),requestAnimationFrame((function(){Ee.startTransition().then((function(){Ee.$refs.content&&(Ee.calculatedTopAuto=Ee.calcTopAuto(),Ee.auto&&(Ee.$refs.content.scrollTop=Ee.calcScrollPosition()))}))}))},calcScrollPosition:function calcScrollPosition(){var Ee=this.$refs.content,ze=Ee.querySelector(".v-list-item--active"),Be=Ee.scrollHeight-Ee.offsetHeight;return ze?Math.min(Be,Math.max(0,ze.offsetTop-Ee.offsetHeight/2+ze.offsetHeight/2)):Ee.scrollTop},calcLeftAuto:function calcLeftAuto(){return parseInt(this.dimensions.activator.left-2*this.defaultOffset)},calcTopAuto:function calcTopAuto(){var Ee=this.$refs.content,ze=Ee.querySelector(".v-list-item--active");if(ze||(this.selectedIndex=null),this.offsetY||!ze)return this.computedTop;this.selectedIndex=Array.from(this.tiles).indexOf(ze);var Be=ze.offsetTop-this.calcScrollPosition(),Ue=Ee.querySelector(".v-list-item").offsetTop;return this.computedTop-Be-Ue-1},changeListIndex:function changeListIndex(Ee){if(this.getTiles(),this.isActive&&this.hasClickableTiles)if(Ee.keyCode!==sn.x.tab){if(Ee.keyCode===sn.x.down)this.nextTile();else if(Ee.keyCode===sn.x.up)this.prevTile();else if(Ee.keyCode===sn.x.end)this.lastTile();else if(Ee.keyCode===sn.x.home)this.firstTile();else{if(Ee.keyCode!==sn.x.enter||-1===this.listIndex)return;this.tiles[this.listIndex].click()}Ee.preventDefault()}else this.isActive=!1},closeConditional:function closeConditional(Ee){var ze=Ee.target;return this.isActive&&!this._isDestroyed&&this.closeOnClick&&!this.$refs.content.contains(ze)},genActivatorAttributes:function genActivatorAttributes(){var Ee=un.options.methods.genActivatorAttributes.call(this);return this.activeTile&&this.activeTile.id?VMenu_objectSpread(VMenu_objectSpread({},Ee),{},{"aria-activedescendant":this.activeTile.id}):Ee},genActivatorListeners:function genActivatorListeners(){var Ee=ts.options.methods.genActivatorListeners.call(this);return this.disableKeys||(Ee.keydown=this.onKeyDown),Ee},genTransition:function genTransition(){var Ee=this.genContent();return this.transition?this.$createElement("transition",{props:{name:this.transition}},[Ee]):Ee},genDirectives:function genDirectives(){var Ee=this,ze=[{name:"show",value:this.isContentActive}];return!this.openOnHover&&this.closeOnClick&&ze.push({name:"click-outside",value:{handler:function handler(){Ee.isActive=!1},closeConditional:this.closeConditional,include:function include(){return[Ee.$el].concat(VMenu_toConsumableArray(Ee.getOpenDependentElements()))}}}),ze},genContent:function genContent(){var Ee=this,ze={attrs:VMenu_objectSpread(VMenu_objectSpread({},this.getScopeIdAttrs()),{},{role:"role"in this.$attrs?this.$attrs.role:"menu"}),staticClass:"v-menu__content",class:VMenu_objectSpread(VMenu_objectSpread(VMenu_objectSpread({},this.rootThemeClasses),this.roundedClasses),{},VMenu_defineProperty({"v-menu__content--auto":this.auto,"v-menu__content--fixed":this.activatorFixed,menuable__content__active:this.isActive},this.contentClass.trim(),!0)),style:this.styles,directives:this.genDirectives(),ref:"content",on:{click:function click(ze){ze.target.getAttribute("disabled")||Ee.closeOnContentClick&&(Ee.isActive=!1)},keydown:this.onKeyDown}};return this.$listeners.scroll&&(ze.on=ze.on||{},ze.on.scroll=this.$listeners.scroll),!this.disabled&&this.openOnHover&&(ze.on=ze.on||{},ze.on.mouseenter=this.mouseEnterHandler),this.openOnHover&&(ze.on=ze.on||{},ze.on.mouseleave=this.mouseLeaveHandler),this.$createElement("div",ze,this.getContentSlot())},getTiles:function getTiles(){this.$refs.content&&(this.tiles=Array.from(this.$refs.content.querySelectorAll(".v-list-item")))},mouseEnterHandler:function mouseEnterHandler(){var Ee=this;this.runDelay("open",(function(){Ee.hasJustFocused||(Ee.hasJustFocused=!0)}))},mouseLeaveHandler:function mouseLeaveHandler(Ee){var ze=this;this.runDelay("close",(function(){ze.$refs.content.contains(Ee.relatedTarget)||requestAnimationFrame((function(){ze.isActive=!1,ze.callDeactivate()}))}))},nextTile:function nextTile(){var Ee=this.tiles[this.listIndex+1];if(!Ee){if(!this.tiles.length)return;return this.listIndex=-1,void this.nextTile()}this.listIndex++,-1===Ee.tabIndex&&this.nextTile()},prevTile:function prevTile(){var Ee=this.tiles[this.listIndex-1];if(!Ee){if(!this.tiles.length)return;return this.listIndex=this.tiles.length,void this.prevTile()}this.listIndex--,-1===Ee.tabIndex&&this.prevTile()},lastTile:function lastTile(){var Ee=this.tiles[this.tiles.length-1];Ee&&(this.listIndex=this.tiles.length-1,-1===Ee.tabIndex&&this.prevTile())},firstTile:function firstTile(){var Ee=this.tiles[0];Ee&&(this.listIndex=0,-1===Ee.tabIndex&&this.nextTile())},onKeyDown:function onKeyDown(Ee){var ze=this;if(Ee.keyCode===sn.x.esc){setTimeout((function(){ze.isActive=!1}));var Be=this.getActivator();this.$nextTick((function(){return Be&&Be.focus()}))}else!this.isActive&&[sn.x.up,sn.x.down].includes(Ee.keyCode)&&(this.isActive=!0);this.$nextTick((function(){return ze.changeListIndex(Ee)}))},onResize:function onResize(){this.isActive&&(this.$refs.content.offsetWidth,this.updateDimensions(),clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout(this.updateDimensions,100))}},render:function render(Ee){var ze=this;return Ee("div",{staticClass:"v-menu",class:{"v-menu--attached":""===this.attach||!0===this.attach||"attach"===this.attach},directives:[{arg:"500",name:"resize",value:this.onResize}]},[!this.activator&&this.genActivator(),this.showLazyContent((function(){return[ze.$createElement(rr,{props:{root:!0,light:ze.light,dark:ze.dark}},[ze.genTransition()])]}))])}}),Df=(Be("cf36"),Be("5607")),If=Be("d9f7");function VSimpleCheckbox_ownKeys(Ee,ze){var Be=Object.keys(Ee);if(Object.getOwnPropertySymbols){var Ue=Object.getOwnPropertySymbols(Ee);ze&&(Ue=Ue.filter((function(ze){return Object.getOwnPropertyDescriptor(Ee,ze).enumerable}))),Be.push.apply(Be,Ue)}return Be}function VSimpleCheckbox_objectSpread(Ee){for(var ze=1;ze'.concat(Object(sn.l)(Ee),"")},getMaskedCharacters:function getMaskedCharacters(Ee){var ze=(this.searchInput||"").toString().toLocaleLowerCase(),Be=Ee.toLocaleLowerCase().indexOf(ze);return Be<0?{start:Ee,middle:"",end:""}:{start:Ee.slice(0,Be),middle:Ee.slice(Be,Be+ze.length),end:Ee.slice(Be+ze.length)}},genTile:function genTile(Ee){var ze=this,Be=Ee.item,Ue=Ee.index,We=Ee.disabled,$e=void 0===We?null:We,Qe=Ee.value,rt=void 0!==Qe&&Qe;rt||(rt=this.hasItem(Be)),Be===Object(Be)&&($e=null!==$e?$e:this.getDisabled(Be));var it={attrs:{"aria-selected":String(rt),id:"list-item-".concat(this._uid,"-").concat(Ue),role:"option"},on:{mousedown:function mousedown(Ee){Ee.preventDefault()},click:function click(){return $e||ze.$emit("select",Be)}},props:{activeClass:this.tileActiveClass,disabled:$e,ripple:!0,inputValue:rt}};if(!this.$scopedSlots.item)return this.$createElement(Hn.a,it,[this.action&&!this.hideSelected&&this.items.length>0?this.genAction(Be,rt):null,this.genTileContent(Be,Ue)]);var at=this.$scopedSlots.item({parent:this,item:Be,attrs:VSelectList_objectSpread(VSelectList_objectSpread({},it.attrs),it.props),on:it.on});return this.needsTile(at)?this.$createElement(Hn.a,it,at):at},genTileContent:function genTileContent(Ee){var ze=this.genFilteredText(this.getText(Ee));return this.$createElement(ei.a,[this.$createElement(ei.c,{domProps:{innerHTML:ze}})])},hasItem:function hasItem(Ee){return this.parsedItems.indexOf(this.getValue(Ee))>-1},needsTile:function needsTile(Ee){return 1!==Ee.length||null==Ee[0].componentOptions||"v-list-item"!==Ee[0].componentOptions.Ctor.options.name},getDisabled:function getDisabled(Ee){return Boolean(Object(sn.r)(Ee,this.itemDisabled,!1))},getText:function getText(Ee){return String(Object(sn.r)(Ee,this.itemText,Ee))},getValue:function getValue(Ee){return Object(sn.r)(Ee,this.itemValue,this.getText(Ee))}},render:function render(){for(var Ee=[],ze=this.items.length,Be=0;Be=Ee.length?{done:!0}:{done:!1,value:Ee[Ue++]}},e:function e(Ee){throw Ee},f:We}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var $e,Qe=!0,rt=!1;return{s:function s(){Be=Be.call(Ee)},n:function n(){var Ee=Be.next();return Qe=Ee.done,Ee},e:function e(Ee){rt=!0,$e=Ee},f:function f(){try{Qe||null==Be.return||Be.return()}finally{if(rt)throw $e}}}}function VSelect_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0},listData:function listData(){var Ee=this.$vnode&&this.$vnode.context.$options._scopeId;return{attrs:VSelect_objectSpread(VSelect_objectSpread({},Ee?VSelect_defineProperty({},Ee,!0):{}),{},{id:this.computedOwns}),props:{action:this.multiple,color:this.itemColor,dense:this.dense,hideSelected:this.hideSelected,items:this.virtualizedItems,itemDisabled:this.itemDisabled,itemText:this.itemText,itemValue:this.itemValue,noDataText:this.$vuetify.lang.t(this.noDataText),selectedItems:this.selectedItems},on:{select:this.selectItem},scopedSlots:{item:this.$scopedSlots.item}}},staticList:function staticList(){return(this.$slots["no-data"]||this.$slots["prepend-item"]||this.$slots["append-item"])&&Object(cn.b)("assert: staticList should not be called if slots are used"),this.$createElement(Nf,this.listData)},virtualizedItems:function virtualizedItems(){return this.$_menuProps.auto?this.computedItems:this.computedItems.slice(0,this.lastItem)},menuCanShow:function menuCanShow(){return!0},$_menuProps:function $_menuProps(){var Ee="string"==typeof this.menuProps?this.menuProps.split(","):this.menuProps;return Array.isArray(Ee)&&(Ee=Ee.reduce((function(Ee,ze){return Ee[ze.trim()]=!0,Ee}),{})),VSelect_objectSpread(VSelect_objectSpread({},Vf),{},{eager:this.eager,value:this.menuCanShow&&this.isMenuActive,nudgeBottom:Ee.offsetY?1:0},Ee)}},watch:{internalValue:function internalValue(Ee){this.initialValue=Ee,this.setSelectedItems()},isMenuActive:function isMenuActive(Ee){var ze=this;window.setTimeout((function(){return ze.onMenuActiveChange(Ee)}))},items:{immediate:!0,handler:function handler(Ee){var ze=this;this.cacheItems&&this.$nextTick((function(){ze.cachedItems=ze.filterDuplicates(ze.cachedItems.concat(Ee))})),this.setSelectedItems()}}},methods:{blur:function blur(Ee){ri.a.options.methods.blur.call(this,Ee),this.isMenuActive=!1,this.isFocused=!1,this.selectedIndex=-1,this.setMenuIndex(-1)},activateMenu:function activateMenu(){this.isInteractive&&!this.isMenuActive&&(this.isMenuActive=!0)},clearableCallback:function clearableCallback(){var Ee=this;this.setValue(this.multiple?[]:null),this.setMenuIndex(-1),this.$nextTick((function(){return Ee.$refs.input&&Ee.$refs.input.focus()})),this.openOnClear&&(this.isMenuActive=!0)},closeConditional:function closeConditional(Ee){return!this.isMenuActive||!this._isDestroyed&&(!this.getContent()||!this.getContent().contains(Ee.target))&&this.$el&&!this.$el.contains(Ee.target)&&Ee.target!==this.$el},filterDuplicates:function filterDuplicates(Ee){for(var ze=new Map,Be=0;Be1e3&&(this.keyboardLookupPrefix=""),this.keyboardLookupPrefix+=Ee.key.toLowerCase(),this.keyboardLookupLastTime=Be;var Ue=this.allItems.findIndex((function(Ee){return(ze.getText(Ee)||"").toString().toLowerCase().startsWith(ze.keyboardLookupPrefix)})),We=this.allItems[Ue];-1!==Ue&&(this.lastItem=Math.max(this.lastItem,Ue+5),this.setValue(this.returnObject?We:this.getValue(We)),this.$nextTick((function(){return ze.$refs.menu.getTiles()})),setTimeout((function(){return ze.setMenuIndex(Ue)})))}},onKeyDown:function onKeyDown(Ee){var ze=this;if(!this.isReadonly||Ee.keyCode===sn.x.tab){var Be=Ee.keyCode,Ue=this.$refs.menu;if(this.$emit("keydown",Ee),Ue)return this.isMenuActive&&Be!==sn.x.tab&&this.$nextTick((function(){Ue.changeListIndex(Ee),ze.$emit("update:list-index",Ue.listIndex)})),[sn.x.enter,sn.x.space].includes(Be)&&this.activateMenu(),!this.isMenuActive&&[sn.x.up,sn.x.down,sn.x.home,sn.x.end].includes(Be)?this.onUpDown(Ee):Be===sn.x.esc?this.onEscDown(Ee):Be===sn.x.tab?this.onTabDown(Ee):Be===sn.x.space?this.onSpaceDown(Ee):void 0}},onMenuActiveChange:function onMenuActiveChange(Ee){if(!(this.multiple&&!Ee||this.getMenuIndex()>-1)){var ze=this.$refs.menu;if(ze&&this.isDirty){this.$refs.menu.getTiles();for(var Be=0;Bethis.computedItems.length)return;this.getContent().scrollHeight-(this.getContent().scrollTop+this.getContent().clientHeight)<200&&(this.lastItem+=20)}else requestAnimationFrame((function(){return Ee.getContent().scrollTop=0}))},onSpaceDown:function onSpaceDown(Ee){Ee.preventDefault()},onTabDown:function onTabDown(Ee){var ze=this.$refs.menu;if(ze){var Be=ze.activeTile;!this.multiple&&Be&&this.isMenuActive?(Ee.preventDefault(),Ee.stopPropagation(),Be.click()):this.blur(Ee)}},onUpDown:function onUpDown(Ee){var ze=this,Be=this.$refs.menu;if(Be){if(Ee.preventDefault(),this.multiple)return this.activateMenu();var Ue=Ee.keyCode;Be.isBooted=!0,window.requestAnimationFrame((function(){if(Be.getTiles(),!Be.hasClickableTiles)return ze.activateMenu();switch(Ue){case sn.x.up:Be.prevTile();break;case sn.x.down:Be.nextTile();break;case sn.x.home:Be.firstTile();break;case sn.x.end:Be.lastTile()}ze.selectItem(ze.allItems[ze.getMenuIndex()])}))}},selectItem:function selectItem(Ee){var ze=this;if(this.multiple){var Be=(this.internalValue||[]).slice(),Ue=this.findExistingIndex(Ee);-1!==Ue?Be.splice(Ue,1):Be.push(Ee),this.setValue(Be.map((function(Ee){return ze.returnObject?Ee:ze.getValue(Ee)}))),this.$nextTick((function(){ze.$refs.menu&&ze.$refs.menu.updateDimensions()}));var We=this.getMenuIndex();if(this.setMenuIndex(-1),this.hideSelected)return;this.$nextTick((function(){return ze.setMenuIndex(We)}))}else this.setValue(this.returnObject?Ee:this.getValue(Ee)),this.isMenuActive=!1},setMenuIndex:function setMenuIndex(Ee){this.$refs.menu&&(this.$refs.menu.listIndex=Ee)},setSelectedItems:function setSelectedItems(){var Ee,ze=this,Be=[],Ue=VSelect_createForOfIteratorHelper(this.multiple&&Array.isArray(this.internalValue)?this.internalValue:[this.internalValue]);try{var We=function _loop(){var Ue=Ee.value,We=ze.allItems.findIndex((function(Ee){return ze.valueComparator(ze.getValue(Ee),ze.getValue(Ue))}));We>-1&&Be.push(ze.allItems[We])};for(Ue.s();!(Ee=Ue.n()).done;)We()}catch(Ee){Ue.e(Ee)}finally{Ue.f()}this.selectedItems=Be},setValue:function setValue(Ee){this.valueComparator(Ee,this.internalValue)||(this.internalValue=Ee,this.$emit("change",Ee))},isAppendInner:function isAppendInner(Ee){var ze=this.$refs["append-inner"];return ze&&(ze===Ee||ze.contains(Ee))}}}),Hf=Be("afdd");function VDataFooter_typeof(Ee){return(VDataFooter_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(Ee){return typeof Ee}:function _typeof(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(Ee)}var qf=ar.default.extend({name:"v-data-footer",props:{options:{type:Object,required:!0},pagination:{type:Object,required:!0},itemsPerPageOptions:{type:Array,default:function _default(){return[5,10,15,-1]}},prevIcon:{type:String,default:"$prev"},nextIcon:{type:String,default:"$next"},firstIcon:{type:String,default:"$first"},lastIcon:{type:String,default:"$last"},itemsPerPageText:{type:String,default:"$vuetify.dataFooter.itemsPerPageText"},itemsPerPageAllText:{type:String,default:"$vuetify.dataFooter.itemsPerPageAll"},showFirstLastPage:Boolean,showCurrentPage:Boolean,disablePagination:Boolean,disableItemsPerPage:Boolean,pageText:{type:String,default:"$vuetify.dataFooter.pageText"}},computed:{disableNextPageIcon:function disableNextPageIcon(){return this.options.itemsPerPage<=0||this.options.page*this.options.itemsPerPage>=this.pagination.itemsLength||this.pagination.pageStop<0},computedDataItemsPerPageOptions:function computedDataItemsPerPageOptions(){var Ee=this;return this.itemsPerPageOptions.map((function(ze){return"object"===VDataFooter_typeof(ze)?ze:Ee.genDataItemsPerPageOption(ze)}))}},methods:{updateOptions:function updateOptions(Ee){this.$emit("update:options",Object.assign({},this.options,Ee))},onFirstPage:function onFirstPage(){this.updateOptions({page:1})},onPreviousPage:function onPreviousPage(){this.updateOptions({page:this.options.page-1})},onNextPage:function onNextPage(){this.updateOptions({page:this.options.page+1})},onLastPage:function onLastPage(){this.updateOptions({page:this.pagination.pageCount})},onChangeItemsPerPage:function onChangeItemsPerPage(Ee){this.updateOptions({itemsPerPage:Ee,page:1})},genDataItemsPerPageOption:function genDataItemsPerPageOption(Ee){return{text:-1===Ee?this.$vuetify.lang.t(this.itemsPerPageAllText):String(Ee),value:Ee}},genItemsPerPageSelect:function genItemsPerPageSelect(){var Ee=this.options.itemsPerPage,ze=this.computedDataItemsPerPageOptions;return ze.length<=1?null:(ze.find((function(ze){return ze.value===Ee}))||(Ee=ze[0]),this.$createElement("div",{staticClass:"v-data-footer__select"},[this.$vuetify.lang.t(this.itemsPerPageText),this.$createElement(Uf,{attrs:{"aria-label":this.$vuetify.lang.t(this.itemsPerPageText)},props:{disabled:this.disableItemsPerPage,items:ze,value:Ee,hideDetails:!0,auto:!0,minWidth:"75px"},on:{input:this.onChangeItemsPerPage}})]))},genPaginationInfo:function genPaginationInfo(){var Ee=["–"],ze=this.pagination.itemsLength,Be=this.pagination.pageStart,Ue=this.pagination.pageStop;return this.pagination.itemsLength&&this.pagination.itemsPerPage?(Be=this.pagination.pageStart+1,Ue=ze=this.pagination.pageCount||-1===this.options.itemsPerPage,this.$vuetify.lang.t("$vuetify.dataFooter.lastPage"),this.$vuetify.rtl?this.firstIcon:this.lastIcon))),[this.$createElement("div",{staticClass:"v-data-footer__icons-before"},Ee),this.showCurrentPage&&this.$createElement("span",[this.options.page.toString()]),this.$createElement("div",{staticClass:"v-data-footer__icons-after"},ze)]}},render:function render(){return this.$createElement("div",{staticClass:"v-data-footer"},[Object(sn.s)(this,"prepend"),this.genItemsPerPageSelect(),this.genPaginationInfo(),this.genIcons()])}}),Gf=Be("e4cd");function VDataIterator_slicedToArray(Ee,ze){return function VDataIterator_arrayWithHoles(Ee){if(Array.isArray(Ee))return Ee}(Ee)||function VDataIterator_iterableToArrayLimit(Ee,ze){var Be=null==Ee?null:"undefined"!=typeof Symbol&&Ee[Symbol.iterator]||Ee["@@iterator"];if(null==Be)return;var Ue,We,$e=[],Qe=!0,rt=!1;try{for(Be=Be.call(Ee);!(Qe=(Ue=Be.next()).done)&&($e.push(Ue.value),!ze||$e.length!==ze);Qe=!0);}catch(Ee){rt=!0,We=Ee}finally{try{Qe||null==Be.return||Be.return()}finally{if(rt)throw We}}return $e}(Ee,ze)||function VDataIterator_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return VDataIterator_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return VDataIterator_arrayLikeToArray(Ee,ze)}(Ee,ze)||function VDataIterator_nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function VDataIterator_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be1&&void 0!==arguments[1])||arguments[1],Ue=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(this.isSelectable(Ee)){var We=this.singleSelect?{}:Object.assign({},this.selection),$e=Object(sn.p)(Ee,this.itemKey);Be?We[$e]=Ee:delete We[$e];var Qe=this.selectableItems.findIndex((function(Ee){return Object(sn.p)(Ee,ze.itemKey)===$e}));if(-1===this.lastEntry)this.lastEntry=Qe;else if(this.shiftKeyDown&&!this.singleSelect&&Ue){var rt=Object(sn.p)(this.selectableItems[this.lastEntry],this.itemKey),it=Object.keys(this.selection).includes(String(rt));this.multipleSelect(it,Ue,We,Qe)}if(this.lastEntry=Qe,this.singleSelect&&Ue){var at=Object.keys(this.selection),ct=at.length&&Object(sn.p)(this.selection[at[0]],this.itemKey);ct&&ct!==$e&&this.$emit("item-selected",{item:this.selection[ct],value:!1})}this.selection=We,Ue&&this.$emit("item-selected",{item:Ee,value:Be})}},multipleSelect:function multipleSelect(){for(var Ee=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],ze=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],Be=arguments.length>2?arguments[2]:void 0,Ue=arguments.length>3?arguments[3]:void 0,We=Ue1&&void 0!==arguments[1])||arguments[1],Be=this.singleExpand?{}:Object.assign({},this.expansion),Ue=Object(sn.p)(Ee,this.itemKey);ze?Be[Ue]=!0:delete Be[Ue],this.expansion=Be,this.$emit("item-expanded",{item:Ee,value:ze})},createItemProps:function createItemProps(Ee,ze){var Be=this;return{item:Ee,index:ze,select:function select(ze){return Be.select(Ee,ze)},isSelected:this.isSelected(Ee),expand:function expand(ze){return Be.expand(Ee,ze)},isExpanded:this.isExpanded(Ee),isMobile:this.isMobile}},genEmptyWrapper:function genEmptyWrapper(Ee){return this.$createElement("div",Ee)},genEmpty:function genEmpty(Ee,ze){if(0===Ee&&this.loading){var Be=this.$slots.loading||this.$vuetify.lang.t(this.loadingText);return this.genEmptyWrapper(Be)}if(0===Ee){var Ue=this.$slots["no-data"]||this.$vuetify.lang.t(this.noDataText);return this.genEmptyWrapper(Ue)}if(0===ze){var We=this.$slots["no-results"]||this.$vuetify.lang.t(this.noResultsText);return this.genEmptyWrapper(We)}return null},genItems:function genItems(Ee){var ze=this,Be=this.genEmpty(Ee.originalItemsLength,Ee.pagination.itemsLength);return Be?[Be]:this.$scopedSlots.default?this.$scopedSlots.default(VDataIterator_objectSpread(VDataIterator_objectSpread({},Ee),{},{isSelected:this.isSelected,select:this.select,isExpanded:this.isExpanded,isMobile:this.isMobile,expand:this.expand})):this.$scopedSlots.item?Ee.items.map((function(Ee,Be){return ze.$scopedSlots.item(ze.createItemProps(Ee,Be))})):[]},genFooter:function genFooter(Ee){if(this.hideDefaultFooter)return null;var ze={props:VDataIterator_objectSpread(VDataIterator_objectSpread({},this.sanitizedFooterProps),{},{options:Ee.options,pagination:Ee.pagination}),on:{"update:options":function updateOptions(ze){return Ee.updateOptions(ze)}}},Be=Object(sn.q)("footer.",this.$scopedSlots);return this.$createElement(qf,VDataIterator_objectSpread({scopedSlots:Be},ze))},genDefaultScopedSlot:function genDefaultScopedSlot(Ee){var ze=VDataIterator_objectSpread(VDataIterator_objectSpread({},Ee),{},{someItems:this.someItems,everyItem:this.everyItem,toggleSelectAll:this.toggleSelectAll});return this.$createElement("div",{staticClass:"v-data-iterator"},[Object(sn.s)(this,"header",ze,!0),this.genItems(Ee),this.genFooter(Ee),Object(sn.s)(this,"footer",ze,!0)])}},render:function render(){var Ee=this;return this.$createElement(Cf,{props:this.$props,on:{"update:options":function updateOptions(ze,Be){return!Object(sn.j)(ze,Be)&&Ee.$emit("update:options",ze)},"update:page":function updatePage(ze){return Ee.$emit("update:page",ze)},"update:items-per-page":function updateItemsPerPage(ze){return Ee.$emit("update:items-per-page",ze)},"update:sort-by":function updateSortBy(ze){return Ee.$emit("update:sort-by",ze)},"update:sort-desc":function updateSortDesc(ze){return Ee.$emit("update:sort-desc",ze)},"update:group-by":function updateGroupBy(ze){return Ee.$emit("update:group-by",ze)},"update:group-desc":function updateGroupDesc(ze){return Ee.$emit("update:group-desc",ze)},pagination:function pagination(ze,Be){return!Object(sn.j)(ze,Be)&&Ee.$emit("pagination",ze)},"current-items":function currentItems(ze){Ee.internalCurrentItems=ze,Ee.$emit("current-items",ze)},"page-count":function pageCount(ze){return Ee.$emit("page-count",ze)}},scopedSlots:{default:this.genDefaultScopedSlot}})}});Be("f823");function header_ownKeys(Ee,ze){var Be=Object.keys(Ee);if(Object.getOwnPropertySymbols){var Ue=Object.getOwnPropertySymbols(Ee);ze&&(Ue=Ue.filter((function(ze){return Object.getOwnPropertyDescriptor(Ee,ze).enumerable}))),Be.push.apply(Be,Ue)}return Be}function header_defineProperty(Ee,ze,Be){return ze in Ee?Object.defineProperty(Ee,ze,{value:Be,enumerable:!0,configurable:!0,writable:!0}):Ee[ze]=Be,Ee}var Yf=Object(on.a)().extend({directives:{ripple:Df.a},props:{headers:{type:Array,default:function _default(){return[]}},options:{type:Object,default:function _default(){return{page:1,itemsPerPage:10,sortBy:[],sortDesc:[],groupBy:[],groupDesc:[],multiSort:!1,mustSort:!1}}},checkboxColor:String,sortIcon:{type:String,default:"$sort"},everyItem:Boolean,someItems:Boolean,showGroupBy:Boolean,singleSelect:Boolean,disableSort:Boolean},methods:{genSelectAll:function genSelectAll(){var Ee,ze=this,Be={props:{value:this.everyItem,indeterminate:!this.everyItem&&this.someItems,color:null!=(Ee=this.checkboxColor)?Ee:""},on:{input:function input(Ee){return ze.$emit("toggle-select-all",Ee)}}};return this.$scopedSlots["data-table-select"]?this.$scopedSlots["data-table-select"](Be):this.$createElement(zf,function header_objectSpread(Ee){for(var ze=1;zeEe.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be=0,$e=this.options.sortDesc[Ue];return Be.push(this.$createElement("div",{staticClass:"v-chip__close",class:{sortable:!0,active:We,asc:We&&!$e,desc:We&&$e}},[this.genSortIcon()])),this.$createElement(Ef,{staticClass:"sortable",on:{click:function click(Be){Be.stopPropagation(),ze.$emit("sort",Ee.item.value)}}},Be)},genSortSelect:function genSortSelect(Ee){var ze=this;return this.$createElement(Uf,{props:{label:this.$vuetify.lang.t(this.sortByText),items:Ee,hideDetails:!0,multiple:this.options.multiSort,value:this.options.multiSort?this.options.sortBy:this.options.sortBy[0],menuProps:{closeOnContentClick:!0}},on:{change:function change(Ee){return ze.$emit("sort",Ee)}},scopedSlots:{selection:function selection(Ee){return ze.genSortChip(Ee)}}})}},render:function render(Ee){var ze=[],Be=this.headers.find((function(Ee){return"data-table-select"===Ee.value}));Be&&!this.singleSelect&&ze.push(this.$createElement("div",{class:["v-data-table-header-mobile__select"].concat(VDataTableHeaderMobile_toConsumableArray(Object(sn.G)(Be.class))),attrs:{width:Be.width}},[this.genSelectAll()]));var Ue=this.headers.filter((function(Ee){return!1!==Ee.sortable&&"data-table-select"!==Ee.value})).map((function(Ee){return{text:Ee.text,value:Ee.value}}));!this.disableSort&&Ue.length&&ze.push(this.genSortSelect(Ue));var We=Ee("th",[Ee("div",{staticClass:"v-data-table-header-mobile__wrapper"},ze)]),$e=Ee("tr",[We]);return Ee("thead",{staticClass:"v-data-table-header v-data-table-header-mobile"},[$e])}});function VDataTableHeaderDesktop_toConsumableArray(Ee){return function VDataTableHeaderDesktop_arrayWithoutHoles(Ee){if(Array.isArray(Ee))return VDataTableHeaderDesktop_arrayLikeToArray(Ee)}(Ee)||function VDataTableHeaderDesktop_iterableToArray(Ee){if("undefined"!=typeof Symbol&&null!=Ee[Symbol.iterator]||null!=Ee["@@iterator"])return Array.from(Ee)}(Ee)||function VDataTableHeaderDesktop_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return VDataTableHeaderDesktop_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return VDataTableHeaderDesktop_arrayLikeToArray(Ee,ze)}(Ee)||function VDataTableHeaderDesktop_nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function VDataTableHeaderDesktop_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be=0,Qe=this.options.sortDesc[We];Be.class.push("sortable");var rt=this.getAria($e,Qe),it=rt.ariaLabel,at=rt.ariaSort;Be.attrs["aria-label"]+="".concat(Ee.text?": ":"").concat(it),Be.attrs["aria-sort"]=at,$e&&(Be.class.push("active"),Be.class.push(Qe?"desc":"asc")),"end"===Ee.align?Ue.unshift(this.genSortIcon()):Ue.push(this.genSortIcon()),this.options.multiSort&&$e&&Ue.push(this.$createElement("span",{class:"v-data-table-header__sort-badge"},[String(We+1)]))}return this.showGroupBy&&!1!==Ee.groupable&&Ue.push(this.genGroupByToggle(Ee)),this.$createElement("th",Be,Ue)}},render:function render(){var Ee=this;return this.$createElement("thead",{staticClass:"v-data-table-header"},[this.$createElement("tr",this.headers.map((function(ze){return Ee.genHeader(ze)})))])}});function VDataTableHeader_ownKeys(Ee,ze){var Be=Object.keys(Ee);if(Object.getOwnPropertySymbols){var Ue=Object.getOwnPropertySymbols(Ee);ze&&(Ue=Ue.filter((function(ze){return Object.getOwnPropertyDescriptor(Ee,ze).enumerable}))),Be.push.apply(Be,Ue)}return Be}function VDataTableHeader_objectSpread(Ee){for(var ze=1;ze-1&&Ee.on.input.splice(ze,1)}else delete Ee.on.input}(Ue);var $e=function rebuildFunctionalSlots(Ee,ze){var Be=[];for(var Ue in Ee)Ee.hasOwnProperty(Ue)&&Be.push(ze("template",{slot:Ue},Ee[Ue]));return Be}(We(),Ee);return Ue=Object(If.a)(Ue,{props:Be}),Be.mobile?Ee(Zf,Ue,$e):Ee(Xf,Ue,$e)}}),Kf=ar.default.extend({name:"row",functional:!0,props:{headers:Array,index:Number,item:Object,rtl:Boolean},render:function render(Ee,ze){var Be=ze.props,Ue=ze.slots,We=ze.data,$e=Ue(),Qe=Be.headers.map((function(ze){var Ue=[],Qe=Object(sn.p)(Be.item,ze.value),rt=ze.value,it=We.scopedSlots&&We.scopedSlots[rt],at=$e[rt];it?Ue.push(it({item:Be.item,isMobile:!1,header:ze,index:Be.index,value:Qe})):at?Ue.push(at):Ue.push(null==Qe?Qe:String(Qe));var ct="text-".concat(ze.align||"start");return Ee("td",{class:[ct,ze.cellClass,{"v-data-table__divider":ze.divider}]},Ue)}));return Ee("tr",We,Qe)}});function RowGroup_toConsumableArray(Ee){return function RowGroup_arrayWithoutHoles(Ee){if(Array.isArray(Ee))return RowGroup_arrayLikeToArray(Ee)}(Ee)||function RowGroup_iterableToArray(Ee){if("undefined"!=typeof Symbol&&null!=Ee[Symbol.iterator]||null!=Ee["@@iterator"])return Array.from(Ee)}(Ee)||function RowGroup_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return RowGroup_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return RowGroup_arrayLikeToArray(Ee,ze)}(Ee)||function RowGroup_nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function RowGroup_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);BeEe.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be2&&void 0!==arguments[2]?arguments[2]:{},We=Object(sn.q)("item.",this.$scopedSlots),$e=this.createItemProps(Ee,ze);if(this.showSelect){var Qe=We["data-table-select"];We["data-table-select"]=Qe?function(){return Qe(VDataTable_objectSpread(VDataTable_objectSpread({},$e),{},{isMobile:Be.isMobile}))}:function(){var ze;return Be.$createElement(zf,{staticClass:"v-data-table__checkbox",props:{value:$e.isSelected,disabled:!Be.isSelectable(Ee),color:null!=(ze=Be.checkboxColor)?ze:""},on:{input:function input(Ee){return $e.select(Ee)}}})}}if(this.showExpand){var rt=We["data-table-expand"];We["data-table-expand"]=rt?function(){return rt($e)}:function(){return Be.$createElement(Vo.a,{staticClass:"v-data-table__expand-icon",class:{"v-data-table__expand-icon--active":$e.isExpanded},on:{click:function click(Ee){Ee.stopPropagation(),$e.expand(!$e.isExpanded)}}},[Be.expandIcon])}}return this.$createElement(this.isMobile?eh:Kf,{key:Object(sn.p)(Ee,this.itemKey),class:Object(If.b)(VDataTable_objectSpread(VDataTable_objectSpread({},Ue),{},{"v-data-table__selected":$e.isSelected}),Object(sn.r)(Ee,this.itemClass)),props:{headers:this.computedHeaders,hideDefaultHeader:this.hideDefaultHeader,index:ze,item:Ee,rtl:this.$vuetify.rtl},scopedSlots:We,on:{click:function click(){return Be.$emit("click:row",Ee,$e)},contextmenu:function contextmenu(Ee){return Be.$emit("contextmenu:row",Ee,$e)},dblclick:function dblclick(Ee){return Be.$emit("dblclick:row",Ee,$e)}}})},genBody:function genBody(Ee){var ze=VDataTable_objectSpread(VDataTable_objectSpread({},Ee),{},{expand:this.expand,headers:this.computedHeaders,isExpanded:this.isExpanded,isMobile:this.isMobile,isSelected:this.isSelected,select:this.select});return this.$scopedSlots.body?this.$scopedSlots.body(ze):this.$createElement("tbody",[Object(sn.s)(this,"body.prepend",ze,!0),this.genItems(Ee.items,Ee),Object(sn.s)(this,"body.append",ze,!0)])},genFoot:function genFoot(Ee){var ze,Be;return null==(ze=(Be=this.$scopedSlots).foot)?void 0:ze.call(Be,Ee)},genFooters:function genFooters(Ee){var ze={props:VDataTable_objectSpread({options:Ee.options,pagination:Ee.pagination,itemsPerPageText:"$vuetify.dataTable.itemsPerPageText"},this.sanitizedFooterProps),on:{"update:options":function updateOptions(ze){return Ee.updateOptions(ze)}},widths:this.widths,headers:this.computedHeaders},Be=[Object(sn.s)(this,"footer",ze,!0)];return this.hideDefaultFooter||Be.push(this.$createElement(qf,VDataTable_objectSpread(VDataTable_objectSpread({},ze),{},{scopedSlots:Object(sn.q)("footer.",this.$scopedSlots)}))),Be},genDefaultScopedSlot:function genDefaultScopedSlot(Ee){var ze={height:this.height,fixedHeader:this.fixedHeader,dense:this.dense};return this.$createElement(Qf,{props:ze,class:{"v-data-table--mobile":this.isMobile}},[this.proxySlot("top",Object(sn.s)(this,"top",VDataTable_objectSpread(VDataTable_objectSpread({},Ee),{},{isMobile:this.isMobile}),!0)),this.genCaption(Ee),this.genColgroup(Ee),this.genHeaders(Ee),this.genBody(Ee),this.genFoot(Ee),this.proxySlot("bottom",this.genFooters(Ee))])},proxySlot:function proxySlot(Ee,ze){return this.$createElement("template",{slot:Ee},ze)}},render:function render(){var Ee=this;return this.$createElement(Cf,{props:VDataTable_objectSpread(VDataTable_objectSpread({},this.$props),{},{customFilter:this.customFilterWithColumns,customSort:this.customSortWithHeaders,itemsPerPage:this.computedItemsPerPage}),on:{"update:options":function updateOptions(ze,Be){Ee.internalGroupBy=ze.groupBy||[],!Object(sn.j)(ze,Be)&&Ee.$emit("update:options",ze)},"update:page":function updatePage(ze){return Ee.$emit("update:page",ze)},"update:items-per-page":function updateItemsPerPage(ze){return Ee.$emit("update:items-per-page",ze)},"update:sort-by":function updateSortBy(ze){return Ee.$emit("update:sort-by",ze)},"update:sort-desc":function updateSortDesc(ze){return Ee.$emit("update:sort-desc",ze)},"update:group-by":function updateGroupBy(ze){return Ee.$emit("update:group-by",ze)},"update:group-desc":function updateGroupDesc(ze){return Ee.$emit("update:group-desc",ze)},pagination:function pagination(ze,Be){return!Object(sn.j)(ze,Be)&&Ee.$emit("pagination",ze)},"current-items":function currentItems(ze){Ee.internalCurrentItems=ze,Ee.$emit("current-items",ze)},"page-count":function pageCount(ze){return Ee.$emit("page-count",ze)}},scopedSlots:{default:this.genDefaultScopedSlot}})}}),nh=Object(ft.a)(Sf,(function(){var Ee=this,ze=Ee.$createElement,Be=Ee._self._c||ze;return Be("div",[Be("v-data-table",{attrs:{headers:Ee.headers,items:Ee.statistics,dense:""},scopedSlots:Ee._u([{key:"footer.page-text",fn:function(){return[Be("vue-json-to-csv",{attrs:{"json-data":Ee.statistics,"csv-title":"beastiary"}},[Be("v-btn",{attrs:{color:"primary",dark:"",small:""}},[Ee._v(" Download ")])],1)]},proxy:!0}])})],1)}),[],!1,null,null,null),ih=nh.exports;kt()(nh,{VBtn:Lt.a,VDataTable:rh});function TraceListvue_type_script_lang_ts_typeof(Ee){return(TraceListvue_type_script_lang_ts_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(Ee){return typeof Ee}:function _typeof(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(Ee)}function TraceListvue_type_script_lang_ts_asyncGeneratorStep(Ee,ze,Be,Ue,We,$e,Qe){try{var rt=Ee[$e](Qe),it=rt.value}catch(Ee){return void Be(Ee)}rt.done?ze(it):Promise.resolve(it).then(Ue,We)}function TraceListvue_type_script_lang_ts_asyncToGenerator(Ee){return function(){var ze=this,Be=arguments;return new Promise((function(Ue,We){var $e=Ee.apply(ze,Be);function _next(Ee){TraceListvue_type_script_lang_ts_asyncGeneratorStep($e,Ue,We,_next,_throw,"next",Ee)}function _throw(Ee){TraceListvue_type_script_lang_ts_asyncGeneratorStep($e,Ue,We,_next,_throw,"throw",Ee)}_next(void 0)}))}}function TraceListvue_type_script_lang_ts_classCallCheck(Ee,ze){if(!(Ee instanceof ze))throw new TypeError("Cannot call a class as a function")}function TraceListvue_type_script_lang_ts_defineProperties(Ee,ze){for(var Be=0;Be0;case"mobile":return this.isMobile||this.isOverflowing||Math.abs(this.scrollOffset)>0;default:return!this.isMobile&&(this.isOverflowing||Math.abs(this.scrollOffset)>0)}},hasNext:function hasNext(){if(!this.hasAffixes)return!1;var Ee=this.widths,ze=Ee.content,Be=Ee.wrapper;return ze>Math.abs(this.scrollOffset)+Be},hasPrev:function hasPrev(){return this.hasAffixes&&0!==this.scrollOffset}},watch:{internalValue:"setWidths",isOverflowing:"setWidths",scrollOffset:function scrollOffset(Ee){this.$refs.content.style.transform="translateX(".concat(-Ee,"px)")}},beforeUpdate:function beforeUpdate(){this.internalItemsLength=(this.$children||[]).length},updated:function updated(){this.internalItemsLength!==(this.$children||[]).length&&this.setWidths()},methods:{genNext:function genNext(){var Ee=this,ze=this.$scopedSlots.next?this.$scopedSlots.next({}):this.$slots.next||this.__cachedNext;return this.$createElement("div",{staticClass:"v-slide-group__next",class:{"v-slide-group__next--disabled":!this.hasNext},on:{click:function click(){return Ee.onAffixClick("next")}},key:"next"},[ze])},genContent:function genContent(){return this.$createElement("div",{staticClass:"v-slide-group__content",ref:"content"},this.$slots.default)},genData:function genData(){return{class:this.classes,directives:[{name:"resize",value:this.onResize}]}},genIcon:function genIcon(Ee){var ze=Ee;this.$vuetify.rtl&&"prev"===Ee?ze="next":this.$vuetify.rtl&&"next"===Ee&&(ze="prev");var Be="".concat(Ee[0].toUpperCase()).concat(Ee.slice(1)),Ue=this["has".concat(Be)];return this.showArrows||Ue?this.$createElement(Vo.a,{props:{disabled:!Ue}},this["".concat(ze,"Icon")]):null},genPrev:function genPrev(){var Ee=this,ze=this.$scopedSlots.prev?this.$scopedSlots.prev({}):this.$slots.prev||this.__cachedPrev;return this.$createElement("div",{staticClass:"v-slide-group__prev",class:{"v-slide-group__prev--disabled":!this.hasPrev},on:{click:function click(){return Ee.onAffixClick("prev")}},key:"prev"},[ze])},genTransition:function genTransition(Ee){return this.$createElement(Bo.d,[this.genIcon(Ee)])},genWrapper:function genWrapper(){var Ee=this;return this.$createElement("div",{staticClass:"v-slide-group__wrapper",directives:[{name:"touch",value:{start:function start(ze){return Ee.overflowCheck(ze,Ee.onTouchStart)},move:function move(ze){return Ee.overflowCheck(ze,Ee.onTouchMove)},end:function end(ze){return Ee.overflowCheck(ze,Ee.onTouchEnd)}}}],ref:"wrapper"},[this.genContent()])},calculateNewOffset:function calculateNewOffset(Ee,ze,Be,Ue){var We=Be?-1:1,$e=We*Ue+("prev"===Ee?-1:1)*ze.wrapper;return We*Math.max(Math.min($e,ze.content-ze.wrapper),0)},onAffixClick:function onAffixClick(Ee){this.$emit("click:".concat(Ee)),this.scrollTo(Ee)},onResize:function onResize(){this._isDestroyed||this.setWidths()},onTouchStart:function onTouchStart(Ee){var ze=this.$refs.content;this.startX=this.scrollOffset+Ee.touchstartX,ze.style.setProperty("transition","none"),ze.style.setProperty("willChange","transform")},onTouchMove:function onTouchMove(Ee){if(this.canTouch){if(!this.isSwiping){var ze=Ee.touchmoveX-Ee.touchstartX,Be=Ee.touchmoveY-Ee.touchstartY;this.isSwipingHorizontal=Math.abs(ze)>Math.abs(Be),this.isSwiping=!0}this.isSwipingHorizontal&&(this.scrollOffset=this.startX-Ee.touchmoveX,document.documentElement.style.overflowY="hidden")}},onTouchEnd:function onTouchEnd(){if(this.canTouch){var Ee=this.$refs,ze=Ee.content,Be=Ee.wrapper,Ue=ze.clientWidth-Be.clientWidth;ze.style.setProperty("transition",null),ze.style.setProperty("willChange",null),this.$vuetify.rtl?this.scrollOffset>0||!this.isOverflowing?this.scrollOffset=0:this.scrollOffset<=-Ue&&(this.scrollOffset=-Ue):this.scrollOffset<0||!this.isOverflowing?this.scrollOffset=0:this.scrollOffset>=Ue&&(this.scrollOffset=Ue),this.isSwiping=!1,document.documentElement.style.removeProperty("overflow-y")}},overflowCheck:function overflowCheck(Ee,ze){Ee.stopPropagation(),this.isOverflowing&&ze(Ee)},scrollIntoView:function scrollIntoView(){if(!this.selectedItem&&this.items.length){var Ee=this.items[this.items.length-1].$el.getBoundingClientRect(),ze=this.$refs.wrapper.getBoundingClientRect();(this.$vuetify.rtl&&ze.rightEe.left)&&this.scrollTo("prev")}this.selectedItem&&(0===this.selectedIndex||!this.centerActive&&!this.isOverflowing?this.scrollOffset=0:this.centerActive?this.scrollOffset=this.calculateCenteredOffset(this.selectedItem.$el,this.widths,this.$vuetify.rtl):this.isOverflowing&&(this.scrollOffset=this.calculateUpdatedOffset(this.selectedItem.$el,this.widths,this.$vuetify.rtl,this.scrollOffset)))},calculateUpdatedOffset:function calculateUpdatedOffset(Ee,ze,Be,Ue){var We=Ee.clientWidth,$e=Be?ze.content-Ee.offsetLeft-We:Ee.offsetLeft;Be&&(Ue=-Ue);var Qe=ze.wrapper+Ue,rt=We+$e,it=.4*We;return $e<=Ue?Ue=Math.max($e-it,0):Qe<=rt&&(Ue=Math.min(Ue-(Qe-rt-it),ze.content-ze.wrapper)),Be?-Ue:Ue},calculateCenteredOffset:function calculateCenteredOffset(Ee,ze,Be){var Ue=Ee.offsetLeft,We=Ee.clientWidth;if(Be){var $e=ze.content-Ue-We/2-ze.wrapper/2;return-Math.min(ze.content-ze.wrapper,Math.max(0,$e))}var Qe=Ue+We/2-ze.wrapper/2;return Math.min(ze.content-ze.wrapper,Math.max(0,Qe))},scrollTo:function scrollTo(Ee){this.scrollOffset=this.calculateNewOffset(Ee,{content:this.$refs.content?this.$refs.content.clientWidth:0,wrapper:this.$refs.wrapper?this.$refs.wrapper.clientWidth:0},this.$vuetify.rtl,this.scrollOffset)},setWidths:function setWidths(){var Ee=this;window.requestAnimationFrame((function(){var ze=Ee.$refs,Be=ze.content,Ue=ze.wrapper;Ee.widths={content:Be?Be.clientWidth:0,wrapper:Ue?Ue.clientWidth:0},Ee.isOverflowing=Ee.widths.wrapper+10?parseFloat(this.step):0},inputWidth:function inputWidth(){return(this.roundValue(this.internalValue)-this.minValue)/(this.maxValue-this.minValue)*100},trackFillStyles:function trackFillStyles(){var Ee,ze=this.vertical?"bottom":"left",Be=this.vertical?"top":"right",Ue=this.vertical?"height":"width",We=this.$vuetify.rtl?"auto":"0",$e=this.$vuetify.rtl?"0":"auto",Qe=this.isDisabled?"calc(".concat(this.inputWidth,"% - 10px)"):"".concat(this.inputWidth,"%");return VSlider_defineProperty(Ee={transition:this.trackTransition},ze,We),VSlider_defineProperty(Ee,Be,$e),VSlider_defineProperty(Ee,Ue,Qe),Ee},trackStyles:function trackStyles(){var Ee,ze=this.vertical?this.$vuetify.rtl?"bottom":"top":this.$vuetify.rtl?"left":"right",Be=this.vertical?"height":"width",Ue=this.isDisabled?"calc(".concat(100-this.inputWidth,"% - 10px)"):"calc(".concat(100-this.inputWidth,"%)");return VSlider_defineProperty(Ee={transition:this.trackTransition},ze,"0px"),VSlider_defineProperty(Ee,Be,Ue),Ee},showTicks:function showTicks(){return this.tickLabels.length>0||!(this.isDisabled||!this.stepNumeric||!this.ticks)},numTicks:function numTicks(){return Math.ceil((this.maxValue-this.minValue)/this.stepNumeric)},showThumbLabel:function showThumbLabel(){return!(this.isDisabled||!this.thumbLabel&&!this.$scopedSlots["thumb-label"])},computedTrackColor:function computedTrackColor(){if(!this.isDisabled)return this.trackColor?this.trackColor:this.isDark?this.validationState:this.validationState||"primary lighten-3"},computedTrackFillColor:function computedTrackFillColor(){if(!this.isDisabled)return this.trackFillColor?this.trackFillColor:this.validationState||this.computedColor},computedThumbColor:function computedThumbColor(){return this.thumbColor?this.thumbColor:this.validationState||this.computedColor}},watch:{min:function min(Ee){var ze=parseFloat(Ee);ze>this.internalValue&&this.$emit("input",ze)},max:function max(Ee){var ze=parseFloat(Ee);ze0}},$e)},genThumbContainer:function genThumbContainer(Ee,ze,Be,Ue,We,$e){var Qe=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"thumb",rt=[this.genThumb()],it=this.genThumbLabelContent(Ee);return this.showThumbLabel&&rt.push(this.genThumbLabel(it)),this.$createElement("div",this.setTextColor(this.computedThumbColor,{ref:Qe,key:Qe,staticClass:"v-slider__thumb-container",class:{"v-slider__thumb-container--active":Be,"v-slider__thumb-container--focused":Ue,"v-slider__thumb-container--show-label":this.showThumbLabel},style:this.getThumbContainerStyles(ze),attrs:VSlider_objectSpread({role:"slider",tabindex:this.isDisabled?-1:this.$attrs.tabindex?this.$attrs.tabindex:0,"aria-label":this.label,"aria-valuemin":this.min,"aria-valuemax":this.max,"aria-valuenow":this.internalValue,"aria-readonly":String(this.isReadonly),"aria-orientation":this.vertical?"vertical":"horizontal"},this.$attrs),on:{focus:We,blur:$e,keydown:this.onKeyDown}}),rt)},genThumbLabelContent:function genThumbLabelContent(Ee){return this.$scopedSlots["thumb-label"]?this.$scopedSlots["thumb-label"]({value:Ee}):[this.$createElement("span",[String(Ee)])]},genThumbLabel:function genThumbLabel(Ee){var ze=Object(sn.g)(this.thumbSize),Be=this.vertical?"translateY(20%) translateY(".concat(Number(this.thumbSize)/3-1,"px) translateX(55%) rotate(135deg)"):"translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)";return this.$createElement(Bo.e,{props:{origin:"bottom center"}},[this.$createElement("div",{staticClass:"v-slider__thumb-label-container",directives:[{name:"show",value:this.isFocused||this.isActive||"always"===this.thumbLabel}]},[this.$createElement("div",this.setBackgroundColor(this.computedThumbColor,{staticClass:"v-slider__thumb-label",style:{height:ze,width:ze,transform:Be}}),[this.$createElement("div",Ee)])])])},genThumb:function genThumb(){return this.$createElement("div",this.setBackgroundColor(this.computedThumbColor,{staticClass:"v-slider__thumb"}))},getThumbContainerStyles:function getThumbContainerStyles(Ee){var ze=this.vertical?"top":"left",Be=this.$vuetify.rtl?100-Ee:Ee;return Be=this.vertical?100-Be:Be,VSlider_defineProperty({transition:this.trackTransition},ze,"".concat(Be,"%"))},onSliderMouseDown:function onSliderMouseDown(Ee){var ze,Be=this;if(Ee.preventDefault(),this.oldValue=this.internalValue,this.isActive=!0,null!=(ze=Ee.target)&&ze.matches(".v-slider__thumb-container, .v-slider__thumb-container *")){this.thumbPressed=!0;var Ue=Ee.target.getBoundingClientRect(),We="touches"in Ee?Ee.touches[0]:Ee;this.startOffset=this.vertical?We.clientY-(Ue.top+Ue.height/2):We.clientX-(Ue.left+Ue.width/2)}else this.startOffset=0,window.clearTimeout(this.mouseTimeout),this.mouseTimeout=window.setTimeout((function(){Be.thumbPressed=!0}),300);var $e=!sn.B||{passive:!0,capture:!0},Qe=!!sn.B&&{passive:!0},rt="touches"in Ee;this.onMouseMove(Ee),this.app.addEventListener(rt?"touchmove":"mousemove",this.onMouseMove,Qe),Object(sn.a)(this.app,rt?"touchend":"mouseup",this.onSliderMouseUp,$e),this.$emit("start",this.internalValue)},onSliderMouseUp:function onSliderMouseUp(Ee){Ee.stopPropagation(),window.clearTimeout(this.mouseTimeout),this.thumbPressed=!1;var ze=!!sn.B&&{passive:!0};this.app.removeEventListener("touchmove",this.onMouseMove,ze),this.app.removeEventListener("mousemove",this.onMouseMove,ze),this.$emit("mouseup",Ee),this.$emit("end",this.internalValue),Object(sn.j)(this.oldValue,this.internalValue)||(this.$emit("change",this.internalValue),this.noClick=!0),this.isActive=!1},onMouseMove:function onMouseMove(Ee){"mousemove"===Ee.type&&(this.thumbPressed=!0),this.internalValue=this.parseMouseMove(Ee)},onKeyDown:function onKeyDown(Ee){if(this.isInteractive){var ze=this.parseKeyDown(Ee,this.internalValue);null==ze||zethis.maxValue||(this.internalValue=ze,this.$emit("change",ze))}},onSliderClick:function onSliderClick(Ee){this.noClick?this.noClick=!1:(this.$refs.thumb.focus(),this.onMouseMove(Ee),this.$emit("change",this.internalValue))},onBlur:function onBlur(Ee){this.isFocused=!1,this.$emit("blur",Ee)},onFocus:function onFocus(Ee){this.isFocused=!0,this.$emit("focus",Ee)},parseMouseMove:function parseMouseMove(Ee){var ze=this.vertical?"top":"left",Be=this.vertical?"height":"width",Ue=this.vertical?"clientY":"clientX",We=this.$refs.track.getBoundingClientRect(),$e=We[ze],Qe=We[Be],rt="touches"in Ee?Ee.touches[0][Ue]:Ee[Ue],it=Math.min(Math.max((rt-$e-this.startOffset)/Qe,0),1)||0;return this.vertical&&(it=1-it),this.$vuetify.rtl&&(it=1-it),parseFloat(this.min)+it*(this.maxValue-this.minValue)},parseKeyDown:function parseKeyDown(Ee,ze){if(this.isInteractive){var Be=sn.x.pageup,Ue=sn.x.pagedown,We=sn.x.end,$e=sn.x.home,Qe=sn.x.left,rt=sn.x.right,it=sn.x.down,at=sn.x.up;if([Be,Ue,We,$e,Qe,rt,it,at].includes(Ee.keyCode)){Ee.preventDefault();var ct=this.stepNumeric||1,ft=(this.maxValue-this.minValue)/ct;if([Qe,rt,it,at].includes(Ee.keyCode))ze+=((this.$vuetify.rtl?[Qe,at]:[rt,at]).includes(Ee.keyCode)?1:-1)*ct*(Ee.shiftKey?3:Ee.ctrlKey?2:1);else if(Ee.keyCode===$e)ze=this.minValue;else if(Ee.keyCode===We)ze=this.maxValue;else{ze-=(Ee.keyCode===Ue?1:-1)*ct*(ft>100?ft/10:10)}return ze}}},roundValue:function roundValue(Ee){if(!this.stepNumeric)return Ee;var ze=this.step.toString().trim(),Be=ze.indexOf(".")>-1?ze.length-ze.indexOf(".")-1:0,Ue=this.minValue%this.stepNumeric,We=Math.round((Ee-Ue)/this.stepNumeric)*this.stepNumeric+Ue;return parseFloat(Math.min(We,this.maxValue).toFixed(Be))}}}),wh=Object(ft.a)(oh,(function(){var Ee=this,ze=Ee.$createElement,Be=Ee._self._c||ze;return Be("v-list",{staticClass:"col mb-0 py-0 my-0 rounded-b-lg no-scrollbar",staticStyle:{"overflow-x":"hidden"}},Ee._l(Ee.traces,(function(ze){return Be("v-list-group",{key:ze.id,attrs:{color:"primary",disabled:Ee.isLoading},on:{click:function(Be){return Ee.setAcitveTrace(ze)}},scopedSlots:Ee._u([{key:"activator",fn:function(){return[Be("v-list-item-content",{staticClass:"mb-0 px-0"},[Be("v-list-item-title",{staticClass:"text-h6 font-weight-regular"},[Ee._v(" "+Ee._s(Ee.fileName(ze.path))+" ")]),Be("v-list-item-subtitle",{staticClass:"wrap-text text-caption"},[Ee._v(" "+Ee._s(ze.path)+" ")]),Be("v-list-item-content",{staticClass:"pb-0"},[Object.keys(ze.parameters).length>0?Be("div",{staticClass:"d-flex align-center"},[Be("v-chip-group",{attrs:{column:""}},[Be("v-tooltip",{attrs:{color:"black",bottom:""},scopedSlots:Ee._u([{key:"activator",fn:function(Ue){var We=Ue.on;return[Be("v-chip",Ee._g({attrs:{color:"cyan","text-color":"white",small:""}},We),[Ee._v(" "+Ee._s(ze.parameters.state[ze.parameters.state.length-1].state)+" ")])]}}],null,!0)},[Be("span",[Ee._v("Length")])]),Be("v-tooltip",{attrs:{color:"black",bottom:""},scopedSlots:Ee._u([{key:"activator",fn:function(Ue){var We=Ue.on;return[Be("v-chip",Ee._g({attrs:{color:"green","text-color":"white",small:""}},We),[Ee._v(" "+Ee._s(ze.parameters.state.length)+" ")])]}}],null,!0)},[Be("span",[Ee._v("Samples")])]),ze.activeParams.length?Be("v-tooltip",{attrs:{color:"black",bottom:""},scopedSlots:Ee._u([{key:"activator",fn:function(Ue){var We=Ue.on;return[Be("v-chip",Ee._g({attrs:{color:"red","text-color":"white",small:"",close:""},on:{"click:close":function(Be){return Ee.setActiveParams(ze)}}},We),[Ee._v(" "+Ee._s(ze.activeParams.length))])]}}],null,!0)},[Be("span",[Ee._v("Active")])]):Ee._e()],1),ze.isLoading?Be("v-progress-circular",{staticClass:"pl-1",attrs:{indeterminate:"",color:"primary",size:"20"}}):Ee._e()],1):Ee._e()])],1)]},proxy:!0}],null,!0)},[Ee.openTraceID===ze.id&&Ee.activeTraceIDs.includes(ze.id)?Be("div",{staticStyle:{"overflow-x":"hidden !important","overflow-y":"auto !important"}},[Be("v-col",{staticClass:" mr-4 mb-0"},[Be("div",[Ee._v("Burn-in "+Ee._s(Ee.burnIn[ze.id])+"%")]),Be("v-slider",{staticClass:"align-center",attrs:{max:100,min:0,"hide-details":""},on:{change:function(Be){return Ee.setBurnIn(Be,ze.id)}},model:{value:Ee.burnIn[ze.id],callback:function(Be){Ee.$set(Ee.burnIn,ze.id,Be)},expression:"burnIn[trace.id]"}})],1),Be("v-divider",{staticClass:"my-0"}),Be("div",{staticStyle:{"overflow-x":"hidden"}},[Be("ParamsPanel",{attrs:{trace:ze,height:"400px"}})],1)],1):Ee._e(),Be("div",{directives:[{name:"show",rawName:"v-show",value:!("state"in ze.parameters),expression:"!('state' in trace.parameters)"}],staticClass:"text-center my-4"},[Be("v-progress-circular",{attrs:{indeterminate:"",color:"primary"}})],1),Be("v-divider")],1)})),1)}),[],!1,null,null,null),Th=wh.exports;function Dashboardvue_type_script_lang_ts_typeof(Ee){return(Dashboardvue_type_script_lang_ts_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(Ee){return typeof Ee}:function _typeof(Ee){return Ee&&"function"==typeof Symbol&&Ee.constructor===Symbol&&Ee!==Symbol.prototype?"symbol":typeof Ee})(Ee)}function Dashboardvue_type_script_lang_ts_toConsumableArray(Ee){return function Dashboardvue_type_script_lang_ts_arrayWithoutHoles(Ee){if(Array.isArray(Ee))return Dashboardvue_type_script_lang_ts_arrayLikeToArray(Ee)}(Ee)||function Dashboardvue_type_script_lang_ts_iterableToArray(Ee){if("undefined"!=typeof Symbol&&null!=Ee[Symbol.iterator]||null!=Ee["@@iterator"])return Array.from(Ee)}(Ee)||function Dashboardvue_type_script_lang_ts_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return Dashboardvue_type_script_lang_ts_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return Dashboardvue_type_script_lang_ts_arrayLikeToArray(Ee,ze)}(Ee)||function Dashboardvue_type_script_lang_ts_nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Dashboardvue_type_script_lang_ts_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be-1&&Ee.preventDefault(),Ee.detail&&this.$el.blur(),this.$emit("click",Ee),this.to||this.toggle()}},render:function render(Ee){var ze=this,Be=this.generateRouteLink(),Ue=Be.tag,We=Be.data;return We.attrs=VTab_objectSpread(VTab_objectSpread({},We.attrs),{},{"aria-selected":String(this.isActive),role:"tab",tabindex:0}),We.on=VTab_objectSpread(VTab_objectSpread({},We.on),{},{keydown:function keydown(Ee){Ee.keyCode===sn.x.enter&&ze.click(Ee),ze.$emit("keydown",Ee)}}),Ee(Ue,We,this.$slots.default)}}),Eh=Object(on.a)(dn.a,Object(Ho.a)("windowGroup","v-window-item","v-window")).extend().extend().extend({name:"v-window-item",directives:{Touch:lh.a},props:{disabled:Boolean,reverseTransition:{type:[Boolean,String],default:void 0},transition:{type:[Boolean,String],default:void 0},value:{required:!1}},data:function data(){return{isActive:!1,inTransition:!1}},computed:{classes:function classes(){return this.groupClasses},computedTransition:function computedTransition(){return this.windowGroup.internalReverse?void 0!==this.reverseTransition?this.reverseTransition||"":this.windowGroup.computedTransition:void 0!==this.transition?this.transition||"":this.windowGroup.computedTransition}},methods:{genDefaultSlot:function genDefaultSlot(){return this.$slots.default},genWindowItem:function genWindowItem(){return this.$createElement("div",{staticClass:"v-window-item",class:this.classes,directives:[{name:"show",value:this.isActive}],on:this.$listeners},this.genDefaultSlot())},onAfterTransition:function onAfterTransition(){this.inTransition&&(this.inTransition=!1,this.windowGroup.transitionCount>0&&(this.windowGroup.transitionCount--,0===this.windowGroup.transitionCount&&(this.windowGroup.transitionHeight=void 0)))},onBeforeTransition:function onBeforeTransition(){this.inTransition||(this.inTransition=!0,0===this.windowGroup.transitionCount&&(this.windowGroup.transitionHeight=Object(sn.g)(this.windowGroup.$el.clientHeight)),this.windowGroup.transitionCount++)},onTransitionCancelled:function onTransitionCancelled(){this.onAfterTransition()},onEnter:function onEnter(Ee){var ze=this;this.inTransition&&this.$nextTick((function(){ze.computedTransition&&ze.inTransition&&(ze.windowGroup.transitionHeight=Object(sn.g)(Ee.clientHeight))}))}},render:function render(Ee){var ze=this;return Ee("transition",{props:{name:this.computedTransition},on:{beforeEnter:this.onBeforeTransition,afterEnter:this.onAfterTransition,enterCancelled:this.onTransitionCancelled,beforeLeave:this.onBeforeTransition,afterLeave:this.onAfterTransition,leaveCancelled:this.onTransitionCancelled,enter:this.onEnter}},this.showLazyContent((function(){return[ze.genWindowItem()]})))}}),Ph=Eh.extend({name:"v-tab-item",props:{id:String},methods:{genWindowItem:function genWindowItem(){var Ee=Eh.options.methods.genWindowItem.call(this);return Ee.data.domProps=Ee.data.domProps||{},Ee.data.domProps.id=this.id||this.value,Ee}}}),Oh=(Be("1bfbd"),Be("d10f"));function VTabsBar_createForOfIteratorHelper(Ee,ze){var Be="undefined"!=typeof Symbol&&Ee[Symbol.iterator]||Ee["@@iterator"];if(!Be){if(Array.isArray(Ee)||(Be=function VTabsBar_unsupportedIterableToArray(Ee,ze){if(!Ee)return;if("string"==typeof Ee)return VTabsBar_arrayLikeToArray(Ee,ze);var Be=Object.prototype.toString.call(Ee).slice(8,-1);"Object"===Be&&Ee.constructor&&(Be=Ee.constructor.name);if("Map"===Be||"Set"===Be)return Array.from(Ee);if("Arguments"===Be||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Be))return VTabsBar_arrayLikeToArray(Ee,ze)}(Ee))||ze&&Ee&&"number"==typeof Ee.length){Be&&(Ee=Be);var Ue=0,We=function F(){};return{s:We,n:function n(){return Ue>=Ee.length?{done:!0}:{done:!1,value:Ee[Ue++]}},e:function e(Ee){throw Ee},f:We}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var $e,Qe=!0,rt=!1;return{s:function s(){Be=Be.call(Ee)},n:function n(){var Ee=Be.next();return Qe=Ee.done,Ee},e:function e(Ee){rt=!0,$e=Ee},f:function f(){try{Qe||null==Be.return||Be.return()}finally{if(rt)throw $e}}}}function VTabsBar_arrayLikeToArray(Ee,ze){(null==ze||ze>Ee.length)&&(ze=Ee.length);for(var Be=0,Ue=new Array(ze);Be0},classes:function classes(){return VWindow_objectSpread(VWindow_objectSpread({},sh.a.options.computed.classes.call(this)),{},{"v-window--show-arrows-on-hover":this.showArrowsOnHover})},computedTransition:function computedTransition(){if(!this.isBooted)return"";var Ee=this.vertical?"y":"x",ze=(this.internalReverse?!this.isReverse:this.isReverse)?"-reverse":"";return"v-window-".concat(Ee).concat(ze,"-transition")},hasActiveItems:function hasActiveItems(){return Boolean(this.items.find((function(Ee){return!Ee.disabled})))},hasNext:function hasNext(){return this.continuous||this.internalIndex0},internalIndex:function internalIndex(){var Ee=this;return this.items.findIndex((function(ze,Be){return Ee.internalValue===Ee.getValue(ze,Be)}))},internalReverse:function internalReverse(){return this.$vuetify.rtl?!this.reverse:this.reverse}},watch:{internalIndex:function internalIndex(Ee,ze){this.isReverse=this.updateReverse(Ee,ze)}},mounted:function mounted(){var Ee=this;window.requestAnimationFrame((function(){return Ee.isBooted=!0}))},methods:{genDefaultSlot:function genDefaultSlot(){return this.$slots.default},genContainer:function genContainer(){var Ee=[this.genDefaultSlot()];return this.showArrows&&Ee.push(this.genControlIcons()),this.$createElement("div",{staticClass:"v-window__container",class:{"v-window__container--is-active":this.isActive},style:{height:this.internalHeight||this.transitionHeight}},Ee)},genIcon:function genIcon(Ee,ze,Be){var Ue,We,$e,Qe=this,rt={click:function click(Ee){Ee.stopPropagation(),Qe.changedByDelimiters=!0,Be()}},it={"aria-label":this.$vuetify.lang.t("$vuetify.carousel.".concat(Ee))},at=null!=(Ue=null==(We=($e=this.$scopedSlots)[Ee])?void 0:We.call($e,{on:rt,attrs:it}))?Ue:[this.$createElement(Hf.a,{props:{icon:!0},attrs:it,on:rt},[this.$createElement(Vo.a,{props:{large:!0}},ze)])];return this.$createElement("div",{staticClass:"v-window__".concat(Ee)},at)},genControlIcons:function genControlIcons(){var Ee=[],ze=this.$vuetify.rtl?this.nextIcon:this.prevIcon;if(this.hasPrev&&ze&&"string"==typeof ze){var Be=this.genIcon("prev",ze,this.prev);Be&&Ee.push(Be)}var Ue=this.$vuetify.rtl?this.prevIcon:this.nextIcon;if(this.hasNext&&Ue&&"string"==typeof Ue){var We=this.genIcon("next",Ue,this.next);We&&Ee.push(We)}return Ee},getNextIndex:function getNextIndex(Ee){var ze=(Ee+1)%this.items.length;return this.items[ze].disabled?this.getNextIndex(ze):ze},getPrevIndex:function getPrevIndex(Ee){var ze=(Ee+this.items.length-1)%this.items.length;return this.items[ze].disabled?this.getPrevIndex(ze):ze},next:function next(){if(this.hasActiveItems&&this.hasNext){var Ee=this.getNextIndex(this.internalIndex),ze=this.items[Ee];this.internalValue=this.getValue(ze,Ee)}},prev:function prev(){if(this.hasActiveItems&&this.hasPrev){var Ee=this.getPrevIndex(this.internalIndex),ze=this.items[Ee];this.internalValue=this.getValue(ze,Ee)}},updateReverse:function updateReverse(Ee,ze){var Be=this.items.length,Ue=Be-1;return Be<=2?Ee0?Be("v-divider"):Ee._e(),Be("div",{staticClass:"no-scrollbar",staticStyle:{"max-height":"80vh"}},[Be("TraceList")],1)],1)],1),Be("v-col",{staticClass:"pl-4 mt-4 pt-0",attrs:{cols:"9"}},[Ee.activeParams?Be("v-card",{staticClass:"rounded-lg "},[Be("v-tabs",{staticClass:"mb-4",attrs:{right:""},model:{value:Ee.tab,callback:function(ze){Ee.tab=ze},expression:"tab"}},[Be("v-tab",[Ee._v(" Trace ")]),Be("v-tab",[Ee._v(" Violin ")]),Be("v-tab",[Ee._v(" Histogram ")]),Be("v-tab",[Ee._v(" Marginal ")]),Be("v-tab",[Ee._v(" Parallel ")]),Be("v-tab",[Ee._v(" ESS ")]),Be("v-tab",[Ee._v(" Estimates ")])],1),Be("v-tabs-items",{model:{value:Ee.tab,callback:function(ze){Ee.tab=ze},expression:"tab"}},[Be("v-tab-item",[Be("v-card",{staticClass:"pa-2",attrs:{flat:""}},[0===Ee.tab?Be("Trace"):Ee._e()],1)],1),Be("v-tab-item",[Be("v-card",{staticClass:"pa-2",attrs:{flat:"","fill-height":""}},[1===Ee.tab?Be("Violin"):Ee._e()],1)],1),Be("v-tab-item",[Be("v-card",{staticClass:"pa-2",attrs:{flat:"","fill-height":""}},[2===Ee.tab?Be("Histogram"):Ee._e()],1)],1),Be("v-tab-item",[Be("v-card",{staticClass:"pa-2",attrs:{flat:"","fill-height":""}},[3===Ee.tab?Be("Marginal"):Ee._e()],1)],1),Be("v-tab-item",[Be("v-card",{staticClass:"pa-2",attrs:{flat:"","fill-height":""}},[4===Ee.tab?Be("Parallel"):Ee._e()],1)],1),Be("v-tab-item",[Be("v-card",{staticClass:"pa-2",attrs:{flat:"","fill-height":""}},[5===Ee.tab?Be("CumulativeESS"):Ee._e()],1)],1),Be("v-tab-item",[Be("v-card",{staticClass:"pa-2",attrs:{flat:"","fill-height":""}},[6===Ee.tab?Be("StatsTable"):Ee._e()],1)],1)],1)],1):Ee._e()],1)],1)],1)}),[],!1,null,null,null);ze.default=jh.exports;kt()(jh,{VCard:Ut.a,VCol:vh,VDivider:yh.a,VLayout:Mh.a,VRow:Sh.a,VSpacer:ti.a,VTab:Ch,VTabItem:Ph,VTabs:Bh,VTabsItems:Ih,VToolbar:Nh.a,VToolbarTitle:Fh.a})},f823:function(Ee,ze,Be){}}]); +//# sourceMappingURL=main-dashboard.5da8a2ea.js.map \ No newline at end of file diff --git a/backend/beastiary/webapp-dist/js/main-dashboard.4fa637e1.js.map b/backend/beastiary/webapp-dist/js/main-dashboard.5da8a2ea.js.map similarity index 70% rename from backend/beastiary/webapp-dist/js/main-dashboard.4fa637e1.js.map rename to backend/beastiary/webapp-dist/js/main-dashboard.5da8a2ea.js.map index bc9af73..51bc353 100644 --- a/backend/beastiary/webapp-dist/js/main-dashboard.4fa637e1.js.map +++ b/backend/beastiary/webapp-dist/js/main-dashboard.5da8a2ea.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/vue-plotly/dist/vue-plotly.umd.js","webpack:///./node_modules/vue-json-to-csv/dist/vue-json-to-csv.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///./node_modules/seedrandom/lib/alea.js","webpack:///../../../src/components/VSubheader/index.ts","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/decimal.js/decimal.js","webpack:///./node_modules/seedrandom/index.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/typed-function/typed-function.js","webpack:///./node_modules/seedrandom/lib/xor4096.js","webpack:///./node_modules/seedrandom/lib/tychei.js","webpack:///./src/components/data/TraceList.vue?5733","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/seedrandom/seedrandom.js","webpack:///./node_modules/seedrandom/lib/xorwow.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///../../../src/components/VDivider/index.ts","webpack:///./node_modules/seedrandom/lib/xor128.js","webpack:///./node_modules/seedrandom/lib/xorshift7.js","webpack:///./node_modules/fraction.js/fraction.js","webpack:///./node_modules/javascript-natural-sort/naturalSort.js","webpack:///./node_modules/complex.js/complex.js","webpack:///./src/views/main/Dashboard.vue?879b","webpack:///./src/components/data/AddTraceButton.vue","webpack:///./src/components/data/AddTraceButton.vue?e35c","webpack:///../../../src/components/VThemeProvider/VThemeProvider.ts","webpack:///../../../src/mixins/delayable/index.ts","webpack:///../../../src/mixins/activatable/index.ts","webpack:///../../../src/mixins/detachable/index.ts","webpack:///../../../src/mixins/returnable/index.ts","webpack:///../../../src/mixins/stackable/index.ts","webpack:///../../../src/components/VDialog/VDialog.ts","webpack:///./src/components/data/AddTraceButton.vue?c489","webpack:///./src/components/data/AddTraceButton.vue?8e41","webpack:///./src/components/data/graphs/ESS.vue?ef65","webpack:///./src/components/data/graphs/ESS.vue","webpack:///./src/components/data/graphs/ESS.vue?89e2","webpack:///./src/components/data/graphs/ESS.vue?23be","webpack:///./src/components/data/graphs/Histogram.vue","webpack:///./src/components/data/graphs/Histogram.vue?5882","webpack:///./src/components/data/graphs/Histogram.vue?edef","webpack:///./src/components/data/graphs/Histogram.vue?2d26","webpack:///./src/components/data/graphs/Marginal.vue","webpack:///./src/components/data/graphs/Marginal.vue?9d61","webpack:///./src/components/data/graphs/Marginal.vue?03c4","webpack:///./src/components/data/graphs/Marginal.vue?8490","webpack:///./src/components/data/graphs/Parallel.vue","webpack:///./src/components/data/graphs/Parallel.vue?fdb1","webpack:///./src/components/data/graphs/Parallel.vue?fbf9","webpack:///./src/components/data/graphs/Parallel.vue?3a3d","webpack:///./src/components/data/graphs/Trace.vue","webpack:///./src/components/data/graphs/Trace.vue?3e58","webpack:///./src/components/data/graphs/Trace.vue?f9e4","webpack:///./src/components/data/graphs/Trace.vue?be8b","webpack:///./src/components/data/graphs/Violin.vue","webpack:///./src/components/data/graphs/Violin.vue?05b1","webpack:///./src/components/data/graphs/Violin.vue?f0c5","webpack:///./src/components/data/graphs/Violin.vue?ef0b","webpack:///./src/components/data/ESSChip.vue","webpack:///./src/components/data/ESSChip.vue?d663","webpack:///../../../src/components/VChip/VChip.ts","webpack:///../../../src/mixins/menuable/index.ts","webpack:///../../../src/components/VTooltip/VTooltip.ts","webpack:///./src/components/data/ESSChip.vue?0109","webpack:///./src/components/data/ESSChip.vue?f46a","webpack:///./node_modules/mathjs/lib/esm/core/config.js","webpack:///./node_modules/mathjs/lib/esm/utils/is.js","webpack:///./node_modules/mathjs/lib/esm/utils/object.js","webpack:///./node_modules/mathjs/lib/esm/core/function/config.js","webpack:///./node_modules/mathjs/lib/esm/entry/configReadonly.js","webpack:///./node_modules/mathjs/lib/esm/utils/number.js","webpack:///./node_modules/mathjs/lib/esm/utils/bignumber/formatter.js","webpack:///./node_modules/mathjs/lib/esm/utils/string.js","webpack:///./node_modules/mathjs/lib/esm/error/DimensionError.js","webpack:///./node_modules/mathjs/lib/esm/error/IndexError.js","webpack:///./node_modules/mathjs/lib/esm/utils/array.js","webpack:///./node_modules/mathjs/lib/esm/utils/factory.js","webpack:///./node_modules/mathjs/lib/esm/type/resultset/ResultSet.js","webpack:///./node_modules/mathjs/lib/esm/type/complex/Complex.js","webpack:///./node_modules/mathjs/lib/esm/utils/lruQueue.js","webpack:///./node_modules/mathjs/lib/esm/utils/function.js","webpack:///./node_modules/mathjs/lib/esm/utils/bignumber/constants.js","webpack:///./node_modules/mathjs/lib/esm/plain/number/constants.js","webpack:///./node_modules/mathjs/lib/esm/type/bignumber/BigNumber.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/Matrix.js","webpack:///./node_modules/mathjs/lib/esm/type/unit/physicalConstants.js","webpack:///./node_modules/mathjs/lib/esm/type/fraction/Fraction.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/DenseMatrix.js","webpack:///./node_modules/mathjs/lib/esm/utils/customs.js","webpack:///./node_modules/mathjs/lib/esm/utils/map.js","webpack:///./node_modules/mathjs/lib/esm/core/function/typed.js","webpack:///./node_modules/mathjs/lib/esm/utils/collection.js","webpack:///./node_modules/mathjs/lib/esm/function/utils/isInteger.js","webpack:///./node_modules/mathjs/lib/esm/function/utils/isNumeric.js","webpack:///./node_modules/mathjs/lib/esm/plain/number/utils.js","webpack:///./node_modules/mathjs/lib/esm/function/utils/isPositive.js","webpack:///./node_modules/mathjs/lib/esm/function/utils/isNaN.js","webpack:///./node_modules/mathjs/lib/esm/utils/bignumber/nearlyEqual.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/equalScalar.js","webpack:///./node_modules/mathjs/lib/esm/utils/complex.js","webpack:///./node_modules/mathjs/lib/esm/type/number.js","webpack:///./node_modules/mathjs/lib/esm/plain/number/arithmetic.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/unaryPlus.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/apply.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/cube.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/multiplyScalar.js","webpack:///./node_modules/mathjs/lib/esm/plain/number/bitwise.js","webpack:///./node_modules/mathjs/lib/esm/plain/number/logical.js","webpack:///./node_modules/mathjs/lib/esm/function/special/erf.js","webpack:///./node_modules/mathjs/lib/esm/function/string/format.js","webpack:///./node_modules/mathjs/lib/esm/function/string/oct.js","webpack:///./node_modules/mathjs/lib/esm/plain/number/trigonometry.js","webpack:///./node_modules/mathjs/lib/esm/utils/product.js","webpack:///./node_modules/mathjs/lib/esm/plain/number/combinations.js","webpack:///./node_modules/mathjs/lib/esm/function/probability/util/seededRNG.js","webpack:///./node_modules/mathjs/lib/esm/function/probability/randomInt.js","webpack:///./node_modules/mathjs/lib/esm/type/fraction/function/fraction.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/unaryMinus.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/addScalar.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/sqrt.js","webpack:///./node_modules/mathjs/lib/esm/function/complex/conj.js","webpack:///./node_modules/mathjs/lib/esm/function/string/bin.js","webpack:///./node_modules/mathjs/lib/esm/function/probability/random.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/SparseMatrix.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/function/matrix.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/abs.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/algorithm01.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/algorithm04.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/algorithm10.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/algorithm13.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/algorithm14.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/algorithm03.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/algorithm05.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/algorithm11.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/algorithm12.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/utils/algorithm07.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/diag.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/identity.js","webpack:///./node_modules/mathjs/lib/esm/utils/noop.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/size.js","webpack:///./node_modules/mathjs/lib/esm/function/string/hex.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/round.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/compare.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/smaller.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/larger.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/FibonacciHeap.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/unequal.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/add.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/dot.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/multiply.js","webpack:///./node_modules/mathjs/lib/esm/error/ArgumentsError.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/equalText.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/partitionSelect.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/quantileSeq.js","webpack:///./node_modules/mathjs/lib/esm/plain/number/probability.js","webpack:///./node_modules/mathjs/lib/esm/type/bignumber/function/bignumber.js","webpack:///./node_modules/mathjs/lib/esm/function/utils/numeric.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/utils/improveErrorMessage.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/matrixFromRows.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/subtract.js","webpack:///./node_modules/mathjs/lib/esm/function/relational/equal.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/cross.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/divideScalar.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/solver/lsolve.js","webpack:///./node_modules/mathjs/lib/esm/type/matrix/Spa.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/decomposition/lup.js","webpack:///./node_modules/mathjs/lib/esm/function/algebra/sparse/csSpsolve.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/det.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/inv.js","webpack:///./node_modules/mathjs/lib/esm/function/arithmetic/divide.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/mean.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/variance.js","webpack:///./node_modules/mathjs/lib/esm/type/unit/Unit.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/median.js","webpack:///./node_modules/mathjs/lib/esm/function/statistics/std.js","webpack:///./node_modules/mathjs/lib/esm/function/matrix/eigs.js","webpack:///./node_modules/mathjs/lib/esm/entry/pureFunctionsAny.generated.js","webpack:///./src/components/data/ParamsPanel.vue","webpack:///./src/components/data/ParamsPanel.vue?5779","webpack:///../../../src/components/VCheckbox/VCheckbox.ts","webpack:///./src/components/data/ParamsPanel.vue?aeba","webpack:///./src/components/data/ParamsPanel.vue?9d5c","webpack:///./src/components/data/StatsTable.vue?ec22","webpack:///./src/components/data/StatsTable.vue","webpack:///./src/components/data/StatsTable.vue?4060","webpack:///../../../src/components/VData/VData.ts","webpack:///../../../src/components/VChip/index.ts","webpack:///../../../src/components/VMenu/VMenu.ts","webpack:///../../../src/components/VMenu/index.ts","webpack:///../../../src/components/VCheckbox/VSimpleCheckbox.ts","webpack:///../../../src/components/VSelect/VSelectList.ts","webpack:///../../../src/mixins/filterable/index.ts","webpack:///../../../src/components/VSelect/VSelect.ts","webpack:///../../../src/components/VDataIterator/VDataFooter.ts","webpack:///../../../src/components/VDataIterator/VDataIterator.ts","webpack:///../../../../src/components/VDataTable/mixins/header.ts","webpack:///../../../src/components/VDataTable/VDataTableHeaderMobile.ts","webpack:///../../../src/components/VDataTable/VDataTableHeaderDesktop.ts","webpack:///../../../src/components/VDataTable/VDataTableHeader.ts","webpack:///../../src/util/dedupeModelListeners.ts","webpack:///../../src/util/rebuildFunctionalSlots.ts","webpack:///../../../src/components/VDataTable/Row.ts","webpack:///../../../src/components/VDataTable/RowGroup.ts","webpack:///../../../src/components/VDataTable/VSimpleTable.ts","webpack:///../../../src/components/VDataTable/MobileRow.ts","webpack:///../../../src/components/VDataTable/VDataTable.ts","webpack:///./src/components/data/StatsTable.vue?fdf5","webpack:///./src/components/data/TraceList.vue","webpack:///./src/components/data/TraceList.vue?3e7d","webpack:///../../../src/components/VSlideGroup/VSlideGroup.ts","webpack:///../../../src/components/VChipGroup/VChipGroup.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/components/VSlider/VSlider.ts","webpack:///./src/components/data/TraceList.vue?5c9b","webpack:///./src/components/data/TraceList.vue?30bb","webpack:///./src/views/main/Dashboard.vue","webpack:///./src/views/main/Dashboard.vue?8bbc","webpack:///../../../src/components/VTabs/VTab.ts","webpack:///../../../src/components/VWindow/VWindowItem.ts","webpack:///../../../src/components/VTabs/VTabItem.ts","webpack:///../../../src/components/VTabs/VTabsBar.ts","webpack:///../../../src/components/VWindow/VWindow.ts","webpack:///../../../src/components/VTabs/VTabsItems.ts","webpack:///../../../src/components/VTabs/VTabsSlider.ts","webpack:///../../../src/components/VTabs/VTabs.ts","webpack:///./src/views/main/Dashboard.vue?4882"],"names":["webpackUniversalModuleDefinition","root","factory","module","exports","self","modules","installedModules","__webpack_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","getDefault","getModuleExports","object","property","prototype","hasOwnProperty","p","s","0","incrementalConvexHull","points","randomSearch","length","Error","initialSimplex","slice","orient","apply","initialCoords","Array","initialCell","Simplex","boundary","adjacent","list","verts","j","cell","vertices","adj","v","k","indexOf","triangles","Triangulation","useRandom","insert","compareCell","compareCells","this","lastVisited","GlueFacet","index","compareGlue","a","b","flip","u","BAKED","dimension","simplices","interior","filter","tuple","bakeOrient","code","push","proc","Function","join","test","proto","handleBoundaryDegeneracy","point","toVisit","pop","cellAdj","neighbor","nv","vv","walk","random","initIndex","Math","outerLoop","cellVerts","prev","addPeaks","tovisit","glueFacets","indexOfN","indexOfNeg1","na","vverts","vadj","ncell","opposite","uu","nface","nptr","sort","ai","bi","cells","nc","bcell","cv","ptr","parity","tokenize","tokenizeString","str","opt","generator","tokens","concat","orientation","colormodel","rgb","min","max","fmt","suffix","rgba","hsl","hsla","createLinePlot","options","gl","scene","shader","createShader","attributes","position","location","nextPosition","arcLength","lineWidth","color","pickShader","createPickShader","buffer","createBuffer","vao","createVAO","defaultTexture","ndarray","data","texture","createTexture","wrap","REPEAT","linePlot","LinePlot","update","unpackFloat","bsearch","shaders","identity","distance","sqrt","filterClipBounds","bounds","result","PickResult","tau","dataCoordinate","clipBounds","Infinity","vertexCount","pickId","dashScale","opacity","hasAlpha","dirty","pixelRatio","isTransparent","isOpaque","pickSlots","setPickBase","id","drawTransparent","draw","camera","uniforms","model","view","projection","dashTexture","screenShape","drawingBufferWidth","drawingBufferHeight","TRIANGLE_STRIP","unbind","drawPick","connectGaps","arcLengthArray","pointArray","positions","colors","hadGap","fill_loop","acolor","bcolor","w0","isNaN","isFinite","isArray","t0","prefixSum","dashes","unshift","set","le","setPixels","dispose","pick","selection","ti","x","dataIndex","colorscaleCalc","calc","gd","trace","surfacecolor","vals","containerStr","cLetter","z","d3","isNumeric","NOTEDATA","text","displayLength","ts","notifierContainer","select","selectAll","enter","append","classed","style","each","thisText","note","html","on","transition","killNote","lines","split","duration","delay","thisIndex","splice","remove","LINKEDFILLS","tonextx","tonexty","tonext","linkTraces","plotinfo","cdscatter","group","prevtrace","groupIndex","groupIndices","needsSort","prevGroupIndex","nextGroupIndex","prevUnstackedGroupIndex","stackgroup","fill","_groupIndex","cdscatterSorted","traceA","traceB","prevtraces","visible","_nexttrace","_prevtrace","_ownfill","substr","moduleType","basePlotModule","categories","meta","supplyDefaults","plot","hoverPoints","selectPoints","clamp","dtype","normalize","type","output","isInt","Uint8Array","Uint8ClampedArray","floor","wrapper","n0","insertionSort","quickSort","left","right","sixth","index1","index5","index3","index2","index4","el1","el2","el3","el4","el5","less","great","tmp","compare","pivot1X","pivot1Y","pivot2X","pivot2Y","ptr0","ptr2","ptr4","ptr5","ptr6","ptr7","i1","y","move","comparePivot","swap","rotate","shufflePivot","jptr","px","py","circle","square","diamond","cross","computeTickMarks","axesOptions","glRange","glplot","axesPixels","sceneLayout","fullSceneLayout","ticks","axes","AXES_NAMES","_length","hi","lo","pixelsPerDataUnit","dataScale","abs","_input_range","range","_m","tickModeCached","tickmode","nticks","Lib","constrain","Axes","autoTicks","dataTicks","calcTicks","replace","centerPoint","contourLevels","contourLevelsFromTicks","tlevel","clevel","assign","Calendars","regionalOptions","invalidCalendar","invalidDate","invalidMonth","invalidYear","differentCalendars","local","calendars","_localCals","CDate","calendar","year","month","day","_calendar","_year","_month","_day","_validateLevel","isValid","_exports","pad","substring","BaseCalendar","shortYearCutoff","GregorianCalendar","language","instance","toLowerCase","cal","newDate","substituteDigits","digits","digit","substituteChineseDigits","powers","localNumber","power","units","arguments","date","leapYear","epoch","formatYear","monthOfYear","weekOfYear","daysInYear","dayOfYear","daysInMonth","dayOfWeek","weekDay","extraInfo","add","offset","period","compareTo","toJD","fromJD","jd","toJSDate","fromJSDate","jsd","toString","today","_validate","Date","minMonth","minDay","epochs","monthsInYear","firstMonth","fromMonthOfYear","ord","daysInWeek","_correctAdd","_add","yearMonths","resyncYearMonth","ymd","e","hasYearZero","w","dir","valid","error","jdEpoch","daysPerMonth","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","dateFormat","firstDay","isRTL","checkDate","setHours","setMinutes","setSeconds","setMilliseconds","getHours","getFullYear","getMonth","getDate","cdate","baseCalendar","gregorian","warp","invert","applyHomography","dest","src","Xi","X","out_c","inp_c","wr","eventData","out","pt","cd","pointNumber","cdi","kerning","ctx","canvas","document","createElement","getContext","asciiPairs","createPairs","family","pairs","table","fs","threshold","fontSize","font","pair","width","measureText","kerningWidth","emWidth","leftChar","String","fromCharCode","ascii","hover","makeHoverPointText","pointData","xval","yval","hovermode","stash","rArray","thetaArray","theta","scatterPointData","newPointData","undefined","subplot","isPtInside","xLabelVal","yLabelVal","Color","colorScaleAttrs","hovertemplateAttrs","baseAttrs","extendFlat","overrideAll","makeContourAttr","axLetter","show","valType","dflt","start","editType","end","size","project","defaultLine","usecolormap","highlight","highlightcolor","highlightwidth","attrs","arrayOk","hovertext","hovertemplate","connectgaps","colorAttr","showScaleDflt","autoColorDflt","editTypeOverride","contours","hidesurface","lightposition","lighting","ambient","diffuse","specular","roughness","fresnel","_deprecated","zauto","zmin","zmax","hoverinfo","showlegend","transforms","Plotly","register","formatLabels","fullLayout","labels","ax","_subplot","mockAxis","lonlat","lonLabel","tickText","c2l","latLabel","crossTraceDefaults","fullData","tracei","filli","tracej","xaxis","yaxis","clone","Float32Array","aFunction","fn","that","xmlnsNamespaces","LINE_SPACING","getSize","_selection","_dimension","node","getBoundingClientRect","FIND_TEX","convertToTspans","_context","_callback","tex","attr","MathJax","match","parent","parentNode","empty","svgClass","_promises","Promise","resolve","parseInt","config","texToSVG","_texString","_config","originalRenderer","originalConfig","originalProcessSectionDelay","tmpDiv","Hub","Queue","extendDeepAll","processSectionDelay","Config","messageStyle","tex2jax","inlineMath","displayAlign","menuSettings","renderer","setRenderer","randomID","randstr","visibility","cleanEscapesForTex","LT_MATCH","GT_MATCH","Typeset","glyphDefs","log","svgBBox","_svgEl","_glyphDefs","_svgBBox","newSvg","showText","mathjaxGroup","appendChild","insertBefore","cloneNode","firstChild","height","preserveAspectRatio","overflow","g","stroke","newSvgW","newSvgH","newX","middle","dy","transform","buildSVGText","containerNode","NEWLINES","currentNode","hasLink","nodeStack","currentLine","newLine","lineNode","createElementNS","svg","class","oldNodeStack","enterNode","nodeSpec","nodeType","nodeAttrs","target","href","popup","charAt","onclick","newNode","addTextNode","resetter","RESET_DY","SHIFT_DY","createTextNode","exitNode","innerNode","BR_TAG","parts","SPLIT_TAGS","parti","ONE_TAG","tagType","tagStyle","TAG_STYLES","convertEntities","extra","css","getQuotedMatch","STYLEMATCH","COLORMATCH","HREFMATCH","dummyAnchor","PROTOCOLS","protocol","encodeURI","decodeURI","TARGETMATCH","POPUPMATCH","positionText","sup","sub","span","em","BR_TAG_ALL","_str","re","plainText","opts","len","allowedTags","eLen","oldParts","newParts","prevTag","pLen","pLen2","entityToUnicode","mu","amp","lt","gt","nbsp","times","plusmn","deg","ENTITY_MATCH","fullMatch","innerMatch","fromCodePoint","stringFromCodePoint","stringFromCharCode","alignHTMLWith","_base","container","thisRect","getTop","getLeft","alignH","horizontalAlign","alignV","verticalAlign","bRect","cRect","bottom","top","lineCount","setOrGet","val","thisX","thisY","nodeName","makeEditable","context","_delegate","delegate","dispatch","handlerElement","handleClick","appendEditable","div","cStyle","parseFloat","initialText","fontFamily","background","outline","margin","padding","contenteditable","_editing","textContent","mathjaxClass","edit","editDiv","event","activeElement","blur","which","cancel","input","selectElementContents","_el","el","createRange","selectNodeContents","sel","window","getSelection","removeAllRanges","addRange","focus","immediate","rebind","sceneUpdate","_fullLayout","uid","splomScenes","_splomScenes","reset","matrix","selectBatch","unselectBatch","destroy","matrixOptions","animatable","fillText","isInside","geo","_polygons","contains","x0","x1","xa","c2p","ct","y0","y1","ya","loc","zLabel","makeHoverInfo","flags","hasName","hasLocation","hasZ","hasText","nameOverride","extraText","Drawing","DESELECTDIM","barStyle","resizeText","styleTextPoints","gTrace","di","isBlank","cont","marker","line","dashLine","dash","selectedpoints","selected","connector","lineGroupStyle","scatterAttrs","FORMAT_LINK","impliedEdits","xtype","dx","ytype","transpose","values","zsmooth","hoverongaps","xgap","ygap","zhoverformat","Registry","transitionAxes","edits","transitionOpts","makeOnCompleteCallback","onComplete","t1","t2","raf","easeFn","ease","easing","_transitionData","_interruptCallbacks","cancelAnimationFrame","transitionInterrupt","aobj","xr0","_name","yr0","then","unsetSubplotTransform","now","requestAnimationFrame","doFrame","tInterp","progress","updateSubplot","transitionComplete","xr1","yr1","_defs","clipId","setTranslate","setScale","_offset","traceGroups","setPointGroupScale","setTextPointsScale","hideOutsideRangePoints","xlen","ylen","editX","editY","viewBox","simpleMap","r2l","dx0","dx1","l2r","dy0","dy1","drawOne","skipTitle","redrawComponents","_id","xScaleFactor","yScaleFactor","clipDx","clipDy","fracDx","fracDy","plotDx","plotDy","clipRect","zoomScalePts","zoomScaleTxt","isBuffer","obj","constructor","isSlowBuffer","readFloatLE","_isBuffer","rules","Y","selector","fullSelector","addStyleRule","createCamera","createAxes","axesRanges","createSpikes","createSelect","createFBO","drawTriangle","mouseChange","perspective","ortho","isMobile","tablet","MouseSelect","mouse","screen","dataPosition","roundUpPow10","round","base","pow","ceil","defaultBool","createScene","body","glOptions","premultipliedAlpha","antialias","preserveDrawingBuffer","accumBuffer","preferFloat","accumShader","isOrtho","cameraObject","_ortho","cameraOptions","eye","center","up","zoomMin","zoomMax","enable","disable","spikeOptions","spikes","objects","pickBufferIds","pickBufferCount","pickBuffers","pickDirty","cameraParams","viewShape","contextLost","shape","aspect","aspectRatio","pickRadius","zNear","zFar","fovy","PI","clearColor","autoResize","autoBounds","autoScale","autoCenter","clipToBounds","snapToData","onselect","onrender","oncontextloss","mouseListener","_stopped","getAspectratio","setAspectratio","aspectratio","setBounds","axisIndex","setClearColor","clearRGBA","clear","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","pickShape","resizeListener","clientWidth","clientHeight","innerWidth","innerHeight","nextWidth","nextHeight","reallocPickIds","numObjs","numPick","obj_loop","pickCount","nbuffer","checkContextLoss","isContextLost","enabled","addEventListener","idx","removeEventListener","_mouseRotating","_prevButtons","enableMouseListeners","buttons","prevObj","change","query","objPick","coord","nBounds","prevBounds","redraw","cameraMoved","tick","obb","olo","ohi","boundsChanged","tickSpacing","calcCameraParams","maxS","axesBounds","renderPick","colorMask","depthMask","BLEND","DEPTH_TEST","depthFunc","LEQUAL","buf","begin","bindFramebuffer","FRAMEBUFFER","viewport","CULL_FACE","hasTransparent","LESS","blendEquation","FUNC_ADD","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","render","schema","subplots","rangeselector","layoutAttributes","handleDefaults","counter","head","tail","openEnded","matchBeginning","fullTail","startWithPrefix","RegExp","toIndexedObject","nativeGetOwnPropertyNames","f","windowNames","getOwnPropertyNames","it","getWindowNames","pool","array","cube","bitmask","stride","scalar","pointer","delta","step","pcube","qcube","pdelta","vert","createSurfaceExtractor","args","msg","order","arrays","arrayArguments","scalars","scalarArguments","vertex","phase","getters","typesig","compileSurfaceProcedure","vertexFunc","faceFunc","phaseFunc","scalarArgs","arrayArgs","funcName","vars","ptrStr","stepVal","VERTEX_COUNT","sizeVariable","POOL_SIZE","PHASES","VERTEX_IDS","POINTER","cubeDelta","cubeStep","signFlag","jperm","permBitmask","forLoopBegin","forLoopEnd","TEMPORARY","createLoop","mask","processGridCell","phaseFuncArgs","vertexPredicate","vertexArgs","corner","subset","edge","faceArgs","fillEmptySlice","procedureCode","mallocUint32","freeUint32","nodeTextOffsetHorizontal","nodeTextOffsetVertical","nodePadAcross","sankeyIterations","forceIterations","forceTicksPerFrame","cn","sankey","sankeyLinks","sankeyLink","sankeyNodeSet","sankeyNode","nodeRect","nodeCapture","nodeCentered","nodeLabelGuide","nodeLabel","nodeLabelTextPath","histogram2dCalc","convertColumnData","clean2dArray","interp2d","findEmpties","makeBoundArray","binned","getFromId","isContour","traceIs","isHist","isGL2D","_minDtick","zIn","isArray1D","_x","_y","_z","makeCalcdata","_emptypoints","noZsmooth","_input","warn","avgdx","maxErrX","avgdy","maxErrY","maxRowLength","xIn","xArray","yIn","yArray","_extremes","findExtremes","cd0","_text","_hovertext","xCenter","yCenter","xRanges","yRanges","pts","coloring","dummyTrace","xcalendar","ycalendar","xfill","yfill","Plots","svgTextUtils","Titles","axAttrs","cleanTicks","constants","ONEAVGYEAR","ONEAVGMONTH","ONEDAY","ONEHOUR","ONEMIN","ONESEC","MINUS_SIGN","BADNUM","alignmentConstants","MID_SHIFT","CAP_SHIFT","OPPOSITE_SIDE","setConvert","autoType","axisIds","id2name","name2id","cleanId","listIds","getFromTrace","autorange","getAutoRange","coerceRef","containerIn","containerOut","extraOption","axlist","_subplots","refAttr","attrDef","coerce","coercePosition","axRef","cleanPos","pos","ensureNumber","fraction2r","cleanPosition","axIds","_redrawOneComp","moduleName","methodName","stashName","shortCircuit","method","getComponentMethod","indices","ind","getDataConversions","targetArray","d2cTarget","_categories","d2c","c2d","toNum","getDataToCoordFunc","counterLetter","minDtick","newDiff","newFirst","allow","_forceTick0","saveRangeInitial","overwrite","axList","hasOneAxisChanged","isNew","_rangeInitial","hasChanged","saveShowSpikeInitial","allSpikesEnabled","_showSpikeInitial","showspikes","_showspikes","_cartesianSpikesEnabled","autoBin","nbins","is2d","dummyAx","dataMin","aggNums","dataMax","_dataSpan","c2r","dtick","tick0","size0","distinctData","distinctVals","msexp","minDiff","LN10","minSize","roundUp","stdev","binEnd","finalSize","binStart","tickIncrement","tickFirst","autoShiftNumericBins","edgecount","midcount","intcount","blankCount","nearEdge","dataCount","binshift","autoShiftMonthBins","stats","findExactDates","exactDays","numMonths","Number","exactYears","exactMonths","nextBinStart","prepTicks","rng","minPx","nt","tickfont","autoTickRound","arrayTicks","tickvals","ticktext","ticksOut","r0expanded","r1expanded","tickMin","tickMax","tickVal2l","d2l_noadd","d2l","vali","tickTextObj","_tmin","startTick","endTick","axrev","tickVals","isDLog","xPrevious","maxTicks","minor","isAngular","_tmax","_prevDateHead","_inCalcTicks","roundBase10","roundBase24","roundBase60","roundDays","roundLog1","roundLog2","roundAngles","roundDTick","roughDTick","roundingSet","_tickexponent","_tickround","tick0ms","tick0str","tick0len","tick1len","map","r2d","maxend","rangeexp","isSIFormat","exponentformat","beyondSI","tf","fontColor","getBase","dateTick0","roughX2","olddtick","axSign","tType","dtSigned","incrementMonth","tickset","x2","frac","mod","sRound","r0","tmin","dtNum","mult","newDTick","cnt","noSuffixPrefix","arrayMode","extraPrecision","axType","isHidden","showAttr","firstOrLast","first","last","hideexp","showexponent","formatDate","tr","hoverformat","getTickFormat","M","S","headStr","dateStr","_dateFormat","_extraFormat","splitIndex","formatLog","tickformat","dtChar0","numFormat","absP","exponentFormat","firstChar","formatCategory","tt","formatMultiCategory","cats","tt2","text2","formatAngle","thetaunit","num","num2frac","almostEq","precision","findPrecision","number","gcd","findGCD","deg2rad","isNeg","formatLinear","tickprefix","showtickprefix","ticksuffix","showticksuffix","tickson","showdividers","inbounds","l2p","xbnd","hoverLabelText","val2","logOffScale","tx","SIPREFIXES","exponent","fmtoverride","tickRound","separatethousands","ah","_numFormat","signedExponent","dp","numSeparate","_separators","getSecondaryLabelVals","lookup","interp","tickDataFn","axInfo","approxTitleDepth","title","extraLines","clipEnds","selectTickLabel","gTick","mj","axAutoMarginID","axMirrorAutoMarginID","rangeSliderAutoMarginID","mergeAxisGroups","intoSet","fromSet","swapAxisGroup","xIds","yIds","xFullAxes","yFullAxes","layout","allAxKeys","keys","noSwapAttrs","numericTypes","keyi","xVal","yVal","allEqual","coerceLinearX","coerceLinearY","xVali","yVali","swapAxisAttrs","_dfltTitle","annotations","ann","xref","yref","swapAttrs","dfltTitle","np","nestedProperty","tickstop","stopi","convertFn","leftDtick","rightDtick","convertToMs","compareLogTicks","priority","leftPriority","rightPriority","isProperLogStop","isLeftDtickNull","isRightDtickNull","isDtickInRangeLeft","isDtickInRangeRight","tickformatstops","dtickrange","getSubplots","subplotObj","allSubplots","cartesian","gl2d","findSubplotsWithAxis","aParts","bParts","axMatch","subplotsWithAx","sp","makeClipPaths","_hasOnlyLargeSploms","fullWidth","fullHeight","xaList","yaList","clipList","axClips","_clips","_uid","exit","arg","_paper","_plots","xaxislayer","yaxislayer","gridlayer","zerolinelayer","_infolayer","syncOrAsync","axId","axDone","_r","_rl","mainLinePosition","_mainLinePosition","mainMirrorPosition","_mainMirrorPosition","mainAxLayer","_mainSubplot","_vals","mirror","_selections","_tickAngles","_prevTickAngles","_depth","llbboxes","getLabelLevelBbox","cls","calcLabelLevelBbox","thisLabel","bb","bBox","valsClipped","transFn","makeTransFn","boundaryVals","getBoundaryVals","_push","bndIndex","xb","gridVals","_gridVals","dividerVals","getDividerVals","current","_subplotsWith","finishedGrids","counterAxis","mainCounterID","_mainAxis","gridPath","drawGrid","layer","path","drawZeroLine","tickSigns","getTickSigns","tickSubplots","mirrorTickPath","fullTickPath","tickPath","mainTickPath","makeTickPath","_anchorAxis","dividerLookup","drawTicks","_linepositions","linepositions","spTickPath","seq","drawLabels","labelFns","makeLabelFns","bboxKey","standoff","repositionOnUpdate","secondary","side","drawDividers","dividers","dividercolor","crispRound","dividerwidth","hasRangeSlider","llbbox","mirrorPush","rangeSliderPush","sMirror","getPxPosition","outsideTickLen","ticklen","automargin","domainIndices","reverse","rExtra","xr","lExtra","xl","bExtra","yb","tExtra","yt","anchor","domain","linewidth","_counterDomainMin","_counterDomainMax","autoMargin","drawTitle","titleStandoff","showticklabels","avoid","tickLabels","translation","getTranslate","offsetLeft","offsetTop","propContainer","propName","placeholder","sideOpposite","main","shift","sgn","angle","ticksOnOutsideLabels","labelStandoff","labelShift","rad","cos","sin","showline","ff","flipIt","xFn","yFn","anchorFn","heightFn","h","tickangle","crisp","tickcolor","tickwidth","counterAx","showgrid","shouldShowZeroLine","isArrayMode","xi","grid","_gw","gridwidth","gridcolor","zl","da","db","idSort","zerolinecolor","zerolinewidth","tickAngle","prevAngle","labelsReady","positionLabels","nLines","lineHeight","anchorHeight","mjShift","newPromise","autoangle","allLabelsReady","all","_redrawFromAutoMarginCount","fixLabelOverlaps","maxFontSize","lbbArray","vLen","rotate90","bBoxIntersect","gap","lbb","done","anchorAxis","gs","_size","zeroline","anyCounterAxLineAtZero","mainCounterAxis","zeroPosition","lineNearZero","ax2","tolerance","closeEnough","pos2","linePositions","mainplotinfo","overlays","counterLetterAxes","counterAxis2","hasBarsOrFill","_fullData","allowAutoMargin","traces","axGroups","makeAxisGroups","groups","groupsi","yi","groupj","group0","v100","kernels","exp","makeKDE","calcItem","kernel","bandwidth","factor","sum","getPositionOnKdePath","valuePx","posLetter","valLetter","pointOnPath","findPointOnPath","pathLength","posCenterPx","posOnPath0","getKdeValue","valueDist","extractVal","kde","posDensityScale","Iterator","callable","autoBind","defineProperties","TypeError","__list__","__context__","__nextIndex__","_onAdd","_onDelete","_onClear","_next","__redo__","_unBind","next","_createResult","_resolve","off","forEach","redo","iterator","_supply","layoutIn","layoutOut","traceType","category","hasTraceType","supplyLayoutDefaults","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","has","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","vertexNormals","faces","specifiedEpsilon","N","normals","epsilon","v0","v1","v2","d01","m01","d21","m21","norm","faceNormals","handleXYDefaults","traceIn","traceOut","handleCalendarDefaults","minRowLength","Scene2D","layoutGlobalAttrs","Cartesian","fxAttrs","getSubplotData","idRoot","idRegex","attrRegex","_has","layoutAttrOverrides","baseLayoutAttrOverrides","plot_bgcolor","hoverlabel","subplotIds","subplotId","fullSubplotData","_scene2d","graphDiv","querySelector","staticPlot","plotGlPixelRatio","calcdata","clean","newFullData","newFullLayout","oldFullData","oldFullLayout","oldSceneKeys","oldSubplot","subplotData","drawFramework","toSVG","imageData","toImage","_glimages","xmlns","updateFx","dragmode","sprintf","glConstants","shaderName","addLineNumbers","formatCompilerError","errLog","typeName","FRAGMENT_SHADER","longForm","shortForm","errorStrings","errors","errorString","lineNo","trim","long","short","colorscaleDefaults","supplyIsoDefaults","defaultColor","isomin","isomax","dim","capDim","sliceDim","prefix","projNames","axesNames","lonaxisSpan","lataxisSpan","scopeDefaults","world","lonaxisRange","lataxisRange","projType","projRotate","usa","europe","projParallels","asia","africa","clipPad","landColor","waterColor","locationmodeToLayer","sphereSVG","fillLayers","ocean","land","lakes","lineLayers","subunits","countries","coastlines","rivers","frame","layers","layersForChoropleth","layerNameToAdjective","doubleBits","SMALLEST_DENORM","nextafter","NaN","pack","solid","dot","longdash","dashdot","longdashdot","crossTraceCalc","colorbar","styleOnSelect","countryRegex","turfArea","turfCentroid","turfBbox","loggers","isPlainObject","polygon","countryIds","locationmodeToIdFinder","countryNameToISO3","countryName","iso3","getTraceGeojson","geojson","PlotlyGeoAssets","geojsonIn","locationToFeature","locationmode","features","filteredFeatures","locationId","properties","gu","feature2polygons","feature","appendPolygon","geometry","coords","coordinates","polygons","doesCrossAntiMerdian","_pts","tester","crossAntiMeridianIndex","stitch","si","extractTraceFeature","calcTrace","featuresOut","appendFeature","fIn","featureidkey","fOut","findCentroid","poly","maxArea","polyi","area","default","featuresIn","fetchTraceGeoData","calcData","promises","fetch","url","reject","json","err","status","wait","interval","setInterval","clearInterval","computeBbox","rat","mul","muls","sign","bn2num","words","scaleAndAdd","scale","hasColorscale","calcColorscale","subTypes","calcMarkerColorscale","hasLines","hasMarkers","StringIterator","setPrototypeOf","__length__","char","charCodeAt","keyFun","repeat","descend","unwrap","__webpack_exports__","nodes","force","sx","sy","initialize","_","constant","jiggle","add_add","tree","xm","ym","xp","yp","_root","leaf","_x0","_y0","_x1","_y1","src_quad","defaultX","defaultY","quadtree","Quadtree","addAll","leaf_copy","copy","treeProto","collide_x","vx","collide_y","vy","child","source","cover","xz","yz","visit","extent","find","radius","y2","q","x3","y3","quads","d2","retainer","previous","removeAll","callback","visitAfter","collide","radii","strength","iterations","ri","ri2","prepare","quad","rj","link_find","nodeById","nodeId","src_link","links","strengths","distances","count","bias","defaultStrength","link","alpha","initializeStrength","initializeDistance","noop","Dispatch","parseTypenames","typenames","types","typename","T","taskHead","taskTail","src_dispatch","timer_frame","timeout","clockLast","clockNow","clockSkew","clock","performance","setFrame","setTimeout","clearNow","Timer","_call","_time","timer","time","restart","wake","timerFlush","nap","sleep","poke","clearTimeout","simulation_x","simulation_y","stop","initialAngle","src_simulation","simulation","alphaMin","alphaDecay","alphaTarget","velocityDecay","forces","stepper","fx","fy","initializeNodes","initializeForce","closest","manyBody","distanceMin2","distanceMax2","theta2","accumulate","weight","distanceMin","distanceMax","radial","radiuses","d3_force_src_x","d3_force_src_y","lookupCarpet","setContours","carpet","_carpetTrace","carpetdata","tracedata","_defaultColor","heatmappishCalc","a0","b0","aax","aaxis","bax","baxis","_a","_b","calcMarkerSize","convert","TOO_MANY_POINTS","radialAxis","radialaxis","angularAxis","angularaxis","_theta","ppad","sizeAvg","twoProduct","robustSum","robustDiff","robustScale","cofactor","generateSum","expr","makeProduct","toks","determinant","makeSquare","terms","neg","posExpr","negExpr","funcArgs","CACHED","inSphere0","inSphere1","inSphere2","slowInSphere","generateInSphereTest","procArgs","noMultiCategory","multiCategory","isArrayOrTypedArray","moreDates","inc","dcnt","ncnt","seen","stri","isDateTime","curvenums","curvecats","cleanNumber","linearOK","gregorianCalendar","TaiwanCalendar","yearsOffset","_t2gYear","_g2tYear","taiwan","_slicedToArray","arr","sliceIterator","_arr","_n","_d","_e","_s","_i","TAU","mapToEllipse","_ref","rx","ry","cosphi","sinphi","centerx","centery","approxUnitArc","ang1","ang2","tan","vectorAngle","ux","uy","acos","arcToBezier","_ref2","cx","cy","_ref2$xAxisRotation","xAxisRotation","_ref2$largeArcFlag","largeArcFlag","_ref2$sweepFlag","sweepFlag","curves","pxp","pyp","lambda","_getArcCenter","getArcCenter","rxsq","rysq","pxpsq","pypsq","radicant","centerxp","centeryp","vx1","vy1","vx2","vy2","_getArcCenter2","ratio","segments","curve","_mapToEllipse","_mapToEllipse2","_mapToEllipse3","arraysToCalcdata","binFunctions","normFunctions","doAvg","getBinSpanLabelRound","calcAllAutoBins","pa","mainData","_overlayEdgeCase","pos0","autoVals","cumulativeSpec","binAttr","groupName","binOpts","_histogramBinOpts","isOverlay","barmode","r2c","cleanBound","cleanDate","setBound","bins","newBins","allPos","isFirstVisible","has2dMap","hasHist2dContour","mainDatai","dirs","_autoBin","newBinSpec","sizeFound","handleSingleValueOverlays","overlaidTraceGroup","getConnectedHistograms","xid","yid","pastThisTrace","singleValuedTraces","resulti","binSpeci","isSingleValued","dataVals","cumulative","currentbin","direction","traceInputBins","traceBinOptsCalc","mainStart","startIn","hasStart","startFound","traceStart","newStart","mainEnd","endIn","hasEnd","endFound","traceEnd","autoBinAttr","i2","counterData","binsAndPos","binSpec","nonuniformBins","binEdges","counts","inputPoints","total","histnorm","func","histfunc","densityNorm","rawCounterData","sizeInit","binFunc","normFunc","isAvg","pr2c","roundFn","nMax","uniqueValsPerBin","leftGap","rightGap","ptNumber2cdIndex","posi","findBin","cdf","currentBin","vi","prevSum","firstHalfPoint","nextHalfPoint","seriesLen","firstNonzero","lastNonzero","ph0","ph1","width1","tagSelected","prevRow","thisPt","neighborCount","newNeighborHash","foundNewNeighbors","empties","neighborHash","noNeighborList","nextRow","row","blank","rowLength","handleSampleDefaults","handleContoursDefaults","handleStyleDefaults","coerce2","Colorscale","lineColor","cscale","extractOpts","colorscale","constHalf","cdimage","imageLayer","makeTraceGroups","temp","plotGroup","imageWidth","imageHeight","ipx","jpx","ipx0","ipx1","jpx0","jpx1","_scaler","fillStyle","fillRect","image3","toDataURL","getAxisGroup","Sieve","setGroupPositions","sa","calcTraces","excluded","included","initBase","scalendar","hasB","hasBase","setGroupPositionsInOverlayMode","setGroupPositionsInGroupMode","sieve","sepNegVal","overlapNoMerge","setOffsetAndWidthInGroupMode","distinctPositions","nTraces","overlap","barGroupWidth","groupId","alignmentGroups","_alignmentOpts","barWidthPlusGap","offsetFromCenter","alignmentGroupOpts","alignmentgroup","nOffsetGroups","offsetGroups","barWidth","groupgap","_offsetIndex","barwidth","poffset","bargroupwidth","bardelta","binWidth","applyAttributes","setBarCenterAndWidth","updatePositionAxis","unhideBarsWithinTrace","inTraceSieve","bar","put","sieveBars","normalizeBars","setBaseAndTop","setGroupPositionsInStackOrRelativeMode","setOffsetAndWidth","stackBars","fullTrace","isFunnel","sLetter","getAxisLetter","tozero","padded","_outmost","collectExtents","pLetter","extents","pMin","pMax","roundFactor","poffsetIsArray","p0","p1","pVal","s0","s1","newPoffset","calcTrace0","initialPoffset","_width","initialBarwidth","newBarwidth","barwidthIsArray","calcBar","allowMinDtick","vpad","calcBarOffset","calcBarWidth","allBaseAboveZero","sTop","sTiny","sMin","l2c","sMax","needsPadding","fullTraces","calcTracesHorz","calcTracesVert","barnorm","bargap","bargroupgap","fails","cellPad","columnExtentOffset","columnTitleOffset","emptyHeaderHeight","latexCheck","goldenRatio","lineBreaker","maxDimensionCount","overdrag","releaseTransitionDuration","releaseTransitionEase","scrollbarCaptureWidth","scrollbarHideDelay","scrollbarHideDuration","scrollbarOffset","scrollbarWidth","transitionDuration","transitionEase","uplift","wrapSpacer","wrapSplitCharacter","tableControlView","scrollBackground","yColumn","columnBlock","scrollAreaClip","scrollAreaClipRect","columnBoundary","columnBoundaryClippath","columnBoundaryRect","columnCells","columnCell","cellRect","cellText","cellTextHolder","scrollbarKit","scrollbar","scrollbarSlider","scrollbarGlyph","scrollbarCaptureZone","twoSum","scaleLinearExpansion","pq","scales","sequential","Reds","sequentialminus","Blues","diverging","RdBu","coloraxis","_isSubplotObj","noColorAxis","barAttrs","lineAttrs","texttemplateAttrs","directionAttrs","dirTxt","measure","eventDataKeys","textinfo","extras","texttemplate","textposition","insidetextanchor","textangle","textfont","insidetextfont","outsidetextfont","constraintext","cliponaxis","increasing","decreasing","totals","offsetgroup","tubex","tubey","tubez","tubeu","traceCoordinate","tubev","tubew","divergence","handleStackDefaults","handleMarkerDefaults","handleLineDefaults","handleLineShapeDefaults","handleTextDefaults","handleFillColorDefaults","stackGroupOpts","defaultMode","PTS_LINESONLY","gradient","dfltHoverOn","fillDflt","markerColor","hoveron","errorBarsSupplyDefaults","axis","inherit","coerceSelectionMarkerOpacity","setCursor","csr","BN","cmp","1","mergeArray","customdata","mergeArrayCastPositive","symbol","markerLine","markerGradient","fontAttrs","anim","groupnorm","stackgaps","smoothing","simplify","fillcolor","symbolList","maxdisplayed","sizeref","sizemin","sizemode","unselected","colorEditType","getTopojsonFeatures","geoJsonUtils","geoUtils","calcGeoJSON","calcPt","geoLayout","locations","topojson","lonArray","latArray","fitbounds","bboxGeojson","lon","lonaxis","_ax","lat","lataxis","scatterLayer","frontplot","gTraces","removeBADNUM","lineCoords","calcTraceToLineCoords","lineData","makePolygon","makeLine","makeBubbleSizeFn","convertTextOpts","appendArrayPointValue","initContainer","makeBlank","paint","getFillFunc","blankFillFunc","isBADNUM","isVisible","hasFill","hasCircles","hasSymbols","circleOpts","makeCircleOpts","colorFn","sizeFn","opacityFn","arrayColor","arraySize","arrayOpacity","addTraceOpacity","makeColorScaleFuncFromTrace","mo","fns","props","mcc","mc","mrc","ms","makeSelectedPointStyleFns","selectedOpacityFn","selectedColorFn","selectedSizeFn","size2radius","makeSymbolGeoJSON","fillSymbol","_module","pointValues","_meta","texttemplateString","_d3locale","mx","iconSize","textOpts","choroplethAttrs","below","Template","handleDomainDefaults","defaults","handleSubplotDefaults","subplotLayoutIn","subplotLayoutOut","subplotType","subplotAttributes","partition","ids","idsLength","baseId","newContainer","uirevision","dfltDomains","filterOps","coerceValue","operation","coercedValue","hasArrayValue","COMPARISON_OPS2","INTERVAL_OPS","SET_OPS","makeRangeSettings","makeInequalitySettings","sampleLetter","aggLetter","handleTickValueDefaults","handleTickMarkDefaults","handleTickLabelDefaults","handleCategoryOrderDefaults","handleLineGridDefaults","axisNames","contIn","contOut","bgColor","combine","paper_bgcolor","sector","axName","coerceAxis","axIn","axOut","_attr","_traceIndices","_expandedIndex","dataAttr","axisName2dataArray","handleAxisTypeDefaults","axData","dfltColor","dfltFontColor","autoRange","isValidRange","cleanRange","dfltRange","coerceFont","counterclockwise","clockwise","tickSuffixDflt","outerTicks","blend","showLine","showGrid","noZeroLine","UndoManager","undoCommands","isExecuting","execute","command","action","setCallback","callbackFunc","undo","hasUndo","hasRedo","getCommands","getPreviousCommand","getIndex","Scene","counterRegex","sceneIds","sceneId","fullSceneData","_scene","viewInitial","oldSceneKey","sceneNum","process","global","isFunction","vertxNext","customSchedulerFn","asap","queue","flush","scheduleFlush","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","isWorker","importScripts","MessageChannel","useSetTimeout","globalSetTimeout","onFulfillment","onRejection","_arguments","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","promise","useNextTick","nextTick","useMutationObserver","observer","observe","characterData","useMessageChannel","channel","port1","onmessage","port2","postMessage","attemptVertx","vertx","runOnLoop","runOnContext","useVertxTimer","GET_THEN_ERROR","ErrorObject","getThen","handleMaybeThenable","maybeThenable","then$$","handleOwnThenable","thenable","fulfill","_reject","reason","handleForeignThenable","sealed","tryThen","fulfillmentHandler","rejectionHandler","_label","selfFulfillment","objectOrFunction","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","TRY_CATCH_ERROR","hasCallback","succeeded","failed","tryCatch","cannotReturnOwn","Enumerator","Constructor","_instanceConstructor","_remaining","_enumerate","validationError","resolver","nextId","needsResolver","initializePromise","resolvePromise","rejectPromise","needsNew","polyfill","promiseToString","cast","_eachEntry","entry","resolve$$","_then","_settledAt","_willSettleAt","state","enumerator","entries","race","_setScheduler","setScheduler","scheduleFn","_setAsap","setAsap","asapFn","_asap","_catch","versions","getPrototypeOf","d3Hierarchy","makeColorScaleFn","makePullColorFn","generateExtendedColors","ALMOST_EQUAL","sunburstExtendedColorWays","treemapExtendedColorWays","getId","hasIds","parents","hasValues","parent2children","refs","isValidKey","isValidVal","pid","label","dummyId","hasMultipleRoots","impliedRoots","hasImpliedRoot","stratify","parentId","message","hierarchy","branchvalues","children","partialSum","reduce","countDescendants","nChild","branches","leaves","_values","pullColor","scaleColor","hasColors","_hasColorscale","_runCrossTraceCalc","desiredType","colorWay","colorMap","dfltColorCount","pickColor","cursorset","getCursor","xanchor","yanchor","alias","t3","Icons","modeBarButtons","handleCartesian","ev","button","currentTarget","astr","getAttribute","mag","r1","fixedrange","rangeInitial","rangeNow","rangeNew","_isHoriz","setAttribute","handleDrag3d","gl3d","layoutUpdate","val2d","handleCamera3d","didUpdate","getNextHover3d","_previousVal","currentSpikes","hovermodeAStr","spikeAStr","handleGeo","geoIds","newScale","resetView","getNextHover","toggleHover","newHover","handleMapboxZoom","mapbox","aObj","zoom","viewKeys","format","toImageButtonOptions","icon","click","notifier","isIE","filename","catch","sendDataToCloud","disk","editInChartStudio","pencil","zoom2d","zoombox","pan2d","pan","select2d","selectbox","lasso2d","lasso","zoomIn2d","zoom_plus","zoomOut2d","zoom_minus","autoScale2d","autoscale","resetScale2d","home","hoverClosestCartesian","tooltip_basic","gravity","hoverCompareCartesian","tooltip_compare","zoom3d","pan3d","orbitRotation","tableRotation","resetCameraDefault3d","resetCameraLastSave3d","movie","hoverClosest3d","toggle","handleHover3d","zoomInGeo","zoomOutGeo","resetGeo","hoverClosestGeo","hoverClosestGl2d","hoverClosestPie","resetViewSankey","_viewInitial","resetViews","toggleSpikelines","spikeline","setSpikelineVisibility","areSpikesOn","resetViewMapbox","zoomInMapbox","zoomOutMapbox","$","$reduce","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","forced","callbackfn","multiply","a00","a01","a02","a03","a10","a11","a12","a13","a20","a21","a22","a23","a30","a31","a32","a33","b1","b2","b3","getModuleCalcData","parcatsPlot","cdModuleAndOthers","hadTable","hasTable","_paperdiv","isBrowser","detect","supported","foo","trzy","annAttrs","templatedArray","ay","xshift","yshift","align","valign","bgcolor","bordercolor","borderpad","borderwidth","showarrow","arrowcolor","arrowhead","startarrowhead","arrowside","arrowsize","startarrowsize","arrowwidth","startstandoff","captureevents","classof","regexpExec","R","exec","from","Boolean","findMedian","boxes","mid","elemSize","pivot","pivot0","value0","pivot1","value1","pivot2","value2","aPtr","bPtr","partitionStartLessThan","genPartition","boxPtr","histogramAttrs","makeBinAttrs","heatmapAttrs","nbinsx","xbins","nbinsy","ybins","autobinx","autobiny","bingroup","xbingroup","ybingroup","DOMIterables","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","axesProperties","params","cubeParams","m4mul","mvp","ranges","RANGES","frustum","getPlanes","m4transpose","SCRATCH_X","i_loop","Q","splitPoly","positive","grad","v4transformMat4","AxesRange3D","SCRATCH_P","SCRATCH_Q","vec3","vec4","GRID_TYPES","createTubes","streams","colormap","maxDivergence","minDistance","maxNorm","velocities","tubes","stream","divergences","vectors","previousVerts","currentVerts","intensities","previousIntensity","currentIntensity","currentVector","previousVector","fwd","a1","tmp1","tmp2","tmp3","vertexIntensity","streamToTube","tube","newCell","findLastSmallerIndex","findMinSeparation","xs","minSeparation","vectorField","startingPositions","maxLength","tubeSize","absoluteTubeSize","gridFill","gridInfo","reversedX","reversedY","reversedZ","filled","getVelocity","meshgrid","z0","z1","x0off","x1off","y0off","y1off","z0off","z1off","mX0","mX1","mY0","mY1","mZ0","xf","yf","zf","v000","v001","v010","v011","v101","v110","v111","c00","c01","c10","c11","lerp","c0","c1","sampleMeshgrid","getDivergence","subtract","vz","minX","minY","minZ","maxX","maxY","maxZ","inBounds","maxStepSize","maxStepSizeSq","ys","zs","zi","xSep","ySep","zSep","calculateMinPositionDistance","op","dv","dvLength","sqLen","squaredLength","squaredDistance","tubeScale","createMesh","createTubeMesh","handleAnnotationCommonDefaults","annIn","annOut","borderColor","borderOpacity","borderWidth","showArrow","annotation","hoverText","globalHoverLabel","hoverBG","hoverBorder","contrast","unique","sorted","unique_pred","unique_eq","robustDot","planeT","plane","lerpW","wa","wb","splitPolygon","negative","classRe","functionToString","$forEach","tablePlot","polybool","Fx","throttle","makeEventData","clearGlCanvases","redrawReglTraces","MINSELECT","filteredPolygon","polygonTester","getAxId","selectOnClick","evt","xAxes","yAxes","dragOptions","polygonOutlines","searchTraces","searchInfo","currentSelectionDef","selectionTester","thisTracesSelection","pointOrBinSelected","hoverData","_hoverdata","sendEvents","clickmode","isHoverDataSet","hoverOnBox","coerceSelectionsCache","clickedPtInfo","extractClickedPtInfo","hoverDatum","pointNumbers","binNumber","determineSearchTraces","isOnlyThisBinSelected","tracesWithSelectedPts","isOnlyOnePointSelected","isPointOrBinSelected","updateSelectedState","clearSelectionsCache","emit","shiftKey","newPointSelectionDef","multiTester","selectionDefs","fillSelectionItem","drawSelection","mergedPolygons","isPointSelectionDef","newPointNumTester","pointSelectionDef","xmin","xmax","ymin","ymax","omitFirstEdge","idxWantedTrace","isRect","degenerate","testers","contained","selectingOnSameSubplot","_lastSelectedSubplot","hasModifierKey","altKey","clearSelect","xAxisIds","yAxisIds","_xaxes","_yaxes","info","createSearchInfo","sankeyInfo","outlines","paths","ppts","ptNum","ptNums","ptNumToTest","fullInputTrace","_fullInput","tracePreGUI","_tracePreGUI","pointIndices","pointIndex","hasRegl","node3","nodeRangePlot3","zoomlayer","_zoomlayer","prepSelect","startX","startY","filterPoly","currentPolygon","zoomLayer","dragBBox","element","path0","pw","xaxes","ph","yaxes","allAxes","BENDPX","fillRangeItems","corners","throttleID","SELECTID","p2r","p2d","axValue","ascending","dataPts","lassoPoints","filtered","moveFn","selectdirection","addPt","mergePolygons","difference","regions","inverted","union","SELECTDELAY","thisSelection","traceSelection","traceSelections","clickFn","numClicks","doneFn","doneFnCompleted","rationalize","handleArrayContainerDefaults","stepDefaults","stepIn","stepOut","gauge","steps","_hasNumber","_hasDelta","_hasGauge","_range","bignumberFontSize","deltaFontSize","gaugeIn","gaugeOut","axisIn","axisOut","auto","coerceGauge","coerceGaugeAxis","defaultNumberFontSize","relative","_scaleNumbers","_isBullet","_isAngular","valueThickness","handleItemDefaults","sizeRef","sizeMin","baseFn","baseSize","interactConstants","numStripRE","titleClass","editAttr","prop","traceIndex","containerGroup","isplaceholder","txt","editable","templateString","elShouldExist","ensureSingle","titleLayout","titleEl","scootTitle","transformVal","fontWeight","previousPromises","titleElIn","titleGroup","backside","shiftSign","titlebb","paperbb","maxshift","maxShift","avoidbb","shiftTemplate","setPlaceholder","SHOW_PLACEHOLDER","HIDE_PLACEHOLDER","allBlankCharCodes","original","locationCache","workingPath","workingTextWidth","segmentsIntersect","x4","y4","det","perpDistance2","xab","yab","llab","xac","yac","fcAB","xbc","ybc","crossProduct","segmentDistance","x12","y12","x34","y34","ll12","ll34","dist2","getTextLocation","totalPathLen","positionOnPath","textWidth","getPointAtLength","atan","pCenter","clearLocationCache","getVisibleSegment","pt0","ptTotal","pTotal","getTotalLength","getDistToPlot","distToPlot","isClosed","diff","iterationLimit","handleXYZDefaults","handleConstraintDefaults","isConstraint","convexHull1d","convexHull2d","convexHullnd","convexHull","ms2DateTime","dateTime2ms","numConstants","FP_SAFE","LOG_CLIP","fromLog","isValidCategory","toLog","clip","dt2ms","msecTenths","msRounded","ms2dt","getCategoryName","setCategoryIndex","_categoriesMap","curLength","getCategoryIndex","getCategoryPosition","p2l","p2c","d2r","l2d","d2p","r2p","r2c_just_indices","setupMultiCategory","traceIndices","matchGroups","_axisMatchGroups","axId2","arrayIn","ind0","ind1","rl0","rl1","r2fraction","rangeAttr","DFLTRANGEY","DFLTRANGEX","rangemode","linCenter","MIN_MS","MAX_MS","usePrivateRange","overlaying","_replotting","arrayOut","isTypedArray","subarray","setMultiCategoryIndex","isPtWithinRange","clearCalc","emptyCategories","found","categoriesMap","_initialCategories","sortByInitialCategories","affectedTraces","_matchGroup","locale","timeFormat","utc","separators","numberFormat","TEXTPAD","pi","tauEpsilon","Path","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","arc","ccw","cw","rect","src_path","point_x","point_y","linkSource","linkTarget","link_link","argv","curveHorizontal","linkHorizontal","dragElement","makeDragBox","DRAGGERSIZE","initInteractions","mainplot","maindrag","onmousemove","_rehover","_hoversubplot","_lasthover","onmouseout","_dragging","unhover","showAxisDragHandles","hoverLayer","_hoverlayer","onmousedown","cursor","_draggers","az","zOld","rowlen","collen","getCollen","old2new","cleanZvalue","padOld2new","axisMapping","axMapping","traceCategories","xMap","yMap","zNew","removeElement","elParent","removeChild","addRelatedStyleRule","styleString","getElementById","styleSheet","sheet","insertRule","addRule","getGraphDiv","gdElement","isPlotDiv","HTMLElement","deleteRelatedStyleRule","ThaiCalendar","thai","Parser","DOMParser","ModeBar","graphInfo","modeBarId","className","displayModeBar","modebar","bgSelector","activecolor","needsNewButtons","hasButtons","needsNewLogo","hasLogo","displaylogo","needsNewLocale","removeAllButtons","updateButtons","watermark","logoGroup","getLogo","childNodes","updateActiveButton","_this","buttonElements","buttonsNames","buttonGroup","createGroup","buttonConfig","buttonName","createButton","createIcon","question","thisIcon","iconHeight","ascent","descent","svgNS","parseFromString","buttonClicked","dataAttrClicked","thisval","isToggleButton","button3","currentButtons","newplotlylogo","createModeBar","modeBar","_modebardiv","_privateplot","getBuiltIn","subtypes","lonlat2","modHalf","xy","oppAxisAttrs","helpers","rangeslider","calcAutorange","makeData","autoMarginOpts","WeakMapPoly","isValue","ensureValue","randomUniq","getIterator","forOf","toStringTagSymbol","isNative","objHasOwnProperty","iterable","WeakMap","delete","__weakMapData__","handleGroupingDefaults","posAxId","alignmentOpts","alignmentIndex","offsetGroupOpts","offsetIndex","handleText","moduleHasSelected","moduleHasUnselected","moduleHasConstrain","moduleHasCliponaxis","moduleHasTextangle","moduleHasInsideanchor","hasPathbar","hasBoth","hasInside","hasOutside","dfltFont","insideTextFontDefault","isColorInheritedFromLayoutFont","pathbarTextFontDefault","sizes","isSize","extendDeep","colorAttrs","domainAttrs","axesAttrs","textFontAttrs","gaugeBarAttrs","thickness","items","stepsAttrs","valueformat","reference","INCREASING","SYMBOL","COLOR","DECREASING","float32","float","fract32","fract","narr","compile","CACHE","compiled","ops","createTexture2D","linearTypes","lazyInitLinearTypes","createTextureShape","RGBA","UNSIGNED_BYTE","directData","acceptTextureDOM","raw","createTextureDOM","createTextureArray","filterTypes","wrapTypes","LINEAR","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","NEAREST","NEAREST_MIPMAP_NEAREST","LINEAR_MIPMAP_LINEAR","CLAMP_TO_EDGE","MIRRORED_REPEAT","HTMLCanvasElement","HTMLImageElement","HTMLVideoElement","ImageData","convertFloatToUint8","inp","reshapeTexture","maxSize","getParameter","MAX_TEXTURE_SIZE","_shape","texImage2D","TEXTURE_2D","_mipLevels","Texture2D","handle","_magFilter","_minFilter","_wrapS","_wrapT","_anisoSamples","wrapVector","wrapS","wrapT","_wrapVector","shapeVector","_shapeVector","isPacked","initTexture","bindTexture","texParameteri","TEXTURE_MIN_FILTER","TEXTURE_MAG_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","maxTextureSize","FLOAT","getExtension","packed","buf_store","LUMINANCE","ALPHA","LUMINANCE_ALPHA","RGB","malloc","buf_array","free","minFilter","magFilter","mipSamples","psamples","ext","texParameterf","TEXTURE_MAX_ANISOTROPY_EXT","unit","activeTexture","TEXTURE0","ACTIVE_TEXTURE","deleteTexture","generateMipmap","x_off","y_off","mip_level","texSubImage2D","texSubImageArray","cformat","ctype","mipLevels","needsMip","pack_buffer","mallocFloat32","mallocUint8","pack_view","freeFloat32","freeUint8","_opts","heatmap","hasArrayRadius","cOpts","scl","reversescale","flipScale","scl01","heatmapColor","addOpacity","zExp","sortAsc","sorterAsc","snapRatio","snapOvershoot","vAdjacent","snapClose","closeToCovering","ordinalScaleSnap","isHigh","existingRanges","overlappingExisting","aHere","aPrev","nextI","aNext","barHorizontalSetup","captureWidth","backgroundBarHorizontalSetup","setHighlight","brush","filterSpecified","sectionHeight","iNext","pixelRanges","unitToPx","getConsolidated","dashArray","currentGap","unitRanges","pr","clearCursor","styleHighlight","renderHighlight","tweenCallback","snapDuration","getInterval","closestInterval","intervals","pixIntervals","hoveredInterval","previousInterval","nextInterval","fPix","region","getRegion","handleHeight","intervalPix","ordinal","unitTickvals","unitLocation","unitToPaddedPx","rangei","clickableOrdinalRange","drag","lThis","sourceEvent","stopPropagation","verticalPadding","svgBrush","wasDragged","grabbingBar","newExtent","grabPoint","barLength","startExtent","stayingIntervals","brushCallback","mousemove","attachDragBehavior","preventDefault","inBrushDrag","behavior","dragstart","unitRange","pixelRange","multiselect","int2","brushStartCallback","dragend","grabLocation","brushClear","brushEndCallback","mergeIntervals","hasNewExtent","startAsc","dedupeRealRanges","currentInterval","makeBrush","rangeSpecified","initialRange","makeFilter","consolidated","getBounds","axisBrushMoved","getBrushExtent","ensureAxisBrush","axisOverlays","axisBrush","renderAxisBrush","highlightShadow","strokeWidth","strokeColor","strokeOpacity","fillColor","fillOpacity","cleanRanges","sortedTickVals","rSnapped","relinkColorAttrs","outerCont","cbOpt","_colorAx","isAuto","autocolorscale","cbOpts","_colorAxes","bindAttribs","VAOEmulated","_elements","_attributes","_elementsType","UNSIGNED_SHORT","elements","elementsType","drawElements","drawArrays","createVAOEmulated","wellKnownSymbol","V8_VERSION","SPECIES","METHOD_NAME","dictionary","error2","days","shortDays","months","shortMonths","periods","dateTime","decimal","thousands","grouping","currency","dayMonth","dayMonthYear","scatterMarkerAttrs","scatterMarkerLineAttrs","q1","median","q3","lowerfence","upperfence","notched","notchwidth","notchspan","boxpoints","jitter","pointpos","boxmean","mean","sd","quartilemethod","outliercolor","outlierwidth","whiskerwidth","bc","dup","generateGradient","boundaryConditions","token","GRADIENT_CACHE","handleBoundary","facet","cod","loStr","hiStr","pickStr","boundStr","bnd","outStr","cPickStr","dPickStr","aPickStr","bPickStr","sfaces","linkNames","linkArgs","centralDiff","zeroOut","generateTemplate","TEMPLATE_CACHE","cached","cwiseCompiler","EmptyProc","thisVars","localVars","pre","post","lvalue","rvalue","names","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","len2","encodeChunk","objName","symmetric","copyAttr","iota","handleHoverLabelDefaults","namelength","tinycolor","isValidScale","constantAttrs","letterAttrs","colorAx","cont2","k2","_sync","extractScale","cmin","cmax","sclNew","makeColorScaleFunc","specs","toRgb","sclFunc","_sclFunc","linear","noNumericCheck","returnArray","colorArray2rbga","colorArray","colorObj","toRgbString","colorKey","isArrayWithOneNumber","showscale","function","lineString","_coords","num2bn","numer","denom","snumer","sdenom","cmpn","styleOne","attachFxHandlers","drawAncestors","slices","barDifY","viewX","viewY","pathSlice","toMoveInsideSlice","strTransform","hasTransition","handleSlicesExit","makeUpdateSliceInterpolator","makeUpdateTextInterpolator","refRect","eachWidth","_entryDepth","pathIds","listPath","sliceData","packing","inner","descendants","level","onPathbar","getPtId","updateSlices","sliceTop","setSliceCursor","hideOnRoot","hideOnLeaves","isTransitioning","_hoverX","_hoverY","slicePath","attrTween","pt2","transitionTime","CLICK_TRANSITION_TIME","transitionEasing","CLICK_TRANSITION_EASING","_transitioning","hovered","getPtLabel","sliceTextGroup","sliceText","ensureUniformFontSize","determineTextFont","textBB","weakMap","mergeLength","isOpenSymbol","dimensionDefaults","dimIn","dimOut","dimensions","showDiag","showUpper","showLower","isOpen","isBubble","handleAxisDefaults","dimLength","showupperhalf","showlowerhalf","diagonal","xAxesDflt","yAxesDflt","diag","_diag","xList","yList","fillAxisStashes","counterAxId","_splomAxes","matches","mustShiftX","mustShiftY","_axesDim","i0","iN","xaId","yaId","_splomSubplots","_splomGridDflt","xside","yside","getShaderReference","getCache","program","createProgram","vref","fref","attribs","getProgram","GLError","SHADER_COUNTER","ShaderReference","programs","cache","ContextCache","deleteProgram","deleteShader","ctxCache","isShader","shaderObj","compileShader","shaderSource","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","console","prog","isProgram","linkProgram","vshader","fshader","attachShader","bindAttribLocation","getProgramParameter","LINK_STATUS","getProgramInfoLog","containerClassName","bgClassName","rangePlotClassName","maskMinClassName","maskMaxClassName","slideBoxClassName","grabberMinClassName","grabAreaMinClassName","handleMinClassName","grabberMaxClassName","grabAreaMaxClassName","handleMaxClassName","maskMinOppAxisClassName","maskMaxOppAxisClassName","maskColor","maskOppAxisColor","slideBoxFill","slideBoxCursor","grabAreaFill","grabAreaCursor","grabAreaWidth","handleWidth","handleRadius","handleStrokeWidth","extraPad","tempA","fromValues","tempB","cosine","ch","uniq","LiftedPoint","compareLifted","ap","bp","triangulate","includePointAtInfinity","triangulate1D","lifted","upper","dpoints","dindex","hull","arrayEditor","shapes","drawShape","_shapeUpperLayer","_shapeLowerLayer","shapelayer","shapeLayer","getPathString","setClipPath","shapePosition","setupDragElement","shapePath","shapeOptions","xAnchor","yAnchor","e0","optN","optS","optW","optE","pathIn","dragMode","xPixelSized","xsizemode","yPixelSized","ysizemode","isLine","isPath","editHelpers","modifyItem","x2p","getDataToPixel","y2p","p2x","getPixelToData","p2y","sensoryElement","obtainSensoryElement","createLineDragHandles","sensoryWidth","circleStyle","circleRadius","prepFn","startDrag","updateDragMode","renderVisualCues","deactivateClipPathTemporarily","clipAxes","setClipUrl","moveShape","resizeShape","endDrag","removeVisualCues","getUpdateObj","abortDrag","tagName","clientX","clientY","noOp","moveX","moveY","encodeDate","movePath","newX0","newY0","newX1","newY1","newN","newS","newW","newE","renderAnchor","isNotPath","visualCues","posX","midRange","extractPathCoords","paramIsX","posY","paramIsY","roundPositionForSharpStrokeRendering","crossPath","vBarPath","hBarPath","init","x2r","y2r","shapePositionToRange","decodeDate","convertPath","xSizemode","ySizemode","segmentRE","segment","paramNumber","segmentType","xParams","yParams","nParams","numParams","paramString","paramRE","param","xAnchorPos","yAnchorPos","rArc","rightPt","micropolar","manager","framework","_gd","previousConfigClone","convertedInput","undoManager","_inputConfig","_container","Axis","adapter","plotly","fillLayout","isPolar","getConfig","getLiveConfig","getLiveScales","angularScale","radialScale","setUndoPoint","_configClone","_previousConfigClone","configClone","util","cloneJson","paperDiv","paper","dflts","toInteger","integer","gapWithPathbar","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","internalObjectKeys","hiddenKeys","PolyBool","BuildLog","Epsilon","Intersecter","SegmentChainer","SegmentSelector","GeoJSON","buildLog","operate","poly1","poly2","seg1","seg2","seg3","bl","addRegion","calculate","segments1","segments2","combined","inverted1","inverted2","selectUnion","selectIntersect","intersect","selectDifference","selectDifferenceRev","differenceRev","selectXor","xor","polygonFromGeoJSON","toPolygon","polygonToGeoJSON","fromPolygon","bits","UnionFind","l1","m1","l0","m0","as","bs","compareZipped","zipped","findCell","incidence","from_cells","to_cells","il","cl","kn","popCount","skeleton","k0","nextCombination","countVertices","vc","jl","cloneCells","ncells","dual","vertex_count","res","explode","connectedComponents","connectedComponents_dense","components","component_labels","ranks","connectedComponents_sparse","vj","mesh3dAttrs","calcSelection","fixNum","prevGoodNum","serieslen","connectToNext","cNext","vTotal","begR","sumR","difR","drawArrowHead","drawRaw","modifyBase","annClipID","annPosPx","annGroup","annTextGroup","editTextPosition","textEvents","annotationText","annTextGroupInner","hoverOptions","hoverFont","bBoxRef","loneHover","outerContainer","loneUnhover","borderfull","annTextBG","isSizeConstrained","annTextClip","_topclips","annText","textLayout","initialEvent","fullAnnotation","drawGraphicalElements","anchor3","hasMathjax","anntextBB","textHeight","annWidth","annHeight","outerWidth","outerHeight","shiftFraction","annotationIsOffscreen","letters","basePx","textPadShift","alignPosition","autoAlignFraction","textShift","tailRef","dimAngle","annSizeFromWidth","annSizeFromHeight","annSize","overallShift","posPx","posFraction","arrowLength","maxPx","shiftPlus","shiftMinus","xShift","yShift","texty","textx","setRect","baseTextTransform","drawArrow","headX","headY","tailX","tailY","textX","textY","rotationXYMatrix","applyTransform","apply2DTransform","applyTransform2","apply2DTransform2","xLeft","xRight","yTop","yBottom","edges","strokewidth","arrowColor","arrowSide","arrowGroup","arrow","annotationPosition","arrowDragHeadX","arrowDragHeadY","annx0","anny0","arrowDrag","annxy0","xcenter","ycenter","axref","ayref","notesBox","selectedObj","xUpdate","yUpdate","widthFraction","_xsize","_xshift","heightFraction","_ysize","_yshift","validateSymbol","registry","SymbolPolyfill","for","keyFor","subplotsDone","smoothFill2dArray","ip","jp","ni","nj","avgSurrounding","dxp","dxm","dap","dam","dbp","dbm","reldiff","overrelaxation","dmax","resid","iter","d0","d1","j0","boundaryCnt","newVal","resolveException","is","createErrorBars","ErrorBars","IDENTITY","capSize","lineOffset","updateBounds","cz","pixelScaleF","LINES","FACE_TABLE","emitFace","offsets","inverse","rank","permutation","pinv","unrank","nf","transformQuat","qx","qy","qz","qw","ix","iy","iz","iw","gup","svgUtil","raiseToTop","cancelEeaseColumn","cancelTransition","prepareData","splitData","roundHalfWidth","maxLineWidth","scrollAreaBottomClipKey","columnBoundaryClipKey","specIndex","flatData","__data__","renderScrollbarKit","bypassVisibleBar","scrollbarState","totalHeight","calcTotalHeight","blocks","rowBlocks","firstRowAnchor","rowsHeight","scrollableAreaHeight","groupHeight","headerHeight","currentlyVisibleHeight","barWiggleRoom","wiggleRoom","topY","scrollY","bottomY","dragMultiplier","columnDragInProgress","bbox","pixelVal","inverseScale","makeDragRow","origin","scrollbarScrollInProgress","renderColumnCellTree","allColumnBlock","renderColumnCell","splitToCells","keyWithinBlock","renderColumnCells","supplyStylingValues","spec","col","column","gridPick","rowNumber","cellBorderWidth","sizeAndStyleRect","columnWidth","atomicSelection","renderCellRect","renderCellText","renderCellTextHolder","setFont","populateCellText","setCellHeightAndPositionY","userSuppliedContent","stringSupplied","hasBreaks","userBrokenText","mayHaveMarkup","latex","isLatex","content","hasWrapSplitCharacter","textToRender","prefixSuffixedText","wrappingNeeded","wrapped","hasWrapCharacter","cellHeightMayIncrease","needsConvertToTspans","fragments","hrefRestoredFragments","frag","fragment","renderCallback","wrapTextMaker","updateYPositionMaker","xPosition","easeColumn","cellsBlock","headerBlock","auxiliaryBlocks","updateBlockYPosition","cellsColumnBlock","scrollHeight","pages","findPagesAndCacheHeights","pTop","blockIndex","block","blockRows","rows","rowHeight","allRowsHeight","page","conditionalPanelRerender","prevPages","allTableControlView","optionalMultiplier","optionalPosition","dragRow","eventD","dd","multiplier","initialScrollY","revolverIndex","currentRepaint","toRerender","wrapText","getComputedTextLength","currentAddition","currentAdditionLength","separatorLength","rest","currentRow","currentRowLength","rowLengthLimit","updateYPosition","settledY","getBlock","rowIndex","firstRowIndex","declaredRowHeight","requiredHeight","finalHeight","box","rectBox","currentTransform","baseVal","consolidate","yPosition","optionalWidth","getRow","rowBlock","wrappedTraceHolders","dynamic","wrappedTraceHolder","translateX","translateY","cvEnter","wheeling","newY","deltaY","vm","columns","movedColumn","xIndex","xScale","columnMoved","gdColumnsOriginalOrder","gdColumns","columnorder","splitToPanels","dragHandle","headerColumnBlock","scatterGlAttrs","cartesianIdRegex","markerLineAttrs","markerAttrs","makeAxesValObject","freeLength","regex","bx","by","bz","handleTickDefaults","tickLen","tickWidth","tickColor","createLines","vbo","lineVert","lineFrag","Lines","screenBox","drawLine","endX","endY","inherits","ctor","superCtor","super_","writable","configurable","TempCtor","createUniformWrapper","createAttributeWrapper","makeReflect","shaderCache","runtime","Shader","lastAttribCount","_vref","_fref","_relink","vertShader","fragShader","compareAttributes","newAttribCount","ACTIVE_ATTRIBUTES","oldAttribCount","enableVertexAttribArray","disableVertexAttribArray","useProgram","vertSource","fragSource","pvref","VERTEX_SHADER","pfref","testProgram","attributeUnpacked","attributeNames","attributeLocations","locVector","curLocation","uniformLocations","relink","getUniformLocation","vectorfield","vertexIntensityBounds","coneOffset","p2","u2","positionVectors","vectorScale","skipIt","minV","maxV","invertedMaxNorm","coneScale","coneSize","absoluteConeSize","intensity","createConeMesh","getDimIndex","visibleDims","_visibleDims","vmin","vmax","createScatter","createLine","createError","Text","prepareRegl","styleTextSelection","getViewport","cdata","regl","_glcanvas","error2d","line2d","scatter2d","fill2d","glText","textsToAdd","textsToRemove","textOptions","lineOptions","srcPos","firstptdef","lastptdef","errorBatch","errorXOptions","errorYOptions","markerOptions","fillOrder","fillOptions","fillData","nextTrace","nextOptions","nextPos","xx","yy","prevLinePos","hole","fillmode","selectMode","clickSelectEnabled","selPts","selIndices2selPoints","selDict","unselPts","xpx","ypx","unselOpts","markerUnselectedOptions","markerSelectedOptions","vpRange0","vpRange","bottomText","withColorscale","headerSize","_hovered","pathbar","_sankey","graph","partOfGroup","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","globalWindow","mozRequestAnimationFrame","webkitRequestAnimationFrame","forEachElement","isCollectionTyped","jQuery","Elements","getElementSize","offsetWidth","offsetHeight","setStyle","ResizeSensor","EventQueue","sizeInfo","newQueue","attachResizeEvent","resized","resizedAttached","resizeSensor","pointerEvents","zIndex","maxWidth","styleChild","expand","expandChild","shrink","shrinkChild","rafId","computedStyle","getComputedStyle","getPropertyValue","lastWidth","lastHeight","initialHiddenCheck","lastAnimationFrame","scrollLeft","scrollTop","resetSensor","onResized","onScroll","addEvent","cb","attachEvent","elem","detach","mutations","addedNodes","childList","subtree","hasHover","matchMedia","version","userAgent","v8","NEIGHBORSHIFTS","correctionOvershoot","maxFractionalChange","iterateInterp2d","emptyPoints","overshoot","neighborShift","neighborRow","neighborVal","neighborSum","initialVal","minNeighbor","maxNeighbor","negate","PersianCalendar","epBase","epYear","depoch","cycle","cyear","ycycle","aux1","aux2","yday","persian","jalali","PlotSchema","plotAttributes","dfltConfig","mergeTemplates","oldTemplate","newTemplate","oldKeys","mergeOne","oldVal","templater","arrayTemplater","_template","item","oldItem","newItem","defaultItems","templateitemname","getBaseKey","key2","baseKey2","walkStyleKeys","templateOut","getAttributeInfo","basePath","pathAttr","nextPath","getNextPath","nextBasePath","baseKey","_noTemplating","_isLinkedToArray","dfltDone","namedIndex","usedNames","dfltPath","arrayDefaultKey","pathInArray","itemPropInArray","getLayoutInfo","getLayoutValObject","getTraceInfo","getTraceValObject","hasPlainObject","templateCount","makeTemplate","figure","_basePlotModules","_modules","template","traceTemplate","typeTemplates","oldTypeTemplates","oldTypeLen","typeLen","oldLayoutTemplate","oldDataTemplate","validateTemplate","figureIn","layoutTemplate","dataTemplate","errorList","layoutPaths","crawlLayoutForContainers","nextPaths","crawlLayoutTemplateForContainers","typeCount","crawlForMissingTemplates","stringifyFont","defaultChars","atlas","chars","newchars","textAlign","textBaseline","colorway","compressExpansion","attributeTextFont","attributeInsideTextFont","attributeOutsideTextFont","stylePoints","pointStyle","determineFont","layoutFont","textFont","barColor","getBarColor","getInsideTextFont","getOutsideTextFont","getTextFont","defaultValue","getFontValue","defaultFont","attributeDefinition","attributeValue","familyValue","getValue","sizeValue","colorValue","coerceString","coerceNumber","coerceColor","barcount","stylePointsInSelectionMode","selectedPointStyle","styleTextInSelectionMode","txs","selectedFontColor","selectedTextStyle","sankeyCircular","justify","d3_array__WEBPACK_IMPORTED_MODULE_0__","d3_collection__WEBPACK_IMPORTED_MODULE_1__","d3_shape__WEBPACK_IMPORTED_MODULE_2__","elementary_circuits_directed_graph__WEBPACK_IMPORTED_MODULE_3__","elementary_circuits_directed_graph__WEBPACK_IMPORTED_MODULE_3___default","targetDepth","depth","sourceLinks","targetLinks","_typeof","ascendingSourceBreadth","ascendingBreadth","ascendingTargetBreadth","partOfCycle","circularLinkType","nodeCenter","linkSourceCenter","linkTargetCenter","defaultId","defaultNodes","defaultLinks","getNodeID","paddingRatio","circularLinkGap","sortNodes","computeNodeLinks","identifyCircles","computeNodeValues","computeNodeDepths","selectCircularLinkTypes","computeNodeBreadths","computeLinkBreadths","linkSortingIterations","iteration","sortSourceLinks","sortTargetLinks","resolveNodeLinkOverlaps","fillHeight","addCircularPathData","circular","sortKeys","initializeNodeBreadth","thisPadding","ky","getCircleMargins","totalTopLinksWidth","totalBottomLinksWidth","totalRightLinksWidth","totalLeftLinksWidth","maxColumn","scaleSankeySize","currentWidth","currentHeight","scaleX","scaleY","nodesLength","numberOfNonSelfLinkingCycles","resolveCollisions","relaxLeftAndRight","columnsLength","nodeHeight","avgTargetY","avgSourceY","y0cycle","y1cycle","nodeAlign","nodeWidth","nodePadding","nodePaddingRatio","circularLinkID","adjList","cycles","circularLinks","numberOfTops","numberOfBottoms","selfLinking","linkAngle","sourceCount","targetCount","onlyCircularLink","nodeSourceLinks","nodeTargetLinks","calcVerticalBuffer","sortLinkColumnAscending","link1","link2","circularPathData","verticalBuffer","bufferOverThisLink","arcRadius","leftNodeBuffer","rightNodeBuffer","sourceWidth","sourceX","targetX","sourceY","targetY","leftSmallArcRadius","leftLargeArcRadius","rightSmallArcRadius","rightLargeArcRadius","verticalFullExtent","verticalLeftInnerExtent","verticalRightInnerExtent","thisColumn","thisCircularLinkType","sameColumnLinks","sortLinkSourceYDescending","sortLinkSourceYAscending","radiusOffset","sortLinkTargetYDescending","sortLinkTargetYAscending","leftInnerExtent","rightInnerExtent","leftFullExtent","rightFullExtent","createCircularPathString","pathString","normalPath","linkColumnDistance","linkXLength","linkPerpendicularYToLinkSource","longerLink","shorterLink","heightFromY1ToPependicular","incline","linkPerpendicularYToLinkTarget","columnToTest","maxColumnToTest","numberOfColumnsToTest","B0_t","B1_t","B2_t","B3_t","py_t","linkY0AtColumn","linkY1AtColumn","adjustNodeHeight","otherNode","nodesOverlap","nodeA","nodeB","sankeyY0","sankeyY1","moveNodes","nodesSourceLinks","nodeSourceLinksLength","sameInclines","link2Adj","ySourceOffset","offsetFromBottom","nodesTargetLinks","nodesTargetLinksLength","yTargetOffset","minY0","ASCEND","SIMPLEATTR","baseAttr","relativeAttr","compileSearch","predicate","reversed","extraArgs","useNdarray","earlyOut","compileBoundsSearch","ge","eq","convertTypedArray","isOrdinal","WeakMapModule","ses","ok","weakMapPermitHostObjects","doubleWeakMapCheckSilentFailure","HostWeakMap","navigator","testMap","testObject","freeze","gopn","defProp","isExtensible","HIDDEN_NAME","HIDDEN_NAME_PREFIX","crypto","getRandomValues","ArrayBuffer","ab","u8s","u8","fakeGetOwnPropertyNames","isNotHiddenName","originalGetPropertyNames","getPropertyNames","fakeGetPropertyNames","oldFreeze","identifyingFreeze","getHiddenRecord","oldSeal","seal","identifyingSeal","oldPreventExtensions","preventExtensions","identifyingPreventExtensions","calledAsFunctionWarningDone","OurWeakMap","calledAsFunctionWarning","get___","constFunc","opt_default","hiddenRecord","has___","set___","delete___","lastIndex","DoubleWeakMap","dset","hmap","omap","enableSwitching","dget","dhas","ddelete","permitHostObjects___","Proxy","mapLegacy","oldAttr","newAttr","_xlength","_ylength","surfaceColor","dims","contourDim","getOwnPropertyDescriptors","descriptors","formatRegExp","isString","inspect","JSON","stringify","isNull","isObject","deprecate","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","debugEnviron","debugs","stylize","stylizeNoColor","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","styles","recurseTimes","ret","primitive","formatPrimitive","simple","isNumber","visibleKeys","arrayToHash","hash","isError","formatError","isRegExp","isDate","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","cur","numLinesEst","desc","ar","objectToString","debuglog","NODE_DEBUG","toUpperCase","isNullOrUndefined","isSymbol","isPrimitive","timestamp","getMinutes","getSeconds","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","promiseResolve","promiseReject","custom","callbackify","callbackified","maybeCb","rej","solveIntersection","ba","rvSub","dc","baXdc","ratPerp","ratSign","ac","dcXac","ratDiv","rvMuls","rvAdd","ratMul","ratSub","contourAttrs","contourContourAttrs","atype","btype","autocontour","ncontours","showlines","showlabels","labelfont","labelformat","reg","unquote","compareAngle","bcd","sabc","sabd","ic","testInterior","abc","robustProduct","createBackgroundCube","Uint16Array","ELEMENT_ARRAY_BUFFER","normal","BackgroundCube","bg","needsBG","POLYGON_OFFSET_FILL","polygonOffset","TRIANGLES","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","toObject","shouldUseNative","test1","test2","test3","letter","symbols","to","drawModule","includeBasePlot","rs","rd","rc","rc2","ne","se","sw","nw","rt","r2","pentagon","hexagon","hexagon2","octagon","star","hexagram","aPart","rp","hourglass","noDot","bowtie","needLine","noFill","asterisk","str2RGBArray","SpikeOptions","drawSides","merge","spikecolor","spikesides","spikethickness","createSpikeOptions","isIterable","histogram2dAttrs","GeoPoly","LineString","ls","eps","regionInsideRegion","pointInsideRegion","roots","addChild","forceWinding","winding","last_x","last_y","curr_x","curr_y","geopolys","addExterior","getInterior","barPlot","clearMinTextSize","getXY","isHorizontal","sAxis","pAxis","nextS0","nextP0","nextS1","nextP1","cdModule","traceLayer","plotConnectorRegions","connectors","layerClipId","plotConnectorLines","funnelmode","funnelgap","funnelgroupgap","getToggleSets","anni","showMode","pointj","onSet","offSet","explicitOffSet","hoverLen","clicktoshow","clickData2r","_xclick","_yclick","explicitOff","hasClickToShow","sets","onClick","toggleSets","annotationsOut","constraintMapping","endPlus","emptyPathinfo","contoursFinal","_operation","cs","pathinfo","basePathinfo","ci","crossings","starts","edgepaths","toLogRange","convertCoords","newType","doExtra","attrPrefix","currentVal","boxIntersectIter","initFull","xSize","xBoxes","ySize","yBoxes","yIndex","iterInit","levels","log2","maxInts","nextPow2","BOX_ISTACK","mallocInt32","maxDoubles","BOX_DSTACK","mallocDouble","retval","iterPush","iptr","redStart","redEnd","blueStart","blueEnd","dptr","full","red","redIndex","blue","blueIndex","partitionEndLessThanEqual","redCount","blueCount","sweep","scanComplete","bruteForcePartial","scanBipartite","red0","partitionInteriorContainsInterval","bruteForceFull","sweepBipartite","blue0","blue1","partitionStartEqual","onePointFull","onePointPartial","red1","partitionContainsPoint","redX","sweepComplete","partitionContainsPointProper","bruteForce","partial","blueOffset","blueId","bluePtr","blueX","red_loop","redPtr","redId","generateSolver","robustLinearSolve0d","robustLinearSolve1d","A","generateDispatch","toNumber","normalized","fromNumber","waterfallmode","waterfallgap","waterfallgroupgap","plotConnectors","isSum","boxLayoutAttrs","violinmode","boxmode","violingap","boxgap","violingroupgap","boxgroupgap","Loggers","pushUnique","ExtendModule","basePlotAttributes","baseLayoutAttributes","registerTraceModule","thisType","categoriesIn","subplotsRegistry","registerSubplot","plotType","componentName","findArrayRegexps","componentsRegistry","mergeComponentAttrsToSubplot","categoryObj","allCategories","allTypes","mergeComponentAttrsToTrace","traceLayoutAttributes","bpmName","styleRules","registerComponentModule","layoutArrayContainers","subplotName","transformType","transformsRegistry","mergeComponentAttrsToTransform","registerTransformModule","hasTransform","hasCalcTransform","calcTransform","registerLocale","baseLocale","newDict","newFormat","hasDict","hasFormat","locales","localeRegistry","localeObj","baseLocaleObj","arrayAttrRegexps","_arrayAttrRegexps","layoutArrayRegexes","componentSchema","traceAttrs","transformAttrs","subplotModule","subplotAttrs","subplotAttr","componentLayoutAttrs","getTraceType","apiMethodRegistry","collectableSubplotTypes","newModule","getModule","getTransformIndices","appVersion","hasX","hasY","_cheater","flattenVertexData","dstLength","Ctor","makeIncludeComponents","containerArrayName","includeComponents","cartesianList","hasCartesianOrGL2D","itemi","hasXref","hasYref","newAxis","definePropertyModule","anObject","objectKeys","Properties","fillColorDefaults","inheritColorFromMarker","markerLineColor","glslify","triVertSrc","triFragSrc","edgeVertSrc","edgeFragSrc","pointVertSrc","pointFragSrc","pickVertSrc","pickFragSrc","pickPointVertSrc","contourVertSrc","contourFragSrc","meshShader","wireShader","pointShader","pointPickShader","contourShader","getTraceColor","minRad","dxy","distfn","getDistanceFunction","kink","dxRaw","dyRaw","getClosest","xc","yc","sizeVal","sNorm","spikeDistance","xCross","polygonsIn","inside","yAvg","maxHoverDistance","pieCalc","assert","endian","isBN","_init","Buffer","wordSize","parseHex","parseBase","_initNumber","_initArray","_parseHex","_parseBase","strip","toArray","limbLen","limbPow","word","imuln","_iaddn","_expand","_normSign","zeros","groupSizes","groupBases","smallMulTo","carry","ncarry","rword","maxJ","groupSize","groupBase","isZero","modn","idivn","toJSON","toBuffer","toArrayLike","ArrayType","reqLength","littleEndian","andln","iushrn","clz32","_countBits","_zeroBits","bitLength","zeroBits","toTwos","inotn","iaddn","fromTwos","testn","notn","ineg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","comb10MulTo","al0","ah0","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","bl0","bh0","bl1","bh1","bl2","bh2","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","mulTo","bigMulTo","hncarry","makeRBT","revBin","rb","permute","rbt","rws","iws","rtws","itws","rtwdf","itwdf","rtwdf_","itwdf_","ie","ro","io","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","carryMask","newCarry","ishln","hint","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","qj","divmod","divn","umod","divRound","dm","half","acc","egcd","B","C","D","isEven","im","isOdd","jm","_invmp","invm","bincn","ucmp","gtn","gten","gte","ltn","lten","lte","eqn","Red","toRed","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","outLen","mod3","one","nOne","lpow","inv","wnd","currentLen","mont","resetOpts","textSelectedOptions","textUnselectedOptions","initOpts","findZeroCrossings","core","µ","inputConfig","liveConfig","axisConfig","datum","_data","_index","dataOriginal","colorIndex","defaultColorRange","darker","strokeDash","strokeSize","isStacked","dataWithGroupId","grouped","nest","dataYStack","stacked","prevArray","yStack","sumArrays","chartCenter","arrayLast","flattenArray","DATAEXTENT","angularDataMerged","deduplicate","hasOnlyLineOrDotPlot","needsEndSpacing","angularDomain","angularDomainStep","angularDomainWithPadding","tickCount","ticksCount","ticksStep","angularTicksStep","minorTicks","angularAxisRange","toPrecision","endPadding","doc","ownerDocument","importNode","documentElement","legendContainer","chartGroup","lineStyle","fontStyle","outlineColor","showLegend","display","datumClone","dotType","visibleInLegend","Legend","legendConfig","defaultConfig","reverseOrder","legend","legendBBox","getBBox","centeringOffset","titleBBox","gridLinesVisible","gridCircles","backgroundCircle","backgroundColor","currentAngle","tickSize","ticksSuffix","tickOrientation","angularAxisEnter","minorTickColor","tickLength","ticksText","labelOffset","labelsVisible","rewriteTicks","rightmostTickEndX","getCTM","hasGeometry","geometryContainer","geometryConfigs","geometryConfig","dB","iB","geometryConfigsGrouped","geometryConfigsGrouped2","finalGeometryConfig","angularValue","radialValue","guides","tooltipContainer","angularTooltip","tooltipPanel","radialTooltip","geometryTooltip","hasTick","angularGuideLine","mouseAngle","getMousePos","angleWithOriginOffset","convertToCartesian","angularGuideCircle","hide","newColor","textData","xClone","getinputConfig","category10","AREA","LINE","DOT","BAR","_override","_objA","_objB","_rndSnd","dataFromEquation2","_equation","_step","dataFromEquation","ensureArray","_val","_count","fillArrays","_obj","_valueNames","parse","validateKeys","objHasKeys","zip","arrayEqual","thetaRadians","_value","_digits","_referenceElement","mousePos","mouseX","mouseY","atan2","duplicatesCount","uniques","dups","duplicates","translator","sourceBranch","targetBranch","targetBranchCopy","previousValue","currentValue","PolyChart","isStack","domainMin","pI","dataConfig","stackTop","stackedData","dotSize","polarCoordinates","getPolarCoordinates","interpolate","lineInterpolation","dotVisible","markStyle","lineSelection","angularRange","triangleAngle","startAngle","endAngle","innerRadius","outerRadius","geometryLayer","geometryType","getColorScale","colorScale","category20","BarChart","AreaChart","DotPlot","flattenData","isContinuous","svgEnter","dataNumbered","colorBandWidth","legendElement","_type","squareSize","symbolType","symbolTypes","legendAxis","textColor","tooltipEl","tooltipTextEl","backgroundEl","tooltipEnter","boxStyle","backGroundW","backGroundH","_pos","outputConfig","traceorder","funnels","funnelsVert","funnelsHorz","funnelnorm","minVal","maxVal","vertexShaderSource","fragmentShaderSource","maxDim","dummyPixel","dataPixel","paletteTextureConfig","_gl","SCISSOR_TEST","scissor","renderBlock","glAes","renderState","blockLineCount","sampleCount","rafKey","drawCompleted","ensureDraw","read","blockNumber","currentRafs","scissorX","scissorY","scissorWidth","viewBoxSize","clearOnly","palette","unitToColor","calcPickColor","rgbIndex","makeVecAttr","vecIndex","pointPairs","pad2","getAttrName","makeItem","leftmost","rightmost","itemNumber","panelSizeX","panelSizeY","crossfilterDimensionIndex","drwLayer","constraints","canvasOverdrag","canvasWidth","canvasHeight","deselectedLinesColor","deselectedLines","resolution","viewBoxPos","dim0A","dim0B","dim0C","dim0D","dim1A","dim1B","dim1C","dim1D","contextColor","layoutWidth","layoutHeight","scissorHeight","viewportX","viewportY","viewportWidth","viewportHeight","expandedPixelRange","maskHeight","canvasGL","initialDims","maskTexture","isContext","isPick","emptyAttributes","usage","paletteTexture","prevAxisOrder","profile","srcRGB","dstRGB","srcAlpha","dstAlpha","equation","cull","face","dither","loA","hiA","loB","hiB","loC","hiC","loD","hiD","dNew","viewModel","makePoints","paddedUnitValues","setAttributes","renderGLParcoords","panels","setChanged","panelCount","lowestX","highestX","dim0","canvasX","dim1","makeConstraints","limits","bitMask","prevEnd","nextRange","textureData","canvasY","nextX","readPixel","readPixels","pixelArray","meta_1","polygonArea","ringArea","lowerIndex","middleIndex","upperIndex","coordsLength","geomReduce","geom","calculateArea","AX_ID_PATTERN","axNum","AX_NAME_PATTERN","only2d","idList","idi","sceneIds3D","zaxis","subplotLists","id1","id2","letter1","letter2","makeComputeErrorValue","dataPt","makeComputeError","computeError","arrayminus","valMinus","computeErrorValue","computeErrorValueMinus","valueminus","scatterFormatLabels","headerGroupClassName","headerClassName","headerArrowClassName","dropdownButtonGroupClassName","dropdownButtonClassName","buttonClassName","itemRectClassName","itemTextClassName","menuIndexAttrName","autoMarginIdRoot","blankHeaderOpts","minWidth","minHeight","textPadX","arrowPadX","textOffsetX","textOffsetY","arrowOffsetX","gapButtonHeader","gapButton","activeColor","hoverColor","arrowSymbol","down","vectorizeText","getGlyph","fontCache","GLYPH_CACHE","lineSpacing","styletags","breaklines","bolds","italics","subscripts","superscripts","triSymbol","lineSymbol","bnsign","parseRect","parcats","parcatsModels","IslamicCalendar","islamic","treemapcolorway","extendtreemapcolors","crawl","objIn","objOut","valIn","valOut","nestedSchema","getNestedSchema","isInfoArray","isColorscale","isInSchema","valInPart","valOutPart","arrayItems","validate","_p","_nestedSchema","indexList","valInj","valOutj","fillLayoutSchema","dataOut","layoutSchema","traceSchema","traceLayoutAttr","dataIn","transformsIn","transformsOut","transformSchema","code2msgFunc","inBase","unused","invisible","convertPathToAttributeString","splitKey","keyMinusId","idMatch","mapboxgl","createMapboxLayer","Mapbox","_glcontainer","isStatic","createFramework","accessToken","styleObj","traceHash","layerList","belowLookup","dragging","accesstoken","updateMap","createMap","getStyleObj","Map","convertCenter","bearing","pitch","interactive","doubleClickZoom","boxZoom","attributionControl","addControl","AttributionControl","compact","_canvas","rejectOnError","initFx","once","fillBelowLookup","updateData","updateLayout","resolveOnRender","hasTraceAtTop","getBelow","val2list","traceType2orderIndex","choroplethmapbox","densitymapbox","scattermapbox","styleValuesMapbox","convertStyleVal","stylesNonMapbox","styleValueDflt","styleUrlPrefix","styleUrlSuffix","traceObj","calcDataSorted","idLoop","setCenter","setZoom","setBearing","setPitch","updateLayers","updateFramework","resize","_scrollZoom","scrollZoom","onRender","loaded","handler","mapOnErrorMsg","emitUpdate","viewNow","getView","getViewEditsWithDerived","fullLayoutNow","originalEvent","optsNow","_preGUI","getViewEdits","lngLat","lng","onClickInPanFn","clickMode","oldDragOptions","onClickInPanHandler","dragPan","pxpy","unproject","getCanvas","setOptions","getMapLayers","getStyle","addLayer","mapLayers","LngLat","mapCenter","getCenter","getZoom","getBearing","getPitch","_derived","handleOHLC","open","high","low","close","configAttributes","plotlyServerURL","annotationTail","axisTitleText","colorbarPosition","colorbarTitleText","legendPosition","legendText","titleText","autosizable","responsive","fillFrame","frameMargins","doubleClick","doubleClickDelay","showAxisRangeEntryBoxes","showTips","showLink","linkText","noBlank","sendData","showSources","showSendToCloud","showEditInChartStudio","modeBarButtonsToRemove","modeBarButtonsToAdd","setBackground","topojsonURL","mapboxAccessToken","logging","notifyOnLogging","queueLength","globalTransforms","SHADERS","Pointcloud2D","offsetBuffer","pickBuffer","sizeMinCap","sizeMax","areaRatio","pointCount","pickOffset","createPointcloud2D","pointVertex","pointFragment","pickVertex","pickFragment","addObject","MATRIX","PICK_VEC4","removeObject","dataStraightThrough","idStraightThrough","idToIndex","Int32Array","packedId","unifiedDraw","dataBox","dataX","dataY","visiblePointCountEstimate","basicPointSize","pickPixelRatio","pointCloud","pointSize","centerFraction","DITHER","POINTS","pointId","dataCoord","calcHover","maxDistance","minDist","ptx","pty","dist","coordEach","bardir","createThunk","Procedure","argTypes","shimArgs","arrayBlockIndices","offsetArgs","offsetArgIndex","indexArgs","shapeArgs","debug","compileCwise","user_args","proc_args","arg_type","blockIndices","printCode","blockSize","m4interp","invert44","rotateX","rotateY","rotateZ","lookAt","translate","DEFAULT_CENTER","MatrixCameraController","initialMatrix","_components","prevMatrix","nextMatrix","computedMatrix","computedInverse","computedEye","computedUp","computedCenter","computedRadius","_limits","createMatrixCameraController","recalcMatrix","tidx","mat","comps","dt","imat","idle","lastT","setMatrix","yaw","roll","tvec","dz","setDistance","setDistanceLimits","lim","getDistanceLimits","hasColorbar","colorbarDefaults","npMaybe","parentCont","colorScaleDefaults","parentContIn","parentContOut","inTrace","thisFn","colorAxes","colorbarVisuals","minIn","maxIn","validMinMax","autoColorscaleDflt","sclIn","sclTemplate","handleABDefaults","_clipPathId","coordDefaults","coordStr","xName","yName","isValidZ","allRowsAreArrays","oneRowIsFilled","hasOneNumber","handleLabelDefaults","showLines","_dfltShowLegend","pz","sc","cc","getDelay","getRedrawFunc","encodeSVG","encodeURIComponent","DOM_URL","URL","webkitURL","createObjectURL","blob","revokeObjectURL","createBlob","Blob","binary","fixBinary","atob","octetStream","IMAGE_URL_PREFIX","MSG_IE_BAD_FORMAT","initial","leading","trailing","maxWait","__visibility__listener__","disconnect","debounce","inserted","modifiers","$el","$once","offsetParent","IntersectionObserver","isIntersecting","__e","__g","F","G","W","virtual","U","valueOf","rootBounds","boundingClientRect","intersectionRect","intersectionRatio","_checkForIntersections","THROTTLE_TIMEOUT","_observationTargets","_queuedEntries","_rootMarginValues","_parseRootMargin","rootMargin","thresholds","_initThresholds","detatchEvent","host","IntersectionObserverEntry","POLL_INTERVAL","USE_MUTATION_OBSERVER","some","_registerInstance","_monitorIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","takeRecords","_monitoringIntersections","_monitoringInterval","_domObserver","_rootIsInDom","_getRootRect","_rootContainsTarget","_computeTargetAndRootIntersection","_hasCrossedThreshold","_expandRectByRootMargin","padAttrs","buttonsAttrs","args2","active","showactive","borderLine","insertBlank","hasAnyBlanks","posAttr","newEntry","prevEntry","getInterp","pt1","subplotStackOpts","_scatterStackOpts","posj","sumj","groupOpts","valAttr","stackGroup","allPositions","_rawLength","cdj","arrayPad","ppadRaw","calcAxisExpansion","relinkPrivateKeys","toContainer","fromContainer","fromVal","toVal","minLen","cwd","platform","arch","execPath","browser","env","binding","chdir","kill","umask","dlopen","uptime","memoryUsage","uvCounters","IntervalTreeNode","leftPoints","rightPoints","createWrapper","IntervalTree","createIntervalTree","rebuild","ntree","rebuildWithInterval","rebuildWithoutInterval","reportLeftRange","reportRightRange","reportRange","compareNumbers","compareBegin","compareEnd","leftIntervals","rightIntervals","centerIntervals","queryPoint","queryInterval","tproto","Events","FROM_TL","FROM_BR","getLegendData","clickOrDoubleClick","legendItem","evtData","curveNumber","expandedIndex","frames","_frames","_group","triggerHandler","_clickTimeout","_legendMouseDownTime","drawTexts","isPieLike","isEditable","maxNameLength","_maxNameLength","textEl","ensureLength","textGap","newName","fullInput","groupbyIndices","kcont","keyedContainer","constructUpdate","targetLength","setupTraceToggle","newMouseDownTime","traceToggle","getTime","_dragged","computeTextDimensions","mathjaxNode","bw","mathjaxBB","textLines","textNode","titlePad","_titleWidth","_titleHeight","getXanchor","isRightAnchor","isCenterAnchor","getYanchor","isBottomAnchor","isMiddleAnchor","legendData","hiddenSlices","hiddenlabels","_topdefs","clipPath","ensureSingleById","scrollBox","scrollBar","scrollBarEnterAttrs","scrollBarColor","computeLegendDimensions","isVertical","isGrouped","bw2","itemGap","endPad","isBelowPlotArea","isAbovePlotArea","_maxHeight","toggleRectWidth","_height","titleSize","getTitleSize","tracegroupgap","_lgroupsLength","isLeftOfPlotArea","isRightOfPlotArea","isBeyondPlotAreaY","hw","_maxWidth","maxItemWidth","combinedItemWidth","maxRowWidth","maxGroupHeightInRow","groupOffsetX","groupOffsetY","maxWidthInGroup","offsetY","oneRowLegend","maxItemHeightInRow","offsetX","rowWidth","_effHeight","expandMargin","lx","ly","autoexpand","lx0","ly0","_scrollY","eventY0","eventY1","scrollBoxY0","scrollBarHeight","scrollBarMinHeight","scrollBarYMax","scrollBarMargin","scrollBoxYMax","scrollRatio","scrollBoxY","scrollBarWidth","scrollHandler","scrollBarDrag","changedTouches","ctrlKey","getScrollBarDragY","scrollBoxTouchDrag","getNaturalDragY","clickedTrace","scatterLineAttrs","newPlot","restyle","relayout","_guiRestyle","_guiRelayout","_guiUpdate","_storeDirectGUIEdit","react","extendTraces","prependTraces","addTraces","deleteTraces","moveTraces","purge","addFrames","deleteFrames","animate","setPlotConfig","downloadImage","templateApi","FRAMEBUFFER_UNSUPPORTED","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","WEBGL_draw_buffers","colorAttachmentArrays","lazyInitColorAttachments","maxColorAttachments","MAX_COLOR_ATTACHMENTS_WEBGL","COLOR_ATTACHMENT0","NONE","maxFBOSize","MAX_RENDERBUFFER_SIZE","numColors","colorType","OES_texture_float","useDepth","useStencil","stencil","Framebuffer","saveFBOState","FRAMEBUFFER_BINDING","RENDERBUFFER_BINDING","TEXTURE_BINDING_2D","restoreFBOState","bindRenderbuffer","RENDERBUFFER","throwFBOError","attachment","framebufferTexture2D","initRenderBuffer","component","createRenderbuffer","renderbufferStorage","framebufferRenderbuffer","_destroyed","_ext","_color_rb","_depth_rb","_colorType","_useDepth","_useStencil","rebuildFBO","fbo","createFramebuffer","RGBA4","drawBuffersWEBGL","WEBGL_depth_texture","UNSIGNED_INT_24_8_WEBGL","DEPTH_STENCIL","DEPTH_STENCIL_ATTACHMENT","DEPTH_COMPONENT","DEPTH_ATTACHMENT","DEPTH_COMPONENT16","STENCIL_INDEX","STENCIL_ATTACHMENT","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","deleteFramebuffer","deleteRenderbuffer","reshapeFBO","ternaryAxesAttrs","linecolor","titlefont","caxis","geoAxesAttrs","lightLine","scope","rotation","parallels","showcoastlines","coastlinecolor","coastlinewidth","showland","landcolor","showocean","oceancolor","showlakes","lakecolor","showrivers","rivercolor","riverwidth","showcountries","countrycolor","countrywidth","showsubunits","subunitcolor","subunitwidth","showframe","framecolor","framewidth","thisArg","targetObj","bindingValueHasChanged","changed","computeLayoutBindings","bindings","attrName","computeDataBindings","thisTraces","nAttr","thisPath","manageCommandObserver","commandList","onchange","_commandObserver","lookupTable","hasSimpleAPICommandBindings","check","checkEvents","_internalOn","_removeInternalListener","bindingsByValue","refBinding","computeAPICommandBindings","executeAPICommand","_method","allArgs","computeAnimateBindings","inCircle","testFlip","triangulation","stack","delaunayRefine","numPoints","stars","orientText","refDxy","dpdx","dpdy","offsetMultiplier","l2","offsetMultplier","defaultScale","isValidScaleArray","highestVal","getScale","parseScale","tickOffset","gridOffset","gridCount","vertBuf","MAJOR_AXIS","MINOR_AXIS","SCREEN_AXIS","OFFSET_VEC","SHAPE","zeroVec","copyVec","vertBuffer","drawAxisLine","minorAxis","majorAxis","screenAxis","noffset","drawAxisTicks","drawZero","padLeft","createSlabDecomposition","numSegments","numEvents","events","Event","createRBTree","orderSegments","slabs","horizontal","horiz","IntervalSegment","SlabDecomposition","compareHorizontal","searchBucket","lastNode","seg","closed","castUp","bucket","hitNode","lastHit","lastSegment","otherHitNode","hbucket","aw","compareInt","bulletNumberDomainSize","bulletPadding","titlePadding","horizontalPadding","boxDefaults","spanmodeDflt","handlePointsDefaults","boxWidth","boxFillColor","boxLineColor","boxLineWidth","meanLineColor","meanLineWidth","meanline","exactEquals","isSvgPath","pathBounds","preprocessPolygon","loops","numLoops","vsegments","loop","numVertices","classifyEmpty","createClassifyVertical","testVertical","classify","buildVerticalIndex","makeSlabs","testSlab","buildSlabSearch","lastOrientation","createClassifyPointDegen","testNormal","makeIntervalTree","visitInterval","intervalTable","segs","intervalSearch","imageDefaults","imageIn","imageOut","gdMock","axLetters","_imgIndices","addProjectionsToD3","d3_geo_projectFeature","d3_geo_projectGeometry","geometries","d3_geo_projectGeometryType","sink","d3_geo_projectObjectType","Feature","FeatureCollection","d3_geo_projectPoints","d3_geo_projectLines","d3_geo_projectPoint","d3_geo_projectLine","lineStart","d3_geo_projectNoop","lineEnd","d3_geo_projectPolygon","polygonStart","polygonEnd","holes","ring","d3_geo_projectClockwise","d3_geo_projectContains","pj","xj","yj","Point","MultiPoint","MultiLineString","Polygon","MultiPolygon","Sphere","ε","π","halfπ","radians","degrees","asin","projectionMutator","eckert4","λ","φ","δ","cosφ","interrupt","lobes","forward","hemilobes","lobe","hemibounds","pointEqual","stream_","resample","resampled","rotateStream","sphereStream","sphere","λ0","φ0","φ1","λ2","φ2","hammerAzimuthalEqualArea","azimuthalEqualArea","hammer","hammerQuarticAuthalic","kavrayskiy7","miller","mollweideBromleyθ","Cp","θ","Cpsinθ","hammerProjection","coefficient","mollweide","mollweideBromley","Cx","Cy","SQRT2","naturalEarth","φ4","robinsonConstants","robinson","sinusoidal","aitoff","sinciα","sinci","winkel3","sinλ","sinλ_2","cosλ_2","sinφ","sin_2φ","sin2φ","cos2φ","sin2λ_2","E","δxδλ","δxδφ","δyδλ","δyδφ","denominator","δλ","δφ","innerFill","nargs","has_index","pidx","processBlock","dtypes","carg","arrNum","offArgIndex","localStr","arrStr","reStrArr","ptrStrArr","typeSummary","summary","generateCWiseOp","orders","blockBegin","blockEnd","loopBegin","loopEnd","loopOrders","newOrder","arglist","off_arg","init_string","matched","countMatches","outerFill","indexStr","loopName","axisIDs","rangeSlider","rangeSliderData","_offsetShift","_rangeSliderData","bottomDepth","titleHeight","parseUnit","listAxes","RELATIVE_CULL_TOLERANCE","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","includes","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","EventEmitter","svgToImg","emitter","Image","ieSvgError","svgBlob","h0","h1","img","isIE9orBelow","isSafari","onload","imgData","drawImage","errorMsg","onerror","cheaterslope","ascal","bscal","bval","nb","adata","bdata","slope","mouseOffset","supportsPassive","coverSlip","pointerOffset","unhoverRaw","dragCover","initialTarget","rightClick","_mouseDownTime","onStart","_ontouchstart","passive","ontouchstart","clampFn","_clampFn","minDrag","onDone","onMove","MINDRAG","dxdy","_dragdata","e2","MouseEvent","createEvent","initMouseEvent","bubbles","cancelable","screenX","screenY","metaKey","relatedTarget","dispatchEvent","extractPlanes","getShowAttrDflt","showAttrs","every","tickformatstopDefaults","valueIn","valueOut","pass","handlePrefixSuffix","showAttrDflt","handleOtherDefaults","contColor","tickFormat","tickformatStops","inclusionAttr","markerDefaults","noSelect","noLine","argument","OPEN_RE","isDotSymbol","DOT_RE","heatmapHoverPoints","hoverPt","createIsosurfaceTrace","styleText","textPointStyle","fillGroupStyle","fixRegExpWellKnownSymbolLogic","requireObjectCoercible","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","nativeReplace","maybeCallNative","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","regexp","functionalReplace","fullUnicode","unicode","results","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","capture","vertSrc","fragSrc","isosurfaceAttrs","surface","spaceframe","caps","opacityscale","flatshading","contour","scatterMapboxAttrs","bboxFeature","choroplethLayer","backplot","stronglyConnectedComponents","lowValue","scc","sccLinks","sccAdjList","strongConnect","linkCount","allLinks","adjacencyList","alphaShape","parseColorScale","str2RgbaArray","zip3","Mesh3DTrace","mesh","showContour","parseColorArray","toDataCoords","toRoundIndex","hasValidIndices","handlePick","selectIndex","textLabel","zcalendar","alphahull","delaunayCells","delaunayaxis","lightPosition","vertexNormalsEpsilon","vertexnormalsepsilon","faceNormalsEpsilon","facenormalsepsilon","contourEnable","contourColor","contourWidth","useFacetNormals","intensitymode","vertexcolor","vertexColors","facecolor","cellColors","meshColor","createMesh3DTrace","_trace","invalidArguments","invalidFormat","missingNumberAt","unknownNameAt","unexpectedLiteralAt","unexpectedText","settings","UNIX_EPOCH","SECS_PER_DAY","TICKS_EPOCH","TICKS_PER_DAY","ATOM","COOKIE","FULL","ISO_8601","JULIAN","RFC_822","RFC_850","RFC_1036","RFC_1123","RFC_2822","RSS","TICKS","TIMESTAMP","W3C","shortNames","longNames","monthNumbers","doubled","calculateWeek","iFormat","formatNumber","formatMonth","localiseNumbers","formatMonthName","useLongName","localNumbers","literal","parseDate","parseMonth","doy","shortYear","getNumber","isDoubled","iValue","getMonthNumber","getName","getMonthName","checkLiteral","iSave","determineDate","dateSpec","defaultDate","currentDate","pattern","offsetString","getContour","closestPoint","SimplicialMesh","triShader","lineShader","trianglePositions","triangleIds","triangleColors","triangleUVs","triangleNormals","triangleVAO","edgePositions","edgeIds","edgeColors","edgeUVs","edgeVAO","pointPositions","pointIds","pointColors","pointUVs","pointSizes","pointVAO","contourPositions","contourVAO","triangleCount","edgeCount","contourLineWidth","contourCount","ambientLight","diffuseLight","specularLight","_model","_view","_projection","_resolution","getOpacityFromScale","createMeshShader","uv","createWireShader","createPointShader","createPointPickShader","createContourShader","vertexIds","vertexWeights","numCells","wi","pb","genColormap","nshades","tPos","tCol","tNor","tUVs","tIds","ePos","eCol","eUVs","eIds","pPos","pCol","pUVs","pSiz","pIds","cellNormals","vertexUVs","cellUVs","cellIntensity","intensityLo","intensityHi","cellIntensityBounds","unpackIntensity","numVerts","takeZComponent","meshPointSize","Uint32Array","inverseModel","kambient","kdiffuse","kspecular","eyePosition","invCameraMatrix","pickData","cellId","simplex","weights","interpIntensity","createSimplicialMesh","meshTexture","hasAnimation","keyFunc","xObj","error_x","yObj","error_y","sparse","errorbars","errorbar","errorCoords","yh","noYS","xh","noXS","vis","yerror","yw","xerror","xw","copy_ystyle","filterUnique","earcut","holeIndices","invSize","hasHoles","outerLen","outerNode","linkedList","eliminateHoles","steiner","getLeftmost","compareX","eliminateHole","filterPoints","earcutLinked","signedArea","insertNode","equals","removeNode","again","ear","indexCurve","zOrder","prevZ","nextZ","sortLinked","numMerges","pSize","qSize","inSize","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","intersects","locallyInside","isValidDiagonal","findHoleBridge","hx","hy","my","tanMin","sectorContainsSector","intersectsPolygon","middleInside","q2","o1","o2","o3","o4","onSegment","Node","an","deviation","trianglesArea","flatten","holeIndex","sz","handleShapeDefaults","shapeIn","shapeOut","shapeType","xSizeMode","ySizeMode","pos2r","r2pos","attrAnchor","sizeMode","_shapeIndices","rangeToShapePosition","attr0","attr1","in0","in1","inAnchor","noneOrAll","IS_PURE","store","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","colorAttributes","asmoothing","bsmoothing","imax","jmax","f0","f1","f2","f3","ak","u3","ou","ou2","ou3","v3","ov","ov2","ov3","str2BN","createSelectBuffer","SelectBuffer","selectRange","SelectResult","_readTimeout","_readCallback","toMoveInsideBar","uniformText","recordMinTextSize","drawDescendants","getKey","isHierarchyRoot","plotOne","findEntryWithLevel","selAncestors","selDescendants","isRoot","uniformtext","maxDepth","getMaxDepth","vpw","vph","barW","barH","barPad","pathbarOrigin","findClosestEdge","ref","tiling","isLeftOfRect","isRightOfRect","isBottomOfRect","isTopOfRect","prevLookupPathbar","prevLookupSlices","nextOfPrevEntry","getPrev","getOrigin","hasVisibleDepth","_maxDepth","_backgroundColor","_atRootLevel","cenX","cenY","viewMapX","viewMapY","barY0","barX0","viewBarX","viewBarY","xStart","limitX0","edgeshape","hasFlag","hasBottom","isHeader","hasRight","leftToRight","limY","constrained","anchorX","anchorY","interpFromParent","parentPrev","prev0","entryPrev","makeExitSliceInterpolator","getTextTransform","isEntry","halfH","pL","pR","pA","pB","pC","pD","cdmodule","_treemaplayer","isFullReplot","oneYear","oneMonth","oneDay","oneHour","oneMin","oneSec","biggestDigitChanged","biggestGuaranteedDigitChanged","nextDigit","didDigitChange","dateParts1","dateParts","dateParts2","disambiguateEdges","dv0","dv1","dv2","edge0","edge1","leftDigit","rightDigit","dashExclude","increment","isRightEdge","dashPos","roundedV","nextV","fromQuat","z2","yx","zx","zy","zz","wx","wy","wz","rgb2float","rgb2hex","dig","hex","rgbaStr","createColormap","indicies","fromrgba","torgba","nsteps","cmap","amt","lineDefaults","noDash","setConvertCartesian","setConvertPolar","doAutoRange","dragBox","rad2deg","Polar","_hasClipOnAxisFalse","vangles","radialAxisAngle","clipPaths","clipIds","clipIdBase","forTraces","_polarlayer","radialTickLayout","angularTickLayout","strTickLayout","axLayout","snapToVertexAngle","findIndexOfMin","angleDist","updateElement","strTranslate","strRotate","createPolar","polarCalcData","polarLayout","generalUpdatePerTraceModule","radialLayout","angularLayout","layerNames","frontPlotIndex","layerData","isAngularAxisBelowTraces","isRadialAxisBelowTraces","xDomain","yDomain","xOffset","yOffset","xLength","yLength","sectorInRad","xLength2","yLength2","xDomain2","yDomain2","sectorBBox","computeSectorBBox","ax0","ay0","ax1","ay1","dxSectorBBox","dySectorBBox","arDomain","arSector","xOffset2","yOffset2","cxx","cyy","updateAngularAxis","updateRadialAxis","updateRadialAxisTitle","mockCartesianAxis","dPath","pathSubplot","bboxIndices","setRange","rl","drl","hasRoomForIt","fillViewInitialKey","setGeometry","newTickLayout","tickSign","pathArc","tLayer","tLayer2","_angle","angleRad","cosa","sina","t2g","_transFn","gridshape","angleDelta","isAngleInsideSector","cosRad","sinRad","updateAngularDrag","updateRadialDrag","updateMainDrag","MINZOOM","OFFEDGE","clampTiny","findXYatLength","findEnclosingVertexAngles","chw","cornerHalfWidth","chl","cornerLen","mainDrag","makeDragger","dimmed","lum","zb","dragOpts","xy2r","xy2a","ra2xy","pathCorner","pathSector","am","rm","pathCornerForPolygons","va0","va1","innerPts","outerPts","xy0","xy1","mperp","midPts","clampAndSetR0R1","rr0","rr1","applyZoomMove","path1","cpath","transitionZoombox","updateObj","computeZoomUpdates","zoomMove","findPolygonRadius","findIntersectionXY","zoomMoveForPolygons","vangles0","vangles1","zoomDone","removeZoombox","showDoubleClickNotifier","newRng","zoomClick","dragModeNow","findPolygonOffset","zoomPrep","polarLayoutNow","getLuminance","makeZoombox","makeCorners","rngIndex","radialDragBoxSize","ty","angle0","rbase","moveFn2","angle1","rprime","radialDrag","makeRectDragger","dvec","rvec","comp","rotateMove","rerangeMove","computeRadialAxisUpdates","dr","moduleCalcData","moduleCalcDataVisible","filterVisible","dbs","angularDragBoxSize","angularDrag","pathAnnulus","rot0","rot1","rrot1","scatterTraces","scatterPoints","scatterTextPoints","trans","trans2","isFullCircle","computeRotationUpdates","thetag","c2g","isPtInsidePolygon","isPtInsideSector","pathPolygon","pathPolygonAnnulus","formatPiePercent","vRounded","lastIndexOf","formatPieValue","getFirstFilled","castOption","itemStr","ARROWPATHS","ends","startRot","endRot","headStyle","startHeadStyle","startScale","doStart","doEnd","backOff","backoff","startBackOff","hideLine","backOffX","backOffY","startBackOffX","startbackOffY","pathlen","start0","dstart","end0","dend","drawhead","arrowHeadStyle","rot","arrowScale","noRotate","ctz","roundRat","iv","ir","ybits","lastReading","_lastValue","secondLastReading","deltaRef","lastY","relativeDelta","fromcurrent","ordering","final","columnwidth","header","bitmap","Ternary","makeFramework","aTickLayout","bTickLayout","cTickLayout","_ternarylayer","defs","layoutId","ternaryCalcData","ternaryLayout","graphSize","adjustLayout","plotbg","clipIdRelative","clipDef","clipDefRelative","plotContainer","grids","plotLayers","toplevel","whRatio","xDomainFinal","yDomainFinal","xDomainCenter","yDomainCenter","wmax","hmax","amin","bmin","yDomain0","triangleClip","triangleClipRelative","plotTransform","bTransform","bgrid","aTransform","agrid","cTransform","cgrid","drawAxes","aline","bline","cline","doTitles","titlesuffix","drawAx","apad","bpad","axLayer","stashKey","caRad","CLEN","BLPATH","BRPATH","TOPPATH","SHOWZOOMOUTTIP","mins0","span0","mins","dragger","clickZoomPan","plotDrag","dragDone","panPrep","makeUpdate","_mins","getAFrac","getBFrac","getCFrac","afrac","bfrac","cfrac","xSpan","dxScaled","dyScaled","minsorted","minindices","plotTransform2","mouseElement","srcElement","mouseButtons","mouseRelativeX","mouseRelativeY","handleRThetaDefaults","createGLPlot2D","createPick","GLPlot2D","createGrid","createText","createBox","gridLineEnable","gridLineWidth","gridLineColor","tickMarkLength","tickMarkWidth","tickMarkColor","tickPad","tickEnable","labelPad","labelAngle","labelEnable","labelColor","titleCenter","titleEnable","titleAngle","titleColor","zeroLineEnable","zeroLineWidth","zeroLineColor","borderLineEnable","borderLineWidth","borderLineColor","_tickBounds","static","pickDelay","_pickTimeout","_drawPick","_depthCounter","deepClone","compareTicks","setDirty","setOverlayDirty","nextDepthValue","viewPixels","zeroIntercept","drawTickMarks","scrX","scrY","pickResult","pickValue","setScreenBox","nbox","setDataBox","setViewBox","axisTicks","labelSize","labelFont","titleFont","addOverlay","removeOverlay","SIMPLE_PROPERTY_REGEX","baseObj","keyName","valueName","baseProp","changeTypes","indexLookup","isSimpleValueProp","changeType","newValue","rename","createBoxes","boxVert","Boxes","drawBox","loX","loY","hiX","hiY","scatterPolarFormatLabels","possibleTypes","tarjan","isIndex","convertToD3Sankey","linkSpec","hasLinkColorArray","linkedNodes","componentCount","colorscales","maxNodeId","nodeCount","groupLookup","nodeIndex","groupedLinks","concentrationscale","totalCount","hasNodeColorArray","childrenNodes","circularityPresent","nodeLen","sources","targets","init2dArray","_nodes","_links","_groups","_groupLookup","GLSpikes2D","createSpikes2D","spikeEnable","spikeWidth","spikeColor","spikeCenter","centerX","centerY","ArrayIterator","kind","__kind__","prettyPrint","spacing","stepStr","sigFigs","xstr","xis","defaultTicks","equal","ticksEqual","ticksA","ticksB","showNoWebGlMsg","IndexedObject","nativeAssign","chr","argumentsLength","createTextElements","textVert","textFrag","TextElements","getText","tickX","labelCount","DATA_AXIS","SCREEN_OFFSET","ZERO_2","DATA_SHIFT","DATA_SCALE","TEXT_SCALE","textAngle","screenScale","dataAxis","screenOffset","titleCount","titleOffset","boundScale","dataCenter","dataWidth","viewLo","viewScale","screenLo","dataShift","textScale","textCoordinate","axesTicks","coordScale","coordShift","divide","image","images","currentPos","currentSize","newPos","newSize","createOrbitController","normalize4","OrbitCameraController","filterVector","mat4FromQuat","quatFromFrame","len3","len4","al","initQuat","initCenter","initRadius","computedRotation","quat","rr","getMatrix","uz","ul","rz","ru","fz","fu","fr","fl","fromJSON","transformMat4","pickSrc","createPickContourShader","_undefined","fixup","makeOp","pcompile","assign_ops","band","bor","bxor","lshift","rshift","rrshift","unary_ops","not","bnot","recip","binary_ops","neq","leq","geq","math_unary","math_comm","math_noncomm","any","prod","norm2squared","norm2","norminf","norm1","inf","argmin","argmax","assigns","webpackPolyfill","isPrototype","FROM_BL","plots","plotBasePlot","cleanBasePlot","OHLCattrs","boxAttrs","lineColorDefault","globalFont","CONVERT_TO_STRING","second","codeAt","generated","originalArray","EPOCHJD","utcFormat","DATETIME_REGEXP","DATETIME_REGEXP_CN","YFIRST","isWorldCalendar","lpad","sunday","isJSDate","tzOffset","getTimezoneOffset","offsetTweak","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","getMilliseconds","comb","isWorld","isChinese","H","cDate","calInstance","isIntercalary","toMonthIndex","UTC","setUTCFullYear","getUTCMonth","getUTCDate","NINETYDAYS","THREEHOURS","FIVEMIN","includeTime","msec10","dateJD","timeMs","getUTCHours","ms2DateTimeLocal","fracMatch","modDateFormat","formatter","toFixed","MAXSECONDS","extraFormat","formatTime","timePart","timeStr","secStr","THREEDAYS","dMonth","setUTCMonth","hiddenStore","createStore","INCREASING_COLOR","DECREASING_COLOR","baseTraceAttrs","valObjectDef","valObjectMeta","validateFunction","propMock","coerceFunction","data_array","propOut","enumerated","string","okToCoerce","strict","colorlist","isColor","subplotid","flaglist","vParts","info_array","coercePart","propPart","twoD","vNew","vOut","arrayItems2D","innerItemsOnly","attribute","propIn","dfltObj","coerceHoverinfo","moduleAttrs","valObj","_dataLength","smoDflt","usmoDflt","bnsub","trimLeft","trimRight","tinyCounter","mathRound","mathMin","mathMax","mathRandom","inputToRGB","stringInputToObject","named","matchers","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","isValidCSSUnit","rgbToRgb","bound01","convertToPercentage","hsvToRgb","hslToRgb","hue2rgb","boundAlpha","_originalInput","_g","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","rgbaToArgbHex","convertDecimalToHex","desaturate","amount","toHsl","clamp01","saturate","greyscale","lighten","brighten","darken","spin","hue","complement","triad","tetrad","splitcomplement","analogous","part","monochromatic","toHsv","modification","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","_applyModification","_applyCombination","fromRatio","color1","color2","mix","rgb1","rgb2","readability","c2","isReadable","wcag2","wcag2Parms","validateWCAG2Parms","parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","brackets","escape","flat","bracket","pRE","replaceToken","refId","prevStr","replaceRef","curr","parenthesis","thicknessmode","lenmode","xpad","ypad","outlinecolor","outlinewidth","titleside","handleLonLatDefaults","coerceEnumerated","arrayOrScalar","getLineWidth","mlw","baseAttributes","frameAttributes","animationAttributes","polarAreaAttrs","polarAxisAttrs","editTypes","UNDERSCORE_ATTRS","recurseIntoValObject","valObject","newValObject","getLayoutAttributes","handleBasePlotModule","assignPolarLayoutAttrs","xkey","insertAttrs","formatAttributes","getFramesAttributes","mergeValTypeAndRole","isValObject","role","formatArrayContainers","itemName","newAttrs","IS_SUBPLOT_OBJ","IS_LINKED_TO_ARRAY","DEPRECATED","getTraceAttributes","copyBaseAttributes","copyModuleAttributes","fullAttrString","legendgroup","getTransformAttributes","valObjects","metaKeys","animation","specifiedLevel","attrString","findArrayAttributes","baseContainer","baseAttrName","arrayAttributes","isArrayStack","crawlIntoTrace","astrPartial","newAstrPartial","tNum","layoutHeadAttr","basePlotModules","baseOverrides","objToString","heatmapPlot","makeCrossings","findAllPaths","convertToConstraints","closeBoundaries","costConstants","LABELOPTIMIZER","joinAllPaths","perimeter","endpt","newendpt","nexti","possiblei","addpath","fullpath","startsleft","newloop","isbottom","isleft","isright","smoothopen","ptNew","smoothclosed","locationCost","labelData","halfWidth","halfHeight","normX","normY","cost","EDGECOST","ANGLECOST","labeli","dxd","dyd","sameLevel","distOffset","SAMELEVELDISTANCE","NEIGHBORCOST","SAMELEVELFACTOR","makeClipMask","emptyPoint","zmask","cdcontours","contourLayer","heatmapColoringLayer","cdheatmaps","leftedge","rightedge","bottomedge","topedge","fillPathinfo","makeBackground","plotgroup","bgfill","makeFills","hasFills","boundaryPath","fillitems","prefixBoundary","makeLinesAndLabels","lineContainer","showLabels","clipLinesForLabels","linegroup","lineClip","createLineClip","labelGroup","labelClipPathData","contourFormat","labelFormatter","dummyText","xLen","yLen","xRng","yRng","xMin","xMax","yMin","yMax","plotDiagonal","normLength","LABELDISTANCE","LABELINCREASE","calcTextOpts","LABELMIN","maxLabels","LABELMAX","findBestTextLocation","addLabelData","clipGaps","clips","clipPathInfo","makeLines","opencontourlines","pedgepaths","closedcontourlines","ppaths","formatAxis","_axis","plotBounds","INITIALSEARCHPOINTS","ITERATIONS","newLocation","newCost","MAXCOST","dxw","dxh","dyw","dyh","bBoxPts","parentString","isSunburst","isTreemap","_hasHoverLabel","_hasHoverEvent","traceNow","ptNumber","getParent","_cast","castHoverinfo","hoverCenterX","hoverCenterY","pxmid","rInscribed","flag","valueLabel","currentPath","getPath","allPercents","insertPercent","percentParent","formatPercent","percentEntry","percentRoot","isValidTextValue","hoverItems","nameLength","hovertemplateLabels","rpx1","idealAlign","noTransition","isLeaf","nextEntry","findEntryWithChild","nextLevel","typeClickEvtData","clickVal","animOpts","p_ln","lngamma","gamma","NATIVE_WEAK_MAP","objectHas","sharedKey","wmget","wmhas","wmset","metadata","STATE","enforce","getterFor","TYPE","updateCategoryModel","categoryModel","valueInd","valueInds","createPathModel","categoryInds","rawColor","updatePathModel","pathModel","uniqueInfoDims","categoryValues","categoryorder","categoryarray","getUniqueInfo","uniqueValues","uniqueValueCounts","uniqueValueInds","inds","uniqueVal","valInd","itemInd","uniqueCounts","validateDimensionDisplayInds","isRangePermutation","indsSpecified","displayindex","_displayindex","dimInd","validateCategoryProperties","uniqueInfoDim","_categoryarray","_ticktext","markerColorscale","tryColorscale","numValues","pathModels","categoryIndsDims","categoryIndsPath","pathColorInfo","pathKey","categoryInd","dimensionModels","createDimensionModel","dimensionInd","containerInd","displayInd","dimensionLabel","dragX","catInd","catValue","catLabel","categoryValue","categoryLabel","dragY","createParcatsModel","maxCats","valAxis","posAxis","numKey","boxVals","posArray","getPos","hasPos0","hasPosStep","pos0c","posDistinct","dPos","ptFilterFn","lf","uf","_hasPreCompStats","valArrayRaw","med","sortByVal","computeLowerFence","computeUpperFence","computeLowerOutlierBound","uo","computeUpperOutlierBound","computeNotchSpan","ln","un","imin","pts2","valArray","posBins","makeBins","ptsPerBin","initNestedArray","minLowerNotch","maxUpperNotch","usesExclusive","usesInclusive","lower","mci","TRACE_TO_CALC","scaleZoom","makePadFn","concatExtremes","getConstraintOpts","thisID","allAxisIds","idj","axj","doesNotConstrainRange","linkableAxes","thisGroup","linkableAxesNoLoops","updateConstraintGroups","constraintGroups","scaleanchor","scaleratio","groupi","keyj","thisGroupIndex","thisGroupKeys","baseScale","updateDomain","inputDomain","_inputDomain","constraintoward","matchOpts","scaleOpts","scaleanchorDflt","constrainDflt","_axisConstraintGroups","splomStash","axisID","normScale","minScale","maxScale","matchScale","normScales","hasAnyDomainConstraint","_inputRange","_constraintShrinkable","domainShrunk","rangeShrunk","rangeCenter","rangeMin","rangeMax","halfRange","outerMin","outerMax","getPad","extremes","minArray","maxArray","isConstrained","isView","DataView","_rowLength","len0","_constructor","arg0","argi","leni","allArray","totalLen","_requestRangeslider","rangeContainerIn","rangeContainerOut","yNames","rangemodeDflt","yAxOut","coerceRange","isCanvas","createCanvas","setContext","isElement","VectorMesh","triangleVectors","vector","tVec","velocity","createVectorMesh","surfaceAttrs","perStackAttrs","stackOpts","firstTrace","attrFound","traceHasAttr","isOrientation","trace2","heatmapCalc","zOut","cVals","min0","isLeftAnchor","isTopAnchor","COMPARISON_OPS","CONSTRAINT_REDUCTION","getWebGLContext","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","hr","avg","checkCollinear","modModule","twoPI","aBnds","_path","aStart","aMid","aEnd","rStart","rEnd","isCircle","largeArc","rBnds","d3_arraySlice","d3_array","d3_document","d3_documentElement","d3_window","defaultView","setProperty","d3_element_prototype","Element","d3_element_setAttribute","d3_element_setAttributeNS","setAttributeNS","d3_style_prototype","CSSStyleDeclaration","d3_style_setProperty","space","d3_ascending","d3_number","d3_numeric","d3_bisector","descending","quantile","numbers","variance","d3_bisect","d3_transposeLength","bisectLeft","bisect","bisectRight","bisector","shuffle","indexes","permutes","merged","d3_range_integerScale","d3_class","d3_Map","d3_map_escape","d3_map_unescape","d3_map_has","d3_map_remove","d3_map_keys","d3_map_size","d3_map_empty","d3_Set","d3_identity","d3_rebind","d3_vendorSymbol","d3_vendorPrefixes","prefixName","sortValues","rollup","mapType","keyValue","setter","valuesByKey","sortKey","keyMap","d3_noop","d3_dispatch","d3_dispatch_event","listeners","listenerByName","listener","d3_eventPreventDefault","d3_eventSource","d3_eventDispatch","of","thiz","argumentz","e1","requote","d3_requote_re","d3_subclass","__proto__","d3_selection","d3_selectionPrototype","d3_select","d3_selectAll","querySelectorAll","d3_selectMatches","d3_selectMatcher","Sizzle","matchesSelector","d3_selection_selector","d3_selection_selectorAll","subgroup","subnode","subgroups","d3_nsXhtml","d3_nsPrefix","xhtml","xlink","xml","d3_selection_attr","qualify","attrNullNS","removeAttributeNS","attrNull","removeAttribute","attrFunctionNS","attrFunction","attrConstantNS","attrConstant","d3_collapse","d3_selection_classedRe","d3_selection_classes","d3_selection_classed","d3_selection_classedName","classedFunction","classedConstant","classList","d3_selection_style","styleNull","removeProperty","styleFunction","styleConstant","d3_selection_property","propertyNull","propertyFunction","propertyConstant","d3_selection_creator","createNS","namespace","namespaceURI","d3_selectionRemove","d3_selection_dataNode","d3_selection_filter","d3_selection_sortComparator","comparator","d3_selection_each","d3_selection_enter","d3_selection_enterPrototype","getAttributeNS","innerHTML","before","groupData","nodeData","updateNodes","enterNodes","exitNodes","nodeByKeyValue","keyValues","nextSibling","d3_selection_enterInsertBefore","d3_selection_on","d3_selection_onListener","d3_selection_onFilters","onRemove","d3_selection_onFilter","onAdd","upgroup","mouseenter","mouseleave","related","compareDocumentPosition","d3_event_dragSelect","d3_event_dragId","d3_event_dragSuppress","suppressClick","d3_mousePoint","d3_mouse_bug44083","ownerSVGElement","createSVGPoint","scrollX","ctm","border","getScreenCTM","pageX","pageY","matrixTransform","clientLeft","clientTop","d3_behavior_dragTouchId","identifier","touch","touches","mousedown","touchstart","subject","dragOffset","correspondingElement","dragged","dragId","dragName","dragSubject","moved","ended","dragRestore","position0","position1","ε2","τ","τε","d3_radians","d3_degrees","d3_sgn","d3_cross2d","d3_acos","d3_asin","d3_cosh","d3_haversin","ρ","interpolateZoom","ux0","uy0","ux1","uy1","coshr0","d3_tanh","d3_sinh","translate0","center0","mousewheelTimer","touchtime","scaleExtent","d3_behavior_zoomInfinity","zooming","mouseup","mousedowned","d3_behavior_zoomWheel","mousewheeled","dblclicked","touchstarted","scaleTo","translateTo","zoomTo","__chart__","rescale","zoomstarted","zoomed","zoomended","location0","d3_selection_interrupt","scale0","locations0","distance0","zoomName","touchmove","touchend","relocate","started","LN2","distance1","scale1","d3_behavior_zoomDelta","deltaMode","wheelDelta","view1","d3_transitionInheritId","tween","d3_color","d3_hsl","d3_rgb_parse","d3_rgb_hsl","d3_hslPrototype","d3_hsl_rgb","m2","d3_rgb","d3_hcl","d3_lab_hcl","d3_lab","d3_rgb_lab","brighter","hcl","d3_hclPrototype","d3_hcl_lab","d3_lab_K","lab","d3_labPrototype","d3_lab_rgb","d3_xyz_rgb","d3_lab_xyz","d3_xyz_lab","d3_rgbNumber","d3_rgbString","d3_rgbPrototype","d3_rgb_hex","d3_rgb_parseNumber","d3_rgb_names","d3_rgb_xyz","d3_functor","d3_xhrType","response","mimeType","d3_xhr","xhr","headers","request","XMLHttpRequest","responseType","respond","d3_xhrHasResponse","responseText","load","XDomainRequest","onreadystatechange","readyState","onprogress","send","setRequestHeader","overrideMimeType","beforesend","abort","d3_xhr_fixCallback","functor","dsv","delimiter","reFormat","delimiterCode","typedResponse","formatRow","parseRows","eol","EOL","EOF","I","formatRows","fieldSet","fields","field","csv","tsv","d3_timer_queueHead","d3_timer_queueTail","d3_timer_interval","d3_timer_timeout","d3_timer_frame","d3_timer","d3_timer_step","d3_timer_mark","d3_timer_sweep","d3_format_precision","d3_formatPrefixes","d3_formatPrefix","d3_locale_numberFormat","locale_decimal","locale_thousands","locale_grouping","locale_currency","formatGroup","specifier","d3_format_re","zfill","comma","d3_format_types","d3_format_typeDefault","zcomma","fullSuffix","formatPrefix","after","toExponential","d3_time","d3_date","d3_date_utc","getDay","getUTCDay","getUTCFullYear","setDate","d3_time_prototype","setUTCDate","setDay","setUTCDay","setFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes","setMonth","setUTCSeconds","setTime","d3_time_interval","d3_time_interval_utc","range_utc","d3_locale_timeFormat","locale_dateTime","locale_date","locale_time","locale_periods","locale_days","locale_shortDays","locale_months","locale_shortMonths","d3_time_format","d3_time_formatPads","d3_time_formats","L","Z","d3_time_parse","localZ","d3_time_parsers","multi","d3_time_formatMulti","d3_time_periodLookup","d3_time_dayRe","d3_time_formatRe","d3_time_dayLookup","d3_time_formatLookup","d3_time_dayAbbrevRe","d3_time_dayAbbrevLookup","d3_time_monthRe","d3_time_monthLookup","d3_time_monthAbbrevRe","d3_time_monthAbbrevLookup","d3_time_formatPad","sundayOfYear","mondayOfYear","d3_time_zone","d3_time_parseWeekdayAbbrev","d3_time_parseWeekday","d3_time_parseMonthAbbrev","d3_time_parseMonth","d3_time_parseLocaleFull","d3_time_parseDay","d3_time_parseHour24","d3_time_parseDayOfYear","d3_time_parseMilliseconds","d3_time_parseMonthNumber","d3_time_parseMinutes","d3_time_parseAmPm","d3_time_parseSeconds","d3_time_parseWeekNumberSunday","d3_time_parseWeekdayNumber","d3_time_parseWeekNumberMonday","d3_time_parseLocaleDate","d3_time_parseLocaleTime","d3_time_parseYear","d3_time_parseFullYear","d3_time_parseZone","d3_time_parseLiteralPercent","years","week","weeks","d3_time_numberRe","d3_time_percentRe","d3_time_expandYear","zh","zm","formats","d3_locale_enUS","d3_adder","d3_adderSum","d3_adderTemp","bv","av","d3_geo_streamGeometry","d3_geo_streamGeometryType","d3_geo_streamObjectType","d3_geo_streamLine","d3_geo_streamPolygon","GeometryCollection","coordinate","d3_geo_areaSum","d3_geo_area","d3_geo_centroidW0","d3_geo_centroidW1","d3_geo_centroidX0","d3_geo_centroidY0","d3_geo_centroidZ0","d3_geo_centroidX1","d3_geo_centroidY1","d3_geo_centroidZ1","d3_geo_centroidX2","d3_geo_centroidY2","d3_geo_centroidZ2","d3_geo_areaRingSum","d3_geo_areaRingStart","λ00","φ00","cosφ0","sinφ0","nextPoint","dλ","sdλ","adλ","d3_geo_cartesian","spherical","d3_geo_cartesianDot","d3_geo_cartesianCross","d3_geo_cartesianAdd","d3_geo_cartesianScale","d3_geo_cartesianNormalize","d3_geo_spherical","d3_geo_sphericalEqual","λ1","λ_","λ__","φ__","dλSum","bound","ringPoint","ringStart","ringEnd","linePoint","inflection","λi","antimeridian","φi","compareRanges","withinRange","best","centroid","d3_geo_centroid","d3_geo_centroidPoint","d3_geo_centroidLineStart","d3_geo_centroidLineEnd","d3_geo_centroidRingStart","d3_geo_centroidPointXYZ","d3_geo_compose","compose","d3_true","d3_geo_clipPolygon","clipStartInside","d3_geo_clipPolygonIntersection","d3_geo_clipPolygonLinkCircular","isSubject","other","d3_geo_clip","pointVisible","clipLine","clipStart","rotatedClipStart","pointRing","d3_geo_pointInPolygon","meridian","parallel","meridianNormal","polarAngle","point0","intersection","φarc","polygonStarted","d3_geo_clipSort","pointLine","d3_geo_clipBufferListener","ringListener","ringSegments","d3_geo_clipSegmentLength1","rejoin","d3_geo_clipAntimeridian","d3_geo_clipAntimeridianLine","sλ0","sλ1","d3_geo_clipAntimeridianIntersect","cosφ1","sinλ0_λ1","d3_geo_clipAntimeridianInterpolate","d3_geo_clipCircle","cr","smallRadius","notHemisphere","v00","point2","point1","d3_geo_circleInterpolate","two","n1","n2","n2n2","n1n2","n1xn2","polar","d3_geom_clipLine","d3_geo_clipExtent","x__","y__","v__","x_","y_","v_","listener_","bufferListener","insidePolygon","wn","comparePoints","ca","d3_geo_conic","projectAt","d3_geo_projectionMutator","d3_geo_conicEqualArea","ρ0","ρ0_y","clipExtent","conicEqualArea","albers","albersUsa","lower48Point","alaskaPoint","hawaiiPoint","lower48","alaska","hawaii","pointStream","lower48Stream","alaskaStream","hawaiiStream","d3_geo_pathAreaSum","d3_geo_pathAreaPolygon","d3_geo_pathBoundsX0","d3_geo_pathBoundsY0","d3_geo_pathBoundsX1","d3_geo_pathBoundsY1","d3_geo_pathArea","d3_geo_pathAreaRingStart","x00","y00","d3_geo_pathBounds","d3_geo_pathBoundsPoint","d3_geo_pathBuffer","pointCircle","d3_geo_pathBufferCircle","pointLineStart","lineEndPolygon","pointRadius","d3_geo_lengthSum","d3_geo_pathCentroid","d3_geo_pathCentroidPoint","d3_geo_pathCentroidLineStart","d3_geo_pathCentroidLineEnd","d3_geo_pathCentroidRingStart","d3_geo_pathContext","d3_geo_resample","δ2","cosMinDistance","resampleRecursive","resampleNone","d3_geo_transformPoint","b00","resampleLineTo","dx2","dy2","d3_geo_pathProjectStream","d3_geo_projectionRadians","d3_geo_transform","d3_geo_projection","projectRotate","δx","δy","projectResample","δγ","preclip","postclip","clipAngle","d3_geo_rotation","invalidate","d3_geo_equirectangular","d3_geo_identityRotation","d3_geo_rotationλ","d3_geo_rotationφγ","d3_geo_forwardRotationλ","cosδφ","sinδφ","cosδγ","sinδγ","sr","d3_geo_circleAngle","d3_geo_graticuleX","d3_geo_graticuleY","d3_source","d3_target","projectStream","contextStream","cacheStream","methods","equirectangular","Δλ","sinΔλ","cosΔλ","sinφ1","graticule","X1","X0","Y1","Y0","DX","DY","majorExtent","minorExtent","majorStep","minorStep","greatArc","source_","target_","d3_geo_interpolate","cy0","sy0","cy1","sy1","kx0","ky0","kx1","ky1","d3_geo_length","d3_geo_lengthLineStart","d3_geo_azimuthal","azimuthal","cosλ","sinc","cosc","d3_geo_azimuthalEqualArea","cosλcosφ","d3_geo_azimuthalEquidistant","d3_geo_conicConformal","d3_geo_mercator","d3_geo_conicEquidistant","azimuthalEquidistant","conicConformal","conicEquidistant","d3_geo_gnomonic","d3_geo_mercatorProjection","clipAuto","gnomonic","mercator","d3_geo_orthographic","orthographic","d3_geo_stereographic","d3_geo_transverseMercator","d3_geom_pointX","d3_geom_pointY","d3_geom_hullUpper","hs","d3_geom_hullOrder","stereographic","transverseMercator","flippedPoints","skipLeft","skipRight","d3_geom_polygonPrototype","d3_geom_polygonInside","d3_geom_polygonIntersect","x43","y43","ua","d3_geom_polygonClosed","d3_geom_voronoiEdges","d3_geom_voronoiCells","d3_geom_voronoiBeaches","d3_geom_voronoiFirstCircle","d3_geom_voronoiCircles","d3_geom_voronoiBeachPool","d3_geom_voronoiCirclePool","d3_geom_voronoiBeach","d3_geom_voronoiRedBlackNode","site","d3_geom_voronoiCreateBeach","beach","d3_geom_voronoiDetachBeach","d3_geom_voronoiDetachCircle","d3_geom_voronoiRemoveBeach","disappearing","lArc","iArc","nArcs","d3_geom_voronoiSetEdgeEnd","d3_geom_voronoiCreateEdge","d3_geom_voronoiAttachCircle","d3_geom_voronoiAddBeach","dxl","dxr","directrix","d3_geom_voronoiLeftBreakPoint","d3_geom_voronoiRightBreakPoint","newArc","lSite","rSite","hb","hc","rfocx","rfocy","pby2","lfocx","lfocy","plby2","hl","aby2","d3_geom_voronoiCell","d3_geom_voronoiHalfEdgeOrder","d3_geom_voronoiCircle","cSite","ha","d3_geom_voronoiConnectEdge","vb","fm","fb","va","d3_geom_voronoiEdge","d3_geom_voronoiHalfEdge","d3_geom_voronoiCreateBorderEdge","d3_geom_voronoiRedBlackTree","d3_geom_voronoiRedBlackRotateLeft","d3_geom_voronoiRedBlackRotateRight","d3_geom_voronoiRedBlackFirst","d3_geom_voronoi","sites","d3_geom_voronoiVertexOrder","d3_geom_voronoiClipEdges","d3_geom_voronoiCloseCells","iHalfEdge","halfEdges","nHalfEdges","iCell","diagram","grandpa","uncle","sibling","voronoi","d3_geom_voronoiClipExtent","d3_geom_quadtreeCompatX","d3_geom_quadtreeCompatY","d3_geom_quadtreeVisit","d3_geom_quadtreeFind","minDistance2","distance2","d3_interpolateRgb","ag","br","d3_interpolateObject","d3_interpolate","d3_interpolateNumber","d3_interpolateString","bm","d3_interpolate_numberA","d3_interpolate_numberB","delaunay","compat","x1_","y1_","x2_","y2_","nx","ny","insertChild","nPoint","interpolateRgb","interpolateObject","interpolateNumber","interpolateString","interpolators","d3_interpolateArray","interpolateArray","d3_ease_default","d3_ease","d3_ease_poly","d3_ease_quad","cubic","d3_ease_cubic","d3_ease_sin","d3_ease_exp","d3_ease_circle","elastic","d3_ease_elastic","back","d3_ease_back","bounce","d3_ease_bounce","d3_ease_mode","d3_ease_reverse","d3_ease_reflect","d3_ease_clamp","d3_ease_cubicInOut","d3_interpolateRound","d3_transform","kx","d3_transformNormalize","kz","d3_transformDot","d3_transformCombine","skew","interpolateHcl","d3_interpolateHcl","bh","interpolateHsl","d3_interpolateHsl","interpolateLab","d3_interpolateLab","aa","interpolateRound","d3_transformIdentity","d3_interpolateTransformPop","d3_interpolateTransform","d3_interpolateTranslate","ta","tb","d3_interpolateRotate","ra","d3_interpolateSkew","d3_interpolateScale","ka","kb","d3_uninterpolateNumber","d3_uninterpolateClamp","d3_layout_bundlePath","lca","d3_layout_bundleLeastCommonAncestor","aNodes","d3_layout_bundleAncestors","bNodes","aNode","bNode","sharedNode","ancestors","d3_layout_forceDragstart","fixed","d3_layout_forceDragend","d3_layout_forceMouseover","d3_layout_forceMouseout","interpolateTransform","bundle","chord","chords","sortGroups","sortSubgroups","sortChords","groupSums","subgroupIndex","dj","subindex","resort","charges","friction","linkDistance","d3_layout_forceLinkDistance","linkStrength","d3_layout_forceLinkStrength","charge","chargeDistance2","d3_layout_forceChargeDistance2","repulse","dw","dn","pointCharge","dragmove","resume","d3_layout_forceAccumulate","chargeDistance","neighbors","candidates","d3_layout_hierarchyRebind","d3_layout_hierarchyLinks","d3_layout_hierarchyVisitBefore","d3_layout_hierarchyVisitAfter","nodes2","d3_layout_hierarchyChildren","d3_layout_hierarchyValue","d3_layout_hierarchySort","childs","revalue","pie","d3_layout_pieSortByValue","padAngle","arcs","d3_layout_stackX","d3_layout_stackY","d3_layout_stackOut","d3_layout_stackOrderDefault","d3_layout_stackOffsetZero","series","d3_layout_stackOrders","d3_layout_stackOffsets","d3_layout_stackMaxIndex","sums","d3_layout_stackReduceSum","tops","bottoms","silhouette","wiggle","s2","s3","o0","zero","d3_layout_stackSum","d3_layout_histogramBinSturges","d3_layout_histogramBinFixed","d3_layout_histogramRange","d3_layout_packSort","d3_layout_packInsert","_pack_next","_pack_prev","d3_layout_packSplice","d3_layout_packIntersects","d3_layout_packSiblings","d3_layout_packLink","d3_layout_packPlace","isect","d3_layout_packUnlink","d3_layout_treeSeparation","d3_layout_treeLeft","d3_layout_treeRight","d3_layout_treeMove","wm","wp","d3_layout_treeAncestor","vim","ancestor","d3_layout_treemapPadNull","d3_layout_treemapPad","d3_scaleExtent","d3_scaleRange","rangeExtent","d3_scale_bilinear","uninterpolate","d3_scale_nice","nice","d3_scale_niceStep","d3_scale_niceIdentity","histogram","frequency","valuer","ranger","binner","bin","d3_layout_packTransform","separation","nodeSize","root0","root1","wrapTree","node1","firstWalk","secondWalk","sizeNode","siblings","d3_layout_treeShift","midpoint","apportion","vip","vop","vom","sip","sop","sim","som","cluster","previousNode","d3_layout_clusterX","d3_layout_clusterY","d3_layout_clusterLeft","d3_layout_clusterRight","treemap","stickies","sticky","squarify","score","remaining","worst","stickify","rmax","rmin","padFunction","padConstant","σ","logNormal","bates","irwinHall","d3_scale_polylinear","d3_scale_linearRebind","d3_scale_linearNice","d3_scale_linearTickRange","d3_scale_linearTicks","d3_scale_linearTickFormat","d3_scale_linearPrecision","d3_scale_linearFormatPrecision","d3_scale_linearFormatSignificant","d3_scale_linear","rangeRound","d3_scale_log","niced","d3_scale_logNiceNegative","d3_scale_logFormat","d3_scale_powPow","d3_scale_pow","powp","powb","d3_scale_ordinal","rangeBand","rangePoints","rangeRoundPoints","rangeBands","outerPadding","rangeRoundBands","d3_category10","d3_category20","category20b","d3_category20b","category20c","d3_category20c","d3_zero","d3_scale_quantile","quantiles","invertExtent","quantize","d3_scale_quantize","d3_scale_threshold","d3_scale_identity","d3_svg_arcInnerRadius","d3_svg_arcOuterRadius","cornerRadius","padRadius","d3_svg_arcAuto","d3_svg_arcStartAngle","d3_svg_arcEndAngle","d3_svg_arcPadAngle","circleSegment","d3_svg_arcSweep","rc1","rc0","oc","kc","lc","t30","d3_svg_arcCornerTangents","t12","t03","ox","oy","cx0","cx1","d3_svg_line","defined","d3_svg_lineLinear","interpolateKey","tension","d3_svg_lineInterpolators","d3_svg_lineLinearClosed","d3_svg_lineStep","d3_svg_lineStepBefore","d3_svg_lineStepAfter","basis","d3_svg_lineBasis","d3_svg_lineBasisOpen","d3_svg_lineDot4","d3_svg_lineBasisBezier3","d3_svg_lineBasisBezier","d3_svg_lineBasisClosed","d3_svg_lineBundle","cardinal","d3_svg_lineCardinal","d3_svg_lineHermite","d3_svg_lineCardinalTangents","d3_svg_lineCardinalOpen","d3_svg_lineCardinalClosed","monotone","d3_svg_lineMonotone","d3_svg_lineMonotoneTangents","tangents","d3_svg_lineFiniteDifferences","d3_svg_lineSlope","lp","d3_svg_lineBasisBezier1","d3_svg_lineBasisBezier2","d3_svg_lineRadial","d3_svg_area","interpolateReverse","points0","points1","fx0","fy0","fx1","fy1","d3_svg_chordRadius","d3_svg_diagonalProjection","d3_svg_diagonalRadialProjection","d3_svg_symbolSize","d3_svg_symbolType","d3_svg_symbolCircle","p3","projection_","d3_svg_symbols","d3_svg_symbolTan30","d3_svg_symbolSqrt3","d3_transitionId","d3_transitionNamespace","d3_transitionInherit","d3_transitionNode","d3_transition","d3_selection_interruptNS","lock","activeId","d3_transitionPrototype","d3_transition_tween","d3_transition_text","tweens","elapsed","cancelId","schedule","subnodes","nameNS","attrTweenNS","styleTween","inheritId","id0","tickFormat_","d3_svg_axisDefaultOrient","innerTickSize","outerTickSize","tickPadding","tickArguments_","tickValues","tickTransform","tickEnter","tickExit","tickUpdate","pathUpdate","lineEnter","lineUpdate","textEnter","textUpdate","d3_svg_axisX","d3_svg_axisY","d3_svg_axisOrients","tickSubdivide","xExtentDomain","yExtentDomain","xExtent","yExtent","xClamp","yClamp","resizes","d3_svg_brushResizes","brushstart","d3_svg_brushCursor","gUpdate","backgroundUpdate","redrawX","redrawY","eventTarget","event_","resizing","resizingX","resizingY","keydown","keyup","brushmove","brushend","ex","ey","keyCode","move1","extent1","extent0","d3_time_formatUtc","d3_time_formatIso","d3_time_formatIsoNative","toISOString","d3_time_scale","tickMethod","d3_time_scaleSteps","d3_time_scaleMilliseconds","d3_time_scaleDate","skip","skipped","iso","seconds","minute","minutes","hour","timezone","hours","d3_time_scaleLocalMethods","d3_time_scaleLocalFormat","d3_time_scaleUtcMethods","d3_time_scaleUtcFormat","d3_json","d3_html","selectNode","createContextualFragment","responseXML","inspectSource","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","src_map","src_nest","createResult","setResult","createObject","setObject","setMap","Set","zLabelVal","_indexToPoints","percentInitial","percentPrevious","percentTotal","findNearestOnAxis","generateIsoMeshes","VolumeTrace","rawId","_meshX","_meshY","_meshZ","_Ys","_Zs","_Xs","_meshI","_meshJ","_meshK","_meshIntensity","createVolumeTrace","baseFilter","calcDataFilter","filterFn","isCalcData","getCentroid","isFunctionStringTag","xId","yId","firstScatter","_firstScatter","firstScatterGroup","stackOrientation","getStackOpts","xOptions","yOptions","markerTrans","sizeOut","setFirstScatter","stackAx","isV","interpolateGaps","xAttr","yAttr","xValid","yValid","clickModule","visibleDflt","autorangeDflt","reverseDflt","noHover","ticksonDflt","isMultiCategory","noTickson","excludeWrapCoord","stopG","geometryMaybeCollection","isGeometryCollection","wrapShrink","coordIndex","isFeatureCollection","isFeature","featureIndex","geomIndex","multiFeatureIndex","geometryIndex","geomType","propEach","featureEach","geomEach","featureProperties","featureBBox","featureId","flattenEach","segmentEach","segmentIndex","previousCoords","previousFeatureIndex","previousMultiIndex","prevGeomIndex","currentCoord","featureIndexCoord","multiPartIndexCoord","currentSegment","lineEach","coordReduce","initialValue","propReduce","currentProperties","featureReduce","currentFeature","coordAll","currentGeometry","flattenReduce","segmentReduce","lineReduce","findSegment","findPoint","stepAttrs","sliderDefaults","sliderIn","sliderOut","stepCount","_stepCount","visSteps","_visibleSteps","slidersDefaults","countTrailingZeros","ctzNumber","BINATTRS","aStr","BINDIRECTIONS","binDir","allBinOpts","histTraces","mustMatchTracesLookup","otherTracesList","orientation2binDir","fillBinOpts","fallbackGroupName","getAxisType","needsNewItem","_xautoBinFinished","_yautoBinFinished","aGroupId","binGroupFound","bingroupIn","binGroup","binGroupInDir","attrSpec","nbinsFound","_pielayer","isRat","colorAxIn","colorAxOut","coerceAx","svgAttrs","colorMix","lightFraction","gridColor","gridWidth","wrappedWellKnownSymbolModule","NAME","scatterGeoAttrs","mapboxAttrs","npGet","curPart","allSame","curCont","propStr","indexed","propParts","badContainer","npSet","ARGS_PATTERN","isDeletable","containerLevels","toDelete","setArrayAll","checkNewContainer","joinPropStr","newPart","toAdd","containerArray","innerParts","arrayVal","allSet","thisVal","thisPropStr","deleteThis","firstPart","nextPart","_sunburstlayer","colorDflt","colorDfltRgba","calculateColor","colorIn","opacityIn","colorOut","validateColor","validateOpacity","formatColor","getColor","getOpacity","colori","opacityi","isArrayColorIn","isArrayOpacityIn","PlotlyConfig","MathJaxConfig","skipStartupTypeset","Configured","AxesOptions","tickFont","lineEnable","lineMirror","lineTickEnable","lineTickMirror","lineTickLength","lineTickWidth","lineTickColor","gridEnable","zeroEnable","backgroundEnable","_defaultTickPad","_defaultLabelPad","_defaultLineTickLength","showbackground","backgroundcolor","createAxesOptions","makeSet","yr","xd","yd","headerPanel","headerCells","headerRowBlocks","fromTo","rowFromTo","rowFrom","rowTo","Int8Array","Int16Array","Float64Array","affineHull","linearlyIndependent","nhull","piecolorway","extendpiecolors","DATE_FORMAT_LINK","handleAxisPositionDefaults","axisLayoutAttrs","SI_PREFIX","styleShape","zrange","axisOptions","fitTextInsideBox","textAnchor","_indicatorlayer","numbersX","numbersY","numbersScaler","gaugeBg","gaugeOutline","hasGauge","isBullet","numbersAlign","fitTextInsideCircle","elRadius","drawNumbers","bignumberbBox","deltabBox","numbersbBox","numbersAnchor","transitionFormat","transitionValueFormat","transitionAx","drawDelta","deltaAx","deltaFmt","deltaValue","deltaFormatText","numberFmt","deltaFill","_deltaLastValue","writeDelta","transitionFmt","interpolator","drawBignumber","bignumberAx","bignumberSuffix","bignumberPrefix","writeNumber","bignumberCenter","deltaCenter","scaleRatio","_numbersTop","angularGauge","angularaxisLayer","drawAngularGauge","gaugePosition","axisLayer","valueToAngle","arcPathGenerator","drawArc","bgArc","valueArcPathGenerator","valueArc","valueArcPath","arcTween","newAngle","thresholdArc","gaugeBorder","bulletGauge","bulletaxisLayer","drawBulletGauge","bullet","bulletHeight","innerBulletHeight","bulletLeft","bulletRight","drawRect","bgBullet","fgBullet","bulletOutline","titleY","titleX","titlebBox","scatterPolarAttrs","theta0","dtheta","AxisSpikes","OUTER_FACE","INNER_FACE","lastCubeProps","outerFace","innerFace","gridAttrs","roworder","noGridCell","getAxes","gridVal","splomVal","fillGridPositions","dfltGap","dfltSide","dirGap","cellDomain","cellStart","fillGridAxes","axesIn","axesAllowed","axisMap","fillOneAxis","axisId","sizeDefaults","gridIn","dfltRows","dfltColumns","hasSubplotGrid","hasXaxes","hasYaxes","isSplomGenerated","gridOut","_hasSubplotGrid","dfltSideX","dfltSideY","dfltGapX","dfltGapY","_domains","contentDefaults","subplotsOut","yPos","useDefaultSubplots","_axisMap","subplotsIn","rowOut","rowIn","anchors","_anchors","iFinal","parcoords","newIndex","visibleIndices","orig","origIndex","currentIndex","currentDims","fullIndices","inputIndices","iIn","filterChanged","initialDimIndex","newRanges","newConstraints","preGUI","constraintrange","fullDimension","restyleData","axesMoved","sorter","signum","legendLayout","isReversed","minMax","setConvertRadial","rFilter","g2c","g2p","setConvertAngular","_d2c","_c2d","toRadians","fromRadians","coord0","dcoord","rad2c","c2rad","rad2t","t2rad","rad2g","g2rad","catLen","_period","g2t","applyOrigin","tittle","clearRect","topPx","firstTop","getImageData","bottomPx","baseline","alphabetic","medianPx","hangingPx","hanging","ideographicPx","ideographic","capHeight","xHeight","firstBottom","overshootPx","iData","UmmAlQuraCalendar","daysCount","mcjdn","ummalqura_dat","lunation","ii","ummalqura","near","far","updateDiff","mappers","dict","sunburstcolorway","extendsunburstcolors","alphaComplex","circumradius","scalegroup","scalemode","spanmode","pieHelpers","piePlot","determineInsideTextFont","layoutAreas","prerenderTitles","positionTitleOutside","formatSliceLabel","_funnelarealayer","setCoords","baseratio","h2","totalValues","sumSteps","getPoint","calcPos","allPoints","hidden","lastX","rY","prevLeft","prevRight","TL","TR","BL","BR","textPosition","titleTextGroup","globalThis","permutationSign","visited","_120","quadratic","large_arc_flag","sweep_flag","recursive","rx2","ry2","f2old","x2old","y2old","degress","bezierX","bezierY","quadX","quadY","activeXDocument","enumBugKeys","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObject","ActiveXObject","iframeDocument","iframe","write","parentWindow","NullProtoObjectViaActiveX","contentWindow","safeToString","reNewLine","Ab","Za","ia","$a","Eb","devicePixelRatio","extensions","optionalExtensions","Cb","onDestroy","Db","J","alloc","allocType","freeType","ma","Ha","Ia","gb","Gb","persistentData","bufferData","Qa","bufferCount","deleteBuffer","bindBuffer","getTotalBufferSize","jb","Ra","ja","_reglType","_buffer","subdata","bufferSubData","createStream","destroyStream","getBuffer","restore","_initBuffer","Hb","primType","vertCount","oes_element_index_uint","elementsCount","uint16","uint32","Sa","getElements","lb","Ib","Ea","mb","Ta","Jb","ob","Ja","qa","Kb","internalformat","flipY","premultiplyAlpha","compressed","unpackAlignment","colorSpace","channels","alignment","Lb","La","pixelStorei","needsFree","needsCopy","fa","ga","Ua","qb","naturalWidth","naturalHeight","sb","videoWidth","videoHeight","Ma","compressedTexSubImage2D","copyTexSubImage2D","genMipmaps","mipmapHint","mipmask","mipmap","compressedTexImage2D","copyTexImage2D","ib","anisotropic","Va","Mb","V","K","ext_texture_filter_anisotropic","refCount","bindCount","texInfo","Aa","pixels","textureCount","fast","nearest","none","rgba4","rgb565","luminance","ext_srgb","srgb","srgba","oes_texture_float","oes_texture_half_float","float16","webgl_depth_texture","webgl_compressed_texture_s3tc","webgl_compressed_texture_atc","webgl_compressed_texture_pvrtc","webgl_compressed_texture_etc1","Nb","textureFormats","oa","za","ea","maxTextureUnits","decRef","getTotalTextureSize","create2D","subimage","_texture","createCube","cubeCount","getTexture","Ob","renderbuffer","_renderbuffer","framebuffer","colorAttachments","depthStencilAttachment","stencilAttachment","depthAttachment","framebufferCount","getError","colorCount","colorTexture","colorFormat","depthTexture","depthStencilTexture","depthStencil","Wa","Na","_framebuffer","use","setFBO","ext_color_buffer_half_float","webgl_color_buffer_float","getFramebuffer","ub","divisor","Qb","fragId","vertId","uniformsCount","attributesCount","getActiveUniform","getActiveAttrib","getAttribLocation","getMaxUniformsCount","getMaxAttributesCount","shaderCount","Rb","framebufferWidth","framebufferHeight","Ba","Ca","Sb","def","save","cond","Oa","thisDep","contextDep","propDep","Tb","Ka","Fa","batchId","shared","invoke","attribCache","scopeAttrib","strings","progVar","OFFSET","ELEMENTS","isBufferArgs","primTypes","instances","Da","isStream","glTypes","scissor_box","Xa","compareFuncs","Ga","dst","blendFuncs","blendEquations","Pa","fail","zfail","zpass","stencilOps","drawBuffer","backBuffer","instancing","contextDynamic","needsContext","needsFramebuffer","la","isDynamic","unbox","DynamicVariable","Record","ext_blend_minmax","angle_instanced_arrays","webgl_draw_buffers","orientationType","maxDrawbuffers","procs","maxAttributes","Ub","define","accessor","Ya","Vb","colorBits","depthBits","stencilBits","subpixelBits","maxAnisotropic","pointSizeDims","lineWidthDims","maxViewportDims","maxCombinedTextureUnits","maxCubeMapSize","maxRenderbufferSize","maxVertexUniforms","maxVertexTextureUnits","maxVaryingVectors","maxFragmentUniforms","glsl","vendor","readFloat","npotTextureCube","eb","int8","int16","int32","triangle","Wb","renderbufferCount","rgba16f","rgb16f","rgba32f","getTotalRenderbufferSize","never","lequal","greater","notequal","gequal","always","keep","decrement","refresh","opBack","opFront","gpuTime","cpuTime","batch","poll","clearDepth","clearStencil","getContextAttributes","Fb","Bb","endQueryIndex","startQueryIndex","ext_disjoint_timer_query","beginQuery","createQueryEXT","beginQueryEXT","endQuery","endQueryEXT","pushScopeStats","getQueryObjectEXT","getNumPendingQueries","deleteQueryEXT","Xb","Pb","framebuffer_reglType","framebufferCube","hasExtension","_refresh","timerCache","_clearTimeout","minInterval","previousOnDone","ReflectOwnKeys","Reflect","ReflectApply","receiver","NumberIsNaN","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","existing","newListener","ProcessEmitWarning","warning","onceWrapper","fired","removeListener","wrapFn","_onceWrap","_listeners","evlistener","unwrapListeners","arrayClone","listenerCount","RangeError","setMaxListeners","getMaxListeners","doError","er","addListener","prependListener","prependOnceListener","originalListener","spliceOne","removeAllListeners","rawListeners","eventNames","findCircuits","circuits","blocked","Ak","circuit","unblock","adjacencyStructureSCC","subgraph","minId","leastVertexComponent","ccs","leastVertex","vertexId","locs","addVectorAttribute","addMatrixAttribute","ShaderAttribute","_wrapper","_locations","_constFunc","constFuncArgs","varNames","vertexAttribPointer","scratch","vertexAttrib","setAttribPointer","mockGd","xLabel","yLabel","xyAttrs","copy_zstyle","xyzAttrs","error_z","scatter","scatter3d","scattergl","hoverInfo","calcPoint","hoverPoint","yerr","yerrneg","xerr","xerrneg","parsed","do_convert","createShaderWrapper","perspectiveVertSrc","orthographicVertSrc","projectionVertSrc","drawFragSrc","ATTRIBUTES","pickPerspective","pickOrtho","pickProject","glyph","createPerspective","createOrtho","createProject","createPickPerspective","createPickOrtho","createPickProject","makeIncrements","nonuniform","binsToCalc","getRanges","uniqueVals","gapLow","gapHigh","xr2c","yr2c","xBinsAndPos","xBinSpec","xPos0","yBinsAndPos","yBinSpec","yPos0","onecol","zerocol","nonuniformBinsX","nonuniformBinsY","xEdges","yEdges","densitynorm","sizeinit","binfunc","normfunc","doavg","xinc","yinc","xBinSize","xBinStart","xBinEnd","yBinSize","yBinStart","yBinEnd","ipCol","yc2r","uniqueValsPerX","uniqueValsPerY","xVals","yVals","xGapLow","xGapHigh","yGapLow","yGapHigh","YANGLE","HOVERARROWSIZE","HOVERTEXTPAD","HOVERFONTSIZE","HOVERFONT","HOVERMINTIME","HOVERID","calcGridlines","axisLetter","crossAxisLetter","j1","gridlines","_gridlines","minorgridlines","_minorgridlines","boundarylines","_boundarylines","crossData","crossAxis","xcp","_xctrl","ycp","_yctrl","nea","neb","constructValueGridline","tj","pxy","dxydi0","dxydi1","dxydj0","dxydj1","xpoints","ypoints","b2j","crossLength","evalxy","dxydi","a2i","dxydj","constvar","constructArrayGridline","arraytick0","arraydtick","minorgridcount","minorgridcolor","minorgridwidth","startline","startlinecolor","startlinewidth","endline","endlinecolor","endlinewidth","annotationsDone","emitClick","stopImmediatePropagation","isAbsolute","isTotal","previousSum","hasTotals","rawS","mlc","hasOnlyLines","els","unels","matrixOpts","unselectedOptions","selectedOptions","viewOpts","description","dfltX","dfltY","isNonBlankString","isValidLoc","hasLocationData","scatterPlot","mlayer","rg","boxPlot","linePoints","cdViolins","violinLayer","makePath","baseTolerance","linearized","bPos","bdPos","hasBothSides","hasPositiveSide","hasNegativeSide","violins","pathPos","pathNeg","pathSel","density","posCenter","maxKDE","groupStats","_violinScaleGroupStats","maxCount","startPt","endPt","bdPosScaled","bPosPxOffset","plotBoxAndWhiskers","plotBoxMean","meanPaths","plotPoints","paste","traceAttr","cdAttr","makeCoerceHoverInfo","fillFn","fillArray","valuesuffix","arrangement","basePlotLayoutAttributes","handleTypeDefaults","handlePositionDefaults","appendList","ax2traces","xaMayHide","yaMayHide","xaMustDisplay","yaMustDisplay","yaMustNotReverse","yaMayReverse","axHasImage","noGrids","xaName","yaName","xNames","axNames","plotBgColor","axLayoutIn","axLayoutOut","getCounterAxes","counterAxes","getOverlayableAxes","axName2","_annIndices","_counterAxes","overlayableAxes","defaultOptions","spikedash","spikemode","spikesnap","rangeSliderDefaults","rangeSelectorDefaults","anchoredAxis","group2","layerName","lonShift","xval2","distFn","lonlatShifted","getExtraText","isAll","hasLon","hasLat","drawing","setPosition","setSize","translatePoint","translatePoints","hideOutsideRangePoint","singleLineStyle","lw","ld","lw1","dashStyle","dlw","singleFillStyle","SYMBOLDEFS","symbolNames","symbolFuncs","symbolNeedLines","symbolNoDot","symbolNoFill","symDef","MAXSYMBOL","makePointPath","symbolNumber","vbase","HORZGRADIENT","VERTGRADIENT","stopFormatter","gradientInfo","radialreversed","horizontalreversed","vertical","verticalreversed","gradientID","colorStops","fullID","stops","tc","tinyRGB","getFullUrl","className2query","_gradientUrlQueryParts","initGradients","makePointStyleFns","singlePointStyle","ms2mrc","om","perPointGradient","so","markerLineWidth","mlcc","lineScale","markerScale","mgt","gradientColor","mgc","selectedAttrs","unselectedAttrs","selectedMarker","unselectedMarker","smo","usmo","smoIsDefined","usmoIsDefined","smc","usmc","sms","usms","smsIsDefined","usmsIsDefined","makeSelectedTextStyleFns","selectedTextFont","unselectedTextFont","stc","selectedTextColorFn","mrc2","TEXTOFFSETSIGN","textPointPosition","markerRadius","numLines","extracTextFontSize","extractOption","tp","makeTangent","prevpt","thispt","nextpt","smoothness","d1x","d1y","d2x","d2y","d1a","CatmullRomExp","d2a","numx","numy","denom1","denom2","pLast","STEPPATH","hv","vh","hvh","vhv","STEPLINEAR","onestep","makeTester","testref","savedBBoxes","savedBBoxesCount","nodeHash","inputText","localId","_exportedPlot","_baseUrl","inTester","testNode","innerBB","testRect","SCALE_RE","yScale","TEXT_POINT_LAST_TRANSLATION_RE","existingTransform","propertyKey","copyPathinfo","pi0","pi1","op0","op1","dupe","dupe_number","dupe_array","stringCoerce","toShortString","resolveMessage","defaultMessage","inputOptions","isOptional","errorMessage","SHOWISOLATETIP","itemClick","itemclick","itemDoubleClick","itemdoubleclick","attrUpdate","attrIndices","carrs","carrIdx","thisLabelIndex","hasLegendgroup","traceIndicesInGroup","nextVisibility","setVisibility","isClicked","isInGroup","notInLegend","otherState","isIsolated","updateKeys","insertUpdate","attrIndex","valueArray","lastGroupbyIndex","curState","hoverConstants","oldhoverdata","calcCommon","ptFunc","_numBoxes","isnum","isoperator","allBuiltins","builtins100","allLiterals","literals100","builtins300es","literals300es","builtinsDict","literalsDict","chunk","block_comment","preprocessor","operator","readtoken","whitespace","determine_operator","is_composite_operator","operators","contentstr","getSubplotCalcData","isMapboxStyle","mapboxIds","requiredVersion","wrongVersionErrorMsg","findAccessToken","tokensUseful","tokensListed","hasOneSetMapboxStyle","wontWork","noAccessTokenErrorMsg","missingStyleErrorMsg","multipleTokensErrorMsg","subplotCalcData","oldMapboxKeys","oldMapboxKey","subplotDiv","logo","mapboxLogo","path2","attributions","attributionGroup","attributionText","multilineAttributions","subplotUpdateFx","bgRect","_bgRect","newGroups","oldGroups","newGroup","findNode","hadPlot","hasPlot","circumcenter","avgDist","extendedColorWayList","extendedColorWays","colorString","hiddenLabels","_hasValues","dlabel","label0","allThisTraceLabels","isAggregated","cm","zminDesc","zmaxDesc","do_warp","do_warp_1","do_warp_2","do_warp_3","handleConstraintValueDefaults","zvalue","boxLayoutDefaults","plotObj","_ev","internalEv","_internalEv","_internalOnce","_removeAllInternalListeners","trigger","jQueryHandlerValue","nodeEventHandlerValue","handlers","arrayMax","maybeArray","squareStringMatrix","matrixIn","maxLen","padLen","emptyStrings","padArray","makeRowBlock","anchorToRowBlock","auxiliary","makeAnchorToRowBlock","rowHeights","minimumFillHeight","currentRowHeight","currentAnchor","currentBlockHeight","currentBlock","lastRowIndex","currentFirstRowIndex","blockCounter","cellsValues","slicer","headerValuesIn","headerValues","groupWidth","headerRowHeights","uniqueKeys","columnOrder","columnWidths","totalColumnWidths","foundKey","compareOrientedCells","createTriangulation","removePair","compareLex","removeTriangle","addTriangle","ChineseCalendar","MONTH_NUMBER_REGEXP","_validateYear","monthIndex","toChineseMonth","isIntercalaryMonth","MONTH_NAME_REGEXP","monthName","MONTH_SHORT_NAME_REGEXP","monthString","intercalaryMonth","LUNAR_MONTH_DAYS","firstThursday","validatedYear","invalidyear","packedDate","CHINESE_NEW_YEAR","monthDaysTable","solar","toSolar","yearOrDate","monthOrResult","isIntercalaryOrResult","solarDate","lunarDate","daysFromNewYear","monthsFromNewYear","jsDate","lunar","toLunar","chineseNewYearPackedDate","chineseNewYearJSDate","fromString","dateString","DATE_REGEXP","resultYear","resultMonthIndex","resultCanBeIntercalaryMonth","correctedMonthIndex","chinese","getUpdateObject","selectorKeyFunc","drawButtonRect","selectorLayout","getFillColor","_isActive","_isHovered","drawButtonText","getLabel","selectors","makeSelectorData","axisLayout","isActive","reposition","tHeight","hEff","tWidth","tLines","wEff","minButtonWidth","appendArrayMultiPointValues","percent","hoverOnBars","DIRSYMBOL","vAxis","deltaLabel","finalLabel","initialLabel","_glTrace","updateOnSelect","layerId","hr_name","NanakshahiCalendar","nanakshahi","isArguments","iteratorSymbol","autoContours","inputContours","isLonLatOverEdges","aLabel","bLabel","cLabel","drawBg","axisOpts","borderCorrect","offsetShift","addClipPath","_clipId","drawRangePlot","rangePlots","isMainPlot","oppAxisOpts","oppAxisName","oppAxisRangeOpts","mockFigure","isRangePlot","rangePlot","filterRangePlotCalcData","drawMasks","maskOppBorder","drawSlideBox","drawGrabbers","grabberMin","grabberMax","handleFixAttrs","handleDynamicAttrs","grabAreaFixAttrs","rangeSliders","keyFunction","axRng","range0","range1","range0OppAxis","distOppAxis","d2pOppAxis","slideBox","grabAreaMin","grabAreaMax","mouseMove","pixelMin","pixelMax","_pixelMin","_pixelMax","setDataRange","mouseUp","setPixelRange","hw2","clampOppAxis","clampHandle","pixelMinOppAxis","pixelMaxOppAxis","recompose","decompose","slerp","state0","state1","quaternion","oldValue","calcLabels","tobj","gridline","_labels","endAnchor","isFirst","isLast","mapArray","rootPosition","mouseEventOffset","getBoundingClientOffset","scatterGeoMarkerLineAttrs","createScatterPlot","DASH_PATTERNS","MARKER_SYMBOLS","calculateError","LineWithMarkers","errorBars","textMarkers","delaunayMesh","dataPoints","textLabels","parseAlignmentX","parseAlignmentY","calculateSize","sizeIn","calculateSymbol","symbolIn","formatParam","paramIn","extraFn","paramOut","convertPlotlyOptions","zc","scaleFactor","d3locale","lineDashes","scatterColor","scatterSize","scatterMarker","scatterLineWidth","scatterLineColor","scatterAngle","textOffset","calculateTextOffset","textSize","projectScale","projectOpacity","errorBounds","errorParams","calculateErrorParams","errorColor","errorLineWidth","errorCapSize","delaunayAxis","surfaceaxis","delaunayColor","arrayToColor","scatterOptions","errorOptions","dashPattern","scatterOpacity","highlightScale","delaunayOptions","constructDelaunay","filteredPoints","filteredIds","createLineWithMarkers","traceref","tracerefminus","doBind","nattribs","MAX_VERTEX_ATTRIBS","attrib","vertexAttrib1f","vertexAttrib2f","vertexAttrib3f","vertexAttrib4f","ARRAY_BUFFER","dimi","mimickAxisDefaults","helpers_1","xSum","ySum","colorBars","makeColorBarData","_fillcolor","_line","_levels","_filllevels","_fillgradient","_zrange","calcOpts","moduleOpts","allowsMultiplotCbs","contName","_traceIndex","_propPrefix","colorAxOpts","cbbg","cbfills","cblines","cbaxis","cbtitleunshift","cbtitle","cboutline","drawColorBar","titleSide","lineColormap","fillColormap","levelsIn","levelsOut","calcLevels","lineLevels","fillLevels","zr0","zr1","fillLevelsIn","thickPx","thickFrac","lenPx","lenFrac","xpadFrac","yExtraPx","ypadFrac","xLeftFrac","yBottomFrac","yBottomPx","yTopPx","_lenFrac","_thickFrac","_xLeftFrac","_yBottomFrac","mockColorBarAxis","cbAxisIn","cbAxisOut","titlex","titley","autoNtick","dtFactor","dtexp","titleCont","titleOpts","dfltTitleOpts","otherClass","drawDummyTitle","drawAxis","titleTrans","mathJaxNode","lineSize","jsPlaceholder","nlines","fills","cbfill","zBounds","fillEl","cbline","drawCbTitle","positionCB","titleWidth","outerwidth","outerheight","xoffset","marginOpts","tFrac","bFrac","lFrac","rFrac","extraThickness","mobileRE","tabletRE","BOTTOMSTART","TOPSTART","LEFTSTART","RIGHTSTART","NEWDELTA","CHOOSESADDLE","104","208","713","1114","SADDLEREMAINDER","2","4","7","8","11","13","14","scatterglPlot","subRArray","subThetaArray","markerSel","markerUnsel","textSel","textUnsel","rawx","rawy","fargs","reads","percentInitialLabel","percentPreviousLabel","percentTotalLabel","colorbarOut","colorbarIn","createFilteredVector","initState","initVelocity","initTime","FilteredVector","getZero","cubicHermite","velocity0","_velocity","_scratch","steady","dcurve","derivative","stable","jump","sf","statePtr","toPosInt","validValue","arrayLike","Context","mapFn","ScrollBox","hbar","vbar","barRadius","boxL","boxR","boxT","boxB","isDown","isLeft","isUp","boxW","boxH","_box","needsHorizontalScrollBar","hbarW","hbarH","hbarL","hbarT","_hbarXMin","_hbarTranslateMax","needsVerticalScrollBar","vbarW","vbarH","vbarL","vbarT","_vbarYMin","_vbarTranslateMax","clipL","clipR","clipT","clipB","_clipRect","onBoxDrag","_onBoxDrag","_onBoxWheel","onBarDrag","_onBarDrag","translateXMax","translateYMax","convexHull2D","monotoneHull","DASHES","inputs","isDeep","keepAllKeys","noArrayCopies","copyIsArray","primitivesLoopSplice","extendDeepNoArrays","postfix","delim","totalDigits","handleDirection","isLE","mLen","nBytes","eMax","eBias","nBits","insidetextorientation","pull","titleposition","mouseListen","buttonState","mods","alt","control","attached","updateMods","handleEvent","nextButtons","nextY","clearState","handleBlur","handleMods","handleMouseMove","handleMouseDown","handleMouseUp","attachListeners","detachListeners","ensureSingleAndAddDatum","cdSubplot","traceLayerClasses","zoomScaleQueryParts","plotMethod","zoomScale","clipOnAxisFalseQuery","clipOnAxisFalseTraces","makeSubplotLayer","xLayer","layerValue2layerClass","yLayer","hasOnlyLargeSploms","mainplotgroup","overlinesBelow","overaxesBelow","overplot","overlinesAbove","overaxesAbove","xlines","ylines","backLayer","imagelayer","purgeSubplotLayers","overlayIdsToRemove","removeSubplotExtras","overlayInfo","finalizeSubplots","spSVG","spAll","allX","allY","ki","pcd","subplotInfo","oldPlots","newPlots","oldSubplotList","hadGl","hasGl","oldAxIDs","oldAxId","hadCartesian","hasCartesian","_cartesianlayer","oldSubplotId","makeSubplotData","regulars","xa2","ya2","mainPlotinfo","subplotLayers","draglayer","imageRoot","canvasToImage","heatmapHover","xRange","yRange","re1","re2","regexpFlags","stickyHelpers","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","charsAdded","strCopy","multiline","hoverdistance","spikedistance","robustSubtract","orientation3Exact","orientation4Exact","orientation0","orientation1","orientation2","orientation3","tol","orientation4","adx","bdx","cdx","ady","bdy","cdy","adz","bdz","cdz","bdxcdy","cdxbdy","cdxady","adxcdy","adxbdy","bdxady","slowOrient","generateOrientationProc","b01","b02","b03","b04","b05","b06","b07","b08","b09","b10","b11","distanceLimits","createView","pmatrix","keyBindingMode","enableWheel","rotateSpeed","zoomSpeed","translateSpeed","flipX","modes","ctime","sizeChanged","getMode","curUp","curEye","curCenter","setMode","_active","ncenter","neye","nup","_lastX","_lastY","_lastMods","handleInteraction","ctrl","drot","kzoom","hasPassive","wheelListener","mouseWheel","getMinKey","minKey","minsize","shouldHide","pointsAccessorFunction","transformOne","srcArray","newTrace","arrayLookup","groupNameObj","transformIndex","originalPointsAccessor","groupNames","newData","arrayAttrs","styleLookup","indexCnts","suppliedName","nameformat","clearExpandedTraceDefaultColors","_compareAsJSON","transformIn","transformOut","styleIn","styleOut","thisStyle","newTraces","compareOrientedCell","reduceCellComplex","detection","POLYFILL","NATIVE","describeVariables","descPart","quotedKeys","HiddenSymbol","isNativeSafe","NativeSymbol","generateName","setupStandardSymbols","setupSymbolRegistry","ignore","__description__","__name__","manage","AxisIDs","scatterCalc","expandForErrorBars","errExt","_bnds","hasTooManyPoints","sceneOptions","errorX","errorY","errorBarPositions","snap","monotoneTriangulate","makeIndex","delaunayFlip","filterTriangulation","canonicalizeEdge","compareEdge","cdt2d","exterior","infinity","canonicalizeEdges","objPrototype","created","ie11BugWorkaround","textGet","fontcache","__TEXT_CACHE","shapeX","tri","bufferSize","globals","dragClass","dragger3","isDirectionActive","activeVal","zoomAxRanges","r0Fraction","r1Fraction","updates","linkedAxes","axi","axRangeLinear0","axRangeLinearSpan","linkedR0Fraction","dragAxList","pix","dZoom","updateZoombox","isSelectOrLasso","xyCorners","clen","calcLinks","xaHash","yaHash","xID","yID","xLinkID","yLinkID","isSubplotConstrained","xLinks","yLinks","xaHashLinked","xaxesLinked","yaHashLinked","yaxesLinked","attachWheelEventHandler","wheelEventName","onwheel","_onwheel","onmousewheel","hashValues","ew","xa0","ya0","xActive","yActive","allFixedRanges","hasScatterGl","hasSplom","hasSVG","isMainDrag","singleEnd","recomputeAxisLists","getDragCursor","nsew","zoomMode","zoomDragged","clearAndResetSelect","_transitioningWithDuration","doubleClickConfig","attrStr","getEndText","hAlign","vAlign","noZoom","xCorners","yCorners","updateMatchedAxRange","dragTail","dragModePrev","_hmpixcount","_hmlumcount","_redrag","dragDataNow","updateSubplots","scrollViewBox","redrawTimer","REDRAWDELAY","ticksAndAnnotations","dxySign","dxyFraction","yStart","axArray","movedAx","newLinearizedEnd","otherEnd","newEnd","matchedAxes","constrainedAxes","activeAxIds","pushActiveAxIds","plotinfos","splom","xrng","yrng","xScaleFactor2","yScaleFactor2","editX2","editY2","getShift","scaleAndGetShift","getLinkedScaleFactor","zoomWheel","_enablescrollzoom","gbb","xfrac","yfrac","zoomWheelOneAxis","axRange","doZoom","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","arr2","_iterableToArray","_nonIterableSpread","colorId","extend","f32","Scatter","tooManyColors","maxColors","markerCache","markerTextures","paletteIds","shaderOptions","paletteSize","scaleFract","translateFract","positionBuffer","xFract","positionFractBuffer","yFract","sizeBuffer","borderSize","colorBuffer","borderColorId","activation","drawMarker","circleOptions","drawCircle","pixelSize","_this2","_len","_key","drawItem","getMarkerDrawOptions","markerId","selectionBuffer","markerTexture","lod","_lod$l","_this3","_len2","_key2","ondraw","hasSize","hasColor","updateColor","_bounds","_positions","markers","markerMasks","addMarker","_id2","vp","_i2","_group2","_i3","_colorId","_i4","sdf","distArr","_i5","_i6","updatePalette","extend$1","reglScatter2d","scatter$$1","float2rat","rangeLinear","createHeatmap2D","weightBuffer","idBuffer","GLHeatmap2D","xData","yData","WEIGHTS","boundX","boundY","viewTransform","PICK_VECTOR","colorLevels","colorValues","lox","loy","numX","numY","yc0","yc1","xc0","xc1","colorIdx","pieAttrs","sunburstAttrs","maxdepth","squarifyratio","depthfade","sqInit","rcount","RED_SWEEP_QUEUE","RED_SWEEP_INDEX","BLUE_SWEEP_QUEUE","BLUE_SWEEP_INDEX","COMMON_SWEEP_QUEUE","COMMON_SWEEP_INDEX","eventLength","SWEEP_EVENTS","istart","iend","redOffset","isort","redActive","blueActive","sqPop","sqPush","commonActive","redShift","blueShift","isRed","oidx","INIT_CAPACITY","ensurePlainFunction","normalizeOptions","dgs","overwriteDefinition","resolveContext","htx","hbg","hbc","hts","htc","htf","hnl","ht","fakeCd","pointData2","yl","rVal","rLabel","thetaVal","thetaLabel","planarDual","numEdges","cut","noCut","nextCell","nextVertex","nextDir","nbhd","extractCycle","shouldGlue","pcycle","ncycle","LinkedList","selfIntersection","segmentCopy","segmentId","myFill","above","otherFill","event_root","eventAdd","other_pt","here","eventCompare","p1_isStart","p1_1","p1_2","p2_isStart","p2_1","p2_2","pointsCompare","pointsSame","pointAboveOrOnLine","isStart","eventAddSegment","primary","ev_start","eventAddSegmentStart","eventAddSegmentEnd","ev_end","eventDivide","eventUpdateEnd","segmentChop","primaryPolyInverted","secondaryPolyInverted","status_root","statusFindSurrounding","findTransition","statusCompare","ev1","ev2","pointsCollinear","checkIntersection","linesIntersect","a1_equ_b1","a2_equ_b2","a1_between","pointBetween","a2_between","alongA","alongB","isEmpty","getHead","segmentNew","surrounding","checkBothIntersections","eve","tempStatus","segmentUpdate","rewind","st","exists","statusRemove","b12","b20","b21","b22","createProperty","arraySpeciesCreate","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","dimensionIn","dimensionOut","orderDefault","isValidArray","labelfontDflt","categoryfontDefault","d3ToWorldCalendars","allCals","getCal","calendarObj","makeAttrs","makeTraceAttrsDescription","xAttrs","axisAttrs","histogram2d","histogram2dcontour","mesh3d","ohlc","candlestick","valuecalendar","targetcalendar","handleTraceDefaults","CANONICAL_SUNDAY","coptic","discworld","ethiopian","hebrew","julian","mayan","nepali","CANONICAL_TICK","DFLTRANGE","worldCalFmt","modifier","directive","directiveLen","directiveObj","replacementPart","decodeFloat","UINT8_VIEW","FLOAT_VIEW","arrRange","SPLOM","passes","passId","getBox","iloy","ihiy","jlox","jhix","iitem","jitem","this$1","planned","updateItem","i$1","tracePasses","passOffset","multirange","multipadding","ih","i$2","ref$1","hix","hiy","ref$2","passes$1","passOffset$1","firstAxis","maybeCarpet","nativeDefineProperty","Attributes","commonList","animationAttrs","currentvalue","activebgcolor","gripBgActiveColor","railBgColor","railBorderColor","railBorderWidth","minorticklen","minorTickLength","LOG_CLIP_PLUS","LOG_CLIP_MINUS","clusterStartPt","clusterEndPt","clusterHighPt","clusterLowPt","clusterHighFirst","clusterUnitVector","thisVector","clusterRefDist","clusterHighVal","clusterLowVal","clusterMinDeviation","clusterMaxDeviation","thisDeviation","latestXFrac","latestYFrac","xLog","yLog","minTolerance","pti","getPt","crossesViewport","xFrac0","yFrac0","xFrac1","yFrac1","getTolerance","nextPt","xFrac","yFrac","offScreenFraction","toleranceGrowth","ptDist","xEdge","yEdge","lastXEdge","lastYEdge","lastFarPt","edgePt","getEdgeIntersections","maxScreensAway","xEdge0","xEdge1","yEdge0","yEdge1","onlyConstrainedPoint","sameEdge","getABAEdgeIntersections","limit0","limit1","ptInt1","ptInt2","midShift","updateEdge","xSame","ySame","xSame2","ySame2","updateEdgesForReentry","intersections","lastPt","getClosestCorner","getLinearEdgeIntersections","ptCount","ptInt","getHVEdgeIntersections","horizontalOrder","alo","ahi","blo","buttonLayout","xrange","getXRange","currentRange","stepmode","base2","createMatrix","visibleLength","domains","dmn","needsBaseUpdate","commonLength","selOpts","splomCalcData","plainObject","customCreate","createGeo","GEO","plotGeo","geoId","geoCalcData","_geolayer","subplotLayout","oldGeoKeys","oldGeoKey","oldGeo","supplyGl3dAxisLayoutDefaults","handleGl3dDefaults","sceneLayoutIn","sceneLayoutOut","bgColorCombined","cameraKeys","hasAspect","aspectMode","aspectmode","fullGl3dData","getDfltFromLayout","hasNon3D","RE","SelectBox","boxBuffer","boxShader","selectBox","innerColor","outerColor","createSelectBox","boxVertex","boxFragment","screenWidth","screenHeight","numArr","linearExpansionSum","scalarScalar","eptr","fptr","ei","fi","_bv","q0","boxIntersectWrapper","arg1","arg2","intersectFullArray","boxIntersect","intersectBipartiteArray","RESULT","boxEmpty","convertBoxes","redList","redIds","blueList","blueIds","appendItem","meshAttrs","clearResponsive","_responsiveChartHandler","bundlecolors","sortpaths","plotApi","imageDataOnly","isImpliedOrValid","fullOpts","clonedGd","layoutImage","configImage","redrawFunc","urlToImageData","_carpet","ij","ab2ij","interp1d","w00","w01","interp3d","u0","u1","w000","w010","w100","w110","w001","w011","interpNd","hovermodeDflt","isHoriz","hasMapbox","hasGeo","axisConstraints","enforceAxisConstraints","cleanAxisConstraints","overlappingDomain","existingX","existingY","lsInner","autosize","_hasZeroWidth","_hasZeroHeight","drawMainTitle","getLinePosition","lwHalf","_lw","lowerBackgroundIDs","backgroundIds","lowerDomains","noNeedForBg","pgNode","plotgroupBg","xLinesXLeft","xLinesXRight","xLinesYBottom","xLinesYTop","leftYLineWidth","rightYLineWidth","yLinesYBottom","yLinesYTop","yLinesXLeft","yLinesXRight","connectYBottom","connectYTop","extraSubplot","lowerBackgrounds","_bgLayer","plotClipId","plotClip","xLinePath","xLinePathFree","yLinePath","yLinePathFree","mainPath","pathFn","pathFnFree","xPath","shouldShowLinesOrTicks","findCounterAxisLineWidth","yPath","shouldShowLineThisSide","anchorAx","sideIndex","getMainTitleX","hPadShift","getMainTitleY","vPadShift","layoutStyles","doAutoMargin","getMainTitleTextAnchor","getMainTitleDy","doTraceStyle","editStyleCalls","editStyle","doColorBars","layoutReplot","doLegend","doTicksRelayout","updateGrid","doModeBar","doCamera","setViewport","drawData","cartesianIds","polarIds","_splomGrid","doAutoRangeAndConstraints","groupLoop","finalDraw","drawMarginPushers","rawError","shortMessage","longMessage","definition","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","color_formatHex","formatHex","color_formatRgb","formatRgb","color_color","rgbn","Rgb","rgbConvert","color_rgb","rgb_formatHex","rgb_formatRgb","Hsl","hslConvert","hsl2rgb","displayable","formatHsl","color_formatHsl","src_basis","basisClosed","color_hue","nogamma","exponential","src_rgb","rgbGamma","rgbSpline","spline","rgbBasis","rgbBasisClosed","numberArray","isNumberArray","genericArray","src_value","reA","reB","cssNode","cssRoot","cssView","svgNode","discrete","src_hue","skewX","pxComma","pxParen","degParen","interpolateTransformCss","parseCss","interpolateTransformSvg","parseSvg","rho","zoom_cosh","tanh","zoom_sinh","hsl_hsl","src_hsl","hslLong","labConvert","Lab","Hcl","hcl2lab","rgb2lrgb","xyz2lab","lab2xyz","lrgb2rgb","hclConvert","lab_lab","hcl_hcl","src_hcl","hclLong","ED","EB","BC_DA","cubehelixConvert","Cubehelix","cubehelix_cubehelix","src_cubehelix_cubehelix","cubehelixGamma","cubehelix","cosh","sinh","src_cubehelix","cubehelixLong","piecewise","samples","hoverLabelAttrs","INT_BITS","INT_MAX","INT_MIN","isPow2","log10","prevPow2","REVERSE_TABLE","tab","interleave2","deinterleave2","interleave3","deinterleave3","localize","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","defineWellKnownSymbol","setToStringTag","HIDDEN","TO_PRIMITIVE","setInternalState","ObjectPrototype","$Symbol","$stringify","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","tag","$defineProperty","$defineProperties","$getOwnPropertySymbols","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","sym","useSetter","useSimple","$replacer","getCubeEdges","transformHg","pCubeVerts","cubeVerts","zero3","farthest","cubeEdges","CUBE_EDGES","CUBE_AXIS","cutCorner","CUBE_RESULT","FRUSTUM_PLANES","cdOHLC","ohlcLayer","xo","hoverModule","supplyLayoutGlobalDefaults","inbox","quadrature","castHoverOption","_coerce","containerOrSelection","isD3Selection","toPX","mouseWheelListen","noScroll","deltaX","deltaZ","makeColorMap","isColorbar","conePlot","Cone","ww","axisName2scaleIndex","anchor2coneOffset","tip","anchor2coneSpan","coneOpts","axisName","_normMax","meshData","_pad","createConeTrace","cone","xpyp","xstar","ystar","dsin","dcos","tanA","cotanA","makeRegularPolygon","makeClippedPolygon","a2xy","findXY","cycleIndex","xyN","transformForSVG","pts0","pts1","polygonIn","polygonOut","adelta","del","chains","chainStart","first_match","matches_head","matches_pt1","second_match","next_match","chain","setMatch","chainNew","chainMatch","addToHead","grow","grow2","oppo","oppo2","chainRemoveHead","chainRemoveTail","chainClose","chainAddHead","chainAddTail","chainConnect","reverseF","reverseChain","appendChain","chainReverse","chain1","chain2","tail2","head2","chainJoin","templateAttrs","validItemName","lastChar","traceTemplater","traceCounts","typei","baseName","defaultsTemplate","templateItems","itemIn","templateItemName","templateItem","outi","_templateitemname","parentIn","itemOut","lengthIn","resetUpdate","updateOut","applyUpdate","updateToApply","hidesources","datarevision","editrevision","selectionrevision","nextSegmentId","curVert","segmentRemove","MayanCalendar","amod","haabMonths","tzolkinMonths","baktun","forYear","haab","_toHaab","tzolkin","_toTzolkin","haabMonthName","haabMonth","haabDay","tzolkinDayName","tzolkinDay","tzolkinTrecena","containerArrayMatch","arrayStr","rootContainers","regexpContainers","rootPart","maxpoints","TriangleCache","createABigTriangle","_triangleBuffer","barycentric","solve","baseframe","handleLabelsAndValues","hasLabels","hasPositive","_hasLabels","textInfo","textTemplate","titlePosition","scatterSubTypes","manageModeBar","_modeBar","buttonGroups","customButtons","fillCustomButton","getButtonGroups","buttonsToRemove","buttonsToAdd","hasGL3D","hasPie","hasFunnelarea","hasGL2D","hasTernary","hasPolar","hasSankey","allAxesFixed","areAllAxesFixed","addGroup","commonGroup","zoomGroup","hoverGroup","resetGroup","dragModeGroup","hasNoHover","isSelectable","selectable","appendButtonsToGroups","convertOnSelect","LAYER_PREFIX","traceLayerPrefix","ChoroplethMapbox","sourceId","_update","optsAll","getSource","setData","_removeLayers","_addLayers","removeLayer","removeSource","createChoroplethMapbox","choroplethMapbox","addSource","createSurfacePlot","contourPickShader","coordinateBuffer","contourBuffer","dynamicBuffer","dynamicVAO","SurfacePlot","nparams","surfaceNets","QUAD","PERMUTATIONS","SurfacePickResult","objectOffset","intensityBounds","_shader","_pickShader","_coordinateBuffer","_vao","_colorMap","_contourShader","_contourPickShader","_contourBuffer","_contourVAO","_contourOffsets","_contourCounts","_vertexCount","_pickResult","_dynamicBuffer","_dynamicVAO","_dynamicOffsets","_dynamicCounts","contourTint","showSurface","enableHighlight","highlightColor","highlightTint","highlightLevel","enableDynamic","dynamicLevel","dynamicColor","dynamicTint","dynamicWidth","surfaceProject","contourProject","colorBounds","_field","mallocFloat","vertexColor","ZERO_VEC","PROJECT_DATA","projections","computeProjectionData","cubeAxis","axisSquish","nclipBounds","UNIFORMS","lowerBound","upperBound","zOffset","MATRIX_INVERSE","DEFAULT_PERM","drawCore","transparent","clipClamped","projectData","PICK_UNIFORMS","handleArray","toColor","handleColor","levelIndex","padField","dstField","srcField","srcShape","dstShape","levelsChanged","fsize","freeFloat","tick2","dfields","dxdu","dxdv","dydu","dydv","dzdu","dzdv","nz","nl","lo_intensity","hi_intensity","tverts","tptr","j_loop","vf","change_test","contourVerts","contourLevel","levelOffsets","levelCounts","edge_loop","axis_loop","iu","floatBuffer","divseq","dyanamicLevel","scratchBuffer","jx","jy","cu","scatterHover","yFracUp","textPart","_hovertitle","parcoordsPlot","hadParcoords","hasParcoords","JulianCalendar","posOffset","hasTypedArrays","DOUBLE_VIEW","UINT_VIEW","doubleBitsLE","toDoubleLE","lowUintLE","highUintLE","doubleBitsBE","toDoubleBE","lowUintBE","highUintBE","writeDoubleLE","readUInt32LE","toDouble","writeUInt32LE","readDoubleLE","lowUint","highUint","fraction","denormalized","getDims","sLen","defaultOrientation","yDims","xDims","setInX","hasCategories","outlierColorDflt","lineoutliercolor","modeDflt","hasPreCompStats","boxmeanDflt","notchedDflt","ORDER","ScatterMapbox","sourceIds","layerIds","setSourceData","createScatterMapbox","scatterMapbox","posVal","sizeLetter","pRangeCalc","isClosest","isWaterfall","maxSpikeDistance","thisBarMinPos","thisBarMaxPos","minPos","maxPos","_positionFn","_minPos","_maxPos","positionFn","labelLabel","thisBarPositionFn","barPointData","CopticCalendar","SUBPLOT_PATTERN","remainingCalcData","subplotX","subplotY","spmatch","Font","createRegl","createGl","fontAtlas","isObj","metrics","isStretchSupported","fontStretch","GlText","isRegl","charBuffer","charOffset","atlasSize","atlasDim","cols","charStep","positionOffset","normalViewport","viewportArray","baseFontSize","newAtlasChars","newFont","newFontSize","baseString","stretch","variant","fonts","fontString","textArray","textOffsets","atlasContext","baseChar","positionData","j$1","charIds","sizeData","i$3","ptr$1","count$1","j$2","prevChar","prevWidth","currWidth","kerning$1","maxCols","maxAtlasSize","atlasWidth","atlasHeight","atlasCanvas","alignOffset","baselineOffset","colorData","i$4","l$1","i$5","i$6","ignoreCase","dotAll","fileSaver","_snapshotInProgress","messages","3","5","6","256","512","513","514","515","516","517","518","519","768","769","770","771","772","773","774","775","776","1024","1028","1029","1032","1280","1281","1282","1285","1286","2304","2305","2849","2884","2885","2886","2928","2929","2930","2931","2932","2960","2961","2962","2963","2964","2965","2966","2967","2968","2978","3024","3042","3088","3089","3106","3107","3317","3333","3379","3386","3408","3410","3411","3412","3413","3414","3415","3553","4352","4353","4354","5120","5121","5122","5123","5124","5125","5126","5386","5890","6401","6402","6406","6407","6408","6409","6410","7680","7681","7682","7683","7936","7937","7938","9728","9729","9984","9985","9986","9987","10240","10241","10242","10243","10497","10752","16384","32769","32770","32771","32772","32773","32774","32777","32778","32779","32819","32820","32823","32824","32854","32855","32873","32926","32928","32936","32937","32938","32939","32968","32969","32970","32971","33071","33170","33189","33306","33635","33648","33901","33902","33984","33985","33986","33987","33988","33989","33990","33991","33992","33993","33994","33995","33996","33997","33998","33999","34000","34001","34002","34003","34004","34005","34006","34007","34008","34009","34010","34011","34012","34013","34014","34015","34016","34024","34041","34055","34056","34067","34068","34069","34070","34071","34072","34073","34074","34076","34338","34339","34340","34341","34342","34373","34466","34467","34660","34661","34816","34817","34818","34819","34877","34921","34922","34930","34962","34963","34964","34965","34975","35040","35044","35048","35632","35633","35660","35661","35663","35664","35665","35666","35667","35668","35669","35670","35671","35672","35673","35674","35675","35676","35678","35680","35712","35713","35714","35715","35716","35717","35718","35719","35720","35721","35722","35724","35725","36003","36004","36005","36006","36007","36048","36049","36050","36051","36053","36054","36055","36057","36061","36064","36096","36128","36160","36161","36162","36163","36164","36168","36176","36177","36178","36179","36180","36181","36194","36336","36337","36338","36339","36340","36341","36346","36347","36348","36349","37440","37441","37442","37443","37444","thrower","ACCESSORS","argument0","argument1","ternaryIds","ternaryId","ternary","oldTernaryKeys","oldTernaryKey","oldTernary","PartialHull","lowerIds","upperIds","compareEvent","testPoint","addPoint","hulls","findSplit","splitHulls","splitIdx","mergeHulls","mergeIdx","newArray","map1dArray","makepath","drawGridLines","lineClass","gridJoin","drawAxisLabels","labelClass","labelJoin","maxExtent","labelOrientation","labelEl","labelpadding","cdcarpet","carpetLayer","clipLayer","minorLayer","majorLayer","boundaryLayer","labelLayer","labelOrientationA","labelOrientationB","drawAxisTitles","aMin","aMax","bMin","bMax","ab2xy","dxyda_rough","dxydb_rough","drawAxisTitle","drawClipPath","clipsegments","bicubic","clipPathData","titleJoin","angleDiff","reverseTitle","vecNormalize","vecScale","mesh1D","zeroCrossings","npos","ncel","buildSurfaceNets","cubeArgs","maskStr","extraFuncs","currentFunc","efName","denoms","crossingCount","totalCrossings","vertexStr","cStr","facets","triangulateCube","generateContourExtractor","dirLine","Error2D","drawErrors","errorBuffer","meshBuffer","positionFract","capOffset","drawGroup","errorCount","errorData","yPad","lightAmount","darkAmount","prevIndexToPoints","handleGeoDefaults","geoLayoutIn","geoLayoutOut","scopeParams","isAlbersUsa","_isAlbersUsa","isScoped","_isScoped","isConic","_isConic","isClipped","_isClipped","rangeDflt","dtickDflt","dfltSpans","hSpan","lonRange","latRange","lon0","lon1","projLon","centerLonDflt","centerLatDflt","centerLon","dfltProjRotate","createVAONative","ExtensionShim","bindVertexArrayOES","bindVertexArray","createVertexArrayOES","createVertexArray","deleteVertexArrayOES","deleteVertexArray","SYMBOL_SDF_SIZE","SYMBOL_SIZE","SYMBOL_STROKE","gl10","lookupConstant","isAddVal","isRemoveVal","applyContainerArrayChanges","_nestedProperty","componentType","supplyComponentDefaults","replotLater","replot","recalc","fullVal","componentNum","objEdits","objKeys","objVal","adding","componentNums","componentArrayIn","componentArray","componentArrayFull","deletes","firstIndexChange","maxIndex","indicesToDraw","FRAGMENT","gridVert","gridFrag","tickVert","styleBox","boxSel","allBoxes","boxData","thisBox","waterfalls","waterfallsVert","waterfallsHorz","waterfallnorm","compare1st","compileConstructor","useGetters","procedure","CACHED_CONSTRUCTORS","index_str","shapeArg","strideArg","a_vars","c_vars","tShape","tStride","wrappedNDArrayCtor","arrayDType","ctor_list","getBoxPosLetter","isBoxWithoutPositionCoords","isBox","isCandlestick","setAutoType","getFirstNonEmptyTrace","calAttr","boxPositions","manageArrays","subroutines","numericNameWarningCount","emitAfterPlot","opaqueSetBackground","setPlotContext","plot3dPixelRatio","szIn","szOut","positivifyIndices","parentLength","positiveIndices","assertIndexArray","arrayName","checkMoveTracesArgs","currentIndices","newIndices","spliceTraces","maxPoints","updateArray","assertExtendTracesArgs","maxPointsIsObject","updateProps","getExtendProperties","maxp","undoUpdate","undoPoints","concatTypedArray","arr0","arr1","_traces","clearPromiseQueue","coerceTraceIndices","_restyle","clearAxisTypes","fullReplot","markerSize","doCalcdata","addAxRangeSequence","colorbars","rehover","redrag","undoit","redoit","plotDone","undefinedToNull","makeNP","guiEditFlag","storeCurrent","arrayNew","objNew","objBoth","_guiEditing","layoutNP","cleanDeprecatedAttributeKeys","traceFlags","addToAxlist","axid","autorangeAttr","getFullTrace","doextra","hasParent","extraparam","allBins","arrayBins","vij","contFull","finalPart","prefixDot","innerContFull","impliedKey","labelsTo","valuesTo","topOrBottom","thicknorm","lennorm","swapXYData","dataArrayContainers","manageArrayContainers","oldAxisTitleRegex","colorbarRegex","oldAttrStr","newAttrStr","_relayout","axRangeSupplyDefaultsByPass","layoutstyle","axrange","rangesAltered","AX_RANGE_RE","AX_AUTORANGE_RE","AX_DOMAIN_RE","arrayEdits","axisAttr","newkey","layoutFlags","recordAlteredAxis","pleafPlus","pend","pleaf","ptrunk","parentFull","vOld","oppositeAttr","_initialAutoSize","axFull","fullProp","updateValObject","groupAxId","updateAutosize","oldWidth","oldHeight","plotAutoSize","traceUpdate","restyleSpecs","restyleFlags","relayoutSpecs","relayoutFlags","guiEdit","wrappedEdit","layoutUIControlPatterns","traceUIControlPatterns","findUIPattern","patternSpecs","getNewRev","revAttr","newRev","getFullTraceIndexFromUid","getTraceIndexFromUid","valsMatch","v1IsObj","v1IsArray","getDiffFlags","oldContainer","outerparts","getValObject","immutable","inArray","arrayIndex","nChanges","nChangesAnim","newDataRevision","valObjectCanBeDataArray","tickMode","canBeDataArray","wasArray","nowArray","inputKey","oldValIn","newValIn","arrayEditIndices","extraIndices","makePlotFramework","gd3","_toppaper","_hoverpaper","otherUids","layerBelow","_imageLowerLayer","layerAbove","_imageUpperLayer","_menulayer","frameOrGroupNameOrFrameList","animationOpts","_frameQueue","supplyAnimationDefaults","frameOpts","getTransitionOpts","getFrameOpts","callbackOnNthTime","_frameWaitingCnt","nextFrame","_currentFrame","newFrame","stringName","_lastFrameAt","_timeToNext","stopAnimationLoop","_animationRaf","beginAnimationLoop","_runningTransitions","configCounter","setTransitionConfig","frameList","allFrames","isFrameArray","frameOrName","_frameHash","discardExistingFrames","onInterrupt","currentFrame","filteredFrameList","queueFrames","computedFrame","computeFrame","bigIndex","insertions","_frameHashLocal","lookupName","collisionPresent","supplyFrameDefaults","revops","frameCount","_counter","undoFunc","modifyFrames","redoFunc","undoArgs","redoArgs","checkAddTracesArgs","cleanData","startSequence","stopSequence","deletedTrace","sorterDes","remainder","both","numberOfItemsFromInsert","numberOfItemsFromTarget","targetBegin","movingTraceMap","cleanPlot","graphWasEmpty","cleanLayout","plotLegacyPolar","polarPlotSVG","placeholderText","setContenteditable","addLinks","oldMargins","drawFrameworkCalls","marginPushers","clearAutoMarginIds","marginPushersAgain","didMarginChange","positionAndAutorange","configChanged","oldConfig","diffConfig","newConfig","applyUIRevisions","oldRev","preGUIVal","newNP","layoutPreGUI","bothInheritAutorange","newRangeAccepted","axAttr","newAx","allTracePreGUI","fulli","newTracei","skipUpdateCalc","diffLayout","diffData","sameTraceLength","diffOpts","seenUIDs","hasMakesDataTransform","supplyDefaultsUpdateCalc","createTransitionData","transitionFromReact","_skipDefaults","attribution","tiles","tileSize","minzoom","maxzoom","styleValuesNonMapbox","layoutLayerPrefix","createWellKnownSymbol","withoutSetter","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","encodingOrOffset","allocUnsafe","fromArrayBuffer","byteOffset","fromArrayLike","encoding","isEncoding","actual","fromObject","checked","isnan","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","byteArray","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","codePoints","SlowBuffer","INSPECT_MAX_BYTES","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","swap16","swap32","swap64","thisStart","thisEnd","thisCopy","targetCopy","bytes","checkOffset","checkInt","objectWriteUInt16","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatBE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","base64clean","stringtrim","nativeKeys","ptsIn","rectFirstEdgeTest","rectContains","xmini","ycross","isSegmentBent","partParallel","segmentSquared","segmentLen","unitPerp","ptsFiltered","doneRawIndex","doneFilteredIndex","prevFilterLen","iLast","readComponents","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","boundFunction","findIndex","opacitySetting","mo2","lineColorFn","lineWidthFn","fc","deprecationWarning","domainAttr","mergeAttrs","nonCommonAttrs","tickorientation","endpadding","keepRest","toList","occupied","aliases","extractContour","getDimension","vertexSigns","getSigns","getEdges","maxEdges","ePtr","ndsort","getCrossingWeights","signs","edata","vcascade","getCascade","lastV","contourAlgorithm","uedges","unpackEdges","uweights","closestPointToTriangle","xformMatrix","projectVertex","closestPointToPickLocation","pixelCoord","simplex2D","closestIndex","closestDist","barycentricCoord","ARGS","bruteForcePlanner","redMajor","generateBruteForce","redLoop","blueLoop","codeStr","vec","plotinfoproxy","boxCalc","calcBandwidth","ssd","silvermanRule","iqr","calcSpan","spanOut","spanIn","spanTight","spanLoose","calcSpanItem","spanMin","spanMax","violinScaleGroupStats","scaleGroup","PIXELS_PER_INCH","getSizeBrutal","getPropertyInPX","testDIV","defaultCanvas","defaultContext","shim","nullObject","polyProps","validTypes","invert2","invert3","invert4","createSurface","homography","SurfaceTrace","contourStart","contourEnd","contourSize","minValues","maxValues","dataScaleX","dataScaleY","refineData","getXat","getYat","getZat","_interpolatedZ","xRatio","yRatio","shortPrimes","getPow","getFactors","smallestDivisor","leastCommonMultiple","calcXnums","nums","totalDist","calcYnums","highlyComposites","MIN_RESOLUTION","MAX_RESOLUTION","insertIfNewLevel","estimateScale","resSrc","resDst","arrayLCM","refineCoords","scaleW","scaleH","newWidth","newHeight","padWidth","padHeight","padImg","scaledImg","setContourLevels","newLevels","useNewLevels","needsUpdate","allLevels","rawCoords","highlightEnable","contourParams","isColormapCircular","supportsTransparency","createSurfaceTrace","preservegaps","getTargetArray","targetCalendar","_arrayAttrs","attrTargetCalendar","initFn","filterFunc","getFilterFunc","isOperationIn","d2cValue","originalArrays","indexToPoints","forAllAttrs","lineLayerMaker","findExtreme","fixExtremes","dimensionExtent","domainScale","toText","texts","unitVal","ordinalScale","unitToColorScale","colorTuples","polylinearUnitScales","someFiltersActive","deselectedLineColor","labelangle","labelSide","labelside","rangeFont","rangefont","canvasPixelRatio","rowContentWidth","colCount","tickDistance","callbacks","unitPad","_unitToPaddedPx","domainToPaddedUnit","domainToPaddedUnitScale","padFraction","specifiedConstraint","filterRangeSpecified","filterRange","truncatedValues","makeTickItem","sortTickItem","tickItems","visibleIndex","linePickActive","focusLayer","filtersActive","contextShown","contextLayer","pickLayer","invScale","styleExtentTexts","axisExtentText","calcTilt","updatePanelLayout","yAxis","linearFormat","extremeText","isTop","glContainer","calcAllTicks","parcoordsInteractionState","glLayers","lastHovered","lineLayer","pixel","controlOverlay","parcoordsControlView","wantedTickCount","sdom","axisHeading","axisTitle","tilt","axisTitleOffset","axisExtent","axisExtentTop","axisExtentOffset","axisExtentTopText","axisExtentBottom","axisExtentBottomText","hasTextArray","hasHovertextArray","cPrev","oi","li","convertTickWidth","_minDiff","ohlcTracesOnThisXaxis","xcalc","_xcalc","wHover","cartesianConstants","xclick","yclick","handleAnnotationDefaults","clickToShow","arrowPosDflt","arrowPosAttr","aaxRef","aDflt","xClick","yClick","frameAttrs","commandModule","redrawText","resolveLastResize","_redrawTimer","_resolveResize","oldchanged","autoplay","linkContainer","toolspan","spacespan","sourcespan","positionPlayWithData","pathname","search","baseUrl","PLOTLYENV","BASE_URL","hiddenformDiv","hiddenform","graphJson","submit","d3FormatKeys","extraFormatKeys","getFormatObj","formatKeys","formatDone","formatObj","includeFormat","formatFinished","formatKey","formatj","en","findMainSubplot","isX","mainSubplotID","nextBestMainSubplotID","anchorID","counterIDs","counterPart","makesData","applyTransforms","initMargins","_pushmargin","_pushmarginIds","newLayout","oldCalcdata","_traceWord","_mapboxAccessToken","_initialAutoSizeIsDone","sanitizeMargins","missingWidthOrHeight","getFormatter","_visibleModules","emptySubplotLists","splomAxes","splomSubplots","_traceUids","getTraceUids","prevFullInput","oldFullInput","thisFullInput","oldLen","seenUids","setUid","tryUid","newUid","_globalTransforms","supplyDataDefaults","splomXa","splomYa","_hasPlotType","supplyLayoutModuleDefaults","crossTraceDefaultsFuncs","funci","_hasCartesian","_hasGeo","_hasGL3D","_hasGL2D","_hasTernary","_hasPie","linkSubplots","fillMetaTextHelpers","meta4data","uids","oldTrace","_hasCalcTransform","oldArrayVal","hasInfoLayer","oldLoop","oldUid","oldSubplots","newSubplots","newSubplotList","mainAx","subplotSort","_colorAttrs","locateColorAttrs","visibleModules","colorCnt","pushModule","_transformModules","carpetIndex","carpetDependents","supplyTraceDefaults","sdInvisible","expandedTraces","expandedTrace","fullExpandedTrace","_expandedInput","carpetAxis","optsOut","supplyAnimationFrameDefaults","supplyAnimationTransitionDefaults","frameIn","frameOut","traceInIndex","attri","supplyTransformDefaults","transformModules","transformList","isFirstStage","doLaterStages","_dataTemplate","modebarDefaultColor","maxHeight","widthHasChanged","heightHasChanged","transitionData","clearThrottle","fid","undoqueue","undonum","styleModules","correction","plotWidth","plotHeight","pushMargin","pushMarginIds","ml","mr","mt","k1","pushleft","pushbottom","pl","newL","newR","ft","newB","newT","maxNumberOfRedraws","marginKeys","_transition","aborted","interruptPreviousTransitions","executeCallbacks","prepareFn","executeTransitions","numCallbacks","numCompleted","makeCallback","completeTransition","flushCallbacks","runFn","transitionStarting","margin0","margin1","dataonly","useDefaults","stripObj","fit","operations","oldName","frameName","destIndex","frameLookup","framePtr","frameStack","frameNameStack","extendLayout","extendTrace","recomputeFrameHash","extendObjectWithContainers","containerPaths","containerProp","containerVal","destProp","srcContainer","destContainer","expandedObj","expandObjectPaths","containerObj","srcObj","destTrace","srcTrace","destLayout","srcLayout","transitionedTraces","axEdits","dataLength","traceIdx","axisAttrRe","traceTransitionOpts","hasAxisTransition","axisTransitionOpts","allTraceIndices","transitionTraces","_numViolins","_piecolormap","_sunburstcolormap","_treemapcolormap","_funnelareacolormap","cauto","transformCalci","calci","isContainer","setupAxisCategories","doCrossTraceCalc","sortAxisCategoriesByValue","zMapCategory","counterAxLetter","xCategorical","yCategorical","aggFn","sortAxisCategoriesByValueRegex","aggregator","categoriesValue","cat","catIndex","currentDimensionIndex","associatedXAxisID","mapping","_categoriesValue","categoriesAggregatedValue","_categoriesAggregatedValue","spType","spInfo","traceHashOld","moduleNameOld","fakeCalcTrace","had","STATIC_CANVAS","STATIC_CONTEXT","glPlot3d","createPlot","passiveSupported","str2RGBAarray","svgContainer","clientRect","oldEventData","lastPicked","pdata","hoverinfoParts","isHoverinfoAll","vectorTx","uLabel","vLabel","wLabel","normLabel","divergenceLabel","drawAnnotations","initializeGLPlot","initializeGLCamera","tryCreatePlot","glplotOptions","staticMode","isCameraChanged","getCamera","isAspectChanged","relayoutCallback","saveLayout","recoverContext","make4thDimension","sceneContainer","plotArgs","convertAnnotations","cameraData","tryRecover","axisProperties","computeTraceBounds","sceneData","axisType","glplotLayout","dataBounds","computeAnnotationBounds","traceIds","traceIdLoop","sceneBounds","axisDataRange","axisTypeRatios","objBounds","_lowerLogErrorBound","axesScaleRatio","axisRatio","userRatio","containerStyle","getLayoutCamera","getCameraArrays","newOrtho","cameraDataLastSave","same","aspectData","aspectDataLastSave","cameraNestedProp","aspectNestedProp","cameraChanged","aspectChanged","fullCamera","zUp","dataURL","createImageData","putImageData","ascendingComparator","array_array","src_max","valueof","src_mean","src_min","src_sum","zmin0","zmax0","zRange","mat4","fromRotationTranslation","recomposeMat4","zoomstartStyle","zoomendStyle","initZoom","sync","userOpts","fullNp","fitScale","zoomScoped","syncCb","midPt","handleZoomstart","handleZoom","handleZoomend","zoomNonClipped","mouse0","rotate0","lastRotate","zoomPoint","mouse1","rotate1","didZoom","outside","zoomClipped","d3eventDispatch","zoomOn","_rotate","quaternionFromEuler","between","rotateBetween","newEuler","eulerFromQuaternion","rotateAngles","unRoll","phi","cosPhi","euler","sinLambda","cosLambda","sinPhi","sinGamma","cosGamma","halfgamma","ptRotated","rotateCartesian","newYaw1","newYaw2","newPitch1","newPitch2","angleDistance","yaw0","pitch0","yaw1","pitch1","dYaw","angleMod","dPitch","angleRads","vectorOut","createGeoZoom","HebrewCalendar","_leapYear","yearType","adjYear","_delay1","_delay2","present","showaxeslabels","hasLeft","noRoomForHeader","minVisibleDepth","maxVisibleDepth","_maxVisibleLayers","prevEntryId","getRefRect","probability","SPLITTER","PREFERRED_STRING","closestPoint2d","V0","V1","V2","sqrDistance","tmp0","invDet","oldIds","mustCleanScene","fullLayout2","percentLabel","hoverLabel","customColor","dummyTitle","titleBox","transformInsideText","textDiameter","halfAngle","halfangle","midAngle","midangle","isTangential","isRadial","startangle","stopangle","allTransforms","considerCrossing","isCrossing","dStart","dStop","closestEdge","calcTanTransform","calcRadTransform","textPosAngle","rCenter","calcMaxHalfSize","calcRCenter","calcRotate","getInscribedRadiusFraction","transformOutsideText","plotSize","maxPull","topMiddle","getMaxPull","applyAspectRatio","getTitleSpace","pieBoxHeight","scaleGroups","groupScale","getCoords","hasLabel","hasValue","hasPercent","makeTemplateVariables","ptTx","computeTransform","cosA","sinA","midX","midY","noCenter","plotGroups","currentCoords","angleFactor","firstPt","quadrants","hasOutsideText","cxFinal","cyFinal","outerCircle","px0","outerArc","px1","rim","determineOutsideTextFont","textXY","yLabelMin","yLabelMid","yLabelMax","labelExtraX","labelExtraY","finish","positionTitleInside","scootLabels","xHalf","yHalf","equatorFirst","farthestX","farthestY","xDiffSign","yDiffSign","thisQuad","oppositeQuad","wholeSide","thisQuadOutside","firstOppositeOutsidePt","topFirst","bottomFirst","scootOneLabel","prevPt","xBuffer","otherPt","newExtraX","prevOuterY","thisInnerY","thisOuterY","thisSliceOuterY","newExtraY","plotTextLines","lineStartX","textLinePath","finalX","yFromX","yNet","traceBbox","NepaliCalendar","daysPerYear","NEPALI_CALENDAR_DATA","month_number","nepaliYear","nepaliMonth","nepaliDay","gregorianDayOfYear","nepaliMonthToCheck","nepaliYearToCheck","_createMissingCalendarData","gregorianYear","gregorianDate","dayOfFirstJanInPaush","daysSinceJanFirstToEndOfNepaliMonth","nepaliDayOfMonth","tmp_calendar_data","nepaliYearToCreate","1970","1971","1972","1973","1974","1975","1976","1977","1978","1979","1980","1981","1982","1983","1984","1985","1986","1987","1988","1989","1990","1991","1992","1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013","2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033","2034","2035","2036","2037","2038","2039","2040","2041","2042","2043","2044","2045","2046","2047","2048","2049","2050","2051","2052","2053","2054","2055","2056","2057","2058","2059","2060","2061","2062","2063","2064","2065","2066","2067","2068","2069","2070","2071","2072","2073","2074","2075","2076","2077","2078","2079","2080","2081","2082","2083","2084","2085","2086","2087","2088","2089","2090","2091","2092","2093","2094","2095","2096","2097","2098","2099","2100","bgVert","bgFrag","VertexAttribute","VAONative","_attribs","_useElements","a2o","systems","stretches","variants","fams","verify","system","naiveFallback","__global__","absolutize","compress","compileDeterminant","robustDeterminant0","robustDeterminant1","doBreak","broken","getIndices","sortedArray","getSortFunc","arrayOld","DensityMapbox","createDensityMapbox","densityMapbox","topojsonUtils","topojsonFeature","getTopojsonName","getTopojsonPath","topojsonName","vendors","caf","_now","cp","cancelled","boxLine","meanLineStyle","m4FromQuat","AxisIds","cleanAxRef","cleanTitle","titleContainer","rewireAttr","oldAttrName","newAttrName","oldAttrSet","newAttrSet","cleanFinanceDir","dirContainer","dirName","commonPrefix","name1","name2","show1","show2","cleanTextPosition","emptyContainer","outer","innerStr","xaxis1","yaxis1","scene1","axisAttrRegex","polarAttrRegex","ternaryAttrRegex","sceneAttrRegex","isdate","islog","autotick","cameraposition","annotationsLen","shapesLen","yeColor","reversescl","containerName","highlightWidth","increasingShowlegend","decreasingShowlegend","increasingName","decreasingName","filtersrc","prevStyles","styleKeys","copyYstyle","hoverInfoParts","traceIndicesOut","pLength","pLastIsNumber","contPath","ATTR_TAIL_RE","attrParent","sceneName","typeAttr","getSubplot","isTraceInSubplots","newDistance","passVal","getPointKey","pointVal","getPointData","keyVal","pointKeyMap","methodNames","PlotlyLocales","Snapshot","zref","INSERTION_SORT_THRESHOLD","getMallocFree","mallocUint16","freeUint16","mallocInt8","freeInt8","mallocInt16","freeInt16","freeInt32","freeDouble","compileSort","scratch_stride","nprod","sortArgs","createInsertionSort","allocator","scratch_shape","dataRead","dataWrite","createQuickSort","labelCounter","ele_size","toPointer","cacheLoop","ptrs","usePivot","lexicoLoop","cleanUp","compareSwap","a_id","b_id","lbl","moveElement","swapElements","tripleSwap","swapAndDecrement","storePivot","mem_dest","pivot_dest","doSort","walkPointer","edgeToAdjacency","createPointCloudRenderer","Pointcloud","pickXData","pickYData","pointcloudOptions","sizemax","pointcloud","traceCoord","pickXYData","updateFast","userBounds","xbounds","ybounds","markerSizeMin","markerSizeMax","arearatio","createPointcloud","queueObj","queueIndex","undoQueue","sequence","inSequence","beginSequence","calls","plotDo","copyArgArray","dfactorial","perm","TIME_FORMAT_LINK","cheatertype","labelprefix","labelsuffix","titleoffset","attributeText","attributeTextPosition","getKeyFunc","dirSign","getRotateFromAngle","getRotatedTextSize","absSin","absCos","isEnd","toRight","toLeft","textpad","extrapad","bartraces","shouldDisplayZeros","adjustPixel","pointGroup","bars","roundWithLine","fixpx","expandToVisible","styleFns","appendBarText","appendTextNode","calcTexttemplate","vLetter","formatLabel","percenTotalLabel","calcTextinfo","nPercent","hasMultiplePercents","getTextPosition","inStackOrRelativeMode","isOutmostBar","insideTextFont","outsideTextFont","textSelection","barHeight","fitsInside","fitsInsideIfRotated","fitsInsideIfShrunk","toMoveOutsideBar","hasClipOnAxisFalse","svgSdf","convertTextStyle","textfontIn","textpositionIn","textPos","tfc","tfs","tff","fonti","convertMarkerStyle","optsIn","multiSymbol","multiColor","multiLineColor","multiOpacity","multiSize","multiLineWidth","borderColors","getSymbolSdf","markerSizeFunc","borderSizes","sizeTotal","convertMarkerSelection","convertTextSelection","convertErrorBarStyle","SYMBOL_SDF","SYMBOL_SVG_CIRCLE","symbolPath","symbolSdf","symbolFunc","isDot","convertStyle","overlay","markerStyle","markerSelection","convertLinePositions","midPtX","midPtY","hasNaN","convertErrorBarPositions","convertOneAxis","pOffset","eOffset","minShoe","maxHat","dl","lv","shoe","hat","convertTextPosition","markerOpts","fontOpts","hSign","vSign","xPad","RedBlackTree","defaultCompare","RBNode","_color","repaint","recount","_compare","doVisitFull","doVisitHalf","doVisit","RedBlackTreeIterator","_stack","n_stack","d_stack","pp","ppp","rbTreeForEach","at","last_ptr","iproto","swapNode","cstack","fixDoubleBlack","swapXY","tile","getTilingMethod","treemapSquarify","treemapBinary","treemapDice","treemapSlice","treemapSliceDice","paddingInner","paddingLeft","paddingRight","paddingTop","paddingBottom","flipTree","defaultSeparation","meanXReduce","maxYReduce","eachAfter","meanX","leafLeft","leafRight","valued","defaultChildren","eachBefore","computeHeight","copyData","leastCommonAncestor","node_copy","enclose","circles","enclosesWeak","encloseBasis","extendBasis","enclosesWeakAll","enclosesNot","encloseBasis2","encloseBasis3","encloseBasis1","r21","r3","c3","place","siblings_Node","packEnclose","sj","sk","optional","required","constantZero","defaultRadius","src_pack","radiusLeaf","packChildren","translateChild","treemap_round","dice","src_partition","positionNode","preroot","ambiguous","defaultParentId","src_stratify","nodeKey","nodeByKey","tree_defaultSeparation","nextLeft","nextRight","moveSubtree","nextAncestor","TreeNode","treeRoot","executeShifts","treemap_slice","squarifyRatio","nodeValue","sumValue","minValue","maxValue","newRatio","minRatio","beta","src_treemap","paddingStack","paddingOuter","valueOffset","valueTarget","valueLeft","valueRight","xk","yk","sliceDice","treemap_resquarify","resquarify","_squarify","STASHATTR","overrideCursor","savedCursor","classes","edgeVal2","boundaryMax","boundaryMin","contoursValue","includeGL3D","GL3D","renderableValuePresent","ownTrace","traceId","makeTranslucent","makeTextContrasty","relatedLinks","relatedNodes","nodeHoveredStyle","linkHoveredStyle","nodeNonHoveredStyle","linkNonHoveredStyle","visitNodes","tinyColorAlpha","labelOpts","sourceLabel","targetLabel","concentrationLabel","incomingLabel","outgoingLabel","linkEvents","follow","anchorIndex","flow","hoverCenter","hoverCenterPosition","valueFormat","valueSuffix","labelConcentration","nodeEvents","rootBBox","boundingBox","hoverCenterX0","hoverCenterX1","tooltip","tinyColorHue","monotoneConvexHull2D","convexHullnD","ich","aff","npoints","front","invPermute","boxHoverPoints","closePtData","violinLineAttrs","hasHoveronViolins","hasHoveronKDE","closeData","closeBoxData","hoverOnBoxes","vVal","kdePointData","vValPx","kdeVal","pOnPath","paOffset","paLength","spikePosAttr","hoverOnPoints","violinLine","distRatio","IsosurfaceTrace","beginVertextLength","allXs","allYs","allZs","allVs","activeFill","showSpaceframe","surfaceFill","spaceframeFill","drawingSurface","drawingSpaceframe","numFaces","Xs","Ys","Zs","_gridFill","_minValues","_maxValues","vMin","_vMin","vMax","_vMax","findVertexId","beginGroup","emptyVertices","addVertex","getBetween","setFill","styleIncludes","mapValue","drawTri","xyzv","allXYZVs","allABCs","openTri","createOpenTri","pnts","calcIntersection","pointOut","pointIn","inRange","almostInFinalRange","vErr","getXYZV","indecies","tryCreateTri","nPass","tryDrawTri","interpolated","tryCreateTetra","abcd","drawTetra","makeTri","p4","drawQuad","addCube","p000","p001","p010","p011","p100","p101","p110","p111","addRect","previousResult","begin2dCell","p00","p01","p10","p11","beginSection","distRatios","makeSection","rX","rZ","begin3dCell","cellStyle","draw2dX","draw2dY","draw2dZ","draw3d","drawSectionX","drawSectionY","drawSectionZ","drawAll","insertGridPoints","drawSpaceframe","surfacePattern","surfaceCount","setupMinMax","preRes","activeMin","activeMax","exactIndices","ceilIndices","cap","defaultFillColor","cBase","DOUBLEQUOTE_REGEX","DUMMY_REGEX","toppaper","topGroups","topGroup","queryParts","XMLSerializer","serializeToString","xmlEntityEncode","htmlEntityDecode","hiddenDiv","replaced","traceOpts","layoutOpts","traceEditTypeFlags","layoutEditTypeFlags","falseObj","overrideContainers","overrideOne","editTypeParts","scatterglAttrs","createWave","minOpacity","fmtColor","colorstring","robustDotProduct","EXISTS","annAutorange","apos","aref","padplus","padminus","headSize","headPlus","headMinus","startHeadSize","startHeadPlus","startHeadMinus","extremeArrowHead","ppadplus","ppadminus","sArray","pArray","barPolarCd","rAxis","aAxis","newRange","minmin","maxmax","axReverse","minpt","maxpt","minbest","maxbest","rangeMode","toZero","nonNegative","axLen","minSpan","mbest","maxPad","getMaxPad","rangeEnd","extrappad","_concat","collapseMinArray","collapseMaxArray","newPad","collapseArray","lessOrEqual","greaterOrEqual","atLeastAsExtreme","includeThis","clipAtZero","goodNumber","axeRangeOpts","dmin","ppadiplus","ppadiminus","isLog","hasArrayOption","vpadLinearized","makePadAccessor","vpadplus","vpadminus","collapseOpts","addItem","iMax","trimLeaves","e2a","live","dead","npositions","nedges","__TYPEDARRAY_POOL","UINT8","UINT16","UINT32","BIGUINT64","INT8","INT16","INT32","BIGINT64","DOUBLE","DATA","UINT8C","BUFFER","hasUint8C","hasBigUint64","BigUint64Array","hasBigInt64","BigInt64Array","POOL","freeArrayBuffer","log_n","mallocArrayBuffer","mallocUint8Clamped","mallocBigUint64","mallocBigInt64","mallocDataView","mallocBuffer","freeBigUint64","freeBigInt64","freeFloat64","freeUint8Clamped","freeDataView","freeTypedArray","freeBuffer","mallocFloat64","clearCache","scatterStyle","styleTrace","AFG","ALA","ALB","DZA","ASM","AND","AGO","AIA","ATA","ATG","ARG","ARM","ABW","AUS","AUT","AZE","BHS","BHR","BGD","BRB","BLR","BEL","BLZ","BEN","BMU","BTN","BOL","BES","BIH","BWA","BVT","BRA","IOT","BRN","BGR","BFA","BDI","CPV","KHM","CMR","CAN","CYM","CAF","TCD","CHL","CHN","CXR","CCK","COL","COM","COG","COK","CRI","CIV","HRV","CUB","CUW","CYP","CSK","CZE","COD","DNK","DJI","DMA","DOM","ECU","EGY","SLV","GNQ","ERI","EST","ETH","FLK","FRO","FJI","FIN","FRA","GUF","PYF","ATF","GAB","GMB","DDR","DEU","GHA","GIB","GRC","GRL","GRD","GLP","GUM","GTM","GGY","GIN","GNB","GUY","HTI","HMD","VAT","HND","HKG","HUN","ISL","IND","IDN","IRN","IRQ","IRL","IMN","ISR","ITA","JAM","JPN","JEY","JOR","KAZ","KEN","KIR","PRK","KWT","KGZ","LAO","LVA","LBN","LSO","LBR","LBY","LIE","LTU","LUX","MAC","MDG","MWI","MYS","MDV","MLI","MLT","MHL","MTQ","MRT","MUS","MYT","MEX","FSM","MCO","MNG","MNE","MSR","MAR","MOZ","MMR","NAM","NRU","NPL","NLD","ANT","NCL","NZL","NIC","NER","NGA","NIU","NFK","MNP","NOR","OMN","PAK","PLW","PSE","PAN","PNG","PRY","PER","PHL","PCN","POL","PRT","PRI","QAT","KOR","MDA","REU","ROU","RUS","RWA","BLM","SHN","KNA","LCA","MAF","SPM","VCT","WSM","SMR","STP","SAU","SEN","SRB","SYC","SLE","SGP","SXM","SVK","SVN","SLB","SOM","ZAF","SGS","SSD","ESP","LKA","SDN","SUR","SJM","SWZ","SWE","CHE","SYR","TWN","TJK","THA","MKD","TLS","TGO","TKL","TON","TTO","TUN","TUR","TKM","TCA","TUV","UGA","UKR","ARE","GBR","TZA","USA","UMI","URY","UZB","VUT","VEN","VNM","VGB","VIR","WLF","ESH","YEM","YMD","YUG","ZMB","EAZ","ZWE","objPropertyIsEnumerable","defVal","compareFn","simplifyPolygon","minArea","outv","computeWeight","errorWeight","perim","heapSwap","heap","heapWeight","heapParent","heapDown","tw","heapCount","heapUp","heapPop","heapUpdate","hmin","tortoiseHare","nh","tin","tout","cin","cout","calcXPaddingOptions","calcPaddingOptions","calcYPaddingOptions","isYAxis","axisDirectionReverted","beforePad","afterPad","shapeBounds","paramsToUse","convertVal","drawnParam","drawn","shapeList","vx0","vy0","success","performPlot","viewModels","createParcatsViewModel","layerSelection","traceEnter","pathSelection","pathSelectionEnter","stylePathsNoHover","svgD","compareRawColor","mouseoverPath","mouseoutPath","clickPath","dimensionSelection","categorySelection","categoryGroupEnterSelection","styleCategoriesNoHover","bandSelection","catViewModel","bands","bandsSelectionEnter","bandModel","parcatsViewModel","styleBandsNoHover","paperColor","catInRightDim","catModel","categorylabelfont","mouseoverCategoryBand","mouseoutCategory","dragDimensionStart","dragDimension","dragDimensionEnd","numDims","leftDimInd","hoverinfoItems","stylePathsHover","buildPointsArrayForPath","buildConstraintsForPath","pathCenterX","pathCenterY","hoverX","graphDivBBox","leftXs","dimWidths","leftDim","rightDim","topYs","prob","countLabel","probabilityLabel","hovertextParts","getTraceIndex","bandsSelection","selectPathsThroughCategoryBandColor","catBandViewModel","allPaths","categoryViewModel","pathViewModel","emitPointsEventCategoryHovermode","bandElement","eventName","bandViewModel","bandSel","bvm","emitPointsEventColorHovermode","createHoverLabelForCategoryHovermode","hoverLabelIdealAlign","rectSelection","rectBoundingBox","dimensionModel","styleForColorHovermode","catPaths","styleBandsHover","styleForCategoryHovermode","styleCategoryHover","createHoverLabelForColorHovermode","bandBoundingBox","bandColorCount","catCount","pColorAndCat","pCatGivenColor","pColorGivenCat","categorycount","colorcount","bandcolorcount","createHoverLabelForDimensionHovermode","allHoverlabels","dragDimensionDisplayInd","initialDragDimensionDisplayInds","dragHasMoved","dragCategoryDisplayInd","catMouseX","catMouseY","initialDragCategoryDisplayInds","potentialClickBand","dragDimInd","prevDimInd","nextDimInd","dragCategory","categoryY","catDisplayInd","dimCategoryViews","catAbove","catBelow","prevDimension","nextDimension","updateDimensionViewModels","updatePathViewModels","updateSvgCategories","updateSvgPaths","traceInd","finalDragDimensionDisplayInds","anyDimsReordered","initDimDisplay","finalDimDisplay","anyCatsReordered","finalDragCategoryDisplayInds","initCatDisplay","sortedCategoryModels","newCategoryArray","newCategoryLabels","allTraces","newAnchor","wrappedParcatsModel","parcatsModel","figureWidth","figureHeight","traceWidth","traceHeight","traceX","traceY","pathShape","buildSvgPath","leftXPositions","pathYs","pathHeight","curvature","refInterpolator","xRefPoints1","xRefPoints2","dimensionViewModels","nextYPositions","catToDisplayIndPerDim","dimToDisplayInd","displayToDimInd","pathDisplayCategoryInds","dimensionInds","sortArray1","sortArray2","pathViewModels","pathNumber","dimDisplayInd","catViewModle","numBands","lastCatBand","bandY","currentBand","dimensionsIndInfo","dimModel","createDimensionViewModel","dimX","numDimensions","nextCatHeight","nextCatModel","nextCat","numCats","nextCatY","categoryIndInfo","var1Name","var2Name","arrayVarNames","colLen","col1","col2","textCol","hasColumnText","hoverTextCol","hasColumnHoverText","col1dv","col1vals","col2dv","col2vals","newArrays","after2before","arrayVar","_after2before","coallesceUniforms","makeVector","makePropSetter","vidx","makeSetter","enumerateIndices","tprefix","storeProperty","processObject","coallesced","variable","_zlength","vPos","hPos","xInc","yInc","anchorVals","MapboxLayer","idSource","idLayer","sourceType","layerType","convertOpts","iconsize","placement","needsNewImage","updateImage","needsNewSource","updateSource","updateLayer","needsNewLayer","updateStyle","sourcetype","sourceOpts","convertSourceOpts","sourceattribution","_below","convertedOpts","sourcelayer","getLayer","mapboxLayer","cleanOne","valTrim","rgbStr","cstr","bcflat","fcflat","el0","findCategories","cloneLayoutOverride","tileClass","override","clonePlot","graphObj","oldData","oldLayout","axesImageOverride","linetickenable","plotTile","td","defaultLayout","fastTwoSum","NASHORN_BUG","buttonAttrs","xAxisMatch","yAxisMatch","bdPos0","bdPos1","wdPos","whiskerWidth","lcenter","posc","pos1","posw0","posw1","posm0","posm1","useExtremes","seedPseudoRandom","gPoints","newJitter","typicalSpread","minSpread","spreadLimit","jitterFactors","maxJitterFactor","pmin","pmax","jitterFactor","jitterOffset","pseudoRandom","sl","sh","cdbox","boxLayer","thunkName","string_typesig","shapeLengthConditions","shapeConditions","thunk","ti2","h00","h10","h01","h11","dcubicHermite","dh00","dh10","dh01","dh11","Axes2DOptions","AXES","axTitle","axMirror","hasAxisInDfltPos","hasAxisInAltrPos","hasSharedAxis","mirrorLines","mirrorTicks","getLabelPad","getTickPad","getTickMarkLength","axSide","createAxes2D","DiscworldCalendar","dow","century","centuries","20","21","runtimeUniforms","numUniforms","ACTIVE_UNIFORMS","getType","runtimeAttributes","numAttributes","GL_TO_GLSL_TYPES","GL_TABLE","typeNames","tn","TO_STRING_TAG","TAG","parentOut","constraintRange","dimensionsIn","fontDflt","makeClipPath","xctrl","yctrl","nea1","neb1","IS_RIGHT","memo","createTextSprites","TextSprites","pixelScale","tryVectorizeText","alignDir","alignOpt","drawLabel","handleContourDefaults","missingEnd","aFrom","propertyNames","propertyName","ensure","arcToCurve","makeControlPoints","inferCubicControlPoint","p2e0","p2e1","computeControlPoints","xe","ye","je","xej","yej","zVal","v0In","dvIn","numbricks","sizex","sizey","sizing","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","forceStringMethod","stringMethod","regexMethod","Camera2D","lastInputTime","lastPos","boxEnabled","boxInited","boxStart","boxEnd","dragStart","mouseContainer","unSetAutoRange","calcDataBox","updateRange","setRanges","smallDx","smallDy","getSubplotConstraint","dydx","panning","handleAnnotations","path2DSupported","parsePath","drawPath","bitmapSdf","pathSdf","viewbox","strokeStyle","isPath2DSupported","Path2D","idata","path2d","setTransform","cutoff","$map","getClosestPoint","hoverPseudoDistance","spikePseudoDistance","minAttr","maxAttr","centerShift","displayHalfWidth","hoverHalfWidth","pseudoDistance","shiftPos","xSpike","hoverSplit","hoverParts","usedVals","valPx","getLabelLine","textParts","FaceIndex","constraint","classifyFaces","indexCells","locate","filterCells","isCat","dtickNum","getMarchingIndex","mi","startIndices","ystartIndices","twoWide","fadedColor","calcOneAxis","calcCoord","baseExtremes","Geo","hasChoropleth","basePaths","dataPaths","makeRangeBox","lat0","lat1","dlon4","geoPromises","needsTopojson","topojsonNameNew","fetchTopojson","topojsonPath","updateProjection","saveViewInitial","updateBaseLayers","updateDims","choropleth","projLayout","axLon","axLat","getProjection","dummyFn","fitExtent","midLon","midLat","lonHalfSpan","latHalfSpan","rangeBox","attrToUnset","centerPx","isAxisLayer","isLineLayer","isFillLayer","makeGraticule","oppRng","coordFn","hFrameWidth","zoomReset","lonlatPx","hideShowPoints","createBackground","getCubeProperties","Ticks","copyVec3","tickAlign","labelAlign","_firstInit","_lines","_background","OffsetInfo","primalOffset","primalMinor","mirrorOffset","mirrorMinor","parseOption","cons","nextTicks","NUMBER","BOOLEAN","STRING","ticksUpdate","labelUpdate","LINE_OFFSET","computeLineOffset","dualOffset","dualMinor","CUBE_ENABLE","DEFAULT_PARAMS","PRIMAL_MINOR","MIRROR_MINOR","PRIMAL_OFFSET","cubeEnable","enableAlign","alignTo","solveTickAlignments","major","EPSILON","lessThan","greaterThan","linelow","binSize","valsIn","errDiff","dlow","dhigh","rounded","sortFn","notOrdered","notReversed","pairOrder","markerSymbols","menuDefaults","menuIn","menuOut","buttonDefaults","buttonIn","buttonOut","updateMenusDefaults","calcSDF","intData","CanvasRenderingContext2D","gridOuter","gridInner","INF","edt","edt1d","axisLineGridAttr","axisTickAttrs","radialAxisAttrs","angularAxisAttrs","mockAnnAxes","_xa","_pdata","_ya","anns","yrange","makeScaler","_sArray","ck","fontVariant","processPixels","getPixels","rawString","activeStyle","parseTag","allStyles","xPos","zPos","allTexts","numberOfLines","nDone","writeBuffer","getTextFontSize","changeStyle","oldStyle","newStyle","ctxFont","oldIndex_Sub","newIndex_Sub","oldSub","newSub","oldIndex_Super","newIndex_Super","oldSuper","newSuper","wasBold","is_Bold","wasItalic","is_Italic","xCut","yCut","cleanPSLG","toPolygonCrappy","TAG_CHR","opnTag","clsTag","nOPN","nCLS","isRecursive","doSimplify","processPixelsImpl","transformPositions","polyline","nresult","nloops","nloop","globalKeywords","systemFontKeywords","fontWeightKeywords","fontStyleKeywords","fontStretchKeywords","splitBy","parseFont","parseLineHeight","normalizeArray","allowAboveRoot","resolvedPath","resolvedAbsolute","trailingSlash","fromParts","toParts","samePartsLength","outputParts","sep","dirname","hasRoot","matchedSlash","basename","extname","startDot","startPart","preDotState","createSplineEvaluator","createIDerivativeEvaluator","createJDerivativeEvaluator","amax","bmax","arange","brange","atol","btol","isOccluded","i2a","j2b","ij2ab","aval","i2c","extrapolate","iex","jex","der","dadi","dbdj","dxyda","dxydb","plus","minus","createViewController","turntable","createTurntable","orbit","createOrbit","ViewController","controllers","_controllerNames","_controllerList","_mode","argNames","getDistance","src_transform","topology","src_bbox","bboxPoint","bboxGeometry","feature_feature","feature_object","transformPoint","stitchedArcs","fragmentByStart","fragmentByEnd","emptyIndex","fg","gf","meshArcs","extractArcs","geomsByArc","extract0","extract1","extract2","extract3","geoms","mergeArcs","polygonsByArc","extract","planarRingArea","src_neighbors","indexesByArc","ik","quantizePoint","quantizeGeometry","untransform","hasInstance","unscopables","paren","separator","cleanParts","beginPath","rMax","prevLookup","rpx0","y2rpx","rx2px","getTargetX","getTextXY","getTargetY","parentChildren","nextX1ofPrevEntry","interpX0X1FromParent","xmid","textPosAngleFn","rpx1Fn","x0Fn","x1Fn","scaleFn","rotateFn","_rCenterFn","rCenterFn","addPercent","percentParentLabel","percentEntryLabel","percentRootLabel","worker","workerBundleString","sharedChunk","workerUrl","p1x","p1y","sampleCurveX","sampleCurveY","sampleCurveDerivativeX","solveCurveX","_sub","multByPoint","_multByPoint","divByPoint","_divByPoint","_mult","_div","rotateAround","_rotateAround","matMult","_matMult","_unit","perp","_perp","_round","distSqr","angleTo","angleWith","angleWithSep","setItem","removeItem","msRequestAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","msCancelAnimationFrame","resolveURL","hardwareConcurrency","API_URL","FEEDBACK_URL","REQUIRE_ACCESS_TOKEN","ACCESS_TOKEN","MAX_PARALLEL_IMAGE_REQUESTS","testSupport","_transformRequestFn","_customAccessToken","_createSkuToken","tokenExpiresAt","_skuToken","_skuTokenExpiresAt","_isSkuTokenExpired","transformRequest","normalizeStyleURL","_makeAPIURL","normalizeGlyphsURL","normalizeSourceURL","authority","normalizeSpriteURL","normalizeTileURL","canonicalizeTileURL","canonicalizeTileset","decodeURIComponent","anonId","pendingRequest","getStorageKey","btoa","fetchEventData","localStorage","getItem","saveEventData","processRequests","postEvent","EVENTS_URL","sdkIdentifier","sdkVersion","skuId","userId","vt","queueRequest","skuToken","postMapLoadEvent","postTurnstileEvent","lastSuccess","tokenU","et","Unknown","Style","Source","Tile","Glyphs","SpriteImage","SpriteJSON","WorkerGlobalScope","referrer","AbortController","Request","credentials","signal","statusText","arrayBuffer","ot","caches","Headers","Response","ReadableStream","ut","xt","actor","withCredentials","getResponseHeader","bt","requestParameters","cacheControl","expires","_t","wt","At","kt","St","_oneTimeListeners","fire","listens","_eventedParent","_eventedParentData","setEventedParent","zt","$version","$root","light","sprite","glyphs","source_vector","scheme","xyz","tms","source_raster","raster","source_raster_dem","terrarium","source_geojson","maximum","minimum","clusterRadius","clusterMaxZoom","clusterProperties","lineMetrics","generateId","source_video","video","urls","source_image","hillshade","layout_background","layout_fill","expression","parameters","layout_circle","layout_heatmap","layout_line","butt","bevel","miter","requires","layout_symbol","uppercase","lowercase","layout_raster","layout_hillshade","filter_operator","in","geometry_type","categorical","function_stop","expression_name","let","var","case","coalesce","ln2","typeof","boolean","collator","accumulated","upcase","downcase","paint_fill","paint_line","paint_circle","paint_heatmap","paint_symbol","overridable","paint_raster","paint_hillshade","paint_background","It","__line__","Ct","Bt","Et","Mt","Pt","Tt","Vt","Ft","Ot","Lt","Dt","Ut","Rt","jt","qt","Nt","Kt","itemType","Zt","Xt","Gt","Jt","parseCSSColor","Ht","Yt","sensitivity","Intl","Collator","resolvedLocale","resolvedOptions","$t","fontStack","Wt","sections","Qt","te","ee","serialize","expectedType","evaluate","eachChild","possibleOutputs","ae","oe","ue","parseColor","pe","featureState","formattedSection","_parseColorCache","ce","_evaluate","definitions","overloads","ve","checkSubtype","he","caseSensitive","diacriticSensitive","fe","de","me","boundExpression","_parse","typeAnnotation","outputs","be","ze","Ie","Be","Ee","Me","Pe","Te","Ve","Fe","Oe","Le","De","Ue","Re","interpolation","qe","interpolationFactor","controlPoints","Ne","Ke","Ze","Xe","inputType","cases","otherwise","MAX_SAFE_INTEGER","outputIndex$1","Ge","Je","He","Ye","lhs","rhs","hasUntypedArgument","$e","We","Qe","nr","minFractionDigits","maxFractionDigits","NumberFormat","minimumFractionDigits","maximumFractionDigits","ur","lr","vr","gr","heatmapDensity","lineProgress","isSupportedScript","Ar","_warningHistory","_evaluator","_defaultValue","_enumValues","kr","Sr","enum","formatted","evaluateWithoutErrorHandling","zr","_styleExpression","isStateDependent","Ir","zoomStops","interpolationType","Cr","Br","_parameters","_specification","Er","valueSpec","objectElementValidators","styleSpec","objectKey","Mr","arrayElementValidator","Pr","Tr","Vr","expressionContext","propertyType","Fr","Or","deserialize","Lr","Dr","Rr","Ur","jr","Kr","qr","Nr","Zr","Xr","Gr","Jr","Hr","Yr","$r","Wr","Qr","rn","nn","paintProperty","layoutProperty","sn","pn","bboxes","_insertReadonly","_forEachCell","_insertCell","_queryCell","_convertToCellCoord","_convertFromCellCoord","toArrayBuffer","yn","mn","writeable","klass","omit","shallow","vn","_classRegistryKey","gn","$name","xn","bn","lastIntegerZoom","lastIntegerZoomTime","lastZoom","lastFloorZoom","Arabic","Khmer","Hiragana","Katakana","Bopomofo","Kanbun","An","Sn","zn","In","Cn","Bn","En","Mn","Pn","applyArabicShaping","processBidirectionalText","processStyledBidirectionalText","isLoaded","Tn","fadeDuration","zoomHistory","crossFadingFactor","getCrossfadeParameters","fromScale","toScale","Vn","specification","isDataDriven","possiblyEvaluate","Fn","transitioned","Ln","untransitioned","On","_properties","defaultTransitionablePropertyValues","setValue","getTransition","setTransition","Dn","prior","defaultTransitioningPropertyValues","jn","Un","defaultPropertyValues","Rn","isConstant","constantOr","defaultPossiblyEvaluatedValues","qn","Nn","overrides","Kn","_calculate","Zn","Xn","Gn","overridableProperties","Jn","_featureFilter","sourceLayer","_unevaluatedLayout","_transitionablePaint","setPaintProperty","setLayoutProperty","_transitioningPaint","_crossfadeParameters","getLayoutProperty","getPaintProperty","_handleSpecialPaintPropertyUpdate","_handleOverridablePaintPropertyUpdate","updateTransitions","recalculate","is3D","isTileClipped","hasOffscreenPass","Hn","Int8","Uint8","Int16","Uint16","Int32","Uint32","Float32","Yn","_structArray","_pos1","_pos2","_pos4","_pos8","$n","isTransferred","capacity","Wn","members","BYTES_PER_ELEMENT","Qn","_trim","bytesPerElement","_refreshViews","reserve","emplaceBack","emplace","ui","gi","anchorPointX","anchorPointY","sourceLayerIndex","bucketIndex","signedDistanceFromAnchor","anchorPoint","Ai","glyphStartIndex","numGlyphs","vertexStartIndex","lineStartIndex","lineLength","lowerSize","upperSize","lineOffsetX","lineOffsetY","writingMode","placedOrientation","crossTileID","Si","rightJustifiedTextSymbolIndex","centerJustifiedTextSymbolIndex","leftJustifiedTextSymbolIndex","verticalPlacedTextSymbolIndex","textBoxStartIndex","textBoxEndIndex","verticalTextBoxStartIndex","verticalTextBoxEndIndex","iconBoxStartIndex","iconBoxEndIndex","numHorizontalGlyphVertices","numVerticalGlyphVertices","numIconVertices","textBoxScale","radialTextOffset","Ii","Ci","getoffsetX","Bi","tileUnitDistanceFromAnchor","Ei","getx","gety","gettileUnitDistanceFromAnchor","Mi","Pi","Ti","Vi","Fi","prepareSegment","MAX_VERTEX_ARRAY_LENGTH","vertexLength","vertexOffset","primitiveOffset","primitiveLength","vaos","simpleSegment","Oi","Li","getPositions","Di","Ui","uniform1i","Ri","uniform1f","ji","uniform2f","qi","uniform3f","Ni","uniform4f","Ki","Zi","uniformMatrix4fv","Gi","Ji","uniformNames","defines","setConstantPatternPositions","populatePaintArray","updatePaintArray","upload","setUniforms","getBinding","Hi","patternPositions","patternTo","patternFrom","tlbr","Yi","paintVertexAttributes","paintVertexArray","paintVertexBuffer","createVertexBuffer","$i","useIntegerZoom","Wi","zoomInPaintVertexArray","zoomOutPaintVertexArray","patterns","tl","zoomInPaintVertexBuffer","zoomOutPaintVertexBuffer","Qi","binders","cacheKey","_buffers","_featureMap","_bufferOffset","createDynamic","populatePaintArrays","updatePaintArrays","getPaintVertexBuffers","getUniforms","updatePatternPaintBuffers","programConfigurations","needsUpload","composite","loadGeometry","overscaling","hasPattern","layoutVertexArray","indexArray","stateDependentLayerIds","populate","addFeature","stateDependentLayers","uploadPending","uploaded","layoutVertexBuffer","indexBuffer","createIndexBuffer","hypot","createBucket","queryRadius","queryIntersectsFeature","cameraToCenterDistance","_updateColorRamp","colorRamp","colorRampTexture","heatmapFbo","no","vo","fo","yo","oo","co","ao","ho","eo","po","go","bo","_o","wo","Ao","patternDependencies","ko","So","patternFeatures","indexArray2","addFeatures","indexBuffer2","zo","Io","Co","Bo","Eo","Mo","_pbf","_geometry","_keys","readFields","Po","readVarint","To","readSVarint","toGeoJSON","Vo","Fo","_features","Oo","readString","readDouble","readVarint64","readBoolean","Lo","Do","VectorTile","VectorTileFeature","VectorTileLayer","Uo","Ro","jo","qo","No","Ko","Zo","Xo","Jo","Go","Ho","Yo","$o","Wo","Qo","addLine","scaledDistance","totalDistance","mapbox_clip_start","clipEnd","mapbox_clip_end","updateDistance","addCurrentVertex","addHalfVertex","es","_updateGradient","gradientTexture","os","ss","us","ps","toLocaleUpperCase","toLocaleLowerCase","horizontalOnly","sectionIndex","ds","fromFeature","verticalizePunctuation","positionedGlyphs","getMaxScale","getSection","getSectionIndex","getCharCode","advance","As","9","10","12","32","vs","badness","priorBreak","ks","Ss","layoutSize","minZoom","maxZoom","Is","uSize","uSizeT","Cs","Bs","getSizeData","evaluateSizeForFeature","evaluateSizeForZoom","SIZE_PACK_FACTOR","Es","Ms","Ps","Ts","Vs","dynamicLayoutVertexArray","opacityVertexArray","placedSymbolArray","dynamicLayoutVertexBuffer","opacityVertexBuffer","itemSize","Fs","collisionVertexArray","collisionVertexBuffer","Os","collisionBoxArray","hasPaintOverrides","textSizeData","iconSizeData","sortFeaturesByKey","sortFeaturesByY","writingModes","sourceID","createArrays","Rs","collisionBox","collisionCircle","glyphOffsetArray","lineVertexArray","symbolInstances","calculateGlyphDependencies","iconDependencies","glyphDependencies","getValueAndResolveTokens","allowVerticalPlacement","addToLineVertexArray","addSymbols","glyphOffset","_addCollisionDebugVertex","addCollisionDebugVertices","addDebugCollisionBoxes","generateCollisionDebugBuffers","_deserializeCollisionBoxesForSymbol","textBox","textFeatureIndex","textCircles","verticalTextBox","verticalTextFeatureIndex","iconBox","iconFeatureIndex","deserializeCollisionBoxes","collisionArrays","hasTextData","hasIconData","hasCollisionBoxData","hasCollisionCircleData","addIndicesForPlacedTextSymbol","getSortedSymbolIndexes","sortedAngle","symbolInstanceIndexes","sortFeatures","featureSortOrder","MAX_GLYPHS","addDynamicAttributes","Ls","Ds","runtimeType","getOverride","hasOverride","Us","_setPaintOverrides","hasPaintOverride","_interpolationType","js","qs","Ns","Ks","implementation","renderingMode","prerender","painter","Gs","Js","paddedRect","Hs","displaySize","haveRenderCallbacks","addImages","iconPositions","hasRenderCallback","patchUpdatedImages","dispatchRenderCallbacks","updatedImages","patchUpdatedImage","getImage","$s","Ws","Qs","tu","eu","useMipmap","pixelStoreUnpackFlipY","pixelStoreUnpack","pixelStoreUnpackPremultiplyAlpha","premultiply","isSizePowerOfTwo","nu","au","Bytes","su","realloc","lu","writeVarint","pu","writeSVarint","hu","writeBoolean","yu","writeFixed32","du","writeSFixed32","writeFixed64","vu","writeSFixed64","xu","bu","wu","readMessage","Au","ku","readBytes","Varint","Fixed64","Fixed32","readFixed32","readSFixed32","readFixed64","readSFixed64","readPackedVarint","readPackedSVarint","readPackedBoolean","readPackedFloat","readPackedDouble","readPackedFixed32","readPackedSFixed32","readPackedFixed64","readPackedSFixed64","writeTag","writeString","writeBytes","writeRawMessage","writeMessage","writePackedVarint","writePackedSVarint","writePackedBoolean","writePackedFloat","writePackedDouble","writePackedFixed32","writePackedSFixed32","writePackedFixed64","writePackedSFixed64","writeBytesField","writeFixed32Field","writeSFixed32Field","writeFixed64Field","writeSFixed64Field","writeVarintField","writeSVarintField","writeStringField","writeFloatField","writeDoubleField","writeBooleanField","zu","_triggered","_channel","Iu","mapId","tasks","taskQueue","cancelCallbacks","invoker","receive","Cu","targetMapId","sourceMapId","getWorkerSource","Bu","setSouthWest","setNorthEast","_ne","Eu","_sw","getSouthWest","getNorthEast","getNorthWest","getWest","getNorth","getSouthEast","getEast","getSouth","toBounds","Mu","Pu","Tu","Vu","Fu","Ou","Lu","fromLngLat","toLngLat","toAltitude","meterInMercatorCoordinateUnits","Du","ju","getTilePoint","Uu","canonical","Ru","overscaledZ","scaledTo","isChildOf","isLessThan","unwrapTo","overscaleFactor","toUnwrapped","qu","_unpackTerrarium","_unpackMapbox","_idx","backfillBorder","Nu","Ku","_stringToNumber","_numberToString","encode","decode","Zu","_vectorTileFeature","Xu","Gu","stateChanges","deletedStates","updateState","removeFeatureState","getState","initializeTileState","setFeatureState","coalesceChanges","Ju","tileID","grid3D","featureIndexArray","Hu","Yu","loadVTLayers","vtLayers","rawTileData","sourceLayerCoder","queryGeometry","queryPadding","cameraQueryGeometry","loadMatchingFeature","pixelPosMatrix","bucketLayerIDs","intersectionZ","lookupSymbolFeatures","hasLayer","$u","uses","buckets","expirationTime","hasSymbolBuckets","expiredRequestCount","Wu","Qu","registerFadeDuration","timeAdded","fadeEndTime","wasRequested","loadVectorData","hasData","unloadVectorData","latestFeatureIndex","latestRawTileData","justReloaded","imageAtlas","glyphAtlasImage","imageAtlasTexture","glyphAtlasTexture","unloadDEMData","dem","neighboringTiles","getBucket","queryRenderedFeatures","querySourceFeatures","_geojsonTileLayer","clearMask","maskedBoundsBuffer","maskedIndexBuffer","setMask","patternsLoaded","setExpiryData","getExpiryTimeout","holdingForFade","symbolFadeHoldUntil","symbolFadeFinished","clearFadeHold","setHoldDuration","boxStartIndex","_addLineCollisionCircles","boxEndIndex","ol","_down","ll","_up","peek","vl","murmur3","murmur2","Su","compositeTextSizes","_l","compareText","Actor","AlphaImage","CanonicalTileID","CollisionBoxArray","DEMData","DataConstantProperty","DictionaryCoder","EXTENT","ErrorEvent","EvaluationParameters","Evented","FeatureIndex","FillBucket","FillExtrusionBucket","ImageAtlas","ImagePosition","LineBucket","LngLatBounds","MercatorCoordinate","ONE_EM","OverscaledTileID","Point$1","ProgramConfiguration","Protobuf","RGBAImage","RequestManager","ResourceType","SegmentVector","SourceFeatureState","StructArrayLayout1ui2","StructArrayLayout2i4","StructArrayLayout2ui4","StructArrayLayout3ui6","StructArrayLayout4i8","SymbolBucket","Texture","Transitionable","Uniform1f","Uniform1i","Uniform2f","Uniform3f","Uniform4f","UniformColor","UniformMatrix4f","UnwrappedTileID","ValidationError","WritingMode","ZoomHistory","asyncAll","bezier","bindAll","cacheEntryPossiblyAdded","getActor","clearTileCache","clone$1","create$1","create$2","createCommonjsModule","createExpression","createLayout","createStyleLayer","deepEqual","emitValidationErrors","endsWith","enforceCacheSizeLimit","evaluateRadialOffset","evented","featureFilter","filterObject","fromRotation","getAnchorAlignment","getAnchorJustification","getArrayBuffer","getJSON","getReferrer","getVideo","muted","onloadstart","crossOrigin","isChar","isMapboxURL","keysDifference","makeRequest","mapObject","mercatorXfromLng","mercatorYfromLat","mercatorZfromAltitude","mvt","parseGlyphPBF","pbf","performSymbolLayout","tilePixelRatio","iconsNeedLinear","compositeIconSizes","layoutTextSize","layoutIconSize","textMaxSize","sdfIcons","plugin","polygonIntersectsPolygon","potpack","rasterBoundsAttributes","refProperties","registerForPluginAvailability","pluginURL","completionCallback","setCacheLimits","setRTLTextPlugin","sphericalToCartesian","symbolSize","transformMat3","uniqueId","validateCustomStyleLayer","validateLight","validateStyle","vectorTile","warnOnce","webpSupported","keyCache","_layerConfigs","_layers","familiesBySource","showCollisionBoxes","collectResourceTiming","returnDependencies","stacks","icons","glyphMap","iconMap","glyphPositions","getEntriesByName","mark","clearMarks","clearMeasures","_marks","rawData","Performance","layerIndex","loading","loadTile","resourceTiming","reloadTile","reloadCallback","abortTile","removeTile","rawImageData","_feature","tags","rawGeometry","keycache","valuecache","fromVectorTileJs","fromGeojsonVt","GeoJSONWrapper","within","trees","cluster_id","point_count","point_count_abbreviated","promoteId","we","Se","ke","transformed","numSimplified","numFeatures","tileCoords","timeEnd","indexMaxZoom","indexMaxPoints","splitTile","Ce","_geoJSONIndex","getTile","_cluster","getClusters","_limitZoom","getChildren","getLeaves","_appendLeaves","_addTileFeatures","getClusterExpansionZoom","_map","loadGeoJSON","loadData","_pendingCallback","abandoned","_pendingLoadDataParams","_loadData","superclusterOptions","geojsonVtOptions","clusterId","getClusterChildren","getClusterLeaves","layerIndexes","workerSourceTypes","workerSources","demWorkerSources","registerWorkerSource","registerRTLTextPlugin","setReferrer","setLayers","getLayerIndex","removedIds","loadDEMTile","getDEMWorkerSource","removeDEMTile","loadWorkerSource","loadRTLTextPlugin","reduceRight","isSealed","isFrozen","Worker","terminate","webGLContextAttributes","failIfMajorPerformanceCaveat","probablySupportsContext","supportsContext","disableDrag","enableDrag","userImage","TouchEvent","touchPos","mouseButton","InstallTrigger","callbackDispatchedThisFrame","requestors","atlasImage","setLoaded","_notify","addImage","removeImage","listImages","getImages","getPixelSize","getPattern","_updatePatternAtlas","atlasTexture","beginFrame","requestManager","localIdeographFontFamily","setURL","getGlyphs","requests","_tinySDF","loadGlyphRange","_doesCharSupportLocalGlyph","tinySDF","TinySDF","_transitionable","setLight","getLight","getDash","addDash","workerPool","actors","currentActor","acquire","vector_layers","vectorLayers","vectorLayerIds","broadcast","release","validateBounds","dispatcher","reparseOverscaled","_loaded","_options","_collectResourceTiming","dataType","_tileJSONRequest","_requestManager","tileBounds","_getMapId","sourceDataType","hasTile","_refreshExpiredTiles","unloadTile","roundZoom","getTileTexture","extTextureFilterAnisotropic","extTextureFilterAnisotropicMax","saveTileTexture","needsHillshadePrepare","_getNeighboringTiles","backfilled","demTexture","_removed","_resourceTiming","workerOptions","_updateWorkerData","_finishLoading","setCoordinates","_boundsArray","boundsBuffer","boundsSegments","triggerRepaint","play","pause","seek","seekable","currentTime","paused","_hasInvalidDimensions","_playing","calculatePosMatrix","maxPitchScaleFactor","tilesIn","wrappedTileID","queryResults","getFeatureState","_getAndRemoveByKey","getAndRemove","setMaxSize","dynamicDraw","unbindVAO","bindElementBuffer","DYNAMIC_DRAW","STATIC_DRAW","bindVertexBuffer","enableAttributes","setVertexAttribPointers","setDefault","stencilMask","ALWAYS","stencilFunc","KEEP","stencilOp","STENCIL_TEST","depthRange","ZERO","blendColor","BACK","cullFace","CCW","frontFace","extVertexArrayObject","UNPACK_ALIGNMENT","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_FLIP_Y_WEBGL","colorAttachment","ReadOnly","ReadWrite","disabled","depthFail","blendFunction","Replace","unblended","alphaBlended","backCCW","stencilTest","depthTest","cullFaceSide","MAX_TEXTURE_MAX_ANISOTROPY_EXT","extTextureHalfFloat","setCullFace","setDepthMode","setStencilMode","setColorMode","_sourceLoaded","_paused","reload","_sourceErrored","_source","_tiles","_cache","_unloadTile","_timers","_cacheTimers","_maxTileCacheSize","_coveredTiles","_shouldReloadOnResume","_loadTile","_abortTile","imageManager","getIds","getRenderableIds","_isIdRenderable","hasRenderableParent","findLoadedParent","_reloadTile","_tileLoaded","refreshedUponExpiration","_setTileReloadTimer","_backfillDEM","getTileByID","_retainLoadedChildren","updateCacheSize","handleWrapJump","_prevLng","used","getVisibleUnwrappedCoordinates","coveringTiles","maxOverzooming","maxUnderzooming","_updateRetainedTiles","_addTile","_fadeDuration","_removeTile","releaseSymbolFadeTiles","clearTiles","getCameraQueryGeometry","pointCoordinate","getVisibleCoordinates","posMatrix","workers","workerCount","setFilter","setGeoJSONSourceData","setLayerZoomRange","setLayerProperty","setSprite","setGlyphs","boxCells","circleCells","xCellCount","yCellCount","circleKeys","boxKeys","boxUid","circleUid","labelPlaneMatrix","glCoordMatrix","signedDistanceFromCamera","useVertical","notEnoughRoom","needsFlipping","tileDistance","prevTileDistance","lastSegmentViewportDistance","keysLength","_insertBoxCell","insertCircle","_insertCircleCell","_query","hitTest","_queryCircle","_queryCellCircle","hitTestCircle","_circleAndRectCollide","_circlesCollide","_convertToXCellCoord","_convertToYCellCoord","ignoredGrid","pitchfactor","_pitch","screenRightBoundary","screenBottomBoundary","gridRightBoundary","gridBottomBoundary","placeCollisionBox","projectAndGetPerspectiveRatio","perspectiveRatio","isInsideGrid","offscreen","isOffscreen","approximateTileDistance","placeCollisionCircles","projectAnchor","cameraDistance","projectPoint","queryRenderedSymbols","bucketInstanceId","insertCollisionBox","collisionGroupID","insertCollisionCircles","placed","skipFade","crossSourceCollisions","maxGroupID","collisionGroups","ID","collisionIndex","placements","opacities","variableOffsets","stale","commitTime","retainedQueryData","prevPlacement","placedOrientations","placeLayerTile","placeLayerBucket","attemptAnchorPlacement","radialOffset","prevAnchor","markUsedJustification","markUsedOrientation","commit","lastPlacementChangeTime","updateLayerOpacities","updateBucketOpacities","symbolFadeChange","hasTransitions","stillRecent","setStale","_currentTileIndex","_seenCrossTileIDs","continuePlacement","_currentPlacementIndex","_forceFullPlacement","_showCollisionBoxes","_done","isDone","_inProgressLayer","indexedSymbolInstances","getScaledCoordinates","findMatches","maxCrossTileID","generate","usedCrossTileIDs","addBucket","removeBucketCrossTileIDs","removeStaleBuckets","crossTileIDs","maxBucketInstanceId","bucketsInCurrentPlacement","pruneUnusedLayers","Ae","glyphManager","lineAtlas","crossTileSymbolIndex","_order","sourceCaches","_resetUpdates","_rtlTextPluginCallback","_validateLayer","loadURL","_request","_load","loadJSON","stylesheet","_spriteRequest","_serializeLayers","_updatedSources","_checkLoaded","_changed","_updatedLayers","_removedLayers","_updateWorkerLayers","_reloadSource","_clearSource","_updatedPaintProps","setState","isSourceLoaded","_layerOrderChanged","_updateLayer","moveLayer","getFilter","_flattenAndSortRenderedFeatures","addSourceType","getSourceType","setSourceType","workerSourceURL","_remove","_updateSources","_generateCollisionBoxes","_updatePlacement","pauseablePlacement","_releaseSymbolFadeTiles","getResource","fragmentSource","vertexSource","prelude","backgroundPattern","clippingMask","heatmapTexture","fillOutline","fillOutlinePattern","fillPattern","fillExtrusion","fillExtrusionPattern","hillshadePrepare","lineGradient","linePattern","lineSDF","symbolIcon","symbolSDF","boundProgram","boundLayoutVertexBuffer","boundPaintVertexBuffers","boundIndexBuffer","boundVertexOffset","boundDynamicVertexBuffer","boundDynamicVertexBuffer2","freshBind","currentNumAttributes","fixedUniforms","binderUniforms","tileZoom","u_image","u_texsize","u_scale","u_fade","u_pixel_coord_upper","u_pixel_coord_lower","LINE_STRIP","u_matrix","u_lightpos","u_lightintensity","u_lightcolor","u_vertical_gradient","u_opacity","u_height_factor","u_world","pixelsToGLUnits","u_camera_to_center_distance","u_scale_with_map","translatePosMatrix","u_pitch_with_map","u_device_pixel_ratio","u_extrude_scale","u_pixels_to_tile_units","u_overscale_factor","u_color","u_intensity","u_ratio","u_units_to_pixels","u_patternscale_a","u_patternscale_b","u_sdfgamma","u_tex_y_a","u_tex_y_b","u_mix","u_tl_parent","u_scale_parent","u_buffer_scale","u_fade_t","u_image0","u_image1","u_brightness_low","u_brightness_high","u_saturation_factor","u_contrast_factor","u_spin_weights","u_is_size_zoom_constant","u_is_size_feature_constant","u_size_t","u_size","u_pitch","u_rotate_symbol","u_aspect_ratio","u_fade_change","u_label_plane_matrix","u_coord_matrix","u_is_text","u_texture","u_gamma_scale","u_is_halo","u_pattern_tl_a","u_pattern_br_a","u_pattern_tl_b","u_pattern_br_b","u_pattern_size_a","u_pattern_size_b","u_scale_a","u_scale_b","u_tile_units_to_pixels","u_color_ramp","u_latrange","u_light","u_shadow","u_highlight","u_accent","u_dimension","u_zoom","u_maxzoom","colorModeForRenderPass","depthModeForSublayer","rotating","buffers","uniformValues","atlasInterpolation","isSDF","hasHalo","stencilModeForClipping","moving","rasterBoundsBuffer","quadTriangleIndexBuffer","rasterBoundsSegments","TEXTURE1","coveringZoomLevel","debugBuffer","tileBorderIndexBuffer","debugSegments","renderPass","programConfiguration","HALF_FLOAT_OES","viewportBuffer","viewportSegments","opaquePassEnabledForLayer","depthRangeFor3D","stencilModeFor3D","isPatternMissing","tileExtentBuffer","tileExtentSegments","setCustomLayerDefaults","customLayerMatrix","setBaseState","_tileTextures","setup","numSublayers","depthEpsilon","depthRboNeedsClear","emptyProgramConfiguration","depthRbo","stencilClearMode","nextStencilID","currentStencilSource","_renderTileClippingMasks","_tileClippingMaskIDs","NOTEQUAL","EQUAL","_showOverdrawInspector","CONSTANT_COLOR","currentLayer","opaquePassCutoff","renderLayer","showOverdrawInspector","showTileBoundaries","setupOffscreenDepthRenderbuffer","maxValidLatitude","_renderWorldCopies","_minZoom","_maxZoom","setMaxBounds","_center","_fov","_unmodified","_posMatrixCache","_alignedPosMatrixCache","renderWorldCopies","worldSize","fov","unmodified","_calcMatrices","rotationMatrix","_zoom","zoomFraction","_constrain","setLocationAtPoint","locationCoordinate","coordinateLocation","locationPoint","coordinatePoint","pointLocation","pixelMatrixInverse","pixelMatrix","getMaxBounds","lngRange","alignedProjMatrix","projMatrix","mercatorMatrix","_constraining","getCameraPoint","_updateHash","_updateHashUnthrottled","addTo","_onHashChange","getHashString","jumpTo","history","replaceState","getCanvasContainer","_defaultPrevented","defaultPrevented","lngLats","_delta","_defaultZoomRate","_wheelZoomRate","setZoomRate","setWheelZoomRate","isEnabled","_enabled","isZooming","_zooming","_aroundCenter","around","onWheel","WheelEvent","DOM_DELTA_LINE","_lastWheelEventTime","_timeout","_onTimeout","_lastWheelEvent","_start","_frameId","_cancelRenderFrame","_finishTimeout","_around","_aroundPoint","_requestRenderFrame","_onScrollFrame","_targetZoom","_startZoom","_easing","_smoothOutEasing","_prevEase","getContainer","_clickTolerance","clickTolerance","onMouseDown","_onMouseMove","_onKeyDown","_onMouseUp","_startPos","_lastPos","_fireEvent","_finish","fitScreenCoordinates","_button","_bearingSnap","bearingSnap","_pitchWithRotate","pitchWithRotate","_unbind","_deactivate","_startTime","_eventButton","_onBlur","_inertia","_prevPos","_lastMoveEvent","_onDragFrame","_drainInertiaBuffer","_normalizeBearing","_inertialRotate","resetNorth","noMoveStart","rotateTo","_onMove","onTouchStart","_onTouchEnd","_mouseDownPos","_inertialPan","panBy","delayEndEvents","easeTo","_tapped","_tappedPoint","_resetTapped","onDblClick","_onZoomEnd","disableRotation","_rotationDisabled","enableRotation","_startVec","_startAround","_gestureIntent","_onEnd","_getTouchEventData","_lastTouchEvent","_onTouchFrame","_startScale","_startBearing","snapToNorth","dragRotate","keyboard","touchZoomRotate","_moving","panTo","zoomIn","zoomOut","resetNorthPitch","cameraForBounds","_cameraForBoxAndBearing","fitBounds","_fitInternal","flyTo","prefersReducedMotion","_normalizeCenter","_rotating","_pitching","_prepareEase","_easeEndTimeoutID","_ease","_fireMoveEvents","_afterEase","speed","screenSpeed","maxDuration","isEasing","_easeFrameId","_onEaseFrame","_onEaseEnd","_easeStart","_easeOptions","_renderFrameCallback","getDefaultPosition","_innerContainer","_updateAttributions","_updateEditLink","_updateData","_updateCompact","_editLink","styleOwner","styleId","_hash","rel","customAttribution","owner","_attribHTML","_updateLogo","_logoRequired","mapbox_logo","_queue","_cleared","_currentlyRunning","run","trackResize","refreshExpiredTiles","maxTileCacheSize","_interactive","_failIfMajorPerformanceCaveat","_preserveDrawingBuffer","_antialias","_trackResize","_crossSourceCollisions","_crossFadingFactor","_renderTaskQueue","_controls","_mapId","maxBounds","_setupContainer","_setupPainter","_onWindowOnline","_onWindowResize","fitBoundsOptions","_localIdeographFontFamily","logoPosition","_controlPositions","removeControl","_containerDimensions","_resizeCanvas","setMinZoom","getMinZoom","setMaxZoom","getRenderWorldCopies","setRenderWorldCopies","getMaxZoom","isMoving","isRotating","delegates","mouseout","_delegatedListeners","_diffStyle","_updateStyle","_updateDiff","isStyleLoaded","areTilesLoaded","hasImage","loadImage","_canvasContainer","_detectMissingCSS","_missingCSSCanary","_contextLost","_contextRestored","_controlContainer","_frame","_styleDirty","_sourcesDirty","_render","_placementDirty","_repaint","loseContext","_showTileBoundaries","_vertices","_setCacheLimits","showCompass","showZoom","visualizePitch","_zoomInButton","_createButton","_zoomOutButton","_compass","_compassArrow","_updateZoomButtons","_rotateCompassArrow","_handler","_anchor","_draggable","draggable","_element","_defaultMarker","_popup","setDraggable","_onMapClick","_addDragHandler","_onUp","getLngLat","_lngLat","setLngLat","getElement","setPopup","togglePopup","getPopup","getOffset","setOffset","_positionDelta","isDraggable","positionOptions","enableHighAccuracy","maximumAge","trackUserLocation","showUserLocation","_setupUI","permissions","geolocation","_geolocationWatchID","clearWatch","_userLocationDotMarker","_onSuccess","_lastKnownPosition","_watchState","_geolocateButton","_updateMarker","_updateCamera","_dotElement","longitude","latitude","accuracy","geolocateSource","_onError","_clearWatch","_timeoutId","_setup","watchPosition","getCurrentPosition","setUnit","_fullscreen","_fullscreenchange","_className","_checkFullscreenSupport","_changeIcon","fullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","webkitFullscreenEnabled","_fullscreenButton","_updateTitle","_onClickFullscreen","_isFullscreen","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","exitFullscreen","mozCancelFullScreen","msExitFullscreen","webkitCancelFullScreen","requestFullscreen","mozRequestFullScreen","msRequestFullscreen","webkitRequestFullscreen","closeButton","closeOnClick","_onClickClose","_trackPointer","_content","trackPointer","setText","setDOMContent","setHTML","createDocumentFragment","getMaxWidth","setMaxWidth","_createContent","_closeButton","_tip","NavigationControl","GeolocateControl","ScaleControl","FullscreenControl","Popup","Marker","clearStorage","objIsPrototypeOf","isPrototypeOf","nullDesc","isNullBase","nullPolyfill","tmpObj1","tmpObj2","not_string","not_bool","not_type","not_primitive","numeric_arg","not_json","modulo","key_access","index_access","sprintf_format","sprintf_parse","vsprintf","parse_tree","pad_character","pad_length","is_positive","tree_length","param_no","pad_char","sprintf_cache","_fmt","arg_names","SyntaxError","field_list","replacement_field","field_match","processGrid","filledX","filledY","filledZ","firstX","firstY","firstZ","lastZ","zMax","zMin","getArray","getVals","getDir","arrK","arrJ","arrI","nk","arbitrary","_j","_k","dirK","dirJ","dirI","q000","q001","q010","q100","_u","_v","_w","startx","starty","startz","slen","_startsX","_startsY","_startsZ","normMax","normMin","_slen","_xbnds","_ybnds","_zbnds","createPlot2D","createOptions","updateRefs","stopped","lastButtonState","isMouseOver","liveCanvas","updateSize","pickCanvas","pixelWidth","pixelHeight","xaxisName","yaxisName","xaIn","yaIn","aticks","bticks","updateTraces","mockGraphDiv","domainX","domainY","xr2l","yr2l","xl2r","yl2r","emitPointAction","nextSelection","eventType","lastPickResult","traceUid","screenCoord","hoverFormatter","concentrationscalesDefaults","Out","hoverlabelDefault","nodeIn","nodeOut","coerceNode","defaultNodePalette","linkIn","linkOut","coerceLink","dfltArrangement","defaultLinkColor","baseOpts","hasArrayBase","basej","calculateAxisErrors","_lowerErrorBound","calculateErrors","aggregations","funcmode","aggAttrs","aggregateOneArray","groupings","aggregation","targetNP","getAggregateFunction","conversions","sortCalc","maxCnt","counti","total2","arrayAttrArray","aggregationOut","aggregationsIn","aggregationsOut","coercei","groupArray","newGrouping","locationmodeDflt","FAILS_ON_PRIMITIVES","parseValues","ldata","ccol","vcalendar","bnadd","eyex","eyey","eyez","upx","upy","upz","centerz","defaultColumnOrder","specifiedColumnOrder","truncated","oneStepped","parentObjIn","parentObjOut","previousContOut","omega","cosom","sinom","Heatmap","zData","rowLen","colorOptions","convertColorscale","createHeatmap","barHover","hovermplate","groupClassName","inputAreaClass","railRectClass","railTouchRectClass","gripRectClass","tickRectClass","inputProxyClass","labelsClass","labelGroupClass","currentValueClass","railHeight","railRadius","railWidth","railBorder","railInset","stepInset","gripRadius","gripWidth","gripHeight","gripBorder","gripBorderWidth","gripBorderColor","gripBgColor","labelPadding","minorTickOffset","currentValuePadding","currentValueInset","planarGraphToPolyline","t00","t10","t11","containment","loopVertices","pmc","fadj","makeArrayOfArrays","edgeAdjacency","internalVertices","makeArray","sharedBoundary","nnbhr","scatterMapboxHoverPoints","carpetFont","isRGB","baseHues","saturation","lightness","brightness","MAX_VALUE","YA_RADIANS","YFACTOR","YSHIFTX","YSHIFTY","noHoverEvent","_hover","overlayedSubplots","xaArray","yaArray","supportsCompare","spId","xvalArray","yvalArray","itemnum","curvenum","subploti","closedataPreviousLength","searchData","spikePoints","hLinePoint","vLinePoint","hasOneHorizontalTrace","dbb","pointerX","pointerY","ySpike","newPoints","newPoint","newPointNum","cleanPoint","closestPoints","tmpPoint","closestVPoints","closestVPt","fillSpikePoint","closestHPoints","closestHPt","selectClosestPoint","pointsData","thisSpikeDistance","resultPoint","spikelineOpts","oldspikepoints","_spikepoints","newspikepoints","tmpHPoint","tmpVPoint","spikesChanged","createSpikelines","newhoverdata","rotateLabels","commonLabelOpts","hoverLabels","createHoverText","hoverAvoidOverlaps","axKey","donepositioning","topOverlap","bottomOverlap","sumdp","nummoves","nLabels","pointgroups","constrainGroup","grp","minPt","maxPt","deleteCount","axIsX","posref","g0","g1","alignHoverText","hoverChanged","oldPt","newPt","xvals","yvals","multiHover","hoverItem","container3","outerContainer3","lastBottomY","EXTRA_STRING_REGEX","commonAttr","outerContainerBB","outerTop","showCommonLabel","traceHoverinfo","allHaveZ","commonLabel","lpath","ltext","commonBgColor","commonStroke","contrastColor","commonLabelFont","tbb","topsign","leftsign","lty","ltx","dummy","dummyBB","textClip","color0","numsColor","nameColor","hovertemplateString","tx2","tx2width","tx2height","t2bb","anchorStartOK","anchorEndOK","hty","txTotalWidth","ty0","txwidth","txHalfWidth","overflowR","overflowL","horzSign","alignShift","txx","tx2x","getVal","calcKey","traceKey","xeText","yeText","infomode","showY","showX","hLinePointX","hLinePointY","xBase","xEndSpike","dfltHLineColor","yMode","yThickness","yColor","xAcross0","xAcross1","vLinePointX","vLinePointY","yBase","yEndSpike","dfltVLineColor","xMode","xThickness","xColor","yAcross0","yAcross1","legendDefaults","legendTraceCount","legendReallyHasATrace","defaultOrder","defaultYAnchor","itemsizing","saveLink","canUseSaveLink","objectUrl","msSaveBlob","download","Line2D","createShaders","dashMult","maxPatternLength","precisionThreshold","maxLines","drawMiterLine","miterMode","miterLimit","dashSize","drawRectLine","lineTop","aCoord","bCoord","aCoordFract","bCoordFract","aColor","bColor","prevCoord","nextCoord","dashLength","lastId","bounds$1","boundsW","boundsH","rangeW","rangeH","dashData","l$2","i$7","c$1","d3_collection_src","weightedSource","weightedTarget","src_sankey","maxNodePadding","relaxRightToLeft","relaxLeftToRight","horizontalSource","horizontalTarget","sankeyLinkHorizontal","exprs","setPositionOffset","orientations","violinList","getPolygonizer","alg","createCellPolygonizer","maxCellSize","tables","createMSTable","generateCase","valueToString","_atob","makeReflectTypes","useIndex","handleTernaryDefaults","ternaryLayoutIn","ternaryLayoutOut","letterUpper","cdbar","makePathFn","_a0","_a1","vaBar","barLayer","rp0","rp1","thetag0","thetag1","rg1","thetagMid","colLength","transposeRagged","maxlen","zlen","yTranspose","translationMatrix","xys","createTurntableController","findOrthoPair","normalize3","toward","dot3","TurntableController","rotateM","clamp1","computedRight","computedAngle","computedToward","maxDist","ctheta","stheta","cphi","sphi","zAxis","dphi","droll","noSnap","ushift","vshift","ez","cf","tz","angleState","lastTheta","lastPhi","dataArrays","arraysToFill","dataArray","fillArray1","fillArray2","displaySum","normSum","hasBars","shouldBeGapless","gappedAnyway","usedSubplots","tickShader","Grid","compareTickNum","OFFSET_X","OFFSET_Y","X_AXIS","Y_AXIS","SCR_OFFSET","TICK_SCALE","viewWidth","viewHeight","yTicksOffset","xEnd","xCount","yEnd","yCount","tickScale","gridTicks","localTicks","m44","heatmapStyle","isConstraintType","colorLines","colorFills","firstFill","stylePie","pieCastOption","getGradientDirection","constantItemSizing","boundLineWidth","cst","styleBarLike","barpath","stylePieLike","tMod","minExtend","d0Mod","traceGroup","markerOffsetY","styleSpatial","useGradient","ptsData","styleWaterfalls","styleFunnels","styleBars","styleBoxes","styleFunnelareas","stylePies","styleLines","dMod","showFill","showGradientLine","showGradientFill","markersOrText","anyFill","anyLine","pathStart","this3","showMarkers","boundVal","attrIn","arrayToValFn","valToBound","pickFirst","dEdit","tEdit","ptgroup","styleCandles","styleOHLC","cheaterBasis","arrayMinmax","calcClipPath","avals","bvals","isBicubic","SUPPORTED_TYPES","GLBuffer","updateTypeArray","dataLen","makeScratchTypeArray","ndt","STREAM_DRAW","carpetAttrs","startLineColor","startLineWidth","endLineColor","endLineWidth","ouu2","autoMarginId","sliderOpts","findDimensions","sliderLabels","maxLabelWidth","labelHeight","stepOpts","_dims","inputAreaWidth","outerLength","inputAreaStart","inputAreaLength","availableSpacePerLabel","computedSpacePerLabel","labelStride","currentValueMaxWidth","currentValueHeight","currentValueTotalHeight","currentValueMaxLines","dummyGroup","curValPrefix","drawCurrentValue","curValSize","sliderGroup","valueOverride","curVal","drawGrip","attachGripEvents","drawLabelGroup","labelItems","labelSteps","normalizedValueToPosition","handleInput","normalizedPosition","doTransition","quantizedPosition","quantizedIndex","setActive","doCallback","previousActive","setGripPosition","slider","interaction","_nextMethod","_nextMethodRaf","$gd","getSliderOpts","grip","positionToNormalizedValue","isMajor","_invokingCommand","drawTouchRect","drawRail","computedLength","sliderData","makeSliderData","contOpts","sliders","clearSlider","sliderGroups","gSlider","computeLabelSteps","drawSlider","cdscatterAll","selectMarkers","mnum","tnum","errorBarGroup","ownFillEl3","ownFillDir","thispath","thisrevpath","prevRevpath","prevPolygons","_prevRevpath","_nextFill","pathfn","revpathbase","revpathfn","thisPolygons","revpath","_ownFill","isEnter","lineJoin","clearFill","_prevPolygons","markerFilter","hideFilter","textFilter","showFilter","isInferZero","_needsCull","visFilterWithGaps","visFilter","gapFilter","clipUrl","createFills","traceJoin","fillJoin","inboxFn","_cdi","prevEdges","augEdges","modified","preRound","useColor","dedupPoints","boundPoints","dedupEdges","snapRound","segseg","ratCmp","ratToFloat","ratVec","boundRat","floatPoints","ratPoints","floatBounds","noDupes","compareLex2","compareLex3","edgeBounds","boundEdges","getCrossings","vertBounds","tjunctions","getTJunctions","cutEdges","junctions","crossing","ef","junction","perspectiveMatrix","tmpVec4","pdum3","scale2","decomposeMat4","vec4multMat4","mat3from4","mat4x4","dragOne","splomGrid","makeGridData","fullView","lcolor","lwidth","gridBatches","zScale","lgroupToTraces","lgroups","hasOneNonBlankGroup","slicesShown","lgroupi","addOneItem","legendGroup","uniqueGroup","lgroup","labelj","ltraces","lgroupsLength","JUNK","invertPermutation","dfltAnchor","dfltDomain","dfltPosition","createTable","constructCell","chull","constructVertex","opts1","funnelareacolorway","extendfunnelareacolors","gl3dAxisAttrs","makeCameraVector","boxList","pointList","shownPts","boxdv","dPos0","numTotal","groupFraction","groupGapFraction","pushplus","pushminus","edgeplus","edgeminus","pm","colorbarAttrs","palettes","noScale","onlyIfNumerical","colorscaleDflt","contextHead","autoImpliedEdits","minmaxImpliedEdits","isPlainFunction","normalizeOpts","dscr","equalPts","xtol","ytol","edgeflag","locStr","marchStep","getStartStep","getInterpPx","startLoc","startStep","atEdge","distgroup","cnt2","cnt3","newpt","ptcnt","ptavg","thisdist","edgepathi","edgepathj","closedpath","totaldist","distThresholdFactor","alldists","cropstart","distThreshold","getpt","doublemerged","locx","locy","zxy","handleLayerDefaults","layerIn","layerOut","typeDflt","mustBeRasterLayer","ovv2","d3Sankey","d3SankeyCircular","d3Force","sankeyModel","nodePad","nodeThickness","nodePointNumber","groupingNode","computeLinkConcentrations","flowKey","flows","flowLinks","totalPerLabel","concentration","totalOutflow","concentrationOut","totalInflow","concenrationIn","resolveCollisionsTopToBottom","snapToColumns","colX","orderedNodes","colNumber","guid","nodeLineColor","nodeLineWidth","linkLineColor","linkLineWidth","dragParallel","dragPerpendicular","forceLayouts","interactionState","dragInProgress","linkModel","linkPath","createCircularClosedPathString","y0a","y0b","y1a","y1b","nodeModel","zoneThicknessPad","zoneLengthPad","visibleThickness","visibleWidth","visibleHeight","zoneX","zoneY","zoneWidth","zoneHeight","labelY","originalLayer","sizeAcross","darkBackground","uniqueNodeLabelPathId","updateNodePositions","updateNodeShapes","updateShapes","salientEnough","sankeyTransform","nodeCentering","textGuidePath","sankeyInverseTransform","textFlip","nodeTextColor","nodeTextOffset","attachPointerEvents","eventSet","attachDragHandler","dragBehavior","_dragCover","saveCurrentDragPosition","forceKey","attachForce","switchToForceFormat","originalX","forceSimulation","forceCollide","snappingForce","_snappingForce","maxVelocity","lastDraggedX","lastDraggedY","startForce","faster","switchToSankeyFormat","sameLayer","persistFinalNodePositions","nodeX","nodeY","firstRender","dragcover","styledData","dragboxClassName","persistOriginalPlace","distinctLayerPositions","originalY","originalLayerIndex","objectAssign","hasOwn","pSlice","functionsHaveNames","pToString","arrbuf","truncate","something","rawname","expected","stackStartFunction","AssertionError","_deepEqual","memos","actualIndex","objEquiv","actualVisitedObjects","aIsArgs","bIsArgs","expectedException","_throws","shouldThrow","_tryBlock","userProvidedMessage","isUnexpectedException","generatedMessage","getMessage","captureStackTrace","fn_name","next_line","notEqual","deepStrictEqual","notDeepEqual","notDeepStrictEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","srcPoints","sublevels","diam","levelItems","levelGroups","sublevel","lolo","lohi","hilo","hihi","x$1","y$1","nextOffset","nminX","nminY","nmaxX","nmaxY","maxLevel","off0","off1","off2","off3","levelGroupStart","levelGroupEnd","startOffset","endOffset","contourPlot","axisAlignedLine","getUnitVector","normalizeVector","vectorTan","contourcarpetLayer","carpetcd","mapPathinfo","pedgepath","ppath","ab2p","istop","pathto","startpt","pathData","constrainToCarpet","levelData","pathABData","abPt","pathVector","edgeVector","startVector","endVector","minStart","maxEnd","isAllBlank","mat4mult","getSimpleString","ScatterPlotPickResult","fixOpacity","PointCloud","orthoShader","projectShader","pointBuffer","glyphBuffer","pickPerspectiveShader","pickOrthoShader","pickProjectShader","lineVertexCount","projectHasAlpha","_selectResult","useOrtho","axesProject","highlightId","createPointCloud","pickBase","VIEW_SHAPE","U_VEC","V_VEC","MU_VEC","MV_VEC","SCRATCH_MATRIX","SCRATCH_VEC","CLIP_BOUNDS","augment","hg","af","setComponent","drawProject","getClipBounds","screenSize","pickGroup","pmodel","mdu","mdv","sv","fragClipBounds","CLIP_GROUP","drawFull","pshader","forceDraw","get_glyphData","alignmentX","alignmentY","angles","lineColors","pickCounter","triVertexCount","count_loop","glyphMesh","glyphData","glyphLines","glyphBounds","positionArray","glyphArray","idArray","triOffset","isColorArray","isLineColorArray","glyphVisible","scripts","getElementsByTagName","handleOpacity","handleOverlap","parcoordsLineLayers","parcoordsLineLayer","filterBarPattern","str2bn","makeRational","selectorOut","selectorIn","posDflt","getPosDflt","anchoredList","fontAttr","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","nativeMax","nativeMin","isObjectLike","isBinary","lastArgs","lastThis","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","Ax","Ay","Bx","By","d_py_ly","d_rx_lx","d_px_lx","d_ry_ly","pointsSameX","pointsSameY","pt3","axb","searchString","sqrDist","sqrLen","boxDeltaPos","boxDeltaNeg","dVal","isViolin","boxDelta","posAcceptance","xPx","yPx","ijClosest","tangent","tanIsoIdx","tanIsoPar","refidx","toIdx","isoIdx","vstart","vend","dirfloor","dirceil","dirmin","dirmax","idx0","idx1","findInterp","pixArray","maxBin","pix0","pix1","bin0","bin1","findInterpFromCenters","centerPixArray","putColor","pxIndex","heatmapLayer","xrev","yrev","canvasW","canvasH","xbi","ybi","pixcount","gcount","bcount","yinterp","xForPx","yForPx","xPixArray","yPixArray","xinterpArray","findInterpX","findInterpY","interpColor","setColor","pxArray","dlen","xGap","yGap","xGapLeft","yGapTop","avgColor","pixsize","xinterp","z00","z01","z10","z11","setPublicPath_i","currentScript","_defineProperty","lib","lib_default","components_events","completeName","$emit","components_methods","functionName","camelize","cachedFn","enumerableOnly","_objectSpread","directives","normalizeComponent","scriptExports","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$options","shadowRoot","_injectStyles","originalRender","renderWithStyleInjection","beforeCreate","inheritAttrs","scheduled","innerLayout","mounted","watch","deep","old","_layout","computed","$attrs","beforeDestroy","onResize","_this4","$nextTick","allOptions","getPrintOptions","_h","$createElement","_self","_c","rawName","getParentId","childId","getInsideTextFontKey","keyStr","getOutsideTextFontKey","isOutsideText","tube2mesh","Streamtube","getDfltStartingPositions","getBoundPads","tubeOpts","meshx","meshy","meshz","xbnds","ybnds","zbnds","xpads","ypads","zpads","fromDataScale","uvx","createStreamtubeTrace","streamtube","arrayModule","coerceModule","datesModule","searchModule","statsModule","matrixModule","anglesModule","anchorUtils","geom2dModule","extendModule","loggersModule","regexModule","throttleModule","throttleDone","domModule","makePtIndex2PtNumber","ptIndex2ptNumber","attrList","part1","part2","_recursion","rem","OptionControl","optname","optObj","optionList","smooth","FWHM","alen","alen2","wlen","finalStep","continueAsync","fni","promiseError","stripTrailingSlash","hasAny","hasAll","hasFn","traceVal","ptIndex","cdIndex","transformOpts","obj1","obj2","titleCase","containsAny","IS_IE9_OR_BELOW_REGEX","IS_SAFARI_REGEX","enterFn","objectFromPath","tmpObj","dottedPropertyRegex","indexedPropertyRegex","trailingPath","thousandsRe","decimalSep","thouSep","TEMPLATE_STRING_REGEX","getterCache","hovertemplateWarnings","templateFormatString","texttemplateWarnings","TEMPLATE_STRING_FORMAT_SEPARATOR","numA","numB","charA","charB","isNumA","isNumB","randSeed","lastVal","baseFont","needsCull","privates","fallback","forwardFrag","pickFrag","EthiopianCalendar","LOG2E","menuOpts","gButton","buttonOpts","gHeader","buttonIndex","isSilentUpdate","drawButtons","drawHeader","headerOpts","posOpts","positionOverrides","headerWidth","setItemPosition","styleOnMouseOver","styleOnMouseOut","buttonData","isFolded","openHeight","openWidth","scrollBoxPosition","menu","styleButtons","drawScrollBox","heights","widths","hideScrollBox","hasHBar","hasVBar","itemOpts","drawItemRect","drawItemText","height1","totalWidth","fakeButtons","paddedWidth","paddedHeight","overrideOpts","spanOffset","newMenuIndexAttr","menuData","clearAutoMargin","menus","headerGroups","scrollBoxId","_gButton","getCanvasContext","CSSRuleList","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","convertToPx","convertToDate","extractedCoordinates","relevantParamIdx","dataToPixel","pixelToData","strokeWidthIsOdd","posValAsInt","barycentricCircumcenter","barycenetric","feat","coordinates_1","featureCollection","multiLineString","multiPoint","multiPolygon","radiansToLength","factors","lengthToRadians","radiansToDegrees","earthRadius","centimeters","centimetres","feet","inches","kilometers","kilometres","meters","metres","miles","millimeters","millimetres","nauticalmiles","yards","unitsFactors","areaFactors","acres","lineStrings","geometryCollection","lengthToDegrees","bearingToAzimuth","degreesToRadians","convertLength","originalUnit","finalUnit","convertArea","startFactor","finalFactor","validateBBox","validateId","radians2degrees","degrees2radians","distanceToDegrees","distanceToRadians","radiansToDistance","bearingToAngle","convertDistance","imageDataAbove","imageDataSubplot","imageDataBelow","setImage","thisImage","_imgSrc","imagePromise","errorHandler","imagesBelow","imagesAbove","imagesOnSubplot","esModule","mixins","jsonData","csvTitle","csvLabels","csvData","destroyed","$_createCsvLabelsConf","$_createCsvLabels","$_createCsvContent","$_downloadCsv","handleError","Arguments","NEED","fastKey","getWeak","onFreeze","Alea","seed","mash","Mash","impl","xg","prng","double","quick","alea","__webpack_amd_options__","globalScope","Decimal","inexact","quadrant","EXP_LIMIT","NUMERALS","DEFAULTS","rounding","toExpNeg","toExpPos","minE","maxE","external","invalidArgument","decimalError","mathfloor","mathpow","isHex","isOctal","isDecimal","BASE","LN10_PRECISION","PI_PRECISION","digitsToString","indexOfLastWord","getZeroString","checkInt32","checkRoundingDigits","repeating","convertBase","baseIn","baseOut","arrL","strL","absoluteValue","finalise","clampedTo","comparedTo","xdL","ydL","tinyPow","taylorSeries","cos2x","toLessThanHalfPi","cubeRoot","cbrt","rep","t3plusx","decimalPlaces","dividedBy","dividedToIntegerBy","divToInt","greaterThanOrEqualTo","hyperbolicCosine","cosh2_x","d8","hyperbolicSine","sinh2_x","d5","d16","d20","hyperbolicTangent","inverseCosine","halfPi","getPi","inverseHyperbolicCosine","acosh","inverseHyperbolicSine","asinh","inverseHyperbolicTangent","atanh","wpr","xsd","inverseSine","inverseTangent","isInteger","isNegative","isPositive","isPos","lessThanOrEqualTo","logarithm","isBase10","naturalLogarithm","getLn10","xLTy","getBase10Exponent","naturalExponential","negated","getPrecision","sine","sin2_x","squareRoot","rL","toBinary","toStringBinary","toDecimalPlaces","toDP","finiteToString","toFraction","maxD","toHexadecimal","toNearest","toOctal","toPower","intPow","toSignificantDigits","toSD","trunc","multiplyInteger","aL","bL","logBase","more","prodL","qd","remL","rem0","xL","yd0","yL","isTruncated","xdi","isExp","nonFiniteToString","maxOrMin","ltgt","guard","numerator","parseDecimal","parseOther","isFloat","isHyperbolic","randomBytes","isDecimalInstance","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","xor128","xorwow","xorshift7","xor4096","tychei","notOk","undef","_types","anyType","_ignore","_conversions","typed","findTypeByName","findInArray","findTypeIndex","findTypeName","stringifyParams","getTypeName","restParam","parseParam","notEmpty","notIgnore","matchingConversions","filterConversions","conversion","exactTypes","typeIndex","conversionIndex","convertibleTypes","hasRestParam","hasConversions","compileTest","test0","tests","compileTests","varIndex","lastTest","testArgs","testRestParam","getParamAtIndex","signature","getExpectedTypeNames","excludeConversions","isExactType","mergeExpectedParams","signatures","flatMap","matchingSignatures","nextMatchingDefs","actualType","lengths","expectedLength","getLowestTypeIndex","getLowestConversionIndex","compareParams","param1","param2","compareSignatures","signature1","signature2","compileArgConversion","conversion0","conversion1","convertArg","splitParams","ignoreConversionTypes","_splitParams","typeGroups","filteredTypes","typeGroup","createTypedFunction","signaturesMap","parsedSignatures","parseSignature","parsedParam","isInvalidParam","notNull","parsedSignature","conflictingSignature","hasConflictingParams","hasOverlap","len1","restParam1","restParam2","ok0","ok1","ok2","ok3","ok4","ok5","allOk","test00","test10","test20","test30","test40","test50","test01","test11","test21","test31","test41","test51","compileArgsPreprocessing","fnConvert","compiledConversions","convertArgs","fnPreprocess","preprocessRestParams","fn0","fn1","fn2","fn3","fn4","fn5","len5","iStart","iEnd","generic","createSignaturesMap","array1","array2","extractSignatures","validateUnique","_signature","_fn","addType","beforeObjectTest","addConversion","XorGen","strseed","math","nodecrypto","startdenom","significance","seedrandom","shortseed","mixkey","typ","entropy","tostring","autoseed","msCrypto","plugins","arc4","ARC4","is_math_call","keylen","smear","stringseed","_extends","errorConstructor","IntermediateInheritor","DivisionByZero","Fraction","InvalidParameter","throwInvalidParam","factorize","places","rec","excludeWhole","whole","dec","cycLen","cycleLen","cycOff","cycleStart","rem1","rem2","modpow","naturalSort","oFxNcL","oFyNcL","sre","dre","hre","ore","insensitive","xN","yN","xD","yD","cLoc","numS","parser_exit","logHypot","Complex","loh","expm1","cosm1","noIM","oneMinus","onePlus","dialog","parentDir","files","$store","list_dir","api","listDirectory","$slots","openDelay","closeDelay","openTimeout","closeTimeout","clearDelay","runDelay","activator","validator","internalActivator","openOnHover","openOnFocus","activatorElement","activatorNode","slotType","addActivatorEvents","genActivator","genActivatorAttributes","genActivatorListeners","getActivator","getContentSlot","getValueProxy","removeActivatorEvents","resetActivator","attach","validateAttachTarget","contentClass","hasDetached","hasContent","beforeMount","deactivated","$refs","getScopeIdAttrs","initDetach","_isDestroyed","returnValue","originalValue","stackElement","stackExclude","stackMinZIndex","activeZIndex","getMaxZIndex","exclude","zis","activeElements","ClickOutside","dark","fullscreen","noClickAnimation","persistent","retainFocus","scrollable","activatedBy","animateTimeout","previousActiveElement","contentClasses","hasActivator","$scopedSlots","animateClick","closeConditional","hideScroll","onClickOutside","onKeydown","getOpenDependents","onFocusin","getOpenDependentElements","genContent","showLazyContent","tabindex","genTransition","appear","genInnerContent","include","transformOrigin","staticClass","_vm","scopedSlots","$event","$$v","staticStyle","file","domProps","VBtn","VCard","VCardActions","VCardText","VCardTitle","VDialog","VForm","VIcon","VList","VListItem","VListItemAction","VListItemAvatar","VListItemContent","VListItemTitle","VSpacer","VTextField","CumulativeESSdata","actions","burnIn","dataWithBurnIn","cumESSdata","stepSize","nSmaples","maxLag","valuesMean","gammaStat","lag","del1","del2","ACT","ESS","$worker","$vuetify","theme","colours","parameter","parameterCumulativeESSData","activeParams","fileName","removeESSdata","addESSdata","updateCumulativeESS","onTraceChange","cumulativeESSData","HistogramData","numberOfActivePrams","traceFound","JointData","ParallelData","yaxis2","xaxis2","traceData","ViolinData","ESSChip","dataChanged","updateESS","burnInChanged","activeClass","chipGroup","closeIcon","closeLabel","filterIcon","outlined","pill","proxyClass","groupClasses","hasClose","isClickable","genFilter","genClose","lang","setBackgroundColor","setTextColor","allowOverflow","nudgeBottom","nudgeLeft","nudgeRight","nudgeTop","nudgeWidth","offsetOverflow","openOnClick","positionX","positionY","absoluteX","absoluteY","activatorFixed","relativeYOffset","hasJustFocused","hasWindow","inputActivator","isContentActive","pageWidth","pageYOffset","stackClass","computedLeft","activatorLeft","computedTop","absoluteYOffset","absolutePosition","activate","calcLeft","calcXOverflow","calcTop","calcYOverflow","xOverflow","documentHeight","toTop","contentHeight","isOverflowing","callActivate","callDeactivate","checkForPageYOffset","checkActivatorFixed","deactivate","getInnerHeight","getOffsetLeft","getOffsetTop","getRoundedBoundedClientRect","sneakPeek","startTransition","updateDimensions","offsetRect","calculatedMinWidth","closeDependents","calculatedLeft","unknown","calculatedTop","activatorTop","computedTransition","VChip","VTooltip","DEFAULT_CONFIG","predictable","randomSeed","isBigNumber","isComplex","isFraction","isUnit","isMatrix","isCollection","isDenseMatrix","isSparseMatrix","isRange","isResultSet","isHelp","isAccessorNode","isArrayNode","isAssignmentNode","isBlockNode","isConditionalNode","isConstantNode","isFunctionAssignmentNode","isFunctionNode","isIndexNode","isObjectNode","isOperatorNode","isParenthesisNode","isRangeNode","isSymbolNode","isChain","typeOf","MATRIX_OPTIONS","NUMBER_OPTIONS","log1p","formatNumberToBase","16","notation","toEngineering","roundDigits","splitNumber","coefficients","newExp","missingZeros","expDiff","decimalIdx","decimals","decimalVal","lowerExp","upperExp","splitValue","DBL_EPSILON","nearlyEqual","formatBigNumberToBase","big2","BigNumberCtor","valueWithoutExp","valueStr","looksLikeFraction","syntax","DimensionError","relation","IndexError","dimNext","validateIndex","newLen","reshape","flatArray","currentLength","newLength","processSizesWildcard","_reshape","tmpArray2","tmpArray","sizeIndex","processedSizes","wildCardIndex","unsqueeze","_unsqueeze","getArrayDataType","dependencies","assertAndCreate","deps","pickShallow","stripOptionalNotation","assertDependencies","dependency","isOptionalDependency","missingDependencies","isFactory","isDimensionError","isIndexError","createComplexClass","mathjs","toPolar","strRe","strIm","fromPolar","isClass","lruQueue","oldIndex","hit","nuIndex","hasher","POSITIVE_INFINITY","memoize","lru","BigNumber","createBigNumberPi","createBigNumberClass","createMatrixClass","Matrix","storage","datatype","skipZeros","numberFactory","createFractionClass","createDenseMatrixClass","DenseMatrix","_datatype","preprocess","_get","isScalar","_getSubmatrix","_set","submatrix","sSize","iSize","_fit","_setSubmatrix","subIndex","_resize","createDenseMatrix","getDataType","indexI","sizeArray","recurse","_loop","kSuper","kSub","swapRows","_swapRows","getSafeProperty","isSafeProperty","isSafeMethod","setSafeProperty","safeNativeProperties","safeNativeMethods","toLocaleString","wrappedObject","hasSafeProperty","isMap","_createTyped2","_createTyped","createTyped","throwNoBignumber","throwNoComplex","throwNoFraction","throwNoMatrix","containsCollections","deepForEach","deepMap","_reduce","tran","_switch","createIsInteger","ArrayMatrix","createIsNumeric","numberBigNumberFractionBoolean","ComplexUnitStringNullUndefinedNode","isNegativeNumber","isPositiveNumber","isZeroNumber","isNaNNumber","createIsNaN","Unit","createEqualScalar","booleanBoolean","numberNumber","BigNumberBigNumber","FractionFraction","ComplexComplex","complexEquals","UnitUnit","equalBase","createNumber","nonDecimalNumberParts","getNonDecimalNumberParts","nonDecimalWithRadixMatch","radix","integerPart","fractionalPart","makeNumberFromNonDecimalParts","wordSizeSuffixMatch","null","_null","UnitStringUnit","valuelessUnit","absNumber","addNumber","multiplyNumber","unaryMinusNumber","unaryPlusNumber","cbrtNumber","ceilNumber","cubeNumber","expNumber","expm1Number","gcdNumber","lcmNumber","logNumber","log10Number","log2Number","modNumber","nthRootNumber","signNumber","squareNumber","xgcdNumber","lastx","lasty","powNumber","roundNumber","createApply","ArrayMatrixNumberBigNumberFunction","_apply","createMultiplyScalar","numberFractionBigNumberComplexUnit","_normalize","UnitNumberFractionBigNumberComplex","bitAndNumber","bitNotNumber","bitOrNumber","bitXorNumber","leftShiftNumber","rightArithShiftNumber","rightLogShiftNumber","notNumber","orNumber","xorNumber","andNumber","createFormat","numberBigNumber","numberBigNumberNumber","acoshNumber","acotNumber","acothNumber","acscNumber","acschNumber","xInv","asecNumber","asechNumber","asinhNumber","atanhNumber","cotNumber","cothNumber","cscNumber","cschNumber","secNumber","sechNumber","sinhNumber","combinationsNumber","nMinusk","createFraction","createUnaryMinus","createAddScalar","fixPrefix","createSqrt","_sqrtNumber","createConj","createSparseMatrixClass","equalScalar","SparseMatrix","_createFromMatrix","_ptr","_createFromArray","_getsubset","kk","mvalues","mindex","mptr","pv","_setsubset","_getValueIndex","_insert","ins","_toArray","createSparseMatrix","colIndex","minRow","maxRow","minColumn","_k2","_i7","_forEachRow","_create","stringString","createAbs","createAlgorithm01","algorithm1","denseMatrix","sparseMatrix","asize","adt","bvalues","bindex","bptr","bsize","bdt","createAlgorithm04","algorithm04","avalues","aindex","aptr","cvalues","cindex","cptr","createAlgorithm10","algorithm10","createAlgorithm13","algorithm13","csize","_iterate","createAlgorithm14","algorithm14","createAlgorithm03","algorithm03","createAlgorithm05","algorithm05","wai","wbi","createAlgorithm11","algorithm11","createAlgorithm12","algorithm12","createAlgorithm07","algorithm07","_scatter","createIdentity","_identity","numberBigNumberString","numberBigNumberNumberBigNumber","numberBigNumberNumberBigNumberString","_identityVector","ArrayString","MatrixString","Big","noBignumber","noFraction","noMatrix","createSize","numberComplexBigNumberUnitBooleanNull","createCompare","SparseMatrixSparseMatrix","SparseMatrixDenseMatrix","DenseMatrixSparseMatrix","DenseMatrixDenseMatrix","ArrayArray","MatrixArray","SparseMatrixAny","DenseMatrixAny","anySparseMatrix","anyDenseMatrix","ArrayAny","anyArray","createSmaller","createLarger","createFibonacciHeapClass","anyAny","smaller","larger","oneOverLogPhi","FibonacciHeap","_minimum","_cut","degree","isFibonacciHeap","extractMinimum","numberOfChildren","tempRight","_findMinimumNode","numRoots","_linkNodes","_decreaseKey","_cascadingCut","createAdd","addScalar","algorithm01","anyAnyAny","createDot","multiplyScalar","conj","_denseDot","_validateDim","aIsColumn","bIsColumn","_c2","_c3","_sparseDot","xindex","xvalues","yindex","yvalues","createMultiply","_validateMatrixDimensions","size1","size2","_multiplyVectorMatrix","_multiplyVectorDenseMatrix","alength","bcolumns","mf","_multiplyMatrixVector","_multiplyDenseMatrixVector","arows","acolumns","_multiplySparseMatrixVector","brows","vbi","ka0","ka1","_multiplyMatrixMatrix","_multiplyDenseMatrixDenseMatrix","_multiplyDenseMatrixSparseMatrix","kb0","kb1","cij","_multiplySparseMatrixDenseMatrix","vbij","_multiplySparseMatrixSparseMatrix","MatrixMatrix","xsize","ysize","_multiplyVectorVector","ArgumentsError","isArgumentsError","createPartitionSelect","asc","ArrayMatrixNumber","_partitionSelect","ArrayMatrixNumberString","quickSelect","createQuantileSeq","partitionSelect","_quantileSeq","_fracPart","_left","_right","_integerPart","fracPart","integerPartNumber","numberBigNumberUnit","quantileSeq","probOrN","probArr","dataArr","nPlusOne","intN","_nPlusOne","currProb","gammaNumber","twoN","threeN","fourN","fiveN","gammaP","gammaG","createBignumber","twoPowSize","twoPowSizeSubOne","createNumeric","_number","bignumber","validInputTypes","validOutputTypes","numeric","outputType","improveErrorMessage","fnName","details","createSubtract","unaryMinus","checkEqualDimensions","createDivideScalar","UnitNumberFractionBigNumber","numberFractionBigNumberUnit","createSpaClass","Spa","_heap","isSpa","nodei","nodej","createLup","divideScalar","_denseLUP","_sparseLUP","lsize","udata","usize","pabsv","vjj","absv","lvalues","lindex","lptr","uvalues","uindex","uptr","pvCo","pvOc","spa","vkj","vik","swapIndeces","createDet","lup","_det","decomp","evenCycles","createInv","_inv","ABig","rBig","Ac","Bc","createDivide","ArrayMatrixArrayMatrix","anyArrayMatrix","createMean","_mean","_nmeanDim","createVariance","_var","ArrayMatrixNumberBigNumber","_varDim","normalization","createMedian","_median","middle2","numberBigNumberComplexUnit","numberBigNumberComplexUnitNumberBigNumberComplexUnit","createStd","_std","std","breakpoint","traceID","setActiveParams","paramMean","indeterminate","indeterminateIcon","offIcon","onIcon","inputIndeterminate","VInput","computedIcon","validationState","isDisabled","hasError","genCheckbox","checkboxAttrs","dense","genInput","genRipple","genDefaultSlot","VCheckbox","VListItemGroup","VListItemIcon","statistics","calculateStats","nSamples","stderr","HPD","HPDInterval","proportion","sortedValues","hpdIndex","minRange","stdSamples","VueJsonToCsv","sortBy","sortDesc","customSort","mustSort","multiSort","itemsPerPage","groupBy","groupDesc","customGroup","disableSort","disablePagination","disableFiltering","customFilter","serverItemsLength","internalOptions","sortDiff","groupDiff","itemsLength","filteredItems","pageCount","pageStart","pageStop","pagination","computedItems","sortItems","paginateItems","groupedItems","groupItems","scopedProps","sortArray","updateOptions","originalItemsLength","computedOptions","oldBy","oldDesc","byIndex","Resize","provide","isInMenu","closeOnContentClick","disableKeys","calculatedTopAuto","defaultOffset","listIndex","resizeTimeout","selectedIndex","activeTile","menuWidth","calculatedMaxHeight","calculatedMaxWidth","hasClickableTiles","calcScrollPosition","maxScrollTop","calcLeftAuto","calcTopAuto","tileDistanceFromMenuTop","firstTileOffsetTop","changeListIndex","genDirectives","menuable__content__active","onKeyDown","$listeners","getTiles","mouseEnterHandler","mouseLeaveHandler","nextTile","prevTile","lastTile","firstTile","ripple","mergeData","hideSelected","itemDisabled","itemText","itemValue","noDataText","noFilter","searchInput","selectedItems","parsedItems","tileActiveClass","staticNoDataTile","genTileContent","genAction","genDivider","VDivider","genFilteredText","getMaskedCharacters","genHighlight","genHeader","VSubheader","genTile","hasItem","getDisabled","inputValue","scopedSlot","needsTile","slot","defaultMenuProps","appendIcon","cacheItems","chips","clearable","deletableChips","disableLookup","eager","itemColor","menuProps","multiple","openOnClear","returnObject","smallChips","cachedItems","menuIsBooted","isMenuActive","lastItem","lazyValue","keyboardLookupPrefix","keyboardLookupLastTime","allItems","filterDuplicates","computedOwns","computedCounterValue","counterValue","isFocused","dynamicHeight","hasChips","hasSlot","isDirty","listData","selectItem","staticList","VSelectList","virtualizedItems","$_menuProps","menuCanShow","normalisedProps","internalValue","activateMenu","clearableCallback","getContent","findExistingIndex","genChipSelection","isInteractive","small","genCommaSelection","selections","genAffix","genIcon","readonly","autocomplete","persistentPlaceholder","keypress","onKeyPress","genHiddenInput","attrs$","genInputSlot","genList","genListWithSlot","slots","slotName","genMenu","scroll","genSelections","genSelection","genSlotSelection","getMenuIndex","onBlur","onChipInput","isAppendInner","onEscDown","isReadonly","onUpDown","onTabDown","onSpaceDown","onMenuActiveChange","onMouseUp","hasMouseDown","setMenuIndex","setSelectedItems","valueComparator","appendInner","itemsPerPageOptions","prevIcon","nextIcon","firstIcon","lastIcon","itemsPerPageText","itemsPerPageAllText","showFirstLastPage","showCurrentPage","disableItemsPerPage","pageText","disableNextPageIcon","computedDataItemsPerPageOptions","option","onFirstPage","onPreviousPage","onNextPage","onLastPage","onChangeItemsPerPage","genDataItemsPerPageOption","genItemsPerPageSelect","computedIPPO","ippo","hideDetails","genPaginationInfo","genIcons","rtl","VData","itemKey","singleSelect","expanded","mobileBreakpoint","singleExpand","noResultsText","loadingText","hideDefaultFooter","footerProps","selectableKey","expansion","internalCurrentItems","shiftKeyDown","lastEntry","everyItem","selectableItems","someItems","sanitizedFooterProps","onKeyUp","toggleSelectAll","isSelected","lastEntryKey","lastEntryKeySelected","multipleSelect","currentItem","isExpanded","createItemProps","genEmptyWrapper","genEmpty","noData","filteredItemsLength","noResults","genItems","genFooter","genDefaultScopedSlot","outerProps","checkboxColor","sortIcon","showGroupBy","genSelectAll","genSortIcon","sortByText","genSortChip","sortIndex","beingSorted","isDesc","sortable","genSortSelect","sortHeaders","th","genGroupByToggle","getAria","ariaSort","ariaLabel","mobile","dedupeModelListeners","VDataTableHeaderMobile","VDataTableHeaderDesktop","computedSlots","regularSlot","divider","headerClass","summaryClass","fixedHeader","themeClasses","genWrapper","hideDefaultHeader","mobileRowChildren","showSelect","showExpand","caption","headerProps","calculateWidths","headersLength","expandIcon","itemClass","loaderHeight","internalGroupBy","openCache","computedHeaders","defaultHeader","colspanAttrs","colspan","columnSorters","headersWithCustomFilters","headersWithoutCustomFilters","sanitizedHeaderProps","computedItemsPerPage","firstOption","calcWidths","customFilterWithColumns","searchTableItems","matchesColumnFilters","matchesSearchTerm","customSortWithHeaders","VDataIterator","genCaption","genColgroup","genLoading","genHeaders","genGroupedRows","genRows","genDefaultGroupedRow","toggleFn","removeFn","RowGroup","genScopedRows","genDefaultRows","genDefaultExpandedRow","headerRow","genDefaultSimpleRow","expandedRow","MobileRow","contextmenu","dblclick","genBody","genFoot","genFooters","simpleProps","proxySlot","proxy","VDataTable","activeTraces","openTraceID","setBurnIn","activeTraceIDs","isLoading","AddTraceButton","ParamsPanel","BaseSlideGroup","Touch","centerActive","showArrows","internalItemsLength","isSwipingHorizontal","isSwiping","scrollOffset","canTouch","__cachedNext","__cachedPrev","hasAffixes","hasNext","hasPrev","beforeUpdate","$children","updated","genNext","genData","upperLocation","hasAffix","genPrev","calculateNewOffset","newAbosluteOffset","onAffixClick","onTouchMove","diffX","diffY","onTouchEnd","maxScrollOffset","overflowCheck","scrollIntoView","lastItemPosition","wrapperPosition","calculateCenteredOffset","selectedItem","calculateUpdatedOffset","selectedElement","currentScrollOffset","itemOffset","additionalOffset","offsetCentered","scrollTo","setWidths","slideGroup","breakpoints","breakpointProps","offsetProps","orderProps","propMap","breakpointClass","alignSelf","hasColClasses","inverseLabel","thumbColor","thumbLabel","thumbSize","trackColor","trackFillColor","app","thumbPressed","mouseTimeout","noClick","roundValue","trackTransition","showTicks","stepNumeric","inputWidth","trackFillStyles","startDir","endDir","valueDir","trackStyles","numTicks","showThumbLabel","computedTrackColor","computedTrackFillColor","computedThumbColor","genSlider","onSliderMouseDown","genChildren","genThumbContainer","genTrackContainer","genSteps","offsetDirection","thumbLabelContent","genThumbLabelContent","genThumbLabel","getThumbContainerStyles","genThumb","domRect","mouseUpOptions","mouseMoveOptions","isTouchEvent","onSliderMouseUp","onMouseMove","parseMouseMove","parseKeyDown","onSliderClick","onFocus","track","trackLength","clickOffset","clickPos","pageup","pagedown","trimmedStep","setAcitveTrace","$set","VChipGroup","VCol","VListGroup","VListItemSubtitle","VProgressCircular","VSlider","TraceList","Trace","Violin","Histogram","Parallel","StatsTable","CumulativeESS","Marginal","$router","reverseTransition","inTransition","windowGroup","genWindowItem","onAfterTransition","transitionCount","onBeforeTransition","onTransitionCancelled","onEnter","beforeEnter","afterEnter","enterCancelled","beforeLeave","afterLeave","leaveCancelled","VWindowItem","tabsBar","$route","callSlider","onRouteChange","newPath","oldPath","hasNew","hasOld","continuous","mandatory","showArrowsOnHover","touchless","changedByDelimiters","internalHeight","transitionHeight","isBooted","isReverse","internalReverse","hasActiveItems","internalIndex","updateReverse","genContainer","large","genControlIcons","getNextIndex","nextIndex","getPrevIndex","prevIndex","alignWithTitle","centered","fixedTabs","hideSlider","iconsAndText","sliderColor","sliderSize","sliderStyles","computedColor","activeTab","scrollWidth","genBar","VTabsBar","VTabsItems","VTabsSlider","parseNodes","vnode","quiet","VLayout","VRow","VTab","VTabItem","VTabs","VToolbar","VToolbarTitle"],"mappings":"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S5mD,OACRo4E,GAAwBzxB,GAASC,GAAU4D,GAAc1pB,QACrDyxB,GAASE,SAAS7L,KAAWsxB,GAAwBvxB,GAASC,GAAU9lB,SAG3D,WAAlB8lB,GAAS5mD,MAAuC,WAAlB4mD,GAAS5mD,MACtCy4E,GAAYxlF,KAAK,SAErB6tC,OAAO,UAAW23C,GAAYrlF,KAAK,MAAQ,UAE3C2S,GAAIizE,6BAA6BpyB,GAAU9lB,aAjDvC8lB,GAAStmD,SAAU,IAuDrB,KACA,SAAU7S,GAAQC,IAExBD,GAAOC,QAAU,CAEb,YACA,QACA,UACA,OACA,YACA,QACA,UACA,UACA,QACA,WACA,KACA,MACA,QACA,KACA,OACA,KACA,MACA,QACA,QACA,MACA,OACA,OACA,OACA,OACA,QACA,UACA,SACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,YACA,YACA,YACA,cACA,kBACA,kBACA,SAGA,MACA,QACA,QACA,OACA,UACA,WACA,OACA,SACA,OACA,SACA,UACA,SACA,WACA,WACA,SACA,SACA,SACA,WACA,YACA,OACA,QACA,SACA,OACA,QACA,WACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,gBACA,gBACA,sBACA,SACA,OACA,YACA,UAME,KACA,SAAUD,GAAQC,GAASI,IAEjC,aAYA,IAAIwP,GAAYxP,GAAoB,QAKpCL,GAAOC,QAAU,SAAS0uF,iBAAiBr/E,IACvC,IAAIkpB,GAASlpB,GAAMkpB,OACf+oF,GAAU/oF,GAAOo0D,SAAW,EAC5B40B,GAAUhpF,GAAOq0D,SAAW,EAM5B40B,GAA8B,SAApBjpF,GAAOs0D,SACjB,SAAShpF,IAAK,OAAO2C,KAAK6E,KAAKxH,GAAIy9G,KACnC,SAASz9G,IAAK,OAAOA,GAAIy9G,IAI7B,OAAO,SAASz9G,IACZ,IAAI49G,GAAWD,GAAO39G,GAAI,GAG1B,OAAQ+L,GAAU6xG,KAAcA,GAAW,EACvCj7G,KAAKqC,IAAI44G,GAAUF,IACnB,KAON,KACA,SAAUxhH,GAAQC,GAASI,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OACA,cACA,QACA,QACA,eACA,2BACA,sBACA,kBACA,wBACA,eACA,gBACA,WACA,gBACA,0BACA,eACA,eACA,eACA,eACA,SACA,cACA,kBACA,mBACA,eACA,eACA,cACA,eACA,kBACA,gBACA,iBACA,4BACA,uBACA,mBACA,yBACA,gBACA,0BACA,wBACA,mBACA,iBACA,2BACA,wBACA,mBACA,kCACA,oBACA,kCACA,eACA,sBACA,0BACA,qBACA,sBACA,sBACA,gCACA,gCACA,qBACA,4BACA,qCACA,8BACA,+BACA,sCACA,+CACA,wCACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,YACA,kBACA,iBACA,kBACA,kBACA,kBACA,kBACA,WACA,gBACA,qBACA,eACA,cACA,sBACA,6BACA,sCACA,+BACA,oBACA,cACA,qBACA,mBACA,0BACA,mCACA,4BACA,YACA,cACA,mBACA,cACA,SACA,WACA,gBACA,MACA,OACA,iBACA,MACA,MACA,MACA,MACA,YACA,MACA,WACA,MACA,UACA,UACA,UACA,OACA,MACA,aACA,OACA,OACA,MACA,YACA,eACA,gBACA,mBACA,cACA,iBACA,kBACA,sBACA,oBACA,mBACA,uBACA,uBAME,OACA,SAAUD,GAAQC,GAASI,IAEjC,aAGA,IAAI+zH,GAAU/zH,GAAoB,QAG9Bg/Q,GAAgB,CAAE,QAAU,EAAM,UAAY,EAAM,WAAa,GAErEr/Q,GAAOC,QAAU,SAAUsB,IAC1B,QAAK6yH,GAAQ7yH,KACNc,eAAe5B,KAAK4+Q,UAAsB99Q,MAM5C,OACA,SAAUvB,GAAQC,GAASI,IAEjC,aAWA,IAAIi/Q,GAASj/Q,GAAoB,QAC7BiY,GAAMjY,GAAoB,QAC1BuK,GAAOvK,GAAoB,QAAQuK,KAEnC4mE,GAAsBl5D,GAAIk5D,oBAC1B+tM,GAAUjnQ,GAAIinQ,QACd5hM,GAAat9E,GAAoB,QAErC,SAASm/Q,kBAAkBlwQ,IACvB,IASI/O,GATAgtB,GAAWje,GAAM8Y,KACjBq3P,GAAWnwQ,GAAM86D,KAEjBN,GAAQ,GACR41M,GAAoBluM,GAAoBiuM,GAASz1Q,OACjD21Q,GAAc,GAEd94H,GAAa,GACb+4H,GAAiBH,GAASI,YAAYj9Q,OAE1C,IAAIrC,GAAI,EAAGA,GAAIq/Q,GAAgBr/Q,KAAK,CAChC,IAAIs9E,GAAS4hM,GAASI,YAAYt/Q,IAC9B+sI,GAAQ3vD,GAAWsvD,aAAapvD,GAAQ,CAACnuE,QAAS,MAClDi1D,GAAQgZ,GAAW0vD,mBAAmBC,IAC1CuZ,GAAWhpE,GAAOwhB,OAAS16B,GAG/B,IAAIm7M,GAAY,EAChB,IAAIv/Q,GAAI,EAAGA,GAAIk/Q,GAASl+Q,MAAMqB,OAAQrC,KAC/Bk/Q,GAAS33M,OAAOvnE,IAAKu/Q,KAAWA,GAAYL,GAAS33M,OAAOvnE,KAC5Dk/Q,GAAS/xP,OAAOntB,IAAKu/Q,KAAWA,GAAYL,GAAS/xP,OAAOntB,KAEnE,IAIImD,GAJAq8Q,GAAYD,GAAY,EAC5BxwQ,GAAM8Y,KAAKssL,OAASqrE,GAIpB,IAAI/rN,GAAS1kD,GAAM8Y,KAAK4rC,OACpBgsN,GAAc,GAClB,IAAIz/Q,GAAI,EAAGA,GAAIyzD,GAAOpxD,OAAQrC,KAAK,CAC/B,IAAIuR,GAAQkiD,GAAOzzD,IAEnB,IAAImD,GAAI,EAAGA,GAAIoO,GAAMlP,OAAQc,KAAK,CAC9B,IAAIu8Q,GAAYnuQ,GAAMpO,IAClBsO,GAAa+tQ,GAAYx/Q,GAC1By/Q,GAAY39Q,eAAe49Q,IAC1B3nQ,GAAIi3B,KAAK,QAAU0wO,GAAY,gCAE/BD,GAAYC,IAAajuQ,IAMrC,IAAIkuQ,GAAe,CACfp4M,OAAQ,GACRp6C,OAAQ,IAEZ,IAAIntB,GAAI,EAAGA,GAAIk/Q,GAASl+Q,MAAMqB,OAAQrC,KAAK,CACvC,IAAIuyB,GAAM2sP,GAASl+Q,MAAMhB,IAErBunE,GAAS23M,GAAS33M,OAAOvnE,IACzBmtB,GAAS+xP,GAAS/xP,OAAOntB,IAC7B,GAAKuyB,GAAM,GAAKysP,GAAQz3M,GAAQi4M,KAAcR,GAAQ7xP,GAAQqyP,OAK3DC,GAAY39Q,eAAeylE,MAAWk4M,GAAY39Q,eAAeqrB,KAAWsyP,GAAYl4M,MAAYk4M,GAAYtyP,KAAnH,CAKGsyP,GAAY39Q,eAAeqrB,MAC1BA,GAASsyP,GAAYtyP,KAItBsyP,GAAY39Q,eAAeylE,MAC1BA,GAASk4M,GAAYl4M,KAIzBp6C,IAAUA,GACViyP,GAFA73M,IAAUA,IAEY63M,GAAYjyP,KAAU,EAE5C,IAAI2xE,GAAQ,GACTogL,GAASpgL,OAASogL,GAASpgL,MAAM9+F,MAAI8+F,GAAQogL,GAASpgL,MAAM9+F,KAE/D,IAAI4/Q,GAAqB,KACtB9gL,IAASwnD,GAAWxkJ,eAAeg9F,MAAQ8gL,GAAqBt5H,GAAWxnD,KAE9Ev1B,GAAMtkE,KAAK,CACPqb,YAAatgB,GACb8+F,MAAOA,GACPr1F,MAAO01Q,GAAoBD,GAASz1Q,MAAMzJ,IAAKk/Q,GAASz1Q,MACxDm2Q,mBAAoBA,GACpBr4M,OAAQA,GACRp6C,OAAQA,GACRnsB,OAAQuxB,KAGZotP,GAAap4M,OAAOtiE,KAAKsiE,IACzBo4M,GAAaxyP,OAAOloB,KAAKkoB,KAI7B,IAAI0yP,GAAaL,GAAY/rN,GAAOpxD,OAChCy9Q,GAAoB7uM,GAAoBjkD,GAASvjB,OACjD47D,GAAQ,GACZ,IAAIrlE,GAAI,EAAGA,GAAI6/Q,GAAY7/Q,KACvB,GAAIo/Q,GAAYp/Q,IAAhB,CACA,IAAIC,GAAI+sB,GAAS8xE,MAAM9+F,IAEvBqlE,GAAMpgE,KAAK,CACPsM,MAAQvR,GAAIw/Q,GAAY,EACxBO,cAAe,GACfz/P,YAAatgB,GACb8+F,MAAO7+F,GACPwJ,MAAOq2Q,GAAoB9yP,GAASvjB,MAAMzJ,IAAKgtB,GAASvjB,QAKhE,IAAIspK,IAAW,EAKf,OAWJ,SAASitG,mBAAmBC,GAASC,GAASC,IAG1C,IAFA,IAAI96M,GAAQttD,GAAIqoQ,YAAYH,GAAS,GAE7BjgR,GAAI,EAAGA,GAAIkG,KAAKoC,IAAI43Q,GAAQ79Q,OAAQ89Q,GAAQ99Q,QAASrC,KACzD,GAAG+X,GAAIinQ,QAAQkB,GAAQlgR,IAAIigR,KAAYloQ,GAAIinQ,QAAQmB,GAAQngR,IAAIigR,IAAU,CACrE,GAAGC,GAAQlgR,MAAOmgR,GAAQngR,IACtB,OAAO,EAEXqlE,GAAM66M,GAAQlgR,KAAIiF,KAAKk7Q,GAAQngR,KAQvC,OAJU++Q,GAAO15M,IAINihF,WAAW81E,MAAK,SAASh8N,IAChC,OAAOA,GAAEiC,OAAS,KAhCnB29Q,CAAmBH,GAAYF,GAAap4M,OAAQo4M,GAAaxyP,UAChE4lJ,IAAW,GAGR,CACHA,SAAUA,GACVxpG,MAAOA,GACPlE,MAAOA,GAGP5R,OAAQA,GACRgsN,YAAaA,IAyBrBhgR,GAAOC,QAAU,SAASmP,KAAKC,GAAIC,IAC/B,IAAI7D,GAAS+zQ,kBAAkBlwQ,IAE/B,OAAO1E,GAAK,CACR0oK,SAAU7nK,GAAO6nK,SACjBstG,OAAQn1Q,GAAOm6D,MACfi7M,OAAQp1Q,GAAOq+D,MAGfg3M,QAASr1Q,GAAOuoD,OAChB+sN,aAAct1Q,GAAOu0Q,gBAOvB,OACA,SAAUhgR,GAAQC,GAASI,IAEjC,aAKA,SAAS2gR,WAAWztQ,IAClBhP,KAAKgP,KAAOA,GACZhP,KAAK48B,OAAS,EAAC,GAAM,GAAM,GAAO,GAClC58B,KAAKwd,MAAS,CAAC,EAAG,EAAG,EAAG,GACxBxd,KAAKyF,MAAS,CAAC,CAAC,EAAE,EAAE,EAAE,GACP,CAAC,EAAE,EAAE,EAAE,GACP,CAAC,EAAE,EAAE,EAAE,GACP,CAAC,EAAE,EAAE,EAAE,IACtBzF,KAAKw8B,OAAS,CAACj1B,IAAUA,KAV3B9L,GAAOC,QA8EP,SAASghR,eAAe1tQ,GAAMlK,IAC5B,IAAIi4B,GAAS,IAAI0/O,WAAWztQ,IAG5B,OAFA+tB,GAAOt2B,OAAO3B,IACdkK,GAAKwqQ,WAAWz8O,IACTA,IArET,IAAIz7B,GAAQm7Q,WAAW5+Q,UAEvByD,GAAMmF,OAAS,SAAS3B,IACtBA,GAAUA,IAAW,GACrB9E,KAAK48B,QAAU93B,GAAQ83B,QAAU,EAAC,GAAK,GAAK,GAAM,IAAQp+B,QAC1DwB,KAAKwd,OAAU1Y,GAAQ0Y,OAAS,CAAC,EAAE,EAAE,EAAE,IAAIhf,QAC3CwB,KAAKyF,OAAUX,GAAQW,OAAS,CAChB,CAAC,EAAE,EAAE,EAAE,GACP,CAAC,EAAE,EAAE,EAAE,GACP,CAAC,EAAE,EAAE,EAAE,GACP,CAAC,EAAE,EAAE,EAAE,KAAK4xC,KAAI,SAAS3sC,IAAK,OAAOA,GAAElM,WACvDwB,KAAKw8B,QAAU13B,GAAQ03B,QAAU,CAACj1B,IAASA,MAAW/I,QACtDwB,KAAKgP,KAAKupQ,mBAGZj3Q,GAAM+G,KAAO,WACX,IAAIs0Q,GAAc38Q,KAAK48B,OACnBggP,GAAc58Q,KAAKwd,MACnBq/P,GAAc78Q,KAAKyF,MACnBq3Q,GAAc98Q,KAAKw8B,OACnBxtB,GAAchP,KAAKgP,KACnBklB,GAAcllB,GAAKklB,KAEnB25L,GAAc7+M,GAAK6+M,QACnB4qD,GAAczpQ,GAAKkpB,QAIvB,GAFAhE,GAAK32B,OAEFswN,GAAQ,IAAMivD,GAAY,IAAMA,GAAY,IAAMjvD,GAAQ,IAC1DA,GAAQ,IAAMivD,GAAY,IAAMA,GAAY,IAAMjvD,GAAQ,GAAI,CAE/D,IAAIkvD,GAAUtE,GAAW,IAAMqE,GAAY,GAAKjvD,GAAQ,KAAOA,GAAQ,GAAKA,GAAQ,KAAO4qD,GAAW,GAAKA,GAAW,IAClHuE,GAAUvE,GAAW,IAAMqE,GAAY,GAAKjvD,GAAQ,KAAOA,GAAQ,GAAKA,GAAQ,KAAO4qD,GAAW,GAAKA,GAAW,IAEnHkE,GAAY,IACdzoP,GAAK4kI,SACHikH,GAASC,GACTvE,GAAW,GAAIuE,GACfJ,GAAW,GAAIC,GAAW,IAE1BF,GAAY,IACdzoP,GAAK4kI,SACHikH,GAASC,GACTD,GAAStE,GAAW,GACpBmE,GAAW,GAAIC,GAAW,IAE1BF,GAAY,IACbzoP,GAAK4kI,SACHikH,GAASC,GACTvE,GAAW,GAAIuE,GACfJ,GAAW,GAAIC,GAAW,IAE3BF,GAAY,IACbzoP,GAAK4kI,SACHikH,GAASC,GACTD,GAAStE,GAAW,GACpBmE,GAAW,GAAIC,GAAW,MAKlCv7Q,GAAMgJ,QAAU,WACdtK,KAAKgP,KAAKyqQ,cAAcz5Q,QAapB,KACA,SAAUvE,GAAQC,GAASI,IAEjC,aAGA,IAM4CmhR,GANxCr8M,GAAiB9kE,GAAoB,QACrCu2B,GAAiBv2B,GAAoB,QACrCO,GAAiBP,GAAoB,QACrCgB,GAAiBhB,GAAoB,QACrCu1D,GAAiBv1D,GAAoB,QAErCY,GAAiBD,OAAOC,eAE5BugR,GAAgBxhR,GAAOC,QAAU,SAAU0yE,GAAK8uM,IAC/C,KAAMl9Q,gBAAgBi9Q,IAAgB,MAAM,IAAIxrN,UAAU,8BAC1DJ,GAASn1D,KAAK8D,KAAMouE,IAEuB8uM,GADtCA,GACI7qP,GAASn2B,KAAKghR,GAAM,aAAqB,YACzC7qP,GAASn2B,KAAKghR,GAAM,OAAe,MAChC,QAHM,QAIlBxgR,GAAesD,KAAM,WAAY3D,GAAE,GAAI6gR,MAEpCt8M,IAAgBA,GAAeq8M,GAAe5rN,WAG3C4rN,GAAcp/Q,UAAU87B,YAE/BsjP,GAAcp/Q,UAAYpB,OAAOY,OAAOg0D,GAASxzD,UAAW,CAC3Dw0D,SAAUh2D,IAAE,SAAUL,IACrB,MAAsB,UAAlBgE,KAAKm9Q,SAA6Bn9Q,KAAK0xD,SAAS11D,IAC9B,cAAlBgE,KAAKm9Q,SAAiC,CAACnhR,GAAGgE,KAAK0xD,SAAS11D,KACrDA,QAGTU,GAAeugR,GAAcp/Q,UAAWf,GAAOC,YAAaV,GAAE,IAAK,oBAK7D,OACA,SAAUZ,GAAQC,GAASI,IAEjC,aAMA,SAASshR,YAAYC,GAASrhR,IAC5B,IAAIshR,GAAUD,GAAU,GACpB78Q,GAAI88Q,GAAQ79Q,QAAQ,KACpB89Q,GAAU,EACX/8Q,IAAK,IACN+8Q,GAAUD,GAAQj/Q,OAASmC,GAAI,GAEjC,IAAIgqD,GAAQtoD,KAAKq5B,IAAI,GAAIgiP,IACrB7yQ,GAAIxI,KAAKm5B,MAAMgiP,GAAUrhR,GAAIwuD,IAC7BgzN,GAAO9yQ,GAAI,GACf,GAAG8yQ,GAAK/9Q,QAAQ,MAAQ,EACtB,OAAO+9Q,GAET,IAAIvxN,GAAKvhD,GAAI8/C,GAAO6jD,GAAK3jG,GAAI8/C,GAC1B9/C,GAAI,GACLuhD,GAAoB,GAAd/pD,KAAKs5B,KAAKywB,IAChBoiD,GAAW,GAAJA,KAEPpiD,GAAoB,EAAf/pD,KAAKyN,MAAMs8C,IAChBoiD,IAAQ,GAEV,IAAIovK,GAAM,GAAKxxN,GAIf,GAHGvhD,GAAI,IACL+yQ,GAAM,IAAMA,IAEXF,GAAS,CAEV,IADA,IAAI9wK,GAAK,GAAK4B,GACR5B,GAAGpuG,OAASk/Q,IAChB9wK,GAAK,IAAMA,GAEb,OAAOgxK,GAAM,IAAMhxK,GAEnB,OAAOgxK,GAnCX/hR,GAAQ2B,OAuCR,SAASqgR,aAAaz2Q,GAAQ26B,IAE5B,IADA,IAAI8C,GAAQ,GACJroC,GAAE,EAAGA,GAAE,IAAKA,GAAG,CAGrB,IAFA,IAAI2W,GAAQ,GAEJ/V,IADKgK,GAAO,GAAG5K,IAAG4K,GAAO,GAAG5K,IAC1B,GAAGY,GAAE2kC,GAAYvlC,KAAI4K,GAAO,GAAG5K,MAAMY,GAC7C+V,GAAM/R,KAAK,CAACyJ,EAAGzN,GAAE2kC,GAAYvlC,IAAImP,KAAM4xQ,YAAYx7O,GAAYvlC,IAAIY,MAErE,IAAQA,IAAG,EAAGA,GAAE2kC,GAAYvlC,KAAI4K,GAAO,GAAG5K,MAAMY,GAC9C+V,GAAM/R,KAAK,CAACyJ,EAAGzN,GAAE2kC,GAAYvlC,IAAImP,KAAM4xQ,YAAYx7O,GAAYvlC,IAAIY,MAErEynC,GAAMzjC,KAAK+R,IAEb,OAAO0xB,IAnDThpC,GAAQiiR,MAsDR,SAASC,WAAWC,GAAQC,IAC1B,IAAI,IAAI9hR,GAAE,EAAGA,GAAE,IAAKA,GAAG,CACrB,GAAG6hR,GAAO7hR,IAAGqC,SAAWy/Q,GAAO9hR,IAAGqC,OAChC,OAAO,EAET,IAAI,IAAIc,GAAE,EAAGA,GAAE0+Q,GAAO7hR,IAAGqC,SAAUc,GAAG,CACpC,IAAIkB,GAAIw9Q,GAAO7hR,IAAGmD,IACdmB,GAAIw9Q,GAAO9hR,IAAGmD,IAClB,GACEkB,GAAEqK,IAAMpK,GAAEoK,GACVrK,GAAEmL,OAASlL,GAAEkL,MACbnL,GAAEid,OAAShd,GAAEgd,MACbjd,GAAEw3C,YAAcv3C,GAAEu3C,WAClBx3C,GAAEgd,WAAa/c,GAAE+c,UACjBhd,GAAEw0B,KAAOv0B,GAAEu0B,IACXx0B,GAAE2nB,KAAO1nB,GAAE0nB,GAEX,OAAO,GAIb,OAAO,IAKH,OACA,SAAUvsB,GAAQC,GAASI,IAEjC,aAYA,IAAImjB,GAAQnjB,GAAoB,QAE5BmqE,KAAO,aAUXxqE,GAAOC,QAAU,SAASqiR,eAAe/4Q,IACrC,IAAI,IAAIw4G,MAAQx4G,GACc,mBAAhBA,GAAMw4G,MAAsBx4G,GAAMw4G,IAAQv3C,MAGxDjhE,GAAM8sB,QAAU,WACZ9sB,GAAMyoB,UAAUjJ,WAAWwmG,YAAYhmH,GAAMyoB,YAGjD,IAAI0B,GAAMxS,SAASC,cAAc,OACjCuS,GAAIi9F,UAAY,WAChBj9F,GAAIljB,MAAM69G,OAAS,UACnB36F,GAAIljB,MAAMoR,SAAW,OACrB8R,GAAIljB,MAAMxG,MAAQwZ,GAAMouE,SAAS,GACjCl+D,GAAIljB,MAAM7G,SAAW,WACrB+pB,GAAIljB,MAAM+D,KAAOmf,GAAIljB,MAAMmiB,IAAM,MACjCe,GAAIljB,MAAMuR,MAAQ2R,GAAIljB,MAAMsb,OAAS,OACrC4H,GAAIljB,MAAM,oBAAsBgT,GAAMqrN,UACtCn7M,GAAIljB,MAAM,WAAa,GAEvB,IAAIlO,GAAI4e,SAASC,cAAc,KAiB/B,OAhBA7e,GAAE+xB,YAAc,qFAChB/xB,GAAEkO,MAAM7G,SAAW,WACnBrH,GAAEkO,MAAMmiB,IAAM,MACdrwB,GAAEkO,MAAM+D,KAAO,MACfjS,GAAEkO,MAAMsb,OAAS,MACjBxpB,GAAEkO,MAAMuR,MAAQ,MAChBzf,GAAEkO,MAAMyjB,OAAS,gBAEjBP,GAAIhI,YAAYppB,IAChBiH,GAAMyoB,UAAUtG,YAAYgI,IAC5BnqB,GAAMyoB,UAAUxhB,MAAMujB,WAAa,UACnCxqB,GAAMyoB,UAAUlE,QAAU,WACtBuH,OAAOk5L,KAAK,2BAIT,IAML,OACA,SAAUvuN,GAAQC,GAASI,IAEjC,aAWA,IAAIkiB,GAAQliB,GAAoB,QAEhCL,GAAOC,QAAU,CACbiT,WAAY,QACZrS,KAAM,YACNsS,eAAgB9S,GAAoB,QACpC+S,WAAY,CAAC,KAAM,OAAQ,YAAa,UAAW,cAAe,aAAc,gBAEhF1J,WAAYrJ,GAAoB,QAChCiT,eAAgBjT,GAAoB,QACpC8mB,mBAAoB9mB,GAAoB,QACxC6/D,SAAU7/D,GAAoB,QAC9BmmB,aAAcnmB,GAAoB,QAClC+O,KAAM/O,GAAoB,QAC1BkT,KAAMlT,GAAoB,QAC1BmT,YAAa+O,GAAM/O,YACnBC,aAAcpT,GAAoB,QAElCgT,KAAM,KASJ,OACA,SAAUrT,GAAQC,GAASI,IAEjC,aAWA,IAAIiY,GAAMjY,GAAoB,QAE1BykE,GAAWzkE,GAAoB,QAC/Bm6Q,GAAuBn6Q,GAAoB,QAAQm6Q,qBACnDjwL,GAAuBlqF,GAAoB,QAC3CmqF,GAAqBnqF,GAAoB,QACzCqqF,GAAqBrqF,GAAoB,QACzCsqF,GAA0BtqF,GAAoB,QAC9CyqF,GAAgBzqF,GAAoB,QAAQyqF,cAE5CphF,GAAarJ,GAAoB,QAErCL,GAAOC,QAAU,SAASqT,eAAe4lD,GAASC,GAAU4D,GAAcxZ,IACtE,SAASlQ,OAAO1qB,GAAMzE,IAClB,OAAO5L,GAAI+6B,OAAO6lB,GAASC,GAAUzvD,GAAYif,GAAMzE,IAG3D,IAAIqM,GAAMiqP,GAAqBthN,GAASC,GAAU5V,GAAQlQ,QACtD9iB,IAKJ8iB,OAAO,aACPA,OAAO,OAAQ9iB,GAAMu6D,GAAgB,gBAAkB,SACvDz3C,OAAO,QACPA,OAAO,aACiB,UAArB8lB,GAASgyB,SAAqB93C,OAAO,iBAErCyxB,GAASE,SAAS7L,MACjBqxB,GAAmBtxB,GAASC,GAAU4D,GAAcxZ,GAAQlQ,QAC5DA,OAAO,gBAGRyxB,GAASG,WAAW9L,KACnBoxB,GAAqBrxB,GAASC,GAAU4D,GAAcxZ,GAAQlQ,QAG/DyxB,GAASltC,QAAQuhC,MAChB9lB,OAAO,gBACPq3C,GAAmBxxB,GAASC,GAAU5V,GAAQlQ,SAGlDA,OAAO,QACc,SAAlB8lB,GAAS5mD,MACRo4E,GAAwBzxB,GAASC,GAAU4D,GAAc1pB,QAG7D/6B,GAAIizE,6BAA6BpyB,GAAU9lB,SA7BvC8lB,GAAStmD,SAAU,IAmCrB,OACA,SAAU7S,GAAQC,GAASI,IAEjC,aAEA,IAAIm3D,GAAcn3D,GAAoB,QAClC6kF,GAAQ7kF,GAAoB,QAC5B03L,GAAa13L,GAAoB,QACjCy8P,GAA8Bz8P,GAAoB,QAClDo3D,GAA6Bp3D,GAAoB,QACjD0mL,GAAW1mL,GAAoB,QAC/BkiR,GAAgBliR,GAAoB,QAEpCmiR,GAAexhR,OAAOkY,OACtBjY,GAAiBD,OAAOC,eAI5BjB,GAAOC,SAAWuiR,IAAgBt9L,IAAM,WAEtC,GAAI1tB,IAQiB,IARFgrN,GAAa,CAAE39Q,EAAG,GAAK29Q,GAAavhR,GAAe,GAAI,IAAK,CAC7EC,YAAY,EACZC,IAAK,WACHF,GAAesD,KAAM,IAAK,CACxBhD,MAAO,EACPL,YAAY,OAGd,CAAE2D,EAAG,KAAMA,EAAS,OAAO,EAE/B,IAAIqtL,GAAI,GACJ+V,GAAI,GAEJj8G,GAAS3qF,SAIb,OAFA6wL,GAAElmG,IAAU,EADG,uBAEN/6E,MAAM,IAAI6lD,SAAQ,SAAU2rN,IAAOx6E,GAAEw6E,IAAOA,MACf,GAA/BD,GAAa,GAAItwF,IAAGlmG,KAHZ,wBAG4B+rG,GAAWyqF,GAAa,GAAIv6E,KAAItiM,KAAK,OAC7E,SAASuT,OAAOwU,GAAQo6C,IAM3B,IALA,IAAIgD,GAAIi8G,GAASr5J,IACbg1P,GAAkB/mQ,UAAU/Y,OAC5B8B,GAAQ,EACRkiL,GAAwBk2E,GAA4Bn0N,EACpDm+I,GAAuBrvH,GAA2B9uB,EAC/C+5O,GAAkBh+Q,IAMvB,IALA,IAII7C,GAJA28C,GAAI+jO,GAAc5mQ,UAAUjX,OAC5B++C,GAAOmjI,GAAwBmR,GAAWv5I,IAAG/1C,OAAOm+K,GAAsBpoI,KAAMu5I,GAAWv5I,IAC3F57C,GAAS6gD,GAAK7gD,OACdc,GAAI,EAEDd,GAASc,IACd7B,GAAM4hD,GAAK//C,MACN8zD,KAAesvH,GAAqBrmL,KAAK+9C,GAAG38C,MAAMipE,GAAEjpE,IAAO28C,GAAE38C,KAEpE,OAAOipE,IACP03M,IAKE,OACA,SAAUxiR,GAAQC,GAASI,IAEjC,aAYAL,GAAOC,QAAU,CACb6yL,QAAS,CACL7uK,QAAS,aACTsV,OAAQ,CAAC,QAAS,WAClBrV,KAAM,UAENE,SAAU,QAGd4uK,OAAQ,CACJ/uK,QAAS,SACTpb,IAAK,EACLC,IAAK,EACLob,KAAM,GAENE,SAAU,QAGd8uK,YAAa,CACTjvK,QAAS,SACTpb,IAAK,EACLC,IAAK,EACLob,KAAM,GAENE,SAAU,UAQZ,OACA,SAAUpkB,GAAQC,GAASI,IAEjC,aAGAL,GAAOC,QA2QP,SAAS0iR,mBAAmBpvQ,IAC1B,IAAIjK,GAAKiK,GAAKjK,GACV0zJ,GAAM5yJ,GAAad,IACnBE,GAASC,GAAaH,GAAI6B,GAAQy3Q,SAAUz3Q,GAAQ03Q,UAExD,OADW,IAAIC,aAAavvQ,GAAMypJ,GAAKxzJ,KA7QzC,IAAIY,GAAe/J,GAAoB,QACnCoJ,GAAepJ,GAAoB,QACnC0iR,GAAe1iR,GAAoB,QACnC6K,GAAe7K,GAAoB,QACnC8K,GAAe9K,GAAoB,QAEvC,SAASyiR,aAAavvQ,GAAMypJ,GAAKxzJ,IAC/BjF,KAAKgP,KAAeA,GACpBhP,KAAKy4J,IAAeA,GACpBz4J,KAAKiF,OAAeA,GACpBjF,KAAK8uO,WAAe,CAAC,GAAG,IACxB9uO,KAAKy+Q,MAAe,CAAC,GAAG,IACxBz+Q,KAAKktM,YAAe,CAAC,EAAE,GACvBltM,KAAK0+Q,WAAe,CAAC,EAAE,GAGzB,IAGMC,GACAC,GACAC,GA6HAC,GACAC,GACAC,GApIF19Q,GAAQi9Q,aAAa1gR,UAEzByD,GAAMylD,WACA43N,GAAY,CAAC,EAAE,GACfC,GAAgB,CAAC,EAAE,GACnBC,GAAS,CAAC,EAAE,GAET,SAAS/3L,IACd,IAAI93E,GAAchP,KAAKgP,KACnB/J,GAAcjF,KAAKiF,OACnBw5Q,GAAcz+Q,KAAKy+Q,MAAM33L,IACzBgoJ,GAAc9uO,KAAK8uO,WAAWhoJ,IAC9B/hF,GAAciK,GAAKjK,GACnBmzB,GAAclpB,GAAKkpB,QACnB21L,GAAc7+M,GAAK6+M,QACnBh1D,GAAc7pJ,GAAK6pJ,UACnB/wJ,GAAckH,GAAKlH,WACnBivQ,GAAc/nQ,GAAK+nQ,WACnBD,GAAc9nQ,GAAK8nQ,QACnBxiE,GAActlM,GAAKupJ,UACnB0mH,GAAcjwQ,GAAK49C,UAInBsqN,GAAcloQ,GAAKkoQ,YACnBF,GAAchoQ,GAAKgoQ,SACnBG,GAAcnoQ,GAAKmoQ,WACnBF,GAAcjoQ,GAAKioQ,WACnB/pE,GAAcltM,KAAKktM,YAAYpmH,IAC/B43L,GAAc1+Q,KAAK0+Q,WAAW53L,IAE9BlnE,GAAQjZ,GAAQgmB,GAAG8xP,GAAO5wD,GAAQ/mI,KAClChnE,GAAQnZ,GAAQyD,GAAGq0Q,GAAO5wD,GAAQ/mI,GAAK,IAE3C63L,GAAU,GAAQA,GAAU,GAAK,EACjCA,GAAU73L,IAAQ,EAElB83L,GAAc93L,KAAS5uD,GAAQ,EAAE4uD,IAAQ5uD,GAAQ4uD,MAAU+xE,GAAU,EAAE/xE,IAAQ+xE,GAAU/xE,KAAS,EAElG,IAAIo4L,GAAc,EAAMrmH,GAAU,GAAQ,EAAL/xE,KAAW+xE,GAAe,EAAL/xE,IAE1D83L,GAAmB,EAAL93L,IAAUo4L,GAAchnP,GAAa,EAAL4uD,IAAU,EACrDiwL,GAAWjwL,MACZ83L,GAAmB,EAAL93L,KAAWo4L,GAAcp3Q,GAAagvQ,GAAQhwL,IACzDlnE,GAAQE,IAAOgvN,GAAWhvN,IAAOgvN,GAAWlvN,MAC7C3a,GAAOsD,SAAS42Q,SAAeR,GAC/B15Q,GAAOsD,SAAS62Q,aAAeR,GAC/B35Q,GAAOsD,SAAS9C,MAAe6uM,GAAUxtH,IACzC7hF,GAAOsD,SAASmiD,MAAeu0N,GAAUn4L,IACzC/hF,GAAGi9H,WACDj9H,GAAGq9K,UACH0sD,GAAWlvN,IACXkvN,GAAWhvN,IAAOgvN,GAAWlvN,OAGhCs3P,GAAYpwL,KAAS43L,KACtBE,GAAmB,EAAL93L,KAAWo4L,GAAcp3Q,GAAakvQ,GAASlwL,IAC7D7hF,GAAOsD,SAAS42Q,SAAeN,GAC/B55Q,GAAOsD,SAAS62Q,aAAeR,GAC/B35Q,GAAOsD,SAAS9C,MAAe0xQ,GAAWrwL,IAC1C7hF,GAAOsD,SAASmiD,MAAeusN,GAAWnwL,IAC1C/hF,GAAGi9H,WACDj9H,GAAGq9K,UACH8qB,GACAwxE,KAGJE,GAAmB,EAAL93L,IAAUo4L,GAAchnP,GAAQ,GAAQ,EAAL4uD,KAAW,EACzDiwL,GAAWjwL,GAAK,KACjB83L,GAAmB,EAAL93L,KAAWo4L,GAAcp3Q,GAAagvQ,GAAQhwL,GAAK,GAC9DlnE,GAAQE,IAAOgvN,GAAWhvN,IAAOgvN,GAAWlvN,MAC7C3a,GAAOsD,SAAS42Q,SAAeR,GAC/B15Q,GAAOsD,SAAS62Q,aAAeR,GAC/B35Q,GAAOsD,SAAS9C,MAAe6uM,GAAUxtH,GAAK,GAC9C7hF,GAAOsD,SAASmiD,MAAeu0N,GAAUn4L,GAAK,GAC9C/hF,GAAGi9H,WACDj9H,GAAGq9K,UACH0sD,GAAWlvN,IACXkvN,GAAWhvN,IAAOgvN,GAAWlvN,OAGhCs3P,GAAYpwL,GAAK,IAAM43L,KACxBE,GAAmB,EAAL93L,KAAWo4L,GAAcp3Q,GAAakvQ,GAASlwL,GAAK,GAClE7hF,GAAOsD,SAAS42Q,SAAeN,GAC/B55Q,GAAOsD,SAAS62Q,aAAeR,GAC/B35Q,GAAOsD,SAAS9C,MAAe0xQ,GAAWrwL,GAAK,GAC/C7hF,GAAOsD,SAASmiD,MAAeusN,GAAWnwL,GAAK,GAC/C/hF,GAAGi9H,WACDj9H,GAAGq9K,UACH8qB,GACAwxE,OAMRp9Q,GAAMooD,UAAY,WAChB,IAAIi1N,GAAY,CAAC,EAAE,GACfC,GAAgB,CAAC,EAAE,GAEvB,OAAO,WACL,IAAI5vQ,GAAchP,KAAKgP,KACnB/J,GAAcjF,KAAKiF,OACnBF,GAAciK,GAAKjK,GACnB8zJ,GAAc7pJ,GAAK6pJ,UACnBu+G,GAAcpoQ,GAAKooQ,YACnBE,GAActoQ,GAAKsoQ,WACnBC,GAAcvoQ,GAAKuoQ,WACnBzvQ,GAAckH,GAAKlH,WAEvB,GAAI9H,KAAKq/Q,WAAT,CAIA,IAAI,IAAIrjR,GAAE,EAAGA,GAAE,IAAKA,GAClB4iR,GAAc5iR,IAAK,GAAOo7Q,GAAYp7Q,IAAG8L,GAAa+wJ,GAAU78J,MAC7D68J,GAAU,EAAE78J,IAAK68J,GAAU78J,KAAM,EAGtCiJ,GAAO1H,OACP0H,GAAOsD,SAAS42Q,SAAgBR,GAChC15Q,GAAOsD,SAAS62Q,aAAgBR,GAChC35Q,GAAOsD,SAASmiD,MAAgB4sN,GAChCryQ,GAAOsD,SAAS9C,MAAgB8xQ,GAEhCxyQ,GAAGi9H,WAAWj9H,GAAGq9K,UAAWpiL,KAAKs/Q,YAAat/Q,KAAKq/Q,cA7BrC,GAiClB/9Q,GAAM/D,MACAuhR,GAAa,CAAC,EAAE,GAChBC,GAAa,CAAC,EAAE,GAChBC,GAAa,CAAC,EAAE,GAEb,WACL,IAAIhwQ,GAAYhP,KAAKgP,KACjB/J,GAAYjF,KAAKiF,OACjBgC,GAAY+H,GAAK8oQ,YACjBjqD,GAAY7+M,GAAK6+M,QACjBh1D,GAAY7pJ,GAAK6pJ,UACjB3gI,GAAYlpB,GAAKkpB,QAErBjzB,GAAO1H,OAGP,IAAI,IAAIvB,GAAE,EAAGA,GAAE,IAAKA,GAAG,CAErB,IAAIqX,GAAKpM,GAAOjL,IAEZujR,GADKt4Q,GAAOjL,GAAE,GACIqX,GAClBmsQ,GAAc,IAAO3xD,GAAQ7xN,GAAE,GAAK6xN,GAAQ7xN,KAC5CyjR,GAAe5xD,GAAQ7xN,GAAE,GAAK6xN,GAAQ7xN,IAEtC0jR,GAASxnP,GAAQl8B,IAEjB2jR,GADSznP,GAAQl8B,GAAE,GACE0jR,GACrBE,GAAW/mH,GAAU78J,IAErBkjR,GADWrmH,GAAU78J,GAAE,GACE4jR,GAE7Bb,GAAW/iR,IAAK,EAAMujR,GAAaE,GAAYE,GAAYT,GAC3DJ,GAAW9iR,IAAK,GAAOqX,GAAKmsQ,IAAcC,GAAYE,GAAYT,GAGpEF,GAAW,GAAK,EAAMhwQ,GAAKlH,YAAc+wJ,GAAU,GAAKA,GAAU,IAClEmmH,GAAW,GAAKA,GAAW,IAAMnmH,GAAU,GAAKA,GAAU,KAAOA,GAAU,GAAKA,GAAU,IAE1F5zJ,GAAOsD,SAASgL,UAAYwrQ,GAC5B95Q,GAAOsD,SAASs3Q,UAAYf,GAC5B75Q,GAAOsD,SAASu3Q,UAAYd,GAG5Bh/Q,KAAKy4J,IAAIl7J,OACT0H,GAAOE,WAAW46Q,eAAeh7O,YAIrCzjC,GAAMmF,OAAS,SAAS3B,IACtB,IAGI9I,GAAGmD,GAAM+G,GAAMk6D,GAAO1/D,GAHtBrB,GAAY,GACZ2gR,GAAYl7Q,GAAQkO,MACpB/L,GAAYnC,GAAQmC,OAGxB,IAAIvG,GAAU,EAAGA,GAAU,IAAKA,GAAW,CACzC,IAAI6rJ,GAAU,CAACrqJ,KAAKyN,MAAMtQ,GAAShB,OAAO,IAAKogR,GAAQ,EAAEl3Q,KAGrDyL,GAAQgtQ,GAAUt/Q,IACtB,IAAI1E,GAAE,EAAGA,GAAEgX,GAAM3U,SAAUrC,GAAG,CAC5B,IAAIulC,GAAQvuB,GAAMhX,IACd0O,GAAQ62B,GAAK72B,EACbc,GAAQ+1B,GAAK/1B,KACb8R,GAAQikB,GAAKjkB,MAAQ,aACzB8iD,GAAS7+B,GAAKlkB,UAAY,GAM1B,IAJA,IAAI4iQ,GAAa,GAAOh5Q,GAAOvG,GAAU,GAAKuG,GAAOvG,KACjDw/Q,GAAaj5Q,GAAOvG,IAEpBgzJ,GAAOloJ,GAAKkB,MAAM,MACd7P,GAAI,EAAGA,GAAI62J,GAAKr1J,OAAQxB,KAE9B,IADAqJ,GAAOs4Q,GAAQlhQ,GAAMo2I,GAAK72J,KAAIqJ,KACzB/G,GAAI,EAAGA,GAAI+G,GAAK7H,OAAQc,IAAK,EAChCE,GAAS4B,KACLiF,GAAK/G,IAAKihE,IACTl6D,GAAK/G,GAAI,GAAKihE,GAAQvjE,GAAIujE,GAAQ,KAClC11D,GAAIw1Q,IAAcD,IAI3B1zH,GAAQtrJ,KAAKiB,KAAKyN,MAAMtQ,GAAShB,OAAO,IACxCogR,GAAMx9Q,KAAKyJ,IAGb1K,KAAK8uO,WAAWpuO,IAAa6rJ,GAC7BvsJ,KAAKy+Q,MAAM/9Q,IAAa+9Q,GAI1B,IAAI/9Q,GAAU,EAAGA,GAAU,IAAKA,GAAW,CAKzC,IAJAV,KAAKktM,YAAYxsM,IAAawB,KAAKyN,MAAMtQ,GAAShB,OAAO,GAEzD6H,GAAQs4Q,GAAQ15Q,GAAQw0Q,UAAU54Q,IAAYoE,GAAQqd,OAAOzhB,IAAY,CAAEwpK,UAAW,WAAYhkK,KAClGk6D,GAAQt7D,GAAQu0Q,UAAU34Q,IACtB1E,GAAE,EAAGA,GAAEkK,GAAK7H,OAAQrC,IAAG,EACzBqD,GAAS4B,KAAKiF,GAAKlK,IAAGokE,IAAQl6D,GAAKlK,GAAE,GAAGokE,GAAO,GAGjDpgE,KAAK0+Q,WAAWh+Q,IACdwB,KAAKyN,MAAMtQ,GAAShB,OAAO,GAAK2B,KAAKktM,YAAYxsM,IAOrD,IAHAV,KAAKs/Q,YAAcp9Q,KAAKyN,MAAMtQ,GAAShB,OAAO,GAC9C6H,GAAOs4Q,GAAQ15Q,GAAQy0Q,UAAWz0Q,GAAQi5C,OAAO73C,KACjDk6D,GAAQt7D,GAAQi9N,UACZ/lO,GAAE,EAAGA,GAAEkK,GAAK7H,OAAQrC,IAAG,EACzBqD,GAAS4B,KAAKiF,GAAKlK,IAAGokE,IAAQl6D,GAAKlK,GAAE,GAAGokE,GAAO,GAEjDpgE,KAAKq/Q,WAAan9Q,KAAKyN,MAAMtQ,GAAShB,OAAO,GAAK2B,KAAKs/Q,YAGvDt/Q,KAAKy4J,IAAIhyJ,OAAOpH,KAGlBiC,GAAMgJ,QAAU,WACdtK,KAAKy4J,IAAInuJ,UACTtK,KAAKiF,OAAOqF,YAcR,OACA,SAAU7O,GAAQC,IAExBD,GAAOC,QAUP,SAASykR,OAAOhkQ,GAAK9b,GAAGC,IAIpB,OAHA6b,GAAI,GAAK9b,GAAE,GAAKC,GAAE,GAClB6b,GAAI,GAAK9b,GAAE,GAAKC,GAAE,GAClB6b,GAAI,GAAK9b,GAAE,GAAKC,GAAE,GACX6b,KAKL,KACA,SAAU1gB,GAAQC,GAASI,IAEjC,aAYA,IAAIwP,GAAYxP,GAAoB,QAChCwtL,GAAaxtL,GAAoB,QAoBrCL,GAAOC,QAAU,SAAS6tL,cAAcz+K,GAAIsX,GAAIonK,GAASC,IACrDrnK,GAAKA,IAAM,GAEX,IAAI2gG,GAAqB,QAAZymE,IAAmC,WAAZpnK,GAAG9S,KACnCuzG,GAAuB,WAAZ2mE,IAAsC,QAAZpnK,GAAG9S,KAE5C,GAAKyzG,IAASF,GAOd,IALA,IAEIu9J,GACA12F,GAHA22F,GAASv1Q,GAAGwmB,YAAY+uP,OACxB7gQ,GAAW4C,GAAGyW,IAAIvP,OAAO,GAIrBttB,GAAI,EAAGA,GAAIqkR,GAAOhiR,OAAQrC,KAI9B,GAFA0tL,GAAa,UAAY1tL,GAAI,MAD7BokR,GAAQC,GAAOrkR,KAGNwjB,GAAW,SAAW4C,GAAGyW,IAAK,CACnC,IAAIynP,GAAaF,GAAM5gQ,IACnB+gQ,GAAcH,GAAM,OAAS5gQ,IAC7BghQ,GAAS,KACTC,GAAU,KAEd,GAAG19J,GAAO,CACNy9J,GAASl3F,GAAWg3F,GAAYl+P,GAAG1O,OAKnC,IAAImhB,GAAK0rP,GAAcr+Q,KAAKq5B,IAAI,GAAIilP,IAAU,EAC9CC,GAAU,EAAIv+Q,KAAKykB,IAAIkO,GAAK3yB,KAAK6E,KAAK,EAAI8tB,GAAKA,KAAO3yB,KAAKywC,UAG3D8tO,IADAD,GAASt+Q,KAAKq5B,IAAI,GAAI+kP,MACFp+Q,KAAKq5B,IAAI,GAAIglP,GAAc,GAAKr+Q,KAAKq5B,IAAI,IAAKglP,GAAc,IAIhFj1Q,GAAUk1Q,IAGHl1Q,GAAUm1Q,MAAUA,GAAU,OAFrCD,GAAS,KACTC,GAAU,MAGdh3F,GAAQC,GAAalqK,GAAUghQ,IAC/B/2F,GAAQC,GAAa,OAASlqK,GAAUihQ,OAQ9C,OACA,SAAUhlR,GAAQC,GAASI,IAEjC,aAGAL,GAAOC,QAgXP,SAASglR,sBAAsB57Q,IAE7B,IAAI03B,IADJ13B,GAAUA,IAAW,IACE03B,QAAY,CAAC,EAAE,EAAE,GACpCguM,GAAW1lO,GAAQ0lO,UAAY,CAAC,EAAE,EAAE,EAAE,GACtC1mK,GAAWh/D,GAAQg/D,QAAY,EAEnCtnC,GAAS,GAAGh+B,MAAMtC,KAAKsgC,GAAQ,EAAG,GAElCmkP,WADAn2C,GAAW,GAAGhsO,MAAMtC,KAAKsuO,GAAU,EAAG,GACjBA,IAErB,IAAItjO,GAAS,IAAI05Q,sBACfp2C,GACAhuM,GACAt6B,KAAKykB,IAAIm9C,KAEX58D,GAAOorN,kBAAkBxtN,GAAQ43B,QAAS53B,GAAQ63B,UAE/C,QAAS73B,IAAW,OAAQA,KAC7BoC,GAAOspN,OAAO,EAAG1rN,GAAQy3B,IAAKz3B,GAAQ03B,OAAQ13B,GAAQ23B,IAGxD,OAAOv1B,IAnYT,IAAI25Q,GAAgB/kR,GAAoB,QACpC00N,GAAgB10N,GAAoB,QACpCglR,GAAgBhlR,GAAoB,QACpCs0N,GAAgBt0N,GAAoB,QACpCilR,GAAgBjlR,GAAoB,QAExC,SAASklR,KAAKt2Q,GAAEkH,GAAExG,IAChB,OAAOlJ,KAAK6E,KAAK7E,KAAKq5B,IAAI7wB,GAAE,GAAKxI,KAAKq5B,IAAI3pB,GAAE,GAAK1P,KAAKq5B,IAAInwB,GAAE,IAG9D,SAAS61Q,KAAKnnQ,GAAEpP,GAAEkH,GAAExG,IAClB,OAAOlJ,KAAK6E,KAAK7E,KAAKq5B,IAAIzhB,GAAE,GAAK5X,KAAKq5B,IAAI7wB,GAAE,GAAKxI,KAAKq5B,IAAI3pB,GAAE,GAAK1P,KAAKq5B,IAAInwB,GAAE,IAG9E,SAASu1Q,WAAWxkQ,GAAK9b,IACvB,IAAI+hB,GAAK/hB,GAAE,GACPslG,GAAKtlG,GAAE,GACP2pH,GAAK3pH,GAAE,GACPqxO,GAAKrxO,GAAE,GACP6gR,GAAKD,KAAK7+P,GAAIujF,GAAIqkB,GAAI0nH,IACvBwvC,GAAK,MACN/kQ,GAAI,GAAKiG,GAAG8+P,GACZ/kQ,GAAI,GAAKwpF,GAAGu7K,GACZ/kQ,GAAI,GAAK6tG,GAAGk3J,GACZ/kQ,GAAI,GAAKu1N,GAAGwvC,KAEZ/kQ,GAAI,GAAKA,GAAI,GAAKA,GAAI,GAAK,EAC3BA,GAAI,GAAK,GAIb,SAASykQ,sBAAsBO,GAAUC,GAAYC,IACnDrhR,KAAK8jE,OAAY+8M,GAAa,CAACQ,KAC/BrhR,KAAKw8B,OAAYqkP,GAAaO,IAC9BphR,KAAKwqO,SAAYq2C,GAAaM,IAE9BnhR,KAAKqxN,eAAmBrxN,KAAK8jE,OAAO6N,MAAM,GAC1C3xE,KAAKoxN,eAAmBpxN,KAAKw8B,OAAOm1C,MAAM,GAC1C3xE,KAAKshR,iBAAmBthR,KAAKwqO,SAAS74J,MAAM,GAC5C3xE,KAAKmxN,WAAmB,CAAC,GAAI,EAAE,GAC/BnxN,KAAKkxN,YAAmB,CAAC,GAAI,EAAE,GAC/BlxN,KAAKgxN,eAAmB,CAAC,GAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAEzDhxN,KAAKwxN,aAAa,GAGpB,IAAIlwN,GAAQs/Q,sBAAsB/iR,UAElCyD,GAAMywN,MAAQ,WACZ,OAAO7vN,KAAKqC,IACVvE,KAAK8jE,OAAOiuJ,QACZ/xN,KAAKw8B,OAAOu1L,QACZ/xN,KAAKwqO,SAASzY,UAGlBzwN,GAAMkwN,aAAe,SAASv0N,IAC5B+C,KAAK8jE,OAAO6N,MAAM10E,IAClB+C,KAAKw8B,OAAOm1C,MAAM10E,IAClB+C,KAAKwqO,SAAS74J,MAAM10E,IAEpB,IAAIskR,GAAOvhR,KAAKshR,iBAChBX,WAAWY,GAAMA,IAEjB,IAAI7vD,GAAM1xN,KAAKgxN,eACf8vD,GAAapvD,GAAK6vD,IAElB,IAAI/kP,GAASx8B,KAAKoxN,eACd70L,GAASv8B,KAAKkxN,YACdz0L,GAASz8B,KAAKmxN,WACdrtJ,GAAS5hE,KAAK8tD,IAAIhwD,KAAKqxN,eAAe,IAE1C90L,GAAI,GAAKC,GAAO,GAAKsnC,GAAS4tJ,GAAI,GAClCn1L,GAAI,GAAKC,GAAO,GAAKsnC,GAAS4tJ,GAAI,GAClCn1L,GAAI,GAAKC,GAAO,GAAKsnC,GAAS4tJ,GAAI,IAClCj1L,GAAG,GAAKi1L,GAAI,GACZj1L,GAAG,GAAKi1L,GAAI,GACZj1L,GAAG,GAAKi1L,GAAI,GAEZ,IAAI,IAAI11N,GAAE,EAAGA,GAAE,IAAKA,GAAG,CAErB,IADA,IAAIwlR,GAAK,EACDriR,GAAE,EAAGA,GAAE,IAAKA,GAClBqiR,IAAM9vD,GAAI11N,GAAE,EAAEmD,IAAKo9B,GAAIp9B,IAEzBuyN,GAAI,GAAG11N,KAAMwlR,KAIjBlgR,GAAMmgR,UAAY,SAASxkR,GAAGiK,IAC5BlH,KAAKwxN,aAAav0N,IAClB,IAAId,GAAI6D,KAAKgxN,eACb,GAAG9pN,GAAQ,CACT,IAAI,IAAIlL,GAAE,EAAGA,GAAE,KAAMA,GACnBkL,GAAOlL,IAAKG,GAAEH,IAEhB,OAAOkL,GAET,OAAO/K,IAGTmF,GAAMwwN,KAAO,SAAS70N,IACpB+C,KAAKw8B,OAAOs1L,KAAK70N,IACjB+C,KAAK8jE,OAAOguJ,KAAK70N,IACjB+C,KAAKwqO,SAAS1Y,KAAK70N,KAGrBqE,GAAM4xF,MAAQ,SAASj2F,IACrB+C,KAAKw8B,OAAO02D,MAAMj2F,IAClB+C,KAAK8jE,OAAOovB,MAAMj2F,IAClB+C,KAAKwqO,SAASt3I,MAAMj2F,KAGtBqE,GAAMg/F,IAAM,SAASrjG,GAAG43B,GAAI7M,GAAIoqM,IAC9Bv9L,GAAKA,IAAM,EACX7M,GAAKA,IAAM,EACXoqM,GAAKA,IAAM,EAEXpyN,KAAKwxN,aAAav0N,IAClB,IAAIy0N,GAAM1xN,KAAKgxN,eAEXthJ,GAAKgiJ,GAAI,GACT/hJ,GAAK+hJ,GAAI,GACTgwD,GAAKhwD,GAAI,GACTiwD,GAAKX,KAAKtxM,GAAIC,GAAI+xM,IACtBhyM,IAAMiyM,GACNhyM,IAAMgyM,GACND,IAAMC,GAEN,IAAI5yM,GAAK2iJ,GAAI,GACT1iJ,GAAK0iJ,GAAI,GACTkwD,GAAKlwD,GAAI,GACTmwD,GAAK9yM,GAAKW,GAAKV,GAAKW,GAAKiyM,GAAKF,GAI9Bzb,GAAK+a,KAHTjyM,IAAMW,GAAKmyM,GACX7yM,IAAMW,GAAKkyM,GACXD,IAAMF,GAAKG,IAEX9yM,IAAMk3L,GACNj3L,IAAMi3L,GACN2b,IAAM3b,GAEN,IAAIp9L,GAAK6oJ,GAAI,GACT5oJ,GAAK4oJ,GAAI,GACTowD,GAAKpwD,GAAI,IACTqwD,GAAKl5M,GAAK6G,GAAK5G,GAAK6G,GAAKmyM,GAAKJ,GAC9BM,GAAKn5M,GAAKkG,GAAKjG,GAAKkG,GAAK8yM,GAAKF,GAI9BK,GAAKjB,KAHTn4M,IAAMk5M,GAAKryM,GAAKsyM,GAAKjzM,GACrBjG,IAAMi5M,GAAKpyM,GAAKqyM,GAAKhzM,GACrB8yM,IAAMC,GAAKL,GAAKM,GAAKJ,IAErB/4M,IAAMo5M,GACNn5M,IAAMm5M,GACNH,IAAMG,GAEN,IAAI9+M,GAAK4L,GAAKl6C,GAAK66C,GAAK1nD,GACpBq7C,GAAK2L,GAAKn6C,GAAK86C,GAAK3nD,GACpBynF,GAAKmyK,GAAK/sP,GAAK6sP,GAAK15P,GAExBhoB,KAAKw8B,OAAO3qB,KAAK5U,GAAGkmE,GAAIE,GAAIosC,IAG5B,IAAI3rC,GAAS5hE,KAAK8tD,IAAIhwD,KAAKqxN,eAAe,IAC1CvtJ,GAAS5hE,KAAKqC,IAAI,KAAMu/D,GAASsuJ,IACjCpyN,KAAK8jE,OAAO35D,IAAIlN,GAAGiF,KAAKykB,IAAIm9C,MAG9BxiE,GAAM0Q,OAAS,SAAS/U,GAAG43B,GAAI7M,GAAIoqM,IACjCpyN,KAAKwxN,aAAav0N,IAElB43B,GAAKA,IAAI,EACT7M,GAAKA,IAAI,EAET,IAAI0pM,GAAM1xN,KAAKgxN,eAEXjiJ,GAAK2iJ,GAAI,GACT1iJ,GAAK0iJ,GAAI,GACTkwD,GAAKlwD,GAAI,GAEThiJ,GAAKgiJ,GAAI,GACT/hJ,GAAK+hJ,GAAI,GACTgwD,GAAKhwD,GAAI,GAET7oJ,GAAK6oJ,GAAI,GACT5oJ,GAAK4oJ,GAAI,GACTowD,GAAKpwD,GAAI,IAET3kE,GAAKl4H,GAAKk6C,GAAK/mD,GAAK0nD,GACpBs9E,GAAKn4H,GAAKm6C,GAAKhnD,GAAK2nD,GACpBs9E,GAAKp4H,GAAK+sP,GAAK55P,GAAK05P,GAEpBzpH,KAAOnvF,GAAKmkF,GAAK60H,GAAK90H,IACtBkL,KAAO4pH,GAAK/0H,GAAKlkF,GAAKokF,IACtBkL,KAAOtvF,GAAKmkF,GAAKlkF,GAAKikF,IACtB8yE,GAAK39N,KAAK6E,KAAK7E,KAAKqC,IAAI,EAAK,EAAMrC,KAAKq5B,IAAI08H,GAAG,GAAK/1J,KAAKq5B,IAAI28H,GAAG,GAAKh2J,KAAKq5B,IAAI48H,GAAG,KACjFjZ,GAAK+hI,KAAKhpH,GAAIC,GAAIC,GAAI0nE,IACvB3gF,GAAK,MACN+Y,IAAM/Y,GACNgZ,IAAMhZ,GACNiZ,IAAMjZ,GACN2gF,IAAM3gF,KAEN+Y,GAAKC,GAAKC,GAAK,EACf0nE,GAAK,GAGP,IAAI2K,GAAWxqO,KAAKshR,iBAChBl/P,GAAKooN,GAAS,GACd7kI,GAAK6kI,GAAS,GACdxgH,GAAKwgH,GAAS,GACdkH,GAAKlH,GAAS,GAEdz6J,GAAK3tD,GAAGy9M,GAAK6R,GAAGz5E,GAAKtyD,GAAGwyD,GAAKnuC,GAAGkuC,GAChCloF,GAAK21B,GAAGk6H,GAAK6R,GAAGx5E,GAAKluC,GAAGiuC,GAAK71I,GAAG+1I,GAChCjM,GAAKliC,GAAG61G,GAAK6R,GAAGv5E,GAAK/1I,GAAG81I,GAAKvyD,GAAGsyD,GAChC/vC,GAAKwpH,GAAG7R,GAAKz9M,GAAG61I,GAAKtyD,GAAGuyD,GAAKluC,GAAGmuC,GAGpC,GAAGi6D,GAAI,CACLn6D,GAAKpvF,GACLqvF,GAAKpvF,GACLqvF,GAAK2pH,GACL,IAAI9jR,GAAIkE,KAAK8oD,IAAIonK,IAAM4uD,KAAK/oH,GAAIC,GAAIC,IACpCF,IAAMj6J,GACNk6J,IAAMl6J,GACNm6J,IAAMn6J,GAKNkqH,GAAKA,IAJL23G,GAAK39N,KAAK6oD,IAAIl2B,MACdk7C,GAAKA,GAAG8vJ,GAAK33G,GAAG+vC,GAAKjoF,GAAGmoF,GAAKjM,GAAGgM,IAGhBD,IAFhBjoF,GAAKA,GAAG6vJ,GAAK33G,GAAGgwC,GAAKhM,GAAG+L,GAAKloF,GAAGooF,IAERD,IADxBhM,GAAKA,GAAG2zE,GAAK33G,GAAGiwC,GAAKpoF,GAAGmoF,GAAKloF,GAAGioF,IACAE,GAGlC,IAAI9W,GAAK4/H,KAAKlxM,GAAIC,GAAIk8E,GAAIhkC,IACvBm5B,GAAK,MACNtxE,IAAMsxE,GACNrxE,IAAMqxE,GACN6K,IAAM7K,GACNn5B,IAAMm5B,KAENtxE,GAAKC,GAAKk8E,GAAK,EACfhkC,GAAK,GAGPloH,KAAKwqO,SAASrgO,IAAIlN,GAAG8yE,GAAIC,GAAIk8E,GAAIhkC,KAGnC5mH,GAAMkvN,OAAS,SAASvzN,GAAGs/B,GAAKC,GAAQC,IACtCz8B,KAAKwxN,aAAav0N,IAElBu/B,GAASA,IAAUx8B,KAAKoxN,eACxB70L,GAASA,IAAUv8B,KAAKkxN,YACxBz0L,GAASA,IAAUz8B,KAAKmxN,WAExB,IAAIO,GAAM1xN,KAAKgxN,eACfR,GAAOkB,GAAKn1L,GAAKC,GAAQC,IAEzB,IAAI+tM,GAAWxqO,KAAKshR,iBACpBP,GAAcv2C,GACZ9Y,GAAI,GAAIA,GAAI,GAAIA,GAAI,GACpBA,GAAI,GAAIA,GAAI,GAAIA,GAAI,GACpBA,GAAI,GAAIA,GAAI,GAAIA,GAAI,KACtBivD,WAAWn2C,GAAUA,IACrBxqO,KAAKwqO,SAASrgO,IAAIlN,GAAGutO,GAAS,GAAIA,GAAS,GAAIA,GAAS,GAAIA,GAAS,IAGrE,IADA,IAAIy3C,GAAK,EACDjmR,GAAE,EAAGA,GAAE,IAAKA,GAClBimR,IAAM//Q,KAAKq5B,IAAIiB,GAAOxgC,IAAKugC,GAAIvgC,IAAI,GAErCgE,KAAK8jE,OAAO35D,IAAIlN,GAAG,GAAMiF,KAAKykB,IAAIzkB,KAAKqC,IAAI09Q,GAAI,QAE/CjiR,KAAKw8B,OAAOryB,IAAIlN,GAAGu/B,GAAO,GAAIA,GAAO,GAAIA,GAAO,KAGlDl7B,GAAMmvN,UAAY,SAASxzN,GAAG43B,GAAI7M,GAAIoqM,IACpCpyN,KAAKw8B,OAAO3qB,KAAK5U,GACf43B,IAAI,EACJ7M,IAAI,EACJoqM,IAAI,IAGR9wN,GAAM0wN,UAAY,SAAS/0N,GAAG00B,IAE5B,IAAI64M,GAAWxqO,KAAKshR,iBACpBP,GAAcv2C,GACZ74M,GAAO,GAAIA,GAAO,GAAIA,GAAO,GAC7BA,GAAO,GAAIA,GAAO,GAAIA,GAAO,GAC7BA,GAAO,GAAIA,GAAO,GAAIA,GAAO,KAC/BgvP,WAAWn2C,GAAUA,IACrBxqO,KAAKwqO,SAASrgO,IAAIlN,GAAGutO,GAAS,GAAIA,GAAS,GAAIA,GAAS,GAAIA,GAAS,IAErE,IAAI9Y,GAAM1xN,KAAKgxN,eACfZ,GAASsB,GAAK//L,IACd,IAAI7X,GAAI43M,GAAI,IACZ,GAAGxvN,KAAKsR,IAAIsG,IAAK,KAAM,CACrB,IAAIi2D,GAAK2hJ,GAAI,IAAI53M,GACbk2D,GAAK0hJ,GAAI,IAAI53M,GACboyI,GAAKwlE,GAAI,IAAI53M,GAEjB9Z,KAAKwxN,aAAav0N,IAClB,IAAIJ,GAAIqF,KAAK8tD,IAAIhwD,KAAKqxN,eAAe,IACrCrxN,KAAKw8B,OAAOryB,IAAIlN,GAAG8yE,GAAG2hJ,GAAI,GAAG70N,GAAGmzE,GAAG0hJ,GAAI,GAAG70N,GAAGqvJ,GAAGwlE,GAAI,IAAI70N,IACxDmD,KAAK8jE,OAAOguJ,KAAK70N,SAEjB+C,KAAKw8B,OAAOs1L,KAAK70N,IACjB+C,KAAK8jE,OAAOguJ,KAAK70N,KAIrBqE,GAAM+wN,YAAc,SAASp1N,GAAGZ,IAC3BA,GAAI,GACL2D,KAAK8jE,OAAO35D,IAAIlN,GAAGiF,KAAKykB,IAAItqB,MAIhCiF,GAAMgxN,kBAAoB,SAASj/M,GAAID,IAEnCC,GADCA,GAAK,EACDnR,KAAKykB,IAAItT,KAER9L,IAGN6L,GADCA,GAAK,EACDlR,KAAKykB,IAAIvT,IAET7L,IAEP6L,GAAKlR,KAAKqC,IAAI6O,GAAIC,IAClBrT,KAAK8jE,OAAO78D,OAAO,GAAG,GAAKoM,GAC3BrT,KAAK8jE,OAAO78D,OAAO,GAAG,GAAKmM,IAG7B9R,GAAMkxN,kBAAoB,SAASr2M,IACjC,IAAIlV,GAASjH,KAAK8jE,OAAO78D,OACzB,OAAGkV,IACDA,GAAI,GAAKja,KAAK8tD,IAAI/oD,GAAO,GAAG,IAC5BkV,GAAI,GAAKja,KAAK8tD,IAAI/oD,GAAO,GAAG,IACrBkV,IAEF,CAAEja,KAAK8tD,IAAI/oD,GAAO,GAAG,IAAK/E,KAAK8tD,IAAI/oD,GAAO,GAAG,MAGtD3F,GAAM82L,OAAS,WAEb,OADAp4L,KAAKwxN,aAAaxxN,KAAK+xN,SAChB,CACLv1L,OAAUx8B,KAAKoxN,eAAe5yN,QAC9BgsO,SAAUxqO,KAAKshR,iBAAiB9iR,QAChCsI,SAAU5E,KAAKykB,IAAI3mB,KAAKqxN,eAAe,IACvC30L,QAAU18B,KAAK8jE,OAAO78D,OAAO,GAAG,GAChC01B,QAAU38B,KAAK8jE,OAAO78D,OAAO,GAAG,KAIpC3F,GAAM4gR,SAAW,SAASp9Q,IACxB,IAAI7H,GAAI+C,KAAK+xN,QACT31N,GAAI0I,GAAQ03B,OACbpgC,IACD4D,KAAKw8B,OAAOryB,IAAIlN,GAAGb,GAAE,GAAIA,GAAE,GAAIA,GAAE,IAEnC,IAAIS,GAAIiI,GAAQ0lO,SACb3tO,IACDmD,KAAKwqO,SAASrgO,IAAIlN,GAAGJ,GAAE,GAAIA,GAAE,GAAIA,GAAE,GAAIA,GAAE,IAE3C,IAAIR,GAAIyI,GAAQgC,SACbzK,IAAKA,GAAI,GACV2D,KAAK8jE,OAAO35D,IAAIlN,GAAGiF,KAAKykB,IAAItqB,KAE9B2D,KAAKsyN,kBAAkBxtN,GAAQ43B,QAAS53B,GAAQ63B,WA6B5C,KACA,SAAUlhC,GAAQC,IAExBD,GAAOC,QAUP,SAASymR,cAAehmQ,GAAK9b,GAAGlE,IAC9B,IAAIuO,GAAIrK,GAAE,GAAIuR,GAAIvR,GAAE,GAAI+K,GAAI/K,GAAE,GAAIyZ,GAAIzZ,GAAE,GAKxC,OAJA8b,GAAI,GAAKhgB,GAAE,GAAKuO,GAAIvO,GAAE,GAAKyV,GAAIzV,GAAE,GAAKiP,GAAIjP,GAAE,IAAM2d,GAClDqC,GAAI,GAAKhgB,GAAE,GAAKuO,GAAIvO,GAAE,GAAKyV,GAAIzV,GAAE,GAAKiP,GAAIjP,GAAE,IAAM2d,GAClDqC,GAAI,GAAKhgB,GAAE,GAAKuO,GAAIvO,GAAE,GAAKyV,GAAIzV,GAAE,IAAMiP,GAAIjP,GAAE,IAAM2d,GACnDqC,GAAI,GAAKhgB,GAAE,GAAKuO,GAAIvO,GAAE,GAAKyV,GAAIzV,GAAE,IAAMiP,GAAIjP,GAAE,IAAM2d,GAC5CqC,KAMH,KACA,SAAU1gB,GAAQC,GAASI,IAEjC,IAAIoJ,GAAepJ,GAAoB,QACnC+3L,GAAU/3L,GAAoB,QAE9BupP,GAAUxxD,GAAQ,CAAC,8mCACnByxD,GAAUzxD,GAAQ,CAAC,oxEACnBU,GAAiBV,GAAQ,CAAC,6+BAC1BuuF,GAAUvuF,GAAQ,CAAC,urCAEvBn4L,GAAQwJ,aAAe,SAAUH,IAC/B,IAAIE,GAASC,GAAaH,GAAIsgP,GAASC,GAAS,KAAM,CACpD,CAAChpP,KAAM,KAAMgT,KAAM,QACnB,CAAChT,KAAM,IAAKgT,KAAM,QAClB,CAAChT,KAAM,SAAUgT,KAAM,UAKzB,OAHArK,GAAOE,WAAWwpP,GAAGtpP,SAAW,EAChCJ,GAAOE,WAAWi/B,EAAE/+B,SAAW,EAC/BJ,GAAOE,WAAW28K,OAAOz8K,SAAW,EAC7BJ,IAETvJ,GAAQiK,iBAAmB,SAAUZ,IACnC,IAAIE,GAASC,GAAaH,GAAIsgP,GAAS+8B,GAAS,KAAM,CACpD,CAAC9lR,KAAM,KAAMgT,KAAM,QACnB,CAAChT,KAAM,IAAKgT,KAAM,QAClB,CAAChT,KAAM,SAAUgT,KAAM,UAKzB,OAHArK,GAAOE,WAAWwpP,GAAGtpP,SAAW,EAChCJ,GAAOE,WAAWi/B,EAAE/+B,SAAW,EAC/BJ,GAAOE,WAAW28K,OAAOz8K,SAAW,EAC7BJ,IAETvJ,GAAQqzP,oBAAsB,SAAUhqP,IACtC,IAAIE,GAASC,GAAaH,GAAIwvL,GAAgB+wD,GAAS,KAAM,CAC3D,CAAChpP,KAAM,KAAMgT,KAAM,QACnB,CAAChT,KAAM,IAAKgT,KAAM,WAIpB,OAFArK,GAAOE,WAAWwpP,GAAGtpP,SAAW,EAChCJ,GAAOE,WAAWi/B,EAAE/+B,SAAW,EACxBJ,IAETvJ,GAAQ2mR,wBAA0B,SAAUt9Q,IAC1C,IAAIE,GAASC,GAAaH,GAAIwvL,GAAgB6tF,GAAS,KAAM,CAC3D,CAAC9lR,KAAM,KAAMgT,KAAM,QACnB,CAAChT,KAAM,IAAKgT,KAAM,WAIpB,OAFArK,GAAOE,WAAWwpP,GAAGtpP,SAAW,EAChCJ,GAAOE,WAAWi/B,EAAE/+B,SAAW,EACxBJ,KAMH,OACA,SAAUxJ,GAAQC,GAASI,IAEjC,aAGA,IAAIwmR,GAAaxmR,GAAoB,OAApBA,GAEjBL,GAAOC,QAAU,SAAU6yB,IAAO,OAAOA,KAAQ+zP,IAAsB,OAAR/zP,KAKzD,OACA,SAAU9yB,GAAQC,GAASI,IAEjC,aAGA,IAAIs3H,GAAUt3H,GAAoB,QAE9BsqI,GAAY,CACdzqG,KAAM,GACN4J,KAAM,GACN8gG,SAAU,GACVC,UAAW,IAGb,SAASi8I,MAAM73Q,IACb,IAAIA,GACF,OAAO07H,GAET,IAAI,IAAIpqI,GAAE,EAAGA,GAAE0O,GAAE66B,KAAKlnC,SAAUrC,GAAG,CACjC,IAAIqE,GAAIqK,GAAE66B,KAAKvpC,IAEb0O,GAAE66B,KAAKvpC,IADA,IAANA,GACW,CAACM,KAAM+D,GAAGomI,QAAO,EAAMC,SAAUh8H,GAAEg8H,OAAQhhE,MAAMh7D,GAAEg7D,OAAO,GAE1D,CAACppE,KAAM+D,GAAGomI,QAAO,EAAOC,QAAO,EAAMhhE,MAAO,GAS5D,OANIh7D,GAAE27H,WACJ37H,GAAE27H,SAAW,IAEX37H,GAAE47H,YACJ57H,GAAE47H,UAAY,IAET57H,GAaT,SAAS83Q,OAAO3yD,IAEd,IADA,IAAItqL,GAAO,GACHvpC,GAAE,EAAGA,GAAE6zN,GAAUtqL,KAAKlnC,SAAUrC,GACtCupC,GAAKtkC,KAAK,IAAIjF,IAKhB,OAHc,IAAImF,SAAS,IAAK,CAC9B,mBAAoB0uN,GAAUrpL,SAAU,eAAgBjB,GAAKnkC,KAAK,KAAM,QAASmkC,GAAKnkC,KAAK,KAAM,gBACjGA,KAAK,IACAwO,CAlBT,SAAS6yQ,SAAS5yD,IAChB,OAAOz8F,GAAQ,CACb7tF,KAAUsqL,GAAUtqL,KACpBghG,IAAUg8I,MAAM1yD,GAAUtpF,KAC1B5qG,KAAU4mP,MAAM1yD,GAAUl0L,MAC1B6qG,KAAU+7I,MAAM1yD,GAAU3uN,MAC1BslC,SAAUqpL,GAAUrpL,WAYPi8O,CAAS5yD,KAG1B,IAAI6yD,GAAa,CACfzqQ,IAAM,IACNuT,IAAM,IACNs0C,IAAM,IACN3wC,IAAM,IACNspB,IAAM,IACNkqO,KAAM,IACNC,IAAM,IACNC,KAAM,IACNC,OAAQ,KACRC,OAAQ,KACRC,QAAS,QAEV,WACC,IAAI,IAAI76Q,MAAMu6Q,GAAY,CACxB,IAAIhyK,GAAKgyK,GAAWv6Q,IACpBzM,GAAQyM,IAAMq6Q,OAAO,CACnBj9O,KAAM,CAAC,QAAQ,QAAQ,SACvB5J,KAAM,CAAC4J,KAAK,CAAC,IAAI,IAAI,KACd5J,KAAM,MAAM+0E,GAAG,KACtBlqE,SAAUr+B,KAEZzM,GAAQyM,GAAG,MAAQq6Q,OAAO,CACxBj9O,KAAM,CAAC,QAAQ,SACf5J,KAAM,CAAC4J,KAAK,CAAC,IAAI,KACV5J,KAAK,IAAI+0E,GAAG,MACnBg2B,QAAQ,EACRlgG,SAAUr+B,GAAG,OAEfzM,GAAQyM,GAAG,KAAOq6Q,OAAO,CACvBj9O,KAAM,CAAC,QAAS,QAAS,UACzB5J,KAAM,CAAC4J,KAAK,CAAC,IAAI,IAAI,KACd5J,KAAK,MAAM+0E,GAAG,KACrBlqE,SAAUr+B,GAAG,MAEfzM,GAAQyM,GAAG,OAASq6Q,OAAO,CACzBj9O,KAAM,CAAC,QAAQ,UACf5J,KAAM,CAAC4J,KAAK,CAAC,IAAI,KACV5J,KAAK,IAAI+0E,GAAG,MACnBg2B,QAAQ,EACRlgG,SAAUr+B,GAAG,SA3BlB,GAgCD,IAAI86Q,GAAY,CACdC,IAAK,IACLC,KAAM,IACN/2M,IAAK,IACLg3M,MAAO,SAER,WACC,IAAI,IAAIj7Q,MAAM86Q,GAAW,CACvB,IAAIvyK,GAAKuyK,GAAU96Q,IACnBzM,GAAQyM,IAAMq6Q,OAAO,CACnBj9O,KAAM,CAAC,QAAS,SAChB5J,KAAM,CAAC4J,KAAK,CAAC,IAAI,KACV5J,KAAK,KAAK+0E,GAAG,KACpBlqE,SAAUr+B,KAEZzM,GAAQyM,GAAG,MAAQq6Q,OAAO,CACxBj9O,KAAM,CAAC,SACP5J,KAAM,CAAC4J,KAAK,CAAC,KACN5J,KAAK,KAAK+0E,GAAG,KACpBg2B,QAAQ,EACRhhE,MAAO,EACPl/B,SAAUr+B,GAAG,QAflB,GAoBD,IAAIk7Q,GAAa,CACfvpF,IAAK,KACLJ,GAAI,KACJ3iB,GAAI,MACJusG,IAAK,MACL32P,GAAI,IACJC,GAAI,IACJ22P,IAAK,KACLC,IAAK,OAEN,WACC,IAAI,IAAIr7Q,MAAMk7Q,GAAY,CACxB,IAAI3yK,GAAK2yK,GAAWl7Q,IACpBzM,GAAQyM,IAAMq6Q,OAAO,CACnBj9O,KAAM,CAAC,QAAQ,QAAQ,SACvB5J,KAAM,CAAC4J,KAAK,CAAC,IAAK,IAAK,KAChB5J,KAAK,MAAM+0E,GAAG,KACrBlqE,SAAUr+B,KAEZzM,GAAQyM,GAAG,KAAOq6Q,OAAO,CACvBj9O,KAAM,CAAC,QAAQ,QAAQ,UACvB5J,KAAM,CAAC4J,KAAK,CAAC,IAAK,IAAK,KAChB5J,KAAK,MAAM+0E,GAAG,KACrBlqE,SAAUr+B,GAAG,MAEfzM,GAAQyM,GAAG,MAAQq6Q,OAAO,CACxBj9O,KAAM,CAAC,QAAS,SAChB5J,KAAM,CAAC4J,KAAK,CAAC,IAAK,KACX5J,KAAK,MAAM+0E,GAAG,KACrBg2B,QAAO,EACPhhE,MAAM,EACNl/B,SAAUr+B,GAAG,OAEfzM,GAAQyM,GAAG,OAASq6Q,OAAO,CACzBj9O,KAAM,CAAC,QAAS,UAChB5J,KAAM,CAAC4J,KAAK,CAAC,IAAI,KACV5J,KAAK,MAAM+0E,GAAG,KACrBg2B,QAAO,EACPhhE,MAAM,EACNl/B,SAAUr+B,GAAG,SA7BlB,GAkCD,IAAIs7Q,GAAa,CACf,MACA,OACA,OACA,OACA,OACA,MACA,MACA,QACA,MACA,QACA,MACA,OACA,QAED,WACC,IAAI,IAAIznR,GAAE,EAAGA,GAAEynR,GAAWplR,SAAUrC,GAAG,CACrC,IAAIooC,GAAIq/O,GAAWznR,IACnBN,GAAQ0oC,IAAKo+O,OAAO,CACJj9O,KAAM,CAAC,QAAS,SAChBghG,IAAK,CAAChhG,KAAK,GAAI5J,KAAK,eAAeyI,GAAGiiG,SAAS,CAAC,WAChD1qG,KAAM,CAAC4J,KAAK,CAAC,IAAI,KAAM5J,KAAK,cAAe0qG,SAAS,CAAC,WACrD7/F,SAAUpC,KAE1B1oC,GAAQ0oC,GAAE,MAAQo+O,OAAO,CACPj9O,KAAM,CAAC,SACPghG,IAAK,CAAChhG,KAAK,GAAI5J,KAAK,eAAeyI,GAAGiiG,SAAS,CAAC,WAChD1qG,KAAM,CAAC4J,KAAM,CAAC,KAAM5J,KAAK,cAAe0qG,SAAS,CAAC,WAClDK,QAAQ,EACRhhE,MAAO,EACPl/B,SAAUpC,GAAE,QAfjC,GAoBD,IAAIs/O,GAAY,CACd,MACA,MACA,QACA,QAED,WACC,IAAI,IAAI1nR,GAAE,EAAGA,GAAE0nR,GAAUrlR,SAAUrC,GAAG,CACpC,IAAIooC,GAAGs/O,GAAU1nR,IACjBN,GAAQ0oC,IAAKo+O,OAAO,CACNj9O,KAAK,CAAC,QAAS,QAAS,SACxBghG,IAAK,CAAChhG,KAAK,GAAI5J,KAAK,eAAeyI,GAAGiiG,SAAS,CAAC,WAChD1qG,KAAM,CAAC4J,KAAK,CAAC,IAAI,IAAI,KAAM5J,KAAK,gBAAiB0qG,SAAS,CAAC,WAC3D7/F,SAAUpC,KAExB1oC,GAAQ0oC,GAAE,KAAOo+O,OAAO,CACVj9O,KAAK,CAAC,QAAS,QAAS,UACxBghG,IAAK,CAAChhG,KAAK,GAAI5J,KAAK,eAAeyI,GAAGiiG,SAAS,CAAC,WAChD1qG,KAAM,CAAC4J,KAAK,CAAC,IAAI,IAAI,KAAM5J,KAAK,gBAAiB0qG,SAAS,CAAC,WAC3D7/F,SAAUpC,GAAE,MAE1B1oC,GAAQ0oC,GAAE,MAAQo+O,OAAO,CAAEj9O,KAAK,CAAC,QAAS,SAC5BghG,IAAK,CAAChhG,KAAK,GAAI5J,KAAK,eAAeyI,GAAGiiG,SAAS,CAAC,WAChD1qG,KAAM,CAAC4J,KAAK,CAAC,IAAI,KAAM5J,KAAK,gBAAiB0qG,SAAS,CAAC,WACvDK,QAAQ,EACRhhE,MAAO,EACPl/B,SAAUpC,GAAE,OAE1B1oC,GAAQ0oC,GAAE,OAASo+O,OAAO,CAAEj9O,KAAK,CAAC,QAAS,UAC7BghG,IAAK,CAAChhG,KAAK,GAAI5J,KAAK,eAAeyI,GAAGiiG,SAAS,CAAC,WAChD1qG,KAAM,CAAC4J,KAAK,CAAC,IAAI,KAAM5J,KAAK,gBAAiB0qG,SAAS,CAAC,WACvDK,QAAO,EACPhhE,MAAM,EACNl/B,SAAUpC,GAAE,SA3B7B,GAgCD,IAAIu/O,GAAe,CACjB,QACA,QAED,WACC,IAAI,IAAI3nR,GAAE,EAAGA,GAAE2nR,GAAatlR,SAAUrC,GAAG,CACvC,IAAIooC,GAAGu/O,GAAa3nR,IACpBN,GAAQ0oC,GAAE,MAAQo+O,OAAO,CACXj9O,KAAK,CAAC,QAAS,QAAS,SACxBghG,IAAK,CAAChhG,KAAK,GAAI5J,KAAK,eAAeyI,GAAGiiG,SAAS,CAAC,WAChD1qG,KAAM,CAAC4J,KAAK,CAAC,IAAI,IAAI,KAAM5J,KAAK,gBAAiB0qG,SAAS,CAAC,WAC3D7/F,SAAUpC,GAAE,OAE1B1oC,GAAQ0oC,GAAE,OAASo+O,OAAO,CACZj9O,KAAK,CAAC,QAAS,QAAS,UACxBghG,IAAK,CAAChhG,KAAK,GAAI5J,KAAK,eAAeyI,GAAGiiG,SAAS,CAAC,WAChD1qG,KAAM,CAAC4J,KAAK,CAAC,IAAI,IAAI,KAAM5J,KAAK,gBAAiB0qG,SAAS,CAAC,WAC3D7/F,SAAUpC,GAAE,QAE1B1oC,GAAQ0oC,GAAE,QAAUo+O,OAAO,CAAEj9O,KAAK,CAAC,QAAS,SAC9BghG,IAAK,CAAChhG,KAAK,GAAI5J,KAAK,eAAeyI,GAAGiiG,SAAS,CAAC,WAChD1qG,KAAM,CAAC4J,KAAK,CAAC,IAAI,KAAM5J,KAAK,gBAAiB0qG,SAAS,CAAC,WACvDK,QAAQ,EACRhhE,MAAO,EACPl/B,SAAUpC,GAAE,SAE1B1oC,GAAQ0oC,GAAE,SAAWo+O,OAAO,CAAEj9O,KAAK,CAAC,QAAS,UAC/BghG,IAAK,CAAChhG,KAAK,GAAI5J,KAAK,eAAeyI,GAAGiiG,SAAS,CAAC,WAChD1qG,KAAM,CAAC4J,KAAK,CAAC,IAAI,KAAM5J,KAAK,gBAAiB0qG,SAAS,CAAC,WACvDK,QAAO,EACPhhE,MAAM,EACNl/B,SAAUpC,GAAE,WA3B7B,GAgCD1oC,GAAQkoR,IAAMxwJ,GAAQ,CACpB7tF,KAAK,CAAC,SACNghG,IAAKH,GACLzqG,KAAM,CAAC4J,KAAK,CAAC,CAACjpC,KAAK,IAAKmqI,QAAO,EAAOC,QAAO,EAAMhhE,MAAM,IAAK/pC,KAAM,qBAAsB2qG,UAAW,GAAID,SAAU,IACnHG,KAAM,CAACjhG,KAAK,GAAI+gG,UAAU,GAAID,SAAS,GAAI1qG,KAAK,gBAChD6K,SAAU,QAGZ9qC,GAAQ6xD,IAAM6lE,GAAQ,CACpB7tF,KAAK,CAAC,SACNghG,IAAKH,GACLzqG,KAAM,CAAC4J,KAAK,CAAC,CAACjpC,KAAK,IAAKmqI,QAAO,EAAOC,QAAO,EAAMhhE,MAAM,IAAK/pC,KAAM,uBAAwB2qG,UAAW,GAAID,SAAU,IACrHG,KAAM,CAACjhG,KAAK,GAAI+gG,UAAU,GAAID,SAAS,GAAI1qG,KAAK,eAChD6K,SAAU,QAGZ9qC,GAAQ40D,IAAM8iE,GAAQ,CACpB7tF,KAAK,CAAC,SACNghG,IAAK,CAAChhG,KAAK,GAAI+gG,UAAU,GAAID,SAAS,CAAC,UAAW1qG,KAAK,YACvDA,KAAM,CAAC4J,KAAK,CAAC,CAACjpC,KAAK,IAAKmqI,QAAO,EAAOC,QAAO,EAAMhhE,MAAM,IAAK/pC,KAAM,YAAa2qG,UAAW,GAAID,SAAU,CAAC,WAC3GG,KAAM,CAACjhG,KAAK,GAAI+gG,UAAU,GAAID,SAAS,CAAC,UAAW1qG,KAAK,iBACxD6K,SAAU,QAGZ9qC,GAAQmoR,KAAOzwJ,GAAQ,CACrB7tF,KAAK,CAAC,SACNghG,IAAK,CAAChhG,KAAK,GAAI+gG,UAAU,GAAID,SAAS,CAAC,UAAW1qG,KAAK,YACvDA,KAAM,CAAC4J,KAAK,CAAC,CAACjpC,KAAK,IAAKmqI,QAAO,EAAOC,QAAO,EAAMhhE,MAAM,IAAK/pC,KAAM,YAAa2qG,UAAW,GAAID,SAAU,CAAC,WAC3GG,KAAM,CAACjhG,KAAK,GAAI+gG,UAAU,GAAID,SAAS,CAAC,UAAW1qG,KAAK,iBACxD6K,SAAU,SAGZ9qC,GAAQooR,aAAe1wJ,GAAQ,CAC7B7tF,KAAK,CAAC,SACNghG,IAAK,CAAChhG,KAAK,GAAI+gG,UAAU,GAAID,SAAS,CAAC,UAAW1qG,KAAK,YACvDA,KAAM,CAAC4J,KAAK,CAAC,CAACjpC,KAAK,IAAKmqI,QAAO,EAAOC,QAAO,EAAMhhE,MAAM,IAAK/pC,KAAM,cAAe2qG,UAAW,GAAID,SAAU,CAAC,WAC7GG,KAAM,CAACjhG,KAAK,GAAI+gG,UAAU,GAAID,SAAS,CAAC,UAAW1qG,KAAK,iBACxD6K,SAAU,iBAGZ9qC,GAAQqoR,MAAQ3wJ,GAAQ,CACtB7tF,KAAK,CAAC,SACNghG,IAAK,CAAChhG,KAAK,GAAI+gG,UAAU,GAAID,SAAS,CAAC,UAAW1qG,KAAK,YACvDA,KAAM,CAAC4J,KAAK,CAAC,CAACjpC,KAAK,IAAKmqI,QAAO,EAAOC,QAAO,EAAMhhE,MAAM,IAAK/pC,KAAM,cAAe2qG,UAAW,GAAID,SAAU,CAAC,WAC7GG,KAAM,CAACjhG,KAAK,GAAI+gG,UAAU,GAAID,SAAS,CAAC,UAAW1qG,KAAK,4BACxD6K,SAAU,UAIZ9qC,GAAQsoR,QAAU5wJ,GAAQ,CACxB7tF,KAAK,CAAC,SACNghG,IAAK,CAAChhG,KAAK,GAAI+gG,UAAU,GAAID,SAAS,CAAC,UAAW1qG,KAAK,YACvDA,KAAM,CAAC4J,KAAK,CAAC,CAACjpC,KAAK,IAAKmqI,QAAO,EAAOC,QAAO,EAAMhhE,MAAM,IAAK/pC,KAAK,sDAAuD2qG,UAAW,GAAID,SAAU,CAAC,WACpJG,KAAM,CAACjhG,KAAK,GAAI+gG,UAAU,GAAID,SAAS,CAAC,UAAW1qG,KAAK,iBACxD6K,SAAU,YAGZ9qC,GAAQuoR,MAAQ7wJ,GAAQ,CACtB7tF,KAAK,CAAC,SACNghG,IAAK,CAAChhG,KAAK,GAAI+gG,UAAU,GAAID,SAAS,CAAC,UAAW1qG,KAAK,YACvDA,KAAM,CAAC4J,KAAK,CAAC,CAACjpC,KAAK,IAAKmqI,QAAO,EAAOC,QAAO,EAAMhhE,MAAM,IAAK/pC,KAAM,mBAAoB2qG,UAAW,GAAID,SAAU,CAAC,WAClHG,KAAM,CAACjhG,KAAK,GAAI+gG,UAAU,GAAID,SAAS,CAAC,UAAW1qG,KAAK,iBACxD6K,SAAU,UAGZ9qC,GAAQ6vB,IAAM6nG,GAAQ,CACpB7tF,KAAM,CAAE,SACRghG,IACC,CAAE5qG,KAAM,mBACN4J,KAAM,GACN8gG,SAAU,CAAE,UACZC,UAAW,IACd3qG,KACC,CAAEA,KAAM,mDACN4J,KAAM,CAAC,CAAC,KAAO,kBAAkB,QAAS,EAAM,QAAS,EAAK,MAAQ,IACtE8gG,SAAU,CAAE,UACZC,UAAW,IACdE,KACC,CAAE7qG,KAAM,gBACN4J,KAAM,GACN8gG,SAAU,CAAE,UACZC,UAAW,MAGhB5qI,GAAQwoR,IAAM9wJ,GAAQ,CACpB7tF,KAAM,CAAE,SACRghG,IACC,CAAE5qG,KAAM,kBACN4J,KAAM,GACN8gG,SAAU,CAAE,UACZC,UAAW,IACd3qG,KACC,CAAEA,KAAM,mDACN4J,KAAM,CAAC,CAAC,KAAO,kBAAkB,QAAS,EAAM,QAAS,EAAK,MAAQ,IACtE8gG,SAAU,CAAE,UACZC,UAAW,IACdE,KACC,CAAE7qG,KAAM,gBACN4J,KAAM,GACN8gG,SAAU,CAAE,UACZC,UAAW,MAGhB5qI,GAAQyoR,OAAS/wJ,GAAQ,CACvB7tF,KAAK,CAAC,QAAQ,QAAQ,SACtBghG,IAAI,CACF5qG,KAAK,oDACL4J,KAAK,CACH,CAACjpC,KAAK,kBAAkBmqI,QAAO,EAAMC,QAAO,EAAMhhE,MAAM,GACxD,CAACppE,KAAK,kBAAkBmqI,QAAO,EAAMC,QAAO,EAAMhhE,MAAM,GACxD,CAACppE,KAAK,kBAAkBmqI,QAAO,EAAMC,QAAO,EAAKhhE,MAAM,IAEzD2gE,SAAS,CAAC,SAAS,UACnBC,UAAU,IACZ3qG,KAAK,CACHA,KAAK,iLACL4J,KAAK,CACH,CAACjpC,KAAK,kBAAkBmqI,QAAO,EAAMC,QAAO,EAAKhhE,MAAM,GACvD,CAACppE,KAAK,kBAAkBmqI,QAAO,EAAMC,QAAO,EAAKhhE,MAAM,IACzD2gE,SAAS,CAAC,SAAS,UACnBC,UAAU,CAAC,gBACbE,KAAK,CACH7qG,KAAK,kBACL4J,KAAK,GACL8gG,SAAS,CAAC,UACVC,UAAU,MAGd5qI,GAAQ0oR,OAAShxJ,GAAQ,CACvB7tF,KAAK,CAAC,QAAQ,QAAQ,SACtBghG,IAAI,CACF5qG,KAAK,qDACL4J,KAAK,CACH,CAACjpC,KAAK,kBAAkBmqI,QAAO,EAAMC,QAAO,EAAMhhE,MAAM,GACxD,CAACppE,KAAK,kBAAkBmqI,QAAO,EAAMC,QAAO,EAAMhhE,MAAM,GACxD,CAACppE,KAAK,kBAAkBmqI,QAAO,EAAMC,QAAO,EAAKhhE,MAAM,IAEzD2gE,SAAS,CAAC,SAAS,UACnBC,UAAU,IACZ3qG,KAAK,CACHA,KAAK,iLACL4J,KAAK,CACH,CAACjpC,KAAK,kBAAkBmqI,QAAO,EAAMC,QAAO,EAAKhhE,MAAM,GACvD,CAACppE,KAAK,kBAAkBmqI,QAAO,EAAMC,QAAO,EAAKhhE,MAAM,IACzD2gE,SAAS,CAAC,SAAS,UACnBC,UAAU,CAAC,gBACbE,KAAK,CACH7qG,KAAK,kBACL4J,KAAK,GACL8gG,SAAS,CAAC,UACVC,UAAU,MAGd5qI,GAAQsG,OAASwgR,OAAO,CACtBj9O,KAAM,CAAC,SACPghG,IAAK,CAAChhG,KAAK,GAAI5J,KAAK,qBAAsB0qG,SAAS,CAAC,WACpD1qG,KAAM,CAAC4J,KAAM,CAAC,KAAM5J,KAAK,aAAc0qG,SAAS,CAAC,WACjD7/F,SAAU,WAGZ9qC,GAAQiZ,OAAS6tQ,OAAO,CACtBj9O,KAAK,CAAC,QAAS,SACf5J,KAAM,CAAC4J,KAAK,CAAC,IAAK,KAAM5J,KAAK,OAC7B6K,SAAU,WAEZ9qC,GAAQ2oR,QAAU7B,OAAO,CACvBj9O,KAAK,CAAC,QAAS,UACf5J,KAAM,CAAC4J,KAAK,CAAC,IAAK,KAAM5J,KAAK,OAC7B6K,SAAU,YAGZ9qC,GAAQy4P,OAAS/gI,GAAQ,CACvB7tF,KAAK,CAAC,QAAS,SACfghG,IAAKH,GACLzqG,KAAM,CAAC4J,KAAK,CAAC,CAACjpC,KAAK,IAAKmqI,QAAO,EAAOC,QAAO,EAAMhhE,MAAM,GAC5C,CAACppE,KAAK,IAAKmqI,QAAO,EAAOC,QAAO,EAAMhhE,MAAM,IACnD/pC,KAAM,0BACN2qG,UAAW,GACXD,SAAU,IAChBG,KAAM,CAACjhG,KAAK,GAAI+gG,UAAU,GAAID,SAAS,GAAI1qG,KAAK,eAChD6K,SAAU,YAQN,OACA,SAAU/qC,GAAQC,IAExBD,GAAOC,QAAU,SAASD,IAoBzB,OAnBKA,GAAO6oR,kBACX7oR,GAAOkgL,UAAY,aACnBlgL,GAAOk8G,MAAQ,GAEVl8G,GAAO+/F,WAAU//F,GAAO+/F,SAAW,IACxC/+F,OAAOC,eAAejB,GAAQ,SAAU,CACvCkB,YAAY,EACZC,IAAK,WACJ,OAAOnB,GAAOQ,KAGhBQ,OAAOC,eAAejB,GAAQ,KAAM,CACnCkB,YAAY,EACZC,IAAK,WACJ,OAAOnB,GAAOO,KAGhBP,GAAO6oR,gBAAkB,GAEnB7oR,KAMF,KACA,SAAUA,GAAQC,GAASI,IAEjC,aAGA,IAAIyoR,GAAczoR,GAAoB,QAEtCL,GAAOC,QAAU,SAAUsB,IAC1B,GAAqB,mBAAVA,GAAsB,OAAO,EAExC,IAAKc,eAAe5B,KAAKc,GAAO,UAAW,OAAO,EAElD,IACC,GAA4B,iBAAjBA,GAAMqB,OAAqB,OAAO,EAC7C,GAA0B,mBAAfrB,GAAMd,KAAqB,OAAO,EAC7C,GAA2B,mBAAhBc,GAAM0B,MAAsB,OAAO,EAC7C,MAAOub,IACR,OAAO,EAGR,OAAQsqQ,GAAYvnR,MAMf,KACA,SAAUvB,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAU,CACbiT,WAAY,QACZrS,KAAM,eACNsS,eAAgB9S,GAAoB,QACpC+S,WAAY,CAAC,QAAS,UAAW,aAAc,gBAE/C1J,WAAYrJ,GAAoB,QAChCiT,eAAgBjT,GAAoB,QAAQiT,eAC5C4sD,SAAU7/D,GAAoB,QAC9BmmB,aAAcnmB,GAAoB,SAClC+O,KAAM/O,GAAoB,QAC1BkT,KAAMlT,GAAoB,QAC1BmQ,MAAOnQ,GAAoB,QAAQmQ,MACnC2vD,cAAe9/D,GAAoB,QAAQ8/D,cAC3C3sD,YAAanT,GAAoB,QAAQmT,YACzCC,aAAcpT,GAAoB,QAElCgT,KAAM,KASJ,OACA,SAAUrT,GAAQC,GAASI,IAEjC,aAYAL,GAAOC,QAAU,CAGb8oR,QAAS,CACLx0Q,KAAM,EACNwsB,OAAQ,GACRvsB,MAAO,EACPke,OAAQ,EACRpG,OAAQ,GACRqG,IAAK,GAGTqvM,QAAS,CACLztN,KAAM,EACNwsB,OAAQ,GACRvsB,MAAO,EACPke,OAAQ,EACRpG,OAAQ,GACRqG,IAAK,GAGTsvM,QAAS,CACL1tN,KAAM,EACNwsB,OAAQ,GACRvsB,MAAO,EACPke,OAAQ,EACRpG,OAAQ,GACRqG,IAAK,GAGT3K,aAAc,IASdiqB,UAAW,GAIXD,UAAW,IAEXE,cAAe,CACX39B,KAAM,QACNC,MAAO,OACPme,IAAK,SACLD,OAAQ,SAOV,OACA,SAAU1yB,GAAQC,GAASI,IAEjC,aAWA,IAAI2oR,GAAQ3oR,GAAoB,QAEhCJ,GAAQY,KAAO,YAEfZ,GAAQsT,KAAO,SAASlE,GAAIwkD,GAAQ75B,GAAgBC,IAChD+uP,GAAMC,aAAahpR,GAAQY,KAAMwO,GAAIwkD,GAAQ75B,GAAgBC,KAGjEh6B,GAAQ26D,MAAQ,SAASC,GAAaC,GAAeC,GAAaC,IAC9DguN,GAAME,cAAcjpR,GAAQY,KAAMg6D,GAAaC,GAAeC,GAAaC,MAMzE,OACA,SAAUh7D,GAAQC,IAExBD,GAAOC,QAQP,SAASo1G,cAAezwG,IACtB,IAAIqK,GAAIrK,GAAE,GACRuR,GAAIvR,GAAE,GACN+K,GAAI/K,GAAE,GACNyZ,GAAIzZ,GAAE,GACR,OAAOqK,GAAIA,GAAIkH,GAAIA,GAAIxG,GAAIA,GAAI0O,GAAIA,KAM/B,OACA,SAAUre,GAAQC,GAASI,IAEjC,aAYA,IAAIujB,GAAavjB,GAAoB,QAAQujB,WACzCulQ,GAAY9oR,GAAoB,QAChC+oR,GAAW/oR,GAAoB,QAEnC,SAASsoF,eAAe0gM,IACpB,MAAO,CACH5wP,KAAM,CACFzuB,MAAO4Z,GAAW,GAAIwlQ,GAAS3wP,KAAKzuB,MAAO,CAACka,KAAMmlQ,KAClDtnQ,MAAOqnQ,GAAS3wP,KAAK1W,MACrBqC,SAAU,SAGdqoE,UAAW28L,GAAS38L,UACpBroE,SAAU,SAIlBpkB,GAAOC,QAAU,CACbgP,EAAGk6Q,GAAUl6Q,EACbs/M,KAAM46D,GAAU56D,KAChBC,KAAM26D,GAAU36D,KAChBC,IAAK06D,GAAU16D,IACfC,MAAOy6D,GAAUz6D,MAEjBj2L,KAAM,CACF1W,MAAO6B,GAAW,GAAIwlQ,GAAS3wP,KAAK1W,MAAO,IAG3CqC,SAAU,SAGdslE,WAAYf,eAAewgM,GAAUz/L,WAAWjxD,KAAKzuB,MAAMka,MAE3DylE,WAAYhB,eAAewgM,GAAUx/L,WAAWlxD,KAAKzuB,MAAMka,MAE3DnU,KAAMo5Q,GAAUp5Q,KAChBgV,UAAWokQ,GAAUpkQ,UACrB+jH,aAAcllH,GAAW,GAAIwlQ,GAAStgJ,aAAc,CAAE5kH,KAAM,IAE5Dg2C,WAAYivN,GAAUjvN,aAMpB,KACA,SAAUl6D,GAAQC,GAASI,IAEjC,aAYA,IAAIiY,GAAMjY,GAAoB,QAE9BL,GAAOC,QAAU,SAAS04N,oBAAoBtlL,GAAQkQ,GAAQq6B,GAAWttD,IAGrE,GAFIA,KAAMA,GAAO,IACA+iB,GAAO,uBACT,CACX,IAAIi2O,GAAa/lO,GAAO1hC,KACxBvJ,GAAI48E,WAAW7hD,GAAQ,qBAAsB,CACzC9xB,OAAQ+nQ,GAAW/nQ,OACnB+C,KAAMglQ,GAAWhlQ,KACjBta,MAAO4zE,KAEXvqC,GAAO,yBAGU,IAAlB/iB,GAAK43I,UAAoB70H,GAAO,kBAMjC,KACA,SAAUrzC,GAAQC,GAASI,IAEjC,IAAIohJ,GAAYphJ,GAAoB,QAChC2nP,GAAyB3nP,GAAoB,QAG7C8hP,aAAe,SAAUonC,IAC3B,OAAO,SAAUlnC,GAAO5uM,IACtB,IAGIsK,GAAOyrO,GAHPhrO,GAAIp8B,OAAO4lO,GAAuB3F,KAClC14O,GAAW83I,GAAUhuG,IACrBnvB,GAAOk6B,GAAE57C,OAEb,OAAI+G,GAAW,GAAKA,IAAY2a,GAAailQ,GAAoB,QAAKpmQ,GACtE46B,GAAQS,GAAE8mB,WAAW37D,KACN,OAAUo0C,GAAQ,OAAUp0C,GAAW,IAAM2a,KACtDklQ,GAAShrO,GAAE8mB,WAAW37D,GAAW,IAAM,OAAU6/Q,GAAS,MAC1DD,GAAoB/qO,GAAE3wB,OAAOlkB,IAAYo0C,GACzCwrO,GAAoB/qO,GAAEz7C,MAAM4G,GAAUA,GAAW,GAA+B6/Q,GAAS,OAAlCzrO,GAAQ,OAAU,IAA0B,QAI7G/9C,GAAOC,QAAU,CAGfwpR,OAAQtnC,cAAa,GAGrBt0N,OAAQs0N,cAAa,KAMjB,OACA,SAAUniP,GAAQC,GAASI,IAEjC,aAWA,IAAIiY,GAAMjY,GAAoB,QAC1Bw8D,GAAqBx8D,GAAoB,QACzCqJ,GAAarJ,GAAoB,QAErCL,GAAOC,QAAU,SAASqT,eAAe4lD,GAASC,GAAU4D,GAAcxZ,IACtE,SAASlQ,OAAO1qB,GAAMzE,IAClB,OAAO5L,GAAI+6B,OAAO6lB,GAASC,GAAUzvD,GAAYif,GAAMzE,IAG3D,IAAI2pE,GAAMx6C,OAAO,QAAU,GACvB26C,GAAM36C,OAAO,QAAU,GAEvB9iB,GAAM9pB,KAAKoC,IAAIglF,GAAIjrF,OAAQorF,GAAIprF,QAC/B2tB,IAKJ4oC,GAASzhD,QAAU6Y,GAEnB8iB,OAAO,KACPA,OAAO,UACPA,OAAO,SAEPA,OAAO,QACPA,OAAO,aACPA,OAAO,iBAEPwpB,GAAmB3D,GAASC,GAAU5V,GAAQlQ,OAAQ,CAACgqB,OAAQ,GAAI3tD,QAAS,OAdxEypD,GAAStmD,SAAU,IAoBrB,KACA,SAAU7S,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAUI,GAAoB,SAK/B,KACA,SAAUL,GAAQC,GAASI,IAEjC,aAGA,IAAIqpR,GAAY1oR,OAAOY,OAAO,MAAO2E,GAASE,KAAKF,OAEnDvG,GAAOC,QAAU,WAChB,IAAIoI,GACJ,GACCA,GAAM9B,KAAS2W,SAAS,IAAIna,MAAM,SAC1B2mR,GAAUrhR,KACnB,OAAOA,KAMF,OACA,SAAUrI,GAAQC,GAASI,IAEjC,IAAI4/K,GAAW5/K,GAAoB,QAC/BgO,GAAUhO,GAAoB,QAG9BsmI,GAFkBtmI,GAAoB,OAE5BomI,CAAgB,WAI9BzmI,GAAOC,QAAU,SAAU0pR,GAAe/mR,IACxC,IAAIslM,GASF,OARE75L,GAAQs7Q,MAGM,mBAFhBzhF,GAAIyhF,GAAczrP,cAEagqK,KAAM/kM,QAASkL,GAAQ65L,GAAE9lM,WAC/C69K,GAASioB,KAEN,QADVA,GAAIA,GAAEvhE,OACUuhE,QAAI/kL,GAH+C+kL,QAAI/kL,GAKlE,SAAWA,IAAN+kL,GAAkB/kM,MAAQ+kM,IAAc,IAAXtlM,GAAe,EAAIA,MAM1D,OACA,SAAU5C,GAAQC,GAASI,IAEjC,aAYA,IAmEIopH,GAAQC,GAnER95G,GAAKvP,GAAoB,QACzBwP,GAAYxP,GAAoB,QAEhC8yL,GAAU9yL,GAAoB,QAC9B28C,GAAM38C,GAAoB,QAAQ28C,IAElC1L,GAAYjxC,GAAoB,QAChCyxC,GAASR,GAAUQ,OACnBL,GAASH,GAAUG,OACnBC,GAAUJ,GAAUI,QACpBC,GAASL,GAAUK,OACnBC,GAASN,GAAUM,OACnBg4O,GAAUt4O,GAAUs4O,QAEpB/vP,GAAWx5B,GAAoB,QAE/BwpR,GAAYj6Q,GAAGo8D,KAAK83B,OAAO+mB,IAE3Bi/J,GAAkB,mIAElBC,GAAqB,qIAGrBC,IAAS,IAAI3sQ,MAAOoC,cAAgB,GAExC,SAASwqQ,gBAAgBnwQ,IACrB,OACIA,IACA+f,GAASm6J,mBAAmBr6K,WACR,iBAAbG,IAAsC,cAAbA,GA6LxC,SAASowQ,KAAKp3P,GAAK1X,IACf,OAAOgH,OAAO0Q,GAAMrsB,KAAKq5B,IAAI,GAAI1kB,KAASnI,OAAO,GArLrDhT,GAAQq8C,UAAY,SAASxiC,GAAUqwQ,IACnC,OAAGF,gBAAgBnwQ,IACRqwQ,GACHtwP,GAASua,mBAAmB,YAAa,oBAAoBt6B,IAC7D+f,GAASua,mBAAmB,YAAa,kBAAkBt6B,IAExDqwQ,GAAS,aAAe,cAOvClqR,GAAQg1F,UAAY,SAASn7E,IACzB,OAAGmwQ,gBAAgBnwQ,IACR+f,GAASua,mBAAmB,YAAa,aAAat6B,IAEtD,CAAC,aAAc,eAK9B7Z,GAAQmqR,SAAW,SAAStmR,IACxB,MAAoB,iBAANA,IAAwB,OAANA,IAAmC,mBAAdA,GAAEkgO,SA6D3D/jO,GAAQ+mH,YAAc,SAASzkH,GAAGuX,IAE9B,GAAG7Z,GAAQmqR,SAAS7nR,IAAI,CAGpB,IAAI8nR,GAAW9nR,GAAE+nR,oBAAsB34O,GACnC44O,IAAehoR,GAAEioR,gBAAkBjoR,GAAE4gL,cAAgBxxI,IACpDpvC,GAAEkoR,gBAAkBloR,GAAE6gL,cAAgBxxI,IACtCrvC,GAAEmoR,qBAAuBnoR,GAAEooR,mBAEhC,GAAGJ,GAAa,CACZ,IAAIK,GAAO,EAAIj5O,GACf04O,GAAWA,GAAWO,GAAO,EAAI5tO,GAAIutO,GAAcF,GAAWO,GAAO,EAAGA,IAG5E,OADAroR,GAAIi2C,OAAOj2C,IAAK8nR,KACR5gK,IAAUlnH,IAAKmnH,GAAennH,GAC/BuvC,GAGX,GAAgB,iBAANvvC,IAA+B,iBAANA,GAAgB,OAAOuvC,GAE1DvvC,GAAI6f,OAAO7f,IAEX,IAAIsoR,GAAUZ,gBAAgBnwQ,IAI1BypE,GAAKhhF,GAAEsrB,OAAO,IACfg9P,IAAmB,MAAPtnM,IAAqB,MAAPA,KACzBhhF,GAAIA,GAAE0Q,OAAO,GACb6G,GAAW,IAGf,IAAIgxQ,GAAYD,IAAqC,YAA1B/wQ,GAAS7G,OAAO,EAAG,GAE1C4V,GAAQtmB,GAAEsmB,MAAMiiQ,GAAYf,GAAqBD,IACrD,IAAIjhQ,GAAO,OAAOipB,GAClB,IAAI37B,GAAI0S,GAAM,GACVnoB,GAAImoB,GAAM,IAAM,IAChBjoB,GAAI43C,OAAO3vB,GAAM,IAAM,GACvBkiQ,GAAIvyO,OAAO3vB,GAAM,IAAM,GACvB01B,GAAI/F,OAAO3vB,GAAM,IAAM,GACvB21B,GAAIhG,OAAO3vB,GAAM,KAAO,GAE5B,GAAGgiQ,GAAS,CAER,GAAgB,IAAb10Q,GAAEvT,OAAc,OAAOkvC,GAG1B,IAAIk5O,GAFJ70Q,GAAIqiC,OAAOriC,IAGX,IACI,IAAI80Q,GAAcpxP,GAASua,mBAAmB,YAAa,SAAzCva,CAAmD/f,IACrE,GAAGgxQ,GAAW,CACV,IAAII,GAA2C,MAA3BxqR,GAAEmtB,OAAOntB,GAAEkC,OAAS,GACxClC,GAAI2oB,SAAS3oB,GAAG,IAChBsqR,GAAQC,GAAY/vQ,QAAQ/E,GAAG80Q,GAAYE,aAAah1Q,GAAGzV,GAAGwqR,IAAgBtqR,SAE9EoqR,GAAQC,GAAY/vQ,QAAQ/E,GAAGqiC,OAAO93C,IAAIE,IAEhD,MAAMud,IAAK,OAAO2zB,GAEpB,OAAIk5O,IAEKA,GAAMpuQ,OAASgtQ,IAAWn4O,GAC9Bs5O,GAAIr5O,GAAY6M,GAAI5M,GAAW6M,GAAI5M,GAHtBE,GAOlB37B,GADY,IAAbA,GAAEvT,QACI41C,OAAOriC,IAAK,IAAO6zQ,IAAU,IAAMA,GACjCxxO,OAAOriC,IAIlBzV,IAAK,EAKL,IAAIkb,GAAO,IAAIyB,KAAKA,KAAK+tQ,IAAI,IAAM1qR,GAAGE,GAAGmqR,GAAGxsO,KAG5C,OAFA3iC,GAAKyvQ,eAAel1Q,IAEjByF,GAAK0vQ,gBAAkB5qR,IACvBkb,GAAK2vQ,eAAiB3qR,GADWkxC,GAG7Bl2B,GAAKooN,UAAYxlL,GAAI5M,IAGhC63E,GAASxpH,GAAQwpH,OAASxpH,GAAQ+mH,YAAY,SAC9C0C,GAASzpH,GAAQypH,OAASzpH,GAAQ+mH,YAAY,4BAG9C/mH,GAAQ8xE,WAAa,SAASxvE,GAAGuX,IAC7B,OAAQ7Z,GAAQ+mH,YAAYzkH,GAAGuX,MAAcg4B,IAgBjD,IAAI05O,GAAa,GAAK/5O,GAClBg6O,GAAa,EAAI/5O,GACjBg6O,GAAU,EAAI/5O,GAyElB,SAASg6O,YAAYjtO,GAASqR,GAAGrvD,GAAG6B,GAAGqpR,IAEnC,IAAG77N,IAAKrvD,IAAK6B,IAAKqpR,MACdltO,IAAW,IAAMwrO,KAAKn6N,GAAG,GAAK,IAAMm6N,KAAKxpR,GAAG,IACzC6B,IAAKqpR,MACJltO,IAAW,IAAMwrO,KAAK3nR,GAAG,GACtBqpR,KAAQ,CAEP,IADA,IAAIxwQ,GAAS,EACPwwQ,GAAS,IAAO,GAClBxwQ,IAAU,EACVwwQ,IAAU,GAEdltO,IAAW,IAAMwrO,KAAK0B,GAAQxwQ,IAI1C,OAAOsjC,GAxFXz+C,GAAQ8mH,YAAc,SAASv2B,GAAIpvF,GAAG0Y,IAClC,GAAiB,iBAAP02E,MAAqBA,IAAMi5B,IAAUj5B,IAAMk5B,IAAS,OAAO53E,GAEjE1wC,KAAGA,GAAI,GAEX,IAEIs9C,GAASqR,GAAGrvD,GAAG6B,GAAGqpR,GAAQhrR,GAF1B6mH,GAAahhH,KAAKyN,MAA0B,GAApB8oC,GAAIwzC,GAAK,IAAM,IACvCk3B,GAAYjhH,KAAKm5B,MAAM4wD,GAAKi3B,GAAa,IAG7C,GAAGwiK,gBAAgBnwQ,IAAW,CAC1B,IAAI+xQ,GAASplR,KAAKyN,MAAMwzG,GAAYj2E,IAAUm4O,GAC1CkC,GAASrlR,KAAKyN,MAAM8oC,GAAIwzC,GAAI/+C,KAChC,IACIiN,GAAU7kB,GAASua,mBAAmB,YAAa,SAAzCva,CAAmD/f,IACxD+C,OAAOgvQ,IAAQ1tO,WAAW,cACjC,MAAMhgC,IAEJugC,GAAUmrO,GAAU,YAAVA,CAAuB,IAAIxsQ,KAAKqqG,KAM9C,GAAyB,MAAtBhpE,GAAQ7wB,OAAO,GACd,KAAM6wB,GAAQ97C,OAAS,IAAI87C,GAAU,KAAOA,GAAQzrC,OAAO,QAE3D,KAAMyrC,GAAQ97C,OAAS,IAAI87C,GAAU,IAAMA,GAK/CqR,GAAK3uD,GAAIoqR,GAAc/kR,KAAKyN,MAAM43Q,GAASp6O,IAAW,EACtDhxC,GAAKU,GAAIoqR,GAAc/kR,KAAKyN,MAAO43Q,GAASp6O,GAAWC,IAAU,EACjEpvC,GAAKnB,GAAIqqR,GAAchlR,KAAKyN,MAAO43Q,GAASn6O,GAAUC,IAAU,EAChEg6O,GAAUxqR,GAAIsqR,GAAYI,GAASl6O,GAAU,GAAK61E,GAAa,OAE/D7mH,GAAI,IAAIyc,KAAKqqG,IAEbhpE,GAAUmrO,GAAU,WAAVA,CAAsBjpR,IAGhCmvD,GAAK3uD,GAAIoqR,GAAc5qR,GAAEmrR,cAAgB,EACzCrrR,GAAKU,GAAIoqR,GAAc5qR,GAAE4pR,gBAAkB,EAE3CjoR,GAAKnB,GAAIqqR,GAAc7qR,GAAE6pR,gBAAkB,EAE3CmB,GAAUxqR,GAAIsqR,GAAoC,GAAzB9qR,GAAE8pR,qBAA4BjjK,GAAa,EAGxE,OAAOkkK,YAAYjtO,GAASqR,GAAGrvD,GAAG6B,GAAGqpR,KASzC3rR,GAAQ+rR,iBAAmB,SAASx7L,IAChC,KAAKA,IAAMi5B,GAASh4E,IAAU++C,IAAMk5B,GAASj4E,IAAS,OAAOK,GAE7D,IAAI21E,GAAahhH,KAAKyN,MAA0B,GAApB8oC,GAAIwzC,GAAK,IAAM,IACvC5vF,GAAI,IAAIyc,KAAK5W,KAAKm5B,MAAM4wD,GAAKi3B,GAAa,KAO9C,OAAOkkK,YANO/7Q,GAAGo8D,KAAK83B,OAAO,WAAfl0F,CAA2BhP,IACjCA,GAAE4e,WACF5e,GAAEuiL,aACFviL,GAAEwiL,aAC4B,GAAzBxiL,GAAE8pR,qBAA4BjjK,KA2B/CxnH,GAAQy3E,UAAY,SAAS5zE,GAAGogB,GAAMpK,IAElC,GAAGhW,KAAMguC,GAAQ,OAAO5tB,GACxB,GAAGjkB,GAAQmqR,SAAStmR,KAAoB,iBAANA,IAAkBsK,SAAStK,IAAK,CAG9D,GAAGmmR,gBAAgBnwQ,IAEf,OADAq5K,GAAQ30K,MAAM,kEAAmE1a,IAC1EogB,GAOX,KADApgB,GAAI7D,GAAQ+rR,kBAAkBloR,WACZqf,IAATe,GAAoB,OAAOA,QACjC,IAAIjkB,GAAQ8xE,WAAWjuE,GAAGgW,IAE7B,OADAq5K,GAAQ30K,MAAM,oBAAqB1a,IAC5BogB,GAEX,OAAOpgB,IAYX,IAAImoR,GAAY,SAChB,SAASC,cAAcnjR,GAAKkG,GAAGk9Q,GAAWryQ,IACtC/Q,GAAMA,GAAI6P,QAAQqzQ,IAAW,SAASpjQ,IAClC,IAAIzN,GAAS3U,KAAKoC,KAAMggB,GAAMgF,OAAO,IAAO,EAAG,GAI/C,OAHiB5e,GAAI,IAAO,EAAK,GAC5Bm9Q,QAAQhxQ,IACRnI,OAAO,GAAG2F,QAAQ,MAAO,KAAO,OAIzC,IAAIhY,GAAI,IAAIyc,KAAK5W,KAAKyN,MAAMjF,GAAI,MAEhC,GAAGg7Q,gBAAgBnwQ,IACf,IACI/Q,GAAM8wB,GAASua,mBAAmB,YAAa,cAAzCva,CAAwD9wB,GAAKkG,GAAG6K,IACxE,MAAMqE,IACJ,MAAO,UAGf,OAAOguQ,GAAUpjR,GAAVojR,CAAevrR,IAS1B,IAAIyrR,GAAa,CAAC,GAAI,KAAM,MAAO,OAAQ,SAsD3CpsR,GAAQk+C,WAAa,SAASlvC,GAAGlG,GAAKq1C,GAAI+tO,GAAWryQ,GAAUwyQ,IAG3D,GAFAxyQ,GAAWmwQ,gBAAgBnwQ,KAAaA,IAEpC/Q,GACA,GAAU,MAAPq1C,GAAYr1C,GAAMujR,GAAYvyQ,UAC5B,GAAU,MAAPqkC,GAAYr1C,GAAMujR,GAAYtyQ,UACjC,IAAU,MAAPokC,GAGJ,OA9DZ,SAASmuO,WAAWt9Q,GAAGmvC,IACnB,IAAIouO,GAAWxvO,GAAI/tC,GAAI,IAAMwiC,IAEzBg7O,GAAUvC,KAAKzjR,KAAKyN,MAAMs4Q,GAAW96O,IAAU,GAAK,IACpDw4O,KAAKltO,GAAIv2C,KAAKyN,MAAMs4Q,GAAW76O,IAAS,IAAK,GAEjD,GAAU,MAAPyM,GAAY,CACPvuC,GAAUuuC,MAAKA,GAAK,GAiBxB,IAEIsuO,IAAU,IAFJjmR,KAAKoC,IAAIm0C,GAAI/tC,GAAI2iC,GAAQ,IAAKy6O,GAAWjuO,MAE1BguO,QAAQhuO,IAAInrC,OAAO,GACzCmrC,GAAK,IACJsuO,GAASA,GAAO9zQ,QAAQ,MAAO,IAAIA,QAAQ,QAAS,KAGxD6zQ,IAAW,IAAMC,GAErB,OAAOD,GA6BQF,CAAWt9Q,GAAGmvC,IAAM,KAAO8tO,cAAcI,GAAY5kJ,aAAcz4H,GAAGk9Q,GAAWryQ,IAFxF/Q,GAAMujR,GAAY7kJ,SAAW,KAAO6kJ,GAAYvyQ,KAMxD,OAAOmyQ,cAAcnjR,GAAKkG,GAAGk9Q,GAAWryQ,KA6B5C,IAAI6yQ,GAAY,EAAIl7O,GACpBxxC,GAAQ28C,eAAiB,SAAS4zC,GAAIo8L,GAAQ9yQ,IAC1CA,GAAWmwQ,gBAAgBnwQ,KAAaA,GAKxC,IAAIgyQ,GAAS9uO,GAAIwzC,GAAI/+C,IAGrB,GAFA++C,GAAK/pF,KAAKm5B,MAAM4wD,GAAKs7L,IAElBhyQ,GACC,IACI,IAAI+xQ,GAASplR,KAAKm5B,MAAM4wD,GAAK/+C,IAAUm4O,GACnCqB,GAAcpxP,GAASua,mBAAmB,YAAa,SAAzCva,CAAmD/f,IACjEkxQ,GAAQC,GAAYpuQ,OAAOgvQ,IAK/B,OAHGe,GAAS,GAAI3B,GAAYzuQ,IAAIwuQ,GAAO4B,GAAQ,KAC1C3B,GAAYzuQ,IAAIwuQ,GAAO4B,GAAS,GAAI,MAEjC5B,GAAMpuQ,OAASgtQ,IAAWn4O,GAASq6O,GAC7C,MAAM3tQ,IACJg1K,GAAQ30K,MAAM,cAAgBgyE,GAAK,gBAAkB12E,IAK7D,IAAI3D,GAAI,IAAIkH,KAAKmzE,GAAKm8L,IACtB,OAAOx2Q,GAAE02Q,YAAY12Q,GAAEm1Q,cAAgBsB,IAAUd,GAASa,IAS9D1sR,GAAQo4C,eAAiB,SAAS5tC,GAAMqP,IAapC,IAZA,IAIIlZ,GACAy3B,GALAogB,GAAa,EACbC,GAAc,EACdJ,GAAY,EACZP,GAAa,EAIbkzO,GACAhB,gBAAgBnwQ,KAChB+f,GAASua,mBAAmB,YAAa,SAAzCva,CAAmD/f,IAG/CvZ,GAAI,EAAGA,GAAIkK,GAAK7H,OAAQrC,KAI5B,GAHA83B,GAAK5tB,GAAKlK,IAGNsP,GAAUwoB,KAMd,KAAGA,GAAKoZ,IAER,GAAGw5O,GACC,IAEmB,KADfrqR,GAAIqqR,GAAYpuQ,OAAOwb,GAAKoZ,GAASm4O,KAChC3vQ,MACgB,IAAdrZ,GAAEoZ,QAAey+B,KACfC,KACFJ,KACT,MAAMn6B,UAKc,KADtBvd,GAAI,IAAIyc,KAAKgb,KACRkzP,aACsB,IAApB3qR,GAAE0qR,cAAqB7yO,KACrBC,KACFJ,UAtBPP,KA0BRO,IADAI,IAAeD,GAGf,IAAIR,GAAYxtC,GAAK7H,OAASm1C,GAE9B,MAAO,CACHU,WAAYA,GAAaR,GACzBS,YAAaA,GAAcT,GAC3BK,UAAWA,GAAYL,MAOzB,KACA,SAAUj4C,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAUI,GAAoB,SAK/B,KACA,SAAUL,GAAQC,GAASI,IAEjC,IAAIysR,GAAczsR,GAAoB,QAEtCL,GAAOC,QAEP,SAAS8sR,cACL,IAAIlrR,GAAM,GAEV,OAAO,SAAUo8B,IACb,IAAoB,iBAARA,IAA4B,OAARA,KACb,mBAARA,GAEP,MAAM,IAAIp7B,MAAM,oCAGpB,IAAI85P,GAAQ1+N,GAAIu9L,QAAQ35N,IACxB,OAAO86P,IAASA,GAAMvxP,WAAavJ,GAC/B86P,GAAQmwB,GAAY7uP,GAAKp8B,OAO/B,OACA,SAAU7B,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAUI,GAAoB,SAK/B,KACA,SAAUL,GAAQC,GAASI,IAEjC,aAYA,IAAIujB,GAAavjB,GAAoB,QAAQujB,WACzCoV,GAAe34B,GAAoB,QACnCs4B,GAAOt4B,GAAoB,QAAQs4B,KACnC8gC,GAAUp5D,GAAoB,QAC9BkpC,GAAQlpC,GAAoB,QAE5B2sR,GAAmBzjP,GAAM2tF,WAAWE,MACpC61J,GAAmB1jP,GAAM8tF,WAAWD,MAEpC3uC,GAAYzvD,GAAaP,KAE7B,SAASkwD,eAAe0gM,IACpB,MAAO,CACH5wP,KAAM,CACFzuB,MAAO4Z,GAAW,GAAI6kE,GAAUz+E,MAAO,CAACka,KAAMmlQ,KAC9CtnQ,MAAO0mE,GAAU1mE,MACjB4W,KAAMA,GACNvU,SAAU,SAEdA,SAAU,SAIlBpkB,GAAOC,QAAU,CAEbgP,EAAG,CACCgV,QAAS,aACTG,SAAU,uBAIdmqM,KAAM,CACFtqM,QAAS,aACTG,SAAU,QAIdoqM,KAAM,CACFvqM,QAAS,aACTG,SAAU,QAIdqqM,IAAK,CACDxqM,QAAS,aACTG,SAAU,QAIdsqM,MAAO,CACHzqM,QAAS,aACTG,SAAU,QAIdqU,KAAM,CACF1W,MAAO6B,GAAW,GAAI6kE,GAAU1mE,MAAO,IAGvC4W,KAAM/U,GAAW,GAAI+U,GAAM,IAG3BvU,SAAU,SAGdslE,WAAYf,eAAeqkM,IAE3BrjM,WAAYhB,eAAeskM,IAE3Bl9Q,KAAM,CACFkU,QAAS,SAETC,KAAM,GACNY,SAAS,EACTV,SAAU,QAGdW,UAAW,CACPd,QAAS,SAETC,KAAM,GACNY,SAAS,EACTV,SAAU,QAId+rC,UAAW,CACPlsC,QAAS,SACTpb,IAAK,EACLC,IAAK,GACLob,KAAM,GAENE,SAAU,QAId81C,WAAYt2C,GAAW,GAAI61C,GAAQS,WAAY,CAC3CjpD,MAAO,CACHgT,QAAS,UAETC,MAAM,EACNE,SAAU,aAShB,KACA,SAAUpkB,GAAQC,GAASI,IAEjC,aAWA,IAAIwP,GAAYxP,GAAoB,QAChCosI,GAAYpsI,GAAoB,QAEhC6sR,GAAiB7sR,GAAoB,QACrCw/Q,GAAcx/Q,GAAoB,QAClC23B,GAAc33B,GAAoB,QAAQ23B,YAE1C6sB,GAAiBxkD,GAAoB,QACrCq2F,GAAer2F,GAAoB,QAAQ4nC,QAC3C0rF,GAAUtzH,GAAoB,QAAQszH,QACtCniD,GAAsBnxE,GAAoB,QAAQmxE,oBAuatD,SAASw1I,SAASzlN,GAAO+uB,IACrB,IAAI68P,GAAeltR,GAAQmtR,cAAc98P,GAAKrM,SAE9C,GAAGqM,GAAKxL,SAAW0sD,GAAoBjwE,IAAQ,OAAO,EAEtD,GAAG4rR,GAAaE,iBACZ,OAAOF,GAAaE,iBAAiB9rR,GAAO+uB,IAGhD,IAAIwrE,GAAS,GACTp7E,GAAMo7E,GACNwxL,GAAW,CAAE5+Q,IAAK,SAAS5K,IAAK4c,GAAM5c,KAK1C,OADAqpR,GAAaI,eAAehsR,GAAO+rR,GAAUxxL,GAAQxrE,IAC9C5P,KAAQo7E,GArbnB77F,GAAQmtR,cAAgB,CACpBI,WAAY,CAKRD,eAAgB,SAASzpR,GAAG2pR,GAASvpQ,IAE9BstD,GAAoB1tE,IAAI2pR,GAAQ/+Q,IAAI5K,SACtBqf,IAATe,IAAoBupQ,GAAQ/+Q,IAAIwV,MAGhDwpQ,WAAY,CAIRH,eAAgB,SAASzpR,GAAG2pR,GAASvpQ,GAAMoM,IACpCA,GAAK8/I,eAActsK,IAAKA,KACI,IAA5BwsB,GAAKiJ,OAAOv1B,QAAQF,IAAW2pR,GAAQ/+Q,IAAIwV,IACzCupQ,GAAQ/+Q,IAAI5K,KAErBupR,iBAAkB,SAASvpR,GAAGwsB,IACvBA,GAAK8/I,eAActsK,IAAKA,IAG3B,IADA,IAAIy1B,GAASjJ,GAAKiJ,OACVh5B,GAAI,EAAGA,GAAIg5B,GAAO32B,OAAQrC,KAAK,CACnC,IAAIwD,GAAIqe,OAAOmX,GAAOh5B,KAEtB,GAAoB,MAAhBwD,GAAE8pB,OAAO,IAAyC,MAA3B9pB,GAAE8pB,OAAO9pB,GAAEnB,OAAS,IAE3C,GADY,IAAI4lC,OAAOzkC,GAAEkP,OAAO,EAAGlP,GAAEnB,OAAS,IACrCgD,KAAK9B,IAAI,OAAO,OACtB,GAAGA,KAAMy1B,GAAOh5B,IAAI,OAAO,EAEtC,OAAO,IAGf,QAAW,CAIPgtR,eAAgB,SAASzpR,GAAG2pR,GAASvpQ,KACxB,IAANpgB,KAAoB,IAANA,GAAa2pR,GAAQ/+Q,IAAI5K,IACrC2pR,GAAQ/+Q,IAAIwV,MAGzBg8B,OAAQ,CAIJqtO,eAAgB,SAASzpR,GAAG2pR,GAASvpQ,GAAMoM,KACnCzgB,GAAU/L,UACQqf,IAAbmN,GAAKznB,KAAqB/E,GAAIwsB,GAAKznB,UACtBsa,IAAbmN,GAAKxnB,KAAqBhF,GAAIwsB,GAAKxnB,IACxC2kR,GAAQ/+Q,IAAIwV,IACTupQ,GAAQ/+Q,KAAK5K,MAG5B49I,QAAS,CAIL6rI,eAAgB,SAASzpR,GAAG2pR,GAASvpQ,GAAMoM,IACpCxsB,GAAI,IAAM+L,GAAU/L,UACDqf,IAAbmN,GAAKznB,KAAqB/E,GAAIwsB,GAAKznB,UACtBsa,IAAbmN,GAAKxnB,KAAqBhF,GAAIwsB,GAAKxnB,IACxC2kR,GAAQ/+Q,IAAIwV,IACTupQ,GAAQ/+Q,KAAK5K,MAG5B6pR,OAAQ,CAKJJ,eAAgB,SAASzpR,GAAG2pR,GAASvpQ,GAAMoM,IACvC,GAAgB,iBAANxsB,GAAgB,CACtB,IAAI8pR,GAA2B,iBAAN9pR,IAEN,IAAhBwsB,GAAKu9P,QAAoBD,GACvBH,GAAQ/+Q,IAAI0T,OAAOte,KADgB2pR,GAAQ/+Q,IAAIwV,SAE9CoM,GAAKw/L,UAAYhsN,GAAG2pR,GAAQ/+Q,IAAIwV,IACrCupQ,GAAQ/+Q,IAAI5K,MAGzBkG,MAAO,CAIHujR,eAAgB,SAASzpR,GAAG2pR,GAASvpQ,IAC9BuoH,GAAU3oI,IAAGyW,UAAWkzQ,GAAQ/+Q,IAAI5K,IAClC2pR,GAAQ/+Q,IAAIwV,MAGzB4pQ,UAAW,CAIPP,eAAgB,SAASzpR,GAAG2pR,GAASvpQ,IAI7B/gB,MAAMkL,QAAQvK,KAAOA,GAAElB,QACnBkB,GAAEwiP,OAJV,SAASynC,QAAQ/jR,IACb,OAAOyiI,GAAUziI,IAAOuQ,aAGFkzQ,GAAQ/+Q,IAAI5K,IADH2pR,GAAQ/+Q,IAAIwV,MAKvD65D,WAAY,CAIRwvM,eAAgB,SAASzpR,GAAG2pR,GAASvpQ,IACjCupQ,GAAQ/+Q,IAAImxQ,GAAY1+Q,IAAI2C,GAAGogB,OAGvC+qC,MAAO,CAIHs+N,eAAgB,SAASzpR,GAAG2pR,GAASvpQ,IACxB,SAANpgB,GAAc2pR,GAAQ/+Q,IAAI,QACpBmB,GAAU/L,IACd2pR,GAAQ/+Q,IAAIilH,IAAS7vH,GAAG,MADN2pR,GAAQ/+Q,IAAIwV,MAI3C8pQ,UAAW,CAIPT,eAAgB,SAASzpR,GAAG2pR,GAASvpQ,GAAMoM,IACvC,IAAIisI,GAAQjsI,GAAKisI,OAAS7lE,GAAaxyE,IACvB,iBAANpgB,IAAkBy4J,GAAM32J,KAAK9B,IACnC2pR,GAAQ/+Q,IAAI5K,IAGhB2pR,GAAQ/+Q,IAAIwV,KAEhBmpQ,iBAAkB,SAASvpR,GAAGwsB,IAC1B,IAAIpM,GAAOoM,GAAKpM,KAEhB,OAAGpgB,KAAMogB,IACO,iBAANpgB,MACP4yF,GAAaxyE,IAAMte,KAAK9B,MAKnCmqR,SAAU,CAINV,eAAgB,SAASzpR,GAAG2pR,GAASvpQ,GAAMoM,IACvC,GAAgB,iBAANxsB,GAIV,IAAuC,KAAnCwsB,GAAK04D,QAAU,IAAIhlF,QAAQF,IAA/B,CAMA,IAFA,IAAIoqR,GAASpqR,GAAEmN,MAAM,KACjB1Q,GAAI,EACFA,GAAI2tR,GAAOtrR,QAAQ,CACrB,IAAIo5E,GAAKkyM,GAAO3tR,KACe,IAA5B+vB,GAAKkH,MAAMxzB,QAAQg4E,KAAckyM,GAAOlqR,QAAQg4E,IAAMz7E,GACrD2tR,GAAO78Q,OAAO9Q,GAAG,GACdA,KAEP2tR,GAAOtrR,OACN6qR,GAAQ/+Q,IAAIw/Q,GAAOvoR,KAAK,MADV8nR,GAAQ/+Q,IAAIwV,SAX3BupQ,GAAQ/+Q,IAAI5K,SAJZ2pR,GAAQ/+Q,IAAIwV,MAmBxBikQ,IAAK,CAIDoF,eAAgB,SAASzpR,GAAG2pR,GAASvpQ,SACxBf,IAANrf,GAAiB2pR,GAAQ/+Q,IAAIwV,IAC3BupQ,GAAQ/+Q,IAAI5K,MAGzBqqR,WAAY,CASRZ,eAAgB,SAASzpR,GAAG2pR,GAASvpQ,GAAMoM,IAEvC,SAAS89P,WAAWtqR,GAAGwsB,GAAMpM,IACzB,IAAIxD,GACA2tQ,GAAW,CAAC3/Q,IAAK,SAAS5K,IAAK4c,GAAM5c,KAMzC,YAJYqf,IAATe,KAAoBA,GAAOoM,GAAKpM,MAEnCjkB,GAAQmtR,cAAc98P,GAAKrM,SAASspQ,eAAezpR,GAAGuqR,GAAUnqQ,GAAMoM,IAE/D5P,GAGX,IAAI4tQ,GAA2B,IAApBh+P,GAAK8hH,YAAyC,QAApB9hH,GAAK8hH,YAAwBjvI,MAAMkL,QAAQvK,KAAMX,MAAMkL,QAAQvK,GAAE,IAEtG,GAAIX,MAAMkL,QAAQvK,IAAlB,CAKA,IAOIvD,GAAGmD,GAAG05E,GAAKytF,GAAM5+B,GAAMsiJ,GAPvBz3J,GAAQxmG,GAAKwmG,MACb03J,GAAO,GACPznE,GAAa5jN,MAAMkL,QAAQyoH,IAC3B23J,GAAe1nE,IAAcunE,IAAQnrR,MAAMkL,QAAQyoH,GAAM,IACzD43J,GAAiBJ,IAAQvnE,KAAe0nE,GACxCl+P,GAAOw2L,KAAe2nE,GAAkB53J,GAAMl0H,OAASkB,GAAElB,OAM7D,GAFAshB,GAAO/gB,MAAMkL,QAAQ6V,IAAQA,GAAO,GAEjCoqQ,GACC,IAAI/tR,GAAI,EAAGA,GAAIgwB,GAAKhwB,KAOhB,IANAiuR,GAAKjuR,IAAK,GACV68E,GAAMj6E,MAAMkL,QAAQvK,GAAEvD,KAAMuD,GAAEvD,IAAK,GAChB0rI,GAAhByiJ,GAAuB53J,GAAMl0H,OACxBmkN,GAAmBjwF,GAAMv2H,IAAGqC,OACxBw6E,GAAIx6E,OAEZc,GAAI,EAAGA,GAAIuoI,GAAMvoI,KACEmnK,GAAhB6jH,GAAuB53J,GAAMpzH,IACxBqjN,GAAmBjwF,GAAMv2H,IAAGmD,IACxBozH,QAGA3zG,KADZorQ,GAAOH,WAAWhxM,GAAI15E,IAAImnK,IAAO3mJ,GAAK3jB,KAAM,IAAImD,QACzB8qR,GAAKjuR,IAAGmD,IAAK6qR,SAI5C,IAAIhuR,GAAI,EAAGA,GAAIgwB,GAAKhwB,UAEJ4iB,KADZorQ,GAAOH,WAAWtqR,GAAEvD,IAAIwmN,GAAajwF,GAAMv2H,IAAKu2H,GAAO5yG,GAAK3jB,QACrCiuR,GAAKjuR,IAAKguR,IAIzCd,GAAQ/+Q,IAAI8/Q,SAvCRf,GAAQ/+Q,IAAIwV,KAyCpBmpQ,iBAAkB,SAASvpR,GAAGwsB,IAC1B,IAAIntB,MAAMkL,QAAQvK,IAAI,OAAO,EAE7B,IAAIgzH,GAAQxmG,GAAKwmG,MACbiwF,GAAa5jN,MAAMkL,QAAQyoH,IAC3Bw3J,GAA2B,IAApBh+P,GAAK8hH,WAGhB,IAAI9hH,GAAKgsI,YAAcx4J,GAAElB,SAAWk0H,GAAMl0H,OAAQ,OAAO,EAGzD,IAAI,IAAIrC,GAAI,EAAGA,GAAIuD,GAAElB,OAAQrC,KACzB,GAAG+tR,GAAM,CACL,IAAInrR,MAAMkL,QAAQvK,GAAEvD,OAAS+vB,GAAKgsI,YAAcx4J,GAAEvD,IAAGqC,SAAWk0H,GAAMv2H,IAAGqC,OACrE,OAAO,EAEX,IAAI,IAAIc,GAAI,EAAGA,GAAII,GAAEvD,IAAGqC,OAAQc,KAC5B,IAAIsjN,SAASljN,GAAEvD,IAAGmD,IAAIqjN,GAAajwF,GAAMv2H,IAAGmD,IAAKozH,IAC7C,OAAO,OAGZ,IAAIkwF,SAASljN,GAAEvD,IAAIwmN,GAAajwF,GAAMv2H,IAAKu2H,IAAQ,OAAO,EAGrE,OAAO,KAiBnB72H,GAAQozC,OAAS,SAASP,GAAaC,GAAcrpC,GAAYilR,GAAWzqQ,IACxE,IAAIoM,GAAOu0B,GAAen7C,GAAYilR,IAAWxtR,MAC7CytR,GAAS/pO,GAAe/R,GAAa67O,IACrClB,GAAU5oO,GAAe9R,GAAc47O,IACvC7qR,GAAI8qR,GAAOztR,MAEX8rK,GAAWl6H,GAAa63H,UAe5B,QAdSznJ,IAANrf,IAAmBmpK,KAClBnpK,GAAI+gD,GAAeooH,GAAU0hH,IAAWxtR,MAExC8rK,GAAW,QAGH9pJ,IAATe,KAAoBA,GAAOoM,GAAKpM,MAQhCoM,GAAKxL,SAAW0sD,GAAoB1tE,IAEnC,OADA2pR,GAAQ/+Q,IAAI5K,IACLA,GAGX,IAAIypR,GAAiBttR,GAAQmtR,cAAc98P,GAAKrM,SAASspQ,eACzDA,GAAezpR,GAAG2pR,GAASvpQ,GAAMoM,IAEjC,IAAI5P,GAAM+sQ,GAAQtsR,MAQlB,OALG8rK,IAAYvsJ,KAAQwD,KAAS8iM,SAASljN,GAAGwsB,MAExCi9P,GADAzpR,GAAI+gD,GAAeooH,GAAU0hH,IAAWxtR,MACtBssR,GAASvpQ,GAAMoM,IACjC5P,GAAM+sQ,GAAQtsR,OAEXuf,IAUXzgB,GAAQy9E,QAAU,SAAS5qC,GAAaC,GAAcrpC,GAAYilR,GAAWzqQ,IACzE,IAAI0qQ,GAAS/pO,GAAe/R,GAAa67O,IACrClB,GAAUxtR,GAAQozC,OAAOP,GAAaC,GAAcrpC,GAAYilR,GAAWzqQ,IAC3EoiM,GAAQsoE,GAAOztR,MAEnB,OAAO,MAACmlN,IAAyCmnE,IAQrDxtR,GAAQi1F,WAAa,SAAS7hD,GAAQ1qB,GAAMkmQ,IACxC,IAAInuQ,GAAM,GAQV,OANAmuQ,GAAUA,IAAW,GAErBnuQ,GAAIa,OAAS8xB,GAAO1qB,GAAO,UAAWkmQ,GAAQttQ,QAC9Cb,GAAI4D,KAAO+uB,GAAO1qB,GAAO,QAASkmQ,GAAQvqQ,MAC1C5D,GAAI1W,MAAQqpC,GAAO1qB,GAAO,SAAUkmQ,GAAQ7kR,OAErC0W,IAWXzgB,GAAQ6uR,gBAAkB,SAAS51N,GAASC,GAAUhC,IAClD,IAIIjzC,GAJA6qQ,GAAc51N,GAAS63B,QAAQtnF,WAC/Bmb,GAAQkqQ,GAAY5oQ,UAAY4oQ,GAAc7B,GAE9C8B,GAASnqQ,GAAMsB,UAGnB,GAA6B,IAA1BgxC,GAAU83N,YAAmB,CAC5B,IAAIz3P,GAAwB,QAAhBw3P,GAAO9qQ,KACf8qQ,GAAOx3P,MAAMz0B,QACbisR,GAAO9qQ,KAAKjT,MAAM,KAEtBumB,GAAMnmB,OAAOmmB,GAAMxzB,QAAQ,QAAS,GACpCkgB,GAAOsT,GAAM7xB,KAAK,KAGtB,OAAO1F,GAAQozC,OAAO6lB,GAASC,GAAUt0C,GAAO,YAAaX,KAcjEjkB,GAAQsrF,6BAA+B,SAASpyB,GAAU9lB,IACtD,GAAI8lB,GAAS3gC,OAAb,CAEA,IAII02P,GACAC,GALAj/L,GAAK/2B,GAAS3gC,OAAOtsB,QAEzB,QAAUiX,IAAP+sE,GAUC1e,GAAoB0e,KAAQ/2B,GAAStgC,UAAasgC,GAAS4zB,aAC3DmiM,GAAUh/L,GACVi/L,GAAWn3P,GAAck4D,IAG7B78C,GAAO,0BAA2B67O,IAClC77O,GAAO,4BAA6B87O,MAqBxClvR,GAAQ+mN,SAAWA,UAKb,OACA,SAAUhnN,GAAQC,GAASI,IAEjC,aAGA,IAAI+uR,GAAQ/uR,GAAoB,QAEhCL,GAAOC,QAEP,SAAS8vB,IAAInrB,GAAGC,IAGZ,IAFF,IAAI9C,GAAI6C,GAAEhC,OACNxB,GAAI,IAAI+B,MAAMpB,IACRxB,GAAE,EAAGA,GAAEwB,KAAKxB,GACpBa,GAAEb,IAAK6uR,GAAMxqR,GAAErE,IAAIsE,GAAEtE,KAEvB,OAAOa,KAMH,OACA,SAAUpB,GAAQC,GAASI,IAEjC,IAAI2kK,IAIJ,SAAUv+J,IAEV,IAAI4oR,GAAW,OACXC,GAAY,OACZC,GAAc,EACdC,GAAY/oR,GAAKm5B,MACjB6vP,GAAUhpR,GAAKoC,IACf6mR,GAAUjpR,GAAKqC,IACf6mR,GAAalpR,GAAKF,OAEtB,SAASkmI,UAAWziI,GAAOsmB,IAMvB,GAHAA,GAAOA,IAAQ,IADftmB,GAAQ,IAAkB,cAILyiI,UAClB,OAAOziI,GAGV,KAAMzF,gBAAgBkoI,WAClB,OAAO,IAAIA,UAAUziI,GAAOsmB,IAGhC,IAAI1nB,GAoRR,SAASgnR,WAAW5lR,IAEhB,IAAIpB,GAAM,CAAExH,EAAG,EAAG6qB,EAAG,EAAGpnB,EAAG,GACvBD,GAAI,EACJrC,GAAI,KACJuB,GAAI,KACJtD,GAAI,KACJm7K,IAAK,EACL73E,IAAS,EAEO,iBAAT95F,KACPA,GAywBR,SAAS6lR,oBAAoB7lR,IAEzBA,GAAQA,GAAM4O,QAAQy2Q,GAAS,IAAIz2Q,QAAQ02Q,GAAW,IAAIt0Q,cAC1D,IAaI6N,GAbAinQ,IAAQ,EACZ,GAAI5kJ,GAAMlhI,IACNA,GAAQkhI,GAAMlhI,IACd8lR,IAAQ,OAEP,GAAa,eAAT9lR,GACL,MAAO,CAAE5I,EAAG,EAAG6qB,EAAG,EAAGpnB,EAAG,EAAGD,EAAG,EAAGk/F,OAAQ,QAQ7C,GAAKj7E,GAAQknQ,GAASnnR,IAAI4iG,KAAKxhG,IAC3B,MAAO,CAAE5I,EAAGynB,GAAM,GAAIoD,EAAGpD,GAAM,GAAIhkB,EAAGgkB,GAAM,IAEhD,GAAKA,GAAQknQ,GAAS9mR,KAAKuiG,KAAKxhG,IAC5B,MAAO,CAAE5I,EAAGynB,GAAM,GAAIoD,EAAGpD,GAAM,GAAIhkB,EAAGgkB,GAAM,GAAIjkB,EAAGikB,GAAM,IAE7D,GAAKA,GAAQknQ,GAAS7mR,IAAIsiG,KAAKxhG,IAC3B,MAAO,CAAE+lD,EAAGlnC,GAAM,GAAItmB,EAAGsmB,GAAM,GAAIroB,EAAGqoB,GAAM,IAEhD,GAAKA,GAAQknQ,GAAS5mR,KAAKqiG,KAAKxhG,IAC5B,MAAO,CAAE+lD,EAAGlnC,GAAM,GAAItmB,EAAGsmB,GAAM,GAAIroB,EAAGqoB,GAAM,GAAIjkB,EAAGikB,GAAM,IAE7D,GAAKA,GAAQknQ,GAASC,IAAIxkL,KAAKxhG,IAC3B,MAAO,CAAE+lD,EAAGlnC,GAAM,GAAItmB,EAAGsmB,GAAM,GAAI/kB,EAAG+kB,GAAM,IAEhD,GAAKA,GAAQknQ,GAASE,KAAKzkL,KAAKxhG,IAC5B,MAAO,CAAE+lD,EAAGlnC,GAAM,GAAItmB,EAAGsmB,GAAM,GAAI/kB,EAAG+kB,GAAM,GAAIjkB,EAAGikB,GAAM,IAE7D,GAAKA,GAAQknQ,GAASG,KAAK1kL,KAAKxhG,IAC5B,MAAO,CACH5I,EAAG+uR,gBAAgBtnQ,GAAM,IACzBoD,EAAGkkQ,gBAAgBtnQ,GAAM,IACzBhkB,EAAGsrR,gBAAgBtnQ,GAAM,IACzBjkB,EAAGwrR,oBAAoBvnQ,GAAM,IAC7Bi7E,OAAQgsL,GAAQ,OAAS,QAGjC,GAAKjnQ,GAAQknQ,GAASM,KAAK7kL,KAAKxhG,IAC5B,MAAO,CACH5I,EAAG+uR,gBAAgBtnQ,GAAM,IACzBoD,EAAGkkQ,gBAAgBtnQ,GAAM,IACzBhkB,EAAGsrR,gBAAgBtnQ,GAAM,IACzBi7E,OAAQgsL,GAAQ,OAAS,OAGjC,GAAKjnQ,GAAQknQ,GAASO,KAAK9kL,KAAKxhG,IAC5B,MAAO,CACH5I,EAAG+uR,gBAAgBtnQ,GAAM,GAAK,GAAKA,GAAM,IACzCoD,EAAGkkQ,gBAAgBtnQ,GAAM,GAAK,GAAKA,GAAM,IACzChkB,EAAGsrR,gBAAgBtnQ,GAAM,GAAK,GAAKA,GAAM,IACzCjkB,EAAGwrR,oBAAoBvnQ,GAAM,GAAK,GAAKA,GAAM,IAC7Ci7E,OAAQgsL,GAAQ,OAAS,QAGjC,GAAKjnQ,GAAQknQ,GAASQ,KAAK/kL,KAAKxhG,IAC5B,MAAO,CACH5I,EAAG+uR,gBAAgBtnQ,GAAM,GAAK,GAAKA,GAAM,IACzCoD,EAAGkkQ,gBAAgBtnQ,GAAM,GAAK,GAAKA,GAAM,IACzChkB,EAAGsrR,gBAAgBtnQ,GAAM,GAAK,GAAKA,GAAM,IACzCi7E,OAAQgsL,GAAQ,OAAS,OAIjC,OAAO,EA/0BKD,CAAoB7lR,KAGZ,iBAATA,KACHwmR,eAAexmR,GAAM5I,IAAMovR,eAAexmR,GAAMiiB,IAAMukQ,eAAexmR,GAAMnF,IAC3E+D,GAgDZ,SAAS6nR,SAASrvR,GAAG6qB,GAAGpnB,IACpB,MAAO,CACHzD,EAAqB,IAAlBsvR,QAAQtvR,GAAG,KACd6qB,EAAqB,IAAlBykQ,QAAQzkQ,GAAG,KACdpnB,EAAqB,IAAlB6rR,QAAQ7rR,GAAG,MApDJ4rR,CAASzmR,GAAM5I,EAAG4I,GAAMiiB,EAAGjiB,GAAMnF,GACvC82K,IAAK,EACL73E,GAAwC,MAA/B1hF,OAAOpY,GAAM5I,GAAG6R,QAAQ,GAAa,OAAS,OAElDu9Q,eAAexmR,GAAM+lD,IAAMygO,eAAexmR,GAAMzH,IAAMiuR,eAAexmR,GAAMlG,IAChFvB,GAAIouR,oBAAoB3mR,GAAMzH,GAC9BuB,GAAI6sR,oBAAoB3mR,GAAMlG,GAC9B8E,GAoJX,SAASgoR,SAAS7gO,GAAGxtD,GAAGuB,IAErBisD,GAAsB,EAAlB2gO,QAAQ3gO,GAAG,KACfxtD,GAAImuR,QAAQnuR,GAAG,KACfuB,GAAI4sR,QAAQ5sR,GAAG,KAEf,IAAIvD,GAAIkG,GAAKyN,MAAM67C,IACfpnB,GAAIonB,GAAIxvD,GACR+B,GAAIwB,IAAK,EAAIvB,IACbgmE,GAAIzkE,IAAK,EAAI6kC,GAAIpmC,IACjBf,GAAIsC,IAAK,GAAK,EAAI6kC,IAAKpmC,IACvBy6C,GAAMz8C,GAAI,EAKd,MAAO,CAAEa,EAAO,IAJR,CAAC0C,GAAGykE,GAAGjmE,GAAGA,GAAGd,GAAGsC,IAAGk5C,IAIN/wB,EAAO,IAHpB,CAACzqB,GAAGsC,GAAGA,GAAGykE,GAAGjmE,GAAGA,IAAG06C,IAGMn4C,EAAO,IAFhC,CAACvC,GAAGA,GAAGd,GAAGsC,GAAGA,GAAGykE,IAAGvrB,KAlKb4zO,CAAS5mR,GAAM+lD,EAAGxtD,GAAGuB,IAC3B63K,IAAK,EACL73E,GAAS,OAEJ0sL,eAAexmR,GAAM+lD,IAAMygO,eAAexmR,GAAMzH,IAAMiuR,eAAexmR,GAAMxJ,KAChF+B,GAAIouR,oBAAoB3mR,GAAMzH,GAC9B/B,GAAImwR,oBAAoB3mR,GAAMxJ,GAC9BoI,GA6EZ,SAASioR,SAAS9gO,GAAGxtD,GAAG/B,IACpB,IAAIY,GAAG6qB,GAAGpnB,GAMV,SAASisR,QAAQxuR,GAAGimE,GAAG/mE,IAGnB,OAFGA,GAAI,IAAGA,IAAK,GACZA,GAAI,IAAGA,IAAK,GACZA,GAAI,EAAE,EAAUc,GAAc,GAATimE,GAAIjmE,IAASd,GAClCA,GAAI,GAAY+mE,GAChB/mE,GAAI,EAAE,EAAUc,IAAKimE,GAAIjmE,KAAM,EAAE,EAAId,IAAK,EACtCc,GAGX,GAbAytD,GAAI2gO,QAAQ3gO,GAAG,KACfxtD,GAAImuR,QAAQnuR,GAAG,KACf/B,GAAIkwR,QAAQlwR,GAAG,KAWN,IAAN+B,GACCnB,GAAI6qB,GAAIpnB,GAAIrE,OAEX,CACD,IAAI+nE,GAAI/nE,GAAI,GAAMA,IAAK,EAAI+B,IAAK/B,GAAI+B,GAAI/B,GAAI+B,GACxCD,GAAI,EAAI9B,GAAI+nE,GAChBnnE,GAAI0vR,QAAQxuR,GAAGimE,GAAGxY,GAAI,EAAE,GACxB9jC,GAAI6kQ,QAAQxuR,GAAGimE,GAAGxY,IAClBlrD,GAAIisR,QAAQxuR,GAAGimE,GAAGxY,GAAI,EAAE,GAG5B,MAAO,CAAE3uD,EAAO,IAAJA,GAAS6qB,EAAO,IAAJA,GAASpnB,EAAO,IAAJA,IAxGtBgsR,CAAS7mR,GAAM+lD,EAAGxtD,GAAG/B,IAC3Bm7K,IAAK,EACL73E,GAAS,OAGT95F,GAAM3H,eAAe,OACrBuC,GAAIoF,GAAMpF,IAMlB,OAFAA,GAAImsR,WAAWnsR,IAER,CACH+2K,GAAIA,GACJ73E,OAAQ95F,GAAM85F,QAAUA,GACxB1iG,EAAGquR,GAAQ,IAAKC,GAAQ9mR,GAAIxH,EAAG,IAC/B6qB,EAAGwjQ,GAAQ,IAAKC,GAAQ9mR,GAAIqjB,EAAG,IAC/BpnB,EAAG4qR,GAAQ,IAAKC,GAAQ9mR,GAAI/D,EAAG,IAC/BD,EAAGA,IApUGgrR,CAAW5lR,IACrBzF,KAAKysR,eAAiBhnR,GACtBzF,KAAKyjD,GAAKp/C,GAAIxH,EACdmD,KAAK0sR,GAAKroR,GAAIqjB,EACd1nB,KAAK6qE,GAAKxmE,GAAI/D,EACdN,KAAK4qE,GAAKvmE,GAAIhE,EACdL,KAAK2sR,QAAU1B,GAAU,IAAIjrR,KAAK4qE,IAAM,IACxC5qE,KAAK4sR,QAAU7gQ,GAAKwzE,QAAUl7F,GAAIk7F,OAClCv/F,KAAK6sR,cAAgB9gQ,GAAK+gQ,aAMtB9sR,KAAKyjD,GAAK,IAAKzjD,KAAKyjD,GAAKwnO,GAAUjrR,KAAKyjD,KACxCzjD,KAAK0sR,GAAK,IAAK1sR,KAAK0sR,GAAKzB,GAAUjrR,KAAK0sR,KACxC1sR,KAAK6qE,GAAK,IAAK7qE,KAAK6qE,GAAKogN,GAAUjrR,KAAK6qE,KAE5C7qE,KAAK+sR,IAAM1oR,GAAI+yK,GACfp3K,KAAKgtR,OAAShC,KA6UlB,SAASiC,SAASpwR,GAAG6qB,GAAGpnB,IAEpBzD,GAAIsvR,QAAQtvR,GAAG,KACf6qB,GAAIykQ,QAAQzkQ,GAAG,KACfpnB,GAAI6rR,QAAQ7rR,GAAG,KAEf,IACIkrD,GAAGxtD,GADHuG,GAAM4mR,GAAQtuR,GAAG6qB,GAAGpnB,IAAIgE,GAAM4mR,GAAQruR,GAAG6qB,GAAGpnB,IACtCrE,IAAKsI,GAAMD,IAAO,EAE5B,GAAGC,IAAOD,GACNknD,GAAIxtD,GAAI,MAEP,CACD,IAAI3B,GAAIkI,GAAMD,GAEd,OADAtG,GAAI/B,GAAI,GAAMI,IAAK,EAAIkI,GAAMD,IAAOjI,IAAKkI,GAAMD,IACxCC,IACH,KAAK1H,GAAG2uD,IAAK9jC,GAAIpnB,IAAKjE,IAAKqrB,GAAIpnB,GAAI,EAAI,GAAI,MAC3C,KAAKonB,GAAG8jC,IAAKlrD,GAAIzD,IAAKR,GAAI,EAAG,MAC7B,KAAKiE,GAAGkrD,IAAK3uD,GAAI6qB,IAAKrrB,GAAI,EAG9BmvD,IAAK,EAGT,MAAO,CAAEA,EAAGA,GAAGxtD,EAAGA,GAAG/B,EAAGA,IAyC5B,SAASixR,SAASrwR,GAAG6qB,GAAGpnB,IAEpBzD,GAAIsvR,QAAQtvR,GAAG,KACf6qB,GAAIykQ,QAAQzkQ,GAAG,KACfpnB,GAAI6rR,QAAQ7rR,GAAG,KAEf,IACIkrD,GAAGxtD,GADHuG,GAAM4mR,GAAQtuR,GAAG6qB,GAAGpnB,IAAIgE,GAAM4mR,GAAQruR,GAAG6qB,GAAGpnB,IACtCf,GAAIgF,GAEVlI,GAAIkI,GAAMD,GAGd,GAFAtG,GAAY,IAARuG,GAAY,EAAIlI,GAAIkI,GAErBA,IAAOD,GACNknD,GAAI,MAEH,CACD,OAAOjnD,IACH,KAAK1H,GAAG2uD,IAAK9jC,GAAIpnB,IAAKjE,IAAKqrB,GAAIpnB,GAAI,EAAI,GAAI,MAC3C,KAAKonB,GAAG8jC,IAAKlrD,GAAIzD,IAAKR,GAAI,EAAG,MAC7B,KAAKiE,GAAGkrD,IAAK3uD,GAAI6qB,IAAKrrB,GAAI,EAE9BmvD,IAAK,EAET,MAAO,CAAEA,EAAGA,GAAGxtD,EAAGA,GAAGuB,EAAGA,IA8B5B,SAAS4tR,SAAStwR,GAAG6qB,GAAGpnB,GAAG8sR,IAEvB,IAAIlsB,GAAM,CACN3pD,KAAK0zE,GAAUpuR,IAAG8b,SAAS,KAC3B4+L,KAAK0zE,GAAUvjQ,IAAG/O,SAAS,KAC3B4+L,KAAK0zE,GAAU3qR,IAAGqY,SAAS,MAI/B,OAAIy0Q,IAAclsB,GAAI,GAAG53O,OAAO,IAAM43O,GAAI,GAAG53O,OAAO,IAAM43O,GAAI,GAAG53O,OAAO,IAAM43O,GAAI,GAAG53O,OAAO,IAAM43O,GAAI,GAAG53O,OAAO,IAAM43O,GAAI,GAAG53O,OAAO,GACzH43O,GAAI,GAAG53O,OAAO,GAAK43O,GAAI,GAAG53O,OAAO,GAAK43O,GAAI,GAAG53O,OAAO,GAGxD43O,GAAI9/P,KAAK,IA2BpB,SAASisR,cAAcxwR,GAAG6qB,GAAGpnB,GAAGD,IAS5B,MAPU,CACNk3M,KAAK+1E,oBAAoBjtR,KACzBk3M,KAAK0zE,GAAUpuR,IAAG8b,SAAS,KAC3B4+L,KAAK0zE,GAAUvjQ,IAAG/O,SAAS,KAC3B4+L,KAAK0zE,GAAU3qR,IAAGqY,SAAS,MAGpBvX,KAAK,IAwBpB,SAASmsR,WAAW9nR,GAAO+nR,IACvBA,GAAqB,IAAXA,GAAgB,EAAKA,IAAU,GACzC,IAAI7oR,GAAMujI,UAAUziI,IAAOgoR,QAG3B,OAFA9oR,GAAI3G,GAAKwvR,GAAS,IAClB7oR,GAAI3G,EAAI0vR,QAAQ/oR,GAAI3G,GACbkqI,UAAUvjI,IAGrB,SAASgpR,SAASloR,GAAO+nR,IACrBA,GAAqB,IAAXA,GAAgB,EAAKA,IAAU,GACzC,IAAI7oR,GAAMujI,UAAUziI,IAAOgoR,QAG3B,OAFA9oR,GAAI3G,GAAKwvR,GAAS,IAClB7oR,GAAI3G,EAAI0vR,QAAQ/oR,GAAI3G,GACbkqI,UAAUvjI,IAGrB,SAASipR,UAAUnoR,IACf,OAAOyiI,UAAUziI,IAAO8nR,WAAW,KAGvC,SAASM,QAASpoR,GAAO+nR,IACrBA,GAAqB,IAAXA,GAAgB,EAAKA,IAAU,GACzC,IAAI7oR,GAAMujI,UAAUziI,IAAOgoR,QAG3B,OAFA9oR,GAAI1I,GAAKuxR,GAAS,IAClB7oR,GAAI1I,EAAIyxR,QAAQ/oR,GAAI1I,GACbisI,UAAUvjI,IAGrB,SAASmpR,SAASroR,GAAO+nR,IACrBA,GAAqB,IAAXA,GAAgB,EAAKA,IAAU,GACzC,IAAInpR,GAAM6jI,UAAUziI,IAAOujI,QAI3B,OAHA3kI,GAAIxH,EAAIsuR,GAAQ,EAAGD,GAAQ,IAAK7mR,GAAIxH,EAAIouR,IAAmBuC,GAAS,IAAlB,OAClDnpR,GAAIqjB,EAAIyjQ,GAAQ,EAAGD,GAAQ,IAAK7mR,GAAIqjB,EAAIujQ,IAAmBuC,GAAS,IAAlB,OAClDnpR,GAAI/D,EAAI6qR,GAAQ,EAAGD,GAAQ,IAAK7mR,GAAI/D,EAAI2qR,IAAmBuC,GAAS,IAAlB,OAC3CtlJ,UAAU7jI,IAGrB,SAAS0pR,OAAQtoR,GAAO+nR,IACpBA,GAAqB,IAAXA,GAAgB,EAAKA,IAAU,GACzC,IAAI7oR,GAAMujI,UAAUziI,IAAOgoR,QAG3B,OAFA9oR,GAAI1I,GAAKuxR,GAAS,IAClB7oR,GAAI1I,EAAIyxR,QAAQ/oR,GAAI1I,GACbisI,UAAUvjI,IAKrB,SAASqpR,KAAKvoR,GAAO+nR,IACjB,IAAI7oR,GAAMujI,UAAUziI,IAAOgoR,QACvBQ,IAAOtpR,GAAI6mD,EAAIgiO,IAAU,IAE7B,OADA7oR,GAAI6mD,EAAIyiO,GAAM,EAAI,IAAMA,GAAMA,GACvB/lJ,UAAUvjI,IAQrB,SAASupR,WAAWzoR,IAChB,IAAId,GAAMujI,UAAUziI,IAAOgoR,QAE3B,OADA9oR,GAAI6mD,GAAK7mD,GAAI6mD,EAAI,KAAO,IACjB08E,UAAUvjI,IAGrB,SAASwpR,MAAM1oR,IACX,IAAId,GAAMujI,UAAUziI,IAAOgoR,QACvBjiO,GAAI7mD,GAAI6mD,EACZ,MAAO,CACH08E,UAAUziI,IACVyiI,UAAU,CAAE18E,GAAIA,GAAI,KAAO,IAAKxtD,EAAG2G,GAAI3G,EAAG/B,EAAG0I,GAAI1I,IACjDisI,UAAU,CAAE18E,GAAIA,GAAI,KAAO,IAAKxtD,EAAG2G,GAAI3G,EAAG/B,EAAG0I,GAAI1I,KAIzD,SAASmyR,OAAO3oR,IACZ,IAAId,GAAMujI,UAAUziI,IAAOgoR,QACvBjiO,GAAI7mD,GAAI6mD,EACZ,MAAO,CACH08E,UAAUziI,IACVyiI,UAAU,CAAE18E,GAAIA,GAAI,IAAM,IAAKxtD,EAAG2G,GAAI3G,EAAG/B,EAAG0I,GAAI1I,IAChDisI,UAAU,CAAE18E,GAAIA,GAAI,KAAO,IAAKxtD,EAAG2G,GAAI3G,EAAG/B,EAAG0I,GAAI1I,IACjDisI,UAAU,CAAE18E,GAAIA,GAAI,KAAO,IAAKxtD,EAAG2G,GAAI3G,EAAG/B,EAAG0I,GAAI1I,KAIzD,SAASoyR,gBAAgB5oR,IACrB,IAAId,GAAMujI,UAAUziI,IAAOgoR,QACvBjiO,GAAI7mD,GAAI6mD,EACZ,MAAO,CACH08E,UAAUziI,IACVyiI,UAAU,CAAE18E,GAAIA,GAAI,IAAM,IAAKxtD,EAAG2G,GAAI3G,EAAG/B,EAAG0I,GAAI1I,IAChDisI,UAAU,CAAE18E,GAAIA,GAAI,KAAO,IAAKxtD,EAAG2G,GAAI3G,EAAG/B,EAAG0I,GAAI1I,KAIzD,SAASqyR,UAAU7oR,GAAOk/O,GAASl6G,IAC/Bk6G,GAAUA,IAAW,EACrBl6G,GAASA,IAAU,GAEnB,IAAI9lI,GAAMujI,UAAUziI,IAAOgoR,QACvBc,GAAO,IAAM9jJ,GACbsyC,GAAM,CAAC70C,UAAUziI,KAErB,IAAKd,GAAI6mD,GAAM7mD,GAAI6mD,GAAK+iO,GAAO5pC,IAAW,GAAM,KAAO,MAAOA,IAC1DhgP,GAAI6mD,GAAK7mD,GAAI6mD,EAAI+iO,IAAQ,IACzBxxG,GAAI97K,KAAKinI,UAAUvjI,KAEvB,OAAOo4K,GAGX,SAASyxG,cAAc/oR,GAAOk/O,IAC1BA,GAAUA,IAAW,EAMrB,IALA,IAAI8mC,GAAMvjJ,UAAUziI,IAAOgpR,QACvBjjO,GAAIigO,GAAIjgO,EAAGxtD,GAAIytR,GAAIztR,EAAGuB,GAAIksR,GAAIlsR,EAC9Bw9K,GAAM,GACN2xG,GAAe,EAAI/pC,GAEhBA,MACH5nE,GAAI97K,KAAKinI,UAAU,CAAE18E,EAAGA,GAAGxtD,EAAGA,GAAGuB,EAAGA,MACpCA,IAAKA,GAAImvR,IAAgB,EAG7B,OAAO3xG,GApoBX70C,UAAUrqI,UAAY,CAClB8wR,OAAQ,WACJ,OAAO3uR,KAAK4uR,gBAAkB,KAElCC,QAAS,WACL,OAAQ7uR,KAAK2uR,UAEjB34Q,QAAS,WACL,OAAOhW,KAAK+sR,KAEhB+B,iBAAkB,WAChB,OAAO9uR,KAAKysR,gBAEdsC,UAAW,WACP,OAAO/uR,KAAK4sR,SAEhBoC,SAAU,WACN,OAAOhvR,KAAK4qE,IAEhBgkN,cAAe,WAEX,IAAIvqR,GAAMrE,KAAKgpI,QACf,OAAgB,IAAR3kI,GAAIxH,EAAkB,IAARwH,GAAIqjB,EAAkB,IAARrjB,GAAI/D,GAAW,KAEvD0qQ,aAAc,WAEV,IACIikB,GAAOC,GAAOC,GADd9qR,GAAMrE,KAAKgpI,QASf,OAPAimJ,GAAQ5qR,GAAIxH,EAAE,IACdqyR,GAAQ7qR,GAAIqjB,EAAE,IACdynQ,GAAQ9qR,GAAI/D,EAAE,IAKN,OAHJ2uR,IAAS,OAAcA,GAAQ,MAAkB/sR,GAAKq5B,KAAM0zP,GAAQ,MAAS,MAAQ,MAGlE,OAFnBC,IAAS,OAAcA,GAAQ,MAAkBhtR,GAAKq5B,KAAM2zP,GAAQ,MAAS,MAAQ,MAEnD,OADlCC,IAAS,OAAcA,GAAQ,MAAkBjtR,GAAKq5B,KAAM4zP,GAAQ,MAAS,MAAQ,OAG7FC,SAAU,SAASpyR,IAGf,OAFAgD,KAAK4qE,GAAK4hN,WAAWxvR,IACrBgD,KAAK2sR,QAAU1B,GAAU,IAAIjrR,KAAK4qE,IAAM,IACjC5qE,MAEXyuR,MAAO,WACH,IAAIhD,GAAMyB,SAASltR,KAAKyjD,GAAIzjD,KAAK0sR,GAAI1sR,KAAK6qE,IAC1C,MAAO,CAAErf,EAAW,IAARigO,GAAIjgO,EAASxtD,EAAGytR,GAAIztR,EAAGuB,EAAGksR,GAAIlsR,EAAGc,EAAGL,KAAK4qE,KAEzDykN,YAAa,WACT,IAAI5D,GAAMyB,SAASltR,KAAKyjD,GAAIzjD,KAAK0sR,GAAI1sR,KAAK6qE,IACtCrf,GAAIy/N,GAAkB,IAARQ,GAAIjgO,GAAUxtD,GAAIitR,GAAkB,IAARQ,GAAIztR,GAAUuB,GAAI0rR,GAAkB,IAARQ,GAAIlsR,GAC9E,OAAmB,GAAXS,KAAK4qE,GACX,OAAUpf,GAAI,KAAOxtD,GAAI,MAAQuB,GAAI,KACrC,QAAUisD,GAAI,KAAOxtD,GAAI,MAAQuB,GAAI,MAAOS,KAAK2sR,QAAU,KAEjEc,MAAO,WACH,IAAI9oR,GAAMsoR,SAASjtR,KAAKyjD,GAAIzjD,KAAK0sR,GAAI1sR,KAAK6qE,IAC1C,MAAO,CAAErf,EAAW,IAAR7mD,GAAI6mD,EAASxtD,EAAG2G,GAAI3G,EAAG/B,EAAG0I,GAAI1I,EAAGoE,EAAGL,KAAK4qE,KAEzD0kN,YAAa,WACT,IAAI3qR,GAAMsoR,SAASjtR,KAAKyjD,GAAIzjD,KAAK0sR,GAAI1sR,KAAK6qE,IACtCrf,GAAIy/N,GAAkB,IAARtmR,GAAI6mD,GAAUxtD,GAAIitR,GAAkB,IAARtmR,GAAI3G,GAAU/B,GAAIgvR,GAAkB,IAARtmR,GAAI1I,GAC9E,OAAmB,GAAX+D,KAAK4qE,GACX,OAAUpf,GAAI,KAAOxtD,GAAI,MAAQ/B,GAAI,KACrC,QAAUuvD,GAAI,KAAOxtD,GAAI,MAAQ/B,GAAI,MAAO+D,KAAK2sR,QAAU,KAEjE4C,MAAO,SAASnC,IACZ,OAAOD,SAASntR,KAAKyjD,GAAIzjD,KAAK0sR,GAAI1sR,KAAK6qE,GAAIuiN,KAE/CoC,YAAa,SAASpC,IAClB,MAAO,IAAMptR,KAAKuvR,MAAMnC,KAE5BqC,OAAQ,SAASC,IACb,OA6YR,SAASC,UAAU9yR,GAAG6qB,GAAGpnB,GAAGD,GAAGqvR,IAE3B,IAAIxuB,GAAM,CACN3pD,KAAK0zE,GAAUpuR,IAAG8b,SAAS,KAC3B4+L,KAAK0zE,GAAUvjQ,IAAG/O,SAAS,KAC3B4+L,KAAK0zE,GAAU3qR,IAAGqY,SAAS,KAC3B4+L,KAAK+1E,oBAAoBjtR,MAI7B,GAAIqvR,IAAcxuB,GAAI,GAAG53O,OAAO,IAAM43O,GAAI,GAAG53O,OAAO,IAAM43O,GAAI,GAAG53O,OAAO,IAAM43O,GAAI,GAAG53O,OAAO,IAAM43O,GAAI,GAAG53O,OAAO,IAAM43O,GAAI,GAAG53O,OAAO,IAAM43O,GAAI,GAAG53O,OAAO,IAAM43O,GAAI,GAAG53O,OAAO,GACxK,OAAO43O,GAAI,GAAG53O,OAAO,GAAK43O,GAAI,GAAG53O,OAAO,GAAK43O,GAAI,GAAG53O,OAAO,GAAK43O,GAAI,GAAG53O,OAAO,GAGlF,OAAO43O,GAAI9/P,KAAK,IA3ZLuuR,CAAU3vR,KAAKyjD,GAAIzjD,KAAK0sR,GAAI1sR,KAAK6qE,GAAI7qE,KAAK4qE,GAAI8kN,KAEzDE,aAAc,SAASF,IACnB,MAAO,IAAM1vR,KAAKyvR,OAAOC,KAE7B1mJ,MAAO,WACH,MAAO,CAAEnsI,EAAGouR,GAAUjrR,KAAKyjD,IAAK/7B,EAAGujQ,GAAUjrR,KAAK0sR,IAAKpsR,EAAG2qR,GAAUjrR,KAAK6qE,IAAKxqE,EAAGL,KAAK4qE,KAE1F6+D,YAAa,WACT,OAAmB,GAAXzpI,KAAK4qE,GACX,OAAUqgN,GAAUjrR,KAAKyjD,IAAM,KAAOwnO,GAAUjrR,KAAK0sR,IAAM,KAAOzB,GAAUjrR,KAAK6qE,IAAM,IACvF,QAAUogN,GAAUjrR,KAAKyjD,IAAM,KAAOwnO,GAAUjrR,KAAK0sR,IAAM,KAAOzB,GAAUjrR,KAAK6qE,IAAM,KAAO7qE,KAAK2sR,QAAU,KAEnHkD,gBAAiB,WACb,MAAO,CAAEhzR,EAAGouR,GAAkC,IAAxBkB,QAAQnsR,KAAKyjD,GAAI,MAAc,IAAK/7B,EAAGujQ,GAAkC,IAAxBkB,QAAQnsR,KAAK0sR,GAAI,MAAc,IAAKpsR,EAAG2qR,GAAkC,IAAxBkB,QAAQnsR,KAAK6qE,GAAI,MAAc,IAAKxqE,EAAGL,KAAK4qE,KAExKklN,sBAAuB,WACnB,OAAmB,GAAX9vR,KAAK4qE,GACX,OAAUqgN,GAAkC,IAAxBkB,QAAQnsR,KAAKyjD,GAAI,MAAc,MAAQwnO,GAAkC,IAAxBkB,QAAQnsR,KAAK0sR,GAAI,MAAc,MAAQzB,GAAkC,IAAxBkB,QAAQnsR,KAAK6qE,GAAI,MAAc,KACrJ,QAAUogN,GAAkC,IAAxBkB,QAAQnsR,KAAKyjD,GAAI,MAAc,MAAQwnO,GAAkC,IAAxBkB,QAAQnsR,KAAK0sR,GAAI,MAAc,MAAQzB,GAAkC,IAAxBkB,QAAQnsR,KAAK6qE,GAAI,MAAc,MAAQ7qE,KAAK2sR,QAAU,KAElLoD,OAAQ,WACJ,OAAgB,IAAZ/vR,KAAK4qE,GACE,gBAGP5qE,KAAK4qE,GAAK,KAIPolN,GAAS7C,SAASntR,KAAKyjD,GAAIzjD,KAAK0sR,GAAI1sR,KAAK6qE,IAAI,MAAU,IAElEolN,SAAU,SAASC,IACf,IAAIC,GAAa,IAAM9C,cAAcrtR,KAAKyjD,GAAIzjD,KAAK0sR,GAAI1sR,KAAK6qE,GAAI7qE,KAAK4qE,IACjEwlN,GAAmBD,GACnBrD,GAAe9sR,KAAK6sR,cAAgB,qBAAuB,GAE/D,GAAIqD,GAAa,CACb,IAAIlyR,GAAIkqI,UAAUgoJ,IAClBE,GAAmB,IAAM/C,cAAcrvR,GAAEylD,GAAIzlD,GAAE0uR,GAAI1uR,GAAE6sE,GAAI7sE,GAAE4sE,IAG/D,MAAO,8CAA8CkiN,GAAa,iBAAiBqD,GAAW,gBAAgBC,GAAiB,KAEnIz3Q,SAAU,SAAS4mF,IACf,IAAI8wL,KAAc9wL,GAClBA,GAASA,IAAUv/F,KAAK4sR,QAExB,IAAI0D,IAAkB,EAClB1oR,GAAW5H,KAAK4qE,GAAK,GAAK5qE,KAAK4qE,IAAM,EAGzC,OAFwBylN,KAAazoR,IAAwB,QAAX23F,IAA+B,SAAXA,IAAgC,SAAXA,IAAgC,SAAXA,IAAgC,SAAXA,IAAgC,SAAXA,IAU3I,QAAXA,KACA+wL,GAAkBtwR,KAAKypI,eAEZ,SAAXlqC,KACA+wL,GAAkBtwR,KAAK8vR,yBAEZ,QAAXvwL,IAA+B,SAAXA,KACpB+wL,GAAkBtwR,KAAKwvR,eAEZ,SAAXjwL,KACA+wL,GAAkBtwR,KAAKwvR,aAAY,IAExB,SAAXjwL,KACA+wL,GAAkBtwR,KAAK4vR,cAAa,IAEzB,SAAXrwL,KACA+wL,GAAkBtwR,KAAK4vR,gBAEZ,SAAXrwL,KACA+wL,GAAkBtwR,KAAK+vR,UAEZ,QAAXxwL,KACA+wL,GAAkBtwR,KAAKsvR,eAEZ,QAAX/vL,KACA+wL,GAAkBtwR,KAAKqvR,eAGpBiB,IAAmBtwR,KAAKwvR,eAjCZ,SAAXjwL,IAAiC,IAAZv/F,KAAK4qE,GACnB5qE,KAAK+vR,SAET/vR,KAAKypI,eAgCpBtmH,MAAO,WACH,OAAO+kH,UAAUloI,KAAK2Y,aAG1B43Q,mBAAoB,SAASjtQ,GAAIiiB,IAC7B,IAAI9/B,GAAQ6d,GAAG5kB,MAAM,KAAM,CAACsB,MAAMkE,OAAO,GAAG1F,MAAMtC,KAAKqpC,MAKvD,OAJAvlC,KAAKyjD,GAAKh+C,GAAMg+C,GAChBzjD,KAAK0sR,GAAKjnR,GAAMinR,GAChB1sR,KAAK6qE,GAAKplE,GAAMolE,GAChB7qE,KAAKovR,SAAS3pR,GAAMmlE,IACb5qE,MAEX6tR,QAAS,WACL,OAAO7tR,KAAKuwR,mBAAmB1C,QAASz2Q,YAE5C02Q,SAAU,WACN,OAAO9tR,KAAKuwR,mBAAmBzC,SAAU12Q,YAE7C22Q,OAAQ,WACJ,OAAO/tR,KAAKuwR,mBAAmBxC,OAAQ32Q,YAE3Cm2Q,WAAY,WACR,OAAOvtR,KAAKuwR,mBAAmBhD,WAAYn2Q,YAE/Cu2Q,SAAU,WACN,OAAO3tR,KAAKuwR,mBAAmB5C,SAAUv2Q,YAE7Cw2Q,UAAW,WACP,OAAO5tR,KAAKuwR,mBAAmB3C,UAAWx2Q,YAE9C42Q,KAAM,WACF,OAAOhuR,KAAKuwR,mBAAmBvC,KAAM52Q,YAGzCo5Q,kBAAmB,SAASltQ,GAAIiiB,IAC5B,OAAOjiB,GAAG5kB,MAAM,KAAM,CAACsB,MAAMkE,OAAO,GAAG1F,MAAMtC,KAAKqpC,OAEtD+oP,UAAW,WACP,OAAOtuR,KAAKwwR,kBAAkBlC,UAAWl3Q,YAE7C82Q,WAAY,WACR,OAAOluR,KAAKwwR,kBAAkBtC,WAAY92Q,YAE9Co3Q,cAAe,WACX,OAAOxuR,KAAKwwR,kBAAkBhC,cAAep3Q,YAEjDi3Q,gBAAiB,WACb,OAAOruR,KAAKwwR,kBAAkBnC,gBAAiBj3Q,YAEnD+2Q,MAAO,WACH,OAAOnuR,KAAKwwR,kBAAkBrC,MAAO/2Q,YAEzCg3Q,OAAQ,WACJ,OAAOpuR,KAAKwwR,kBAAkBpC,OAAQh3Q,aAM9C8wH,UAAUuoJ,UAAY,SAAShrR,GAAOsmB,IAClC,GAAoB,iBAATtmB,GAAmB,CAC1B,IAAIupM,GAAW,GACf,IAAK,IAAIhzM,MAAKyJ,GACNA,GAAM3H,eAAe9B,MAEjBgzM,GAAShzM,IADH,MAANA,GACcyJ,GAAMzJ,IAGNowR,oBAAoB3mR,GAAMzJ,MAIpDyJ,GAAQupM,GAGZ,OAAO9mE,UAAUziI,GAAOsmB,KA0Q5Bm8G,UAAUisH,OAAS,SAAUu8B,GAAQC,IACjC,SAAKD,KAAWC,KACTzoJ,UAAUwoJ,IAAQjnJ,eAAiBvB,UAAUyoJ,IAAQlnJ,eAGhEvB,UAAUlmI,OAAS,WACf,OAAOkmI,UAAUuoJ,UAAU,CACvB5zR,EAAGuuR,KACH1jQ,EAAG0jQ,KACH9qR,EAAG8qR,QA2IXljJ,UAAU0oJ,IAAM,SAASF,GAAQC,GAAQnD,IACrCA,GAAqB,IAAXA,GAAgB,EAAKA,IAAU,GAEzC,IAAIqD,GAAO3oJ,UAAUwoJ,IAAQ1nJ,QACzB8nJ,GAAO5oJ,UAAUyoJ,IAAQ3nJ,QAEzBjrI,GAAIyvR,GAAS,IASjB,OAAOtlJ,UAPI,CACPrrI,GAAKi0R,GAAKj0R,EAAIg0R,GAAKh0R,GAAKkB,GAAK8yR,GAAKh0R,EAClC6qB,GAAKopQ,GAAKppQ,EAAImpQ,GAAKnpQ,GAAK3pB,GAAK8yR,GAAKnpQ,EAClCpnB,GAAKwwR,GAAKxwR,EAAIuwR,GAAKvwR,GAAKvC,GAAK8yR,GAAKvwR,EAClCD,GAAKywR,GAAKzwR,EAAIwwR,GAAKxwR,GAAKtC,GAAK8yR,GAAKxwR,KAa1C6nI,UAAU6oJ,YAAc,SAASL,GAAQC,IACrC,IAAIthL,GAAK64B,UAAUwoJ,IACfM,GAAK9oJ,UAAUyoJ,IACnB,OAAQzuR,GAAKqC,IAAI8qG,GAAG27J,eAAegmB,GAAGhmB,gBAAgB,MAAS9oQ,GAAKoC,IAAI+qG,GAAG27J,eAAegmB,GAAGhmB,gBAAgB,MAajH9iI,UAAU+oJ,WAAa,SAASP,GAAQC,GAAQO,IAC5C,IACIC,GAAYh1Q,GADZ40Q,GAAc7oJ,UAAU6oJ,YAAYL,GAAQC,IAMhD,OAHAx0Q,IAAM,GAENg1Q,GAkaJ,SAASC,mBAAmBC,IAGxB,IAAIxlJ,GAAO9rH,GAEX8rH,KADAwlJ,GAAQA,IAAS,CAAC,MAAQ,KAAM,KAAO,UACxBxlJ,OAAS,MAAM0yC,cAC9Bx+J,IAAQsxQ,GAAMtxQ,MAAQ,SAAStJ,cACjB,OAAVo1H,IAA4B,QAAVA,KAClBA,GAAQ,MAEC,UAAT9rH,IAA6B,UAATA,KACpBA,GAAO,SAEX,MAAO,CAAC,MAAQ8rH,GAAO,KAAO9rH,IA/ajBqxQ,CAAmBF,KACbrlJ,MAAQslJ,GAAWpxQ,MAClC,IAAK,UACL,IAAK,WACD5D,GAAM40Q,IAAe,IACrB,MACJ,IAAK,UACD50Q,GAAM40Q,IAAe,EACrB,MACJ,IAAK,WACD50Q,GAAM40Q,IAAe,EAG7B,OAAO50Q,IAaX+rH,UAAUopJ,aAAe,SAASC,GAAWC,GAAWjsP,IACpD,IAEIwrP,GACAU,GAAuB5lJ,GAAO9rH,GAH9B2xQ,GAAY,KACZC,GAAY,EAIhBF,IADAlsP,GAAOA,IAAQ,IACcksP,sBAC7B5lJ,GAAQtmG,GAAKsmG,MACb9rH,GAAOwlB,GAAKxlB,KAEZ,IAAK,IAAI/jB,GAAG,EAAGA,GAAIw1R,GAAUnzR,OAASrC,MAClC+0R,GAAc7oJ,UAAU6oJ,YAAYQ,GAAWC,GAAUx1R,MACvC21R,KACdA,GAAYZ,GACZW,GAAYxpJ,UAAUspJ,GAAUx1R,MAIxC,OAAIksI,UAAU+oJ,WAAWM,GAAWG,GAAW,CAAC,MAAQ7lJ,GAAM,KAAO9rH,OAAW0xQ,GACrEC,IAGPnsP,GAAKksP,uBAAsB,EACpBvpJ,UAAUopJ,aAAaC,GAAU,CAAC,OAAQ,QAAQhsP,MAQjE,IAAIohG,GAAQuB,UAAUvB,MAAQ,CAC1BirJ,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,SACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,MACPC,eAAgB,SAChB5mG,KAAM,MACN6mG,WAAY,SACZC,MAAO,SACPC,UAAW,SACXC,YAAa,SACbC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,SAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,SACVC,SAAU,SACVC,cAAe,SACfC,SAAU,SACVC,UAAW,SACXC,SAAU,SACVC,UAAW,SACXC,YAAa,SACbC,eAAgB,SAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,SACTC,WAAY,SACZC,aAAc,SACdC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,SAAU,SACVC,YAAa,SACbC,QAAS,SACTC,QAAS,SACTC,WAAY,SACZC,UAAW,SACXC,YAAa,SACbC,YAAa,SACbC,QAAS,MACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,SACNC,MAAO,SACPC,YAAa,SACbC,KAAM,SACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,SACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,SACfC,aAAc,SACdC,eAAgB,MAChBC,eAAgB,MAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,SACXC,MAAO,SACPC,QAAS,MACTC,OAAQ,SACRC,iBAAkB,SAClBC,WAAY,SACZC,aAAc,SACdC,aAAc,SACdC,eAAgB,SAChBC,gBAAiB,SACjBC,kBAAmB,SACnBC,gBAAiB,SACjBC,gBAAiB,SACjBC,aAAc,SACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,SACRC,cAAe,SACf7tG,IAAK,MACL8tG,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,UAAW,SACXC,UAAW,SACXC,KAAM,SACNC,YAAa,SACbC,UAAW,SACX3qN,IAAK,SACL4qN,KAAM,SACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,MACPC,WAAY,SACZC,OAAQ,MACRC,YAAa,UAIb7K,GAAW9nJ,UAAU8nJ,SAOzB,SAASzvR,KAAK/D,IACV,IAAIs+R,GAAU,GACd,IAAK,IAAI9+R,MAAKQ,GACNA,GAAEsB,eAAe9B,MACjB8+R,GAAQt+R,GAAER,KAAMA,IAGxB,OAAO8+R,GAdyBv6R,CAAKomI,IAkBzC,SAAS6lJ,WAAWnsR,IAOhB,OANAA,GAAIgvB,WAAWhvB,KAEXuJ,MAAMvJ,KAAMA,GAAI,GAAKA,GAAI,KACzBA,GAAI,GAGDA,GAIX,SAAS8rR,QAAQ3uR,GAAG+G,KAgCpB,SAASw2R,eAAev9R,IACpB,MAAmB,iBAALA,KAAoC,GAAnBA,GAAEiC,QAAQ,MAAgC,IAAlB4vB,WAAW7xB,KAhC9Du9R,CAAev9R,MAAMA,GAAI,QAE7B,IAAIw9R,GAkCR,SAASC,aAAaz9R,IAClB,MAAoB,iBAANA,KAAqC,GAAnBA,GAAEiC,QAAQ,KAnCrBw7R,CAAaz9R,IASlC,OARAA,GAAI0tR,GAAQ3mR,GAAK4mR,GAAQ,EAAG97P,WAAW7xB,MAGnCw9R,KACAx9R,GAAIsnB,SAAStnB,GAAI+G,GAAK,IAAM,KAI3BrC,GAAKsR,IAAIhW,GAAI+G,IAAO,KACd,EAIH/G,GAAI+G,GAAO8qB,WAAW9qB,IAIlC,SAASmpR,QAAQn/P,IACb,OAAO28P,GAAQ,EAAGC,GAAQ,EAAG58P,KAIjC,SAASq9P,gBAAgBr9P,IACrB,OAAOzJ,SAASyJ,GAAK,IAezB,SAASgpL,KAAKn7M,IACV,OAAmB,GAAZA,GAAEiC,OAAc,IAAMjC,GAAI,GAAKA,GAI1C,SAASgwR,oBAAoB5uR,IAKzB,OAJIA,IAAK,IACLA,GAAS,IAAJA,GAAW,KAGbA,GAIX,SAAS8vR,oBAAoBjxR,IACzB,OAAO6F,GAAKm5B,MAAsB,IAAhBhM,WAAWhzB,KAAUsc,SAAS,IAGpD,SAASkzQ,oBAAoBrgO,IACzB,OAAQogO,gBAAgBpgO,IAAK,IAGjC,IASQ0vO,GAKAC,GACAC,GAfJ5P,IAcI2P,GAAoB,eALpBD,GAAW,8CAKoC,aAAeA,GAAW,aAAeA,GAAW,YACnGE,GAAoB,cAAgBF,GAAW,aAAeA,GAAW,aAAeA,GAAW,aAAeA,GAAW,YAE1H,CACHA,SAAU,IAAIj3P,OAAOi3P,IACrB72R,IAAK,IAAI4/B,OAAO,MAAQk3P,IACxBz2R,KAAM,IAAIu/B,OAAO,OAASm3P,IAC1Bz2R,IAAK,IAAIs/B,OAAO,MAAQk3P,IACxBv2R,KAAM,IAAIq/B,OAAO,OAASm3P,IAC1B3P,IAAK,IAAIxnP,OAAO,MAAQk3P,IACxBzP,KAAM,IAAIznP,OAAO,OAASm3P,IAC1BpP,KAAM,uDACNF,KAAM,uDACNC,KAAM,uEACNJ,KAAM,yEAOd,SAASM,eAAexmR,IACpB,QAAS+lR,GAAS0P,SAASj0L,KAAKxhG,IAgGvBhK,GAAOC,QAChBD,GAAOC,QAAUwsI,eAKiBtpH,KADhC6hJ,GAAgC,WAAc,OAAOv4B,WAAahsI,KAAKR,GAASI,GAAqBJ,GAASD,OAChEA,GAAOC,QAAU+kK,IAhqCrE,CAqqCGv+J,OAKG,OACA,SAAUzG,GAAQC,GAASI,IAEjC,aAWA,IAAIiY,GAAMjY,GAAoB,QAE1BykE,GAAWzkE,GAAoB,QAC/BkqF,GAAuBlqF,GAAoB,QAC3CmqF,GAAqBnqF,GAAoB,QACzCoqF,GAA0BpqF,GAAoB,QAC9CqqF,GAAqBrqF,GAAoB,QACzCsqF,GAA0BtqF,GAAoB,QAC9CyqF,GAAgBzqF,GAAoB,QAAQyqF,cAE5CphF,GAAarJ,GAAoB,QAyDrC,SAASm6Q,qBAAqBthN,GAASC,GAAU5V,GAAQlQ,IACrD,IAEI9iB,GAFAnvB,GAAIiyC,GAAO,KACXrwB,GAAQqwB,GAAO,SAGnB,GAAGjyC,GACI4hB,GACCuN,GAAM9pB,KAAKoC,IAAIzH,GAAEwB,OAAQogB,GAAMpgB,SAE/B2tB,GAAMnvB,GAAEwB,OACRywC,GAAO,UACPA,GAAO,eAER,CACH,IAAIrwB,GAAO,OAAO,EAClBuN,GAAM4oC,GAASn2C,MAAMpgB,OACrBywC,GAAO,MACPA,GAAO,MAIX,OADA8lB,GAASzhD,QAAU6Y,GACZA,GAGXvwB,GAAOC,QAAU,CACbu6Q,qBAAsBA,qBACtBlnQ,eAjFJ,SAASA,eAAe4lD,GAASC,GAAU4D,GAAcxZ,IACrD,SAASlQ,OAAO1qB,GAAMzE,IAClB,OAAO5L,GAAI+6B,OAAO6lB,GAASC,GAAUzvD,GAAYif,GAAMzE,IAG3D,IAAIqM,GAAMiqP,qBAAqBthN,GAASC,GAAU5V,GAAQlQ,QAC1D,GAAI9iB,GAAJ,CAKA8iB,OAAO,aACPA,OAAO,OAAQ9iB,GAAMu6D,GAAgB,gBAAkB,SACvDz3C,OAAO,QACPA,OAAO,aACiB,UAArB8lB,GAASgyB,SAAqB93C,OAAO,iBAErCyxB,GAASE,SAAS7L,MACjBqxB,GAAmBtxB,GAASC,GAAU4D,GAAcxZ,GAAQlQ,QAC5Do3C,GAAwBvxB,GAASC,GAAU9lB,QAC3CA,OAAO,gBAGRyxB,GAASG,WAAW9L,KACnBoxB,GAAqBrxB,GAASC,GAAU4D,GAAcxZ,GAAQlQ,OAAQ,CAAC03C,UAAU,IAGlFjmB,GAASltC,QAAQuhC,MAChB9lB,OAAO,gBACPq3C,GAAmBxxB,GAASC,GAAU5V,GAAQlQ,SAGlD,IAAI23C,GAAc,IAEflmB,GAASG,WAAW9L,KAAa2L,GAASltC,QAAQuhC,OACjD9lB,OAAO,cACPA,OAAO,uBACP23C,GAAYxlF,KAAK,WAGrB6tC,OAAO,QAEc,SAAlB8lB,GAAS5mD,OACRo4E,GAAwBzxB,GAASC,GAAU4D,GAAc1pB,QACrDyxB,GAASE,SAAS7L,KAAWsxB,GAAwBvxB,GAASC,GAAU9lB,SAG3D,WAAlB8lB,GAAS5mD,MAAuC,WAAlB4mD,GAAS5mD,MACtCy4E,GAAYxlF,KAAK,SAErB6tC,OAAO,UAAW23C,GAAYrlF,KAAK,MAAQ,UAE3C2S,GAAIizE,6BAA6BpyB,GAAU9lB,aA7CvC8lB,GAAStmD,SAAU,KAgFrB,KACA,SAAU7S,GAAQC,GAASI,IAEjC,aAOA,SAASy0M,MAAOzsM,GAAKioB,IAEpB,GAAmB,iBAARjoB,GAAkB,MAAO,CAACA,IAErC,IAAIo+I,GAAM,CAACp+I,IAES,iBAATioB,IAAqBntB,MAAMkL,QAAQiiB,IAC7CA,GAAO,CAACsvQ,SAAUtvQ,IAETA,KAAMA,GAAO,IAEvB,IAAIsvQ,GAAWtvQ,GAAKsvQ,SAAYz8R,MAAMkL,QAAQiiB,GAAKsvQ,UAAYtvQ,GAAKsvQ,SAAW,CAACtvQ,GAAKsvQ,UAAa,CAAC,KAAM,KAAM,MAE3GC,GAASvvQ,GAAKuvQ,QAAU,MAExBC,KAASxvQ,GAAKwvQ,KAElBF,GAAS9oO,SAAQ,SAAUipO,IAE1B,IAAIC,GAAM,IAAIx3P,OAAO,CAAC,KAAMu3P,GAAQ,GAAI,OAAQA,GAAQ,GAAI,KAAMA,GAAQ,GAAI,OAAQA,GAAQ,IAAIp6R,KAAK,KAEnGwsF,GAAM,GAEV,SAAS8tM,aAAa92J,GAAOpkG,GAAK18B,IAEjC,IAAI63R,GAAQz5I,GAAIjhJ,KAAK2jI,GAAMpmI,MAAMg9R,GAAQ,GAAGn9R,QAASm9R,GAAQ,GAAGn9R,SAAW,EAI3E,OAFAuvF,GAAI3sF,KAAK06R,IAEFL,GAASK,GAAQL,GAGzBp5I,GAAI3vF,SAAQ,SAAUzuD,GAAK9H,IAK1B,IAJA,IAAI4/R,GAGAv7R,GAAI,EACDyD,IAAO83R,IAGb,GAFAA,GAAU93R,GACVA,GAAMA,GAAIuQ,QAAQonR,GAAKC,cACnBr7R,KAAM,IAAM,MAAM/B,MAAM,4DAG7B4jJ,GAAIlmJ,IAAK8H,MAIV8pF,GAAMA,GAAIjlC,UACVu5F,GAAMA,GAAI7qG,KAAI,SAAUvzC,IAIvB,OAHA8pF,GAAIr7B,SAAQ,SAAUpqD,IACrBrE,GAAMA,GAAIuQ,QAAQ,IAAI4vB,OAAO,MAAQq3P,GAASnzR,GAAK,KAAOmzR,GAAS,IAAK,KAAME,GAAQ,GAAK,KAAOA,GAAQ,OAEpG13R,SAIT,IAAI+nB,GAAK,IAAIoY,OAAO,KAAOq3P,GAAP,aAAoCA,IAsBxD,OAAOC,GAAOr5I,GAnBd,SAASonD,KAAMxlM,GAAK42F,GAAM4gM,IAIzB,IAHA,IAAch3Q,GAAV49H,GAAM,GAEN7hJ,GAAI,EACDikB,GAAQuH,GAAGo7E,KAAKnjG,KAAM,CAC5B,GAAIzD,KAAM,IAAM,MAAM/B,MAAM,sCAE5B4jJ,GAAIjhJ,KAAK6C,GAAItF,MAAM,EAAG8lB,GAAMnkB,QAE5B+hJ,GAAIjhJ,KAAKqoM,KAAK5uG,GAAKp2E,GAAM,IAAKo2E,KAE9B52F,GAAMA,GAAItF,MAAM8lB,GAAMnkB,MAAQmkB,GAAM,GAAGjmB,QAKxC,OAFA6jJ,GAAIjhJ,KAAK6C,IAEFo+I,GAGYonD,CAAKpnD,GAAI,GAAIA,IAGlC,SAASs5B,UAAW14H,GAAK/2B,IACxB,GAAIA,IAAQA,GAAKwvQ,KAAM,CACtB,IAEkBK,GAFdN,GAASvvQ,IAAQA,GAAKuvQ,QAAU,MAEhCx3R,GAAMg/C,GAAI,GAGd,IAAKh/C,GAAK,MAAO,GAMjB,IAHA,IAAI+nB,GAAK,IAAIoY,OAAO,KAAOq3P,GAAP,aAAoCA,IAEpDj7R,GAAI,EACDyD,IAAO83R,IAAS,CACtB,GAAIv7R,KAAM,IAAM,MAAM/B,MAAM,0BAA4BwkD,IACxD84O,GAAU93R,GACVA,GAAMA,GAAIuQ,QAAQwX,GAAIgwQ,YAGvB,OAAO/3R,GAGR,OAAOg/C,GAAI44C,QAAO,SAASt3D,EAAG/hC,GAAMy5R,IAInC,OAHIl9R,MAAMkL,QAAQgyR,MACjBA,GAAOA,GAAKpgM,OAAOt3D,EAAG,KAEhB/hC,GAAOy5R,KACZ,IAEH,SAASD,WAAWv3Q,GAAOkc,IAC1B,GAAgB,MAAZsiB,GAAItiB,IAAc,MAAMliC,MAAM,aAAekiC,GAAM,gBACvD,OAAOsiB,GAAItiB,KAIb,SAASu7P,YAAaj5O,GAAK/2B,IAC1B,OAAIntB,MAAMkL,QAAQg5C,IACV04H,UAAU14H,GAAK/2B,IAGfwkL,MAAMztJ,GAAK/2B,IAIpBgwQ,YAAYxrF,MAAQA,MACpBwrF,YAAYvgH,UAAYA,UAExB//K,GAAOC,QAAUqgS,aAKX,OACA,SAAUtgS,GAAQC,GAASI,IAEjC,aAWA,IAAIq2H,GAAYr2H,GAAoB,QAChC8rF,GAAY9rF,GAAoB,QAChCujB,GAAavjB,GAAoB,QAAQujB,WACzCC,GAAcxjB,GAAoB,QAAQwjB,YAG9C7jB,GAAOC,QAAU4jB,GAAY,CASzB08Q,cAAe,CACXt8Q,QAAS,aACTsV,OAAQ,CAAC,WAAY,UAErBrV,KAAM,UAGV2yG,UAAW,CACP5yG,QAAS,SAETpb,IAAK,EACLqb,KAAM,IAGVs8Q,QAAS,CACLv8Q,QAAS,aACTsV,OAAQ,CAAC,WAAY,UAErBrV,KAAM,YAGVqM,IAAK,CACDtM,QAAS,SACTpb,IAAK,EACLqb,KAAM,GAIVjV,EAAG,CACCgV,QAAS,SACTC,KAAM,KACNrb,KAAM,EACNC,IAAK,GAITq4F,QAAS,CACLl9E,QAAS,aACTsV,OAAQ,CAAC,OAAQ,SAAU,SAC3BrV,KAAM,QAIVu8Q,KAAM,CACFx8Q,QAAS,SAETpb,IAAK,EACLqb,KAAM,IAGV/N,EAAG,CACC8N,QAAS,SAETC,KAAM,GACNrb,KAAM,EACNC,IAAK,GAGTs4F,QAAS,CACLn9E,QAAS,aACTsV,OAAQ,CAAC,MAAO,SAAU,UAE1BrV,KAAM,UAGVw8Q,KAAM,CACFz8Q,QAAS,SAETpb,IAAK,EACLqb,KAAM,IAIVy8Q,aAAcjqK,GAAU+3G,UACxBmyD,aAAclqK,GAAU7oE,UAGxB28C,YAAaksB,GAAU+3G,UACvB/jI,YAAa,CACTzmF,QAAS,SAETpb,IAAK,EACLqb,KAAM,GAGVqmF,QAAS,CACLtmF,QAAS,QAETC,KAAM,iBAIV9L,SAAUs+G,GAAUt+G,SACpBC,OAAQq+G,GAAUr+G,OAClBu+B,MAAO8/E,GAAU9/E,MACjBD,MAAO+/E,GAAU//E,MACjBwC,SAAUu9E,GAAUv9E,SACpBC,SAAUs9E,GAAUt9E,SACpB7hC,MAAOqM,GAAW,GAAI8yG,GAAUn/G,MAAO,CAAC2M,KAAM,KAC9C6oC,QAAS2pE,GAAU3pE,QACnBoD,UAAWumE,GAAUvmE,UACrBD,UAAWwmE,GAAUxmE,UACrB/B,eAAgBuoE,GAAUvoE,eAC1BnV,SAAUmzC,GAAU,IAGpBn8B,UAAW0mE,GAAU1mE,UACrBjR,WAAY23E,GAAU33E,WACtB8G,gBAAiB6wE,GAAU7wE,gBAC3BrF,WAAYk2E,GAAUl2E,WACtBC,eAAgBi2E,GAAUj2E,eAC1BC,WAAYg2E,GAAUh2E,WACtBC,eAAgB+1E,GAAU/1E,eAC1Bc,kBAAmBi1E,GAAUj1E,kBAC7BxF,eAAgBy6E,GAAUz6E,eAC1BiC,aAAcw4E,GAAUx4E,aACxBoE,MAAO,CACHvyC,KAAM,CACFkU,QAAS,UAIbpC,KAAMsqE,GAAU,IAGhBjgC,KAAM,CACFjoC,QAAS,aACTsV,OAAQ,CAAC,QAAS,MAAO,UAEzBrV,KAAM,QAKd6B,YAAa,CACTu8B,MAAO,CACHr+B,QAAS,UAIbyqN,UAAWviJ,GAAU,IAGrB00M,UAAW,CACP58Q,QAAS,aACTsV,OAAQ,CAAC,QAAS,MAAO,UAEzBrV,KAAM,SAIf,YAAa,cAKV,OACA,SAAUlkB,GAAQC,GAASI,IAEjC,aAWA,IAAIiY,GAAMjY,GAAoB,QAE1BykE,GAAWzkE,GAAoB,QAC/BkqF,GAAuBlqF,GAAoB,QAC3CmqF,GAAqBnqF,GAAoB,QACzCqqF,GAAqBrqF,GAAoB,QACzCsqF,GAA0BtqF,GAAoB,QAC9CqJ,GAAarJ,GAAoB,QAErCL,GAAOC,QAAU,SAASqT,eAAe4lD,GAASC,GAAU4D,GAAcxZ,IACtE,SAASlQ,OAAO1qB,GAAMzE,IAClB,OAAO5L,GAAI+6B,OAAO6lB,GAASC,GAAUzvD,GAAYif,GAAMzE,IAI3D,GAwCJ,SAAS48Q,qBAAqB5nO,GAASC,GAAU9lB,IAC7C,IAAIw6C,GAAMx6C,GAAO,QAAU,GACvB26C,GAAM36C,GAAO,QAAU,GACvB9iB,GAAM9pB,KAAKoC,IAAIglF,GAAIjrF,OAAQorF,GAAIprF,QAGnC,OAFAu2D,GAASzhD,QAAU6Y,GAEZA,GA/CGuwQ,CAAqB5nO,EAASC,GAAU9lB,QAClD,CAiBA,GAZAA,OAAO,QACPA,OAAO,gBACPA,OAAO,aACPA,OAAO,iBACPA,OAAO,QACPA,OAAO,SAEJyxB,GAASE,SAAS7L,MACjBqxB,GAAmBtxB,GAASC,GAAU4D,GAAcxZ,GAAQlQ,OAAQ,CAAC8yN,QAAQ,IAC7E9yN,OAAO,gBAGRyxB,GAASG,WAAW9L,IAAW,CAC9BoxB,GAAqBrxB,GAASC,GAAU4D,GAAcxZ,GAAQlQ,OAAQ,CAAC+zM,QAAQ,IAG/E,IAAI5uN,GAAS2gC,GAAS3gC,OACD,WAAlBA,GAAOwzD,SACH1zE,GAAIk5D,oBAAoBh5C,GAAOlU,QAAOkU,GAAOlU,KAAOkU,GAAOlU,KAAK,IAChEhM,GAAIk5D,oBAAoBh5C,GAAOxuB,SAAQwuB,GAAOxuB,MAAQwuB,GAAOxuB,MAAM,KAI3E86D,GAASltC,QAAQuhC,KAChBuxB,GAAmBxxB,GAASC,GAAU5V,GAAQlQ,OAAQ,CAAC8zM,UAAU,IAGrE9zM,OAAO,QACc,SAAlB8lB,GAAS5mD,MACRo4E,GAAwBzxB,GAASC,GAAU4D,GAAc1pB,QAG7D/6B,GAAIizE,6BAA6BpyB,GAAU9lB,aApCvC8lB,GAAStmD,SAAU,IAmDrB,KACA,SAAU7S,GAAQC,GAASI,IAEjC,aAWA,IAAIwP,GAAYxP,GAAoB,QAChCosI,GAAYpsI,GAAoB,QAChCmxE,GAAsBnxE,GAAoB,QAAQmxE,oBAEtDvxE,GAAQkwK,aAAe,SAASN,GAAqBtuK,GAAOmuK,IACxD,GAAoB,iBAAVnuK,IACN,GAAGA,KAAUsuK,GAAoBigD,QAAS,OAAOvuN,QAC9C,IAAoB,iBAAVA,KAAgC,IAAVA,MAC/BsuK,GAAoBg+G,OAAQ,OAAOzrQ,OAAO7gB,IAGlD,YAAyB4hB,IAAjBusJ,GACNA,GACAG,GAAoB3rJ,MAG1BjkB,GAAQmwK,aAAe,SAASP,GAAqBtuK,GAAOmuK,IACxD,GAAG7/J,GAAUtO,IAAQ,CACjBA,IAASA,GAET,IAAIsH,GAAMgnK,GAAoBhnK,IAC1BC,GAAM+mK,GAAoB/mK,IAI9B,UAH6Bqa,IAARta,IAAqBtH,GAAQsH,SACnCsa,IAARra,IAAqBvH,GAAQuH,IAEjB,OAAOvH,GAG9B,YAAyB4hB,IAAjBusJ,GACNA,GACAG,GAAoB3rJ,MAG1BjkB,GAAQowK,YAAc,SAASR,GAAqBtuK,GAAOmuK,IACvD,OAAGjjC,GAAUlrI,IAAOgZ,UAAkBhZ,QAEb4hB,IAAjBusJ,GACNA,GACAG,GAAoB3rJ,MAG1BjkB,GAAQ8gS,iBAAmB,SAASlxH,GAAqBtuK,GAAOmuK,IAG5D,OAFGG,GAAoBO,eAAc7uK,IAASA,KAEI,IAA/CsuK,GAAoBt2I,OAAOv1B,QAAQzC,IAAsBA,QAEnC4hB,IAAjBusJ,GACNA,GACAG,GAAoB3rJ,MAG1BjkB,GAAQ+vK,SAAW,SAASgxH,GAAet8R,IACvC,IAAInD,GAGJ,OAFI4B,MAAMkL,QAAQ2yR,IACVt8R,GAAQs8R,GAAcp+R,SAAQrB,GAAQy/R,GAAct8R,KAD1BnD,GAAQy/R,GAEnCz/R,IAGXtB,GAAQghS,aAAe,SAAS3xR,GAAO+oB,IAMnC,OAJK,EAAIA,GAAG6oQ,IAAO7oQ,GAAG6oQ,IACjB1vN,GAAoBliE,GAAMkpB,OAAOC,KAAK1W,OACvC,EADgDzS,GAAMkpB,OAAOC,KAAK1W,QASpE,KACA,SAAU/hB,GAAQC,GAASI,IAEjC,aAGAL,GAAOC,QAAUI,GAAoB,OAApBA,CAA4B,YAKvC,OACA,SAAUL,GAAQC,GAASI,IAEjC,aAGA,IAAI4/K,GAAW5/K,GAAoB,QAEnCL,GAAOC,QAAU,SAAUsB,IAC1B,IAAK0+K,GAAS1+K,IAAQ,MAAM,IAAIy0D,UAAUz0D,GAAQ,qBAClD,OAAOA,KAMF,KACA,SAAUvB,GAAQC,GAASI,IAEjC,aAWA,IAAIw5B,GAAWx5B,GAAoB,QAC/BiY,GAAMjY,GAAoB,QAE1B8gS,GAAiB9gS,GAAoB,QACrCkzL,GAAuBlzL,GAAoB,QAC3C+gS,GAAkB/gS,GAAoB,QACtCghS,GAAsBhhS,GAAoB,QAC1CsuN,GAAmBtuN,GAAoB,QAAQsuN,iBAG/C2yE,GAAiBjhS,GAAoB,QACrCkhS,GAAiBlhS,GAAoB,QAErCmhS,GAAYnhS,GAAoB,QAEhCujB,GAAatL,GAAIsL,WACjBoG,GAAgB1R,GAAI0R,cACpBy2C,GAAgBnoD,GAAImoD,cACpB+Q,GAAsBl5D,GAAIk5D,oBAC1B3sB,GAAiBvsC,GAAIusC,eACrBuoO,GAAgB90Q,GAAI80Q,cAMpBqU,GAAmB,CAJF,gBACI,mBACA,oBACR,eAwVjB,SAASC,qBAAqBC,GAAWnzQ,GAAOjuB,IAC5C,IAAIohS,GAAW,OAAO,EAEtB,GAAGA,GAAU51H,iBAET,GAAGwzG,QAAQ/wP,GAAMjuB,KAAKA,UACjB,GAAGA,GAAIiuB,GAAM5rB,OAAQ,OAAO,EAMrC,KAAMrC,GAAIiuB,GAAM5rB,OAAQrC,KAAK,CACzB,IAAIqhS,GAAeD,GAAUnzQ,GAAMjuB,KACnC,IAAGkgE,GAAcmhO,IACZ,MAEL,GAHgCD,GAAYC,GAGzCrhS,KAAMiuB,GAAM5rB,OAAS,EAAG,MAE3B,GAAG++R,GAAU51H,kBAET,IAAIwzG,QAAQ/wP,KADZjuB,KACuB,OAAO,OAC3B,GAAyB,eAAtBohS,GAAU19Q,QAA0B,CAE1C,IAAIvf,GAAQ8pB,KADZjuB,IAEA,IAAIg/Q,QAAQ76Q,IAAQ,OAAO,EAE3B,IAAIoyH,GAAQ6qK,GAAU7qK,MACtB,GAAG3zH,MAAMkL,QAAQyoH,IAAQ,CACrB,GAAGpyH,IAASoyH,GAAMl0H,OAAQ,OAAO,EACjC,GAA4B,IAAzB++R,GAAUvvJ,WAAkB,CAE3B,GADA7xI,KACGiuB,GAAM5rB,SAAWrC,GAAG,OAAOohS,GAC9B,IAAI9sR,GAAS2Z,GAAMjuB,IACnB,IAAIg/Q,QAAQ1qQ,IAAS,OAAO,EAC5B8sR,GAAY7qK,GAAMpyH,IAAOmQ,SACtB8sR,GAAY7qK,GAAMpyH,SAEzBi9R,GAAY7qK,IAKxB,OAAO6qK,GAKX,SAASpiB,QAAQzsP,IACb,OAAOA,KAAQrsB,KAAKm5B,MAAM9M,KAAQA,IAAO,EAuF7C,SAAS+uQ,sBACL,IACIhgS,GAAKmvF,GADLjpD,GAAmB,GAOvB,IAAIlmC,MAHJmoB,GAAc+d,GAAkBwrJ,IAGrB15J,GAAS85J,iBAAkB,CAGlC,IAFA3iG,GAAUn3D,GAAS85J,iBAAiB9xL,KAExBkmC,iBAEZ,GAAG5kC,MAAMkL,QAAQ2iF,GAAQroE,MACrB,IAAI,IAAIpoB,GAAI,EAAGA,GAAIywF,GAAQroE,KAAK/lB,OAAQrC,KACpCuhS,qBAAqB/5P,GAAkBipD,GAASA,GAAQroE,KAAKpoB,UAIjEuhS,qBAAqB/5P,GAAkBipD,GADX,YAAjBA,GAAQroE,KAAqBqoE,GAAQnwF,KAAOmwF,GAAQroE,MASvE,IAAI9mB,MAHJkmC,GAkJJ,SAASg6P,uBAAuBh6P,IAQ5B,OAPAnkB,GAAWmkB,GAAkB,CACzB0nC,WAAY8xN,GAAe9xN,WAC3BE,YAAa4xN,GAAe5xN,cAGhC/rD,GAAWmkB,GAAkBw5P,GAAeh+O,QAErCxb,GA1JYg6P,CAAuBh6P,IAG/BlO,GAASm6J,mBAAoB,CAEpC,IAAIpsJ,IADJopD,GAAUn3D,GAASm6J,mBAAmBnyL,KACjB+lC,OAErB,GAAGA,KAAWA,GAAOC,UAAYD,GAAO2b,QAAS,CAW7C,IAAI1b,GAAWD,GAAOC,SACtB,GAAGA,IAAYA,GAASrgB,QAAUqgB,GAASpgB,MACvC,IAAI,IAAIu6Q,MAAQn6P,GAASrgB,aACdugB,GAAiBtgB,MAAMu6Q,QAGf,eAAjBhxM,GAAQnwF,KACdmpB,GAAc+d,GAAkBipD,GAAQjpD,kBAClCipD,GAAQjpD,kBAEdk6P,YAAYl6P,GAAkBipD,GAAQjpD,iBAAkBipD,GAAQnwF,MAIxE,MAAO,CACHknC,iBAAkBm6P,iBAAiBn6P,KAwB3C,SAASo6P,sBACL,IAAIt9Q,GAAQ,CACR29M,OAAQx4M,GAAc,GAAIo3Q,KAK9B,OAFAc,iBAAiBr9Q,IAEVA,GAAM29M,OAGjB,SAAS0/D,iBAAiBr9Q,IAKtB,OAGJ,SAASu9Q,oBAAoBv9Q,IA2BzB5kB,GAAQkmN,MAAMthM,IAjBd,SAASkkD,SAASpgD,GAAMioN,GAAU/rN,IAC3B5kB,GAAQoiS,YAAY15Q,IACC,eAAjBA,GAAK1E,SAEJ0E,GAAK25Q,KAAO,OAEZz9Q,GAAM+rN,GAAW,OAdlB,CACH3sN,QAAS,SAGTG,SAAU,UAWiB,IAAjBuE,GAAK7D,UAEXD,GAAM+rN,GAAW,OAjBlB,CACH3sN,QAAS,SAGTG,SAAU,SAeJq8C,GAAc93C,MAEpBA,GAAK25Q,KAAO,aA9BpBF,CAAoBv9Q,IAqCxB,SAAS09Q,sBAAsB19Q,IAe3B5kB,GAAQkmN,MAAMthM,IAdd,SAASkkD,SAASpgD,GAAMioN,GAAU/rN,IAC9B,GAAI8D,GAAJ,CAEA,IAAI65Q,GAAW75Q,GAAuB,iBAElC65Q,YAEG75Q,GAAuB,iBAE9B9D,GAAM+rN,IAAY,CAAE95G,MAAO,IAC3BjyG,GAAM+rN,IAAU95G,MAAM0rK,IAAY75Q,GAClC9D,GAAM+rN,IAAU0xD,KAAO,cAhD3BC,CAAsB19Q,IAwD1B,SAASk7J,UAAUl7J,KACf,SAASve,KAAKqiB,IACV,IAAI,IAAI5kB,MAAK4kB,GACT,GAAG83C,GAAc93C,GAAK5kB,KAClBuC,KAAKqiB,GAAK5kB,UACP,GAAGZ,MAAMkL,QAAQsa,GAAK5kB,KACzB,IAAI,IAAIxD,GAAI,EAAGA,GAAIooB,GAAK5kB,IAAGnB,OAAQrC,KAC/B+F,KAAKqiB,GAAK5kB,IAAGxD,UAIdooB,GAAK5kB,cAAcykC,SAClB7f,GAAK5kB,IAAK4kB,GAAK5kB,IAAGmZ,YAMlC5W,CAAKue,IAzELk7J,CAAUl7J,IAEHA,GAqFX,SAASi9Q,qBAAqB/5P,GAAkBipD,GAAS6Q,IACrD,IAAIj9C,GAAKC,GAAe9c,GAAkB85D,IACtCh9E,GAAQmF,GAAc,GAAIgnE,GAAQjpD,kBAEtCljB,GAAoB,eAAI,EACxB+/B,GAAGl2C,IAAImW,IAGX,SAASo9Q,YAAYt+Q,GAAW8+Q,GAAU5gM,IACtC,IAAIj9C,GAAKC,GAAelhC,GAAWk+E,IAEnCj9C,GAAGl2C,IAAIsb,GAAc46B,GAAGzjD,OAAS,GAAIshS,KA7pBzCxiS,GAAQyiS,eANa,gBAOrBziS,GAAQ0iS,mBANiB,mBAOzB1iS,GAAQ2iS,WALS,cAMjB3iS,GAAQwhS,iBAAmBA,GAa3BxhS,GAAQkB,IAAM,WACV,IAAI0yD,GAAS,GAEbh6B,GAASu6J,SAAS3rL,OAAO,QAAQquD,SAAQ,SAASjjD,IAC9CggD,GAAOhgD,IAqXf,SAASgvR,mBAAmBhvR,IACxB,IAAIm9E,GAAS79E,GAED,SAATU,IACCm9E,GAAU,CAAEtnF,WAAY43R,IACxBnuR,GAAiB,KAEjB69E,GAAUn3D,GAAS15B,QAAQ0T,IAAMm9E,QACjC79E,GAAiB69E,GAAQ79E,gBAG7B,IAAIzJ,GAAa,CAGjB,KAAkB,MAEdo5R,GAAqB94Q,GAAc,GAAIm3Q,IACvC4B,GAAuB/4Q,GAAc,GAAIgnE,GAAQtnF,YAGrDzJ,GAAQkmN,MAAM48E,IAAsB,SAASp6Q,GAAMioN,GAAU/rN,GAAOurH,GAAO4yJ,IACvEn+O,GAAei+O,GAAoBE,IAAgBt0R,SAAIyU,QAE3CA,IAATwF,IAAoBk8B,GAAek+O,GAAsBC,IAAgBt0R,SAAIyU,MAIpF6G,GAActgB,GAAYo5R,IAGvBjpQ,GAAS6U,QAAQ76B,GAAM,qBACfnK,GAAWwC,QAElB2tB,GAAS6U,QAAQ76B,GAAM,uBAChBnK,GAAW0c,kBACX1c,GAAWu5R,aAEnBppQ,GAAS6U,QAAQ76B,GAAM,oBACfnK,GAAWyc,iBACXzc,GAAWwwD,YAElB82B,GAAQv9E,qBACD/J,GAAWkvB,eAItB5O,GAActgB,GAAYq5R,IAGvB5vR,GAAezJ,YACdsgB,GAActgB,GAAYyJ,GAAezJ,YAI7CA,GAAWmK,KAAOA,GAElB,IAAI6M,GAAM,CACNrN,KAAM29E,GAAQ39E,MAAQ,GACtBD,WAAY49E,GAAQ59E,YAAc,GAClCmjB,WAAYm1E,QAAQ1a,GAAQz6D,YAC5B1iB,KAAMA,GACNnK,WAAYw4R,iBAAiBx4R,KAIjC,GAAGsnF,GAAQjpD,iBAAkB,CACzB,IAAIA,GAAmB,GAEvB/d,GAAc+d,GAAkBipD,GAAQjpD,kBACxCrnB,GAAIqnB,iBAAmBm6P,iBAAiBn6P,IAIxCipD,GAAQz6D,YACRt2B,GAAQkmN,MAAMzlM,IAAK,SAASiI,IACrB1oB,GAAQoiS,YAAY15Q,KAAS,SAAUA,WAC/BA,GAAKyjE,QAKxB,OAAO1rE,GAtcYmiR,CAAmBhvR,OAGtC,IAAIwS,GAAa,GAMjB,OAJArlB,OAAOyiD,KAAK5pB,GAASg7J,oBAAoB/9H,SAAQ,SAASjjD,IACtDwS,GAAWxS,IAggBnB,SAASqvR,uBAAuBrvR,IAC5B,IAAIm9E,GAAUn3D,GAASg7J,mBAAmBhhL,IACtCnK,GAAasgB,GAAc,GAAIgnE,GAAQtnF,YAa3C,OAVA1I,OAAOyiD,KAAK5pB,GAASm6J,oBAAoBl9H,SAAQ,SAAS/yD,IACtD,IAAIitF,GAAUn3D,GAASm6J,mBAAmBjwL,IAEvCitF,GAAQppD,QAAUopD,GAAQppD,OAAOvhB,YAAc2qE,GAAQppD,OAAOvhB,WAAWxS,KACxE7S,OAAOyiD,KAAKutC,GAAQppD,OAAOvhB,WAAWxS,KAAOijD,SAAQ,SAAShzD,IAC1Dm+R,YAAYv4R,GAAYsnF,GAAQppD,OAAOvhB,WAAWxS,IAAM/P,IAAIA,UAKjE,CACH4F,WAAYw4R,iBAAiBx4R,KAhhBVw5R,CAAuBrvR,OAGvC,CACH8hQ,KAAM,CACFwtB,WAAY/V,GACZgW,SAAU3B,GAAiBh5R,OAAO,CAAC,cAAe,OAAQ,WAAY,iBACtE2b,SAAU,CACNyvC,OAAQ2tO,GAAU3tO,OAClBtQ,OAAQi+O,GAAUj+O,QAEtBrqB,aAAc,IAKlB26B,OAAQA,GACRtQ,OAAQs+O,sBAERx7Q,WAAYA,GAEZm8M,OAAQ2/D,sBACRkB,UAAWnB,iBAAiBb,IAE5B/3Q,OAAQ44Q,iBAAiBvzE,MAgCjC1uN,GAAQkmN,MAAQ,SAASthM,GAAOkkD,GAAUu6N,GAAgBC,IACtD,IAAInzJ,GAAQkzJ,IAAkB,EAC9BC,GAAaA,IAAc,GAE3BviS,OAAOyiD,KAAK5+B,IAAOiyC,SAAQ,SAAS85K,IAChC,IAAIjoN,GAAO9D,GAAM+rN,IAEjB,IAA2C,IAAxC6wD,GAAiBz9R,QAAQ4sO,IAA5B,CAEA,IAAIoyD,IAAkBO,GAAaA,GAAa,IAAM,IAAM3yD,GAC5D7nK,GAASpgD,GAAMioN,GAAU/rN,GAAOurH,GAAO4yJ,IAEpC/iS,GAAQoiS,YAAY15Q,KAEpB83C,GAAc93C,KAAsB,iBAAbioN,IACtB3wO,GAAQkmN,MAAMx9L,GAAMogD,GAAUqnE,GAAQ,EAAG4yJ,SAYrD/iS,GAAQoiS,YAAc,SAASpkQ,IAC3B,OAAOA,SAAuB9a,IAAhB8a,GAAIha,SAatBhkB,GAAQujS,oBAAsB,SAASl0R,IACnC,IAGIm0R,GAAeC,GAHfC,GAAkB,GAClBtxD,GAAQ,GACRuxD,GAAe,GAGnB,SAAS76N,SAASpgD,GAAMioN,GAAU/rN,GAAOurH,IACrCiiG,GAAQA,GAAMtvO,MAAM,EAAGqtI,IAAO3nI,OAAO,CAACmoO,KACtCgzD,GAAeA,GAAa7gS,MAAM,EAAGqtI,IAAO3nI,OAAO,CAACkgB,IAAQA,GAAKojJ,mBAG7DpjJ,KACkB,eAAjBA,GAAK1E,UAA6C,IAAjB0E,GAAK7D,YAChB,aAArButN,GAAMjiG,GAAQ,KAAmC,aAAbwgG,IAAwC,aAAbA,MAezE,SAASizD,eAAe7xQ,GAAWzxB,GAAGujS,IAClC,IAAIj5H,GAAO74I,GAAUqgN,GAAM9xO,KACvBwjS,GAAiBD,GAAczxD,GAAM9xO,IACzC,GAAGA,KAAM8xO,GAAMzvO,OAAS,EACjB4uE,GAAoBq5F,KACnB84H,GAAgBn+R,KAAKk+R,GAAeK,SAGxC,GAAGH,GAAarjS,KACZ,GAAG4C,MAAMkL,QAAQw8J,IACb,IAAI,IAAInnK,GAAI,EAAGA,GAAImnK,GAAKjoK,OAAQc,KACzB+8D,GAAcoqG,GAAKnnK,MAClBmgS,eAAeh5H,GAAKnnK,IAAInD,GAAI,EAAGwjS,GAAiB,IAAMrgS,GAAI,WAIhE+8D,GAAcoqG,KACpBg5H,eAAeh5H,GAAMtqK,GAAI,EAAGwjS,GAAiB,KApBrDF,CAAeJ,GAAe,EAAG,IAyBrCA,GAAgBn0R,GAChBo0R,GAAe,GACfzjS,GAAQkmN,MAAMg7E,GAAgBp4N,UAC3Bz5D,GAAM0hF,SAAW1hF,GAAM0hF,QAAQtnF,YAC9BzJ,GAAQkmN,MAAM72M,GAAM0hF,QAAQtnF,WAAYq/D,UAG5C,IAAI1iD,GAAa/W,GAAM+W,WACvB,GAAGA,GACC,IAAI,IAAI9lB,GAAI,EAAGA,GAAI8lB,GAAWzjB,OAAQrC,KAAK,CACvC,IAAIisB,GAAYnG,GAAW9lB,IACvBP,GAASwsB,GAAUwkE,QAEpBhxF,KACC0jS,GAAe,cAAgBnjS,GAAI,KACnCkjS,GAAgBj3Q,GAEhBvsB,GAAQkmN,MAAMnmN,GAAO0J,WAAYq/D,WAK7C,OAAO46N,IAkBX1jS,GAAQysK,kBAAoB,SAASp9J,GAAOkf,IACxC,IAEIugQ,GAAa4S,GAFbz5P,GAAO1Z,GAAM,GACbjuB,GAAI,EAGR,GAAY,eAAT2nC,GAAuB,CACtB,GAAoB,IAAjB1Z,GAAM5rB,OACL,OAAOu+R,GAAe96Q,WAE1B,IAAIA,GAAa/W,GAAM+W,WACvB,IAAIljB,MAAMkL,QAAQgY,MAAgBA,GAAWzjB,OAAQ,OAAO,EAC5D,IAAIohS,GAAOx1Q,GAAM,GACjB,IAAI+wP,QAAQykB,KAASA,IAAQ39Q,GAAWzjB,OACpC,OAAO,EAGX++R,IADA5S,IAAel1P,GAASg7J,mBAAmBxuK,GAAW29Q,IAAMnwR,OAAS,IAAInK,aAC9CqlR,GAAYvgQ,GAAM,IAC7CjuB,GAAI,OACD,GAAkB,SAAf+O,GAAMuE,KACZ8tR,GAAYL,GAAep5P,QACxB,CAGH,IAAI8oD,GAAU1hF,GAAM0hF,QAEpB,GADIA,KAASA,IAAWn3D,GAAS15B,QAAQmP,GAAMuE,MAAQstR,GAAettR,KAAKqQ,OAAS,IAAI8sE,UACpFA,GAAS,OAAO,EAMpB,KAHA2wM,IADA5S,GAAc/9L,GAAQtnF,aACKqlR,GAAY7mP,KAGxB,CACX,IAAIiuJ,GAAgBnlG,GAAQ79E,eACzBgjL,IAAiBA,GAAczsL,aAC9Bi4R,GAAYxrG,GAAczsL,WAAWw+B,KAKzCy5P,KAAWA,GAAYR,GAAej5P,KAG9C,OAAOw5P,qBAAqBC,GAAWnzQ,GAAOjuB,KAgBlDN,GAAQusK,mBAAqB,SAAS/lJ,GAAY+H,IAG9C,OAAOkzQ,qBAGX,SAASuC,eAAex9Q,GAAYyhB,IAChC,IAAI3nC,GAAGsB,GAAKmvF,GAAStnF,GAGjBw6R,GAAkBz9Q,GAAWsmJ,iBACjC,GAAGm3H,GAAiB,CAChB,IAAIxjR,GACJ,IAAIngB,GAAI,EAAGA,GAAI2jS,GAAgBthS,OAAQrC,KAAK,CAExC,IADAywF,GAAUkzM,GAAgB3jS,KACfs5D,WAAam3B,GAAQn3B,UAAUj0D,KAAKsiC,IAAO,CAGlD,GAAG8oD,GAAQj3B,oBAAqB,OAAOi3B,GAAQj3B,qBAG3Cr5C,IAAOswE,GAAQjpD,mBAAkBrnB,GAAMswE,GAAQjpD,kBAKvD,IAAIo8P,GAAgBnzM,GAAQh3B,wBAC5B,GAAGmqO,IAAiBj8P,MAAQi8P,GAAe,OAAOA,GAAcj8P,IAEpE,GAAGxnB,GAAK,OAAOA,GAInB,IAAIvgB,GAAUsmB,GAAWumJ,SACzB,GAAG7sK,GACC,IAAII,GAAI,EAAGA,GAAIJ,GAAQyC,OAAQrC,KAE3B,IADAmJ,GAAavJ,GAAQI,IAAGwnC,mBACPG,MAAQx+B,GACrB,OAAOA,GAAWw+B,IAa9B,IAAIrmC,MAAOg4B,GAASm6J,mBAAoB,CAEpC,GAAoB,gBADpBhjG,GAAUn3D,GAASm6J,mBAAmBnyL,KAC3BhB,MAAuD,IAA9BqnC,GAAKlkC,QAAQ,aAC7C,OAAOgtF,GAAQjpD,iBAAiBG,IAC7B,IAAI8oD,GAAQppD,QAAWM,KAAS8oD,GAAQnwF,KAC3C,OAAOmwF,GAAQjpD,iBAIvB,GAAGG,MAAQqrJ,GAAsB,OAAOA,GAAqBrrJ,IAI7D,GAAY,eAATA,IAAkC,gBAATA,GACxB,OAAOq5P,GAAer5P,IAE1B,OAAOq5P,GAAeh+O,OAAOrb,MAAS,EAlEtB+7P,CAAex9Q,GAAY+H,GAAM,IAEVA,GAAO,KAiZ5C,OACA,SAAUxuB,GAAQC,GAASI,IAEjC,aAGA,IAAI+jS,GAAcpjS,OAAOoB,UAAU8a,SAAUxQ,GAAK03R,GAAY3jS,KAAK,IAEnET,GAAOC,QAAU,SAAUsB,IAC1B,MACkB,iBAAVA,IACNA,IACiB,iBAAVA,KACNA,cAAiB6gB,QAAUgiR,GAAY3jS,KAAKc,MAAWmL,MACzD,IAOI,KACA,SAAU1M,GAAQC,GAASI,IAEjC,aAYA,IAAIuP,GAAKvP,GAAoB,QAEzBiY,GAAMjY,GAAoB,QAC1B03B,GAAU13B,GAAoB,QAC9Bs9E,GAAat9E,GAAoB,QACjC6wC,GAAe7wC,GAAoB,QACnCmY,GAAOnY,GAAoB,QAC3B8xC,GAAa9xC,GAAoB,QAEjCgkS,GAAchkS,GAAoB,QAClCikS,GAAgBjkS,GAAoB,QACpCkkS,GAAelkS,GAAoB,QACnC8sL,GAAgB9sL,GAAoB,QACpCmkS,GAAuBnkS,GAAoB,QAC3CokS,GAAkBpkS,GAAoB,QACtCixC,GAAYjxC,GAAoB,QAChCqkS,GAAgBpzP,GAAUqzP,eAgG9B,SAASC,aAAa35K,GAAI45K,IACtB,IAIIC,GACAC,GACAxnP,GACAynP,GACAC,GACAC,GAEWvkR,GAXXwkR,GAAW,GACX5kS,GAAI,EACJ6kS,GAAan6K,GAAG2iE,UAAUhyI,KAAI,SAAS93C,GAAGvD,IAAK,OAAOA,MACtD8kS,IAAU,EASd,SAASC,SAAS3kR,IAAM,OAAOla,KAAKsR,IAAI4I,GAAG,GAAKkkR,GAAU,GAAG,IAAM,IACnE,SAASU,OAAO5kR,IAAM,OAAOla,KAAKsR,IAAI4I,GAAG,GAAKkkR,GAAU,GAAG,IAAM,IACjE,SAASW,QAAQ7kR,IAAM,OAAOla,KAAKsR,IAAI4I,GAAG,GAAKkkR,GAAU,GAAG,IAAM,IAElE,KAAMO,GAAWxiS,QAAQ,CAQrB,IAPAsiS,GAAUntQ,GAAQ0tQ,WAAWx6K,GAAG2iE,UAAUrtL,IAAI0qH,GAAG1+B,WACjD44M,IAAYE,GAAUH,GAAUA,GAAQtsR,QAAQ,KAAM,KACtDwsR,GAAW/zR,OAAO+zR,GAAWphS,QAAQzD,IAAI,GACzCukS,GAAQ75K,GAAG2iE,UAAUrtL,IAAG0qH,GAAG2iE,UAAUrtL,IAAGqC,OAAS,GACjDoiS,IAAS,EAGLznP,GAAM,EAAGA,GAAM,EAAGA,KAAO,CACzB,IAAIunP,GAAO,CACPxsR,GAAI4S,IAAI,eAAgB3qB,GAAG0qH,IAC3B,MAQJ,IAxBOtqG,GAmBEmkR,GAnBWr+R,KAAKsR,IAAI4I,GAAG,GAAKkkR,GAAU,GAAG,IAAM,MAmBpCW,QAAQV,IAAQC,GAAWF,GAAU,GACjDU,OAAOT,IAAQC,GAAWF,GAAU,GACpCS,SAASR,IAAQC,GAAWF,GAAU,GACtCW,QAAQV,MAAQC,GAAWF,GAAU,IAEzCI,GAAY,EAAGA,GAAYh6K,GAAG2iE,UAAUhrL,OAAQqiS,KAAa,CAC7D,IAAIS,GAAQz6K,GAAG2iE,UAAUq3G,IAAW,GAEjCx+R,KAAKsR,IAAI+sR,GAAM,GAAKC,GAAS,IAAM,IAC/Bt+R,KAAKsR,IAAI+sR,GAAM,GAAKY,GAAM,IAAM,MAC1BA,GAAM,GAAKZ,GAAM,KAAOC,GAAS,GAAKW,GAAM,KAAO,IACxDX,GAAWW,GACXV,GAAQC,IAENx+R,KAAKsR,IAAI+sR,GAAM,GAAKC,GAAS,IAAM,IACtCt+R,KAAKsR,IAAI+sR,GAAM,GAAKY,GAAM,IAAM,MAC1BA,GAAM,GAAKZ,GAAM,KAAOC,GAAS,GAAKW,GAAM,KAAO,IACxDX,GAAWW,GACXV,GAAQC,IAGZ3sR,GAAI4S,IAAI,0CACJ45Q,GAAOC,GAAUW,IAM7B,GAFAZ,GAAQC,GAELC,IAAS,EAAG,MACfG,IAAY,IAAMJ,GAGtB,GAAGC,KAAU/5K,GAAG2iE,UAAUhrL,OAAQ,CAC9B0V,GAAI4S,IAAI,2BACR,MAGJ3qB,GAAIykS,IAIJK,IAAsC,IAA3BD,GAAWphS,QAAQzD,OAE1BA,GAAI6kS,GAAW,GACfD,IAAY,KAKpB,IAAI5kS,GAAI,EAAGA,GAAI0qH,GAAG/O,MAAMt5G,OAAQrC,KAC5B4kS,IAAYptQ,GAAQ4tQ,aAAa16K,GAAG/O,MAAM37G,IAAI0qH,GAAG1+B,WAGrD,OAAO44M,GAgSX,SAASS,aAAavuQ,GAAKk6D,GAAUs0M,GAAWr6R,IAC5C,IAAIs6R,GAAYv0M,GAASxvE,MAAQ,EAC7BgkR,GAAax0M,GAASzlE,OAAS,EAC/B7c,GAAIooB,GAAIpoB,EACRkH,GAAIkhB,GAAIlhB,EACR6M,GAAQqU,GAAIrU,MACZoW,GAAK3yB,KAAK6oD,IAAItsC,IAAS8iR,GACvBv5Q,GAAK9lB,KAAK8oD,IAAIvsC,IAAS8iR,GAGvBE,IAAU/2R,GAAIzD,GAAOu1B,OAAWv1B,GAAOgJ,MAAQvF,GAAMA,GAAIzD,GAAO+I,OAC/D6kB,GAAK3yB,KAAKsR,IAAItR,KAAK8oD,IAAIvsC,IAAS+iR,KACjCE,IAAU9vR,GAAI3K,GAAO8gB,OAAW9gB,GAAOknB,OAASvc,GAAMA,GAAI3K,GAAOmnB,MAChElsB,KAAKsR,IAAIwU,IAAM9lB,KAAK6oD,IAAItsC,IAAS+iR,IACtC,GAAGC,GAAQ,GAAKC,GAAQ,EAAG,OAAOn6R,IAClC,IAAIo6R,GAAOxB,GAAcyB,UAAY,GAAKH,GAAQ,GAAK,GAAKC,GAAQ,IAGpEC,IAAQxB,GAAc0B,UAAYpjR,GAAQA,GAO1C,IAJA,IAAI8T,GAAK7nB,GAAImqB,GACTjC,GAAKhhB,GAAIoW,GACTuwB,GAAK7tC,GAAImqB,GACTkvC,GAAKnyD,GAAIoW,GACLhsB,GAAI,EAAGA,GAAIslS,GAAUjjS,OAAQrC,KAAK,CACtC,IAAI8lS,GAASR,GAAUtlS,IACnB+lS,GAAM7/R,KAAK6oD,IAAI+2O,GAAOrjR,OAASqjR,GAAOtkR,MAAQ,EAC9CwkR,GAAM9/R,KAAK8oD,IAAI82O,GAAOrjR,OAASqjR,GAAOtkR,MAAQ,EAC9CuxM,GAKA,EALOh7M,GAAIwsG,gBACXhuF,GAAIK,GACJ2lB,GAAIwrB,GACJ+9N,GAAOp3R,EAAIq3R,GAAKD,GAAOlwR,EAAIowR,GAC3BF,GAAOp3R,EAAIq3R,GAAKD,GAAOlwR,EAAIowR,KACtBh1M,GAASzlE,OAASu6Q,GAAOv6Q,QAE9B06Q,GAAYH,GAAOj2J,QAAU7+C,GAAS6+C,MACtCq2J,GAAaD,GAAY9B,GAAcgC,kBAAoB,EAE/D,GAAGpzE,IAAQmzE,GAAY,OAAO36R,IAK9Bo6R,IAHiBxB,GAAciC,cAC1BH,GAAY9B,GAAckC,gBAAkB,IAE3BtzE,GAAOmzE,IAGjC,OAAOP,GAyHX,SAASW,aAAa12P,IAClB,IAII5vC,GAEAumS,GANA9pN,GAAU7sC,GAAI7gC,MAAM8/B,aACpBz/B,GAAI,GACJjP,GAAIyvC,GAAIxgC,EAAE/M,OACVb,GAAIouC,GAAIxgC,EAAE,GAAG/M,OAEbw6E,GAAM,GAGV,IAAI78E,GAAI,EAAGA,GAAIwB,GAAGxB,KAAK68E,GAAI53E,KAAK,GAChC,IAAIjF,GAAI,EAAGA,GAAIG,GAAGH,KAAKoP,GAAEnK,KAAK43E,GAAIr6E,SAClC,IAAIxC,GAAI,EAAGA,GAAIy8E,GAAQp6E,OAAQrC,KAE3BoP,IADAm3R,GAAa9pN,GAAQz8E,KACR,IAAIumS,GAAW,IAAM,EAItC,OADA32P,GAAI42P,MAAQp3R,GACLA,GA3oBX1P,GAAQsT,KAAO,SAASA,KAAKlE,GAAIuC,GAAUo1R,GAAYC,IACnD,IAAIlwQ,GAAKnlB,GAAS4V,MACd4P,GAAKxlB,GAAS6V,MAElBnP,GAAI6lE,gBAAgB8oN,GAAcD,GAAY,WAAWv2R,MAAK,SAASmQ,IACnE,IAAIy9D,GAAYzuE,GAAGO,OAAO5L,MACtB4rC,GAAMvvB,GAAG,GACTtR,GAAQ6gC,GAAI7gC,MACZL,GAAIkhC,GAAIlhC,EACRkH,GAAIg6B,GAAIh6B,EACRmP,GAAWhW,GAAMgW,SACjBioK,GAAWJ,GAAc7nK,GAAU1T,GAAUu+B,IAG7C+2P,GAAuB5uR,GAAIiqG,aAAalkC,GAAW,IAAK,mBACxD8oN,GAAa,GACQ,YAAtB7hR,GAASqrB,WACRw2P,GAAa,CAACvmR,KAElByjR,GAAYh1R,GAAIuC,GAAUu1R,GAAYD,IAEtC5C,GAAc/2G,IACdg3G,GAAah3G,IAEb,IAAI65G,GAAWrwQ,GAAGC,IAAI/nB,GAAE,IAAI,GACxBo4R,GAAYtwQ,GAAGC,IAAI/nB,GAAEA,GAAErM,OAAS,IAAI,GACpC0kS,GAAalwQ,GAAGJ,IAAI7gB,GAAE,IAAI,GAC1BoxR,GAAUnwQ,GAAGJ,IAAI7gB,GAAEA,GAAEvT,OAAS,IAAI,GAClCiiS,GAAY,CACZ,CAACuC,GAAUG,IACX,CAACF,GAAWE,IACZ,CAACF,GAAWC,IACZ,CAACF,GAAUE,KAGXE,GAAej6G,GACE,eAAlBjoK,GAASzR,OAER2zR,GAAehD,GAAqBj3G,GAAUjoK,GAAS+nK,aAWnE,SAASo6G,eAAeC,GAAW7C,GAAWv/Q,IAC1C,IAEIqiR,GAFUrvR,GAAIiqG,aAAamlL,GAAW,IAAK,aAE1Bt3R,UAAU,QAC1B3F,KAA2B,SAAtB6a,GAASqrB,SAAsB,CAAC,GAAK,IAC/Cg3P,GAAOt3R,QAAQC,OAAO,QACtBq3R,GAAOvgP,OAAO91C,SACdq2R,GACKh/Q,KAAK,IAAK,IAAMk8Q,GAAUl/R,KAAK,KAAO,KACtC6K,MAAM,SAAU,QAhBjBi3R,CAAeppN,GAAWwmN,GAAWv/Q,IAmB7C,SAASsiR,UAAUF,GAAWn6G,GAAUs3G,GAAWv/Q,IAC/C,IAAIuiR,GAAiC,SAAtBviR,GAASqrB,UAA0C,eAAlBrrB,GAASzR,MAAiD,MAAxByR,GAAS+nK,WACvFy6G,GAAe,IAAMjD,GAAUl/R,KAAK,KAAO,IAG5CkiS,IACCpD,GAAgBl3G,GAAUjoK,IAG9B,IAEIyiR,GAFYzvR,GAAIiqG,aAAamlL,GAAW,IAAK,eAEvBt3R,UAAU,QAAQ3F,KAAKo9R,GAAWt6G,GAAW,IACvEw6G,GAAU13R,QAAQC,OAAO,QACzBy3R,GAAU3gP,OAAO91C,SACjBy2R,GAAUt3R,MAAK,SAASw6G,IAMpB,IAAIk6K,IAAYl6K,GAAG+8K,eAAiBF,GAAe,IAC/ClD,aAAa35K,GAAI45K,IAEjBM,GAGAv1R,GAAGO,OAAO5L,MACLokB,KAAK,IAAKw8Q,IACV30R,MAAM,SAAU,QAJrBZ,GAAGO,OAAO5L,MAAM+M,YA1CpBs2R,CAAUvpN,GAAWmpN,GAAc3C,GAAWv/Q,IA0ItD,SAAS2iR,mBAAmBP,GAAWn6G,GAAUl+K,GAAI8gC,GAAK7qB,IACtD,IAAI4iR,GAAgB5vR,GAAIiqG,aAAamlL,GAAW,IAAK,gBACjD9uE,IAAmC,IAAvBtzM,GAAS8/J,UACrB+iH,GAAa7iR,GAAS+/J,WACtB+iH,GAAqBxvE,IAAauvE,GAMlCE,GAAYpoS,GAAQ88J,YAAYmrI,GAAetvE,IAAauvE,GAAY56G,IAExE+6G,GAAWroS,GAAQsoS,eAAeL,GAAeE,GAAoB/4R,GAAI8gC,GAAI7gC,MAAMwmB,KAEnF0yQ,GAAad,GAAUt3R,UAAU,mBAChC3F,KAAK09R,GAAa,CAAC,GAAK,IAO7B,GALAK,GAAWphP,OAAO91C,SAElBk3R,GAAWn4R,QAAQC,OAAO,KACrBC,QAAQ,iBAAiB,GAE3B43R,GAAY,CACX,IAAIM,GAAoB,GACpB5C,GAAY,GAGhBvtR,GAAIutG,qBAEJ,IAAI6iL,GAAgBzoS,GAAQ0oS,eAAet5R,GAAI8gC,IAE3Cy4P,GAAY7wQ,GAAQqqC,OAAO9xD,OAAO,QACjCqY,KAAK,aAAc,GACnBloB,KAAKs3B,GAAQlW,KAAMyD,GAASggK,WAE7BvuJ,GAAKw2J,GAAS,GAAG/lK,MACjB4P,GAAKm2J,GAAS,GAAG9lK,MACjBohR,GAAO9xQ,GAAGrf,QACVoxR,GAAO1xQ,GAAG1f,QACVqxR,GAAOhyQ,GAAG9e,MACV+wR,GAAO5xQ,GAAGnf,MACVgxR,GAAO3wR,GAAIi+B,QAAQ9vC,KAAKoC,IAAK,KAAMsnC,GAAIlhC,GACvCi6R,GAAO5wR,GAAIi+B,QAAQ9vC,KAAKqC,IAAK,KAAMqnC,GAAIlhC,GACvCk6R,GAAO7wR,GAAIi+B,QAAQ9vC,KAAKoC,IAAK,KAAMsnC,GAAIh6B,GACvCizR,GAAO9wR,GAAIi+B,QAAQ9vC,KAAKqC,IAAK,KAAMqnC,GAAIh6B,GACvC0gB,GAAKpwB,KAAKqC,IAAIiuB,GAAGC,IAAIiyQ,IAAM,GAAO,GAClCnyQ,GAAKrwB,KAAKoC,IAAIkuB,GAAGC,IAAIkyQ,IAAM,GAAOL,IAClC3xQ,GAAKzwB,KAAKqC,IAAIsuB,GAAGJ,IAAIoyQ,IAAM,GAAO,GAClCjyQ,GAAK1wB,KAAKoC,IAAIuuB,GAAGJ,IAAImyQ,IAAM,GAAOL,IAIlCt9R,GAAS,GAEVu9R,GAAK,GAAKA,GAAK,IACdv9R,GAAO+I,KAAOsiB,GACdrrB,GAAOgJ,MAAQsiB,KAEftrB,GAAO+I,KAAOuiB,GACdtrB,GAAOgJ,MAAQqiB,IAGhBmyQ,GAAK,GAAKA,GAAK,IACdx9R,GAAOmnB,IAAMuE,GACb1rB,GAAOknB,OAASyE,KAEhB3rB,GAAOmnB,IAAMwE,GACb3rB,GAAOknB,OAASwE,IAGpB1rB,GAAO8gB,QAAU9gB,GAAOmnB,IAAMnnB,GAAOknB,QAAU,EAC/ClnB,GAAOu1B,QAAUv1B,GAAO+I,KAAO/I,GAAOgJ,OAAS,EAE/Ci0R,GAAkBjjS,KAAK,CACnB,CAACgG,GAAO+I,KAAM/I,GAAOmnB,KACrB,CAACnnB,GAAOgJ,MAAOhJ,GAAOmnB,KACtB,CAACnnB,GAAOgJ,MAAOhJ,GAAOknB,QACtB,CAAClnB,GAAO+I,KAAM/I,GAAOknB,UAGzB,IAAI22Q,GAAe5iS,KAAK6E,KAAKu9R,GAAOA,GAAOC,GAAOA,IAG9CQ,GAAah4P,GAAUi4P,cAAgBF,GACvC5iS,KAAKqC,IAAI,EAAGykL,GAAS3qL,OAAS0uC,GAAUk4P,eAE5CnB,GAAU53R,MAAK,SAAS7P,IACpB,IAAI2wF,GAAWtxF,GAAQwpS,aAAa7oS,GAAEwvI,MAAOs4J,GAAeE,GAAWv5R,IAEvEO,GAAGO,OAAO5L,MAAM6L,UAAU,QAAQK,MAAK,WACnC,IACI0mO,GAAa7+N,GAAIwtG,kBADVvhH,KACkCiH,GAAQ+lF,GAASzlE,OAAS,GACvE,GAAIqrN,MAEDA,GAAW5mN,KAAOghE,GAASxvE,MAAQwvE,GAASzlE,QAAUwlB,GAAUo4P,UAKnE,IAHA,IAAIC,GAAYljS,KAAKoC,IAAIpC,KAAKs5B,KAAKo3M,GAAW5mN,IAAM+4Q,IAChDh4P,GAAUs4P,UAENrpS,GAAI,EAAGA,GAAIopS,GAAWppS,KAAK,CAC/B,IAAI82B,GAAMp3B,GAAQ4pS,qBAVXtlS,KAUsC4yO,GAAY5lJ,GACrDs0M,GAAWr6R,IAEf,IAAI6rB,GAAK,MAETp3B,GAAQ6pS,aAAazyQ,GAAKk6D,GAAUs0M,GAAW4C,WAK3DG,GAAUt3R,SAEVrR,GAAQ0rD,WAAW68O,GAAY3C,GAAWx2R,GAAIi5R,GAC1CF,GAAqBK,GAAoB,MAG9CN,KAAevvE,IAAWyvE,GAAU/2R,SA7PnC22R,CAAmB5pN,GAAWkvG,GAAUl+K,GAAI8gC,GAAK7qB,IAgiBzD,SAASykR,SAAS1rN,GAAWzsE,GAAUvC,GAAI8gC,GAAK00P,IAC5C,IAAIv1R,GAAQ6gC,GAAI7gC,MACZ06R,GAAQ36R,GAAGwmB,YAAYqxB,OACvBrrB,GAAS,OAASvsB,GAAMwmB,IAExBuvM,GAAW2kE,GAAM55R,UAAU,IAAMyrB,IAChCpxB,KAAK6E,GAAM2V,YAAc,GAAK,CAAC,IAMpC,GALAogN,GAASh1N,QAAQC,OAAO,YACnBC,QAAQ,eAAe,GACvBoY,KAAK,KAAMkT,IAChBwpM,GAASj+K,OAAO91C,UAES,IAAtBhC,GAAM2V,YAAuB,CAC5B,IAAIglR,GAAe,CAKf75J,MAAO,GACPs9C,UAAW,GACXC,OAAQ,GACRC,UAAW,GACX1xE,MAAO,GACP10F,MAAO5V,GAAS4V,MAChBC,MAAO7V,GAAS6V,MAChBxY,EAAGkhC,GAAIlhC,EACPkH,EAAGg6B,GAAIh6B,EAEPxG,EAAGk3R,aAAa12P,IAChBo8C,UAAW,GAGf+3M,GAAc,CAAC2F,KACf1F,GAAa,CAAC0F,KACdxF,GAAgB,CAACwF,IAAe,CAACp2R,KAAM,WAE5ByE,GAAIiqG,aAAa8iH,GAAU,OAAQ,IACzC18M,KAAK,KACLshR,GAAajC,eAAiB,IAAMnD,GAAUl/R,KAAK,KAAO,IAAM,IACjEi/R,aAAaqF,GAAcpF,UAE5BhpQ,GAAS,KAEhB9D,GAAQmkH,WAAW79D,GAAWxiD,GAAQxsB,IA1kBlC06R,CAAS1rN,GAAWzsE,GAAUvC,GAAI8gC,GAAK00P,QA+P/C5kS,GAAQ88J,YAAc,SAASmrI,GAAegC,GAAW38G,IACrD,IAAIhhG,GAAYghG,GAAS,GAAGhhG,UAExB87M,GAAYH,GAAc93R,UAAU,kBACnC3F,KAAKy/R,GAAY38G,GAAW,IAMjC,GAJA86G,GAAUjhP,OAAO91C,SACjB+2R,GAAUh4R,QAAQC,OAAO,KACpBC,QAAQ,gBAAgB,GAE1B25R,GAAW,CAGV,IAAIC,GAAmB9B,GAAUj4R,UAAU,iBACtC3F,MAAK,SAAS7J,IAAK,OAAOA,GAAEwpS,YAAcxpS,GAAEgtL,aAEjDu8G,GAAiB/iP,OAAO91C,SACxB64R,GAAiB95R,QAAQC,OAAO,QAC3BC,QAAQ,YAAY,GAEzB45R,GACKxhR,KAAK,KAAK,SAAS/nB,IAChB,OAAOm3B,GAAQ0tQ,WAAW7kS,GAAG2rF,OAEhC/7E,MAAM,oBAAqB,GAC3BA,MAAM,gBAAiB,sBAE5B,IAAI65R,GAAqBhC,GAAUj4R,UAAU,mBACxC3F,MAAK,SAAS7J,IAAK,OAAOA,GAAE0pS,QAAU1pS,GAAEs7G,SAE7CmuL,GAAmBjjP,OAAO91C,SAC1B+4R,GAAmBh6R,QAAQC,OAAO,QAC7BC,QAAQ,cAAc,GAE3B85R,GACK1hR,KAAK,KAAK,SAAS/nB,IAChB,OAAOm3B,GAAQ4tQ,aAAa/kS,GAAG2rF,OAElC/7E,MAAM,oBAAqB,GAC3BA,MAAM,gBAAiB,sBAGhC,OAAO63R,IAGXpoS,GAAQsoS,eAAiB,SAASL,GAAeE,GAAoB/4R,GAAIymB,IACrE,IACI+F,GAASusQ,GAAsB,WAAatyQ,GAAO,KAEnDwyQ,GAHQj5R,GAAGwmB,YAAYqxB,OAGN92C,UAAU,IAAMyrB,IAChCpxB,KAAK29R,GAAqB,CAAC,GAAK,IASrC,OARAE,GAASlhP,OAAO91C,SAEhBg3R,GAASj4R,QAAQC,OAAO,YACnBC,QAAQ,mBAAmB,GAC3BoY,KAAK,KAAMkT,IAEhB9D,GAAQmkH,WAAWgsJ,GAAersQ,GAAQxsB,IAEnCi5R,IAGXroS,GAAQ0oS,eAAiB,SAASt5R,GAAI8gC,IAClC,IAAI1pB,GAAapX,GAAGwmB,YAChBvmB,GAAQ6gC,GAAI7gC,MACZgW,GAAWhW,GAAMgW,SAErB,GAAGA,GAASigK,YACR,OAAO9+J,GAAW2qE,UAAU25B,aAAazlG,GAASigK,aAElD,IAAIglH,GACArsK,GAAQvgD,GAAWG,YAAYxuE,IACnC,GAAG4uH,IAASA,GAAMh+D,UAAYg+D,GAAMh+D,SAASsqO,MACzCD,GAAarsK,GAAMh+D,SAASsqO,UACzB,CAQH,GAPAD,GAAa,CACT12R,KAAM,SACNupB,IAAK,WACL8gB,aAAc,MACdjC,eAAgB,KAGC,eAAlB32B,GAASzR,KAAuB,CAC/B,IAAItS,GAAQ+jB,GAAS/jB,MAClB4B,MAAMkL,QAAQ9M,IACbgpS,GAAWtyR,MAAQ,CAAC1W,GAAM,GAAIA,GAAMA,GAAMqB,OAAS,IAChD2nS,GAAWtyR,MAAQ,CAAC1W,GAAOA,SAElCgpS,GAAWtyR,MAAQ,CAACqN,GAASnB,MAAOmB,GAASjB,KAC7CkmR,GAAWlyR,QAAUiN,GAASjB,IAAMiB,GAASnB,OAASmB,GAAShB,KAGhEimR,GAAWtyR,MAAM,KAAOsyR,GAAWtyR,MAAM,KACxCsyR,GAAWtyR,MAAM,IAAMsyR,GAAWtyR,MAAM,IAAM,GAE9CsyR,GAAWlyR,SAAQkyR,GAAWlyR,OAAS,KAE3C85B,GAAWo4P,GAAY9jR,IACvBjO,GAAKogC,UAAU2xP,IACfA,GAAWxwP,MAAQ,KACnBwwP,GAAW9vP,MAAQ,KAEvB,OAAO,SAAS32C,IACZ,OAAO0U,GAAKwO,SAASujR,GAAYzmS,IAAGiM,OAKhD9P,GAAQwpS,aAAe,SAASr5J,GAAOs4J,GAAeE,GAAWv5R,IAC7D,IAAIU,GAAO24R,GAAct4J,IACzBw4J,GAAU74R,KAAKA,IACVtP,KAAKywC,GAAa3oB,gBAAiBlZ,IACxC,IAAI+5C,GAAOrxB,GAAQqxB,KAAKw/O,GAAUxgR,QAAQ,GAE1C,MAAO,CACHrY,KAAMA,GACNgS,MAAOqnC,GAAKrnC,MACZ+J,OAAQs9B,GAAKt9B,OACbskH,MAAOA,GACP7jH,IAAK68B,GAAKz2B,IAAMy2B,GAAK12B,QAAU,IAIvCzyB,GAAQ4pS,qBAAuB,SAASn/O,GAAMysL,GAAY5lJ,GAAUs0M,GAAW4E,IAC3E,IAEIrnN,GAAIvhC,GAAIohC,GAAMD,GAAM3rD,GAFpBouF,GAAYl0B,GAASxvE,MAGtBo1N,GAAW9wH,UACVxkE,GAAKs1L,GAAW5mN,IAAMm0Q,GAAcgG,oBACpCtnN,GAAK+zJ,GAAWtuO,IAAMg5C,GAAK,EAC3BohC,GAAOk0J,GAAWruO,MAElB+4C,IAAMs1L,GAAW5mN,IAAMk1F,KAAci/K,GAAcgG,oBAAsB,GACzEtnN,GAAK+zJ,GAAWtuO,IAAMg5C,GAAK4jE,GAAY,EACvCxiC,GAAOk0J,GAAWruO,KAAO+4C,GAAK4jE,IAAa,GAI/C,IADA,IAAIygL,GAAOp6R,IACHpI,GAAI,EAAGA,GAAIghS,GAAciG,WAAYjnS,KAAK,CAC9C,IAAI,IAAIpB,GAAI8gF,GAAI9gF,GAAI2gF,GAAM3gF,IAAKu/C,GAAI,CAC/B,IAAI+oP,GAActyR,GAAIgtG,gBAAgB56D,GAAMysL,GAAWx8J,MAAOr4E,GAAGmjH,IAC7DolL,GAAUjF,aAAagF,GAAar5M,GAAUs0M,GAAW4E,IAC1DI,GAAU3E,KACTA,GAAO2E,GACPxzQ,GAAMuzQ,GACN5nN,GAAO1gF,IAGf,GAAG4jS,GAA+B,EAAxBxB,GAAcoG,QAAa,MAIlCpnS,KAAGm+C,IAAM,GAEZohC,IADAG,GAAKJ,GAAOnhC,GAAK,GACA,IAALA,GAEhB,GAAGqkP,IAAQxB,GAAcoG,QAAS,OAAOzzQ,IA4D7Cp3B,GAAQ6pS,aAAe,SAASzyQ,GAAKk6D,GAAUs0M,GAAW4C,IACtD,IAAI3C,GAAYv0M,GAASxvE,MAAQ,EAC7BgkR,GAAax0M,GAASzlE,OAAS,EAE/B7c,GAAIooB,GAAIpoB,EACRkH,GAAIkhB,GAAIlhB,EACR6M,GAAQqU,GAAIrU,MAEZusC,GAAM9oD,KAAK8oD,IAAIvsC,IACfssC,GAAM7oD,KAAK6oD,IAAItsC,IACf+nR,GAAMjF,GAAYx2O,GAClB07O,GAAMjF,GAAax2O,GACnB07O,GAAMnF,GAAYv2O,GAClB27O,IAAOnF,GAAaz2O,GACpB67O,GAAU,CACV,CAACl8R,GAAI87R,GAAMC,GAAK70R,GAAI80R,GAAMC,IAC1B,CAACj8R,GAAI87R,GAAMC,GAAK70R,GAAI80R,GAAMC,IAC1B,CAACj8R,GAAI87R,GAAMC,GAAK70R,GAAI80R,GAAMC,IAC1B,CAACj8R,GAAI87R,GAAMC,GAAK70R,GAAI80R,GAAMC,KAG9BrF,GAAUrgS,KAAK,CACXuK,KAAMwhF,GAASxhF,KACfd,EAAGA,GACHkH,EAAGA,GACHoW,GAAIglE,GAAShlE,GACbvJ,MAAOA,GACPotH,MAAO7+C,GAAS6+C,MAChBruH,MAAOwvE,GAASxvE,MAChB+J,OAAQylE,GAASzlE,SAGrB28Q,GAAkBjjS,KAAK2lS,KAG3BlrS,GAAQ0rD,WAAa,SAAS68O,GAAY3C,GAAWx2R,GAAIi5R,GAAUG,IAC/D,IAAI/hR,GAAS8hR,GAAWp4R,UAAU,QAC7B3F,KAAKo7R,IAAW,SAASjlS,IACtB,OAAOA,GAAEmP,KAAO,IAAMnP,GAAEqO,EAAI,IAAMrO,GAAEuV,EAAI,IAAMvV,GAAEoiB,SAuBxD,GApBA0D,GAAO0gC,OAAO91C,SAEdoV,GAAOrW,QAAQC,OAAO,QACjBqY,KAAK,CACF,aAAc,EACd,cAAe,WAElBlY,MAAK,SAAS7P,IACX,IAAIqO,GAAIrO,GAAEqO,EAAIxI,KAAK8oD,IAAI3uD,GAAEoiB,OAASpiB,GAAE2rB,GAChCpW,GAAIvV,GAAEuV,EAAI1P,KAAK6oD,IAAI1uD,GAAEoiB,OAASpiB,GAAE2rB,GACpC3c,GAAGO,OAAO5L,MACLwL,KAAKnP,GAAEmP,MACP4Y,KAAK,CACF1Z,EAAGA,GACHkH,EAAGA,GACHqW,UAAW,UAAa,IAAM5rB,GAAEoiB,MAAQvc,KAAK67B,GAAM,IAAMrzB,GAAI,IAAMkH,GAAI,MAE1E1V,KAAKywC,GAAa3oB,gBAAiBlZ,OAG7Co5R,GAAmB,CAElB,IADA,IAAIpjE,GAAW,GACP9kO,GAAI,EAAGA,GAAIkoS,GAAkB7lS,OAAQrC,KACzC8kO,IAAY,IAAMojE,GAAkBloS,IAAGoF,KAAK,KAAO,IAGpC2S,GAAIiqG,aAAa+lL,GAAU,OAAQ,IACzC3/Q,KAAK,IAAK08M,OAyEzB,KACA,SAAUrlO,GAAQC,GAASI,IAEjC,aAWA,IAAIuP,GAAKvP,GAAoB,QACzBw5B,GAAWx5B,GAAoB,QAC/BwuF,GAAwBxuF,GAAoB,QAAQwuF,sBACpD2oB,GAAKn3G,GAAoB,QACzBiY,GAAMjY,GAAoB,QAC1B0hO,GAAS1hO,GAAoB,QAE7ByzH,GAAUzzH,GAAoB,QAG9B6gL,GAFa7gL,GAAoB,QAERgyQ,eA0Q7B,SAAS36J,cAAc/2F,GAAIrR,GAAOm0C,IAY9B,IAXA,IAAI3iC,GAAMH,GAAGlW,KAAKA,KAEdiW,GAAM,CACN4hN,YAAahzN,GAAM5K,MACnBmc,YAAaC,GAAIvgB,EACjBkK,KAAM6E,GAAMggC,OACZloB,SAAU9X,IAKN/O,GAAI,EAAGA,GAAIkjD,GAAK7gD,OAAQrC,KAAK,CACjC,IAAIsB,GAAM4hD,GAAKljD,IACZsB,MAAO8e,KAAID,GAAI7e,IAAO8e,GAAG9e,KAOhC,MAJG,iBAAkB8e,KAAOmzG,GAAQgrI,gBAAgBn+O,MAAKD,GAAIoI,OAASnI,GAAGyqR,cAEzEv8M,GAAsBnuE,GAAKpR,GAAOwR,GAAIvgB,GAE/BmgB,GA7RX1gB,GAAOC,QAAU,SAAS6uI,iBAAiB0B,GAAUtzC,GAAO7tF,GAAIuR,GAAI0P,IAChE,IAAI6f,GAAMvvB,GAAG,GACTtR,GAAQ6gC,GAAI7gC,MACZuwF,GAAY1vD,GAAI0vD,UAEhBwrM,GAA4B,aAAf/7R,GAAMuE,KACnBy3R,GAA2B,YAAfh8R,GAAMuE,KAIjB,mBAAoBvE,KAAQA,GAAMi8R,gBAAiB,GAKnD,mBAAoBj8R,KAAQA,GAAMk8R,gBAAiB,GAoPxDh7J,GAAS3/H,GAAG,aAlPM,SAAS8P,IACvB,IAAIgsM,GAAgBt9M,GAAGwmB,YAEvB,IAAGxmB,GAAG0+G,YAAyC,IAA5B4+F,GAAc/pM,UAAjC,CAEA,IAAI6oR,GAAWp8R,GAAGskD,UAAUrkD,GAAM5K,OAC9Boc,GAAMH,GAAGlW,KAAKA,KACdihS,GAAW5qR,GAAIvgB,EACf4+P,GAASrrI,GAAQgrI,gBAAgBn+O,IACjCmI,GAASgrG,GAAQ63K,UAAU9rM,GAAWl/E,IAEtCmS,GAAMghG,GAAQk8C,SAASrvJ,IAEvBirR,MAAQ,SAAS/pM,IACjB,OAAOvpF,GAAIi6P,WAAWk5B,GAAUC,GAAU7pM,KAG1C78E,GAAgB4mR,MAAM,iBACtBzlR,GAAYqxF,GAAGq0L,cAAcJ,GAAU9+E,GAAe++E,IACtD5gL,GAAa6hG,GAAc7hG,WAE/B,GAAG9lG,IAAkBmB,IAA2B,SAAdA,IAAsC,SAAdA,GAAuB,CAC7E,IAAI2lR,GACAC,GACDV,KACCS,GAAe37P,GAAImkC,GAAK3zD,GAAGqrR,MAAM,IAAM,EAAIrrR,GAAGsrR,YAC9CF,GAAe57P,GAAIokC,GAAK5zD,GAAGqrR,MAAM,IAAM,EAAIrrR,GAAGsrR,aAE/CX,KACCQ,GAAenrR,GAAGkwH,QAClBk7J,GAAeprR,GAAGmwH,SAGtB,IAyBI1vF,GAzBAsmM,GAAU,GACVl5N,GAAQ,GACR9d,GAAW,GACX8wP,QAAU,SAAS0qC,IAAQ,OAAgC,IAAzB19Q,GAAMxqB,QAAQkoS,KAEjD/lR,KACCqI,GAAsB,QAAdrI,GACJslR,GAASz6M,QAAQtnF,WAAWyc,UAAUqR,MACtCrR,GAAUlV,MAAM,MAGxBy2O,GAAQroJ,MAAQv+E,GAAIu+E,MACjBmiK,QAAQ,UAAY9Z,GAAQroJ,OAAO3uF,GAASlL,KAAKkiP,GAAQroJ,OAEzDv+E,GAAIze,eAAe,OAClBqlP,GAAQnmP,MAAQuf,GAAIhd,EACpB4jP,GAAQykD,WAAajrH,GAAYwmE,GAAQnmP,MAAOupH,IAC7C02I,QAAQ,UAAU9wP,GAASlL,KAAKkiP,GAAQykD,aAG/CzkD,GAAQ0kD,YAAczrR,GAAGyrR,YAAct4K,GAAQu4K,QAAQ1rR,GAAGlW,MACvD+2P,QAAQ,kBAAoBrC,IAC3BzuP,GAASlL,KAAKkiP,GAAQ0kD,aAI1B,IAAIE,GAAc,GACdC,cAAgB,YACgB,IAA7BD,GAAYtoS,QAAQo9C,MACnB1wC,GAASlL,KAAK47C,IACdkrP,GAAY9mS,KAAK47C,MAIzBsmM,GAAQ8kD,cAAgB7rR,GAAG6rR,cAAgB15Q,GAAMghG,GAAQk8C,SAASlnJ,IAClE4+N,GAAQ5+N,OAASnI,GAAGyqR,aAAet3K,GAAQ0d,WAAW1oH,IACnD04O,QAAQ,oBACPpgN,GAAK0yE,GAAQ24K,cAAc/kD,GAAQ8kD,cAAe1hL,IAAc,OAAS48H,GAAQ5+N,OACjFyjR,iBAGJ7kD,GAAQglD,aAAe/rR,GAAG+rR,aAAe55Q,GAAMghG,GAAQk8C,SAAS9yE,IAChEwqJ,GAAQxqJ,MAAQv8E,GAAGu8E,MAAQ42B,GAAQ0d,WAAWt0C,KAC3CskK,QAAQ,kBAAqBrC,IAAWx+O,GAAG0vH,YAC1CjvF,GAAK0yE,GAAQ24K,cAAc/kD,GAAQglD,aAAc5hL,IAAc,OAAS48H,GAAQxqJ,MAChFqvM,iBAGJ7kD,GAAQilD,YAAchsR,GAAGgsR,YAAc75Q,GAAMghG,GAAQk8C,SAASnwE,IAC9D6nJ,GAAQ5nP,KAAO6gB,GAAG7gB,KAAOg0H,GAAQ0d,WAAW3xC,IACzC2hK,QAAQ,kBAAoBrC,KAC3B/9M,GAAK0yE,GAAQ24K,cAAc/kD,GAAQilD,YAAa7hL,IAAc,OAAS48H,GAAQ5nP,KAC/EysS,iBAGJ7kD,GAAQ33O,KAAO67R,MAAM,cAAgBA,MAAM,QACxCpqC,QAAQ,UACPpgN,GAAKsmM,GAAQ33O,KACVuI,GAAIs0R,iBAAiBxrP,KAAK1wC,GAASlL,KAAK47C,KAG/C,IAAIyrP,GAAa,CACbv9R,MAAOm8R,GACPt1R,EAAG41R,GACHh8R,KAAMW,GAAS/K,KAAK,QACpB9E,KAAOmkB,IAAiBw8O,QAAQ,QAAWiqC,GAAS5qS,UAAOsiB,EAC3DnZ,MAAO4hS,MAAM,uBAAyB9qR,GAAI9W,MAC1C6rG,YAAa+1L,MAAM,0BACnB93Q,WAAY83Q,MAAM,0BAClBhqR,SAAUgqR,MAAM,wBAChBxvP,UAAWwvP,MAAM,yBACjBkB,WAAYlB,MAAM,yBAClBn9H,UAAWm9H,MAAM,oBACjB5mR,cAAeA,GACf+nR,oBAAqBrlD,GACrBjnO,UAAW,CAACi3F,cAAc/2F,GAAI8qR,GAAUn7Q,GAAKw4D,iBAG9CuiN,KACCwB,GAAWh2Q,GAAKi1Q,GAAenrR,GAAGsrR,WAAatrR,GAAGqsR,KAClDH,GAAW/1Q,GAAKg1Q,GAAenrR,GAAGsrR,WAAatrR,GAAGqsR,KAClDH,GAAWI,WAAatsR,GAAGqrR,MAAM,GAAK,EAAI,OAAS,SAEpDV,KACCuB,GAAW59R,EAAI68R,GACfe,GAAWI,WAAanB,GAAe,EAAI,OAAS,SAGxDt0L,GAAGmxC,UAAUkkJ,GAAY,CACrB76Q,UAAW26L,GAAcx+F,YAAY/lG,OACrCwgI,eAAgB+jE,GAAcrlK,OAAOl/B,OACrC/Y,GAAIA,KAGRC,GAAMi8R,gBAAiB,EAG3B,GAAGD,GAAW,CACV,IAAIvoS,GAAQytI,GAASrgI,OAAO,gBAC5BmgB,GAAKu+G,SAAS9rI,GAAO4d,GAAI8qR,GAAU,CAC/Bl6J,SAAS,IAIjBjiI,GAAMk8R,gBAAiB,EACvBn8R,GAAG2qG,KAAK,eAAgB,CACpBt3G,OAAQ,CAACg1G,cAAc/2F,GAAI8qR,GAAUn7Q,GAAKw4D,gBAC1Cr0D,MAAO7kB,GAAG6kB,YAuGlB+7G,GAAS3/H,GAAG,YAnGK,SAASqnG,IACtB,IAAIy0G,GAAgBt9M,GAAGwmB,YACnB41Q,GAAWp8R,GAAGskD,UAAUrkD,GAAM5K,OAC9Bic,GAAK/Q,GAAGO,OAAO5L,MAAM0oM,QAgBzB,GAdG39L,GAAMk8R,iBACLtzL,GAAI00G,cAAgBh9M,GAAG6kB,MACvBplB,GAAG2qG,KAAK,iBAAkB,CACtBt3G,OAAQ,CAACg1G,cAAc/2F,GAAI8qR,GAAUn7Q,GAAKw4D,gBAC1Cr0D,MAAO7kB,GAAG6kB,QAEdnlB,GAAMk8R,gBAAiB,GAGxBl8R,GAAMi8R,iBACL/zL,GAAGqxC,YAAY8jE,GAAcx+F,YAAY/lG,QACzC9Y,GAAMi8R,gBAAiB,GAGxBD,GAAW,CACV,IAAIvoS,GAAQytI,GAASrgI,OAAO,gBAC5BmgB,GAAKu+G,SAAS9rI,GAAO4d,GAAI8qR,GAAU,CAC/Bl6J,SAAS,QA8ErBf,GAAS3/H,GAAG,SAzEE,SAAS8P,IAMnB,IAAIgsM,GAAgBt9M,GAAGwmB,YACnB41Q,GAAWp8R,GAAGskD,UAAUrkD,GAAM5K,OAE9BwoS,GAAe7B,KAAev3K,GAAQgrI,gBAAgBn+O,KAAOmzG,GAAQq5K,OAAOxsR,KAE5EjU,GAAKonH,GAAQwc,QAAQ3vH,IACrBysR,GAAYt5K,GAAQyuI,QAAQ5hP,IAC5BmzG,GAAQu5K,mBAAmBxtM,GAAWnzF,IACtConH,GAAQkrI,mBAAmBn/J,GAAWnzF,IACtC4gS,GAAYx5K,GAAQwc,QAAQ88J,IAE5BG,GAAmB,CACnB7qS,OAAQ,CAACg1G,cAAc/2F,GAAI8qR,GAAUn7Q,GAAKw4D,gBAC1Cr0D,MAAO7kB,GAAG6kB,OAEVy4Q,KAAcK,GAAiBD,UAAYA,IAE/C,IAAIE,GAAWzrE,GAAOY,eAAetzN,GAAI,UAAYC,GAAMuE,KAAO,QAAS05R,IAQ3E,IANgB,IAAbC,IAAsB7gF,GAAc/pM,YACnCvT,GAAGypG,WAAa,CAACpB,cAAc/2F,GAAI8qR,GAAUn7Q,GAAKw4D,gBAClD0uB,GAAGvT,MAAM50F,GAAIO,GAAG6kB,SAIjBy4Q,KAGa,IAAbM,KAGAn+R,GAAG0+G,YAIH1+G,GAAGiiI,eAAN,CAIAz3G,GAASp5B,KAAK,sBAAuBgrS,GAAU9+E,GAAcjwG,aAAa+uL,GAAS31Q,KAAM,CACrFs6G,MAAOq7J,GAASr7J,QAGpB,IAAIjxE,GAAQ,CACR10D,KAAM,CAAC,CAAC2lI,MAAOk9J,KACfz5O,OAAQ,CAACvkD,GAAM5K,QAGf+oS,GAAW,CACXtuO,MAAO,CACHv5B,QAAQ,EACR10B,SAAUof,GAAK4gH,gBAEnBpgI,WAAY,CACRI,SAAUof,GAAK4gH,eACf12G,OAAQlK,GAAK8gH,kBAEjB3vI,KAAM,YACNszQ,aAAa,GAGjBv9J,GAAGqxC,YAAY8jE,GAAcx+F,YAAY/lG,QACzCyR,GAASp5B,KAAK,UAAW4O,GAAI8vD,GAAOsuO,UAmCtC,OACA,SAAUztS,GAAQC,IAKxB,IACIqC,GAAI,CACJ,kBACA,mBACC,mBACD,mBACC,kBACD,oBACC,mBACD,qBACA,uBAIAorS,GAAO,CACP,kBACA,mBACC,kBACD,oBACC,kBACD,qBACA,sBACC,qBACD,sBACC,sBACD,uBACC,qBACD,sBACC,sBACD,uBAIJ,SAASC,QAAQh+R,IAEb,GAAGA,GAAI,EAAG,OAAO6oC,OAAO,OAExB,IADA,IAAIvpC,GAAIy+R,GAAK,GACLntS,GAAImtS,GAAK9qS,OAAS,EAAGrC,GAAI,IAAKA,GAAG0O,IAAKy+R,GAAKntS,KAAMoP,GAAIpP,IAC7D,IAAIiB,GAAImO,GAzBD,IAAI,IAyBQ,GACnB,MAAO,GAAGlJ,KAAKykB,IAAI,EAAEzkB,KAAK67B,KAAK3yB,GAAE,IAAIlJ,KAAKykB,IAAI1pB,IAAGA,GAAEiF,KAAKykB,IAAIjc,IAAGxI,KAAKykB,IAAIvb,IAG5E3P,GAAOC,QAAU,SAAS2tS,MAAOj+R,IAC7B,GAAIA,GAAI,GACJ,OAAOlJ,KAAK67B,IAAM77B,KAAK8oD,IAAI9oD,KAAK67B,GAAK3yB,IAAKi+R,MAAM,EAAIj+R,KAEnD,GAAGA,GAAI,IAAK,OAAOlJ,KAAK8tD,IAAIo5O,QAAQh+R,KAErCA,IAAK,EAEL,IADA,IAAIV,GAAI3M,GAAE,GACD/B,GAAI,EAAGA,GAAI0rB,EAAO1rB,KACvB0O,IAAK3M,GAAE/B,KAAMoP,GAAIpP,IAErB,IAAIiB,GAAImO,GArDR,EAqDgB,GAEhB,OAAOlJ,KAAK6E,KAAK,EAAI7E,KAAK67B,IACpB77B,KAAKq5B,IAAIt+B,GAAGmO,GAAI,IAChBlJ,KAAK8tD,KAAK/yD,IACVyN,IAKdjP,GAAOC,QAAQirB,IAAMyiR,SAKf,OACA,SAAU3tS,GAAQC,GAASI,IAEjC,IASIqO,GAAKvN,GAAKy2D,GATVi2O,GAAkBxtS,GAAoB,QACtC82F,GAAS92F,GAAoB,QAC7B4/K,GAAW5/K,GAAoB,QAC/BmtG,GAA8BntG,GAAoB,QAClDytS,GAAYztS,GAAoB,QAChC0tS,GAAY1tS,GAAoB,QAChCqiJ,GAAariJ,GAAoB,QAEjCw0H,GAAU19B,GAAO09B,QAgBrB,GAAIg5K,GAAiB,CACnB,IAAIlxC,GAAQ,IAAI9nI,GACZm5K,GAAQrxC,GAAMx7P,IACd8sS,GAAQtxC,GAAM/kM,IACds2O,GAAQvxC,GAAMjuP,IAClBA,GAAM,SAAUo6B,GAAIqlQ,IAElB,OADAD,GAAMztS,KAAKk8P,GAAO7zN,GAAIqlQ,IACfA,IAEThtS,GAAM,SAAU2nC,IACd,OAAOklQ,GAAMvtS,KAAKk8P,GAAO7zN,KAAO,IAElC8uB,GAAM,SAAU9uB,IACd,OAAOmlQ,GAAMxtS,KAAKk8P,GAAO7zN,SAEtB,CACL,IAAIslQ,GAAQL,GAAU,SACtBrrJ,GAAW0rJ,KAAS,EACpB1/R,GAAM,SAAUo6B,GAAIqlQ,IAElB,OADA3gM,GAA4B1kE,GAAIslQ,GAAOD,IAChCA,IAEThtS,GAAM,SAAU2nC,IACd,OAAOglQ,GAAUhlQ,GAAIslQ,IAAStlQ,GAAGslQ,IAAS,IAE5Cx2O,GAAM,SAAU9uB,IACd,OAAOglQ,GAAUhlQ,GAAIslQ,KAIzBpuS,GAAOC,QAAU,CACfyO,IAAKA,GACLvN,IAAKA,GACLy2D,IAAKA,GACLy2O,QA/CY,SAAUvlQ,IACtB,OAAO8uB,GAAI9uB,IAAM3nC,GAAI2nC,IAAMp6B,GAAIo6B,GAAI,KA+CnCwlQ,UA5Cc,SAAUC,IACxB,OAAO,SAAUzlQ,IACf,IAAIy0D,GACJ,IAAK0iF,GAASn3I,MAAQy0D,GAAQp8F,GAAI2nC,KAAKj1B,OAAS06R,GAC9C,MAAMv4O,UAAU,0BAA4Bu4O,GAAO,aACnD,OAAOhxM,OA6CP,OACA,SAAUv9F,GAAQC,GAASI,IAEjC,aAaA,IAAIuK,GAAOvK,GAAoB,QAAQuK,KACnCg6D,GAAgBvkE,GAAoB,QAAQukE,cAC5Cz1D,GAAiB9O,GAAoB,QACrCo3P,GAAep3P,GAAoB,QACnC03B,GAAU13B,GAAoB,QAC9BiY,GAAMjY,GAAoB,QA6R9B,SAASmuS,oBAAoBC,GAAeC,GAAUzkO,IAClDwkO,GAAcE,UAAUnpS,KAAKkpS,IAC7BD,GAAcxkO,OAASA,GA+B3B,SAAS2kO,gBAAgBC,GAAc7kS,GAAO8kS,IAC1C,MAAO,CACHD,aAAcA,GACd7kS,MAAOA,GACP8kS,SAAUA,GACVH,UAAW,GACX1kO,MAAO,GAYf,SAAS8kO,gBAAgBC,GAAWN,GAAUzkO,IAC1C+kO,GAAUL,UAAUnpS,KAAKkpS,IACzBM,GAAU/kO,OAASA,GAxUvBjqE,GAAOC,QAAU,SAASmP,KAAKC,GAAIC,IAC/B,IAAI2xJ,GAAc3oJ,GAAIu4P,cAAcvhQ,GAAM8iI,YAE1C,GAA0B,IAAvB6uB,GAAYr+J,OAAc,MAAO,GAEpC,IAoBI63E,GACAxQ,GACAm2M,GAtBA6uB,GAAiBhuI,GAAYrlH,KAAI,SAASshB,IAC1C,IAAIgyO,GAgBJ,MAfyB,UAAtBhyO,GAAIiyO,cAEHD,GAAiB,KACW,UAAtBhyO,GAAIiyO,cAGVD,GAAiBhyO,GAAIkyO,eAIrBF,GAAiBz3C,GAAav6L,GAAI3jC,QAAQ7xB,OACjB,wBAAtBw1D,GAAIiyO,gBACHD,GAAiBA,GAAehiP,YAqVhD,SAASmiP,cAAc91Q,GAAQ+1Q,IAGvBA,GADDA,SACgB,GAGAA,GAAa1zP,KAAI,SAASz9B,IAAI,OAAOA,MAIxD,IAAIoxR,GAAoB,GACpBC,GAAkB,GAClBC,GAAO,GAGXH,GAAax4O,SAAQ,SAAS44O,GAAWC,IACrCJ,GAAkBG,IAAa,EAC/BF,GAAgBE,IAAaC,MAIjC,IAAI,IAAIpvS,GAAI,EAAGA,GAAIg5B,GAAO32B,OAAQrC,KAAK,CACnC,IACIqvS,GADA/kI,GAAOtxI,GAAOh5B,SAGa4iB,IAA5BosR,GAAkB1kI,KAEjB0kI,GAAkB1kI,IAAQ,EAC1B+kI,GAAUN,GAAa9pS,KAAKqlK,IAAQ,EACpC2kI,GAAgB3kI,IAAQ+kI,KAGxBL,GAAkB1kI,MAClB+kI,GAAUJ,GAAgB3kI,KAE9B4kI,GAAKjqS,KAAKoqS,IAId,IAAIC,GAAeP,GAAa1zP,KAAI,SAAS93C,IAAK,OAAOyrS,GAAkBzrS,OAE3E,MAAO,CACHwrS,aAAcA,GACdO,aAAcA,GACdJ,KAAMA,IA9XCJ,CAAcnyO,GAAI3jC,OAAQ21Q,OAOjCz0N,GADDniE,GAAIk5D,oBAAoBliE,GAAMmrE,QACpBnrE,GAAMmrE,OAEN,CAACnrE,GAAMmrE,QAgYxB,SAASq1N,6BAA6B7uI,IAClC,IACI1gK,GAEJ,GAwCJ,SAASwvS,mBAAmBN,IAGxB,IAFA,IAAIO,GAAgB,IAAI7sS,MAAMssS,GAAK7sS,QAE3BrC,GAAI,EAAGA,GAAIkvS,GAAK7sS,OAAQrC,KAAK,CAEjC,GAAGkvS,GAAKlvS,IAAK,GAAKkvS,GAAKlvS,KAAMkvS,GAAK7sS,OAC9B,OAAO,EAIX,QAA8BugB,IAA3B6sR,GAAcP,GAAKlvS,KAClB,OAAO,EAGXyvS,GAAcP,GAAKlvS,MAAM,EAI7B,OAAO,EA1DJwvS,CAHe9uI,GAAYrlH,KAAI,SAASh7C,IAAK,OAAOA,GAAEqvS,iBAIrD,IAAI1vS,GAAI,EAAGA,GAAI0gK,GAAYr+J,OAAQrC,KAC/B0gK,GAAY1gK,IAAG2vS,cAAgBjvI,GAAY1gK,IAAG0vS,kBAGlD,IAAI1vS,GAAI,EAAGA,GAAI0gK,GAAYr+J,OAAQrC,KAC/B0gK,GAAY1gK,IAAG2vS,cAAgB3vS,GAvYvCuvS,CAA6B7uI,IAE7BA,GAAYnqG,SAAQ,SAASoG,GAAKizO,KAgZtC,SAASC,2BAA2BlzO,GAAKmzO,IAErCnzO,GAAIozO,eAAiBD,GAAcf,aAGf,OAAjBpyO,GAAI9jB,eAAsCj2B,IAAjB+5C,GAAI9jB,SAC5B8jB,GAAIqzO,UAAY,GAGhBrzO,GAAIqzO,UAAYrzO,GAAI9jB,SAASr2C,QAIjC,IAAI,IAAIxC,GAAI28D,GAAIqzO,UAAU3tS,OAAQrC,GAAI8vS,GAAcf,aAAa1sS,OAAQrC,KACrE28D,GAAIqzO,UAAU/qS,KAAK6qS,GAAcf,aAAa/uS,KA7Z9C6vS,CAA2BlzO,GAAK+xO,GAAekB,QAKnD,IACIK,GADA/3Q,GAAOnpB,GAAMmpB,KAIdA,IACImsC,GAAct1D,GAAO,SACpBH,GAAeE,GAAIC,GAAO,CACtBE,KAAMF,GAAMmpB,KAAKzuB,MACjByF,aAAc,OACdC,QAAS,MAGjB8gS,GAAmBz4Q,GAAQ04Q,cAAch4Q,KAEzC+3Q,GAAmBl4R,GAAIlN,SAkB3B,IAYIsjS,GACA9tS,GA3BwB8D,GACpBnD,GAAOutS,GAaX4B,GAAYzvI,GAAY,GAAG1nI,OAAO32B,OAKlC+tS,GAAa,GAGbC,GAAmB3B,GAAerzP,KAAI,SAASvjB,IAAK,OAAOA,GAAGo3Q,QAOlE,IAJArvB,GAAa,EAITsuB,GAAW,EAAGA,GAAWgC,GAAWhC,KAAY,CAEhD,IAAImC,GAAmB,GACvB,IAAIjwS,GAAI,EAAGA,GAAIgwS,GAAiBhuS,OAAQhC,KACpCiwS,GAAiBrrS,KAAKorS,GAAiBhwS,IAAG8tS,KAI9CzkO,GAAQwQ,GAAOi0N,GAAWj0N,GAAO73E,QAGjCw9Q,IAAcn2M,GAGd,IAAI6mO,IA3CoBpsS,GA2CegqS,GA1CnCntS,UAAOutS,UACRx2R,GAAIk5D,oBAAoB/4C,GAAKzuB,OAE5B8kS,GADAvtS,GAAQk3B,GAAKzuB,MAAMtF,GAAQ+zB,GAAKzuB,MAAMpH,QAGtCrB,GAAQk3B,GAAKzuB,MAGV,CAACA,MAAOwmS,GAAiBjvS,IAAQutS,SAAUA,KAqC9CiC,GAAUF,GAAmB,IAAMC,GAAchC,cAG1B3rR,IAAxBwtR,GAAWI,MACVJ,GAAWI,IAAWnC,gBAAgBiC,GAClCC,GAAc9mS,MACd8mS,GAAchC,WAEtBC,gBAAgB4B,GAAWI,IAAUrC,GAAUzkO,IAGnD,IAyIuC+mO,GAzInCC,GAAkBhwI,GAAYrlH,KAAI,SAASvjB,GAAI93B,IAC/C,OA4FR,SAAS2wS,qBAAqBC,GAAcC,GAAcC,GAAYC,GAAgBrnO,IAClF,MAAO,CACHknO,aAAcA,GACdC,aAAcA,GACdC,WAAYA,GACZC,eAAgBA,GAChBrnO,MAAOA,GACP72D,WAAY,GACZm+R,MAAO,MApGAL,CAAqB3wS,GAAG83B,GAAG80K,OAAQ90K,GAAG63Q,cAAe73Q,GAAGgnE,MAAO+gL,OAI1E,IAAIsuB,GAAW,EAAGA,GAAWgC,GAAWhC,KAGpC,IAFAzkO,GAAQwQ,GAAOi0N,GAAWj0N,GAAO73E,QAE7BhC,GAAI,EAAGA,GAAIqwS,GAAgBruS,OAAQhC,KAAK,CACxC,IAAIwwS,GAAeH,GAAgBrwS,IAAGwwS,aAClCI,GAASvC,GAAeruS,IAAG6uS,KAAKf,IAChClvP,GAAOyxP,GAAgBrwS,IAAGwS,WAE9B,QAAoB+P,IAAjBq8B,GAAKgyP,IAAuB,CAC3B,IAAIC,GAAWniS,GAAM8iI,WAAWg/J,IAAcd,eAAekB,IACzDE,GAAWpiS,GAAM8iI,WAAWg/J,IAAcb,UAAUiB,IACxDhyP,GAAKgyP,IA0HV,CACHL,aA3H2CvwS,GA4H3CowS,YAHmCA,GAzHWQ,GA6H9CG,cA7HsDF,GA8HtDJ,WAAYL,GACZY,cA/HgEF,GAgIhE/C,UAAW,GACX1kO,MAAO,EACP4nO,MAAO,MA/HHrD,oBAAoBhvP,GAAKgyP,IAAS9C,GAAUzkO,IAKpD,OAAOr/D,GA8BX,SAASknS,mBAAmB1/J,GAAYl2B,GAAOjyC,IAC3C,IAAI8nO,GAAU3/J,GACTx2F,KAAI,SAASh7C,IAAI,OAAOA,GAAEwS,WAAWxQ,UACrCq9F,QAAO,SAASxnC,GAAIC,IAAK,OAAOjyD,KAAKqC,IAAI2vD,GAAIC,OAClD,MAAO,CAAC05E,WAAYA,GAAYl2B,MAAOA,GAAO5sG,WAAO6T,EAAW4uR,QAASA,GAAS9nO,MAAOA,IAlC7E6nO,CAAmBb,GAAiBN,GAAYvwB,OAsV1D,OACA,SAAUpgR,GAAQC,IAExBD,GAAOC,QAAU,CACb,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAME,OACA,SAAUD,GAAQC,GAASI,IAEjC,aAWA,IAAIwP,GAAYxP,GAAoB,QAEhCmY,GAAOnY,GAAoB,QAC3BiY,GAAMjY,GAAoB,QAE1ByxC,GAASzxC,GAAoB,QAAQyxC,OACrCm0B,GAAI3tD,GAAI2tD,EAEZjmE,GAAOC,QAAU,SAASmP,KAAKC,GAAIC,IAC/B,IAQI/O,GAAGmD,GACHsuS,GAAS/8O,GACTg9O,GAASj9O,GAVTvuC,GAAapX,GAAGwmB,YAChBkB,GAAKve,GAAKg2B,UAAUn/B,GAAIC,GAAMkY,OAAS,KACvC4P,GAAK5e,GAAKg2B,UAAUn/B,GAAIC,GAAMmY,OAAS,KACvC7G,GAAK,GAGLsxR,GAAwB,WAAf5iS,GAAMuE,KAAoB,cAAgB,YAM9B,MAAtBvE,GAAM5G,aACLspS,GAAUj7Q,GACVk+B,GAAY,IACZg9O,GAAU76Q,GACV49B,GAAY,MAEZg9O,GAAU56Q,GACV69B,GAAY,IACZg9O,GAAUl7Q,GACVi+B,GAAY,KAGhB,IAMIl0C,GAEA4vB,GAEAyhQ,GAEA95O,GAEA13C,GAEA7c,GAhBAsuS,GAsQR,SAASC,OAAO/iS,GAAO0lD,GAAWi9O,GAASpyP,IACvC,IAQIk3B,GAPAu7N,GAAUt9O,GAAY,MAAO1lD,GAC7BijS,GAAa,IAAMv9O,MAAa1lD,GAEpC,GAJkB0lD,MAAa1lD,IAIZgjS,IAAWC,GAC1B,OAAON,GAAQ9iQ,aAAa7/B,GAAO0lD,IAKnC+hB,GADDu7N,GACQhjS,GAAM0lD,GAAY,KACnB,SAAU1lD,KACC,aAAjB2iS,GAAQp+R,MACJhE,GAAUP,GAAMzO,QAC6B,IAA7C,CAAC,SAAU,OAAOmD,QAAQiuS,GAAQp+R,OAElCyE,GAAIy5D,WAAWziE,GAAMzO,OACJ,SAAjBoxS,GAAQp+R,MAGLvE,GAAMzO,KAENg/C,GASX,IANA,IAAI2yP,GAAyB,kBAAjBP,GAAQp+R,KAChBo+R,GAAQzpL,iBAAiBzxC,IACzBk7N,GAAQt9P,IAAIoiC,GAAM,EAAGznE,GAAM0lD,GAAY,aAEvCzkC,GAAMjhB,GAAMoI,QACZgJ,GAAM,IAAIvd,MAAMotB,IACZhwB,GAAI,EAAGA,GAAIgwB,GAAKhwB,KAAKmgB,GAAIngB,IAAKiyS,GAEtC,OAAO9xR,GAxSQ2xR,CAAO/iS,GAAO0lD,GAAWi9O,GAASxrR,GAAWyrR,KACxDh9L,GAAK58F,GAAIy+B,aAAaq7P,IACtBK,GAAcv9L,GAAG1lG,KACjBkjS,GAAOx9L,GAAGj+D,QAAU,EAiBpB07P,GAAmD,SAArCrjS,GAAM+4H,WAAa/4H,GAAM5M,QACvC4V,GAAIlN,SACJ,SAASuV,IAAM,OAAQA,GAAG7c,EAAIgd,GAAI8xR,IAAMjyR,GAAG7c,EAAIgd,GAAI+xR,IAEvD,GAAGvjS,GAAMwjS,iBAAkB,CACvB,IAAIC,GAAczjS,GAAM2lD,IACpBtgB,IAAM,SAAS5wC,IAAK,OAAOiuS,GAAQr9P,KAAKrlC,GAAMvL,KAAM,IAAIxD,MACxDq5M,GAAS9tM,IACT+tM,IAAU/tM,IAEd,IAAIvL,GAAI,EAAGA,GAAI+O,GAAMoI,QAASnX,KAAK,CAC/B,IAAIq7E,GAAOw2N,GAAS7xS,IACpB,GAAIsP,GAAU+rE,IAAd,CAUA,IARA96D,GAAM,IACF2yB,IAAM3yB,GAAIk0C,IAAa4mB,GAE3B96D,GAAI+mH,GAAKlzF,IAAI,MACb7zB,GAAIkyR,IAAMr+P,IAAI,UACd7zB,GAAIinH,GAAKpzF,IAAI,MAEbjE,GAAM,GACHqiQ,IAAez6R,GAAIk5D,oBAAoBuhO,GAAYxyS,KAClD,IAAImD,GAAI,EAAGA,GAAIqvS,GAAYxyS,IAAGqC,OAAQc,MAClCI,GAAIkuS,GAAQr9P,IAAIo+P,GAAYxyS,IAAGmD,QACtBouC,KAELwkC,iBADA31D,GAAK,CAAC7c,EAAGA,GAAGvD,EAAG,CAACA,GAAGmD,KACE4L,GAAO,CAAC/O,GAAGmD,KAChCgtC,GAAIlrC,KAAKmb,KAQrB,GAJAG,GAAI4vB,IAAMA,GAAIhpC,KAAKurS,WAEnB56O,IADA85O,GAAUrxR,GAAIm0C,IAAavkB,GAAIkL,IAAI6Z,aACvB7yD,OAETke,GAAIkyR,MAAQlhQ,IAAUhxB,GAAI+mH,KAAO/1F,IAAUhxB,GAAIinH,KAAOj2F,IACrDhxB,GAAIkyR,KAAOlyR,GAAI+mH,IAAM/mH,GAAIinH,IAAMjnH,GAAIkyR,IACrC,CACE,IAAIJ,GAAKj+P,IAAI,cACb7zB,GAAI8xR,GAAMA,KAAO9gQ,IAAU8gQ,IAAM9xR,GAAI+mH,GACjC+qK,GACAM,kBAAkBpyR,GAAKqxR,GAAS95O,IAEpC,IAAIw6O,GAAKl+P,IAAI,cACb7zB,GAAI+xR,GAAMA,KAAO/gQ,IAAU+gQ,IAAM/xR,GAAIinH,GACjC8qK,GACAM,kBAAkBryR,GAAKqxR,GAAS95O,IAEpC,IAAIowE,GAAO9zF,IAAI,QACf7zB,GAAI2nH,KAAQA,KAAS32F,GACjB22F,GACCpwE,GAAI//C,GAAImwH,KAAK0pK,GAAS95O,KAAMv3C,GAAI+mH,GAAK/mH,GAAIinH,IAAM,EAEpD,IAAIW,GAAK/zF,IAAI,MACb7zB,GAAI4nH,GAAMD,KAAS32F,IAAU42F,IAAM,EAC/BA,GACCrwE,GAAI//C,GAAI++B,MAAM86P,GAAS95O,GAAGv3C,GAAI2nH,MAAS3nH,GAAIinH,GAAKjnH,GAAI+mH,GAEzD/mH,GAAIlJ,GAAKw7R,yBAAyBtyR,IAClCA,GAAIuyR,GAAKC,yBAAyBxyR,IAElC,IAAInf,GAAKgzC,IAAI,aACbhzC,GAAMA,KAAOmwC,IAAUnwC,GAAK,EAAKA,GAAK4xS,iBAAiBzyR,GAAKu3C,IAC5Dv3C,GAAI0yR,GAAK1yR,GAAIkyR,IAAMrxS,GACnBmf,GAAI2yR,GAAK3yR,GAAIkyR,IAAMrxS,GAEnB,IAAI+xS,GAAO5yR,GAAI8xR,GACXz1C,GAAOr8O,GAAI+xR,GACZvjS,GAAM+4H,WAAa8pK,GAAQvvS,SAC1B8wS,GAAOjtS,KAAKoC,IAAI6qS,GAAMvB,GAAQ,IAC9Bh1C,GAAO12P,KAAKqC,IAAIq0P,GAAMg1C,GAAQ95O,GAAI,KAEnC/oD,GAAM44H,UACLwrK,GAAOjtS,KAAKoC,IAAI6qS,GAAM5yR,GAAI0yR,IAC1Br2C,GAAO12P,KAAKqC,IAAIq0P,GAAMr8O,GAAI2yR,KAE9B3yR,GAAIjY,IAAM6qS,GACV5yR,GAAIhY,IAAMq0P,OACP,CAQH,IAAI3kM,GAPJlgD,GAAIi3B,KAAK,CACL,oDACA,QAAUzuB,GAAI+mH,GACd,YAAc/mH,GAAIkyR,IAClB,QAAUlyR,GAAIinH,IAChBpiI,KAAK,OAIH6yD,GADD13C,GAAIkyR,MAAQlhQ,GACNhxB,GAAIkyR,IACHlyR,GAAI+mH,KAAO/1F,GACdhxB,GAAIinH,KAAOj2F,IAAchxB,GAAI+mH,GAAK/mH,GAAIinH,IAAM,EACrCjnH,GAAI+mH,GACR/mH,GAAIinH,KAAOj2F,GACZhxB,GAAIinH,GAEJ,EAITjnH,GAAIkyR,IAAMx6O,GACV13C,GAAI+mH,GAAK/mH,GAAIinH,GAAKvvE,GAClB13C,GAAI8xR,GAAK9xR,GAAI+xR,GAAKr6O,GAClB13C,GAAI2nH,KAAO3nH,GAAI4nH,GAAKlwE,GACpB13C,GAAI0yR,GAAK1yR,GAAI2yR,GAAKj7O,GAClB13C,GAAIjY,IAAMiY,GAAIhY,IAAM0vD,GAGxBohJ,GAASnzM,KAAKoC,IAAI+wM,GAAQ94L,GAAIjY,KAC9BgxM,GAASpzM,KAAKqC,IAAI+wM,GAAQ/4L,GAAIhY,KAE9BgY,GAAI6yR,KAAOjjQ,GAAItrC,OAAOutS,IAEtB/xR,GAAGpb,KAAKsb,KAGZxR,GAAM2gC,UAAU+hQ,GAAQ50Q,KAAO5kB,GAAK03B,aAAa8hQ,GAC7C,CAACp4F,GAAQC,IACT,CAACl3H,QAAQ,QAEV,CACH,IAAIixN,GAAW5B,GAAQ7iQ,aAAa7/B,GAAO2lD,IACvC4+O,GA6JZ,SAASC,SAAS7kS,GAAGmqB,IAIjB,IAHA,IAAI7I,GAAMthB,GAAErM,OACRg1E,GAAO,IAAIz0E,MAAMotB,GAAM,GAEnBhwB,GAAI,EAAGA,GAAIgwB,GAAKhwB,KACpBq3E,GAAKr3E,IAAK0O,GAAE1O,IAAK64B,GAIrB,OAFAw+C,GAAKrnD,IAAOthB,GAAEshB,GAAM,GAAK6I,GAElBw+C,GAtKWk8N,CAASrB,GAAaC,IAChC7hR,GAAO4hR,GAAY7vS,OACnBmxS,GAuKZ,SAASC,gBAAgBzjR,IAErB,IADA,IAAIoiD,GAAM,IAAIxvE,MAAMotB,IACZhwB,GAAI,EAAGA,GAAIgwB,GAAKhwB,KACpBoyE,GAAIpyE,IAAK,GAEb,OAAOoyE,GA5KaqhO,CAAgBnjR,IAGhC,IAAItwB,GAAI,EAAGA,GAAI+O,GAAMoI,QAASnX,KAE1B,GADAuD,GAAI8vS,GAASrzS,IACTsP,GAAU/L,IAAd,CAEA,IAAI/B,GAAIuW,GAAIujE,QAAQu2N,GAAS7xS,IAAIszS,IAC9B9xS,IAAK,GAAKA,GAAI8uB,KAEbylD,iBADA31D,GAAK,CAAC7c,EAAGA,GAAGvD,EAAGA,IACM+O,GAAO/O,IAC5BwzS,GAAUhyS,IAAGyD,KAAKmb,KAI1B,IAAIszR,GAAgBnoS,IAChBooS,IAAiBpoS,IAEjB68H,GAAiBr5H,GAAMq5H,eACvBwrK,GAAmC,cAAnBxrK,GAChByrK,GAAmC,cAAnBzrK,GAGpB,IAAIpoI,GAAI,EAAGA,GAAIswB,GAAMtwB,KACjB,GAAGwzS,GAAUxzS,IAAGqC,OAAS,EAAG,CAepB,IAAIyxS,GACAv7J,GAFR,IAbAh4H,GAAM,IACF2yB,IAAM3yB,GAAIk0C,IAAay9O,GAAYlyS,IAEvCmwC,GAAM5vB,GAAI4vB,IAAMqjQ,GAAUxzS,IAAGmH,KAAKurS,WAElC56O,IADA85O,GAAUrxR,GAAIm0C,IAAavkB,GAAIkL,IAAI6Z,aACvB7yD,OAEZke,GAAIjY,IAAMspS,GAAQ,GAClBrxR,GAAIhY,IAAMqpS,GAAQ95O,GAAI,GACtBv3C,GAAI2nH,KAAOnwH,GAAImwH,KAAK0pK,GAAS95O,IAC7Bv3C,GAAI4nH,GAAKpwH,GAAI++B,MAAM86P,GAAS95O,GAAGv3C,GAAI2nH,MACnC3nH,GAAIkyR,IAAM16R,GAAI4pC,OAAOiwP,GAAS,IAE1B95O,GAAI,IAAO87O,IAAiBC,IAIzBD,IAECE,GAAQlC,GAAQpvS,MAAM,EAAGs1D,GAAI,GAC7BygF,GAAQq5J,GAAQpvS,MAAMs1D,GAAI,EAAI,IACxB+7O,KAENC,GAAQlC,GAAQpvS,MAAM,EAAGs1D,GAAI,EAAI,GACjCygF,GAAQq5J,GAAQpvS,MAAMs1D,GAAI,IAG9Bv3C,GAAI+mH,GAAKvvH,GAAI4pC,OAAOmyP,GAAO,IAC3BvzR,GAAIinH,GAAKzvH,GAAI4pC,OAAO42F,GAAO,SAE3Bh4H,GAAI+mH,GAAKvvH,GAAI4pC,OAAOiwP,GAAS,KAC7BrxR,GAAIinH,GAAKzvH,GAAI4pC,OAAOiwP,GAAS,KAIjCrxR,GAAI8xR,GAAKM,kBAAkBpyR,GAAKqxR,GAAS95O,IACzCv3C,GAAI+xR,GAAKM,kBAAkBryR,GAAKqxR,GAAS95O,IAGzCv3C,GAAIlJ,GAAKw7R,yBAAyBtyR,IAClCA,GAAIuyR,GAAKC,yBAAyBxyR,IAGlC,IAAIwzR,GAAMf,iBAAiBzyR,GAAKu3C,IAChCv3C,GAAI0yR,GAAK1yR,GAAIkyR,IAAMsB,GACnBxzR,GAAI2yR,GAAK3yR,GAAIkyR,IAAMsB,GACnBL,GAAgBxtS,KAAKoC,IAAIorS,GAAenzR,GAAI0yR,IAC5CU,GAAgBztS,KAAKqC,IAAIorS,GAAepzR,GAAI2yR,IAE5C3yR,GAAI6yR,KAAOjjQ,GAAItrC,OAAOutS,IAEtB/xR,GAAGpb,KAAKsb,IAIhBxR,GAAM2gC,UAAU+hQ,GAAQ50Q,KAAO5kB,GAAK03B,aAAa8hQ,GAC7C1iS,GAAM44H,QAAU0rK,GAASnrS,OAAO,CAACwrS,GAAeC,KAAkBN,GAClE,CAACjxN,QAAQ,IAMjB,OA0GJ,SAASwkE,cAAcvmI,GAAItR,IACvB,GAAGgJ,GAAIk5D,oBAAoBliE,GAAMspB,gBAC7B,IAAI,IAAIr4B,GAAI,EAAGA,GAAIqgB,GAAGhe,OAAQrC,KAAK,CAI/B,IAHA,IAAImwC,GAAM9vB,GAAGrgB,IAAGmwC,KAAO,GACnBirC,GAAmB,GAEfj4E,GAAI,EAAGA,GAAIgtC,GAAI9tC,OAAQc,KAC3Bi4E,GAAiBjrC,GAAIhtC,IAAGnD,GAAKmD,GAGjC4U,GAAIokE,YAAYhsC,GAAKphC,GAAOqsE,KAtHpCwrE,CAAcvmI,GAAItR,IAEfsR,GAAGhe,OAAS,GACXge,GAAG,GAAGpf,EAAI,CACNq+C,IAAKp5B,GAAWyrR,IAChBQ,KAAMA,GACN19O,UAAWA,GACXC,UAAWA,GACXvuC,OAAQ,CACJssR,IAAK/sO,GAAE52D,GAAI,WACXxG,IAAKo9D,GAAE52D,GAAI,QACXw4H,GAAI5hE,GAAE52D,GAAI,OACV04H,GAAI9hE,GAAE52D,GAAI,OACVvG,IAAKm9D,GAAE52D,GAAI,QACXo5H,KAAwB,OAAlBn5H,GAAMk5H,QAAmBviE,GAAE52D,GAAI,aAAe42D,GAAE52D,GAAI,SAC1DujS,GAAI3sO,GAAE52D,GAAI,gBACVwjS,GAAI5sO,GAAE52D,GAAI,kBAIlBoX,GAAWyrR,MACJtxR,IAEA,CAAC,CAACpf,EAAG,CAACwnB,OAAO,MAkE5B,IAAIurR,GAAgB,CAChBxkS,KAAM,KACNgV,UAAW,OAGf,SAASuxD,iBAAiB31D,GAAIrR,GAAOo8R,IACjC,IAAI,IAAI3nS,MAAKwwS,GACNj8R,GAAIk5D,oBAAoBliE,GAAMvL,OAC1BZ,MAAMkL,QAAQq9R,IACVpzR,GAAIk5D,oBAAoBliE,GAAMvL,IAAG2nS,GAAS,OACzC/qR,GAAG4zR,GAAcxwS,KAAMuL,GAAMvL,IAAG2nS,GAAS,IAAIA,GAAS,KAG1D/qR,GAAG4zR,GAAcxwS,KAAMuL,GAAMvL,IAAG2nS,KAqBhD,SAASuH,UAAUruS,GAAGC,IAAK,OAAOD,GAAEd,EAAIe,GAAEf,EAE1C,SAAS2xD,WAAW10D,IAAK,OAAOA,GAAE+C,EAGlC,SAASovS,kBAAkBpyR,GAAKqxR,GAAS95O,IACrC,OAAS,IAANA,GAAgBv3C,GAAI+mH,GAChBphI,KAAKoC,IACRiY,GAAI+mH,GACJsqK,GAAQ1rS,KAAKoC,IACTyP,GAAIujE,QAAQ,IAAM/6D,GAAI+mH,GAAK,IAAM/mH,GAAIinH,GAAIoqK,IAAS,GAAQ,EAC1D95O,GAAI,KAMhB,SAAS86O,kBAAkBryR,GAAKqxR,GAAS95O,IACrC,OAAS,IAANA,GAAgBv3C,GAAIinH,GAChBthI,KAAKqC,IACRgY,GAAIinH,GACJoqK,GAAQ1rS,KAAKqC,IACTwP,GAAIujE,QAAQ,IAAM/6D,GAAIinH,GAAK,IAAMjnH,GAAI+mH,GAAIsqK,IACzC,KAOZ,SAASiB,yBAAyBtyR,IAC9B,OAAO,EAAIA,GAAI+mH,GAAK,EAAI/mH,GAAIinH,GAKhC,SAASurK,yBAAyBxyR,IAC9B,OAAO,EAAIA,GAAIinH,GAAK,EAAIjnH,GAAI+mH,GAIhC,SAAS0rK,iBAAiBzyR,GAAKu3C,IAC3B,OAAS,IAANA,GAAgB,EACZ,MAAQv3C,GAAIinH,GAAKjnH,GAAI+mH,IAAMphI,KAAK6E,KAAK+sD,MAM1C,OACA,SAAUr4D,GAAQC,GAASI,IAEjC,aAWA,IAAIuK,GAAOvK,GAAoB,QAAQuK,KAEvC5K,GAAOC,QAAU,SAASmP,OAGtB,OAAOxE,GAAK,MAMV,OACA,SAAU5K,GAAQC,GAASI,IAEjC,aAWA,IAAIiY,GAAMjY,GAAoB,QAC1BiyC,GAAUjyC,GAAoB,QAAQiyC,QACtCkiQ,GAAYn0S,GAAoB,QAChCo0S,GAAYp0S,GAAoB,QAAQo0S,UACxCC,GAAiBr0S,GAAoB,QAAQq0S,eAE7Cj2M,GAAep+F,GAAoB,QAAQo+F,aAC3CsqL,GAAU1oR,GAAoB,QAAQ0oR,QAsF1C,SAAS4rB,kBAAkB3gP,GAAQ4gP,GAAQC,GAAY19O,GAAW5+C,IAC9D,IAEIhY,GAAGmD,GAAGoxS,GAAKC,GAFXC,GAAsC,UAAdz8R,GACxBk7K,GAAWt8H,GAAU7kB,GAAQsiQ,KAAS/gS,KAGtCohS,GAAe,GACnB,IAAIvxS,GAAI,EAAGA,GAAImxS,GAAWjyS,OAAQc,KAE9B,IADAoxS,GAAMD,GAAWnxS,OACNkxS,KAEXG,GAAM59O,GAAU7kB,GAAQwiQ,MACjBjhS,OAAS4/K,GACZ,GAAIshH,GAAI9yM,YAED,GAAG+yM,IAAyBD,GAAIpnP,OAAQ,CAG1BwJ,GAAU7kB,GAAQyiQ,GAAIpnP,SACzBs0C,YACVgzM,GAAazvS,KAAKsvS,UANtBG,GAAazvS,KAAKsvS,IAY9B,IAAIv0S,GAAI,EAAGA,GAAIyzD,GAAOpxD,OAAQrC,KAC1B,GAAGyzD,GAAOzzD,IAAGq0S,IAAS,CAClB,IAAIM,GAAYlhP,GAAOzzD,IAEnB40S,GAAsB,GAC1B,IAAIzxS,GAAI,EAAGA,GAAIuxS,GAAaryS,OAAQc,KAE5BwxS,GADJJ,GAAMG,GAAavxS,MACCyxS,GAAoB3vS,KAAKsvS,IAEjD,MAAO,CAACG,aAAcE,GAAqBD,UAAWA,IAI9D,MAAO,CAACD,aAAcA,GAAcC,UAAW,MAiBnD,SAASE,uBAAuBC,GAAkBH,GAAWN,GAAQU,GAAaC,IAC9E,IAAIh1S,GAAGmD,GAAG8xS,GAAQC,GAAMC,GAEP,OAAdR,KACCA,GAAY,IACFN,IAAU,EACpBc,GAAiBL,GAAiBzyS,OAClCyyS,GAAiB7vS,KAAK0vS,KAEtBQ,GAAiBL,GAAiBrxS,QAAQkxS,IAG9C,IAAIS,GAAgB30S,OAAOyiD,KAAKyxP,IAIhC,IAAI30S,GAAI,EAAGA,GAAI80S,GAAiBzyS,OAAQrC,KAEpC,GADAi1S,GAASH,GAAiB90S,IACvBA,KAAMm1S,IAAkBF,GAAOF,IAAc,CAC5C,IAAIM,GAAYJ,GAAOF,IACvB,IAAI5xS,GAAI,EAAGA,GAAIiyS,GAAc/yS,OAAQc,KAEjC8xS,GADAC,GAAOE,GAAcjyS,KACNkyS,GAAYL,GAAaL,GAAUO,IAGtD,YADAJ,GAAiBhkS,OAAOqkS,GAAgB,GAOhD,GAAkB,IAAfH,GACC,IAAI7xS,GAAI,EAAGA,GAAIiyS,GAAc/yS,OAAQc,KACjCwxS,GAAUS,GAAcjyS,MAAO6xS,GAGvCL,GAAUI,IAAe,EAmL7B,SAASO,aAAalvR,GAAIiuC,IACtB,IAAIkhP,GAAcnvR,GAAGovR,aACjBnjF,GAAiBm2D,GAAQpiQ,GAAGqvR,iBAC5Bj1Q,GAAS+0Q,GAAY,IAAMA,GAAY,GAAKA,GAAY,IAAMljF,GAElEjsM,GAAGinC,OAASjnC,GAAG2oB,OAAOse,OAAS,CAC3B7sB,IAAU+0Q,GAAY,GAAK/0Q,IAAU6zB,GACrC7zB,IAAU+0Q,GAAY,GAAK/0Q,IAAU6zB,IAEzCjuC,GAAGoV,WA3WP97B,GAAQwmH,yBAA2B,SAAS3zE,GAAaC,GAAcM,GAAQ/iB,IAC3E,IAuBIkjH,GAASyiK,GAcTX,GAAaY,GArCbrB,GAAavkR,GAAKukR,WAClB19O,GAAY7mC,GAAK6mC,UACjBg/O,GAAkB7lR,GAAK6lR,gBACvBC,GAAgB9lR,GAAK8lR,cACrBf,GAAmBl+O,GAAUk/O,sBAC7B1tL,GAAcxxD,GAAUyxD,iBACxB9gE,GAAO/U,GAAa3V,IACpBrZ,GAAW+jC,GAAKj6B,OAAO,GACvByoR,KAAen/O,GAAUo8E,YAAc,IAAIxvH,KAAa,IAAI+jC,KAAS,GACrE8sP,GAAS7hQ,GAAa3V,IACtBgqJ,GAASwtH,GAAO/mR,OAAO,GAIvBtV,GAAY86B,GAAO,YAAa+iQ,IA+CpC,GA9CA99R,GAAI+6B,OAAOP,GAAaC,GAAc,CAClCijQ,gBAAiB,CACb/xR,QAAS,aACTsV,OAAmB,MAAX6tJ,GAAiB,CAAC,OAAQ,SAAU,SAAW,CAAC,SAAU,SAAU,OAC5EljK,KAAiB,MAAXkjK,GAAiB,SAAW,WAEvC,oBAICt0I,GAAY0gG,UAAW8iK,GAAW9iK,SAAazgG,GAAakvD,aAC5Dg0M,GAAYtB,kBAAkBhsL,GAAaisL,GAAQC,GAAY19O,IAC/Dq8E,GAAUl7H,GAAI+6B,OAAOP,GAAaC,GAAc,CAC5CygG,QAAS,CACLvvH,QAAS,aACTsV,OAAQ08Q,GAAUhB,cAAgB,GAClC/wR,KAAMoyR,GAAW9iK,UAEtB,YAMHA,IACCzgG,GAAakvD,YAA4B,WAAd1pF,KAC5Bu6B,GAAYwiQ,cAAea,KAE3BD,GAAYvB,kBAAkBU,GAAkBT,GAAQC,GAAY19O,GAAW5+C,IAC/E+8R,GAAch9R,GAAI+6B,OAAOP,GAAaC,GAAc,CAChDuiQ,YAAa,CACTrxR,QAAS,aACTsV,OAAQ28Q,GAAUjB,cAAgB,KAEvC,cAAekB,KAGnB3iK,WACQzgG,GAAax6B,UACpB68R,uBAAuBzsL,GAAastL,GAAUf,UAAWN,GAAQphK,GAAS,KACvB,IAA7CqhK,GAAW7wS,QAAQ8uC,GAAY0gG,UACrCl7H,GAAIi3B,KAAK,WAAawD,GAAahY,MAAQ,cACvC+X,GAAY0gG,QADP,kFAKV8hK,GAAa,CACZ,IAAIC,GAAaliQ,GAAO,cAOpBkiQ,KAAYA,GAAaxiQ,GAAawiQ,WAAa,GAEvDH,uBAAuBC,GAAkBa,GAAUhB,UAAWN,GAAQU,GAAaC,SAC5B,IAAjDV,GAAW7wS,QAAQ8uC,GAAYwiQ,cACrCh9R,GAAIi3B,KAAK,WAAawD,GAAahY,MAAQ,kBACvC+X,GAAYwiQ,YADP,uKAwGjBr1S,GAAQouS,QAAU,SAASA,QAAQh/R,IAC/B,IAGI9O,GAAGmD,GAAG6yS,GAAQ5vR,GAAI6vR,GAAW/0S,GAAMmzD,GAHnCnuC,GAAapX,GAAGwmB,YAChBw/Q,GAAmB5uR,GAAW4vR,uBAAyB,GAI3D,IAAI91S,GAAI,EAAGA,GAAI80S,GAAiBzyS,OAAQrC,KAAK,CACzC,IAAIuR,GAAQujS,GAAiB90S,IACzBghP,GAAUvgP,OAAOyiD,KAAK3xC,IAEtB2kS,GAAW3qS,IACX4qS,GAAW,EAMXC,GAAa7qS,IACb8qS,GAAa,GACbp/R,GAAO,GACPq/R,IAAyB,EAG7B,IAAInzS,GAAI,EAAGA,GAAI69O,GAAQ3+O,OAAQc,KAE3B8T,GADA++R,GAASh1D,GAAQ79O,KACFijB,GAAKF,GAAW6rB,GAAQikQ,KAEpC5vR,GAAGovR,aAAcpvR,GAAGinC,OAASjnC,GAAGovR,aAAahzS,QAC3C4jB,GAAGovR,aAAepvR,GAAGinC,OAAO7qD,QAE7B4jB,GAAGmwR,cAAanwR,GAAGmwR,YAAcnwR,GAAG1O,MAAMlV,SAI9C4jB,GAAGoV,WAGH66Q,GAAWL,IAAUC,GAAY/vS,KAAKsR,IAAI4O,GAAGzO,IAAMpG,GAAMykS,IACzDE,GAAWhwS,KAAKoC,IAAI4tS,GAAUD,IACV,WAAjB7vR,GAAGpO,WAA2BoO,GAAGowR,wBAChCJ,GAAalwS,KAAKoC,IAAI8tS,GAAYH,YAI/B7vR,GAAGowR,sBACVL,GAAWjwS,KAAKqC,IAAI4tS,GAAUF,IAEV,WAAjB7vR,GAAGpO,YAAwBs+R,IAAyB,GAI3D,KAAGJ,GAAWh4M,GAAei4M,KAAaG,GAG1C,IAAInzS,GAAI,EAAGA,GAAI69O,GAAQ3+O,OAAQc,KAQ3B,GANA8yS,GAAYI,GADZL,GAASh1D,GAAQ79O,KAGjBjC,IADAklB,GAAKnP,GAAK++R,KACAh+R,UAIPi+R,KAAcG,IAAuB,WAATl1S,GAG3B,GAFAmzD,GAAS4hP,GAAYG,GAET,UAATl1S,GACC+yS,GAAU7tR,GAAIiuC,QACX,CAGH,IAAIkhP,GAAcnvR,GAAGovR,aACjBiB,IAAgBrwR,GAAGinC,OAAO,GAAKjnC,GAAGinC,OAAO,KACxCkoP,GAAY,GAAKA,GAAY,IAC9BmB,IAAetwR,GAAGgW,IAAIhW,GAAG1O,MAAM,IAAM0O,GAAGgW,IAAIhW,GAAG1O,MAAM,MACpD0O,GAAGgW,IAAIhW,GAAGmwR,YAAY,IAAMnwR,GAAGgW,IAAIhW,GAAGmwR,YAAY,KAIvD,IAFAliP,IAAUoiP,IAEEC,GAAc,EAAG,CAGzBtwR,GAAGinC,OAASjnC,GAAG2oB,OAAOse,OAASkoP,GAAY/yS,QAC3CyxS,GAAU7tR,GAAIiuC,IACd,SAUJ,GAPGqiP,GAAc,IAGbtwR,GAAG1O,MAAQ0O,GAAG2oB,OAAOr3B,MAAQ0O,GAAGmwR,YAAY/zS,QAC5C6xD,IAAUqiP,IAGXtwR,GAAGgsB,UAAW,CAab,IAAIs2E,GAAMtiG,GAAGgW,IAAIhW,GAAG1O,MAAM,IACtBixG,GAAMviG,GAAGgW,IAAIhW,GAAG1O,MAAM,IACtBi/R,IAAejuL,GAAMC,IAAO,EAC5BiuL,GAAWD,GACXE,GAAWF,GACXG,GAAY5wS,KAAKsR,IAAImxG,GAAMguL,IAG3BI,GAAWJ,GAAcG,GAAYziP,GAAS,OAC9C2iP,GAAWL,GAAcG,GAAYziP,GAAS,OAC9C4iP,GAAS/C,GAAU9tR,IAEvBkvR,aAAalvR,GAAIiuC,IACjB,IAIIo7F,GACAjsJ,GALArD,GAAI+F,KAAKsR,IAAI4O,GAAGzO,IAChBu/R,GAAW/C,GAAerlS,GAAIsX,IAC9B+wR,GAAWD,GAAS5uS,IACpB8uS,GAAWF,GAAS3uS,IAIxB,IAAI/E,GAAI,EAAGA,GAAI2zS,GAAS90S,OAAQmB,MAC5BisJ,GAAS0nJ,GAAS3zS,IAAG+uB,IAAM0kR,GAAOE,GAAS3zS,KAAMrD,IACrC42S,IAAYtnJ,GAASmnJ,KAC7BA,GAAWnnJ,IAInB,IAAIjsJ,GAAI,EAAGA,GAAI4zS,GAAS/0S,OAAQmB,MAC5BisJ,GAAS2nJ,GAAS5zS,IAAG+uB,IAAM0kR,GAAOG,GAAS5zS,KAAMrD,IACrC62S,IAAYvnJ,GAASonJ,KAC7BA,GAAWpnJ,IAKnBp7F,KADoBwiP,GAAWD,KAAa,EAAIE,IAGhDF,GAAWxwR,GAAGmW,IAAIq6Q,IAClBC,GAAWzwR,GAAGmW,IAAIs6Q,IAClBzwR,GAAG1O,MAAQ0O,GAAG2oB,OAAOr3B,MAASgxG,GAAMC,GAChC,CAACiuL,GAAUC,IAAY,CAACA,GAAUD,IAG1CtB,aAAalvR,GAAIiuC,OASrC30D,GAAQ26D,MAAQ,SAASA,MAAMvrD,GAAIsX,IAC/B,GAAGA,GAAGovR,aAAc,CAIhB,IAHA,IAAI6B,IAAgB,EAChB9vP,GAAOnhC,GAAGyW,IACVi4Q,GAAmBhmS,GAAGwmB,YAAYwgR,sBAC9B3yS,GAAI,EAAGA,GAAI2xS,GAAiBzyS,OAAQc,KACxC,GAAG2xS,GAAiB3xS,IAAGokD,IAAO,CAC1B8vP,IAAgB,EAChB,MAGJA,IAAkC,WAAjBjxR,GAAGpO,YACpBoO,GAAG2oB,OAAOse,OAASjnC,GAAGinC,OAASjnC,GAAGovR,oBAC3BpvR,GAAGovR,iBAoBhB,OACA,SAAU/1S,GAAQC,GAASI,IAEjC,aAWA,IAAIgO,GAAUlL,MAAMkL,QAIhBsuK,GAA6B,oBAAhBD,aAAgCA,YAAYm7H,OAEzDn7H,YADA,CAACm7H,OAAQ,WAAa,OAAO,IAG7B3iM,GAA0B,oBAAb4iM,SACb,aACAA,SAEJ,SAAS/tL,aAAanlH,IAClB,OAAO+3K,GAAGk7H,OAAOjzS,OAAQA,cAAaswG,IAI1C,SAAS1jC,oBAAoB5sE,IACzB,OAAOyJ,GAAQzJ,KAAMmlH,aAAanlH,IAiHtC,SAASmzS,WAAWpoS,GAAGkY,GAAImwR,IACvB,GAAGxmO,oBAAoB7hE,IAAI,CACvB,GAAG6hE,oBAAoB7hE,GAAE,IAAK,CAE1B,IADA,IAAI4gB,GAAMynR,GACFz3S,GAAI,EAAGA,GAAIoP,GAAE/M,OAAQrC,KACzBgwB,GAAM1I,GAAG0I,GAAK5gB,GAAEpP,IAAGqC,QAEvB,OAAO2tB,GAEP,OAAO5gB,GAAE/M,OAGjB,OAAO,EAhIX3C,GAAQ8pH,aAAeA,aAKvB9pH,GAAQuxE,oBAAsBA,oBAa9BvxE,GAAQ8uC,UAHR,SAASA,UAAUnqC,IACf,OAAQ4sE,oBAAoB5sE,GAAE,KAYlC3E,GAAQu0M,YAAc,SAAS9zL,GAAK3e,IAShC,OANIsM,GAAQqS,MAAMA,GAAM,IAIxBA,GAAI9d,OAASb,GAEN2e,IAUXzgB,GAAQwI,OAAS,WACb,IAIIwvS,GAAcC,GAAM33S,GAAG43S,GAAMv8N,GAAMw8N,GAAM13R,GAAKhd,GAJ9ComC,GAAO,GACPuuQ,IAAW,EACXC,GAAW,EAIf,IAAI/3S,GAAI,EAAGA,GAAIob,UAAU/Y,OAAQrC,MAE7B63S,IADAD,GAAOx8R,UAAUpb,KACLqC,UAELs1S,GAAMpuQ,GAAKtkC,KAAK2yS,KAEfD,GAAOC,GACPv8N,GAAOw8N,IAGR/pS,GAAQ8pS,IACPF,IAAe,GAEfI,IAAW,EACPC,GAEML,KAAiBE,GAAKj6Q,cAG5B+5Q,IAAe,GAJfA,GAAeE,GAAKj6Q,aAQ5Bo6Q,IAAYF,IAIpB,IAAIE,GAAU,MAAO,GACrB,IAAIxuQ,GAAKlnC,OAAQ,OAAOs1S,GAExB,GAAGG,GAAU,OAAOH,GAAKzvS,OAAOxF,MAAMi1S,GAAMpuQ,IAC5C,GAAGmuQ,GAAc,CAIb,KAFAv3R,GAAM,IAAIu3R,GAAaK,KACnB5pS,IAAIwpS,IACJ33S,GAAI,EAAGA,GAAIupC,GAAKlnC,OAAQrC,KACxB43S,GAAOruQ,GAAKvpC,IACZmgB,GAAIhS,IAAIypS,GAAMv8N,IACdA,IAAQu8N,GAAKv1S,OAEjB,OAAO8d,GAKX,IADAA,GAAM,IAAIvd,MAAMm1S,IACZ50S,GAAI,EAAGA,GAAIw0S,GAAKt1S,OAAQc,KAAKgd,GAAIhd,IAAKw0S,GAAKx0S,IAC/C,IAAInD,GAAI,EAAGA,GAAIupC,GAAKlnC,OAAQrC,KAAK,CAE7B,IADA43S,GAAOruQ,GAAKvpC,IACRmD,GAAI,EAAGA,GAAIy0S,GAAKv1S,OAAQc,KAAKgd,GAAIk7D,GAAOl4E,IAAKy0S,GAAKz0S,IACtDk4E,IAAQl4E,GAEZ,OAAOgd,IAGXzgB,GAAQ2vC,aAAe,SAASjgC,IAC5B,OAAOooS,WAAWpoS,GAAGlJ,KAAKqC,IAAK,IAGnC7I,GAAQo5D,aAAe,SAAS1pD,IAC5B,OAAOooS,WAAWpoS,GAAGlJ,KAAKoC,IAAKiD,OAqB7B,OACA,SAAU9L,GAAQC,GAASI,IAEjC,aAWA,IAAIiY,GAAMjY,GAAoB,QAC1BqxF,GAAWrxF,GAAoB,QAC/BgyC,GAAUhyC,GAAoB,QAE9BqJ,GAAarJ,GAAoB,QACjCwzH,GAAexzH,GAAoB,QAEvCL,GAAOC,QAAU,SAAS+nC,eAAekvB,GAAUC,GAAW88B,IAC1D,IAAIE,GAAOj9B,GAAS+8B,IAChBG,GAAQj9B,GAAU88B,IAEtB,GAAKE,GAAK4/B,aAAe58D,GAAUohP,oBAAoBnkN,GAAMh3D,KAA7D,CAGI9kB,GAAImoD,cAAc0zB,GAAK4/B,eACvB5/B,GAAK4/B,YAAc,IAGvB,IAOIykL,GAAkBC,GAPlB3lQ,GAAcqhD,GAAK4/B,YACnBhhF,GAAe2+C,GAASY,aAAa8B,GAAO,eAYhD,GADc/gD,OAAO,WACrB,CAEAA,OAAO,UAAW8jB,GAAU8C,cAC5B5mB,OAAO,eACPA,OAAO,eACPA,OAAO,aAEPA,OAAO,aAAc+gD,GAAMW,aAAajiD,GAAY76B,QACpDo7B,OAAO,SAEP,IAAIxL,GAAWsvB,GAAUjkB,UACzB,GAAGrL,GASC,IARA,IAAIub,GAAOvb,GAASqe,UACf9gD,QAAO,SAASg1D,IACb,OAAOA,GAAUnnD,OAAO,EAAGmnD,GAAUp2D,QAAQ,QAAUquC,GAAQE,QAAQ0hD,OAE1Er4C,KAAI,SAASwe,IACV,OAAOA,GAAUnnD,OAAOmnD,GAAUp2D,QAAQ,KAAMo2D,GAAUx3D,WAE9D81S,GAASpgS,GAAIokB,UAAU0mB,GAAM/Q,GAAQC,SACjC/xC,GAAI,EAAGA,GAAIm4S,GAAO91S,OAAQrC,KAAK,CACnC,IAAI+3N,GAAQogF,GAAOn4S,IAEnBi4S,GAAmB1lQ,GAAYwlL,KAAU,GACzCmgF,GAAoB/mN,GAASY,aAAav/C,GAAculL,GAAO,SAE/D,IAEIqgF,GAFAC,GAASzhP,GAAUmhK,IAGpBkgF,GAAiBvgS,OAAS2gS,GAAO7jN,aAAayjN,GAAiBvgS,SAC9D0gS,GAAgB,SAIH,UADDE,YAAY,YAAaF,KAErCE,YAAY,QAASD,GAAO3gS,MAAMlV,SAM9CgwC,GAAazD,OAASwD,IAnDtB,SAASO,OAAO1qB,GAAMzE,IAClB,OAAO5L,GAAI+6B,OAAOP,GAAaC,GAAcrpC,GAAYif,GAAMzE,IAInE,SAAS20R,YAAYlwR,GAAMzE,IACvB,OAAO5L,GAAI+6B,OAAOmlQ,GAAkBC,GAAmB5kL,GAAclrG,GAAMzE,OAmD7E,OACA,SAAUlkB,GAAQC,GAASI,IAEjC,cAC4B,SAAS82F,IAGrC,IAAIroF,GAAOzO,GAAoB,QAsF/B,SAAS2rN,OAAQjrN,IAChB,GAAIA,GAAEixB,UACL,GAAIjxB,GAAEixB,WAAa9Q,SAASgf,KACtBhf,SAASgf,KAAK1vB,MAAMuR,QAAOhhB,GAAEkgB,OAAOc,MAAQhhB,GAAEghB,OAAUhhB,GAAEsL,WAAa8qF,GAAOlzD,YAC9E/iB,SAASgf,KAAK1vB,MAAMsb,SAAQ/qB,GAAEkgB,OAAO6K,OAAS/qB,GAAE+qB,QAAW/qB,GAAEsL,WAAa8qF,GAAOjzD,iBAElF,CACJ,IAAI14B,GAASzK,GAAEixB,UAAU3J,wBACzBtnB,GAAEkgB,OAAOc,MAAQhhB,GAAEghB,OAAUvW,GAAOgJ,MAAQhJ,GAAO+I,KACnDxT,GAAEkgB,OAAO6K,OAAS/qB,GAAE+qB,QAAWtgB,GAAOknB,OAASlnB,GAAOmnB,KAKzD,SAASmmR,SAAU36R,IAClB,MAA+B,mBAAjBA,GAAEiD,YACZ,UAAWjD,IACX,WAAYA,GAcjB,SAAS46R,eACR,IAAI93R,GAASC,SAASC,cAAc,UAKpC,OAJAF,GAAOzQ,MAAM7G,SAAW,WACxBsX,GAAOzQ,MAAMmiB,IAAM,EACnB1R,GAAOzQ,MAAM+D,KAAO,EAEb0M,GAzHRjhB,GAAOC,QAAU,SAAS+4S,WAAYj4S,IA+BrC,GA9BKA,GACiB,iBAANA,KAAgBA,GAAI,CAACixB,UAAWjxB,KADxCA,GAAI,IAKXA,GADG+3S,SAAS/3S,KAmGd,SAASk4S,UAAW96R,IACnB,MAA6B,iBAAfA,GAAE8U,UACU,mBAAlB9U,GAAEuN,aAC0B,mBAA5BvN,GAAEkK,sBAlGD4wR,CAAUl4S,IAHd,CAACixB,UAAWjxB,IAwGlB,SAASs9M,UAAWlgM,IACnB,MAA+B,mBAAjBA,GAAEooH,YACW,mBAAnBpoH,GAAEmoH,aAnGD+3E,CAAUt9M,IACd,CAACuI,GAAIvI,IAIL+N,GAAK/N,GAAG,CACXixB,UAAW,wFACX1oB,GAAI,6BACJub,MAAO,qCACPxY,WAAY,iDACZ0V,MAAO,UACP+J,OAAQ,aACN,IAGGzf,aAAYtL,GAAEsL,WAAa8qF,GAAO9qF,YAAc,GAGnDtL,GAAEuI,GACL,OAAOvI,GAAEuI,GAKV,GAHIvI,GAAEkgB,SACLlgB,GAAEixB,UAAYjxB,GAAEkgB,OAAO8H,YAEpBhoB,GAAEixB,UAAW,CAChB,GAA2B,iBAAhBjxB,GAAEixB,UAAwB,CACpC,IAAIrxB,GAAIugB,SAASs5C,cAAcz5D,GAAEixB,WACjC,IAAKrxB,GAAG,MAAMkC,MAAM,WAAa9B,GAAEixB,UAAY,iBAC/CjxB,GAAEixB,UAAYrxB,GAEXm4S,SAAS/3S,GAAEixB,YACdjxB,GAAEkgB,OAASlgB,GAAEixB,UACbjxB,GAAEixB,UAAYjxB,GAAEkgB,OAAO8H,YAEdhoB,GAAEkgB,SACXlgB,GAAEkgB,OAAS83R,eACXh4S,GAAEixB,UAAUtG,YAAY3qB,GAAEkgB,QAC1B+qM,OAAOjrN,UAIJ,IAAKA,GAAEkgB,OAAQ,CACnB,GAAwB,oBAAbC,SAOV,MAAMre,MAAM,yCANZ9B,GAAEixB,UAAY9Q,SAASgf,MAAQhf,SAASuuL,gBACxC1uM,GAAEkgB,OAAS83R,eACXh4S,GAAEixB,UAAUtG,YAAY3qB,GAAEkgB,QAC1B+qM,OAAOjrN,IAQT,IAAKA,GAAEuI,GACN,IACCvI,GAAEuI,GAAKvI,GAAEkgB,OAAOG,WAAW,QAASrgB,GAAE8jB,OACrC,MAAO1G,IACR,IACCpd,GAAEuI,GAAKvI,GAAEkgB,OAAOG,WAAW,qBAAsBrgB,GAAE8jB,OAEpD,MAAO1G,IACNpd,GAAEuI,GAAKvI,GAAEkgB,OAAOG,WAAW,qBAAsBrgB,GAAE8jB,QAKtD,OAAO9jB,GAAEuI,MA4CmB7I,KAAK8D,KAAMlE,GAAoB,UAItD,OACA,SAAUL,GAAQC,GAASI,IAEjC,aAGA,IAAIoJ,GAAgBpJ,GAAoB,QACpC+J,GAAgB/J,GAAoB,QACpCiK,GAAgBjK,GAAoB,QACpCsK,GAAgBtK,GAAoB,QACpC4nG,GAAgB5nG,GAAoB,QACpC2f,GAAgB3f,GAAoB,QACpCmK,GAAgBnK,GAAoB,QACpCgvG,GAAgBhvG,GAAoB,QAEpCgwJ,GAAW,CACb,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,GAER,SAAS6oJ,WAAW5vS,GAChBoB,GACAsmP,GACA/mP,GACAinP,GACAioD,GACAhoD,GACAC,GACAC,GACAE,GACAn6L,IAEF7yD,KAAK+E,GAAoBA,GACzB/E,KAAK8H,WAAqB,EAC1B9H,KAAKsD,MAAoB,GACzBtD,KAAKqJ,UAAoB,GACzBrJ,KAAKu8J,UAAoB,GACzBv8J,KAAKmG,QAAoBA,GACzBnG,KAAK6H,OAAoB,EAEzB7H,KAAKysP,UAAoBA,GACzBzsP,KAAK0F,WAAoBA,GAEzB1F,KAAK2sP,kBAAoBA,GACzB3sP,KAAK40S,gBAAoBA,GACzB50S,KAAK6sP,eAAoBA,GACzB7sP,KAAK8sP,YAAoBA,GACzB9sP,KAAK4sP,YAAoBA,GACzB5sP,KAAKgtP,YAAoBA,GACzBhtP,KAAK8tP,cAAoB,EAEzB9tP,KAAKyH,OAAoB,EACzBzH,KAAKiH,OAAoB,CACvB,CAAEM,IAAUA,IAAUA,KACtB,EAAEA,KAAUA,KAAUA,MACxBvH,KAAKsH,WAAoB,CACvB,EAAEC,KAAUA,KAAUA,KACtB,CAAEA,IAAUA,IAAUA,MAExBvH,KAAK6nP,cAAgB,CAAC,IAAK,IAAK,GAChC7nP,KAAKkuP,aAAgB,GACrBluP,KAAKmuP,aAAgB,GACrBnuP,KAAKouP,cAAgB,EACrBpuP,KAAKshB,UAAgB,GACrBthB,KAAKuhB,QAAgB,IAErBvhB,KAAK2H,QAAgB,EAErB3H,KAAK6yD,UAAgBA,GACrB7yD,KAAKgxG,UAAgB,EACrBhxG,KAAKo8J,UAAgB,EACrBp8J,KAAK+7J,YAAgB,EACrB/7J,KAAK27J,WAAgB,IAErB37J,KAAKquP,OAAeviG,GACpB9rJ,KAAKsuP,MAAexiG,GACpB9rJ,KAAKuuP,YAAeziG,GACpB9rJ,KAAKwuP,YAAe,CAAC,EAAE,GAGzB,IAAIltP,GAAQqzS,WAAW92S,UAgZvB,SAAS6wP,iBAAiB3pP,GAAI6B,IAC5B,IAAI3B,GAASC,GAAaH,GACxB6B,GAAQ6tL,WAAW3uJ,OACnBl/B,GAAQ6tL,WAAWjiC,SACnB,KACA5rJ,GAAQ6tL,WAAWtvL,YAOrB,OAJAF,GAAOE,WAAWC,SAASC,SAAW,EACtCJ,GAAOE,WAAWM,MAAMJ,SAAc,EACtCJ,GAAOE,WAAWwpP,GAAGtpP,SAAiB,EACtCJ,GAAOE,WAAW0vS,OAAOxvS,SAAa,EAC/BJ,GAIT,SAASU,iBAAiBZ,GAAI6B,IAC5B,IAAI3B,GAASC,GAAaH,GACxB6B,GAAQlB,WAAWogC,OACnBl/B,GAAQlB,WAAW8sJ,SACnB,KACA5rJ,GAAQlB,WAAWP,YAMrB,OAHAF,GAAOE,WAAWC,SAASC,SAAW,EACtCJ,GAAOE,WAAWgD,GAAG9C,SAAiB,EACtCJ,GAAOE,WAAW0vS,OAAOxvS,SAAa,EAC/BJ,GAzaT3D,GAAM0G,SAAW,WACf,OAAOhI,KAAK2H,SAAW,GAGzBrG,GAAMyG,cAAgB,WACpB,OAAO/H,KAAK2H,QAAU,GAGxBrG,GAAM2G,UAAY,EAElB3G,GAAM4G,YAAc,SAASC,IAC3BnI,KAAKyH,OAASU,IA+BhB7G,GAAMmF,OAAS,SAAS6iG,IACtBA,GAASA,IAAU,GACnB,IAAIvkG,GAAK/E,KAAK+E,GAEd/E,KAAK6H,OAAQ,EAEV,kBAAmByhG,KACpBtpG,KAAK6nP,cAAgBv+I,GAAOu+I,eAE3B,YAAav+I,KACdtpG,KAAK2H,QAAU2hG,GAAO3hG,SAErB,YAAa2hG,KACdtpG,KAAKkuP,aAAgB5kJ,GAAOnoF,SAE3B,YAAamoF,KACdtpG,KAAKmuP,aAAe7kJ,GAAOloF,SAE1B,aAAckoF,KACftpG,KAAKouP,cAAgB9kJ,GAAOjoF,UAE3B,cAAeioF,KAChBtpG,KAAKshB,UAAYgoF,GAAOhoF,WAEvB,YAAagoF,KACdtpG,KAAKuhB,QAAU+nF,GAAO/nF,cAIC3C,IAArB0qF,GAAO0H,YACThxG,KAAKgxG,UAAY1H,GAAO0H,gBAICpyF,IAAvB0qF,GAAOyyD,cACT/7J,KAAK+7J,YAAczyD,GAAOyyD,kBAEHn9I,IAArB0qF,GAAO8yD,YACTp8J,KAAKo8J,UAAY9yD,GAAO8yD,gBAEAx9I,IAAtB0qF,GAAOqyD,aACT37J,KAAK27J,WAAaryD,GAAOqyD,YAGvBryD,GAAOwB,WACT9qG,KAAKmG,QAAQq3B,MAAQ,CAAC,IAAI,KAC1Bx9B,KAAKmG,QAAQyxH,UAAY7yH,GAAG2vH,qBAC5B10H,KAAKmG,QAAQ0xH,UAAY9yH,GAAGsvH,OAC5Br0H,KAAKmG,QAAQkE,UA5EjB,SAASglP,YAAYp0G,IAQnB,IAPA,IAAI3xI,GAASwhG,GAAS,CAClBA,SAAUmwC,GACVq0G,QAAU,IACV/vJ,OAAS,SAGTr4F,GAAS,IAAIuI,WAAW,MACpBzT,GAAE,EAAGA,GAAE,MAAOA,GAAG,CAEvB,IADA,IAAII,GAAIkN,GAAOtN,IACPmD,GAAE,EAAGA,GAAE,IAAKA,GAClB+H,GAAO,EAAElL,GAAEmD,IAAK/C,GAAE+C,IAEpB+H,GAAO,EAAElL,GAAE,GAAU,IAALI,GAAE,GAGpB,OAAO6J,GAAQiB,GAAQ,CAAC,IAAI,IAAI,GAAI,CAAC,EAAE,EAAE,IA4DhBmoP,CAAY/lJ,GAAOwB,WAC1C9qG,KAAKmG,QAAQqyH,kBAGf,IAAIl1H,GAAQgmG,GAAOhmG,MACf+F,GAAYigG,GAAOjgG,UACnBiiG,GAAUhC,GAAOgC,QAErB,GAAIjiG,IAAc/F,IAAUgoG,GAA5B,CAIA,IAAIikJ,GAAO,GACPulD,GAAO,GACPtlD,GAAO,GACPE,GAAO,GACPC,GAAO,GAGX3vP,KAAKsD,MAAYA,GACjBtD,KAAKqJ,UAAYA,GACjBrJ,KAAKsrG,QAAYA,GAGjB,IAAIq9I,GAAkBr/I,GAAOq/I,WAAa,CAAC,EAAE,EAAE,EAAE,GAG7Cx8I,GAAkB7C,GAAO6C,gBAEzBskJ,GAAkBlpP,IAClBmpP,IAAmBnpP,IAEvB,GAAG4kG,GACD,GAAG7C,GAAOoyD,sBACR+0F,IAAennJ,GAAOoyD,sBAAsB,GAC5Cg1F,IAAepnJ,GAAOoyD,sBAAsB,QAE5C,IAAI,IAAI1/J,GAAE,EAAGA,GAAEmwG,GAAgB9tG,SAAUrC,GAAG,CAC1C,IAAIooC,GAAI+nE,GAAgBnwG,IACxBy0P,GAAcvuP,KAAKoC,IAAImsP,GAAarsN,IACpCssN,GAAcxuP,KAAKqC,IAAImsP,GAAatsN,SAIxC,IAAQpoC,GAAE,EAAGA,GAAEqN,GAAUhL,SAAUrC,GAAG,CAChCooC,GAAI/6B,GAAUrN,IAAG,GACrBy0P,GAAcvuP,KAAKoC,IAAImsP,GAAarsN,IACpCssN,GAAcxuP,KAAKqC,IAAImsP,GAAatsN,IAKtCpkC,KAAKu8J,UADJpwD,IA5GL,SAAS2kJ,eAAepsN,IAGtB,IAFA,IAAIlnC,GAAIknC,GAAMrmC,OACV6I,GAAS,IAAItI,MAAMpB,IACfxB,GAAE,EAAGA,GAAEwB,KAAKxB,GAClBkL,GAAOlL,IAAK0oC,GAAM1oC,IAAG,GAEvB,OAAOkL,GAyGY4pP,CAAeznP,IAIlCrJ,KAAKiH,OAAe,CAAC,CAACM,IAASA,IAASA,KAAW,EAAEA,KAAUA,KAAUA,MACzE,IAAQvL,GAAE,EAAGA,GAAEqN,GAAUhL,SAAUrC,GAEjC,IADA,IAAI+B,GAAIsL,GAAUrN,IACVmD,GAAE,EAAGA,GAAE,IAAKA,IACfyK,MAAM7L,GAAEoB,MAAQ0K,SAAS9L,GAAEoB,OAG9Ba,KAAKiH,OAAO,GAAG9H,IAAK+C,KAAKoC,IAAItE,KAAKiH,OAAO,GAAG9H,IAAIpB,GAAEoB,KAClDa,KAAKiH,OAAO,GAAG9H,IAAK+C,KAAKqC,IAAIvE,KAAKiH,OAAO,GAAG9H,IAAIpB,GAAEoB,MAKtD,IAAI2uP,GAAgB,EAEtBtkP,EACE,IAAQxN,GAAE,EAAGA,GAAEsH,GAAMjF,SAAUrC,GAAG,CAChC,IAAIoD,GAAOkE,GAAMtH,IACjB,OAAOoD,GAAKf,QACV,KAAK,EAEH,IAAQc,GAAE,EAAGA,GAAE,IAAKA,GAClB,CACIpB,GAAIsL,GADJ9J,GAAIH,GAAKD,KAEb,IAFA,IAEQK,GAAE,EAAGA,GAAE,IAAKA,GAClB,GAAGoK,MAAM7L,GAAEyB,OAAQqK,SAAS9L,GAAEyB,KAC5B,SAASgK,EAKf,IAAQrK,GAAE,EAAGA,GAAE,IAAKA,GAAG,CACrB,IAAII,GAEAxB,GAAIsL,GAFJ9J,GAAIH,GAAK,EAAID,KAGjBowP,GAAKtuP,KAAKlD,GAAE,GAAIA,GAAE,GAAIA,GAAE,GAAIA,GAAE,IAE9B,IAAI+b,GAAIwxF,GAAQ/rG,IAChBu1S,GAAK7zS,KAAK6Y,GAAE,GAAIA,GAAE,GAAIA,GAAE,GAAIA,GAAE,IAAM,GAEpC,IAOI60O,GAPAvyP,GAAIusP,GACQ,IAAbvsP,GAAEiC,OACHmxP,GAAKvuP,KAAK7E,GAAE,GAAIA,GAAE,GAAIA,GAAE,GAAI,GAE5BozP,GAAKvuP,KAAK7E,GAAE,GAAIA,GAAE,GAAIA,GAAE,GAAIA,GAAE,IAK9BuyP,GADCxiJ,GACI,EACFA,GAAgB5sG,IAAKkxP,KACrBC,GAAcD,IAAc,GAE1B,EACF1yP,GAAE,GAAK0yP,KACPC,GAAcD,IAAc,GAEjCf,GAAKzuP,KAAK0tP,GAAG,GAAIA,GAAG,IAEpBgB,GAAK1uP,KAAKjF,IAEZ8xP,IAAiB,GAQvB9tP,KAAK8tP,cAAiBA,GAEtB9tP,KAAK2sP,kBAAkBlmP,OAAO8oP,IAC9BvvP,KAAK40S,gBAAgBnuS,OAAOquS,IAC5B90S,KAAK6sP,eAAepmP,OAAO+oP,IAC3BxvP,KAAK8sP,YAAYrmP,OAAOipP,IACxB1vP,KAAK4sP,YAAYnmP,OAAO,IAAIuqP,YAAYrB,OAG1CruP,GAAM8G,gBAAkB9G,GAAM+G,KAAO,SAASihG,IAC5CA,GAASA,IAAU,GAOnB,IANA,IAAIvkG,GAAc/E,KAAK+E,GACnByD,GAAc8gG,GAAO9gG,OAAcsjJ,GACnCrjJ,GAAc6gG,GAAO7gG,MAAcqjJ,GACnCpjJ,GAAc4gG,GAAO5gG,YAAcojJ,GAEnCxkJ,GAAa,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,MACpCtL,GAAE,EAAGA,GAAE,IAAKA,GAClBsL,GAAW,GAAGtL,IAAKkG,KAAKqC,IAAI+C,GAAW,GAAGtL,IAAIgE,KAAKsH,WAAW,GAAGtL,KACjEsL,GAAW,GAAGtL,IAAKkG,KAAKoC,IAAIgD,GAAW,GAAGtL,IAAIgE,KAAKsH,WAAW,GAAGtL,KAGnE,IAAIuM,GAAW,CACbC,MAAYA,GACZC,KAAYA,GACZC,WAAYA,GACZuoP,aAAcnlG,GAASttJ,QAEvB8I,WAAYA,GAEZ4pP,SAAYlxP,KAAKkuP,aACjBiD,SAAYnxP,KAAKmuP,aACjBiD,UAAYpxP,KAAKouP,cACjB9sO,UAAYthB,KAAKshB,UACjBC,QAAYvhB,KAAKuhB,QAEjB8vO,YAAe,CAAC,EAAE,EAAE,GACpBxJ,cAAe,CAAC,EAAE,EAAE,GAEpBlgP,QAAU3H,KAAK2H,QAEfqpG,UAAWhxG,KAAKgxG,UAEhB+qD,YAAa/7J,KAAK+7J,YAClBK,UAAWp8J,KAAKo8J,UAChBT,WAAY37J,KAAK27J,WAEjBx1J,QAAY,GAGdoC,GAAS0oP,aAAex1O,GAAOlT,GAAS0oP,aAAc1oP,GAASC,OAE/DzD,GAAG83B,QAAQ93B,GAAG69B,WAEd5iC,KAAKmG,QAAQ5I,KAAK,GAElB,IAAI+zP,GAAkB,IAAI1yP,MAAM,IAChC8kG,GAAS4tJ,GAAiB/oP,GAASE,KAAMF,GAASC,OAClDk7F,GAAS4tJ,GAAiB/oP,GAASG,WAAY4oP,IAC/C71O,GAAO61O,GAAiBA,IAExB,IAAQt1P,GAAE,EAAGA,GAAE,IAAKA,GAClBuM,GAAS8oP,YAAYr1P,IAAKs1P,GAAgB,GAAGt1P,IAAKs1P,GAAgB,IAGpE,IAAIx3O,GAAIw3O,GAAgB,IACxB,IAAQt1P,GAAE,EAAGA,GAAE,IAAKA,GAClB8d,IAAK9Z,KAAK6nP,cAAc7rP,IAAKs1P,GAAgB,EAAEt1P,GAAE,GAEnD,IAAQA,GAAE,EAAGA,GAAE,IAAKA,GAAG,CAErB,IADA,IAAIgC,GAAIszP,GAAgB,GAAGt1P,IACnBmD,GAAE,EAAGA,GAAE,IAAKA,GAClBnB,IAAKszP,GAAgB,EAAEnyP,GAAEnD,IAAKgE,KAAK6nP,cAAc1oP,IAEnDoJ,GAASs/O,cAAc7rP,IAAKgC,GAAI8b,GAGlC,GAAG9Z,KAAK8tP,cAAgB,EAAG,CACzB,IAAI7oP,GAASjF,KAAKysP,UAClBxnP,GAAO1H,OACP0H,GAAOsD,SAAWA,GAElBvI,KAAKgtP,YAAYzvP,OACjBwH,GAAGi9H,WAAWj9H,GAAGq9K,UAAW,EAAsB,EAAnBpiL,KAAK8tP,eACpC9tP,KAAKgtP,YAAYhkP,WAIrB1H,GAAM2H,SAAW,SAASqgG,IACxBA,GAASA,IAAU,GASnB,IAPA,IAAIvkG,GAAa/E,KAAK+E,GAElByD,GAAa8gG,GAAO9gG,OAAcsjJ,GAClCrjJ,GAAa6gG,GAAO7gG,MAAcqjJ,GAClCpjJ,GAAa4gG,GAAO5gG,YAAcojJ,GAElCxkJ,GAAa,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,MACpCtL,GAAE,EAAGA,GAAE,IAAKA,GAClBsL,GAAW,GAAGtL,IAAKkG,KAAKqC,IAAI+C,GAAW,GAAGtL,IAAIgE,KAAKsH,WAAW,GAAGtL,KACjEsL,GAAW,GAAGtL,IAAKkG,KAAKoC,IAAIgD,GAAW,GAAGtL,IAAIgE,KAAKsH,WAAW,GAAGtL,KAInEgE,KAAKquP,OAAc,GAAG7vP,MAAMtC,KAAKsM,IACjCxI,KAAKsuP,MAAc,GAAG9vP,MAAMtC,KAAKuM,IACjCzI,KAAKuuP,YAAc,GAAG/vP,MAAMtC,KAAKwM,IACjC1I,KAAKwuP,YAAc,CAACzpP,GAAG8D,mBAAoB9D,GAAG+D,qBAE9C,IAAIP,GAAW,CACbC,MAAYA,GACZC,KAAYA,GACZC,WAAYA,GACZpB,WAAYA,GAEZ0pG,UAAWhxG,KAAKgxG,UAChB+qD,YAAa/7J,KAAK+7J,YAClBK,UAAWp8J,KAAKo8J,UAChBT,WAAY37J,KAAK27J,WAEjBl0J,OAAYzH,KAAKyH,OAAS,KAGxBxC,GAASjF,KAAK0F,WAClBT,GAAO1H,OACP0H,GAAOsD,SAAWA,GAEfvI,KAAK8tP,cAAgB,IACtB9tP,KAAKgtP,YAAYzvP,OACjBwH,GAAGi9H,WAAWj9H,GAAGq9K,UAAW,EAAsB,EAAnBpiL,KAAK8tP,eACpC9tP,KAAKgtP,YAAYhkP,WAKrB1H,GAAMiJ,KAAO,SAASgnP,IACpB,IAAIA,GACF,OAAO,KAET,GAAGA,GAASppP,KAAOnI,KAAKyH,OACtB,OAAO,KAGT,IAAI+pP,GAAYD,GAASv0P,MAAM,GAAK,IAAIu0P,GAASv0P,MAAM,GAAK,MAAMu0P,GAASv0P,MAAM,GAC7EoC,GAAYY,KAAKsD,MAAMkuP,IACvBtiN,GAAUlvC,KAAKqJ,UAAUjK,GAAK,IAAIZ,MAAM,EAAG,GAE3C0I,GAAS,CACX9B,SAAU8pC,GACV7nC,eAAgB6nC,GAChB/uC,MAAO+B,KAAKyN,MAAMvQ,GAAK,GAAK,KAa9B,MATsB,SAAnBY,KAAK6yD,UACN3rD,GAAO/G,MAAQ+B,KAAKyN,MAAMvQ,GAAK,GAAK,IACT,eAAnBY,KAAK6yD,YACb3rD,GAAOq1J,UAAYv8J,KAAKu8J,UAAUn9J,GAAK,IACvC8H,GAAO6tS,SAAW/0S,KAAKsrG,QAAQlsG,GAAK,IAAIZ,MAAM,EAAG,GACjD0I,GAAO4+E,WAAa9lF,KAAKsrG,QAAQlsG,GAAK,IAAI,GAC1C8H,GAAO/G,MAAQqxP,IAGVtqP,IAIT5F,GAAMgJ,QAAU,WACdtK,KAAKmG,QAAQmE,UAEbtK,KAAKysP,UAAUniP,UACftK,KAAK0F,WAAW4E,UAEhBtK,KAAKgtP,YAAY1iP,UACjBtK,KAAK2sP,kBAAkBriP,UACvBtK,KAAK40S,gBAAgBtqS,UACrBtK,KAAK6sP,eAAeviP,UACpBtK,KAAK8sP,YAAYxiP,UACjBtK,KAAK4sP,YAAYtiP,WAkGnB7O,GAAOC,QAhEP,SAASs5S,iBAAiBjwS,GAAIukG,GAAQv9E,IACpC,IAAInlB,GAAUmlB,GAAKnlB,QAEM,IAArBwQ,UAAU/Y,SAEZ0G,IADAukG,GAASvkG,IACGA,IAId,IAAI0nP,GAAkBiC,iBAAiB3pP,GAAI6B,IACvClB,GAAkBC,iBAAiBZ,GAAI6B,IACvCirP,GAAoBzrP,GAAcrB,GACpCkB,GAAQ,IAAIwJ,WAAW,CAAC,IAAI,IAAI,IAAI,MAAO,CAAC,EAAE,EAAE,KAClDoiP,GAAYr5H,iBACZq5H,GAAYj6H,UAAY7yH,GAAG2vH,qBAC3Bm9H,GAAYh6H,UAAY9yH,GAAGsvH,OAE3B,IAAIs4H,GAAoB9mP,GAAad,IACjC6vS,GAAoB/uS,GAAad,IACjC8nP,GAAoBhnP,GAAad,IACjC+nP,GAAoBjnP,GAAad,IACjC6nP,GAAoB/mP,GAAad,IACjCioP,GAAoBjnP,GAAUhB,GAAI,CACpC,CAAEa,OAAQ+mP,GACRr9O,KAAMvK,GAAGkyH,MACTl3G,KAAM,GAER,CAAEna,OAAQgnP,GACRt9O,KAAMvK,GAAG8uH,cACT9zG,KAAM,EACN+tK,YAAY,GAEd,CAAEloL,OAAQinP,GACRv9O,KAAMvK,GAAGkyH,MACTl3G,KAAM,GAER,CAAEna,OAAQknP,GACRx9O,KAAMvK,GAAGkyH,MACTl3G,KAAM,GAER,CAAEna,OAAQgvS,GACRtlS,KAAMvK,GAAGkyH,MACTl3G,KAAM,KAINinO,GAAO,IAAI2tD,WAAW5vS,GACtB8sP,GACApF,GACA/mP,GACAinP,GACAioD,GACAhoD,GACAC,GACAC,GACAE,GACAjhO,GAAK8mC,WAAa,QAKtB,OAFAm0L,GAAKvgP,OAAO6iG,IAEL09I,KAQH,OACA,SAAUvrP,GAAQC,GAASI,IAEjC,aAWA,IAAIojB,GAAkBpjB,GAAoB,QACtCqjB,GAAqBrjB,GAAoB,QAAQqjB,mBACjD81R,GAAen5S,GAAoB,QACnCsjB,GAAYtjB,GAAoB,QAEhCujB,GAAavjB,GAAoB,QAAQujB,WAE7C5jB,GAAOC,QAAU2jB,GAAW,CACxB3U,EAAG,CACCgV,QAAS,aACTG,SAAU,uBAGdjO,EAAG,CACC8N,QAAS,aACTG,SAAU,uBAGdzU,EAAG,CACCsU,QAAS,aACTG,SAAU,uBAId7jB,EAAG,CACC0jB,QAAS,aACTG,SAAU,QAGd1gB,EAAG,CACCugB,QAAS,aACTG,SAAU,QAIdrgB,EAAG,CACCkgB,QAAS,aACTG,SAAU,QAKdrU,KAAM,CACFkU,QAAS,SAETC,KAAM,GACNY,SAAS,EACTV,SAAU,QAGdW,UAAW,CACPd,QAAS,SAETC,KAAM,GACNY,SAAS,EACTV,SAAU,QAGdY,cAAetB,GAAmB,CAACU,SAAU,SAE7C+nO,aAAc,CACVloO,QAAS,aAETsV,OAAQ,CAAE,IAAK,IAAK,KACpBrV,KAAM,IACNE,SAAU,QAId6nO,UAAW,CACPhoO,QAAS,SAETC,MAAO,EACPE,SAAU,QAId08I,UAAW,CACP78I,QAAS,aACTG,SAAU,QAGdyoO,cAAe,CACX5oO,QAAS,aACTsV,OAAQ,CAAC,SAAU,QACnBrV,KAAM,SACNE,SAAU,QAMdpa,MAAO,CACHia,QAAS,QAETG,SAAU,QAGd0oO,YAAa,CACT7oO,QAAS,aAETG,SAAU,QAGd4oO,UAAW,CACP/oO,QAAS,aAETG,SAAU,QAGdiC,gBAAYlD,GAGhBM,GAAgB,GAAI,CAChByB,UAAW,cACXC,eAAe,EACfE,iBAAkB,SAClB,CACAnZ,QAASstS,GAAattS,QAGtBi+O,YAAa,CACTlmO,QAAS,UAETC,MAAM,EACNE,SAAU,QAIdgmO,QAAS,CACLpmO,KAAMJ,GAAW,GAAI41R,GAAal0R,SAASrW,EAAE+U,KAAM,IAGnDha,MAAOwvS,GAAal0R,SAASrW,EAAEjF,MAC/B+X,MAAOy3R,GAAal0R,SAASrW,EAAE8S,MAC/BqC,SAAU,QAGdoB,cAAe,CACXvW,EAAG2U,GAAW,GAAI41R,GAAah0R,cAAcvW,EAAG,CAACiV,KAAM,MACvD/N,EAAGyN,GAAW,GAAI41R,GAAah0R,cAAcrP,EAAG,CAAC+N,KAAM,MACvDvU,EAAGiU,GAAW,GAAI41R,GAAah0R,cAAc7V,EAAG,CAACuU,KAAM,IACvDE,SAAU,QAEdqB,SAAU7B,GAAW,CACjB0oO,qBAAsB,CAClBroO,QAAS,SAETpb,IAAK,EACLC,IAAK,EACLob,KAAM,MACNE,SAAU,QAGdooO,mBAAoB,CAChBvoO,QAAS,SAETpb,IAAK,EACLC,IAAK,EACLob,KAAM,KACNE,SAAU,QAGdA,SAAU,QACXo1R,GAAa/zR,UAEhBU,UAAWvC,GAAW,GAAID,GAAUwC,UAAW,CAAC/B,SAAU,SAC1DgC,WAAYxC,GAAW,GAAID,GAAUyC,WAAY,CAAClC,MAAM,OAMtD,OACA,SAAUlkB,GAAQC,GAASI,IAEjC,aAWA,IAAI2oR,GAAQ3oR,GAAoB,QAEhCJ,GAAQY,KAAO,MAEfZ,GAAQsT,KAAO,SAASlE,GAAIwkD,GAAQ75B,GAAgBC,IAChD+uP,GAAMC,aAAahpR,GAAQY,KAAMwO,GAAIwkD,GAAQ75B,GAAgBC,KAGjEh6B,GAAQ26D,MAAQ,SAASC,GAAaC,GAAeC,GAAaC,IAC9DguN,GAAME,cAAcjpR,GAAQY,KAAMg6D,GAAaC,GAAeC,GAAaC,MAMzE,OACA,SAAUh7D,GAAQC,GAASI,IAEjC,aAWA,IAAIo5S,GAAgB,CAAC,cAAe,YAAa,aAEjDz5S,GAAOC,QAAU,SAASqqF,oBAAoBpxB,GAASC,GAAU5V,GAAQlQ,IACrE,IAAIqmQ,GAAYn2P,GAAOk7K,kBAEnBK,GAAazrL,GAAO,cACxB,GAAGyrL,GAAY,CAEX,IAAI17M,GAAU+1C,GAAS3xC,MAAQ2xC,GAAS1xC,MACpC+2M,GAAmBk7E,GAAUt2R,IAC7Bo7M,KAAkBA,GAAmBk7E,GAAUt2R,IAAW,IAE9D,IAAIw7M,GAAYJ,GAAiBM,IAC7B66E,IAAa,EACd/6E,GACCA,GAAU/qK,OAAOruD,KAAK2zD,KAEtBylK,GAAYJ,GAAiBM,IAAc,CAIvCp2G,aAAc,GAQd70D,OAAQ,CAACsF,KAEbwgP,IAAa,GAUjB,IAJA,IAAIn4J,GAAQ,CACR94I,YAAcywD,GAASlqD,IAAMkqD,GAAShjD,EAAK,IAAM,KAG7C5V,GAAI,EAAGA,GAAIk5S,GAAc72S,OAAQrC,KAAK,CAC1C,IAAIooB,GAAO8wR,GAAcl5S,IACrBq5S,GAAYjxR,GAAO,QACvB,IAAIi2M,GAAUg7E,IAAY,CACtB,IAAIC,QAAiC12R,IAAlB+1C,GAAQvwC,IACvBmxR,GAAyB,gBAATnxR,GACpB,IAAGkxR,IAAgBF,MACf/6E,GAAUj2M,IAAQ0qB,GAAO1qB,GAAM64H,GAAM74H,KAElCmxR,KACCl7E,GAAU3zI,SAA+B,MAApB2zI,GAAUj2M,IAC3B,UAAY,WAGjBkxR,KAGCj7E,GAAUg7E,KAAa,GAenBD,YACO/6E,GAAU/qK,OAAO,GAAGlrC,IAGxBmxR,MACC,IAAI,IAAIp2S,GAAI,EAAGA,GAAIk7N,GAAU/qK,OAAOjxD,OAAS,EAAGc,KAAK,CACjD,IAAIq2S,GAASn7E,GAAU/qK,OAAOnwD,IAC3Bq2S,GAAOzqQ,OAAO/8B,OAASwnS,GAAOxnS,OAC7BwnS,GAAOxnS,KAAOqsN,GAAU3zI,YASxD,OAAO2zI,MAOT,OACA,SAAU5+N,GAAQC,GAASI,IAEjC,aAWA,IAAIs9E,GAAat9E,GAAoB,QAEjC25S,GAAc35S,GAAoB,QAClCiuE,GAAcjuE,GAAoB,QAClC6sL,GAAU7sL,GAAoB,QAKlCL,GAAOC,QAAU,SAASmP,KAAKC,GAAIC,IAC/B,IAAIsR,GAAKo5R,GAAY3qS,GAAIC,IAErB2qS,GAAOr5R,GAAG,GAAGjR,EACjB2+D,GAAYh/D,GAAO2qS,IAEnB,IAEIC,GAFA50R,GAAWhW,GAAMgW,SACjB44G,GAAQvgD,GAAWG,YAAYxuE,IAGnC,GAAyB,YAAtBgW,GAASqrB,UAA0ButF,GAAMrd,OAA8B,IAAtBvxG,GAAM41K,YAAuB,CAC7E,IAAI/gK,GAAQmB,GAASnB,MACjBE,GAAM6oK,GAAQ5nK,IACdgoK,GAAKhoK,GAAShB,MAAQ,EACtBxc,GAAKrB,KAAKyN,OAAOmQ,GAAMF,IAASmpK,IAAM,EAEtCl/K,SAASk/K,MACTA,GAAK,EACLxlL,GAAK,GAGT,IAAIqyS,GAAOh2R,GAAQmpK,GAAK,EAExB4sH,GAAQ,CAACC,GADEA,GAAOryS,GAAKwlL,SAGvB4sH,GAAQD,GAKZ,OAFAt8N,GAAWvuE,KAAKC,GAAIC,GAAO,CAACE,KAAM0qS,GAAOxqS,QAAS,MAE3CkR,KAML,OACA,SAAU5gB,GAAQC,GAASI,IAEjC,aAsBAJ,GAAQm6S,aAAe,SAASA,aAAa9pR,IACzC,MACmB,SAAjBA,GAAK6wE,SACa,SAAjB7wE,GAAK6wE,SAAsB7wE,GAAKrhB,GAAK,EAAI,GAIhDhP,GAAQ4kO,eAAiB,SAASA,eAAev0M,IAC7C,MACqB,WAAjBA,GAAK6wE,SACa,SAAjB7wE,GAAK6wE,SAAsB7wE,GAAKrhB,EAAI,EAAI,GAAKqhB,GAAKrhB,EAAI,EAAI,GAInEhP,GAAQ2kO,cAAgB,SAASA,cAAct0M,IAC3C,MACmB,UAAjBA,GAAK6wE,SACa,SAAjB7wE,GAAK6wE,SAAsB7wE,GAAKrhB,GAAK,EAAI,GAIhDhP,GAAQo6S,YAAc,SAASA,YAAY/pR,IACvC,MACqB,QAAjBA,GAAK8wE,SACa,SAAjB9wE,GAAK8wE,SAAsB9wE,GAAKna,GAAK,EAAI,GAIlDlW,GAAQ+kO,eAAiB,SAASA,eAAe10M,IAC7C,MACqB,WAAjBA,GAAK8wE,SACa,SAAjB9wE,GAAK8wE,SAAsB9wE,GAAKna,EAAI,EAAI,GAAKma,GAAKna,EAAI,EAAI,GAInElW,GAAQ8kO,eAAiB,SAASA,eAAez0M,IAC7C,MACmB,WAAjBA,GAAK8wE,SACa,SAAjB9wE,GAAK8wE,SAAsB9wE,GAAKna,GAAK,EAAI,IAO1C,OACA,SAAUnW,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAU,CACbq6S,eAAgB,CAAC,IAAK,KAAM,IAAK,KAAM,IAAK,MAC5CxnN,gBAAiB,CAAC,IAAK,IAAK,KAAM,IAAK,MACvCC,aAAc,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACzDC,QAAS,CAAC,KAAM,MAChBunN,qBAAsB,CAElB,IAAK,IAEL,IAAK,IACL,KAAM,IAEN,IAAK,IACL,KAAM,IAEN,KAAM,KACN,KAAM,KACN,KAAM,KACN,KAAM,KAEN,KAAM,KACN,KAAM,KACN,KAAM,KACN,KAAM,QAOR,OACA,SAAUv6S,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAUI,GAAoB,SAK/B,OACA,SAAUL,GAAQC,GAASI,IAEjC,IAAI+gB,GAAa/gB,GAAoB,QAErCL,GAAOC,QAAU,SAASu6S,gBAAiBlyS,IACzC,OAAO8Y,GAAW,QAAS9Y,MAMvB,OACA,SAAUtI,GAAQC,GAASI,KAEL,SAAS62F,KACrC,WACE,IAAIujN,GAAgBC,GAAQC,GAAUC,GAAgBC,GAAcC,GAExC,oBAAhBtvO,aAA+C,OAAhBA,aAAyBA,YAAYrwC,IAC9En7B,GAAOC,QAAU,WACf,OAAOurE,YAAYrwC,OAEZ,MAAQ+7D,IAAgDA,GAAQwjN,QACzE16S,GAAOC,QAAU,WACf,OAAQw6S,KAAmBI,IAAgB,KAE7CH,GAASxjN,GAAQwjN,OAMjBE,IALAH,GAAiB,WACf,IAAIM,GAEJ,OAAe,KADfA,GAAKL,MACK,GAAWK,GAAG,OAG1BD,GAA4B,IAAnB5jN,GAAQopI,SACjBu6E,GAAeD,GAAiBE,IACvBz9R,KAAK8d,KACdn7B,GAAOC,QAAU,WACf,OAAOod,KAAK8d,MAAQw/Q,IAEtBA,GAAWt9R,KAAK8d,QAEhBn7B,GAAOC,QAAU,WACf,OAAO,IAAIod,MAAO2mN,UAAY22E,IAEhCA,IAAW,IAAIt9R,MAAO2mN,aAGvBvjO,KAAK8D,QAIqB9D,KAAK8D,KAAMlE,GAAoB,UAItD,OACA,SAAUL,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAUI,GAAoB,SAK/B,OACA,SAAUL,GAAQC,GAASI,IAEjC,aAYA,IAAIwP,GAAYxP,GAAoB,QAGpCL,GAAOC,QAAU,CACbgqE,MAAO,SAASloE,GAAGxB,GAAG+jB,IAElB,OADAA,GAAKviB,MACE,GAGX8yD,IAAK,SAAS9yD,GAAGxB,GAAG+jB,GAAM81D,IACtB,IAAIt2E,GAAIs2E,GAAY75E,IACpB,OAAGsP,GAAU/L,KACTA,GAAI00C,OAAO10C,IACXwgB,GAAKviB,KAAM+B,GACJA,IAEJ,GAGXk3S,IAAK,SAASj5S,GAAGxB,GAAG+jB,GAAM81D,GAAaK,IACnC,IAAI32E,GAAIs2E,GAAY75E,IAMpB,OALGsP,GAAU/L,MACTA,GAAI00C,OAAO10C,IACXwgB,GAAKviB,KAAM+B,GACX22E,GAAO14E,OAEJ,GAGX8G,IAAK,SAAS9G,GAAGxB,GAAG+jB,GAAM81D,IACtB,IAAIt2E,GAAIs2E,GAAY75E,IACpB,GAAGsP,GAAU/L,IAAI,CAEb,GADAA,GAAI00C,OAAO10C,KACP+L,GAAUyU,GAAKviB,KAEf,OADAuiB,GAAKviB,IAAK+B,GACHA,GACJ,GAAGwgB,GAAKviB,IAAK+B,GAAG,CACnB,IAAIylC,GAAQzlC,GAAIwgB,GAAKviB,IAErB,OADAuiB,GAAKviB,IAAK+B,GACHylC,IAGf,OAAO,GAGXzgC,IAAK,SAAS/G,GAAGxB,GAAG+jB,GAAM81D,IACtB,IAAIt2E,GAAIs2E,GAAY75E,IACpB,GAAGsP,GAAU/L,IAAI,CAEb,GADAA,GAAI00C,OAAO10C,KACP+L,GAAUyU,GAAKviB,KAEf,OADAuiB,GAAKviB,IAAK+B,GACHA,GACJ,GAAGwgB,GAAKviB,IAAK+B,GAAG,CACnB,IAAIylC,GAAQzlC,GAAIwgB,GAAKviB,IAErB,OADAuiB,GAAKviB,IAAK+B,GACHylC,IAGf,OAAO,KAOT,OACA,SAAUvpC,IAEhBA,GAAOC,QAAU6/K,KAAKg1B,MAAM,yEAItB,OACA,SAAU90M,GAAQC,GAASI,IAEjC,aAWA,IAAI8O,GAAiB9O,GAAoB,QAEzCL,GAAOC,QAAU,SAASmP,KAAKC,GAAIC,IAC5BA,GAAMwxJ,WACL3xJ,GAAeE,GAAIC,GAAO,CACtBE,KAAMF,GAAMwxJ,UACZrxJ,aAAc,GACdC,QAAS,QAQf,OACA,SAAU1P,GAAQC,GAASI,IAEjC,aAGAL,GAAOC,QAyBP,SAAS+jH,kBAAkBn1C,GAAIyhC,GAAIxhC,GAAIo6B,IACrC,IAAIryE,GAAK7zB,GAAO6rE,GAAIC,GAAIo6B,IACpBhyE,GAAKl0B,GAAOstG,GAAIxhC,GAAIo6B,IACxB,GAAIryE,GAAK,GAAKK,GAAK,GAAOL,GAAK,GAAKK,GAAK,EACvC,OAAO,EAGT,IAAIJ,GAAK9zB,GAAO8rE,GAAID,GAAIyhC,IACpBn5E,GAAKn0B,GAAOkmG,GAAIr6B,GAAIyhC,IACxB,GAAIx5E,GAAK,GAAKK,GAAK,GAAOL,GAAK,GAAKK,GAAK,EACvC,OAAO,EAIT,GAAU,IAAPN,IAAmB,IAAPK,IAAmB,IAAPJ,IAAmB,IAAPK,GACrC,OApCJ,SAAS8jR,eAAepsO,GAAIyhC,GAAIxhC,GAAIo6B,IAElC,IAAI,IAAItoG,GAAE,EAAGA,GAAE,IAAKA,GAAG,CACrB,IAAIi2B,GAAKg4C,GAAGjuE,IACRs2B,GAAKo5E,GAAG1vG,IACRqkJ,GAAKx+I,KAAKoC,IAAIguB,GAAIK,IAClB+rN,GAAKx8O,KAAKqC,IAAI+tB,GAAIK,IAElBJ,GAAKg4C,GAAGluE,IACRu2B,GAAK+xE,GAAGtoG,IACRmkJ,GAAKt+I,KAAKoC,IAAIiuB,GAAIK,IAGtB,GAFS1wB,KAAKqC,IAAIguB,GAAIK,IAEd8tH,IAAMg+F,GAAKl+F,GACjB,OAAO,EAIX,OAAO,EAkBEk2J,CAAepsO,GAAIyhC,GAAIxhC,GAAIo6B,IAGpC,OAAO,GAzCT,IAAIlmG,GAAS3C,GAAoB,QAAQ,IA8CnC,OACA,SAAUL,GAAQC,GAASI,IAEjC,aAWA,IAAI66S,GAAY76S,GAAoB,QAChC28C,GAAMk+P,GAAUl+P,IAChB22E,GAAUunL,GAAUvnL,QAEpBrxF,GAAK77B,KAAK67B,GACV64Q,GAAQ,EAAI74Q,GAehB,SAASovO,aAAa0pC,IAClB,OAAO30S,KAAKsR,IAAIqjS,GAAM,GAAKA,GAAM,IAAMD,GAAQ,MAWnD,SAAS1vC,WAAW7mQ,GAAGC,IACnB,OAAO8uH,GAAQ9uH,GAAID,GAAGu2S,IAqB1B,SAASzvC,oBAAoB9mQ,GAAGw2S,IAC5B,GAAG1pC,aAAa0pC,IAAQ,OAAO,EAE/B,IAAI73N,GAAIC,GAEL43N,GAAM,GAAKA,GAAM,IAChB73N,GAAK63N,GAAM,GACX53N,GAAK43N,GAAM,KAEX73N,GAAK63N,GAAM,GACX53N,GAAK43N,GAAM,KAGf73N,GAAKvmC,GAAIumC,GAAI43N,MACb33N,GAAKxmC,GAAIwmC,GAAI23N,OACD33N,IAAM23N,IAElB,IAAItsO,GAAK7xB,GAAIp4C,GAAGu2S,IACZ7qM,GAAKzhC,GAAKssO,GAEd,OAAQtsO,IAAM0U,IAAM1U,IAAM2U,IAAQ8sB,IAAM/sB,IAAM+sB,IAAM9sB,GA6BxD,SAAS63N,MAAMn+P,GAAI8kD,GAAInzB,GAAIyhC,GAAIh8B,GAAIC,GAAI8xC,IACnC/xC,GAAKA,IAAM,EACXC,GAAKA,IAAM,EAEX,IACI+mO,GAAQC,GAAMC,GACdC,GAAQC,GAFRC,GAAWjqC,aAAa,CAAC7iM,GAAIyhC,KA2BjC,SAAS3vF,GAAGvf,GAAGwD,IACX,MAAO,CAACxD,GAAIqF,KAAK6oD,IAAI1qD,IAAK0vE,GAAIC,GAAKnzE,GAAIqF,KAAK8oD,IAAI3qD,KAxBjD+2S,IACCL,GAAS,EACTC,GAAOj5Q,GACPk5Q,GAAOL,IAEJtsO,GAAKyhC,IACJgrM,GAASzsO,GACT2sO,GAAOlrM,KAEPgrM,GAAShrM,GACTkrM,GAAO3sO,IAIZ3xB,GAAK8kD,IACJy5M,GAASv+P,GACTw+P,GAAO15M,KAEPy5M,GAASz5M,GACT05M,GAAOx+P,IAQX,IAKI56C,GALAs5S,GAAWn1S,KAAKsR,IAAIyjS,GAAOF,KAAWh5Q,GAAK,EAAI,EACnD,SAASiqF,IAAInrH,GAAGwD,GAAG6nH,IACf,MAAO,IAAM,CAACrrH,GAAGA,IAAK,IAAM,CAAC,EAAGw6S,GAAUnvL,IAAM,IAAM9rG,GAAGvf,GAAGwD,IA+BhE,OA1BG+2S,GAEKr5S,GADU,OAAXm5S,GACK,IAAM96R,GAAG+6R,GAAMJ,IACf/uL,IAAImvL,GAAMH,GAAM,GAChBhvL,IAAImvL,GAAMF,GAAM,GAAK,IAErB,IAAM76R,GAAG86R,GAAQH,IACjB/uL,IAAIkvL,GAAQF,GAAM,GAClBhvL,IAAIkvL,GAAQD,GAAM,GAFlB,KAGM76R,GAAG+6R,GAAMJ,IACf/uL,IAAImvL,GAAMH,GAAM,GAChBhvL,IAAImvL,GAAMF,GAAM,GAAK,IAGf,OAAXC,IACCn5S,GAAI,IAAMqe,GAAG+6R,GAAMJ,IAAU/uL,IAAImvL,GAAMF,GAAM,GAC1Cn1L,KAAU/jH,IAAK,UAElBA,GAAI,IAAMqe,GAAG86R,GAAQH,IACjB,IAAM36R,GAAG+6R,GAAMJ,IACf/uL,IAAImvL,GAAMF,GAAM,GAChB,IAAM76R,GAAG86R,GAAQD,IACjBjvL,IAAIkvL,GAAQH,GAAQ,GAAK,IAI9Bh5S,GA8CXtC,GAAOC,QAAU,CACbogD,QAnNJ,SAASA,QAAQ9uB,IAAO,OAAOA,GAAM,IAAM+Q,IAoNvCkkO,QAlNJ,SAASA,QAAQn3M,IAAO,OAAOA,GAAM/sB,GAAK,KAmNtCmpO,WAAYA,WACZjE,UAlLJ,SAASA,UAAU5iQ,GAAGC,IAClB,OAAO4B,KAAKsR,IAAI0zP,WAAW7mQ,GAAGC,MAkL9B6sQ,aAAcA,aACdhG,oBAAqBA,oBACrBqG,iBA1IJ,SAASA,iBAAiB3wQ,GAAGwD,GAAGi3S,GAAOT,IACnC,QAAI1vC,oBAAoB9mQ,GAAGw2S,MAIxBS,GAAM,GAAKA,GAAM,IAChB3+P,GAAK2+P,GAAM,GACX75M,GAAK65M,GAAM,KAEX3+P,GAAK2+P,GAAM,GACX75M,GAAK65M,GAAM,IAGRz6S,IAAK87C,IAAM97C,IAAK4gG,IAVvB,IAAI9kD,GAAI8kD,IAwIR+oK,QAzCJ,SAASA,QAAQ3pQ,GAAGytE,GAAIyhC,GAAIh8B,GAAIC,IAC5B,OAAO8mO,MAAM,KAAMj6S,GAAGytE,GAAIyhC,GAAIh8B,GAAIC,GAAI,IAyCtC44L,WA5BJ,SAASA,WAAW/rQ,GAAGytE,GAAIyhC,GAAIh8B,GAAIC,IAC/B,OAAO8mO,MAAM,KAAMj6S,GAAGytE,GAAIyhC,GAAIh8B,GAAIC,GAAI,IA4BtC08L,YAdJ,SAASA,YAAY/zN,GAAI8kD,GAAInzB,GAAIyhC,GAAIh8B,GAAIC,IACrC,OAAO8mO,MAAMn+P,GAAI8kD,GAAInzB,GAAIyhC,GAAIh8B,GAAIC,GAAI,MAmBnC,OACA,SAAUv0E,GAAQC,GAASI,IAEjC,IAAI0kK,GAAgCC,IAA+B,WACjE,IAAIp1J,GAAK,CACPw4J,QAAS,UAEP0zI,GAAgB,GAAG/4S,MAAOg5S,SAAW,SAASv4S,IAChD,OAAOs4S,GAAcr7S,KAAK+C,KAExBw4S,GAAcz3S,KAAK2c,SACvB,SAAS+6R,mBAAmB7zR,IAC1B,OAAOA,KAASA,GAAKmnL,eAAiBnnL,GAAKlH,UAAYkH,IAAMqnL,gBAE/D,SAASysG,UAAU9zR,IACjB,OAAOA,KAASA,GAAKmnL,eAAiBnnL,GAAKmnL,cAAc4sG,aAAe/zR,GAAKlH,UAAYkH,IAAQA,GAAK+zR,aAExG,GAAIH,GACF,IACED,SAASC,GAAYvsG,gBAAgB99E,YAAY,GAAGnkG,SACpD,MAAOrP,IACP49R,SAAW,SAASv4S,IAElB,IADA,IAAIjD,GAAIiD,GAAKZ,OAAQqmC,GAAQ,IAAI9lC,MAAM5C,IAChCA,MAAK0oC,GAAM1oC,IAAKiD,GAAKjD,IAC5B,OAAO0oC,IAOb,GAHK5rB,KAAK8d,MAAK9d,KAAK8d,IAAM,WACxB,OAAQ,IAAI9d,OAEV2+R,GACF,IACEA,GAAY76R,cAAc,OAAO3Q,MAAM4rS,YAAY,UAAW,EAAG,IACjE,MAAO59R,IACP,IAAI69R,GAAuB93S,KAAK+3S,QAAQl6S,UAAWm6S,GAA0BF,GAAqB/5M,aAAck6M,GAA4BH,GAAqBI,eAAgBC,GAAqBn4S,KAAKo4S,oBAAoBv6S,UAAWw6S,GAAuBF,GAAmBN,YACpRC,GAAqB/5M,aAAe,SAASzhG,GAAMU,IACjDg7S,GAAwB97S,KAAK8D,KAAM1D,GAAMU,GAAQ,KAEnD86S,GAAqBI,eAAiB,SAASI,GAAOnjS,GAAOnY,IAC3Di7S,GAA0B/7S,KAAK8D,KAAMs4S,GAAOnjS,GAAOnY,GAAQ,KAE7Dm7S,GAAmBN,YAAc,SAASv7S,GAAMU,GAAO8jD,IACrDu3P,GAAqBn8S,KAAK8D,KAAM1D,GAAMU,GAAQ,GAAI8jD,KAKxD,SAASy3P,aAAal4S,GAAGC,IACvB,OAAOD,GAAIC,IAAK,EAAID,GAAIC,GAAI,EAAID,IAAKC,GAAI,EAAI66D,IA8D/C,SAASq9O,UAAU9tS,IACjB,OAAa,OAANA,GAAaywD,KAAOzwD,GAE7B,SAAS+tS,WAAW/tS,IAClB,OAAQd,MAAMc,IA0DhB,SAASguS,YAAY1nS,IACnB,MAAO,CACLhB,KAAM,SAAS3P,GAAGqK,GAAG2I,GAAID,IAGvB,IAFIgE,UAAU/Y,OAAS,IAAGgV,GAAK,GAC3B+D,UAAU/Y,OAAS,IAAG+U,GAAK/S,GAAEhC,QAC1BgV,GAAKD,IAAI,CACd,IAAIk0F,GAAMj0F,GAAKD,KAAO,EAClBpC,GAAQ3Q,GAAEinG,IAAM58F,IAAK,EAAG2I,GAAKi0F,GAAM,EAAQl0F,GAAKk0F,GAEtD,OAAOj0F,IAETpD,MAAO,SAAS5P,GAAGqK,GAAG2I,GAAID,IAGxB,IAFIgE,UAAU/Y,OAAS,IAAGgV,GAAK,GAC3B+D,UAAU/Y,OAAS,IAAG+U,GAAK/S,GAAEhC,QAC1BgV,GAAKD,IAAI,CACd,IAAIk0F,GAAMj0F,GAAKD,KAAO,EAClBpC,GAAQ3Q,GAAEinG,IAAM58F,IAAK,EAAG0I,GAAKk0F,GAAUj0F,GAAKi0F,GAAM,EAExD,OAAOj0F,KAhJbhI,GAAG4uG,UAAYs+L,aAIfltS,GAAGstS,WAAa,SAASt4S,GAAGC,IAC1B,OAAOA,GAAID,IAAK,EAAIC,GAAID,GAAI,EAAIC,IAAKD,GAAI,EAAI86D,KAE/C9vD,GAAG/G,IAAM,SAASogC,GAAON,IACvB,IAA8B/jC,GAAGC,GAA7BtE,IAAK,EAAGwB,GAAIknC,GAAMrmC,OACtB,GAAyB,IAArB+Y,UAAU/Y,OAAc,CAC1B,OAASrC,GAAIwB,IAAG,GAAsB,OAAjB8C,GAAIokC,GAAM1oC,MAAesE,IAAKA,GAAG,CACpDD,GAAIC,GACJ,MAEF,OAAStE,GAAIwB,IAAyB,OAAjB8C,GAAIokC,GAAM1oC,MAAeqE,GAAIC,KAAGD,GAAIC,QACpD,CACL,OAAStE,GAAIwB,IAAG,GAAwC,OAAnC8C,GAAI8jC,GAAEloC,KAAKwoC,GAAOA,GAAM1oC,IAAIA,MAAesE,IAAKA,GAAG,CACtED,GAAIC,GACJ,MAEF,OAAStE,GAAIwB,IAA2C,OAAnC8C,GAAI8jC,GAAEloC,KAAKwoC,GAAOA,GAAM1oC,IAAIA,MAAeqE,GAAIC,KAAGD,GAAIC,IAE7E,OAAOD,IAETgL,GAAG9G,IAAM,SAASmgC,GAAON,IACvB,IAA8B/jC,GAAGC,GAA7BtE,IAAK,EAAGwB,GAAIknC,GAAMrmC,OACtB,GAAyB,IAArB+Y,UAAU/Y,OAAc,CAC1B,OAASrC,GAAIwB,IAAG,GAAsB,OAAjB8C,GAAIokC,GAAM1oC,MAAesE,IAAKA,GAAG,CACpDD,GAAIC,GACJ,MAEF,OAAStE,GAAIwB,IAAyB,OAAjB8C,GAAIokC,GAAM1oC,MAAesE,GAAID,KAAGA,GAAIC,QACpD,CACL,OAAStE,GAAIwB,IAAG,GAAwC,OAAnC8C,GAAI8jC,GAAEloC,KAAKwoC,GAAOA,GAAM1oC,IAAIA,MAAesE,IAAKA,GAAG,CACtED,GAAIC,GACJ,MAEF,OAAStE,GAAIwB,IAA2C,OAAnC8C,GAAI8jC,GAAEloC,KAAKwoC,GAAOA,GAAM1oC,IAAIA,MAAesE,GAAID,KAAGA,GAAIC,IAE7E,OAAOD,IAETgL,GAAGu4D,OAAS,SAASl/B,GAAON,IAC1B,IAA8B/jC,GAAGC,GAAGlE,GAAhCJ,IAAK,EAAGwB,GAAIknC,GAAMrmC,OACtB,GAAyB,IAArB+Y,UAAU/Y,OAAc,CAC1B,OAASrC,GAAIwB,IAAG,GAAsB,OAAjB8C,GAAIokC,GAAM1oC,MAAesE,IAAKA,GAAG,CACpDD,GAAIjE,GAAIkE,GACR,MAEF,OAAStE,GAAIwB,IAAyB,OAAjB8C,GAAIokC,GAAM1oC,OACzBqE,GAAIC,KAAGD,GAAIC,IACXlE,GAAIkE,KAAGlE,GAAIkE,SAEZ,CACL,OAAStE,GAAIwB,IAAG,GAAwC,OAAnC8C,GAAI8jC,GAAEloC,KAAKwoC,GAAOA,GAAM1oC,IAAIA,MAAesE,IAAKA,GAAG,CACtED,GAAIjE,GAAIkE,GACR,MAEF,OAAStE,GAAIwB,IAA2C,OAAnC8C,GAAI8jC,GAAEloC,KAAKwoC,GAAOA,GAAM1oC,IAAIA,OAC3CqE,GAAIC,KAAGD,GAAIC,IACXlE,GAAIkE,KAAGlE,GAAIkE,KAGnB,MAAO,CAAED,GAAGjE,KAQdiP,GAAGilD,IAAM,SAAS5rB,GAAON,IACvB,IAA6B/jC,GAAzBrC,GAAI,EAAGR,GAAIknC,GAAMrmC,OAAWrC,IAAK,EACrC,GAAyB,IAArBob,UAAU/Y,OACZ,OAASrC,GAAIwB,IAAOi7S,WAAWp4S,IAAKqkC,GAAM1oC,OAAKgC,IAAKqC,SAEpD,OAASrE,GAAIwB,IAAOi7S,WAAWp4S,IAAK+jC,GAAEloC,KAAKwoC,GAAOA,GAAM1oC,IAAIA,OAAKgC,IAAKqC,IAExE,OAAOrC,IAETqN,GAAG64H,KAAO,SAASx/F,GAAON,IACxB,IAA6B/jC,GAAzBrC,GAAI,EAAGR,GAAIknC,GAAMrmC,OAAWrC,IAAK,EAAGmD,GAAI3B,GAC5C,GAAyB,IAArB4Z,UAAU/Y,OACZ,OAASrC,GAAIwB,IAAOi7S,WAAWp4S,GAAIm4S,UAAU9zQ,GAAM1oC,MAAMgC,IAAKqC,KAAUlB,QAExE,OAASnD,GAAIwB,IAAOi7S,WAAWp4S,GAAIm4S,UAAUp0Q,GAAEloC,KAAKwoC,GAAOA,GAAM1oC,IAAIA,MAAMgC,IAAKqC,KAAUlB,GAE5F,GAAIA,GAAG,OAAOnB,GAAImB,IAEpBkM,GAAGutS,SAAW,SAAS5jR,GAAQj3B,IAC7B,IAAIyoR,IAAKxxP,GAAO32B,OAAS,GAAKN,GAAI,EAAGytD,GAAItpD,KAAKyN,MAAM62Q,IAAIjnR,IAAKy1B,GAAOw2B,GAAI,GAAI5xC,GAAI4sQ,GAAIh7N,GACpF,OAAO5xC,GAAIra,GAAIqa,IAAKob,GAAOw2B,IAAKjsD,IAAKA,IAEvC8L,GAAGk4H,OAAS,SAAS7+F,GAAON,IAC1B,IAAoC/jC,GAAhCw4S,GAAU,GAAIr7S,GAAIknC,GAAMrmC,OAAWrC,IAAK,EAC5C,GAAyB,IAArBob,UAAU/Y,OACZ,OAASrC,GAAIwB,IAAOi7S,WAAWp4S,GAAIm4S,UAAU9zQ,GAAM1oC,OAAM68S,GAAQ53S,KAAKZ,SAEtE,OAASrE,GAAIwB,IAAOi7S,WAAWp4S,GAAIm4S,UAAUp0Q,GAAEloC,KAAKwoC,GAAOA,GAAM1oC,IAAIA,OAAM68S,GAAQ53S,KAAKZ,IAE1F,GAAIw4S,GAAQx6S,OAAQ,OAAOgN,GAAGutS,SAASC,GAAQ11S,KAAKo1S,cAAe,KAErEltS,GAAGytS,SAAW,SAASp0Q,GAAON,IAC5B,IAA6B/jC,GAAGhE,GAA5BmB,GAAIknC,GAAMrmC,OAAQlC,GAAI,EAAS6B,GAAI,EAAGhC,IAAK,EAAGmD,GAAI,EACtD,GAAyB,IAArBiY,UAAU/Y,OACZ,OAASrC,GAAIwB,IACPi7S,WAAWp4S,GAAIm4S,UAAU9zQ,GAAM1oC,QAGjCgC,KAFA3B,GAAIgE,GAAIlE,KAEEkE,IADVlE,IAAKE,KAAM8C,WAKf,OAASnD,GAAIwB,IACPi7S,WAAWp4S,GAAIm4S,UAAUp0Q,GAAEloC,KAAKwoC,GAAOA,GAAM1oC,IAAIA,QAGnDgC,KAFA3B,GAAIgE,GAAIlE,KAEEkE,IADVlE,IAAKE,KAAM8C,MAKjB,GAAIA,GAAI,EAAG,OAAOnB,IAAKmB,GAAI,IAE7BkM,GAAGurP,UAAY,WACb,IAAIr3P,GAAI8L,GAAGytS,SAASp6S,MAAMsB,KAAMoX,WAChC,OAAO7X,GAAI2C,KAAK6E,KAAKxH,IAAKA,IAwB5B,IAAIw5S,GAAYL,YAAYH,cAuC5B,SAASS,mBAAmB38S,IAC1B,OAAOA,GAAEgC,OAvCXgN,GAAG4tS,WAAaF,GAAU/oS,KAC1B3E,GAAG6tS,OAAS7tS,GAAG8tS,YAAcJ,GAAU9oS,MACvC5E,GAAG+tS,SAAW,SAASh1Q,IACrB,OAAOs0Q,YAAyB,IAAbt0Q,GAAE/lC,OAAe,SAAShC,GAAGqO,IAC9C,OAAO6tS,aAAan0Q,GAAE/nC,IAAIqO,KACxB05B,KAEN/4B,GAAGguS,QAAU,SAAS30Q,GAAO2qG,GAAI19H,KAC1BxV,GAAIib,UAAU/Y,QAAU,IAC3BsT,GAAK+yB,GAAMrmC,OACPlC,GAAI,IAAGkzI,GAAK,IAGlB,IADA,IAAiBpyI,GAAGjB,GAAhBG,GAAIwV,GAAK09H,GACNlzI,IACLH,GAAIkG,KAAKF,SAAW7F,KAAM,EAC1Bc,GAAIynC,GAAMvoC,GAAIkzI,IAAK3qG,GAAMvoC,GAAIkzI,IAAM3qG,GAAM1oC,GAAIqzI,IAAK3qG,GAAM1oC,GAAIqzI,IAAMpyI,GAEpE,OAAOynC,IAETr5B,GAAGw0L,QAAU,SAASn7J,GAAO40Q,IAE3B,IADA,IAAIt9S,GAAIs9S,GAAQj7S,OAAQk7S,GAAW,IAAI36S,MAAM5C,IACtCA,MAAKu9S,GAASv9S,IAAK0oC,GAAM40Q,GAAQt9S,KACxC,OAAOu9S,IAETluS,GAAG4R,MAAQ,SAASynB,IAElB,IADA,IAAI1oC,GAAI,EAAGwB,GAAIknC,GAAMrmC,OAAS,EAAOygF,GAAKp6C,GAAM,GAAIznB,GAAQ,IAAIre,MAAMpB,GAAI,EAAI,EAAIA,IAC3ExB,GAAIwB,IAAGyf,GAAMjhB,IAAK,CAAO8iF,GAAIA,GAAKp6C,KAAQ1oC,KACjD,OAAOihB,IAET5R,GAAG0pB,UAAY,SAASpD,IACtB,KAAMn0B,GAAIm0B,GAAOtzB,QAAS,MAAO,GACjC,IAAK,IAAIrC,IAAK,EAAGG,GAAIkP,GAAG/G,IAAIqtB,GAAQqnR,oBAAqBjkR,GAAY,IAAIn2B,MAAMzC,MAAMH,GAAIG,IACvF,IAAK,IAAYqB,GAAR2B,IAAK,EAAM05E,GAAM9jD,GAAU/4B,IAAK,IAAI4C,MAAMpB,MAAM2B,GAAI3B,IAC3Dq7E,GAAI15E,IAAKwyB,GAAOxyB,IAAGnD,IAGvB,OAAO+4B,IAKT1pB,GAAGqlM,IAAM,WACP,OAAOrlM,GAAG0pB,UAAU3d,YAEtB/L,GAAG6zC,KAAO,SAAS7H,IACjB,IAAI6H,GAAO,GACX,IAAK,IAAI5hD,MAAO+5C,GAAK6H,GAAKj+C,KAAK3D,IAC/B,OAAO4hD,IAET7zC,GAAG2pB,OAAS,SAASqiB,IACnB,IAAIriB,GAAS,GACb,IAAK,IAAI13B,MAAO+5C,GAAKriB,GAAO/zB,KAAKo2C,GAAI/5C,KACrC,OAAO03B,IAET3pB,GAAG6tF,QAAU,SAAS7hD,IACpB,IAAI6hD,GAAU,GACd,IAAK,IAAI57F,MAAO+5C,GAAK6hD,GAAQj4F,KAAK,CAChC3D,IAAKA,GACLN,MAAOq6C,GAAI/5C,MAEb,OAAO47F,IAET7tF,GAAGw5K,MAAQ,SAASn/I,IAElB,IADA,IAAuBvpC,GAAkBq9S,GAAQ90Q,GAA7ClnC,GAAIkoC,GAAOrnC,OAAWrC,IAAK,EAAGmD,GAAI,IAC7BnD,GAAIwB,IAAG2B,IAAKumC,GAAO1pC,IAAGqC,OAE/B,IADAm7S,GAAS,IAAI56S,MAAMO,MACV3B,IAAK,GAGZ,IADArB,IADAuoC,GAAQgB,GAAOloC,KACLa,SACDlC,IAAK,GACZq9S,KAASr6S,IAAKulC,GAAMvoC,IAGxB,OAAOq9S,IAET,IAAIhmS,GAAMtR,KAAKsR,IAef,SAASimS,sBAAsB/uS,IAE7B,IADA,IAAIlL,GAAI,EACDkL,GAAIlL,GAAI,GAAGA,IAAK,GACvB,OAAOA,GAET,SAASk6S,SAASxgJ,GAAMh8F,IACtB,IAAK,IAAI5/D,MAAO4/D,GACdzgE,OAAOC,eAAew8J,GAAKr7J,UAAWP,GAAK,CACzCN,MAAOkgE,GAAW5/D,IAClBX,YAAY,IAkBlB,SAASg9S,SACP35S,KAAK0hE,EAAIjlE,OAAOY,OAAO,MA1CzBgO,GAAGqI,MAAQ,SAASkM,GAAOuoD,GAAMljC,IAQ/B,GAPI7tB,UAAU/Y,OAAS,IACrB4mC,GAAO,EACH7tB,UAAU/Y,OAAS,IACrB8pE,GAAOvoD,GACPA,GAAQ,KAGPuoD,GAAOvoD,IAASqlB,IAAS19B,IAAU,MAAM,IAAIjJ,MAAM,kBACxD,IAA8Da,GAA1DuU,GAAQ,GAAIlU,GAAIi6S,sBAAsBjmS,GAAIyxB,KAAQjpC,IAAK,EAE3D,GADA4jB,IAASpgB,GAAG2oE,IAAQ3oE,IAAGylC,IAAQzlC,IACpB,EAAG,MAAQL,GAAIygB,GAAQqlB,KAASjpC,IAAKmsE,IAAMz0D,GAAMzS,KAAK9B,GAAIK,SAAS,MAAQL,GAAIygB,GAAQqlB,KAASjpC,IAAKmsE,IAAMz0D,GAAMzS,KAAK9B,GAAIK,IACrI,OAAOkU,IAeTrI,GAAGgsC,IAAM,SAAS15C,GAAQymC,IACxB,IAAIiT,GAAM,IAAIsiQ,OACd,GAAIh8S,cAAkBg8S,OACpBh8S,GAAO40D,SAAQ,SAASj1D,GAAKN,IAC3Bq6C,GAAIltC,IAAI7M,GAAKN,YAEV,GAAI4B,MAAMkL,QAAQnM,IAAS,CAChC,IAA+BnB,GAA3BR,IAAK,EAAGwB,GAAIG,GAAOU,OACvB,GAAyB,IAArB+Y,UAAU/Y,OAAc,OAASrC,GAAIwB,IAAG65C,GAAIltC,IAAInO,GAAG2B,GAAO3B,UAAU,OAASA,GAAIwB,IAAG65C,GAAIltC,IAAIi6B,GAAEloC,KAAKyB,GAAQnB,GAAImB,GAAO3B,IAAIA,IAAIQ,SAElI,IAAK,IAAIc,MAAOK,GAAQ05C,GAAIltC,IAAI7M,GAAKK,GAAOL,KAE9C,OAAO+5C,IAmCT,SAASuiQ,cAAct8S,IACrB,MA/BiB,cA+BTA,IAAO,KA/B6B,OA+BLA,GAAI,GA/BC,KA+BkCA,GAAMA,GAEtF,SAASu8S,gBAAgBv8S,IACvB,MAlC4C,QAkCpCA,IAAO,IAAI,GAAqBA,GAAIkB,MAAM,GAAKlB,GAEzD,SAASw8S,WAAWx8S,IAClB,OAAOs8S,cAAct8S,MAAQ0C,KAAK0hE,EAEpC,SAASq4O,cAAcz8S,IACrB,OAAQA,GAAMs8S,cAAct8S,OAAS0C,KAAK0hE,UAAY1hE,KAAK0hE,EAAEpkE,IAE/D,SAAS08S,cACP,IAAI96P,GAAO,GACX,IAAK,IAAI5hD,MAAO0C,KAAK0hE,EAAGxiB,GAAKj+C,KAAK44S,gBAAgBv8S,KAClD,OAAO4hD,GAET,SAAS+6P,cACP,IAAIl6R,GAAO,EACX,IAAK,IAAIziB,MAAO0C,KAAK0hE,IAAK3hD,GAC1B,OAAOA,GAET,SAASm6R,eACP,IAAK,IAAI58S,MAAO0C,KAAK0hE,EAAG,OAAO,EAC/B,OAAO,EAsET,SAASy4O,SACPn6S,KAAK0hE,EAAIjlE,OAAOY,OAAO,MAiBzB,SAAS+8S,YAAY/9S,IACnB,OAAOA,GAOT,SAASg+S,UAAUlxR,GAAQo6C,GAAQ3zB,IACjC,OAAO,WACL,IAAI5yC,GAAQ4yC,GAAOlxC,MAAM6kE,GAAQnsD,WACjC,OAAOpa,KAAUumE,GAASp6C,GAASnsB,IAGvC,SAASs9S,gBAAgB38S,GAAQrB,IAC/B,GAAIA,MAAQqB,GAAQ,OAAOrB,GAC3BA,GAAOA,GAAKgtB,OAAO,GAAGi1J,cAAgBjiL,GAAKkC,MAAM,GACjD,IAAK,IAAIxC,GAAI,EAAGwB,GAAI+8S,GAAkBl8S,OAAQrC,GAAIwB,KAAKxB,GAAG,CACxD,IAAIw+S,GAAaD,GAAkBv+S,IAAKM,GACxC,GAAIk+S,MAAc78S,GAAQ,OAAO68S,IAhKrCd,SAASC,OAAQ,CACftmP,IAAKymP,WACLl9S,IAAK,SAASU,IACZ,OAAO0C,KAAK0hE,EAAEk4O,cAAct8S,MAE9B6M,IAAK,SAAS7M,GAAKN,IACjB,OAAOgD,KAAK0hE,EAAEk4O,cAAct8S,KAAQN,IAEtC+P,OAAQgtS,cACR76P,KAAM86P,YACNhlR,OAAQ,WACN,IAAIA,GAAS,GACb,IAAK,IAAI13B,MAAO0C,KAAK0hE,EAAG1sC,GAAO/zB,KAAKjB,KAAK0hE,EAAEpkE,KAC3C,OAAO03B,IAETkkE,QAAS,WACP,IAAIA,GAAU,GACd,IAAK,IAAI57F,MAAO0C,KAAK0hE,EAAGw3B,GAAQj4F,KAAK,CACnC3D,IAAKu8S,gBAAgBv8S,IACrBN,MAAOgD,KAAK0hE,EAAEpkE,MAEhB,OAAO47F,IAETn5E,KAAMk6R,YACNx1R,MAAOy1R,aACP3nP,QAAS,SAASnuB,IAChB,IAAK,IAAI9mC,MAAO0C,KAAK0hE,EAAGt9B,GAAEloC,KAAK8D,KAAM65S,gBAAgBv8S,IAAM0C,KAAK0hE,EAAEpkE,QA6BtE+N,GAAGi+L,KAAO,WACR,IAAyCmxG,GAAYC,GAAjDpxG,GAAO,GAAIpqJ,GAAO,GAAI8vH,GAAW,GACrC,SAAS33H,IAAIsjQ,GAASj2Q,GAAOooI,IAC3B,GAAIA,IAAS5tH,GAAK7gD,OAAQ,OAAOq8S,GAASA,GAAOx+S,KAAKotM,GAAM5kK,IAAS+1Q,GAAa/1Q,GAAMvhC,KAAKs3S,IAAc/1Q,GAE3G,IADA,IAAmDk2Q,GAAUj9S,GAAQk9S,GAAoC7lR,GAArGh5B,IAAK,EAAGwB,GAAIknC,GAAMrmC,OAAQf,GAAM4hD,GAAK4tH,MAAoCguI,GAAc,IAAInB,SACtF39S,GAAIwB,KACPw3B,GAAS8lR,GAAYl+S,IAAIg+S,GAAWt9S,GAAIK,GAAS+mC,GAAM1oC,OACzDg5B,GAAO/zB,KAAKtD,IAEZm9S,GAAY3wS,IAAIywS,GAAU,CAAEj9S,KAehC,OAZIg9S,IACFh9S,GAASg9S,KACTE,GAAS,SAASD,GAAU5lR,IAC1Br3B,GAAOwM,IAAIywS,GAAUvjQ,IAAIsjQ,GAAS3lR,GAAQ83I,QAG5CnvK,GAAS,GACTk9S,GAAS,SAASD,GAAU5lR,IAC1Br3B,GAAOi9S,IAAYvjQ,IAAIsjQ,GAAS3lR,GAAQ83I,MAG5CguI,GAAYvoP,QAAQsoP,IACbl9S,GAqCT,OAtBA2rM,GAAKjyJ,IAAM,SAAS3S,GAAOi2Q,IACzB,OAAOtjQ,IAAIsjQ,GAASj2Q,GAAO,IAE7B4kK,GAAKpwG,QAAU,SAASx0D,IACtB,OAjBF,SAASw0D,QAAQ7hD,GAAKy1H,IACpB,GAAIA,IAAS5tH,GAAK7gD,OAAQ,OAAOg5C,GACjC,IAAI3S,GAAQ,GAAIq2Q,GAAU/rI,GAASlC,MAOnC,OANAz1H,GAAIkb,SAAQ,SAASj1D,GAAK09S,IACxBt2Q,GAAMzjC,KAAK,CACT3D,IAAKA,GACL03B,OAAQkkE,QAAQ8hN,GAAQluI,SAGrBiuI,GAAUr2Q,GAAMvhC,MAAK,SAAS9C,GAAGC,IACtC,OAAOy6S,GAAQ16S,GAAE/C,IAAKgD,GAAEhD,QACrBonC,GAMEw0D,CAAQ7hD,IAAIhsC,GAAGgsC,IAAK3S,GAAO,GAAI,IAExC4kK,GAAKhsM,IAAM,SAASjB,IAElB,OADA6iD,GAAKj+C,KAAK5E,IACHitM,IAETA,GAAKt6B,SAAW,SAASvpI,IAEvB,OADAupI,GAAS9vH,GAAK7gD,OAAS,GAAKonC,GACrB6jK,IAETA,GAAKmxG,WAAa,SAASh1Q,IAEzB,OADAg1Q,GAAah1Q,GACN6jK,IAETA,GAAKoxG,OAAS,SAASt2Q,IAErB,OADAs2Q,GAASt2Q,GACFklK,IAEFA,IAETj+L,GAAGlB,IAAM,SAASu6B,IAChB,IAAIv6B,GAAM,IAAIgwS,OACd,GAAIz1Q,GAAO,IAAK,IAAI1oC,GAAI,EAAGwB,GAAIknC,GAAMrmC,OAAQrC,GAAIwB,KAAKxB,GAAGmO,GAAI8N,IAAIysB,GAAM1oC,KACvE,OAAOmO,IAKTuvS,SAASS,OAAQ,CACf9mP,IAAKymP,WACL7hS,IAAK,SAAS3a,IAEZ,OADA0C,KAAK0hE,EAAEk4O,cAAct8S,IAAO,MAAO,EAC5BA,IAETyP,OAAQgtS,cACR/kR,OAAQglR,YACRj6R,KAAMk6R,YACNx1R,MAAOy1R,aACP3nP,QAAS,SAASnuB,IAChB,IAAK,IAAI9mC,MAAO0C,KAAK0hE,EAAGt9B,GAAEloC,KAAK8D,KAAM65S,gBAAgBv8S,QAGzD+N,GAAGqzH,SAAW,GAIdrzH,GAAG+lB,OAAS,SAASjI,GAAQo6C,IAE3B,IADA,IAAiC3zB,GAA7B5zC,GAAI,EAAGwB,GAAI4Z,UAAU/Y,SAChBrC,GAAIwB,IAAG2rB,GAAOymB,GAASx4B,UAAUpb,KAAMq+S,UAAUlxR,GAAQo6C,GAAQA,GAAO3zB,KACjF,OAAOzmB,IAgBT,IAAIoxR,GAAoB,CAAE,SAAU,KAAM,MAAO,MAAO,IAAK,KAC7D,SAASU,WAMT,SAASC,eAeT,SAASC,kBAAkBpsR,IACzB,IAAIqsR,GAAY,GAAIC,GAAiB,IAAI1B,OACzC,SAASzpR,QAEP,IADA,IAAyCj0B,GAArCmP,GAAIgwS,GAAWp/S,IAAK,EAAGwB,GAAI4N,GAAE/M,SACxBrC,GAAIwB,KAAOvB,GAAImP,GAAEpP,IAAGsQ,KAAIrQ,GAAEyC,MAAMsB,KAAMoX,WAC/C,OAAO2X,GAeT,OAbAmB,MAAM5jB,GAAK,SAAShQ,GAAMg/S,IACxB,IAAkCt/S,GAA9BC,GAAIo/S,GAAez+S,IAAIN,IAC3B,OAAI8a,UAAU/Y,OAAS,EAAUpC,IAAKA,GAAEqQ,IACpCrQ,KACFA,GAAEqQ,GAAK,KACP8uS,GAAYA,GAAU58S,MAAM,EAAGxC,GAAIo/S,GAAU37S,QAAQxD,KAAIiI,OAAOk3S,GAAU58S,MAAMxC,GAAI,IACpFq/S,GAAetuS,OAAOzQ,KAEpBg/S,IAAUF,GAAUn6S,KAAKo6S,GAAelxS,IAAI7N,GAAM,CACpDgQ,GAAIgvS,MAECvsR,KAEFmB,MAGT,SAASqrR,yBACPlwS,GAAG6kB,MAAMsuG,iBAEX,SAASg9K,iBAEP,IADA,IAAkBx9S,GAAd4b,GAAIvO,GAAG6kB,MACJlyB,GAAI4b,GAAE8jH,aAAa9jH,GAAI5b,GAC9B,OAAO4b,GAET,SAAS6hS,iBAAiBtyR,IAExB,IADA,IAAI4F,GAAW,IAAImsR,YAAel/S,GAAI,EAAGwB,GAAI4Z,UAAU/Y,SAC9CrC,GAAIwB,IAAGuxB,GAAS3X,UAAUpb,KAAMm/S,kBAAkBpsR,IAa3D,OAZAA,GAAS2sR,GAAK,SAASC,GAAMC,IAC3B,OAAO,SAASC,IACd,IACE,IAAInmK,GAAKmmK,GAAGn+K,YAAcryH,GAAG6kB,MAC7B2rR,GAAG1yR,OAASA,GACZ9d,GAAG6kB,MAAQ2rR,GACX9sR,GAAS8sR,GAAGvsS,MAAM5Q,MAAMi9S,GAAMC,IAC9B,QACAvwS,GAAG6kB,MAAQwlH,MAIV3mH,GAlET1jB,GAAG0jB,SAAW,WAEZ,IADA,IAAIA,GAAW,IAAImsR,YAAel/S,IAAK,EAAGwB,GAAI4Z,UAAU/Y,SAC/CrC,GAAIwB,IAAGuxB,GAAS3X,UAAUpb,KAAMm/S,kBAAkBpsR,IAC3D,OAAOA,IAGTmsR,YAAYr9S,UAAUyO,GAAK,SAASgD,GAAMgsS,IACxC,IAAIt/S,GAAIsT,GAAK7P,QAAQ,KAAMnD,GAAO,GAKlC,GAJIN,IAAK,IACPM,GAAOgT,GAAK9Q,MAAMxC,GAAI,GACtBsT,GAAOA,GAAK9Q,MAAM,EAAGxC,KAEnBsT,GAAM,OAAO8H,UAAU/Y,OAAS,EAAI2B,KAAKsP,IAAMhD,GAAGhQ,IAAQ0D,KAAKsP,IAAMhD,GAAGhQ,GAAMg/S,IAClF,GAAyB,IAArBlkS,UAAU/Y,OAAc,CAC1B,GAAgB,MAAZi9S,GAAkB,IAAKhsS,MAAQtP,KAC7BA,KAAKlC,eAAewR,KAAOtP,KAAKsP,IAAMhD,GAAGhQ,GAAM,MAErD,OAAO0D,OAyBXqL,GAAG6kB,MAAQ,KA0BX7kB,GAAGywS,QAAU,SAAS99S,IACpB,OAAOA,GAAEqW,QAAQ0nS,GAAe,SAElC,IAAIA,GAAgB,kCAChBC,GAAc,GAAGC,UAAY,SAASt+S,GAAQE,IAChDF,GAAOs+S,UAAYp+S,IACjB,SAASF,GAAQE,IACnB,IAAK,IAAID,MAAYC,GAAWF,GAAOC,IAAYC,GAAUD,KAE/D,SAASs+S,aAAazsP,IAEpB,OADAusP,GAAYvsP,GAAQ0sP,IACb1sP,GAET,IAAI2sP,UAAY,SAASp+S,GAAGR,IAC1B,OAAOA,GAAEy4D,cAAcj4D,KACtBq+S,aAAe,SAASr+S,GAAGR,IAC5B,OAAOA,GAAE8+S,iBAAiBt+S,KACzBu+S,iBAAmB,SAAS/+S,GAAGQ,IAChC,IAAIw+S,GAAmBh/S,GAAEyxI,SAAWzxI,GAAE88S,gBAAgB98S,GAAG,oBAIzD,OAHA++S,iBAAmB,SAAS/+S,GAAGQ,IAC7B,OAAOw+S,GAAiBtgT,KAAKsB,GAAGQ,MAEVR,GAAGQ,KAEP,mBAAXy+S,SACTL,UAAY,SAASp+S,GAAGR,IACtB,OAAOi/S,OAAOz+S,GAAGR,IAAG,IAAM,MAE5B6+S,aAAeI,OACfF,iBAAmBE,OAAOC,iBAE5BrxS,GAAGb,UAAY,WACb,OAAOa,GAAGO,OAAO6rS,GAAYvsG,kBAE/B,IAAIixG,GAAwB9wS,GAAGb,UAAU3M,UAAY,GAkBrD,SAAS8+S,sBAAsB1iR,IAC7B,MAA2B,mBAAbA,GAA0BA,GAAW,WACjD,OAAOmiR,UAAUniR,GAAUj6B,OAgB/B,SAAS48S,yBAAyB3iR,IAChC,MAA2B,mBAAbA,GAA0BA,GAAW,WACjD,OAAOoiR,aAAapiR,GAAUj6B,OArClCm8S,GAAsBvwS,OAAS,SAASquB,IACtC,IAAoB4iR,GAAUC,GAASvvS,GAAOsW,GAA1Ck5R,GAAY,GAChB9iR,GAAW0iR,sBAAsB1iR,IACjC,IAAK,IAAI96B,IAAK,EAAGhD,GAAI6D,KAAK3B,SAAUc,GAAIhD,IAAK,CAC3C4gT,GAAU97S,KAAK47S,GAAW,IAC1BA,GAASr4R,YAAcjX,GAAQvN,KAAKb,KAAIqlB,WACxC,IAAK,IAAIxoB,IAAK,EAAGwB,GAAI+P,GAAMlP,SAAUrC,GAAIwB,KACnCqmB,GAAOtW,GAAMvR,MACf6gT,GAAS57S,KAAK67S,GAAU7iR,GAAS/9B,KAAK2nB,GAAMA,GAAKuqI,SAAUpyJ,GAAGmD,KAC1D29S,IAAW,aAAcj5R,KAAMi5R,GAAQ1uJ,SAAWvqI,GAAKuqI,WAE3DyuJ,GAAS57S,KAAK,MAIpB,OAAOi7S,aAAaa,KAOtBZ,GAAsBtwS,UAAY,SAASouB,IACzC,IAAoB4iR,GAAUh5R,GAA1Bk5R,GAAY,GAChB9iR,GAAW2iR,yBAAyB3iR,IACpC,IAAK,IAAI96B,IAAK,EAAGhD,GAAI6D,KAAK3B,SAAUc,GAAIhD,IACtC,IAAK,IAAIoR,GAAQvN,KAAKb,IAAInD,IAAK,EAAGwB,GAAI+P,GAAMlP,SAAUrC,GAAIwB,KACpDqmB,GAAOtW,GAAMvR,OACf+gT,GAAU97S,KAAK47S,GAAWrF,SAASv9Q,GAAS/9B,KAAK2nB,GAAMA,GAAKuqI,SAAUpyJ,GAAGmD,MACzE09S,GAASr4R,WAAaX,IAI5B,OAAOq4R,aAAaa,KAOtB,IAAIC,GAAa,+BACbC,GAAc,CAChBr0R,IAAK,6BACLs0R,MAAOF,GACPG,MAAO,+BACPC,IAAK,uCACLlmP,MAAO,iCAyBT,SAASmmP,kBAAkB/gT,GAAMU,IAsB/B,OArBAV,GAAO+O,GAAGjO,GAAGkgT,QAAQhhT,IAqBL,MAATU,GAAgBV,GAAK6Y,MAjB5B,SAASooS,aACPv9S,KAAKw9S,kBAAkBlhT,GAAKg8S,MAAOh8S,GAAK6Y,QAJ1C,SAASsoS,WACPz9S,KAAK09S,gBAAgBphT,KAmBsD,mBAAVU,GAAuBV,GAAK6Y,MAJ/F,SAASwoS,iBACP,IAAIjzS,GAAI1N,GAAM0B,MAAMsB,KAAMoX,WACjB,MAAL1M,GAAW1K,KAAKw9S,kBAAkBlhT,GAAKg8S,MAAOh8S,GAAK6Y,OAAanV,KAAKk4S,eAAe57S,GAAKg8S,MAAOh8S,GAAK6Y,MAAOzK,KANlH,SAASkzS,eACP,IAAIlzS,GAAI1N,GAAM0B,MAAMsB,KAAMoX,WACjB,MAAL1M,GAAW1K,KAAK09S,gBAAgBphT,IAAY0D,KAAK+9F,aAAazhG,GAAMoO,KAM6DpO,GAAK6Y,MAX5I,SAAS0oS,iBACP79S,KAAKk4S,eAAe57S,GAAKg8S,MAAOh8S,GAAK6Y,MAAOnY,KAJ9C,SAAS8gT,eACP99S,KAAK+9F,aAAazhG,GAAMU,KAe5B,SAAS+gT,YAAY//S,IACnB,OAAOA,GAAEm6D,OAAO9jD,QAAQ,OAAQ,KAmBlC,SAAS2pS,uBAAuB1hT,IAC9B,OAAO,IAAI2nC,OAAO,aAAe54B,GAAGywS,QAAQx/S,IAAQ,aAAc,KAEpE,SAAS2hT,qBAAqB3hT,IAC5B,OAAQA,GAAO,IAAI67D,OAAOzrD,MAAM,SAElC,SAASwxS,qBAAqB5hT,GAAMU,IAElC,IAAIQ,IADJlB,GAAO2hT,qBAAqB3hT,IAAM+6C,IAAI8mQ,2BACzB9/S,OASb,MAAwB,mBAAVrB,GAJd,SAASohT,kBAEP,IADA,IAAIpiT,IAAK,EAAG0O,GAAI1N,GAAM0B,MAAMsB,KAAMoX,aACzBpb,GAAIwB,IAAGlB,GAAKN,IAAGgE,KAAM0K,KANhC,SAAS2zS,kBAEP,IADA,IAAIriT,IAAK,IACAA,GAAIwB,IAAGlB,GAAKN,IAAGgE,KAAMhD,KAQlC,SAASmhT,yBAAyB7hT,IAChC,IAAIuvB,GAAKmyR,uBAAuB1hT,IAChC,OAAO,SAASunB,GAAM7mB,IACpB,GAAIZ,GAAIynB,GAAKy6R,UAAW,OAAOthT,GAAQZ,GAAE6b,IAAI3b,IAAQF,GAAE2Q,OAAOzQ,IAC9D,IAAIF,GAAIynB,GAAK05E,aAAa,UAAY,GAClCvgG,IACF6uB,GAAGkuJ,UAAY,EACVluJ,GAAGxqB,KAAKjF,KAAIynB,GAAKk6E,aAAa,QAASggN,YAAY3hT,GAAI,IAAME,MAElEunB,GAAKk6E,aAAa,QAASggN,YAAY3hT,GAAEiY,QAAQwX,GAAI,QAoB3D,SAAS0yR,mBAAmBjiT,GAAMU,GAAO8jD,IAWvC,OAAgB,MAAT9jD,GAVP,SAASwhT,YACPx+S,KAAKiM,MAAMwyS,eAAeniT,KASwB,mBAAVU,GAJ1C,SAAS0hT,gBACP,IAAIh0S,GAAI1N,GAAM0B,MAAMsB,KAAMoX,WACjB,MAAL1M,GAAW1K,KAAKiM,MAAMwyS,eAAeniT,IAAY0D,KAAKiM,MAAM4rS,YAAYv7S,GAAMoO,GAAGo2C,KALvF,SAAS69P,gBACP3+S,KAAKiM,MAAM4rS,YAAYv7S,GAAMU,GAAO8jD,KAgBxC,SAAS89P,sBAAsBtiT,GAAMU,IAWnC,OAAgB,MAATA,GAVP,SAAS6hT,sBACA7+S,KAAK1D,KASyC,mBAAVU,GAJ7C,SAAS8hT,mBACP,IAAIp0S,GAAI1N,GAAM0B,MAAMsB,KAAMoX,WACjB,MAAL1M,UAAkB1K,KAAK1D,IAAY0D,KAAK1D,IAAQoO,IALtD,SAASq0S,mBACP/+S,KAAK1D,IAAQU,IAkCjB,SAASgiT,qBAAqB1iT,IAQ5B,MAAuB,mBAATA,GAAsBA,IAAQA,GAAO+O,GAAGjO,GAAGkgT,QAAQhhT,KAAO6Y,MAHxE,SAAS8pS,WACP,OAAOj/S,KAAKgrM,cAAcriL,gBAAgBrsB,GAAKg8S,MAAOh8S,GAAK6Y,QAL7D,SAAS9X,SACP,IAAIsf,GAAW3c,KAAKgrM,cAAek0G,GAAYl/S,KAAKm/S,aACpD,OAAOD,KAAclC,IAAcrgS,GAASuuL,gBAAgBi0G,eAAiBnC,GAAargS,GAASC,cAActgB,IAAQqgB,GAASgM,gBAAgBu2R,GAAW5iT,KAiBjK,SAAS8iT,qBACP,IAAI76R,GAASvkB,KAAKwkB,WACdD,IAAQA,GAAOymG,YAAYhrH,MAmFjC,SAASq/S,sBAAsBn5S,IAC7B,MAAO,CACLkoJ,SAAUloJ,IAoBd,SAASo5S,oBAAoBrlR,IAC3B,OAAO,WACL,OAAOsiR,iBAAiBv8S,KAAMi6B,KAmBlC,SAASslR,4BAA4BC,IAEnC,OADKpoS,UAAU/Y,SAAQmhT,GAAajH,cAC7B,SAASl4S,GAAGC,IACjB,OAAOD,IAAKC,GAAIk/S,GAAWn/S,GAAE+tJ,SAAU9tJ,GAAE8tJ,WAAa/tJ,IAAKC,IAQ/D,SAASm/S,kBAAkBhwP,GAAQ+U,IACjC,IAAK,IAAIrlE,GAAI,EAAGhD,GAAIszD,GAAOpxD,OAAQc,GAAIhD,GAAGgD,KACxC,IAAK,IAAgD0kB,GAA5CtW,GAAQkiD,GAAOtwD,IAAInD,GAAI,EAAGwB,GAAI+P,GAAMlP,OAAcrC,GAAIwB,GAAGxB,MAC5D6nB,GAAOtW,GAAMvR,MAAIwoE,GAAS3gD,GAAM7nB,GAAGmD,IAG3C,OAAOswD,GA0BT,SAASiwP,mBAAmBl1S,IAE1B,OADAwxS,GAAYxxS,GAAWm1S,IAChBn1S,GAhXTa,GAAGjO,GAAK,CACN07D,OAAQmkP,GACRK,QAAS,SAAShhT,IAChB,IAAIN,GAAIM,GAAKmD,QAAQ,KAAMq5D,GAASx8D,GAEpC,OADIN,IAAK,GAAqC,WAA/B88D,GAASx8D,GAAKkC,MAAM,EAAGxC,OAAiBM,GAAOA,GAAKkC,MAAMxC,GAAI,IACtEihT,GAAYn/S,eAAeg7D,IAAU,CAC1Cw/O,MAAO2E,GAAYnkP,IACnB3jD,MAAO7Y,IACLA,KAGR6/S,GAAsB/3R,KAAO,SAAS9nB,GAAMU,IAC1C,GAAIoa,UAAU/Y,OAAS,EAAG,CACxB,GAAoB,iBAAT/B,GAAmB,CAC5B,IAAIunB,GAAO7jB,KAAK6jB,OAEhB,OADAvnB,GAAO+O,GAAGjO,GAAGkgT,QAAQhhT,KACT6Y,MAAQ0O,GAAK+7R,eAAetjT,GAAKg8S,MAAOh8S,GAAK6Y,OAAS0O,GAAK05E,aAAajhG,IAEtF,IAAKU,MAASV,GAAM0D,KAAKkM,KAAKmxS,kBAAkBrgT,GAAOV,GAAKU,MAC5D,OAAOgD,KAET,OAAOA,KAAKkM,KAAKmxS,kBAAkB/gT,GAAMU,MA6B3Cm/S,GAAsBnwS,QAAU,SAAS1P,GAAMU,IAC7C,GAAIoa,UAAU/Y,OAAS,EAAG,CACxB,GAAoB,iBAAT/B,GAAmB,CAC5B,IAAIunB,GAAO7jB,KAAK6jB,OAAQrmB,IAAKlB,GAAO2hT,qBAAqB3hT,KAAO+B,OAAQrC,IAAK,EAC7E,GAAIgB,GAAQ6mB,GAAKy6R,WACf,OAAStiT,GAAIwB,IAAG,IAAKR,GAAMq1B,SAAS/1B,GAAKN,KAAK,OAAO,OAGrD,IADAgB,GAAQ6mB,GAAK05E,aAAa,WACjBvhG,GAAIwB,IAAG,IAAKwgT,uBAAuB1hT,GAAKN,KAAIqF,KAAKrE,IAAQ,OAAO,EAE3E,OAAO,EAET,IAAKA,MAASV,GAAM0D,KAAKkM,KAAKgyS,qBAAqBlhT,GAAOV,GAAKU,MAC/D,OAAOgD,KAET,OAAOA,KAAKkM,KAAKgyS,qBAAqB5hT,GAAMU,MAkC9Cm/S,GAAsBlwS,MAAQ,SAAS3P,GAAMU,GAAO8jD,IAClD,IAAItjD,GAAI4Z,UAAU/Y,OAClB,GAAIb,GAAI,EAAG,CACT,GAAoB,iBAATlB,GAAmB,CAE5B,IAAKwkD,MADDtjD,GAAI,IAAGR,GAAQ,IACFV,GAAM0D,KAAKkM,KAAKqyS,mBAAmBz9P,GAAUxkD,GAAKwkD,IAAW9jD,KAC9E,OAAOgD,KAET,GAAIxC,GAAI,EAAG,CACT,IAAIqmB,GAAO7jB,KAAK6jB,OAChB,OAAO8zR,UAAU9zR,IAAM0+I,iBAAiB1+I,GAAM,MAAM2+I,iBAAiBlmK,IAEvEwkD,GAAW,GAEb,OAAO9gD,KAAKkM,KAAKqyS,mBAAmBjiT,GAAMU,GAAO8jD,MAenDq7P,GAAsBv+S,SAAW,SAAStB,GAAMU,IAC9C,GAAIoa,UAAU/Y,OAAS,EAAG,CACxB,GAAoB,iBAAT/B,GAAmB,OAAO0D,KAAK6jB,OAAOvnB,IACjD,IAAKU,MAASV,GAAM0D,KAAKkM,KAAK0yS,sBAAsB5hT,GAAOV,GAAKU,MAChE,OAAOgD,KAET,OAAOA,KAAKkM,KAAK0yS,sBAAsBtiT,GAAMU,MAe/Cm/S,GAAsB3wS,KAAO,SAASxO,IACpC,OAAOoa,UAAU/Y,OAAS2B,KAAKkM,KAAsB,mBAAVlP,GAAuB,WAChE,IAAIuC,GAAIvC,GAAM0B,MAAMsB,KAAMoX,WAC1BpX,KAAK8vB,YAAmB,MAALvwB,GAAY,GAAKA,IACzB,MAATvC,GAAgB,WAClBgD,KAAK8vB,YAAc,IACjB,WACF9vB,KAAK8vB,YAAc9yB,KAChBgD,KAAK6jB,OAAOiM,aAEnBqsR,GAAsB9vS,KAAO,SAASrP,IACpC,OAAOoa,UAAU/Y,OAAS2B,KAAKkM,KAAsB,mBAAVlP,GAAuB,WAChE,IAAIuC,GAAIvC,GAAM0B,MAAMsB,KAAMoX,WAC1BpX,KAAK6/S,UAAiB,MAALtgT,GAAY,GAAKA,IACvB,MAATvC,GAAgB,WAClBgD,KAAK6/S,UAAY,IACf,WACF7/S,KAAK6/S,UAAY7iT,KACdgD,KAAK6jB,OAAOg8R,WAEnB1D,GAAsBpwS,OAAS,SAASzP,IAEtC,OADAA,GAAO0iT,qBAAqB1iT,IACrB0D,KAAK4L,QAAO,WACjB,OAAO5L,KAAKmnB,YAAY7qB,GAAKoC,MAAMsB,KAAMoX,gBAa7C+kS,GAAsBt8S,OAAS,SAASvD,GAAMwjT,IAG5C,OAFAxjT,GAAO0iT,qBAAqB1iT,IAC5BwjT,GAASnD,sBAAsBmD,IACxB9/S,KAAK4L,QAAO,WACjB,OAAO5L,KAAKonB,aAAa9qB,GAAKoC,MAAMsB,KAAMoX,WAAY0oS,GAAOphT,MAAMsB,KAAMoX,YAAc,UAG3F+kS,GAAsBpvS,OAAS,WAC7B,OAAO/M,KAAKkM,KAAKkzS,qBAMnBjD,GAAsBj2S,KAAO,SAASlJ,GAAOM,IAC3C,IAA6BiQ,GAAOsW,GAAhC7nB,IAAK,EAAGwB,GAAIwC,KAAK3B,OACrB,IAAK+Y,UAAU/Y,OAAQ,CAErB,IADArB,GAAQ,IAAI4B,MAAMpB,IAAK+P,GAAQvN,KAAK,IAAI3B,UAC/BrC,GAAIwB,KACPqmB,GAAOtW,GAAMvR,OACfgB,GAAMhB,IAAK6nB,GAAKuqI,UAGpB,OAAOpxJ,GAET,SAASO,KAAKgQ,GAAOwyS,IACnB,IAAI/jT,GAAiJ6nB,GAAMm8R,GAApJxiT,GAAI+P,GAAMlP,OAAQlC,GAAI4jT,GAAU1hT,OAAQwR,GAAK3N,KAAKoC,IAAI9G,GAAGrB,IAAI8jT,GAAc,IAAIrhT,MAAMzC,IAAI+jT,GAAa,IAAIthT,MAAMzC,IAAIgkT,GAAY,IAAIvhT,MAAMpB,IACjJ,GAAIF,GAAK,CACP,IAA6Ds9S,GAAzDwF,GAAiB,IAAIzG,OAAU0G,GAAY,IAAIzhT,MAAMpB,IACzD,IAAKxB,IAAK,IAAKA,GAAIwB,KACbqmB,GAAOtW,GAAMvR,OACXokT,GAAe/sP,IAAIunP,GAAWt9S,GAAIpB,KAAK2nB,GAAMA,GAAKuqI,SAAUpyJ,KAC9DmkT,GAAUnkT,IAAK6nB,GAEfu8R,GAAej2S,IAAIywS,GAAU/2R,IAE/Bw8R,GAAUrkT,IAAK4+S,IAGnB,IAAK5+S,IAAK,IAAKA,GAAIG,KACX0nB,GAAOu8R,GAAexjT,IAAIg+S,GAAWt9S,GAAIpB,KAAK6jT,GAAWC,GAAWD,GAAU/jT,IAAIA,OAEpE,IAAT6nB,KACTo8R,GAAYjkT,IAAK6nB,GACjBA,GAAKuqI,SAAW4xJ,IAHhBE,GAAWlkT,IAAKqjT,sBAAsBW,IAKxCI,GAAej2S,IAAIywS,IAAU,GAE/B,IAAK5+S,IAAK,IAAKA,GAAIwB,IACbxB,MAAKqkT,KAAkD,IAArCD,GAAexjT,IAAIyjT,GAAUrkT,OACjDmkT,GAAUnkT,IAAKuR,GAAMvR,SAGpB,CACL,IAAKA,IAAK,IAAKA,GAAI6T,IACjBgU,GAAOtW,GAAMvR,IACbgkT,GAAWD,GAAU/jT,IACjB6nB,IACFA,GAAKuqI,SAAW4xJ,GAChBC,GAAYjkT,IAAK6nB,IAEjBq8R,GAAWlkT,IAAKqjT,sBAAsBW,IAG1C,KAAMhkT,GAAIG,KAAKH,GACbkkT,GAAWlkT,IAAKqjT,sBAAsBU,GAAU/jT,KAElD,KAAMA,GAAIwB,KAAKxB,GACbmkT,GAAUnkT,IAAKuR,GAAMvR,IAGzBkkT,GAAWz5S,OAASw5S,GACpBC,GAAW17R,WAAay7R,GAAYz7R,WAAa27R,GAAU37R,WAAajX,GAAMiX,WAC9E1Y,GAAM7K,KAAKi/S,IACXz5S,GAAOxF,KAAKg/S,IACZp9P,GAAK5hD,KAAKk/S,IAEZ,IAAIr0S,GAAQ4zS,mBAAmB,IAAKj5S,GAASy1S,aAAa,IAAKr5P,GAAOq5P,aAAa,IACnF,GAAqB,mBAAVl/S,GACT,OAAShB,GAAIwB,IACXD,KAAKgQ,GAAQvN,KAAKhE,IAAIgB,GAAMd,KAAKqR,GAAOA,GAAMiX,WAAW4pI,SAAUpyJ,UAGrE,OAASA,GAAIwB,IACXD,KAAKgQ,GAAQvN,KAAKhE,IAAIgB,IAS1B,OANAyJ,GAAOqF,MAAQ,WACb,OAAOA,IAETrF,GAAOo8C,KAAO,WACZ,OAAOA,IAEFp8C,IAOT01S,GAAsBzzG,MAAQ,SAAS1rM,IACrC,OAAOoa,UAAU/Y,OAAS2B,KAAKpC,SAAS,WAAYZ,IAASgD,KAAKpC,SAAS,aAE7Eu+S,GAAsBt7S,OAAS,SAASA,IACtC,IAAoBg8S,GAAUtvS,GAAOsW,GAAjCk5R,GAAY,GACM,mBAAXl8S,KAAuBA,GAASy+S,oBAAoBz+S,KAC/D,IAAK,IAAI1B,GAAI,EAAGhD,GAAI6D,KAAK3B,OAAQc,GAAIhD,GAAGgD,KAAK,CAC3C49S,GAAU97S,KAAK47S,GAAW,IAC1BA,GAASr4R,YAAcjX,GAAQvN,KAAKb,KAAIqlB,WACxC,IAAK,IAAIxoB,GAAI,EAAGwB,GAAI+P,GAAMlP,OAAQrC,GAAIwB,GAAGxB,MAClC6nB,GAAOtW,GAAMvR,MAAO6E,GAAO3E,KAAK2nB,GAAMA,GAAKuqI,SAAUpyJ,GAAGmD,KAC3D09S,GAAS57S,KAAK4iB,IAIpB,OAAOq4R,aAAaa,KAOtBZ,GAAsB12Q,MAAQ,WAC5B,IAAK,IAAItmC,IAAK,EAAGhD,GAAI6D,KAAK3B,SAAUc,GAAIhD,IACtC,IAAK,IAA4D0nB,GAAxDtW,GAAQvN,KAAKb,IAAInD,GAAIuR,GAAMlP,OAAS,EAAG8zD,GAAO5kD,GAAMvR,MAAYA,IAAK,IACxE6nB,GAAOtW,GAAMvR,OACXm2D,IAAQA,KAAStuC,GAAKy8R,aAAanuP,GAAK3tC,WAAW4C,aAAavD,GAAMsuC,IAC1EA,GAAOtuC,IAIb,OAAO7jB,MAETm8S,GAAsBh5S,KAAO,SAASq8S,IACpCA,GAAaD,4BAA4B7gT,MAAMsB,KAAMoX,WACrD,IAAK,IAAIjY,IAAK,EAAGhD,GAAI6D,KAAK3B,SAAUc,GAAIhD,IAAK6D,KAAKb,IAAGgE,KAAKq8S,IAC1D,OAAOx/S,KAAKylC,SAQd02Q,GAAsBjwS,KAAO,SAASs4D,IACpC,OAAOi7O,kBAAkBz/S,MAAM,SAAS6jB,GAAM7nB,GAAGmD,IAC/CqlE,GAAStoE,KAAK2nB,GAAMA,GAAKuqI,SAAUpyJ,GAAGmD,QAW1Cg9S,GAAsBjgT,KAAO,SAASsoE,IACpC,IAAIj/B,GAAOiyQ,SAASpgS,WAEpB,OADAotD,GAAS9lE,MAAM6mC,GAAK,GAAKvlC,KAAMulC,IACxBvlC,MAETm8S,GAAsB13R,MAAQ,WAC5B,OAAQzkB,KAAK6jB,QAEfs4R,GAAsBt4R,KAAO,WAC3B,IAAK,IAAI1kB,GAAI,EAAGhD,GAAI6D,KAAK3B,OAAQc,GAAIhD,GAAGgD,KACtC,IAAK,IAAIoO,GAAQvN,KAAKb,IAAInD,GAAI,EAAGwB,GAAI+P,GAAMlP,OAAQrC,GAAIwB,GAAGxB,KAAK,CAC7D,IAAI6nB,GAAOtW,GAAMvR,IACjB,GAAI6nB,GAAM,OAAOA,GAGrB,OAAO,MAETs4R,GAAsBp8R,KAAO,WAC3B,IAAIviB,GAAI,EAIR,OAHAiiT,kBAAkBz/S,MAAM,aACpBxC,MAEGA,IAMT,IAAImiT,GAA8B,GA6BlC,SAASY,+BAA+Bz0S,IACtC,IAAIujI,GAAIkc,GACR,OAAO,SAASlvJ,GAAGL,GAAGmD,IACpB,IAA+C0kB,GAA3CtW,GAAQzB,GAAM3M,IAAGsH,OAAQjJ,GAAI+P,GAAMlP,OAGvC,IAFIc,IAAKosJ,KAAIA,GAAKpsJ,GAAGkwI,GAAK,GACtBrzI,IAAKqzI,KAAIA,GAAKrzI,GAAI,KACb6nB,GAAOtW,GAAM8hI,QAAUA,GAAK7xI,KACrC,OAAOqmB,IAsCX,SAAS28R,gBAAgBlxS,GAAMgsS,GAAUl2D,IACvC,IAAI9oP,GAAO,OAASgT,GAAMtT,GAAIsT,GAAK7P,QAAQ,KAAM4G,GAAOo6S,wBACpDzkT,GAAI,IAAGsT,GAAOA,GAAK9Q,MAAM,EAAGxC,KAChC,IAAI6E,GAAS6/S,GAAuB9jT,IAAI0S,IAExC,SAASqxS,WACP,IAAI1kT,GAAI+D,KAAK1D,IACTL,KACF+D,KAAKygC,oBAAoBnxB,GAAMrT,GAAGA,GAAEinG,UAC7BljG,KAAK1D,KAmBhB,OAxBIuE,KAAQyO,GAAOzO,GAAQwF,GAAOu6S,uBAwB3B5kT,GAAIs/S,GAhBX,SAASuF,QACP,IAAI5kT,GAAIoK,GAAKi1S,GAAU9D,SAASpgS,YAChCupS,SAASzkT,KAAK8D,MACdA,KAAKugC,iBAAiBjxB,GAAMtP,KAAK1D,IAAQL,GAAGA,GAAEinG,EAAIkiJ,IAClDnpP,GAAEylE,EAAI45O,IAYsBqF,SAAWrF,GAAWL,QAVpD,SAAS12O,YACP,IAA8DjgD,GAA1DuH,GAAK,IAAIoY,OAAO,eAAiB54B,GAAGywS,QAAQxsS,IAAQ,KACxD,IAAK,IAAIhT,MAAQ0D,KACf,GAAIskB,GAAQhoB,GAAKgoB,MAAMuH,IAAK,CAC1B,IAAI5vB,GAAI+D,KAAK1D,IACb0D,KAAKygC,oBAAoBnc,GAAM,GAAIroB,GAAGA,GAAEinG,UACjCljG,KAAK1D,MAjGpB+O,GAAGb,UAAUsB,MAAQ4zS,mBACrBr0S,GAAGb,UAAUsB,MAAMjO,UAAY8hT,GAC/BA,GAA4B5zS,OAASowS,GAAsBpwS,OAC3D4zS,GAA4Bl7R,MAAQ03R,GAAsB13R,MAC1Dk7R,GAA4B97R,KAAOs4R,GAAsBt4R,KACzD87R,GAA4BzjT,KAAOigT,GAAsBjgT,KACzDyjT,GAA4B5/R,KAAOo8R,GAAsBp8R,KACzD4/R,GAA4B/zS,OAAS,SAASquB,IAE5C,IADA,IAAoB4iR,GAAUC,GAASgE,GAASvzS,GAAOsW,GAAnDk5R,GAAY,GACP59S,IAAK,EAAGhD,GAAI6D,KAAK3B,SAAUc,GAAIhD,IAAK,CAC3C2kT,IAAWvzS,GAAQvN,KAAKb,KAAIsH,OAC5Bs2S,GAAU97S,KAAK47S,GAAW,IAC1BA,GAASr4R,WAAajX,GAAMiX,WAC5B,IAAK,IAAIxoB,IAAK,EAAGwB,GAAI+P,GAAMlP,SAAUrC,GAAIwB,KACnCqmB,GAAOtW,GAAMvR,MACf6gT,GAAS57S,KAAK6/S,GAAQ9kT,IAAK8gT,GAAU7iR,GAAS/9B,KAAKqR,GAAMiX,WAAYX,GAAKuqI,SAAUpyJ,GAAGmD,KACvF29S,GAAQ1uJ,SAAWvqI,GAAKuqI,UAExByuJ,GAAS57S,KAAK,MAIpB,OAAOi7S,aAAaa,KAEtB4C,GAA4B9/S,OAAS,SAASvD,GAAMwjT,IAElD,OADI1oS,UAAU/Y,OAAS,IAAGyhT,GAASS,+BAA+BvgT,OAC3Dm8S,GAAsBt8S,OAAO3D,KAAK8D,KAAM1D,GAAMwjT,KAYvDz0S,GAAGO,OAAS,SAASiY,IACnB,IAAItW,GAQJ,MAPoB,iBAATsW,IACTtW,GAAQ,CAAE6uS,UAAUv4R,GAAM4zR,MACpBjzR,WAAaizR,GAAYvsG,iBAE/B39L,GAAQ,CAAEsW,KACJW,WAAakzR,mBAAmB7zR,IAEjCq4R,aAAa,CAAE3uS,MAExBlC,GAAGQ,UAAY,SAASw1D,IACtB,IAAI9zD,GAQJ,MAPqB,iBAAV8zD,IACT9zD,GAAQiqS,SAAS6E,aAAah7O,GAAOo2O,MAC/BjzR,WAAaizR,GAAYvsG,iBAE/B39L,GAAQiqS,SAASn2O,KACX78C,WAAa,KAEd03R,aAAa,CAAE3uS,MAExB4uS,GAAsB7vS,GAAK,SAASgD,GAAMgsS,GAAUl2D,IAClD,IAAI5nP,GAAI4Z,UAAU/Y,OAClB,GAAIb,GAAI,EAAG,CACT,GAAoB,iBAAT8R,GAAmB,CAE5B,IAAK81O,MADD5nP,GAAI,IAAG89S,IAAW,GACNhsS,GAAMtP,KAAKkM,KAAKs0S,gBAAgBp7D,GAAS91O,GAAK81O,IAAUk2D,KACxE,OAAOt7S,KAET,GAAIxC,GAAI,EAAG,OAAQA,GAAIwC,KAAK6jB,OAAO,OAASvU,MAAU9R,GAAEkkE,EACxD0jL,IAAU,EAEZ,OAAOplP,KAAKkM,KAAKs0S,gBAAgBlxS,GAAMgsS,GAAUl2D,MAgCnD,IAAIs7D,GAAyBr1S,GAAGgsC,IAAI,CAClC0pQ,WAAY,YACZC,WAAY,aAOd,SAASP,wBAAwBnF,GAAUM,IACzC,OAAO,SAAShiS,IACd,IAAIpd,GAAI6O,GAAG6kB,MACX7kB,GAAG6kB,MAAQtW,GACXgiS,GAAU,GAAK57S,KAAKouJ,SACpB,IACEktJ,GAAS58S,MAAMsB,KAAM47S,IACrB,QACAvwS,GAAG6kB,MAAQ1zB,KAIjB,SAASokT,sBAAsBtF,GAAUM,IACvC,IAAI3/S,GAAIwkT,wBAAwBnF,GAAUM,IAC1C,OAAO,SAAShiS,IACd,IAAmBqnS,GAAUrnS,GAAE8nO,cAC1Bu/D,KAAWA,KADHjhT,MACqE,EAA1CihT,GAAQC,wBADnClhT,QAEX/D,GAAEC,KAFS8D,KAEI4Z,KAtBjB69R,IACFiJ,GAAuBnuP,SAAQ,SAAS/yD,IAClC,KAAOA,MAAKi4S,IAAaiJ,GAAuB3zS,OAAOvN,OAwB/D,IAAI2hT,GAAqBC,GAAkB,EAC3C,SAASC,sBAAsBx9R,IAC7B,IAAIvnB,GAAO,oBAAqB8kT,GAAiB1hN,GAAQ,QAAUpjG,GAAMwd,GAAIzO,GAAGO,OAAO+rS,UAAU9zR,KAAOvX,GAAG,YAAchQ,GAAMi/S,wBAAwBjvS,GAAG,YAAchQ,GAAMi/S,wBAAwBjvS,GAAG,cAAgBhQ,GAAMi/S,wBAI/N,GAH2B,MAAvB4F,KACFA,KAAsB,kBAAmBt9R,KAAey2R,gBAAgBz2R,GAAK5X,MAAO,eAElFk1S,GAAqB,CACvB,IAAIl1S,GAAQyrS,mBAAmB7zR,IAAM5X,MAAOL,GAASK,GAAMk1S,IAC3Dl1S,GAAMk1S,IAAuB,OAE/B,OAAO,SAASG,IAGd,GAFAxnS,GAAExN,GAAGhQ,GAAM,MACP6kT,KAAqBl1S,GAAMk1S,IAAuBv1S,IAClD01S,GAAe,CACjB,IAAIhvP,IAAM,WACRx4C,GAAExN,GAAGozF,GAAO,OAEd5lF,GAAExN,GAAGozF,IAAO,WACV67M,yBACAjpP,SACC,GACH6U,WAAW7U,IAAK,KAItBjnD,GAAG4vB,MAAQ,SAASxN,IAClB,OAAO8zR,cAAc9zR,GAAW+tR,mBAElC,IAAIgG,GAAoBxhT,KAAKw3K,WAAa,SAASn2K,KAAKrB,KAAKw3K,UAAU1T,YAAc,EAAI,EACzF,SAASy9I,cAAc9zR,GAAW7T,IAC5BA,GAAE6qN,iBAAgB7qN,GAAIA,GAAE6qN,eAAe,IAC3C,IAAI77M,GAAM6E,GAAUg0R,iBAAmBh0R,GACvC,GAAI7E,GAAI84R,eAAgB,CACtB,IAAIlgT,GAAQonB,GAAI84R,iBAChB,GAAIF,GAAoB,EAAG,CACzB,IAAI1wR,GAAS6mR,UAAUlqR,IACvB,GAAIqD,GAAO6wR,SAAW7wR,GAAOu+H,QAAS,CASpC,IAAIuyJ,IARJh5R,GAAMvd,GAAGO,OAAO,QAAQG,OAAO,OAAOE,MAAM,CAC1C7G,SAAU,WACVgpB,IAAK,EACLpe,KAAM,EACN0f,OAAQ,EACRC,QAAS,EACTkyR,OAAQ,QACP,cACW,GAAG,GAAGC,eACpBN,KAAsBI,GAAIx9Q,GAAKw9Q,GAAIhoS,GACnCgP,GAAI7b,UAMR,OAHIy0S,IAAmBhgT,GAAMkJ,EAAIkP,GAAEmoS,MAAOvgT,GAAMoQ,EAAIgI,GAAEooS,QAAYxgT,GAAMkJ,EAAIkP,GAAEu+H,QAC9E32I,GAAMoQ,EAAIgI,GAAEw+H,SAEL,EADP52I,GAAQA,GAAMygT,gBAAgBx0R,GAAUq0R,eAAet1J,YACxC9hJ,EAAGlJ,GAAMoQ,GAE1B,IAAIu2G,GAAO16F,GAAU3J,wBACrB,MAAO,CAAElK,GAAEu+H,QAAUhwB,GAAKn4G,KAAOyd,GAAUy0R,WAAYtoS,GAAEw+H,QAAUjwB,GAAK/5F,IAAMX,GAAU00R,WA2D1F,SAASC,0BACP,OAAO/2S,GAAG6kB,MAAMu0M,eAAe,GAAG49E,WA1DpCh3S,GAAGi3S,MAAQ,SAAS70R,GAAW80R,GAASF,IAEtC,GADIjrS,UAAU/Y,OAAS,IAAGgkT,GAAaE,GAASA,GAAU/G,iBAAiB/2E,gBACvE89E,GAAS,IAAK,IAA+BD,GAA3BtmT,GAAI,EAAGwB,GAAI+kT,GAAQlkT,OAAerC,GAAIwB,KAAKxB,GAC/D,IAAKsmT,GAAQC,GAAQvmT,KAAIqmT,aAAeA,GACtC,OAAOd,cAAc9zR,GAAW60R,KAItCj3S,GAAGqzH,SAASlB,KAAO,WACjB,IAAIttG,GAAQurR,iBAAiBj+K,KAAM,OAAQ,YAAa,WAAYqyB,GAAS,KAAM2yJ,GAAY7jL,UAAUs8K,QAAS5vS,GAAG4vB,MAAO08Q,UAAW,YAAa,WAAY8K,GAAa9jL,UAAUyjL,wBAAyB/2S,GAAGi3S,MAAOlI,YAAa,YAAa,YACpP,SAAS58K,OACPx9H,KAAKsM,GAAG,iBAAkBk2S,IAAWl2S,GAAG,kBAAmBm2S,IAE7D,SAAS9jL,UAAUx2H,GAAI/C,GAAUs9S,GAAS7wS,GAAMiO,IAC9C,OAAO,WACL,IAA0O6iS,GAAtOp/R,GAAOvjB,KAAMmpB,GAAS9d,GAAG6kB,MAAM/G,OAAOy5R,sBAAwBv3S,GAAG6kB,MAAM/G,OAAQ5E,GAAShB,GAAKiB,WAAYuK,GAAWmB,GAAMwrR,GAAGn4R,GAAMnM,WAAYyrS,GAAU,EAAGC,GAAS36S,KAAM46S,GAAW,SAAqB,MAAVD,GAAiB,GAAK,IAAMA,IAAqBE,GAAc33S,GAAGO,OAAO82S,GAAQv5R,KAAS7c,GAAGuF,GAAOkxS,GAAUE,OAAO32S,GAAGwT,GAAMijS,GAAUG,OAAQC,GAAc9B,sBAAsBl4R,IAASi6R,GAAYh+S,GAASmf,GAAQu+R,IAU/Z,SAASG,QACP,IAA0CpuR,GAAI7M,GAA1Cq7R,GAAYj+S,GAASmf,GAAQu+R,IAC5BO,KACLxuR,GAAKwuR,GAAU,GAAKD,GAAU,GAC9Bp7R,GAAKq7R,GAAU,GAAKD,GAAU,GAC9BP,IAAWhuR,GAAK7M,GAChBo7R,GAAYC,GACZt0R,GAAS,CACPzf,KAAM,OACN5E,EAAG24S,GAAU,GAAKV,GAAW,GAC7B/wS,EAAGyxS,GAAU,GAAKV,GAAW,GAC7B9tR,GAAIA,GACJ7M,GAAIA,MAGR,SAASk7R,QACF99S,GAASmf,GAAQu+R,MACtBE,GAAY12S,GAAGuF,GAAOkxS,GAAU,MAAMz2S,GAAGwT,GAAMijS,GAAU,MACzDI,GAAYN,IACZ9zR,GAAS,CACPzf,KAAM,aA3BRqzS,GAFE9yJ,GAEW,EADb8yJ,GAAa9yJ,GAAOnxJ,MAAM6kB,GAAMnM,YACN1M,EAAI04S,GAAU,GAAIT,GAAW/wS,EAAIwxS,GAAU,IAExD,CAAE,EAAG,GAEpBr0R,GAAS,CACPzf,KAAM,eAgCZ,OALAkuH,KAAKqyB,OAAS,SAASnlJ,IACrB,OAAK0M,UAAU/Y,QACfwxJ,GAASnlJ,GACF8yH,MAFuBqyB,IAIzBxkJ,GAAG+lB,OAAOosG,KAAMttG,GAAO,OAKhC7kB,GAAGk3S,QAAU,SAAS90R,GAAW80R,IAE/B,OADInrS,UAAU/Y,OAAS,IAAGkkT,GAAU/G,iBAAiB+G,SAC9CA,GAAU/K,SAAS+K,IAASlrQ,KAAI,SAASirQ,IAC9C,IAAI9gT,GAAQ+/S,cAAc9zR,GAAW60R,IAErC,OADA9gT,GAAM6gT,WAAaC,GAAMD,WAClB7gT,MACJ,IAEP,IAAIi1O,GAAI,KAAM6sE,GAAK7sE,MAAOC,GAAIx0O,KAAK67B,GAAIwlR,GAAI,EAAI7sE,GAAG8sE,GAAKD,GAAI9sE,GAAGE,GAAQD,GAAI,EAAG+sE,GAAa/sE,GAAI,IAAKgtE,GAAa,IAAMhtE,GACtH,SAASitE,OAAOj5S,IACd,OAAOA,GAAI,EAAI,EAAIA,GAAI,GAAK,EAAI,EAElC,SAASk5S,WAAWvjT,GAAGC,GAAGlE,IACxB,OAAQkE,GAAE,GAAKD,GAAE,KAAOjE,GAAE,GAAKiE,GAAE,KAAOC,GAAE,GAAKD,GAAE,KAAOjE,GAAE,GAAKiE,GAAE,IAEnE,SAASwjT,QAAQn5S,IACf,OAAOA,GAAI,EAAI,EAAIA,IAAK,EAAIgsO,GAAIx0O,KAAK0tE,KAAKllE,IAE5C,SAASo5S,QAAQp5S,IACf,OAAOA,GAAI,EAAIisO,GAAQjsO,IAAK,GAAKisO,GAAQz0O,KAAK40O,KAAKpsO,IAKrD,SAASq5S,QAAQr5S,IACf,QAASA,GAAIxI,KAAK8tD,IAAItlD,KAAM,EAAIA,IAAK,EAKvC,SAASs5S,YAAYt5S,IACnB,OAAQA,GAAIxI,KAAK8oD,IAAItgD,GAAI,IAAMA,GAEjC,IAAIu5S,GAAI/hT,KAAKq3O,MACbluO,GAAG64S,gBAAkB,SAASrlO,GAAIC,IAChC,IAAwI9iF,GAAGi+C,GAAvIkqQ,GAAMtlO,GAAG,GAAIulO,GAAMvlO,GAAG,GAAIl1E,GAAKk1E,GAAG,GAAIwlO,GAAMvlO,GAAG,GAAIwlO,GAAMxlO,GAAG,GAAIo/G,GAAKp/G,GAAG,GAAIjqD,GAAKwvR,GAAMF,GAAKn8R,GAAKs8R,GAAMF,GAAKhgP,GAAKvvC,GAAKA,GAAK7M,GAAKA,GACpI,GAAIo8C,GAAKk/O,GACPrpQ,GAAI/3C,KAAKykB,IAAIu3K,GAAKv0L,IAAMs6S,GACxBjoT,GAAI,SAASiB,IACX,MAAO,CAAEknT,GAAMlnT,GAAI43B,GAAIuvR,GAAMnnT,GAAI+qB,GAAIre,GAAKzH,KAAK8tD,IAAIi0P,GAAIhnT,GAAIg9C,UAExD,CACL,IAAIqxG,GAAKppJ,KAAK6E,KAAKq9D,IAAKmG,IAAM2zH,GAAKA,GAAKv0L,GAAKA,GAThB,EAS0By6D,KAAO,EAAIz6D,GAT7C,EASuD2hJ,IAAK3mD,IAAMu5F,GAAKA,GAAKv0L,GAAKA,GATzE,EASmFy6D,KAAO,EAAI85H,GATtG,EASgH5yC,IAAK3yG,GAAKz2C,KAAKykB,IAAIzkB,KAAK6E,KAAKwjE,GAAKA,GAAK,GAAKA,IAAKkzB,GAAKv7F,KAAKykB,IAAIzkB,KAAK6E,KAAK49F,GAAKA,GAAK,GAAKA,IAC7N1qD,IAAKwjD,GAAK9kD,IAAMsrQ,GAChBjoT,GAAI,SAASiB,IACX,IAAIe,GAAIf,GAAIg9C,GAAGsqQ,GAASR,QAAQprQ,IAAKn4C,GAAImJ,IAZtB,EAYiC2hJ,KAAOi5J,GAlBjE,SAASC,QAAQ95S,IACf,QAASA,GAAIxI,KAAK8tD,IAAI,EAAItlD,KAAM,IAAMA,GAAI,GAiB8B85S,CAAQP,GAAIjmT,GAAI26C,IAxB1F,SAAS8rQ,QAAQ/5S,IACf,QAASA,GAAIxI,KAAK8tD,IAAItlD,KAAM,EAAIA,IAAK,EAuByD+5S,CAAQ9rQ,KAClG,MAAO,CAAEwrQ,GAAM3jT,GAAIq0B,GAAIuvR,GAAM5jT,GAAIwnB,GAAIre,GAAK46S,GAASR,QAAQE,GAAIjmT,GAAI26C,MAIvE,OADA38C,GAAE2Q,SAAe,IAAJstC,GACNj+C,IAETqP,GAAGqzH,SAASr/B,KAAO,WACjB,IAIGqlN,GAAYC,GAASnoR,GAAwLooR,GAAiDC,GAA2EvyR,GAAIC,GAAII,GAAIC,GAJpVnqB,GAAO,CACTiC,EAAG,EACHkH,EAAG,EACHpS,EAAG,GAC2BugB,GAAO,CAAE,IAAK,KAAO+kS,GAAcC,GAA0Bp4S,GAAW,IAAKq4S,GAAU,EAAGxC,GAAY,iBAAkBlkL,GAAY,iBAAkB2mL,GAAU,eAAiCxC,GAAa,kBAA8BvyR,GAAQurR,iBAAiBp8M,KAAM,YAAa,OAAQ,WAUhU,SAASA,KAAK33E,IACZA,GAAEpb,GAAGk2S,GAAW0C,aAAa54S,GAAG64S,GAAwB,QAASC,cAAc94S,GAAG,gBAAiB+4S,YAAY/4S,GAAGm2S,GAAY6C,cAoGhI,SAASjgT,SAAStH,IAChB,MAAO,EAAGA,GAAE,GAAK0K,GAAKiC,GAAKjC,GAAKjJ,GAAIzB,GAAE,GAAK0K,GAAKmJ,GAAKnJ,GAAKjJ,GAK5D,SAAS+lT,QAAQvnT,IACfyK,GAAKjJ,EAAI0C,KAAKqC,IAAIugT,GAAY,GAAI5iT,KAAKoC,IAAIwgT,GAAY,GAAI9mT,KAE7D,SAASwnT,YAAYznT,GAAG9B,IACtBA,GAPF,SAASuF,MAAMvF,IACb,MAAO,CAAEA,GAAE,GAAKwM,GAAKjJ,EAAIiJ,GAAKiC,EAAGzO,GAAE,GAAKwM,GAAKjJ,EAAIiJ,GAAKmJ,GAMlDpQ,CAAMvF,IACVwM,GAAKiC,GAAK3M,GAAE,GAAK9B,GAAE,GACnBwM,GAAKmJ,GAAK7T,GAAE,GAAK9B,GAAE,GAErB,SAASwpT,OAAOliS,GAAMxlB,GAAG9B,GAAGuD,IAC1B+jB,GAAKmiS,UAAY,CACfh7S,EAAGjC,GAAKiC,EACRkH,EAAGnJ,GAAKmJ,EACRpS,EAAGiJ,GAAKjJ,GAEV+lT,QAAQrjT,KAAKq5B,IAAI,EAAG/7B,KACpBgmT,YAAYb,GAAU5mT,GAAG9B,IACzBsnB,GAAOlY,GAAGO,OAAO2X,IACb5W,GAAW,IAAG4W,GAAOA,GAAKhX,aAAaI,SAASA,KACpD4W,GAAKrnB,KAAKmjG,KAAKnvE,OAEjB,SAASy1R,UACHpzR,IAAIA,GAAG82B,OAAO/2B,GAAG5e,QAAQ2jC,KAAI,SAAS3sC,IACxC,OAAQA,GAAIjC,GAAKiC,GAAKjC,GAAKjJ,KAC1B63C,IAAI/kB,GAAG7W,SACNmX,IAAIA,GAAGy2B,OAAO12B,GAAGjf,QAAQ2jC,KAAI,SAASzlC,IACxC,OAAQA,GAAInJ,GAAKmJ,GAAKnJ,GAAKjJ,KAC1B63C,IAAI1kB,GAAGlX,SAEZ,SAASmqS,YAAY72R,IACdi2R,MAAWj2R,GAAS,CACvBzf,KAAM,cAGV,SAASu2S,OAAO92R,IACd42R,UACA52R,GAAS,CACPzf,KAAM,OACN8wD,MAAO33D,GAAKjJ,EACZixN,UAAW,CAAEhoN,GAAKiC,EAAGjC,GAAKmJ,KAG9B,SAASk0S,UAAU/2R,MACVi2R,KAASj2R,GAAS,CACvBzf,KAAM,YACJq1S,GAAU,MAEhB,SAASO,cACP,IAAI3hS,GAAOvjB,KAAM+uB,GAAWmB,GAAMwrR,GAAGn4R,GAAMnM,WAAYyrS,GAAU,EAAGH,GAAUr3S,GAAGO,OAAO+rS,UAAUp0R,KAAOjX,GAAGgyH,GAAW2kL,OAAO32S,GAAG24S,GAAS/B,OAAQ6C,GAAY1gT,SAASgG,GAAG4vB,MAAM1X,KAAQ4/R,GAAc9B,sBAAsB99R,IAG5N,SAAS0/R,QACPJ,GAAU,EACV2C,YAAYn6S,GAAG4vB,MAAM1X,IAAOwiS,IAC5BF,OAAO92R,IAET,SAASm0R,QACPR,GAAQp2S,GAAGgyH,GAAW,MAAMhyH,GAAG24S,GAAS,MACxC9B,GAAYN,IACZiD,UAAU/2R,IAVZi3R,GAAuB9pT,KAAKqnB,IAC5BqiS,YAAY72R,IAYd,SAASu2R,eACP,IAAuFW,GAAnF1iS,GAAOvjB,KAAM+uB,GAAWmB,GAAMwrR,GAAGn4R,GAAMnM,WAAY8uS,GAAa,GAAIC,GAAY,EAAWC,GAAW,SAAW/6S,GAAG6kB,MAAMu0M,eAAe,GAAG49E,WAAYgE,GAAY,YAAcD,GAAUE,GAAW,WAAaF,GAAUjqC,GAAU,GAAIumC,GAAUr3S,GAAGO,OAAO2X,IAAO4/R,GAAc9B,sBAAsB99R,IAI/S,SAASgjS,WACP,IAAIhE,GAAUl3S,GAAGk3S,QAAQh/R,IAKzB,OAJA0iS,GAASx9S,GAAKjJ,EACd+iT,GAAQhwP,SAAQ,SAASt1D,IACnBA,GAAEolT,cAAc6D,KAAYA,GAAWjpT,GAAEolT,YAAch9S,SAASpI,QAE/DslT,GAET,SAASiE,UACP,IAAIr9R,GAAS9d,GAAG6kB,MAAM/G,OACtB9d,GAAGO,OAAOud,IAAQ7c,GAAG+5S,GAAWpD,OAAO32S,GAAGg6S,GAAUpD,OACpD/mC,GAAQl7Q,KAAKkoB,IAEb,IADA,IAAI+iN,GAAU7gO,GAAG6kB,MAAMu0M,eACdzoO,GAAI,EAAGwB,GAAI0uO,GAAQ7tO,OAAQrC,GAAIwB,KAAKxB,GAC3CkqT,GAAWh6E,GAAQlwO,IAAGqmT,YAAc,KAEtC,IAAIE,GAAUgE,WAAY3vR,GAAM9d,KAAK8d,MACrC,GAAuB,IAAnB2rR,GAAQlkT,OAAc,CACxB,GAAIu4B,GAAMiuR,GAAY,IAAK,CACzB,IAAI9mT,GAAIwkT,GAAQ,GAChBkD,OAAOliS,GAAMxlB,GAAGmoT,GAAWnoT,GAAEskT,YAAangT,KAAKyN,MAAMzN,KAAKykB,IAAIle,GAAKjJ,GAAK0C,KAAKukT,KAAO,GACpFlL,yBAEFsJ,GAAYjuR,QACP,GAAI2rR,GAAQlkT,OAAS,EAAG,CACzBN,GAAIwkT,GAAQ,GAAhB,IAAoBv+O,GAAIu+O,GAAQ,GAAI1tR,GAAK92B,GAAE,GAAKimE,GAAE,GAAIh8C,GAAKjqB,GAAE,GAAKimE,GAAE,GACpEmiP,GAAYtxR,GAAKA,GAAK7M,GAAKA,IAG/B,SAASi7R,QACP,IAAgCpkO,GAAI6hE,GAAI5hE,GAAI0hE,GAAxC+hK,GAAUl3S,GAAGk3S,QAAQh/R,IACzByiS,GAAuB9pT,KAAKqnB,IAC5B,IAAK,IAAIvnB,GAAI,EAAGwB,GAAI+kT,GAAQlkT,OAAQrC,GAAIwB,KAAKxB,GAAGwkJ,GAAK,KAEnD,GADA1hE,GAAKyjO,GAAQvmT,IACTwkJ,GAAK0lK,GAAWpnO,GAAGujO,YAAa,CAClC,GAAI3hK,GAAI,MACR7hE,GAAKC,GAAI4hE,GAAKF,GAGlB,GAAIA,GAAI,CACN,IAAIkmK,IAAaA,GAAY5nO,GAAG,GAAKD,GAAG,IAAM6nO,IAAaA,GAAY5nO,GAAG,GAAKD,GAAG,IAAM6nO,GAAWC,GAASR,IAAajkT,KAAK6E,KAAK2/S,GAAYP,IAC/ItnO,GAAK,EAAGA,GAAG,GAAKC,GAAG,IAAM,GAAID,GAAG,GAAKC,GAAG,IAAM,GAC9C4hE,GAAK,EAAGA,GAAG,GAAKF,GAAG,IAAM,GAAIE,GAAG,GAAKF,GAAG,IAAM,GAC9C+kK,QAAQoB,GAASV,IAEnBpB,GAAY,KACZW,YAAY3mO,GAAI6hE,IAChBmlK,OAAO92R,IAET,SAASm0R,QACP,GAAI73S,GAAG6kB,MAAMqyR,QAAQlkT,OAAQ,CAE3B,IADA,IAAI6tO,GAAU7gO,GAAG6kB,MAAMu0M,eACdzoO,GAAI,EAAGwB,GAAI0uO,GAAQ7tO,OAAQrC,GAAIwB,KAAKxB,UACpCkqT,GAAWh6E,GAAQlwO,IAAGqmT,YAE/B,IAAK,IAAIA,MAAc6D,GACrB,YAAYK,WAGhBl7S,GAAGQ,UAAUswQ,IAAS7vQ,GAAG85S,GAAU,MACnC1D,GAAQp2S,GAAGk2S,GAAW0C,aAAa54S,GAAGm2S,GAAY6C,cAClDnC,KACA2C,UAAU/2R,IAjEZy3R,UACAZ,YAAY72R,IACZ2zR,GAAQp2S,GAAGk2S,GAAW,MAAMl2S,GAAGm2S,GAAY+D,SAkE7C,SAASpB,eACP,IAAIr2R,GAAWmB,GAAMwrR,GAAG17S,KAAMoX,WAC1BwtS,GAAiB58O,aAAa48O,KAAuBoB,GAAuB9pT,KAAK8D,MACrF0kT,GAAar/S,SAASs/S,GAAUnoR,IAAUnxB,GAAG4vB,MAAMj7B,OAAQ4lT,YAAY72R,KACvE61R,GAAkBz9O,YAAW,WAC3By9O,GAAkB,KAClBkB,UAAU/2R,MACT,IACHwsR,yBACAgK,QAAQrjT,KAAKq5B,IAAI,EAA6B,KAA1BqrR,MAAkCn+S,GAAKjJ,GAC3DgmT,YAAYb,GAASD,IACrBmB,OAAO92R,IAET,SAASs2R,aACP,IAAItnT,GAAIsN,GAAG4vB,MAAMj7B,MAAOR,GAAI0C,KAAKykB,IAAIle,GAAKjJ,GAAK0C,KAAKukT,IACpDhB,OAAOzlT,KAAMjC,GAAGsH,SAAStH,IAAIsN,GAAG6kB,MAAMwlF,SAAWxzG,KAAKs5B,KAAKh8B,IAAK,EAAI0C,KAAKyN,MAAMnQ,IAAK,GAEtF,OAxQK2lT,KACHA,GAAwB,YAAa1N,IAAemP,GAAwB,WAC1E,OAAQv7S,GAAG6kB,MAAM2mI,QAAUxrJ,GAAG6kB,MAAM22R,UAAY,IAAM,IACrD,SAAW,iBAAkBpP,IAAemP,GAAwB,WACrE,OAAOv7S,GAAG6kB,MAAM42R,YACf,eAAiBF,GAAwB,WAC1C,OAAQv7S,GAAG6kB,MAAMinE,QAChB,wBAKLkI,KAAKnvE,MAAQ,SAASxI,IACpBA,GAAExb,MAAK,WACL,IAAI6iB,GAAWmB,GAAMwrR,GAAG17S,KAAMoX,WAAY2vS,GAAQt+S,GAC9Cu+S,GACF37S,GAAGO,OAAO5L,MAAMuM,aAAaL,KAAK,cAAc,WAC9CzD,GAAOzI,KAAK0lT,WAAa,CACvBh7S,EAAG,EACHkH,EAAG,EACHpS,EAAG,GAELomT,YAAY72R,OACXk4R,MAAM,aAAa,WACpB,IAAIpyR,GAAK9U,GAAK,GAAIiI,GAAKjI,GAAK,GAAIgwD,GAAK40O,GAAUA,GAAQ,GAAK9vR,GAAK,EAAGm7C,GAAK20O,GAAUA,GAAQ,GAAK38R,GAAK,EAAGhsB,GAAIqP,GAAG64S,gBAAgB,EAAGn0O,GAAKtnE,GAAKiC,GAAKjC,GAAKjJ,GAAIwwE,GAAKvnE,GAAKmJ,GAAKnJ,GAAKjJ,EAAGq1B,GAAKpsB,GAAKjJ,GAAK,EAAGuwE,GAAKg3O,GAAMr8S,GAAKq8S,GAAMvnT,GAAIwwE,GAAK+2O,GAAMn1S,GAAKm1S,GAAMvnT,EAAGq1B,GAAKkyR,GAAMvnT,IACjQ,OAAO,SAASvC,IACd,IAAIhB,GAAID,GAAEiB,IAAIuC,GAAIq1B,GAAK54B,GAAE,GACzB+D,KAAK0lT,UAAYj9S,GAAO,CACtBiC,EAAGqlE,GAAK9zE,GAAE,GAAKuD,GACfoS,EAAGo+D,GAAK/zE,GAAE,GAAKuD,GACfA,EAAGA,IAELqmT,OAAO92R,QAER7iB,KAAK,kBAAkB,WACxB45S,UAAU/2R,OACT7iB,KAAK,YAAY,WAClB45S,UAAU/2R,QAGZ/uB,KAAK0lT,UAAYj9S,GACjBm9S,YAAY72R,IACZ82R,OAAO92R,IACP+2R,UAAU/2R,SAIhBswE,KAAKoxH,UAAY,SAAS/uJ,IACxB,OAAKtqD,UAAU/Y,QACfoK,GAAO,CACLiC,GAAIg3D,GAAE,GACN9vD,GAAI8vD,GAAE,GACNliE,EAAGiJ,GAAKjJ,GAEVmmT,UACOtmN,MAPuB,CAAE52F,GAAKiC,EAAGjC,GAAKmJ,IAS/CytF,KAAKj/B,MAAQ,SAASsB,IACpB,OAAKtqD,UAAU/Y,QACfoK,GAAO,CACLiC,EAAGjC,GAAKiC,EACRkH,EAAGnJ,GAAKmJ,EACRpS,EAAG,MAEL+lT,SAAS7jP,IACTikP,UACOtmN,MARuB52F,GAAKjJ,GAUrC6/F,KAAKylN,YAAc,SAASpjP,IAC1B,OAAKtqD,UAAU/Y,QACfymT,GAAmB,MAALpjP,GAAYqjP,GAA2B,EAAGrjP,GAAE,IAAKA,GAAE,IAC1D29B,MAFuBylN,IAIhCzlN,KAAK7iE,OAAS,SAASklC,IACrB,OAAKtqD,UAAU/Y,QACfm+B,GAASklC,IAAK,EAAGA,GAAE,IAAKA,GAAE,IACnB29B,MAFuB7iE,IAIhC6iE,KAAKt/E,KAAO,SAAS2hD,IACnB,OAAKtqD,UAAU/Y,QACf0hB,GAAO2hD,IAAK,EAAGA,GAAE,IAAKA,GAAE,IACjB29B,MAFuBt/E,IAIhCs/E,KAAK1yF,SAAW,SAAS+0D,IACvB,OAAKtqD,UAAU/Y,QACfsO,IAAY+0D,GACL29B,MAFuB1yF,IAIhC0yF,KAAK30F,EAAI,SAASU,IAChB,OAAKgM,UAAU/Y,QACfk0B,GAAKnnB,GACLknB,GAAKlnB,GAAE43D,OACPv6D,GAAO,CACLiC,EAAG,EACHkH,EAAG,EACHpS,EAAG,GAEE6/F,MARuB9sE,IAUhC8sE,KAAKztF,EAAI,SAASxG,IAChB,OAAKgM,UAAU/Y,QACfu0B,GAAKxnB,GACLunB,GAAKvnB,GAAE43D,OACPv6D,GAAO,CACLiC,EAAG,EACHkH,EAAG,EACHpS,EAAG,GAEE6/F,MARuBzsE,IAoKzBvnB,GAAG+lB,OAAOiuE,KAAMnvE,GAAO,OAEhC,IAAgD02R,GAAuBzB,GAAnEJ,GAA2B,CAAE,EAAGx9S,KAEpC,SAAS2/S,YAKT,SAASC,OAAO37P,GAAGxtD,GAAG/B,IACpB,OAAO+D,gBAAgBmnT,QAAennT,KAAKwrD,GAAKA,GAAGxrD,KAAKhC,GAAKA,QAAGgC,KAAK/D,GAAKA,KAAKmb,UAAU/Y,OAAS,EAAImtD,cAAa27P,OAAS,IAAIA,OAAO37P,GAAEA,EAAGA,GAAExtD,EAAGwtD,GAAEvvD,GAAKmrT,aAAa,GAAK57P,GAAG67P,WAAYF,QAAU,IAAIA,OAAO37P,GAAGxtD,GAAG/B,IAPtNoP,GAAG5F,MAAQyhT,SAEXA,SAASrpT,UAAU8a,SAAW,WAC5B,OAAO3Y,KAAKqE,MAAQ,IAEtBgH,GAAG1G,IAAMwiT,OAIT,IAAIG,GAAkBH,OAAOtpT,UAAY,IAAIqpT,SAY7C,SAASK,WAAW/7P,GAAGxtD,GAAG/B,IACxB,IAAIwkJ,GAAI+mK,GAaR,SAAS1lT,GAAG0pD,IACV,OAAOtpD,KAAKm5B,MAAa,IAR3B,SAAS97B,EAAEisD,IAET,OADIA,GAAI,IAAKA,IAAK,IAAcA,GAAI,IAAGA,IAAK,KACxCA,GAAI,GAAWi1F,IAAM+mK,GAAK/mK,IAAMj1F,GAAI,GACpCA,GAAI,IAAYg8P,GAChBh8P,GAAI,IAAYi1F,IAAM+mK,GAAK/mK,KAAO,IAAMj1F,IAAK,GAC1Ci1F,GAGWlhJ,CAAEisD,KAEtB,OAfAA,GAAI5hD,MAAM4hD,IAAK,GAAKA,IAAK,KAAO,EAAIA,GAAI,IAAMA,GAC9CxtD,GAAI4L,MAAM5L,KAASA,GAAI,EAAR,EAAgBA,GAAI,EAAI,EAAIA,GAG3CyiJ,GAAK,GAFLxkJ,GAAIA,GAAI,EAAI,EAAIA,GAAI,EAAI,EAAIA,KAC5BurT,GAAKvrT,IAAK,GAAKA,IAAK,EAAI+B,IAAK/B,GAAI+B,GAAI/B,GAAI+B,IAYlC,IAAIypT,OAAO3lT,GAAG0pD,GAAI,KAAM1pD,GAAG0pD,IAAI1pD,GAAG0pD,GAAI,MAG/C,SAASk8P,OAAOl8P,GAAGpvD,GAAGH,IACpB,OAAO+D,gBAAgB0nT,QAAe1nT,KAAKwrD,GAAKA,GAAGxrD,KAAK5D,GAAKA,QAAG4D,KAAK/D,GAAKA,KAAKmb,UAAU/Y,OAAS,EAAImtD,cAAak8P,OAAS,IAAIA,OAAOl8P,GAAEA,EAAGA,GAAEpvD,EAAGovD,GAAEvvD,GAA2B0rT,WAAtBn8P,cAAao8P,OAAoBp8P,GAAEvvD,GAA2BuvD,GAAIq8P,YAAYr8P,GAAIngD,GAAGhH,IAAImnD,KAAI3uD,EAAG2uD,GAAE9jC,EAAG8jC,GAAElrD,IAAIrE,EAArEuvD,GAAEnrD,EAAGmrD,GAAElrD,GAA6E,IAAIonT,OAAOl8P,GAAGpvD,GAAGH,IAhCrSqrT,GAAgBQ,SAAW,SAAStoT,IAElC,OADAA,GAAI0C,KAAKq5B,IAAI,GAAInkB,UAAU/Y,OAASmB,GAAI,GACjC,IAAI2nT,OAAOnnT,KAAKwrD,EAAGxrD,KAAKhC,EAAGgC,KAAK/D,EAAIuD,KAE7C8nT,GAAgBt+G,OAAS,SAASxpM,IAEhC,OADAA,GAAI0C,KAAKq5B,IAAI,GAAInkB,UAAU/Y,OAASmB,GAAI,GACjC,IAAI2nT,OAAOnnT,KAAKwrD,EAAGxrD,KAAKhC,EAAGwB,GAAIQ,KAAK/D,IAE7CqrT,GAAgBjjT,IAAM,WACpB,OAAOkjT,WAAWvnT,KAAKwrD,EAAGxrD,KAAKhC,EAAGgC,KAAK/D,IAqBzCoP,GAAG08S,IAAML,OAIT,IAAIM,GAAkBN,OAAO7pT,UAAY,IAAIqpT,SAU7C,SAASe,WAAWz8P,GAAGpvD,GAAGH,IAGxB,OAFI2N,MAAM4hD,MAAIA,GAAI,GACd5hD,MAAMxN,MAAIA,GAAI,GACX,IAAIwrT,OAAO3rT,GAAGiG,KAAK6oD,IAAIS,IAAKi4P,IAAcrnT,GAAG8F,KAAK8oD,IAAIQ,IAAKpvD,IAGpE,SAASwrT,OAAO3rT,GAAGoE,GAAGC,IACpB,OAAON,gBAAgB4nT,QAAe5nT,KAAK/D,GAAKA,GAAG+D,KAAKK,GAAKA,QAAGL,KAAKM,GAAKA,KAAK8W,UAAU/Y,OAAS,EAAIpC,cAAa2rT,OAAS,IAAIA,OAAO3rT,GAAEA,EAAGA,GAAEoE,EAAGpE,GAAEqE,GAAKrE,cAAayrT,OAASO,WAAWhsT,GAAEuvD,EAAGvvD,GAAEG,EAAGH,GAAEA,GAAK4rT,YAAY5rT,GAAIwrT,OAAOxrT,KAAIY,EAAGZ,GAAEyrB,EAAGzrB,GAAEqE,GAAK,IAAIsnT,OAAO3rT,GAAGoE,GAAGC,IAhBvQ0nT,GAAgBF,SAAW,SAAStoT,IAClC,OAAO,IAAIkoT,OAAO1nT,KAAKwrD,EAAGxrD,KAAK5D,EAAG8F,KAAKoC,IAAI,IAAKtE,KAAK/D,EAAIisT,IAAY9wS,UAAU/Y,OAASmB,GAAI,MAE9FwoT,GAAgBh/G,OAAS,SAASxpM,IAChC,OAAO,IAAIkoT,OAAO1nT,KAAKwrD,EAAGxrD,KAAK5D,EAAG8F,KAAKqC,IAAI,EAAGvE,KAAK/D,EAAIisT,IAAY9wS,UAAU/Y,OAASmB,GAAI,MAE5FwoT,GAAgB3jT,IAAM,WACpB,OAAO4jT,WAAWjoT,KAAKwrD,EAAGxrD,KAAK5D,EAAG4D,KAAK/D,GAAGoI,OAO5CgH,GAAG88S,IAAMP,OAIT,IAAIM,GAAW,GAEXE,GAAkBR,OAAO/pT,UAAY,IAAIqpT,SAU7C,SAASmB,WAAWpsT,GAAGoE,GAAGC,IACxB,IAAIsR,IAAK3V,GAAI,IAAM,IAAKyO,GAAIkH,GAAIvR,GAAI,IAAK+K,GAAIwG,GAAItR,GAAI,IAIrD,OAAO,IAAImnT,OAAOa,WAAW,WAH7B59S,GAba,OAaT69S,WAAW79S,KAG8B,WAF7CkH,GAdgC,EAc5B22S,WAAW32S,KAE8C,UAD7DxG,GAf8C,QAe1Cm9S,WAAWn9S,MAC6Dk9S,YAAY,QAAU59S,GAAI,UAAYkH,GAAI,QAAUxG,IAAIk9S,WAAW,SAAW59S,GAAI,SAAWkH,GAAI,UAAYxG,KAE3L,SAASu8S,WAAW1rT,GAAGoE,GAAGC,IACxB,OAAOrE,GAAI,EAAI,IAAIyrT,OAAOxlT,KAAKivM,MAAM7wM,GAAGD,IAAKqjT,GAAYxhT,KAAK6E,KAAK1G,GAAIA,GAAIC,GAAIA,IAAIrE,IAAK,IAAIyrT,OAAOvsP,IAAKA,IAAKl/D,IAE/G,SAASssT,WAAW79S,IAClB,OAAOA,GAAI,WAAaA,GAAIA,GAAIA,IAAKA,GAAI,EAAI,IAAM,SAErD,SAAS89S,WAAW99S,IAClB,OAAOA,GAAI,QAAUxI,KAAKq5B,IAAI7wB,GAAG,EAAI,GAAK,SAAWA,GAAI,EAAI,GAE/D,SAAS49S,WAAWzrT,IAClB,OAAOqF,KAAKm5B,MAAM,KAAOx+B,IAAK,OAAS,MAAQA,GAAI,MAAQqF,KAAKq5B,IAAI1+B,GAAG,EAAI,KAAO,OAGpF,SAAS4qT,OAAO5qT,GAAG6qB,GAAGpnB,IACpB,OAAON,gBAAgBynT,QAAeznT,KAAKnD,IAAMA,GAAGmD,KAAK0nB,IAAMA,QAAG1nB,KAAKM,IAAMA,KAAK8W,UAAU/Y,OAAS,EAAIxB,cAAa4qT,OAAS,IAAIA,OAAO5qT,GAAEA,EAAGA,GAAE6qB,EAAG7qB,GAAEyD,GAAK8mT,aAAa,GAAKvqT,GAAG4qT,OAAQF,YAAc,IAAIE,OAAO5qT,GAAG6qB,GAAGpnB,IAEzN,SAASmoT,aAAazrT,IACpB,OAAO,IAAIyqT,OAAOzqT,IAAS,GAAIA,IAAS,EAAI,IAAa,IAARA,IAEnD,SAAS0rT,aAAa1rT,IACpB,OAAOyrT,aAAazrT,IAAS,GApC/BorT,GAAgBN,SAAW,SAAStoT,IAClC,OAAO,IAAIooT,OAAO1lT,KAAKoC,IAAI,IAAKtE,KAAK/D,EAAIisT,IAAY9wS,UAAU/Y,OAASmB,GAAI,IAAKQ,KAAKK,EAAGL,KAAKM,IAEhG8nT,GAAgBp/G,OAAS,SAASxpM,IAChC,OAAO,IAAIooT,OAAO1lT,KAAKqC,IAAI,EAAGvE,KAAK/D,EAAIisT,IAAY9wS,UAAU/Y,OAASmB,GAAI,IAAKQ,KAAKK,EAAGL,KAAKM,IAE9F8nT,GAAgB/jT,IAAM,WACpB,OAAOgkT,WAAWroT,KAAK/D,EAAG+D,KAAKK,EAAGL,KAAKM,IAqBzC+K,GAAGhH,IAAMojT,OAUT,IAAIkB,GAAkBlB,OAAO5pT,UAAY,IAAIqpT,SAoB7C,SAAS0B,WAAWrpT,IAClB,OAAOA,GAAI,GAAK,IAAM2C,KAAKqC,IAAI,EAAGhF,IAAGoZ,SAAS,IAAMzW,KAAKoC,IAAI,IAAK/E,IAAGoZ,SAAS,IAEhF,SAASyuS,aAAa7nN,GAAQl7F,GAAKM,IACjC,IAAyB87I,GAAI+mK,GAAI/hT,GAA7B5I,GAAI,EAAG6qB,GAAI,EAAGpnB,GAAI,EAEtB,GADAmgJ,GAAK,mBAAmBx5C,KAAK1H,GAASA,GAAO9oF,eAG3C,OADA+wS,GAAK/mK,GAAG,GAAG/zI,MAAM,KACT+zI,GAAG,IACV,IAAK,MAEF,OAAO97I,GAAI0qB,WAAWm4R,GAAG,IAAKn4R,WAAWm4R,GAAG,IAAM,IAAKn4R,WAAWm4R,GAAG,IAAM,KAG9E,IAAK,MAEF,OAAOnjT,GAAIwkT,mBAAmBrB,GAAG,IAAKqB,mBAAmBrB,GAAG,IAAKqB,mBAAmBrB,GAAG,KAI7F,OAAI/hT,GAAQqjT,GAAalsT,IAAI2iG,KACpBl7F,GAAIoB,GAAM5I,EAAG4I,GAAMiiB,EAAGjiB,GAAMnF,IAEvB,MAAVi/F,IAAuC,MAArBA,GAAOj2E,OAAO,IAAe1f,MAAMnE,GAAQqf,SAASy6E,GAAO/gG,MAAM,GAAI,OACnE,IAAlB+gG,GAAOlhG,QACTxB,IAAa,KAAR4I,KAAiB,EACtB5I,IAAIA,IAAK,EACT6qB,GAAY,IAARjiB,GACJiiB,IAAIA,IAAK,EACTpnB,GAAY,GAARmF,GACJnF,IAAIA,IAAK,GACkB,IAAlBi/F,GAAOlhG,SAChBxB,IAAa,SAAR4I,KAAqB,GAC1BiiB,IAAa,MAARjiB,KAAkB,EACvBnF,GAAY,IAARmF,KAGDpB,GAAIxH,GAAG6qB,GAAGpnB,KAEnB,SAAS+mT,WAAWxqT,GAAG6qB,GAAGpnB,IACxB,IAA0FkrD,GAAGxtD,GAAzFsG,GAAMpC,KAAKoC,IAAIzH,IAAK,IAAK6qB,IAAK,IAAKpnB,IAAK,KAAMiE,GAAMrC,KAAKqC,IAAI1H,GAAG6qB,GAAGpnB,IAAIjE,GAAIkI,GAAMD,GAAWrI,IAAKsI,GAAMD,IAAO,EASlH,OARIjI,IACF2B,GAAI/B,GAAI,GAAKI,IAAKkI,GAAMD,IAAOjI,IAAK,EAAIkI,GAAMD,IAChCknD,GAAV3uD,IAAK0H,IAAUmjB,GAAIpnB,IAAKjE,IAAKqrB,GAAIpnB,GAAI,EAAI,GAAaonB,IAAKnjB,IAAUjE,GAAIzD,IAAKR,GAAI,GAAaQ,GAAI6qB,IAAKrrB,GAAI,EAChHmvD,IAAK,KAELA,GAAI2P,IACJn9D,GAAI/B,GAAI,GAAKA,GAAI,EAAI,EAAIuvD,IAEpB,IAAI27P,OAAO37P,GAAGxtD,GAAG/B,IAE1B,SAAS4rT,WAAWhrT,GAAG6qB,GAAGpnB,IAIxB,IAAIoK,GAAI89S,YAAY,UAHpB3rT,GAAIksT,WAAWlsT,KAGoB,UAFnC6qB,GAAIqhS,WAAWrhS,KAEmC,UADlDpnB,GAAIyoT,WAAWzoT,MAlHF,QAmHgEsR,GAAI42S,YAAY,SAAW3rT,GAAI,SAAW6qB,GAAI,QAAUpnB,IAnHrG,GAoHhC,OAAOsnT,OAAO,IAAMh2S,GAAI,GAAI,KAAOlH,GAAIkH,IAAI,KAAOA,GADuG42S,YAAY,SAAW3rT,GAAI,QAAU6qB,GAAI,SAAWpnB,IAnH/J,WAsHhD,SAASyoT,WAAWlsT,IAClB,OAAQA,IAAK,MAAQ,OAASA,GAAI,MAAQqF,KAAKq5B,KAAK1+B,GAAI,MAAQ,MAAO,KAEzE,SAASgsT,mBAAmBzsT,IAC1B,IAAIgoC,GAAI/U,WAAWjzB,IACnB,MAAkC,MAA3BA,GAAEktB,OAAOltB,GAAEiC,OAAS,GAAa6D,KAAKm5B,MAAU,KAAJ+I,IAAYA,GAlFjEukR,GAAgBb,SAAW,SAAStoT,IAClCA,GAAI0C,KAAKq5B,IAAI,GAAInkB,UAAU/Y,OAASmB,GAAI,GACxC,IAAI3C,GAAImD,KAAKnD,EAAG6qB,GAAI1nB,KAAK0nB,EAAGpnB,GAAIN,KAAKM,EAAGtE,GAAI,GAC5C,OAAKa,IAAM6qB,IAAMpnB,IACbzD,IAAKA,GAAIb,KAAGa,GAAIb,IAChB0rB,IAAKA,GAAI1rB,KAAG0rB,GAAI1rB,IAChBsE,IAAKA,GAAItE,KAAGsE,GAAItE,IACb,IAAIyrT,OAAOvlT,KAAKoC,IAAI,IAAKzH,GAAI2C,IAAI0C,KAAKoC,IAAI,IAAKojB,GAAIloB,IAAI0C,KAAKoC,IAAI,IAAKhE,GAAId,MAJrD,IAAIioT,OAAOzrT,GAAGA,GAAGA,KAM9C2sT,GAAgB3/G,OAAS,SAASxpM,IAEhC,OAAO,IAAIioT,QADXjoT,GAAI0C,KAAKq5B,IAAI,GAAInkB,UAAU/Y,OAASmB,GAAI,IAClBQ,KAAKnD,EAAG2C,GAAIQ,KAAK0nB,EAAGloB,GAAIQ,KAAKM,IAErDqoT,GAAgBhkT,IAAM,WACpB,OAAO0iT,WAAWrnT,KAAKnD,EAAGmD,KAAK0nB,EAAG1nB,KAAKM,IAEzCqoT,GAAgBhwS,SAAW,WACzB,MAAO,IAAMiwS,WAAW5oT,KAAKnD,GAAK+rT,WAAW5oT,KAAK0nB,GAAKkhS,WAAW5oT,KAAKM,IAmEzE,IAAIwoT,GAAez9S,GAAGgsC,IAAI,CACxBu6O,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,EACPC,eAAgB,SAChB5mG,KAAM,IACN6mG,WAAY,QACZC,MAAO,SACPC,UAAW,SACXE,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXC,SAAU,SACVC,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTC,QAAS,QACTC,WAAY,QACZC,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,QACNC,MAAO,MACPC,YAAa,SACbC,KAAM,QACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,QACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,QACRC,cAAe,QACf7tG,IAAK,SACL8tG,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,KAAM,SACNC,YAAa,MACbC,UAAW,QACX3qN,IAAK,SACL4qN,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,WAAY,SACZC,OAAQ,SACRC,YAAa,WAKf,SAASmuB,WAAWzpT,IAClB,MAAoB,mBAANA,GAAmBA,GAAI,WACnC,OAAOA,IAKX,SAAS0pT,WAAWC,IAClB,OAAO,SAAS/pP,GAAKgqP,GAAU3kP,IAG7B,OAFyB,IAArBptD,UAAU/Y,QAAoC,mBAAb8qT,KAAyB3kP,GAAW2kP,GACzEA,GAAW,MACJC,OAAOjqP,GAAKgqP,GAAUD,GAAU1kP,KAG3C,SAAS4kP,OAAOjqP,GAAKgqP,GAAUD,GAAU1kP,IACvC,IAAI6kP,GAAM,GAAIt6R,GAAW1jB,GAAG0jB,SAAS,aAAc,WAAY,OAAQ,SAAUu6R,GAAU,GAAIC,GAAU,IAAIC,eAAkBC,GAAe,KAK9I,SAASC,UACP,IAA6BxiT,GAAzBq4D,GAASgqP,GAAQhqP,OACrB,IAAKA,IAwET,SAASoqP,kBAAkBJ,IACzB,IAAIj6S,GAAOi6S,GAAQE,aACnB,OAAOn6S,IAAiB,SAATA,GAAkBi6S,GAAQL,SAAWK,GAAQK,aA1E3CD,CAAkBJ,KAAYhqP,IAAU,KAAOA,GAAS,KAAkB,MAAXA,GAAgB,CAC5F,IACEr4D,GAASgiT,GAAShtT,KAAKmtT,GAAKE,IAC5B,MAAO3vS,IAEP,YADAmV,GAAS9U,MAAM/d,KAAKmtT,GAAKzvS,IAG3BmV,GAAS86R,KAAK3tT,KAAKmtT,GAAKniT,SAExB6nB,GAAS9U,MAAM/d,KAAKmtT,GAAKE,IAwD7B,OAvEIvpT,KAAK8pT,kBAAoB,oBAAqBP,KAAY,oBAAoBloT,KAAK89D,MAAMoqP,GAAU,IAAIO,gBAC3G,WAAYP,GAAUA,GAAQxqE,OAASwqE,GAAQpqE,QAAUuqE,QAAUH,GAAQQ,mBAAqB,WAC9FR,GAAQS,WAAa,GAAKN,WAgB5BH,GAAQU,WAAa,SAAS/5R,IAC5B,IAAI1zB,GAAI6O,GAAG6kB,MACX7kB,GAAG6kB,MAAQA,GACX,IACEnB,GAASiI,SAAS96B,KAAKmtT,GAAKE,IAC5B,QACAl+S,GAAG6kB,MAAQ1zB,KAGf6sT,GAAIz4C,OAAS,SAASt0Q,GAAMU,IAE1B,OADAV,IAAQA,GAAO,IAAIma,cACfW,UAAU/Y,OAAS,EAAUirT,GAAQhtT,KAC5B,MAATU,UAAsBssT,GAAQhtT,IAAYgtT,GAAQhtT,IAAQU,GAAQ,GAC/DqsT,KAETA,GAAIF,SAAW,SAASnsT,IACtB,OAAKoa,UAAU/Y,QACf8qT,GAAoB,MAATnsT,GAAgB,KAAOA,GAAQ,GACnCqsT,IAFuBF,IAIhCE,GAAII,aAAe,SAASzsT,IAC1B,OAAKoa,UAAU/Y,QACforT,GAAezsT,GACRqsT,IAFuBI,IAIhCJ,GAAIH,SAAW,SAASlsT,IAEtB,OADAksT,GAAWlsT,GACJqsT,IAET,CAAE,MAAO,QAAS92P,SAAQ,SAAS3iB,IACjCy5Q,GAAIz5Q,IAAU,WACZ,OAAOy5Q,GAAIa,KAAKxrT,MAAM2qT,GAAK,CAAEz5Q,IAAS1rC,OAAOszS,SAASpgS,iBAG1DiyS,GAAIa,KAAO,SAASt6Q,GAAQ1pC,GAAMs+D,IAIhC,GAHyB,IAArBptD,UAAU/Y,QAAgC,mBAAT6H,KAAqBs+D,GAAWt+D,GAAMA,GAAO,MAClFqjT,GAAQv/F,KAAKp6K,GAAQuvB,IAAK,GACV,MAAZgqP,IAAsB,WAAYG,KAAUA,GAAgB,OAAIH,GAAW,QAC3EI,GAAQY,iBAAkB,IAAK,IAAI7tT,MAAQgtT,GAASC,GAAQY,iBAAiB7tT,GAAMgtT,GAAQhtT,KAQ/F,OAPgB,MAAZ6sT,IAAoBI,GAAQa,kBAAkBb,GAAQa,iBAAiBjB,IACvD,MAAhBM,KAAsBF,GAAQE,aAAeA,IACjC,MAAZjlP,IAAkB6kP,GAAI/8S,GAAG,QAASk4D,IAAUl4D,GAAG,QAAQ,SAASi9S,IAClE/kP,GAAS,KAAM+kP,OAEjBx6R,GAASs7R,WAAWnuT,KAAKmtT,GAAKE,IAC9BA,GAAQW,KAAa,MAARhkT,GAAe,KAAOA,IAC5BmjT,IAETA,GAAIiB,MAAQ,WAEV,OADAf,GAAQe,QACDjB,IAETh+S,GAAG+lB,OAAOi4R,GAAKt6R,GAAU,MACN,MAAZy1C,GAAmB6kP,GAAMA,GAAIzsT,IAEtC,SAAS2tT,mBAAmB/lP,IAC1B,OAA2B,IAApBA,GAASnmE,OAAe,SAAS4b,GAAOsvS,IAC7C/kP,GAAkB,MAATvqD,GAAgBsvS,GAAU,OACjC/kP,GALoC+lP,CAAmB/lP,KA1F7DskP,GAAav2P,SAAQ,SAASj1D,GAAKN,IACjC8rT,GAAa3+S,IAAI7M,GAAKmrT,aAAazrT,QAOrCqO,GAAGm/S,QAAUxB,WACb39S,GAAGg+S,IAAMJ,WAAW7O,aA4FpB/uS,GAAGo/S,IAAM,SAASC,GAAWvB,IAC3B,IAAIwB,GAAW,IAAI1mR,OAAO,KAAOymR,GAAY,OAAQE,GAAgBF,GAAU3pP,WAAW,GAC1F,SAAS0pP,IAAItrP,GAAK0Z,GAAKrU,IACjBptD,UAAU/Y,OAAS,IAAGmmE,GAAWqU,GAAKA,GAAM,MAChD,IAAIwwO,GAAMD,OAAOjqP,GAAKgqP,GAAiB,MAAPtwO,GAAcqwO,SAAW2B,cAAchyO,IAAMrU,IAI7E,OAHA6kP,GAAIxwO,IAAM,SAASnX,IACjB,OAAOtqD,UAAU/Y,OAASgrT,GAAIH,SAAsB,OAAZrwO,GAAMnX,IAAawnP,SAAW2B,cAAcnpP,KAAMmX,IAErFwwO,GAET,SAASH,SAASK,IAChB,OAAOkB,IAAIl6G,MAAMg5G,GAAQK,cAE3B,SAASiB,cAAczmR,IACrB,OAAO,SAASmlR,IACd,OAAOkB,IAAIl6G,MAAMg5G,GAAQK,aAAcxlR,KA+E3C,SAAS0mR,UAAUjyO,IACjB,OAAOA,GAAIxhC,IAAIslI,aAAav7K,KAAKspT,IAEnC,SAAS/tI,YAAYnxK,IACnB,OAAOm/S,GAAStpT,KAAKmK,IAAQ,IAAMA,GAAK6I,QAAQ,MAAO,MAAQ,IAAM7I,GAEvE,OAlFAi/S,IAAIl6G,MAAQ,SAAS/kM,GAAM44B,IACzB,IAAI5nC,GACJ,OAAOiuT,IAAIM,UAAUv/S,IAAM,SAASqtE,GAAK78E,IACvC,GAAIQ,GAAG,OAAOA,GAAEq8E,GAAK78E,GAAI,GACzB,IAAIqE,GAAI,IAAIc,SAAS,IAAK,WAAa03E,GAAIxhC,KAAI,SAAS/6C,GAAMN,IAC5D,OAAOu/K,KAAKC,UAAUl/K,IAAQ,OAASN,GAAI,OAC1CoF,KAAK,KAAO,KACf5E,GAAI4nC,GAAI,SAASy0C,GAAK78E,IACpB,OAAOooC,GAAE/jC,GAAEw4E,IAAM78E,KACfqE,OAGRoqT,IAAIM,UAAY,SAASv/S,GAAM44B,IAC7B,IAAkEnnC,GAAG+tT,GAAjEC,GAAM,GAAIC,GAAM,GAAIx3J,GAAO,GAAI5/F,GAAItoD,GAAKnN,OAAQ8sT,GAAI,EAAG3tT,GAAI,EAC/D,SAASonI,QACP,GAAIumL,IAAKr3P,GAAG,OAAOo3P,GACnB,GAAIF,GAAK,OAAOA,IAAM,EAAOC,GAC7B,IAAI9rT,GAAIgsT,GACR,GAA2B,KAAvB3/S,GAAKu1D,WAAW5hE,IAAW,CAE7B,IADA,IAAInD,GAAImD,GACDnD,KAAM83D,IACX,GAA2B,KAAvBtoD,GAAKu1D,WAAW/kE,IAAW,CAC7B,GAA+B,KAA3BwP,GAAKu1D,WAAW/kE,GAAI,GAAW,QACjCA,GAWN,OARAmvT,GAAInvT,GAAI,EAEE,MADNI,GAAIoP,GAAKu1D,WAAW/kE,GAAI,KAE1BgvT,IAAM,EACyB,KAA3Bx/S,GAAKu1D,WAAW/kE,GAAI,MAAamvT,IACtB,KAAN/uT,KACT4uT,IAAM,GAEDx/S,GAAKhN,MAAMW,GAAI,EAAGnD,IAAGqY,QAAQ,MAAO,KAE7C,KAAO82S,GAAIr3P,IAAG,CACZ,IAAI13D,GAA0BoD,GAAI,EAClC,GAAU,MADNpD,GAAIoP,GAAKu1D,WAAWoqP,OACVH,IAAM,OAAW,GAAU,KAAN5uT,GACjC4uT,IAAM,EACqB,KAAvBx/S,GAAKu1D,WAAWoqP,QAAaA,KAAK3rT,SACjC,GAAIpD,KAAMwuT,GAAe,SAChC,OAAOp/S,GAAKhN,MAAMW,GAAGgsT,GAAI3rT,IAE3B,OAAOgM,GAAKhN,MAAMW,IAEpB,MAAQlC,GAAI2nI,WAAasmL,IAAK,CAE5B,IADA,IAAI7qT,GAAI,GACDpD,KAAMguT,IAAOhuT,KAAMiuT,IACxB7qT,GAAEY,KAAKhE,IACPA,GAAI2nI,QAEFxgG,IAAwB,OAAlB/jC,GAAI+jC,GAAE/jC,GAAG7C,QACnBk2J,GAAKzyJ,KAAKZ,IAEZ,OAAOqzJ,IAET+2J,IAAIlrN,OAAS,SAASm0D,IACpB,GAAI90J,MAAMkL,QAAQ4pJ,GAAK,IAAK,OAAO+2J,IAAIW,WAAW13J,IAClD,IAAI23J,GAAW,IAAIlR,OAAUmR,GAAS,GAQtC,OAPA53J,GAAKnhG,SAAQ,SAASsmB,IACpB,IAAK,IAAI0yO,MAAS1yO,GACXwyO,GAASh4P,IAAIk4P,KAChBD,GAAOrqT,KAAKoqT,GAASpzS,IAAIszS,QAIxB,CAAED,GAAOj0Q,IAAIslI,aAAav7K,KAAKspT,KAAaxmT,OAAOwvJ,GAAKr8G,KAAI,SAASwhC,IAC1E,OAAOyyO,GAAOj0Q,KAAI,SAASk0Q,IACzB,OAAO5uI,YAAY9jG,GAAI0yO,QACtBnqT,KAAKspT,QACNtpT,KAAK,OAEXqpT,IAAIW,WAAa,SAAS13J,IACxB,OAAOA,GAAKr8G,IAAIyzQ,WAAW1pT,KAAK,OAQ3BqpT,KAETp/S,GAAGmgT,IAAMngT,GAAGo/S,IAAI,IAAK,YACrBp/S,GAAGogT,IAAMpgT,GAAGo/S,IAAI,KAAK,6BACrB,IAAIiB,GAAoBC,GAAoBC,GAAmBC,GAAkBC,GAAiB9rT,KAAKs6S,gBAAgBt6S,KAAM,2BAA6B,SAASwkE,IACjK2C,WAAW3C,GAAU,KAKvB,SAASunP,SAASvnP,GAAU53D,GAAO8pB,IACjC,IAAIl5B,GAAI4Z,UAAU/Y,OACdb,GAAI,IAAGoP,GAAQ,GACfpP,GAAI,IAAGk5B,GAAO5d,KAAK8d,OACvB,IAAI6wC,GAAO/wC,GAAO9pB,GAAO46D,GAAQ,CAC/BprE,EAAGooE,GACHvnE,EAAGwqE,GACHjqE,EAAG,MASL,OAPImuT,GAAoBA,GAAmBnuT,EAAIgqE,GAAYkkP,GAAqBlkP,GAChFmkP,GAAqBnkP,GAChBokP,KACHC,GAAmB7jP,aAAa6jP,IAChCD,GAAoB,EACpBE,GAAeE,gBAEVxkP,GAET,SAASwkP,gBACP,IAAIp1R,GAAMq1R,gBAAiBr/S,GAAQs/S,iBAAmBt1R,GAClDhqB,GAAQ,IACN/C,SAAS+C,MACXo7D,aAAa6jP,IACbA,GAAmB1kP,WAAW6kP,cAAep/S,KAE/Cg/S,GAAoB,IAEpBA,GAAoB,EACpBE,GAAeE,gBAOnB,SAASC,gBAEP,IADA,IAAIr1R,GAAM9d,KAAK8d,MAAO4wC,GAAQkkP,GACvBlkP,IACD5wC,IAAO4wC,GAAMvqE,GAAKuqE,GAAMprE,EAAEw6B,GAAM4wC,GAAMvqE,KAAIuqE,GAAMprE,EAAI,MACxDorE,GAAQA,GAAMhqE,EAEhB,OAAOo5B,GAET,SAASs1R,iBAEP,IADA,IAAIniT,GAAI6rB,GAAK81R,GAAoBjkP,GAAOlgE,IACjCquB,IACDA,GAAGx5B,GACDw5B,GAAG34B,EAAIwqE,KAAMA,GAAO7xC,GAAG34B,GAC3B24B,IAAM7rB,GAAK6rB,IAAIp4B,GAEfo4B,GAAK7rB,GAAKA,GAAGvM,EAAIo4B,GAAGp4B,EAAIkuT,GAAqB91R,GAAGp4B,EAIpD,OADAmuT,GAAqB5hT,GACd09D,GAET,SAAS0kP,oBAAoBzhT,GAAG3M,IAC9B,OAAOA,IAAK2M,GAAIxI,KAAKs5B,KAAKt5B,KAAKykB,IAAIjc,IAAKxI,KAAKywC,MAAQ,GA5DvDtnC,GAAGm8D,MAAQ,WACTukP,SAASrtT,MAAMsB,KAAMoX,YAiCvB/L,GAAGm8D,MAAM0rB,MAAQ,WACf+4N,gBACAC,kBA0BF7gT,GAAGgwB,MAAQ,SAAS3wB,GAAGlN,IACrB,OAAOA,GAAI0E,KAAKm5B,MAAM3wB,IAAKlN,GAAI0E,KAAKq5B,IAAI,GAAI/9B,MAAOA,GAAI0E,KAAKm5B,MAAM3wB,KAEpE,IAAI0hT,GAAoB,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM/0Q,KAW/G,SAASg1Q,gBAAgBhwT,GAAGL,IAC1B,IAAIwD,GAAI0C,KAAKq5B,IAAI,GAAiB,EAAb/nB,GAAI,EAAIxX,KAC7B,MAAO,CACLokE,MAAOpkE,GAAI,EAAI,SAASK,IACtB,OAAOA,GAAImD,IACT,SAASnD,IACX,OAAOA,GAAImD,IAEbioF,OAAQprF,OAGZ,SAASiwT,uBAAuBlmM,IAC9B,IAAImmM,GAAiBnmM,GAAO0c,QAAS0pL,GAAmBpmM,GAAO2c,UAAW0pL,GAAkBrmM,GAAO4c,SAAU0pL,GAAkBtmM,GAAO6c,SAAU0pL,GAAcF,IAAmBD,GAAmB,SAASxvT,GAAOwgB,IAElN,IADA,IAAIxhB,GAAIgB,GAAMqB,OAAQpB,GAAI,GAAIkC,GAAI,EAAGuoB,GAAI+kS,GAAgB,GAAIpuT,GAAS,EAC/DrC,GAAI,GAAK0rB,GAAI,IACdrpB,GAASqpB,GAAI,EAAIlK,KAAOkK,GAAIxlB,KAAKqC,IAAI,EAAGiZ,GAAQnf,KACpDpB,GAAEgE,KAAKjE,GAAMmZ,UAAUna,IAAK0rB,GAAG1rB,GAAI0rB,QAC9BrpB,IAAUqpB,GAAI,GAAKlK,MACxBkK,GAAI+kS,GAAgBttT,IAAKA,GAAI,GAAKstT,GAAgBpuT,QAEpD,OAAOpB,GAAE0rD,UAAUvnD,KAAKorT,KACtBpS,YACJ,OAAO,SAASwS,IACd,IAAItoS,GAAQuoS,GAAa5lN,KAAK2lN,IAAY5+S,GAAOsW,GAAM,IAAM,IAAKwhF,GAAQxhF,GAAM,IAAM,IAAK07C,GAAO17C,GAAM,IAAM,IAAKmjE,GAASnjE,GAAM,IAAM,GAAIwoS,GAAQxoS,GAAM,GAAI9G,IAAS8G,GAAM,GAAIyoS,GAAQzoS,GAAM,GAAIm3B,GAAYn3B,GAAM,GAAIhV,GAAOgV,GAAM,GAAI87C,GAAQ,EAAGtH,GAAS,GAAIr0D,GAAS,GAAI04I,IAAU,EAAOpgG,IAAW,EAM3S,OALItB,KAAWA,IAAaA,GAAUtlC,UAAU,KAC5C22S,IAAkB,MAAT9+S,IAA0B,MAAV83F,MAC3BgnN,GAAQ9+S,GAAO,IACf83F,GAAQ,KAEFx2F,IACP,IAAK,IACJy9S,IAAQ,EACRz9S,GAAO,IACP,MAED,IAAK,IACJ8wD,GAAQ,IACR37D,GAAS,IACT6K,GAAO,IACP,MAED,IAAK,IACJ8wD,GAAQ,IACR37D,GAAS,IACT6K,GAAO,IACP,MAED,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACW,MAAXm4E,KAAgB3uB,GAAS,IAAMxpD,GAAKmH,eAEzC,IAAK,IACJsmC,IAAW,EAEZ,IAAK,IACJogG,IAAU,EACV1hG,GAAY,EACZ,MAED,IAAK,IACJ2kB,IAAS,EACT9wD,GAAO,IAGM,MAAXm4E,KAAgB3uB,GAAS4zP,GAAgB,GAAIjoT,GAASioT,GAAgB,IAC9D,KAARp9S,IAAgBmsC,KAAWnsC,GAAO,KACrB,MAAbmsC,KACU,KAARnsC,GAAamsC,GAAYv5C,KAAKqC,IAAI,EAAGrC,KAAKoC,IAAI,GAAIm3C,KAA8B,KAARnsC,IAAuB,KAARA,KAAamsC,GAAYv5C,KAAKqC,IAAI,EAAGrC,KAAKoC,IAAI,GAAIm3C,OAE/InsC,GAAO09S,GAAgBpwT,IAAI0S,KAAS29S,sBACpC,IAAIC,GAASJ,IAASC,GACtB,OAAO,SAAS/vT,IACd,IAAImwT,GAAa1oT,GACjB,GAAI04I,IAAWngJ,GAAQ,EAAG,MAAO,GACjC,IAAI21G,GAAW31G,GAAQ,GAAe,IAAVA,IAAe,EAAIA,GAAQ,GAAKA,IAASA,GAAO,KAAgB,MAATgjE,GAAe,GAAKA,GACvG,GAAII,GAAQ,EAAG,CACb,IAAI+3D,GAAO9sH,GAAG+hT,aAAapwT,GAAOy+C,IAClCz+C,GAAQm7H,GAAK/3D,MAAMpjE,IACnBmwT,GAAah1L,GAAK1wC,OAAShjF,QAE3BzH,IAASojE,GAGX,IAAgC0/O,GAAQuN,GAApCrxT,IADJgB,GAAQsS,GAAKtS,GAAOy+C,KACNoyN,YAAY,KAC1B,GAAI7xQ,GAAI,EAAG,CACT,IAAImD,GAAI49C,GAAW//C,GAAM6wQ,YAAY,MAAQ,EACzC1uQ,GAAI,GAAG2gT,GAAS9iT,GAAOqwT,GAAQ,KAASvN,GAAS9iT,GAAMmZ,UAAU,EAAGhX,IAAIkuT,GAAQrwT,GAAMmZ,UAAUhX,UAEpG2gT,GAAS9iT,GAAMmZ,UAAU,EAAGna,IAC5BqxT,GAAQd,GAAiBvvT,GAAMmZ,UAAUna,GAAI,IAE1C8wT,IAASC,KAAOjN,GAAS6M,GAAY7M,GAAQv4S,MAClD,IAAIlJ,GAASy6D,GAAOz6D,OAASyhT,GAAOzhT,OAASgvT,GAAMhvT,QAAU6uT,GAAS,EAAIv6M,GAASt0G,QAASsxB,GAAUtxB,GAASmf,GAAQ,IAAI5e,MAAMP,GAASmf,GAAQnf,GAAS,GAAG+C,KAAK4M,IAAQ,GAI3K,OAHIk/S,KAAQpN,GAAS6M,GAAYh9R,GAAUmwR,GAAQnwR,GAAQtxB,OAASmf,GAAQ6vS,GAAMhvT,OAASkJ,MAC3ForG,IAAY75C,GACZ97D,GAAQ8iT,GAASuN,IACC,MAAVvnN,GAAgB6M,GAAW31G,GAAQ2yB,GAAoB,MAAVm2E,GAAgBn2E,GAAUgjF,GAAW31G,GAAkB,MAAV8oG,GAAgBn2E,GAAQxZ,UAAU,EAAG9X,KAAW,GAAKs0G,GAAW31G,GAAQ2yB,GAAQxZ,UAAU9X,IAAUs0G,IAAYu6M,GAASlwT,GAAQ2yB,GAAU3yB,KAAUmwT,KA5G7P9hT,GAAG+hT,aAAe,SAASpwT,GAAOy+C,IAChC,IAAIz/C,GAAI,EAOR,OANIgB,IAASA,MACPA,GAAQ,IAAGA,KAAU,GACrBy+C,KAAWz+C,GAAQqO,GAAGgwB,MAAMr+B,GAAOmvT,oBAAoBnvT,GAAOy+C,MAClEz/C,GAAI,EAAIkG,KAAKyN,MAAM,MAAQzN,KAAKykB,IAAI3pB,IAASkF,KAAKywC,MAClD32C,GAAIkG,KAAKqC,KAAK,GAAIrC,KAAKoC,IAAI,GAA8B,EAA1BpC,KAAKyN,OAAO3T,GAAI,GAAK,MAE/CowT,GAAkB,EAAIpwT,GAAI,IAwGnC,IAAI6wT,GAAe,yEACfG,GAAkB3hT,GAAGgsC,IAAI,CAC3B/2C,EAAG,SAASoK,IACV,OAAOA,GAAEiO,SAAS,IAEpBvc,EAAG,SAASsO,IACV,OAAOmT,OAAOC,aAAapT,KAE7BlO,EAAG,SAASkO,IACV,OAAOA,GAAEiO,SAAS,IAEpBjO,EAAG,SAASA,IACV,OAAOA,GAAEiO,SAAS,KAEpBmD,EAAG,SAASpR,IACV,OAAOA,GAAEiO,SAAS,IAAI4lK,eAExB72J,EAAG,SAAShd,GAAG3M,IACb,OAAO2M,GAAEmgM,YAAY9sM,KAEvB6b,EAAG,SAASlP,GAAG3M,IACb,OAAO2M,GAAE4iT,cAAcvvT,KAEzBqmC,EAAG,SAAS15B,GAAG3M,IACb,OAAO2M,GAAEm9Q,QAAQ9pR,KAEnBlB,EAAG,SAAS6N,GAAG3M,IACb,OAAQ2M,GAAIW,GAAGgwB,MAAM3wB,GAAGyhT,oBAAoBzhT,GAAG3M,MAAK8pR,QAAQ3lR,KAAKqC,IAAI,EAAGrC,KAAKoC,IAAI,GAAI6nT,oBAAoBzhT,IAAK,EAAI,OAAQ3M,UAG9H,SAASkvT,sBAAsBviT,IAC7B,OAAOA,GAAI,GAEb,IAAI6iT,GAAUliT,GAAGo8D,KAAO,GAAI+lP,GAAU10S,KACtC,SAAS20S,cACPztT,KAAK0hE,EAAI,IAAI5oD,KAAK1B,UAAU/Y,OAAS,EAAIya,KAAK+tQ,IAAInoR,MAAMsB,KAAMoX,WAAaA,UAAU,IAEvFq2S,YAAY5vT,UAAY,CACtBud,QAAS,WACP,OAAOpb,KAAK0hE,EAAEslN,cAEhB0mC,OAAQ,WACN,OAAO1tT,KAAK0hE,EAAEisP,aAEhBzyS,YAAa,WACX,OAAOlb,KAAK0hE,EAAEksP,kBAEhB3yS,SAAU,WACR,OAAOjb,KAAK0hE,EAAE8lN,eAEhBpB,gBAAiB,WACf,OAAOpmR,KAAK0hE,EAAEykN,sBAEhBvnG,WAAY,WACV,OAAO5+K,KAAK0hE,EAAEukN,iBAEhB9qQ,SAAU,WACR,OAAOnb,KAAK0hE,EAAEqlN,eAEhBloG,WAAY,WACV,OAAO7+K,KAAK0hE,EAAEwkN,iBAEhBzmD,QAAS,WACP,OAAOz/N,KAAK0hE,EAAE+9J,WAEhBsmD,kBAAmB,WACjB,OAAO,GAET9uD,QAAS,WACP,OAAOj3N,KAAK0hE,EAAEu1J,WAEhB42F,QAAS,WACPC,GAAkBC,WAAWrvT,MAAMsB,KAAK0hE,EAAGtqD,YAE7C42S,OAAQ,WACNF,GAAkBG,UAAUvvT,MAAMsB,KAAK0hE,EAAGtqD,YAE5C82S,YAAa,WACXJ,GAAkBhnC,eAAepoR,MAAMsB,KAAK0hE,EAAGtqD,YAEjDyD,SAAU,WACRizS,GAAkBK,YAAYzvT,MAAMsB,KAAK0hE,EAAGtqD,YAE9C4D,gBAAiB,WACf8yS,GAAkBM,mBAAmB1vT,MAAMsB,KAAK0hE,EAAGtqD,YAErD0D,WAAY,WACVgzS,GAAkBO,cAAc3vT,MAAMsB,KAAK0hE,EAAGtqD,YAEhDk3S,SAAU,WACRR,GAAkBxlC,YAAY5pR,MAAMsB,KAAK0hE,EAAGtqD,YAE9C2D,WAAY,WACV+yS,GAAkBS,cAAc7vT,MAAMsB,KAAK0hE,EAAGtqD,YAEhDo3S,QAAS,WACPV,GAAkBU,QAAQ9vT,MAAMsB,KAAK0hE,EAAGtqD,aAG5C,IAAI02S,GAAoBh1S,KAAKjb,UAC7B,SAAS4wT,iBAAiBt5S,GAAO8vB,GAAM0W,IACrC,SAAStgB,MAAMhkB,IACb,IAAIg0I,GAAKl2I,GAAMkC,IAAOi0I,GAAKpzI,OAAOmzI,GAAI,GACtC,OAAOh0I,GAAOg0I,GAAKC,GAAKj0I,GAAOg0I,GAAKC,GAEtC,SAAS9vH,KAAKnkB,IAEZ,OADA4tB,GAAK5tB,GAAOlC,GAAM,IAAIq4S,GAAQn2S,GAAO,IAAK,GACnCA,GAET,SAASa,OAAOb,GAAM7X,IAEpB,OADAylC,GAAK5tB,GAAO,IAAIm2S,IAASn2S,IAAO7X,IACzB6X,GAET,SAAS3D,MAAM3J,GAAI6rB,GAAIg8L,IACrB,IAAInqJ,GAAOjsC,KAAKzxB,IAAK+iB,GAAQ,GAC7B,GAAI8kM,GAAK,EACP,KAAOnqJ,GAAO7xC,IACN+lB,GAAO8rB,IAAQmqJ,IAAK9kM,GAAM7rB,KAAK,IAAI6X,MAAM2uD,KAC/CxiC,GAAKwiC,GAAM,QAGb,KAAOA,GAAO7xC,IAAI9I,GAAM7rB,KAAK,IAAI6X,MAAM2uD,KAAQxiC,GAAKwiC,GAAM,GAE5D,OAAO36C,GAYT3X,GAAMxF,MAAQwF,GACdA,GAAMkmB,MAAQA,MACdlmB,GAAMqmB,KAAOA,KACbrmB,GAAM+C,OAASA,OACf/C,GAAMzB,MAAQA,MACd,IAAI4yG,GAAMnxG,GAAMmxG,IAAMooM,qBAAqBv5S,IAM3C,OALAmxG,GAAI32G,MAAQ22G,GACZA,GAAIjrF,MAAQqzR,qBAAqBrzR,OACjCirF,GAAI9qF,KAAOkzR,qBAAqBlzR,MAChC8qF,GAAIpuG,OAASw2S,qBAAqBx2S,QAClCouG,GAAI5yG,MApBJ,SAASi7S,UAAU5kT,GAAI6rB,GAAIg8L,IACzB,IACE47F,GAAUC,YACV,IAAInnM,GAAM,IAAImnM,YAEd,OADAnnM,GAAI5kD,EAAI33D,GACD2J,MAAM4yG,GAAK1wF,GAAIg8L,IACtB,QACA47F,GAAU10S,OAcP3D,GAET,SAASu5S,qBAAqB9+Q,IAC5B,OAAO,SAASv4B,GAAM7X,IACpB,IACEguT,GAAUC,YACV,IAAInnM,GAAM,IAAImnM,YAEd,OADAnnM,GAAI5kD,EAAIrqD,GACDu4B,GAAO02E,GAAK9mH,IAAGkiE,EACtB,QACA8rP,GAAU10S,OAoDhB,SAAS81S,qBAAqBxoM,IAC5B,IAAIyoM,GAAkBzoM,GAAOyc,SAAUisL,GAAc1oM,GAAO/uG,KAAM03S,GAAc3oM,GAAO3+C,KAAMunP,GAAiB5oM,GAAOwc,QAASqsL,GAAc7oM,GAAOoc,KAAM0sL,GAAmB9oM,GAAOqc,UAAW0sL,GAAgB/oM,GAAOsc,OAAQ0sL,GAAqBhpM,GAAOuc,YACzP,SAAS0sL,eAAe3mJ,IACtB,IAAIlrK,GAAIkrK,GAASrqK,OACjB,SAASkhG,OAAOloF,IAEd,IADA,IAAgCjb,GAAG2B,GAAGqmC,GAAlCglP,GAAS,GAAIptR,IAAK,EAAGmD,GAAI,IACpBnD,GAAIwB,IACoB,KAA3BkrK,GAAS3nG,WAAW/kE,MACtBotR,GAAOnoR,KAAKynK,GAASlqK,MAAMW,GAAGnD,KAC4B,OAArD+B,GAAIuxT,GAAmBlzT,GAAIssK,GAASp/I,SAASttB,QAAcI,GAAIssK,GAASp/I,SAASttB,MAClFooC,GAAImrR,GAAgBnzT,OAAIA,GAAIgoC,GAAE/sB,GAAW,MAALtZ,GAAkB,MAAN3B,GAAY,IAAM,IAAM2B,KAC5EqrR,GAAOnoR,KAAK7E,IACZ+C,GAAInD,GAAI,GAIZ,OADAotR,GAAOnoR,KAAKynK,GAASlqK,MAAMW,GAAGnD,KACvBotR,GAAOhoR,KAAK,IA2BrB,OAzBAm+F,OAAOgxG,MAAQ,SAAS64E,IACtB,IAAI/sR,GAAI,CACNuV,EAAG,KACHzV,EAAG,EACHE,EAAG,EACHmqR,EAAG,EACHxsO,EAAG,EACHC,EAAG,EACHu1Q,EAAG,EACHC,EAAG,MAEL,GADOC,cAAcrzT,GAAGqsK,GAAU0gH,GAAQ,IACjCA,GAAO/qR,OAAQ,OAAO,KAC3B,MAAOhC,KAAGA,GAAEmqR,EAAInqR,GAAEmqR,EAAI,GAAW,GAANnqR,GAAE0B,GACjC,IAAI4xT,GAAgB,MAAPtzT,GAAEozT,GAAajC,KAAYC,YAAap2S,GAAO,IAAKs4S,GAASlC,YAAcD,IAOxF,MANI,MAAOnxT,GAAGgb,GAAK62S,YAAY7xT,GAAEuV,EAAG,EAAGvV,GAAE8C,GAAa,MAAO9C,IAAK,MAAOA,IACjE,MAAOA,KAAIA,GAAEyd,EAAI,MAAOzd,GAAI,EAAI,GACtCgb,GAAK62S,YAAY7xT,GAAEuV,EAAG,EAAG,GACzByF,GAAK62S,YAAY7xT,GAAEuV,EAAG,EAAG,MAAOvV,IAAKA,GAAEyd,EAAI,GAAK,EAAU,EAANzd,GAAEy6N,GAASz/M,GAAKq2S,SAAW,GAAK,EAAIrxT,GAAEyd,EAAU,EAANzd,GAAE26N,GAAS3/M,GAAKq2S,SAAW,GAAK,IACzHr2S,GAAK62S,YAAY7xT,GAAEuV,EAAGvV,GAAEF,EAAGE,GAAEA,GACpCgb,GAAKwD,SAASxe,GAAEmqR,GAAKnqR,GAAEozT,EAAI,IAAM,GAAIpzT,GAAE29C,EAAI39C,GAAEozT,EAAI,IAAKpzT,GAAE49C,EAAG59C,GAAEmzT,GACtDG,GAASt4S,GAAKqqD,EAAIrqD,IAE3BkoF,OAAO5mF,SAAW,WAChB,OAAO+vJ,IAEFnpE,OAET,SAASmwN,cAAcr4S,GAAMqxJ,GAAU0gH,GAAQjqR,IAE7C,IADA,IAAI/C,GAAG2B,GAAGd,GAAGjB,GAAI,EAAGwB,GAAIkrK,GAASrqK,OAAQlC,GAAIitR,GAAO/qR,OAC7CrC,GAAIwB,IAAG,CACZ,GAAI2B,IAAKhD,GAAG,OAAQ,EAEpB,GAAU,MADVC,GAAIssK,GAAS3nG,WAAW/kE,QAItB,GAFAiB,GAAIyrK,GAASp/I,OAAOttB,QACpB+B,GAAI6xT,GAAgB3yT,MAAKqyT,GAAqB5mJ,GAASp/I,OAAOttB,MAAOiB,OAC1DkC,GAAIpB,GAAEsZ,GAAM+xQ,GAAQjqR,KAAM,EAAG,OAAQ,OAC3C,GAAI/C,IAAKgtR,GAAOroN,WAAW5hE,MAChC,OAAQ,EAGZ,OAAOA,GAETkwT,eAAe/oM,IAAM,SAASoiD,IAC5B,IAAIvzJ,GAAQk6S,eAAe3mJ,IAC3B,SAASnpE,OAAOloF,IACd,IAEE,IAAIivG,GAAM,IADVknM,GAAUC,aAGV,OADAnnM,GAAI5kD,EAAIrqD,GACDlC,GAAMmxG,IACb,QACAknM,GAAU10S,MAad,OAVAymF,OAAOgxG,MAAQ,SAAS64E,IACtB,IACEokC,GAAUC,YACV,IAAIp2S,GAAOlC,GAAMo7L,MAAM64E,IACvB,OAAO/xQ,IAAQA,GAAKqqD,EACpB,QACA8rP,GAAU10S,OAGdymF,OAAO5mF,SAAWxD,GAAMwD,SACjB4mF,QAET8vN,eAAeQ,MAAQR,eAAe/oM,IAAIupM,MAAQC,oBAClD,IAAIC,GAAuB1kT,GAAGgsC,MAAO24Q,GAAgBC,iBAAiBhB,IAAciB,GAAoBC,qBAAqBlB,IAAcmB,GAAsBH,iBAAiBf,IAAmBmB,GAA0BF,qBAAqBjB,IAAmBoB,GAAkBL,iBAAiBd,IAAgBoB,GAAsBJ,qBAAqBhB,IAAgBqB,GAAwBP,iBAAiBb,IAAqBqB,GAA4BN,qBAAqBf,IACpeJ,GAAez8P,SAAQ,SAASx0D,GAAG/B,IACjC+zT,GAAqB5lT,IAAIpM,GAAE0Y,cAAeza,OAE5C,IAAIuzT,GAAkB,CACpBlvT,EAAG,SAAShE,IACV,OAAO6yT,GAAiB7yT,GAAEqxT,WAE5B//H,EAAG,SAAStxL,IACV,OAAO4yT,GAAY5yT,GAAEqxT,WAEvBptT,EAAG,SAASjE,IACV,OAAO+yT,GAAmB/yT,GAAE8e,aAE9BuoL,EAAG,SAASrnM,IACV,OAAO8yT,GAAc9yT,GAAE8e,aAEzB/e,EAAGizT,eAAeR,IAClBxyT,EAAG,SAASA,GAAG0B,IACb,OAAO2yT,kBAAkBr0T,GAAE+e,UAAWrd,GAAG,IAE3C6b,EAAG,SAASvd,GAAG0B,IACb,OAAO2yT,kBAAkBr0T,GAAE+e,UAAWrd,GAAG,IAE3CyoR,EAAG,SAASnqR,GAAG0B,IACb,OAAO2yT,kBAAkBr0T,GAAE4e,WAAYld,GAAG,IAE5CotT,EAAG,SAAS9uT,GAAG0B,IACb,OAAO2yT,kBAAkBr0T,GAAE4e,WAAa,IAAM,GAAIld,GAAG,IAEvDoB,EAAG,SAAS9C,GAAG0B,IACb,OAAO2yT,kBAAkB,EAAInD,GAAQ31S,UAAUvb,IAAI0B,GAAG,IAExDyxT,EAAG,SAASnzT,GAAG0B,IACb,OAAO2yT,kBAAkBr0T,GAAE+pR,kBAAmBroR,GAAG,IAEnD5B,EAAG,SAASE,GAAG0B,IACb,OAAO2yT,kBAAkBr0T,GAAE8e,WAAa,EAAGpd,GAAG,IAEhDi8C,EAAG,SAAS39C,GAAG0B,IACb,OAAO2yT,kBAAkBr0T,GAAEuiL,aAAc7gL,GAAG,IAE9CA,EAAG,SAAS1B,IACV,OAAO2yT,KAAiB3yT,GAAE4e,YAAc,MAE1Cg/B,EAAG,SAAS59C,GAAG0B,IACb,OAAO2yT,kBAAkBr0T,GAAEwiL,aAAc9gL,GAAG,IAE9Ci5N,EAAG,SAAS36N,GAAG0B,IACb,OAAO2yT,kBAAkBnD,GAAQoD,aAAat0T,IAAI0B,GAAG,IAEvD+b,EAAG,SAASzd,IACV,OAAOA,GAAEqxT,UAEX52F,EAAG,SAASz6N,GAAG0B,IACb,OAAO2yT,kBAAkBnD,GAAQqD,aAAav0T,IAAI0B,GAAG,IAEvD2M,EAAG2kT,eAAeP,IAClBhzS,EAAGuzS,eAAeN,IAClBn9S,EAAG,SAASvV,GAAG0B,IACb,OAAO2yT,kBAAkBr0T,GAAE6e,cAAgB,IAAKnd,GAAG,IAErDi8B,EAAG,SAAS39B,GAAG0B,IACb,OAAO2yT,kBAAkBr0T,GAAE6e,cAAgB,IAAKnd,GAAG,IAErD0xT,EAAGoB,aACH,IAAK,WACH,MAAO,MAGPjB,GAAkB,CACpBvvT,EAyBF,SAASywT,2BAA2Bz5S,GAAM+xQ,GAAQptR,IAChDo0T,GAAoBr2I,UAAY,EAChC,IAAIv8K,GAAI4yT,GAAoBnpN,KAAKmiL,GAAO5qR,MAAMxC,KAC9C,OAAOwB,IAAK6Z,GAAKyC,EAAIu2S,GAAwBzzT,IAAIY,GAAE,GAAGiZ,eAAgBza,GAAIwB,GAAE,GAAGa,SAAW,GA3B1FsvL,EA6BF,SAASojI,qBAAqB15S,GAAM+xQ,GAAQptR,IAC1Cg0T,GAAcj2I,UAAY,EAC1B,IAAIv8K,GAAIwyT,GAAc/oN,KAAKmiL,GAAO5qR,MAAMxC,KACxC,OAAOwB,IAAK6Z,GAAKyC,EAAIo2S,GAAkBtzT,IAAIY,GAAE,GAAGiZ,eAAgBza,GAAIwB,GAAE,GAAGa,SAAW,GA/BpFiC,EAiCF,SAAS0wT,yBAAyB35S,GAAM+xQ,GAAQptR,IAC9Cw0T,GAAsBz2I,UAAY,EAClC,IAAIv8K,GAAIgzT,GAAsBvpN,KAAKmiL,GAAO5qR,MAAMxC,KAChD,OAAOwB,IAAK6Z,GAAKlb,EAAIs0T,GAA0B7zT,IAAIY,GAAE,GAAGiZ,eAAgBza,GAAIwB,GAAE,GAAGa,SAAW,GAnC5FqlM,EAqCF,SAASutH,mBAAmB55S,GAAM+xQ,GAAQptR,IACxCs0T,GAAgBv2I,UAAY,EAC5B,IAAIv8K,GAAI8yT,GAAgBrpN,KAAKmiL,GAAO5qR,MAAMxC,KAC1C,OAAOwB,IAAK6Z,GAAKlb,EAAIo0T,GAAoB3zT,IAAIY,GAAE,GAAGiZ,eAAgBza,GAAIwB,GAAE,GAAGa,SAAW,GAvCtFjC,EAyCF,SAAS80T,wBAAwB75S,GAAM+xQ,GAAQptR,IAC7C,OAAO0zT,cAAcr4S,GAAMk4S,GAAgBnzT,EAAEuc,WAAYywQ,GAAQptR,KAzCjEK,EAAG80T,iBACHv3S,EAAGu3S,iBACH3qC,EAAG4qC,oBACHjG,EAAGiG,oBACHjyT,EAAGkyT,uBACH7B,EAAG8B,0BACHn1T,EAAGo1T,yBACHv3Q,EAAGw3Q,qBACHzzT,EAyCF,SAAS0zT,kBAAkBp6S,GAAM+xQ,GAAQptR,IACvC,IAAIwB,GAAIuyT,GAAqBnzT,IAAIwsR,GAAO5qR,MAAMxC,GAAGA,IAAK,GAAGya,eACzD,OAAY,MAALjZ,IAAa,GAAK6Z,GAAKtZ,EAAIP,GAAGxB,KA1CrCi+C,EAAGy3Q,qBACH16F,EAAG26F,8BACH73S,EAAG83S,2BACH96F,EAAG+6F,8BACHnnT,EA8BF,SAASonT,wBAAwBz6S,GAAM+xQ,GAAQptR,IAC7C,OAAO0zT,cAAcr4S,GAAMk4S,GAAgB7kT,EAAEiO,WAAYywQ,GAAQptR,KA9BjE8f,EAgCF,SAASi2S,wBAAwB16S,GAAM+xQ,GAAQptR,IAC7C,OAAO0zT,cAAcr4S,GAAMk4S,GAAgBzzS,EAAEnD,WAAYywQ,GAAQptR,KAhCjE4V,EAAGogT,kBACHh4R,EAAGi4R,sBACHxC,EAAGyC,kBACH,IAAKC,6BAmCP,OAAO9C,eAtQT9B,GAAQ/3S,KAAOi5S,kBAAiB,SAASp3S,IAGvC,OAFAA,GAAOk2S,GAAQ73S,IAAI2B,KACdi3S,SAAS,EAAG,GACVj3S,MACN,SAASA,GAAMa,IAChBb,GAAK62S,YAAY72S,GAAK6D,cAAgBhD,OACrC,SAASb,IACV,OAAOA,GAAK6D,iBAEdqyS,GAAQ6E,MAAQ7E,GAAQ/3S,KAAK9B,MAC7B65S,GAAQ6E,MAAM9rM,IAAMinM,GAAQ/3S,KAAK8wG,IAAI5yG,MACrC65S,GAAQ73S,IAAM+4S,kBAAiB,SAASp3S,IACtC,IAAI3B,GAAM,IAAI83S,GAAQ,IAAK,GAE3B,OADA93S,GAAIw4S,YAAY72S,GAAK6D,cAAe7D,GAAK8D,WAAY9D,GAAK+D,WACnD1F,MACN,SAAS2B,GAAMa,IAChBb,GAAKw2S,QAAQx2S,GAAK+D,UAAYlD,OAC7B,SAASb,IACV,OAAOA,GAAK+D,UAAY,KAE1BmyS,GAAQ/qL,KAAO+qL,GAAQ73S,IAAIhC,MAC3B65S,GAAQ/qL,KAAKlc,IAAMinM,GAAQ73S,IAAI4wG,IAAI5yG,MACnC65S,GAAQ31S,UAAY,SAASP,IAC3B,IAAI7B,GAAO+3S,GAAQ/3S,KAAK6B,IACxB,OAAOnV,KAAKyN,OAAO0H,GAAO7B,GAA+D,KAAvD6B,GAAK0uQ,oBAAsBvwQ,GAAKuwQ,sBAA8B,QAElG,CAAE,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAAaxzN,SAAQ,SAAS78C,GAAK1Z,IACrGA,GAAI,EAAIA,GACR,IAAIyjE,GAAW8tP,GAAQ73S,IAAO+4S,kBAAiB,SAASp3S,IAEtD,OADCA,GAAOk2S,GAAQ73S,IAAI2B,KAAOw2S,QAAQx2S,GAAK+D,WAAa/D,GAAKq2S,SAAW1xT,IAAK,GACnEqb,MACN,SAASA,GAAMa,IAChBb,GAAKw2S,QAAQx2S,GAAK+D,UAAiC,EAArBlZ,KAAKyN,MAAMuI,QACxC,SAASb,IACV,IAAI3B,GAAM63S,GAAQ/3S,KAAK6B,IAAMq2S,SAC7B,OAAOxrT,KAAKyN,OAAO49S,GAAQ31S,UAAUP,KAAS3B,GAAM1Z,IAAK,GAAK,IAAM0Z,KAAQ1Z,OAE9EuxT,GAAQ73S,GAAM,KAAO+pD,GAAS/rD,MAC9B65S,GAAQ73S,GAAM,KAAK4wG,IAAM7mD,GAAS6mD,IAAI5yG,MACtC65S,GAAQ73S,GAAM,UAAY,SAAS2B,IACjC,IAAI3B,GAAM63S,GAAQ/3S,KAAK6B,IAAMq2S,SAC7B,OAAOxrT,KAAKyN,OAAO49S,GAAQ31S,UAAUP,KAAS3B,GAAM1Z,IAAK,GAAK,OAGlEuxT,GAAQ8E,KAAO9E,GAAQ3nC,OACvB2nC,GAAQ+E,MAAQ/E,GAAQ3nC,OAAOlyQ,MAC/B65S,GAAQ+E,MAAMhsM,IAAMinM,GAAQ3nC,OAAOt/J,IAAI5yG,MACvC65S,GAAQ71S,WAAa61S,GAAQoD,aAyN7B,IAAIrB,GAAqB,CACvB,IAAK,GACL5tP,EAAG,IACH,EAAK,KACJ6wP,GAAmB,UAAWC,GAAoB,KACrD,SAAS9B,kBAAkB1zT,GAAOgR,GAAMwP,IACtC,IAAIwiD,GAAOhjE,GAAQ,EAAI,IAAM,GAAIosR,IAAUppN,IAAQhjE,GAAQA,IAAS,GAAIqB,GAAS+qR,GAAO/qR,OACxF,OAAO2hE,IAAQ3hE,GAASmf,GAAQ,IAAI5e,MAAM4e,GAAQnf,GAAS,GAAG+C,KAAK4M,IAAQo7Q,GAASA,IAEtF,SAAS6mC,iBAAiBtpL,IACxB,OAAO,IAAI1iG,OAAO,OAAS0iG,GAAMtvF,IAAIhsC,GAAGywS,SAAS16S,KAAK,KAAO,IAAK,KAEpE,SAAS+uT,qBAAqBxpL,IAE5B,IADA,IAAItvF,GAAM,IAAIsiQ,OAAU39S,IAAK,EAAGwB,GAAImpI,GAAMtoI,SACjCrC,GAAIwB,IAAG65C,GAAIltC,IAAIw8H,GAAM3qI,IAAGya,cAAeza,IAChD,OAAOq7C,GAET,SAASu6Q,2BAA2Bv6S,GAAM+xQ,GAAQptR,IAChDu2T,GAAiBx4I,UAAY,EAC7B,IAAIv8K,GAAI+0T,GAAiBtrN,KAAKmiL,GAAO5qR,MAAMxC,GAAGA,GAAI,IAClD,OAAOwB,IAAK6Z,GAAKyC,GAAKtc,GAAE,GAAIxB,GAAIwB,GAAE,GAAGa,SAAW,EAElD,SAASszT,8BAA8Bt6S,GAAM+xQ,GAAQptR,IACnDu2T,GAAiBx4I,UAAY,EAC7B,IAAIv8K,GAAI+0T,GAAiBtrN,KAAKmiL,GAAO5qR,MAAMxC,KAC3C,OAAOwB,IAAK6Z,GAAK2/M,GAAKx5N,GAAE,GAAIxB,GAAIwB,GAAE,GAAGa,SAAW,EAElD,SAASwzT,8BAA8Bx6S,GAAM+xQ,GAAQptR,IACnDu2T,GAAiBx4I,UAAY,EAC7B,IAAIv8K,GAAI+0T,GAAiBtrN,KAAKmiL,GAAO5qR,MAAMxC,KAC3C,OAAOwB,IAAK6Z,GAAKy/M,GAAKt5N,GAAE,GAAIxB,GAAIwB,GAAE,GAAGa,SAAW,EAElD,SAAS4zT,sBAAsB56S,GAAM+xQ,GAAQptR,IAC3Cu2T,GAAiBx4I,UAAY,EAC7B,IAAIv8K,GAAI+0T,GAAiBtrN,KAAKmiL,GAAO5qR,MAAMxC,GAAGA,GAAI,IAClD,OAAOwB,IAAK6Z,GAAKzF,GAAKpU,GAAE,GAAIxB,GAAIwB,GAAE,GAAGa,SAAW,EAElD,SAAS2zT,kBAAkB36S,GAAM+xQ,GAAQptR,IACvCu2T,GAAiBx4I,UAAY,EAC7B,IAAIv8K,GAAI+0T,GAAiBtrN,KAAKmiL,GAAO5qR,MAAMxC,GAAGA,GAAI,IAClD,OAAOwB,IAAK6Z,GAAKzF,EAMnB,SAAS6gT,mBAAmBp2T,IAC1B,OAAOA,IAAKA,GAAI,GAAK,KAAO,KAPPo2T,EAAoBj1T,GAAE,IAAKxB,GAAIwB,GAAE,GAAGa,SAAW,EAEtE,SAAS6zT,kBAAkB76S,GAAM+xQ,GAAQptR,IACvC,MAAO,cAAcqF,KAAK+nR,GAASA,GAAO5qR,MAAMxC,GAAGA,GAAI,KAAOqb,GAAKo4S,GAAKrmC,GACxEptR,GAAI,IAAM,EAKZ,SAASu1T,yBAAyBl6S,GAAM+xQ,GAAQptR,IAC9Cu2T,GAAiBx4I,UAAY,EAC7B,IAAIv8K,GAAI+0T,GAAiBtrN,KAAKmiL,GAAO5qR,MAAMxC,GAAGA,GAAI,IAClD,OAAOwB,IAAK6Z,GAAKlb,EAAIqB,GAAE,GAAK,EAAGxB,GAAIwB,GAAE,GAAGa,SAAW,EAErD,SAAS8yT,iBAAiB95S,GAAM+xQ,GAAQptR,IACtCu2T,GAAiBx4I,UAAY,EAC7B,IAAIv8K,GAAI+0T,GAAiBtrN,KAAKmiL,GAAO5qR,MAAMxC,GAAGA,GAAI,IAClD,OAAOwB,IAAK6Z,GAAKhb,GAAKmB,GAAE,GAAIxB,GAAIwB,GAAE,GAAGa,SAAW,EAElD,SAASgzT,uBAAuBh6S,GAAM+xQ,GAAQptR,IAC5Cu2T,GAAiBx4I,UAAY,EAC7B,IAAIv8K,GAAI+0T,GAAiBtrN,KAAKmiL,GAAO5qR,MAAMxC,GAAGA,GAAI,IAClD,OAAOwB,IAAK6Z,GAAKlY,GAAK3B,GAAE,GAAIxB,GAAIwB,GAAE,GAAGa,SAAW,EAElD,SAAS+yT,oBAAoB/5S,GAAM+xQ,GAAQptR,IACzCu2T,GAAiBx4I,UAAY,EAC7B,IAAIv8K,GAAI+0T,GAAiBtrN,KAAKmiL,GAAO5qR,MAAMxC,GAAGA,GAAI,IAClD,OAAOwB,IAAK6Z,GAAKmvQ,GAAKhpR,GAAE,GAAIxB,GAAIwB,GAAE,GAAGa,SAAW,EAElD,SAASmzT,qBAAqBn6S,GAAM+xQ,GAAQptR,IAC1Cu2T,GAAiBx4I,UAAY,EAC7B,IAAIv8K,GAAI+0T,GAAiBtrN,KAAKmiL,GAAO5qR,MAAMxC,GAAGA,GAAI,IAClD,OAAOwB,IAAK6Z,GAAK2iC,GAAKx8C,GAAE,GAAIxB,GAAIwB,GAAE,GAAGa,SAAW,EAElD,SAASqzT,qBAAqBr6S,GAAM+xQ,GAAQptR,IAC1Cu2T,GAAiBx4I,UAAY,EAC7B,IAAIv8K,GAAI+0T,GAAiBtrN,KAAKmiL,GAAO5qR,MAAMxC,GAAGA,GAAI,IAClD,OAAOwB,IAAK6Z,GAAK4iC,GAAKz8C,GAAE,GAAIxB,GAAIwB,GAAE,GAAGa,SAAW,EAElD,SAASizT,0BAA0Bj6S,GAAM+xQ,GAAQptR,IAC/Cu2T,GAAiBx4I,UAAY,EAC7B,IAAIv8K,GAAI+0T,GAAiBtrN,KAAKmiL,GAAO5qR,MAAMxC,GAAGA,GAAI,IAClD,OAAOwB,IAAK6Z,GAAKm4S,GAAKhyT,GAAE,GAAIxB,GAAIwB,GAAE,GAAGa,SAAW,EAElD,SAASwyT,aAAax0T,IACpB,IAAI+O,GAAI/O,GAAE0pR,oBAAqB31K,GAAKhlG,GAAI,EAAI,IAAM,IAAKsnT,GAAKl/S,GAAIpI,IAAK,GAAK,EAAGunT,GAAKn/S,GAAIpI,IAAK,GAC3F,OAAOglG,GAAKsgN,kBAAkBgC,GAAI,IAAK,GAAKhC,kBAAkBiC,GAAI,IAAK,GAEzE,SAASR,4BAA4B96S,GAAM+xQ,GAAQptR,IACjDw2T,GAAkBz4I,UAAY,EAC9B,IAAIv8K,GAAIg1T,GAAkBvrN,KAAKmiL,GAAO5qR,MAAMxC,GAAGA,GAAI,IACnD,OAAOwB,GAAIxB,GAAIwB,GAAE,GAAGa,QAAU,EAEhC,SAASyxT,oBAAoB8C,IAE3B,IADA,IAAIp1T,GAAIo1T,GAAQv0T,OAAQrC,IAAK,IACpBA,GAAIwB,IAAGo1T,GAAQ52T,IAAG,GAAKgE,KAAK4yT,GAAQ52T,IAAG,IAChD,OAAO,SAASqb,IAEd,IADA,IAAIrb,GAAI,EAAGooC,GAAIwuR,GAAQ52T,KACfooC,GAAE,GAAG/sB,KAAO+sB,GAAIwuR,KAAU52T,IAClC,OAAOooC,GAAE,GAAG/sB,KAGhBhM,GAAG+6G,OAAS,SAASA,IACnB,MAAO,CACLI,aAAc8lM,uBAAuBlmM,IACrCC,WAAYuoM,qBAAqBxoM,MAGrC,IAAIysM,GAAiBxnT,GAAG+6G,OAAO,CAC7B0c,QAAS,IACTC,UAAW,IACXC,SAAU,CAAE,GACZC,SAAU,CAAE,IAAK,IACjBJ,SAAU,iBACVxrH,KAAM,WACNowD,KAAM,WACNm7D,QAAS,CAAE,KAAM,MACjBJ,KAAM,CAAE,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAC1EC,UAAW,CAAE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACvDC,OAAQ,CAAE,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YACxHC,YAAa,CAAE,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,SAI9F,SAASmwL,YAFTznT,GAAGk0F,OAASszN,GAAersM,aAC3Bn7G,GAAG8mB,IAAM,GAET2gS,SAASj1T,UAAY,CACnBG,EAAG,EACHf,EAAG,EACHgb,IAAK,SAASrG,IACZmhT,YAAYnhT,GAAG5R,KAAK/C,EAAG+1T,IACvBD,YAAYC,GAAah1T,EAAGgC,KAAKhC,EAAGgC,MAChCA,KAAKhC,EAAGgC,KAAK/C,GAAK+1T,GAAa/1T,EAAQ+C,KAAKhC,EAAIg1T,GAAa/1T,GAEnEy0B,MAAO,WACL1xB,KAAKhC,EAAIgC,KAAK/C,EAAI,GAEpBg6N,QAAS,WACP,OAAOj3N,KAAKhC,IAGhB,IAAIg1T,GAAe,IAAIF,SACvB,SAASC,YAAY1yT,GAAGC,GAAG9D,IACzB,IAAIkO,GAAIlO,GAAEwB,EAAIqC,GAAIC,GAAG2yT,GAAKvoT,GAAIrK,GAAG6yT,GAAKxoT,GAAIuoT,GAC1Cz2T,GAAES,EAAIoD,GAAI6yT,IAAM5yT,GAAI2yT,IAStB,SAASE,sBAAsB51P,GAAU+9O,IACnC/9O,IAAY61P,GAA0Bt1T,eAAey/D,GAASjuD,OAChE8jT,GAA0B71P,GAASjuD,MAAMiuD,GAAU+9O,IATvDjwS,GAAG8mB,IAAIi5E,OAAS,SAASztG,GAAQ29S,IAC3B39S,IAAU01T,GAAwBv1T,eAAeH,GAAO2R,MAC1D+jT,GAAwB11T,GAAO2R,MAAM3R,GAAQ29S,IAE7C6X,sBAAsBx1T,GAAQ29S,KAQlC,IAAI+X,GAA0B,CAC5Br+E,QAAS,SAAS33K,GAASi+O,IACzB6X,sBAAsB91P,GAAQE,SAAU+9O,KAE1CrmE,kBAAmB,SAASt3O,GAAQ29S,IAElC,IADA,IAAIv+O,GAAWp/D,GAAOo/D,SAAU/gE,IAAK,EAAGwB,GAAIu/D,GAAS1+D,SAC5CrC,GAAIwB,IAAG21T,sBAAsBp2P,GAAS/gE,IAAGuhE,SAAU+9O,MAG5D8X,GAA4B,CAC9B58E,OAAQ,SAAS74O,GAAQ29S,IACvBA,GAASrjE,UAEX9B,MAAO,SAASx4O,GAAQ29S,IACtB39S,GAASA,GAAO8/D,YAChB69O,GAAS95S,MAAM7D,GAAO,GAAIA,GAAO,GAAIA,GAAO,KAE9Cy4O,WAAY,SAASz4O,GAAQ29S,IAE3B,IADA,IAAI79O,GAAc9/D,GAAO8/D,YAAazhE,IAAK,EAAGwB,GAAIigE,GAAYp/D,SACrDrC,GAAIwB,IAAGG,GAAS8/D,GAAYzhE,IAAIs/S,GAAS95S,MAAM7D,GAAO,GAAIA,GAAO,GAAIA,GAAO,KAEvF0nL,WAAY,SAAS1nL,GAAQ29S,IAC3BgY,kBAAkB31T,GAAO8/D,YAAa69O,GAAU,IAElDjlE,gBAAiB,SAAS14O,GAAQ29S,IAEhC,IADA,IAAI79O,GAAc9/D,GAAO8/D,YAAazhE,IAAK,EAAGwB,GAAIigE,GAAYp/D,SACrDrC,GAAIwB,IAAG81T,kBAAkB71P,GAAYzhE,IAAIs/S,GAAU,IAE9DhlE,QAAS,SAAS34O,GAAQ29S,IACxBiY,qBAAqB51T,GAAO8/D,YAAa69O,KAE3C/kE,aAAc,SAAS54O,GAAQ29S,IAE7B,IADA,IAAI79O,GAAc9/D,GAAO8/D,YAAazhE,IAAK,EAAGwB,GAAIigE,GAAYp/D,SACrDrC,GAAIwB,IAAG+1T,qBAAqB91P,GAAYzhE,IAAIs/S,KAEvDkY,mBAAoB,SAAS71T,GAAQ29S,IAEnC,IADA,IAAI1mE,GAAaj3O,GAAOi3O,WAAY54O,IAAK,EAAGwB,GAAIo3O,GAAWv2O,SAClDrC,GAAIwB,IAAG21T,sBAAsBv+E,GAAW54O,IAAIs/S,MAGzD,SAASgY,kBAAkB71P,GAAa69O,GAAUpqE,IAChD,IAA6CuiF,GAAzCz3T,IAAK,EAAGwB,GAAIigE,GAAYp/D,OAAS6yO,GAErC,IADAoqE,GAAShmE,cACAt5O,GAAIwB,IAAGi2T,GAAah2P,GAAYzhE,IAAIs/S,GAAS95S,MAAMiyT,GAAW,GAAIA,GAAW,GAAIA,GAAW,IACrGnY,GAAS9lE,UAEX,SAAS+9E,qBAAqB91P,GAAa69O,IACzC,IAAIt/S,IAAK,EAAGwB,GAAIigE,GAAYp/D,OAE5B,IADAi9S,GAAS5lE,iBACA15O,GAAIwB,IAAG81T,kBAAkB71P,GAAYzhE,IAAIs/S,GAAU,GAC5DA,GAAS3lE,aAEXtqO,GAAG8mB,IAAIysC,KAAO,SAASjhE,IAGrB,OAFA+1T,GAAiB,EACjBroT,GAAG8mB,IAAIi5E,OAAOztG,GAAQg2T,IACfD,IAET,IAAIA,GA8MAE,GAAmBC,GAAmBC,GAAmBC,GAAmBC,GAAmBC,GAAmBC,GAAmBC,GAAmBC,GAAmBC,GAAmBC,GA9M9KC,GAAqB,IAAIzB,SACzCa,GAAc,CAChB17E,OAAQ,WACNy7E,IAAkB,EAAIh9E,IAExBl1O,MAAOy5S,QACP3lE,UAAW2lE,QACXzlE,QAASylE,QACTvlE,aAAc,WACZ6+E,GAAmB7iS,QACnBiiS,GAAYr+E,UAAYk/E,sBAE1B7+E,WAAY,WACV,IAAI/2K,GAAO,EAAI21P,GACfb,IAAkB90P,GAAO,EAAI,EAAI83K,GAAI93K,GAAOA,GAC5C+0P,GAAYr+E,UAAYq+E,GAAYn+E,QAAUm+E,GAAYnyT,MAAQy5S,UAGtE,SAASuZ,uBACP,IAAIC,GAAKC,GAAKx8E,GAAIy8E,GAAOC,GAMzB,SAASC,UAAU59E,GAAGC,IAEpBA,GAAIA,GAAIusE,GAAa,EAAI/sE,GAAI,EAC7B,IAAIo+E,IAFJ79E,IAAKwsE,IAEQvrE,GAAI68E,GAAMD,IAAM,EAAI,GAAK,EAAGE,GAAMD,GAAMD,GAAI19E,GAAOl1O,KAAK6oD,IAAImsL,IAAIkD,GAAOl4O,KAAK8oD,IAAIksL,IAAI13O,GAAIo1T,GAAQx6E,GAAM55O,GAAIm0T,GAAQv9E,GAAO53O,GAAI0C,KAAK6oD,IAAIiqQ,IAAMz1T,GAAIC,GAAIu1T,GAAM7yT,KAAK8oD,IAAIgqQ,IAChLT,GAAmBt8S,IAAI/V,KAAKivM,MAAM5xM,GAAGiB,KACrC03O,GAAKjB,GAAG09E,GAAQv9E,GAAMw9E,GAAQx6E,GAVhCu5E,GAAYnyT,MAAQ,SAASy1O,GAAGC,IAC9By8E,GAAYnyT,MAAQqzT,UACpB38E,IAAMu8E,GAAMx9E,IAAKwsE,GAAYkR,GAAQzyT,KAAK6oD,IAAImsL,IAAKw9E,GAAMx9E,IAAKusE,GAAa,EAAI/sE,GAAI,GACnFk+E,GAAQ1yT,KAAK8oD,IAAIksL,KASnBy8E,GAAYn+E,QAAU,WACpBq/E,UAAUJ,GAAKC,KAGnB,SAASO,iBAAiBC,IACxB,IAAIj+E,GAAIi+E,GAAU,GAAIh+E,GAAIg+E,GAAU,GAAI99E,GAAOl1O,KAAK6oD,IAAImsL,IACxD,MAAO,CAAEE,GAAOl1O,KAAK6oD,IAAIksL,IAAIG,GAAOl1O,KAAK8oD,IAAIisL,IAAI/0O,KAAK8oD,IAAIksL,KAE5D,SAASi+E,oBAAoB90T,GAAGC,IAC9B,OAAOD,GAAE,GAAKC,GAAE,GAAKD,GAAE,GAAKC,GAAE,GAAKD,GAAE,GAAKC,GAAE,GAE9C,SAAS80T,sBAAsB/0T,GAAGC,IAChC,MAAO,CAAED,GAAE,GAAKC,GAAE,GAAKD,GAAE,GAAKC,GAAE,GAAID,GAAE,GAAKC,GAAE,GAAKD,GAAE,GAAKC,GAAE,GAAID,GAAE,GAAKC,GAAE,GAAKD,GAAE,GAAKC,GAAE,IAExF,SAAS+0T,oBAAoBh1T,GAAGC,IAC9BD,GAAE,IAAMC,GAAE,GACVD,GAAE,IAAMC,GAAE,GACVD,GAAE,IAAMC,GAAE,GAEZ,SAASg1T,sBAAsBzgB,GAAQr1S,IACrC,MAAO,CAAEq1S,GAAO,GAAKr1S,GAAGq1S,GAAO,GAAKr1S,GAAGq1S,GAAO,GAAKr1S,IAErD,SAAS+1T,0BAA0Bl5T,IACjC,IAAIJ,GAAIiG,KAAK6E,KAAK1K,GAAE,GAAKA,GAAE,GAAKA,GAAE,GAAKA,GAAE,GAAKA,GAAE,GAAKA,GAAE,IACvDA,GAAE,IAAMJ,GACRI,GAAE,IAAMJ,GACRI,GAAE,IAAMJ,GAEV,SAASu5T,iBAAiB7zQ,IACxB,MAAO,CAAEz/C,KAAKivM,MAAMxvJ,GAAU,GAAIA,GAAU,IAAKmiQ,QAAQniQ,GAAU,KAErE,SAAS8zQ,sBAAsBp1T,GAAGC,IAChC,OAAOkT,GAAInT,GAAE,GAAKC,GAAE,IAAMm2O,IAAKjjO,GAAInT,GAAE,GAAKC,GAAE,IAAMm2O,GAEpDprO,GAAG8mB,IAAIlrB,OAAS,WACd,IAAIixO,GAAIC,GAAIu9E,GAAIt9E,GAAIu9E,GAAIC,GAAKC,GAAKh3O,GAAIi3O,GAAOpsN,GAAQh2F,GACjDqiT,GAAQ,CACVv0T,MAAOA,MACP8zO,UAAWA,UACXE,QAASA,QACTE,aAAc,WACZqgF,GAAMv0T,MAAQw0T,UACdD,GAAMzgF,UAAY2gF,UAClBF,GAAMvgF,QAAU0gF,QAChBJ,GAAQ,EACRnC,GAAYj+E,gBAEdC,WAAY,WACVg+E,GAAYh+E,aACZogF,GAAMv0T,MAAQA,MACdu0T,GAAMzgF,UAAYA,UAClBygF,GAAMvgF,QAAUA,QACZ++E,GAAqB,GAAGr8E,KAAOw9E,GAAK,KAAMv9E,KAAOC,GAAK,KAAc09E,GAAQr/E,GAAG2B,GAAK,GAAa09E,IAASr/E,KAAG0B,IAAM,IACvHzkO,GAAM,GAAKwkO,GAAIxkO,GAAM,GAAKgiT,KAG9B,SAASl0T,MAAMy1O,GAAGC,IAChBxtI,GAAOzoG,KAAKyS,GAAQ,CAAEwkO,GAAKjB,GAAGy+E,GAAKz+E,KAC/BC,GAAIiB,KAAIA,GAAKjB,IACbA,GAAIkB,KAAIA,GAAKlB,IAEnB,SAASi/E,UAAUl/E,GAAGC,IACpB,IAAIn5O,GAAIk3T,iBAAiB,CAAEh+E,GAAIwsE,GAAYvsE,GAAIusE,KAC/C,GAAI5kO,GAAI,CACN,IAAIijG,GAASszI,sBAAsBv2O,GAAI9gF,IAA+Cq4T,GAAahB,sBAA3C,CAAEtzI,GAAO,IAAKA,GAAO,GAAI,GAAoDA,IACrIyzI,0BAA0Ba,IAC1BA,GAAaZ,iBAAiBY,IAC9B,IAAItB,GAAK79E,GAAI0+E,GAAI33T,GAAI82T,GAAK,EAAI,GAAK,EAAGuB,GAAKD,GAAW,GAAK1S,GAAa1lT,GAAGs4T,GAAe9iT,GAAIshT,IAAM,IACpG,GAAIwB,IAAgBt4T,GAAI23T,GAAKU,IAAMA,GAAKr4T,GAAIi5O,KACtCs/E,GAAKH,GAAW,GAAK1S,IAChBtrE,KAAIA,GAAKm+E,SACb,GAAiCD,IAAgBt4T,GAAI23T,IAAjDU,IAAMA,GAAK,KAAO,IAAM,MAAoCA,GAAKr4T,GAAIi5O,IAAI,CAClF,IAAIs/E,QAAMH,GAAW,GAAK1S,IACjBvrE,KAAIA,GAAKo+E,SAEdr/E,GAAIiB,KAAIA,GAAKjB,IACbA,GAAIkB,KAAIA,GAAKlB,IAEfo/E,GACEr/E,GAAI0+E,GACFjrQ,MAAMwtL,GAAIjB,IAAKvsL,MAAMwtL,GAAIw9E,MAAKA,GAAKz+E,IAEnCvsL,MAAMusL,GAAGy+E,IAAMhrQ,MAAMwtL,GAAIw9E,MAAKx9E,GAAKjB,IAGrCy+E,IAAMx9E,IACJjB,GAAIiB,KAAIA,GAAKjB,IACbA,GAAIy+E,KAAIA,GAAKz+E,KAEbA,GAAI0+E,GACFjrQ,MAAMwtL,GAAIjB,IAAKvsL,MAAMwtL,GAAIw9E,MAAKA,GAAKz+E,IAEnCvsL,MAAMusL,GAAGy+E,IAAMhrQ,MAAMwtL,GAAIw9E,MAAKx9E,GAAKjB,SAK7Cz1O,MAAMy1O,GAAGC,IAEXr4J,GAAK9gF,GAAG43T,GAAK1+E,GAEf,SAAS3B,YACPygF,GAAMv0T,MAAQ20T,UAEhB,SAAS3gF,UACP9hO,GAAM,GAAKwkO,GAAIxkO,GAAM,GAAKgiT,GAC1BK,GAAMv0T,MAAQA,MACdq9E,GAAK,KAEP,SAASm3O,UAAU/+E,GAAGC,IACpB,GAAIr4J,GAAI,CACN,IAAIi2O,GAAK79E,GAAI0+E,GACbG,IAAStiT,GAAIshT,IAAM,IAAMA,IAAMA,GAAK,EAAI,KAAO,KAAOA,QACjDc,GAAM3+E,GAAG4+E,GAAM3+E,GACtBy8E,GAAYnyT,MAAMy1O,GAAGC,IACrBi/E,UAAUl/E,GAAGC,IAEf,SAAS++E,YACPtC,GAAYr+E,YAEd,SAAS4gF,UACPF,UAAUJ,GAAKC,IACflC,GAAYn+E,UACRhiO,GAAIsiT,IAASr/E,KAAGyB,KAAOw9E,GAAK,MAChChiT,GAAM,GAAKwkO,GAAIxkO,GAAM,GAAKgiT,GAC1B72O,GAAK,KAEP,SAASn0B,MAAMwtL,GAAIw9E,IACjB,OAAQA,IAAMx9E,IAAM,EAAIw9E,GAAK,IAAMA,GAErC,SAASc,cAAcn2T,GAAGC,IACxB,OAAOD,GAAE,GAAKC,GAAE,GAElB,SAASm2T,YAAY/rT,GAAGgJ,IACtB,OAAOA,GAAM,IAAMA,GAAM,GAAKA,GAAM,IAAMhJ,IAAKA,IAAKgJ,GAAM,GAAKhJ,GAAIgJ,GAAM,IAAMA,GAAM,GAAKhJ,GAE5F,OAAO,SAAS2yD,IAKd,GAJA+6K,GAAKs9E,KAAOx9E,GAAKC,GAAK5wO,KACtBmiG,GAAS,GACTr+F,GAAG8mB,IAAIi5E,OAAO/tC,GAAS04P,IACnBv4T,GAAIksG,GAAOrrG,OACR,CACLqrG,GAAOvmG,KAAKqzT,eACZ,IAAK,IAAIx6T,GAAI,EAAqBw9S,GAAS,CAA3Bn5S,GAAIqpG,GAAO,IAAuB1tG,GAAIwB,KAAKxB,GAErDy6T,aADJn2T,GAAIopG,GAAO1tG,KACO,GAAIqE,KAAMo2T,YAAYn2T,GAAE,GAAID,KACxCqqD,MAAMrqD,GAAE,GAAIC,GAAE,IAAMoqD,MAAMrqD,GAAE,GAAIA,GAAE,MAAKA,GAAE,GAAKC,GAAE,IAChDoqD,MAAMpqD,GAAE,GAAID,GAAE,IAAMqqD,MAAMrqD,GAAE,GAAIA,GAAE,MAAKA,GAAE,GAAKC,GAAE,KAEpDk5S,GAAOv4S,KAAKZ,GAAIC,IAIpB,IADA,IAAsBw0T,GACbt3T,GAA6C8C,GADlDo2T,IAAQnvT,IAC2BlH,IAAPrE,GAAI,EAAOw9S,GAAlCh8S,GAAIg8S,GAAOn7S,OAAS,IAA4BrC,IAAKwB,GAAG6C,GAAIC,KAAKtE,GACxEsE,GAAIk5S,GAAOx9S,KACN84T,GAAKpqQ,MAAMrqD,GAAE,GAAIC,GAAE,KAAOo2T,KAAMA,GAAO5B,GAAI58E,GAAK53O,GAAE,GAAIo1T,GAAKr1T,GAAE,IAItE,OADAqpG,GAASh2F,GAAQ,KACVwkO,KAAO3wO,KAAY4wO,KAAO5wO,IAAW,CAAE,CAAE4zD,IAAKA,KAAO,CAAEA,IAAKA,MAAU,CAAE,CAAE+8K,GAAIC,IAAM,CAAEu9E,GAAIt9E,MA7HrF,GAgIhB/sO,GAAG8mB,IAAIwkS,SAAW,SAASh5T,IACzBi2T,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoB,EAC5NjpT,GAAG8mB,IAAIi5E,OAAOztG,GAAQi5T,IACtB,IAAIlsT,GAAI0pT,GAAmBxiT,GAAIyiT,GAAmBjpT,GAAIkpT,GAAmBn4T,GAAIuO,GAAIA,GAAIkH,GAAIA,GAAIxG,GAAIA,GACjG,OAAIjP,GAAImnT,KACN54S,GAAIupT,GAAmBriT,GAAIsiT,GAAmB9oT,GAAI+oT,GAC9CN,GAAoBp9E,KAAG/rO,GAAIopT,GAAmBliT,GAAImiT,GAAmB3oT,GAAI4oT,KAC7E73T,GAAIuO,GAAIA,GAAIkH,GAAIA,GAAIxG,GAAIA,IAChBk4S,IAAW,CAAEnoP,IAAKA,KAErB,CAAEj5D,KAAKivM,MAAMv/L,GAAGlH,IAAKg5S,GAAYI,QAAQ14S,GAAIlJ,KAAK6E,KAAK5K,KAAMunT,KAGtE,IAAIkT,GAAkB,CACpB3+E,OAAQgjE,QACRz5S,MAAOq1T,qBACPvhF,UAAWwhF,yBACXthF,QAASuhF,uBACTrhF,aAAc,WACZkhF,GAAgBthF,UAAY0hF,0BAE9BrhF,WAAY,WACVihF,GAAgBthF,UAAYwhF,2BAGhC,SAASD,qBAAqB5/E,GAAGC,IAC/BD,IAAKwsE,GACL,IAAIrsE,GAAOl1O,KAAK6oD,IAAImsL,IAAKusE,IACzBwT,wBAAwB7/E,GAAOl1O,KAAK6oD,IAAIksL,IAAIG,GAAOl1O,KAAK8oD,IAAIisL,IAAI/0O,KAAK8oD,IAAIksL,KAE3E,SAAS+/E,wBAAwBvsT,GAAGkH,GAAGxG,MACnCwoT,GACFE,KAAsBppT,GAAIopT,IAAqBF,GAC/CG,KAAsBniT,GAAImiT,IAAqBH,GAC/CI,KAAsB5oT,GAAI4oT,IAAqBJ,GAEjD,SAASkD,2BACP,IAAIxkS,GAAIK,GAAI66E,GAUZ,SAASqnN,UAAU59E,GAAGC,IACpBD,IAAKwsE,GACL,IAAIrsE,GAAOl1O,KAAK6oD,IAAImsL,IAAKusE,IAAa/4S,GAAI0sO,GAAOl1O,KAAK6oD,IAAIksL,IAAIrlO,GAAIwlO,GAAOl1O,KAAK8oD,IAAIisL,IAAI7rO,GAAIlJ,KAAK8oD,IAAIksL,IAAIp9N,GAAI5X,KAAKivM,MAAMjvM,KAAK6E,MAAM+S,GAAI6Y,GAAKvnB,GAAIoiG,GAAK57F,IAAKkI,IAAKA,GAAI0zF,GAAK9iG,GAAI4nB,GAAKlnB,IAAK0O,IAAKA,GAAIwY,GAAK1gB,GAAI+gB,GAAKjoB,IAAKoP,IAAIwY,GAAK5nB,GAAIioB,GAAK/gB,GAAI47F,GAAKpiG,IAC3OyoT,IAAqB/5S,GACrBm6S,IAAqBn6S,IAAKwY,IAAMA,GAAK5nB,KACrCwpT,IAAqBp6S,IAAK6Y,IAAMA,GAAK/gB,KACrCuiT,IAAqBr6S,IAAK0zF,IAAMA,GAAKpiG,KACrC6rT,wBAAwB3kS,GAAIK,GAAI66E,IAhBlCopN,GAAgBp1T,MAAQ,SAASy1O,GAAGC,IAClCD,IAAKwsE,GACL,IAAIrsE,GAAOl1O,KAAK6oD,IAAImsL,IAAKusE,IACzBnxR,GAAK8kN,GAAOl1O,KAAK6oD,IAAIksL,IACrBtkN,GAAKykN,GAAOl1O,KAAK8oD,IAAIisL,IACrBzpI,GAAKtrG,KAAK8oD,IAAIksL,IACd0/E,GAAgBp1T,MAAQqzT,UACxBoC,wBAAwB3kS,GAAIK,GAAI66E,KAYpC,SAASupN,yBACPH,GAAgBp1T,MAAQq1T,qBAE1B,SAASG,2BACP,IAAIvC,GAAKC,GAAKpiS,GAAIK,GAAI66E,GAgBtB,SAASqnN,UAAU59E,GAAGC,IACpBD,IAAKwsE,GACL,IAAIrsE,GAAOl1O,KAAK6oD,IAAImsL,IAAKusE,IAAa/4S,GAAI0sO,GAAOl1O,KAAK6oD,IAAIksL,IAAIrlO,GAAIwlO,GAAOl1O,KAAK8oD,IAAIisL,IAAI7rO,GAAIlJ,KAAK8oD,IAAIksL,IAAInnK,GAAKp9C,GAAKvnB,GAAIoiG,GAAK57F,GAAGo+D,GAAKw9B,GAAK9iG,GAAI4nB,GAAKlnB,GAAG8gJ,GAAK55H,GAAK1gB,GAAI+gB,GAAKjoB,GAAGvO,GAAI+F,KAAK6E,KAAKgpE,GAAKA,GAAKC,GAAKA,GAAKk8E,GAAKA,IAAK1rJ,GAAI8xB,GAAK5nB,GAAIioB,GAAK/gB,GAAI47F,GAAKpiG,GAAG7L,GAAIpD,KAAM0nT,QAAQrjT,IAAKrE,GAAG2d,GAAI5X,KAAKivM,MAAMh1M,GAAGqE,IAC/R4zT,IAAqB70T,GAAIwwE,GACzBskP,IAAqB90T,GAAIywE,GACzBskP,IAAqB/0T,GAAI2sJ,GACzB2nK,IAAqB/5S,GACrBm6S,IAAqBn6S,IAAKwY,IAAMA,GAAK5nB,KACrCwpT,IAAqBp6S,IAAK6Y,IAAMA,GAAK/gB,KACrCuiT,IAAqBr6S,IAAK0zF,IAAMA,GAAKpiG,KACrC6rT,wBAAwB3kS,GAAIK,GAAI66E,IAzBlCopN,GAAgBp1T,MAAQ,SAASy1O,GAAGC,IAClCu9E,GAAMx9E,GAAGy9E,GAAMx9E,GACf0/E,GAAgBp1T,MAAQqzT,UACxB59E,IAAKwsE,GACL,IAAIrsE,GAAOl1O,KAAK6oD,IAAImsL,IAAKusE,IACzBnxR,GAAK8kN,GAAOl1O,KAAK6oD,IAAIksL,IACrBtkN,GAAKykN,GAAOl1O,KAAK8oD,IAAIisL,IACrBzpI,GAAKtrG,KAAK8oD,IAAIksL,IACd+/E,wBAAwB3kS,GAAIK,GAAI66E,KAElCopN,GAAgBphF,QAAU,WACxBq/E,UAAUJ,GAAKC,IACfkC,GAAgBphF,QAAUuhF,uBAC1BH,GAAgBp1T,MAAQq1T,sBAe5B,SAASK,eAAe72T,GAAGC,IACzB,SAAS62T,QAAQzsT,GAAGkH,IAClB,OAAOlH,GAAIrK,GAAEqK,GAAGkH,IAAItR,GAAEoK,GAAE,GAAIA,GAAE,IAKhC,OAHIrK,GAAEob,QAAUnb,GAAEmb,SAAQ07S,QAAQ17S,OAAS,SAAS/Q,GAAGkH,IACrD,OAAOlH,GAAIpK,GAAEmb,OAAO/Q,GAAGkH,MAASvR,GAAEob,OAAO/Q,GAAE,GAAIA,GAAE,MAE5CysT,QAET,SAASC,UACP,OAAO,EAET,SAASC,mBAAmB3lP,GAAU1gE,GAASsmT,GAAiB9kH,GAAa8oG,IAC3E,IAAIoH,GAAU,GAAI1/L,GAAO,GAuBzB,GAtBAtxC,GAASnf,SAAQ,SAASioF,IACxB,MAAKh9I,GAAIg9I,GAAQn8I,OAAS,IAAM,GAAhC,CACA,IAAIb,GAAGqhF,GAAK27D,GAAQ,GAAI17D,GAAK07D,GAAQh9I,IACrC,GAAIi4T,sBAAsB52O,GAAIC,IAA9B,CACEw8N,GAAShmE,YACT,IAAK,IAAIt5O,GAAI,EAAGA,GAAIwB,KAAKxB,GAAGs/S,GAAS95S,OAAOq9E,GAAK27D,GAAQx+I,KAAI,GAAI6iF,GAAG,IACpEy8N,GAAS9lE,cAHX,CAMA,IAAIn1O,GAAI,IAAIk3T,+BAA+B14O,GAAI27D,GAAS,MAAM,GAAOl6I,GAAI,IAAIi3T,+BAA+B14O,GAAI,KAAMx+E,IAAG,GACzHA,GAAE7D,EAAI8D,GACNoiT,GAAQzhT,KAAKZ,IACb2iH,GAAK/hH,KAAKX,IACVD,GAAI,IAAIk3T,+BAA+Bz4O,GAAI07D,GAAS,MAAM,GAC1Dl6I,GAAI,IAAIi3T,+BAA+Bz4O,GAAI,KAAMz+E,IAAG,GACpDA,GAAE7D,EAAI8D,GACNoiT,GAAQzhT,KAAKZ,IACb2iH,GAAK/hH,KAAKX,SAEZ0iH,GAAK7/G,KAAK6N,IACVwmT,+BAA+B9U,IAC/B8U,+BAA+Bx0M,IAC1B0/L,GAAQrkT,OAAb,CACA,IAAK,IAAIrC,GAAI,EAAG28F,GAAQ2+N,GAAiB95T,GAAIwlH,GAAK3kH,OAAQrC,GAAIwB,KAAKxB,GACjEgnH,GAAKhnH,IAAG4d,EAAI++E,IAASA,GAGvB,IADA,IAAwBx6F,GAAQqD,GAA5Boe,GAAQ8iS,GAAQ,KACV,CAER,IADA,IAAIh9P,GAAU9lC,GAAO63S,IAAY,EAC1B/xQ,GAAQnmD,GAAG,IAAKmmD,GAAUA,GAAQloD,KAAOoiB,GAAO,OACvDzhB,GAASunD,GAAQt6C,EACjBkwS,GAAShmE,YACT,EAAG,CAED,GADA5vL,GAAQnmD,EAAImmD,GAAQlpD,EAAE+C,GAAI,EACtBmmD,GAAQ9rC,EAAG,CACb,GAAI69S,GACF,IAASz7T,GAAI,EAAGwB,GAAIW,GAAOE,OAAQrC,GAAIwB,KAAKxB,GAAGs/S,GAAS95S,OAAOA,GAAQrD,GAAOnC,KAAI,GAAIwF,GAAM,SAE5FgxM,GAAY9sJ,GAAQh7C,EAAGg7C,GAAQloD,EAAEkN,EAAG,EAAG4wS,IAEzC51P,GAAUA,GAAQloD,MACb,CACL,GAAIi6T,GAEF,IAASz7T,IADTmC,GAASunD,GAAQ3nD,EAAEqN,GACC/M,OAAS,EAAGrC,IAAK,IAAKA,GAAGs/S,GAAS95S,OAAOA,GAAQrD,GAAOnC,KAAI,GAAIwF,GAAM,SAE1FgxM,GAAY9sJ,GAAQh7C,EAAGg7C,GAAQ3nD,EAAE2M,GAAI,EAAG4wS,IAE1C51P,GAAUA,GAAQ3nD,EAGpBI,IADAunD,GAAUA,GAAQlpD,GACD4O,EACjBqsT,IAAaA,UACL/xQ,GAAQnmD,GAClB+7S,GAAS9lE,YAGb,SAASgiF,+BAA+B9yR,IACtC,GAAMlnC,GAAIknC,GAAMrmC,OAAhB,CAEA,IADA,IAAIb,GAAwB8C,GAArBtE,GAAI,EAAGqE,GAAIqkC,GAAM,KACf1oC,GAAIwB,IACX6C,GAAE7C,EAAI8C,GAAIokC,GAAM1oC,IAChBsE,GAAEvC,EAAIsC,GACNA,GAAIC,GAEND,GAAE7C,EAAI8C,GAAIokC,GAAM,GAChBpkC,GAAEvC,EAAIsC,IAER,SAASk3T,+BAA+B/1T,GAAOrD,GAAQu5T,GAAO/+N,IAC5D34F,KAAK0K,EAAIlJ,GACTxB,KAAKoL,EAAIjN,GACT6B,KAAKxD,EAAIk7T,GACT13T,KAAK4Z,EAAI++E,GACT34F,KAAKT,GAAI,EACTS,KAAKxC,EAAIwC,KAAKjC,EAAI,KAEpB,SAAS45T,YAAYC,GAAcC,GAAUrlH,GAAaslH,IACxD,OAAO,SAAS9lT,GAAQspS,IACtB,IAsDI5pO,GAtDAx9C,GAAO2jS,GAASvc,IAAWyc,GAAmB/lT,GAAOyJ,OAAOq8S,GAAU,GAAIA,GAAU,IACpF90M,GAAO,CACTxhH,MAAOA,MACP8zO,UAAWA,UACXE,QAASA,QACTE,aAAc,WACZ1yH,GAAKxhH,MAAQw2T,UACbh1M,GAAKsyH,UAAY2gF,UACjBjzM,GAAKwyH,QAAU0gF,QACfxkP,GAAW,GACXvV,GAAU,IAEZw5K,WAAY,WACV3yH,GAAKxhH,MAAQA,MACbwhH,GAAKsyH,UAAYA,UACjBtyH,GAAKwyH,QAAUA,QACf9jK,GAAWrmE,GAAGw5K,MAAMnzG,IACpB,IAAI4lP,GAuKZ,SAASW,sBAAsBz2T,GAAO26D,IACpC,IAAI+7P,GAAW12T,GAAM,GAAI22T,GAAW32T,GAAM,GAAI42T,GAAiB,CAAEl2T,KAAK8oD,IAAIktQ,KAAYh2T,KAAK6oD,IAAImtQ,IAAW,GAAKG,GAAa,EAAGxyI,GAAU,EACzI0uI,GAAmB7iS,QACnB,IAAK,IAAI11B,GAAI,EAAGwB,GAAI2+D,GAAQ99D,OAAQrC,GAAIwB,KAAKxB,GAAG,CAC9C,IAAI65O,GAAO15K,GAAQngE,IAAIG,GAAI05O,GAAKx3O,OAChC,GAAKlC,GAEL,IADA,IAAIm8T,GAASziF,GAAK,GAAIqC,GAAKogF,GAAO,GAAIngF,GAAKmgF,GAAO,GAAK,EAAI5hF,GAAI,EAAGk+E,GAAQ1yT,KAAK8oD,IAAImtL,IAAKw8E,GAAQzyT,KAAK6oD,IAAIotL,IAAKh5O,GAAI,IACrG,CACPA,KAAMhD,KAAGgD,GAAI,GAEjB,IAAI83O,IADJz1O,GAAQq0O,GAAK12O,KACC,GAAI+3O,GAAI11O,GAAM,GAAK,EAAIk1O,GAAI,EAAG0D,GAAOl4O,KAAK8oD,IAAIksL,IAAIE,GAAOl1O,KAAK6oD,IAAImsL,IAAI49E,GAAK79E,GAAIiB,GAAI68E,GAAMD,IAAM,EAAI,GAAK,EAAGE,GAAMD,GAAMD,GAAIwB,GAAetB,GAAMt+E,GAAGl3O,GAAIo1T,GAAQx6E,GAG7K,GAFAm6E,GAAmBt8S,IAAI/V,KAAKivM,MAAM3xM,GAAIu1T,GAAM7yT,KAAK8oD,IAAIgqQ,IAAML,GAAQv9E,GAAO53O,GAAI0C,KAAK6oD,IAAIiqQ,MACvFqD,IAAc/B,GAAexB,GAAKC,GAAMxR,GAAIuR,GACxCwB,GAAep+E,IAAMggF,GAAWjhF,IAAKihF,GAAU,CACjD,IAAIlwM,GAAMotM,sBAAsBH,iBAAiBqD,IAASrD,iBAAiBzzT,KAC3E+zT,0BAA0BvtM,IAC1B,IAAIuwM,GAAenD,sBAAsBgD,GAAgBpwM,IACzDutM,0BAA0BgD,IAC1B,IAAIC,IAAQlC,GAAexB,IAAM,GAAK,EAAI,GAAKhR,QAAQyU,GAAa,KAChEJ,GAAWK,IAAQL,KAAaK,KAASxwM,GAAI,IAAMA,GAAI,OACzD69D,IAAWywI,GAAexB,IAAM,EAAI,GAAK,GAG7C,IAAK31T,KAAK,MACV+4O,GAAKjB,GAAG29E,GAAQx6E,GAAMu6E,GAAQv9E,GAAMkhF,GAAS92T,IAGjD,OAAQ62T,IAAc5hF,IAAK4hF,GAAa5hF,IAAK89E,IAAsB99E,IAAe,EAAV5wD,GAlM5CoyI,CAAsBF,GAAkB57P,IAC1DuV,GAASrzE,QACNo6T,KAAgBnd,GAAS5lE,eAAgB+iF,IAAiB,GAC/DpB,mBAAmB3lP,GAAUgnP,gBAAiBpB,GAAiB9kH,GAAa8oG,KACnEgc,KACJmB,KAAgBnd,GAAS5lE,eAAgB+iF,IAAiB,GAC/Dnd,GAAShmE,YACT9iC,GAAY,KAAM,KAAM,EAAG8oG,IAC3BA,GAAS9lE,WAEPijF,KAAgBnd,GAAS3lE,aAAc8iF,IAAiB,GAC5D/mP,GAAWvV,GAAU,MAEvB87K,OAAQ,WACNqjE,GAAS5lE,eACT4lE,GAAShmE,YACT9iC,GAAY,KAAM,KAAM,EAAG8oG,IAC3BA,GAAS9lE,UACT8lE,GAAS3lE,eAGb,SAASn0O,MAAMy1O,GAAGC,IAChB,IAAI11O,GAAQwQ,GAAOilO,GAAGC,IAClB0gF,GAAa3gF,GAAIz1O,GAAM,GAAI01O,GAAI11O,GAAM,KAAK85S,GAAS95S,MAAMy1O,GAAGC,IAElE,SAASyhF,UAAU1hF,GAAGC,IACpB,IAAI11O,GAAQwQ,GAAOilO,GAAGC,IACtBhjN,GAAK1yB,MAAMA,GAAM,GAAIA,GAAM,IAE7B,SAAS8zO,YACPtyH,GAAKxhH,MAAQm3T,UACbzkS,GAAKohN,YAEP,SAASE,UACPxyH,GAAKxhH,MAAQA,MACb0yB,GAAKshN,UAGP,IAAmGr5K,GAAS05K,GAAxGjwO,GAASgzT,4BAA6BC,GAAehB,GAASjyT,IAAS6yT,IAAiB,EAC5F,SAAST,UAAU/gF,GAAGC,IACpBrB,GAAK50O,KAAK,CAAEg2O,GAAGC,KACf,IAAI11O,GAAQwQ,GAAOilO,GAAGC,IACtB2hF,GAAar3T,MAAMA,GAAM,GAAIA,GAAM,IAErC,SAASy0T,YACP4C,GAAavjF,YACbO,GAAO,GAET,SAASqgF,UACP8B,UAAUniF,GAAK,GAAG,GAAIA,GAAK,GAAG,IAC9BgjF,GAAarjF,UACb,IAAkEh7F,GAA9DnkF,GAAQwiQ,GAAaxiQ,QAASyiQ,GAAelzT,GAAOA,SAAmBpI,GAAIs7T,GAAaz6T,OAI5F,GAHAw3O,GAAKn0O,MACLy6D,GAAQl7D,KAAK40O,IACbA,GAAO,KACFr4O,GACL,GAAY,EAAR64D,GAAJ,CAEE,IAAoC70D,GAARxF,IAAK,EACjC,IADIwB,IADJg9I,GAAUs+K,GAAa,IACPz6T,OAAS,GACjB,EAAG,CAGT,IAFKo6T,KAAgBnd,GAAS5lE,eAAgB+iF,IAAiB,GAC/Dnd,GAAShmE,cACAt5O,GAAIwB,IAAG89S,GAAS95S,OAAOA,GAAQg5I,GAAQx+I,KAAI,GAAIwF,GAAM,IAC9D85S,GAAS9lE,gBAITh4O,GAAI,GAAa,EAAR64D,IAAWyiQ,GAAa73T,KAAK63T,GAAap3T,MAAMwC,OAAO40T,GAAatuQ,UACjFknB,GAASzwE,KAAK63T,GAAaj4T,OAAOk4T,4BAEpC,OAAO/1M,IAGX,SAAS+1M,0BAA0Bv+K,IACjC,OAAOA,GAAQn8I,OAAS,EAE1B,SAASu6T,4BACP,IAAgB1kS,GAAZznB,GAAQ,GACZ,MAAO,CACL6oO,UAAW,WACT7oO,GAAMxL,KAAKizB,GAAO,KAEpB1yB,MAAO,SAASy1O,GAAGC,IACjBhjN,GAAKjzB,KAAK,CAAEg2O,GAAGC,MAEjB1B,QAASylE,QACTr1S,OAAQ,WACN,IAAIA,GAAS6G,GAGb,OAFAA,GAAQ,GACRynB,GAAO,KACAtuB,IAETozT,OAAQ,WACFvsT,GAAMpO,OAAS,GAAGoO,GAAMxL,KAAKwL,GAAM/K,MAAMwC,OAAOuI,GAAM+9C,YAIhE,SAASkuQ,gBAAgBr4T,GAAGC,IAC1B,QAASD,GAAIA,GAAEqK,GAAG,GAAK,EAAIrK,GAAE,GAAKs2O,GAAQF,GAAIE,GAAQt2O,GAAE,MAAQC,GAAIA,GAAEoK,GAAG,GAAK,EAAIpK,GAAE,GAAKq2O,GAAQF,GAAIE,GAAQr2O,GAAE,IAEjH,IAAI24T,GAA0BtB,YAAYP,SAC1C,SAAS8B,4BAA4B5d,IACnC,IAAmCjlP,GAA/B6hL,GAAK/8K,IAAKg9K,GAAKh9K,IAAKg+P,GAAMh+P,IAC9B,MAAO,CACLm6K,UAAW,WACTgmE,GAAShmE,YACTj/K,GAAQ,GAEV70D,MAAO,SAASk0T,GAAIt9E,IAClB,IAAIghF,GAAM1D,GAAK,EAAIh/E,IAAKA,GAAGo+E,GAAKthT,GAAIkiT,GAAKx9E,IACrC1kO,GAAIshT,GAAKp+E,IAAKD,IAChB6kE,GAAS95S,MAAM02O,GAAIC,IAAMA,GAAKC,IAAM,EAAI,EAAIzB,IAASA,IACrD2kE,GAAS95S,MAAM23T,GAAKhhF,IACpBmjE,GAAS9lE,UACT8lE,GAAShmE,YACTgmE,GAAS95S,MAAM43T,GAAKjhF,IACpBmjE,GAAS95S,MAAMk0T,GAAIv9E,IACnB9hL,GAAQ,GACC8iQ,KAAQC,IAAOtE,IAAMp+E,KAC1BljO,GAAI0kO,GAAKihF,IAAO1iF,KAAGyB,IAAMihF,GAAM1iF,IAC/BjjO,GAAIkiT,GAAK0D,IAAO3iF,KAAGi/E,IAAM0D,GAAM3iF,IACnC0B,GAmBR,SAASkhF,iCAAiCnhF,GAAIC,GAAIu9E,GAAIt9E,IACpD,IAAIu8E,GAAO2E,GAAOC,GAAWr3T,KAAK8oD,IAAIktL,GAAKw9E,IAC3C,OAAOliT,GAAI+lT,IAAY9iF,GAAIv0O,KAAKk/G,MAAMl/G,KAAK8oD,IAAImtL,KAAOmhF,GAAQp3T,KAAK6oD,IAAIqtL,KAAOl2O,KAAK8oD,IAAI0qQ,IAAMxzT,KAAK8oD,IAAIotL,KAAOu8E,GAAQzyT,KAAK6oD,IAAIotL,KAAOj2O,KAAK8oD,IAAIktL,MAAQy8E,GAAQ2E,GAAQC,MAAcphF,GAAKC,IAAM,EArBpLihF,CAAiCnhF,GAAIC,GAAIu9E,GAAIt9E,IAClDkjE,GAAS95S,MAAM23T,GAAKhhF,IACpBmjE,GAAS9lE,UACT8lE,GAAShmE,YACTgmE,GAAS95S,MAAM43T,GAAKjhF,IACpB9hL,GAAQ,GAEVilP,GAAS95S,MAAM02O,GAAKw9E,GAAIv9E,GAAKC,IAC7B+gF,GAAMC,IAER5jF,QAAS,WACP8lE,GAAS9lE,UACT0C,GAAKC,GAAKh9K,KAEZ9E,MAAO,WACL,OAAO,EAAIA,QAQjB,SAASmjQ,mCAAmCtyN,GAAM67E,GAAIluG,GAAWymO,IAC/D,IAAIpkE,GACJ,GAAY,MAARhwI,GACFgwI,GAAIriK,GAAY8hK,GAChB2kE,GAAS95S,OAAOk1O,GAAGQ,IACnBokE,GAAS95S,MAAM,EAAG01O,IAClBokE,GAAS95S,MAAMk1O,GAAGQ,IAClBokE,GAAS95S,MAAMk1O,GAAG,GAClB4kE,GAAS95S,MAAMk1O,IAAIQ,IACnBokE,GAAS95S,MAAM,GAAI01O,IACnBokE,GAAS95S,OAAOk1O,IAAIQ,IACpBokE,GAAS95S,OAAOk1O,GAAG,GACnB4kE,GAAS95S,OAAOk1O,GAAGQ,SACd,GAAI1jO,GAAI0zF,GAAK,GAAK67E,GAAG,IAAM0zD,GAAG,CACnC,IAAIz4O,GAAIkpG,GAAK,GAAK67E,GAAG,GAAK2zD,IAAKA,GAC/BQ,GAAIriK,GAAY72E,GAAI,EACpBs9S,GAAS95S,OAAOxD,GAAGk5O,IACnBokE,GAAS95S,MAAM,EAAG01O,IAClBokE,GAAS95S,MAAMxD,GAAGk5O,SAElBokE,GAAS95S,MAAMuhL,GAAG,GAAIA,GAAG,MAhEuF,EAAG2zD,IAAIA,GAAI,IAgG/H,SAAS+iF,kBAAkB31P,IACzB,IAAI41P,GAAKx3T,KAAK6oD,IAAI+Y,IAAS61P,GAAcD,GAAK,EAAGE,GAAgBpmT,GAAIkmT,IAAMjjF,GAC3E,OAAOkhF,YAAYrpT,SAInB,SAASupT,SAASvc,IAChB,IAAIgd,GAAQlpN,GAAIn7C,GAAI4lQ,GAAKxjQ,GACzB,MAAO,CACLi/K,UAAW,WACTukF,GAAM5lQ,IAAK,EACXoC,GAAQ,GAEV70D,MAAO,SAASy1O,GAAGC,IACjB,IAAuB4iF,GAAnBC,GAAS,CAAE9iF,GAAGC,IAAa33O,GAAI+O,QAAQ2oO,GAAGC,IAAI96O,GAAIu9T,GAAcp6T,GAAI,EAAIyB,KAAKi2O,GAAGC,IAAK33O,GAAIyB,KAAKi2O,IAAKA,GAAI,EAAIP,IAAKA,IAAIQ,IAAK,EAU7H,IATKohF,KAAWuB,GAAM5lQ,GAAK10D,KAAI+7S,GAAShmE,YACpC/1O,KAAM00D,KACR6lQ,GAASl6K,UAAU04K,GAAQyB,KACvBtE,sBAAsB6C,GAAQwB,KAAWrE,sBAAsBsE,GAAQD,OACzEC,GAAO,IAAMtjF,GACbsjF,GAAO,IAAMtjF,GACbl3O,GAAI+O,QAAQyrT,GAAO,GAAIA,GAAO,MAG9Bx6T,KAAM00D,GACRoC,GAAQ,EACJ92D,IACF+7S,GAAShmE,YACTwkF,GAASl6K,UAAUm6K,GAAQzB,IAC3Bhd,GAAS95S,MAAMs4T,GAAO,GAAIA,GAAO,MAEjCA,GAASl6K,UAAU04K,GAAQyB,IAC3Bze,GAAS95S,MAAMs4T,GAAO,GAAIA,GAAO,IACjCxe,GAAS9lE,WAEX8iF,GAASwB,QACJ,GAAIF,IAAiBtB,IAAUqB,GAAcp6T,GAAG,CACrD,IAAItC,GACEb,GAAIgzG,MAAQnyG,GAAI2iJ,UAAUm6K,GAAQzB,IAAQ,MAC9CjiQ,GAAQ,EACJsjQ,IACFre,GAAShmE,YACTgmE,GAAS95S,MAAMvE,GAAE,GAAG,GAAIA,GAAE,GAAG,IAC7Bq+S,GAAS95S,MAAMvE,GAAE,GAAG,GAAIA,GAAE,GAAG,IAC7Bq+S,GAAS9lE,YAET8lE,GAAS95S,MAAMvE,GAAE,GAAG,GAAIA,GAAE,GAAG,IAC7Bq+S,GAAS9lE,UACT8lE,GAAShmE,YACTgmE,GAAS95S,MAAMvE,GAAE,GAAG,GAAIA,GAAE,GAAG,OAI/BsC,IAAO+4T,IAAW7C,sBAAsB6C,GAAQyB,KAClDze,GAAS95S,MAAMu4T,GAAO,GAAIA,GAAO,IAEnCzB,GAASyB,GAAQ9lQ,GAAK10D,GAAG6vG,GAAKhzG,IAEhCo5O,QAAS,WACHvhL,IAAIqnP,GAAS9lE,UACjB8iF,GAAS,MAEXjiQ,MAAO,WACL,OAAOA,IAASwjQ,IAAO5lQ,KAAO,MA9DwD+lQ,yBAAyBl2P,GAAQ,EAAI2/O,IAC9EkW,GAAc,CAAE,GAAI71P,IAAW,EAAG4yK,GAAG5yK,GAAS4yK,KACjG,SAASpoO,QAAQ2oO,GAAGC,IAClB,OAAOh1O,KAAK6oD,IAAIksL,IAAK/0O,KAAK6oD,IAAImsL,IAAKwiF,GA+DrC,SAAS95K,UAAUv/I,GAAGC,GAAG25T,IACvB,IACIC,GAAK,CAAE,EAAG,EAAG,GAAKC,GAAK/E,sBADlBH,iBAAiB50T,IAAS40T,iBAAiB30T,KACM85T,GAAOjF,oBAAoBgF,GAAIA,IAAKE,GAAOF,GAAG,GAAIluP,GAAcmuP,GAAOC,GAAOA,GACxI,IAAKpuP,GAAa,OAAQguP,IAAO55T,GACjC,IAAIgvG,GAAKqqN,GAAKU,GAAOnuP,GAAa+kN,IAAM0oC,GAAKW,GAAOpuP,GAAaquP,GAAQlF,sBAAsB8E,GAAIC,IAAKxsI,GAAI2nI,sBAAsB4E,GAAI7qN,IACtIgmN,oBAAoB1nI,GAD2H2nI,sBAAsB6E,GAAInpC,KAEzK,IAAIxwR,GAAI85T,GAAOxgT,GAAIq7S,oBAAoBxnI,GAAGntL,IAAIwC,GAAKmyT,oBAAoB30T,GAAGA,IAAIq1B,GAAK/b,GAAIA,GAAI9W,IAAMmyT,oBAAoBxnI,GAAGA,IAAK,GAC7H,KAAI93J,GAAK,GAAT,CACA,IAAI54B,GAAIiF,KAAK6E,KAAK8uB,IAAKmuC,GAAIsxP,sBAAsB90T,KAAKsZ,GAAI7c,IAAK+F,IAG/D,GAFAqyT,oBAAoBrxP,GAAG2pH,IACvB3pH,GAAIwxP,iBAAiBxxP,KAChBi2P,GAAK,OAAOj2P,GACjB,IAAgD54D,GAA5C8sO,GAAK73O,GAAE,GAAIq1T,GAAKp1T,GAAE,GAAI63O,GAAK93O,GAAE,GAAI+3O,GAAK93O,GAAE,GACxCo1T,GAAKx9E,KAAI9sO,GAAI8sO,GAAIA,GAAKw9E,GAAIA,GAAKtqT,IACnC,IAAI2vO,GAAK26E,GAAKx9E,GAAIqiF,GAAQ/mT,GAAIunO,GAAKrE,IAAKD,GAExC,IADK8jF,IAASniF,GAAKD,KAAI/sO,GAAI+sO,GAAIA,GAAKC,GAAIA,GAAKhtO,IADSmvT,IAASx/E,GAAKtE,GAErD8jF,GAAQpiF,GAAKC,GAAK,EAAIp0K,GAAE,IAAMxwD,GAAIwwD,GAAE,GAAKk0K,IAAMzB,GAAI0B,GAAKC,IAAMD,IAAMn0K,GAAE,IAAMA,GAAE,IAAMo0K,GAAK2C,GAAKrE,IAAKwB,IAAMl0K,GAAE,IAAMA,GAAE,IAAM0xP,IAAK,CAC3I,IAAIpyL,GAAKgyL,sBAAsB90T,KAAKsZ,GAAI7c,IAAK+F,IAE7C,OADAqyT,oBAAoB/xL,GAAIqqD,IACjB,CAAE3pH,GAAGwxP,iBAAiBlyL,OAGjC,SAAStiI,KAAKi2O,GAAGC,IACf,IAAIr6O,GAAI88T,GAAc71P,GAAS4yK,GAAI5yK,GAAQ9iE,GAAO,EAGlD,OAFIi2O,IAAKp6O,GAAGmE,IAAQ,EAAYi2O,GAAIp6O,KAAGmE,IAAQ,GAC3Ck2O,IAAKr6O,GAAGmE,IAAQ,EAAYk2O,GAAIr6O,KAAGmE,IAAQ,GACxCA,IAGX,SAASw5T,iBAAiBloS,GAAIK,GAAIJ,GAAIK,IACpC,OAAO,SAASsB,IACd,IAAgHr3B,GAA5GwD,GAAI6zB,GAAK7zB,EAAGC,GAAI4zB,GAAK5zB,EAAG8hB,GAAK/hB,GAAEqK,EAAGi7F,GAAKtlG,GAAEuR,EAAuB7H,GAAK,EAAG6rB,GAAK,EAAGf,GAA/Bv0B,GAAEoK,EAAuC0X,GAAI4F,GAAnC1nB,GAAEsR,EAA2C+zF,GAE5G,GADA9oG,GAAIy1B,GAAKlQ,GACJyS,MAAMh4B,GAAI,GAAf,CAEA,GADAA,IAAKg4B,GACDA,GAAK,EAAG,CACV,GAAIh4B,GAAIkN,GAAI,OACRlN,GAAI+4B,KAAIA,GAAK/4B,SACZ,GAAIg4B,GAAK,EAAG,CACjB,GAAIh4B,GAAI+4B,GAAI,OACR/4B,GAAIkN,KAAIA,GAAKlN,IAGnB,GADAA,GAAI01B,GAAKnQ,GACJyS,MAAMh4B,GAAI,GAAf,CAEA,GADAA,IAAKg4B,GACDA,GAAK,EAAG,CACV,GAAIh4B,GAAI+4B,GAAI,OACR/4B,GAAIkN,KAAIA,GAAKlN,SACZ,GAAIg4B,GAAK,EAAG,CACjB,GAAIh4B,GAAIkN,GAAI,OACRlN,GAAI+4B,KAAIA,GAAK/4B,IAGnB,GADAA,GAAI81B,GAAKgzE,GACJ39E,MAAMnrB,GAAI,GAAf,CAEA,GADAA,IAAKmrB,GACDA,GAAK,EAAG,CACV,GAAInrB,GAAIkN,GAAI,OACRlN,GAAI+4B,KAAIA,GAAK/4B,SACZ,GAAImrB,GAAK,EAAG,CACjB,GAAInrB,GAAI+4B,GAAI,OACR/4B,GAAIkN,KAAIA,GAAKlN,IAGnB,GADAA,GAAI+1B,GAAK+yE,GACJ39E,MAAMnrB,GAAI,GAAf,CAEA,GADAA,IAAKmrB,GACDA,GAAK,EAAG,CACV,GAAInrB,GAAI+4B,GAAI,OACR/4B,GAAIkN,KAAIA,GAAKlN,SACZ,GAAImrB,GAAK,EAAG,CACjB,GAAInrB,GAAIkN,GAAI,OACRlN,GAAI+4B,KAAIA,GAAK/4B,IAUnB,OARIkN,GAAK,IAAGmqB,GAAK7zB,EAAI,CACnBqK,EAAG0X,GAAKrY,GAAK8qB,GACbjjB,EAAG+zF,GAAK57F,GAAKie,KAEX4N,GAAK,IAAG1B,GAAK5zB,EAAI,CACnBoK,EAAG0X,GAAKwT,GAAKf,GACbjjB,EAAG+zF,GAAK/vE,GAAK5N,KAERkM,QAqBX,SAASumS,kBAAkBnoS,GAAIK,GAAIJ,GAAIK,IACrC,OAAO,SAAS0oR,IACd,IAAqH5pO,GAAUvV,GAAS05K,GA6DpI6kF,GAAKC,GAAKC,GAAKC,GAAIC,GAAIC,GAAIvhR,GAAO6c,GA7DlC2kQ,GAAY1f,GAAU2f,GAAiBrC,4BAA6Bf,GAAW2C,iBAAiBloS,GAAIK,GAAIJ,GAAIK,IAC5GowF,GAAO,CACTxhH,MAAOA,MACP8zO,UA2DF,SAASA,YACPtyH,GAAKxhH,MAAQ20T,UACTh6P,IAASA,GAAQl7D,KAAK40O,GAAO,IACjCr8L,IAAQ,EACRuhR,IAAK,EACLF,GAAKC,GAAK3/P,KA/DVq6K,QAiEF,SAASA,UACH9jK,KACFykP,UAAUuE,GAAKC,IACXC,IAAOG,IAAIE,GAAejC,SAC9BtnP,GAASzwE,KAAKg6T,GAAer1T,WAE/Bo9G,GAAKxhH,MAAQA,MACTu5T,IAAIzf,GAAS9lE,WAvEjBE,aAAc,WACZ4lE,GAAW2f,GACXvpP,GAAW,GACXvV,GAAU,GACV9F,IAAQ,GAEVs/K,WAAY,WACV2lE,GAAW0f,GACXtpP,GAAWrmE,GAAGw5K,MAAMnzG,IACpB,IAAI4lP,GAgBR,SAAS4D,cAAcn9T,IAErB,IADA,IAAIo9T,GAAK,EAAG39T,GAAI2+D,GAAQ99D,OAAQuT,GAAI7T,GAAE,GAC7B/B,GAAI,EAAGA,GAAIwB,KAAKxB,GACvB,IAAK,IAAmDsE,GAA/CnB,GAAI,EAAGI,GAAI48D,GAAQngE,IAAIG,GAAIoD,GAAElB,OAAQgC,GAAId,GAAE,GAAOJ,GAAIhD,KAAKgD,GAClEmB,GAAIf,GAAEJ,IACFkB,GAAE,IAAMuR,GACNtR,GAAE,GAAKsR,IAAKgyS,WAAWvjT,GAAGC,GAAGvC,IAAK,KAAKo9T,GAEvC76T,GAAE,IAAMsR,IAAKgyS,WAAWvjT,GAAGC,GAAGvC,IAAK,KAAKo9T,GAE9C96T,GAAIC,GAGR,OAAc,IAAP66T,GA7BiBD,CAAc,CAAE5oS,GAAIM,KAAOkjK,GAASz/H,IAASihQ,GAAiBhpT,GAAUojE,GAASrzE,QACnGy3L,IAAUxnL,MACZgtS,GAAS5lE,eACL5/C,KACFwlH,GAAShmE,YACT9iC,YAAY,KAAM,KAAM,EAAG8oG,IAC3BA,GAAS9lE,WAEPlnO,IACF+oT,mBAAmB3lP,GAAU1gE,QAASsmT,GAAiB9kH,YAAa8oG,IAEtEA,GAAS3lE,cAEXjkK,GAAWvV,GAAU05K,GAAO,OAkBhC,SAASrjC,YAAYtrG,GAAM67E,GAAIluG,GAAWymO,IACxC,IAAIj7S,GAAI,EAAG0rG,GAAK,EAChB,GAAY,MAAR7E,KAAiB7mG,GAAI2nC,OAAOk/D,GAAMryB,QAAiBk3B,GAAK/jE,OAAO+6I,GAAIluG,MAAeumP,cAAcl0N,GAAM67E,IAAM,EAAIluG,GAAY,EAC9H,GACEymO,GAAS95S,MAAY,IAANnB,IAAiB,IAANA,GAAUiyB,GAAKC,GAAIlyB,GAAI,EAAIuyB,GAAKD,WAClDtyB,IAAKA,GAAIw0E,GAAY,GAAK,KAAOk3B,SAE3CuvM,GAAS95S,MAAMuhL,GAAG,GAAIA,GAAG,IAG7B,SAAS60I,aAAaltT,GAAGkH,IACvB,OAAO0gB,IAAM5nB,IAAKA,IAAK6nB,IAAMI,IAAM/gB,IAAKA,IAAKghB,GAE/C,SAASpxB,MAAMkJ,GAAGkH,IACZgmT,aAAaltT,GAAGkH,KAAI0pS,GAAS95S,MAAMkJ,GAAGkH,IAmB5C,SAASukT,UAAUzrT,GAAGkH,IAGpB,IAAIrS,GAAIq4T,aAFRltT,GAAIxI,KAAKqC,KAnGY,IAmGerC,KAAKoC,IAnGpB,IAmG8CoG,KACnEkH,GAAI1P,KAAKqC,KApGY,IAoGerC,KAAKoC,IApGpB,IAoG8CsN,MAGnE,GADIuqD,IAAS05K,GAAK50O,KAAK,CAAEyJ,GAAGkH,KACxB4nC,GACFkhR,GAAMhwT,GAAGiwT,GAAM/oT,GAAGgpT,GAAMr7T,GACxBi6C,IAAQ,EACJj6C,KACF+7S,GAAShmE,YACTgmE,GAAS95S,MAAMkJ,GAAGkH,UAGpB,GAAIrS,IAAKw7T,GAAIzf,GAAS95S,MAAMkJ,GAAGkH,QAAS,CACtC,IAAI3V,GAAI,CACNoE,EAAG,CACDqK,EAAGmwT,GACHjpT,EAAGkpT,IAELx6T,EAAG,CACDoK,EAAGA,GACHkH,EAAGA,KAGHimT,GAAS57T,KACN8+T,KACHzf,GAAShmE,YACTgmE,GAAS95S,MAAMvF,GAAEoE,EAAEqK,EAAGzO,GAAEoE,EAAEuR,IAE5B0pS,GAAS95S,MAAMvF,GAAEqE,EAAEoK,EAAGzO,GAAEqE,EAAEsR,GACrBrS,IAAG+7S,GAAS9lE,UACjBn/K,IAAQ,GACC92D,KACT+7S,GAAShmE,YACTgmE,GAAS95S,MAAMkJ,GAAGkH,IAClBykD,IAAQ,GAIdwkQ,GAAKnwT,GAAGowT,GAAKlpT,GAAGmpT,GAAKx7T,GAEvB,OAAOyjH,IAET,SAASh7E,OAAOjqC,GAAG82E,IACjB,OAAOrhE,GAAIzV,GAAE,GAAKu0B,IAAMmkN,GAAI5hK,GAAY,EAAI,EAAI,EAAIrhE,GAAIzV,GAAE,GAAKw0B,IAAMkkN,GAAI5hK,GAAY,EAAI,EAAI,EAAIrhE,GAAIzV,GAAE,GAAK40B,IAAM8jN,GAAI5hK,GAAY,EAAI,EAAI,EAAIA,GAAY,EAAI,EAAI,EAEpK,SAAS7jE,QAAQ3Q,GAAGC,IAClB,OAAO86T,cAAc/6T,GAAEqK,EAAGpK,GAAEoK,GAE9B,SAAS0wT,cAAc/6T,GAAGC,IACxB,IAAI+6T,GAAKrzR,OAAO3nC,GAAG,GAAI8iK,GAAKn7H,OAAO1nC,GAAG,GACtC,OAAO+6T,KAAOl4J,GAAKk4J,GAAKl4J,GAAY,IAAPk4J,GAAW/6T,GAAE,GAAKD,GAAE,GAAY,IAAPg7T,GAAWh7T,GAAE,GAAKC,GAAE,GAAY,IAAP+6T,GAAWh7T,GAAE,GAAKC,GAAE,GAAKA,GAAE,GAAKD,GAAE,IAGrH,SAASi7T,aAAaC,IACpB,IAAIpjF,GAAK,EAAGC,GAAK1B,GAAI,EAAGv6O,GAAIq/T,yBAAyBD,IAAYx9T,GAAI5B,GAAEg8O,GAAIC,IAK3E,OAJAr6O,GAAE0sO,UAAY,SAAS/oK,IACrB,OAAKtqD,UAAU/Y,OACRlC,GAAEg8O,GAAKz2K,GAAE,GAAKg1K,GAAI,IAAK0B,GAAK12K,GAAE,GAAKg1K,GAAI,KADhB,CAAEyB,GAAKzB,GAAI,IAAK0B,GAAK1B,GAAI,MAGlD34O,GAET,SAAS09T,sBAAsBtjF,GAAIC,IACjC,IAAIw8E,GAAQ1yT,KAAK8oD,IAAImtL,IAAK36O,IAAKo3T,GAAQ1yT,KAAK8oD,IAAIotL,KAAO,EAAGz0C,GAAI,EAAIixH,IAAS,EAAIp3T,GAAIo3T,IAAQ8G,GAAKx5T,KAAK6E,KAAK48L,IAAKnmM,GAC/G,SAAS+5O,QAAQN,GAAGC,IAClB,IAAI+sE,GAAI/hT,KAAK6E,KAAK48L,GAAI,EAAInmM,GAAI0E,KAAK8oD,IAAIksL,KAAM15O,GAC7C,MAAO,CAAEymT,GAAI/hT,KAAK8oD,IAAIisL,IAAKz5O,IAAIk+T,GAAKzX,GAAI/hT,KAAK6oD,IAAIksL,KAMnD,OAJAM,QAAQ97N,OAAS,SAAS/Q,GAAGkH,IAC3B,IAAI+pT,GAAOD,GAAK9pT,GAChB,MAAO,CAAE1P,KAAKivM,MAAMzmM,GAAGixT,IAAQn+T,GAAGsmT,SAASngH,IAAKj5L,GAAIA,GAAIixT,GAAOA,IAAQn+T,GAAIA,KAAM,EAAIA,OAEhF+5O,QAzKTlsO,GAAG8mB,IAAIypS,WAAa,WAClB,IAAItpS,GAAIK,GAAIJ,GAAIK,GAAIw4E,GAAQ4X,GAAM44M,GAAa,CAC7CxwN,OAAQ,SAAS77F,IAIf,OAHI67F,KAAQA,GAAOpxF,OAAQ,IAC3BoxF,GAAS4X,GAAKzzG,KACPyK,OAAQ,EACRoxF,IAETxnC,OAAQ,SAASlC,IACf,OAAKtqD,UAAU/Y,QACf2kH,GAAOy3M,kBAAkBnoS,IAAMovC,GAAE,GAAG,GAAI/uC,IAAM+uC,GAAE,GAAG,GAAInvC,IAAMmvC,GAAE,GAAG,GAAI9uC,IAAM8uC,GAAE,GAAG,IAC7E0pC,KAAQA,GAAOpxF,OAAQ,EAAOoxF,GAAS,MACpCwwN,IAHuB,CAAE,CAAEtpS,GAAIK,IAAM,CAAEJ,GAAIK,OAMtD,OAAOgpS,GAAWh4P,OAAO,CAAE,CAAE,EAAG,GAAK,CAAE,IAAK,SA4J7Cv4D,GAAG8mB,IAAI0pS,eAAiB,WACvB,OAAOP,aAAaG,yBACnBznM,IAAMynM,sBACTpwT,GAAG8mB,IAAI2pS,OAAS,WACd,OAAOzwT,GAAG8mB,IAAI0pS,iBAAiB7pT,OAAO,CAAE,GAAI,IAAKwqB,OAAO,EAAG,GAAI,OAAQiuM,UAAU,CAAE,KAAM,OAAQrqK,MAAM,OAEzG/0D,GAAG8mB,IAAI4pS,UAAY,WACjB,IAGIv6T,GAIDw6T,GAAcC,GAAaC,GAP1BC,GAAU9wT,GAAG8mB,IAAI2pS,SACjBM,GAAS/wT,GAAG8mB,IAAI0pS,iBAAiB7pT,OAAO,CAAE,IAAK,IAAKwqB,OAAO,EAAG,EAAG,OAAQiuM,UAAU,CAAE,GAAI,KACzF4xF,GAAShxT,GAAG8mB,IAAI0pS,iBAAiB7pT,OAAO,CAAE,IAAK,IAAKwqB,OAAO,EAAG,EAAG,OAAQiuM,UAAU,CAAE,EAAG,KACjF6xF,GAAc,CACvB96T,MAAO,SAASkJ,GAAGkH,IACjBpQ,GAAQ,CAAEkJ,GAAGkH,MAGjB,SAASmqT,UAAUt+P,IACjB,IAAI/yD,GAAI+yD,GAAY,GAAI7rD,GAAI6rD,GAAY,GAGxC,OAFAj8D,GAAQ,KACPw6T,GAAatxT,GAAGkH,IAAIpQ,KAAWy6T,GAAYvxT,GAAGkH,IAAIpQ,KAAU06T,GAAYxxT,GAAGkH,IACrEpQ,GA+DT,OA7DAu6T,UAAUtgT,OAAS,SAASgiD,IAC1B,IAAIj+D,GAAI28T,GAAQ/7P,QAASnjE,GAAIk/T,GAAQ1rG,YAAa/lN,IAAK+yD,GAAY,GAAKxgE,GAAE,IAAMuC,GAAGoS,IAAK6rD,GAAY,GAAKxgE,GAAE,IAAMuC,GACjH,OAAQoS,IAAK,KAAOA,GAAI,MAAQlH,KAAM,MAAQA,IAAK,KAAO0xT,GAASxqT,IAAK,MAAQA,GAAI,MAAQlH,KAAM,MAAQA,IAAK,KAAO2xT,GAASF,IAAS1gT,OAAOgiD,KAEjJs+P,UAAU3wN,OAAS,SAASA,IAC1B,IAAImxN,GAAgBJ,GAAQ/wN,OAAOA,IAASoxN,GAAeJ,GAAOhxN,OAAOA,IAASqxN,GAAeJ,GAAOjxN,OAAOA,IAC/G,MAAO,CACL5pG,MAAO,SAASkJ,GAAGkH,IACjB2qT,GAAc/6T,MAAMkJ,GAAGkH,IACvB4qT,GAAah7T,MAAMkJ,GAAGkH,IACtB6qT,GAAaj7T,MAAMkJ,GAAGkH,KAExBqmO,OAAQ,WACNskF,GAActkF,SACdukF,GAAavkF,SACbwkF,GAAaxkF,UAEf3C,UAAW,WACTinF,GAAcjnF,YACdknF,GAAalnF,YACbmnF,GAAannF,aAEfE,QAAS,WACP+mF,GAAc/mF,UACdgnF,GAAahnF,UACbinF,GAAajnF,WAEfE,aAAc,WACZ6mF,GAAc7mF,eACd8mF,GAAa9mF,eACb+mF,GAAa/mF,gBAEfC,WAAY,WACV4mF,GAAc5mF,aACd6mF,GAAa7mF,aACb8mF,GAAa9mF,gBAInBomF,UAAUtgR,UAAY,SAASimB,IAC7B,OAAKtqD,UAAU/Y,QACf89T,GAAQ1gR,UAAUimB,IAClB06P,GAAO3gR,UAAUimB,IACjB26P,GAAO5gR,UAAUimB,IACVq6P,WAJuBI,GAAQ1gR,aAMxCsgR,UAAU37P,MAAQ,SAASsB,IACzB,OAAKtqD,UAAU/Y,QACf89T,GAAQ/7P,MAAMsB,IACd06P,GAAOh8P,MAAU,IAAJsB,IACb26P,GAAOj8P,MAAMsB,IACNq6P,UAAUtrG,UAAU0rG,GAAQ1rG,cAJL0rG,GAAQ/7P,SAMxC27P,UAAUtrG,UAAY,SAAS/uJ,IAC7B,IAAKtqD,UAAU/Y,OAAQ,OAAO89T,GAAQ1rG,YACtC,IAAIjxN,GAAI28T,GAAQ/7P,QAAS11D,IAAKg3D,GAAE,GAAI9vD,IAAK8vD,GAAE,GAI3C,OAHAs6P,GAAeG,GAAQ1rG,UAAU/uJ,IAAGk6P,WAAW,CAAE,CAAElxT,GAAI,KAAOlL,GAAGoS,GAAI,KAAOpS,IAAK,CAAEkL,GAAI,KAAOlL,GAAGoS,GAAI,KAAOpS,MAAO4rG,OAAOkxN,IAAa96T,MACvIy6T,GAAcG,GAAO3rG,UAAU,CAAE/lN,GAAI,KAAOlL,GAAGoS,GAAI,KAAOpS,KAAKo8T,WAAW,CAAE,CAAElxT,GAAI,KAAOlL,GAAIi3O,GAAG7kO,GAAI,IAAMpS,GAAIi3O,IAAK,CAAE/rO,GAAI,KAAOlL,GAAIi3O,GAAG7kO,GAAI,KAAOpS,GAAIi3O,MAAOrrI,OAAOkxN,IAAa96T,MACjL06T,GAAcG,GAAO5rG,UAAU,CAAE/lN,GAAI,KAAOlL,GAAGoS,GAAI,KAAOpS,KAAKo8T,WAAW,CAAE,CAAElxT,GAAI,KAAOlL,GAAIi3O,GAAG7kO,GAAI,KAAOpS,GAAIi3O,IAAK,CAAE/rO,GAAI,KAAOlL,GAAIi3O,GAAG7kO,GAAI,KAAOpS,GAAIi3O,MAAOrrI,OAAOkxN,IAAa96T,MAC3Ku6T,WAEFA,UAAU37P,MAAM,OAEzB,IAAIs8P,GAAoBC,GA2BpBC,GAAqBC,GAAqBC,GAAqBC,GA3BnBC,GAAkB,CAChEx7T,MAAOy5S,QACP3lE,UAAW2lE,QACXzlE,QAASylE,QACTvlE,aAAc,WACZinF,GAAyB,EACzBK,GAAgB1nF,UAAY2nF,0BAE9BtnF,WAAY,WACVqnF,GAAgB1nF,UAAY0nF,GAAgBxnF,QAAUwnF,GAAgBx7T,MAAQy5S,QAC9EyhB,IAAsBlpT,GAAImpT,GAAyB,KAGvD,SAASM,2BACP,IAAIC,GAAKC,GAAK7qS,GAAIK,GAKlB,SAASkiS,UAAUnqT,GAAGkH,IACpB+qT,IAA0BhqS,GAAKjoB,GAAI4nB,GAAK1gB,GACxC0gB,GAAK5nB,GAAGioB,GAAK/gB,GANforT,GAAgBx7T,MAAQ,SAASkJ,GAAGkH,IAClCorT,GAAgBx7T,MAAQqzT,UACxBqI,GAAM5qS,GAAK5nB,GAAGyyT,GAAMxqS,GAAK/gB,IAM3BorT,GAAgBxnF,QAAU,WACxBq/E,UAAUqI,GAAKC,KAInB,IAAIC,GAAoB,CACtB57T,MAMF,SAAS67T,uBAAuB3yT,GAAGkH,IAC7BlH,GAAIkyT,KAAqBA,GAAsBlyT,IAC/CA,GAAIoyT,KAAqBA,GAAsBpyT,IAC/CkH,GAAIirT,KAAqBA,GAAsBjrT,IAC/CA,GAAImrT,KAAqBA,GAAsBnrT,KATnD0jO,UAAW2lE,QACXzlE,QAASylE,QACTvlE,aAAculE,QACdtlE,WAAYslE,SAQd,SAASqiB,oBACP,IAAIC,GAAcC,wBAAwB,KAAM53T,GAAS,GACrDwlG,GAAS,CACX5pG,MAAOA,MACP8zO,UAAW,WACTlqI,GAAO5pG,MAAQi8T,gBAEjBjoF,QAASA,QACTE,aAAc,WACZtqI,GAAOoqI,QAAUkoF,gBAEnB/nF,WAAY,WACVvqI,GAAOoqI,QAAUA,QACjBpqI,GAAO5pG,MAAQA,OAEjBm8T,YAAa,SAASj8P,IAEpB,OADA67P,GAAcC,wBAAwB97P,IAC/B0pC,IAETlkG,OAAQ,WACN,GAAItB,GAAOvH,OAAQ,CACjB,IAAI6I,GAAStB,GAAOxE,KAAK,IAEzB,OADAwE,GAAS,GACFsB,MAIb,SAAS1F,MAAMkJ,GAAGkH,IAChBhM,GAAO3E,KAAK,IAAKyJ,GAAG,IAAKkH,GAAG2rT,IAE9B,SAASE,eAAe/yT,GAAGkH,IACzBhM,GAAO3E,KAAK,IAAKyJ,GAAG,IAAKkH,IACzBw5F,GAAO5pG,MAAQm3T,UAEjB,SAASA,UAAUjuT,GAAGkH,IACpBhM,GAAO3E,KAAK,IAAKyJ,GAAG,IAAKkH,IAE3B,SAAS4jO,UACPpqI,GAAO5pG,MAAQA,MAEjB,SAASk8T,iBACP93T,GAAO3E,KAAK,KAEd,OAAOmqG,GAET,SAASoyN,wBAAwB15P,IAC/B,MAAO,MAAQA,GAAS,IAAMA,GAAS,IAAMA,GAAS,aAAe,EAAIA,GAAS,IAAMA,GAAS,IAAMA,GAAS,YAAc,EAAIA,GAAS,IAE7I,IAqmBI85P,GArmBAC,GAAsB,CACxBr8T,MAAOs8T,yBACPxoF,UAAWyoF,6BACXvoF,QAASwoF,2BACTtoF,aAAc,WACZmoF,GAAoBvoF,UAAY2oF,8BAElCtoF,WAAY,WACVkoF,GAAoBr8T,MAAQs8T,yBAC5BD,GAAoBvoF,UAAYyoF,6BAChCF,GAAoBroF,QAAUwoF,6BAGlC,SAASF,yBAAyBpzT,GAAGkH,IACnCkiT,IAAqBppT,GACrBqpT,IAAqBniT,KACnBoiT,GAEJ,SAAS+J,+BACP,IAAIzrS,GAAIK,GAKR,SAASkiS,UAAUnqT,GAAGkH,IACpB,IAAIijB,GAAKnqB,GAAI4nB,GAAItK,GAAKpW,GAAI+gB,GAAIvnB,GAAIlJ,KAAK6E,KAAK8tB,GAAKA,GAAK7M,GAAKA,IAC3DisS,IAAqB7oT,IAAKknB,GAAK5nB,IAAK,EACpCwpT,IAAqB9oT,IAAKunB,GAAK/gB,IAAK,EACpCuiT,IAAqB/oT,GACrB0yT,yBAAyBxrS,GAAK5nB,GAAGioB,GAAK/gB,IATxCisT,GAAoBr8T,MAAQ,SAASkJ,GAAGkH,IACtCisT,GAAoBr8T,MAAQqzT,UAC5BiJ,yBAAyBxrS,GAAK5nB,GAAGioB,GAAK/gB,KAU1C,SAASosT,6BACPH,GAAoBr8T,MAAQs8T,yBAE9B,SAASG,+BACP,IAAIf,GAAKC,GAAK7qS,GAAIK,GAKlB,SAASkiS,UAAUnqT,GAAGkH,IACpB,IAAIijB,GAAKnqB,GAAI4nB,GAAItK,GAAKpW,GAAI+gB,GAAIvnB,GAAIlJ,KAAK6E,KAAK8tB,GAAKA,GAAK7M,GAAKA,IAC3DisS,IAAqB7oT,IAAKknB,GAAK5nB,IAAK,EACpCwpT,IAAqB9oT,IAAKunB,GAAK/gB,IAAK,EACpCuiT,IAAqB/oT,GAErBgpT,KADAhpT,GAAIunB,GAAKjoB,GAAI4nB,GAAK1gB,KACQ0gB,GAAK5nB,IAC/B2pT,IAAqBjpT,IAAKunB,GAAK/gB,IAC/B0iT,IAAyB,EAAJlpT,GACrB0yT,yBAAyBxrS,GAAK5nB,GAAGioB,GAAK/gB,IAbxCisT,GAAoBr8T,MAAQ,SAASkJ,GAAGkH,IACtCisT,GAAoBr8T,MAAQqzT,UAC5BiJ,yBAAyBZ,GAAM5qS,GAAK5nB,GAAGyyT,GAAMxqS,GAAK/gB,KAapDisT,GAAoBroF,QAAU,WAC5Bq/E,UAAUqI,GAAKC,KAGnB,SAASe,mBAAmBtvS,IAC1B,IAAI+uS,GAAc,IACdvyN,GAAS,CACX5pG,MAAOA,MACP8zO,UAAW,WACTlqI,GAAO5pG,MAAQi8T,gBAEjBjoF,QAASA,QACTE,aAAc,WACZtqI,GAAOoqI,QAAUkoF,gBAEnB/nF,WAAY,WACVvqI,GAAOoqI,QAAUA,QACjBpqI,GAAO5pG,MAAQA,OAEjBm8T,YAAa,SAASj8P,IAEpB,OADAi8P,GAAcj8P,GACP0pC,IAETlkG,OAAQ+zS,SAEV,SAASz5S,MAAMkJ,GAAGkH,IAChBgd,GAAQi4F,OAAOn8G,GAAIizT,GAAa/rT,IAChCgd,GAAQo5F,IAAIt9G,GAAGkH,GAAG+rT,GAAa,EAAGpa,IAEpC,SAASka,eAAe/yT,GAAGkH,IACzBgd,GAAQi4F,OAAOn8G,GAAGkH,IAClBw5F,GAAO5pG,MAAQm3T,UAEjB,SAASA,UAAUjuT,GAAGkH,IACpBgd,GAAQm4F,OAAOr8G,GAAGkH,IAEpB,SAAS4jO,UACPpqI,GAAO5pG,MAAQA,MAEjB,SAASk8T,iBACP9uS,GAAQk4F,YAEV,OAAO1b,GAET,SAAS+yN,gBAAgBn+S,IACvB,IAAIo+S,GAAK,GAAIC,GAAiBn8T,KAAK6oD,IAAI,GAAK04P,IAAa3oD,GAAW,GACpE,SAASjjB,SAASzsI,IAChB,OAAQ0vJ,GAAWwjE,kBAAoBC,cAAcnzN,IAEvD,SAASmzN,aAAanzN,IACpB,OAAOozN,sBAAsBpzN,IAAQ,SAAS1gG,GAAGkH,IAC/ClH,GAAIsV,GAAQtV,GAAGkH,IACfw5F,GAAO5pG,MAAMkJ,GAAE,GAAIA,GAAE,OAGzB,SAAS4zT,kBAAkBlzN,IACzB,IAAIqpN,GAAUyI,GAAKC,GAAKx5N,GAAK86N,GAAK1vN,GAAKmpI,GAAI5lN,GAAIK,GAAI23C,GAAIC,GAAI6kC,GACvDyoI,GAAW,CACbr2O,MAAOA,MACP8zO,UAAWA,UACXE,QAASA,QACTE,aAAc,WACZtqI,GAAOsqI,eACPmC,GAASvC,UAAY2gF,WAEvBtgF,WAAY,WACVvqI,GAAOuqI,aACPkC,GAASvC,UAAYA,YAGzB,SAAS9zO,MAAMkJ,GAAGkH,IAChBlH,GAAIsV,GAAQtV,GAAGkH,IACfw5F,GAAO5pG,MAAMkJ,GAAE,GAAIA,GAAE,IAEvB,SAAS4qO,YACPhjN,GAAK6oC,IACL08K,GAASr2O,MAAQ20T,UACjB/qN,GAAOkqI,YAET,SAAS6gF,UAAUl/E,GAAGC,IACpB,IAAI96O,GAAI64T,iBAAiB,CAAEh+E,GAAGC,KAAMn5O,GAAIiiB,GAAQi3N,GAAGC,IACnDwnF,eAAepsS,GAAIK,GAAIulN,GAAI5tK,GAAIC,GAAI6kC,GAAI98E,GAAKv0B,GAAE,GAAI40B,GAAK50B,GAAE,GAAIm6O,GAAKjB,GAAG3sK,GAAKluE,GAAE,GAAImuE,GAAKnuE,GAAE,GAAIgzG,GAAKhzG,GAAE,GAAI0+P,GAAU1vJ,IAChHA,GAAO5pG,MAAM8wB,GAAIK,IAEnB,SAAS6iN,UACPqC,GAASr2O,MAAQA,MACjB4pG,GAAOoqI,UAET,SAASygF,YACP3gF,YACAuC,GAASr2O,MAAQw0T,UACjBn+E,GAASrC,QAAU0gF,QAErB,SAASF,UAAU/+E,GAAGC,IACpBi/E,UAAU1B,GAAMx9E,GAASC,IAAIgmF,GAAM5qS,GAAI6qS,GAAMxqS,GAAIgxE,GAAMr5B,GAAIm0P,GAAMl0P,GAAIwkC,GAAMK,GAC3EyoI,GAASr2O,MAAQ20T,UAEnB,SAASD,UACPwI,eAAepsS,GAAIK,GAAIulN,GAAI5tK,GAAIC,GAAI6kC,GAAI8tN,GAAKC,GAAK1I,GAAK9wN,GAAK86N,GAAK1vN,GAAK+rJ,GAAU1vJ,IAC/EysI,GAASrC,QAAUA,QACnBA,UAEF,OAAOqC,GAET,SAAS6mF,eAAepsS,GAAIK,GAAIulN,GAAI5tK,GAAIC,GAAI6kC,GAAI78E,GAAIK,GAAI8iS,GAAI3pN,GAAIpH,GAAI0K,GAAIy9D,GAAO1hE,IAC7E,IAAIv2E,GAAKtC,GAAKD,GAAItK,GAAK4K,GAAKD,GAAIyxC,GAAKvvC,GAAKA,GAAK7M,GAAKA,GACpD,GAAIo8C,GAAK,EAAIg6P,IAAMtxJ,KAAS,CAC1B,IAAIzsK,GAAIiqE,GAAKyhC,GAAIzrG,GAAIiqE,GAAKo6B,GAAIvoG,GAAIgzG,GAAKC,GAAIlzG,GAAI+F,KAAK6E,KAAK1G,GAAIA,GAAIC,GAAIA,GAAIlE,GAAIA,IAAIk8O,GAAKp2O,KAAK40O,KAAK16O,IAAKD,IAAIk8O,GAAK7kO,GAAIA,GAAIpX,IAAK,GAAKq6O,IAAKjjO,GAAI0kO,GAAKw9E,IAAMj/E,IAAKyB,GAAKw9E,IAAM,EAAIxzT,KAAKivM,MAAM7wM,GAAGD,IAAItC,GAAIiiB,GAAQq4N,GAAIC,IAAK//L,GAAKx6C,GAAE,GAAIgmE,GAAKhmE,GAAE,GAAI4gU,GAAMpmR,GAAKjmB,GAAIssS,GAAM76P,GAAKpxC,GAAIy/L,GAAKpqM,GAAK22S,GAAM9pS,GAAK+pS,IACpRxsG,GAAKA,GAAKhuJ,GAAKg6P,IAAM5qT,IAAKqhB,GAAK8pS,GAAM32S,GAAK42S,IAAOx6P,GAAK,IAAM,IAAMkG,GAAKyhC,GAAKxhC,GAAKo6B,GAAKyK,GAAKC,GAAKgvN,MAClGK,eAAepsS,GAAIK,GAAIulN,GAAI5tK,GAAIC,GAAI6kC,GAAI72D,GAAIwrB,GAAIs0K,GAAIh4O,IAAKlE,GAAGmE,IAAKnE,GAAGC,GAAG0wK,GAAO1hE,IAC7EA,GAAO5pG,MAAM+2C,GAAIwrB,IACjB26P,eAAenmR,GAAIwrB,GAAIs0K,GAAIh4O,GAAGC,GAAGlE,GAAGm2B,GAAIK,GAAI8iS,GAAI3pN,GAAIpH,GAAI0K,GAAIy9D,GAAO1hE,MASzE,OALAysI,SAASp8L,UAAY,SAASimB,IAC5B,OAAKtqD,UAAU/Y,QACfy8P,IAAYsjE,GAAK18P,GAAIA,IAAK,GAAK,GACxBm2K,UAFuB31O,KAAK6E,KAAKq3T,KAInCvmF,SAiDT,SAASgnF,yBAAyB7+S,IAChC,IAAI63N,GAAWsmF,iBAAgB,SAASzzT,GAAGkH,IACzC,OAAOoO,GAAQ,CAAEtV,GAAIg5S,GAAY9xS,GAAI8xS,QAEvC,OAAO,SAASt4M,IACd,OAAO0zN,yBAAyBjnF,GAASzsI,MAY7C,SAAS2zN,iBAAiB3zN,IACxBprG,KAAKorG,OAASA,GAsBhB,SAASozN,sBAAsBpzN,GAAQ5pG,IACrC,MAAO,CACLA,MAAOA,GACPy2O,OAAQ,WACN7sI,GAAO6sI,UAET3C,UAAW,WACTlqI,GAAOkqI,aAETE,QAAS,WACPpqI,GAAOoqI,WAETE,aAAc,WACZtqI,GAAOsqI,gBAETC,WAAY,WACVvqI,GAAOuqI,eAMb,SAASqpF,kBAAkBh/S,IACzB,OAAOw7S,0BAAyB,WAC9B,OAAOx7S,KADFw7S,GAIT,SAASA,yBAAyBD,IAChC,IAAIv7S,GAAShO,GAAQitT,GAGgDC,GAAIC,GAAoG/zN,GAHzIg0N,GAAkBjB,iBAAgB,SAASzzT,GAAGkH,IAEhF,MAAO,EADPlH,GAAIsV,GAAQtV,GAAGkH,KACJ,GAAKpS,GAAI0/T,GAAIC,GAAKz0T,GAAE,GAAKlL,OAClCA,GAAI,IAAKkL,GAAI,IAAKkH,GAAI,IAAKqlO,GAAI,EAAGC,GAAI,EAAG6D,GAAK,EAAGC,GAAK,EAAGqkF,GAAK,EAAWC,GAAUrG,GAAyBsG,GAAWnlB,YAAaolB,GAAY,KAAM5D,GAAa,KACvK,SAASlzT,WAAWlH,IAElB,MAAO,EADPA,GAAQy9T,GAAcz9T,GAAM,GAAKiiT,GAAYjiT,GAAM,GAAKiiT,KACzC,GAAKjkT,GAAI0/T,GAAIC,GAAK39T,GAAM,GAAKhC,IAE9C,SAASic,OAAOja,IAEd,OADAA,GAAQy9T,GAAcxjT,QAAQja,GAAM,GAAK09T,IAAM1/T,IAAI2/T,GAAK39T,GAAM,IAAMhC,MACpD,CAAEgC,GAAM,GAAKkiT,GAAYliT,GAAM,GAAKkiT,IA4CtD,SAAShyR,QACPutS,GAAgB/H,eAAellT,GAASytT,gBAAgB1kF,GAAIC,GAAIqkF,IAAKr/S,IACrE,IAAIwc,GAASxc,GAAQi3N,GAAGC,IAGxB,OAFAgoF,GAAKx0T,GAAI8xB,GAAO,GAAKh9B,GACrB2/T,GAAKvtT,GAAI4qB,GAAO,GAAKh9B,GACdkgU,aAET,SAASA,aAEP,OADIt0N,KAAQA,GAAOpxF,OAAQ,EAAOoxF,GAAS,MACpC1iG,WAET,OArDAA,WAAW0iG,OAAS,SAAS77F,IAI3B,OAHI67F,KAAQA,GAAOpxF,OAAQ,IAC3BoxF,GAAS0zN,yBAAyBQ,GAAQttT,GAAQotT,GAAgBG,GAAShwT,QACpEyK,OAAQ,EACRoxF,IAET1iG,WAAW82T,UAAY,SAAS99P,IAC9B,OAAKtqD,UAAU/Y,QACfihU,GAAe,MAAL59P,IAAa89P,GAAY99P,GAAGu3P,IAA2BQ,mBAAmB+F,IAAa99P,IAAK+hP,IAC/Fic,cAFuBF,IAIhC92T,WAAWkzT,WAAa,SAASl6P,IAC/B,OAAKtqD,UAAU/Y,QACfu9T,GAAal6P,GACb69P,GAAW79P,GAAI+4P,kBAAkB/4P,GAAE,GAAG,GAAIA,GAAE,GAAG,GAAIA,GAAE,GAAG,GAAIA,GAAE,GAAG,IAAM04O,YAChEslB,cAHuB9D,IAKhClzT,WAAW03D,MAAQ,SAASsB,IAC1B,OAAKtqD,UAAU/Y,QACfmB,IAAKkiE,GACEhwC,SAFuBlyB,IAIhCkJ,WAAW+nN,UAAY,SAAS/uJ,IAC9B,OAAKtqD,UAAU/Y,QACfqM,IAAKg3D,GAAE,GACP9vD,IAAK8vD,GAAE,GACAhwC,SAHuB,CAAEhnB,GAAGkH,KAKrClJ,WAAW8zB,OAAS,SAASklC,IAC3B,OAAKtqD,UAAU/Y,QACf44O,GAAIv1K,GAAE,GAAK,IAAM+hP,GACjBvsE,GAAIx1K,GAAE,GAAK,IAAM+hP,GACV/xR,SAHuB,CAAEulN,GAAIysE,GAAYxsE,GAAIwsE,KAKtDh7S,WAAWsJ,OAAS,SAAS0vD,IAC3B,OAAKtqD,UAAU/Y,QACf08O,GAAKr5K,GAAE,GAAK,IAAM+hP,GAClBzoE,GAAKt5K,GAAE,GAAK,IAAM+hP,GAClB4b,GAAK39P,GAAErjE,OAAS,EAAIqjE,GAAE,GAAK,IAAM+hP,GAAa,EACvC/xR,SAJuB,CAAEqpN,GAAK2oE,GAAY1oE,GAAK0oE,GAAY2b,GAAK3b,KAMzEr4S,GAAG+lB,OAAO1oB,WAAY02T,GAAiB,aAYhC,WAGL,OAFAp/S,GAAUu7S,GAAU78T,MAAMsB,KAAMoX,WAChC1O,WAAW+S,OAASuE,GAAQvE,QAAUA,OAC/BiW,SAGX,SAASotS,yBAAyB1zN,IAChC,OAAOozN,sBAAsBpzN,IAAQ,SAAS1gG,GAAGkH,IAC/Cw5F,GAAO5pG,MAAMkJ,GAAI+4S,GAAY7xS,GAAI6xS,OAGrC,SAASkc,uBAAuB1oF,GAAGC,IACjC,MAAO,CAAED,GAAGC,IAiBd,SAAS0oF,wBAAwB3oF,GAAGC,IAClC,MAAO,CAAED,GAAIP,GAAIO,GAAIssE,GAAItsE,IAAKP,GAAIO,GAAIssE,GAAItsE,GAAGC,IAG/C,SAASuoF,gBAAgB1kF,GAAIC,GAAIqkF,IAC/B,OAAOtkF,GAAKC,IAAMqkF,GAAKnI,eAAe2I,iBAAiB9kF,IAAK+kF,kBAAkB9kF,GAAIqkF,KAAOQ,iBAAiB9kF,IAAMC,IAAMqkF,GAAKS,kBAAkB9kF,GAAIqkF,IAAMO,wBAEzJ,SAASG,wBAAwBhlF,IAC/B,OAAO,SAAS9D,GAAGC,IACjB,MAAgB,EAATD,IAAK8D,IAAUrE,GAAIO,GAAIssE,GAAItsE,IAAKP,GAAIO,GAAIssE,GAAItsE,GAAGC,KAG1D,SAAS2oF,iBAAiB9kF,IACxB,IAAIvQ,GAAWu1F,wBAAwBhlF,IAEvC,OADAvQ,GAAS/uN,OAASskT,yBAAyBhlF,IACpCvQ,GAET,SAASs1F,kBAAkB9kF,GAAIqkF,IAC7B,IAAIW,GAAQ99T,KAAK6oD,IAAIiwL,IAAKilF,GAAQ/9T,KAAK8oD,IAAIgwL,IAAKklF,GAAQh+T,KAAK6oD,IAAIs0Q,IAAKc,GAAQj+T,KAAK8oD,IAAIq0Q,IACvF,SAAS70F,SAASyM,GAAGC,IACnB,IAAIE,GAAOl1O,KAAK6oD,IAAImsL,IAAIxsO,GAAIxI,KAAK6oD,IAAIksL,IAAKG,GAAMxlO,GAAI1P,KAAK8oD,IAAIisL,IAAKG,GAAMhsO,GAAIlJ,KAAK8oD,IAAIksL,IAAI13O,GAAI4L,GAAI40T,GAAQt1T,GAAIu1T,GAC7G,MAAO,CAAE/9T,KAAKivM,MAAMv/L,GAAIsuT,GAAQ1gU,GAAI2gU,GAAOz1T,GAAIs1T,GAAQ50T,GAAI60T,IAAQnc,QAAQtkT,GAAI0gU,GAAQtuT,GAAIuuT,KAM7F,OAJA31F,SAAS/uN,OAAS,SAASw7N,GAAGC,IAC5B,IAAIE,GAAOl1O,KAAK6oD,IAAImsL,IAAIxsO,GAAIxI,KAAK6oD,IAAIksL,IAAKG,GAAMxlO,GAAI1P,KAAK8oD,IAAIisL,IAAKG,GAAMhsO,GAAIlJ,KAAK8oD,IAAIksL,IAAI13O,GAAI4L,GAAI80T,GAAQtuT,GAAIuuT,GAC7G,MAAO,CAAEj+T,KAAKivM,MAAMv/L,GAAIsuT,GAAQ90T,GAAI+0T,GAAOz1T,GAAIs1T,GAAQxgU,GAAIygU,IAAQnc,QAAQtkT,GAAIwgU,GAAQt1T,GAAIu1T,MAEtFz1F,SAkCT,SAASwvF,yBAAyBl2P,GAAQroB,IACxC,IAAIi+Q,GAAKx3T,KAAK6oD,IAAI+Y,IAASs8P,GAAKl+T,KAAK8oD,IAAI8Y,IACzC,OAAO,SAASojC,GAAM67E,GAAIluG,GAAWymO,IACnC,IAAIr2Q,GAAO4vC,GAAYp5B,GACX,MAARyrD,IACFA,GAAOm5N,mBAAmB3G,GAAIxyN,IAC9B67E,GAAKs9I,mBAAmB3G,GAAI32I,KACxBluG,GAAY,EAAIqyB,GAAO67E,GAAK77E,GAAO67E,MAAI77E,IAAQryB,GAAY0uO,MAE/Dr8M,GAAOpjC,GAAS+Q,GAAY0uO,GAC5BxgI,GAAKj/G,GAAS,GAAK7+B,IAErB,IAAK,IAAIzjC,GAAOvE,GAAIiqG,GAAMryB,GAAY,EAAI53E,GAAI8lL,GAAK9lL,GAAI8lL,GAAI9lL,IAAKgoC,GAC9Dq2Q,GAAS95S,OAAOA,GAAQg0T,iBAAiB,CAAEkE,IAAK0G,GAAKl+T,KAAK6oD,IAAI9tD,KAAKmjU,GAAKl+T,KAAK8oD,IAAI/tD,OAAO,GAAIuE,GAAM,KAIxG,SAAS6+T,mBAAmB3G,GAAIl4T,IAC9B,IAAInB,GAAI40T,iBAAiBzzT,IACzBnB,GAAE,IAAMq5T,GACRnE,0BAA0Bl1T,IAC1B,IAAIqqD,GAAQm5P,SAASxjT,GAAE,IACvB,SAAUA,GAAE,GAAK,GAAKqqD,GAAQA,IAAS,EAAIxoD,KAAK67B,GAAK04M,KAAM,EAAIv0O,KAAK67B,IAgFtE,SAASuiS,kBAAkB3tS,GAAIC,GAAI5K,IACjC,IAAIpW,GAAIvG,GAAGqI,MAAMif,GAAIC,GAAK6jN,GAAGzuN,IAAI9jB,OAAO0uB,IACxC,OAAO,SAASloB,IACd,OAAOkH,GAAEylC,KAAI,SAASzlC,IACpB,MAAO,CAAElH,GAAGkH,QAIlB,SAAS2uT,kBAAkBjuS,GAAIC,GAAIsC,IACjC,IAAInqB,GAAIW,GAAGqI,MAAM4e,GAAIC,GAAKkkN,GAAG5hN,IAAI3wB,OAAOquB,IACxC,OAAO,SAAS3gB,IACd,OAAOlH,GAAE2sC,KAAI,SAAS3sC,IACpB,MAAO,CAAEA,GAAGkH,QAIlB,SAAS4uT,UAAUnkU,IACjB,OAAOA,GAAEknE,OAEX,SAASk9P,UAAUpkU,IACjB,OAAOA,GAAE8sB,OAxYX9d,GAAG8mB,IAAIg0B,KAAO,WACZ,IAAuBz9C,GAAYkmB,GAAS8xS,GAAeC,GAAeC,GAAtEjD,GAAc,IAClB,SAASx3Q,KAAKxoD,IAMZ,OALIA,KACyB,mBAAhBggU,IAA4BgD,GAAchD,aAAaA,GAAYj/T,MAAMsB,KAAMoX,YACrFwpT,IAAgBA,GAAY5mT,QAAO4mT,GAAcF,GAAcC,KACpEt1T,GAAG8mB,IAAIi5E,OAAOztG,GAAQijU,KAEjBD,GAAcz5T,SAiCvB,SAASwqB,QAEP,OADAkvS,GAAc,KACPz6Q,KAET,OAnCAA,KAAKyY,KAAO,SAASjhE,IAGnB,OAFA++T,GAAqB,EACrBrxT,GAAG8mB,IAAIi5E,OAAOztG,GAAQ+iU,GAAc1D,KAC7BN,IAETv2Q,KAAKwwQ,SAAW,SAASh5T,IAGvB,OAFAm2T,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoB,EACpLjpT,GAAG8mB,IAAIi5E,OAAOztG,GAAQ+iU,GAAc7C,KAC7BvJ,GAAoB,CAAEF,GAAoBE,GAAmBD,GAAoBC,IAAsBH,GAAoB,CAAEF,GAAoBE,GAAmBD,GAAoBC,IAAsBH,GAAoB,CAAEF,GAAoBE,GAAmBD,GAAoBC,IAAsB,CAAE74P,IAAKA,MAErUhV,KAAKl/C,OAAS,SAAStJ,IAGrB,OAFAm/T,GAAsBC,KAAwBH,GAAsBC,GAAsBt1T,KAC1F8D,GAAG8mB,IAAIi5E,OAAOztG,GAAQ+iU,GAActD,KAC7B,CAAE,CAAER,GAAqBC,IAAuB,CAAEC,GAAqBC,MAEhF52Q,KAAKz9C,WAAa,SAASg5D,IACzB,OAAKtqD,UAAU/Y,QACfqiU,IAAiBh4T,GAAag5D,IAAKA,GAAE0pC,QAAUyzN,yBAAyBn9P,IAAK04O,YACtE1oR,SAFuBhpB,IAIhCy9C,KAAKv3B,QAAU,SAAS8yC,IACtB,OAAKtqD,UAAU/Y,QACfsiU,GAAiC,OAAhB/xS,GAAU8yC,IAAa,IAAI47P,kBAAsB,IAAIY,mBAAmBx8P,IAC9D,mBAAhBi8P,IAA4BgD,GAAchD,YAAYA,IAC1DjsS,SAHuB9C,IAKhCu3B,KAAKw3Q,YAAc,SAASj8P,IAC1B,OAAKtqD,UAAU/Y,QACfs/T,GAA2B,mBAANj8P,GAAmBA,IAAKi/P,GAAchD,aAAaj8P,KAAKA,IACtEvb,MAFuBw3Q,IAQzBx3Q,KAAKz9C,WAAW2C,GAAG8mB,IAAI4pS,aAAantS,QAAQ,OAUrDvjB,GAAG8mB,IAAIlK,UAAY,SAAS44S,IAC1B,MAAO,CACLz1N,OAAQ,SAASA,IACf,IAAInjF,GAAY,IAAI82S,iBAAiB3zN,IACrC,IAAK,IAAI5rG,MAAKqhU,GAAS54S,GAAUzoB,IAAKqhU,GAAQrhU,IAC9C,OAAOyoB,MAOb82S,iBAAiBlhU,UAAY,CAC3B2D,MAAO,SAASkJ,GAAGkH,IACjB5R,KAAKorG,OAAO5pG,MAAMkJ,GAAGkH,KAEvBqmO,OAAQ,WACNj4O,KAAKorG,OAAO6sI,UAEd3C,UAAW,WACTt1O,KAAKorG,OAAOkqI,aAEdE,QAAS,WACPx1O,KAAKorG,OAAOoqI,WAEdE,aAAc,WACZ11O,KAAKorG,OAAOsqI,gBAEdC,WAAY,WACV31O,KAAKorG,OAAOuqI,eAuBhBtqO,GAAG8mB,IAAIzpB,WAAas2T,kBACpB3zT,GAAG8mB,IAAI4kN,kBAAoBykF,0BAsF1BnwT,GAAG8mB,IAAI2uS,gBAAkB,WACxB,OAAO9B,kBAAkBW,0BACxB3rM,IAAM2rM,uBAAuBlkT,OAASkkT,uBACzCt0T,GAAG8mB,IAAIq4M,SAAW,SAASx4N,IAEzB,SAASulO,QAAQ95K,IAEf,OADAA,GAAczrD,GAAOyrD,GAAY,GAAKgmP,GAAYhmP,GAAY,GAAKgmP,KAChD,IAAMC,GAAYjmP,GAAY,IAAMimP,GAAYjmP,GAMrE,OATAzrD,GAASytT,gBAAgBztT,GAAO,GAAK,IAAMyxS,GAAYzxS,GAAO,GAAKyxS,GAAYzxS,GAAO3T,OAAS,EAAI2T,GAAO,GAAKyxS,GAAa,GAK5HlsE,QAAQ97N,OAAS,SAASgiD,IAExB,OADAA,GAAczrD,GAAOyJ,OAAOgiD,GAAY,GAAKgmP,GAAYhmP,GAAY,GAAKgmP,KACvD,IAAMC,GAAYjmP,GAAY,IAAMimP,GAAYjmP,IAE9D85K,SAKTqoF,wBAAwBnkT,OAASkkT,uBA0BjCt0T,GAAG8mB,IAAI9f,OAAS,WACd,IAAuBq4C,GAAsB8nJ,GAAzC3iD,GAAS,CAAE,EAAG,GAAYp0G,GAAY,EAC1C,SAASppC,SACP,IAAImqB,GAA2B,mBAAXqzH,GAAwBA,GAAOnxJ,MAAMsB,KAAMoX,WAAay4I,GAAQ79I,GAASytT,iBAAiBjjS,GAAO,GAAKinR,IAAajnR,GAAO,GAAKinR,GAAY,GAAGhoS,OAAQo6N,GAAO,GAOjL,OANArjC,GAAY,KAAM,KAAM,EAAG,CACzBhxM,MAAO,SAASkJ,GAAGkH,IACjBikO,GAAK50O,KAAKyJ,GAAIsH,GAAOtH,GAAGkH,KACxBlH,GAAE,IAAMg5S,GAAYh5S,GAAE,IAAMg5S,MAGzB,CACLp0S,KAAM,UACNmuD,YAAa,CAAEo4K,KAkBnB,OAfAxjO,OAAOw9I,OAAS,SAASnlJ,IACvB,OAAK0M,UAAU/Y,QACfwxJ,GAASnlJ,GACF2H,QAFuBw9I,IAIhCx9I,OAAOq4C,MAAQ,SAAShgD,IACtB,OAAK0M,UAAU/Y,QACfm0M,GAAcwnH,0BAA0BtvQ,IAAShgD,IAAK+4S,GAAYhoQ,GAAYgoQ,IACvEpxS,QAFuBq4C,IAIhCr4C,OAAOopC,UAAY,SAASimB,IAC1B,OAAKtqD,UAAU/Y,QACfm0M,GAAcwnH,yBAAyBtvQ,GAAQ+4P,IAAahoQ,IAAaimB,IAAK+hP,IACvEpxS,QAFuBopC,IAIzBppC,OAAOq4C,MAAM,KA0BtBr/C,GAAG8mB,IAAIrrB,SAAW,SAASzG,GAAGC,IAC5B,IAAyNrD,GAArN8jU,IAAMzgU,GAAE,GAAKD,GAAE,IAAMojT,GAAYtrE,GAAK93O,GAAE,GAAKojT,GAAYrrE,GAAK93O,GAAE,GAAKmjT,GAAYud,GAAQ9+T,KAAK8oD,IAAI+1Q,IAAKE,GAAQ/+T,KAAK6oD,IAAIg2Q,IAAKnM,GAAQ1yT,KAAK8oD,IAAImtL,IAAKw8E,GAAQzyT,KAAK6oD,IAAIotL,IAAK+oF,GAAQh/T,KAAK8oD,IAAIotL,IAAKkhF,GAAQp3T,KAAK6oD,IAAIqtL,IACpN,OAAOl2O,KAAKivM,MAAMjvM,KAAK6E,MAAM9J,GAAIq8T,GAAQ0H,IAAS/jU,IAAKA,GAAI03T,GAAQuM,GAAQtM,GAAQ0E,GAAQ2H,IAAShkU,IAAI23T,GAAQsM,GAAQvM,GAAQ2E,GAAQ2H,KAE1I51T,GAAG8mB,IAAIgvS,UAAY,WACjB,IAAI5uS,GAAID,GAAI8uS,GAAIC,GAAIzuS,GAAID,GAAI2uS,GAAIC,GAAyC72T,GAAGkH,GAAGkK,GAAGke,GAA9CnF,GAAK,GAAI7M,GAAK6M,GAAI2sS,GAAK,GAAIC,GAAK,IAAiBhmR,GAAY,IACjG,SAAS0lR,YACP,MAAO,CACL7xT,KAAM,kBACNmuD,YAAahxD,SAGjB,SAASA,QACP,OAAOpB,GAAGqI,MAAMxR,KAAKs5B,KAAK6lS,GAAKG,IAAMA,GAAIJ,GAAII,IAAInqR,IAAIv7B,IAAG5X,OAAOmH,GAAGqI,MAAMxR,KAAKs5B,KAAK+lS,GAAKE,IAAMA,GAAIH,GAAIG,IAAIpqR,IAAIrd,KAAI91B,OAAOmH,GAAGqI,MAAMxR,KAAKs5B,KAAKlJ,GAAKuC,IAAMA,GAAItC,GAAIsC,IAAIh0B,QAAO,SAAS6J,IAChL,OAAO8I,GAAI9I,GAAI82T,IAAM/qF,MACpBp/L,IAAI3sC,KAAIxG,OAAOmH,GAAGqI,MAAMxR,KAAKs5B,KAAK7I,GAAK3K,IAAMA,GAAI4K,GAAI5K,IAAInnB,QAAO,SAAS+Q,IAC1E,OAAO4B,GAAI5B,GAAI6vT,IAAMhrF,MACpBp/L,IAAIzlC,KA2DT,OAzDAuvT,UAAU10T,MAAQ,WAChB,OAAOA,QAAQ4qC,KAAI,SAASomB,IAC1B,MAAO,CACLnuD,KAAM,aACNmuD,YAAaA,QAInB0jQ,UAAU1xS,QAAU,WAClB,MAAO,CACLngB,KAAM,UACNmuD,YAAa,CAAE3hD,GAAEulT,IAAIn9T,OAAO81B,GAAEsnS,IAAI9iU,MAAM,GAAIsd,GAAEslT,IAAIz4Q,UAAUnqD,MAAM,GAAIw7B,GAAEunS,IAAI54Q,UAAUnqD,MAAM,OAGhG2iU,UAAUv9P,OAAS,SAASlC,IAC1B,OAAKtqD,UAAU/Y,OACR8iU,UAAUO,YAAYhgQ,IAAGigQ,YAAYjgQ,IADdy/P,UAAUQ,eAG1CR,UAAUO,YAAc,SAAShgQ,IAC/B,OAAKtqD,UAAU/Y,QACfgjU,IAAM3/P,GAAE,GAAG,GAAI0/P,IAAM1/P,GAAE,GAAG,GAC1B6/P,IAAM7/P,GAAE,GAAG,GAAI4/P,IAAM5/P,GAAE,GAAG,GACtB2/P,GAAKD,KAAI1/P,GAAI2/P,GAAIA,GAAKD,GAAIA,GAAK1/P,IAC/B6/P,GAAKD,KAAI5/P,GAAI6/P,GAAIA,GAAKD,GAAIA,GAAK5/P,IAC5By/P,UAAU1lR,UAAUA,KALG,CAAE,CAAE4lR,GAAIE,IAAM,CAAEH,GAAIE,MAOpDH,UAAUQ,YAAc,SAASjgQ,IAC/B,OAAKtqD,UAAU/Y,QACfi0B,IAAMovC,GAAE,GAAG,GAAInvC,IAAMmvC,GAAE,GAAG,GAC1B/uC,IAAM+uC,GAAE,GAAG,GAAI9uC,IAAM8uC,GAAE,GAAG,GACtBpvC,GAAKC,KAAImvC,GAAIpvC,GAAIA,GAAKC,GAAIA,GAAKmvC,IAC/B/uC,GAAKC,KAAI8uC,GAAI/uC,GAAIA,GAAKC,GAAIA,GAAK8uC,IAC5By/P,UAAU1lR,UAAUA,KALG,CAAE,CAAEnpB,GAAIK,IAAM,CAAEJ,GAAIK,MAOpDuuS,UAAUl8R,KAAO,SAASy8B,IACxB,OAAKtqD,UAAU/Y,OACR8iU,UAAUS,UAAUlgQ,IAAGmgQ,UAAUngQ,IADVy/P,UAAUU,aAG1CV,UAAUS,UAAY,SAASlgQ,IAC7B,OAAKtqD,UAAU/Y,QACfmjU,IAAM9/P,GAAE,GAAI+/P,IAAM//P,GAAE,GACby/P,WAFuB,CAAEK,GAAIC,KAItCN,UAAUU,UAAY,SAASngQ,IAC7B,OAAKtqD,UAAU/Y,QACfw2B,IAAM6sC,GAAE,GAAI15C,IAAM05C,GAAE,GACby/P,WAFuB,CAAEtsS,GAAI7M,KAItCm5S,UAAU1lR,UAAY,SAASimB,IAC7B,OAAKtqD,UAAU/Y,QACfo9C,IAAaimB,GACbh3D,GAAI41T,kBAAkB3tS,GAAIC,GAAI,IAC9BhhB,GAAI2uT,kBAAkBjuS,GAAIC,GAAIkpB,IAC9B3/B,GAAIwkT,kBAAkBiB,GAAID,GAAI,IAC9BtnS,GAAIumS,kBAAkBc,GAAID,GAAI3lR,IACvB0lR,WANuB1lR,IAQzB0lR,UAAUO,YAAY,CAAE,EAAG,KAAM,GAAKjrF,IAAK,CAAE,IAAK,GAAKA,MAAOkrF,YAAY,CAAE,EAAG,KAAM,GAAKlrF,IAAK,CAAE,IAAK,GAAKA,OAwBpHprO,GAAG8mB,IAAI2vS,SAAW,WAChB,IAAwBC,GAA6BC,GAAjDz+P,GAASi9P,UAAoBr3S,GAASs3S,UAC1C,SAASqB,WACP,MAAO,CACLxyT,KAAM,aACNmuD,YAAa,CAAEskQ,IAAWx+P,GAAO7kE,MAAMsB,KAAMoX,WAAY4qT,IAAW74S,GAAOzqB,MAAMsB,KAAMoX,aAmB3F,OAhBA0qT,SAASh7T,SAAW,WAClB,OAAOuE,GAAG8mB,IAAIrrB,SAASi7T,IAAWx+P,GAAO7kE,MAAMsB,KAAMoX,WAAY4qT,IAAW74S,GAAOzqB,MAAMsB,KAAMoX,aAEjG0qT,SAASv+P,OAAS,SAAS7B,IACzB,OAAKtqD,UAAU/Y,QACfklE,GAAS7B,GAAGqgQ,GAAuB,mBAANrgQ,GAAmB,KAAOA,GAChDogQ,UAFuBv+P,IAIhCu+P,SAAS34S,OAAS,SAASu4C,IACzB,OAAKtqD,UAAU/Y,QACf8qB,GAASu4C,GAAGsgQ,GAAuB,mBAANtgQ,GAAmB,KAAOA,GAChDogQ,UAFuB34S,IAIhC24S,SAASrmR,UAAY,WACnB,OAAOrkC,UAAU/Y,OAASyjU,SAAW,GAEhCA,UAETz2T,GAAG8mB,IAAIqgL,YAAc,SAASjvI,GAAQp6C,IACpC,OAEF,SAAS84S,mBAAmB3vS,GAAIK,GAAIJ,GAAIK,IACtC,IAAIsvS,GAAMhgU,KAAK6oD,IAAIp4B,IAAKwvS,GAAMjgU,KAAK8oD,IAAIr4B,IAAKyvS,GAAMlgU,KAAK6oD,IAAIn4B,IAAKyvS,GAAMngU,KAAK8oD,IAAIp4B,IAAK0vS,GAAMJ,GAAMhgU,KAAK6oD,IAAIz4B,IAAKiwS,GAAML,GAAMhgU,KAAK8oD,IAAI14B,IAAKkwS,GAAMJ,GAAMlgU,KAAK6oD,IAAIx4B,IAAKkwS,GAAML,GAAMlgU,KAAK8oD,IAAIz4B,IAAKl2B,GAAI,EAAI6F,KAAK40O,KAAK50O,KAAK6E,KAAKi9S,YAAYpxR,GAAKD,IAAMuvS,GAAME,GAAMpe,YAAYzxR,GAAKD,MAAO9yB,GAAI,EAAI0C,KAAK8oD,IAAI3uD,IAChSm2M,GAAcn2M,GAAI,SAASY,IAC7B,IAAIymM,GAAIxhM,KAAK8oD,IAAI/tD,IAAKZ,IAAKmD,GAAGmuL,GAAIzrL,KAAK8oD,IAAI3uD,GAAIY,IAAKuC,GAAGkL,GAAIijL,GAAI20I,GAAM5+H,GAAI8+H,GAAK5wT,GAAI+7K,GAAI40I,GAAM7+H,GAAI++H,GAAKr3T,GAAIuiL,GAAIw0I,GAAMz+H,GAAI2+H,GACvH,MAAO,CAAEngU,KAAKivM,MAAMv/L,GAAGlH,IAAKg5S,GAAYxhT,KAAKivM,MAAM/lM,GAAGlJ,KAAK6E,KAAK2D,GAAIA,GAAIkH,GAAIA,KAAM8xS,KAChF,WACF,MAAO,CAAEpxR,GAAKoxR,GAAY/wR,GAAK+wR,KAGjC,OADAlxG,GAAY1rM,SAAWzK,GAChBm2M,GAXAyvH,CAAmB1+P,GAAO,GAAKkgP,GAAYlgP,GAAO,GAAKkgP,GAAYt6R,GAAO,GAAKs6R,GAAYt6R,GAAO,GAAKs6R,KAahHp4S,GAAG8mB,IAAI9zB,OAAS,SAASV,IAGvB,OAFAigU,GAAmB,EACnBvyT,GAAG8mB,IAAIi5E,OAAOztG,GAAQ+kU,IACf9E,IAGT,IAAI8E,GAAgB,CAClBzqF,OAAQgjE,QACRz5S,MAAOy5S,QACP3lE,UAKF,SAASqtF,yBACP,IAAIzqF,GAAI08E,GAAOD,GAQf,SAASE,UAAU59E,GAAGC,IACpB,IAAIkD,GAAOl4O,KAAK8oD,IAAIksL,IAAKusE,IAAarsE,GAAOl1O,KAAK6oD,IAAImsL,IAAIj6O,GAAIuW,IAAKyjO,IAAKwsE,IAAcvrE,IAAK+oF,GAAQ/+T,KAAK6oD,IAAI9tD,IAC5G2gU,IAAoB17T,KAAKivM,MAAMjvM,KAAK6E,MAAM9J,GAAIm6O,GAAOl1O,KAAK8oD,IAAI/tD,KAAMA,IAAKA,GAAI03T,GAAQv6E,GAAOw6E,GAAQx9E,GAAO6pF,IAAShkU,IAAI23T,GAAQx6E,GAAOu6E,GAAQv9E,GAAO6pF,IACtJ/oF,GAAKjB,GAAG29E,GAAQx6E,GAAMu6E,GAAQv9E,GAVhCsrF,GAAclhU,MAAQ,SAASy1O,GAAGC,IAChCgB,GAAKjB,GAAIwsE,GAAYmR,GAAQ1yT,KAAK8oD,IAAIksL,IAAKusE,IAAakR,GAAQzyT,KAAK6oD,IAAImsL,IACzEwrF,GAAclhU,MAAQqzT,WAExB6N,GAAcltF,QAAU,WACtBktF,GAAclhU,MAAQkhU,GAAcltF,QAAUylE,UAXhDzlE,QAASylE,QACTvlE,aAAculE,QACdtlE,WAAYslE,SAiBd,SAAS2nB,iBAAiBxiQ,GAAO1V,IAC/B,SAASm4Q,UAAU5rF,GAAGC,IACpB,IAAI4rF,GAAO5gU,KAAK6oD,IAAIksL,IAAIG,GAAOl1O,KAAK6oD,IAAImsL,IAAI13O,GAAI4gE,GAAM0iQ,GAAO1rF,IAC7D,MAAO,CAAE53O,GAAI43O,GAAOl1O,KAAK8oD,IAAIisL,IAAIz3O,GAAI0C,KAAK8oD,IAAIksL,KAMhD,OAJA2rF,UAAUpnT,OAAS,SAAS/Q,GAAGkH,IAC7B,IAAIqyS,GAAI/hT,KAAK6E,KAAK2D,GAAIA,GAAIkH,GAAIA,IAAIxV,GAAIsuD,GAAMu5P,IAAI8e,GAAO7gU,KAAK8oD,IAAI5uD,IAAI4mU,GAAO9gU,KAAK6oD,IAAI3uD,IACpF,MAAO,CAAE8F,KAAKivM,MAAMzmM,GAAIq4T,GAAM9e,GAAI+e,IAAO9gU,KAAK40O,KAAKmtE,IAAKryS,GAAImxT,GAAO9e,MAE9D4e,UAET,IAAII,GAA4BL,kBAAiB,SAASM,IACxD,OAAOhhU,KAAK6E,KAAK,GAAK,EAAIm8T,QACzB,SAASjf,IACV,OAAO,EAAI/hT,KAAK40O,KAAKmtE,GAAI,OAE1B54S,GAAG8mB,IAAIqmN,mBAAqB,WAC3B,OAAOwmF,kBAAkBiE,MACxBjvM,IAAMivM,GACT,IAAIE,GAA8BP,kBAAiB,SAASM,IAC1D,IAAI9mU,GAAI8F,KAAK0tE,KAAKszP,IAClB,OAAO9mU,IAAKA,GAAI8F,KAAK8oD,IAAI5uD,MACxBg+S,aAIH,SAASgpB,sBAAsBjrF,GAAIC,IACjC,IAAIu8E,GAAQzyT,KAAK6oD,IAAIotL,IAAKl7O,EAAI,SAASi6O,IACrC,OAAOh1O,KAAKstE,IAAIknK,GAAI,EAAIQ,GAAI,IAC3B15O,GAAI26O,KAAOC,GAAKl2O,KAAK8oD,IAAImtL,IAAMj2O,KAAKykB,IAAIguS,GAAQzyT,KAAK6oD,IAAIqtL,KAAOl2O,KAAKykB,IAAI1pB,EAAEm7O,IAAMn7O,EAAEk7O,KAAMvhB,GAAI+9F,GAAQzyT,KAAKq5B,IAAIt+B,EAAEk7O,IAAK36O,IAAKA,GAC7H,IAAKA,GAAG,OAAO6lU,gBACf,SAAS9rF,QAAQN,GAAGC,IACdtgB,GAAI,EACFsgB,IAAKP,GAAQF,KAAGS,IAAKP,GAAQF,IAE7BS,GAAIP,GAAQF,KAAGS,GAAIP,GAAQF,IAEjC,IAAIwtE,GAAIrtF,GAAI10N,KAAKq5B,IAAIt+B,EAAEi6O,IAAI15O,IAC3B,MAAO,CAAEymT,GAAI/hT,KAAK8oD,IAAIxtD,GAAIy5O,IAAIrgB,GAAIqtF,GAAI/hT,KAAK6oD,IAAIvtD,GAAIy5O,KAMrD,OAJAM,QAAQ97N,OAAS,SAAS/Q,GAAGkH,IAC3B,IAAI+pT,GAAO/kG,GAAIhlN,GAAGqyS,GAAIN,OAAOnmT,IAAK0E,KAAK6E,KAAK2D,GAAIA,GAAIixT,GAAOA,IAC3D,MAAO,CAAEz5T,KAAKivM,MAAMzmM,GAAGixT,IAAQn+T,GAAG,EAAI0E,KAAKk/G,KAAKl/G,KAAKq5B,IAAIq7L,GAAIqtF,GAAG,EAAIzmT,KAAMm5O,KAErEY,QAKT,SAAS+rF,wBAAwBnrF,GAAIC,IACnC,IAAIu8E,GAAQzyT,KAAK6oD,IAAIotL,IAAK36O,GAAI26O,KAAOC,GAAKl2O,KAAK8oD,IAAImtL,KAAOw8E,GAAQzyT,KAAK6oD,IAAIqtL,MAAQA,GAAKD,IAAKthB,GAAI89F,GAAQn3T,GAAI26O,GAC7G,GAAI3kO,GAAIhW,IAAKi5O,GAAG,OAAOkpF,uBACvB,SAASpoF,QAAQN,GAAGC,IAClB,IAAI+sE,GAAIptF,GAAIqgB,GACZ,MAAO,CAAE+sE,GAAI/hT,KAAK8oD,IAAIxtD,GAAIy5O,IAAIpgB,GAAIotF,GAAI/hT,KAAK6oD,IAAIvtD,GAAIy5O,KAMrD,OAJAM,QAAQ97N,OAAS,SAAS/Q,GAAGkH,IAC3B,IAAI+pT,GAAO9kG,GAAIjlN,GACf,MAAO,CAAE1P,KAAKivM,MAAMzmM,GAAGixT,IAAQn+T,GAAGq5N,GAAI8sF,OAAOnmT,IAAK0E,KAAK6E,KAAK2D,GAAIA,GAAIixT,GAAOA,MAEtEpkF,SArCRlsO,GAAG8mB,IAAIoxS,qBAAuB,WAC7B,OAAOvE,kBAAkBmE,MACxBnvM,IAAMmvM,IAqBR93T,GAAG8mB,IAAIqxS,eAAiB,WACvB,OAAOlI,aAAa8H,yBACnBpvM,IAAMovM,uBAcR/3T,GAAG8mB,IAAIsxS,iBAAmB,WACzB,OAAOnI,aAAagI,2BACnBtvM,IAAMsvM,wBACT,IAAII,GAAkBd,kBAAiB,SAASM,IAC9C,OAAO,EAAIA,KACVhhU,KAAKk/G,MAIR,SAASiiN,gBAAgBpsF,GAAGC,IAC1B,MAAO,CAAED,GAAG/0O,KAAKykB,IAAIzkB,KAAKstE,IAAIknK,GAAI,EAAIQ,GAAI,KAK5C,SAASysF,0BAA0B3jT,IACjC,IAAyG4jT,GAArGznU,GAAI6iU,kBAAkBh/S,IAAUogD,GAAQjkE,GAAEikE,MAAOqwJ,GAAYt0N,GAAEs0N,UAAWmrG,GAAaz/T,GAAEy/T,WAqB7F,OApBAz/T,GAAEikE,MAAQ,WACR,IAAI7gE,GAAI6gE,GAAM1hE,MAAMvC,GAAGib,WACvB,OAAO7X,KAAMpD,GAAIynU,GAAWznU,GAAEy/T,WAAW,MAAQz/T,GAAIoD,IAEvDpD,GAAEs0N,UAAY,WACZ,IAAIlxN,GAAIkxN,GAAU/xN,MAAMvC,GAAGib,WAC3B,OAAO7X,KAAMpD,GAAIynU,GAAWznU,GAAEy/T,WAAW,MAAQz/T,GAAIoD,IAEvDpD,GAAEy/T,WAAa,SAASl6P,IACtB,IAAIniE,GAAIq8T,GAAWl9T,MAAMvC,GAAGib,WAC5B,GAAI7X,KAAMpD,IACR,GAAIynU,GAAgB,MAALliQ,GAAW,CACxB,IAAIliE,GAAIk3O,GAAIt2K,KAASnjE,GAAIwzN,KACzBmrG,GAAW,CAAE,CAAE3+T,GAAE,GAAKuC,GAAGvC,GAAE,GAAKuC,IAAK,CAAEvC,GAAE,GAAKuC,GAAGvC,GAAE,GAAKuC,YAEjDokU,KACTrkU,GAAI,MAEN,OAAOA,IAEFpD,GAAEy/T,WAAW,OA/BrBvwT,GAAG8mB,IAAI0xS,SAAW,WACjB,OAAO7E,kBAAkB0E,MACxB1vM,IAAM0vM,GAITL,gBAAgB5nT,OAAS,SAAS/Q,GAAGkH,IACnC,MAAO,CAAElH,GAAG,EAAIxI,KAAKk/G,KAAKl/G,KAAK8tD,IAAIp+C,KAAM+kO,MA0B1CtrO,GAAG8mB,IAAI2xS,SAAW,WACjB,OAAOH,0BAA0BN,mBAChCrvM,IAAMqvM,gBACT,IAAIU,GAAsBnB,kBAAiB,WACzC,OAAO,IACN1gU,KAAK40O,OACPzrO,GAAG8mB,IAAI6xS,aAAe,WACrB,OAAOhF,kBAAkB+E,MACxB/vM,IAAM+vM,GACT,IAAIE,GAAuBrB,kBAAiB,SAASM,IACnD,OAAO,GAAK,EAAIA,OACf,SAASjf,IACV,OAAO,EAAI/hT,KAAKk/G,KAAK6iM,OAKvB,SAASigB,0BAA0BjtF,GAAGC,IACpC,MAAO,CAAEh1O,KAAKykB,IAAIzkB,KAAKstE,IAAIknK,GAAI,EAAIQ,GAAI,KAAMD,IAiB/C,SAASktF,eAAe9nU,IACtB,OAAOA,GAAE,GAEX,SAAS+nU,eAAe/nU,IACtB,OAAOA,GAAE,GA2BX,SAASgoU,kBAAkBlmU,IAEzB,IADA,IAAIX,GAAIW,GAAOE,OAAQq2I,GAAO,CAAE,EAAG,GAAK4vL,GAAK,EACpCtoU,GAAI,EAAGA,GAAIwB,GAAGxB,KAAK,CAC1B,KAAOsoU,GAAK,GAAK1gB,WAAWzlT,GAAOu2I,GAAK4vL,GAAK,IAAKnmU,GAAOu2I,GAAK4vL,GAAK,IAAKnmU,GAAOnC,MAAO,KAAKsoU,GAC3F5vL,GAAK4vL,MAAQtoU,GAEf,OAAO04I,GAAKl2I,MAAM,EAAG8lU,IAEvB,SAASC,kBAAkBlkU,GAAGC,IAC5B,OAAOD,GAAE,GAAKC,GAAE,IAAMD,GAAE,GAAKC,GAAE,IA7DhC+K,GAAG8mB,IAAIqyS,cAAgB,WACtB,OAAOxF,kBAAkBiF,MACxBjwM,IAAMiwM,GAITC,0BAA0BzoT,OAAS,SAAS/Q,GAAGkH,IAC7C,MAAO,EAAGA,GAAG,EAAI1P,KAAKk/G,KAAKl/G,KAAK8tD,IAAItlD,KAAMisO,MAE3CtrO,GAAG8mB,IAAIsyS,mBAAqB,WAC3B,IAAI/7T,GAAai7T,0BAA0BO,2BAA4B1nS,GAAS9zB,GAAW8zB,OAAQxqB,GAAStJ,GAAWsJ,OAQvH,OAPAtJ,GAAW8zB,OAAS,SAASklC,IAC3B,OAAOA,GAAIllC,GAAO,EAAGklC,GAAE,GAAIA,GAAE,KAAuB,EAAdA,GAAIllC,MAAc,IAAKklC,GAAE,KAEjEh5D,GAAWsJ,OAAS,SAAS0vD,IAC3B,OAAOA,GAAI1vD,GAAO,CAAE0vD,GAAE,GAAIA,GAAE,GAAIA,GAAErjE,OAAS,EAAIqjE,GAAE,GAAK,GAAK,KAC3D,EADoEA,GAAI1vD,MACpE,GAAI0vD,GAAE,GAAIA,GAAE,GAAK,KAEhB1vD,GAAO,CAAE,EAAG,EAAG,OACrBgiH,IAAMkwM,0BACT74T,GAAGiyM,KAAO,GAOVjyM,GAAGiyM,KAAK5oE,KAAO,SAASr1I,IACtB,IAAIqL,GAAIy5T,eAAgBvyT,GAAIwyT,eAC5B,GAAIhtT,UAAU/Y,OAAQ,OAAOq2I,KAAKr1I,IAClC,SAASq1I,KAAKxuI,IACZ,GAAIA,GAAK7H,OAAS,EAAG,MAAO,GAC5B,IAA4CrC,GAAxC6sE,GAAKmgP,WAAWt+S,IAAIo+D,GAAKkgP,WAAWp3S,IAAOpU,GAAI0I,GAAK7H,OAAQF,GAAS,GAAIumU,GAAgB,GAC7F,IAAK1oU,GAAI,EAAGA,GAAIwB,GAAGxB,KACjBmC,GAAO8C,KAAK,EAAG4nE,GAAG3sE,KAAK8D,KAAMkG,GAAKlK,IAAIA,KAAK8sE,GAAG5sE,KAAK8D,KAAMkG,GAAKlK,IAAIA,IAAIA,KAGxE,IADAmC,GAAOgF,KAAKohU,mBACPvoU,GAAI,EAAGA,GAAIwB,GAAGxB,KAAK0oU,GAAczjU,KAAK,CAAE9C,GAAOnC,IAAG,IAAKmC,GAAOnC,IAAG,KACtE,IAAIu4I,GAAQ8vL,kBAAkBlmU,IAAS2xS,GAAQu0B,kBAAkBK,IAC7DC,GAAW70B,GAAM,KAAOv7J,GAAM,GAAIqwL,GAAY90B,GAAMA,GAAMzxS,OAAS,KAAOk2I,GAAMA,GAAMl2I,OAAS,GAAI89D,GAAU,GACjH,IAAKngE,GAAIu4I,GAAMl2I,OAAS,EAAGrC,IAAK,IAAKA,GAAGmgE,GAAQl7D,KAAKiF,GAAK/H,GAAOo2I,GAAMv4I,KAAI,KAC3E,IAAKA,IAAK2oU,GAAU3oU,GAAI8zS,GAAMzxS,OAASumU,KAAa5oU,GAAGmgE,GAAQl7D,KAAKiF,GAAK/H,GAAO2xS,GAAM9zS,KAAI,KAC1F,OAAOmgE,GAQT,OANAu4E,KAAKhqI,EAAI,SAASg3D,IAChB,OAAOtqD,UAAU/Y,QAAUqM,GAAIg3D,GAAGgzE,MAAQhqI,IAE5CgqI,KAAK9iI,EAAI,SAAS8vD,IAChB,OAAOtqD,UAAU/Y,QAAUuT,GAAI8vD,GAAGgzE,MAAQ9iI,IAErC8iI,MAaTrpI,GAAGiyM,KAAKnhJ,QAAU,SAASsB,IAEzB,OADAu+O,GAAYv+O,GAAaonQ,IAClBpnQ,IAET,IAAIonQ,GAA2Bx5T,GAAGiyM,KAAKnhJ,QAAQt+D,UAAY,GA+C3D,SAASinU,sBAAsB/mU,GAAGsC,GAAGC,IACnC,OAAQA,GAAE,GAAKD,GAAE,KAAOtC,GAAE,GAAKsC,GAAE,KAAOC,GAAE,GAAKD,GAAE,KAAOtC,GAAE,GAAKsC,GAAE,IAEnE,SAAS0kU,yBAAyB3oU,GAAGC,GAAGgE,GAAGC,IACzC,IAAIiyB,GAAKn2B,GAAE,GAAI6nE,GAAK5jE,GAAE,GAAI8mH,GAAM9qH,GAAE,GAAKk2B,GAAIyyS,GAAM1kU,GAAE,GAAK2jE,GAAIrxC,GAAKx2B,GAAE,GAAI8nE,GAAK7jE,GAAE,GAAI+mH,GAAM/qH,GAAE,GAAKu2B,GAAIqyS,GAAM3kU,GAAE,GAAK4jE,GAAIghQ,IAAMF,IAAOpyS,GAAKsxC,IAAM+gQ,IAAO1yS,GAAK0xC,MAAQghQ,GAAM99M,GAAM69M,GAAM59M,IAClL,MAAO,CAAE70F,GAAK2yS,GAAK/9M,GAAKv0F,GAAKsyS,GAAK99M,IAEpC,SAAS+9M,sBAAsB1nQ,IAC7B,IAAIp9D,GAAIo9D,GAAY,GAAIn9D,GAAIm9D,GAAYA,GAAYp/D,OAAS,GAC7D,QAASgC,GAAE,GAAKC,GAAE,IAAMD,GAAE,GAAKC,GAAE,IAvDnCukU,GAAyBjmQ,KAAO,WAE9B,IADA,IAA6Bv+D,GAAzBrE,IAAK,EAAGwB,GAAIwC,KAAK3B,OAAWiC,GAAIN,KAAKxC,GAAI,GAAIohE,GAAO,IAC/C5iE,GAAIwB,IACX6C,GAAIC,GACJA,GAAIN,KAAKhE,IACT4iE,IAAQv+D,GAAE,GAAKC,GAAE,GAAKD,GAAE,GAAKC,GAAE,GAEjC,MAAc,GAAPs+D,IAETimQ,GAAyBlO,SAAW,SAASn3T,IAC3C,IAA2Ca,GAAoBjE,GAA3DJ,IAAK,EAAGwB,GAAIwC,KAAK3B,OAAQqM,GAAI,EAAGkH,GAAI,EAAMtR,GAAIN,KAAKxC,GAAI,GAE3D,IADK4Z,UAAU/Y,SAAQmB,IAAK,GAAK,EAAIQ,KAAK4+D,WACjC5iE,GAAIwB,IACX6C,GAAIC,GACJA,GAAIN,KAAKhE,IACTI,GAAIiE,GAAE,GAAKC,GAAE,GAAKA,GAAE,GAAKD,GAAE,GAC3BqK,KAAMrK,GAAE,GAAKC,GAAE,IAAMlE,GACrBwV,KAAMvR,GAAE,GAAKC,GAAE,IAAMlE,GAEvB,MAAO,CAAEsO,GAAIlL,GAAGoS,GAAIpS,KAEtBqlU,GAAyB7hN,KAAO,SAAS0/L,IAEvC,IADA,IAAInyR,GAAuGpxB,GAAGhD,GAAoBmE,GAAGlE,GAAGC,GAA7H60O,GAASi0F,sBAAsBziB,IAAU1mT,IAAK,EAAGwB,GAAIwC,KAAK3B,OAAS8mU,sBAAsBnlU,MAAaK,GAAIL,KAAKxC,GAAI,KACrHxB,GAAIwB,IAAG,CAMd,IALA+yB,GAAQmyR,GAAQlkT,QAChBkkT,GAAQrkT,OAAS,EACjBiC,GAAIN,KAAKhE,IACTI,GAAIm0B,IAAOp0B,GAAIo0B,GAAMlyB,OAAS6yO,IAAU,GACxC/xO,IAAK,IACIA,GAAIhD,IAEP2oU,sBADJzoU,GAAIk0B,GAAMpxB,IACmBkB,GAAGC,KACzBwkU,sBAAsB1oU,GAAGiE,GAAGC,KAC/BoiT,GAAQzhT,KAAK8jU,yBAAyB3oU,GAAGC,GAAGgE,GAAGC,KAEjDoiT,GAAQzhT,KAAK5E,KACJyoU,sBAAsB1oU,GAAGiE,GAAGC,KACrCoiT,GAAQzhT,KAAK8jU,yBAAyB3oU,GAAGC,GAAGgE,GAAGC,KAEjDlE,GAAIC,GAEF60O,IAAQwxE,GAAQzhT,KAAKyhT,GAAQ,IACjCriT,GAAIC,GAEN,OAAOoiT,IAaT,IAAI0iB,GAAsBC,GAAsBC,GAAuDC,GAA4BC,GAA3DC,GAA2B,GAAwDC,GAA4B,GACvL,SAASC,uBACPC,4BAA4B5lU,MAC5BA,KAAKkoC,KAAOloC,KAAK6lU,KAAO7lU,KAAKqS,OAAS,KAExC,SAASyzT,2BAA2BD,IAClC,IAAIE,GAAQN,GAAyB/jU,OAAS,IAAIikU,qBAElD,OADAI,GAAMF,KAAOA,GACNE,GAET,SAASC,2BAA2BD,IAClCE,4BAA4BF,IAC5BT,GAAuBv4T,OAAOg5T,IAC9BN,GAAyBxkU,KAAK8kU,IAC9BH,4BAA4BG,IAE9B,SAASG,2BAA2BH,IAClC,IAAI1zT,GAAS0zT,GAAM1zT,OAAQ3H,GAAI2H,GAAO3H,EAAGkH,GAAIS,GAAO29D,GAAIlqC,GAAS,CAC/Dp7B,EAAGA,GACHkH,EAAGA,IACF0yD,GAAWyhQ,GAAMryQ,EAAGvB,GAAO4zQ,GAAMjyQ,EAAGqyQ,GAAe,CAAEJ,IACxDC,2BAA2BD,IAE3B,IADA,IAAIK,GAAO9hQ,GACJ8hQ,GAAK/zT,QAAUmB,GAAI9I,GAAI07T,GAAK/zT,OAAO3H,GAAK+rO,IAAKjjO,GAAI5B,GAAIw0T,GAAK/zT,OAAO29D,IAAMymK,IAC5EnyK,GAAW8hQ,GAAK1yQ,EAChByyQ,GAAaj8T,QAAQk8T,IACrBJ,2BAA2BI,IAC3BA,GAAO9hQ,GAET6hQ,GAAaj8T,QAAQk8T,IACrBH,4BAA4BG,IAE5B,IADA,IAAIhrL,GAAOjpF,GACJipF,GAAK/oI,QAAUmB,GAAI9I,GAAI0wI,GAAK/oI,OAAO3H,GAAK+rO,IAAKjjO,GAAI5B,GAAIwpI,GAAK/oI,OAAO29D,IAAMymK,IAC5EtkL,GAAOipF,GAAKtnF,EACZqyQ,GAAallU,KAAKm6I,IAClB4qL,2BAA2B5qL,IAC3BA,GAAOjpF,GAETg0Q,GAAallU,KAAKm6I,IAClB6qL,4BAA4B7qL,IAC5B,IAAiCirL,GAA7BC,GAAQH,GAAa9nU,OACzB,IAAKgoU,GAAO,EAAGA,GAAOC,KAASD,GAC7BjrL,GAAO+qL,GAAaE,IACpBD,GAAOD,GAAaE,GAAO,GAC3BE,0BAA0BnrL,GAAKlzG,KAAMk+R,GAAKP,KAAMzqL,GAAKyqL,KAAM//R,IAE7DsgS,GAAOD,GAAa,IACpB/qL,GAAO+qL,GAAaG,GAAQ,IACvBp+R,KAAOs+R,0BAA0BJ,GAAKP,KAAMzqL,GAAKyqL,KAAM,KAAM//R,IAClE2gS,4BAA4BL,IAC5BK,4BAA4BrrL,IAE9B,SAASsrL,wBAAwBb,IAE/B,IADA,IAAoCO,GAAMhrL,GAAMurL,GAAKC,GAAjDl8T,GAAIm7T,GAAKn7T,EAAGm8T,GAAYhB,GAAKj0T,EAAyBiS,GAAOyhT,GAAuB5jQ,EACjF79C,IAEL,IADA8iT,GAAMG,8BAA8BjjT,GAAMgjT,IAAan8T,IAC7C+rO,GAAG5yN,GAAOA,GAAK2rS,MAAQ,CAE/B,MADAoX,GAAMl8T,GAAIq8T,+BAA+BljT,GAAMgjT,KACrCpwF,IAMH,CACDkwF,IAAOlwF,IACT2vF,GAAOviT,GAAK6vC,EACZ0nF,GAAOv3H,IACE+iT,IAAOnwF,IAChB2vF,GAAOviT,GACPu3H,GAAOv3H,GAAKiwC,GAEZsyQ,GAAOhrL,GAAOv3H,GAEhB,MAfA,IAAKA,GAAKmjF,EAAG,CACXo/N,GAAOviT,GACP,MAEFA,GAAOA,GAAKmjF,EAelB,IAAIggO,GAASlB,2BAA2BD,IAExC,GADAP,GAAuBzlU,OAAOumU,GAAMY,IAC/BZ,IAAShrL,GAAd,CACA,GAAIgrL,KAAShrL,GAOX,OANA6qL,4BAA4BG,IAC5BhrL,GAAO0qL,2BAA2BM,GAAKP,MACvCP,GAAuBzlU,OAAOmnU,GAAQ5rL,IACtC4rL,GAAO9+R,KAAOkzG,GAAKlzG,KAAOs+R,0BAA0BJ,GAAKP,KAAMmB,GAAOnB,MACtEY,4BAA4BL,SAC5BK,4BAA4BrrL,IAG9B,GAAKA,GAAL,CAIA6qL,4BAA4BG,IAC5BH,4BAA4B7qL,IAC5B,IAAI6rL,GAAQb,GAAKP,KAAMzjT,GAAK6kT,GAAMv8T,EAAGi7F,GAAKshO,GAAMr1T,EAAGqmJ,GAAK4tK,GAAKn7T,EAAI0X,GAAI81I,GAAK2tK,GAAKj0T,EAAI+zF,GAAIuhO,GAAQ9rL,GAAKyqL,KAAM91P,GAAKm3P,GAAMx8T,EAAI0X,GAAI4tD,GAAKk3P,GAAMt1T,EAAI+zF,GAAItpG,GAAI,GAAK47J,GAAKjoF,GAAKkoF,GAAKnoF,IAAKo3P,GAAKlvK,GAAKA,GAAKC,GAAKA,GAAIkvK,GAAKr3P,GAAKA,GAAKC,GAAKA,GAAIlqC,GAAS,CACpOp7B,GAAIslE,GAAKm3P,GAAKjvK,GAAKkvK,IAAM/qU,GAAI+lB,GAC7BxQ,GAAIqmJ,GAAKmvK,GAAKr3P,GAAKo3P,IAAM9qU,GAAIspG,IAE/B4gO,0BAA0BnrL,GAAKlzG,KAAM++R,GAAOC,GAAOphS,IACnDkhS,GAAO9+R,KAAOs+R,0BAA0BS,GAAOpB,GAAM,KAAM//R,IAC3Ds1G,GAAKlzG,KAAOs+R,0BAA0BX,GAAMqB,GAAO,KAAMphS,IACzD2gS,4BAA4BL,IAC5BK,4BAA4BrrL,SAb1B4rL,GAAO9+R,KAAOs+R,0BAA0BJ,GAAKP,KAAMmB,GAAOnB,OAe9D,SAASiB,8BAA8B9+M,GAAK6+M,IAC1C,IAAIhB,GAAO79M,GAAI69M,KAAMwB,GAAQxB,GAAKn7T,EAAG48T,GAAQzB,GAAKj0T,EAAG21T,GAAOD,GAAQT,GACpE,IAAKU,GAAM,OAAOF,GAClB,IAAIjB,GAAOp+M,GAAIt0D,EACf,IAAK0yQ,GAAM,OAAQ7+T,IAEnB,IAAIigU,IADJ3B,GAAOO,GAAKP,MACKn7T,EAAG+8T,GAAQ5B,GAAKj0T,EAAG81T,GAAQD,GAAQZ,GACpD,IAAKa,GAAO,OAAOF,GACnB,IAAIG,GAAKH,GAAQH,GAAOO,GAAO,EAAIL,GAAO,EAAIG,GAAOpnU,GAAIqnU,GAAKD,GAC9D,OAAIE,KAAetnU,GAAI4B,KAAK6E,KAAKzG,GAAIA,GAAI,EAAIsnU,IAAQD,GAAKA,KAAO,EAAID,IAASD,GAAQC,GAAQ,EAAIJ,GAAQC,GAAO,KAAOK,GAAOP,IACvHA,GAAQG,IAAS,EAE3B,SAAST,+BAA+B/+M,GAAK6+M,IAC3C,IAAIzrL,GAAOpzB,GAAIl0D,EACf,GAAIsnF,GAAM,OAAO0rL,8BAA8B1rL,GAAMyrL,IACrD,IAAIhB,GAAO79M,GAAI69M,KACf,OAAOA,GAAKj0T,IAAMi1T,GAAYhB,GAAKn7T,EAAInD,IAEzC,SAASsgU,oBAAoBhC,IAC3B7lU,KAAK6lU,KAAOA,GACZ7lU,KAAKmoJ,MAAQ,GAyCf,SAAS2/K,6BAA6BznU,GAAGC,IACvC,OAAOA,GAAEoqD,MAAQrqD,GAAEqqD,MAErB,SAASq9Q,wBACPnC,4BAA4B5lU,MAC5BA,KAAK0K,EAAI1K,KAAK4R,EAAI5R,KAAKgoH,IAAMhoH,KAAK6lU,KAAO7lU,KAAKgwE,GAAK,KAErD,SAASy2P,4BAA4Bz+M,IACnC,IAAIo+M,GAAOp+M,GAAIt0D,EAAG0nF,GAAOpzB,GAAIl0D,EAC7B,GAAKsyQ,IAAShrL,GAAd,CACA,IAAI6rL,GAAQb,GAAKP,KAAMmC,GAAQhgN,GAAI69M,KAAMqB,GAAQ9rL,GAAKyqL,KACtD,GAAIoB,KAAUC,GAAd,CACA,IAAIjvK,GAAK+vK,GAAMt9T,EAAGwtJ,GAAK8vK,GAAMp2T,EAAGwQ,GAAK6kT,GAAMv8T,EAAIutJ,GAAItyD,GAAKshO,GAAMr1T,EAAIsmJ,GAAInoF,GAAKm3P,GAAMx8T,EAAIutJ,GACjF57J,GAAI,GAAK+lB,IAD4E4tD,GAAKk3P,GAAMt1T,EAAIsmJ,IACjFvyD,GAAK51B,IAC5B,KAAI1zE,KAAMinT,IAAV,CACA,IAAI2kB,GAAK7lT,GAAKA,GAAKujF,GAAKA,GAAIyhO,GAAKr3P,GAAKA,GAAKC,GAAKA,GAAItlE,IAAKslE,GAAKi4P,GAAKtiO,GAAKyhO,IAAM/qU,GAAGuV,IAAKwQ,GAAKglT,GAAKr3P,GAAKk4P,IAAM5rU,GAAG2zE,GAAKp+D,GAAIsmJ,GACnH7lJ,GAASqzT,GAA0BhkU,OAAS,IAAIqmU,sBACpD11T,GAAO21G,IAAMA,GACb31G,GAAOwzT,KAAOmC,GACd31T,GAAO3H,EAAIA,GAAIutJ,GACf5lJ,GAAOT,EAAIo+D,GAAK9tE,KAAK6E,KAAK2D,GAAIA,GAAIkH,GAAIA,IACtCS,GAAO29D,GAAKA,GACZg4C,GAAI31G,OAASA,GAEb,IADA,IAAIytS,GAAS,KAAMj8R,GAAO2hT,GAAuB9jQ,EAC1C79C,IACL,GAAIxR,GAAOT,EAAIiS,GAAKjS,GAAKS,GAAOT,IAAMiS,GAAKjS,GAAKS,GAAO3H,GAAKmZ,GAAKnZ,EAAG,CAClE,IAAImZ,GAAK2rS,EAAuB,CAC9B1P,GAASj8R,GAAK6vC,EACd,MAFU7vC,GAAOA,GAAK2rS,MAInB,CACL,IAAI3rS,GAAKmjF,EAAuB,CAC9B84M,GAASj8R,GACT,MAFUA,GAAOA,GAAKmjF,EAM5Bw+N,GAAuB3lU,OAAOigT,GAAQztS,IACjCytS,KAAQylB,GAA6BlzT,OAE5C,SAAS4zT,4BAA4Bj+M,IACnC,IAAI31G,GAAS21G,GAAI31G,OACbA,KACGA,GAAOqhD,IAAG6xQ,GAA6BlzT,GAAOyhD,GACnD0xQ,GAAuBz4T,OAAOsF,IAC9BqzT,GAA0BzkU,KAAKoR,IAC/BuzT,4BAA4BvzT,IAC5B21G,GAAI31G,OAAS,MAajB,SAAS61T,2BAA2BhgS,GAAM07B,IACxC,IAAIukQ,GAAKjgS,GAAK5nC,EACd,GAAI6nU,GAAI,OAAO,EACf,IAA6NC,GAAIC,GAA7NC,GAAKpgS,GAAK7nC,EAAGiyB,GAAKsxC,GAAO,GAAG,GAAIrxC,GAAKqxC,GAAO,GAAG,GAAIjxC,GAAKixC,GAAO,GAAG,GAAIhxC,GAAKgxC,GAAO,GAAG,GAAIqjQ,GAAQ/+R,GAAKjsC,EAAGirU,GAAQh/R,GAAKrrC,EAAGymO,GAAK2jG,GAAMv8T,EAAG64N,GAAK0jG,GAAMr1T,EAAGm9D,GAAKm4P,GAAMx8T,EAAGskE,GAAKk4P,GAAMt1T,EAAGi3D,IAAMy6J,GAAKv0J,IAAM,EAAGjG,IAAMy6J,GAAKv0J,IAAM,EAC1N,GAAIA,KAAOu0J,GAAI,CACb,GAAI16J,GAAKv2C,IAAMu2C,IAAMt2C,GAAI,OACzB,GAAI+wM,GAAKv0J,GAAI,CACX,GAAKu5P,IAGG,GAAIA,GAAG12T,GAAKghB,GAAI,YAHf01S,GAAK,CACZ59T,EAAGm+D,GACHj3D,EAAG+gB,IAELw1S,GAAK,CACHz9T,EAAGm+D,GACHj3D,EAAGghB,QAEA,CACL,GAAK01S,IAGG,GAAIA,GAAG12T,EAAI+gB,GAAI,YAHd21S,GAAK,CACZ59T,EAAGm+D,GACHj3D,EAAGghB,IAELu1S,GAAK,CACHz9T,EAAGm+D,GACHj3D,EAAG+gB,UAMP,GADA01S,GAAKv/P,IADLs/P,IAAM9kG,GAAKv0J,KAAOC,GAAKu0J,KACR16J,GACXu/P,IAAM,GAAKA,GAAK,EAClB,GAAI9kG,GAAKv0J,GAAI,CACX,GAAKu5P,IAGG,GAAIA,GAAG12T,GAAKghB,GAAI,YAHf01S,GAAK,CACZ59T,GAAIioB,GAAK01S,IAAMD,GACfx2T,EAAG+gB,IAELw1S,GAAK,CACHz9T,GAAIkoB,GAAKy1S,IAAMD,GACfx2T,EAAGghB,QAEA,CACL,GAAK01S,IAGG,GAAIA,GAAG12T,EAAI+gB,GAAI,YAHd21S,GAAK,CACZ59T,GAAIkoB,GAAKy1S,IAAMD,GACfx2T,EAAGghB,IAELu1S,GAAK,CACHz9T,GAAIioB,GAAK01S,IAAMD,GACfx2T,EAAG+gB,SAIP,GAAI4wM,GAAKv0J,GAAI,CACX,GAAKs5P,IAGG,GAAIA,GAAG59T,GAAK6nB,GAAI,YAHf+1S,GAAK,CACZ59T,EAAG4nB,GACH1gB,EAAGw2T,GAAK91S,GAAK+1S,IAEfF,GAAK,CACHz9T,EAAG6nB,GACH3gB,EAAGw2T,GAAK71S,GAAK81S,QAEV,CACL,GAAKC,IAGG,GAAIA,GAAG59T,EAAI4nB,GAAI,YAHdg2S,GAAK,CACZ59T,EAAG6nB,GACH3gB,EAAGw2T,GAAK71S,GAAK81S,IAEfF,GAAK,CACHz9T,EAAG4nB,GACH1gB,EAAGw2T,GAAK91S,GAAK+1S,IAOrB,OAFAngS,GAAK7nC,EAAIioU,GACTpgS,GAAK5nC,EAAI6nU,IACF,EAET,SAASI,oBAAoBtB,GAAOC,IAClClnU,KAAK/D,EAAIgrU,GACTjnU,KAAKnD,EAAIqqU,GACTlnU,KAAKK,EAAIL,KAAKM,EAAI,KAEpB,SAASkmU,0BAA0BS,GAAOC,GAAOoB,GAAIH,IACnD,IAAIjgS,GAAO,IAAIqgS,oBAAoBtB,GAAOC,IAM1C,OALA9B,GAAqBnkU,KAAKinC,IACtBogS,IAAI/B,0BAA0Br+R,GAAM++R,GAAOC,GAAOoB,IAClDH,IAAI5B,0BAA0Br+R,GAAMg/R,GAAOD,GAAOkB,IACtD9C,GAAqB4B,GAAMjrU,GAAGmsJ,MAAMlnJ,KAAK,IAAIunU,wBAAwBtgS,GAAM++R,GAAOC,KAClF7B,GAAqB6B,GAAMlrU,GAAGmsJ,MAAMlnJ,KAAK,IAAIunU,wBAAwBtgS,GAAMg/R,GAAOD,KAC3E/+R,GAET,SAASugS,gCAAgCxB,GAAOqB,GAAIH,IAClD,IAAIjgS,GAAO,IAAIqgS,oBAAoBtB,GAAO,MAI1C,OAHA/+R,GAAK7nC,EAAIioU,GACTpgS,GAAK5nC,EAAI6nU,GACT/C,GAAqBnkU,KAAKinC,IACnBA,GAET,SAASq+R,0BAA0Br+R,GAAM++R,GAAOC,GAAOphS,IAChDoC,GAAK7nC,GAAM6nC,GAAK5nC,EAIV4nC,GAAKjsC,IAAMirU,GACpBh/R,GAAK5nC,EAAIwlC,GAEToC,GAAK7nC,EAAIylC,IANToC,GAAK7nC,EAAIylC,GACToC,GAAKjsC,EAAIgrU,GACT/+R,GAAKrrC,EAAIqqU,IAOb,SAASsB,wBAAwBtgS,GAAM++R,GAAOC,IAC5C,IAAIoB,GAAKpgS,GAAK7nC,EAAG8nU,GAAKjgS,GAAK5nC,EAC3BN,KAAKkoC,KAAOA,GACZloC,KAAK6lU,KAAOoB,GACZjnU,KAAK0qD,MAAQw8Q,GAAQhlU,KAAKivM,MAAM+1H,GAAMt1T,EAAIq1T,GAAMr1T,EAAGs1T,GAAMx8T,EAAIu8T,GAAMv8T,GAAKw9B,GAAKjsC,IAAMgrU,GAAQ/kU,KAAKivM,MAAMg3H,GAAGz9T,EAAI49T,GAAG59T,EAAG49T,GAAG12T,EAAIu2T,GAAGv2T,GAAK1P,KAAKivM,MAAMm3H,GAAG59T,EAAIy9T,GAAGz9T,EAAGy9T,GAAGv2T,EAAI02T,GAAG12T,GAUtK,SAAS82T,8BACP1oU,KAAK0hE,EAAI,KAEX,SAASkkQ,4BAA4B/hT,IACnCA,GAAKmzM,EAAInzM,GAAK8/K,EAAI9/K,GAAK2rS,EAAI3rS,GAAKmjF,EAAInjF,GAAK6vC,EAAI7vC,GAAKiwC,EAAI,KAkKxD,SAAS60Q,kCAAkC7mQ,GAAMj+C,IAC/C,IAAI9lB,GAAI8lB,GAAMmgD,GAAIngD,GAAKmjF,EAAGziF,GAASxmB,GAAEi5N,EACjCzyM,GACEA,GAAOirS,IAAMzxT,GAAGwmB,GAAOirS,EAAIxrP,GAAQz/C,GAAOyiF,EAAIhjC,GAElDlC,GAAKJ,EAAIsC,GAEXA,GAAEgzJ,EAAIzyM,GACNxmB,GAAEi5N,EAAIhzJ,GACNjmE,GAAEipG,EAAIhjC,GAAEwrP,EACJzxT,GAAEipG,IAAGjpG,GAAEipG,EAAEgwH,EAAIj5N,IACjBimE,GAAEwrP,EAAIzxT,GAER,SAAS6qU,mCAAmC9mQ,GAAMj+C,IAChD,IAAI9lB,GAAI8lB,GAAMmgD,GAAIngD,GAAK2rS,EAAGjrS,GAASxmB,GAAEi5N,EACjCzyM,GACEA,GAAOirS,IAAMzxT,GAAGwmB,GAAOirS,EAAIxrP,GAAQz/C,GAAOyiF,EAAIhjC,GAElDlC,GAAKJ,EAAIsC,GAEXA,GAAEgzJ,EAAIzyM,GACNxmB,GAAEi5N,EAAIhzJ,GACNjmE,GAAEyxT,EAAIxrP,GAAEgjC,EACJjpG,GAAEyxT,IAAGzxT,GAAEyxT,EAAEx4F,EAAIj5N,IACjBimE,GAAEgjC,EAAIjpG,GAER,SAAS8qU,6BAA6BhlT,IACpC,KAAOA,GAAK2rS,GAAG3rS,GAAOA,GAAK2rS,EAC3B,OAAO3rS,GAET,SAASilT,gBAAgBC,GAAOt5K,IAC9B,IAAyDn9H,GAAIK,GAAItgB,GAA7DwzT,GAAOkD,GAAM5lU,KAAK6lU,4BAA4BtnU,MAKlD,IAJA0jU,GAAuB,GACvBC,GAAuB,IAAIzmU,MAAMmqU,GAAM1qU,QACvCinU,GAAyB,IAAIoD,4BAC7BlD,GAAyB,IAAIkD,8BAG3B,GADAr2T,GAASkzT,GACLM,MAAUxzT,IAAUwzT,GAAKj0T,EAAIS,GAAOT,GAAKi0T,GAAKj0T,IAAMS,GAAOT,GAAKi0T,GAAKn7T,EAAI2H,GAAO3H,GAC9Em7T,GAAKn7T,IAAM4nB,IAAMuzS,GAAKj0T,IAAM+gB,KAC9B0yS,GAAqBQ,GAAK7pU,GAAK,IAAI6rU,oBAAoBhC,IACvDa,wBAAwBb,IACxBvzS,GAAKuzS,GAAKn7T,EAAGioB,GAAKkzS,GAAKj0T,GAEzBi0T,GAAOkD,GAAMrnU,UACR,KAAI2Q,GAGT,MAFA6zT,2BAA2B7zT,GAAO21G,KAKlCynC,KA3VN,SAASw5K,yBAAyBrlQ,IAEhC,IADA,IAAqIhqD,GAAjIuuI,GAAQi9K,GAAsBpiN,GAAOw3M,iBAAiB52P,GAAO,GAAG,GAAIA,GAAO,GAAG,GAAIA,GAAO,GAAG,GAAIA,GAAO,GAAG,IAAK5nE,GAAImsJ,GAAM9pJ,OACtHrC,QAEAksU,2BADLtuT,GAAIuuI,GAAMnsJ,IACyB4nE,MAAYo/C,GAAKppG,KAAMpG,GAAIoG,GAAEvZ,EAAEqK,EAAIkP,GAAEtZ,EAAEoK,GAAK+rO,IAAKjjO,GAAIoG,GAAEvZ,EAAEuR,EAAIgI,GAAEtZ,EAAEsR,GAAK6kO,MACvG78N,GAAEvZ,EAAIuZ,GAAEtZ,EAAI,KACZ6nJ,GAAMr7I,OAAO9Q,GAAG,IAqVVitU,CAAyBx5K,IA3arC,SAASy5K,0BAA0BtlQ,IAEjC,IADA,IAAgFrrB,GAAIwrB,GAAIE,GAAIC,GAAwD9kE,GAAM+pU,GAAWC,GAAWC,GAAYzpT,GAAOE,GAA/LwS,GAAKsxC,GAAO,GAAG,GAAIrxC,GAAKqxC,GAAO,GAAG,GAAIjxC,GAAKixC,GAAO,GAAG,GAAIhxC,GAAKgxC,GAAO,GAAG,GAAoBtgE,GAAQ+hU,GAAsBiE,GAAQhmU,GAAMjF,OACrIirU,MAEL,IADAlqU,GAAOkE,GAAMgmU,MACClqU,GAAK4lE,UAInB,IAFAqkQ,IADAD,GAAYhqU,GAAK+oJ,OACM9pJ,OACvB8qU,GAAY,EACLA,GAAYE,IACiBplQ,IAAlCnkD,GAAMspT,GAAUD,IAAWrpT,OAAgBpV,EAAGw5D,GAAKpkD,GAAIlO,EACF2mC,IAArD34B,GAAQwpT,KAAYD,GAAYE,IAAYzpT,SAAoBlV,EAAGq5D,GAAKnkD,GAAMhO,GAC1E4B,GAAIywD,GAAK1rB,IAAMk+L,IAAKjjO,GAAI0wD,GAAKH,IAAM0yK,MACrC2yF,GAAUt8T,OAAOq8T,GAAW,EAAG,IAAIX,wBAAwBC,gCAAgCrpU,GAAKymU,KAAM/lT,GAAKtM,GAAIywD,GAAK3xC,IAAMmkN,IAAK7jN,GAAKsxC,GAAKuyK,GAAI,CAC3I/rO,EAAG4nB,GACH1gB,EAAG4B,GAAI+kC,GAAKjmB,IAAMmkN,GAAI1yK,GAAKnxC,IACzBpf,GAAI0wD,GAAKtxC,IAAM6jN,IAAKlkN,GAAK0xC,GAAKwyK,GAAI,CACpC/rO,EAAG8I,GAAIuwD,GAAKnxC,IAAM6jN,GAAIl+L,GAAKhmB,GAC3B3gB,EAAGghB,IACDpf,GAAIywD,GAAK1xC,IAAMkkN,IAAKvyK,GAAKvxC,GAAK8jN,GAAI,CACpC/rO,EAAG6nB,GACH3gB,EAAG4B,GAAI+kC,GAAKhmB,IAAMkkN,GAAI1yK,GAAKpxC,IACzBnf,GAAI0wD,GAAKvxC,IAAM8jN,IAAKxyK,GAAK3xC,GAAKmkN,GAAI,CACpC/rO,EAAG8I,GAAIuwD,GAAKpxC,IAAM8jN,GAAIl+L,GAAKjmB,GAC3B1gB,EAAG+gB,IACD,MAAOvzB,GAAKymU,KAAM,SACpBwD,IAkZkCH,CAA0Bz5K,KACpE,IAAI85K,GAAU,CACZjmU,MAAO+hU,GACPl9K,MAAOi9K,IAGT,OADAE,GAAyBE,GAAyBJ,GAAuBC,GAAuB,KACzFkE,GAET,SAASP,2BAA2B3oU,GAAGC,IACrC,OAAOA,GAAEsR,EAAIvR,GAAEuR,GAAKtR,GAAEoK,EAAIrK,GAAEqK,EA7b9Bm9T,oBAAoBhqU,UAAUmnE,QAAU,WAEtC,IADA,IAA0D98B,GAAtDkhS,GAAYppU,KAAKmoJ,MAAOghL,GAAYC,GAAU/qU,OAC3C8qU,OACLjhS,GAAOkhS,GAAUD,IAAWjhS,MAClB5nC,GAAM4nC,GAAK7nC,GAAG+oU,GAAUt8T,OAAOq8T,GAAW,GAGtD,OADAC,GAAUjmU,KAAK2kU,8BACRsB,GAAU/qU,QA4MnBmqU,wBAAwB3qU,UAAY,CAClC+hB,MAAO,WACL,OAAO5f,KAAKkoC,KAAKjsC,IAAM+D,KAAK6lU,KAAO7lU,KAAKkoC,KAAK7nC,EAAIL,KAAKkoC,KAAK5nC,GAE7Dwf,IAAK,WACH,OAAO9f,KAAKkoC,KAAKjsC,IAAM+D,KAAK6lU,KAAO7lU,KAAKkoC,KAAK5nC,EAAIN,KAAKkoC,KAAK7nC,IAS/DqoU,4BAA4B7qU,UAAY,CACtCgC,OAAQ,SAASwtT,GAAOxpS,IACtB,IAAIU,GAAQilT,GAASC,GACrB,GAAIpc,GAAO,CAKT,GAJAxpS,GAAK6vC,EAAI25P,GACTxpS,GAAKiwC,EAAIu5P,GAAMv5P,EACXu5P,GAAMv5P,IAAGu5P,GAAMv5P,EAAEJ,EAAI7vC,IACzBwpS,GAAMv5P,EAAIjwC,GACNwpS,GAAMrmN,EAAG,CAEX,IADAqmN,GAAQA,GAAMrmN,EACPqmN,GAAMmC,GAAGnC,GAAQA,GAAMmC,EAC9BnC,GAAMmC,EAAI3rS,QAEVwpS,GAAMrmN,EAAInjF,GAEZU,GAAS8oS,QACArtT,KAAK0hE,GACd2rP,GAAQwb,6BAA6B7oU,KAAK0hE,GAC1C79C,GAAK6vC,EAAI,KACT7vC,GAAKiwC,EAAIu5P,GACTA,GAAM35P,EAAI25P,GAAMmC,EAAI3rS,GACpBU,GAAS8oS,KAETxpS,GAAK6vC,EAAI7vC,GAAKiwC,EAAI,KAClB9zD,KAAK0hE,EAAI79C,GACTU,GAAS,MAMX,IAJAV,GAAK2rS,EAAI3rS,GAAKmjF,EAAI,KAClBnjF,GAAKmzM,EAAIzyM,GACTV,GAAK8/K,GAAI,EACT0pH,GAAQxpS,GACDU,IAAUA,GAAOo/K,GAElBp/K,MADJilT,GAAUjlT,GAAOyyM,GACMw4F,GACrBia,GAAQD,GAAQxiO,IACHyiO,GAAM9lI,GACjBp/K,GAAOo/K,EAAI8lI,GAAM9lI,GAAI,EACrB6lI,GAAQ7lI,GAAI,EACZ0pH,GAAQmc,KAEJnc,KAAU9oS,GAAOyiF,IACnB2hO,kCAAkC3oU,KAAMukB,IAExCA,IADA8oS,GAAQ9oS,IACOyyM,GAEjBzyM,GAAOo/K,GAAI,EACX6lI,GAAQ7lI,GAAI,EACZilI,mCAAmC5oU,KAAMwpU,MAG3CC,GAAQD,GAAQha,IACHia,GAAM9lI,GACjBp/K,GAAOo/K,EAAI8lI,GAAM9lI,GAAI,EACrB6lI,GAAQ7lI,GAAI,EACZ0pH,GAAQmc,KAEJnc,KAAU9oS,GAAOirS,IACnBoZ,mCAAmC5oU,KAAMukB,IAEzCA,IADA8oS,GAAQ9oS,IACOyyM,GAEjBzyM,GAAOo/K,GAAI,EACX6lI,GAAQ7lI,GAAI,EACZglI,kCAAkC3oU,KAAMwpU,KAG5CjlT,GAAS8oS,GAAMr2F,EAEjBh3N,KAAK0hE,EAAEiiI,GAAI,GAEb52L,OAAQ,SAAS8W,IACXA,GAAKiwC,IAAGjwC,GAAKiwC,EAAEJ,EAAI7vC,GAAK6vC,GACxB7vC,GAAK6vC,IAAG7vC,GAAK6vC,EAAEI,EAAIjwC,GAAKiwC,GAC5BjwC,GAAKiwC,EAAIjwC,GAAK6vC,EAAI,KAClB,IAAqBg2Q,GAAwCv3Q,GAAMm5H,GAA/D/mK,GAASV,GAAKmzM,EAAYhnN,GAAO6T,GAAK2rS,EAAGv/S,GAAQ4T,GAAKmjF,EA6B1D,GA5B4D70C,GAAvDniD,GAA8BC,GAAgC44T,6BAA6B54T,IAA/CD,GAA/BC,GACdsU,GACEA,GAAOirS,IAAM3rS,GAAMU,GAAOirS,EAAIr9P,GAAW5tC,GAAOyiF,EAAI70C,GAExDnyD,KAAK0hE,EAAIvP,GAEPniD,IAAQC,IACVq7K,GAAMn5H,GAAKwxI,EACXxxI,GAAKwxI,EAAI9/K,GAAK8/K,EACdxxI,GAAKq9P,EAAIx/S,GACTA,GAAKgnN,EAAI7kK,GACLA,KAASliD,IACXsU,GAAS4tC,GAAK6kK,EACd7kK,GAAK6kK,EAAInzM,GAAKmzM,EACdnzM,GAAOsuC,GAAK60C,EACZziF,GAAOirS,EAAI3rS,GACXsuC,GAAK60C,EAAI/2F,GACTA,GAAM+mN,EAAI7kK,KAEVA,GAAK6kK,EAAIzyM,GACTA,GAAS4tC,GACTtuC,GAAOsuC,GAAK60C,KAGdskF,GAAMznK,GAAK8/K,EACX9/K,GAAOsuC,IAELtuC,KAAMA,GAAKmzM,EAAIzyM,KACf+mK,GACJ,GAAIznK,IAAQA,GAAK8/K,EACf9/K,GAAK8/K,GAAI,MADX,CAIA,EAAG,CACD,GAAI9/K,KAAS7jB,KAAK0hE,EAAG,MACrB,GAAI79C,KAASU,GAAOirS,GAQlB,IAPAka,GAAUnlT,GAAOyiF,GACL28F,IACV+lI,GAAQ/lI,GAAI,EACZp/K,GAAOo/K,GAAI,EACXglI,kCAAkC3oU,KAAMukB,IACxCmlT,GAAUnlT,GAAOyiF,GAEf0iO,GAAQla,GAAKka,GAAQla,EAAE7rH,GAAK+lI,GAAQ1iO,GAAK0iO,GAAQ1iO,EAAE28F,EAAG,CACnD+lI,GAAQ1iO,GAAM0iO,GAAQ1iO,EAAE28F,IAC3B+lI,GAAQla,EAAE7rH,GAAI,EACd+lI,GAAQ/lI,GAAI,EACZilI,mCAAmC5oU,KAAM0pU,IACzCA,GAAUnlT,GAAOyiF,GAEnB0iO,GAAQ/lI,EAAIp/K,GAAOo/K,EACnBp/K,GAAOo/K,EAAI+lI,GAAQ1iO,EAAE28F,GAAI,EACzBglI,kCAAkC3oU,KAAMukB,IACxCV,GAAO7jB,KAAK0hE,EACZ,YAUF,IAPAgoQ,GAAUnlT,GAAOirS,GACL7rH,IACV+lI,GAAQ/lI,GAAI,EACZp/K,GAAOo/K,GAAI,EACXilI,mCAAmC5oU,KAAMukB,IACzCmlT,GAAUnlT,GAAOirS,GAEfka,GAAQla,GAAKka,GAAQla,EAAE7rH,GAAK+lI,GAAQ1iO,GAAK0iO,GAAQ1iO,EAAE28F,EAAG,CACnD+lI,GAAQla,GAAMka,GAAQla,EAAE7rH,IAC3B+lI,GAAQ1iO,EAAE28F,GAAI,EACd+lI,GAAQ/lI,GAAI,EACZglI,kCAAkC3oU,KAAM0pU,IACxCA,GAAUnlT,GAAOirS,GAEnBka,GAAQ/lI,EAAIp/K,GAAOo/K,EACnBp/K,GAAOo/K,EAAI+lI,GAAQla,EAAE7rH,GAAI,EACzBilI,mCAAmC5oU,KAAMukB,IACzCV,GAAO7jB,KAAK0hE,EACZ,MAGJgoQ,GAAQ/lI,GAAI,EACZ9/K,GAAOU,GACPA,GAASA,GAAOyyM,SACRnzM,GAAK8/K,GACX9/K,KAAMA,GAAK8/K,GAAI,MAiEvBt4L,GAAGiyM,KAAKqsH,QAAU,SAASxrU,IACzB,IAAIuM,GAAIy5T,eAAgBvyT,GAAIwyT,eAAgBv7P,GAAKn+D,GAAGo+D,GAAKl3D,GAAGgqT,GAAagO,GACzE,GAAIzrU,GAAQ,OAAOwrU,QAAQxrU,IAC3B,SAASwrU,QAAQzjU,IACf,IAAIw3D,GAAW,IAAI9+D,MAAMsH,GAAK7H,QAASi0B,GAAKspS,GAAW,GAAG,GAAIjpS,GAAKipS,GAAW,GAAG,GAAIrpS,GAAKqpS,GAAW,GAAG,GAAIhpS,GAAKgpS,GAAW,GAAG,GAQ/H,OAPAkN,gBAAgBC,MAAM7iU,IAAO01T,IAAYt4T,MAAMivD,SAAQ,SAASnzD,GAAMpD,IACpE,IAAImsJ,GAAQ/oJ,GAAK+oJ,MAAO09K,GAAOzmU,GAAKymU,MAAgBnoQ,GAAS1hE,IAAKmsJ,GAAM9pJ,OAAS8pJ,GAAM9wG,KAAI,SAASz9B,IAClG,IAAI5b,GAAI4b,GAAEgG,QACV,MAAO,CAAE5hB,GAAE0M,EAAG1M,GAAE4T,MACbi0T,GAAKn7T,GAAK4nB,IAAMuzS,GAAKn7T,GAAK6nB,IAAMszS,GAAKj0T,GAAK+gB,IAAMkzS,GAAKj0T,GAAKghB,GAAK,CAAE,CAAEN,GAAIM,IAAM,CAAEL,GAAIK,IAAM,CAAEL,GAAII,IAAM,CAAEL,GAAIK,KAAS,IACjHnxB,MAAQ0E,GAAKlK,OAEhB0hE,GAET,SAASqrQ,MAAM7iU,IACb,OAAOA,GAAKmxC,KAAI,SAASh7C,GAAGL,IAC1B,MAAO,CACL0O,EAAGxI,KAAKm5B,MAAMwtC,GAAGxsE,GAAGL,IAAKy6O,IAAKA,GAC9B7kO,EAAG1P,KAAKm5B,MAAMytC,GAAGzsE,GAAGL,IAAKy6O,IAAKA,GAC9Bz6O,EAAGA,OA6CT,OAzCA2tU,QAAQpkQ,MAAQ,SAASr/D,IACvB,OAAO4iU,gBAAgBC,MAAM7iU,KAAOiiJ,MAAMtnJ,QAAO,SAASqnC,IACxD,OAAOA,GAAKjsC,GAAKisC,GAAKrrC,KACrBw6C,KAAI,SAASnP,IACd,MAAO,CACLq7B,OAAQr9D,GAAKgiC,GAAKjsC,EAAED,GACpBmtB,OAAQjjB,GAAKgiC,GAAKrrC,EAAEb,QAI1B2tU,QAAQjqU,UAAY,SAASwG,IAC3B,IAAIxG,GAAY,GAahB,OAZAopU,gBAAgBC,MAAM7iU,KAAO5C,MAAMivD,SAAQ,SAASnzD,GAAMpD,IAExD,IADA,IAA2GgjF,GA+B5E3+E,GAAGC,GAAGlE,GA/BjCypU,GAAOzmU,GAAKymU,KAAM19K,GAAQ/oJ,GAAK+oJ,MAAMhlJ,KAAK2kU,8BAA+B3oU,IAAK,EAAGhD,GAAIgsJ,GAAM9pJ,OAAgBw9S,GAAK1zJ,GAAMhsJ,GAAI,GAAG+rC,KAAM+2C,GAAK48N,GAAG5/S,IAAM4pU,GAAOhqB,GAAGh/S,EAAIg/S,GAAG5/S,IAC7JkD,GAAIhD,IACN0/S,GACL78N,GAAKC,GAELA,IADA48N,GAAK1zJ,GAAMhpJ,IAAG+oC,MACNjsC,IAAM4pU,GAAOhqB,GAAGh/S,EAAIg/S,GAAG5/S,EAC3BD,GAAIgjF,GAAGhjF,GAAKA,GAAIijF,GAAGjjF,IAyBSsE,GAzB8B0+E,GAyB3B5iF,GAzB+B6iF,KAyBrC5+E,GAzB2BwlU,IA0BpDn7T,EAAItO,GAAEsO,IAAMpK,GAAEsR,EAAIvR,GAAEuR,IAAMvR,GAAEqK,EAAIpK,GAAEoK,IAAMtO,GAAEwV,EAAIvR,GAAEuR,GA1BoB,IACtElS,GAAUuB,KAAK,CAAEiF,GAAKlK,IAAIkK,GAAK84E,GAAGhjF,GAAIkK,GAAK+4E,GAAGjjF,QAI7C0D,IAETiqU,QAAQj/T,EAAI,SAASg3D,IACnB,OAAOtqD,UAAU/Y,QAAUwqE,GAAKmgP,WAAWt+S,GAAIg3D,IAAIioQ,SAAWj/T,IAEhEi/T,QAAQ/3T,EAAI,SAAS8vD,IACnB,OAAOtqD,UAAU/Y,QAAUyqE,GAAKkgP,WAAWp3S,GAAI8vD,IAAIioQ,SAAW/3T,IAEhE+3T,QAAQ/N,WAAa,SAASl6P,IAC5B,OAAKtqD,UAAU/Y,QACfu9T,GAAkB,MAALl6P,GAAYkoQ,GAA4BloQ,GAC9CioQ,SAFuB/N,KAAegO,GAA4B,KAAOhO,IAIlF+N,QAAQ5pT,KAAO,SAAS2hD,IACtB,OAAKtqD,UAAU/Y,OACRsrU,QAAQ/N,WAAWl6P,IAAK,CAAE,CAAE,EAAG,GAAKA,KADbk6P,KAAegO,GAA4B,KAAOhO,IAAcA,GAAW,IAGpG+N,SAET,IAAIC,GAA4B,CAAE,EAAG,KAAM,KAAO,CAAE,IAAK,MAkHzD,SAASC,wBAAwBxtU,IAC/B,OAAOA,GAAEqO,EAEX,SAASo/T,wBAAwBztU,IAC/B,OAAOA,GAAEuV,EAWX,SAASm4T,sBAAsB3lS,GAAGvgB,GAAM0O,GAAIK,GAAI2lB,GAAIwrB,IAClD,IAAK3/B,GAAEvgB,GAAM0O,GAAIK,GAAI2lB,GAAIwrB,IAAK,CAC5B,IAAIxC,GAAiB,IAAXhvC,GAAKgmB,IAAUipB,GAAiB,IAAX5uC,GAAKmxC,IAAUy3B,GAAW33E,GAAKw9C,MAC1Dm6B,GAAS,IAAIuuO,sBAAsB3lS,GAAGo3D,GAAS,GAAIjpE,GAAIK,GAAI2uC,GAAIC,IAC/Dg6B,GAAS,IAAIuuO,sBAAsB3lS,GAAGo3D,GAAS,GAAIj6B,GAAI3uC,GAAI2lB,GAAIipB,IAC/Dg6B,GAAS,IAAIuuO,sBAAsB3lS,GAAGo3D,GAAS,GAAIjpE,GAAIivC,GAAID,GAAIwC,IAC/Dy3B,GAAS,IAAIuuO,sBAAsB3lS,GAAGo3D,GAAS,GAAIj6B,GAAIC,GAAIjpB,GAAIwrB,KAGvE,SAASimQ,qBAAqBzuU,GAAMmP,GAAGkH,GAAG0gB,GAAIK,GAAIsxC,GAAIC,IACpD,IAA6BqoL,GAAzB09E,GAAe1iU,IAiCnB,OAhCA,SAAUs8D,KAAKhgD,GAAM0O,GAAIK,GAAI2lB,GAAIwrB,IAC/B,KAAIxxC,GAAK0xC,IAAMrxC,GAAKsxC,IAAM3rB,GAAKjmB,IAAMyxC,GAAKpxC,IAA1C,CACA,GAAInxB,GAAQqiB,GAAKriB,MAAO,CACtB,IAAIA,GAAOqzB,GAAKnqB,GAAImZ,GAAKnZ,EAAGsd,GAAKpW,GAAIiS,GAAKjS,EAAGs4T,GAAYr1S,GAAKA,GAAK7M,GAAKA,GACxE,GAAIkiT,GAAYD,GAAc,CAC5B,IAAInjU,GAAW5E,KAAK6E,KAAKkjU,GAAeC,IACxC53S,GAAK5nB,GAAI5D,GAAU6rB,GAAK/gB,GAAI9K,GAC5Bm9D,GAAKv5D,GAAI5D,GAAUo9D,GAAKtyD,GAAI9K,GAC5BylP,GAAe/qP,IAInB,IADA,IAAIg6F,GAAW33E,GAAKw9C,MAAOU,GAAiB,IAAXxvC,GAAKgmB,IAAUypB,GAAiB,IAAXpvC,GAAKmxC,IAClD/nE,IADqF4V,IAAKowD,KAC7E,EADuDt3D,IAAKq3D,GACjD5iE,GAAInD,GAAI,EAAGA,GAAImD,KAAKnD,GACnD,GAAI6nB,GAAO23E,GAAa,EAAJx/F,IAAQ,OAAY,EAAJA,IACnC,KAAK,EACJ6nE,KAAKhgD,GAAM0O,GAAIK,GAAImvC,GAAIC,IACvB,MAED,KAAK,EACJ6B,KAAKhgD,GAAMk+C,GAAInvC,GAAI2lB,GAAIypB,IACvB,MAED,KAAK,EACJ6B,KAAKhgD,GAAM0O,GAAIyvC,GAAID,GAAIgC,IACvB,MAED,KAAK,EACJF,KAAKhgD,GAAMk+C,GAAIC,GAAIzpB,GAAIwrB,MA3B7B,CA+BGxoE,GAAM+2B,GAAIK,GAAIsxC,GAAIC,IACdqoL,GAGT,SAAS49E,kBAAkB9pU,GAAGC,IAC5BD,GAAIgL,GAAGhH,IAAIhE,IACXC,GAAI+K,GAAGhH,IAAI/D,IACX,IAAI69K,GAAK99K,GAAExD,EAAGutU,GAAK/pU,GAAEqnB,EAAG0wJ,GAAK/3K,GAAEC,EAAG+pU,GAAK/pU,GAAEzD,EAAIshL,GAAI6D,GAAK1hL,GAAEonB,EAAI0iT,GAAIxlR,GAAKtkD,GAAEA,EAAI83K,GAC3E,OAAO,SAASn7K,IACd,MAAO,IAAM2rT,WAAW1mT,KAAKm5B,MAAM8iJ,GAAKksJ,GAAKptU,KAAM2rT,WAAW1mT,KAAKm5B,MAAM+uS,GAAKpoJ,GAAK/kL,KAAM2rT,WAAW1mT,KAAKm5B,MAAM+8I,GAAKxzH,GAAK3nD,MAI7H,SAASqtU,qBAAqBjqU,GAAGC,IAC/B,IAAoBd,GAAhBxD,GAAI,GAAII,GAAI,GAChB,IAAKoD,MAAKa,GACJb,MAAKc,GACPtE,GAAEwD,IAAK+qU,eAAelqU,GAAEb,IAAIc,GAAEd,KAE9BpD,GAAEoD,IAAKa,GAAEb,IAGb,IAAKA,MAAKc,GACFd,MAAKa,KACTjE,GAAEoD,IAAKc,GAAEd,KAGb,OAAO,SAASvC,IACd,IAAKuC,MAAKxD,GAAGI,GAAEoD,IAAKxD,GAAEwD,IAAGvC,IACzB,OAAOb,IAIX,SAASouU,qBAAqBnqU,GAAGC,IAE/B,OADAD,IAAKA,GAAGC,IAAKA,GACN,SAASrD,IACd,OAAOoD,IAAK,EAAIpD,IAAKqD,GAAIrD,IAI7B,SAASwtU,qBAAqBpqU,GAAGC,IAC/B,IAAkFuoQ,GAAI6hE,GAAI7pL,GAAtFx9I,GAAKsnU,GAAuB5wJ,UAAY6wJ,GAAuB7wJ,UAAY,EAAe/9K,IAAK,EAAGgC,GAAI,GAAIgmE,GAAI,GAElH,IADA3jE,IAAQ,GAAIC,IAAQ,IACZuoQ,GAAK8hE,GAAuB1jO,KAAK5mG,OAAQqqU,GAAKE,GAAuB3jO,KAAK3mG,OAC3EugJ,GAAK6pL,GAAGvqU,OAASkD,KACpBw9I,GAAKvgJ,GAAE9B,MAAM6E,GAAIw9I,IACb7iJ,GAAEhC,IAAIgC,GAAEhC,KAAM6kJ,GAAS7iJ,KAAIhC,IAAK6kJ,KAEjCgoH,GAAKA,GAAG,OAAS6hE,GAAKA,GAAG,IACxB1sU,GAAEhC,IAAIgC,GAAEhC,KAAM0uU,GAAS1sU,KAAIhC,IAAK0uU,IAEpC1sU,KAAIhC,IAAK,KACTgoE,GAAE/iE,KAAK,CACLjF,EAAGA,GACH0O,EAAG8/T,qBAAqB3hE,GAAI6hE,OAGhCrnU,GAAKunU,GAAuB7wJ,UAM9B,OAJI12K,GAAK/C,GAAEjC,SACTwiJ,GAAKvgJ,GAAE9B,MAAM6E,IACTrF,GAAEhC,IAAIgC,GAAEhC,KAAM6kJ,GAAS7iJ,KAAIhC,IAAK6kJ,IAE/B7iJ,GAAEK,OAAS,EAAI2lE,GAAE,IAAM1jE,GAAI0jE,GAAE,GAAGt5D,EAAG,SAASzN,IACjD,OAAOqD,GAAErD,IAAK,KACX,WACH,OAAOqD,KACJA,GAAI0jE,GAAE3lE,OAAQ,SAASpB,IAC1B,IAAK,IAAWT,GAAPR,GAAI,EAAMA,GAAIsE,KAAKtE,GAAGgC,IAAGxB,GAAIwnE,GAAEhoE,KAAIA,GAAKQ,GAAEkO,EAAEzN,IACrD,OAAOe,GAAEoD,KAAK,MA5OlBiK,GAAGiyM,KAAKutH,SAAW,SAASxrU,IAC1B,OAAOgM,GAAGiyM,KAAKqsH,UAAUjqU,UAAUL,KAErCgM,GAAGiyM,KAAK16I,SAAW,SAASzkE,GAAQo0B,GAAIK,GAAI2lB,GAAIwrB,IAC9C,IAA4C+mQ,GAAxCpgU,GAAIy5T,eAAgBvyT,GAAIwyT,eAC5B,GAAI0G,GAAS1zT,UAAU/Y,OAQrB,OAPAqM,GAAIm/T,wBACJj4T,GAAIk4T,wBACW,IAAXgB,KACF/mQ,GAAKnxC,GACL2lB,GAAKhmB,GACLK,GAAKL,GAAK,GAELqwC,SAASzkE,IAElB,SAASykE,SAAS18D,IAChB,IAAI7J,GAA2CowG,GAAI0D,GAAIn0G,GAAGwB,GAAGutU,GAAKC,GAAKC,GAAKC,GAArEriQ,GAAKmgP,WAAWt+S,IAAIo+D,GAAKkgP,WAAWp3S,IAC3C,GAAU,MAAN2gB,GACFw4S,GAAMx4S,GAAIy4S,GAAMp4S,GAAIq4S,GAAM1yR,GAAI2yR,GAAMnnQ,QAKpC,GAHAknQ,GAAMC,KAAQH,GAAMC,GAAMzjU,KAC1BklG,GAAK,GAAI0D,GAAK,GACd3yG,GAAI0I,GAAK7H,OACLysU,GAAQ,IAAK9uU,GAAI,EAAGA,GAAIwB,KAAKxB,IAC/BK,GAAI6J,GAAKlK,KACH0O,EAAIqgU,KAAKA,GAAM1uU,GAAEqO,GACnBrO,GAAEuV,EAAIo5T,KAAKA,GAAM3uU,GAAEuV,GACnBvV,GAAEqO,EAAIugU,KAAKA,GAAM5uU,GAAEqO,GACnBrO,GAAEuV,EAAIs5T,KAAKA,GAAM7uU,GAAEuV,GACvB66F,GAAGxrG,KAAK5E,GAAEqO,GACVylG,GAAGlvG,KAAK5E,GAAEuV,QACL,IAAK5V,GAAI,EAAGA,GAAIwB,KAAKxB,GAAG,CAC7B,IAAI6+T,IAAMhyP,GAAGxsE,GAAI6J,GAAKlK,IAAIA,IAAI8+T,IAAMhyP,GAAGzsE,GAAGL,IACtC6+T,GAAKkQ,KAAKA,GAAMlQ,IAChBC,GAAKkQ,KAAKA,GAAMlQ,IAChBD,GAAKoQ,KAAKA,GAAMpQ,IAChBC,GAAKoQ,KAAKA,GAAMpQ,IACpBruN,GAAGxrG,KAAK45T,IACR1qN,GAAGlvG,KAAK65T,IAGZ,IAAIjmS,GAAKo2S,GAAMF,GAAK/iT,GAAKkjT,GAAMF,GAE/B,SAASnrU,OAAOrC,GAAGnB,GAAGqO,GAAGkH,GAAG2gB,GAAIK,GAAI2lB,GAAIwrB,IACtC,IAAIn6D,MAAMc,MAAMd,MAAMgI,IACtB,GAAIpU,GAAE4kE,KAAM,CACV,IAAI+oQ,GAAK3tU,GAAEkN,EAAG0gU,GAAK5tU,GAAEoU,EACrB,GAAU,MAANu5T,GACF,GAAI33T,GAAI23T,GAAKzgU,IAAK8I,GAAI43T,GAAKx5T,IAAK,IAC9By5T,YAAY7tU,GAAGnB,GAAGqO,GAAGkH,GAAG2gB,GAAIK,GAAI2lB,GAAIwrB,QAC/B,CACL,IAAIunQ,GAAS9tU,GAAEgE,MACfhE,GAAEkN,EAAIlN,GAAEoU,EAAIpU,GAAEgE,MAAQ,KACtB6pU,YAAY7tU,GAAG8tU,GAAQH,GAAIC,GAAI74S,GAAIK,GAAI2lB,GAAIwrB,IAC3CsnQ,YAAY7tU,GAAGnB,GAAGqO,GAAGkH,GAAG2gB,GAAIK,GAAI2lB,GAAIwrB,SAGtCvmE,GAAEkN,EAAIA,GAAGlN,GAAEoU,EAAIA,GAAGpU,GAAEgE,MAAQnF,QAG9BgvU,YAAY7tU,GAAGnB,GAAGqO,GAAGkH,GAAG2gB,GAAIK,GAAI2lB,GAAIwrB,IAGxC,SAASsnQ,YAAY7tU,GAAGnB,GAAGqO,GAAGkH,GAAG2gB,GAAIK,GAAI2lB,GAAIwrB,IAC3C,IAAIhC,GAAiB,IAAXxvC,GAAKgmB,IAAUypB,GAAiB,IAAXpvC,GAAKmxC,IAAU9zD,GAAQvF,IAAKq3D,GAAImrB,GAAQt7E,IAAKowD,GAAIhmE,GAAIkxF,IAAS,EAAIj9E,GACjGzS,GAAE4kE,MAAO,EAELnyD,GAAOsiB,GAAKwvC,GAASxpB,GAAKwpB,GAC1BmrB,GAAOt6D,GAAKovC,GAAS+B,GAAK/B,GAC9BniE,OAHArC,GAAIA,GAAE6jE,MAAMrlE,MAAOwB,GAAE6jE,MAAMrlE,IAmDxB,CACLomE,MAAM,EACNf,MAAO,GACP7/D,MAAO,KACPkJ,EAAG,KACHkH,EAAG,OArDSvV,GAAGqO,GAAGkH,GAAG2gB,GAAIK,GAAI2lB,GAAIwrB,IA3B7BlvC,GAAK7M,GAAIkjT,GAAMF,GAAMn2S,GAASo2S,GAAMF,GAAM/iT,GA6B9C,IAAIzsB,GA8CC,CACL6mE,MAAM,EACNf,MAAO,GACP7/D,MAAO,KACPkJ,EAAG,KACHkH,EAAG,KAlDH,IAAW,SAASvV,IAClBwD,OAAOtE,GAAMc,IAAIwsE,GAAGxsE,KAAKL,KAAK8sE,GAAGzsE,GAAGL,IAAI+uU,GAAKC,GAAKC,GAAKC,KAEzD,MAAa,SAAS9mS,IACpB2lS,sBAAsB3lS,GAAG7oC,GAAMwvU,GAAKC,GAAKC,GAAKC,KAEhD,KAAY,SAAS1pU,IACnB,OAAOwoU,qBAAqBzuU,GAAMiG,GAAM,GAAIA,GAAM,GAAIupU,GAAKC,GAAKC,GAAKC,MAGvE,GADAlvU,IAAK,EACK,MAANu2B,GAAY,CACd,OAASv2B,GAAIwB,IACXqC,OAAOtE,GAAM2K,GAAKlK,IAAIywG,GAAGzwG,IAAIm0G,GAAGn0G,IAAI+uU,GAAKC,GAAKC,GAAKC,MAEnDlvU,QACGkK,GAAKqsD,QAAQh3D,GAAK0c,KAEzB,OADAw0F,GAAK0D,GAAKjqG,GAAO7J,GAAI,KACdd,GAmBT,OAjBAqnE,SAASl4D,EAAI,SAASg3D,IACpB,OAAOtqD,UAAU/Y,QAAUqM,GAAIg3D,GAAGkB,UAAYl4D,IAEhDk4D,SAAShxD,EAAI,SAAS8vD,IACpB,OAAOtqD,UAAU/Y,QAAUuT,GAAI8vD,GAAGkB,UAAYhxD,IAEhDgxD,SAASgB,OAAS,SAASlC,IACzB,OAAKtqD,UAAU/Y,QACN,MAALqjE,GAAWnvC,GAAKK,GAAK2lB,GAAKwrB,GAAK,MAAWxxC,IAAMmvC,GAAE,GAAG,GAAI9uC,IAAM8uC,GAAE,GAAG,GAAInpB,IAAMmpB,GAAE,GAAG,GACvFqC,IAAMrC,GAAE,GAAG,IACJkB,UAH6B,MAANrwC,GAAa,KAAO,CAAE,CAAEA,GAAIK,IAAM,CAAE2lB,GAAIwrB,MAKxEnB,SAAS7iD,KAAO,SAAS2hD,IACvB,OAAKtqD,UAAU/Y,QACN,MAALqjE,GAAWnvC,GAAKK,GAAK2lB,GAAKwrB,GAAK,MAAWxxC,GAAKK,GAAK,EAAG2lB,IAAMmpB,GAAE,GAAIqC,IAAMrC,GAAE,IACxEkB,UAF6B,MAANrwC,GAAa,KAAO,CAAEgmB,GAAKhmB,GAAIwxC,GAAKnxC,KAI7DgwC,UA8DTv3D,GAAGkgU,eAAiBpB,kBASpB9+T,GAAGmgU,kBAAoBlB,qBAoBvBj/T,GAAGogU,kBAAoBjB,qBAOvBn/T,GAAGqgU,kBAAoBjB,qBAiCvB,IAAIE,GAAyB,8CAA+CC,GAAyB,IAAI3mS,OAAO0mS,GAAuBpnQ,OAAQ,KAE/I,SAASgnQ,eAAelqU,GAAGC,IAEzB,IADA,IAAiC8jC,GAA7BpoC,GAAIqP,GAAGsgU,cAActtU,SAChBrC,IAAK,KAAOooC,GAAI/4B,GAAGsgU,cAAc3vU,IAAGqE,GAAGC,OAChD,OAAO8jC,GAOT,SAASwnS,oBAAoBvrU,GAAGC,IAC9B,IAAqFtE,GAAjF0O,GAAI,GAAItO,GAAI,GAAIuG,GAAKtC,GAAEhC,OAAQmhP,GAAKl/O,GAAEjC,OAAQwR,GAAK3N,KAAKoC,IAAIjE,GAAEhC,OAAQiC,GAAEjC,QAC5E,IAAKrC,GAAI,EAAGA,GAAI6T,KAAM7T,GAAG0O,GAAEzJ,KAAKspU,eAAelqU,GAAErE,IAAIsE,GAAEtE,MACvD,KAAMA,GAAI2G,KAAM3G,GAAGI,GAAEJ,IAAKqE,GAAErE,IAC5B,KAAMA,GAAIwjP,KAAMxjP,GAAGI,GAAEJ,IAAKsE,GAAEtE,IAC5B,OAAO,SAASiB,IACd,IAAKjB,GAAI,EAAGA,GAAI6T,KAAM7T,GAAGI,GAAEJ,IAAK0O,GAAE1O,IAAGiB,IACrC,OAAOb,IAlBXiP,GAAGmnM,YAAc+3H,eAMjBl/T,GAAGsgU,cAAgB,CAAE,SAAStrU,GAAGC,IAC/B,IAAIrD,UAAWqD,GACf,OAAc,WAANrD,GAAiB6rT,GAAaz1P,IAAI/yD,GAAEmW,gBAAkB,oBAAoBpV,KAAKf,IAAK6pU,kBAAoBM,qBAAuBnqU,cAAa4mT,SAAWijB,kBAAoBvrU,MAAMkL,QAAQxJ,IAAKsrU,oBAA4B,WAAN3uU,IAAkB2M,MAAMtJ,IAAKgqU,qBAAuBE,sBAAsBnqU,GAAGC,MAE3S+K,GAAGwgU,iBAAmBD,oBAWtB,IAAIE,gBAAkB,WACpB,OAAO1xB,aAEL2xB,GAAU1gU,GAAGgsC,IAAI,CACnB8xF,OAAQ2iM,gBACRrtQ,KA+DF,SAASutQ,aAAapyT,IACpB,OAAO,SAAS3c,IACd,OAAOiF,KAAKq5B,IAAIt+B,GAAG2c,MAhErBqrD,KAAM,WACJ,OAAOgnQ,cAETC,MAAO,WACL,OAAOC,eAETnhR,IAAK,WACH,OAAOohR,aAETp8Q,IAAK,WACH,OAAOq8Q,aAETh6T,OAAQ,WACN,OAAOi6T,gBAETC,QA6DF,SAASC,gBAAgBnsU,GAAGtC,IAC1B,IAAIC,GACAoZ,UAAU/Y,OAAS,IAAGN,GAAI,KAC1BqZ,UAAU/Y,OAAQL,GAAID,GAAIwlT,GAAIrhT,KAAK40O,KAAK,EAAIz2O,KAASA,GAAI,EAAGrC,GAAID,GAAI,GACxE,OAAO,SAASd,IACd,OAAO,EAAIoD,GAAI6B,KAAKq5B,IAAI,GAAI,GAAKt+B,IAAKiF,KAAK8oD,KAAK/tD,GAAIe,IAAKulT,GAAIxlT,MAjE/D0uU,KAoEF,SAASC,aAAa1uU,IACfA,KAAGA,GAAI,SACZ,OAAO,SAASf,IACd,OAAOA,GAAIA,KAAMe,GAAI,GAAKf,GAAIe,MAtEhC2uU,OAAQ,WACN,OAAOC,kBAGPC,GAAexhU,GAAGgsC,IAAI,CACxB,GAAM+iQ,YACNj+R,IAAK2wT,gBACL,SAAUC,gBACV,SAAU,SAAS3oS,IACjB,OAAO2oS,gBAAgBD,gBAAgB1oS,QAS3C,SAAS4oS,cAAc5oS,IACrB,OAAO,SAASnnC,IACd,OAAOA,IAAK,EAAI,EAAIA,IAAK,EAAI,EAAImnC,GAAEnnC,KAGvC,SAAS6vU,gBAAgB1oS,IACvB,OAAO,SAASnnC,IACd,OAAO,EAAImnC,GAAE,EAAInnC,KAGrB,SAAS8vU,gBAAgB3oS,IACvB,OAAO,SAASnnC,IACd,MAAO,IAAMA,GAAI,GAAKmnC,GAAE,EAAInnC,IAAK,EAAImnC,GAAE,EAAI,EAAInnC,MAGnD,SAASgvU,aAAahvU,IACpB,OAAOA,GAAIA,GAEb,SAASkvU,cAAclvU,IACrB,OAAOA,GAAIA,GAAIA,GAEjB,SAASgwU,mBAAmBhwU,IAC1B,GAAIA,IAAK,EAAG,OAAO,EACnB,GAAIA,IAAK,EAAG,OAAO,EACnB,IAAI44B,GAAK54B,GAAIA,GAAG8/F,GAAKlnE,GAAK54B,GAC1B,OAAO,GAAKA,GAAI,GAAK8/F,GAAK,GAAK9/F,GAAI44B,IAAMknE,GAAK,KAOhD,SAASqvO,YAAYnvU,IACnB,OAAO,EAAIiF,KAAK6oD,IAAI9tD,GAAI05O,IAE1B,SAAS01F,YAAYpvU,IACnB,OAAOiF,KAAKq5B,IAAI,EAAG,IAAMt+B,GAAI,IAE/B,SAASqvU,eAAervU,IACtB,OAAO,EAAIiF,KAAK6E,KAAK,EAAI9J,GAAIA,IAgB/B,SAAS2vU,eAAe3vU,IACtB,OAAOA,GAAI,EAAI,KAAO,OAASA,GAAIA,GAAIA,GAAI,EAAI,KAAO,QAAUA,IAAK,IAAM,MAAQA,GAAI,IAAMA,GAAI,IAAM,KAAO,QAAUA,IAAK,KAAO,MAAQA,GAAI,MAAQ,QAAUA,IAAK,MAAQ,MAAQA,GAAI,QAkC7L,SAASiwU,oBAAoB7sU,GAAGC,IAE9B,OADAA,IAAKD,GACE,SAASpD,IACd,OAAOiF,KAAKm5B,MAAMh7B,GAAIC,GAAIrD,KAa9B,SAASkwU,aAAahxU,IACpB,IAAIw8C,GAAK,CAAEx8C,GAAEkE,EAAGlE,GAAEmE,GAAKm9F,GAAK,CAAEthG,GAAEC,EAAGD,GAAEE,GAAK+wU,GAAKC,sBAAsB10R,IAAK20R,GAAKC,gBAAgB50R,GAAI8kD,IAAK0xE,GAAKk+J,sBA0B/G,SAASG,oBAAoBntU,GAAGC,GAAGd,IAGjC,OAFAa,GAAE,IAAMb,GAAIc,GAAE,GACdD,GAAE,IAAMb,GAAIc,GAAE,GACPD,GA7B4HmtU,CAAoB/vO,GAAI9kD,IAAK20R,MAAQ,EACpK30R,GAAG,GAAK8kD,GAAG,GAAKA,GAAG,GAAK9kD,GAAG,KAC7BA,GAAG,KAAO,EACVA,GAAG,KAAO,EACVy0R,KAAO,EACPE,KAAO,GAETttU,KAAKgS,QAAUo7T,GAAKlrU,KAAKivM,MAAMx4J,GAAG,GAAIA,GAAG,IAAMz2C,KAAKivM,OAAO1zG,GAAG,GAAIA,GAAG,KAAOimN,GAC5E1jT,KAAKywN,UAAY,CAAEt0N,GAAEyd,EAAGzd,GAAEioC,GAC1BpkC,KAAKogE,MAAQ,CAAEgtQ,GAAIj+J,IACnBnvK,KAAKytU,KAAOt+J,GAAKjtK,KAAKivM,MAAMm8H,GAAIn+J,IAAMu0I,GAAa,EAKrD,SAAS6pB,gBAAgBltU,GAAGC,IAC1B,OAAOD,GAAE,GAAKC,GAAE,GAAKD,GAAE,GAAKC,GAAE,GAEhC,SAAS+sU,sBAAsBhtU,IAC7B,IAAIb,GAAI0C,KAAK6E,KAAKwmU,gBAAgBltU,GAAGA,KAKrC,OAJIb,KACFa,GAAE,IAAMb,GACRa,GAAE,IAAMb,IAEHA,GAzIT6L,GAAG2qB,KAAO,SAAS15B,IACjB,IAAIN,GAAIM,GAAKmD,QAAQ,KAAMxC,GAAIjB,IAAK,EAAIM,GAAKkC,MAAM,EAAGxC,IAAKM,GAAMH,GAAIH,IAAK,EAAIM,GAAKkC,MAAMxC,GAAI,GAAK,KAGlG,OAFAiB,GAAI8uU,GAAQnvU,IAAIK,KAAM6uU,gBAEfkB,eADP7wU,GAAI0wU,GAAajwU,IAAIT,KAAMi+S,aACJn9S,GAAEyB,MAAM,KAAM64S,GAAcr7S,KAAKkb,UAAW,OA4DrE/L,GAAGqiU,eACH,SAASC,kBAAkBttU,GAAGC,IAC5BD,GAAIgL,GAAG08S,IAAI1nT,IACXC,GAAI+K,GAAG08S,IAAIznT,IACX,IAAI68C,GAAK98C,GAAEmrD,EAAGw0H,GAAK3/K,GAAEjE,EAAG8kR,GAAK7gR,GAAEpE,EAAG2xU,GAAKttU,GAAEkrD,EAAIrO,GAAIqnF,GAAKlkI,GAAElE,EAAI4jL,GAAI9gC,GAAK5+I,GAAErE,EAAIilR,GACvEt3Q,MAAM46H,MAAKA,GAAK,EAAGw7C,GAAKp2K,MAAMo2K,IAAM1/K,GAAElE,EAAI4jL,IAC1Cp2K,MAAMgkU,KAAKA,GAAK,EAAGzwR,GAAKvzC,MAAMuzC,IAAM78C,GAAEkrD,EAAIrO,IAAaywR,GAAK,IAAKA,IAAM,IAAcA,IAAM,MAAKA,IAAM,KAC1G,OAAO,SAAS3wU,IACd,OAAOgrT,WAAW9qQ,GAAKywR,GAAK3wU,GAAG+iL,GAAKx7C,GAAKvnI,GAAGikR,GAAKhiI,GAAKjiJ,IAAK,KAG/DoO,GAAGwiU,eACH,SAASC,kBAAkBztU,GAAGC,IAC5BD,GAAIgL,GAAG1G,IAAItE,IACXC,GAAI+K,GAAG1G,IAAIrE,IACX,IAAI68C,GAAK98C,GAAEmrD,EAAGo1F,GAAKvgJ,GAAErC,EAAGkjR,GAAK7gR,GAAEpE,EAAG2xU,GAAKttU,GAAEkrD,EAAIrO,GAAI0jG,GAAKvgJ,GAAEtC,EAAI4iJ,GAAI1B,GAAK5+I,GAAErE,EAAIilR,GACvEt3Q,MAAMi3I,MAAKA,GAAK,EAAGD,GAAKh3I,MAAMg3I,IAAMtgJ,GAAEtC,EAAI4iJ,IAC1Ch3I,MAAMgkU,KAAKA,GAAK,EAAGzwR,GAAKvzC,MAAMuzC,IAAM78C,GAAEkrD,EAAIrO,IAAaywR,GAAK,IAAKA,IAAM,IAAcA,IAAM,MAAKA,IAAM,KAC1G,OAAO,SAAS3wU,IACd,OAAOsqT,WAAWpqQ,GAAKywR,GAAK3wU,GAAG2jJ,GAAKC,GAAK5jJ,GAAGikR,GAAKhiI,GAAKjiJ,IAAK,KAG/DoO,GAAG0iU,eACH,SAASC,kBAAkB3tU,GAAGC,IAC5BD,GAAIgL,GAAG88S,IAAI9nT,IACXC,GAAI+K,GAAG88S,IAAI7nT,IACX,IAAI4gR,GAAK7gR,GAAEpE,EAAGgyU,GAAK5tU,GAAEA,EAAG+3K,GAAK/3K,GAAEC,EAAG4+I,GAAK5+I,GAAErE,EAAIilR,GAAIxhG,GAAKp/K,GAAED,EAAI4tU,GAAIrpR,GAAKtkD,GAAEA,EAAI83K,GAC3E,OAAO,SAASn7K,IACd,OAAOorT,WAAWnnC,GAAKhiI,GAAKjiJ,GAAGgxU,GAAKvuJ,GAAKziL,GAAGm7K,GAAKxzH,GAAK3nD,IAAK,KAG/DoO,GAAG6iU,iBAAmBhB,oBAOtB7hU,GAAG4c,UAAY,SAASmhQ,IACtB,IAAI1hQ,GAAI+vR,GAAY9uR,gBAAgBtd,GAAGjO,GAAG07D,OAAOlwC,IAAK,KACtD,OAAQvd,GAAG4c,UAAY,SAASmhQ,IAC9B,GAAc,MAAVA,GAAgB,CAClB1hQ,GAAEq2E,aAAa,YAAaqrL,IAC5B,IAAInsR,GAAIyqB,GAAEO,UAAU8tI,QAAQC,cAE9B,OAAO,IAAIm3K,aAAalwU,GAAIA,GAAE00B,OAASw8S,MACtC/kD,KAeL+jD,aAAatvU,UAAU8a,SAAW,WAChC,MAAO,aAAe3Y,KAAKywN,UAAY,WAAazwN,KAAKgS,OAAS,UAAYhS,KAAKytU,KAAO,UAAYztU,KAAKogE,MAAQ,KAkBrH,IAAI+tQ,GAAuB,CACzB9tU,EAAG,EACHC,EAAG,EACHlE,EAAG,EACHC,EAAG,EACHud,EAAG,EACHwqB,EAAG,GAGL,SAASgqS,2BAA2BpwU,IAClC,OAAOA,GAAEK,OAASL,GAAE0D,MAAQ,IAAM,GAmDpC,SAAS2sU,wBAAwBhuU,GAAGC,IAClC,IAAItC,GAAI,GAAIgmE,GAAI,GAOhB,OANA3jE,GAAIgL,GAAG4c,UAAU5nB,IAAIC,GAAI+K,GAAG4c,UAAU3nB,IAnDxC,SAASguU,wBAAwBC,GAAIC,GAAIxwU,GAAGgmE,IAC1C,GAAIuqQ,GAAG,KAAOC,GAAG,IAAMD,GAAG,KAAOC,GAAG,GAAI,CACtC,IAAIxyU,GAAIgC,GAAEiD,KAAK,aAAc,KAAM,IAAK,KAAM,KAC9C+iE,GAAE/iE,KAAK,CACLjF,EAAGA,GAAI,EACP0O,EAAG8/T,qBAAqB+D,GAAG,GAAIC,GAAG,KACjC,CACDxyU,EAAGA,GAAI,EACP0O,EAAG8/T,qBAAqB+D,GAAG,GAAIC,GAAG,WAE3BA,GAAG,IAAMA,GAAG,KACrBxwU,GAAEiD,KAAK,aAAeutU,GAAK,KAyC7BF,CAAwBjuU,GAAEowN,UAAWnwN,GAAEmwN,UAAWzyN,GAAGgmE,IAtCvD,SAASyqQ,qBAAqBC,GAAI9uI,GAAI5hM,GAAGgmE,IACnC0qQ,KAAO9uI,IACL8uI,GAAK9uI,GAAK,IAAKA,IAAM,IAAcA,GAAK8uI,GAAK,MAAKA,IAAM,KAC5D1qQ,GAAE/iE,KAAK,CACLjF,EAAGgC,GAAEiD,KAAKmtU,2BAA2BpwU,IAAK,UAAW,KAAM,KAAO,EAClE0M,EAAG8/T,qBAAqBkE,GAAI9uI,OAErBA,IACT5hM,GAAEiD,KAAKmtU,2BAA2BpwU,IAAK,UAAY4hM,GAAK,KA+B1D6uI,CAAqBpuU,GAAE2R,OAAQ1R,GAAE0R,OAAQhU,GAAGgmE,IA5B9C,SAAS2qQ,mBAAmBn8N,GAAIC,GAAIz0G,GAAGgmE,IACjCwuC,KAAOC,GACTzuC,GAAE/iE,KAAK,CACLjF,EAAGgC,GAAEiD,KAAKmtU,2BAA2BpwU,IAAK,SAAU,KAAM,KAAO,EACjE0M,EAAG8/T,qBAAqBh4N,GAAIC,MAErBA,IACTz0G,GAAEiD,KAAKmtU,2BAA2BpwU,IAAK,SAAWy0G,GAAK,KAsBzDk8N,CAAmBtuU,GAAEotU,KAAMntU,GAAEmtU,KAAMzvU,GAAGgmE,IAnBxC,SAAS4qQ,oBAAoBC,GAAIC,GAAI9wU,GAAGgmE,IACtC,GAAI6qQ,GAAG,KAAOC,GAAG,IAAMD,GAAG,KAAOC,GAAG,GAAI,CACtC,IAAI9yU,GAAIgC,GAAEiD,KAAKmtU,2BAA2BpwU,IAAK,SAAU,KAAM,IAAK,KAAM,KAC1EgmE,GAAE/iE,KAAK,CACLjF,EAAGA,GAAI,EACP0O,EAAG8/T,qBAAqBqE,GAAG,GAAIC,GAAG,KACjC,CACD9yU,EAAGA,GAAI,EACP0O,EAAG8/T,qBAAqBqE,GAAG,GAAIC,GAAG,WAEjB,IAAVA,GAAG,IAAsB,IAAVA,GAAG,IAC3B9wU,GAAEiD,KAAKmtU,2BAA2BpwU,IAAK,SAAW8wU,GAAK,KASzDF,CAAoBvuU,GAAE+/D,MAAO9/D,GAAE8/D,MAAOpiE,GAAGgmE,IACzC3jE,GAAIC,GAAI,KACD,SAASrD,IAEd,IADA,IAA0BT,GAAtBR,IAAK,EAAGwB,GAAIwmE,GAAE3lE,SACTrC,GAAIwB,IAAGQ,IAAGxB,GAAIwnE,GAAEhoE,KAAIA,GAAKQ,GAAEkO,EAAEzN,IACtC,OAAOe,GAAEoD,KAAK,KAGlB,SAAS2tU,uBAAuB1uU,GAAGC,IAEjC,OADAA,IAAKA,IAAKD,IAAKA,KAAM,EAAIC,GAClB,SAASoK,IACd,OAAQA,GAAIrK,IAAKC,IAGrB,SAAS0uU,sBAAsB3uU,GAAGC,IAEhC,OADAA,IAAKA,IAAKD,IAAKA,KAAM,EAAIC,GAClB,SAASoK,IACd,OAAOxI,KAAKqC,IAAI,EAAGrC,KAAKoC,IAAI,GAAIoG,GAAIrK,IAAKC,MAW7C,SAAS2uU,qBAAqBppQ,IAE5B,IADA,IAAIjmD,GAAQimD,GAAKtC,OAAQzjD,GAAM+lD,GAAK18C,OAAQ+lT,GAsB9C,SAASC,oCAAoC9uU,GAAGC,IAC9C,GAAID,KAAMC,GAAG,OAAOD,GACpB,IAAI+uU,GAASC,0BAA0BhvU,IAAIivU,GAASD,0BAA0B/uU,IAAIivU,GAAQH,GAAO1tU,MAAO8tU,GAAQF,GAAO5tU,MAAO+tU,GAAa,KAC3I,KAAOF,KAAUC,IACfC,GAAaF,GACbA,GAAQH,GAAO1tU,MACf8tU,GAAQF,GAAO5tU,MAEjB,OAAO+tU,GA9B2CN,CAAoCvvT,GAAOE,IAAM3hB,GAAS,CAAEyhB,IACvGA,KAAUsvT,IACftvT,GAAQA,GAAM2E,OACdpmB,GAAO8C,KAAK2e,IAGd,IADA,IAAIpgB,GAAIrB,GAAOE,OACRyhB,KAAQovT,IACb/wU,GAAO2O,OAAOtN,GAAG,EAAGsgB,IACpBA,GAAMA,GAAIyE,OAEZ,OAAOpmB,GAET,SAASkxU,0BAA0BxrT,IAEjC,IADA,IAAI6rT,GAAY,GAAInrT,GAASV,GAAKU,OACjB,MAAVA,IACLmrT,GAAUzuU,KAAK4iB,IACfA,GAAOU,GACPA,GAASA,GAAOA,OAGlB,OADAmrT,GAAUzuU,KAAK4iB,IACR6rT,GAuVT,SAASC,yBAAyBtzU,IAChCA,GAAEuzU,OAAS,EAEb,SAASC,uBAAuBxzU,IAC9BA,GAAEuzU,QAAS,EAEb,SAASE,yBAAyBzzU,IAChCA,GAAEuzU,OAAS,EACXvzU,GAAE8V,GAAK9V,GAAEqO,EAAGrO,GAAE+V,GAAK/V,GAAEuV,EAEvB,SAASm+T,wBAAwB1zU,IAC/BA,GAAEuzU,QAAS,EA9cbvkU,GAAG2kU,qBAAuB3B,wBA+E1BhjU,GAAG2zC,OAAS,GACZ3zC,GAAG2zC,OAAOixR,OAAS,WACjB,OAAO,SAAS1qQ,IAEd,IADA,IAAIoyC,GAAQ,GAAI37G,IAAK,EAAGwB,GAAI+nE,GAAMlnE,SACzBrC,GAAIwB,IAAGm6G,GAAM12G,KAAKguU,qBAAqB1pQ,GAAMvpE,MACtD,OAAO27G,KAoCXtsG,GAAG2zC,OAAOkxR,MAAQ,WAChB,IAAgBC,GAAQ1gR,GAAQ99B,GAAQn0B,GAAgB4yU,GAAYC,GAAeC,GAA/EJ,GAAQ,GAA+BvgT,GAAU,EACrD,SAASu1M,WACP,IAAkF1lO,GAAGkL,GAAG4nB,GAAIt2B,GAAGmD,GAA3F49S,GAAY,GAAIwzB,GAAY,GAAI9iU,GAAapC,GAAGqI,MAAMlW,IAAIgzU,GAAgB,GAI9E,IAHAL,GAAS,GACT1gR,GAAS,GACTjwD,GAAI,EAAGxD,IAAK,IACHA,GAAIwB,IAAG,CAEd,IADAkN,GAAI,EAAGvL,IAAK,IACHA,GAAI3B,IACXkN,IAAKinB,GAAO31B,IAAGmD,IAEjBoxU,GAAUtvU,KAAKyJ,IACf8lU,GAAcvvU,KAAKoK,GAAGqI,MAAMlW,KAC5BgC,IAAKkL,GAgBP,IAdI0lU,IACF3iU,GAAWtK,MAAK,SAAS9C,GAAGC,IAC1B,OAAO8vU,GAAWG,GAAUlwU,IAAIkwU,GAAUjwU,QAG1C+vU,IACFG,GAAcj+Q,SAAQ,SAASl2D,GAAGL,IAChCK,GAAE8G,MAAK,SAAS9C,GAAGC,IACjB,OAAO+vU,GAAc1+S,GAAO31B,IAAGqE,IAAIsxB,GAAO31B,IAAGsE,WAInDd,IAAK+jT,GAAI5zR,GAAUnyB,IAAKgC,GACxBkL,GAAI,EAAG1O,IAAK,IACHA,GAAIwB,IAAG,CAEd,IADA80B,GAAK5nB,GAAGvL,IAAK,IACJA,GAAI3B,IAAG,CACd,IAAIs2B,GAAKrmB,GAAWzR,IAAIy0U,GAAKD,GAAc18S,IAAI30B,IAAII,GAAIoyB,GAAOmC,IAAI28S,IAAKnmQ,GAAK5/D,GAAGqhG,GAAKrhG,IAAKnL,GAAIC,GAC7Fu9S,GAAUjpR,GAAK,IAAM28S,IAAM,CACzBtwU,MAAO2zB,GACP48S,SAAUD,GACV19H,WAAYzoI,GACZ0oI,SAAUjnG,GACV/uG,MAAOuC,IAGXkwD,GAAO37B,IAAM,CACX3zB,MAAO2zB,GACPi/K,WAAYzgL,GACZ0gL,SAAUtoM,GACV1N,MAAOuzU,GAAUz8S,KAEnBppB,IAAKilB,GAGP,IADA3zB,IAAK,IACIA,GAAIwB,IAEX,IADA2B,GAAInD,GAAI,IACCmD,GAAI3B,IAAG,CACd,IAAI+lE,GAASw5O,GAAU/gT,GAAI,IAAMmD,IAAIgqB,GAAS4zR,GAAU59S,GAAI,IAAMnD,KAC9DunE,GAAOvmE,OAASmsB,GAAOnsB,QACzBmzU,GAAOlvU,KAAKsiE,GAAOvmE,MAAQmsB,GAAOnsB,MAAQ,CACxCumE,OAAQp6C,GACRA,OAAQo6C,IACN,CACFA,OAAQA,GACRp6C,OAAQA,KAKZmnT,IAAYK,SAElB,SAASA,SACPR,GAAOhtU,MAAK,SAAS9C,GAAGC,IACtB,OAAOgwU,IAAYjwU,GAAEkjE,OAAOvmE,MAAQqD,GAAE8oB,OAAOnsB,OAAS,GAAIsD,GAAEijE,OAAOvmE,MAAQsD,GAAE6oB,OAAOnsB,OAAS,MAyCjG,OAtCAkzU,GAAMv+S,OAAS,SAASjnB,IACtB,OAAK0M,UAAU/Y,QACfb,IAAKm0B,GAASjnB,KAAMinB,GAAOtzB,OAC3B8xU,GAAS1gR,GAAS,KACXygR,IAHuBv+S,IAKhCu+S,GAAMvgT,QAAU,SAASjlB,IACvB,OAAK0M,UAAU/Y,QACfsxB,GAAUjlB,GACVylU,GAAS1gR,GAAS,KACXygR,IAHuBvgT,IAKhCugT,GAAME,WAAa,SAAS1lU,IAC1B,OAAK0M,UAAU/Y,QACf+xU,GAAa1lU,GACbylU,GAAS1gR,GAAS,KACXygR,IAHuBE,IAKhCF,GAAMG,cAAgB,SAAS3lU,IAC7B,OAAK0M,UAAU/Y,QACfgyU,GAAgB3lU,GAChBylU,GAAS,KACFD,IAHuBG,IAKhCH,GAAMI,WAAa,SAAS5lU,IAC1B,OAAK0M,UAAU/Y,QACfiyU,GAAa5lU,GACTylU,IAAQQ,SACLT,IAHuBI,IAKhCJ,GAAMC,OAAS,WAEb,OADKA,IAAQjrG,WACNirG,IAETD,GAAMzgR,OAAS,WAEb,OADKA,IAAQy1K,WACNz1K,IAEFygR,IAET7kU,GAAG2zC,OAAOsiB,MAAQ,WAChB,IAA6DkG,GAAwBg2D,GAAM13D,GAAkOL,GAAWD,GAAWorQ,GAA/UtvQ,GAAQ,GAAIpxC,GAAQ7kB,GAAG0jB,SAAS,QAAS,OAAQ,OAAehP,GAAO,CAAE,EAAG,GAAkB8wT,GAAW,GAAIC,GAAeC,GAA6BC,GAAeC,GAA6BC,IAAU,GAAIC,GAAkBC,GAAgC/vO,GAAU,GAAIh4B,GAAS,IAAKhI,GAAQ,GAAIkE,GAAQ,GACzT,SAAS8rQ,QAAQxtT,IACf,OAAO,SAASohD,GAAM1yC,GAAImvC,GAAGnpB,IAC3B,GAAI0sB,GAAKzjE,QAAUqiB,GAAM,CACvB,IAAIgR,GAAKowC,GAAK8K,GAAKlsD,GAAKnZ,EAAGsd,GAAKi9C,GAAK+K,GAAKnsD,GAAKjS,EAAG0/T,GAAK/4R,GAAKhmB,GAAIg/S,GAAK18S,GAAKA,GAAK7M,GAAKA,GACpF,GAAIspT,GAAKA,GAAKjoQ,GAASkoQ,GAAI,CACzB,GAAIA,GAAKJ,GAAiB,CACxB,IAAI3xU,GAAIylE,GAAKisQ,OAASK,GACtB1tT,GAAK1R,IAAM0iB,GAAKr1B,GAChBqkB,GAAKzR,IAAM4V,GAAKxoB,GAElB,OAAO,EAET,GAAIylE,GAAKzjE,OAAS+vU,IAAMA,GAAKJ,GAAiB,CACxC3xU,GAAIylE,GAAKusQ,YAAcD,GAC3B1tT,GAAK1R,IAAM0iB,GAAKr1B,GAChBqkB,GAAKzR,IAAM4V,GAAKxoB,IAGpB,OAAQylE,GAAKisQ,QAgMjB,SAASO,SAASp1U,IAChBA,GAAE8V,GAAK9G,GAAG6kB,MAAMxlB,EAAGrO,GAAE+V,GAAK/G,GAAG6kB,MAAMte,EACnC0vD,GAAMowQ,SAER,OAjMApwQ,GAAM//B,KAAO,WACX,IAAKukC,IAAS,KAAO,KAMnB,OALA0B,GAAQ,KACRt3C,GAAMpQ,IAAI,CACRxQ,KAAM,MACNw2D,MAAOA,GAAQ,KAEV,EAET,IAAwC9B,GAAGhoE,GAAGQ,GAAGwB,GAAGf,GAAGhB,GAAGuD,GAAGkL,GAAGkH,GAA5DpU,GAAI6jE,GAAMhjE,OAAQlC,GAAIopE,GAAMlnE,OAChC,IAAKrC,GAAI,EAAGA,GAAIG,KAAKH,GAEnBgC,IADAxB,GAAI+oE,GAAMvpE,KACJunE,QAIFtnE,IAFJyO,IADAzN,GAAIT,GAAE2sB,QACAze,EAAI1M,GAAE0M,GAEAA,IADZkH,GAAI3U,GAAE2U,EAAI5T,GAAE4T,GACQA,MAElBlH,IADAzO,GAAI6pE,GAAQN,GAAUxpE,MAAOC,GAAIiG,KAAK6E,KAAK9K,KAAMwpE,GAAUzpE,KAAMC,GAEjE2V,IAAK3V,GACLgB,GAAEyN,GAAKA,IAAKlL,GAAIxB,GAAEurE,OAAStsE,GAAEssE,OAASvrE,GAAEurE,QAAUvrE,GAAEurE,OAAStsE,GAAEssE,QAAU,IACzEtsE,GAAE2U,GAAKA,GAAIpS,GACXxB,GAAE0M,GAAKA,IAAKlL,GAAI,EAAIA,IACpBxB,GAAE4T,GAAKA,GAAIpS,IAGf,IAAIA,GAAIsmE,GAAQu7B,MACd32F,GAAIqV,GAAK,GAAK,EACdnO,GAAImO,GAAK,GAAK,EACd/jB,IAAK,EACDwD,IAAG,OAASxD,GAAIwB,KAClBhB,GAAI6kE,GAAMrlE,KACR0O,IAAMA,GAAIlO,GAAEkO,GAAKlL,GACnBhD,GAAEoV,IAAMA,GAAIpV,GAAEoV,GAAKpS,GAGvB,GAAI0xU,GAGF,KAyKN,SAASS,0BAA0B1sQ,GAAMa,GAAO8qQ,IAC9C,IAAI7gQ,GAAK,EAAGC,GAAK,EAEjB,GADA/K,GAAKisQ,OAAS,GACTjsQ,GAAK7C,KAER,IADA,IAAkDhmE,GAA9CilE,GAAQ4D,GAAK5D,MAAO7jE,GAAI6jE,GAAMhjE,OAAQrC,IAAK,IACtCA,GAAIwB,IAEF,OADTpB,GAAIilE,GAAMrlE,OAEV21U,0BAA0Bv1U,GAAG0pE,GAAO8qQ,IACpC3rQ,GAAKisQ,QAAU90U,GAAE80U,OACjBnhQ,IAAM3zE,GAAE80U,OAAS90U,GAAE2zE,GACnBC,IAAM5zE,GAAE80U,OAAS90U,GAAE4zE,IAGvB,GAAI/K,GAAKzjE,MAAO,CACTyjE,GAAK7C,OACR6C,GAAKzjE,MAAMkJ,GAAKxI,KAAKF,SAAW,GAChCijE,GAAKzjE,MAAMoQ,GAAK1P,KAAKF,SAAW,IAElC,IAAIxC,GAAIsmE,GAAQ8qQ,GAAQ3rQ,GAAKzjE,MAAMrB,OACnC8kE,GAAKisQ,QAAUjsQ,GAAKusQ,YAAchyU,GAClCuwE,IAAMvwE,GAAIylE,GAAKzjE,MAAMkJ,EACrBslE,IAAMxwE,GAAIylE,GAAKzjE,MAAMoQ,EAEvBqzD,GAAK8K,GAAKA,GAAK9K,GAAKisQ,OACpBjsQ,GAAK+K,GAAKA,GAAK/K,GAAKisQ,OApMhBS,CAA0B3tQ,GAAI34D,GAAGiyM,KAAK16I,SAASvB,IAAQyE,GAAO8qQ,IAC9D50U,IAAK,IACIA,GAAIwB,KACLhB,GAAI6kE,GAAMrlE,KAAI4zU,OAClB5rQ,GAAEL,MAAM0tQ,QAAQ70U,KAKtB,IADAR,IAAK,IACIA,GAAIwB,KACXhB,GAAI6kE,GAAMrlE,KACJ4zU,OACJpzU,GAAEkO,EAAIlO,GAAE2V,GACR3V,GAAEoV,EAAIpV,GAAE4V,KAER5V,GAAEkO,IAAMlO,GAAE2V,IAAM3V,GAAE2V,GAAK3V,GAAEkO,IAAMmmU,GAC/Br0U,GAAEoV,IAAMpV,GAAE4V,IAAM5V,GAAE4V,GAAK5V,GAAEoV,IAAMi/T,IAGnC3gT,GAAMqR,KAAK,CACTjyB,KAAM,OACNw2D,MAAOA,MAGXxE,GAAMD,MAAQ,SAAS32D,IACrB,OAAK0M,UAAU/Y,QACfgjE,GAAQ32D,GACD42D,IAFuBD,IAIhCC,GAAMiE,MAAQ,SAAS76D,IACrB,OAAK0M,UAAU/Y,QACfknE,GAAQ76D,GACD42D,IAFuBiE,IAIhCjE,GAAMvhD,KAAO,SAASrV,IACpB,OAAK0M,UAAU/Y,QACf0hB,GAAOrV,GACA42D,IAFuBvhD,IAIhCuhD,GAAMwvQ,aAAe,SAASpmU,IAC5B,OAAK0M,UAAU/Y,QACfyyU,GAA4B,mBAANpmU,GAAmBA,IAAKA,GACvC42D,IAFuBwvQ,IAIhCxvQ,GAAMx6D,SAAWw6D,GAAMwvQ,aACvBxvQ,GAAM0vQ,aAAe,SAAStmU,IAC5B,OAAK0M,UAAU/Y,QACf2yU,GAA4B,mBAANtmU,GAAmBA,IAAKA,GACvC42D,IAFuB0vQ,IAIhC1vQ,GAAMuvQ,SAAW,SAASnmU,IACxB,OAAK0M,UAAU/Y,QACfwyU,IAAYnmU,GACL42D,IAFuBuvQ,IAIhCvvQ,GAAM4vQ,OAAS,SAASxmU,IACtB,OAAK0M,UAAU/Y,QACf6yU,GAAsB,mBAANxmU,GAAmBA,IAAKA,GACjC42D,IAFuB4vQ,IAIhC5vQ,GAAMswQ,eAAiB,SAASlnU,IAC9B,OAAK0M,UAAU/Y,QACf8yU,GAAkBzmU,GAAIA,GACf42D,IAFuBp/D,KAAK6E,KAAKoqU,KAI1C7vQ,GAAM+/B,QAAU,SAAS32F,IACvB,OAAK0M,UAAU/Y,QACfgjG,IAAW32F,GACJ42D,IAFuB+/B,IAIhC//B,GAAM7iD,MAAQ,SAAS/T,IACrB,OAAK0M,UAAU/Y,QACfgrE,GAAS3+D,GAAIA,GACN42D,IAFuBp/D,KAAK6E,KAAKsiE,KAI1C/H,GAAMwE,MAAQ,SAASp7D,IACrB,OAAK0M,UAAU/Y,QACfqM,IAAKA,GACDo7D,GACEp7D,GAAI,EACNo7D,GAAQp7D,IAER88D,GAAMprE,EAAI,KAAMorE,GAAMvqE,EAAIk+D,IAAKqM,GAAQ,KACvCt3C,GAAMpQ,IAAI,CACRxQ,KAAM,MACNw2D,MAAOA,GAAQ,KAGVp7D,GAAI,IACbwlB,GAAMtQ,MAAM,CACVtQ,KAAM,QACNw2D,MAAOA,GAAQp7D,KAEjB88D,GAAQukP,SAASzqP,GAAM//B,OAElB+/B,IAnBuBwE,IAqBhCxE,GAAM1hD,MAAQ,WACZ,IAAI5jB,GAAiE61U,GAAWr1U,GAAzEgB,GAAI6jE,GAAMhjE,OAAQlC,GAAIopE,GAAMlnE,OAAQyb,GAAIiG,GAAK,GAAIyrC,GAAIzrC,GAAK,GACjE,IAAK/jB,GAAI,EAAGA,GAAIwB,KAAKxB,IAClBQ,GAAI6kE,GAAMrlE,KAAImE,MAAQnE,GACvBQ,GAAE+sE,OAAS,EAEb,IAAKvtE,GAAI,EAAGA,GAAIG,KAAKH,GAEI,iBADvBQ,GAAI+oE,GAAMvpE,KACGunE,SAAoB/mE,GAAE+mE,OAASlC,GAAM7kE,GAAE+mE,SAC7B,iBAAZ/mE,GAAE2sB,SAAoB3sB,GAAE2sB,OAASk4C,GAAM7kE,GAAE2sB,WAClD3sB,GAAE+mE,OAAOgG,SACT/sE,GAAE2sB,OAAOogD,OAEb,IAAKvtE,GAAI,EAAGA,GAAIwB,KAAKxB,GACnBQ,GAAI6kE,GAAMrlE,IACN4N,MAAMpN,GAAEkO,KAAIlO,GAAEkO,EAAItF,SAAS,IAAK0U,KAChClQ,MAAMpN,GAAEoV,KAAIpV,GAAEoV,EAAIxM,SAAS,IAAKomD,KAChC5hD,MAAMpN,GAAE2V,MAAK3V,GAAE2V,GAAK3V,GAAEkO,GACtBd,MAAMpN,GAAE4V,MAAK5V,GAAE4V,GAAK5V,GAAEoV,GAG5B,GADA6zD,GAAY,GACgB,mBAAjBqrQ,GAA6B,IAAK90U,GAAI,EAAGA,GAAIG,KAAKH,GAAGypE,GAAUzpE,KAAM80U,GAAa50U,KAAK8D,KAAMulE,GAAMvpE,IAAIA,SAAS,IAAKA,GAAI,EAAGA,GAAIG,KAAKH,GAAGypE,GAAUzpE,IAAK80U,GAElK,GADAtrQ,GAAY,GACgB,mBAAjBwrQ,GAA6B,IAAKh1U,GAAI,EAAGA,GAAIG,KAAKH,GAAGwpE,GAAUxpE,KAAMg1U,GAAa90U,KAAK8D,KAAMulE,GAAMvpE,IAAIA,SAAS,IAAKA,GAAI,EAAGA,GAAIG,KAAKH,GAAGwpE,GAAUxpE,IAAKg1U,GAElK,GADAJ,GAAU,GACY,mBAAXM,GAAuB,IAAKl1U,GAAI,EAAGA,GAAIwB,KAAKxB,GAAG40U,GAAQ50U,KAAMk1U,GAAOh1U,KAAK8D,KAAMqhE,GAAMrlE,IAAIA,SAAS,IAAKA,GAAI,EAAGA,GAAIwB,KAAKxB,GAAG40U,GAAQ50U,IAAKk1U,GAClJ,SAAS9rU,SAAS1E,GAAWqf,IAC3B,IAAK8xT,GAAW,CAEd,IADAA,GAAY,IAAIjzU,MAAMpB,IACjB2B,GAAI,EAAGA,GAAI3B,KAAK2B,GACnB0yU,GAAU1yU,IAAK,GAEjB,IAAKA,GAAI,EAAGA,GAAIhD,KAAKgD,GAAG,CACtB,IAAI3C,GAAI+oE,GAAMpmE,IACd0yU,GAAUr1U,GAAE+mE,OAAOpjE,OAAOc,KAAKzE,GAAE2sB,QACjC0oT,GAAUr1U,GAAE2sB,OAAOhpB,OAAOc,KAAKzE,GAAE+mE,SAIrC,IADA,IAA8D74D,GAA1DonU,GAAaD,GAAU71U,IAAImD,IAAK,EAAGlD,GAAI61U,GAAWzzU,SAC7Cc,GAAIlD,IAAG,IAAK2N,MAAMc,GAAIonU,GAAW3yU,IAAGuB,KAAa,OAAOgK,GACjE,OAAOxI,KAAKF,SAAW+d,GAEzB,OAAOuhD,GAAMowQ,UAEfpwQ,GAAMowQ,OAAS,WACb,OAAOpwQ,GAAMwE,MAAM,KAErBxE,GAAM6G,KAAO,WACX,OAAO7G,GAAMwE,MAAM,IAErBxE,GAAMk8D,KAAO,WAEX,GADKA,KAAMA,GAAOnyH,GAAGqzH,SAASlB,OAAOqyB,OAAOuqJ,aAAa9tS,GAAG,kBAAmBqjU,0BAA0BrjU,GAAG,aAAcmlU,UAAUnlU,GAAG,gBAAiBujU,0BACnJz4T,UAAU/Y,OAAQ,OAAOm/H,GAC9Bx9H,KAAKsM,GAAG,kBAAmBwjU,0BAA0BxjU,GAAG,iBAAkByjU,yBAAyB7zU,KAAKshI,KAMnGnyH,GAAG+lB,OAAOkwC,GAAOpxC,GAAO,OA0CjC,IAAI6gT,GAA8B,GAAIE,GAA8B,EAAGG,GAAiC7pU,IA2DxG,SAASwqU,0BAA0Bp0U,GAAQ29F,IAIzC,OAHAjwF,GAAG+lB,OAAOzzB,GAAQ29F,GAAW,OAAQ,WAAY,SACjD39F,GAAO0jE,MAAQ1jE,GACfA,GAAO4nE,MAAQysQ,yBACRr0U,GAET,SAASs0U,+BAA+BpuT,GAAM2gD,IAE5C,IADA,IAAInD,GAAQ,CAAEx9C,IACiB,OAAvBA,GAAOw9C,GAAM3/D,QAEnB,GADA8iE,GAAS3gD,KACJ23E,GAAW33E,GAAK23E,YAAch+F,GAAIg+F,GAASn9F,QAE9C,IADA,IAAIb,GAAGg+F,KACEh+F,IAAK,GAAG6jE,GAAMpgE,KAAKu6F,GAASh+F,KAI3C,SAAS00U,8BAA8BruT,GAAM2gD,IAE3C,IADA,IAAInD,GAAQ,CAAEx9C,IAAQsuT,GAAS,GACA,OAAvBtuT,GAAOw9C,GAAM3/D,QAEnB,GADAywU,GAAOlxU,KAAK4iB,KACP23E,GAAW33E,GAAK23E,YAAch+F,GAAIg+F,GAASn9F,QAE9C,IADA,IAAYb,GAAGg+F,GAAXx/F,IAAK,IACAA,GAAIwB,IAAG6jE,GAAMpgE,KAAKu6F,GAASx/F,KAGxC,KAAgC,OAAxB6nB,GAAOsuT,GAAOzwU,QACpB8iE,GAAS3gD,IAGb,SAASuuT,4BAA4B/1U,IACnC,OAAOA,GAAEm/F,SAEX,SAAS62O,yBAAyBh2U,IAChC,OAAOA,GAAEW,MAEX,SAASs1U,wBAAwBjyU,GAAGC,IAClC,OAAOA,GAAEtD,MAAQqD,GAAErD,MAErB,SAASg1U,yBAAyB3wQ,IAChC,OAAOh2D,GAAGw5K,MAAMxjH,GAAMhqB,KAAI,SAAS9yB,IACjC,OAAQA,GAAOi3E,UAAY,IAAInkD,KAAI,SAASisB,IAC1C,MAAO,CACLC,OAAQh/C,GACR4E,OAAQm6C,WArGhBj4D,GAAG2zC,OAAOs8C,UAAY,WACpB,IAAIn4F,GAAOmvU,wBAAyB92O,GAAW42O,4BAA6Bp1U,GAAQq1U,yBACpF,SAAS/2O,UAAU//F,IACjB,IAAkCsoB,GAA9BiqN,GAAQ,CAAEvyO,IAAQ8lE,GAAQ,GAE9B,IADA9lE,GAAKuxK,MAAQ,EACkB,OAAvBjpJ,GAAOiqN,GAAMpsO,QAEnB,GADA2/D,GAAMpgE,KAAK4iB,KACN0uT,GAAS/2O,GAASt/F,KAAKo/F,UAAWz3E,GAAMA,GAAKipJ,UAAYtvK,GAAI+0U,GAAOl0U,QAAS,CAEhF,IADA,IAAIb,GAAG+0U,GAAQjvQ,KACN9lE,IAAK,GACZswO,GAAM7sO,KAAKqiE,GAAQivQ,GAAO/0U,KAC1B8lE,GAAM/+C,OAASV,GACfy/C,GAAMwpG,MAAQjpJ,GAAKipJ,MAAQ,EAEzB9vK,KAAO6mB,GAAK7mB,MAAQ,GACxB6mB,GAAK23E,SAAW+2O,QAEZv1U,KAAO6mB,GAAK7mB,OAASA,GAAMd,KAAKo/F,UAAWz3E,GAAMA,GAAKipJ,QAAU,UAC7DjpJ,GAAK23E,SAQhB,OALA02O,8BAA8B32U,IAAM,SAASsoB,IAC3C,IAAI0uT,GAAQhuT,GACRphB,KAASovU,GAAS1uT,GAAK23E,WAAW+2O,GAAOpvU,KAAKA,IAC9CnG,KAAUunB,GAASV,GAAKU,UAASA,GAAOvnB,OAAS6mB,GAAK7mB,UAErDqkE,GA8BT,OA5BAi6B,UAAUn4F,KAAO,SAASuH,IACxB,OAAK0M,UAAU/Y,QACf8E,GAAOuH,GACA4wF,WAFuBn4F,IAIhCm4F,UAAUE,SAAW,SAAS9wF,IAC5B,OAAK0M,UAAU/Y,QACfm9F,GAAW9wF,GACJ4wF,WAFuBE,IAIhCF,UAAUt+F,MAAQ,SAAS0N,IACzB,OAAK0M,UAAU/Y,QACfrB,GAAQ0N,GACD4wF,WAFuBt+F,IAIhCs+F,UAAUk3O,QAAU,SAASj3U,IAW3B,OAVIyB,KACFi1U,+BAA+B12U,IAAM,SAASsoB,IACxCA,GAAK23E,WAAU33E,GAAK7mB,MAAQ,MAElCk1U,8BAA8B32U,IAAM,SAASsoB,IAC3C,IAAIU,GACCV,GAAK23E,WAAU33E,GAAK7mB,OAASA,GAAMd,KAAKo/F,UAAWz3E,GAAMA,GAAKipJ,QAAU,IACzEvoJ,GAASV,GAAKU,UAAQA,GAAOvnB,OAAS6mB,GAAK7mB,WAG5CzB,IAEF+/F,WAkDTjwF,GAAG2zC,OAAO2uC,UAAY,WACpB,IAAI2N,GAAYjwF,GAAG2zC,OAAOs8C,YAAav7E,GAAO,CAAE,EAAG,GAwBnD,SAAS4tE,UAAUtxF,GAAGL,IACpB,IAAIqlE,GAAQi6B,GAAUp/F,KAAK8D,KAAM3D,GAAGL,IAEpC,OA1BF,SAASoJ,SAASye,GAAMnZ,GAAGmqB,GAAI7M,IAC7B,IAAIwzE,GAAW33E,GAAK23E,SAKpB,GAJA33E,GAAKnZ,EAAIA,GACTmZ,GAAKjS,EAAIiS,GAAKipJ,MAAQ9kJ,GACtBnE,GAAKgR,GAAKA,GACVhR,GAAKmE,GAAKA,GACNwzE,KAAah+F,GAAIg+F,GAASn9F,QAAS,CACrC,IAAYb,GAAGpB,GAAGC,GAAdL,IAAK,EAET,IADA64B,GAAKhR,GAAK7mB,MAAQ63B,GAAKhR,GAAK7mB,MAAQ,IAC3BhB,GAAIwB,IACX4H,SAAShJ,GAAIo/F,GAASx/F,IAAI0O,GAAGrO,GAAID,GAAEY,MAAQ63B,GAAI7M,IAC/Ctd,IAAKrO,IAcT+I,CAASi8D,GAAM,GAAI,EAAGthD,GAAK,GAAIA,GAAK,GAVtC,SAAS+sJ,MAAMjpJ,IACb,IAAI23E,GAAW33E,GAAK23E,SAAUn/F,GAAI,EAClC,GAAIm/F,KAAah+F,GAAIg+F,GAASn9F,QAE5B,IADA,IAAYb,GAARxB,IAAK,IACAA,GAAIwB,IAAGnB,GAAI6F,KAAKqC,IAAIlI,GAAGywK,MAAMtxE,GAASx/F,MAEjD,OAAO,EAAIK,GAI8BywK,CAAMzrG,GAAM,KAC9CA,GAOT,OALAssB,UAAU5tE,KAAO,SAASrV,IACxB,OAAK0M,UAAU/Y,QACf0hB,GAAOrV,GACAijF,WAFuB5tE,IAIzBgyT,0BAA0BpkP,UAAW2N,KAE9CjwF,GAAG2zC,OAAOyzR,IAAM,WACd,IAAIz1U,GAAQi3C,OAAQ9wC,GAAOuvU,GAA0B3/H,GAAa,EAAGC,GAAWuwG,GAAGovB,GAAW,EAC9F,SAASF,IAAIvsU,IACX,IAE2Z3G,GAFvZ/B,GAAI0I,GAAK7H,OAAQ22B,GAAS9uB,GAAKmxC,KAAI,SAASh7C,GAAGL,IACjD,OAAQgB,GAAMd,KAAKu2U,IAAKp2U,GAAGL,OACzBqE,KAA4B,mBAAf0yM,GAA4BA,GAAWr0M,MAAMsB,KAAMoX,WAAa27L,IAAaxmJ,IAA0B,mBAAbymJ,GAA0BA,GAASt0M,MAAMsB,KAAMoX,WAAa47L,IAAY3yM,GAAGtC,GAAImE,KAAKoC,IAAIpC,KAAKsR,IAAI+4C,IAAM/uD,KAAyB,mBAAbm1U,GAA0BA,GAASj0U,MAAMsB,KAAMoX,WAAau7T,KAAYtgQ,GAAKt0E,IAAKwuD,GAAK,GAAK,EAAI,GAAI+D,GAAMjlD,GAAGilD,IAAIt7B,IAASx1B,GAAI8wD,IAAO/D,GAAK/uD,GAAI60E,IAAM/hB,GAAM,EAAGnwD,GAAQkL,GAAGqI,MAAMlW,IAAIo1U,GAAO,GAevZ,OAdY,MAARzvU,IAAchD,GAAMgD,KAAKA,KAASuvU,GAA2B,SAAS12U,GAAGmD,IAC3E,OAAO61B,GAAO71B,IAAK61B,GAAOh5B,KACxB,SAASA,GAAGmD,IACd,OAAOgE,GAAK+C,GAAKlK,IAAIkK,GAAK/G,OAE5BgB,GAAMoyD,SAAQ,SAASv2D,IACrB42U,GAAK52U,IAAK,CACRkK,KAAMA,GAAKlK,IACXgB,MAAOuC,GAAIy1B,GAAOh5B,IAClB+2M,WAAY1yM,GACZ2yM,SAAU3yM,IAAKd,GAAIC,GAAI6yE,GACvBsgQ,SAAU50U,OAGP60U,GA2BT,OAzBAH,IAAIz1U,MAAQ,SAAS0kE,IACnB,OAAKtqD,UAAU/Y,QACfrB,GAAQ0kE,GACD+wQ,KAFuBz1U,IAIhCy1U,IAAItvU,KAAO,SAASu+D,IAClB,OAAKtqD,UAAU/Y,QACf8E,GAAOu+D,GACA+wQ,KAFuBtvU,IAIhCsvU,IAAI1/H,WAAa,SAASrxI,IACxB,OAAKtqD,UAAU/Y,QACf00M,GAAarxI,GACN+wQ,KAFuB1/H,IAIhC0/H,IAAIz/H,SAAW,SAAStxI,IACtB,OAAKtqD,UAAU/Y,QACf20M,GAAWtxI,GACJ+wQ,KAFuBz/H,IAIhCy/H,IAAIE,SAAW,SAASjxQ,IACtB,OAAKtqD,UAAU/Y,QACfs0U,GAAWjxQ,GACJ+wQ,KAFuBE,IAIzBF,KAET,IAAIC,GAA2B,GA0D/B,SAASG,iBAAiBx2U,IACxB,OAAOA,GAAEqO,EAEX,SAASooU,iBAAiBz2U,IACxB,OAAOA,GAAEuV,EAEX,SAASmhU,mBAAmB12U,GAAGs2B,GAAI/gB,IACjCvV,GAAEs2B,GAAKA,GACPt2B,GAAEuV,EAAIA,GAjERvG,GAAG2zC,OAAO8uL,MAAQ,WAChB,IAAI94M,GAASolR,YAAa30Q,GAAQutS,4BAA6B96T,GAAS+6T,0BAA2B92T,GAAM42T,mBAAoBroU,GAAImoU,iBAAkBjhU,GAAIkhU,iBACvJ,SAAShlG,MAAM5nO,GAAM/F,IACnB,KAAM3C,GAAI0I,GAAK7H,QAAS,OAAO6H,GAC/B,IAAIgtU,GAAShtU,GAAKmxC,KAAI,SAASh7C,GAAGL,IAChC,OAAOg5B,GAAO94B,KAAK4xO,MAAOzxO,GAAGL,OAE3BmC,GAAS+0U,GAAO77R,KAAI,SAASh7C,IAC/B,OAAOA,GAAEg7C,KAAI,SAAS93C,GAAGvD,IACvB,MAAO,CAAE0O,GAAExO,KAAK4xO,MAAOvuO,GAAGvD,IAAI4V,GAAE1V,KAAK4xO,MAAOvuO,GAAGvD,WAG/CigP,GAASx2M,GAAMvpC,KAAK4xO,MAAO3vO,GAAQgC,IACvC+yU,GAAS7nU,GAAGw0L,QAAQqzI,GAAQj3F,IAC5B99O,GAASkN,GAAGw0L,QAAQ1hM,GAAQ89O,IAC5B,IAC0Bz+O,GAAGxB,GAAGmD,GAAG3C,GAD/B+vJ,GAAUr0I,GAAOhc,KAAK4xO,MAAO3vO,GAAQgC,IACrChE,GAAI+2U,GAAO,GAAG70U,OAClB,IAAKc,GAAI,EAAGA,GAAIhD,KAAKgD,GAEnB,IADAgd,GAAIjgB,KAAK4xO,MAAOolG,GAAO,GAAG/zU,IAAI3C,GAAI+vJ,GAAQptJ,IAAIhB,GAAO,GAAGgB,IAAG,IACtDnD,GAAI,EAAGA,GAAIwB,KAAKxB,GACnBmgB,GAAIjgB,KAAK4xO,MAAOolG,GAAOl3U,IAAGmD,IAAI3C,IAAK2B,GAAOnC,GAAI,GAAGmD,IAAG,GAAIhB,GAAOnC,IAAGmD,IAAG,IAGzE,OAAO+G,GAgCT,OA9BA4nO,MAAM94M,OAAS,SAAStqB,IACtB,OAAK0M,UAAU/Y,QACf22B,GAAStqB,GACFojO,OAFuB94M,IAIhC84M,MAAMroM,MAAQ,SAAS/6B,IACrB,OAAK0M,UAAU/Y,QACfonC,GAAqB,mBAAN/6B,GAAmBA,GAAIyoU,GAAsBv2U,IAAI8N,KAAMsoU,4BAC/DllG,OAFuBroM,IAIhCqoM,MAAM51N,OAAS,SAASxN,IACtB,OAAK0M,UAAU/Y,QACf6Z,GAAsB,mBAANxN,GAAmBA,GAAI0oU,GAAuBx2U,IAAI8N,KAAMuoU,0BACjEnlG,OAFuB51N,IAIhC41N,MAAMpjO,EAAI,SAASU,IACjB,OAAKgM,UAAU/Y,QACfqM,GAAIU,GACG0iO,OAFuBpjO,IAIhCojO,MAAMl8N,EAAI,SAASxG,IACjB,OAAKgM,UAAU/Y,QACfuT,GAAIxG,GACG0iO,OAFuBl8N,IAIhCk8N,MAAM3xN,IAAM,SAAS/Q,IACnB,OAAKgM,UAAU/Y,QACf8d,GAAM/Q,GACC0iO,OAFuB3xN,IAIzB2xN,OAYT,IAAIqlG,GAAwB9nU,GAAGgsC,IAAI,CACjC,aAAc,SAASnxC,IACrB,IAAqBlK,GAAGmD,GAApB3B,GAAI0I,GAAK7H,OAAckG,GAAM2B,GAAKmxC,IAAIg8R,yBAA0BC,GAAOptU,GAAKmxC,IAAIk8R,0BAA2BpzU,GAAQkL,GAAGqI,MAAMlW,IAAG2F,MAAK,SAAS9C,GAAGC,IAClJ,OAAOiE,GAAIlE,IAAKkE,GAAIjE,OAClB8tB,GAAM,EAAGD,GAAS,EAAGqlT,GAAO,GAAIC,GAAU,GAC9C,IAAKz3U,GAAI,EAAGA,GAAIwB,KAAKxB,GACnBmD,GAAIgB,GAAMnE,IACNoyB,GAAMD,IACRC,IAAOklT,GAAKn0U,IACZq0U,GAAKvyU,KAAK9B,MAEVgvB,IAAUmlT,GAAKn0U,IACfs0U,GAAQxyU,KAAK9B,KAGjB,OAAOs0U,GAAQ9qR,UAAUzkD,OAAOsvU,KAElC7qR,QAAS,SAASziD,IAChB,OAAOmF,GAAGqI,MAAMxN,GAAK7H,QAAQsqD,WAE/B,QAAWqqR,8BAETI,GAAyB/nU,GAAGgsC,IAAI,CAClCq8R,WAAY,SAASxtU,IACnB,IAA6DlK,GAAGmD,GAAG3C,GAA/DgB,GAAI0I,GAAK7H,OAAQlC,GAAI+J,GAAK,GAAG7H,OAAQi1U,GAAO,GAAI/uU,GAAM,EAAYouB,GAAK,GAC3E,IAAKxzB,GAAI,EAAGA,GAAIhD,KAAKgD,GAAG,CACtB,IAAKnD,GAAI,EAAGQ,GAAI,EAAGR,GAAIwB,GAAGxB,KAAKQ,IAAK0J,GAAKlK,IAAGmD,IAAG,GAC3C3C,GAAI+H,KAAKA,GAAM/H,IACnB82U,GAAKryU,KAAKzE,IAEZ,IAAK2C,GAAI,EAAGA,GAAIhD,KAAKgD,GACnBwzB,GAAGxzB,KAAMoF,GAAM+uU,GAAKn0U,KAAM,EAE5B,OAAOwzB,IAETghT,OAAQ,SAASztU,IACf,IAAgDlK,GAAGmD,GAAGK,GAAGy/E,GAAI20P,GAAIC,GAAIh/S,GAAIr4B,GAAGs3U,GAAxEt2U,GAAI0I,GAAK7H,OAAQqM,GAAIxE,GAAK,GAAI/J,GAAIuO,GAAErM,OAAwCs0B,GAAK,GAErF,IADAA,GAAG,GAAKn2B,GAAIs3U,GAAK,EACZ30U,GAAI,EAAGA,GAAIhD,KAAKgD,GAAG,CACtB,IAAKnD,GAAI,EAAGijF,GAAK,EAAGjjF,GAAIwB,KAAKxB,GAAGijF,IAAM/4E,GAAKlK,IAAGmD,IAAG,GACjD,IAAKnD,GAAI,EAAG43U,GAAK,EAAG/+S,GAAKnqB,GAAEvL,IAAG,GAAKuL,GAAEvL,GAAI,GAAG,GAAInD,GAAIwB,KAAKxB,GAAG,CAC1D,IAAKwD,GAAI,EAAGq0U,IAAM3tU,GAAKlK,IAAGmD,IAAG,GAAK+G,GAAKlK,IAAGmD,GAAI,GAAG,KAAO,EAAI01B,IAAKr1B,GAAIxD,KAAKwD,GACxEq0U,KAAO3tU,GAAK1G,IAAGL,IAAG,GAAK+G,GAAK1G,IAAGL,GAAI,GAAG,IAAM01B,GAE9C++S,IAAMC,GAAK3tU,GAAKlK,IAAGmD,IAAG,GAExBwzB,GAAGxzB,IAAK3C,IAAKyiF,GAAK20P,GAAK30P,GAAKpqD,GAAK,EAC7Br4B,GAAIs3U,KAAIA,GAAKt3U,IAEnB,IAAK2C,GAAI,EAAGA,GAAIhD,KAAKgD,GAAGwzB,GAAGxzB,KAAM20U,GACjC,OAAOnhT,IAETsvI,OAAQ,SAAS/7J,IACf,IAAoDlK,GAAGmD,GAAG3C,GAAtDgB,GAAI0I,GAAK7H,OAAQlC,GAAI+J,GAAK,GAAG7H,OAAQmB,GAAI,EAAIhC,GAAYm1B,GAAK,GAClE,IAAKxzB,GAAI,EAAGA,GAAIhD,KAAKgD,GAAG,CACtB,IAAKnD,GAAI,EAAGQ,GAAI,EAAGR,GAAIwB,GAAGxB,KAAKQ,IAAK0J,GAAKlK,IAAGmD,IAAG,GAC/C,GAAI3C,GAAG,IAAKR,GAAI,EAAGA,GAAIwB,GAAGxB,KAAKkK,GAAKlK,IAAGmD,IAAG,IAAM3C,QAAQ,IAAKR,GAAI,EAAGA,GAAIwB,GAAGxB,KAAKkK,GAAKlK,IAAGmD,IAAG,GAAKK,GAElG,IAAKL,GAAI,EAAGA,GAAIhD,KAAKgD,GAAGwzB,GAAGxzB,IAAK,EAChC,OAAOwzB,IAETohT,KAAMd,4BAER,SAASD,4BAA4B9sU,IACnC,OAAOmF,GAAGqI,MAAMxN,GAAK7H,QAEvB,SAAS40U,0BAA0B/sU,IAEjC,IADA,IAAI/G,IAAK,EAAGhD,GAAI+J,GAAK,GAAG7H,OAAQs0B,GAAK,KAC5BxzB,GAAIhD,IAAGw2B,GAAGxzB,IAAK,EACxB,OAAOwzB,GAET,SAAS0gT,wBAAwB3uS,IAE/B,IADA,IAAmCllC,GAA/BxD,GAAI,EAAGmD,GAAI,EAAGI,GAAImlC,GAAM,GAAG,GAAOlnC,GAAIknC,GAAMrmC,OAC1CrC,GAAIwB,KAAKxB,IACRwD,GAAIklC,GAAM1oC,IAAG,IAAMuD,KACtBJ,GAAInD,GACJuD,GAAIC,IAGR,OAAOL,GAET,SAASo0U,yBAAyBl3U,IAChC,OAAOA,GAAEq/F,OAAOs4O,mBAAoB,GAEtC,SAASA,mBAAmBj2U,GAAG1B,IAC7B,OAAO0B,GAAI1B,GAAE,GAgDf,SAAS43U,8BAA8BvgU,GAAOshB,IAC5C,OAAOk/S,4BAA4BxgU,GAAOxR,KAAKs5B,KAAKt5B,KAAKykB,IAAIqO,GAAO32B,QAAU6D,KAAKukT,IAAM,IAE3F,SAASytB,4BAA4BxgU,GAAOlW,IAE1C,IADA,IAAIkN,IAAK,EAAGpK,IAAKoT,GAAM,GAAIvX,IAAKuX,GAAM,GAAKpT,IAAK9C,GAAG4mC,GAAI,KAC9C15B,IAAKlN,IAAG4mC,GAAE15B,IAAKvO,GAAIuO,GAAIpK,GAChC,OAAO8jC,GAET,SAAS+vS,yBAAyBn/S,IAChC,MAAO,CAAE3pB,GAAG/G,IAAI0wB,IAAS3pB,GAAG9G,IAAIywB,KA2ClC,SAASo/S,mBAAmB/zU,GAAGC,IAC7B,OAAOD,GAAErD,MAAQsD,GAAEtD,MAErB,SAASq3U,qBAAqBh0U,GAAGC,IAC/B,IAAIlE,GAAIiE,GAAEi0U,WACVj0U,GAAEi0U,WAAah0U,GACfA,GAAEi0U,WAAal0U,GACfC,GAAEg0U,WAAal4U,GACfA,GAAEm4U,WAAaj0U,GAEjB,SAASk0U,qBAAqBn0U,GAAGC,IAC/BD,GAAEi0U,WAAah0U,GACfA,GAAEi0U,WAAal0U,GAEjB,SAASo0U,yBAAyBp0U,GAAGC,IACnC,IAAIu0B,GAAKv0B,GAAEoK,EAAIrK,GAAEqK,EAAGsd,GAAK1nB,GAAEsR,EAAIvR,GAAEuR,EAAGu6P,GAAK9rQ,GAAExD,EAAIyD,GAAEzD,EACjD,MAAO,KAAOsvQ,GAAKA,GAAKt3O,GAAKA,GAAK7M,GAAKA,GAEzC,SAAS0sT,uBAAuB7wT,IAC9B,IAAMw9C,GAAQx9C,GAAK23E,YAAeh+F,GAAI6jE,GAAMhjE,QAA5C,CACA,IAAIgjE,GAA6EhhE,GAAGC,GAAGlE,GAAGJ,GAAGmD,GAAGK,GAAGhC,GAAxFknS,GAAOn9R,IAAUo9R,IAAQp9R,IAAUq9R,GAAOr9R,IAAUs9R,IAAQt9R,IAYvE,GALA85D,GAAM9O,QAAQoiR,qBACdt0U,GAAIghE,GAAM,IACR32D,GAAKrK,GAAExD,EACTwD,GAAEuR,EAAI,EACNmkT,MAAM11T,IACF7C,GAAI,KACN8C,GAAI+gE,GAAM,IACR32D,EAAIpK,GAAEzD,EACRyD,GAAEsR,EAAI,EACNmkT,MAAMz1T,IACF9C,GAAI,GAQN,IANAo3U,oBAAoBv0U,GAAGC,GADvBlE,GAAIilE,GAAM,IAEV00P,MAAM35T,IACNi4U,qBAAqBh0U,GAAGjE,IACxBiE,GAAEk0U,WAAan4U,GACfi4U,qBAAqBj4U,GAAGkE,IACxBA,GAAID,GAAEi0U,WACDt4U,GAAI,EAAGA,GAAIwB,GAAGxB,KAAK,CACtB44U,oBAAoBv0U,GAAGC,GAAGlE,GAAIilE,GAAMrlE,KACpC,IAAI64U,GAAQ,EAAG51P,GAAK,EAAG20P,GAAK,EAC5B,IAAKz0U,GAAImB,GAAEg0U,WAAYn1U,KAAMmB,GAAGnB,GAAIA,GAAEm1U,WAAYr1P,KAChD,GAAIw1P,yBAAyBt1U,GAAG/C,IAAI,CAClCy4U,GAAQ,EACR,MAGJ,GAAa,GAATA,GACF,IAAKr1U,GAAIa,GAAEk0U,WAAY/0U,KAAML,GAAEo1U,aACzBE,yBAAyBj1U,GAAGpD,IADSoD,GAAIA,GAAE+0U,WAAYX,MAM3DiB,IACE51P,GAAK20P,IAAM30P,IAAM20P,IAAMtzU,GAAEzD,EAAIwD,GAAExD,EAAG23U,qBAAqBn0U,GAAGC,GAAInB,IAASq1U,qBAAqBn0U,GAAIb,GAAGc,IACvGtE,OAEAq4U,qBAAqBh0U,GAAGjE,IACxBkE,GAAIlE,GACJ25T,MAAM35T,KAKd,IAAI2zE,IAAM20N,GAAOC,IAAQ,EAAG30N,IAAM40N,GAAOC,IAAQ,EAAG60B,GAAK,EACzD,IAAK19T,GAAI,EAAGA,GAAIwB,GAAGxB,MACjBI,GAAIilE,GAAMrlE,KACR0O,GAAKqlE,GACP3zE,GAAEwV,GAAKo+D,GACP0pP,GAAKx3T,KAAKqC,IAAIm1T,GAAIt9T,GAAES,EAAIqF,KAAK6E,KAAK3K,GAAEsO,EAAItO,GAAEsO,EAAItO,GAAEwV,EAAIxV,GAAEwV,IAExDiS,GAAKhnB,EAAI68T,GACTr4P,GAAM9O,QAAQuiR,sBA3Dd,SAAS/e,MAAMlyS,IACb6gR,GAAOxiS,KAAKoC,IAAIuf,GAAKnZ,EAAImZ,GAAKhnB,EAAG6nS,IACjCC,GAAOziS,KAAKqC,IAAIsf,GAAKnZ,EAAImZ,GAAKhnB,EAAG8nS,IACjCC,GAAO1iS,KAAKoC,IAAIuf,GAAKjS,EAAIiS,GAAKhnB,EAAG+nS,IACjCC,GAAO3iS,KAAKqC,IAAIsf,GAAKjS,EAAIiS,GAAKhnB,EAAGgoS,KAyDrC,SAAS8vC,mBAAmB9wT,IAC1BA,GAAKywT,WAAazwT,GAAK0wT,WAAa1wT,GAEtC,SAASixT,qBAAqBjxT,WACrBA,GAAKywT,kBACLzwT,GAAK0wT,WAYd,SAASK,oBAAoBv0U,GAAGC,GAAGlE,IACjC,IAAIowD,GAAKnsD,GAAExD,EAAIT,GAAES,EAAGg4B,GAAKv0B,GAAEoK,EAAIrK,GAAEqK,EAAGsd,GAAK1nB,GAAEsR,EAAIvR,GAAEuR,EACjD,GAAI46C,KAAO33B,IAAM7M,IAAK,CACpB,IAAIukC,GAAKjsD,GAAEzD,EAAIT,GAAES,EAAG+iL,GAAK/qJ,GAAKA,GAAK7M,GAAKA,GAGpCtd,GAAI,KADR8hD,IAAMA,KADND,IAAMA,MAEoB,EAAIqzH,IAAKhuK,GAAI1P,KAAK6E,KAAK7E,KAAKqC,IAAI,EAAG,EAAIgoD,IAAMC,GAAKozH,KAAOpzH,IAAMozH,IAAMpzH,GAAKD,GAAKA,MAAQ,EAAIqzH,IACrHxjL,GAAEsO,EAAIrK,GAAEqK,EAAIA,GAAImqB,GAAKjjB,GAAIoW,GACzB5rB,GAAEwV,EAAIvR,GAAEuR,EAAIlH,GAAIsd,GAAKpW,GAAIijB,QAEzBz4B,GAAEsO,EAAIrK,GAAEqK,EAAI8hD,GACZpwD,GAAEwV,EAAIvR,GAAEuR,EAuHZ,SAASmjU,yBAAyB10U,GAAGC,IACnC,OAAOD,GAAEkkB,QAAUjkB,GAAEikB,OAAS,EAAI,EAEpC,SAASywT,mBAAmBz1U,IAC1B,IAAIi8F,GAAWj8F,GAAEi8F,SACjB,OAAOA,GAASn9F,OAASm9F,GAAS,GAAKj8F,GAAEtC,EAE3C,SAASg4U,oBAAoB11U,IAC3B,IAA2B/B,GAAvBg+F,GAAWj8F,GAAEi8F,SACjB,OAAQh+F,GAAIg+F,GAASn9F,QAAUm9F,GAASh+F,GAAI,GAAK+B,GAAEtC,EAErD,SAASi4U,mBAAmBC,GAAIC,GAAI5qR,IAClC,IAAIzpB,GAASypB,IAAS4qR,GAAGp5U,EAAIm5U,GAAGn5U,GAChCo5U,GAAGh5U,GAAK2kC,GACRq0S,GAAGp3U,GAAKwsD,GACR2qR,GAAG/4U,GAAK2kC,GACRq0S,GAAGhqU,GAAKo/C,GACR4qR,GAAGj5U,GAAKquD,GAWV,SAAS6qR,uBAAuBC,GAAK/1U,GAAGg2U,IACtC,OAAOD,GAAIj1U,EAAEkkB,SAAWhlB,GAAEglB,OAAS+wT,GAAIj1U,EAAIk1U,GAgN7C,SAASC,yBAAyB3xT,IAChC,MAAO,CACLnZ,EAAGmZ,GAAKnZ,EACRkH,EAAGiS,GAAKjS,EACRijB,GAAIhR,GAAKgR,GACT7M,GAAInE,GAAKmE,IAGb,SAASytT,qBAAqB5xT,GAAM8L,IAClC,IAAIjlB,GAAImZ,GAAKnZ,EAAIilB,GAAQ,GAAI/d,GAAIiS,GAAKjS,EAAI+d,GAAQ,GAAIkF,GAAKhR,GAAKgR,GAAKlF,GAAQ,GAAKA,GAAQ,GAAI3H,GAAKnE,GAAKmE,GAAK2H,GAAQ,GAAKA,GAAQ,GASlI,OARIkF,GAAK,IACPnqB,IAAKmqB,GAAK,EACVA,GAAK,GAEH7M,GAAK,IACPpW,IAAKoW,GAAK,EACVA,GAAK,GAEA,CACLtd,EAAGA,GACHkH,EAAGA,GACHijB,GAAIA,GACJ7M,GAAIA,IAsCR,SAAS0tT,eAAersR,IACtB,IAAIzpC,GAAQypC,GAAO,GAAI8e,GAAO9e,GAAOA,GAAOhrD,OAAS,GACrD,OAAOuhB,GAAQuoD,GAAO,CAAEvoD,GAAOuoD,IAAS,CAAEA,GAAMvoD,IAElD,SAAS+1T,cAAcv1Q,IACrB,OAAOA,GAAMw1Q,YAAcx1Q,GAAMw1Q,cAAgBF,eAAet1Q,GAAM1sD,SAExE,SAASmiU,kBAAkBxsR,GAAQ31C,GAAOoiU,GAAetjI,IACvD,IAAIhyM,GAAIs1U,GAAczsR,GAAO,GAAIA,GAAO,IAAKrtD,GAAIw2M,GAAY9+L,GAAM,GAAIA,GAAM,IAC7E,OAAO,SAAShJ,IACd,OAAO1O,GAAEwE,GAAEkK,MAGf,SAASqrU,cAAc1sR,GAAQ2sR,IAC7B,IAAsEnhT,GAAlEw6G,GAAK,EAAG19H,GAAK03C,GAAOhrD,OAAS,EAAGi0B,GAAK+2B,GAAOgmF,IAAK98G,GAAK82B,GAAO13C,IAOjE,OANI4gB,GAAKD,KACPuC,GAAKw6G,GAAIA,GAAK19H,GAAIA,GAAKkjB,GACvBA,GAAKvC,GAAIA,GAAKC,GAAIA,GAAKsC,IAEzBw0B,GAAOgmF,IAAM2mM,GAAKrmU,MAAM2iB,IACxB+2B,GAAO13C,IAAMqkU,GAAKx6S,KAAKjJ,IAChB82B,GAET,SAAS4sR,kBAAkBhxS,IACzB,OAAOA,GAAO,CACZt1B,MAAO,SAASjF,IACd,OAAOxI,KAAKyN,MAAMjF,GAAIu6B,IAAQA,IAEhCzJ,KAAM,SAAS9wB,IACb,OAAOxI,KAAKs5B,KAAK9wB,GAAIu6B,IAAQA,KAE7BixS,GA/oBN7qU,GAAG2zC,OAAOm3R,UAAY,WACpB,IAAIC,IAAY,EAAMC,GAASpiS,OAAQqiS,GAASnC,yBAA0BoC,GAAStC,8BACnF,SAASkC,UAAUjwU,GAAMlK,IAEvB,IADA,IAAwIw6U,GAAsF9rU,GAA1N2oE,GAAO,GAAIr+C,GAAS9uB,GAAKmxC,IAAIg/R,GAAQr2U,MAAO0T,GAAQ4iU,GAAOp6U,KAAK8D,KAAMg1B,GAAQh5B,IAAI67N,GAAa0+G,GAAOr6U,KAAK8D,KAAM0T,GAAOshB,GAAQh5B,IAAiBwB,IAARxB,IAAK,EAAOg5B,GAAO32B,QAAQlC,GAAI07N,GAAWx5N,OAAS,EAAGmB,GAAI42U,GAAY,EAAI,EAAI54U,KAClNxB,GAAIG,KACXq6U,GAAMnjQ,GAAKr3E,IAAK,IACZ64B,GAAKgjM,GAAW77N,GAAI,IAAMw6U,GAAI9rU,EAAImtN,GAAW77N,KACjDw6U,GAAI5kU,EAAI,EAEV,GAAIzV,GAAI,EAEN,IADAH,IAAK,IACIA,GAAIwB,KACXkN,GAAIsqB,GAAOh5B,MACF0X,GAAM,IAAMhJ,IAAKgJ,GAAM,MAC9B8iU,GAAMnjQ,GAAKhoE,GAAG6tS,OAAOrhF,GAAYntN,GAAG,EAAGvO,IAAK,IACxCyV,GAAKpS,GACTg3U,GAAIv1U,KAAKiF,GAAKlK,MAIpB,OAAOq3E,GAwBT,OAtBA8iQ,UAAUn5U,MAAQ,SAAS0N,IACzB,OAAK0M,UAAU/Y,QACfg4U,GAAS3rU,GACFyrU,WAFuBE,IAIhCF,UAAUziU,MAAQ,SAAShJ,IACzB,OAAK0M,UAAU/Y,QACfi4U,GAASttB,WAAWt+S,IACbyrU,WAFuBG,IAIhCH,UAAU9iQ,KAAO,SAAS3oE,IACxB,OAAK0M,UAAU/Y,QACfk4U,GAAsB,iBAAN7rU,GAAiB,SAASgJ,IACxC,OAAOwgU,4BAA4BxgU,GAAOhJ,KACxCs+S,WAAWt+S,IACRyrU,WAJuBI,IAMhCJ,UAAUC,UAAY,SAAS1rU,IAC7B,OAAK0M,UAAU/Y,QACf+3U,KAAc1rU,GACPyrU,WAFuBC,IAIzBD,WAaT9qU,GAAG2zC,OAAOoc,KAAO,WACf,IAA8F0I,GAA1Fw3B,GAAYjwF,GAAG2zC,OAAOs8C,YAAYn4F,KAAKixU,oBAAqBzkT,GAAU,EAAG5P,GAAO,CAAE,EAAG,GACzF,SAASq7C,KAAK/+D,GAAGL,IACf,IAAIqlE,GAAQi6B,GAAUp/F,KAAK8D,KAAM3D,GAAGL,IAAIT,GAAO8lE,GAAM,GAAIvnD,GAAIiG,GAAK,GAAIyrC,GAAIzrC,GAAK,GAAIljB,GAAc,MAAVinE,GAAiB5hE,KAAK6E,KAAyB,mBAAX+8D,GAAwBA,GAAS,WAC1J,OAAOA,IAOT,GALAvoE,GAAKmP,EAAInP,GAAKqW,EAAI,EAClBsgU,8BAA8B32U,IAAM,SAASc,IAC3CA,GAAEQ,GAAKA,GAAER,GAAEW,UAEbk1U,8BAA8B32U,GAAMm5U,wBAChC/kT,GAAS,CACX,IAAIw8O,GAAKx8O,IAAWm0C,GAAS,EAAI5hE,KAAKqC,IAAI,EAAIhJ,GAAKsB,EAAIid,GAAG,EAAIve,GAAKsB,EAAI2uD,KAAM,EAC7E0mR,8BAA8B32U,IAAM,SAASc,IAC3CA,GAAEQ,GAAKsvQ,MAET+lE,8BAA8B32U,GAAMm5U,wBACpCxC,8BAA8B32U,IAAM,SAASc,IAC3CA,GAAEQ,GAAKsvQ,MAIX,OA4GJ,SAASsqE,wBAAwB5yT,GAAMnZ,GAAGkH,GAAGpS,IAC3C,IAAIg8F,GAAW33E,GAAK23E,SAIpB,GAHA33E,GAAKnZ,EAAIA,IAAKlL,GAAIqkB,GAAKnZ,EACvBmZ,GAAKjS,EAAIA,IAAKpS,GAAIqkB,GAAKjS,EACvBiS,GAAKhnB,GAAK2C,GACNg8F,GAEF,IADA,IAAIx/F,IAAK,EAAGwB,GAAIg+F,GAASn9F,SAChBrC,GAAIwB,IAAGi5U,wBAAwBj7O,GAASx/F,IAAI0O,GAAGkH,GAAGpS,IApH3Di3U,CAAwBl7U,GAAMue,GAAI,EAAG0xC,GAAI,EAAGsY,GAAS,EAAI,EAAI5hE,KAAKqC,IAAI,EAAIhJ,GAAKsB,EAAIid,GAAG,EAAIve,GAAKsB,EAAI2uD,KAC5F6V,GAiBT,OAfAjG,KAAKr7C,KAAO,SAAS2hD,IACnB,OAAKtqD,UAAU/Y,QACf0hB,GAAO2hD,GACAtG,MAFuBr7C,IAIhCq7C,KAAK0I,OAAS,SAASpC,IACrB,OAAKtqD,UAAU/Y,QACfylE,GAAc,MAALpC,IAA0B,mBAANA,GAAmBA,IAAKA,GAC9CtG,MAFuB0I,IAIhC1I,KAAKzrC,QAAU,SAAS+xC,IACtB,OAAKtqD,UAAU/Y,QACfsxB,IAAW+xC,GACJtG,MAFuBzrC,IAIzBoiT,0BAA0B32Q,KAAMkgC,KAmHzCjwF,GAAG2zC,OAAO8iB,KAAO,WACf,IAAIw5B,GAAYjwF,GAAG2zC,OAAOs8C,YAAYn4F,KAAK,MAAMnG,MAAM,MAAO05U,GAAa3B,yBAA0Bh1T,GAAO,CAAE,EAAG,GAAK42T,GAAW,KACjI,SAAS70Q,KAAKzlE,GAAGL,IACf,IAAIqlE,GAAQi6B,GAAUp/F,KAAK8D,KAAM3D,GAAGL,IAAI46U,GAAQv1Q,GAAM,GAAIw1Q,GAkB5D,SAASC,SAASF,IAChB,IAGsBG,GAHlBF,GAAQ,CACVlpJ,EAAG,KACHnyF,SAAU,CAAEo7O,KACX3jP,GAAQ,CAAE4jP,IACb,KAAgC,OAAxBE,GAAQ9jP,GAAMvxF,QACpB,IAAK,IAA+B4hE,GAA3Bk4B,GAAWu7O,GAAMv7O,SAAiBx/F,GAAI,EAAGwB,GAAIg+F,GAASn9F,OAAQrC,GAAIwB,KAAKxB,GAC9Ei3F,GAAMhyF,MAAMu6F,GAASx/F,IAAKsnE,GAAQ,CAChC5B,EAAG85B,GAASx/F,IACZuoB,OAAQwyT,GACRv7O,UAAWl4B,GAAQk4B,GAASx/F,IAAGw/F,WAAal4B,GAAM9kE,SAAW,GAC7DmvL,EAAG,KACHttL,EAAG,KACH+K,EAAG,EACHjP,EAAG,EACHC,EAAG,EACH4B,EAAG,EACHf,EAAG,KACHjB,EAAGA,KACFqE,EAAIijE,IAGX,OAAOuzQ,GAAMr7O,SAAS,GAxC4Cs7O,CAASF,IAG3E,GAFA1E,8BAA8B2E,GAAOG,WAAYH,GAAMtyT,OAAOpoB,GAAK06U,GAAMzrU,EACzE6mU,+BAA+B4E,GAAOI,YAClCN,GAAU1E,+BAA+B2E,GAAOM,cAAgB,CAClE,IAAIlnU,GAAO4mU,GAAO3mU,GAAQ2mU,GAAOzoT,GAASyoT,GAC1C3E,+BAA+B2E,IAAO,SAAS/yT,IACzCA,GAAKnZ,EAAIsF,GAAKtF,IAAGsF,GAAO6T,IACxBA,GAAKnZ,EAAIuF,GAAMvF,IAAGuF,GAAQ4T,IAC1BA,GAAKipJ,MAAQ3+I,GAAO2+I,QAAO3+I,GAAStK,OAE1C,IAAIg5B,GAAK65R,GAAW1mU,GAAMC,IAAS,EAAID,GAAKtF,EAAG0iU,GAAKrtT,GAAK,IAAM9P,GAAMvF,EAAIgsU,GAAWzmU,GAAOD,IAAQ,EAAI6sC,IAAKsyH,GAAKpvJ,GAAK,IAAMoO,GAAO2+I,OAAS,GAC5ImlK,+BAA+B2E,IAAO,SAAS/yT,IAC7CA,GAAKnZ,GAAKmZ,GAAKnZ,EAAImyC,IAAMuwR,GACzBvpT,GAAKjS,EAAIiS,GAAKipJ,MAAQqC,MAG1B,OAAO9tG,GA0BT,SAAS21Q,UAAUz3U,IACjB,IAAIi8F,GAAWj8F,GAAEi8F,SAAU27O,GAAW53U,GAAEglB,OAAOi3E,SAAU1hF,GAAIva,GAAEvD,EAAIm7U,GAAS53U,GAAEvD,EAAI,GAAK,KACvF,GAAIw/F,GAASn9F,OAAQ,EAwFzB,SAAS+4U,oBAAoB73U,IAC3B,IAAuEua,GAAnE0wC,GAAQ,EAAGzpB,GAAS,EAAGy6D,GAAWj8F,GAAEi8F,SAAUx/F,GAAIw/F,GAASn9F,OAC/D,OAASrC,IAAK,IACZ8d,GAAI0hF,GAASx/F,KACXoP,GAAKo/C,GACP1wC,GAAE3d,GAAKquD,GACPA,IAAS1wC,GAAE9b,GAAK+iC,IAAUjnB,GAAE1d,GA7F1Bg7U,CAAoB73U,IACpB,IAAI83U,IAAY77O,GAAS,GAAGpwF,EAAIowF,GAASA,GAASn9F,OAAS,GAAG+M,GAAK,EAC/D0O,IACFva,GAAE6L,EAAI0O,GAAE1O,EAAIsrU,GAAWn3U,GAAEmiE,EAAG5nD,GAAE4nD,GAC9BniE,GAAEpD,EAAIoD,GAAE6L,EAAIisU,IAEZ93U,GAAE6L,EAAIisU,QAECv9T,KACTva,GAAE6L,EAAI0O,GAAE1O,EAAIsrU,GAAWn3U,GAAEmiE,EAAG5nD,GAAE4nD,IAEhCniE,GAAEglB,OAAOopK,EAMX,SAAS2pJ,UAAU/3U,GAAGua,GAAGy7T,IACvB,GAAIz7T,GAAG,CAEL,IADA,IAAiH0wC,GAA7G+sR,GAAMh4U,GAAGi4U,GAAMj4U,GAAG+1U,GAAMx7T,GAAG29T,GAAMF,GAAIhzT,OAAOi3E,SAAS,GAAIk8O,GAAMH,GAAIp7U,EAAGw7U,GAAMH,GAAIr7U,EAAGy7U,GAAMtC,GAAIn5U,EAAG07U,GAAMJ,GAAIt7U,EACvGm5U,GAAML,oBAAoBK,IAAMiC,GAAMvC,mBAAmBuC,IAAMjC,IAAOiC,IAC3EE,GAAMzC,mBAAmByC,KACzBD,GAAMvC,oBAAoBuC,KACtBn3U,EAAId,IACRirD,GAAQ8qR,GAAIlqU,EAAIwsU,GAAML,GAAInsU,EAAIssU,GAAMhB,GAAWpB,GAAI5zQ,EAAG61Q,GAAI71Q,IAC9C,IACVwzQ,mBAAmBG,uBAAuBC,GAAK/1U,GAAGg2U,IAAWh2U,GAAGirD,IAChEktR,IAAOltR,GACPmtR,IAAOntR,IAETotR,IAAOtC,GAAIn5U,EACXu7U,IAAOH,GAAIp7U,EACX07U,IAAOJ,GAAIt7U,EACXw7U,IAAOH,GAAIr7U,EAETm5U,KAAQL,oBAAoBuC,MAC9BA,GAAIv6U,EAAIq4U,GACRkC,GAAIr7U,GAAKy7U,GAAMD,IAEbJ,KAAQvC,mBAAmByC,MAC7BA,GAAIx6U,EAAIs6U,GACRE,GAAIt7U,GAAKu7U,GAAMG,GACftC,GAAWh2U,IAGf,OAAOg2U,GAlCM+B,CAAU/3U,GAAGua,GAAGva,GAAEglB,OAAOopK,GAAKwpJ,GAAS,IAEtD,SAASF,WAAW13U,IAClBA,GAAEmiE,EAAEh3D,EAAInL,GAAE6L,EAAI7L,GAAEglB,OAAOpoB,EACvBoD,GAAEpD,GAAKoD,GAAEglB,OAAOpoB,EAgClB,SAAS+6U,SAASrzT,IAChBA,GAAKnZ,GAAKqV,GAAK,GACf8D,GAAKjS,EAAIiS,GAAKipJ,MAAQ/sJ,GAAK,GAiB7B,OAfA+hD,KAAK40Q,WAAa,SAAShsU,IACzB,OAAK0M,UAAU/Y,QACfq4U,GAAahsU,GACNo3D,MAFuB40Q,IAIhC50Q,KAAK/hD,KAAO,SAASrV,IACnB,OAAK0M,UAAU/Y,QACfs4U,GAAyB,OAAb52T,GAAOrV,IAAawsU,SAAW,KACpCp1Q,MAFuB60Q,GAAW,KAAO52T,IAIlD+hD,KAAK60Q,SAAW,SAASjsU,IACvB,OAAK0M,UAAU/Y,QACfs4U,GAAyB,OAAb52T,GAAOrV,IAAa,KAAOwsU,SAChCp1Q,MAFuB60Q,GAAW52T,GAAO,MAI3CgyT,0BAA0BjwQ,KAAMw5B,KAiCzCjwF,GAAG2zC,OAAO84R,QAAU,WAClB,IAAIx8O,GAAYjwF,GAAG2zC,OAAOs8C,YAAYn4F,KAAK,MAAMnG,MAAM,MAAO05U,GAAa3B,yBAA0Bh1T,GAAO,CAAE,EAAG,GAAK42T,IAAW,EACjI,SAASmB,QAAQz7U,GAAGL,IAClB,IAAyD+7U,GAArD12Q,GAAQi6B,GAAUp/F,KAAK8D,KAAM3D,GAAGL,IAAIT,GAAO8lE,GAAM,GAAkB32D,GAAI,EAC3EwnU,8BAA8B32U,IAAM,SAASsoB,IAC3C,IAAI23E,GAAW33E,GAAK23E,SAChBA,IAAYA,GAASn9F,QACvBwlB,GAAKnZ,EAwCb,SAASstU,mBAAmBx8O,IAC1B,OAAOA,GAASE,QAAO,SAAShxF,GAAG44D,IACjC,OAAO54D,GAAI44D,GAAM54D,IAChB,GAAK8wF,GAASn9F,OA3CF25U,CAAmBx8O,IAC5B33E,GAAKjS,EAkCb,SAASqmU,mBAAmBz8O,IAC1B,OAAO,EAAInwF,GAAG9G,IAAIi3F,IAAU,SAASl4B,IACnC,OAAOA,GAAM1xD,KApCAqmU,CAAmBz8O,MAE5B33E,GAAKnZ,EAAIqtU,GAAertU,IAAKgsU,GAAW7yT,GAAMk0T,IAAgB,EAC9Dl0T,GAAKjS,EAAI,EACTmmU,GAAel0T,OAGnB,IAAI7T,GAqCR,SAASkoU,sBAAsBr0T,IAC7B,IAAI23E,GAAW33E,GAAK23E,SACpB,OAAOA,IAAYA,GAASn9F,OAAS65U,sBAAsB18O,GAAS,IAAM33E,GAvC7Dq0T,CAAsB38U,IAAO0U,GAyC5C,SAASkoU,uBAAuBt0T,IAC9B,IAA8BrmB,GAA1Bg+F,GAAW33E,GAAK23E,SACpB,OAAOA,KAAah+F,GAAIg+F,GAASn9F,QAAU85U,uBAAuB38O,GAASh+F,GAAI,IAAMqmB,GA3CnCs0T,CAAuB58U,IAAO+2B,GAAKtiB,GAAKtF,EAAIgsU,GAAW1mU,GAAMC,IAAS,EAAGsiB,GAAKtiB,GAAMvF,EAAIgsU,GAAWzmU,GAAOD,IAAQ,EAQlK,OAPAkiU,8BAA8B32U,GAAMo7U,GAAW,SAAS9yT,IACtDA,GAAKnZ,GAAKmZ,GAAKnZ,EAAInP,GAAKmP,GAAKqV,GAAK,GAClC8D,GAAKjS,GAAKrW,GAAKqW,EAAIiS,GAAKjS,GAAKmO,GAAK,IAChC,SAAS8D,IACXA,GAAKnZ,GAAKmZ,GAAKnZ,EAAI4nB,KAAOC,GAAKD,IAAMvS,GAAK,GAC1C8D,GAAKjS,GAAK,GAAKrW,GAAKqW,EAAIiS,GAAKjS,EAAIrW,GAAKqW,EAAI,IAAMmO,GAAK,KAEhDshD,GAiBT,OAfAy2Q,QAAQpB,WAAa,SAAShsU,IAC5B,OAAK0M,UAAU/Y,QACfq4U,GAAahsU,GACNotU,SAFuBpB,IAIhCoB,QAAQ/3T,KAAO,SAASrV,IACtB,OAAK0M,UAAU/Y,QACfs4U,GAAyB,OAAb52T,GAAOrV,IACZotU,SAFuBnB,GAAW,KAAO52T,IAIlD+3T,QAAQnB,SAAW,SAASjsU,IAC1B,OAAK0M,UAAU/Y,QACfs4U,GAAyB,OAAb52T,GAAOrV,IACZotU,SAFuBnB,GAAW52T,GAAO,MAI3CgyT,0BAA0B+F,QAASx8O,KAoB5CjwF,GAAG2zC,OAAOo5R,QAAU,WAClB,IAA4IC,GAAxI/8O,GAAYjwF,GAAG2zC,OAAOs8C,YAAajgE,GAAQn5B,KAAKm5B,MAAOtb,GAAO,CAAE,EAAG,GAAK4P,GAAU,KAAMzZ,GAAMs/T,yBAA0B8C,IAAS,EAAiBp7U,GAAO,WAAYu0E,GAAQ,IAAM,EAAIvvE,KAAK6E,KAAK,IACrM,SAASq5D,MAAMo7B,GAAUh8F,IAEvB,IADA,IAAiC8jE,GAAO1E,GAApC5iE,IAAK,EAAGwB,GAAIg+F,GAASn9F,SAChBrC,GAAIwB,IACXohE,IAAQ0E,GAAQk4B,GAASx/F,KAAIgB,OAASwC,GAAI,EAAI,EAAIA,IAClD8jE,GAAM1E,KAAOh1D,MAAMg1D,KAASA,IAAQ,EAAI,EAAIA,GAGhD,SAAS25Q,SAAS10T,IAChB,IAAI23E,GAAW33E,GAAK23E,SACpB,GAAIA,IAAYA,GAASn9F,OAAQ,CAC/B,IAA8DilE,GAAwBk1Q,GAA6Jh7U,GAA/O2qH,GAAOjyG,GAAI2N,IAAOg1D,GAAM,GAAI4/P,GAAYj9O,GAASh9F,QAAgBk4T,GAAOnvT,IAAiB/G,GAAa,UAATtD,GAAmBirH,GAAKtzF,GAAc,SAAT33B,GAAkBirH,GAAKngG,GAAc,eAAT9qB,GAAqC,EAAb2mB,GAAKipJ,MAAY3kD,GAAKngG,GAAKmgG,GAAKtzF,GAAK3yB,KAAKoC,IAAI6jH,GAAKtzF,GAAIszF,GAAKngG,IAG9O,IAFAo4C,MAAMq4Q,GAAWtwN,GAAKtzF,GAAKszF,GAAKngG,GAAKnE,GAAK7mB,OAC1C67E,GAAIja,KAAO,GACHphE,GAAIi7U,GAAUp6U,QAAU,GAC9Bw6E,GAAI53E,KAAKqiE,GAAQm1Q,GAAUj7U,GAAI,IAC/Bq7E,GAAIja,MAAQ0E,GAAM1E,KACL,aAAT1hE,KAAwBs7U,GAAQE,MAAM7/P,GAAKr4E,MAAOk2T,IACpD+hB,GAAU/2U,MACVg1T,GAAO8hB,KAEP3/P,GAAIja,MAAQia,GAAIn3E,MAAMk9D,KACtBx5D,SAASyzE,GAAKr4E,GAAG2nH,IAAM,GACvB3nH,GAAI0B,KAAKoC,IAAI6jH,GAAKtzF,GAAIszF,GAAKngG,IAC3B6wD,GAAIx6E,OAASw6E,GAAIja,KAAO,EACxB83P,GAAOnvT,KAGPsxE,GAAIx6E,SACN+G,SAASyzE,GAAKr4E,GAAG2nH,IAAM,GACvBtvC,GAAIx6E,OAASw6E,GAAIja,KAAO,GAE1B48B,GAASjpC,QAAQgmR,WAGrB,SAASI,SAAS90T,IAChB,IAAI23E,GAAW33E,GAAK23E,SACpB,GAAIA,IAAYA,GAASn9F,OAAQ,CAC/B,IAAoDilE,GAAhD6kD,GAAOjyG,GAAI2N,IAAO40T,GAAYj9O,GAASh9F,QAAgBq6E,GAAM,GAGjE,IAFAzY,MAAMq4Q,GAAWtwN,GAAKtzF,GAAKszF,GAAKngG,GAAKnE,GAAK7mB,OAC1C67E,GAAIja,KAAO,EACJ0E,GAAQm1Q,GAAU/2U,OACvBm3E,GAAI53E,KAAKqiE,IACTuV,GAAIja,MAAQ0E,GAAM1E,KACH,MAAX0E,GAAMl4D,IACRhG,SAASyzE,GAAKvV,GAAMl4D,EAAI+8G,GAAKtzF,GAAKszF,GAAKngG,GAAImgG,IAAOswN,GAAUp6U,QAC5Dw6E,GAAIx6E,OAASw6E,GAAIja,KAAO,GAG5B48B,GAASjpC,QAAQomR,WAGrB,SAASD,MAAM7/P,GAAKr4E,IAElB,IADA,IAAkB3D,GAAdmB,GAAI66E,GAAIja,KAASg6Q,GAAO,EAAGC,GAAOtxU,IAAUvL,IAAK,EAAGwB,GAAIq7E,GAAIx6E,SACvDrC,GAAIwB,KACLX,GAAIg8E,GAAI78E,IAAG4iE,QACb/hE,GAAIg8U,KAAMA,GAAOh8U,IACjBA,GAAI+7U,KAAMA,GAAO/7U,KAIvB,OADA2D,IAAKA,IADLxC,IAAKA,IAEMkE,KAAKqC,IAAI/D,GAAIo4U,GAAOnnQ,GAAQzzE,GAAGA,IAAKwC,GAAIq4U,GAAOpnQ,KAAUlqE,IAEtE,SAASnC,SAASyzE,GAAKr4E,GAAG2nH,GAAMj1B,IAC9B,IAAqF12F,GAAjFR,IAAK,EAAGwB,GAAIq7E,GAAIx6E,OAAQqM,GAAIy9G,GAAKz9G,EAAGkH,GAAIu2G,GAAKv2G,EAAGrS,GAAIiB,GAAI66B,GAAMw9C,GAAIja,KAAOp+D,IAAK,EAClF,GAAIA,IAAK2nH,GAAKtzF,GAAI,CAEhB,KADIq+D,IAAS3zF,GAAI4oH,GAAKngG,MAAIzoB,GAAI4oH,GAAKngG,MAC1BhsB,GAAIwB,KACXhB,GAAIq8E,GAAI78E,KACN0O,EAAIA,GACNlO,GAAEoV,EAAIA,GACNpV,GAAEwrB,GAAKzoB,GACPmL,IAAKlO,GAAEq4B,GAAK3yB,KAAKoC,IAAI6jH,GAAKz9G,EAAIy9G,GAAKtzF,GAAKnqB,GAAGnL,GAAI87B,GAAM7+B,GAAEoiE,KAAOr/D,IAAK,GAErE/C,GAAE4O,GAAI,EACN5O,GAAEq4B,IAAMszF,GAAKz9G,EAAIy9G,GAAKtzF,GAAKnqB,GAC3By9G,GAAKv2G,GAAKrS,GACV4oH,GAAKngG,IAAMzoB,OACN,CAEL,KADI2zF,IAAS3zF,GAAI4oH,GAAKtzF,MAAIt1B,GAAI4oH,GAAKtzF,MAC1B74B,GAAIwB,KACXhB,GAAIq8E,GAAI78E,KACN0O,EAAIA,GACNlO,GAAEoV,EAAIA,GACNpV,GAAEq4B,GAAKt1B,GACPqS,IAAKpV,GAAEwrB,GAAK9lB,KAAKoC,IAAI6jH,GAAKv2G,EAAIu2G,GAAKngG,GAAKpW,GAAGrS,GAAI87B,GAAM7+B,GAAEoiE,KAAOr/D,IAAK,GAErE/C,GAAE4O,GAAI,EACN5O,GAAEwrB,IAAMmgG,GAAKv2G,EAAIu2G,GAAKngG,GAAKpW,GAC3Bu2G,GAAKz9G,GAAKnL,GACV4oH,GAAKtzF,IAAMt1B,IAGf,SAAS64U,QAAQ/7U,IACf,IAAIglE,GAAQg3Q,IAAY/8O,GAAUj/F,IAAId,GAAO8lE,GAAM,GAOnD,OANA9lE,GAAKmP,EAAInP,GAAKqW,EAAI,EACdrW,GAAKyB,OAAOzB,GAAKs5B,GAAK9U,GAAK,GAAIxkB,GAAKysB,GAAKjI,GAAK,IAASxkB,GAAKs5B,GAAKt5B,GAAKysB,GAAK,EAC3EqwT,IAAU/8O,GAAUk3O,QAAQj3U,IAChC6kE,MAAM,CAAE7kE,IAAQA,GAAKs5B,GAAKt5B,GAAKysB,GAAKzsB,GAAKyB,QACxCq7U,GAAWM,SAAWJ,UAAUh9U,IAC7B+8U,KAAQD,GAAWh3Q,IAChBA,GA0CT,OAxCA+2Q,QAAQr4T,KAAO,SAASrV,IACtB,OAAK0M,UAAU/Y,QACf0hB,GAAOrV,GACA0tU,SAFuBr4T,IAIhCq4T,QAAQzoT,QAAU,SAASjlB,IACzB,IAAK0M,UAAU/Y,OAAQ,OAAOsxB,GAC9B,SAASmpT,YAAYj1T,IACnB,IAAI9lB,GAAI2M,GAAExO,KAAKk8U,QAASv0T,GAAMA,GAAKipJ,OACnC,OAAY,MAAL/uK,GAAYy3U,yBAAyB3xT,IAAQ4xT,qBAAqB5xT,GAAmB,iBAAN9lB,GAAiB,CAAEA,GAAGA,GAAGA,GAAGA,IAAMA,IAE1H,SAASg7U,YAAYl1T,IACnB,OAAO4xT,qBAAqB5xT,GAAMnZ,IAEpC,IAAI4E,GAGJ,OAFA4G,GAAuB,OAAhByZ,GAAUjlB,IAAa8qU,yBAAiD,aAArBlmU,UAAc5E,IAAoBouU,YAAuB,WAATxpU,IAAqB5E,GAAI,CAAEA,GAAGA,GAAGA,GAAGA,IAC9IquU,aAAeA,YACRX,SAETA,QAAQ/8S,MAAQ,SAAS3wB,IACvB,OAAK0M,UAAU/Y,QACfg9B,GAAQ3wB,GAAIxI,KAAKm5B,MAAQ4Y,OAClBmkS,SAFuB/8S,IAAS4Y,QAIzCmkS,QAAQE,OAAS,SAAS5tU,IACxB,OAAK0M,UAAU/Y,QACfi6U,GAAS5tU,GACT2tU,GAAW,KACJD,SAHuBE,IAKhCF,QAAQ3mQ,MAAQ,SAAS/mE,IACvB,OAAK0M,UAAU/Y,QACfozE,GAAQ/mE,GACD0tU,SAFuB3mQ,IAIhC2mQ,QAAQl7U,KAAO,SAASwN,IACtB,OAAK0M,UAAU/Y,QACfnB,GAAOwN,GAAI,GACJ0tU,SAFuBl7U,IAIzB60U,0BAA0BqG,QAAS98O,KA2B5CjwF,GAAGrJ,OAAS,CACV8/K,OAAQ,SAASwmB,GAAG0wI,IAClB,IAAIx7U,GAAI4Z,UAAU/Y,OAGlB,OAFIb,GAAI,IAAGw7U,GAAI,GACXx7U,GAAI,IAAG8qM,GAAI,GACR,WACL,IAAI59L,GAAGkH,GAAG/U,GACV,GAGEA,IAFA6N,GAAoB,EAAhBxI,KAAKF,SAAe,GAEhB0I,IADRkH,GAAoB,EAAhB1P,KAAKF,SAAe,GACR4P,UACR/U,IAAKA,GAAI,GACnB,OAAOyrM,GAAI0wI,GAAItuU,GAAIxI,KAAK6E,MAAM,EAAI7E,KAAKykB,IAAI9pB,IAAKA,MAGpDo8U,UAAW,WACT,IAAIj3U,GAASqJ,GAAGrJ,OAAO8/K,OAAOpjL,MAAM2M,GAAI+L,WACxC,OAAO,WACL,OAAOlV,KAAK8tD,IAAIhuD,QAGpBk3U,MAAO,SAAS/8U,IACd,IAAI6F,GAASqJ,GAAGrJ,OAAOm3U,UAAUh9U,IACjC,OAAO,WACL,OAAO6F,KAAW7F,KAGtBg9U,UAAW,SAASh9U,IAClB,OAAO,WACL,IAAK,IAAI6B,GAAI,EAAGmB,GAAI,EAAGA,GAAIhD,GAAGgD,KAAKnB,IAAKkE,KAAKF,SAC7C,OAAOhE,MAIbqN,GAAG+0D,MAAQ,GAkCX,IAAI81Q,GAAwB,CAC1BvmU,MAAOyqS,YACP5+Q,KAAM4+Q,aAER,SAASg/B,oBAAoB/vR,GAAQ31C,GAAOoiU,GAAetjI,IACzD,IAAIhyM,GAAI,GAAIxE,GAAI,GAAImD,GAAI,EAAGK,GAAI0C,KAAKoC,IAAI+kD,GAAOhrD,OAAQqV,GAAMrV,QAAU,EAKvE,IAJIgrD,GAAO7pD,IAAK6pD,GAAO,KACrBA,GAASA,GAAO7qD,QAAQmqD,UACxBj1C,GAAQA,GAAMlV,QAAQmqD,aAEfxpD,IAAKK,IACZgB,GAAES,KAAK60U,GAAczsR,GAAOlqD,GAAI,GAAIkqD,GAAOlqD,MAC3CnD,GAAEiF,KAAKuxM,GAAY9+L,GAAMvU,GAAI,GAAIuU,GAAMvU,MAEzC,OAAO,SAASuL,IACd,IAAIvL,GAAIkM,GAAG6tS,OAAO7vP,GAAQ3+C,GAAG,EAAGlL,IAAK,EACrC,OAAOxD,GAAEmD,IAAGqB,GAAErB,IAAGuL,MA0DrB,SAAS2uU,sBAAsBj5Q,GAAO+oE,IACpC,OAAO99H,GAAG+lB,OAAOgvC,GAAO+oE,GAAQ,QAAS,aAAc,cAAe,SAExE,SAASmwM,oBAAoBjwR,GAAQltD,IAGnC,OAFA45U,cAAc1sR,GAAQ4sR,kBAAkBsD,yBAAyBlwR,GAAQltD,IAAG,KAC5E45U,cAAc1sR,GAAQ4sR,kBAAkBsD,yBAAyBlwR,GAAQltD,IAAG,KACrEktD,GAET,SAASkwR,yBAAyBlwR,GAAQltD,IAC/B,MAALA,KAAWA,GAAI,IACnB,IAAIynE,GAAS8xQ,eAAersR,IAAS59B,GAAOm4C,GAAO,GAAKA,GAAO,GAAI3+B,GAAO/iC,KAAKq5B,IAAI,GAAIr5B,KAAKyN,MAAMzN,KAAKykB,IAAI8E,GAAOtvB,IAAK+F,KAAKywC,OAAQ2sB,GAAMnjE,GAAIsvB,GAAOwZ,GAKrJ,OAJIq6B,IAAO,IAAKr6B,IAAQ,GAAaq6B,IAAO,IAAKr6B,IAAQ,EAAYq6B,IAAO,MAAKr6B,IAAQ,GACzF2+B,GAAO,GAAK1hE,KAAKs5B,KAAKooC,GAAO,GAAK3+B,IAAQA,GAC1C2+B,GAAO,GAAK1hE,KAAKyN,MAAMi0D,GAAO,GAAK3+B,IAAQA,GAAc,GAAPA,GAClD2+B,GAAO,GAAK3+B,GACL2+B,GAET,SAAS41Q,qBAAqBnwR,GAAQltD,IACpC,OAAOkP,GAAGqI,MAAMhV,MAAM2M,GAAIkuU,yBAAyBlwR,GAAQltD,KAE7D,SAASs9U,0BAA0BpwR,GAAQltD,GAAGojG,IAC5C,IAAI7rF,GAAQ6lU,yBAAyBlwR,GAAQltD,IAC7C,GAAIojG,GAAQ,CACV,IAAIj7E,GAAQuoS,GAAa5lN,KAAK1H,IAE9B,GADAj7E,GAAMkmC,QACW,MAAblmC,GAAM,GAAY,CACpB,IAAIw0C,GAASztD,GAAG+hT,aAAalrT,KAAKqC,IAAIiP,GAAIE,GAAM,IAAKF,GAAIE,GAAM,MAI/D,OAHK4Q,GAAM,KAAIA,GAAM,GAAK,IAAMo1T,yBAAyB5gR,GAAOsH,MAAM1sD,GAAM,MAC5E4Q,GAAM,GAAK,IACXi7E,GAASl0F,GAAGk0F,OAAOj7E,GAAMljB,KAAK,KACvB,SAAS/E,IACd,OAAOkjG,GAAOzmC,GAAOsH,MAAM/jE,KAAMy8D,GAAO2uB,QAGvCnjE,GAAM,KAAIA,GAAM,GAAK,IAiB9B,SAASq1T,+BAA+BrqU,GAAMoE,IAC5C,IAAI3V,GAAI27U,yBAAyBhmU,GAAM,IACvC,OAAOpE,MAAQsqU,GAAmC13U,KAAKsR,IAAIzV,GAAI27U,yBAAyBx3U,KAAKqC,IAAIiP,GAAIE,GAAM,IAAKF,GAAIE,GAAM,UAAoB,MAATpE,IAAgBvR,GAAqB,GAAP,MAATuR,IAnBxHqqU,CAA+Br1T,GAAM,GAAI5Q,KACzE6rF,GAASj7E,GAAMljB,KAAK,SAEpBm+F,GAAS,KAAOm6O,yBAAyBhmU,GAAM,IAAM,IAEvD,OAAOrI,GAAGk0F,OAAOA,IA9FnBl0F,GAAG+0D,MAAM+oE,OAAS,WAChB,OAEF,SAAS0wM,gBAAgBxwR,GAAQ31C,GAAO8+L,GAAarjM,IACnD,IAAII,GAAQghB,GACZ,SAASo1R,UACP,IAAIx8K,GAASjnI,KAAKoC,IAAI+kD,GAAOhrD,OAAQqV,GAAMrV,QAAU,EAAI+6U,oBAAsBvD,kBAAmBC,GAAgB3mU,GAAQ6/T,sBAAwBD,uBAGlJ,OAFAx/T,GAAS45H,GAAO9/E,GAAQ31C,GAAOoiU,GAAetjI,IAC9CjiL,GAAQ44G,GAAOz1H,GAAO21C,GAAQysR,GAAevL,gBACtCnqQ,MAET,SAASA,MAAM11D,IACb,OAAO6E,GAAO7E,IAyChB,OAvCA01D,MAAM3kD,OAAS,SAAS7J,IACtB,OAAO2e,GAAM3e,KAEfwuD,MAAM/W,OAAS,SAAS3+C,IACtB,OAAK0M,UAAU/Y,QACfgrD,GAAS3+C,GAAE2sC,IAAIpD,QACR0xQ,WAFuBt8P,IAIhC+W,MAAM1sD,MAAQ,SAAShJ,IACrB,OAAK0M,UAAU/Y,QACfqV,GAAQhJ,GACDi7S,WAFuBjyS,IAIhC0sD,MAAM05Q,WAAa,SAASpvU,IAC1B,OAAO01D,MAAM1sD,MAAMhJ,IAAG8nM,YAAY06H,sBAEpC9sQ,MAAMjxD,MAAQ,SAASzE,IACrB,OAAK0M,UAAU/Y,QACf8Q,GAAQzE,GACDi7S,WAFuBx2S,IAIhCixD,MAAMoyI,YAAc,SAAS9nM,IAC3B,OAAK0M,UAAU/Y,QACfm0M,GAAc9nM,GACPi7S,WAFuBnzG,IAIhCpyI,MAAMptD,MAAQ,SAAS7W,IACrB,OAAOq9U,qBAAqBnwR,GAAQltD,KAEtCikE,MAAMoiL,WAAa,SAASrmP,GAAGojG,IAC7B,OAAOk6O,0BAA0BpwR,GAAQltD,GAAGojG,KAE9Cn/B,MAAM41Q,KAAO,SAAS75U,IAEpB,OADAm9U,oBAAoBjwR,GAAQltD,IACrBwpT,WAETvlP,MAAM4C,KAAO,WACX,OAAO62Q,gBAAgBxwR,GAAQ31C,GAAO8+L,GAAarjM,KAE9Cw2S,UApDAk0B,CAAgB,CAAE,EAAG,GAAK,CAAE,EAAG,GAAKtP,gBAAgB,IA+F7D,IAAIqP,GAAmC,CACrC57U,EAAG,EACH0pB,EAAG,EACH3pB,EAAG,EACHlB,EAAG,EACH+c,EAAG,GAEL,SAAS8/T,yBAAyB18U,IAChC,OAAQkF,KAAKyN,MAAMzN,KAAKykB,IAAI3pB,IAASkF,KAAKywC,KAAO,KAMnDtnC,GAAG+0D,MAAMz5C,IAAM,WACb,OAEF,SAASozT,aAAa5wM,GAAQ7tG,GAAM6uE,GAAU9gD,IAC5C,SAAS1iC,IAAIjc,IACX,OAAQy/F,GAAWjoG,KAAKykB,IAAIjc,GAAI,EAAI,EAAIA,KAAMxI,KAAKykB,IAAIjc,GAAI,EAAI,GAAKA,KAAMxI,KAAKykB,IAAI2U,IAErF,SAASC,IAAI7wB,IACX,OAAOy/F,GAAWjoG,KAAKq5B,IAAID,GAAM5wB,KAAMxI,KAAKq5B,IAAID,IAAO5wB,IAEzD,SAAS01D,MAAM11D,IACb,OAAOy+H,GAAOxiH,IAAIjc,KAoDpB,OAlDA01D,MAAM3kD,OAAS,SAAS/Q,IACtB,OAAO6wB,IAAI4tG,GAAO1tH,OAAO/Q,MAE3B01D,MAAM/W,OAAS,SAAS3+C,IACtB,OAAK0M,UAAU/Y,QACf8rG,GAAWz/F,GAAE,IAAM,EACnBy+H,GAAO9/E,QAAQA,GAAS3+C,GAAE2sC,IAAIpD,SAASoD,IAAI1wB,MACpCy5C,OAHuB/W,IAKhC+W,MAAM9kC,KAAO,SAASomC,IACpB,OAAKtqD,UAAU/Y,QACfi9B,IAAQomC,GACRynE,GAAO9/E,OAAOA,GAAOhS,IAAI1wB,MAClBy5C,OAHuB9kC,IAKhC8kC,MAAM41Q,KAAO,WACX,IAAIgE,GAAQjE,cAAc1sR,GAAOhS,IAAI1wB,KAAMwjF,GAAWjoG,KAAO+3U,IAG7D,OAFA9wM,GAAO9/E,OAAO2wR,IACd3wR,GAAS2wR,GAAM3iS,IAAI9b,KACZ6kC,OAETA,MAAMptD,MAAQ,WACZ,IAAI4wD,GAAS8xQ,eAAersR,IAASr2C,GAAQ,GAAIxS,GAAIojE,GAAO,GAAIrkE,GAAIqkE,GAAO,GAAI5nE,GAAIkG,KAAKyN,MAAMgX,IAAInmB,KAAKrB,GAAI+C,KAAKs5B,KAAK7U,IAAIpnB,KAAK/B,GAAI89B,GAAO,EAAI,EAAIA,GACjJ,GAAIzxB,SAAS1K,GAAInD,IAAI,CACnB,GAAImuG,GAAU,CACZ,KAAMnuG,GAAImD,GAAGnD,KAAK,IAAK,IAAIwD,GAAI,EAAGA,GAAIhC,GAAGgC,KAAKwT,GAAM/R,KAAKs6B,IAAIv/B,IAAKwD,IAClEwT,GAAM/R,KAAKs6B,IAAIv/B,UAGf,IADAgX,GAAM/R,KAAKs6B,IAAIv/B,KACTA,KAAMmD,IAAK,IAASK,GAAIhC,GAAI,EAAGgC,GAAI,EAAGA,KAAKwT,GAAM/R,KAAKs6B,IAAIv/B,IAAKwD,IAEvE,IAAKxD,GAAI,EAAGgX,GAAMhX,IAAKwE,GAAGxE,MAC1B,IAAKmD,GAAI6T,GAAM3U,OAAQ2U,GAAM7T,GAAI,GAAKI,GAAGJ,MACzC6T,GAAQA,GAAMxU,MAAMxC,GAAGmD,IAEzB,OAAO6T,IAETotD,MAAMoiL,WAAa,SAAShlP,GAAG+hG,IAC7B,IAAKnoF,UAAU/Y,OAAQ,OAAO67U,GAC1B9iU,UAAU/Y,OAAS,EAAGkhG,GAAS26O,GAA+C,mBAAX36O,KAAuBA,GAASl0F,GAAGk0F,OAAOA,KACjH,IAAI//F,GAAI0C,KAAKqC,IAAI,EAAG+2B,GAAO99B,GAAI4iE,MAAMptD,QAAQ3U,QAC7C,OAAO,SAAShC,IACd,IAAIL,GAAIK,GAAIk/B,IAAIr5B,KAAKm5B,MAAM1U,IAAItqB,MAE/B,OADIL,GAAIs/B,GAAOA,GAAO,KAAIt/B,IAAKs/B,IACxBt/B,IAAKwD,GAAI+/F,GAAOljG,IAAK,KAGhC+jE,MAAM4C,KAAO,WACX,OAAO+2Q,aAAa5wM,GAAOnmE,OAAQ1nC,GAAM6uE,GAAU9gD,KAE9CgwR,sBAAsBj5Q,MAAO+oE,IA9D7B4wM,CAAa1uU,GAAG+0D,MAAM+oE,SAAS9/E,OAAO,CAAE,EAAG,IAAM,IAAI,EAAM,CAAE,EAAG,MAgEzE,IAAI6wR,GAAqB7uU,GAAGk0F,OAAO,OAAQ06O,GAA2B,CACpEtqU,MAAO,SAASjF,IACd,OAAQxI,KAAKs5B,MAAM9wB,KAErB8wB,KAAM,SAAS9wB,IACb,OAAQxI,KAAKyN,OAAOjF,MAwCxB,SAASyvU,gBAAgBvgU,IACvB,OAAO,SAASlP,IACd,OAAOA,GAAI,GAAKxI,KAAKq5B,KAAK7wB,GAAGkP,IAAK1X,KAAKq5B,IAAI7wB,GAAGkP,KAvClDvO,GAAG+0D,MAAM7kC,IAAM,WACb,OAEF,SAAS6+S,aAAajxM,GAAQpsF,GAAUsM,IACtC,IAAIgxR,GAAOF,gBAAgBp9R,IAAWu9R,GAAOH,gBAAgB,EAAIp9R,IACjE,SAASqjB,MAAM11D,IACb,OAAOy+H,GAAOkxM,GAAK3vU,KA6BrB,OA3BA01D,MAAM3kD,OAAS,SAAS/Q,IACtB,OAAO4vU,GAAKnxM,GAAO1tH,OAAO/Q,MAE5B01D,MAAM/W,OAAS,SAAS3+C,IACtB,OAAK0M,UAAU/Y,QACf8qI,GAAO9/E,QAAQA,GAAS3+C,GAAE2sC,IAAIpD,SAASoD,IAAIgjS,KACpCj6Q,OAFuB/W,IAIhC+W,MAAMptD,MAAQ,SAAS7W,IACrB,OAAOq9U,qBAAqBnwR,GAAQltD,KAEtCikE,MAAMoiL,WAAa,SAASrmP,GAAGojG,IAC7B,OAAOk6O,0BAA0BpwR,GAAQltD,GAAGojG,KAE9Cn/B,MAAM41Q,KAAO,SAAS75U,IACpB,OAAOikE,MAAM/W,OAAOiwR,oBAAoBjwR,GAAQltD,MAElDikE,MAAMrjB,SAAW,SAASryC,IACxB,OAAK0M,UAAU/Y,QACfg8U,GAAOF,gBAAgBp9R,GAAWryC,IAClC4vU,GAAOH,gBAAgB,EAAIp9R,IAC3BosF,GAAO9/E,OAAOA,GAAOhS,IAAIgjS,KAClBj6Q,OAJuBrjB,IAMhCqjB,MAAM4C,KAAO,WACX,OAAOo3Q,aAAajxM,GAAOnmE,OAAQjmB,GAAUsM,KAExCgwR,sBAAsBj5Q,MAAO+oE,IAlC7BixM,CAAa/uU,GAAG+0D,MAAM+oE,SAAU,EAAG,CAAE,EAAG,KAyCjD99H,GAAG+0D,MAAMr5D,KAAO,WACd,OAAOsE,GAAG+0D,MAAM7kC,MAAMwhB,SAAS,KAEjC1xC,GAAG+0D,MAAM88D,QAAU,WACjB,OAKF,SAASq9M,iBAAiBlxR,GAAQitR,IAChC,IAAIn2U,GAAOuT,GAAO8mU,GAClB,SAASp6Q,MAAM11D,IACb,OAAOgJ,KAAQvT,GAAMvD,IAAI8N,MAAoB,UAAb4rU,GAAOr5U,EAAgBkD,GAAMgK,IAAIO,GAAG2+C,GAAOpoD,KAAKyJ,KAAMywD,MAAQ,GAAKznD,GAAMrV,QAE3G,SAASs9G,MAAM/7F,GAAOqlB,IACpB,OAAO55B,GAAGqI,MAAM21C,GAAOhrD,QAAQg5C,KAAI,SAASr7C,IAC1C,OAAO4jB,GAAQqlB,GAAOjpC,MAgF1B,OA7EAokE,MAAM/W,OAAS,SAAS3+C,IACtB,IAAK0M,UAAU/Y,OAAQ,OAAOgrD,GAC9BA,GAAS,GACTlpD,GAAQ,IAAIw5S,OAEZ,IADA,IAA0B1tP,GAAtBjwD,IAAK,EAAGwB,GAAIkN,GAAErM,SACTrC,GAAIwB,IAAQ2C,GAAMkzD,IAAIpH,GAAKvhD,GAAE1O,MAAKmE,GAAMgK,IAAI8hD,GAAI5C,GAAOpoD,KAAKgrD,KACrE,OAAOmU,MAAMk2Q,GAAOr5U,GAAGyB,MAAM0hE,MAAOk2Q,GAAOj2U,IAE7C+/D,MAAM1sD,MAAQ,SAAShJ,IACrB,OAAK0M,UAAU/Y,QACfqV,GAAQhJ,GACR8vU,GAAY,EACZlE,GAAS,CACPr5U,EAAG,QACHoD,EAAG+W,WAEEgpD,OAPuB1sD,IAShC0sD,MAAMq6Q,YAAc,SAAS/vU,GAAGilB,IAC1BvY,UAAU/Y,OAAS,IAAGsxB,GAAU,GACpC,IAAI/P,GAAQlV,GAAE,GAAIy9D,GAAOz9D,GAAE,GAAIu6B,GAAOokB,GAAOhrD,OAAS,GAAKuhB,IAASA,GAAQuoD,IAAQ,EACpF,IAAMA,GAAOvoD,KAAUypC,GAAOhrD,OAAS,EAAIsxB,IAO3C,OANAjc,GAAQioG,MAAM/7F,GAAQqlB,GAAOtV,GAAU,EAAGsV,IAC1Cu1S,GAAY,EACZlE,GAAS,CACPr5U,EAAG,cACHoD,EAAG+W,WAEEgpD,OAETA,MAAMs6Q,iBAAmB,SAAShwU,GAAGilB,IAC/BvY,UAAU/Y,OAAS,IAAGsxB,GAAU,GACpC,IAAI/P,GAAQlV,GAAE,GAAIy9D,GAAOz9D,GAAE,GAAIu6B,GAAOokB,GAAOhrD,OAAS,GAAKuhB,GAAQuoD,GAAOjmE,KAAKm5B,OAAOzb,GAAQuoD,IAAQ,GACtG,IAAMA,GAAOvoD,KAAUypC,GAAOhrD,OAAS,EAAIsxB,IAAW,EAOtD,OANAjc,GAAQioG,MAAM/7F,GAAQ1d,KAAKm5B,MAAM4J,GAAOtV,GAAU,GAAKw4C,GAAOvoD,IAASypC,GAAOhrD,OAAS,EAAIsxB,IAAWsV,IAAQ,GAAIA,IAClHu1S,GAAY,EACZlE,GAAS,CACPr5U,EAAG,mBACHoD,EAAG+W,WAEEgpD,OAETA,MAAMu6Q,WAAa,SAASjwU,GAAGilB,GAASirT,IAClCxjU,UAAU/Y,OAAS,IAAGsxB,GAAU,GAChCvY,UAAU/Y,OAAS,IAAGu8U,GAAejrT,IACzC,IAAIg5B,GAAUj+C,GAAE,GAAKA,GAAE,GAAIkV,GAAQlV,GAAEi+C,GAAU,GAAIwf,GAAOz9D,GAAE,EAAIi+C,IAAU1jB,IAAQkjC,GAAOvoD,KAAUypC,GAAOhrD,OAASsxB,GAAU,EAAIirT,IAQjI,OAPAlnU,GAAQioG,MAAM/7F,GAAQqlB,GAAO21S,GAAc31S,IACvC0jB,IAASj1C,GAAMi1C,UACnB6xR,GAAYv1S,IAAQ,EAAItV,IACxB2mT,GAAS,CACPr5U,EAAG,aACHoD,EAAG+W,WAEEgpD,OAETA,MAAMy6Q,gBAAkB,SAASnwU,GAAGilB,GAASirT,IACvCxjU,UAAU/Y,OAAS,IAAGsxB,GAAU,GAChCvY,UAAU/Y,OAAS,IAAGu8U,GAAejrT,IACzC,IAAIg5B,GAAUj+C,GAAE,GAAKA,GAAE,GAAIkV,GAAQlV,GAAEi+C,GAAU,GAAIwf,GAAOz9D,GAAE,EAAIi+C,IAAU1jB,GAAO/iC,KAAKyN,OAAOw4D,GAAOvoD,KAAUypC,GAAOhrD,OAASsxB,GAAU,EAAIirT,KAQ5I,OAPAlnU,GAAQioG,MAAM/7F,GAAQ1d,KAAKm5B,OAAO8sC,GAAOvoD,IAASypC,GAAOhrD,OAASsxB,IAAWsV,IAAQ,GAAIA,IACrF0jB,IAASj1C,GAAMi1C,UACnB6xR,GAAYt4U,KAAKm5B,MAAM4J,IAAQ,EAAItV,KACnC2mT,GAAS,CACPr5U,EAAG,kBACHoD,EAAG+W,WAEEgpD,OAETA,MAAMo6Q,UAAY,WAChB,OAAOA,IAETp6Q,MAAMw1Q,YAAc,WAClB,OAAOF,eAAeY,GAAOj2U,EAAE,KAEjC+/D,MAAM4C,KAAO,WACX,OAAOu3Q,iBAAiBlxR,GAAQitR,KAE3Bl2Q,MAAM/W,OAAOA,IA5FbkxR,CAAiB,GAAI,CAC1Bt9U,EAAG,QACHoD,EAAG,CAAE,OA4FTgL,GAAG+0D,MAAMgvI,WAAa,WACpB,OAAO/jM,GAAG+0D,MAAM88D,UAAUxpH,MAAMonU,KAElCzvU,GAAG+0D,MAAMmzI,WAAa,WACpB,OAAOloM,GAAG+0D,MAAM88D,UAAUxpH,MAAMqnU,KAElC1vU,GAAG+0D,MAAM46Q,YAAc,WACrB,OAAO3vU,GAAG+0D,MAAM88D,UAAUxpH,MAAMunU,KAElC5vU,GAAG+0D,MAAM86Q,YAAc,WACrB,OAAO7vU,GAAG+0D,MAAM88D,UAAUxpH,MAAMynU,KAElC,IAAIL,GAAgB,CAAE,QAAS,SAAU,QAAS,SAAU,QAAS,QAAS,SAAU,QAAS,SAAU,SAAUzjS,IAAIqxQ,cACrHqyB,GAAgB,CAAE,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,UAAW1jS,IAAIqxQ,cACzNuyB,GAAiB,CAAE,QAAS,QAAS,QAAS,SAAU,QAAS,QAAS,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,UAAW5jS,IAAIqxQ,cACxNyyB,GAAiB,CAAE,QAAS,QAAS,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,QAAS,QAAS,SAAU,SAAU,QAAS,SAAU,SAAU,SAAU,QAAS,QAAS,SAAU,UAAW9jS,IAAIqxQ,cA0H7N,SAAS0yB,UACP,OAAO,EA1HT/vU,GAAG+0D,MAAMw4O,SAAW,WAClB,OAEF,SAASyiC,kBAAkBhyR,GAAQ31C,IACjC,IAAImkN,GACJ,SAAS8tF,UACP,IAAInmT,GAAI,EAAGwkE,GAAItwD,GAAMrV,OAErB,IADAw5N,GAAa,KACJr4N,GAAIwkE,IAAG6zJ,GAAWr4N,GAAI,GAAK6L,GAAGutS,SAASvvP,GAAQ7pD,GAAIwkE,IAC5D,OAAO5D,MAET,SAASA,MAAM11D,IACb,IAAKd,MAAMc,IAAKA,IAAI,OAAOgJ,GAAMrI,GAAG6tS,OAAOrhF,GAAYntN,KAsBzD,OApBA01D,MAAM/W,OAAS,SAAS3+C,IACtB,OAAK0M,UAAU/Y,QACfgrD,GAAS3+C,GAAE2sC,IAAImhQ,WAAW33S,OAAO43S,YAAYt1S,KAAKo1S,cAC3CoN,WAFuBt8P,IAIhC+W,MAAM1sD,MAAQ,SAAShJ,IACrB,OAAK0M,UAAU/Y,QACfqV,GAAQhJ,GACDi7S,WAFuBjyS,IAIhC0sD,MAAMk7Q,UAAY,WAChB,OAAOzjH,IAETz3J,MAAMm7Q,aAAe,SAAS3pU,IAE5B,OADAA,GAAI8B,GAAMjU,QAAQmS,KACP,EAAI,CAAEupD,IAAKA,KAAQ,CAAEvpD,GAAI,EAAIimN,GAAWjmN,GAAI,GAAKy3C,GAAO,GAAIz3C,GAAIimN,GAAWx5N,OAASw5N,GAAWjmN,IAAKy3C,GAAOA,GAAOhrD,OAAS,KAExI+hE,MAAM4C,KAAO,WACX,OAAOq4Q,kBAAkBhyR,GAAQ31C,KAE5BiyS,UAjCA01B,CAAkB,GAAI,KAmC/BhwU,GAAG+0D,MAAMo7Q,SAAW,WAClB,OAEF,SAASC,kBAAkBnpT,GAAIC,GAAI7e,IACjC,IAAI05T,GAAIpxU,GACR,SAASokE,MAAM11D,IACb,OAAOgJ,GAAMxR,KAAKqC,IAAI,EAAGrC,KAAKoC,IAAItI,GAAGkG,KAAKyN,MAAMy9T,IAAM1iU,GAAI4nB,QAE5D,SAASqzR,UAGP,OAFAynB,GAAK15T,GAAMrV,QAAUk0B,GAAKD,IAC1Bt2B,GAAI0X,GAAMrV,OAAS,EACZ+hE,MAqBT,OAnBAA,MAAM/W,OAAS,SAAS3+C,IACtB,OAAK0M,UAAU/Y,QACfi0B,IAAM5nB,GAAE,GACR6nB,IAAM7nB,GAAEA,GAAErM,OAAS,GACZsnT,WAHuB,CAAErzR,GAAIC,KAKtC6tC,MAAM1sD,MAAQ,SAAShJ,IACrB,OAAK0M,UAAU/Y,QACfqV,GAAQhJ,GACDi7S,WAFuBjyS,IAIhC0sD,MAAMm7Q,aAAe,SAAS3pU,IAG5B,MAAO,CADPA,IADAA,GAAI8B,GAAMjU,QAAQmS,KACV,EAAIupD,IAAMvpD,GAAIw7T,GAAK96S,GACf1gB,GAAI,EAAIw7T,KAEtBhtQ,MAAM4C,KAAO,WACX,OAAOy4Q,kBAAkBnpT,GAAIC,GAAI7e,KAE5BiyS,UA/BA81B,CAAkB,EAAG,EAAG,CAAE,EAAG,KAiCtCpwU,GAAG+0D,MAAMhjD,UAAY,WACnB,OAEF,SAASs+T,mBAAmBryR,GAAQ31C,IAClC,SAAS0sD,MAAM11D,IACb,GAAIA,IAAKA,GAAG,OAAOgJ,GAAMrI,GAAG6tS,OAAO7vP,GAAQ3+C,KAmB7C,OAjBA01D,MAAM/W,OAAS,SAASqY,IACtB,OAAKtqD,UAAU/Y,QACfgrD,GAASqY,GACFtB,OAFuB/W,IAIhC+W,MAAM1sD,MAAQ,SAASguD,IACrB,OAAKtqD,UAAU/Y,QACfqV,GAAQguD,GACDtB,OAFuB1sD,IAIhC0sD,MAAMm7Q,aAAe,SAAS3pU,IAE5B,OADAA,GAAI8B,GAAMjU,QAAQmS,IACX,CAAEy3C,GAAOz3C,GAAI,GAAIy3C,GAAOz3C,MAEjCwuD,MAAM4C,KAAO,WACX,OAAO04Q,mBAAmBryR,GAAQ31C,KAE7B0sD,MAvBAs7Q,CAAmB,CAAE,IAAM,CAAE,EAAG,KAyBzCrwU,GAAG+0D,MAAMv5D,SAAW,WAClB,OAEF,SAAS80U,kBAAkBtyR,IACzB,SAASxiD,SAAS6D,IAChB,OAAQA,GAiBV,OAfA7D,SAAS4U,OAAS5U,SAClBA,SAASwiD,OAASxiD,SAAS6M,MAAQ,SAAShJ,IAC1C,OAAK0M,UAAU/Y,QACfgrD,GAAS3+C,GAAE2sC,IAAIxwC,UACRA,UAFuBwiD,IAIhCxiD,SAASmM,MAAQ,SAAS7W,IACxB,OAAOq9U,qBAAqBnwR,GAAQltD,KAEtC0K,SAAS27O,WAAa,SAASrmP,GAAGojG,IAChC,OAAOk6O,0BAA0BpwR,GAAQltD,GAAGojG,KAE9C14F,SAASm8D,KAAO,WACd,OAAO24Q,kBAAkBtyR,KAEpBxiD,SArBA80U,CAAkB,CAAE,EAAG,KAuBhCtwU,GAAGud,IAAM,GAITvd,GAAGud,IAAIo/F,IAAM,WACX,IAAIirF,GAAc2oI,sBAAuB1oI,GAAc2oI,sBAAuBC,GAAeV,QAASW,GAAYC,GAAgBjpI,GAAakpI,qBAAsBjpI,GAAWkpI,mBAAoBvJ,GAAWwJ,mBAC/M,SAASn0N,MACP,IAAIrvE,GAAKz2C,KAAKqC,IAAI,GAAI0uM,GAAYv0M,MAAMsB,KAAMoX,YAAaqmF,GAAKv7F,KAAKqC,IAAI,GAAI2uM,GAAYx0M,MAAMsB,KAAMoX,YAAakzD,GAAKyoI,GAAWr0M,MAAMsB,KAAMoX,WAAau/N,GAAO5qI,GAAKinG,GAASt0M,MAAMsB,KAAMoX,WAAau/N,GAAOpqL,GAAKrqD,KAAKsR,IAAIu4F,GAAKzhC,IAAK49C,GAAK59C,GAAKyhC,GAAK,EAAI,EAE3P,GADItO,GAAK9kD,KAAIyqI,GAAK3lF,GAAIA,GAAK9kD,GAAIA,GAAKyqI,IAChC72H,IAAMi3P,GAAI,OAAO44B,cAAc3+O,GAAIyqB,KAAOvvE,GAAKyjS,cAAczjS,GAAI,EAAIuvE,IAAM,IAAM,IACrF,IAAIk7D,GAAIs2I,GAAIv1I,GAAIlwC,GAAoB3hH,GAAIK,GAAIJ,GAAIK,GAAI2lB,GAAIwrB,GAAIE,GAAIC,GAA5C2a,GAAK,EAAGC,GAAK,EAAmC34B,GAAO,GAO3E,IANI8tF,KAAO0+L,GAASj0U,MAAMsB,KAAMoX,YAAc,GAAK,KACjD+sK,GAAK43J,KAAcC,GAAiB95U,KAAK6E,KAAK4xC,GAAKA,GAAK8kD,GAAKA,KAAOs+O,GAAUr9U,MAAMsB,KAAMoX,WACrF8wG,KAAIppC,KAAO,GACZ2e,KAAI3e,GAAKglO,QAAQ3/H,GAAK1mF,GAAKv7F,KAAK8oD,IAAIipF,MACpCt7F,KAAIkmC,GAAKilO,QAAQ3/H,GAAKxrI,GAAKz2C,KAAK8oD,IAAIipF,OAEtCx2C,GAAI,CACNnrE,GAAKmrE,GAAKv7F,KAAK6oD,IAAIuf,GAAKwU,IACxBnsD,GAAK8qE,GAAKv7F,KAAK8oD,IAAIsf,GAAKwU,IACxBvsD,GAAKkrE,GAAKv7F,KAAK6oD,IAAIghD,GAAKjtB,IACxBlsD,GAAK6qE,GAAKv7F,KAAK8oD,IAAI+gD,GAAKjtB,IACxB,IAAI0hE,GAAKt+I,KAAKsR,IAAIu4F,GAAKzhC,GAAK,EAAIwU,KAAO43J,GAAI,EAAI,EAC/C,GAAI53J,IAAMu9P,gBAAgB/pT,GAAIK,GAAIJ,GAAIK,MAAQs1F,GAAKs4B,GAAI,CACrD,IAAIm+F,IAAMr0K,GAAKyhC,IAAM,EACrBz5E,GAAKmrE,GAAKv7F,KAAK6oD,IAAI4zL,IACnBhsN,GAAK8qE,GAAKv7F,KAAK8oD,IAAI2zL,IACnBpsN,GAAKK,GAAK,WAGZN,GAAKK,GAAK,EAEZ,GAAIgmB,GAAI,CACNJ,GAAKI,GAAKz2C,KAAK6oD,IAAIghD,GAAKltB,IACxB9a,GAAKprB,GAAKz2C,KAAK8oD,IAAI+gD,GAAKltB,IACxB5a,GAAKtrB,GAAKz2C,KAAK6oD,IAAIuf,GAAKuU,IACxB3a,GAAKvrB,GAAKz2C,KAAK8oD,IAAIsf,GAAKuU,IACxB,IAAI6hE,GAAKx+I,KAAKsR,IAAI82D,GAAKyhC,GAAK,EAAIltB,KAAO63J,GAAI,EAAI,EAC/C,GAAI73J,IAAMw9P,gBAAgB9jS,GAAIwrB,GAAIE,GAAIC,MAAQ,EAAIgkD,GAAKw4B,GAAI,CACzD,IAAIg+F,IAAMp0K,GAAKyhC,IAAM,EACrBxzD,GAAKI,GAAKz2C,KAAK6oD,IAAI2zL,IACnB36K,GAAKprB,GAAKz2C,KAAK8oD,IAAI0zL,IACnBz6K,GAAKC,GAAK,WAGZ3rB,GAAKwrB,GAAK,EAEZ,GAAIxX,GAAKkqL,KAAMrzD,GAAKlhL,KAAKoC,IAAIpC,KAAKsR,IAAIiqF,GAAK9kD,IAAM,GAAImjS,GAAap9U,MAAMsB,KAAMoX,aAAe,KAAM,CACjGsiT,GAAK/gR,GAAK8kD,GAAKyqB,GAAK,EAAI,EACxB,IAAIo0N,GAAMl5J,GAAIm5J,GAAMn5J,GACpB,GAAI72H,GAAKmqL,GAAG,CACV,IAAI8lG,GAAW,MAANv4Q,GAAa,CAAE1rB,GAAIwrB,IAAa,MAANxxC,GAAa,CAAED,GAAIK,IAAOoyS,yBAAyB,CAAEzyS,GAAIK,IAAM,CAAEsxC,GAAIC,IAAM,CAAE3xC,GAAIK,IAAM,CAAE2lB,GAAIwrB,KAAO3hD,GAAKkQ,GAAKkqT,GAAG,GAAI72O,GAAKhzE,GAAK6pT,GAAG,GAAIvkL,GAAK1lI,GAAKiqT,GAAG,GAAItkL,GAAKtlI,GAAK4pT,GAAG,GAAIC,GAAK,EAAIv6U,KAAK8oD,IAAI9oD,KAAK0tE,MAAMxtD,GAAK61I,GAAKtyD,GAAKuyD,KAAOh2J,KAAK6E,KAAKqb,GAAKA,GAAKujF,GAAKA,IAAMzjG,KAAK6E,KAAKkxJ,GAAKA,GAAKC,GAAKA,MAAQ,GAAIwkL,GAAKx6U,KAAK6E,KAAKy1U,GAAG,GAAKA,GAAG,GAAKA,GAAG,GAAKA,GAAG,IAC5WD,GAAMr6U,KAAKoC,IAAI8+K,IAAKzqI,GAAK+jS,KAAOD,GAAK,IACrCH,GAAMp6U,KAAKoC,IAAI8+K,IAAK3lF,GAAKi/O,KAAOD,GAAK,IAEvC,GAAU,MAANlqT,GAAY,CACd,IAAIoqT,GAAMC,yBAA+B,MAAN34Q,GAAa,CAAE1rB,GAAIwrB,IAAO,CAAEE,GAAIC,IAAM,CAAE5xC,GAAIK,IAAM8qE,GAAI6+O,GAAKp0N,IAAK20N,GAAMD,yBAAyB,CAAErqT,GAAIK,IAAM,CAAE2lB,GAAIwrB,IAAM05B,GAAI6+O,GAAKp0N,IAC/Jk7D,KAAOk5J,GACTn2R,GAAKllD,KAAK,IAAK07U,GAAI,GAAI,IAAKL,GAAK,IAAKA,GAAK,QAAS5iB,GAAI,IAAKijB,GAAI,GAAI,IAAKl/O,GAAI,IAAKA,GAAI,MAAO,EAAIyqB,GAAKm0N,gBAAgBM,GAAI,GAAG,GAAIA,GAAI,GAAG,GAAIE,GAAI,GAAG,GAAIA,GAAI,GAAG,IAAK,IAAK30N,GAAI,IAAK20N,GAAI,GAAI,IAAKP,GAAK,IAAKA,GAAK,QAAS5iB,GAAI,IAAKmjB,GAAI,IAEpO12R,GAAKllD,KAAK,IAAK07U,GAAI,GAAI,IAAKL,GAAK,IAAKA,GAAK,QAAS5iB,GAAI,IAAKmjB,GAAI,SAGnE12R,GAAKllD,KAAK,IAAKqxB,GAAI,IAAKK,IAE1B,GAAU,MAANsxC,GAAY,CACd,IAAI64Q,GAAMF,yBAAyB,CAAEtqT,GAAIK,IAAM,CAAEsxC,GAAIC,IAAMvrB,IAAK4jS,GAAKr0N,IAAKH,GAAM60N,yBAAyB,CAAErkS,GAAIwrB,IAAY,MAANxxC,GAAa,CAAED,GAAIK,IAAO,CAAEJ,GAAIK,IAAM+lB,IAAK4jS,GAAKr0N,IACjKk7D,KAAOm5J,GACTp2R,GAAKllD,KAAK,IAAK8mH,GAAI,GAAI,IAAKw0N,GAAK,IAAKA,GAAK,QAAS7iB,GAAI,IAAK3xM,GAAI,GAAI,IAAKpvE,GAAI,IAAKA,GAAI,MAAOuvE,GAAKm0N,gBAAgBt0N,GAAI,GAAG,GAAIA,GAAI,GAAG,GAAI+0N,GAAI,GAAG,GAAIA,GAAI,GAAG,IAAK,IAAK,EAAI50N,GAAI,IAAK40N,GAAI,GAAI,IAAKP,GAAK,IAAKA,GAAK,QAAS7iB,GAAI,IAAKojB,GAAI,IAEpO32R,GAAKllD,KAAK,IAAK8mH,GAAI,GAAI,IAAKw0N,GAAK,IAAKA,GAAK,QAAS7iB,GAAI,IAAKojB,GAAI,SAGnE32R,GAAKllD,KAAK,IAAKs3C,GAAI,IAAKwrB,SAG1B5d,GAAKllD,KAAK,IAAKqxB,GAAI,IAAKK,IACd,MAANJ,IAAY4zB,GAAKllD,KAAK,IAAKw8F,GAAI,IAAKA,GAAI,MAAO+iD,GAAI,IAAKt4B,GAAI,IAAK31F,GAAI,IAAKK,IAC9EuzB,GAAKllD,KAAK,IAAKs3C,GAAI,IAAKwrB,IACd,MAANE,IAAY9d,GAAKllD,KAAK,IAAK03C,GAAI,IAAKA,GAAI,MAAO+nG,GAAI,IAAK,EAAIx4B,GAAI,IAAKjkD,GAAI,IAAKC,IAGpF,OADA/d,GAAKllD,KAAK,KACHklD,GAAK/kD,KAAK,IAEnB,SAASg7U,cAAc3+O,GAAIyqB,IACzB,MAAO,MAAQzqB,GAAK,IAAMA,GAAK,IAAMA,GAAK,QAAUyqB,GAAK,OAASzqB,GAAK,IAAMA,GAAK,IAAMA,GAAK,QAAUyqB,GAAK,MAAQzqB,GAyCtH,OAvCAuqB,IAAIirF,YAAc,SAAS1zM,IACzB,OAAK6X,UAAU/Y,QACf40M,GAAc+1G,WAAWzpT,IAClByoH,KAFuBirF,IAIhCjrF,IAAIkrF,YAAc,SAAS3zM,IACzB,OAAK6X,UAAU/Y,QACf60M,GAAc81G,WAAWzpT,IAClByoH,KAFuBkrF,IAIhClrF,IAAI8zN,aAAe,SAASv8U,IAC1B,OAAK6X,UAAU/Y,QACfy9U,GAAe9yB,WAAWzpT,IACnByoH,KAFuB8zN,IAIhC9zN,IAAI+zN,UAAY,SAASx8U,IACvB,OAAK6X,UAAU/Y,QACf09U,GAAYx8U,IAAKy8U,GAAiBA,GAAiBhzB,WAAWzpT,IACvDyoH,KAFuB+zN,IAIhC/zN,IAAI+qF,WAAa,SAASxzM,IACxB,OAAK6X,UAAU/Y,QACf00M,GAAai2G,WAAWzpT,IACjByoH,KAFuB+qF,IAIhC/qF,IAAIgrF,SAAW,SAASzzM,IACtB,OAAK6X,UAAU/Y,QACf20M,GAAWg2G,WAAWzpT,IACfyoH,KAFuBgrF,IAIhChrF,IAAI2qN,SAAW,SAASpzU,IACtB,OAAK6X,UAAU/Y,QACfs0U,GAAW3pB,WAAWzpT,IACfyoH,KAFuB2qN,IAIhC3qN,IAAI2uM,SAAW,WACb,IAAI95T,KAAMo2M,GAAYv0M,MAAMsB,KAAMoX,aAAc87L,GAAYx0M,MAAMsB,KAAMoX,YAAc,EAAG/W,KAAM0yM,GAAWr0M,MAAMsB,KAAMoX,aAAc47L,GAASt0M,MAAMsB,KAAMoX,YAAc,EAAIu/N,GAC3K,MAAO,CAAEz0O,KAAK6oD,IAAI1qD,IAAKxD,GAAGqF,KAAK8oD,IAAI3qD,IAAKxD,KAEnCmrH,KAET,IAAIg0N,GAAiB,OACrB,SAASJ,sBAAsBv/U,IAC7B,OAAOA,GAAE42M,YAEX,SAAS4oI,sBAAsBx/U,IAC7B,OAAOA,GAAE62M,YAEX,SAAS+oI,qBAAqB5/U,IAC5B,OAAOA,GAAE02M,WAEX,SAASmpI,mBAAmB7/U,IAC1B,OAAOA,GAAE22M,SAEX,SAASmpI,mBAAmB9/U,IAC1B,OAAOA,IAAKA,GAAEs2U,SAEhB,SAAS0J,gBAAgB/pT,GAAIK,GAAIJ,GAAIK,IACnC,OAAQN,GAAKC,IAAMI,IAAMA,GAAKC,IAAMN,GAAK,EAAI,EAAI,EAEnD,SAASsqT,yBAAyB/9P,GAAIC,GAAI2e,GAAI2lF,GAAIl7D,IAChD,IAAIb,GAAMxoC,GAAG,GAAKC,GAAG,GAAIwoC,GAAMzoC,GAAG,GAAKC,GAAG,GAAIzrE,IAAM60G,GAAKk7D,IAAMA,IAAMlhL,KAAK6E,KAAKsgH,GAAMA,GAAMC,GAAMA,IAAMy1N,GAAK1pU,GAAKi0G,GAAK01N,IAAM3pU,GAAKg0G,GAAK90F,GAAKssD,GAAG,GAAKk+P,GAAInqT,GAAKisD,GAAG,GAAKm+P,GAAIzkS,GAAKumC,GAAG,GAAKi+P,GAAIh5Q,GAAK+a,GAAG,GAAKk+P,GAAI/4Q,IAAM1xC,GAAKgmB,IAAM,EAAG2rB,IAAMtxC,GAAKmxC,IAAM,EAAGlvC,GAAK0jB,GAAKhmB,GAAIvK,GAAK+7C,GAAKnxC,GAAIwxC,GAAKvvC,GAAKA,GAAK7M,GAAKA,GAAInrB,GAAI4gG,GAAK2lF,GAAIwgB,GAAIrxK,GAAKwxC,GAAKxrB,GAAK3lB,GAAIv2B,IAAK2rB,GAAK,GAAK,EAAI,GAAK9lB,KAAK6E,KAAK7E,KAAKqC,IAAI,EAAG1H,GAAIA,GAAIunE,GAAKw/H,GAAIA,KAAKq5I,IAAOr5I,GAAI57K,GAAK6M,GAAKx4B,IAAK+nE,GAAI89P,KAAQt+H,GAAI/uK,GAAK7M,GAAK3rB,IAAK+nE,GAAI84Q,IAAOt5I,GAAI57K,GAAK6M,GAAKx4B,IAAK+nE,GAAIg+P,KAAQx+H,GAAI/uK,GAAK7M,GAAK3rB,IAAK+nE,GAAI/rC,GAAM4kT,GAAMh5Q,GAAIzrC,GAAM0pS,GAAMh+P,GAAI5rC,GAAM4kT,GAAMj5Q,GAAIxrC,GAAM2pS,GAAMl+P,GAEpkB,OADI7rC,GAAMA,GAAMG,GAAMA,GAAMF,GAAMA,GAAMG,GAAMA,KAAKwkT,GAAMC,GAAKhb,GAAME,IAC7D,CAAE,CAAE6a,GAAMF,GAAI7a,GAAM8a,IAAM,CAAEC,GAAMx/O,GAAK5gG,GAAGqlU,GAAMzkO,GAAK5gG,KAE9D,SAASsgV,YAAYz0U,IACnB,IAAIgC,GAAIy5T,eAAgBvyT,GAAIwyT,eAAgBgZ,GAAUhmB,QAAS5kH,GAAc6qI,kBAAmBC,GAAiB9qI,GAAYl1M,IAAKigV,GAAU,GAC5I,SAASrpT,KAAKhuB,IACZ,IAAyD7J,GAArDq1E,GAAW,GAAIvzE,GAAS,GAAInC,IAAK,EAAGwB,GAAI0I,GAAK7H,OAAWwqE,GAAKmgP,WAAWt+S,IAAIo+D,GAAKkgP,WAAWp3S,IAChG,SAAS4oI,UACP9oE,GAASzwE,KAAK,IAAKuxM,GAAY9pM,GAAWvK,IAASo/U,KAErD,OAASvhV,GAAIwB,IACP4/U,GAAQlhV,KAAK8D,KAAM3D,GAAI6J,GAAKlK,IAAIA,IAClCmC,GAAO8C,KAAK,EAAG4nE,GAAG3sE,KAAK8D,KAAM3D,GAAGL,KAAK8sE,GAAG5sE,KAAK8D,KAAM3D,GAAGL,MAC7CmC,GAAOE,SAChBm8I,UACAr8I,GAAS,IAIb,OADIA,GAAOE,QAAQm8I,UACZ9oE,GAASrzE,OAASqzE,GAAStwE,KAAK,IAAM,KA2B/C,OAzBA8yB,KAAKxpB,EAAI,SAASg3D,IAChB,OAAKtqD,UAAU/Y,QACfqM,GAAIg3D,GACGxtC,MAFuBxpB,IAIhCwpB,KAAKtiB,EAAI,SAAS8vD,IAChB,OAAKtqD,UAAU/Y,QACfuT,GAAI8vD,GACGxtC,MAFuBtiB,IAIhCsiB,KAAKkpT,QAAU,SAAS17Q,IACtB,OAAKtqD,UAAU/Y,QACf++U,GAAU17Q,GACHxtC,MAFuBkpT,IAIhClpT,KAAKs+K,YAAc,SAAS9wI,IAC1B,OAAKtqD,UAAU/Y,QACci/U,GAAZ,mBAAN57Q,GAAmC8wI,GAAc9wI,IAA0B8wI,GAAcgrI,GAAyB5gV,IAAI8kE,KAAM27Q,mBAAmB//U,IACnJ42B,MAFuBopT,IAIhCppT,KAAKqpT,QAAU,SAAS77Q,IACtB,OAAKtqD,UAAU/Y,QACfk/U,GAAU77Q,GACHxtC,MAFuBqpT,IAIzBrpT,KAET7oB,GAAGud,IAAIsL,KAAO,WACZ,OAAOipT,YAAY/iC,cAErB,IAAIojC,GAA2BnyU,GAAGgsC,IAAI,CACpC8xF,OAAQk0M,kBACR,gBAAiBI,wBACjBx4S,KAsBF,SAASy4S,gBAAgBv/U,IACvB,IAAInC,GAAI,EAAGwB,GAAIW,GAAOE,OAAQN,GAAII,GAAO,GAAIgoD,GAAO,CAAEpoD,GAAE,GAAI,IAAKA,GAAE,IACnE,OAAS/B,GAAIwB,IAAG2oD,GAAKllD,KAAK,KAAMlD,GAAE,IAAMA,GAAII,GAAOnC,KAAI,IAAM,EAAG,IAAK+B,GAAE,IACnEP,GAAI,GAAG2oD,GAAKllD,KAAK,IAAKlD,GAAE,IAC5B,OAAOooD,GAAK/kD,KAAK,KAzBjB,cAAeu8U,sBACf,aAAcC,qBACdC,MAAOC,iBACP,aAiGF,SAASC,qBAAqB5/U,IAC5B,GAAIA,GAAOE,OAAS,EAAG,OAAOg/U,kBAAkBl/U,IAChD,IAA0CuoH,GAAtCvgE,GAAO,GAAInqD,IAAK,EAAGwB,GAAIW,GAAOE,OAAY8T,GAAK,CAAE,GAAKC,GAAK,CAAE,GACjE,OAASpW,GAAI,GACX0qH,GAAKvoH,GAAOnC,IACZmW,GAAGlR,KAAKylH,GAAG,IACXt0G,GAAGnR,KAAKylH,GAAG,IAEbvgE,GAAKllD,KAAK+8U,gBAAgBC,GAAyB9rU,IAAM,IAAM6rU,gBAAgBC,GAAyB7rU,OACtGpW,GACF,OAASA,GAAIwB,IACXkpH,GAAKvoH,GAAOnC,IACZmW,GAAGq4C,QACHr4C,GAAGlR,KAAKylH,GAAG,IACXt0G,GAAGo4C,QACHp4C,GAAGnR,KAAKylH,GAAG,IACXw3N,uBAAuB/3R,GAAMh0C,GAAIC,IAEnC,OAAO+zC,GAAK/kD,KAAK,KAlHjB,eAoHF,SAAS+8U,uBAAuBhgV,IAC9B,IAAIgoD,GAA4CugE,GAAtC1qH,IAAK,EAAGwB,GAAIW,GAAOE,OAAQlC,GAAIqB,GAAI,EAAO2U,GAAK,GAAIC,GAAK,GAClE,OAASpW,GAAI,GACX0qH,GAAKvoH,GAAOnC,GAAIwB,IAChB2U,GAAGlR,KAAKylH,GAAG,IACXt0G,GAAGnR,KAAKylH,GAAG,IAEbvgE,GAAO,CAAE63R,gBAAgBC,GAAyB9rU,IAAK,IAAK6rU,gBAAgBC,GAAyB7rU,OACnGpW,GACF,OAASA,GAAIG,IACXuqH,GAAKvoH,GAAOnC,GAAIwB,IAChB2U,GAAGq4C,QACHr4C,GAAGlR,KAAKylH,GAAG,IACXt0G,GAAGo4C,QACHp4C,GAAGnR,KAAKylH,GAAG,IACXw3N,uBAAuB/3R,GAAMh0C,GAAIC,IAEnC,OAAO+zC,GAAK/kD,KAAK,KApIjB6uU,OAsIF,SAASmO,kBAAkBjgV,GAAQo/U,IACjC,IAAI//U,GAAIW,GAAOE,OAAS,EACxB,GAAIb,GAEF,IADA,IAAkGO,GAAGd,GAAjGq1B,GAAKn0B,GAAO,GAAG,GAAIw0B,GAAKx0B,GAAO,GAAG,GAAI02B,GAAK12B,GAAOX,IAAG,GAAK80B,GAAItK,GAAK7pB,GAAOX,IAAG,GAAKm1B,GAAI32B,IAAK,IACtFA,IAAKwB,IACZO,GAAII,GAAOnC,IACXiB,GAAIjB,GAAIwB,GACRO,GAAE,GAAKw/U,GAAUx/U,GAAE,IAAM,EAAIw/U,KAAYjrT,GAAKr1B,GAAI43B,IAClD92B,GAAE,GAAKw/U,GAAUx/U,GAAE,IAAM,EAAIw/U,KAAY5qT,GAAK11B,GAAI+qB,IAGtD,OAAO81T,iBAAiB3/U,KAhJxBkgV,SAsCF,SAASC,oBAAoBngV,GAAQo/U,IACnC,OAAOp/U,GAAOE,OAAS,EAAIg/U,kBAAkBl/U,IAAUA,GAAO,GAAKogV,mBAAmBpgV,GAAQqgV,4BAA4BrgV,GAAQo/U,MAtClI,gBA8BF,SAASkB,wBAAwBtgV,GAAQo/U,IACvC,OAAOp/U,GAAOE,OAAS,EAAIg/U,kBAAkBl/U,IAAUA,GAAO,GAAKogV,mBAAmBpgV,GAAOK,MAAM,GAAI,GAAIggV,4BAA4BrgV,GAAQo/U,MA9B/I,kBAgCF,SAASmB,0BAA0BvgV,GAAQo/U,IACzC,OAAOp/U,GAAOE,OAAS,EAAIo/U,wBAAwBt/U,IAAUA,GAAO,GAAKogV,oBAAoBpgV,GAAO8C,KAAK9C,GAAO,IAChHA,IAASqgV,4BAA4B,CAAErgV,GAAOA,GAAOE,OAAS,IAAK6F,OAAO/F,GAAQ,CAAEA,GAAO,KAAOo/U,MAjClGoB,SAyLF,SAASC,oBAAoBzgV,IAC3B,OAAOA,GAAOE,OAAS,EAAIg/U,kBAAkBl/U,IAAUA,GAAO,GAAKogV,mBAAmBpgV,GAzBxF,SAAS0gV,4BAA4B1gV,IACnC,IAAmB9B,GAAGgE,GAAGC,GAAGtC,GAAxB8gV,GAAW,GAAgB3iV,GATjC,SAAS4iV,6BAA6B5gV,IACpC,IAAInC,GAAI,EAAGmD,GAAIhB,GAAOE,OAAS,EAAGlC,GAAI,GAAI0iF,GAAK1gF,GAAO,GAAI2gF,GAAK3gF,GAAO,GAAI9B,GAAIF,GAAE,GAAK6iV,iBAAiBngQ,GAAIC,IAC1G,OAAS9iF,GAAImD,IACXhD,GAAEH,KAAMK,IAAKA,GAAI2iV,iBAAiBngQ,GAAKC,GAAIA,GAAK3gF,GAAOnC,GAAI,MAAQ,EAGrE,OADAG,GAAEH,IAAKK,GACAF,GAG4B4iV,CAA6B5gV,IAASnC,IAAK,EAAGmD,GAAIhB,GAAOE,OAAS,EACrG,OAASrC,GAAImD,IACX9C,GAAI2iV,iBAAiB7gV,GAAOnC,IAAImC,GAAOnC,GAAI,IACvCwX,GAAInX,IAAKo6O,GACXt6O,GAAEH,IAAKG,GAAEH,GAAI,GAAK,GAElBqE,GAAIlE,GAAEH,IAAKK,GACXiE,GAAInE,GAAEH,GAAI,GAAKK,IACf2B,GAAIqC,GAAIA,GAAIC,GAAIA,IACR,IACNtC,GAAQ,EAAJ3B,GAAQ6F,KAAK6E,KAAK/I,IACtB7B,GAAEH,IAAKgC,GAAIqC,GACXlE,GAAEH,GAAI,GAAKgC,GAAIsC,KAIrBtE,IAAK,EACL,OAASA,IAAKmD,IACZnB,IAAKG,GAAO+D,KAAKoC,IAAInF,GAAGnD,GAAI,IAAI,GAAKmC,GAAO+D,KAAKqC,IAAI,EAAGvI,GAAI,IAAI,KAAO,GAAK,EAAIG,GAAEH,IAAKG,GAAEH,MACzF8iV,GAAS79U,KAAK,CAAEjD,IAAK,EAAG7B,GAAEH,IAAKgC,IAAK,IAEtC,OAAO8gV,GAGuFD,CAA4B1gV,QApL5H,SAASk/U,kBAAkBl/U,IACzB,OAAOA,GAAOE,OAAS,EAAIF,GAAOiD,KAAK,KAAOjD,GAAS,IAEzD,SAASs/U,wBAAwBt/U,IAC/B,OAAOA,GAAOiD,KAAK,KAAO,IAQ5B,SAASu8U,sBAAsBx/U,IAE7B,IADA,IAAInC,GAAI,EAAGwB,GAAIW,GAAOE,OAAQN,GAAII,GAAO,GAAIgoD,GAAO,CAAEpoD,GAAE,GAAI,IAAKA,GAAE,MAC1D/B,GAAIwB,IAAG2oD,GAAKllD,KAAK,KAAMlD,GAAII,GAAOnC,KAAI,GAAI,IAAK+B,GAAE,IAC1D,OAAOooD,GAAK/kD,KAAK,IAEnB,SAASw8U,qBAAqBz/U,IAE5B,IADA,IAAInC,GAAI,EAAGwB,GAAIW,GAAOE,OAAQN,GAAII,GAAO,GAAIgoD,GAAO,CAAEpoD,GAAE,GAAI,IAAKA,GAAE,MAC1D/B,GAAIwB,IAAG2oD,GAAKllD,KAAK,KAAMlD,GAAII,GAAOnC,KAAI,GAAI,IAAK+B,GAAE,IAC1D,OAAOooD,GAAK/kD,KAAK,IAYnB,SAASm9U,mBAAmBpgV,GAAQ2gV,IAClC,GAAIA,GAASzgV,OAAS,GAAKF,GAAOE,QAAUygV,GAASzgV,QAAUF,GAAOE,QAAUygV,GAASzgV,OAAS,EAChG,OAAOg/U,kBAAkBl/U,IAE3B,IAAI8mE,GAAO9mE,GAAOE,QAAUygV,GAASzgV,OAAQ8nD,GAAO,GAAI04B,GAAK1gF,GAAO,GAAIJ,GAAII,GAAO,GAAI4L,GAAK+0U,GAAS,GAAI7hV,GAAI8M,GAAI28G,GAAK,EAMtH,GALIzhD,KACF9e,IAAQ,KAAOpoD,GAAE,GAAa,EAARgM,GAAG,GAAS,GAAK,KAAOhM,GAAE,GAAa,EAARgM,GAAG,GAAS,GAAK,IAAMhM,GAAE,GAAK,IAAMA,GAAE,GAC3F8gF,GAAK1gF,GAAO,GACZuoH,GAAK,GAEHo4N,GAASzgV,OAAS,EAAG,CACvBpB,GAAI6hV,GAAS,GACb/gV,GAAII,GAAOuoH,IACXA,KACAvgE,IAAQ,KAAO04B,GAAG,GAAK90E,GAAG,IAAM,KAAO80E,GAAG,GAAK90E,GAAG,IAAM,KAAOhM,GAAE,GAAKd,GAAE,IAAM,KAAOc,GAAE,GAAKd,GAAE,IAAM,IAAMc,GAAE,GAAK,IAAMA,GAAE,GACzH,IAAK,IAAI/B,GAAI,EAAGA,GAAI8iV,GAASzgV,OAAQrC,KAAK0qH,KACxC3oH,GAAII,GAAOuoH,IACXzpH,GAAI6hV,GAAS9iV,IACbmqD,IAAQ,KAAOpoD,GAAE,GAAKd,GAAE,IAAM,KAAOc,GAAE,GAAKd,GAAE,IAAM,IAAMc,GAAE,GAAK,IAAMA,GAAE,GAG7E,GAAIknE,GAAM,CACR,IAAIg6Q,GAAK9gV,GAAOuoH,IAChBvgE,IAAQ,KAAOpoD,GAAE,GAAY,EAAPd,GAAE,GAAS,GAAK,KAAOc,GAAE,GAAY,EAAPd,GAAE,GAAS,GAAK,IAAMgiV,GAAG,GAAK,IAAMA,GAAG,GAE7F,OAAO94R,GAET,SAASq4R,4BAA4BrgV,GAAQo/U,IAE3C,IADA,IAA0C1+P,GAAtCigQ,GAAW,GAAIz+U,IAAK,EAAIk9U,IAAW,EAAOz+P,GAAK3gF,GAAO,GAAIy9J,GAAKz9J,GAAO,GAAInC,GAAI,EAAGwB,GAAIW,GAAOE,SACvFrC,GAAIwB,IACXqhF,GAAKC,GACLA,GAAK88E,GACLA,GAAKz9J,GAAOnC,IACZ8iV,GAAS79U,KAAK,CAAEZ,IAAKu7J,GAAG,GAAK/8E,GAAG,IAAKx+E,IAAKu7J,GAAG,GAAK/8E,GAAG,MAEvD,OAAOigQ,GAET,SAAShB,iBAAiB3/U,IACxB,GAAIA,GAAOE,OAAS,EAAG,OAAOg/U,kBAAkBl/U,IAChD,IAAInC,GAAI,EAAGwB,GAAIW,GAAOE,OAAQqoH,GAAKvoH,GAAO,GAAIm0B,GAAKo0F,GAAG,GAAI/zF,GAAK+zF,GAAG,GAAIv0G,GAAK,CAAEmgB,GAAIA,GAAIA,IAAKo0F,GAAKvoH,GAAO,IAAI,IAAMiU,GAAK,CAAEugB,GAAIA,GAAIA,GAAI+zF,GAAG,IAAMvgE,GAAO,CAAE7zB,GAAI,IAAKK,GAAI,IAAKqrT,gBAAgBC,GAAyB9rU,IAAK,IAAK6rU,gBAAgBC,GAAyB7rU,KAEnQ,IADAjU,GAAO8C,KAAK9C,GAAOX,GAAI,MACdxB,IAAKwB,IACZkpH,GAAKvoH,GAAOnC,IACZmW,GAAGq4C,QACHr4C,GAAGlR,KAAKylH,GAAG,IACXt0G,GAAGo4C,QACHp4C,GAAGnR,KAAKylH,GAAG,IACXw3N,uBAAuB/3R,GAAMh0C,GAAIC,IAInC,OAFAjU,GAAOuD,MACPykD,GAAKllD,KAAK,IAAKylH,IACRvgE,GAAK/kD,KAAK,IAsDnB,SAAS48U,gBAAgB39U,GAAGC,IAC1B,OAAOD,GAAE,GAAKC,GAAE,GAAKD,GAAE,GAAKC,GAAE,GAAKD,GAAE,GAAKC,GAAE,GAAKD,GAAE,GAAKC,GAAE,GA9I5Dk9U,GAAyBjrR,SAAQ,SAASj1D,GAAKN,IAC7CA,GAAMM,IAAMA,GACZN,GAAMk0O,OAAS,WAAW7vO,KAAK/D,OA8IjC,IAAI4hV,GAA0B,CAAE,EAAG,EAAI,EAAG,EAAI,EAAG,GAAKC,GAA0B,CAAE,EAAG,EAAI,EAAG,EAAI,EAAG,GAAKlB,GAA0B,CAAE,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,GACzJ,SAASC,uBAAuB/3R,GAAMz7C,GAAGkH,IACvCu0C,GAAKllD,KAAK,IAAK+8U,gBAAgBkB,GAAyBx0U,IAAI,IAAKszU,gBAAgBkB,GAAyBttU,IAAI,IAAKosU,gBAAgBmB,GAAyBz0U,IAAI,IAAKszU,gBAAgBmB,GAAyBvtU,IAAI,IAAKosU,gBAAgBC,GAAyBvzU,IAAI,IAAKszU,gBAAgBC,GAAyBrsU,KAEpT,SAASotU,iBAAiBngQ,GAAIC,IAC5B,OAAQA,GAAG,GAAKD,GAAG,KAAOC,GAAG,GAAKD,GAAG,IA2CvC,SAASugQ,kBAAkBjhV,IAEzB,IADA,IAAIqD,GAAkC3E,GAAGwD,GAA9BrE,IAAK,EAAGwB,GAAIW,GAAOE,SACrBrC,GAAIwB,IAEXX,IADA2E,GAAQrD,GAAOnC,KACL,GACVqE,GAAImB,GAAM,GAAKm1O,GACfn1O,GAAM,GAAK3E,GAAIqF,KAAK6oD,IAAI1qD,IACxBmB,GAAM,GAAK3E,GAAIqF,KAAK8oD,IAAI3qD,IAE1B,OAAOlC,GAET,SAASkhV,YAAY32U,IACnB,IAAI4pB,GAAK6xS,eAAgB5xS,GAAK4xS,eAAgBxxS,GAAK,EAAGC,GAAKwxS,eAAgBgZ,GAAUhmB,QAAS5kH,GAAc6qI,kBAAmBC,GAAiB9qI,GAAYl1M,IAAKgiV,GAAqB9sI,GAAag9G,GAAI,IAAK+tB,GAAU,GACtN,SAAS3+Q,KAAK14D,IACZ,IAAwE7J,GAIpDqO,GAAGkH,GAJnB8/D,GAAW,GAAI6tQ,GAAU,GAAIC,GAAU,GAAIxjV,IAAK,EAAGwB,GAAI0I,GAAK7H,OAAWohV,GAAMz2B,WAAW12R,IAAKotT,GAAM12B,WAAWr2R,IAAKgtT,GAAMrtT,KAAOC,GAAK,WACvI,OAAO7nB,IACLs+S,WAAWz2R,IAAKqtT,GAAMjtT,KAAOC,GAAK,WACpC,OAAOhhB,IACLo3S,WAAWp2R,IACf,SAAS4nH,UACP9oE,GAASzwE,KAAK,IAAKuxM,GAAY9pM,GAAW82U,IAAUjC,IAAU/tB,GAAG8vB,GAAmB52U,GAAW62U,GAAQ52R,WAAY40R,IAAU,KAE/H,OAASvhV,GAAIwB,IACP4/U,GAAQlhV,KAAK8D,KAAM3D,GAAI6J,GAAKlK,IAAIA,KAClCujV,GAAQt+U,KAAK,CAAEyJ,IAAK+0U,GAAIvjV,KAAK8D,KAAM3D,GAAGL,IAAI4V,IAAK8tU,GAAIxjV,KAAK8D,KAAM3D,GAAGL,MACjEwjV,GAAQv+U,KAAK,EAAG0+U,GAAIzjV,KAAK8D,KAAM3D,GAAGL,KAAK4jV,GAAI1jV,KAAK8D,KAAM3D,GAAGL,OAChDujV,GAAQlhV,SACjBm8I,UACA+kM,GAAU,GACVC,GAAU,IAId,OADID,GAAQlhV,QAAQm8I,UACb9oE,GAASrzE,OAASqzE,GAAStwE,KAAK,IAAM,KAiD/C,OA/CAw9D,KAAKl0D,EAAI,SAASg3D,IAChB,OAAKtqD,UAAU/Y,QACfi0B,GAAKC,GAAKmvC,GACH9C,MAFuBrsC,IAIhCqsC,KAAKtsC,GAAK,SAASovC,IACjB,OAAKtqD,UAAU/Y,QACfi0B,GAAKovC,GACE9C,MAFuBtsC,IAIhCssC,KAAKrsC,GAAK,SAASmvC,IACjB,OAAKtqD,UAAU/Y,QACfk0B,GAAKmvC,GACE9C,MAFuBrsC,IAIhCqsC,KAAKhtD,EAAI,SAAS8vD,IAChB,OAAKtqD,UAAU/Y,QACfs0B,GAAKC,GAAK8uC,GACH9C,MAFuBhsC,IAIhCgsC,KAAKjsC,GAAK,SAAS+uC,IACjB,OAAKtqD,UAAU/Y,QACfs0B,GAAK+uC,GACE9C,MAFuBjsC,IAIhCisC,KAAKhsC,GAAK,SAAS8uC,IACjB,OAAKtqD,UAAU/Y,QACfu0B,GAAK8uC,GACE9C,MAFuBhsC,IAIhCgsC,KAAKw+Q,QAAU,SAAS17Q,IACtB,OAAKtqD,UAAU/Y,QACf++U,GAAU17Q,GACH9C,MAFuBw+Q,IAIhCx+Q,KAAK4zI,YAAc,SAAS9wI,IAC1B,OAAKtqD,UAAU/Y,QACci/U,GAAZ,mBAAN57Q,GAAmC8wI,GAAc9wI,IAA0B8wI,GAAcgrI,GAAyB5gV,IAAI8kE,KAAM27Q,mBAAmB//U,IAC1JgiV,GAAqB9sI,GAAY7pJ,SAAW6pJ,GAC5Cg9G,GAAIh9G,GAAY0+B,OAAS,IAAM,IACxBtyK,MAJuB0+Q,IAMhC1+Q,KAAK2+Q,QAAU,SAAS77Q,IACtB,OAAKtqD,UAAU/Y,QACfk/U,GAAU77Q,GACH9C,MAFuB2+Q,IAIzB3+Q,KAqET,SAASihR,mBAAmBxjV,IAC1B,OAAOA,GAAEynE,OAgCX,SAASg8Q,0BAA0BzjV,IACjC,MAAO,CAAEA,GAAEqO,EAAGrO,GAAEuV,GASlB,SAASmuU,gCAAgCr3U,IACvC,OAAO,WACL,IAAIrM,GAAIqM,GAAWhK,MAAMsB,KAAMoX,WAAYva,GAAIR,GAAE,GAAIgE,GAAIhE,GAAE,GAAKs6O,GAChE,MAAO,CAAE95O,GAAIqF,KAAK6oD,IAAI1qD,IAAIxD,GAAIqF,KAAK8oD,IAAI3qD,MAoB3C,SAAS2/U,oBACP,OAAO,GAET,SAASC,oBACP,MAAO,SAET,SAASC,oBAAoBngU,IAC3B,IAAIljB,GAAIqF,KAAK6E,KAAKgZ,GAAO22N,IACzB,MAAO,MAAQ75O,GAAI,IAAMA,GAAI,IAAMA,GAAI,aAAeA,GAAI,IAAMA,GAAI,IAAMA,GAAI,YAAcA,GAAI,IAvOlGwO,GAAGud,IAAIsL,KAAKw1C,OAAS,WACnB,IAAIx1C,GAAOipT,YAAYiC,mBAGvB,OAFAlrT,GAAK4vC,OAAS5vC,GAAKxpB,SAAUwpB,GAAKxpB,EAClCwpB,GAAKw2B,MAAQx2B,GAAKtiB,SAAUsiB,GAAKtiB,EAC1BsiB,IAsFTypT,sBAAsBh1R,QAAUi1R,qBAChCA,qBAAqBj1R,QAAUg1R,sBAC/BtyU,GAAGud,IAAIg2C,KAAO,WACZ,OAAOygR,YAAYjlC,cAErB/uS,GAAGud,IAAIg2C,KAAK8K,OAAS,WACnB,IAAI9K,GAAOygR,YAAYD,mBAOvB,OANAxgR,GAAKkF,OAASlF,GAAKl0D,SAAUk0D,GAAKl0D,EAClCk0D,GAAKq0I,YAAcr0I,GAAKtsC,UAAWssC,GAAKtsC,GACxCssC,GAAKs0I,YAAct0I,GAAKrsC,UAAWqsC,GAAKrsC,GACxCqsC,GAAKlU,MAAQkU,GAAKhtD,SAAUgtD,GAAKhtD,EACjCgtD,GAAKm0I,WAAan0I,GAAKjsC,UAAWisC,GAAKjsC,GACvCisC,GAAKo0I,SAAWp0I,GAAKhsC,UAAWgsC,GAAKhsC,GAC9BgsC,IAETvzD,GAAGud,IAAIsnT,MAAQ,WACb,IAAI3sQ,GAASi9P,UAAWr3S,GAASs3S,UAAW38P,GAAS+7Q,mBAAoB9sI,GAAakpI,qBAAsBjpI,GAAWkpI,mBACvH,SAAShM,MAAM7zU,GAAGL,IAChB,IAAIgC,GAAI6+S,SAAS78S,KAAMujE,GAAQlnE,GAAGL,IAAIiB,GAAI4/S,SAAS78S,KAAMmpB,GAAQ9sB,GAAGL,IACpE,MAAO,IAAMgC,GAAE6gF,GAAKmpC,IAAIhqH,GAAEnB,EAAGmB,GAAE8gF,GAAI9gF,GAAE+tG,GAAK/tG,GAAEssE,KAY9C,SAAS6pL,OAAO9zP,GAAGC,IACjB,OAAOD,GAAEiqE,IAAMhqE,GAAEgqE,IAAMjqE,GAAE0rG,IAAMzrG,GAAEyrG,GAbkBooJ,CAAOn2P,GAAGf,IAAK00E,MAAM3zE,GAAEnB,EAAGmB,GAAE8gF,GAAI9gF,GAAEnB,EAAGmB,GAAE6gF,IAAMlN,MAAM3zE,GAAEnB,EAAGmB,GAAE8gF,GAAI7hF,GAAEJ,EAAGI,GAAE4hF,IAAMmpC,IAAI/qH,GAAEJ,EAAGI,GAAE6hF,GAAI7hF,GAAE8uG,GAAK9uG,GAAEqtE,IAAMqH,MAAM10E,GAAEJ,EAAGI,GAAE6hF,GAAI9gF,GAAEnB,EAAGmB,GAAE6gF,KAAO,IAE7L,SAASg+N,SAASlhT,GAAMyoC,GAAG/nC,GAAGL,IAC5B,IAAI6gT,GAAWz4Q,GAAEloC,KAAKP,GAAMU,GAAGL,IAAIa,GAAIinE,GAAO5nE,KAAKP,GAAMkhT,GAAU7gT,IAAIsuE,GAAKyoI,GAAW72M,KAAKP,GAAMkhT,GAAU7gT,IAAK26O,GAAO5qI,GAAKinG,GAAS92M,KAAKP,GAAMkhT,GAAU7gT,IAAK26O,GAChK,MAAO,CACL95O,EAAGA,GACHytE,GAAIA,GACJyhC,GAAIA,GACJltB,GAAI,CAAEhiF,GAAIqF,KAAK6oD,IAAIuf,IAAKztE,GAAIqF,KAAK8oD,IAAIsf,KACrCwU,GAAI,CAAEjiF,GAAIqF,KAAK6oD,IAAIghD,IAAKlvG,GAAIqF,KAAK8oD,IAAI+gD,MAMzC,SAASic,IAAInrH,GAAGkB,GAAGsC,IACjB,MAAO,IAAMxD,GAAI,IAAMA,GAAI,SAAUwD,GAAIq2O,IAAK,MAAQ34O,GAExD,SAAS4zE,MAAMh5B,GAAIkmC,GAAI4e,GAAI3e,IACzB,MAAO,SAAWA,GA2BpB,OAzBAoxP,MAAMpsQ,OAAS,SAASvkE,IACtB,OAAK6X,UAAU/Y,QACfylE,GAASklP,WAAWzpT,IACb2wU,OAFuBpsQ,IAIhCosQ,MAAM3sQ,OAAS,SAAShkE,IACtB,OAAK6X,UAAU/Y,QACfklE,GAASylP,WAAWzpT,IACb2wU,OAFuB3sQ,IAIhC2sQ,MAAM/mT,OAAS,SAAS5pB,IACtB,OAAK6X,UAAU/Y,QACf8qB,GAAS6/R,WAAWzpT,IACb2wU,OAFuB/mT,IAIhC+mT,MAAMn9H,WAAa,SAASxzM,IAC1B,OAAK6X,UAAU/Y,QACf00M,GAAai2G,WAAWzpT,IACjB2wU,OAFuBn9H,IAIhCm9H,MAAMl9H,SAAW,SAASzzM,IACxB,OAAK6X,UAAU/Y,QACf20M,GAAWg2G,WAAWzpT,IACf2wU,OAFuBl9H,IAIzBk9H,OAKT7kU,GAAGud,IAAI2lH,SAAW,WAChB,IAAIhrE,GAASi9P,UAAWr3S,GAASs3S,UAAW/3T,GAAao3U,0BACzD,SAASvxM,SAASlyI,GAAGL,IACnB,IAAI6iF,GAAKtb,GAAOrnE,KAAK8D,KAAM3D,GAAGL,IAAImkV,GAAKh3T,GAAOjtB,KAAK8D,KAAM3D,GAAGL,IAAIG,IAAK0iF,GAAGjtE,EAAIuuU,GAAGvuU,GAAK,EAAG7T,GAAI,CAAE8gF,GAAI,CAC/Fn0E,EAAGm0E,GAAGn0E,EACNkH,EAAGzV,IACF,CACDuO,EAAGy1U,GAAGz1U,EACNkH,EAAGzV,IACFgkV,IAEH,MAAO,KADPpiV,GAAIA,GAAEs5C,IAAI3uC,KACK,GAAK,IAAM3K,GAAE,GAAK,IAAMA,GAAE,GAAK,IAAMA,GAAE,GAiBxD,OAfAwwI,SAAShrE,OAAS,SAAS74D,IACzB,OAAK0M,UAAU/Y,QACfklE,GAASylP,WAAWt+S,IACb6jI,UAFuBhrE,IAIhCgrE,SAASplH,OAAS,SAASze,IACzB,OAAK0M,UAAU/Y,QACf8qB,GAAS6/R,WAAWt+S,IACb6jI,UAFuBplH,IAIhColH,SAAS7lI,WAAa,SAASgC,IAC7B,OAAK0M,UAAU/Y,QACfqK,GAAagC,GACN6jI,UAFuB7lI,IAIzB6lI,UAKTljI,GAAGud,IAAI2lH,SAAS7kE,OAAS,WACvB,IAAI6kE,GAAWljI,GAAGud,IAAI2lH,WAAY7lI,GAAao3U,0BAA2BM,GAAc7xM,GAAS7lI,WAIjG,OAHA6lI,GAAS7lI,WAAa,SAASgC,IAC7B,OAAO0M,UAAU/Y,OAAS+hV,GAAYL,gCAAgCr3U,GAAagC,KAAMhC,IAEpF6lI,IAQTljI,GAAGud,IAAI6+D,OAAS,WACd,IAAIn4E,GAAO2wU,kBAAmBlgU,GAAOigU,kBACrC,SAASv4P,OAAOprF,GAAGL,IACjB,OAAQqkV,GAAezjV,IAAI0S,GAAKpT,KAAK8D,KAAM3D,GAAGL,MAAOkkV,qBAAqBngU,GAAK7jB,KAAK8D,KAAM3D,GAAGL,KAY/F,OAVAyrF,OAAOn4E,KAAO,SAAS5E,IACrB,OAAK0M,UAAU/Y,QACfiR,GAAO05S,WAAWt+S,IACX+8E,QAFuBn4E,IAIhCm4E,OAAO1nE,KAAO,SAASrV,IACrB,OAAK0M,UAAU/Y,QACf0hB,GAAOipS,WAAWt+S,IACX+8E,QAFuB1nE,IAIzB0nE,QAYT,IAAI44P,GAAiBh1U,GAAGgsC,IAAI,CAC1BhlC,OAAQ6tU,oBACR1tU,MAAO,SAASuN,IACd,IAAIljB,GAAIqF,KAAK6E,KAAKgZ,GAAO,GAAK,EAC9B,MAAO,KAAO,EAAIljB,GAAI,KAAOA,GAAI,KAAOA,GAAI,KAAO,EAAIA,GAAI,IAAMA,GAAI,KAAOA,GAAI,IAAM,EAAIA,GAAI,IAAMA,GAAI,IAAMA,GAAI,IAAM,EAAIA,GAAI,KAAOA,GAAI,IAAMA,GAAI,KAAO,EAAIA,GAAI,KAEtK0V,QAAS,SAASwN,IAChB,IAAIivD,GAAK9sE,KAAK6E,KAAKgZ,IAAQ,EAAIugU,KAAsBvxQ,GAAKC,GAAKsxQ,GAC/D,MAAO,OAAStxQ,GAAK,IAAMD,GAApB,QAAwCC,GAAK,KAAOD,GAApD,OAETz8D,OAAQ,SAASyN,IACf,IAAIljB,GAAIqF,KAAK6E,KAAKgZ,IAAQ,EAC1B,MAAO,KAAOljB,GAAI,KAAOA,GAAI,IAAMA,GAAI,KAAOA,GAAI,IAAMA,GAAI,IAAMA,GAAI,KAAOA,GAAI,IAAMA,GAAI,KAE7F,gBAAiB,SAASkjB,IACxB,IAAIgvD,GAAK7sE,KAAK6E,KAAKgZ,GAAOwgU,IAAqBvxQ,GAAKD,GAAKwxQ,GAAqB,EAC9E,MAAO,MAAQvxQ,GAAK,IAAMD,GAAK,KAAOC,GAAK,KAAOD,GAAK,KAAOC,GAAK,KAErE,cAAe,SAASjvD,IACtB,IAAIgvD,GAAK7sE,KAAK6E,KAAKgZ,GAAOwgU,IAAqBvxQ,GAAKD,GAAKwxQ,GAAqB,EAC9E,MAAO,OAASvxQ,GAAK,IAAMD,GAAK,IAAMC,GAAK,KAAOD,GAAK,IAAMC,GAAK,OAGtE3jE,GAAGud,IAAIwrL,YAAcisI,GAAenhS,OACpC,IAAIqhS,GAAqBr+U,KAAK6E,KAAK,GAAIu5U,GAAqBp+U,KAAKstE,IAAI,GAAKi0O,IAC1EtH,GAAsB5vS,WAAa,SAASjQ,IAO1C,IANA,IAAyGugT,GAAUh5R,GAA/G1b,GAAK6+S,MAA4Bw5B,GAAiBpjV,GAAKqjV,uBAAuBnkV,IAAOygT,GAAY,GAAoBxwS,GAAam0U,IAAwB,CAC5Jj5Q,KAAM3uD,KAAK8d,MACXZ,KAAMi3S,mBACNrgU,MAAO,EACPD,SAAU,KAEHxN,IAAK,EAAGhD,GAAI6D,KAAK3B,SAAUc,GAAIhD,IAAK,CAC3C4gT,GAAU97S,KAAK47S,GAAW,IAC1B,IAAK,IAAItvS,GAAQvN,KAAKb,IAAInD,IAAK,EAAGwB,GAAI+P,GAAMlP,SAAUrC,GAAIwB,KACpDqmB,GAAOtW,GAAMvR,MAAI2kV,kBAAkB98T,GAAM7nB,GAAGoB,GAAI+K,GAAIoE,IACxDswS,GAAS57S,KAAK4iB,IAGlB,OAAO+8T,cAAc7jC,GAAW3/S,GAAI+K,KAEtCg0S,GAAsB9kE,UAAY,SAAS/6O,IACzC,OAAO0D,KAAKkM,KAAa,MAAR5P,GAAe0pT,GAAyB66B,yBAAyBJ,uBAAuBnkV,OAE3G,IAAI0pT,GAAyB66B,yBAAyBJ,0BACtD,SAASI,yBAAyBzjV,IAChC,OAAO,WACL,IAAI0jV,GAAMC,GAAUxnH,IACfunH,GAAO9gV,KAAK5C,OAASm8N,GAASunH,GAAKC,GAAWD,GAAKvnH,WACtDA,GAAO/xJ,MAAMprE,EAAI,KACjBm9N,GAAO/xJ,MAAMvqE,EAAIk+D,MACX2lR,GAAKp7Q,aAAco7Q,GAAKC,WAAuB/gV,KAAK5C,IAC1D0jV,GAAKvnH,QAAU,GACfA,GAAOrpM,OAASqpM,GAAOrpM,MAAMmnN,UAAUn7O,KAAK8D,KAAMA,KAAKouJ,SAAUmrE,GAAOp5N,SAI9E,SAASygV,cAAcnxR,GAAQryD,GAAI+K,IAIjC,OAHA6zS,GAAYvsP,GAAQuxR,IACpBvxR,GAAOyvP,UAAY9hT,GACnBqyD,GAAOtnD,GAAKA,GACLsnD,GAET,IAAsDu3P,GAAwB05B,GAA1EM,GAAyB,GAAIR,GAAkB,EAkEnD,SAASS,oBAAoBxxR,GAAQnzD,GAAMU,GAAOiqT,IAChD,IAAI9+S,GAAKsnD,GAAOtnD,GAAI/K,GAAKqyD,GAAOyvP,UAChC,OAAOO,kBAAkBhwP,GAAyB,mBAAVzyD,GAAuB,SAAS6mB,GAAM7nB,GAAGmD,IAC/E0kB,GAAKzmB,IAAI+K,IAAI8+S,MAAM98S,IAAI7N,GAAM2qT,GAAMjqT,GAAMd,KAAK2nB,GAAMA,GAAKuqI,SAAUpyJ,GAAGmD,QACnEnC,GAAQiqT,GAAMjqT,IAAQ,SAAS6mB,IAClCA,GAAKzmB,IAAI+K,IAAI8+S,MAAM98S,IAAI7N,GAAMU,OAqFjC,SAASkkV,mBAAmB5gV,IAE1B,OADS,MAALA,KAAWA,GAAI,IACZ,WACLN,KAAK8vB,YAAcxvB,IA6EvB,SAASmgV,uBAAuBnkV,IAC9B,OAAe,MAARA,GAAe,iBAAmB,gBAAkBA,GAAO,KAEpE,SAASqkV,kBAAkB98T,GAAM7nB,GAAGoB,GAAI+K,GAAI4+E,IAC1C,IAG2Btf,GAAMD,GAAO76D,GAAUqpB,GAAMmrT,GAHpDL,GAAOj9T,GAAKzmB,MAAQymB,GAAKzmB,IAAM,CACjCm8N,OAAQ,EACR7zJ,MAAO,IACLn5D,GAAau0U,GAAK34U,IAOtB,SAASyX,MAAMwhU,IACb,IAAIL,GAAWD,GAAKvnH,OAAQA,GAASunH,GAAKC,IAQ1C,IAAK,IAAIM,MAPL9nH,KACFA,GAAO/xJ,MAAMprE,EAAI,KACjBm9N,GAAO/xJ,MAAMvqE,EAAIk+D,MACf2lR,GAAKp7Q,aACAo7Q,GAAKC,IACZxnH,GAAOrpM,OAASqpM,GAAOrpM,MAAMmnN,UAAUn7O,KAAK2nB,GAAMA,GAAKuqI,SAAUmrE,GAAOp5N,QAErD2gV,GACnB,IAAKO,GAAWl5U,GAAI,CAClB,IAAImoB,GAASwwT,GAAKO,IAClB/wT,GAAOk3C,MAAMprE,EAAI,KACjBk0B,GAAOk3C,MAAMvqE,EAAIk+D,MACf2lR,GAAKp7Q,aACAo7Q,GAAKO,IAGhB75Q,GAAMprE,EAAImlC,KACVwqR,UAAS,WAKP,OAJIvkP,GAAMprE,GAAKmlC,KAAK6/S,IAAW,KAC7B55Q,GAAMprE,EAAI,KACVorE,GAAMvqE,EAAIk+D,KAEL,IACN,EAAGsM,IACNq5Q,GAAKvnH,OAASpxN,GACdoE,GAAW2jB,OAAS3jB,GAAW2jB,MAAMtQ,MAAM1jB,KAAK2nB,GAAMA,GAAKuqI,SAAUpyJ,IACrEmlV,GAAS,GACT50U,GAAW06S,MAAM10P,SAAQ,SAASj1D,GAAKN,KACjCA,GAAQA,GAAMd,KAAK2nB,GAAMA,GAAKuqI,SAAUpyJ,MAC1CmlV,GAAOlgV,KAAKjE,OAGhBg5B,GAAOzpB,GAAWypB,KAClBrpB,GAAWJ,GAAWI,SAExB,SAAS40B,KAAK6/S,IAEZ,IADA,IAAInkV,GAAImkV,GAAUz0U,GAAUiN,GAAIoc,GAAK/4B,IAAIO,GAAI2jV,GAAO9iV,OAC7Cb,GAAI,GACT2jV,KAAS3jV,IAAGtB,KAAK2nB,GAAMjK,IAEzB,GAAI3c,IAAK,EAGP,OAFAsP,GAAW2jB,OAAS3jB,GAAW2jB,MAAMpQ,IAAI5jB,KAAK2nB,GAAMA,GAAKuqI,SAAUpyJ,MAC7D8kV,GAAKp7Q,aAAco7Q,GAAK34U,WAAiB0b,GAAKzmB,IAC7C,EAGNmP,KACHk7D,GAAOsf,GAAQtf,KACfD,GAAQukP,UAxDV,SAASu1B,SAASF,IAChB,IAAIx0U,GAAQL,GAAWK,MAEvB,GADA46D,GAAMvqE,EAAI2P,GAAQ66D,GACd76D,IAASw0U,GAAS,OAAOxhU,MAAMwhU,GAAUx0U,IAC7C46D,GAAMprE,EAAIwjB,QAoDiB,EAAG6nD,IAC9Bl7D,GAAau0U,GAAK34U,IAAM,CACtB8+S,MAAO,IAAItN,OACXlyO,KAAMA,GACND,MAAOA,GACP56D,MAAOm6E,GAAQn6E,MACfD,SAAUo6E,GAAQp6E,SAClBqpB,KAAM+wD,GAAQ/wD,KACd71B,MAAOnE,IAET+qF,GAAU,OACR+5P,GAAKp7Q,OAtTXs7Q,GAAuB9kV,KAAOigT,GAAsBjgT,KACpD8kV,GAAuBv8T,MAAQ03R,GAAsB13R,MACrDu8T,GAAuBn9T,KAAOs4R,GAAsBt4R,KACpDm9T,GAAuBjhU,KAAOo8R,GAAsBp8R,KACpD1U,GAAGkB,WAAa,SAAS/B,GAAWlO,IAClC,OAAOkO,IAAaA,GAAU+B,WAAay6S,GAAyBx8S,GAAU+B,WAAWjQ,IAAQkO,GAAYa,GAAGb,YAAY+B,WAAW/B,KAEzIa,GAAGkB,WAAW1O,UAAYmjV,GAC1BA,GAAuBp1U,OAAS,SAASquB,IACvC,IAAuD4iR,GAAUC,GAASj5R,GAAtE1b,GAAKnI,KAAKmI,GAAI/K,GAAK4C,KAAKk/S,UAAWnC,GAAY,GACnD9iR,GAAW0iR,sBAAsB1iR,IACjC,IAAK,IAAI96B,IAAK,EAAGhD,GAAI6D,KAAK3B,SAAUc,GAAIhD,IAAK,CAC3C4gT,GAAU97S,KAAK47S,GAAW,IAC1B,IAAK,IAAItvS,GAAQvN,KAAKb,IAAInD,IAAK,EAAGwB,GAAI+P,GAAMlP,SAAUrC,GAAIwB,KACnDqmB,GAAOtW,GAAMvR,OAAQ8gT,GAAU7iR,GAAS/9B,KAAK2nB,GAAMA,GAAKuqI,SAAUpyJ,GAAGmD,MACpE,aAAc0kB,KAAMi5R,GAAQ1uJ,SAAWvqI,GAAKuqI,UAChDuyL,kBAAkB7jC,GAAS9gT,GAAGoB,GAAI+K,GAAI0b,GAAKzmB,IAAI+K,KAC/C00S,GAAS57S,KAAK67S,KAEdD,GAAS57S,KAAK,MAIpB,OAAO2/U,cAAc7jC,GAAW3/S,GAAI+K,KAEtC64U,GAAuBn1U,UAAY,SAASouB,IAC1C,IAAuD4iR,GAAU0kC,GAAU19T,GAAMi5R,GAASvwS,GAAtFpE,GAAKnI,KAAKmI,GAAI/K,GAAK4C,KAAKk/S,UAAWnC,GAAY,GACnD9iR,GAAW2iR,yBAAyB3iR,IACpC,IAAK,IAAI96B,IAAK,EAAGhD,GAAI6D,KAAK3B,SAAUc,GAAIhD,IACtC,IAAK,IAAIoR,GAAQvN,KAAKb,IAAInD,IAAK,EAAGwB,GAAI+P,GAAMlP,SAAUrC,GAAIwB,IACxD,GAAIqmB,GAAOtW,GAAMvR,IAAI,CACnBuQ,GAAasX,GAAKzmB,IAAI+K,IACtBo5U,GAAWtnT,GAAS/9B,KAAK2nB,GAAMA,GAAKuqI,SAAUpyJ,GAAGmD,IACjD49S,GAAU97S,KAAK47S,GAAW,IAC1B,IAAK,IAAIr9S,IAAK,EAAGhD,GAAI+kV,GAASljV,SAAUmB,GAAIhD,KACtCsgT,GAAUykC,GAAS/hV,MAAImhV,kBAAkB7jC,GAASt9S,GAAGpC,GAAI+K,GAAIoE,IACjEswS,GAAS57S,KAAK67S,IAKtB,OAAO8jC,cAAc7jC,GAAW3/S,GAAI+K,KAEtC64U,GAAuBngV,OAAS,SAASA,IACvC,IAAoBg8S,GAAiBh5R,GAAjCk5R,GAAY,GACM,mBAAXl8S,KAAuBA,GAASy+S,oBAAoBz+S,KAC/D,IAAK,IAAI1B,GAAI,EAAGhD,GAAI6D,KAAK3B,OAAQc,GAAIhD,GAAGgD,KAAK,CAC3C49S,GAAU97S,KAAK47S,GAAW,IAC1B,IAAK,IAAItvS,GAAiBvR,GAAI,EAAGwB,IAAxB+P,GAAQvN,KAAKb,KAAqBd,OAAQrC,GAAIwB,GAAGxB,MACnD6nB,GAAOtW,GAAMvR,MAAO6E,GAAO3E,KAAK2nB,GAAMA,GAAKuqI,SAAUpyJ,GAAGmD,KAC3D09S,GAAS57S,KAAK4iB,IAIpB,OAAO+8T,cAAc7jC,GAAW/8S,KAAKk/S,UAAWl/S,KAAKmI,KAEvD64U,GAAuB/5B,MAAQ,SAAS3qT,GAAM2qT,IAC5C,IAAI9+S,GAAKnI,KAAKmI,GAAI/K,GAAK4C,KAAKk/S,UAC5B,OAAI9nS,UAAU/Y,OAAS,EAAU2B,KAAK6jB,OAAOzmB,IAAI+K,IAAI8+S,MAAMrqT,IAAIN,IACxDmjT,kBAAkBz/S,KAAe,MAATinT,GAAgB,SAASpjS,IACtDA,GAAKzmB,IAAI+K,IAAI8+S,MAAMl6S,OAAOzQ,KACxB,SAASunB,IACXA,GAAKzmB,IAAI+K,IAAI8+S,MAAM98S,IAAI7N,GAAM2qT,OAWjC+5B,GAAuB58T,KAAO,SAASo9T,GAAQxkV,IAC7C,GAAIoa,UAAU/Y,OAAS,EAAG,CACxB,IAAKrB,MAASwkV,GAAQxhV,KAAKokB,KAAKpnB,GAAOwkV,GAAOxkV,KAC9C,OAAOgD,KAET,IAAIwyM,GAAwB,aAAVgvI,GAAwBnT,wBAA0B9D,eAAgBjuU,GAAO+O,GAAGjO,GAAGkgT,QAAQkkC,IACzG,SAAS/jC,WACPz9S,KAAK09S,gBAAgBphT,IAEvB,SAASihT,aACPv9S,KAAKw9S,kBAAkBlhT,GAAKg8S,MAAOh8S,GAAK6Y,OAE1C,SAASs3H,UAAUnsI,IACjB,OAAY,MAALA,GAAYm9S,UAAYn9S,IAAK,GAAI,WACtC,IAAiCtE,GAA7BqE,GAAIL,KAAKu9F,aAAajhG,IAC1B,OAAO+D,KAAMC,KAAMtE,GAAIw2M,GAAYnyM,GAAGC,IAAI,SAASrD,IACjD+C,KAAK+9F,aAAazhG,GAAMN,GAAEiB,SAIhC,SAASwkV,YAAYnhV,IACnB,OAAY,MAALA,GAAYi9S,YAAcj9S,IAAK,GAAI,WACxC,IAAqDtE,GAAjDqE,GAAIL,KAAK4/S,eAAetjT,GAAKg8S,MAAOh8S,GAAK6Y,OAC7C,OAAO9U,KAAMC,KAAMtE,GAAIw2M,GAAYnyM,GAAGC,IAAI,SAASrD,IACjD+C,KAAKk4S,eAAe57S,GAAKg8S,MAAOh8S,GAAK6Y,MAAOnZ,GAAEiB,SAIpD,OAAOgkV,oBAAoBjhV,KAAM,QAAUwhV,GAAQxkV,GAAOV,GAAK6Y,MAAQssU,YAAch1M,YAEvFu0M,GAAuBv0M,UAAY,SAAS+0M,GAAQv6B,IAClD,IAAI3qT,GAAO+O,GAAGjO,GAAGkgT,QAAQkkC,IAazB,OAAOxhV,KAAKinT,MAAM,QAAUu6B,GAAQllV,GAAK6Y,MANzC,SAASssU,YAAYplV,GAAGL,IACtB,IAAIooC,GAAI6iR,GAAM/qT,KAAK8D,KAAM3D,GAAGL,GAAGgE,KAAK4/S,eAAetjT,GAAKg8S,MAAOh8S,GAAK6Y,QACpE,OAAOivB,IAAK,SAASnnC,IACnB+C,KAAKk4S,eAAe57S,GAAKg8S,MAAOh8S,GAAK6Y,MAAOivB,GAAEnnC,OATlD,SAASwvI,UAAUpwI,GAAGL,IACpB,IAAIooC,GAAI6iR,GAAM/qT,KAAK8D,KAAM3D,GAAGL,GAAGgE,KAAKu9F,aAAajhG,KACjD,OAAO8nC,IAAK,SAASnnC,IACnB+C,KAAK+9F,aAAazhG,GAAM8nC,GAAEnnC,SAWhC+jV,GAAuB/0U,MAAQ,SAAS3P,GAAMU,GAAO8jD,IACnD,IAAItjD,GAAI4Z,UAAU/Y,OAClB,GAAIb,GAAI,EAAG,CACT,GAAoB,iBAATlB,GAAmB,CAE5B,IAAKwkD,MADDtjD,GAAI,IAAGR,GAAQ,IACFV,GAAM0D,KAAKiM,MAAM60C,GAAUxkD,GAAKwkD,IAAW9jD,IAC5D,OAAOgD,KAET8gD,GAAW,GAEb,SAAS09P,YACPx+S,KAAKiM,MAAMwyS,eAAeniT,IAE5B,SAAS4uH,YAAY5qH,IACnB,OAAY,MAALA,GAAYk+S,WAAal+S,IAAK,GAAI,WACvC,IAA6EtE,GAAzEqE,GAAIs3S,UAAU33S,MAAMuiK,iBAAiBviK,KAAM,MAAMwiK,iBAAiBlmK,IACtE,OAAO+D,KAAMC,KAAMtE,GAAIuuU,eAAelqU,GAAGC,IAAI,SAASrD,IACpD+C,KAAKiM,MAAM4rS,YAAYv7S,GAAMN,GAAEiB,IAAI6jD,QAIzC,OAAOmgS,oBAAoBjhV,KAAM,SAAW1D,GAAMU,GAAOkuH,cAE3D81N,GAAuBU,WAAa,SAASplV,GAAM2qT,GAAOnmQ,IAExD,SAAS4gS,WAAWrlV,GAAGL,IACrB,IAAIooC,GAAI6iR,GAAM/qT,KAAK8D,KAAM3D,GAAGL,GAAG27S,UAAU33S,MAAMuiK,iBAAiBviK,KAAM,MAAMwiK,iBAAiBlmK,KAC7F,OAAO8nC,IAAK,SAASnnC,IACnB+C,KAAKiM,MAAM4rS,YAAYv7S,GAAM8nC,GAAEnnC,IAAI6jD,KAGvC,OAPI1pC,UAAU/Y,OAAS,IAAGyiD,GAAW,IAO9B9gD,KAAKinT,MAAM,SAAW3qT,GAAMolV,aAErCV,GAAuBx1U,KAAO,SAASxO,IACrC,OAAOikV,oBAAoBjhV,KAAM,OAAQhD,GAAOkkV,qBAQlDF,GAAuBj0U,OAAS,WAC9B,IAAI3P,GAAK4C,KAAKk/S,UACd,OAAOl/S,KAAKkM,KAAK,kBAAkB,WACjC,IAAInO,GACAiC,KAAK5C,IAAIsoE,MAAQ,IAAM3nE,GAAIiC,KAAKwkB,aAAazmB,GAAEitH,YAAYhrH,UAGnEghV,GAAuBhrT,KAAO,SAASh5B,IACrC,IAAImL,GAAKnI,KAAKmI,GAAI/K,GAAK4C,KAAKk/S,UAC5B,OAAI9nS,UAAU/Y,OAAS,EAAU2B,KAAK6jB,OAAOzmB,IAAI+K,IAAI6tB,MAChC,mBAAVh5B,KAAsBA,GAAQqO,GAAG2qB,KAAKt3B,MAAM2M,GAAI+L,YACpDqoS,kBAAkBz/S,MAAM,SAAS6jB,IACtCA,GAAKzmB,IAAI+K,IAAI6tB,KAAOh5B,QAGxBgkV,GAAuBp0U,MAAQ,SAAS5P,IACtC,IAAImL,GAAKnI,KAAKmI,GAAI/K,GAAK4C,KAAKk/S,UAC5B,OAAI9nS,UAAU/Y,OAAS,EAAU2B,KAAK6jB,OAAOzmB,IAAI+K,IAAIyE,MAC9C6yS,kBAAkBz/S,KAAuB,mBAAVhD,GAAuB,SAAS6mB,GAAM7nB,GAAGmD,IAC7E0kB,GAAKzmB,IAAI+K,IAAIyE,OAAS5P,GAAMd,KAAK2nB,GAAMA,GAAKuqI,SAAUpyJ,GAAGmD,MACtDnC,IAASA,GAAO,SAAS6mB,IAC5BA,GAAKzmB,IAAI+K,IAAIyE,MAAQ5P,OAGzBgkV,GAAuBr0U,SAAW,SAAS3P,IACzC,IAAImL,GAAKnI,KAAKmI,GAAI/K,GAAK4C,KAAKk/S,UAC5B,OAAI9nS,UAAU/Y,OAAS,EAAU2B,KAAK6jB,OAAOzmB,IAAI+K,IAAIwE,SAC9C8yS,kBAAkBz/S,KAAuB,mBAAVhD,GAAuB,SAAS6mB,GAAM7nB,GAAGmD,IAC7E0kB,GAAKzmB,IAAI+K,IAAIwE,SAAWzK,KAAKqC,IAAI,EAAGvH,GAAMd,KAAK2nB,GAAMA,GAAKuqI,SAAUpyJ,GAAGmD,OACpEnC,GAAQkF,KAAKqC,IAAI,EAAGvH,IAAQ,SAAS6mB,IACxCA,GAAKzmB,IAAI+K,IAAIwE,SAAW3P,OAG5BgkV,GAAuB90U,KAAO,SAASoD,GAAMgsS,IAC3C,IAAInzS,GAAKnI,KAAKmI,GAAI/K,GAAK4C,KAAKk/S,UAC5B,GAAI9nS,UAAU/Y,OAAS,EAAG,CACxB,IAAI0oF,GAAU25P,GAAsBiB,GAAY36B,GAChD,IACEA,GAAyB7+S,GACzBs3S,kBAAkBz/S,MAAM,SAAS6jB,GAAM7nB,GAAGmD,IACxCuhV,GAAuB78T,GAAKzmB,IAAI+K,IAChCmH,GAAKpT,KAAK2nB,GAAMA,GAAKuqI,SAAUpyJ,GAAGmD,OAEpC,QACAuhV,GAAuB35P,GACvBigO,GAAyB26B,SAG3BliC,kBAAkBz/S,MAAM,SAAS6jB,IAC/B,IAAItX,GAAasX,GAAKzmB,IAAI+K,KACzBoE,GAAW2jB,QAAU3jB,GAAW2jB,MAAQ7kB,GAAG0jB,SAAS,QAAS,MAAO,eAAeziB,GAAGgD,GAAMgsS,OAGjG,OAAOt7S,MAETghV,GAAuBz0U,WAAa,WAElC,IADA,IAAiFswS,GAAiBh5R,GAAMtX,GAApGq1U,GAAM5hV,KAAKmI,GAAI81M,KAAQuiI,GAAiBpjV,GAAK4C,KAAKk/S,UAAWnC,GAAY,GACpE59S,GAAI,EAAGhD,GAAI6D,KAAK3B,OAAQc,GAAIhD,GAAGgD,KAAK,CAC3C49S,GAAU97S,KAAK47S,GAAW,IAC1B,IAAK,IAAItvS,GAAiBvR,GAAI,EAAGwB,IAAxB+P,GAAQvN,KAAKb,KAAqBd,OAAQrC,GAAIwB,GAAGxB,MACpD6nB,GAAOtW,GAAMvR,MAEf2kV,kBAAkB98T,GAAM7nB,GAAGoB,GAAI6gN,GAAK,CAClCx2I,MAFFl7D,GAAasX,GAAKzmB,IAAIwkV,KAEHn6Q,KACjBzxC,KAAMzpB,GAAWypB,KACjBppB,MAAOL,GAAWK,MAAQL,GAAWI,SACrCA,SAAUJ,GAAWI,WAGzBkwS,GAAS57S,KAAK4iB,IAGlB,OAAO+8T,cAAc7jC,GAAW3/S,GAAI6gN,KAgFtC5yM,GAAGud,IAAIk+D,KAAO,WACZ,IAAqK+6P,GAAjKzhR,GAAQ/0D,GAAG+0D,MAAM+oE,SAAU1qI,GAASqjV,GAA0BC,GAAgB,EAAGC,GAAgB,EAAGC,GAAc,EAAGC,GAAiB,CAAE,IAAMC,GAAa,KAC/J,SAASr7P,KAAKp/D,IACZA,GAAExb,MAAK,WACL,IAEqkBk2U,GAFjkB16T,GAAIrc,GAAGO,OAAO5L,MACdimT,GAASjmT,KAAK0lT,WAAatlP,GAAOumP,GAAS3mT,KAAK0lT,UAAYtlP,GAAM4C,OAClEhwD,GAAsB,MAAdmvU,GAAqBx7B,GAAO3zS,MAAQ2zS,GAAO3zS,MAAMtU,MAAMioT,GAAQu7B,IAAkBv7B,GAAOt9P,SAAW84R,GAAY3/F,GAA4B,MAAfq/F,GAAsBl7B,GAAOnkE,WAAamkE,GAAOnkE,WAAW9jP,MAAMioT,GAAQu7B,IAAkB9nC,YAAcynC,GAAatgT,GAAO7Z,GAAE7b,UAAU,SAAS3F,KAAK8M,GAAO2zS,IAAS07B,GAAY9gT,GAAKz1B,QAAQjM,OAAO,IAAK,WAAWukB,KAAK,QAAS,QAAQnY,MAAM,UAAWwqO,IAAI6rG,GAAWj3U,GAAGkB,WAAWg1B,GAAKshB,QAAQ52C,MAAM,UAAWwqO,IAAG1pO,SAAUw1U,GAAal3U,GAAGkB,WAAWg1B,GAAKkE,SAASx5B,MAAM,UAAW,GAAI21B,GAAc1/B,KAAKqC,IAAIw9U,GAAe,GAAKE,GACpjBvuU,GAAQiiU,cAAchvB,IAASxgQ,GAAOz+B,GAAE7b,UAAU,WAAW3F,KAAK,CAAE,IAAMs8U,IAAcr8R,GAAKr6C,QAAQC,OAAO,QAAQqY,KAAK,QAAS,UACtI/Y,GAAGkB,WAAW45C,KACdk8R,GAAUt2U,OAAO,QACjBs2U,GAAUt2U,OAAO,QACjB,IAAoQwmB,GAAIgmB,GAAI3lB,GAAImxC,GAA5Q0+Q,GAAYJ,GAAUz2U,OAAO,QAAS82U,GAAaH,GAAW32U,OAAO,QAASJ,GAAO+1B,GAAK31B,OAAO,QAAQJ,KAAKg3O,IAAamgG,GAAYN,GAAUz2U,OAAO,QAASg3U,GAAaL,GAAW32U,OAAO,QAASo0D,GAAkB,QAAXvhE,IAA+B,SAAXA,IAAqB,EAAI,EAcjQ,GAbe,WAAXA,IAAkC,QAAXA,IACzB2jV,GAAgBS,aAActwT,GAAK,IAAKK,GAAK,IAAK2lB,GAAK,KAAMwrB,GAAK,KAClEv4D,GAAK4Y,KAAK,KAAM47C,GAAO,EAAI,MAAQ,SAAS/zD,MAAM,cAAe,UACjEu2U,GAAWp+T,KAAK,IAAK,IAAM1Q,GAAM,GAAK,IAAMssD,GAAOgiR,GAAgB,MAAQtuU,GAAM,GAAK,IAAMssD,GAAOgiR,MAEnGI,GAAgBU,aAAcvwT,GAAK,IAAKK,GAAK,IAAK2lB,GAAK,KAAMwrB,GAAK,KAClEv4D,GAAK4Y,KAAK,KAAM,SAASnY,MAAM,cAAe+zD,GAAO,EAAI,MAAQ,SACjEwiR,GAAWp+T,KAAK,IAAK,IAAM47C,GAAOgiR,GAAgB,IAAMtuU,GAAM,GAAK,MAAQA,GAAM,GAAK,IAAMssD,GAAOgiR,KAErGS,GAAUr+T,KAAK2/C,GAAI/D,GAAO+hR,IAC1BY,GAAUv+T,KAAKwO,GAAIotC,GAAOp+B,IAC1B8gT,GAAWt+T,KAAKm0B,GAAI,GAAGn0B,KAAK2/C,GAAI/D,GAAO+hR,IACvCa,GAAWx+T,KAAKmO,GAAI,GAAGnO,KAAKwO,GAAIotC,GAAOp+B,IACnC+kR,GAAO6zB,UAAW,CACpB,IAAI9vU,GAAIi8S,GAAQ9xR,GAAKnqB,GAAE8vU,YAAc,EACrCv0B,GAASU,GAAS,SAAStqT,IACzB,OAAOqO,GAAErO,IAAKw4B,SAEPoxR,GAAOu0B,UAChBv0B,GAASU,GAET27B,GAASpmV,KAAKkmV,GAAez7B,GAAQV,IAEvCo8B,GAAUnmV,KAAKkmV,GAAen8B,GAAQU,IACtC47B,GAAWrmV,KAAKkmV,GAAez7B,GAAQA,OAqD3C,OAlDA7/N,KAAK1mB,MAAQ,SAAS11D,IACpB,OAAK0M,UAAU/Y,QACf+hE,GAAQ11D,GACDo8E,MAFuB1mB,IAIhC0mB,KAAKroF,OAAS,SAASiM,IACrB,OAAK0M,UAAU/Y,QACfI,GAASiM,MAAKq4U,GAAqBr4U,GAAI,GAAKo3U,GACrCh7P,MAFuBroF,IAIhCqoF,KAAK9zE,MAAQ,WACX,OAAKoE,UAAU/Y,QACf6jV,GAAiB1qC,SAASpgS,WACnB0vE,MAFuBo7P,IAIhCp7P,KAAKq7P,WAAa,SAASz3U,IACzB,OAAK0M,UAAU/Y,QACf8jV,GAAaz3U,GACNo8E,MAFuBq7P,IAIhCr7P,KAAK07J,WAAa,SAAS93O,IACzB,OAAK0M,UAAU/Y,QACfwjV,GAAcn3U,GACPo8E,MAFuB+6P,IAIhC/6P,KAAK6lH,SAAW,SAASjiM,IACvB,IAAIlN,GAAI4Z,UAAU/Y,OAClB,OAAKb,IACLukV,IAAiBr3U,GACjBs3U,IAAiB5qU,UAAU5Z,GAAI,GACxBspF,MAHQi7P,IAKjBj7P,KAAKi7P,cAAgB,SAASr3U,IAC5B,OAAK0M,UAAU/Y,QACf0jV,IAAiBr3U,GACVo8E,MAFuBi7P,IAIhCj7P,KAAKk7P,cAAgB,SAASt3U,IAC5B,OAAK0M,UAAU/Y,QACf2jV,IAAiBt3U,GACVo8E,MAFuBk7P,IAIhCl7P,KAAKm7P,YAAc,SAASv3U,IAC1B,OAAK0M,UAAU/Y,QACf4jV,IAAev3U,GACRo8E,MAFuBm7P,IAIhCn7P,KAAKk8P,cAAgB,WACnB,OAAO5rU,UAAU/Y,QAAUyoF,MAEtBA,MAET,IAAIg7P,GAA2B,SAAUiB,GAAqB,CAC5D30T,IAAK,EACLne,MAAO,EACPke,OAAQ,EACRne,KAAM,GAER,SAAS6yU,aAAar4U,GAAW8nB,GAAIC,IACnC/nB,GAAU4Z,KAAK,aAAa,SAAS/nB,IACnC,IAAI43D,GAAK3hC,GAAGj2B,IACZ,MAAO,cAAgBwN,SAASoqD,IAAMA,GAAK1hC,GAAGl2B,KAAM,SAGxD,SAASymV,aAAat4U,GAAWmoB,GAAIC,IACnCpoB,GAAU4Z,KAAK,aAAa,SAAS/nB,IACnC,IAAI43D,GAAKthC,GAAGt2B,IACZ,MAAO,gBAAkBwN,SAASoqD,IAAMA,GAAKrhC,GAAGv2B,KAAM,OAG1DgP,GAAGud,IAAI0yG,MAAQ,WACb,IAAoI2nN,GAAeC,GAA/IhzT,GAAQurR,iBAAiBngL,MAAO,aAAc,QAAS,YAAa5wH,GAAI,KAAMkH,GAAI,KAAMuxU,GAAU,CAAE,EAAG,GAAKC,GAAU,CAAE,EAAG,GAAmCC,IAAS,EAAMC,IAAS,EAAMC,GAAUC,GAAoB,GAC9N,SAASloN,MAAM5zG,IACbA,GAAExb,MAAK,WACL,IAAIwb,GAAIrc,GAAGO,OAAO5L,MAAMiM,MAAM,iBAAkB,OAAOA,MAAM,8BAA+B,iBAAiBK,GAAG,kBAAmBm3U,YAAYn3U,GAAG,mBAAoBm3U,YAClKj0T,GAAa9H,GAAE7b,UAAU,eAAe3F,KAAK,CAAE,IACnDspB,GAAW1jB,QAAQC,OAAO,QAAQqY,KAAK,QAAS,cAAcnY,MAAM,aAAc,UAAUA,MAAM,SAAU,aAC5Gyb,GAAE7b,UAAU,WAAW3F,KAAK,CAAE,IAAK4F,QAAQC,OAAO,QAAQqY,KAAK,QAAS,UAAUnY,MAAM,SAAU,QAClG,IAAIw7M,GAAS//L,GAAE7b,UAAU,WAAW3F,KAAKq9U,GAASnpC,aAClD3yF,GAAO5kK,OAAO91C,SACd06M,GAAO37M,QAAQC,OAAO,KAAKqY,KAAK,SAAS,SAAS/nB,IAChD,MAAO,UAAYA,MAClB4P,MAAM,UAAU,SAAS5P,IAC1B,OAAOqnV,GAAmBrnV,OACzB0P,OAAO,QAAQqY,KAAK,KAAK,SAAS/nB,IACnC,MAAO,QAAQgF,KAAKhF,KAAM,EAAI,QAC7B+nB,KAAK,KAAK,SAAS/nB,IACpB,MAAO,QAAQgF,KAAKhF,KAAM,EAAI,QAC7B+nB,KAAK,QAAS,GAAGA,KAAK,SAAU,GAAGnY,MAAM,aAAc,UAC1Dw7M,GAAOx7M,MAAM,UAAWqvH,MAAM72G,QAAU,OAAS,MACjD,IAA8E/Q,GAA1EiwU,GAAUt4U,GAAGkB,WAAWmb,IAAIk8T,GAAmBv4U,GAAGkB,WAAWijB,IAC7D9kB,KACFgJ,GAAQiiU,cAAcjrU,IACtBk5U,GAAiBx/T,KAAK,IAAK1Q,GAAM,IAAI0Q,KAAK,QAAS1Q,GAAM,GAAKA,GAAM,IACpEmwU,QAAQF,KAEN/xU,KACF8B,GAAQiiU,cAAc/jU,IACtBgyU,GAAiBx/T,KAAK,IAAK1Q,GAAM,IAAI0Q,KAAK,SAAU1Q,GAAM,GAAKA,GAAM,IACrEowU,QAAQH,KAEVtiT,OAAOsiT,OAyDX,SAAStiT,OAAO3Z,IACdA,GAAE7b,UAAU,WAAWuY,KAAK,aAAa,SAAS/nB,IAChD,MAAO,aAAe8mV,IAAS,KAAK9hV,KAAKhF,KAAM,IAAM+mV,IAAS,KAAK/hV,KAAKhF,KAAM,OAGlF,SAASwnV,QAAQn8T,IACfA,GAAE9b,OAAO,WAAWwY,KAAK,IAAK++T,GAAQ,IACtCz7T,GAAE7b,UAAU,2BAA2BuY,KAAK,QAAS++T,GAAQ,GAAKA,GAAQ,IAE5E,SAASW,QAAQp8T,IACfA,GAAE9b,OAAO,WAAWwY,KAAK,IAAKg/T,GAAQ,IACtC17T,GAAE7b,UAAU,2BAA2BuY,KAAK,SAAUg/T,GAAQ,GAAKA,GAAQ,IAE7E,SAASK,aACP,IAAyUjnT,GAAmCtkB,GAAxWiR,GAASnpB,KAAM+jV,GAAc14U,GAAGO,OAAOP,GAAG6kB,MAAM/G,QAAS66T,GAAS9zT,GAAMwrR,GAAGvyR,GAAQ/R,WAAYsQ,GAAIrc,GAAGO,OAAOud,IAAS86T,GAAWF,GAAYr7I,QAASw7I,IAAa,UAAU7iV,KAAK4iV,KAAav5U,GAAGy5U,IAAa,UAAU9iV,KAAK4iV,KAAaryU,GAAG+yM,GAAWo/H,GAAY/3U,QAAQ,UAAWm3S,GAAc9B,sBAAsBl4R,IAAiB0mI,GAASxkJ,GAAG4vB,MAAM9R,IAC/VrP,GAAIzO,GAAGO,OAAO+rS,UAAUxuR,KAAS7c,GAAG,gBAAiB83U,SAAS93U,GAAG,cAAe+3U,OAOpF,GANIh5U,GAAG6kB,MAAMu0M,eACX3qN,GAAExN,GAAG,kBAAmBg4U,WAAWh4U,GAAG,iBAAkBi4U,UAExDzqU,GAAExN,GAAG,kBAAmBg4U,WAAWh4U,GAAG,gBAAiBi4U,UAEzD78T,GAAE2vN,YAAYxrO,UAAU,KAAKwrO,YACzB1yB,GACF90D,GAAO,GAAKszL,GAAQ,GAAKtzL,GAAO,GAChCA,GAAO,GAAKuzL,GAAQ,GAAKvzL,GAAO,QAC3B,GAAIo0L,GAAU,CACnB,IAAIO,IAAM,KAAKnjV,KAAK4iV,IAAWQ,IAAM,KAAKpjV,KAAK4iV,IAC/C/rU,GAAS,CAAEirU,GAAQ,EAAIqB,IAAM30L,GAAO,GAAIuzL,GAAQ,EAAIqB,IAAM50L,GAAO,IACjEA,GAAO,GAAKszL,GAAQqB,IACpB30L,GAAO,GAAKuzL,GAAQqB,SACXp5U,GAAG6kB,MAAM+mF,SAAQz6E,GAASqzH,GAAOrxJ,SAO5C,SAAS4lV,UACiB,IAApB/4U,GAAG6kB,MAAMw0T,UACN//H,KACHnoL,GAAS,KACTqzH,GAAO,IAAMszL,GAAQ,GACrBtzL,GAAO,IAAMuzL,GAAQ,GACrBz+H,GAAW,GAEb42F,0BAGJ,SAAS8oC,QACiB,IAApBh5U,GAAG6kB,MAAMw0T,SAA6B,GAAZ//H,KAC5B90D,GAAO,IAAMszL,GAAQ,GACrBtzL,GAAO,IAAMuzL,GAAQ,GACrBz+H,GAAW,EACX42F,0BAGJ,SAAS+oC,YACP,IAAI9iV,GAAQ6J,GAAG4vB,MAAM9R,IAAS85R,IAAQ,EAClC/qS,KACF1W,GAAM,IAAM0W,GAAO,GACnB1W,GAAM,IAAM0W,GAAO,IAEhBysM,KACCt5M,GAAG6kB,MAAM+mF,QACNz6E,KAAQA,GAAS,EAAG2mT,GAAQ,GAAKA,GAAQ,IAAM,GAAIC,GAAQ,GAAKA,GAAQ,IAAM,IACnFvzL,GAAO,GAAKszL,KAAU3hV,GAAM,GAAKg7B,GAAO,KACxCqzH,GAAO,GAAKuzL,KAAU5hV,GAAM,GAAKg7B,GAAO,MACnCA,GAAS,MAEd0nT,IAAaS,MAAMnjV,GAAOkJ,GAAG,KAC/Bm5U,QAAQn8T,IACRu7R,IAAQ,GAENkhC,IAAaQ,MAAMnjV,GAAOoQ,GAAG,KAC/BkyU,QAAQp8T,IACRu7R,IAAQ,GAENA,KACF5hR,OAAO3Z,IACPs8T,GAAO,CACL10U,KAAM,QACNpS,KAAMynN,GAAW,OAAS,YAIhC,SAASggI,MAAMnjV,GAAO4+D,GAAOpkE,IAC3B,IAAoJsI,GAAKC,GAArJmP,GAAQiiU,cAAcv1Q,IAAQznB,GAAKjlC,GAAM,GAAI+pF,GAAK/pF,GAAM,GAAItO,GAAWyqJ,GAAO7zJ,IAAI4nE,GAAS5nE,GAAIonV,GAAUD,GAASpjU,GAAO6jD,GAAO,GAAKA,GAAO,GAiBhJ,GAhBI+gJ,KACFhsK,IAAMvzC,GACNq4F,IAAM19E,GAAO3a,IAEfd,IAAOtI,GAAIsnV,GAASD,IAAUnhV,KAAKqC,IAAIo0C,GAAIz2C,KAAKoC,IAAIm5F,GAAIj8F,GAAMxF,MAAOwF,GAAMxF,IACvE2oN,GACFpgN,IAAOD,IAAOc,IAAY2a,IAEtByc,KAAQp3B,GAAWlD,KAAKqC,IAAIo0C,GAAIz2C,KAAKoC,IAAIm5F,GAAI,EAAIjhE,GAAOxgC,IAAKsI,MAC7Dc,GAAWd,IACbC,GAAMD,GACNA,GAAMc,IAENb,GAAMa,IAGNw+D,GAAO,IAAMt/D,IAAOs/D,GAAO,IAAMr/D,GAInC,OAHIvI,GAAGknV,GAAgB,KAAWD,GAAgB,KAClDr/Q,GAAO,GAAKt/D,GACZs/D,GAAO,GAAKr/D,IACL,EAGX,SAASggV,WACPD,YACA58T,GAAEzb,MAAM,iBAAkB,OAAOJ,UAAU,WAAWI,MAAM,UAAWqvH,MAAM72G,QAAU,OAAS,MAChGpZ,GAAGO,OAAO,QAAQK,MAAM,SAAU,MAClC6N,GAAExN,GAAG,kBAAmB,MAAMA,GAAG,gBAAiB,MAAMA,GAAG,kBAAmB,MAAMA,GAAG,iBAAkB,MAAMA,GAAG,gBAAiB,MAAMA,GAAG,cAAe,MAC3J62S,KACA6gC,GAAO,CACL10U,KAAM,aAtFVoY,GAAEzb,MAAM,iBAAkB,QAAQJ,UAAU,WAAWI,MAAM,UAAW,MACxEZ,GAAGO,OAAO,QAAQK,MAAM,SAAU83U,GAAY93U,MAAM,WACpD+3U,GAAO,CACL10U,KAAM,eAERg1U,YAyJF,OAnPAhpN,MAAMprG,MAAQ,SAASxI,IACrBA,GAAExb,MAAK,WACL,IAAI83U,GAAS9zT,GAAMwrR,GAAG17S,KAAMoX,WAAYwtU,GAAU,CAChDl6U,EAAGy4U,GACHvxU,EAAGwxU,GACHpnV,EAAGinV,GACH9jV,EAAG+jV,IACF2B,GAAU7kV,KAAK0lT,WAAak/B,GAC/B5kV,KAAK0lT,UAAYk/B,GACb59B,GACF37S,GAAGO,OAAO5L,MAAMuM,aAAaL,KAAK,eAAe,WAC/C+2U,GAAgB4B,GAAQ7oV,EACxBknV,GAAgB2B,GAAQ1lV,EACxBgkV,GAAU0B,GAAQn6U,EAClB04U,GAAUyB,GAAQjzU,EAClBoyU,GAAO,CACL10U,KAAM,kBAEP23S,MAAM,eAAe,WACtB,IAAIh7P,GAAK2/Q,oBAAoBuX,GAASyB,GAAQl6U,GAAIilD,GAAKi8Q,oBAAoBwX,GAASwB,GAAQhzU,GAE5F,OADAqxU,GAAgBC,GAAgB,KACzB,SAASjmV,IACdkmV,GAAUyB,GAAQl6U,EAAIuhD,GAAGhvD,IACzBmmV,GAAUwB,GAAQhzU,EAAI+9C,GAAG1yD,IACzB+mV,GAAO,CACL10U,KAAM,QACNpS,KAAM,eAGTgP,KAAK,aAAa,WACnB+2U,GAAgB2B,GAAQ5oV,EACxBknV,GAAgB0B,GAAQzlV,EACxB6kV,GAAO,CACL10U,KAAM,QACNpS,KAAM,WAER8mV,GAAO,CACL10U,KAAM,iBAIV00U,GAAO,CACL10U,KAAM,eAER00U,GAAO,CACL10U,KAAM,QACNpS,KAAM,WAER8mV,GAAO,CACL10U,KAAM,kBA8HdgsH,MAAM5wH,EAAI,SAASU,IACjB,OAAKgM,UAAU/Y,QAEfklV,GAAUC,KADV94U,GAAIU,KACgC,GAAKwG,IAClC0pH,OAHuB5wH,IAKhC4wH,MAAM1pH,EAAI,SAASxG,IACjB,OAAKgM,UAAU/Y,QAEfklV,GAAUC,IAAqB94U,IAAK,IADpCkH,GAAIxG,KAEGkwH,OAHuB1pH,IAKhC0pH,MAAMnsH,MAAQ,SAAS/D,IACrB,OAAKgM,UAAU/Y,QACXqM,IAAKkH,IAAGyxU,KAAWj4U,GAAE,GAAIk4U,KAAWl4U,GAAE,IAAaV,GAAG24U,KAAWj4U,GAAYwG,KAAG0xU,KAAWl4U,IACxFkwH,OAFuB5wH,IAAKkH,GAAI,CAAEyxU,GAAQC,IAAW54U,GAAI24U,GAASzxU,GAAI0xU,GAAS,MAIxFhoN,MAAM13D,OAAS,SAASx4D,IACtB,IAAIknB,GAAIC,GAAII,GAAIC,GAAI31B,GACpB,OAAKma,UAAU/Y,QAqBXqM,KACF4nB,GAAKlnB,GAAE,GAAImnB,GAAKnnB,GAAE,GACdwG,KAAG0gB,GAAKA,GAAG,GAAIC,GAAKA,GAAG,IAC3B0wT,GAAgB,CAAE3wT,GAAIC,IAClB7nB,GAAE+Q,SAAQ6W,GAAK5nB,GAAE4nB,IAAKC,GAAK7nB,GAAE6nB,KAC7BA,GAAKD,KAAIr1B,GAAIq1B,GAAIA,GAAKC,GAAIA,GAAKt1B,IAC/Bq1B,IAAM6wT,GAAQ,IAAM5wT,IAAM4wT,GAAQ,KAAIA,GAAU,CAAE7wT,GAAIC,MAExD3gB,KACF+gB,GAAKvnB,GAAE,GAAIwnB,GAAKxnB,GAAE,GACdV,KAAGioB,GAAKA,GAAG,GAAIC,GAAKA,GAAG,IAC3BswT,GAAgB,CAAEvwT,GAAIC,IAClBhhB,GAAE6J,SAAQkX,GAAK/gB,GAAE+gB,IAAKC,GAAKhhB,GAAEghB,KAC7BA,GAAKD,KAAI11B,GAAI01B,GAAIA,GAAKC,GAAIA,GAAK31B,IAC/B01B,IAAMywT,GAAQ,IAAMxwT,IAAMwwT,GAAQ,KAAIA,GAAU,CAAEzwT,GAAIC,MAErD0oG,QApCD5wH,KACEu4U,IACF3wT,GAAK2wT,GAAc,GAAI1wT,GAAK0wT,GAAc,KAE1C3wT,GAAK6wT,GAAQ,GAAI5wT,GAAK4wT,GAAQ,GAC1Bz4U,GAAE+Q,SAAQ6W,GAAK5nB,GAAE+Q,OAAO6W,IAAKC,GAAK7nB,GAAE+Q,OAAO8W,KAC3CA,GAAKD,KAAIr1B,GAAIq1B,GAAIA,GAAKC,GAAIA,GAAKt1B,MAGnC2U,KACEsxU,IACFvwT,GAAKuwT,GAAc,GAAItwT,GAAKswT,GAAc,KAE1CvwT,GAAKywT,GAAQ,GAAIxwT,GAAKwwT,GAAQ,GAC1BxxU,GAAE6J,SAAQkX,GAAK/gB,GAAE6J,OAAOkX,IAAKC,GAAKhhB,GAAE6J,OAAOmX,KAC3CA,GAAKD,KAAI11B,GAAI01B,GAAIA,GAAKC,GAAIA,GAAK31B,MAGhCyN,IAAKkH,GAAI,CAAE,CAAE0gB,GAAIK,IAAM,CAAEJ,GAAIK,KAASloB,GAAI,CAAE4nB,GAAIC,IAAO3gB,IAAK,CAAE+gB,GAAIC,MAoB7E0oG,MAAMn8F,MAAQ,WAKZ,OAJKm8F,MAAM72G,UACT0+T,GAAU,CAAE,EAAG,GAAKC,GAAU,CAAE,EAAG,GACnCH,GAAgBC,GAAgB,MAE3B5nN,OAETA,MAAM72G,MAAQ,WACZ,QAAS/Z,IAAKy4U,GAAQ,IAAMA,GAAQ,MAAQvxU,IAAKwxU,GAAQ,IAAMA,GAAQ,IAElE/3U,GAAG+lB,OAAOkqG,MAAOprG,GAAO,OAEjC,IAAIwzT,GAAqB,CACvBlmV,EAAG,YACHoc,EAAG,YACH5b,EAAG,YACH8b,EAAG,YACH2pK,GAAI,cACJH,GAAI,cACJC,GAAI,cACJC,GAAI,eAEFggK,GAAsB,CAAE,CAAE,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,MAAQ,CAAE,IAAK,KAAO,CAAE,IAAK,KAAO,IACpGn0B,GAAiB9B,GAAQhuN,OAASszN,GAAexsM,WACjDy+N,GAAoBz1B,GAAe/oM,IACnCy+N,GAAoBD,GAAkB,yBAE1C,SAASE,wBAAwB3tU,IAC/B,OAAOA,GAAK4tU,cA8Cd,SAASC,cAAc/7M,GAAQ03L,GAASthO,IACtC,SAASn/B,MAAM11D,IACb,OAAOy+H,GAAOz+H,IAUhB,SAASy6U,WAAWvhR,GAAQ8B,IAC1B,IAAkCv8C,IAAvBy6C,GAAO,GAAKA,GAAO,IAAoB8B,GAAO1pE,GAAIqP,GAAG6tS,OAAOksC,GAAoBj8T,IAC3F,OAAOntB,IAAKopV,GAAmB/mV,OAAS,CAAEwiU,GAAQrrT,KAAM+jU,yBAAyB31Q,GAAOvsB,KAAI,SAASh7C,IACnG,OAAOA,GAAI,WACTqpE,IAAO,IAAQ1pE,GAAgF6kU,GAAQ13S,GAASi8T,GAAmBppV,GAAI,GAAKopV,GAAmBppV,IAAKmtB,GAASntB,GAAI,EAAIA,IAAlK,CAAEqpV,GAA2B9L,yBAAyB31Q,GAAQ8B,IAAO,IAgC9F,OA5CAtF,MAAM3kD,OAAS,SAAS/Q,IACtB,OAAO46U,kBAAkBn8M,GAAO1tH,OAAO/Q,MAEzC01D,MAAM/W,OAAS,SAAS3+C,IACtB,OAAK0M,UAAU/Y,QACf8qI,GAAO9/E,OAAO3+C,IACP01D,OAFuB+oE,GAAO9/E,SAAShS,IAAIiuS,oBAUpDllR,MAAM41Q,KAAO,SAASv2Q,GAAU8lR,IAC9B,IAAIl8R,GAAS+W,MAAM/W,SAAUua,GAAS8xQ,eAAersR,IAASzZ,GAAqB,MAAZ6vB,GAAmB0lR,WAAWvhR,GAAQ,IAA0B,iBAAbnE,IAAyB0lR,WAAWvhR,GAAQnE,IAEtK,SAAS+lR,QAAQnuU,IACf,OAAQzN,MAAMyN,MAAUooD,GAAS/rD,MAAM2D,GAAMiuU,mBAAmBjuU,GAAO,GAAIkuU,IAAMlnV,OAEnF,OAJIuxC,KAAQ6vB,GAAW7vB,GAAO,GAAI21S,GAAO31S,GAAO,IAIzCwwB,MAAM/W,OAAO0sR,cAAc1sR,GAAQk8R,GAAO,EAAI,CACnD51U,MAAO,SAAS0H,IACd,KAAOmuU,QAAQnuU,GAAOooD,GAAS9vD,MAAM0H,MAAQA,GAAOiuU,kBAAkBjuU,GAAO,GAC7E,OAAOA,IAETmkB,KAAM,SAASnkB,IACb,KAAOmuU,QAAQnuU,GAAOooD,GAASjkC,KAAKnkB,MAAQA,GAAOiuU,mBAAmBjuU,GAAO,GAC7E,OAAOA,KAEPooD,MAENW,MAAMptD,MAAQ,SAASysD,GAAU8lR,IAC/B,IAAI3hR,GAAS8xQ,eAAet1Q,MAAM/W,UAAWzZ,GAAqB,MAAZ6vB,GAAmB0lR,WAAWvhR,GAAQ,IAA0B,iBAAbnE,GAAwB0lR,WAAWvhR,GAAQnE,KAAaA,GAAS/rD,OAAS,CAAE,CACnLA,MAAO+rD,IACN8lR,IAEH,OADI31S,KAAQ6vB,GAAW7vB,GAAO,GAAI21S,GAAO31S,GAAO,IACzC6vB,GAAS/rD,MAAMkwD,GAAO,GAAI0hR,mBAAmB1hR,GAAO,GAAK,GAAI2hR,GAAO,EAAI,EAAIA,KAErFnlR,MAAMoiL,WAAa,WACjB,OAAOjjJ,IAETn/B,MAAM4C,KAAO,WACX,OAAOkiR,cAAc/7M,GAAOnmE,OAAQ69P,GAASthO,KAExC85O,sBAAsBj5Q,MAAO+oE,IAEtC,SAASm8M,kBAAkBroV,IACzB,OAAO,IAAI6b,KAAK7b,IAnGlBoyT,GAAeo2B,IAAM3sU,KAAKjb,UAAUonV,cAAgB,IAAInsU,KAAK,4BAA8BksU,wBAA0BD,GAIrHC,wBAAwBz0I,MAAQ,SAAS64E,IACvC,IAAI/xQ,GAAO,IAAIyB,KAAKswQ,IACpB,OAAOx/Q,MAAMyN,IAAQ,KAAOA,IAE9B2tU,wBAAwBrsU,SAAWosU,GAAkBpsU,SACrD40S,GAAQtoC,OAASwpC,kBAAiB,SAASp3S,IACzC,OAAO,IAAIm2S,GAAiC,IAAzBtrT,KAAKyN,MAAM0H,GAAO,SACpC,SAASA,GAAMa,IAChBb,GAAKm3S,QAAQn3S,GAAKooN,UAAiC,IAArBv9N,KAAKyN,MAAMuI,QACxC,SAASb,IACV,OAAOA,GAAKwnK,gBAEd0uI,GAAQm4B,QAAUn4B,GAAQtoC,OAAOvxQ,MACjC65S,GAAQm4B,QAAQp/N,IAAMinM,GAAQtoC,OAAO3+J,IAAI5yG,MACzC65S,GAAQo4B,OAASl3B,kBAAiB,SAASp3S,IACzC,OAAO,IAAIm2S,GAAiC,IAAzBtrT,KAAKyN,MAAM0H,GAAO,SACpC,SAASA,GAAMa,IAChBb,GAAKm3S,QAAQn3S,GAAKooN,UAAiC,IAArBv9N,KAAKyN,MAAMuI,QACxC,SAASb,IACV,OAAOA,GAAKunK,gBAEd2uI,GAAQq4B,QAAUr4B,GAAQo4B,OAAOjyU,MACjC65S,GAAQq4B,QAAQt/N,IAAMinM,GAAQo4B,OAAOr/N,IAAI5yG,MACzC65S,GAAQs4B,KAAOp3B,kBAAiB,SAASp3S,IACvC,IAAIyuU,GAAWzuU,GAAK0uQ,oBAAsB,GAC1C,OAAO,IAAIynC,GAA0D,MAAjDtrT,KAAKyN,MAAM0H,GAAO,KAAOyuU,IAAYA,QACxD,SAASzuU,GAAMa,IAChBb,GAAKm3S,QAAQn3S,GAAKooN,UAAiC,KAArBv9N,KAAKyN,MAAMuI,QACxC,SAASb,IACV,OAAOA,GAAK4D,cAEdsyS,GAAQw4B,MAAQx4B,GAAQs4B,KAAKnyU,MAC7B65S,GAAQw4B,MAAMz/N,IAAMinM,GAAQs4B,KAAKv/N,IAAI5yG,MACrC65S,GAAQ93S,MAAQg5S,kBAAiB,SAASp3S,IAGxC,OAFAA,GAAOk2S,GAAQ73S,IAAI2B,KACdw2S,QAAQ,GACNx2S,MACN,SAASA,GAAMa,IAChBb,GAAKi3S,SAASj3S,GAAK8D,WAAajD,OAC/B,SAASb,IACV,OAAOA,GAAK8D,cAEdoyS,GAAQ7qL,OAAS6qL,GAAQ93S,MAAM/B,MAC/B65S,GAAQ7qL,OAAOpc,IAAMinM,GAAQ93S,MAAM6wG,IAAI5yG,MAsDvC,IAAI0xU,GAAqB,CAAE,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,SACnIY,GAA4B,CAAE,CAAEz4B,GAAQtoC,OAAQ,GAAK,CAAEsoC,GAAQtoC,OAAQ,GAAK,CAAEsoC,GAAQtoC,OAAQ,IAAM,CAAEsoC,GAAQtoC,OAAQ,IAAM,CAAEsoC,GAAQo4B,OAAQ,GAAK,CAAEp4B,GAAQo4B,OAAQ,GAAK,CAAEp4B,GAAQo4B,OAAQ,IAAM,CAAEp4B,GAAQo4B,OAAQ,IAAM,CAAEp4B,GAAQs4B,KAAM,GAAK,CAAEt4B,GAAQs4B,KAAM,GAAK,CAAEt4B,GAAQs4B,KAAM,GAAK,CAAEt4B,GAAQs4B,KAAM,IAAM,CAAEt4B,GAAQ73S,IAAK,GAAK,CAAE63S,GAAQ73S,IAAK,GAAK,CAAE63S,GAAQ8E,KAAM,GAAK,CAAE9E,GAAQ93S,MAAO,GAAK,CAAE83S,GAAQ93S,MAAO,GAAK,CAAE83S,GAAQ/3S,KAAM,IACxaywU,GAA2B52B,GAAeQ,MAAM,CAAE,CAAE,MAAO,SAASxzT,IACtE,OAAOA,GAAE+pR,oBACN,CAAE,MAAO,SAAS/pR,IACrB,OAAOA,GAAEwiL,eACN,CAAE,QAAS,SAASxiL,IACvB,OAAOA,GAAEuiL,eACN,CAAE,QAAS,SAASviL,IACvB,OAAOA,GAAE4e,aACN,CAAE,QAAS,SAAS5e,IACvB,OAAOA,GAAEqxT,UAA2B,GAAfrxT,GAAE+e,YACpB,CAAE,QAAS,SAAS/e,IACvB,OAAsB,GAAfA,GAAE+e,YACN,CAAE,KAAM,SAAS/e,IACpB,OAAOA,GAAE8e,aACN,CAAE,KAAMi8S,WACTiuB,GAA4B,CAC9B3xU,MAAO,SAASkM,GAAOuoD,GAAMljC,IAC3B,OAAO55B,GAAGqI,MAAMxR,KAAKs5B,KAAK5b,GAAQqlB,IAAQA,IAAOkjC,GAAMljC,IAAMoS,IAAIiuS,oBAEnE31U,MAAOyqS,YACP5+Q,KAAM4+Q,aAER4rC,GAA0BxwU,KAAO+3S,GAAQ/3S,KACzC+3S,GAAQntP,MAAQ,WACd,OAAO8kR,cAAc75U,GAAG+0D,MAAM+oE,SAAU68M,GAA2BC,KAErE,IAAIC,GAA0BF,GAA0B3uS,KAAI,SAASl7C,IACnE,MAAO,CAAEA,GAAE,GAAGmqH,IAAKnqH,GAAE,OAEnBgqV,GAAyBrB,GAAkBj1B,MAAM,CAAE,CAAE,MAAO,SAASxzT,IACvE,OAAOA,GAAE8pR,uBACN,CAAE,MAAO,SAAS9pR,IACrB,OAAOA,GAAE6pR,kBACN,CAAE,QAAS,SAAS7pR,IACvB,OAAOA,GAAE4pR,kBACN,CAAE,QAAS,SAAS5pR,IACvB,OAAOA,GAAEmrR,gBACN,CAAE,QAAS,SAASnrR,IACvB,OAAOA,GAAEsxT,aAAiC,GAAlBtxT,GAAE2qR,eACvB,CAAE,QAAS,SAAS3qR,IACvB,OAAyB,GAAlBA,GAAE2qR,eACN,CAAE,KAAM,SAAS3qR,IACpB,OAAOA,GAAE0qR,gBACN,CAAE,KAAMqwC,WAWb,SAASgvB,QAAQ78B,IACf,OAAOhuI,KAAKg1B,MAAMg5G,GAAQK,cAK5B,SAASy8B,QAAQ98B,IACf,IAAI71S,GAAQ+jS,GAAY9mR,cAExB,OADAjd,GAAM4yU,WAAW7uC,GAAY97Q,MACtBjoB,GAAM6yU,yBAAyBh9B,GAAQK,cAnBhDs8B,GAAwB1wU,KAAO+3S,GAAQ/3S,KAAK8wG,IAC5CinM,GAAQntP,MAAMkmD,IAAM,WAClB,OAAO4+N,cAAc75U,GAAG+0D,MAAM+oE,SAAU+8M,GAAyBC,KAEnE96U,GAAGG,KAAOy9S,YAAW,SAASM,IAC5B,OAAOA,GAAQK,gBAEjBv+S,GAAGg0D,KAAO,SAASF,GAAKqF,IACtB,OAAO4kP,OAAOjqP,GAAK,mBAAoBinR,QAAS5hR,KAKlDn5D,GAAGgB,KAAO,SAAS8yD,GAAKqF,IACtB,OAAO4kP,OAAOjqP,GAAK,YAAaknR,QAAS7hR,KAO3Cn5D,GAAG+xS,IAAM6L,YAAW,SAASM,IAC3B,OAAOA,GAAQi9B,eAEPxmV,KAAKqL,GAAKA,QAIgBuT,KAHlC6hJ,GAA2E,mBADnDD,GAAiC,IAExDA,GAA+BtkK,KAAKR,GAASI,GAAqBJ,GAASD,IAC5E+kK,MACgD/kK,GAAOC,QAAU+kK,IAp1SF,IAy1S7D,OACA,SAAUhlK,GAAQC,GAASI,IAEjC,IAAI82F,GAAS92F,GAAoB,QAC7BmtG,GAA8BntG,GAAoB,QAClDu3D,GAAMv3D,GAAoB,QAC1BwhJ,GAAYxhJ,GAAoB,QAChC2qV,GAAgB3qV,GAAoB,QACpC4qV,GAAsB5qV,GAAoB,QAE1C6qV,GAAmBD,GAAoB9pV,IACvCgqV,GAAuBF,GAAoB58C,QAC3C+8C,GAAWhpU,OAAOA,QAAQnR,MAAM,WAEnCjR,GAAOC,QAAU,SAAU+3D,GAAGn2D,GAAKN,GAAO8H,IACzC,IAAIgiV,KAAShiV,MAAYA,GAAQgiV,OAC7B5pK,KAASp4K,MAAYA,GAAQnI,WAC7BqhJ,KAAcl5I,MAAYA,GAAQk5I,YAClB,mBAAThhJ,KACS,iBAAPM,IAAoB+1D,GAAIr2D,GAAO,SAASisG,GAA4BjsG,GAAO,OAAQM,IAC9FspV,GAAqB5pV,IAAOumE,OAASsjR,GAASzlV,KAAmB,iBAAP9D,GAAkBA,GAAM,KAEhFm2D,KAAMm/B,IAIEk0P,IAEA9oM,IAAevqF,GAAEn2D,MAC3B4/K,IAAS,UAFFzpH,GAAEn2D,IAIP4/K,GAAQzpH,GAAEn2D,IAAON,GAChBisG,GAA4Bx1C,GAAGn2D,GAAKN,KATnCkgL,GAAQzpH,GAAEn2D,IAAON,GAChBsgJ,GAAUhgJ,GAAKN,MAUrBmE,SAAStD,UAAW,YAAY,SAAS8a,WAC1C,MAAsB,mBAAR3Y,MAAsB2mV,GAAiB3mV,MAAMujE,QAAUkjR,GAAczmV,UAM/E,OACA,SAAUvE,GAAQ2lE,GAAqBtlE,IAE7C,aAKA,SAASkpN,OAkDT,SAAS3tK,IAAI15C,GAAQymC,IACnB,IAAIiT,GAAM,IAAI2tK,IAGd,GAAIrnN,cAAkBqnN,IAAKrnN,GAAOuO,MAAK,SAASlP,GAAOM,IAAO+5C,GAAIltC,IAAI7M,GAAKN,YAGtE,GAAI4B,MAAMkL,QAAQnM,IAAS,CAC9B,IAEInB,GAFAR,IAAK,EACLwB,GAAIG,GAAOU,OAGf,GAAS,MAAL+lC,GAAW,OAASpoC,GAAIwB,IAAG65C,GAAIltC,IAAInO,GAAG2B,GAAO3B,UAC5C,OAASA,GAAIwB,IAAG65C,GAAIltC,IAAIi6B,GAAE5nC,GAAImB,GAAO3B,IAAIA,GAAG2B,IAASnB,SAIvD,GAAImB,GAAQ,IAAK,IAAIL,MAAOK,GAAQ05C,GAAIltC,IAAI7M,GAAKK,GAAOL,KAE7D,OAAO+5C,GAnET2tK,IAAInnN,UAAYw5C,IAAIx5C,UAAY,CAC9B87B,YAAaqrL,IACb3xJ,IAAK,SAAS/1D,IACZ,MAPS,IAOQA,MAAQ0C,MAE3BpD,IAAK,SAASU,IACZ,OAAO0C,KAVE,IAUY1C,KAEvB6M,IAAK,SAAS7M,GAAKN,IAEjB,OADAgD,KAbS,IAaK1C,IAAON,GACdgD,MAET+M,OAAQ,SAASzP,IACf,IAAIM,GAjBK,IAiBeN,GACxB,OAAOM,MAAYoC,aAAeA,KAAKpC,KAEzCuhC,MAAO,WACL,IAAK,IAAIvhC,MAAYoC,KArBZ,MAqBsBpC,GAAS,WAAsBoC,KAAKpC,KAErEshD,KAAM,WACJ,IAAIA,GAAO,GACX,IAAK,IAAIthD,MAAYoC,KAzBZ,MAyBsBpC,GAAS,IAAeshD,GAAKj+C,KAAKrD,GAASY,MAAM,IAChF,OAAO0gD,IAETlqB,OAAQ,WACN,IAAIA,GAAS,GACb,IAAK,IAAIp3B,MAAYoC,KA9BZ,MA8BsBpC,GAAS,IAAeo3B,GAAO/zB,KAAKjB,KAAKpC,KACxE,OAAOo3B,IAETkkE,QAAS,WACP,IAAIA,GAAU,GACd,IAAK,IAAIt7F,MAAYoC,KAnCZ,MAmCsBpC,GAAS,IAAes7F,GAAQj4F,KAAK,CAAC3D,IAAKM,GAASY,MAAM,GAAIxB,MAAOgD,KAAKpC,MACzG,OAAOs7F,IAETn5E,KAAM,WACJ,IAAIA,GAAO,EACX,IAAK,IAAIniB,MAAYoC,KAxCZ,MAwCsBpC,GAAS,MAAiBmiB,GACzD,OAAOA,IAET0E,MAAO,WACL,IAAK,IAAI7mB,MAAYoC,KAAM,GA5ClB,MA4CsBpC,GAAS,GAAe,OAAO,EAC9D,OAAO,GAETsO,KAAM,SAASk4B,IACb,IAAK,IAAIxmC,MAAYoC,KAhDZ,MAgDsBpC,GAAS,IAAewmC,GAAEpkC,KAAKpC,IAAWA,GAASY,MAAM,GAAIwB,QA0BnE,IAAI+mV,GAAU,IAKVC,SAAW,WAC1C,IAEIvsC,GACAC,GACApxG,GAJApqJ,GAAO,GACP8vH,GAAW,GAKf,SAAStwK,MAAMgmC,GAAOooI,GAAOm6K,GAAcC,IACzC,GAAIp6K,IAAS5tH,GAAK7gD,OAEhB,OADkB,MAAdo8S,IAAoB/1Q,GAAMvhC,KAAKs3S,IAClB,MAAVC,GAAiBA,GAAOh2Q,IAASA,GAY1C,IATA,IAGIk2Q,GACA59S,GAEAg4B,GANAh5B,IAAK,EACLwB,GAAIknC,GAAMrmC,OACVf,GAAM4hD,GAAK4tH,MAGXguI,GAAcisC,KAEd7/U,GAAS+/U,OAEJjrV,GAAIwB,KACPw3B,GAAS8lR,GAAYl+S,IAAIg+S,GAAWt9S,GAAIN,GAAQ0nC,GAAM1oC,KAAM,KAC9Dg5B,GAAO/zB,KAAKjE,IAEZ89S,GAAY3wS,IAAIywS,GAAU,CAAC59S,KAQ/B,OAJA89S,GAAY5uS,MAAK,SAAS8oB,GAAQ13B,IAChC4pV,GAAUhgV,GAAQ5J,GAAKoB,MAAMs2B,GAAQ83I,GAAOm6K,GAAcC,QAGrDhgV,GAWT,OAAOoiM,GAAO,CACZ3rM,OAAQ,SAAS+mC,IAAS,OAAOhmC,MAAMgmC,GAAO,EAAGyiT,aAAcC,YAC/D/vS,IAAK,SAAS3S,IAAS,OAAOhmC,MAAMgmC,GAAO,EAAGogL,UAAWuiI,SACzDnuP,QAAS,SAASx0D,IAAS,OAX7B,SAASw0D,QAAQ7hD,GAAKy1H,IACpB,KAAMA,GAAQ5tH,GAAK7gD,OAAQ,OAAOg5C,GAClC,IAAI3S,GAAOq2Q,GAAU/rI,GAASlC,GAAQ,GAGtC,OAFc,MAAV4tI,IAAkB5tI,IAAS5tH,GAAK7gD,OAAQqmC,GAAQ2S,GAAI6hD,WACnDx0D,GAAQ,GAAI2S,GAAInrC,MAAK,SAAS3M,GAAGC,IAAKklC,GAAMzjC,KAAK,CAAC3D,IAAKkC,GAAGw1B,OAAQkkE,QAAQ35F,GAAGutK,UAChE,MAAXiuI,GAAkBr2Q,GAAMvhC,MAAK,SAAS9C,GAAGC,IAAK,OAAOy6S,GAAQ16S,GAAE/C,IAAKgD,GAAEhD,QAAWonC,GAMtDw0D,CAAQx6F,MAAMgmC,GAAO,EAAGogL,UAAWuiI,QAAS,IAC9E/pV,IAAK,SAASjB,IAAmB,OAAd6iD,GAAKj+C,KAAK5E,IAAWitM,IACxCt6B,SAAU,SAASvpI,IAA4C,OAAnCupI,GAAS9vH,GAAK7gD,OAAS,GAAKonC,GAAc6jK,IACtEmxG,WAAY,SAASh1Q,IAA6B,OAApBg1Q,GAAah1Q,GAAc6jK,IACzDoxG,OAAQ,SAASt2Q,IAAiB,OAAZs2Q,GAASt2Q,GAAUklK,MAI7C,SAAS69I,eACP,MAAO,GAGT,SAASC,UAAUzpV,GAAQL,GAAKN,IAC9BW,GAAOL,IAAON,GAGhB,SAAS8nN,YACP,OAAOiiI,KAGT,SAASM,OAAOhwS,GAAK/5C,GAAKN,IACxBq6C,GAAIltC,IAAI7M,GAAKN,IAMf,SAASsqV,OAET,IAAIhmV,GAAQylV,GAAQlpV,UAkBpB,SAASsM,IAAIxM,GAAQymC,IACnB,IAAIj6B,GAAM,IAAIm9U,IAGd,GAAI3pV,cAAkB2pV,IAAK3pV,GAAOuO,MAAK,SAASlP,IAASmN,GAAI8N,IAAIjb,YAG5D,GAAIW,GAAQ,CACf,IAAI3B,IAAK,EAAGwB,GAAIG,GAAOU,OACvB,GAAS,MAAL+lC,GAAW,OAASpoC,GAAIwB,IAAG2M,GAAI8N,IAAIta,GAAO3B,UACzC,OAASA,GAAIwB,IAAG2M,GAAI8N,IAAImsB,GAAEzmC,GAAO3B,IAAIA,GAAG2B,KAG/C,OAAOwM,GA7BTm9U,IAAIzpV,UAAYsM,IAAItM,UAAY,CAC9B87B,YAAa2tT,IACbj0R,IAAK/xD,GAAM+xD,IACXp7C,IAAK,SAASjb,IAGZ,OADAgD,KAnKS,KAkKThD,IAAS,KACcA,GAChBgD,MAET+M,OAAQzL,GAAMyL,OACdoyB,MAAO79B,GAAM69B,MACbnK,OAAQ1zB,GAAM49C,KACdn/B,KAAMze,GAAMye,KACZ0E,MAAOnjB,GAAMmjB,MACbvY,KAAM5K,GAAM4K,MA2CsBpQ,GAAoBO,EAAE+kE,GAAqB,KAAK,WAAa,OAAO4lR,YAErElrV,GAAoBO,EAAE+kE,GAAqB,KAAK,WAAa,OAAO2lR,OAcjG,OACA,SAAUtrV,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAU,SAASwgB,UAAUC,GAAKC,GAAIrR,GAAOsR,GAAIC,IAYpD,GAVAH,GAAIzR,EAAI,SAAU0R,GAAKA,GAAGkjC,KAAOljC,GAAG1R,EACpCyR,GAAIvK,EAAI,SAAUwK,GAAKA,GAAGmjC,KAAOnjC,GAAGxK,EAGjC,cAAewK,KAAID,GAAI/Q,EAAIgR,GAAGmrU,WAE9BnrU,GAAGoW,KAAIrW,GAAI8G,MAAQ7G,GAAGoW,IACtBpW,GAAGyW,KAAI1W,GAAI+G,MAAQ9G,GAAGyW,MAGpB9nB,GAAM4pE,YAAc,IAAIr0C,QAAS,CAClC,IASI83E,GATAjsE,GAAMvtC,MAAMkL,QAAQwS,IACpBD,GAAG,GAAG8vB,IAAI7vB,GAAY,IAAIA,GAAY,IACtCD,GAAGC,IAAa6vB,IAQpB,GANAhwB,GAAI64F,aAAe7oE,GACnBhwB,GAAI84F,UAAY94F,GAAIG,mBACbH,GAAIG,mBACJH,GAAIk8F,WAGRttG,GAAMy8U,eAAgB,CACrBpvO,GAAe,GACf,IAAI,IAAIp8G,GAAI,EAAGA,GAAImwC,GAAI9tC,OAAQrC,KAC3Bo8G,GAAeA,GAAal0G,OAAO6G,GAAMy8U,eAAer7S,GAAInwC,WAGhEo8G,GAAejsE,GAGnBhwB,GAAIi8F,aAAeA,GAGvB,OAAOj8F,KAML,OACA,SAAU1gB,GAAQC,IAExBD,GAAOC,QAUP,SAAS+0N,UAAUt0M,GAAK9b,GAAGd,IACvB,IACIokG,GAAKC,GAAKC,GAAKC,GACfC,GAAKC,GAAKC,GAAKC,GACfC,GAAKC,GAAKC,GAAKC,GAHf55F,GAAInL,GAAE,GAAIqS,GAAIrS,GAAE,GAAI6L,GAAI7L,GAAE,GAK1Bc,KAAM8b,IACNA,GAAI,IAAM9b,GAAE,GAAKqK,GAAIrK,GAAE,GAAKuR,GAAIvR,GAAE,GAAK+K,GAAI/K,GAAE,IAC7C8b,GAAI,IAAM9b,GAAE,GAAKqK,GAAIrK,GAAE,GAAKuR,GAAIvR,GAAE,GAAK+K,GAAI/K,GAAE,IAC7C8b,GAAI,IAAM9b,GAAE,GAAKqK,GAAIrK,GAAE,GAAKuR,GAAIvR,GAAE,IAAM+K,GAAI/K,GAAE,IAC9C8b,GAAI,IAAM9b,GAAE,GAAKqK,GAAIrK,GAAE,GAAKuR,GAAIvR,GAAE,IAAM+K,GAAI/K,GAAE,MAE9CsjG,GAAMtjG,GAAE,GAAIujG,GAAMvjG,GAAE,GAAIwjG,GAAMxjG,GAAE,GAAIyjG,GAAMzjG,GAAE,GAC5C0jG,GAAM1jG,GAAE,GAAI2jG,GAAM3jG,GAAE,GAAI4jG,GAAM5jG,GAAE,GAAI6jG,GAAM7jG,GAAE,GAC5C8jG,GAAM9jG,GAAE,GAAI+jG,GAAM/jG,GAAE,GAAIgkG,GAAMhkG,GAAE,IAAKikG,GAAMjkG,GAAE,IAE7C8b,GAAI,GAAKwnF,GAAKxnF,GAAI,GAAKynF,GAAKznF,GAAI,GAAK0nF,GAAK1nF,GAAI,GAAK2nF,GACnD3nF,GAAI,GAAK4nF,GAAK5nF,GAAI,GAAK6nF,GAAK7nF,GAAI,GAAK8nF,GAAK9nF,GAAI,GAAK+nF,GACnD/nF,GAAI,GAAKgoF,GAAKhoF,GAAI,GAAKioF,GAAKjoF,GAAI,IAAMkoF,GAAKloF,GAAI,IAAMmoF,GAErDnoF,GAAI,IAAMwnF,GAAMj5F,GAAIq5F,GAAMnyF,GAAIuyF,GAAM/4F,GAAI/K,GAAE,IAC1C8b,GAAI,IAAMynF,GAAMl5F,GAAIs5F,GAAMpyF,GAAIwyF,GAAMh5F,GAAI/K,GAAE,IAC1C8b,GAAI,IAAM0nF,GAAMn5F,GAAIu5F,GAAMryF,GAAIyyF,GAAMj5F,GAAI/K,GAAE,IAC1C8b,GAAI,IAAM2nF,GAAMp5F,GAAIw5F,GAAMtyF,GAAI0yF,GAAMl5F,GAAI/K,GAAE,KAG9C,OAAO8b,KAKL,OACA,SAAU1gB,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAU,SAASwgB,UAAUC,GAAKC,IAarC,OAXAD,GAAIzR,EAAI,SAAU0R,GAAKA,GAAGkjC,KAAOljC,GAAG1R,EACpCyR,GAAIvK,EAAI,SAAUwK,GAAKA,GAAGmjC,KAAOnjC,GAAGxK,EAGjC,mBAAoBwK,KAAID,GAAIsrU,eAAiBrrU,GAAGqrU,gBAChD,oBAAqBrrU,KAAID,GAAIurU,gBAAkBtrU,GAAGsrU,iBAClD,iBAAkBtrU,KAAID,GAAIwrU,aAAevrU,GAAGurU,cAE5CvrU,GAAGoW,KAAIrW,GAAI8G,MAAQ7G,GAAGoW,IACtBpW,GAAGyW,KAAI1W,GAAI+G,MAAQ9G,GAAGyW,IAElB1W,KAML,OACA,SAAU1gB,GAAQC,GAASI,IAEjC,aAWA,IAAIm1G,GAAan1G,GAAoB,QAEjC8qP,GAAkB9qP,GAAoB,QAAQ8qP,gBAC9CC,GAAgB/qP,GAAoB,QACpCy9E,GAAcz9E,GAAoB,QAAQy9E,YAC1CutK,GAAOhrP,GAAoB,QAE3B8rV,GAAoB9rV,GAAoB,QAAQ8rV,kBAChDC,GAAoB/rV,GAAoB,QAAQ+rV,kBAEpD,SAASC,YAAY9iV,GAAOgiP,GAAMz1N,IAC9BvxB,KAAKgF,MAAQA,GACbhF,KAAKuxB,IAAMA,GACXvxB,KAAKgnP,KAAOA,GACZhnP,KAAK1D,KAAO,GACZ0D,KAAKkG,KAAO,KACZlG,KAAKinP,aAAc,EAGvB,IAAI3lP,GAAQwmV,YAAYjqV,UAExByD,GAAMgmP,WAAa,SAAS98O,IACxB,GAAGA,GAAU7M,SAAWqC,KAAKgnP,KAAM,CAC/B,IAAI+gG,GAAQv9U,GAAUtE,KAAK/F,MAEvBuK,GAAI1K,KAAKkG,KAAK8hV,OAAOD,IACrBn2U,GAAI5R,KAAKkG,KAAK+hV,OAAOF,IACrB38U,GAAIpL,KAAKkG,KAAKgiV,OAAOH,IAErBxgU,GAASvnB,KAAKkG,KAAKiiV,IAAI9pV,OACvByuK,GAAQ9sK,KAAKkG,KAAKkiV,IAAI/pV,OAEtBrC,GAAI4rV,GAAkBl9U,GAAG1K,KAAKkG,KAAKmiV,KAAKlgV,GACxChJ,GAAIyoV,GAAkBh2U,GAAG5R,KAAKkG,KAAKiiV,KAAKhgV,GACxC3I,GAAIooV,GAAkBx8U,GAAGpL,KAAKkG,KAAKkiV,KAAKjgV,GAExCo/O,GAAc/8O,GAAUrK,MAAQX,GAAIstK,GAAQ3tK,GAAI2tK,GAAQvlJ,GAASvrB,GAErEwO,GAAUm7E,gBAAkB,CACxB3lF,KAAKkG,KAAK8hV,OAAOzgG,IACjBvnP,KAAKkG,KAAK+hV,OAAO1gG,IACjBvnP,KAAKkG,KAAKgiV,OAAO3gG,IACjBvnP,KAAKkG,KAAK2qM,OAAO02C,KAGrB,IAAI/7O,GAAOxL,KAAKkG,KAAKsa,WAAaxgB,KAAKkG,KAAKsF,KAO5C,OANG5M,MAAMkL,QAAQ0B,UAA+BoT,IAAtBpT,GAAK+7O,IAC3B/8O,GAAUg9O,UAAYh8O,GAAK+7O,IACrB/7O,KACNhB,GAAUg9O,UAAYh8O,KAGnB,IAIflK,GAAMmF,OAAS,SAASP,IACpB,IAAIlB,GAAQhF,KAAKgF,MACbg6C,GAASh6C,GAAM+N,gBAKnB,SAASo0O,aAAargK,GAAM5lD,GAAOk/B,GAAO7qD,IACtC,OAAO2rB,GAAMmW,KAAI,SAAS3sC,IACtB,OAAOo8E,GAAKzxC,IAAI3qC,GAAG,EAAG6K,IAAY6qD,MAL1CpgE,KAAKkG,KAAO2hV,GAAkB3hV,IAS9B,IAOI6e,GAAS,CACT1b,UARYy9O,GACZK,aAAanoM,GAAO/7B,MAAO/c,GAAK8hV,OAAQhjV,GAAMuO,UAAU,GAAIrN,GAAKomC,WACjE66M,aAAanoM,GAAO97B,MAAOhd,GAAK+hV,OAAQjjV,GAAMuO,UAAU,GAAIrN,GAAKqmC,WACjE46M,aAAanoM,GAAO++J,MAAO73M,GAAKgiV,OAAQljV,GAAMuO,UAAU,GAAIrN,GAAKuhP,YAMjEnkP,MAJQwjP,GAAK5gP,GAAKoiV,OAAQpiV,GAAKqiV,OAAQriV,GAAKsiV,QAK5C3gG,cAAe,CAAC3hP,GAAK+a,cAAcvW,EAAGxE,GAAK+a,cAAcrP,EAAG1L,GAAK+a,cAAc7V,GAC/E+V,QAASjb,GAAKgb,SAASC,QACvBC,QAASlb,GAAKgb,SAASE,QACvBC,SAAUnb,GAAKgb,SAASG,SACxBC,UAAWpb,GAAKgb,SAASI,UACzBC,QAASrb,GAAKgb,SAASK,QACvBumO,qBAAsB5hP,GAAKgb,SAAS6mO,qBACpCC,mBAAoB9hP,GAAKgb,SAAS+mO,mBAClCtgP,QAASzB,GAAKyB,QACdg+O,aAAcz/O,GAAKy/O,aACnBuC,cAAehiP,GAAK2/O,QAAQpmO,KAC5B0oO,aAActB,GAAc3gP,GAAK2/O,QAAQpgP,OAAOjH,MAAM,EAAG,GACzD4pP,aAAcliP,GAAK2/O,QAAQroO,MAC3B6qO,gBAAiBniP,GAAK0/O,aAGtBjsH,GAAQpgD,GAAYrzE,IACxB6e,GAAOonF,gBAAkBjmG,GAAKuiV,eAC9B1jU,GAAO22I,sBAAwB,CAAC/hC,GAAMr1H,IAAKq1H,GAAMp1H,KACjDwgB,GAAO+lF,SAAW87I,GAAgB1gP,IAGlClG,KAAKgnP,KAAKvgP,OAAOse,KAGrBzjB,GAAMgJ,QAAU,WACZtK,KAAKgF,MAAM4N,OAAO7F,OAAO/M,KAAKgnP,MAC9BhnP,KAAKgnP,KAAK18O,WAcd7O,GAAOC,QAXP,SAASgtV,kBAAkB1jV,GAAOkB,IAC9B,IAAInB,GAAKC,GAAM4N,OAAO7N,GAClBiiP,GAAO/1I,GAAW,CAAClsG,GAAIA,KACvBmC,GAAS,IAAI4gV,YAAY9iV,GAAOgiP,GAAM9gP,GAAKqrB,KAK/C,OAHAy1N,GAAK6B,OAAS3hP,GACdA,GAAOT,OAAOP,IACdlB,GAAM4N,OAAOqF,IAAI+uO,IACV9/O,KAQL,OACA,SAAUzL,GAAQC,GAASI,IAEjC,aA8BA,SAAS6sV,WAAWriL,IAChB,OAAwB,IAAjBA,GAAKh4J,QAGhB,SAASs6U,eAAetiL,IACpB,IAAIv7J,GAAQu7J,GAAK,GAAGv7J,MACpB,OAAyB,IAAlBA,GAAMuD,SAAsC,IAAlBvD,GAAMoI,QAlB3C1X,GAAOC,QAAU,SAAS4wQ,cAAc7+O,IAIpC,IAHA,IAAIo7T,GAoBR,SAASC,WAAW90T,IAChB,OACIp1B,MAAMkL,QAAQkqB,KACdp1B,MAAMkL,QAAQkqB,GAAK,KACnBA,GAAK,GAAG,IACRA,GAAK,GAAG,GAAGjpB,MAzBA+9U,CAAWr7T,IAAam7T,eAAiBD,WACpDxsU,GAAM,GAEFngB,GAAI,EAAGA,GAAIyxB,GAAUpvB,OAAQrC,KAAK,CACtC,IAAIsqK,GAAO74I,GAAUzxB,IAClB6sV,GAASviL,KAAOnqJ,GAAIlb,KAAKqlK,IAGhC,OAAOnqJ,KAwBL,IACA,SAAU1gB,GAAQC,GAASI,IAEjC,aA+CA,SAASitV,YAAY1sV,GAAGm2B,GAAIK,GAAI2zJ,GAAcxoG,IAC1C,IAAI1rD,GAAKE,GAAGC,IAAI+zJ,GAAenqL,GAAE2iF,GAAK3iF,GAAEwiF,IAAI,GACxCtsD,GAAKC,GAAGC,IAAI+zJ,GAAenqL,GAAE4iF,GAAK5iF,GAAEyiF,IAAI,GACxCnsD,GAAKE,GAAGJ,IAAI+zJ,GAAenqL,GAAEwiF,GAAKxiF,GAAE2iF,IAAI,GACxCpsD,GAAKC,GAAGJ,IAAI+zJ,GAAenqL,GAAEyiF,GAAKziF,GAAE4iF,IAAI,GAE5C,OAAGjB,GACQ,EAAE1rD,GAAKC,IAAM,GAAII,GAAKC,IAAM,GAEhC4zJ,GACQ,CAACj0J,IAAKI,GAAKC,IAAM,GAEjB,EAAEN,GAAKC,IAAM,EAAGK,IAhDnCn3B,GAAOC,QAAU,SAASwT,aAAa+kG,GAAYE,IAC/C,IAOIn4G,GAPAqgB,GAAK43F,GAAW53F,GAChBmW,GAAKyhF,GAAWhxF,MAChB4P,GAAKohF,GAAW/wF,MAChBnY,GAAQsR,GAAG,GAAGtR,MACdizE,GAA2B,WAAfjzE,GAAMuE,KAClBk3K,GAAsC,MAAtBz7K,GAAM5G,YACtBqG,GAAY,GAGhB,IAAuB,IAApB2pG,GAEC,IAAIn4G,GAAI,EAAGA,GAAIqgB,GAAGhe,OAAQrC,KACtBqgB,GAAGrgB,IAAGs4B,SAAW,OAGrB,IAAIt4B,GAAI,EAAGA,GAAIqgB,GAAGhe,OAAQrC,KAAK,CAC3B,IAAI83B,GAAKzX,GAAGrgB,IACR02B,GAAK,OAAQoB,GAAKA,GAAGpB,GAAKq2T,YAAYj1T,GAAItB,GAAIK,GAAI2zJ,GAAcxoG,IAEjEm2B,GAAgB9hF,SAASK,IAAI,EAAO12B,GAAGi4G,KACtCzpG,GAAUvJ,KAAK,CACXqb,YAAatgB,GACb0O,EAAG8nB,GAAG6d,IAAIvc,GAAGppB,GACbkH,EAAGihB,GAAGwd,IAAIvc,GAAGliB,KAEjBkiB,GAAGQ,SAAW,GAEdR,GAAGQ,SAAW,EAK1B,OAAO9pB,KAuBL,KACA,SAAU/O,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAUI,GAAoB,SAK/B,KACA,SAAUL,GAAQC,GAASI,IAEjC,aAGA,IAAI+jS,GAAcpjS,OAAOoB,UAAU8a,SAC/BqwU,GAAsB/kT,OAAOpmC,UAAUwD,KAAK9D,KAAK,mCAErD9B,GAAOC,QAAU,SAAUsB,IAC1B,MAAwB,mBAAVA,IAAwBgsV,GAAoBnpD,GAAY3jS,KAAKc,OAMtE,KACA,SAAUvB,GAAQC,GAASI,IAEjC,aAYA,IAAIiY,GAAMjY,GAAoB,QAG9BL,GAAOC,QAAU,SAAS+2N,YAAYhlM,IAClC,OAAO1Z,GAAImoD,cAAczuC,GAAUkuC,YAMjC,OACA,SAAUlgE,GAAQC,GAASI,IAEjC,aAWA,IAAIwP,GAAYxP,GAAoB,QAChCiY,GAAMjY,GAAoB,QAE1BmY,GAAOnY,GAAoB,QAC3ByxC,GAASzxC,GAAoB,QAAQyxC,OAErCgzB,GAAWzkE,GAAoB,QAC/BwkE,GAAiBxkE,GAAoB,QACrCi2E,GAAmBj2E,GAAoB,QACvC8mJ,GAAgB9mJ,GAAoB,QA+HxC,SAAS++N,kBAAkB/vN,GAAIC,GAAOynB,GAAIK,GAAInoB,GAAGkH,GAAG05D,IAChD,IAAIy3E,GAAYh4I,GAAMoI,QAClB+O,GAAapX,GAAGwmB,YAChB23T,GAAMz2T,GAAGqG,IACTqwT,GAAMr2T,GAAGgG,IACTswT,GAAejnU,GAAWknU,cAAcC,kBAAkBt+U,OAAYA,GAAMwmB,IAC5E+3T,IAAoBC,aAAax+U,GAAOmX,GAAYsQ,GAAIK,KAAO,IAAI1uB,YACnE6J,GAAOjD,GAAMiD,KAGjBwkB,GAAG8X,UAAY,EACfzX,GAAGyX,UAAY,EAIf,IAAIk/S,GAAW,CAACprQ,QAAQ,GACpBqrQ,GAAW,CAACrrQ,QAAQ,GAErB9S,KACCk+Q,GAASl+Q,KAAOm+Q,GAASn+Q,KAAOA,IAKpC,IAAIznC,GAAYk/G,GAAY,GAAMr4I,GAAE,KAAOA,GAAEq4I,GAAY,IAAQnxI,GAAE,KAAOA,GAAEmxI,GAAY,GAErFl/G,KACW,YAAT71B,IACU,YAATA,KAAwBm7U,IAAqC,MAArBG,KAK1CE,GAASrrQ,QAAS,GACVpzE,GAAMonP,SAAW,IAAI7jP,SAGf,YAATN,IAA+B,YAATA,KACrBuyD,GAASG,WAAW31D,KAAWw1D,GAASltC,QAAQtoB,OAEtDy+U,GAASprQ,QAAS,EAClBorQ,GAASl+Q,KAAO,GAGjBznC,KACW,YAAT71B,IACU,YAATA,KAAwBm7U,IAAqC,MAArBG,KAM1CG,GAAStrQ,QAAS,EACH,YAATnwE,IAA+B,YAATA,KAG5By7U,GAASrrQ,QAAS,GAInB6qQ,KAAKl+U,GAAM2gC,UAAUu9S,IAAOh1U,GAAK03B,aAAanZ,GAAI9nB,GAAG8+U,KACrDN,KAAKn+U,GAAM2gC,UAAUw9S,IAAOj1U,GAAK03B,aAAa9Y,GAAIjhB,GAAG63U,KAG5D,SAAS3+Q,eAAe//D,GAAOg4I,IAC3B,GAAIxiF,GAASG,WAAW31D,IAAxB,CAIA,IAEI2+U,GAFAz1T,GAASlpB,GAAMkpB,OACfo0D,GAAU,KAAOt9E,GAAMkpB,OAAOo0D,SAAW,GAa7C,GATIqhQ,GADyB,SAA1B3+U,GAAMkpB,OAAOs0D,SACE,SAAShpF,IACnB,OAAO2C,KAAKqC,IAAIrC,KAAK6E,MAAMxH,IAAK,GAAK8oF,IAAU,IAGrC,SAAS9oF,IACnB,OAAO2C,KAAKqC,KAAKhF,IAAK,GAAK8oF,GAAS,IAIzCt0E,GAAIk5D,oBAAoBh5C,GAAOlU,MAAO,CAErC,IAAIqC,GAAK,CAAC9S,KAAM,UAChB2E,GAAK25B,WAAWxrB,IAKhB,IAHA,IAAIpkB,GAAIokB,GAAGwoB,aAAa7/B,GAAMkpB,OAAQ,QAElC01T,GAAU,IAAI/qV,MAAMmkJ,IAChB/mJ,GAAI,EAAGA,GAAI+mJ,GAAW/mJ,KAC1B2tV,GAAQ3tV,IAAK0tV,GAAY1rV,GAAEhC,KAE/B,OAAO2tV,GAEP,OAAOD,GAAYz1T,GAAOlU,OAWlC,SAAS6pU,gBAAgB1nU,GAAYnX,IACjC,IAAIwC,GAAQ87U,kBAAkBt+U,IAC1Bo+U,GAAejnU,GAAWknU,cAC1BD,GAAa57U,MAAQ47U,GAAa57U,IAASxC,GAAMwmB,KAGzD,SAAS83T,kBAAkBt+U,IACvB,IAAIwvN,GAAaxvN,GAAMgD,WACvB,OAAOhD,GAAMkY,MAAQlY,GAAMmY,MAAQnY,GAAMuE,MACpCirN,GAAa,IAAMA,GAAa,IAGzC,SAASgvH,aAAax+U,GAAOmX,GAAYsQ,GAAIK,IACzC,IAAI0nM,GAAaxvN,GAAMgD,WACvB,GAAIwsN,GAAJ,CACA,IAAI46E,GAAYjzR,GAAWg4M,kBAAkB1nM,GAAGqG,IAAMhG,GAAGgG,KAAK0hM,IAC1DsvH,GAAoC,MAA1B10C,GAAUhxS,YAAsB0uB,GAAKL,GAInD,MAAoB,WAAjBq3T,GAAQv6U,MAAsC,QAAjBu6U,GAAQv6U,KAAuB6lS,QAA/D,GAGJ15S,GAAOC,QAAU,CACbmP,KAhQJ,SAASA,KAAKC,GAAIC,IACd,IAUI++U,GAAK9tV,GAAGmD,GAAGK,GAAGgzM,GAAal9J,GAV3BpzB,GAAapX,GAAGwmB,YAChBkB,GAAKve,GAAKg2B,UAAUn/B,GAAIC,GAAMkY,OAAS,KACvC4P,GAAK5e,GAAKg2B,UAAUn/B,GAAIC,GAAMmY,OAAS,KACvCxY,GAAI8nB,GAAGoY,aAAa7/B,GAAO,KAC3B6G,GAAIihB,GAAG+X,aAAa7/B,GAAO,KAC3Bg4I,GAAYh4I,GAAMoI,QAClBkJ,GAAK,IAAIzd,MAAMmkJ,IACfn1D,GAAM7iF,GAAM6iF,IACZvH,GAAiBkjQ,aAAax+U,GAAOmX,GAAYsQ,GAAIK,IACrDk3T,IAAkB,EAGtBH,gBAAgB1nU,GAAYnX,IAE5B,IAEI6uN,GAFAowH,GAAQ,IACRC,GAAQ,IAoBZ,IAlBG5jQ,IACCtyE,GAAI86K,WAAWxoG,GAAe89B,aAAcp5G,GAAMilF,iBAClD85P,GAAqC,MAA/BzjQ,GAAeliF,cAIjB8lV,GAAQ,IACRrwH,GAAU,MAEVowH,GAAQ,IACRpwH,GAAU,KAEdpnB,GAA2C,gBAA7BnsH,GAAe0B,WAG7B8yI,kBAAkB/vN,GAAIC,GAAOynB,GAAIK,GAAInoB,GAAGkH,GAD7Bk5D,eAAe//D,GAAOg4I,KAIjC/mJ,GAAI,EAAGA,GAAI+mJ,GAAW/mJ,KAAK,CAC3B,IAAIugB,GAAMF,GAAGrgB,IAAK,GACdkuV,GAAS5+U,GAAUZ,GAAE1O,KACrBmuV,GAAS7+U,GAAUsG,GAAE5V,KACtBkuV,IAAUC,IACT5tU,GAAIytU,IAASt/U,GAAE1O,IACfugB,GAAI0tU,IAASr4U,GAAE5V,KACTqqF,KAAmByjQ,GAAMI,GAASC,KAIxC5tU,GAAIq9M,IAAWkwH,GAAMp/U,GAAE1O,IAAK4V,GAAE5V,IAC9BugB,GAAIwxC,KAAM,EACPykJ,IACCj2L,GAAIve,EAAIuvC,GACRw8S,IAAkB,GAElBxtU,GAAIve,EAAI,GAGZue,GAAIytU,IAASztU,GAAI0tU,IAAS18S,GAG3BqgD,KACCrxE,GAAIpU,GAAK0V,OAAO+vE,GAAI5xF,MAQ5B,GAJA+1E,GAAiB11D,GAAItR,IACrBu1D,GAAex1D,GAAIC,IACnB63I,GAAcvmI,GAAItR,IAEfs7E,GAAgB,CAIf,IADArqF,GAAI,EACEA,GAAIqgB,GAAGhe,QACNge,GAAGrgB,IAAG49N,MAAarsL,GAClBlxB,GAAGvP,OAAO9Q,GAAG,GACVA,KAOX,GAJA+X,GAAI5Q,KAAKkZ,IAAI,SAAShc,GAAGC,IACrB,OAAQD,GAAEu5N,IAAWt5N,GAAEs5N,KAAcv5N,GAAErE,EAAIsE,GAAEtE,KAG9C+tV,GAAiB,CAGhB,IADA/tV,GAAI,EACEA,GAAIqgB,GAAGhe,OAAS,GAAKge,GAAGrgB,IAAG+xD,KAC7B/xD,KAIJ,KAFAs5C,GAAOj5B,GAAGrgB,IAAGgC,KACHs3C,GAAOj5B,GAAGrgB,IAAGgC,EAAI,GACvBmB,GAAI,EAAGA,GAAInD,GAAGmD,KACdkd,GAAGld,IAAGnB,EAAIs3C,GAId,IADA91C,GAAI6c,GAAGhe,OAAS,EACVmB,GAAIxD,IAAKqgB,GAAG7c,IAAGuuD,KACjBvuD,KAGJ,IADA81C,GAAOj5B,GAAG7c,IAAGxB,EACTmB,GAAIkd,GAAGhe,OAAS,EAAGc,GAAIK,GAAGL,KAC1Bkd,GAAGld,IAAGnB,EAAIs3C,GAGd,KAAMt5C,GAAIwD,IAEN,GAAG6c,KADHrgB,IACS+xD,IAAK,CAEV,IADA5uD,GAAInD,GAAI,EACFqgB,GAAGld,IAAG4uD,KACR5uD,KAKJ,IAHA,IAAIqzE,GAAOn2D,GAAGrgB,GAAI,GAAG49N,IACjBtnL,GAAQj2B,GAAGrgB,GAAI,GAAGgC,EAClB7B,IAAKkgB,GAAGld,IAAGnB,EAAIs0C,KAAUj2B,GAAGld,IAAGy6N,IAAWpnJ,IACxCx2E,GAAImD,IACNkd,GAAGrgB,IAAGgC,EAAIs0C,IAASj2B,GAAGrgB,IAAG49N,IAAWpnJ,IAAQr2E,GAC5CH,OAOpB,OAAOqgB,IAuIPyuD,eAAgBA,eAChB+vJ,kBAAmBA,kBACnB+uH,gBAAiBA,gBACjBL,aAAcA,eAMZ,OACA,SAAU9tV,GAAQC,GAASI,IAEjC,aAYA,IAAIknL,GAAalnL,GAAoB,QACjCsuV,GAActuV,GAAoB,QAEtCL,GAAOC,QAAU,CACbiT,WAAY,YACZrS,KAAM,cAENknC,iBAAkB1nC,GAAoB,QACtCk3D,qBAAsBl3D,GAAoB,QAC1CmnL,gBAAiBnnL,GAAoB,OAApBA,CAA4B,eAE7C2zH,cAAe3zH,GAAoB,QACnCuM,KAAM26K,GAAW36K,KACjBqwB,QAASsqJ,GAAWtqJ,QACpB6qH,QAASy/B,GAAWz/B,QAEpB8kC,eAAgB+hK,GAAY/hK,eAC5BE,QAAS6hK,GAAY7hK,QAErBgB,cAAeztL,GAAoB,UAMjC,KACA,SAAUL,GAAQC,GAASI,IAEjC,aAWA,IAAIw5B,GAAWx5B,GAAoB,QAC/BiY,GAAMjY,GAAoB,QAE1B0nC,GAAmB1nC,GAAoB,QACvCgzF,GAA0BhzF,GAAoB,QAC9CizF,GAAyBjzF,GAAoB,QAC7CkzF,GAA0BlzF,GAAoB,QAC9CmzF,GAA8BnzF,GAAoB,QAClDozF,GAAyBpzF,GAAoB,QAC7C8xC,GAAa9xC,GAAoB,QAoBrCL,GAAOC,QAAU,SAASyyI,mBAAmB5/F,GAAaC,GAAcM,GAAQhqC,GAAS8tD,IACrF,IAAIiwH,GAAS/9K,GAAQ+9K,OACjBvlK,GAAOxY,GAAQwY,MAAQ,GACvBy0R,GAAajtS,GAAQitS,YAAc,GAEnCzjS,GAAUwgC,GAAO,WAAYhqC,GAAQulV,aAErCjxS,GAAS5K,GAAal/B,KAEZ,SAAX8pC,IAC8B9jB,GAASua,mBAAmB,YAAa,iBACtEglB,CAAuBtmB,GAAaC,GAAc,WAAY1pC,GAAQyQ,UAG1Eq4B,GAAWY,GAAcokB,IAEzB,IAAI03R,IAAiB97S,GAAagiD,aAAajiD,GAAY76B,OACxD42U,IAAiBxlV,GAAQylV,cAAaD,GAAgB,aACzCx7S,GAAO,YAAaw7S,KACR,WAAXlxS,IAAkC,MAAXA,IAAiBtK,GAAO,aAEhEA,GAAO,SACPN,GAAaiiD,aAEbxB,GAA4B1gD,GAAaC,GAAcM,GAAQhqC,IAEjD,aAAXs0C,IAA0Bt0C,GAAQ0lV,SAAS17S,GAAO,eAErD,IAAIuhD,GAAYvhD,GAAO,SAKnBwhD,GAAiBD,KAAc7sD,GAAiB/9B,MAAMka,KAAQ0wE,GAAY/yE,GAAK7X,MAE/E26C,GAAY2xP,GAAWj3M,OAASloC,GAAU9S,WAAW+iI,IAGzD,GADA7zF,GAAwBzgD,GAAaC,GAAcM,GAAQsK,GAAQt0C,GAAS,CAACq9O,KAAM,KAC/E7zO,GAAS,OAAOkgC,GAEpBM,GAAO,aAAcsR,IACrBrsC,GAAI48E,WAAW7hD,GAAQ,aAAc,CACjC9xB,OAAQM,GAAKN,OACb+C,KAAM7d,KAAKm5B,MAAkB,IAAZ/d,GAAKyC,MACtBta,MAAO6qF,KAGXxB,GAAwBvgD,GAAaC,GAAcM,GAAQsK,IAC3D41C,GAAwBzgD,GAAaC,GAAcM,GAAQsK,GAAQt0C,GAAS,CAACq9O,KAAM,IACnFpzJ,GAAuBxgD,GAAaC,GAAcM,GAAQhqC,IAC1DoqF,GAAuB3gD,GAAaC,GAAcM,GAAQ,CACtDuhD,UAAWA,GACXf,QAASxqF,GAAQwqF,QACjB4B,SAAUpsF,GAAQosF,SAClB/rF,WAAYq+B,MAGbgL,GAAayc,UAAYzc,GAAax7B,QAAO87B,GAAO,UAEpDhqC,GAAQ2jD,YAAY3Z,GAAO,cAE9B,IAMQ27S,GANJC,GAAwC,kBAAtBl8S,GAAal/B,KAE/BxK,GAAQ6lV,WACe,aAAtBn8S,GAAal/B,OAAuBo7U,KACpCl8S,GAAax7B,QAASw7B,GAAasd,WAGjC4+R,KAAiBD,GAAc,cAClC37S,GAAO,UAAW27S,KAGnBC,KACoB57S,GAAO,kBAEtBA,GAAO,gBACPA,GAAO,kBAIf,OAAON,KAML,OACA,SAAU/yC,GAAQC,GAASI,IAEjC,aAWA,IAAIiY,GAAMjY,GAAoB,QAG9BL,GAAOC,QAAU,SAASq2E,iBAAiB11D,GAAItR,IAC3C,IAAI,IAAI/O,GAAI,EAAGA,GAAIqgB,GAAGhe,OAAQrC,KAAKqgB,GAAGrgB,IAAGA,EAAIA,GAE7C+X,GAAIuzE,WAAWv8E,GAAMS,KAAM6Q,GAAI,MAC/BtI,GAAIuzE,WAAWv8E,GAAMyV,UAAWnE,GAAI,OAEpC,IAAI4X,GAASlpB,GAAMkpB,OACnB,GAAGA,GAAQ,CACPlgB,GAAIuzE,WAAWrzD,GAAOtsB,QAAS0U,GAAI,MACnCtI,GAAIuzE,WAAWrzD,GAAOxuB,MAAO4W,GAAI,MAEjC,IAAIqrE,GAAazzD,GAAOC,KACrBwzD,KACC3zE,GAAIuzE,WAAWI,GAAWjiF,MAAO4W,GAAI,OACrCtI,GAAIyzE,uBAAuBE,GAAWlqE,MAAOnB,GAAI,WAQvD,OACA,SAAU5gB,GAAQC,GAASI,IAEjC,aAGAW,OAAOC,eAAehB,GAAS,aAAc,CAAEsB,OAAO,IAEtD,IAAIuyH,GAAUzzH,GAAoB,QAmClC,SAASkzN,UAAUtyJ,GAAS8H,GAAUomR,IAElC,GAAgB,OAAZluR,GAuBJ,IAtBA,IAAIv9D,GAAGK,GAAGvD,GAAGshE,GAAUstR,GAAOrtR,GAC1BstR,GAGAC,GAFAC,GAAa,EACbC,GAAa,EAEb37U,GAAOotD,GAAQptD,KACf47U,GAA+B,sBAAT57U,GACtB67U,GAAqB,YAAT77U,GACZ64D,GAAO+iR,GAAsBxuR,GAAQK,SAAS1+D,OAAS,EAclD+sV,GAAe,EAAGA,GAAejjR,GAAMijR,KAAgB,CAI5DP,IADAE,MAFAD,GAA2BI,GAAsBxuR,GAAQK,SAASquR,IAAc7tR,SAC3E4tR,GAAYzuR,GAAQa,SAAWb,KACgD,uBAAjCouR,GAAwBx7U,MAC5Cw7U,GAAwBl2G,WAAWv2O,OAAS,EAE3E,IAAK,IAAIgtV,GAAY,EAAGA,GAAYR,GAAOQ,KAAa,CACpD,IAAIC,GAAoB,EACpBC,GAAgB,EAKpB,GAAiB,QAJjBhuR,GAAWwtR,GACPD,GAAwBl2G,WAAWy2G,IAAaP,IAGpD,CACAttR,GAASD,GAASE,YAClB,IAAI+tR,GAAWjuR,GAASjuD,KAIxB,OAFA07U,IAAcJ,IAAkC,YAAbY,IAAuC,iBAAbA,GAAoC,EAAJ,EAErFA,IACR,KAAK,KACD,MACJ,IAAK,QACD,IAAqF,IAAjFhnR,GAAShH,GAAQytR,GAAYG,GAAcE,GAAmBC,IAA0B,OAAO,EACnGN,KACAK,KACA,MACJ,IAAK,aACL,IAAK,aACD,IAAKnsV,GAAI,EAAGA,GAAIq+D,GAAOn/D,OAAQc,KAAK,CAChC,IAAwF,IAApFqlE,GAAShH,GAAOr+D,IAAI8rV,GAAYG,GAAcE,GAAmBC,IAA0B,OAAO,EACtGN,KACiB,eAAbO,IAA2BF,KAElB,eAAbE,IAA2BF,KAC/B,MACJ,IAAK,UACL,IAAK,kBACD,IAAKnsV,GAAI,EAAGA,GAAIq+D,GAAOn/D,OAAQc,KAAK,CAChC,IAAKK,GAAI,EAAGA,GAAIg+D,GAAOr+D,IAAGd,OAAS2sV,GAAYxrV,KAAK,CAChD,IAA2F,IAAvFglE,GAAShH,GAAOr+D,IAAGK,IAAIyrV,GAAYG,GAAcE,GAAmBC,IAA0B,OAAO,EACzGN,KAEa,oBAAbO,IAAgCF,KACnB,YAAbE,IAAwBD,KAEf,YAAbC,IAAwBF,KAC5B,MACJ,IAAK,eACD,IAAKnsV,GAAI,EAAGA,GAAIq+D,GAAOn/D,OAAQc,KAAK,CAEhC,IADAosV,GAAgB,EACX/rV,GAAI,EAAGA,GAAIg+D,GAAOr+D,IAAGd,OAAQmB,KAAK,CACnC,IAAKvD,GAAI,EAAGA,GAAIuhE,GAAOr+D,IAAGK,IAAGnB,OAAS2sV,GAAY/uV,KAAK,CACnD,IAA8F,IAA1FuoE,GAAShH,GAAOr+D,IAAGK,IAAGvD,IAAIgvV,GAAYG,GAAcE,GAAmBC,IAA0B,OAAO,EAC5GN,KAEJM,KAEJD,KAEJ,MACJ,IAAK,qBACD,IAAKnsV,GAAI,EAAGA,GAAIo+D,GAASq3K,WAAWv2O,OAAQc,KACxC,IAAsE,IAAlE6vN,UAAUzxJ,GAASq3K,WAAWz1O,IAAIqlE,GAAUomR,IAA6B,OAAO,EACxF,MACJ,QACI,MAAM,IAAItsV,MAAM,6BA2FhC,SAASmtV,SAAS/uR,GAAS8H,IACvB,IAAIxoE,GACJ,OAAQ0gE,GAAQptD,MAChB,IAAK,oBACD,IAAKtT,GAAI,EAAGA,GAAI0gE,GAAQK,SAAS1+D,SACuB,IAAhDmmE,GAAS9H,GAAQK,SAAS/gE,IAAGkhE,WAAYlhE,IADRA,MAGzC,MACJ,IAAK,UACDwoE,GAAS9H,GAAQQ,WAAY,IAsFrC,SAASwuR,YAAYhvR,GAAS8H,IAC1B,GAAqB,YAAjB9H,GAAQptD,KACRk1D,GAAS9H,GAAS,QACf,GAAqB,sBAAjBA,GAAQptD,KACf,IAAK,IAAItT,GAAI,EAAGA,GAAI0gE,GAAQK,SAAS1+D,SACQ,IAArCmmE,GAAS9H,GAAQK,SAAS/gE,IAAIA,IADOA,OAgHrD,SAAS2vV,SAASjvR,GAAS8H,IACvB,IAAIxoE,GAAGmD,GAAGuoB,GAAG61C,GAAUstR,GACnBC,GACAC,GACAa,GACAC,GACAC,GACAV,GAAe,EACfF,GAAuC,sBAAjBxuR,GAAQptD,KAC9B67U,GAA6B,YAAjBzuR,GAAQptD,KACpB64D,GAAO+iR,GAAsBxuR,GAAQK,SAAS1+D,OAAS,EAc3D,IAAKrC,GAAI,EAAGA,GAAImsE,GAAMnsE,KAAK,CAavB,IAXA8uV,GAA2BI,GAAsBxuR,GAAQK,SAAS/gE,IAAGuhE,SAChE4tR,GAAYzuR,GAAQa,SAAWb,GACpCkvR,GAAqBV,GAAsBxuR,GAAQK,SAAS/gE,IAAGkhE,WAC1DiuR,GAAYzuR,GAAQQ,WAAa,GACtC2uR,GAAeX,GAAsBxuR,GAAQK,SAAS/gE,IAAGyzJ,KACpD07L,GAAYzuR,GAAQ+yF,UAAO7wI,EAChCktU,GAAaZ,GAAsBxuR,GAAQK,SAAS/gE,IAAGmM,GAClDgjV,GAAYzuR,GAAQv0D,QAAKyW,EAE9BisU,IADAE,KAAuB,IAA6D,uBAAjCD,GAAwBx7U,MAC5Cw7U,GAAwBl2G,WAAWv2O,OAAS,EAEtEqpB,GAAI,EAAGA,GAAImjU,GAAOnjU,KAKnB,GAAiB,QAJjB61C,GAAWwtR,GACPD,GAAwBl2G,WAAWltN,IAAKojU,IAO5C,OAAQvtR,GAASjuD,MACjB,IAAK,QACL,IAAK,aACL,IAAK,aACL,IAAK,UACL,IAAK,kBACL,IAAK,eACD,IAAoF,IAAhFk1D,GAASjH,GAAU6tR,GAAcQ,GAAmBC,GAAaC,IAAsB,OAAO,EAClG,MAEJ,IAAK,qBACD,IAAK3sV,GAAI,EAAGA,GAAIo+D,GAASq3K,WAAWv2O,OAAQc,KACxC,IAAkG,IAA9FqlE,GAASjH,GAASq3K,WAAWz1O,IAAIisV,GAAcQ,GAAmBC,GAAaC,IAAsB,OAAO,EAEpH,MAEJ,QACI,MAAM,IAAIxtV,MAAM,8BApBhB,IAAgF,IAA5EkmE,GAAS,KAAM4mR,GAAcQ,GAAmBC,GAAaC,IAAsB,OAAO,EAwBtGV,MAyFR,SAASW,YAAYrvR,GAAS8H,IAC1BmnR,SAASjvR,IAAS,SAAUa,GAAU6tR,GAAcluR,GAAYuyF,GAAMtnJ,IAElE,IAUIqjV,GAVAl8U,GAAqB,OAAbiuD,GAAqB,KAAOA,GAASjuD,KACjD,OAAQA,IACR,KAAK,KACL,IAAK,QACL,IAAK,aACL,IAAK,UACD,OAA+F,IAA3Fk1D,GAAS+qD,GAAQlyD,QAAQE,GAAUL,GAAY,CAACuyF,KAAMA,GAAMtnJ,GAAIA,KAAMijV,GAAc,SACxF,EAMJ,OAAQ97U,IACR,IAAK,aACDk8U,GAAW,QACX,MACJ,IAAK,kBACDA,GAAW,aACX,MACJ,IAAK,eACDA,GAAW,UAIf,IAAK,IAAIF,GAAoB,EAAGA,GAAoB/tR,GAASE,YAAYp/D,OAAQitV,KAAqB,CAClG,IACIhuI,GAAO,CACPhuM,KAAMk8U,GACN/tR,YAHaF,GAASE,YAAY6tR,KAKtC,IAAqF,IAAjF9mR,GAAS+qD,GAAQlyD,QAAQigJ,GAAMpgJ,IAAakuR,GAAcE,IAA8B,OAAO,MA+F/G,SAASU,YAAYtvR,GAAS8H,IAC1BunR,YAAYrvR,IAAS,SAAUW,GAAS+tR,GAAcE,IAClD,IAAIW,GAAe,EAGnB,GAAK5uR,GAAQE,SAAb,CAEA,IAAIjuD,GAAO+tD,GAAQE,SAASjuD,KAC5B,GAAa,UAATA,IAA6B,eAATA,GAAxB,CAGA,IAAI48U,GACAC,GAAuB,EACvBC,GAAqB,EACrBC,GAAgB,EACpB,OAcO,IAdHr9H,UAAU3xJ,IAAS,SAAUivR,GAAcrB,GAAYsB,GAAmBC,GAAqBjB,IAE/F,QAAuB3sU,IAAnBstU,IAAgCd,GAAee,IAAwBK,GAAsBJ,IAAsBb,GAAgBc,GAMnI,OALAH,GAAiBI,GACjBH,GAAuBf,GACvBgB,GAAqBI,GACrBH,GAAgBd,QAChBU,GAAe,GAGnB,IAAIQ,GAAiBl9N,GAAQua,WAAW,CAACoiN,GAAgBI,IAAejvR,GAAQH,YAChF,IAA+F,IAA3FsH,GAASioR,GAAgBrB,GAAcE,GAAmBC,GAAeU,IAAyB,OAAO,EAC7GA,KACAC,GAAiBI,YAbrB,OAgHR,SAASI,SAAShwR,GAAS8H,IAEvB,IAAK9H,GAAS,MAAM,IAAIp+D,MAAM,uBAE9BytV,YAAYrvR,IAAS,SAAUW,GAAS+tR,GAAcE,IAClD,GAAyB,OAArBjuR,GAAQE,SAAZ,CACA,IAAIjuD,GAAO+tD,GAAQE,SAASjuD,KACxBkuD,GAASH,GAAQE,SAASE,YAC9B,OAAQnuD,IACR,IAAK,aACD,IAAiE,IAA7Dk1D,GAASnH,GAAS+tR,GAAcE,GAAmB,EAAG,GAAc,OAAO,EAC/E,MACJ,IAAK,UACD,IAAK,IAAIC,GAAgB,EAAGA,GAAgB/tR,GAAOn/D,OAAQktV,KACvD,IAAgI,IAA5H/mR,GAAS+qD,GAAQua,WAAWtsE,GAAO+tR,IAAgBluR,GAAQH,YAAakuR,GAAcE,GAAmBC,IAA0B,OAAO,OAiQ9J7vV,GAAQszN,UAAYA,UACpBtzN,GAAQixV,YAl6BR,SAASA,YAAYjwR,GAAS8H,GAAUooR,GAAchC,IAClD,IAAIh5I,GAAgBg7I,GAKpB,OAJA59H,UAAUtyJ,IAAS,SAAU4vR,GAAcrB,GAAYG,GAAcE,GAAmBC,IAChC35I,GAAjC,IAAfq5I,SAAqCrsU,IAAjBguU,GAA4CN,GAC/C9nR,GAASotI,GAAe06I,GAAcrB,GAAYG,GAAcE,GAAmBC,MACzGX,IACIh5I,IA65BXl2M,GAAQ+vV,SAAWA,SACnB/vV,GAAQmxV,WAt0BR,SAASA,WAAWnwR,GAAS8H,GAAUooR,IACnC,IAAIh7I,GAAgBg7I,GAKpB,OAJAnB,SAAS/uR,IAAS,SAAUowR,GAAmB1B,IACWx5I,GAAjC,IAAjBw5I,SAAuCxsU,IAAjBguU,GAA4CE,GACjDtoR,GAASotI,GAAek7I,GAAmB1B,OAE7Dx5I,IAi0BXl2M,GAAQgwV,YAAcA,YACtBhwV,GAAQqxV,cAhvBR,SAASA,cAAcrwR,GAAS8H,GAAUooR,IACtC,IAAIh7I,GAAgBg7I,GAKpB,OAJAlB,YAAYhvR,IAAS,SAAUswR,GAAgB5B,IACWx5I,GAAjC,IAAjBw5I,SAAuCxsU,IAAjBguU,GAA4CI,GACjDxoR,GAASotI,GAAeo7I,GAAgB5B,OAE1Dx5I,IA2uBXl2M,GAAQuxV,SAztBR,SAASA,SAASvwR,IACd,IAAIc,GAAS,GAIb,OAHAwxJ,UAAUtyJ,IAAS,SAAUx7B,IACzBs8B,GAAOv8D,KAAKigC,OAETs8B,IAqtBX9hE,GAAQiwV,SAAWA,SACnBjwV,GAAQ2hN,WA5jBR,SAASA,WAAW3gJ,GAAS8H,GAAUooR,IACnC,IAAIh7I,GAAgBg7I,GAKpB,OAJAjB,SAASjvR,IAAS,SAAUwwR,GAAiB9B,GAAcQ,GAAmBC,GAAaC,IACjCl6I,GAAjC,IAAjBw5I,SAAuCxsU,IAAjBguU,GAA4CM,GACjD1oR,GAASotI,GAAes7I,GAAiB9B,GAAcQ,GAAmBC,GAAaC,OAEzGl6I,IAujBXl2M,GAAQqwV,YAAcA,YACtBrwV,GAAQyxV,cAtcR,SAASA,cAAczwR,GAAS8H,GAAUooR,IACtC,IAAIh7I,GAAgBg7I,GAKpB,OAJAb,YAAYrvR,IAAS,SAAUswR,GAAgB5B,GAAcE,IACwB15I,GAA5D,IAAjBw5I,IAA4C,IAAtBE,SAA4C1sU,IAAjBguU,GAA4CI,GAC5ExoR,GAASotI,GAAeo7I,GAAgB5B,GAAcE,OAExE15I,IAicXl2M,GAAQswV,YAAcA,YACtBtwV,GAAQ0xV,cApUR,SAASA,cAAc1wR,GAAS8H,GAAUooR,IACtC,IAAIh7I,GAAgBg7I,GAChBpmC,IAAU,EAMd,OALAwlC,YAAYtvR,IAAS,SAAU+vR,GAAgBrB,GAAcE,GAAmBC,GAAeU,IACtCr6I,IAArC,IAAZ40G,SAAsC5nS,IAAjBguU,GAA4CH,GAChDjoR,GAASotI,GAAe66I,GAAgBrB,GAAcE,GAAmBC,GAAeU,IAC7GzlC,IAAU,KAEP50G,IA6TXl2M,GAAQgxV,SAAWA,SACnBhxV,GAAQ2xV,WA1NR,SAASA,WAAW3wR,GAAS8H,GAAUooR,IACnC,IAAIh7I,GAAgBg7I,GAKpB,OAJAF,SAAShwR,IAAS,SAAUl0C,GAAa4iU,GAAcE,GAAmBC,IAChB35I,GAAjC,IAAjBw5I,SAAuCxsU,IAAjBguU,GAA4CpkU,GACjDg8C,GAASotI,GAAeppL,GAAa4iU,GAAcE,GAAmBC,OAExF35I,IAqNXl2M,GAAQ4xV,YAhLR,SAASA,YAAY5wR,GAAS53D,IAG1B,GADAA,GAAUA,IAAW,IAChByqH,GAAQmsD,SAAS52K,IAAU,MAAM,IAAIxG,MAAM,sBAChD,IAOIi/D,GAPA6tR,GAAetmV,GAAQsmV,cAAgB,EACvCE,GAAoBxmV,GAAQwmV,mBAAqB,EACjDC,GAAgBzmV,GAAQymV,eAAiB,EACzCU,GAAennV,GAAQmnV,cAAgB,EAGvC/uR,GAAap4D,GAAQo4D,WAGzB,OAAQR,GAAQptD,MAChB,IAAK,oBACG87U,GAAe,IAAGA,GAAe1uR,GAAQK,SAAS1+D,OAAS+sV,IAC/DluR,GAAaA,IAAcR,GAAQK,SAASquR,IAAcluR,WAC1DK,GAAWb,GAAQK,SAASquR,IAAc7tR,SAC1C,MACJ,IAAK,UACDL,GAAaA,IAAcR,GAAQQ,WACnCK,GAAWb,GAAQa,SACnB,MACJ,IAAK,QACL,IAAK,aACD,OAAO,KACX,IAAK,aACL,IAAK,UACL,IAAK,kBACL,IAAK,eACDA,GAAWb,GACX,MACJ,QACI,MAAM,IAAIp+D,MAAM,sBAIpB,GAAiB,OAAbi/D,GAAmB,OAAO,KAC9B,IAAIC,GAASD,GAASE,YACtB,OAAQF,GAASjuD,MACjB,IAAK,QACL,IAAK,aACD,OAAO,KACX,IAAK,aAED,OADI28U,GAAe,IAAGA,GAAezuR,GAAOn/D,OAAS4tV,GAAe,GAC7D18N,GAAQua,WAAW,CAACtsE,GAAOyuR,IAAezuR,GAAOyuR,GAAe,IAAK/uR,GAAYp4D,IAC5F,IAAK,UAGD,OAFIymV,GAAgB,IAAGA,GAAgB/tR,GAAOn/D,OAASktV,IACnDU,GAAe,IAAGA,GAAezuR,GAAO+tR,IAAeltV,OAAS4tV,GAAe,GAC5E18N,GAAQua,WAAW,CAACtsE,GAAO+tR,IAAeU,IAAezuR,GAAO+tR,IAAeU,GAAe,IAAK/uR,GAAYp4D,IAC1H,IAAK,kBAGD,OAFIwmV,GAAoB,IAAGA,GAAoB9tR,GAAOn/D,OAASitV,IAC3DW,GAAe,IAAGA,GAAezuR,GAAO8tR,IAAmBjtV,OAAS4tV,GAAe,GAChF18N,GAAQua,WAAW,CAACtsE,GAAO8tR,IAAmBW,IAAezuR,GAAO8tR,IAAmBW,GAAe,IAAK/uR,GAAYp4D,IAClI,IAAK,eAID,OAHIwmV,GAAoB,IAAGA,GAAoB9tR,GAAOn/D,OAASitV,IAC3DC,GAAgB,IAAGA,GAAgB/tR,GAAO8tR,IAAmBjtV,OAASktV,IACtEU,GAAe,IAAGA,GAAezuR,GAAO8tR,IAAmBC,IAAeltV,OAAS4tV,GAAe,GAC/F18N,GAAQua,WAAW,CAACtsE,GAAO8tR,IAAmBC,IAAeU,IAAezuR,GAAO8tR,IAAmBC,IAAeU,GAAe,IAAK/uR,GAAYp4D,IAEhK,MAAM,IAAIxG,MAAM,uBAqHpB5C,GAAQ6xV,UAjFR,SAASA,UAAU7wR,GAAS53D,IAGxB,GADAA,GAAUA,IAAW,IAChByqH,GAAQmsD,SAAS52K,IAAU,MAAM,IAAIxG,MAAM,sBAChD,IAOIi/D,GAPA6tR,GAAetmV,GAAQsmV,cAAgB,EACvCE,GAAoBxmV,GAAQwmV,mBAAqB,EACjDC,GAAgBzmV,GAAQymV,eAAiB,EACzCN,GAAanmV,GAAQmmV,YAAc,EAGnC/tR,GAAap4D,GAAQo4D,WAGzB,OAAQR,GAAQptD,MAChB,IAAK,oBACG87U,GAAe,IAAGA,GAAe1uR,GAAQK,SAAS1+D,OAAS+sV,IAC/DluR,GAAaA,IAAcR,GAAQK,SAASquR,IAAcluR,WAC1DK,GAAWb,GAAQK,SAASquR,IAAc7tR,SAC1C,MACJ,IAAK,UACDL,GAAaA,IAAcR,GAAQQ,WACnCK,GAAWb,GAAQa,SACnB,MACJ,IAAK,QACL,IAAK,aACD,OAAO,KACX,IAAK,aACL,IAAK,UACL,IAAK,kBACL,IAAK,eACDA,GAAWb,GACX,MACJ,QACI,MAAM,IAAIp+D,MAAM,sBAIpB,GAAiB,OAAbi/D,GAAmB,OAAO,KAC9B,IAAIC,GAASD,GAASE,YACtB,OAAQF,GAASjuD,MACjB,IAAK,QACD,OAAOigH,GAAQ/tH,MAAMg8D,GAAQN,GAAYp4D,IAC7C,IAAK,aAED,OADIwmV,GAAoB,IAAGA,GAAoB9tR,GAAOn/D,OAASitV,IACxD/7N,GAAQ/tH,MAAMg8D,GAAO8tR,IAAoBpuR,GAAYp4D,IAChE,IAAK,aAED,OADImmV,GAAa,IAAGA,GAAaztR,GAAOn/D,OAAS4sV,IAC1C17N,GAAQ/tH,MAAMg8D,GAAOytR,IAAa/tR,GAAYp4D,IACzD,IAAK,UAGD,OAFIymV,GAAgB,IAAGA,GAAgB/tR,GAAOn/D,OAASktV,IACnDN,GAAa,IAAGA,GAAaztR,GAAO+tR,IAAeltV,OAAS4sV,IACzD17N,GAAQ/tH,MAAMg8D,GAAO+tR,IAAeN,IAAa/tR,GAAYp4D,IACxE,IAAK,kBAGD,OAFIwmV,GAAoB,IAAGA,GAAoB9tR,GAAOn/D,OAASitV,IAC3DL,GAAa,IAAGA,GAAaztR,GAAO8tR,IAAmBjtV,OAAS4sV,IAC7D17N,GAAQ/tH,MAAMg8D,GAAO8tR,IAAmBL,IAAa/tR,GAAYp4D,IAC5E,IAAK,eAID,OAHIwmV,GAAoB,IAAGA,GAAoB9tR,GAAOn/D,OAASitV,IAC3DC,GAAgB,IAAGA,GAAgB/tR,GAAO8tR,IAAmBjtV,OAASktV,IACtEN,GAAa,IAAGA,GAAaztR,GAAO8tR,IAAmBC,IAAeltV,OAAS4sV,IAC5E17N,GAAQ/tH,MAAMg8D,GAAO8tR,IAAmBC,IAAeN,IAAa/tR,GAAYp4D,IAE3F,MAAM,IAAIxG,MAAM,wBAwBd,OACA,SAAU7C,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAU,SAASwT,aAAa+kG,GAAYE,IAC/C,IAIIn4G,GAAGmD,GAJHkd,GAAK43F,GAAW53F,GAChBmW,GAAKyhF,GAAWhxF,MAChB4P,GAAKohF,GAAW/wF,MAChB1Y,GAAY,GAGhB,IAAuB,IAApB2pG,GACC,IAAIn4G,GAAI,EAAGA,GAAIqgB,GAAGhe,OAAQrC,KACtB,IAAImD,GAAI,EAAGA,IAAKkd,GAAGrgB,IAAGmwC,KAAO,IAAI9tC,OAAQc,KAErCkd,GAAGrgB,IAAGmwC,IAAIhtC,IAAGm1B,SAAW,OAIhC,IAAIt4B,GAAI,EAAGA,GAAIqgB,GAAGhe,OAAQrC,KACtB,IAAImD,GAAI,EAAGA,IAAKkd,GAAGrgB,IAAGmwC,KAAO,IAAI9tC,OAAQc,KAAK,CAC1C,IAAIid,GAAKC,GAAGrgB,IAAGmwC,IAAIhtC,IACfuL,GAAI8nB,GAAGC,IAAIrW,GAAG1R,GACdkH,GAAIihB,GAAGJ,IAAIrW,GAAGxK,GAEfuiG,GAAgB9hF,SAAS,CAAC3nB,GAAGkH,IAAI,KAAMwK,GAAGpgB,EAAGi4G,KAC5CzpG,GAAUvJ,KAAK,CACXqb,YAAaF,GAAGpgB,EAChB0O,EAAG8nB,GAAG6d,IAAIj0B,GAAG1R,GACbkH,EAAGihB,GAAGwd,IAAIj0B,GAAGxK,KAEjBwK,GAAGkY,SAAW,GAEdlY,GAAGkY,SAAW,EAM9B,OAAO9pB,KAML,KACA,SAAU/O,GAAQC,GAASI,IAEjC,aAWA,IAAIiY,GAAMjY,GAAoB,QAC1Bw/G,GAA+Bx/G,GAAoB,QAEnDqJ,GAAarJ,GAAoB,QAGjCQ,GAFYR,GAAoB,QAEfQ,KACjBkxV,GAAYroV,GAAWw2G,MAU3B,SAAS8xO,eAAeC,GAAUC,GAAW/6R,IACzC,SAAS9jB,OAAO1qB,GAAMzE,IAClB,OAAO5L,GAAI+6B,OAAO4+S,GAAUC,GAAWxoV,GAAYif,GAAMzE,IAS7D,IANA,IAAIg8F,GAAQL,GAA6BoyO,GAAUC,GAAW,CAC1DrxV,KAAM,QACNygH,mBAAoBxB,eAGpBqyO,GAAY,EACR5xV,GAAI,EAAGA,GAAI2/G,GAAMt9G,OAAQrC,KAC1B2/G,GAAM3/G,IAAGsS,SAASs/U,KAOzB,GAFGA,GAAY,EAAaD,GAAUr/U,SAAU,EACjCwgC,OAAO,WACtB,CAEA6+S,GAAUE,WAAaD,GACvB,IAAIE,GAAWH,GAAUI,cAAgBh6U,GAAIu4P,cAAc3wJ,KAGtDA,GADQ7sE,OAAO,YACE,IAAIxgC,UAASq/U,GAAUp0H,OAASu0H,GAAS,GAAGllJ,QAElE95J,OAAO,KACPA,OAAO,KACP/6B,GAAImkP,UAAUw1F,GAAUC,GAAW,CAAC,IAAK,MAEzC7+S,OAAO,WACPA,OAAO,WAEPA,OAAO,OACPA,OAAO,WAEPA,OAAO,SACPA,OAAO,SACPA,OAAO,SACPA,OAAO,SAEP/6B,GAAI48E,WAAW7hD,OAAQ,OAAQ8jB,GAAUt1C,MAEbwxB,OAAO,0BAG/BA,OAAO,wBACPA,OAAO,uBACPA,OAAO,uBACPA,OAAO,uBAEP/6B,GAAI48E,WAAW7hD,OAAQ,oBAAqB6+S,GAAUrwU,OAG1DwxB,OAAO,uBACPA,OAAO,qBAEPA,OAAO,WACPA,OAAO,iBACPA,OAAO,eACPA,OAAO,eACPA,OAAO,WACPA,OAAO,aACPA,OAAO,aACPA,OAAO,iBAGX,SAASysE,aAAa0mI,GAASC,IAC3B,SAASpzM,OAAO1qB,GAAMzE,IAClB,OAAO5L,GAAI+6B,OAAOmzM,GAASC,GAAUsrG,GAAWppU,GAAMzE,IAQ1D,GAJsB,SAAnBsiO,GAAQryM,QAAsBhxC,MAAMkL,QAAQm4O,GAAQ18M,MAEtCuJ,OAAO,WADVozM,GAAS5zO,SAAU,EAGrB,CACRwgC,OAAO,UACPA,OAAO,QACP,IAAIgsD,GAAQhsD,OAAO,QAAS,QAAUozM,GAASt5C,QAC/C95J,OAAO,QAASgsD,IAChBhsD,OAAO,YA1FfrzC,GAAOC,QAAU,SAASsyV,gBAAgBr7R,GAAUC,IAChD0oD,GAA6B3oD,GAAUC,GAAW,CAC9Ct2D,KAAMA,GACNygH,mBAAoB0wO,mBA8FtB,KACA,SAAUhyV,GAAQC,GAASI,IAEjC,aAGA,IAAI0wD,GAAK1wD,GAAoB,QACzB+zQ,GAAM/zQ,GAAoB,QAAQmyV,mBAEtCxyV,GAAOC,QAGP,SAASwyV,UAAUxjV,IACjB,IAAIzO,GAAI4zQ,GAAIrjN,GAAGn5C,GAAG3I,KAClB,GAAGzO,GAAI,GACL,OAAOA,GAET,IAAIuvD,GAAIqkN,GAAIrjN,GAAGp5C,GAAG1I,KAClB,GAAG8gD,GAAI,GACL,OAAO,GAET,OAAOA,GAAI,KAMP,OACA,SAAU/vD,GAAQC,GAASI,IAEjC,aAWA,IAAIiY,GAAMjY,GAAoB,QAC1BgyC,GAAUhyC,GAAoB,QAE9BquC,GAAUruC,GAAoB,QAAQquC,QACtCsmF,GAAyB30H,GAAoB,QAAQ20H,uBAErDnwE,GAAiBvsC,GAAIusC,eACrBs6B,GAAe9sC,GAAQ8sC,aAEvBuzQ,GAAW,CACX,CAACC,KAAM,CAAC1jV,EAAG,cAAekH,EAAG,eAAgBtV,KAAM,SACnD,CAAC8xV,KAAM,CAAC1jV,EAAG,YAAakH,EAAG,aAActV,KAAM,OAC/C,CAAC8xV,KAAM,CAAC1jV,EAAG,aAAckH,EAAG,cAAetV,KAAM,QACjD,CAAC8xV,KAAM,CAAC1jV,EAAG,SAAUkH,EAAG,UAAWtV,KAAM,UAGzC+xV,GAAgB,CAAC,IAAK,KAG1B5yV,GAAOC,QAAU,SAASknB,mBAAmBC,GAAUX,IACnD,IAKI0yC,GAAUtF,GAAQsjB,GAAW07Q,GAC7BtyV,GAAGmD,GAAGK,GANN+uV,GAAarsU,GAAW4wD,kBAAoB,GAC5C07Q,GAAa,GACbC,GAAwB,GACxBC,GAAkB,GAKtB,SAAS5/S,OAAO1qB,GAAMzE,IAClB,OAAO5L,GAAI+6B,OAAO8lB,GAAS7pB,OAAQ6pB,GAAUA,GAAS63B,QAAQtnF,WAAYif,GAAMzE,IAGpF,SAASgvU,mBAAmB/5R,IACxB,MAAgC,MAAzBA,GAASzwD,YAAsB,IAAM,IAQhD,SAASyqV,YAAYh6R,GAAUge,GAAW07Q,IAEtC,IAAIO,GAAoBj6R,GAASrjC,IAAM,KAAO+8T,GAC1C17Q,KAAWA,GAAYi8Q,IAE3B,IAAIz1S,GAVR,SAAS01S,YAAYl6R,GAAU05R,IAE3B,OADSxgT,GAAQK,aAAa,CAAC7c,YAAapP,IAAa0yC,GAAU05R,IACzDh/U,KAQGw/U,CAAYl6R,GAAU05R,IAC/B/4U,GAAWq/C,GAAS05R,GAAS,aAAe,GAC5Cz7Q,GAAU07Q,GAAW37Q,IACrBm8Q,IAAe,EAEhBl8Q,KACIz5B,KAAWy5B,GAAQz5B,QAAU7jC,KAAas9D,GAAQt9D,UACjDw5U,IAAe,EACfl8Q,GAAQvjB,OAAOruD,KAAK2zD,IACpBie,GAAQe,KAAK3yE,KAAKqtV,MAElB17Q,GAAYi8Q,GAETz1S,KAAWy5B,GAAQz5B,QAClBrlC,GAAIi3B,KAAK,CACL,uCAAwC4pB,GAASz0D,MACjD,WAAY,QAAUi5C,GAAQ,OAC9B,eAAgB,QAAUy5B,GAAQz5B,OAAQ,SAC5Ch4C,KAAK,MAERmU,KAAas9D,GAAQt9D,UAGpBxB,GAAIi3B,KAAK,CACL,uCAAwC4pB,GAASz0D,MACjD,aAAcoV,GAAU,WACxB,YACCs9D,GAAQt9D,SAAW,QAAUs9D,GAAQt9D,SAAW,YAAc,sBACjEnU,KAAK,QAKhB2tV,KACCR,GAAW37Q,IAAa,CACpBtjB,OAAQ,CAACsF,IACTgf,KAAM,CAAC06Q,IACPl1S,OAAQA,GACR7jC,SAAUq/C,GAAS05R,GAAS,aAAe,KAGnD15R,GAAS,IAAM05R,GAAS,YAAc17Q,GAG1C,IAAI52E,GAAI,EAAGA,GAAI6mB,GAASxkB,OAAQrC,KAC5B44D,GAAW/xC,GAAS7mB,IAEjBmuC,GAAQyqB,GAAU,eACjB45R,GAAWvtV,KAAK2zD,WAITA,GAASo6R,yBACTp6R,GAASq6R,kBAIZ9kT,GAAQyqB,GAAU,UAClB67D,GAAuB77D,GAAS7pB,OAAQ6pB,GAAU1yC,GAAY4sB,SAK1E,IAAI6hF,GAAgBzuG,GAAWi6D,gBAAkB,GASjD,IAAIngF,GAAI,EAAGA,GAAIwyV,GAAWnwV,OAAQrC,KAAK,CAInC,GAHA44D,GAAW45R,GAAWxyV,IACtB42E,GAAY,IAERzoC,GAAQyqB,GAAU,SAAU,CAG5B,GAFA05R,GAASK,mBAAmB/5R,IAEF,UAAvB1yC,GAAW8wD,SAAuBpe,GAAS2nB,eAAgB,CAC1D,IAAIlK,GAAKzd,GAAS05R,GAAS,QACvBY,GAAWt0Q,GAAa14D,GAAYmwD,IAAMzd,GAASzwD,aACnDwsH,GAAcu+N,KAAa,IAAIt6R,GAAS2nB,kBACxC3J,GAAYs8Q,IAIhBt8Q,IAAoC,YAAvB1wD,GAAW8wD,UACxBJ,GACIgI,GAAa14D,GAAY0yC,GAAS3xC,OAClC23D,GAAa14D,GAAY0yC,GAAS1xC,OAClCyrU,mBAAmB/5R,KAK5Bge,IACK67Q,GAAsB77Q,MACtB67Q,GAAsB77Q,IAAa,IAEvC67Q,GAAsB77Q,IAAW3xE,KAAK2zD,KAEtC85R,GAAgBztV,KAAK2zD,IAO7B,IAAIge,MAAa67Q,GAKb,GAAqB,KAJrBn/R,GAASm/R,GAAsB77Q,KAIrBv0E,OAAV,CAKA,IAAI8wV,IAAgB,EACpB,IAAInzV,GAAI,EAAGA,GAAIszD,GAAOjxD,OAAQrC,KAAK,CAC/B44D,GAAWtF,GAAOtzD,IAClBmzV,GAAgBrgT,OAAO,YACvB,MAKJ,IAFA8jC,GAAYu8Q,IAAiBv8Q,GAEzB52E,GAAI,EAAGA,GAAIszD,GAAOjxD,OAAQrC,KAAK,CAE/B,IAAIozV,IADJx6R,GAAWtF,GAAOtzD,KACQ+uC,OAAO89D,SAC9BumP,IAAcA,KAAex8Q,IAC5B7+D,GAAIi3B,KAAK,CACL,QAAS4pB,GAASz0D,MAAO,aACzB,kBAAmByyE,GAAY,IAC/B,yBAA0Bw8Q,GAAY,YACxChuV,KAAK,MAEXwzD,GAASi0C,SAAWj2B,GAKpBg8Q,YAAYh6R,GAAUge,GAAW+7Q,mBAAmB/5R,WA5BpD85R,GAAgBztV,KAAKquD,GAAO,IAkCpC,IAAItzD,GAAI,EAAGA,GAAI0yV,GAAgBrwV,OAAQrC,KAAK,CACxC44D,GAAW85R,GAAgB1yV,IAE3B,IAAIqzV,GAAWvgT,OAAO,YAEtB,GAAG3E,GAAQyqB,GAAU,SACjB,IAAIp1D,GAAI,EAAGA,GAAI,EAAGA,KAAK,CAEnB,IAAI8vV,GAAgBxgT,QADpBw/S,GAASD,GAAc7uV,KACa,WAChC6vV,GAAWA,GAAW,KAAOf,GAAS,MAE1CM,YAAYh6R,GAAU06R,GAAehB,SAGzCM,YAAYh6R,GAAUy6R,GAAUV,mBAAmB/5R,KAK3D,IAAIge,MAAa27Q,GAAY,CACzB,IAAI17Q,GAAU07Q,GAAW37Q,IAGzB,IAFAtjB,GAASujB,GAAQvjB,OAEbnwD,GAAI,EAAGA,GAAIgvV,GAAS9vV,OAAQc,KAAK,CACjC,IAEIivV,GACA37Q,GAHA88Q,GAAWpB,GAAShvV,IACpBilB,GAAOmrU,GAASjzV,KAMpB,GAAY,UAAT8nB,KAAoByuD,GAAQkB,UAA/B,CAEA,IAAI/3E,GAAI,EAAGA,GAAIszD,GAAOjxD,OAAQrC,KAAK,CAK/B,GAJA44D,GAAWtF,GAAOtzD,IAClBsyV,GAASz7Q,GAAQe,KAAK53E,IACtBoyV,GAAOmB,GAASnB,KAAKE,SAE8B1vU,IAAhD0hC,GAAesU,GAAS7pB,OAAQqjT,IAAMxxV,MAAqB,CAC1Di2E,GAAQzuD,IAAQ0qB,OAAOs/S,IACvBv7Q,GAAQzuD,GAAO,UAAW,EAC1B,OAGJquD,IAAY7d,GAASif,UAAY,IAAIy6Q,KAAW,IACpClqU,KAERk8B,GAAesU,GAAUw5R,IAAMjkV,IAAIsoE,GAASruD,KAOpD,GAAY,UAATA,IAA6B,QAATA,GACnB,KAAMpoB,GAAIszD,GAAOjxD,OAAQrC,MACrB44D,GAAWtF,GAAOtzD,KACN,IAAMsyV,GAAS,aAEvBx/S,OAAOs/S,IADP37Q,IAAY7d,GAASif,UAAY,IAAIy6Q,KAAW,IAC1BlqU,KAKtB,UAATA,IAAqByuD,GAAQkB,WAAclB,GAAQ28Q,aAClD56R,GAAWtF,GAAO,GAClBujB,GAAQzuD,IAAQ0qB,OAAOs/S,UASjC,OACA,SAAU3yV,GAAQC,GAASI,IAEjC,aAYAL,GAAOC,QAAU,CAIbwjH,iBAAkB,IAClBC,iBAAkB,IAGlB1rF,YAAa,KAMX,OACA,SAAUh4B,GAAQC,GAASI,IAEjC,aAWA,IAAIuP,GAAKvP,GAAoB,QAEzBwuI,GAAWxuI,GAAoB,QAC/B63B,GAAa73B,GAAoB,QAAQ63B,WAE7Cl4B,GAAOC,QAAU,SAASuQ,MAAMnB,IAC5B,IAAI9M,GAAI8M,GAAGwmB,YAAYm+T,UAAU5jV,UAAU,UAC3C8nB,GAAW7oB,GAAI9M,GAAG,OAElBA,GAAEkO,MAAK,SAASmQ,IACZ,IACItR,GADMsR,GAAG,GACGtR,MACZgwG,GAAiB1vG,GAAGO,OAAO5L,MAE/B+6G,GAAe9uG,MAAM,CAACtE,QAASoD,GAAMpD,UAErCozG,GAAelvG,UAAU,gBAAgBK,MAAK,SAASkQ,IACnD/Q,GAAGO,OAAO5L,MAAM9D,KAAKouI,GAAUluH,GAAIrR,YAQzC,KACA,SAAUtP,GAAQC,GAASI,IAEjC,aAGA,IAAIs6L,GAAOt6L,GAAoB,QAE/BL,GAAOC,QAEP,SAASg0V,MAAMhlV,IACb,OAAO9L,MAAMkL,QAAQY,KAAmB,IAAbA,GAAErM,QAAgB+3L,GAAK1rL,GAAE,KAAO0rL,GAAK1rL,GAAE,MAM9D,KACA,SAAUjP,GAAQC,GAASI,IAEjC,aAGA,IAAI+zH,GAAU/zH,GAAoB,QAE9BojD,GAAOziD,OAAOyiD,KAElBzjD,GAAOC,QAAU,SAAUiC,IAAU,OAAOuhD,GAAK2wE,GAAQlyH,IAAUlB,OAAOkB,IAAUA,MAK9E,KACA,SAAUlC,GAAQC,GAASI,IAEjCL,GAAOC,QAAU,CACf2B,OAAQvB,GAAoB,QAC5BqnB,MAAOrnB,GAAoB,QAC3B43I,WAAY53I,GAAoB,QAChCknE,KAAMlnE,GAAoB,QAC1BqO,IAAKrO,GAAoB,QACzBmc,IAAKnc,GAAoB,QACzB0zG,SAAU1zG,GAAoB,QAC9B4nG,SAAU5nG,GAAoB,QAC9BqkR,OAAQrkR,GAAoB,QAC5BwI,IAAKxI,GAAoB,QACzByI,IAAKzI,GAAoB,QACzBskE,MAAOtkE,GAAoB,QAC3BqkE,YAAarkE,GAAoB,QACjCgL,SAAUhL,GAAoB,QAC9Bi1G,gBAAiBj1G,GAAoB,QACrCuC,OAAQvC,GAAoB,QAC5Bg1G,cAAeh1G,GAAoB,QACnC+oK,OAAQ/oK,GAAoB,QAC5B0wJ,QAAS1wJ,GAAoB,QAC7BuT,UAAWvT,GAAoB,QAC/Bw/D,IAAKx/D,GAAoB,QACzBqzG,KAAMrzG,GAAoB,QAC1BkG,OAAQlG,GAAoB,QAC5BqmR,cAAermR,GAAoB,QACnCgxJ,cAAehxJ,GAAoB,UAM/B,OACA,SAAUL,GAAQC,IAExBD,GAAOC,QAWP,SAASykE,YAAYhkD,GAAK9b,GAAGC,GAAG8/D,IAI5B,OAHAjkD,GAAI,GAAK9b,GAAE,GAAMC,GAAE,GAAK8/D,GACxBjkD,GAAI,GAAK9b,GAAE,GAAMC,GAAE,GAAK8/D,GACxBjkD,GAAI,GAAK9b,GAAE,GAAMC,GAAE,GAAK8/D,GACjBjkD,KAKL,OACA,SAAU1gB,GAAQC,GAASI,IAEjC,aAWA,IAAIiY,GAAMjY,GAAoB,QAC1BqxF,GAAWrxF,GAAoB,QAE/BojB,GAAkBpjB,GAAoB,QACtC+2N,GAAqB/2N,GAAoB,QAE7CL,GAAOC,QAAU,SAASs3D,qBAAqBL,GAAUC,IACrD,SAAS9jB,OAAO1qB,GAAMzE,IAClB,OAAO5L,GAAI+6B,OAAO6jB,GAAUC,GAAW1zC,GAAiBkF,GAAMzE,IAGlEmvB,OAAO,yBACPA,OAAO,8BACPA,OAAO,wBAEP,IACI6gT,GAAWC,GADX18H,GAAYtgK,GAAU0uE,WAG1B,SAASuuN,SAASzrU,GAAMzE,IACpB,OAAO5L,GAAI+6B,OAAO6gT,GAAWC,GAAY1wU,GAAgB4kE,UAAW1/D,GAAMzE,IAG9E,IAAI,IAAIngB,MAAK0zN,GAAW,CACpB,IAAI50M,GAAQ40M,GAAU1zN,IAEtB,GAAG8e,GAAM,GACLqxU,GAAYh9R,GAASnzD,KAAM,IAC3BowV,GAAaziQ,GAASY,aAAan7B,GAAWpzD,GAAG,cACtCg3B,MAAQh3B,GACnBqzN,GAAmB88H,GAAWC,GAAYh9R,GAAWi9R,SAAU,CAAC/2R,OAAQ,GAAI3tD,QAAS,UAClF,CAEH,IAAI,IAAInP,GAAI,EAAGA,GAAIsiB,GAAM,GAAGjgB,OAAQrC,KAChCsiB,GAAM,GAAGtiB,aAEN42D,GAAU0uE,WAAW9hI,QAQlC,OACA,SAAU/D,GAAQC,GAASI,IAEjC,aAaAJ,GAAQw7D,MAAQ,gCAChBx7D,GAAQktB,IAAM,6BACdltB,GAAQyhT,MAAQ,+BAIhBzhT,GAAQo0V,SAAW,CACf54R,MAAOx7D,GAAQktB,IACf,cAAeltB,GAAQyhT,QAMrB,OACA,SAAU1hT,GAAQC,IAExBD,GAAOC,QAUP,SAASykR,OAAQhkQ,GAAK9b,GAAGC,IAKvB,OAJA6b,GAAI,GAAK9b,GAAE,GAAKC,GAAE,GAClB6b,GAAI,GAAK9b,GAAE,GAAKC,GAAE,GAClB6b,GAAI,GAAK9b,GAAE,GAAKC,GAAE,GAClB6b,GAAI,GAAK9b,GAAE,GAAKC,GAAE,GACX6b,KAMH,KACA,SAAU1gB,GAAQC,IAExBA,GAAQ0oC,EAAI3nC,OAAO4lL,uBAKb,OACA,SAAU5mL,GAAQC,GAASI,IAEjC,aAWA,IAAIi0V,GAAWj0V,GAAoB,QAAQ80R,IACvCo/D,GAAgBl0V,GAAoB,QAAQk0V,cAC5Cj8U,GAAMjY,GAAoB,QAY9BL,GAAOC,QAAU,SAASwzF,uBAAuB3gD,GAAaC,GAAcM,GAAQ/iB,IAGhF,IAAIskE,IAFJtkE,GAAOA,IAAQ,IAEMskE,UAErB,SAASlX,QAAQ/0D,GAAMzE,IACnB,OAAO5L,GAAIolE,QAAQ5qC,GAAaC,GAAcziB,GAAK5mB,WAAYif,GAAMzE,IAGzE,IAAI05D,GAAYF,QAAQ,YAAakX,IACjC7qF,GAAY2zE,QAAQ,aACTrqC,GAAO,WAAY/iB,GAAKklE,YAAc5X,MAAe7zE,aAGzDgpC,GAAa07L,iBACb17L,GAAa8a,WAGxB,IACI2mS,GAAY92Q,QAAQ,YADJ42Q,GAAS1/P,GAAWtkE,GAAKujE,QAASvjE,GAAKilE,OAASg/P,IAAevmN,eAE/EymN,GAAY/2Q,QAAQ,aAQxB,GAPoBrqC,GAAO,WAAY/iB,GAAKmlE,YAAc++P,MAAeC,aAG9D1hT,GAAa6d,iBACb7d,GAAa4d,YAGpBrgC,GAAKolE,WAAY,CACjB,IAAIumL,GAAgBv+L,QAAQ,gBAAiBkX,IACzConL,GAAgBt+L,QAAQ,iBACTrqC,GAAO,WAAY/iB,GAAKmlE,YAAcwmL,MAAmBD,aAGjEjpO,GAAake,qBACble,GAAame,kBAQ1B,OACA,SAAUlxD,GAAQC,GAASI,IAEjC,IAAIqqD,GAAOrqD,GAAoB,QAC3Bu3D,GAAMv3D,GAAoB,QAC1Bq0V,GAA+Br0V,GAAoB,QACnDY,GAAiBZ,GAAoB,QAAQsoC,EAEjD3oC,GAAOC,QAAU,SAAU00V,IACzB,IAAItzV,GAASqpD,GAAKrpD,SAAWqpD,GAAKrpD,OAAS,IACtCu2D,GAAIv2D,GAAQszV,KAAO1zV,GAAeI,GAAQszV,GAAM,CACnDpzV,MAAOmzV,GAA6B/rT,EAAEgsT,QAOpC,OACA,SAAU30V,GAAQC,GAASI,IAEjC,aAWA,IAAIqjB,GAAqBrjB,GAAoB,QAAQqjB,mBACjDglE,GAAoBroF,GAAoB,QAAQqoF,kBAChDksQ,GAAkBv0V,GAAoB,QACtC24B,GAAe34B,GAAoB,QACnCw0V,GAAcx0V,GAAoB,QAClCsjB,GAAYtjB,GAAoB,QAChCojB,GAAkBpjB,GAAoB,QAEtCujB,GAAavjB,GAAoB,QAAQujB,WACzCC,GAAcxjB,GAAoB,QAAQwjB,YAE1C4kE,GAAYmsQ,GAAgBn8T,KAC5B2jI,GAAcw4L,GAAgBp8T,OAElCx4B,GAAOC,QAAU4jB,GAAY,CACzBgqE,IAAK+mQ,GAAgB/mQ,IACrBG,IAAK4mQ,GAAgB5mQ,IAKrBvsF,KAAMmiB,GAAW,GAAIoV,GAAav3B,KAAM,CACpCyiB,KAAM,YAIVnU,KAAM6T,GAAW,GAAIoV,GAAajpB,KAAM,IAGxCk5E,aAAcP,GAAkB,CAACtkE,SAAU,QAAS,CAChDq/B,KAAM,CAAC,MAAO,MAAO,UAEzB1+B,UAAWnB,GAAW,GAAIoV,GAAajU,UAAW,IAIlD0T,KAAM,CACFzuB,MAAOy+E,GAAUz+E,MACjB+X,MAAO0mE,GAAU1mE,OAMrBkD,YAAa+T,GAAa/T,YAE1BuT,OAAQ5U,GAAW,CACfooE,OAAQ,CACJ/nE,QAAS,SACTC,KAAM,SAENY,SAAS,GAGb5Y,QAASkwJ,GAAYlwJ,QACrBoY,KAAM83I,GAAY93I,KAClBsoE,QAASwvE,GAAYxvE,QACrBC,QAASuvE,GAAYvvE,QACrBC,SAAUsvE,GAAYtvE,UAEtBrpE,GAAgB,WAIpBlR,KAAMqiV,GAAgBriV,KACtBk6E,UAAWzzD,GAAayzD,UAExBpD,SAAUwrQ,GAAYz1R,OAAO4sB,OAAO3C,SACpCH,aAAc2rQ,GAAYz1R,OAAO4sB,OAAO9C,aAExCuI,MAAO,CACHxtE,QAAS,UAKb4U,SAAU,CACNL,OAAQQ,GAAaH,SAASL,QAElCu0D,WAAY,CACRv0D,OAAQQ,GAAa+zD,WAAWv0D,QAGpCrS,UAAWvC,GAAW,GAAID,GAAUwC,UAAW,CAC3CqR,MAAO,CAAC,MAAO,MAAO,OAAQ,UAElCxS,cAAetB,MAChB,OAAQ,WAKL,OACA,SAAU1jB,GAAQC,GAASI,IAEjC,aAYA,IAAIwP,GAAYxP,GAAoB,QAChCmxE,GAAsBnxE,GAAoB,QAAQmxE,oBAgEtD,SAASsjR,MAAMv8T,GAAM/J,IACjB,OAAO,WACH,IACIumU,GACAC,GACAt0U,GACAngB,GACAmD,GALAuxV,GAAU18T,GAOd,IAAIh4B,GAAI,EAAGA,GAAIiuB,GAAM5rB,OAAS,EAAGrC,KAAK,CAElC,IAAgB,KADhBw0V,GAAUvmU,GAAMjuB,KACG,CAGf,IAFAy0V,IAAU,EACVt0U,GAAM,GACFhd,GAAI,EAAGA,GAAIuxV,GAAQryV,OAAQc,KAC3Bgd,GAAIhd,IAAKoxV,MAAMG,GAAQvxV,IAAI8qB,GAAMzrB,MAAMxC,GAAI,GAAlCu0V,GACNp0U,GAAIhd,MAAOgd,GAAI,KAAIs0U,IAAU,GAEpC,OAAOA,GAAUt0U,GAAI,GAAKA,GAE9B,GAAsB,iBAAZq0U,KAAyBvjR,GAAoByjR,IACnD,OAGJ,GAAsB,iBADtBA,GAAUA,GAAQF,MAC4B,OAAZE,GAC9B,OAKR,GAAsB,iBAAZA,IAAoC,OAAZA,IAGvB,QADXv0U,GAAMu0U,GAAQzmU,GAAMjuB,MAEpB,OAAOmgB,IAlFf1gB,GAAOC,QAAU,SAAS4kD,eAAe7yB,GAAWkjU,IAChD,GAAGrlV,GAAUqlV,IAAUA,GAAU9yU,OAAO8yU,SACnC,GAAsB,iBAAZA,IACgC,SAAvCA,GAAQjiV,OAAOiiV,GAAQtyV,OAAS,GACpC,KAAM,sBAUV,IAPA,IAEIuyV,GACA9gT,GACA9zC,GAJAmD,GAAI,EACJ0xV,GAAYF,GAAQjkV,MAAM,KAMxBvN,GAAI0xV,GAAUxyV,QAAQ,CAGxB,GADAuyV,GAAU/yU,OAAOgzU,GAAU1xV,KAAImlB,MAAM,kCACzB,CACR,GAAGssU,GAAQ,GAAIC,GAAU1xV,IAAKyxV,GAAQ,OAEjC,IAAS,IAANzxV,GACH,KAAM,sBADM0xV,GAAU/jV,OAAO,EAAG,GAOrC,IAJAgjC,GAAU8gT,GAAQ,GACbliV,OAAO,EAAGkiV,GAAQ,GAAGvyV,OAAS,GAC9BqO,MAAM,MAEP1Q,GAAI,EAAGA,GAAI8zC,GAAQzxC,OAAQrC,KAC3BmD,KACA0xV,GAAU/jV,OAAO3N,GAAG,EAAG80C,OAAOnE,GAAQ9zC,MAG9CmD,KAGJ,MAAwB,iBAAdsuB,GA4Kd,SAASqjU,aAAarjU,GAAWkjU,GAASE,IACtC,MAAO,CACH1mV,IAAK,WAAa,KAAM,iBACxBvN,IAAK,aACL0gG,KAAMqzP,GACN1mU,MAAO4mU,GACPn3T,IAAKjM,IAjLEqjU,CAAarjU,GAAWkjU,GAASE,IAGrC,CACH1mV,IAAK4mV,MAAMtjU,GAAWojU,GAAWF,IACjC/zV,IAAK2zV,MAAM9iU,GAAWojU,IACtBvzP,KAAMqzP,GACN1mU,MAAO4mU,GACPn3T,IAAKjM,KAuDb,IAAIujU,GAAe,eACnB,SAASC,YAAY1iU,GAAKoiU,IACtB,YAAgB/xU,IAAR2P,IAA+B,OAARA,KAAiBoiU,GAAQrsU,MAAM0sU,IAGlE,SAASD,MAAM/8T,GAAM/J,GAAO0mU,IACxB,OAAO,SAASpiU,IACZ,IAIIiiU,GACAx0V,GALA00V,GAAU18T,GACV81P,GAAW,GACXonE,GAAkB,CAAC,CAACl9T,GAAM81P,KAC1BqnE,GAAWF,YAAY1iU,GAAKoiU,IAIhC,IAAI30V,GAAI,EAAGA,GAAIiuB,GAAM5rB,OAAS,EAAGrC,KAAK,CAGlC,GAAsB,iBAFtBw0V,GAAUvmU,GAAMjuB,OAEmBixE,GAAoByjR,IACnD,KAAM,4CAIV,IAAgB,IAAbF,GAAgB,CAEf,GADAW,IAAYC,YAAYV,GAASzmU,GAAMzrB,MAAMxC,GAAI,GAAIuyB,GAAKoiU,IAC7C,MACR,OAGT,IAAIU,kBAAkBX,GAASF,GAASvmU,GAAMjuB,GAAI,GAAIm1V,IAClD,MAKJ,GAAsB,iBAFtBT,GAAUA,GAAQF,MAE4B,OAAZE,GAC9B,KAAM,6BAGV5mE,GAAWwnE,YAAYxnE,GAAU0mE,IAEjCU,GAAgBjwV,KAAK,CAACyvV,GAAS5mE,KAGnC,GAAGqnE,IACC,GAAGn1V,KAAMiuB,GAAM5rB,OAAS,WACbqyV,GAAQzmU,GAAMjuB,KAKlB4C,MAAMkL,QAAQ4mV,MAAazmU,GAAMjuB,KAAO00V,GAAQryV,OAAS,GACxD,KAAMqyV,GAAQryV,aAA0CugB,IAAhC8xU,GAAQA,GAAQryV,OAAS,IAC7CqyV,GAAQhvV,WAIjBgvV,GAAQzmU,GAAMjuB,KAAMuyB,IAInC,SAAS+iU,YAAYX,GAASY,IAC1B,IAAIC,GAAQD,GAIZ,OAHGjmV,GAAUimV,IAAUC,GAAQ,IAAMD,GAAU,IACvCZ,KAASa,GAAQ,IAAMD,IAExBZ,GAAUa,GAIrB,SAASJ,YAAYK,GAAgBC,GAAYnjU,GAAKoiU,IAClD,IAMI30V,GANA21V,GAAW1kR,GAAoB1+C,IAC/BqjU,IAAS,EACTC,GAAUtjU,GACVujU,GAAcnB,GAAQt8U,QAAQ,KAAM,GACpC09U,IAAaJ,IAAmBV,YAAY1iU,GAAKujU,IACjDE,GAAYN,GAAW,GAG3B,IAAI11V,GAAI,EAAGA,GAAIy1V,GAAepzV,OAAQrC,KAClC81V,GAAcnB,GAAQt8U,QAAQ,KAAMrY,IACjC21V,KAECI,GAAad,YADbY,GAAUtjU,GAAIvyB,GAAIuyB,GAAIlwB,QACYyzV,KAEnCC,KAAYH,IAAS,GACpBP,kBAAkBI,GAAgBz1V,GAAGg2V,GAAWD,KAGpDhB,MAAMU,GAAez1V,IAAI01V,GAAYf,GAAQt8U,QAAQ,KAAMrY,IAA3D+0V,CAA+Dc,IAEnE,OAAOD,GAQX,SAASP,kBAAkB5jU,GAAW8gQ,GAAM0jE,GAAUd,IAClD,QAAuBvyU,IAApB6O,GAAU8gQ,IAAqB,CAC9B,GAAG4iE,GAAU,OAAO,EAEa1jU,GAAU8gQ,IAApB,iBAAb0jE,GAAyC,GAC5B,GAE3B,OAAO,IAgBL,KACA,SAAUx2V,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAU,CACb,KAAQ,CACJ,MAAS,MACT,OAAU,IACV,KAAQ,sVACR,UAAa,0BAEjB,KAAQ,CACJ,MAAS,MACT,OAAU,IACV,KAAQ,yTACR,UAAa,0BAEjB,eAAgB,CACZ,MAAS,IACT,OAAU,IACV,KAAQ,obACR,UAAa,0BAEjB,QAAW,CACP,MAAS,IACT,OAAU,IACV,KAAQ,4MACR,UAAa,0BAEjB,IAAO,CACH,MAAS,IACT,OAAU,IACV,KAAQ,8KACR,UAAa,0BAEjB,UAAa,CACT,MAAS,IACT,OAAU,IACV,KAAQ,qHACR,UAAa,0BAEjB,WAAc,CACV,MAAS,IACT,OAAU,IACV,KAAQ,qEACR,UAAa,0BAEjB,UAAa,CACT,MAAS,IACT,OAAU,IACV,KAAQ,uaACR,UAAa,0BAEjB,cAAiB,CACb,MAAS,KACT,OAAU,IACV,KAAQ,wDACR,UAAa,0BAEjB,gBAAmB,CACf,MAAS,KACT,OAAU,IACV,KAAQ,wGACR,UAAa,0BAEjB,WAAc,CACV,MAAS,KACT,OAAU,IACV,KAAQ,qMACR,UAAa,0BAEjB,SAAU,CACN,MAAS,IACT,OAAU,IACV,KAAQ,wcACR,UAAa,0BAEjB,YAAa,CACT,MAAS,IACT,OAAU,IACV,KAAQ,ogBACR,UAAa,0BAEjB,OAAU,CACN,MAAS,IACT,OAAU,IACV,KAAQ,6dACR,UAAa,0BAEjB,MAAS,CACL,MAAS,IACT,OAAU,IACV,KAAQ,qdACR,UAAa,0BAEjB,SAAY,CACR,MAAS,MACT,OAAU,IACV,KAAQ,2bACR,UAAa,0BAEjB,KAAQ,CACJ,MAAS,MACT,OAAU,IACV,KAAQ,uZACR,UAAa,0BAEjB,MAAS,CACL,MAAS,KACT,OAAU,IACV,KAAQ,qiBACR,UAAa,0BAEjB,UAAa,CACT,MAAS,IACT,OAAU,IACV,KAAQ,2YACR,UAAa,0BAEjB,UAAa,CACT,MAAS,IACT,OAAU,IACV,KAAQ,6LACR,UAAa,8BAEjB,OAAU,CACN,MAAS,KACT,OAAU,KACV,KAAQ,kQACR,UAAa,uBAEjB,cAAiB,CACb,KAAQ,gBACR,IAAO,w3BAOT,KACA,SAAUD,GAAQC,GAASI,IAEjC,aAWA,IAAIuP,GAAKvP,GAAoB,QACzBmjB,GAAQnjB,GAAoB,QAC5BiY,GAAMjY,GAAoB,QAC1B63B,GAAa73B,GAAoB,QAAQ63B,WAmB7C,SAAS22G,SAAStsI,GAAGoe,GAAIrR,IACrB,IAAIwR,GAAMH,GAAGlW,KAAKA,KACd0iS,IAAUxsR,GAAGo/E,SACb2rM,GAAW5qR,GAAIvgB,EACfq9E,GAAYtlE,GAAIi6P,WAAWjjQ,GAAOo8R,GAAU,sBAAwBloR,GAAMgB,YAC1Eza,GAAYuO,GAAIi6P,WAAWjjQ,GAAOo8R,GAAU,sBAAwB,EAExEnpS,GAAEiO,MAAM,eAAgBzG,IACnBtJ,KAAK+iB,GAAMjR,KAAMuO,GAAI9W,OACrBvJ,KAAK+iB,GAAM0I,OAAQ0xD,IACnBptE,MAAM,UAAW28R,GAAS79R,GAAMq3D,KAAKz6D,QAAU,MAGxDlM,GAAOC,QAAU,CACbuQ,MA/BJ,SAASA,MAAMnB,IACX,IAAI9M,GAAI8M,GAAGwmB,YAAY4gU,eAAermV,UAAU,UAChD8nB,GAAW7oB,GAAI9M,GAAG,YAElBA,GAAEkO,MAAK,SAASmQ,IACZ,IAAIwX,GAASxoB,GAAGO,OAAO5L,MAEnB+K,GADMsR,GAAG,GACGtR,MAEhB8oB,GAAO5nB,MAAM,UAAWlB,GAAMpD,SAE9BksB,GAAOhoB,UAAU,gBAAgBK,MAAK,SAASkQ,IAC3C/Q,GAAGO,OAAO5L,MAAM9D,KAAKouI,SAAUluH,GAAIrR,WAoB3Cu/H,SAAUA,WAMR,OACA,SAAU7uI,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAUI,GAAoB,SAK/B,OACA,SAAUL,GAAQC,GAASI,IAEjC,aAWA,IAAIwP,GAAYxP,GAAoB,QAChCosI,GAAYpsI,GAAoB,QAChC4I,GAAO5I,GAAoB,QAE3Bs9E,GAAat9E,GAAoB,QACjCq2V,GAAYr2V,GAAoB,QAAQmkB,YACxCgtD,GAAsBnxE,GAAoB,QAAQmxE,oBAElDmlR,GAAgB1tV,GAAKytV,IAGzB,SAASE,eAAeC,GAASC,IAC7B,IAAIC,GAAWF,GAEf,OADAE,GAAS,IAAMD,GACRC,GAGX,SAASC,cAAcH,IACnB,GAAGhnV,GAAUgnV,IAAU,OAAOF,GAE9B,IAAII,GAAW9tV,GAAK4tV,IAEpB,OAAOE,GAASn0V,OAASm0V,GAAWJ,GAGxC,SAASM,gBAAgBH,IACrB,OAAOjnV,GAAUinV,IAAaA,GAjBhB,EA+ElB92V,GAAOC,QAAU,CACbi3V,YA5DJ,SAASA,YAAYpkT,GAAagkT,GAAWvmU,IACzC,IAMIi9G,GAAS2pN,GAAUC,GAAYC,GAAQC,GANvCT,GAAU/jT,GAAY9oC,MACtButV,GAAiB/lR,GAAoBqlR,IACrCW,GAAmBhmR,GAAoBslR,IACvC54N,GAAQvgD,GAAWG,YAAYhrC,IAC/BikT,GAAW,GAuBf,GAlBIvpN,QADoBrqH,IAArB+6G,GAAMngD,WACKJ,GAAWsS,4BAA4Bn9C,IAEvCkkT,cAIVG,GADDI,GACY,SAAS52V,GAAGJ,IAEnB,YAAgB4iB,IAATxiB,GAAEJ,IAAmBo2V,GAAgB1tV,GAAKukI,GAAQ7sI,GAAEJ,OAEjDy2V,cAGdI,GADDI,GACc,SAASz2V,GAAGR,IACrB,YAAgB4iB,IAATpiB,GAAER,IA5CH,EA4CoC02V,gBAAgBl2V,GAAER,MAEhD02V,gBAEjBM,IAAkBC,GACjB,IAAI,IAAIj3V,GAAI,EAAGA,GAAIgwB,GAAKhwB,KACpB82V,GAASF,GAASN,GAASt2V,IAC3B+2V,GAAWF,GAAWN,GAAWv2V,IACjCw2V,GAASx2V,IAAKq2V,eAAeS,GAAQC,SAEtCP,GAAWH,eAAe3tV,GAAK4tV,IAAUC,IAEhD,OAAOC,IAyBP5rG,gBAtBJ,SAASA,gBAAgB5yN,GAAM8xC,SACdlnD,IAAVknD,KAAqBA,GAAQ,GAEhC,IAAI6zD,GAAQvgD,GAAWG,YAAYvlD,IAMnC,OAJiB2lG,GAAME,aACnBzgD,GAAW0gD,UAAUH,GAAMngD,YAC3BmgD,GAAMngD,YAEQniC,KAAI,SAASgsH,IAC3B,IAAIljK,GAAQkjK,GAAK,GAEbh/J,GADQ6jI,GAAUm7B,GAAK,IACXr6B,QAChB,MAAO,CACH7oI,MAAOA,GACPkE,IAAK,CAACA,GAAIxH,EAAGwH,GAAIqjB,EAAGrjB,GAAI/D,EAAGwlE,WAajC,KACA,SAAUrqE,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAU,CACb2rL,WAAY,CACR3nK,QAAS,aACTsV,OAAQ,CAAC,QAAS,QAAS,WAC3BrV,KAAM,QAENE,SAAU,QAGdynK,UAAW,CACP5nK,QAAS,SACTpb,IAAK,EACLC,IAAK,EAELsb,SAAU,QAGd0nK,eAAgB,CACZ7nK,QAAS,SACTpb,IAAK,EACLC,IAAK,EACLob,KAAM,EAENE,SAAU,UAQZ,OACA,SAAUpkB,GAAQC,GAASI,IAEjC,aAaAL,GAAOC,QAAU,WACS,oBAAZ2oB,UAC2D,WAA7CyM,OAAOoiU,cAAgB,IAAIC,gBAG3C9uU,QAAQkB,IAAII,OAAO,CACfC,aAAc,OACdwtU,oBAAoB,EACpBrtU,aAAc,OACdF,QAAS,CACLC,WAAY,CAAC,CAAC,IAAK,KAAM,CAAC,MAAO,WAGzCzB,QAAQkB,IAAI8tU,iBAQlB,OACA,SAAU53V,GAAQC,GAASI,IAEjC,aAWA,IAAI+qP,GAAgB/qP,GAAoB,QACpCiY,GAAMjY,GAAoB,QAE1BoX,GAAa,CAAC,QAAS,QAAS,SAEpC,SAASogV,cACLtzV,KAAKiH,OAAS,CACV,EAAE,IAAK,IAAK,IACZ,CAAC,GAAI,GAAI,KAGbjH,KAAKgT,MAAQ,CAAE,GAAI,GAAI,IACvBhT,KAAK+2Q,WAAa,EAAE,GAAM,GAAM,GAChC/2Q,KAAKuzV,SAAW,CAAE,aAAc,aAAc,cAC9CvzV,KAAK2sM,SAAW,CAAE,GAAI,GAAI,IAC1B3sM,KAAK4sD,UAAY,CAAE,EAAG,EAAG,GACzB5sD,KAAKu4J,UAAY,CAAE,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IACzDv4J,KAAK82Q,QAAU,CAAE,GAAI,GAAI,IAEzB92Q,KAAKmiB,OAAS,CAAE,IAAK,IAAK,KAC1BniB,KAAKk3Q,YAAc,EAAE,GAAM,GAAM,GACjCl3Q,KAAKs5Q,UAAY,CAAC,YAAa,YAAa,aAC5Ct5Q,KAAKq5Q,UAAY,CAAE,GAAI,GAAI,IAC3Br5Q,KAAKm3Q,WAAa,CAAE,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IAC1Dn3Q,KAAKg3Q,SAAW,CAAE,GAAI,GAAI,IAE1Bh3Q,KAAKwzV,WAAa,EAAE,GAAM,GAAM,GAChCxzV,KAAKyzV,WAAa,EAAE,GAAO,GAAO,GAClCzzV,KAAKwF,UAAY,CAAE,EAAG,EAAG,GACzBxF,KAAKq5E,UAAY,CAAE,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IAEzDr5E,KAAK0zV,eAAiB,EAAE,GAAM,GAAM,GACpC1zV,KAAK2zV,eAAiB,EAAE,GAAO,GAAO,GACtC3zV,KAAK4zV,eAAiB,CAAE,GAAI,GAAI,IAChC5zV,KAAK6zV,cAAgB,CAAE,EAAG,EAAG,GAC7B7zV,KAAK8zV,cAAgB,CAAE,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IAE7D9zV,KAAK+zV,WAAa,EAAE,GAAM,GAAM,GAChC/zV,KAAKkwV,UAAY,CAAE,EAAG,EAAG,GACzBlwV,KAAKiwV,UAAY,CAAE,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IAEzDjwV,KAAKg0V,WAAa,EAAE,GAAM,GAAM,GAChCh0V,KAAK03Q,cAAgB,CAAE,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IAC7D13Q,KAAKy3Q,cAAgB,CAAE,EAAG,EAAG,GAE7Bz3Q,KAAKi0V,iBAAmB,EAAE,GAAM,GAAM,GACtCj0V,KAAKysM,gBAAkB,CAAE,CAAC,GAAK,GAAK,GAAK,IACf,CAAC,GAAK,GAAK,GAAK,IAChB,CAAC,GAAK,GAAK,GAAK,KAG1CzsM,KAAKk0V,gBAAkBl0V,KAAK82Q,QAAQt4Q,QACpCwB,KAAKm0V,iBAAmBn0V,KAAKg3Q,SAASx4Q,QACtCwB,KAAKo0V,uBAAyBp0V,KAAK4zV,eAAep1V,QAG1C80V,YAAYz1V,UAElBgnL,MAAQ,SAAS3iK,GAAYpP,IAE/B,IADA,IACQ9W,GAAI,EAAGA,GAAI,IAAKA,GAAG,CACvB,IAAIiX,GAAOH,GAAYI,GAAWlX,KAE9BiX,GAAK3E,SAJFtO,KAgBFmiB,OAAOnmB,IAAKkmB,GAAWyqE,MACxB54E,GAAI+pG,eAAe7qG,GAAK8qC,MAAMvyC,KAAM0W,GAAWyqE,OAC/C15E,GAAK8qC,MAAMvyC,KAEZ,SAAUyH,GAAK8qC,QACX9qC,GAAK8qC,MAAMzgC,KAAK7X,QArBhBzF,KAqB4Bm3Q,WAAWn7Q,IAAK6qP,GAAc5zO,GAAK8qC,MAAMzgC,KAAK7X,QAC1EwN,GAAK8qC,MAAMzgC,KAAKN,SAtBhBhd,KAsB6Bs5Q,UAAUt9Q,IAAKiX,GAAK8qC,MAAMzgC,KAAKN,QAC5D/J,GAAK8qC,MAAMzgC,KAAKyC,OAvBhB/f,KAuB2Bq5Q,UAAUr9Q,IAAKiX,GAAK8qC,MAAMzgC,KAAKyC,OAI9D,aAAc9M,KA3BVjT,KA2BqBwzV,WAAWx3V,IAAKiX,GAAKg4C,UAC9C,cAAeh4C,KA5BXjT,KA4BsBq5E,UAAUr9E,IAAK6qP,GAAc5zO,GAAKi3N,YAC5D,cAAej3N,KA7BXjT,KA6BsBwF,UAAUxJ,IAAKiX,GAAKq2C,WAE9C,aAAcr2C,KA/BVjT,KA+BqB+zV,WAAW/3V,IAAKiX,GAAK64C,UAC9C,cAAe74C,KAhCXjT,KAgCsBiwV,UAAUj0V,IAAK6qP,GAAc5zO,GAAKo5C,YAC5D,cAAep5C,KAjCXjT,KAiCsBkwV,UAAUl0V,IAAKiX,GAAKm5C,WAIhC,QAAdn5C,GAAK3D,KArCDtP,KAqCsBg0V,WAAWh4V,KAAK,EACrC,aAAciX,KAtCfjT,KAsC0Bg0V,WAAWh4V,IAAKiX,GAAKo7C,UACnD,kBAAmBp7C,KAvCfjT,KAuC0B03Q,cAAc17Q,IAAK6qP,GAAc5zO,GAAKy5C,gBACpE,kBAAmBz5C,KAxCfjT,KAwC0By3Q,cAAcz7Q,IAAKiX,GAAK05C,eAGtD,UAAW15C,IAAUA,GAAKD,MA3CtBhT,KA2CkC0zV,eAAe13V,KAAK,EA3CtDgE,KA4CG0zV,eAAe13V,KAAK,EAE3B,YAAaiX,KA9CTjT,KA+CE4zV,eAAe53V,IA/CjBgE,KA+C2Bo0V,uBAAuBp4V,IAAKiX,GAAKu1C,SAEhE,cAAev1C,KAjDXjT,KAiDsB8zV,cAAc93V,IAAK6qP,GAAc5zO,GAAK04C,YAChE,cAAe14C,KAlDXjT,KAkDsB6zV,cAAc73V,IAAKiX,GAAK24C,WAClD,cAAe34C,KAnDXjT,KAoDE4sD,UAAU5wD,IAAyB,SAAnBiX,GAAKw4C,WACrB,KACDvpD,KAAK67B,IAAM9qB,GAAKw4C,UAAY,KAIjC,mBAAoBx4C,KA1DhBjT,KA0D2B+2Q,WAAW/6Q,IAAKiX,GAAK22C,gBACpD,aAAc32C,KACVA,GAAKwhC,SAAShvC,QA5DdzF,KA4D0Bu4J,UAAUv8J,IAAK6qP,GAAc5zO,GAAKwhC,SAAShvC,QACrEwN,GAAKwhC,SAASz3B,SA7Ddhd,KA6D2BuzV,SAASv3V,IAAKiX,GAAKwhC,SAASz3B,QACvD/J,GAAKwhC,SAAS10B,OA9Dd/f,KA8DyB2sM,SAAS3wM,IAAKiX,GAAKwhC,SAAS10B,OAGzD,WAAY9M,IAC+C,IAAvD,CAAC,QAAS,MAAO,YAAYxT,QAAQwT,GAAKixC,SAlE1ClkD,KAmEM2zV,eAAe33V,KAAK,EAnE1BgE,KAoEMyzV,WAAWz3V,KAAK,IACC,IAAhBiX,GAAKixC,QArEZlkD,KAsEM2zV,eAAe33V,KAAK,EAtE1BgE,KAuEMyzV,WAAWz3V,KAAK,IAvEtBgE,KAyEM2zV,eAAe33V,KAAK,EAzE1BgE,KA0EMyzV,WAAWz3V,KAAK,GA1EtBgE,KA4EKyzV,WAAWz3V,KAAK,EAGzB,mBAAoBiX,KAAgC,IAAxBA,GAAKohV,gBA/E7Br0V,KAgFEi0V,iBAAiBj4V,KAAK,EAhFxBgE,KAiFEysM,gBAAgBzwM,IAAK6qP,GAAc5zO,GAAKqhV,kBAjF1Ct0V,KAkFKi0V,iBAAiBj4V,KAAK,IAlF3BgE,KAKE+2Q,WAAW/6Q,KAAK,EALlBgE,KAMEk3Q,YAAYl7Q,KAAK,EANnBgE,KAOEwzV,WAAWx3V,KAAK,EAPlBgE,KAQE0zV,eAAe13V,KAAK,EARtBgE,KASE+zV,WAAW/3V,KAAK,EATlBgE,KAUEg0V,WAAWh4V,KAAK,EAVlBgE,KAWEi0V,iBAAiBj4V,KAAK,KAkFvCP,GAAOC,QANP,SAAS64V,kBAAkBryU,GAAYpP,IACnC,IAAI5L,GAAS,IAAIosV,YAEjB,OADApsV,GAAO29K,MAAM3iK,GAAYpP,IAClB5L,KAQL,KACA,SAAUzL,GAAQC,GAASI,IAEjC,aAKA,SAASykJ,UAAU76E,IACjB1lE,KAAK0lL,MAAQ,IAAI9mL,MAAM8mE,IACvB1lE,KAAKwiJ,MAAQ,IAAI5jJ,MAAM8mE,IAEvB,IAAI,IAAI1pE,GAAE,EAAGA,GAAE0pE,KAAS1pE,GACtBgE,KAAK0lL,MAAM1pL,IAAKA,GAChBgE,KAAKwiJ,MAAMxmJ,IAAK,EARpBP,GAAOC,QAAU6kJ,UAYjBA,UAAU1iJ,UAAUQ,OAAS,WAC3B,OAAO2B,KAAK0lL,MAAMrnL,QAGpBkiJ,UAAU1iJ,UAAU22V,QAAU,WAC5B,IAAIh3V,GAAIwC,KAAK0lL,MAAMrnL,OAGnB,OAFA2B,KAAK0lL,MAAMzkL,KAAKzD,IAChBwC,KAAKwiJ,MAAMvhJ,KAAK,GACTzD,IAGT+iJ,UAAU1iJ,UAAUgmE,KAAO,SAASn5D,IAElC,IADA,IAAIg7K,GAAQ1lL,KAAK0lL,MACXA,GAAMh7K,MAAOA,IAAG,CACpB,IAAIkH,GAAI8zK,GAAMh7K,IACdg7K,GAAMh7K,IAAKg7K,GAAM9zK,IACjBlH,GAAIkH,GAEN,OAAOlH,IAGT61I,UAAU1iJ,UAAUgoE,KAAO,SAASn7D,GAAGkH,IACrC,IAAIi3C,GAAK7oD,KAAK6jE,KAAKn5D,IACf+pV,GAAKz0V,KAAK6jE,KAAKjyD,IACnB,GAAGi3C,KAAO4rS,GAAV,CAGA,IAAIjyM,GAAQxiJ,KAAKwiJ,MACbkjC,GAAQ1lL,KAAK0lL,MACbgvK,GAAQlyM,GAAM35F,IACd8rS,GAAQnyM,GAAMiyM,IACfC,GAAKC,GACNjvK,GAAM78H,IAAM4rS,GACJE,GAAKD,GACbhvK,GAAM+uK,IAAM5rS,IAEZ68H,GAAM+uK,IAAM5rS,KACV25F,GAAM35F,QAQN,OACA,SAAUptD,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAU,CACbyJ,WAAYrJ,GAAoB,QAChCiT,eAAgBjT,GAAoB,QACpC+O,KAAM/O,GAAoB,QAC1BkT,KAAMlT,GAAoB,QAC1B6/D,SAAU7/D,GAAoB,QAC9BmQ,MAAOnQ,GAAoB,QAC3BmT,YAAanT,GAAoB,QAEjC6S,WAAY,QACZrS,KAAM,UACNsS,eAAgB9S,GAAoB,QACpC+S,WAAY,CAAC,YAAa,MAAO,QAAS,cAC1CC,KAAM,KAQJ,OACA,SAAUrT,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAU,CACbyJ,WAAYrJ,GAAoB,QAChCiT,eAAgBjT,GAAoB,QACpC+O,KAAM/O,GAAoB,QAC1BkT,KAAMlT,GAAoB,QAE1B6S,WAAY,QACZrS,KAAM,SACNsS,eAAgB9S,GAAoB,QACpCoT,aAAcpT,GAAoB,QAClC+S,WAAY,CAAC,aACbC,KAAM,KAQJ,KACA,SAAUrT,GAAQC,GAASI,IAEjC,aAWA,IAAIujB,GAAavjB,GAAoB,QAAQujB,WAI7C3jB,GAAQ67J,cAAgB,SAASl7J,IAC7B,IAAI03J,GAAY,CAAC,EAAG,GAChB6gM,GAAcv1U,GAAW,GAAIhjB,GAAG,CAChCiB,IAAK,SACLgS,KAAM,SACNukJ,KAAM,EACNE,UAAWA,GACXU,eAAgB,CAAC,KAAM,MACvB+C,YAAY,EACZxiI,OAAQ34B,GAAE+5D,SAASy+R,YAAY7/T,OAAO34B,GAAE6xJ,WACxCS,UAAWtyJ,GAAE+5D,SAAS0+R,gBACtB1+R,SAAU/2C,GAAW,GAAIhjB,GAAE+5D,SAAU,CAAC9yD,MAAOjH,GAAE+5D,SAASy+R,gBAuB5D,MAAO,CArBcx1U,GAAW,GAAIhjB,GAAG,CACnCiB,IAAK,SACLgS,KAAM,QACNukJ,KAAM,EACNE,UAAWA,GACXU,eAAgB,CAAC,KAAM,MACvB+C,YAAY,EACZxiI,OAAQ34B,GAAE+5D,SAAS9yD,MAAM0xB,OAAO34B,GAAE6xJ,WAClCS,UAAWtyJ,GAAE+5D,SAASu4F,YAELtvI,GAAW,GAAIhjB,GAAG,CACnCiB,IAAK,SACLgS,KAAM,QACNukJ,KAAM,EACNE,UAAWA,GACXU,eAAgB,CAAC,KAAM,MACvB+C,YAAY,EACZxiI,OAAQ34B,GAAE+5D,SAAS9yD,MAAM0xB,OAAO34B,GAAE6xJ,WAClCS,UAAWtyJ,GAAE+5D,SAASu4F,YAGcimM,KAG5Cl5V,GAAQw0J,aAAe,SAAS7zJ,IAC5B,IAAI04V,GAsBR,SAASC,UAAU34V,IACf,IAAI+5J,GAAW/5J,GAAEsyJ,UAAUtyJ,GAAEw3J,MAEzBohM,GAAU7+L,GAAWA,GAAS1C,KAAK,GAAG6B,SAAW,EACjD2/L,GAAQ9+L,GAAW6+L,GAAU7+L,GAAS1C,KAAKr1J,OAAS,EACxD,MAAO,CAAC42V,GAASC,IA3BJF,CAAU34V,IACvB,OAAQA,GAAE24B,QAAU,IAAIx2B,MAAMu2V,GAAO,GAAIA,GAAO,IAAI19S,KAAI,SAAS93C,GAAGvD,IAOhE,MAAO,CAGHm0J,eAAgBn0J,IAJO,iBAANuD,IAAmBA,GAAE+kB,MAAM,WAAa,cAAgBpiB,KAAKF,SAAW,IAKzF1E,IAAKy3V,GAAO,GAAK/4V,GACjBw0J,OAAQn0J,GACR+5D,SAAU/5D,GAAE+5D,SACZy9F,KAAMx3J,GAAEw3J,KACRlF,UAAWtyJ,GAAEsyJ,UACb3xJ,MAAOuC,SAgBb,KACA,SAAU9D,GAAQC,IAExBD,GAAOC,QAAU,SAAS0T,IACxB,OAAQA,IACN,IAAK,OACH,OAAO+lV,UACT,IAAK,QACH,OAAOC,WACT,IAAK,QACH,OAAO1nI,WACT,IAAK,QACH,OAAOj+M,WACT,IAAK,SACH,OAAOmyK,YACT,IAAK,SACH,OAAOovE,YACT,IAAK,UACH,OAAO5tO,aACT,IAAK,UACH,OAAOiyU,aACT,IAAK,QACH,OAAOz2V,MACT,IAAK,gBACH,OAAO8Q,qBAOP,KACA,SAAUjU,GAAQC,IAGxBD,GAAOC,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,YAMI,KACA,SAAUD,GAAQC,GAASI,IAEjC,aAGAL,GAAOC,QAyBP,SAAS45V,WAAWn3V,IAClB,IAAIX,GAAIW,GAAOE,OACf,GAAS,IAANb,GACD,MAAO,GAET,GAAS,IAANA,GACD,MAAO,CAAC,GAKV,IAHA,IAAInB,GAAI8B,GAAO,GAAGE,OACdu8D,GAAQ,CAAEz8D,GAAO,IACjBgC,GAAQ,CAAE,GACNnE,GAAE,EAAGA,GAAEwB,KAAKxB,GAElB,GADA4+D,GAAM35D,KAAK9C,GAAOnC,KACdu5V,oBAAoB36R,GAAOv+D,KAK/B,GADA8D,GAAMc,KAAKjF,IACRmE,GAAM9B,SAAWhC,GAAE,EACpB,OAAO8D,QALPy6D,GAAMl5D,MAQV,OAAOvB,IA7CT,IAAI1B,GAAS3C,GAAoB,QAEjC,SAASy5V,oBAAoBp3V,GAAQ9B,IAEnC,IADA,IAAIm5V,GAAQ,IAAI52V,MAAMvC,GAAE,GAChBL,GAAE,EAAGA,GAAEmC,GAAOE,SAAUrC,GAC9Bw5V,GAAMx5V,IAAKmC,GAAOnC,IAEpB,IAAQA,GAAE,EAAGA,IAAGmC,GAAOE,SAAUrC,GAAG,CAClC,IAAI,IAAImD,GAAEhB,GAAOE,OAAQc,IAAG9C,KAAK8C,GAAG,CAElC,IADA,IAAIuL,GAAI,IAAI9L,MAAMvC,IACVmD,GAAE,EAAGA,GAAEnD,KAAKmD,GAClBkL,GAAElL,IAAK0C,KAAKq5B,IAAIp8B,GAAE,EAAEnD,GAAGwD,IAEzBg2V,GAAMr2V,IAAKuL,GAGb,GADQjM,GAAOC,WAAM,EAAQ82V,IAE3B,OAAO,EAGX,OAAO,IA8BH,OACA,SAAU/5V,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAU,CACbklO,aAAc,CACVlhN,QAAS,aAETG,SAAU,QAGd41U,YAAa,CACT/1U,QAAS,YAETG,SAAU,QAGd61U,gBAAiB,CACbh2U,QAAS,UACTC,MAAM,EAENE,SAAU,UAQZ,OACA,SAAUpkB,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAU,CACbg5B,YAAa,iFACbihU,iBAAkB,qFAMhB,OACA,SAAUl6V,GAAQC,GAASI,IAEjC,aAWA,IAAIuP,GAAKvP,GAAoB,QAEzBiY,GAAMjY,GAAoB,QAC1BmmQ,GAAUluP,GAAIkuP,QACdx0N,GAAY3xC,GAAoB,QAAQ2xC,UACxCja,GAAU13B,GAAoB,QAC9BgtC,GAAKhtC,GAAoB,QACzB6wC,GAAe7wC,GAAoB,QAEnCmY,GAAOnY,GAAoB,QAC3BqyI,GAAqBryI,GAAoB,QACzC85V,GAA6B95V,GAAoB,QACjD+5V,GAAkB/5V,GAAoB,QAEtCmjB,GAAQnjB,GAAoB,QAC5BstD,GAAS,CACT,KAAQ,QACR,OAAU,SACV,MAAS,OAEThkD,GAAW,CACX,KAAQ,EACR,OAAU,GACV,MAAS,GAGT0wV,GAAY,qBAEhB,SAAS9qN,cAAcv1G,IAGnB,OAAOA,IAAkBA,GAAe9oB,SAAW,EA2uBvD,SAASopV,WAAWh4V,IAChBA,GACKmO,MAAK,SAAS7P,IAAK4iB,GAAM0I,OAAOtc,GAAGO,OAAO5L,MAAO3D,GAAE63B,KAAKzuB,UACxDyG,MAAK,SAAS7P,IAAK4iB,GAAMjR,KAAK3C,GAAGO,OAAO5L,MAAO3D,GAAEoJ,UACjDwG,MAAM,gBAAgB,SAAS5P,IAAK,OAAOA,GAAE63B,KAAK1W,SAe3D,SAAS8E,SAASxX,GAAIihB,GAAMiqU,IACxB,IAAI9zU,GAAapX,GAAGwmB,YAEhB8qF,GAASroG,GAAIsL,WAAW,CACxB/P,KAAM,SACN0D,MAAO,UACPU,MAAOsiV,GACP/qS,UAAU,GACXl/B,IAECswF,GAAU,CACV/sG,KAAM,SACNupB,IAAK,IAAM9M,GAAK8M,KAGhBo9T,GAAc,CACdpzK,OAAQ,IACRvlK,KAAM4E,GAAW5E,KACjBktU,SAAS,EACTG,WAAW,GAGf,SAAS77S,OAAO1qB,GAAMzE,IAClB,OAAO5L,GAAI+6B,OAAOstE,GAAQC,GAASw5O,GAAiBzxU,GAAMzE,IAM9D,OAHAwuH,GAAmB/xB,GAAQC,GAASvtE,OAAQmnT,GAAa/zU,IACzD0zU,GAA2Bx5O,GAAQC,GAASvtE,OAAQmnT,IAE7C55O,GAGX,SAAS8mJ,aAAaz4P,GAAGkH,IACrB,MAAO,aAAelH,GAAI,IAAMkH,GAAI,IAGxC,SAASskV,iBAAiB5oN,GAAQ9vH,GAAO+J,IAGrC,MAAO,CADKrlB,KAAKoC,IAAIkZ,GAAQ8vH,GAAO9vH,MAAO+J,GAAS+lH,GAAO/lH,QAC5C+lH,GAAQ9vH,GAAQ,IAAM+J,IAUzC,SAAS9J,YAAYmgG,GAAKtgG,GAAM64U,GAAYrrV,IACxC,IAAIouG,GAAUv8F,SAASgM,gBAAgB,6BAA8B,QACjEkI,GAAMxlB,GAAGO,OAAOstG,IAQpB,OAPAroF,GAAIrlB,KAAKoyG,IACNx5F,KAAK,IAAK,GACVA,KAAK,IAAK,GACVA,KAAK,cAAe+xU,IACpB/xU,KAAK,mBAAoBw5F,IACzB1hH,KAAKywC,GAAa3oB,gBAAiBlZ,IACnC5O,KAAKs3B,GAAQlW,KAAMA,IACfkW,GAAQqxB,KAAKh0B,GAAIhN,QAG5B,SAAS4sH,MAAM1lI,GAAOzO,GAAMswV,GAAc5vV,GAAOM,GAAKgmB,IAClD,IAAIskH,GAAU,SAAWtrI,GACpByO,GAAM68H,KAAY78H,GAAM68H,IAAStqI,MAAQA,KAC1CyN,GAAM68H,IAAW,CAACtqI,IAAKA,GAAKN,MAAO4vV,KAEvC,IAAIrtV,GAAIwU,GAAIi+B,QAAQ1uB,GAAI,KAAM,CAACvY,GAAM68H,IAAS5qI,MAAOA,IAAQ,GAG7D,OAFA+N,GAAM68H,IAAS5qI,MAAQuC,GAEhBA,GAj0BX9D,GAAOC,QAAU,SAASsT,KAAKlE,GAAIi8K,GAAUtxJ,GAAgBC,IACzD,IACIC,GADAzT,GAAapX,GAAGwmB,YAGjB05G,cAAcv1G,KACVC,KAICC,GAAaD,MAIrB3hB,GAAI6lE,gBAAgB13D,GAAWk0U,gBAAiBrvK,GAAU,SAAS76K,MAAK,SAASmQ,IAC7E,IA4BIg6U,GAAUC,GAAUC,GAqCpBC,GAASC,GAhET1rV,GADMsR,GAAG,GACGtR,MAEZ+uE,GAAYzuE,GAAGO,OAAO5L,MAGtB02V,GAAW3rV,GAAM+wG,UACjB7lE,GAAYlrC,GAAM8xG,WAClB85O,GAAW5rV,GAAM6xG,UAGjBvzD,GAASt+C,GAAMs+C,OACftpC,GAAO,CACPjG,EAAGoI,GAAWksC,MAAMt0C,GAAKuvC,GAAO3+C,EAAE,GAAK2+C,GAAO3+C,EAAE,IAChD8gD,EAAGtpC,GAAWksC,MAAM5C,GAAKnC,GAAOz3C,EAAE,GAAKy3C,GAAOz3C,EAAE,IAChD3V,EAAGimB,GAAWksC,MAAMnyD,EAAIimB,GAAWksC,MAAMt0C,EAAIuvC,GAAO3+C,EAAE,GACtD7N,EAAGqlB,GAAWksC,MAAMvxD,EAAIqlB,GAAWksC,MAAMt0C,GAAK,EAAIuvC,GAAO3+C,EAAE,IAC3DzN,EAAGilB,GAAWksC,MAAMnxD,EAAIilB,GAAWksC,MAAM5C,GAAK,EAAInC,GAAOz3C,EAAE,IAC3DtR,EAAG4hB,GAAWksC,MAAM9tD,EAAI4hB,GAAWksC,MAAM5C,EAAKnC,GAAOz3C,EAAE,IAEvDmrQ,GAAUh9P,GAAK9jB,EAAI8jB,GAAKjG,EAAI,EAC5BkjQ,GAAUj9P,GAAK9iB,EAAI8iB,GAAKyrC,EAAI,EAG5BsY,GAAS5hE,KAAKoC,IAAIyb,GAAKjG,EAAI,EAAGiG,GAAKyrC,GACnCynJ,GAAcnqK,GAAGmqK,YAAcnvI,GAI/B8yR,GAAe7rV,GAAM+6F,OAAS,SAGlC,GADAwwP,GAAWt5E,GACP05E,IAaA,GAPGzgT,KACCogT,GAAWt5E,GACXu5E,GAAWt5E,GAAUl5M,GAAS,EAC9ByyR,GAAgB,SAAS7lU,IACrB,OA6uBpB,SAASmmU,oBAAoBvpN,GAAQxpE,IAEjC,IAAIgzR,GAAW50V,KAAK6E,KAAMumI,GAAO9vH,MAAQ,GAAM8vH,GAAO9vH,MAAQ,GAAK8vH,GAAO/lH,OAAS+lH,GAAO/lH,QAE1F,MAAO,CADKu8C,GAASgzR,GACNxpN,GAAQxpE,IAjvBA+yR,CAAoBnmU,GAAI,GAAMuiL,MAG1C0jJ,GAAU,CACT,IAAIhnU,GAAUmZ,GAAG+oM,cACb9zO,GAAK,EAAI+qC,GAAG8oM,uBAA0BjiN,GAC1C0mU,GAAWt2U,GAAK9jB,GAAK8B,IAAK,EAAIA,IAAKqH,GAASwxV,KAAiB72U,GAAKjG,EAClEy8U,GAAgB,SAAS7lU,IACrB,OAAOwlU,iBAAiBxlU,IAAKoY,GAAG8oM,uBAAyBjiN,IAAW5P,GAAKjG,EAAGiG,GAAKyrC,UAjBzF6qS,GAAWt2U,GAAK9jB,EAAImJ,GAASwxV,IAAgB72U,GAAKjG,EAClDy8U,GAAgB,SAAS7lU,IACrB,OAAOwlU,iBAAiBxlU,GAAI3Q,GAAKjG,EAAGiG,GAAKyrC,KA2azD,SAASurS,YAAYjsV,GAAIgvE,GAAWz9D,GAAI0P,IACpC,IAWIirU,GAAeC,GACfC,GAZAnsV,GAAQsR,GAAG,GAAGtR,MAEdsrV,GAAWtqU,GAAKsqU,SAChBC,GAAWvqU,GAAKuqU,SAChBM,GAAe7rV,GAAM+6F,OAAS,SAC9BqxP,GAAgB/tS,GAAOwtS,IAEvBnhU,GAAiB1J,GAAK0J,eACtBE,GAAa5J,GAAK4J,WAElBkjR,GAAU9kS,GAAIiqG,aAAalkC,GAAW,IAAK,WAI3C5zE,GAAO,GACR6E,GAAM6wG,YAAY11G,GAAKjF,KAAK,UAC5B8J,GAAM8wG,YACL31G,GAAKjF,KAAK,SACkB,SAAzB8J,GAAMi6B,MAAM5/B,UAAqBc,GAAKyiD,WAE7C,IAAI93B,GAAMgoR,GAAQhtS,UAAU,QAAQ3F,KAAKA,IAYzC,SAASkxV,iBAAiB3kO,GAAajuH,GAAK0iG,GAAM67E,IAE9C,IAAGtwD,GAAYnuG,MAAM,MAChB4iF,IAAQ,GAAM67E,IAAM,GACnBv+K,GAAI0iG,IAAM1oG,OAAO,GAAG8lB,MAAMwxU,KAAetxV,GAAIu+K,IAAIvkL,OAAO,GAAG8lB,MAAMwxU,IAUnE,OAAOtxV,GARP,IAAI6yV,GAAwB5kO,GAAYj0H,QAAQ6V,QAAQ,IAAK,KAAKA,QAAQ,OAAO,SAASlY,IAAK,OAAO2oB,SAAS3oB,IAAK,KAChHm7V,GAAeh1U,SAASxX,GAAI,CAAC0vC,WAAY68S,KAC7C,OAAO,SAAS93V,IAEZ,OAAG2C,KAAKsR,IAAIjU,IAAK,EAAU0U,GAAKwO,SAAS60U,GAAc/3V,IAAGiM,KACnDhH,GAAIjF,KAtBvBsxB,GAAI/kB,QAAQC,OAAO,QACnB8kB,GACKzM,KAAK,eAAe,WAAY,OAAO+yU,MACvC/yU,KAAK,SAAS,SAAS/nB,IAAK,OAAOA,MACnC+nB,KAAK,IAAK,MACVA,KAAK,IAAK,MACVA,KAAK,KAAM,MACXA,KAAK,KAAM,MAChByM,GAAIgyB,OAAO91C,SA4HX,IACIi4B,GADA1nC,GAAMyN,GAAM7N,KAAO6N,GAAM+6F,MAE1B/6F,GAAM8wG,YACL72E,GA7DJ,SAASuyT,YACL,IAAIC,GAAUl1U,SAASxX,GAAI,CAAC0vC,WAAYzvC,GAAMi6B,MAAMytF,aAAc1nH,GAAMgxG,QACxEy7O,GAAQhgU,WACRvjB,GAAKogC,UAAUmjT,IAEf,IAAIC,SAAW,SAASl4V,IAAK,OAAO0U,GAAKwO,SAAS+0U,GAASj4V,IAAGiM,MAC1DksV,WAAa,SAASr7V,IAEtB,OADY0O,GAAMi6B,MAAM03E,SAAWrgH,GAAEk0Q,cAAgBl0Q,GAAE2oC,OAGvD2yT,gBAAkB,SAAS36V,GAAO46V,IAClC,OAAa,IAAV56V,IAAgC,iBAAVA,IAAsB4M,MAAM5M,IAAe,KAC5DA,GAAQ,EAAI+N,GAAMi6B,MAAMmgD,WAAWsC,OAAS18E,GAAMi6B,MAAMogD,WAAWqC,QAAUmwQ,GAAU56V,KAE/F66V,UAAY,SAASx7V,IACrB,OAAOA,GAAE2oC,OAAS,EAAIj6B,GAAMi6B,MAAMmgD,WAAW1/E,MAAQsF,GAAMi6B,MAAMogD,WAAW3/E,YAEnDmZ,IAA1B7T,GAAM+sV,kBACL/sV,GAAM+sV,gBAAkBJ,WAAWr7U,GAAG,KAE1C,IAAI2oB,GAAQ6zQ,GAAQjtS,OAAO,cAK3B,SAASmsV,aACL/yT,GAAMx5B,KAAKmsV,gBAAgBD,WAAWr7U,GAAG,IAAKo7U,WACzCv7V,KAAK+iB,GAAMjR,KAAM6pV,UAAUx7U,GAAG,KAC9BngB,KAAKywC,GAAa3oB,gBAAiBlZ,IA2B5C,OAlCAk6B,GACK9oC,KAAKs3B,GAAQlW,KAAMvS,GAAMi6B,MAAM1nB,MAC/BphB,KAAK+iB,GAAMjR,KAAM6pV,UAAU,CAAC7yT,MAAOj6B,GAAM+sV,mBAQ3C9sN,cAAcv1G,IACbuP,GACKz4B,aACAI,SAAS8oB,GAAe9oB,UACxBqpB,KAAKP,GAAeQ,QACpBgxR,MAAM,QAAQ,WACX,IAAI1jS,GAAOlY,GAAGO,OAAO5L,MACjB+iL,GAAK20K,WAAWr7U,GAAG,IACnB6qF,GAAOn8F,GAAM+sV,gBACbE,GAAgBZ,iBAAiBrsV,GAAMi6B,MAAMytF,YAAaglO,SAAUvwP,GAAM67E,IAC1Ek1K,GAAe5sV,GAAGogU,kBAAkBvkO,GAAM67E,IAE9C,OADAh4K,GAAM+sV,gBAAkB/0K,GACjB,SAAS9lL,IACZsmB,GAAK/X,KAAKmsV,gBAAgBM,GAAah7V,IAAI+6V,KAC3Cz0U,GAAKrnB,KAAK+iB,GAAMjR,KAAM6pV,UAAU,CAAC7yT,MAAOizT,GAAah7V,WAG5DiP,KAAK,OAAO,WAAa6rV,aAAcpiU,IAAcA,QACrDzpB,KAAK,aAAa,WAAa6rV,aAAcpiU,IAAcA,QAEhEoiU,aAGJd,GAAYx5U,YAAYk6U,gBAAgBD,WAAWr7U,GAAG,IAAKo7U,UAAW1sV,GAAMi6B,MAAM1nB,KAAM65U,GAAersV,IAChGk6B,GAMCuyT,GACRj6V,IAAOyN,GAAMi6B,MAAM5/B,SAAW2F,GAAMi6B,MAAM1nB,KAAKyC,KAAOhV,GAAMi6B,MAAM1nB,KAAKN,OAASjS,GAAMi6B,MAAMytF,YAC5Fn1H,IAAOyN,GAAMi6B,MAAMmgD,WAAWsC,OAAS18E,GAAMi6B,MAAMogD,WAAWqC,OAC9DyvQ,GAAcD,IAEflsV,GAAM6wG,cA/GT,SAASs8O,gBACL,IAAIC,GAAc71U,SAASxX,GAAI,CAAC0vC,WAAYzvC,GAAM4wC,OAAO82E,aAAc1nH,GAAMgxG,QAC7Eo8O,GAAY3gU,WACZvjB,GAAKogC,UAAU8jT,IAEf,IAAI3zV,IAAM,SAASjF,IAAK,OAAO0U,GAAKwO,SAAS01U,GAAa54V,IAAGiM,MACzD4sV,GAAkBrtV,GAAM4wC,OAAOl3C,OAC/B4zV,GAAkBttV,GAAM4wC,OAAOmd,OAE/Bnd,GAASk9P,GAAQjtS,OAAO,eAE5B,SAAS0sV,cACL,IAAI16O,GAAyB,iBAAZvhG,GAAG,GAAGzK,EACnBymV,GAAkB7zV,IAAI6X,GAAG,GAAGzK,GAAKwmV,GACjC,IACJz8S,GAAOnwC,KAAKoyG,IACP1hH,KAAKs3B,GAAQlW,KAAMvS,GAAM4wC,OAAOr+B,MAChCphB,KAAKywC,GAAa3oB,gBAAiBlZ,IAyB5C,OAtBGkgI,cAAcv1G,IACbkmB,GACKpvC,aACAI,SAAS8oB,GAAe9oB,UACxBqpB,KAAKP,GAAeQ,QACpB/pB,KAAK,OAAO,WAAaosV,cAAe3iU,IAAcA,QACtDzpB,KAAK,aAAa,WAAaosV,cAAe3iU,IAAcA,QAC5D82G,UAAU,QAAQ,WACf,IAAIlpH,GAAOlY,GAAGO,OAAO5L,MACjBi4V,GAAe5sV,GAAGogU,kBAAkBpvT,GAAG,GAAGi0P,MAAOj0P,GAAG,GAAGzK,GAC3D7G,GAAMolQ,WAAa9zP,GAAG,GAAGzK,EAEzB,IAAIomV,GAAgBZ,iBAAiBrsV,GAAM4wC,OAAO82E,YAAajuH,IAAK6X,GAAG,GAAGi0P,MAAOj0P,GAAG,GAAGzK,GACvF,OAAO,SAAS3U,IACZsmB,GAAK/X,KAAK6sV,GAAkBL,GAAcC,GAAah7V,KAAMm7V,QAIzEE,cAGJtB,GAAgBv5U,YAAY46U,GAAkB7zV,IAAI6X,GAAG,GAAGzK,GAAKwmV,GAAiBrtV,GAAM4wC,OAAOr+B,KAAM65U,GAAersV,IACzG6wC,GAsEPu8S,GACA56V,IAAOyN,GAAM4wC,OAAOr+B,KAAKyC,KAAOhV,GAAM4wC,OAAOr+B,KAAKN,OAASjS,GAAM4wC,OAAO82E,YAAc1nH,GAAM4wC,OAAOl3C,OAASsG,GAAM4wC,OAAOmd,OACzHo+R,GAAcF,IAIlB,GAAGjsV,GAAM8wG,WAAa9wG,GAAM6wG,WAAY,CACpC,IASI/mF,GAAI7M,GATJuwU,GAAkB,EACjBvB,GAAchnV,KAAOgnV,GAAc/mV,OAAS,GAC5C+mV,GAAc5oU,IAAM4oU,GAAc7oU,QAAU,GAE7CqqU,GAAc,EACbvB,GAAUjnV,KAAOinV,GAAUhnV,OAAS,GACpCgnV,GAAU7oU,IAAM6oU,GAAU9oU,QAAU,GAIrCwB,GAAU,IAAO5kB,GAAMi6B,MAAM1nB,KAAKyC,KACV,SAAzBhV,GAAMi6B,MAAM5/B,WACXyvB,GAAK47G,MAAM1lI,GAAO,WAAY,GAAI,GAAKisV,GAAcx5U,MAASpY,GAAS2F,GAAM+6F,OAAUmxP,GAAUz5U,OAAS,EAAIpY,GAAS2F,GAAM+6F,QAAUn2E,IAAUryB,GAAK4E,KAAKoC,KAC3J0jB,GAAKuwU,GAAgB,GAAKC,GAAY,GAEtCtB,GAAc,CACV15U,MAAOw5U,GAAcx5U,MAAQy5U,GAAUz5U,MAAQmS,GAC/CpI,OAAQrlB,KAAKqC,IAAIyyV,GAAczvU,OAAQ0vU,GAAU1vU,QACjDvX,KAAMinV,GAAUjnV,KAAO6kB,GACvB5kB,MAAO+mV,GAAc/mV,MACrBme,IAAKlsB,KAAKoC,IAAI0yV,GAAc5oU,IAAK6oU,GAAU7oU,IAAMpG,IACjDmG,OAAQjsB,KAAKqC,IAAIyyV,GAAc7oU,OAAQ8oU,GAAU9oU,OAASnG,MAGtC,UAAzBjd,GAAMi6B,MAAM5/B,WACXyvB,GAAK47G,MAAM1lI,GAAO,WAAY,EAAGisV,GAAcx5U,OAAS,EAAIpY,GAAS2F,GAAM+6F,QAAUmxP,GAAUz5U,MAAQpY,GAAS2F,GAAM+6F,OAASn2E,GAASryB,GAAK4E,KAAKqC,KAClJyjB,GAAKuwU,GAAgB,GAAKC,GAAY,GAEtCtB,GAAc,CACV15U,MAAOw5U,GAAcx5U,MAAQy5U,GAAUz5U,MAAQmS,GAC/CpI,OAAQrlB,KAAKqC,IAAIyyV,GAAczvU,OAAQ0vU,GAAU1vU,QACjDvX,KAAMgnV,GAAchnV,KACpBC,MAAOgnV,GAAUhnV,MAAQ4kB,GACzBzG,IAAKlsB,KAAKoC,IAAI0yV,GAAc5oU,IAAK6oU,GAAU7oU,IAAMpG,IACjDmG,OAAQjsB,KAAKqC,IAAIyyV,GAAc7oU,OAAQ8oU,GAAU9oU,OAASnG,MAGtC,WAAzBjd,GAAMi6B,MAAM5/B,WACXyvB,GAAK,KACL7M,GAAKivU,GAAU1vU,OAEf2vU,GAAc,CACV15U,MAAOtb,KAAKqC,IAAIyyV,GAAcx5U,MAAOy5U,GAAUz5U,OAC/C+J,OAAQyvU,GAAczvU,OAAS0vU,GAAU1vU,OACzCvX,KAAM9N,KAAKoC,IAAI0yV,GAAchnV,KAAMinV,GAAUjnV,MAC7CC,MAAO/N,KAAKqC,IAAIyyV,GAAc/mV,MAAOgnV,GAAUhnV,OAC/Cme,IAAK4oU,GAAc7oU,OAAS6oU,GAAczvU,OAC1C4G,OAAQ6oU,GAAc7oU,OAAS8oU,GAAU1vU,SAGrB,QAAzBxc,GAAMi6B,MAAM5/B,WACXyvB,GAAK,KACL7M,GAAKgvU,GAAc5oU,IAEnB8oU,GAAc,CACV15U,MAAOtb,KAAKqC,IAAIyyV,GAAcx5U,MAAOy5U,GAAUz5U,OAC/C+J,OAAQyvU,GAAczvU,OAAS0vU,GAAU1vU,OACzCvX,KAAM9N,KAAKoC,IAAI0yV,GAAchnV,KAAMinV,GAAUjnV,MAC7CC,MAAO/N,KAAKqC,IAAIyyV,GAAc/mV,MAAOgnV,GAAUhnV,OAC/Cme,IAAK4oU,GAAc7oU,OAAS6oU,GAAczvU,OAAS0vU,GAAU1vU,OAC7D4G,OAAQ6oU,GAAc7oU,SAI9B6W,GAAM5gB,KAAK,CAACyQ,GAAIA,GAAI7M,GAAIA,MAIzBjd,GAAM6wG,YAAc7wG,GAAM8wG,YACzBg9L,GAAQz0R,KAAK,aAAa,WACtB,IAAIjoB,GAAI4vB,GAAKwqU,cAAcW,IAC3B55V,IAAOnB,GAAE,GACT,IACIs6J,GADAgiM,GAAahoN,MAAM1lI,GAAO,eAAgB,EAAG5O,GAAE,GAAImB,GAAK4E,KAAKoC,KAE7DyG,GAAM4xG,gBAAe87O,GAAa,GAGlChiM,GAFD1rJ,GAAM8xG,WAEQy5O,GAAWmC,GAAavB,GAAY/oU,OAGpCmoU,GAAWmC,IAAcvB,GAAY9oU,IAAM8oU,GAAY/oU,QAAU,EAIlFpjB,GAAM2tV,YAAcD,GAAcvB,GAAe,IAAIzgM,GAErD,IAAI8kG,GAAM27F,GAAYN,IACF,WAAjBA,KAA2Br7F,IAAO27F,GAAYlnV,KAAOknV,GAAYjnV,OAAS,GAC7E,IAAIumJ,GAAa6/L,GAAWoC,GAAal9F,GAIzC,OAAO4H,aADP3sG,GAAa/lB,MAAM1lI,GAAO,mBAAoB,EAAGyrJ,GAAYl5J,GAAK4E,KAAKqC,KACvCkyJ,IAAc,UAAYgiM,GAAa,OA5pB3E1B,CAAYjsV,GAAIgvE,GAAWz9D,GAAI,CAC3Bg6U,SAAUA,GACVC,SAAUA,GACVC,cAAeA,GACf9gU,eAAgBA,GAChBE,WAAYA,KAKb+gU,KACCF,GAAU,CACN9iV,MAAO3I,GAAM2wG,MAAM50B,KAAKpzE,MACxBjO,MAAOsF,GAAM2wG,MAAM1V,QACnB9xE,KAAM,CACFzuB,MAAOsF,GAAM2wG,MAAMzV,YACnBzoF,MAAO,GAEX80G,UAAW,GAGfmkO,GAAe,CACX/iV,MAAO3I,GAAM2wG,MAAM50B,KAAKpzE,MACxBjO,MAAO,mBACPyuB,KAAM,CACFzuB,MAAOsF,GAAM2wG,MAAMzV,YACnBzoF,MAAOzS,GAAM2wG,MAAMvV,aAEvBmsB,UAAW,IAKnB,IAAIqmO,GAAe7+Q,GAAUjuE,UAAU,aAAa3F,KAAK+vC,GAAY55B,GAAK,IAC1Es8U,GAAa91S,OAAO91C,SACpB,IAAI6rV,GAAmB9+Q,GAAUjuE,UAAU,iBAAiB3F,KAAK+vC,GAAY55B,GAAK,IAClFu8U,GAAiB/1S,OAAO91C,SAErBkpC,IAgMX,SAAS4iT,iBAAiB/tV,GAAIgvE,GAAWz9D,GAAI0P,IACzC,IA0CI3J,GAAInX,GAAM85C,GAASwhN,GA1CnBx7P,GAAQsR,GAAG,GAAGtR,MAEdgV,GAAOgM,GAAKhM,KACZ+jD,GAAS/3C,GAAK+3C,OACdmvI,GAAclnL,GAAKknL,YACnBujJ,GAAUzqU,GAAKyqU,QACfC,GAAe1qU,GAAK0qU,aACpBqC,GAAgB,CAAC/4U,GAAK9jB,EAAI8jB,GAAKjG,EAAI,EAAGiG,GAAK9iB,EAAI8iB,GAAKyrC,EAAI,EAAIsY,GAAS,GACrE43C,GAAQ3vF,GAAK2vF,MACbq9O,GAAYhtU,GAAKm6B,MAEjBzwB,GAAiB1J,GAAK0J,eACtBE,GAAa5J,GAAK4J,WAGlBlX,GAAQvc,KAAK67B,GAAK,EACtB,SAASi7T,aAAaz5V,IAClB,IAAI+E,GAAMyG,GAAM2wG,MAAM50B,KAAKpzE,MAAM,GAE7Bg3C,IAASnrD,GAAI+E,KADPyG,GAAM2wG,MAAM50B,KAAKpzE,MAAM,GACFpP,IAAOpC,KAAK67B,GAAKtf,GAChD,OAAGisC,IAASjsC,IAAeA,GACxBisC,GAAQjsC,GAAcA,GAClBisC,GAGX,SAASuuS,iBAAiBl5U,IACtB,OAAO1U,GAAGud,IAAIo/F,MACHirF,aAAaA,GAAcnvI,IAAU,EAAI/jD,GAAO,GAAK+jD,GAASmvI,KAC9DC,aAAaD,GAAcnvI,IAAU,EAAI/jD,GAAO,GAAK+jD,GAASmvI,KAC9DF,YAAYt0L,IAG3B,SAASy6U,QAAQn7V,IACbA,GACKqmB,KAAK,KAAK,SAAS/nB,IAChB,OAAO48V,iBAAiB58V,GAAEi2H,WACvBygF,WAAWimJ,aAAa38V,GAAEqX,MAAM,KAChCs/L,SAASgmJ,aAAa38V,GAAEqX,MAAM,IAF1BulV,MAUnBv9O,GAAM5vG,QAAQC,OAAO,KAAKC,QAAQ,WAAW,GAC7C0vG,GAAMt3F,KAAK,YAAa++O,aAAa21F,GAAc,GAAIA,GAAc,KAErEC,GAAUjtV,QAAQC,OAAO,KACpBC,QAAQ,eAAe,GACvBA,QAAQ,SAAS,GACtB+sV,GAAUltV,UAAU,gCAA0CkB,UAE9DqV,GAAKE,SAASxX,GAAIC,GAAM2wG,MAAM50B,OAC3Bx3E,KAAO,SACV8S,GAAG1O,MAAQ3I,GAAM2wG,MAAM50B,KAAKpzE,MAC5B0O,GAAGyW,IAAM,eACTzW,GAAGoV,WAGH,IAAIuvO,IAAM,SAAS1qQ,IACf,OAAQ+lB,GAAG1O,MAAM,GAAKrX,GAAEqO,IAAM0X,GAAG1O,MAAM,GAAK0O,GAAG1O,MAAM,IAAMxR,KAAK67B,GAAK77B,KAAK67B,IAG1EspB,GAAW,GAEXuD,GADM32C,GAAKqzC,aAAallC,GAAI,GACRwoC,cACxBvD,GAAS+D,IAAM,SAAS/uD,IACpB,IAAIyuD,GAAMi8M,IAAI1qQ,IACd,OAAO6F,KAAK6oD,IAAID,IAAOF,IAE3BvD,GAASgE,IAAM,SAAShvD,IACpB,IAAIyuD,GAAMi8M,IAAI1qQ,IACV6uD,GAAKhpD,KAAK8oD,IAAIF,IAAO,EAAI,GAAM,EACnC,OAAQ5oD,KAAK8oD,IAAIF,KAAQF,GAAgBvuD,GAAEghB,SAAW6tC,IAC9ChpD,KAAKsR,IAAItR,KAAK6oD,IAAID,MAASzuD,GAAEghB,SAAWowB,KAEpD4Z,GAASiE,SAAW,SAASjvD,IACzB,IAAIyuD,GAAMi8M,IAAI1qQ,IACV0uD,GAAM7oD,KAAK6oD,IAAID,IACnB,OAAO5oD,KAAKsR,IAAIu3C,IAAO,GACf,SACCA,GAAM,EAAI,QAAU,OAEjC1D,GAASkE,SAAW,SAASlvD,GAAGgE,GAAGmrD,IAC/B,IAAIV,GAAMi8M,IAAI1qQ,IACd,OAAQ,IAAO,EAAI6F,KAAK8oD,IAAIF,KAAQU,IAExC,IAAIw7M,SAAW,SAASl8M,IACpB,OAAOq4M,aACH21F,GAAc,GAAKh1R,GAAS5hE,KAAK6oD,IAAID,IACrCguS,GAAc,GAAKh1R,GAAS5hE,KAAK8oD,IAAIF,MAG7C/F,GAAU,SAAS1oD,IACf,OAAO2qQ,SAASD,IAAI1qQ,MAQxB,GAFA4O,GAAOgJ,GAAKG,UAAUgO,IACtBmkP,GAAWtyP,GAAKqyC,aAAalkC,IAAI,GAC9BA,GAAG9T,QAAS,CACXi4P,GAAwB,WAAbnkP,GAAGpP,OAAsB,EAAI,EACxC,IAAIkD,IAAOkM,GAAGknC,WAAa,GAAK,EAChCr1C,GAAK8yC,UAAUj8C,GAAIsX,GAAI,CACnBnX,KAAMA,GACNi7C,MAAO6yS,GACP5yS,KAAM,IAAOogN,GAAWrwP,GAAO,MAASqwP,GAAWnkP,GAAGomC,QACtDzD,QAbO,SAAS1oD,IACpB,IAAIyuD,GAAMi8M,IAAI1qQ,IACd,OAAO2qQ,SAASl8M,IAAO,WAAam3M,GAAQn3M,IAAO,OAanD72C,GAAKmzC,WAAWt8C,GAAIsX,GAAI,CACpBnX,KAAMA,GACNi7C,MAAO6yS,GACPh0S,QAASA,GACTsC,SAAUA,KAKlB,IAAIurR,GAAO,CAAC4jB,IAAStyV,OAAO6G,GAAM2wG,MAAMC,OACpCw9O,GAAQz9O,GAAM7vG,UAAU,YAAY3F,KAAK0sU,IAC7CumB,GAAMrtV,QAAQC,OAAO,KAAKC,QAAQ,UAAU,GAAMD,OAAO,QACzDotV,GAAMvtV,OAAO,QAAQ1P,KAAKg9V,SAASh9V,KAAK65V,YACxCoD,GAAMt2S,OAAO91C,SAGb,IAAIqsV,GAAwBH,iBAAiBluV,GAAM2wG,MAAMn+B,IAAI+0C,WACzD+mO,GAAW39O,GAAM7vG,UAAU,eAAe3F,KAAK,CAAC6E,GAAM2wG,MAAMn+B,MAChE87Q,GAASvtV,QAAQC,OAAO,KAAKC,QAAQ,aAAa,GAAMD,OAAO,QAC/D,IAAIutV,GAAeD,GAASztV,OAAO,QAChCo/H,cAAcv1G,KACb6jU,GACK/sV,aACAI,SAAS8oB,GAAe9oB,UACxBqpB,KAAKP,GAAeQ,QACpB/pB,KAAK,OAAO,WAAaypB,IAAcA,QACvCzpB,KAAK,aAAa,WAAaypB,IAAcA,QAC7C82G,UAAU,IAyTvB,SAAS8sN,SAASvxO,GAAKgrF,GAAUwmJ,IAC7B,OAAO,WACH,IAAIhnJ,GAAcnnM,GAAGmnM,YAAYQ,GAAUwmJ,IAC3C,OAAO,SAASv8V,IACZ,OAAO+qH,GAAIgrF,SAASR,GAAYv1M,IAAzB+qH,KA7TSuxO,CAASH,GAAuBJ,aAAa38U,GAAG,GAAGi0P,OAAQ0oF,aAAa38U,GAAG,GAAGzK,KAClG7G,GAAMolQ,WAAa9zP,GAAG,GAAGzK,GAEzB0nV,GAAal1U,KAAK,IAAwB,iBAAZ/H,GAAG,GAAGzK,EAChCwnV,GAAsBpmJ,SAASgmJ,aAAa38U,GAAG,GAAGzK,IAClD,SAER0nV,GAAap9V,KAAK65V,YAClBsD,GAASx2S,OAAO91C,SAGhB6lU,GAAO,GACP,IAAIrzU,GAAIwL,GAAM2wG,MAAMt+F,UAAUpgB,MAC3BuC,IACCqzU,GAAK3xU,KAAK,CACNyS,MAAO,CAACnU,GAAGA,IACXkG,MAAOsF,GAAM2wG,MAAMt+F,UAAU3X,MAC7ByuB,KAAM,CACFzuB,MAAOsF,GAAM2wG,MAAMt+F,UAAU8W,KAAKzuB,MAClC+X,MAAOzS,GAAM2wG,MAAMt+F,UAAU8W,KAAK1W,OAEtC80G,UAAWvnH,GAAM2wG,MAAMt+F,UAAUk1G,YAGzC,IAAImnO,GAAe/9O,GAAM7vG,UAAU,mBAAmB3F,KAAK0sU,IAC3D6mB,GAAa3tV,QAAQC,OAAO,KAAKC,QAAQ,iBAAiB,GAAMD,OAAO,QACvE0tV,GAAa7tV,OAAO,QAAQ1P,KAAKg9V,SAASh9V,KAAK65V,YAC/C0D,GAAa52S,OAAO91C,SAGpB,IAAI2sV,GAAch+O,GAAM7vG,UAAU,mBAAmB3F,KAAK,CAACuwV,KAC3DiD,GAAY5tV,QAAQC,OAAO,KAAKC,QAAQ,iBAAiB,GAAMD,OAAO,QACtE2tV,GAAY9tV,OAAO,QAAQ1P,KAAKg9V,SAASh9V,KAAK65V,YAC9C2D,GAAY72S,OAAO91C,SA5WX8rV,CAAiB/tV,GAAIgvE,EAAWz9D,GAAI,CAChCynD,OAAQA,GACRmvI,YAAaA,GAEbv3F,MAAOi9O,GACPzyS,MAAO0yS,GACP74U,KAAMA,GACNy2U,QAASA,GACTC,aAAcA,GACdhhU,eAAgBA,GAChBE,WAAYA,KAKpB,IAAIgkU,GAAc7/Q,GAAUjuE,UAAU,YAAY3F,KAAKywV,GAAWt6U,GAAK,IACvEs9U,GAAY92S,OAAO91C,SACnB,IAAI6sV,GAAkB9/Q,GAAUjuE,UAAU,gBAAgB3F,KAAKywV,GAAWt6U,GAAK,IAC/Eu9U,GAAgB/2S,OAAO91C,SAEpB4pV,IAsDX,SAASkD,gBAAgB/uV,GAAIgvE,GAAWz9D,GAAI0P,IACxC,IAaI3J,GAAInX,GAAM85C,GAASwhN,GAAU/7M,GAb7Bz/C,GAAQsR,GAAG,GAAGtR,MAEd+uV,GAAS/tU,GAAK2vF,MACdq9O,GAAYhtU,GAAKm6B,MACjBswS,GAAUzqU,GAAKyqU,QACfC,GAAe1qU,GAAK0qU,aACpB12U,GAAOgM,GAAKhM,KACZspC,GAASt+C,GAAMs+C,OAEf5zB,GAAiB1J,GAAK0J,eACtBE,GAAa5J,GAAK4J,WAMtBmkU,GAAOhuV,QAAQC,OAAO,KAAKC,QAAQ,UAAU,GAC7C8tV,GAAO11U,KAAK,YAAa,aAAerE,GAAK9jB,EAAI,KAAO8jB,GAAK9iB,EAAI,KAEjE87V,GAAUjtV,QAAQC,OAAO,KACpBC,QAAQ,cAAc,GACtBA,QAAQ,SAAS,GACtB+sV,GAAUltV,UAAU,+BAAyCkB,SAG7D,IAAIgtV,GAAeh6U,GAAKyrC,EACpBwuS,GAAoBjvV,GAAM2wG,MAAMn+B,IAAI+0C,UAAYynO,GAChDE,GAAa5wS,GAAO3+C,EAAE,GACtBwvV,GAAc7wS,GAAO3+C,EAAE,IAAM2+C,GAAO3+C,EAAE,GAAK2+C,GAAO3+C,EAAE,KAAQK,GAAM6wG,YAAc7wG,GAAM8wG,UAAc,EAAI/yE,GAAG8oM,uBAA0B,IAEzIxvN,GAAKE,SAASxX,GAAIC,GAAM2wG,MAAM50B,OAC3BjuD,IAAM,cACTzW,GAAGinC,OAAS,CAAC4wS,GAAYC,IACzB93U,GAAGoV,WAEHvsB,GAAOgJ,GAAKG,UAAUgO,IACtB2iC,GAAU9wC,GAAK+wC,YAAY5iC,IAC3BmkP,GAAWtyP,GAAKqyC,aAAalkC,IAAI,GAEjCooC,GAAQzqC,GAAK9iB,EAAI8iB,GAAKyrC,EACnBppC,GAAG9T,UACF2F,GAAK8yC,UAAUj8C,GAAIsX,GAAI,CACnBnX,KAAmB,WAAbmX,GAAGpP,MAAqBiB,GAAKgqC,SAAS77B,GAAInX,IAAQA,GACxDi7C,MAAO6yS,GACP5yS,KAAMlyC,GAAK2yC,aAAaxkC,GAAIooC,GAAO+7M,IACnCxhN,QAASA,KAGb9wC,GAAKmzC,WAAWt8C,GAAIsX,GAAI,CACpBnX,KAAMA,GACNi7C,MAAO6yS,GACPh0S,QAASA,GACTsC,SAAUpzC,GAAKqzC,aAAallC,GAAIooC,OAIxC,SAAS2vS,SAASn8V,IACdA,GACKomB,KAAK,SAAS,SAAS/nB,IAAK,OAAO6F,KAAKqC,IAAI,EAAG6d,GAAGqQ,IAAIp2B,GAAEqX,MAAM,IAAM0O,GAAGqQ,IAAIp2B,GAAEqX,MAAM,QACnF0Q,KAAK,KAAK,SAAS/nB,IAAK,OAAO+lB,GAAGqQ,IAAIp2B,GAAEqX,MAAM,OAC9C0Q,KAAK,KAAK,SAAS/nB,IAAK,MAAO,IAAO,EAAIA,GAAEi2H,WAAaynO,MACzD31U,KAAK,UAAU,SAAS/nB,IAAK,OAAOA,GAAEi2H,UAAYynO,MAI3D,IAAI1yP,GAAQ,CAACmvP,IAAStyV,OAAO6G,GAAM2wG,MAAMC,OACrCy+O,GAAWN,GAAOjuV,UAAU,eAAe3F,KAAKmhG,IACpD+yP,GAAStuV,QAAQC,OAAO,KAAKC,QAAQ,aAAa,GAAMD,OAAO,QAC/DquV,GAASxuV,OAAO,QACX1P,KAAKi+V,UACLj+V,KAAK65V,YACVqE,GAASv3S,OAAO91C,SAGhB,IAAIstV,GAAWP,GAAOjuV,UAAU,kBAAkB3F,KAAK,CAAC6E,GAAM2wG,MAAMn+B,MACpE88Q,GAASvuV,QAAQC,OAAO,KAAKC,QAAQ,gBAAgB,GAAMD,OAAO,QAClEsuV,GAASzuV,OAAO,QACXwY,KAAK,SAAU41U,IACf51U,KAAK,KAAM21U,GAAeC,IAAqB,GAC/C99V,KAAK65V,YACP/qN,cAAcv1G,IACb4kU,GAASzuV,OAAO,QACXW,aACAI,SAAS8oB,GAAe9oB,UACxBqpB,KAAKP,GAAeQ,QACpB/pB,KAAK,OAAO,WAAaypB,IAAcA,QACvCzpB,KAAK,aAAa,WAAaypB,IAAcA,QAC7CvR,KAAK,QAASliB,KAAKqC,IAAI,EAAG6d,GAAGqQ,IAAIvwB,KAAKoC,IAAIyG,GAAM2wG,MAAM50B,KAAKpzE,MAAM,GAAI2I,GAAG,GAAGzK,MAEhFyoV,GAASzuV,OAAO,QACXwY,KAAK,QAA4B,iBAAZ/H,GAAG,GAAGzK,EACxB1P,KAAKqC,IAAI,EAAG6d,GAAGqQ,IAAIvwB,KAAKoC,IAAIyG,GAAM2wG,MAAM50B,KAAKpzE,MAAM,GAAI2I,GAAG,GAAGzK,KAC7D,GAEZyoV,GAASx3S,OAAO91C,SAEhB,IAAI7G,GAAOmW,GAAGxb,QAAO,WAAY,OAAOkK,GAAM2wG,MAAMt+F,UAAUpgB,SAC1DogB,GAAY08U,GAAOjuV,UAAU,sBAAsB3F,KAAKA,IAC5DkX,GAAUtR,QAAQC,OAAO,KAAKC,QAAQ,oBAAoB,GAAMD,OAAO,QACvEqR,GAAUxR,OAAO,QACZwY,KAAK,KAAMhC,GAAGqQ,IAAI1nB,GAAM2wG,MAAMt+F,UAAUpgB,QACxConB,KAAK,KAAMhC,GAAGqQ,IAAI1nB,GAAM2wG,MAAMt+F,UAAUpgB,QACxConB,KAAK,MAAO,EAAIrZ,GAAM2wG,MAAMt+F,UAAUk1G,WAAa,EAAIynO,IACvD31U,KAAK,MAAO,GAAK,EAAIrZ,GAAM2wG,MAAMt+F,UAAUk1G,WAAa,GAAKynO,IAC7D79V,KAAK+iB,GAAM0I,OAAQ5c,GAAM2wG,MAAMt+F,UAAU8W,KAAKzuB,OAC9CwG,MAAM,eAAgBlB,GAAM2wG,MAAMt+F,UAAU8W,KAAK1W,OACtDJ,GAAUylC,OAAO91C,SAEjB,IAAIutV,GAAgBR,GAAOjuV,UAAU,mBAAmB3F,KAAK,CAACuwV,KAC9D6D,GAAcxuV,QAAQC,OAAO,KAAKC,QAAQ,iBAAiB,GAAMD,OAAO,QACxEuuV,GAAc1uV,OAAO,QAChB1P,KAAKi+V,UACLj+V,KAAK65V,YACVuE,GAAcz3S,OAAO91C,SAvKb8sV,CAAgB/uV,GAAIgvE,EAAWz9D,GAAI,CAC/Bq/F,MAAOi+O,GACPzzS,MAAO0zS,GACP75U,KAAMA,GACNy2U,QAASA,GACTC,aAAcA,GACdhhU,eAAgBA,GAChBE,WAAYA,KAKpB,IAAIooB,GAAQ+7B,GAAUjuE,UAAU,cAAc3F,KAAKmW,IACnD0hC,GAAM8E,OAAO91C,SACbgxC,GAAMjyC,QAAQC,OAAO,QAAQC,QAAQ,SAAS,GAC9C+xC,GACK35B,KAAK,eAAe,WACjB,OAAOuyU,GAAWvtS,GAAOn5C,MAAQm5C,GAAOr+C,GAAMgzC,MAAM+nD,UAEvDt6F,KAAKT,GAAMgzC,MAAMvyC,MACjBtP,KAAKs3B,GAAQlW,KAAMvS,GAAMgzC,MAAMzgC,MAC/BphB,KAAKywC,GAAa3oB,gBAAiBlZ,IAGxCizC,GAAM35B,KAAK,aAAa,WACpB,IACIm2U,GADAC,GAASz6U,GAAK9jB,EAAI8jB,GAAKjG,EAAI1U,GAAS2F,GAAMgzC,MAAM+nD,OAEhDgsI,GAAehpM,GAAGgpM,aAClB2oH,GAAYjnU,GAAQqxB,KAAK9G,GAAMl6B,QACnC,GAAG6yU,GAAU,CACT,GAAGzgT,GAEC,GAAGlrC,GAAM2wG,MAAM50B,KAAKx4E,QAEhBisV,GADW/mU,GAAQqxB,KAAK+zS,GAAiB/0U,QAC1BuK,IAAM0jN,GAAgB2oH,GAAUtsU,YAE/CosU,GAASx6U,GAAK9iB,EAAI8iB,GAAKyrC,EAAI,EAAIsY,GAAS,EAAI22R,GAAUtsU,OAAS2jN,GAGpE6kH,KAEC4D,GAASjE,IAAYmE,GAAUrsU,IAAMqsU,GAAUtsU,QAAU,EACzDqsU,GAASz6U,GAAK9jB,EAAI6sC,GAAG+oM,cAAgB9xN,GAAKjG,QAI9CygV,GAAUxvV,GAAM2tV,YAAc5mH,GAAgB2oH,GAAUtsU,OAE5D,OAAOg1O,aAAaq3F,GAAQD,YAqpBlC,OACA,SAAU9+V,GAAQC,GAASI,IAEjC,aAWA,IAAIqjB,GAAqBrjB,GAAoB,QAAQqjB,mBACjDE,GAAavjB,GAAoB,QAAQujB,WACzCq7U,GAAoB5+V,GAAoB,QACxCmoF,GAAWnoF,GAAoB,QAEnCL,GAAOC,QAAU,CACbmB,EAAG69V,GAAkB79V,EACrB4hB,MAAOi8U,GAAkBj8U,MACzBk6B,GAAI+hT,GAAkB/hT,GACtBwzN,GAAIuuF,GAAkBvuF,GACtBwuF,OAAQD,GAAkBC,OAC1BC,OAAQF,GAAkBE,OAC1Bv/S,UAAWq/S,GAAkBr/S,UAU7B/f,KAAMjc,GAAW,GAAI4kE,GAAS3oD,KAAM,IAGpCpjB,OAAQmH,GAAW,GAAI4kE,GAAS/rE,OAAQ,IAGxCsF,MAAO6B,GAAW,GAAI4kE,GAASzmE,MAAO,IAItChS,KAAM6T,GAAW,GAAI4kE,GAASz4E,KAAM,IAGpCgV,UAAWnB,GAAW,GAAI4kE,GAASzjE,UAAW,IAW9CyT,OAAQgwD,GAAShwD,OAEjBrS,UAAW84U,GAAkB94U,UAC7BnB,cAAetB,KAEfmV,SAAU2vD,GAAS3vD,SACnBk0D,WAAYvE,GAASuE,aASnB,OACA,SAAU/sF,GAAQC,GAASI,IAEjC,aAGA,IAAI+J,GAAe/J,GAAoB,QACnCiK,GAAYjK,GAAoB,QAChCoJ,GAAepJ,GAAoB,QAEvCL,GAAOC,QAuHP,SAAS6+B,aAAax1B,GAAID,IAExB,IAAIoB,GAAO,GAEX,SAASguB,KAAKxpB,GAAEkH,GAAExG,GAAEpP,GAAEC,GAAEuvD,IACtB,IAAIqtB,GAAM,CAACnuE,GAAEkH,GAAExG,GAAI,EAAE,EAAE,EAAI,GAC3BytE,GAAI78E,GAAE,GAAK,EACX68E,GAAI78E,IAAKC,GACTiK,GAAKjF,KAAKvC,MAAMwH,GAAM2yE,IACtBA,GAAI,IAAM,EACV3yE,GAAKjF,KAAKvC,MAAMwH,GAAM2yE,IACtBA,GAAI78E,IAAKwvD,GACTtlD,GAAKjF,KAAKvC,MAAMwH,GAAM2yE,IACtB3yE,GAAKjF,KAAKvC,MAAMwH,GAAM2yE,IACtBA,GAAI,GAAK,EACT3yE,GAAKjF,KAAKvC,MAAMwH,GAAM2yE,IACtBA,GAAI78E,IAAKC,GACTiK,GAAKjF,KAAKvC,MAAMwH,GAAM2yE,IAGxB3kD,KAAK,EAAE,EAAE,EAAG,EAAG,EAAG,GAClBA,KAAK,EAAE,EAAE,EAAG,EAAG,EAAG,GAClBA,KAAK,EAAE,EAAE,EAAG,EAAG,EAAG,GAElBA,KAAK,EAAE,EAAE,EAAI,GAAK,EAAE,GACpBA,KAAK,EAAE,EAAE,EAAI,GAAK,EAAE,GAEpBA,KAAK,EAAE,EAAE,EAAI,GAAK,EAAE,GACpBA,KAAK,EAAE,EAAE,EAAI,GAAK,EAAE,GAEpBA,KAAK,EAAE,EAAE,EAAI,GAAK,EAAE,GACpBA,KAAK,EAAE,EAAE,EAAI,GAAK,EAAE,GAEpB,IAAItuB,GAASC,GAAad,GAAImB,IAC1BJ,GAAMC,GAAUhB,GAAI,CAAC,CACvBuK,KAAMvK,GAAGkyH,MACTrxH,OAAQA,GACRma,KAAM,EACN7H,OAAQ,EACR2sB,OAAQ,IACP,CACDv1B,KAAMvK,GAAGkyH,MACTrxH,OAAQA,GACRma,KAAM,EACN7H,OAAQ,GACR2sB,OAAQ,IACP,CACDv1B,KAAMvK,GAAGkyH,MACTrxH,OAAQA,GACRma,KAAM,EACN7H,OAAQ,GACR2sB,OAAQ,MAIN5/B,GAASC,GAAaH,IAC1BE,GAAOE,WAAWC,SAASC,SAAW,EACtCJ,GAAOE,WAAWM,MAAMJ,SAAW,EACnCJ,GAAOE,WAAWokE,OAAOlkE,SAAW,EAGpC,IAAI03B,GAAS,IAAI89T,WAAW91V,GAAIa,GAAQE,GAAKb,IAM7C,OAHA83B,GAAOt2B,OAAO3B,IAGPi4B,IAxLT,IAAIl2B,GAAW,CAAC,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,GAEtB,SAASg0V,WAAW91V,GAAIa,GAAQE,GAAKb,IACnCjF,KAAK+E,GAAaA,GAClB/E,KAAK4F,OAAaA,GAClB5F,KAAK8F,IAAaA,GAClB9F,KAAKiF,OAAaA,GAClBjF,KAAK8H,WAAa,EAClB9H,KAAKiH,OAAa,CAAC,EAAE,KAAM,KAAM,KAAO,CAAC,IAAK,IAAK,MACnDjH,KAAKoF,SAAa,CAAC,EAAE,EAAE,GACvBpF,KAAKwF,UAAa,CAAC,EAAE,EAAE,GACvBxF,KAAKsJ,OAAa,CAAC,CAAC,EAAE,EAAE,EAAE,GAAI,CAAC,EAAE,EAAE,EAAE,GAAI,CAAC,EAAE,EAAE,EAAE,IAChDtJ,KAAKsgC,QAAa,EAAC,GAAK,GAAK,GAC7BtgC,KAAK4kL,UAAa,EAAC,GAAK,GAAK,GAC7B5kL,KAAKiT,KAAa,KAGpB,IAAI3R,GAAQu5V,WAAWh9V,UAEnBi9V,GAAa,CAAC,EAAE,EAAE,GAClBC,GAAa,CAAC,EAAE,EAAE,GAElBzrH,GAAQ,CAAC,EAAE,GAEfhuO,GAAMyG,cAAgB,WACpB,OAAO,GAGTzG,GAAM8G,gBAAkB,SAASE,MAEjChH,GAAM+G,KAAO,SAASC,IACpB,IAAIvD,GAAK/E,KAAK+E,GACVe,GAAM9F,KAAK8F,IACXb,GAASjF,KAAKiF,OAElBa,GAAIvI,OACJ0H,GAAO1H,OAEP,IAIIupF,GAJAt+E,GAAaF,GAAOE,OAAS3B,GAC7B4B,GAAaH,GAAOG,MAAQ5B,GAC5B6B,GAAaJ,GAAOI,YAAc7B,GAGnC7G,KAAKiT,OACN6zE,GAAO9mF,KAAKiT,KAAK+nV,cAAcl0Q,MAKjC,IAFA,IAAIm0Q,GAAYH,GACZI,GAAYH,GACR/+V,GAAE,EAAGA,GAAE,IAAKA,GACf8qF,IAAQA,GAAK9qF,IAAK,GACnBi/V,GAAUj/V,IAAKgE,KAAKiH,OAAO,GAAGjL,IAC9Bk/V,GAAUl/V,IAAKgE,KAAKiH,OAAO,GAAGjL,MAE9Bi/V,GAAUj/V,IAAKgE,KAAKiH,OAAO,GAAGjL,IAC9Bk/V,GAAUl/V,IAAKgE,KAAKiH,OAAO,GAAGjL,KAIlCszO,GAAM,GAAKvqO,GAAG8D,mBACdymO,GAAM,GAAKvqO,GAAG+D,oBAEd7D,GAAOsD,SAASC,MAAcA,GAC9BvD,GAAOsD,SAASE,KAAcA,GAC9BxD,GAAOsD,SAASG,WAAcA,GAC9BzD,GAAOsD,SAASk1D,YAAc,CAACz9D,KAAKoF,SAAU61V,GAAWC,IACzDj2V,GAAOsD,SAASe,OAActJ,KAAKsJ,OACnCrE,GAAOsD,SAASK,YAAc0mO,GAE9B,IAAQtzO,GAAE,EAAGA,GAAE,IAAKA,GAClBiJ,GAAOsD,SAAS/C,UAAYxF,KAAKwF,UAAUxJ,IAAKgE,KAAK8H,WAClD9H,KAAKsgC,QAAQtkC,MACd8J,GAAIuC,KAAKtD,GAAGq9K,UAAW,EAAG,EAAEpmL,IACzBgE,KAAK4kL,UAAU5oL,KAChB8J,GAAIuC,KAAKtD,GAAGq9K,UAAW,GAAI,GAAG,GAAGpmL,KAKvC8J,GAAIkD,UAGN1H,GAAMmF,OAAS,SAAS3B,IAClBA,KAGD,WAAYA,KACb9E,KAAKiH,OAASnC,GAAQmC,QAErB,aAAcnC,KACf9E,KAAKoF,SAAWN,GAAQM,UAEvB,cAAeN,KAChB9E,KAAKwF,UAAYV,GAAQU,WAExB,WAAYV,KACb9E,KAAKsJ,OAASxE,GAAQwE,QAErB,YAAaxE,KACd9E,KAAKsgC,QAAUx7B,GAAQw7B,SAEtB,cAAex7B,KAChB9E,KAAK4kL,UAAY9/K,GAAQ8/K,aAI7BtjL,GAAMgJ,QAAU,WACdtK,KAAK8F,IAAIwE,UACTtK,KAAK4F,OAAO0E,UACZtK,KAAKiF,OAAOqF,YA8ER,KACA,SAAU7O,GAAQC,GAASI,IAEjC,aAWA,IAAIiY,GAAMjY,GAAoB,QAC1Bq2F,GAAer2F,GAAoB,QAAQ4nC,QAC3CwuF,GAAcp2H,GAAoB,QAAQqJ,WAC1CwyJ,GAAmB77J,GAAoB,QAAQu5D,QAC/C83B,GAAWrxF,GAAoB,QAE/Bq/V,GAAY,CACZznM,KAAM,CACFh0I,QAAS,UACTpb,IAAK,EAELub,SAAU,QAGdu7U,SAAU,CACN17U,QAAS,aACTsV,OAAQ,CAAC,gBAAiB,iBAC1BrV,KAAM,gBAENE,SAAU,QAGdk3I,QAAS,CACLr3I,QAAS,UACTpb,IAAK,EAELub,SAAU,QAGdyjB,SAAU,CACN5jB,QAAS,aACTq4I,YAAY,EACZlqB,WAAY,EACZtb,MAAO,CAAC7yG,QAAS,aAAcsV,OAAQ,CAACm9D,GAAa,MAAMx5E,WAAY,IAAKkH,SAAU,QAEtFA,SAAU,QAGdw5F,MAAO,CACH35F,QAAS,aACTq4I,YAAY,EACZxlC,MAAO,CAAC7yG,QAAS,aAAcsV,OAAQ,CAAC2iI,GAAiBjtJ,EAAEiO,WAAY,IAAKkH,SAAU,QAEtFA,SAAU,QAGd05F,MAAO,CACH75F,QAAS,aACTq4I,YAAY,EACZxlC,MAAO,CAAC7yG,QAAS,aAAcsV,OAAQ,CAAC2iI,GAAiB/lJ,EAAE+G,WAAY,IAAKkH,SAAU,QAEtFA,SAAU,QAGdusO,QAAS,CACL1sO,QAAS,aACTsV,OAAQ,CAAC,cAAe,WACxBrV,KAAM,UAENE,SAAU,QAGdsV,KAAM,CACFzV,QAAS,SACTpb,IAAK,EACLC,IAAK,EAELsb,SAAU,QAGduV,KAAM,CACF1V,QAAS,SACTpb,IAAK,EACLC,IAAK,EAELsb,SAAU,QAGdwpC,OAAQ6oE,GAAY,CAAC51H,KAAM,OAAQujB,SAAU,OAAQw7U,YAAY,GAAO,IAGxE1rN,MAAO,CACHjwH,QAAS,aACTsV,OAAQ,CAAC,SAAU,cAAe,WAAY,OAC9CrV,KAAM,cAENE,SAAU,QAGd+vH,MAAO,CACHlwH,QAAS,aACTsV,OAAQ,CAAC,OAAQ,YAAa,aAAc,SAC5CrV,KAAM,YAENE,SAAU,QAGdA,SAAU,QAGd,SAASy7U,QAAQt8S,GAAQkN,GAAM1sC,IAC3B,IAAI+7U,GAAUrvS,GAAK1sC,GAAW,QAC1Bg8U,GAAW/+V,OAAOyiD,MAAMF,GAAOgwF,YAAc,IAAIxvH,KAAa,IAElE,OAAG5gB,MAAMkL,QAAQyxV,IAAiBA,GAC/BC,GAASn9V,OAAem9V,QAA3B,EAqEJ,SAASC,kBAAkBj8U,GAAUsvB,GAAQ4sT,GAASC,GAAU3vU,GAAKyqJ,IACjE,IAAImlL,GAAS9sT,GAAOtvB,GAAW,MAAOk8U,IAClCryS,GAASva,GAAO,UAAYtvB,IAChCsvB,GAAOtvB,GAAW,OAAQm8U,IAM1B,IAJA,IAAIx/U,GAAM,IAAIvd,MAAMotB,IAChBpM,GAAQypC,GAAO,GACfpkB,IAAQokB,GAAO,GAAKzpC,KAAUoM,GAAM4vU,IACpCC,GAAa52T,IAAQ,EAAI22T,IACrB5/V,GAAI,EAAGA,GAAIgwB,GAAKhwB,KAAK,CACzB,IAAI8/V,GAAYl8U,GAAQqlB,GAAOjpC,GAC/BmgB,GAAIs6J,GAAYzqJ,GAAM,EAAIhwB,GAAKA,IAAK,CAAC8/V,GAAWA,GAAYD,IAEhE,OAAO1/U,GAyIX,SAAS4/U,aAAaC,GAAQC,GAAajwU,GAAKkwU,GAAS18U,IACrD,IACIxjB,GADAmgB,GAAM,IAAIvd,MAAMotB,IAGpB,SAASmwU,YAAYngW,GAAGogW,KACgB,IAAjCH,GAAYx8V,QAAQ28V,UAAsCx9U,IAApBs9U,GAAQE,KAC7CjgV,GAAIngB,IAAKogW,GACTF,GAAQE,IAAUpgW,IACfmgB,GAAIngB,IAAK,GAGpB,GAAG4C,MAAMkL,QAAQkyV,IACb,IAAIhgW,GAAI,EAAGA,GAAIgwB,GAAKhwB,KAChBmgW,YAAYngW,GAAGggW,GAAOhgW,UAK1B,IADAmgW,YAAY,EAAG38U,IACXxjB,GAAI,EAAGA,GAAIgwB,GAAKhwB,KAChBmgW,YAAYngW,GAAGwjB,IAAYxjB,GAAI,IAIvC,OAAOmgB,GAGX1gB,GAAOC,QAAU,CACbiT,WAAY,YACZrS,KAAM,OAEN+mC,OAAQ,CACJ2b,OAAQ,CAACkN,KAAMivS,KAGnB33T,iBAAkB23T,GAClBkB,aAzPJ,SAASA,aAAa1pS,GAAUC,IAC5B,IAAI0pS,GAAS3pS,GAASzG,MAAQ,GAC1B0nD,GAAQ0nP,QAAQ1oS,GAAW0pS,GAAQ,KACnCzoP,GAAQynP,QAAQ1oS,GAAW0pS,GAAQ,KAEvC,GAAI3pS,GAASzG,MAAS0nD,IAAUC,GAAhC,CAEA,IAQI0oP,GAAUC,GARVC,GAAiB79V,MAAMkL,QAAQwyV,GAAOh5T,WAAa1kC,MAAMkL,QAAQwyV,GAAOh5T,SAAS,IACjFo5T,GAAW99V,MAAMkL,QAAQ8pG,IACzB+oP,GAAW/9V,MAAMkL,QAAQ+pG,IACzB+oP,GACAF,IAAY9oP,KAAU0oP,GAAOjjP,OAC7BsjP,IAAY9oP,KAAUyoP,GAAO/iP,MAK9BkjP,IACCF,GAAWD,GAAOh5T,SAASjlC,OAC3Bm+V,GAAcF,GAAOh5T,SAAS,GAAGjlC,SAE9Bs+V,KAAUJ,GAAW1oP,GAAMx1G,QAC3Bq+V,KAAUF,GAAc5oP,GAAMv1G,SAGrC,IAAIw+V,GAAU1vQ,GAASY,aAAan7B,GAAW,QAM3C8gG,GAAO5kH,OAAO,OAAQytT,IACtBxlM,GAAUjoH,OAAO,UAAW0tT,IAEhC,GAAK9oM,GAAOqD,GAAU,EAAtB,CAKA,IAAI0lM,KAAmBC,KAAaC,GACe,gBAAtB7tT,OAAO,aACT2tT,IAAiB,GAE5CI,GAAQC,gBAAkBL,GAE1B,IAMIM,GAAWC,GALXvmL,GAAwB,kBADb3nI,OAAO,YAGlBmuT,GAAWR,GAAiB,GAAM,GAClCS,GAAWT,GAAiB,GAAM,GAGnCG,IAAoBhqS,GAAU88E,iBAC7BqtN,GAAYnqS,GAAU88E,eAAeC,MACrCqtN,GAAYpqS,GAAU88E,eAAeE,OAGzCitN,GAAQM,SAAW,CACfzyV,EAAG+wV,kBAAkB,IAAK3sT,OAAQmuT,GAAUF,GAAWhmM,IACvDnlJ,EAAG6pV,kBAAkB,IAAK3sT,OAAQouT,GAAUF,GAAWtpM,GAAM+iB,iBAxBtD7jH,GAAU1G,KARrB,SAASpd,OAAO1qB,GAAMzE,IAClB,OAAO5L,GAAI+6B,OAAOwtT,GAAQO,GAAS1B,GAAW/2U,GAAMzE,MA8NxDy9U,gBAxKJ,SAASA,gBAAgBzqS,GAAUC,IAC/B,IAAIiqS,GAAUjqS,GAAU1G,KAExB,GAAI2wS,IAAYA,GAAQM,SAAxB,CAEA,IAOInhW,GAAGmD,GAAG8pV,GAAKC,GAAKrzR,GAAWwnS,GAAaC,GAPxChB,GAAS3pS,GAASzG,MAAQ,GAC1B5oB,GAAWsvB,GAAUjkB,UACrB8tT,GAAiBI,GAAQC,gBACzBppM,GAAOmpM,GAAQnpM,KACfqD,GAAU8lM,GAAQ9lM,QAClBwmM,GAAyC,gBAApBV,GAAQzwG,QAI7B8vG,GAAUW,GAAQW,SAAW,GAEjC,GAAGf,GAAgB,CACf,IAAIgB,GAAanB,GAAOh5T,UAAY,GACpC+5T,GAAcR,GAAQv5T,SAAW,IAAI1kC,MAAM80J,IAC3C,IAAIvzJ,GAAQ,EAEZ,IAAInE,GAAI,EAAGA,GAAI03J,GAAM13J,KAAK,CACtB,IAAI0hW,GAASL,GAAYrhW,IAAK,IAAI4C,MAAMm4J,IACpC4mM,GAAQF,GAAWzhW,KAAM,GAC7B,IAAImD,GAAI,EAAGA,GAAI43J,GAAS53J,KAQpB,GAPGo+V,IACC1nS,GAAuB,IAAV11D,GAAe,KAAQ,IAAMA,GAAQ,IAAMA,GACxDA,MACG01D,GAAY8nS,GAAMx+V,IAEzBu+V,GAAOv+V,IAAK,IAEkC,IAA3CmkC,GAASqe,UAAUliD,QAAQo2D,IAAmB,CAI7C,GAHAynS,GAAOznS,GAAUp2D,QAAQ,KACzBwpV,GAAMpzR,GAAUr3D,MAAM,EAAG8+V,IACzBpU,GAAMrzR,GAAUr3D,MAAM8+V,SACD1+U,IAAjBs9U,GAAQjT,KAAsBiT,GAAQjT,MAAS9pV,SAC7Byf,IAAjBs9U,GAAQhT,KAAsBgT,GAAQhT,MAASltV,GAEhD,SAGJ0hW,GAAOv+V,IAAK02D,GACZqmS,GAAQjT,IAAO9pV,GACf+8V,GAAQhT,IAAOltV,SAIxB,CACH,IAAI43G,GAAQ0nP,QAAQ1oS,GAAW0pS,GAAQ,KACnCzoP,GAAQynP,QAAQ1oS,GAAW0pS,GAAQ,KACvCO,GAAQxjP,MAAQ0iP,aAAanoP,GAAOtwE,GAASrgB,MAAO8zI,GAASmlM,GAAS,KACtEW,GAAQtjP,MAAQwiP,aAAaloP,GAAOvwE,GAASpgB,MAAOwwI,GAAMwoM,GAAS,KAGvE,IAAI0B,GAAUf,GAAQgB,SAAW,GAC7BpnL,GAAgC,kBAArBomL,GAAQzB,SAEvB,IAAI,IAAIgB,MAAUF,GAAS,CACvB,IAGI7sN,GAAIliE,GAAK2wR,GAHTt+U,GAAW48U,GAAO9yU,OAAO,GACzBq+B,GAAOk1S,GAAQr9U,GAAW,QAI9B,GAAGmoC,GAAKtpD,OAAS,EAGbu/V,GAAQxB,IAAU,YACf,GAAgB,MAAb58U,IAUN,GATuB,MAAnBmoC,GAAKr+B,OAAO,KAAgBmtJ,IAC5BpnC,GAAK,EACLliE,GAAM,EACN2wR,GAASpqM,KAETrkB,GAAKqkB,GAAO,EACZvmF,IAAO,EACP2wR,IAAU,GAEXrB,GAAgB,CACf,IAAIjsM,GAAS0rM,GAAQE,IACrB,IAAIpgW,GAAIqzI,GAAIrzI,KAAM8hW,GAAQ9hW,IAAKmxE,GAE3B,IADAtX,GAAYwnS,GAAYrhW,IAAGw0J,OAE3B8sM,GAAOznS,GAAUp2D,QAAQ,KACtBo2D,GAAUr3D,MAAM,EAAG8+V,MAAUlB,IAAQ,CACpCwB,GAAQxB,IAAUvmS,GAAUr3D,MAAM8+V,IAClC,YAIR,IAAIthW,GAAIqzI,GAAIrzI,KAAM8hW,GAAQ9hW,IAAKmxE,GAE3B,GADA+7Q,GAAM2T,GAAQtjP,MAAMv9G,KAC6B,IAA9CsnC,GAASqe,UAAUliD,QAAQ28V,GAASlT,IAAa,CAChD0U,GAAQxB,IAAUlT,GAClB,YAcZ,GATuB,MAAnBvhS,GAAKr+B,OAAO,IACZ+lH,GAAK,EACLliE,GAAM,EACN2wR,GAAS/mM,KAET1nB,GAAK0nB,GAAU,EACf5pF,IAAO,EACP2wR,IAAU,GAEXrB,GAAgB,CACf,IAAI5jR,GAAMqjR,GAAQE,IAClB,IAAIpgW,GAAIqzI,GAAIrzI,KAAM8hW,GAAQ9hW,IAAKmxE,GAE3B,IADAtX,GAAYwnS,GAAYxkR,IAAK78E,OAE7BshW,GAAOznS,GAAUp2D,QAAQ,KACtBo2D,GAAUr3D,MAAM8+V,MAAUlB,IAAQ,CACjCwB,GAAQxB,IAAUvmS,GAAUr3D,MAAM,EAAG8+V,IACrC,YAIR,IAAIthW,GAAIqzI,GAAIrzI,KAAM8hW,GAAQ9hW,IAAKmxE,GAE3B,GADA87Q,GAAM4T,GAAQxjP,MAAMr9G,KAC6B,IAA9CsnC,GAASqe,UAAUliD,QAAQwpV,GAAMmT,IAAgB,CAChDwB,GAAQxB,IAAUnT,GAClB,YAkDlB,KACA,SAAUxtV,GAAQC,GAASI,IAEjC,aAWA,IAAIiiW,GAAYjiW,GAAoB,QAChCohK,GAAcphK,GAAoB,QAClC+uF,GAAY/uF,GAAoB,QAAQ+uF,UAE5C,SAASmzQ,SAASC,GAAgBC,GAAMvlS,IACpC,IAAIwlS,GAAYD,GAAKz+V,QAAQk5D,IACzBylS,GAAeH,GAAex+V,QAAQ0+V,IAK1C,OAJqB,IAAlBC,KAECA,IAAgBF,GAAK7/V,QAElB+/V,GAYX3iW,GAAOC,QAAU,SAASsT,KAAKlE,GAAIi8K,IAC/B,IAAI7kK,GAAapX,GAAGwmB,YAGpB,GADc4rI,GAAYpyJ,IAC1B,CAEA,IAAIuzV,GAAc,GACdzkJ,GAAc,GACd0kJ,GAAc,GACdC,GAAe,GAEfx+U,GAAOmC,GAAWksC,MAEtB24H,GAASx0H,SAAQ,SAASl2D,GAAGL,IACzB,IAAI+O,GAAQ1O,GAAE,GAAG0O,MACjBuzV,GAAYtiW,IAAK+O,GAAM5K,MACvB,IAAIq+V,GAAMD,GAAaviW,IAAK+O,GAAMktG,WAAW93G,MAC7Ck+V,GAAYriW,IAAK8O,GAAG5E,KAAKs4V,IAAK3wN,WAC9B+rE,GAAY59M,IAAK8O,GAAG5E,KAAKs4V,IAAK3wN,WAAWrvI,WAiF7Cu/V,GACIjzV,GACAi8K,GACA,CACIvpK,MAAOuC,GAAKjG,EACZyN,OAAQxH,GAAKyrC,EACb97B,OAAQ,CACJzyB,EAAG8iB,GAAK9iB,EACRJ,EAAGkjB,GAAKljB,EACRyD,EAAGyf,GAAKzf,EACRrE,EAAG8jB,GAAK9jB,IAGhB,CACIwiW,cA5FY,SAASziW,GAAG0iW,GAAiBC,IAI7C,IAAIhmS,GAAMihJ,GAAY59M,IAAG0iW,IACrBE,GAAiBD,GAAUtnT,KAAI,SAASx6C,IAAK,OAAOA,GAAE2B,WAMtD4vV,GAAO,cAAgBsQ,GAAkB,oBACzCG,GAAS38U,GAAWi2F,aAAartG,GAAGskD,UAAUkvS,GAAYtiW,KAAIi8G,WAAW1mF,KAC7E,QAAoB3S,IAAjBigV,GAAOzQ,IAAqB,CAC3B,IAAI1pL,GAAa/rG,GAAImmS,gBACrBD,GAAOzQ,IAAQ1pL,IAAc,KAGjC,IAAIq6L,GAAgBj0V,GAAGskD,UAAUkvS,GAAYtiW,KAAI6xI,WAAW6wN,IAExDE,GAAevgW,QAKc,IAA1BugW,GAAevgW,SAAcugW,GAAiBA,GAAe,IAChEjmS,GAAImmS,gBAAkBF,GACtBG,GAAcD,gBAAkBF,GAAepgW,QAE/CogW,GAAiB,CAACA,aARXjmS,GAAImmS,uBACJC,GAAcD,gBACrBF,GAAiB,MASrB,IAAII,GAAc,GAClBA,GAAY5Q,IAAQwQ,GACpB9zV,GAAG2qG,KAAK,iBAAkB,CAACupP,GAAa,CAACT,GAAaviW,QA2DlDgiB,MAxDI,SAAS9B,IACjBpR,GAAG2qG,KAAK,eAAgBv5F,KAwDpButG,QArDM,SAASvtG,IACnBpR,GAAG2qG,KAAK,iBAAkBv5F,KAqDtB+iV,UAlDQ,SAASjjW,GAAGiiW,IAKxB,IAAIC,GAhFZ,SAASgB,OAAOjB,GAAgBC,IAC5B,OAAO,SAASgB,OAAO5zM,GAAIlnF,IACvB,OACI45R,SAASC,GAAgBC,GAAM5yM,IAC/B0yM,SAASC,GAAgBC,GAAM95R,KA4ExB86R,CAAOjB,GAAgBrkJ,GAAY59M,IAAG6E,OAAOgqF,KACxDwzQ,GAAYriW,IAAGmH,KAAK+6V,IAIpBtkJ,GAAY59M,IAAG6E,QAAO,SAASxE,IAAI,OAAQwuF,GAAUxuF,OAC/C8G,MAAK,SAAS9G,IAEX,OAAOu9M,GAAY59M,IAAGyD,QAAQpD,OAElCk2D,SAAQ,SAASl2D,IACdgiW,GAAYriW,IAAG8Q,OAAOuxV,GAAYriW,IAAGyD,QAAQpD,IAAI,GACjDgiW,GAAYriW,IAAG8Q,OAAO8sM,GAAY59M,IAAGyD,QAAQpD,IAAI,EAAGA,OAa5DyO,GAAG2qG,KAAK,iBAAkB,CAAC,CAACo4B,WAAY,CAACwwN,GAAYriW,MAAM,CAACuiW,GAAaviW,aA4B3E,OACA,SAAUP,GAAQC,GAASI,IAEjC,aAGAL,GAAOC,QAAU,SAASyjW,OAAOz0V,IAC/B,OAAGA,GAAI,GAAa,EACjBA,GAAI,EAAY,EACZ,IAKH,OACA,SAAUjP,GAAQC,GAASI,IAEjC,aAYAJ,GAAQ4lO,UAAY,SAASA,UAAU89H,IACnC,OAA+D,KAAvDA,GAAapqJ,YAAc,IAAIv1M,QAAQ,YAGnD/D,GAAQ2lO,WAAa,SAASA,WAAW+9H,IACrC,MAAoC,MAA7BA,GAAaj7V,aAGxBzI,GAAQ2jW,WAAa,SAASA,WAAWD,IACrC,OAAgE,KAAxDA,GAAapqJ,YAAc,IAAIv1M,QAAQ,cAM7C,OACA,SAAUhE,IAEhBA,GAAOC,QAAU6/K,KAAKg1B,MAAM,+FAItB,OACA,SAAU90M,GAAQC,GAASI,IAEjC,aAWA,IAAImxE,GAAsBnxE,GAAoB,QAAQmxE,oBAEtDxxE,GAAOC,QAAU,SAAS2E,IACtB,OAGJ,SAASi/V,OAAOj/V,GAAGysK,IAIf,IAAI7/F,GAAoB5sE,KAAMysK,IAAS,GACnC,OAAO,KAMX,IAHA,IAAIxoK,GAAMiD,IACNhD,IAAOgD,IACP/J,GAAI6C,GAAEhC,OACFrC,GAAI,EAAGA,GAAIwB,GAAGxB,KAAK,CACvB,IAAI0sM,GAAQroM,GAAErE,IAEd,GAAGixE,GAAoBy7H,IAAQ,CAC3B,IAAIxhM,GAASo4V,OAAO52J,GAAO57B,GAAQ,GAEhC5lK,KACC5C,GAAMpC,KAAKoC,IAAI4C,GAAO,GAAI5C,IAC1BC,GAAMrC,KAAKqC,IAAI2C,GAAO,GAAI3C,UAG9BD,GAAMpC,KAAKoC,IAAIokM,GAAOpkM,IACtBC,GAAMrC,KAAKqC,IAAImkM,GAAOnkM,IAI9B,MAAO,CAACD,GAAKC,IA9BN+6V,CAAOj/V,GAAG,KAoCf,OACA,SAAU5E,GAAQC,GAASI,IAEjC,aAWA,IAAIiY,GAAMjY,GAAoB,QAC1B+lQ,GAAsB/lQ,GAAoB,QAE1CggD,GAAU/nC,GAAI+nC,QACdmmN,GAAUluP,GAAIkuP,QAkClBxmQ,GAAOC,QAAU,SAASkyC,WAAWxrB,GAAImhP,GAAarhP,IAGlD,OAFA2/O,GAAoBz/O,GAAIF,IAEjBE,GAAGyW,KACN,IAAK,IACL,IAAK,cASb,SAAS0mU,iBAAiBn9U,GAAImhP,IAC1B,IAAI1kP,GAAU0kP,GAAYlhP,SAE1BD,GAAGikP,YAAc,WACb,IAAI3hJ,GAAMtiG,GAAGshC,IAAI,GACbihE,GAAMviG,GAAGshC,IAAI,GAEbpjD,GAAIue,GAAQo0L,YACZ92M,IAAK0iB,GAAQilD,OAASxjE,KAAMqkH,GAAMD,IAClC9f,GAAKtkG,GAAInE,GAETqjW,GAAU96O,GAAMC,GAChB,SAASplH,IAAK,OAAOA,IAAK,GAC1B,SAASA,IAAK,OAAOA,IAAK,GAE9B6iB,GAAGkrP,IAAM,SAAS/tQ,IACd,IAAI1C,GAAIulB,GAAGM,IAAInjB,IAAKmlH,GACpB,OAAQ86O,GAAQ3iW,IAAKA,GAAI,GAAK+nG,IAGlCxiF,GAAGq9U,IAAM,SAASlgW,IACd,OAAO6iB,GAAG89D,IAAI3gF,GAAImlH,GAAM9f,KAG5BxiF,GAAGs9U,IAAM,SAASngW,IAAK,OAAOA,GAAIpD,IAClCimB,GAAGqQ,IAAM,SAASlzB,IAAK,OAAO6iB,GAAGs9U,IAAIt9U,GAAGkrP,IAAI/tQ,OAjCxCggW,CAAiBn9U,GAAImhP,IACrB,MACJ,IAAK,eA2Cb,SAASo8F,kBAAkBv9U,GAAImhP,IAC3B,IAAInqN,GAASh3B,GAAG9S,KAEhB,GAAc,WAAX8pC,GAAqB,CACpB,IAAIwmT,GAAOx9U,GAAGguB,IACVyvT,GAAOz9U,GAAGiuB,IAEdjuB,GAAGguB,IAAM,SAAS7wC,GAAG44H,IAAQ,OAfrC,SAAS2nO,UAAUvgW,GAAG44H,IAClB,MAAgB,YAATA,GAAqBr8E,GAAQv8C,IAAKA,GAcDugW,CAAUF,GAAKrgW,IAAI44H,KACvD/1G,GAAGiuB,IAAM,SAAS9wC,GAAG44H,IAAQ,OAAO0nO,GAZ5C,SAASE,YAAYxgW,GAAG44H,IACpB,MAAgB,YAATA,GAAqB8pI,GAAQ1iQ,IAAKA,GAWIwgW,CAAYxgW,GAAG44H,MAI5D/1G,GAAGwoB,aAAe,SAAS7/B,GAAOm2B,IAC9B,IAEIqkF,GAAUvpH,GAFVuoH,GAAUx5G,GAAMm2B,IAChBlV,GAAMjhB,GAAMoI,QAGZysV,KAAO,SAASrgW,IAAK,OAAO6iB,GAAGguB,IAAI7wC,GAAGwL,GAAMswC,YAEhD,GAAGkpE,GAAS,CACR,GAAGxwG,GAAIyxG,aAAajB,KAAuB,WAAXnrE,GAAqB,CACjD,GAAGptB,KAAQu4F,GAAQlmH,OACf,OAAOkmH,GACJ,GAAGA,GAAQkB,SACd,OAAOlB,GAAQkB,SAAS,EAAGz5F,IAKnC,IADAu5F,GAAW,IAAI3mH,MAAMotB,IACjBhwB,GAAI,EAAGA,GAAIgwB,GAAKhwB,KAChBupH,GAASvpH,IAAK4jW,KAAKr7O,GAAQvoH,SAE5B,CACH,IAAIgkW,GAAS9+T,GAAQ,IACjB++T,GAAS,IAAM/+T,GACf+yB,GAAM+rS,MAAUj1V,GAAS60V,KAAK70V,GAAMi1V,KAAW,EAC/CrvP,GAAM5lG,GAAMk1V,IAAWL,KAAK70V,GAAMk1V,MAAY79U,GAAGjK,QAAU,EAAIjW,KAAK67B,IAAM/R,GAG9E,IADAu5F,GAAW,IAAI3mH,MAAMotB,IACjBhwB,GAAI,EAAGA,GAAIgwB,GAAKhwB,KAChBupH,GAASvpH,IAAKi4D,GAAKj4D,GAAI20G,GAI/B,OAAO4U,IAIXnjG,GAAGikP,YAAc,WACb,IAQI65F,GAAOC,GACPC,GAAOC,GATP5wQ,GAAS8zK,GAAY9zK,OACrB60K,GAAc70K,GAAOp4C,IAAIyE,IACzB/hC,GAAM,CAAC82E,WAAY,EAAGD,iBAAkB,GAAGxuE,GAAGyyD,WAC9C66L,GAAM5zN,GAAQ15B,GAAGooN,UAEjB81H,MAAQ,SAAS/gW,IAAK,OAAOwa,GAAMxa,GAAImwQ,IACvC6wF,MAAQ,SAAShhW,IAAK,OAAQA,GAAImwQ,IAAO31P,IAK7C,OAAOq/B,IACH,IAAK,SACD+mT,GAAQD,GAAQnsV,GAAIlN,SACpBw5V,GAAQvkT,GACRskT,GAAQn+F,GAIR7/O,GAAG1O,MAAQK,GAAIo5P,aAAa7I,IACxB,CAAC70K,GAAO,GAAIA,GAAO,GAAK,KACxB60K,GAAYjtN,IAAIkpT,OAAOlpT,IAAI4qN,IAC/B,MAEJ,IAAK,WACD,IAAIu+F,GAASp+U,GAAG+tB,YAAY9xC,OACxBoiW,GAAUr+U,GAAGjK,OAASjW,KAAKqC,IAAI6d,GAAGjK,OAAQqoV,IAAUA,GAGzC,IAAZC,KAAeA,GAAU,GAE5BN,GAAQE,GAAQ,SAAS9gW,IAAK,OAAW,EAAJA,GAAQ2C,KAAK67B,GAAK0iU,IACvDP,GAAQE,GAAQ,SAAS7gW,IAAK,OAAOA,GAAIkhW,GAAUv+V,KAAK67B,GAAK,GAE7D3b,GAAG1O,MAAQ,CAAC,EAAG+sV,IAIvBr+U,GAAGkrP,IAAM,SAAS/tQ,IAAK,OAAO+gW,MAAMH,GAAM5gW,MAC1C6iB,GAAGq9U,IAAM,SAASlgW,IAAK,OAAO2gW,GAAMK,MAAMhhW,MAE1C6iB,GAAG2kP,IAAM,SAASxnQ,IAAK,OAAO+gW,MAAMD,GAAM9gW,MAC1C6iB,GAAGs+U,IAAM,SAASnhW,IAAK,OAAO6gW,GAAMG,MAAMhhW,OArItCogW,CAAkBv9U,GAAImhP,OA4I5B,OACA,SAAU9nQ,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAU,CACbiT,WAAY,QACZrS,KAAM,YACNsS,eAAgB9S,GAAoB,QACpC+S,WAAY,CAAC,MAAO,YAAa,WACjCmjB,YAAY,EAEZ7sB,WAAYrJ,GAAoB,QAChCiT,eAAgBjT,GAAoB,QAAQiT,eAE5ClE,KAAM/O,GAAoB,QAAQ+O,KAElCmE,KAAMlT,GAAoB,QAE1BgT,KAAM,KAQJ,OACA,SAAUrT,GAAQC,GAASI,IAEjC,aAQA,SAASwoF,QAAShnE,GAAM9gB,IAClBA,KAAGA,GAAI,KAEQ,iBAAT8gB,IAAqB1e,MAAMkL,QAAQwT,OAC7C9gB,GAAEwgB,OAASM,IAGZ,IAAIN,GAASpe,MAAMkL,QAAQtN,GAAEwgB,QAAUxgB,GAAEwgB,OAAO5b,KAAK,MAAQ5E,GAAEwgB,OAC/D,IAAKA,GAAQ,MAAM1e,MAAM,4BAEzB,IAAI6e,GAAK3gB,GAAEujB,MAAQvjB,GAAE6gB,UAAY7gB,GAAEkvB,IAAM,GACrC69C,GAAS/sE,GAAE+sE,QAAU/sE,GAAE6hH,YAAc,GAGrCwxC,IADAvyI,GAAO,CADC9gB,GAAEyP,OAASzP,GAAE8uM,WAAa,GACnB/hI,GAAQpsD,IAAI/b,KAAK,KAAO,MAAQ4b,GACtCxgB,GAAEqzJ,QAAU,OAEzB,GAAIvrE,QAAQmsD,MAAMzzH,KAEbG,IAAMmnE,QAAQmsD,MAAMzzH,IAAQ0O,GAC/B,OAAOi1U,YAAYr8Q,QAAQmsD,MAAMzzH,IAAS6yI,IAI5C,IAAInzI,GAASlgB,GAAEkgB,QAAU4nE,QAAQ5nE,OAC7BD,GAAMC,GAAOG,WAAW,MACxBmtJ,GAAQ,CACXz1B,WAAmB31H,IAAZpiB,GAAE+3I,MAAsB/3I,GAAE+3I,MAAQ,IACzCu7J,WAAmBlxR,IAAZpiB,GAAEszS,MAAsBtzS,GAAEszS,MAAQ,IACzC3hL,aAAuBvvG,IAAdpiB,GAAE2xH,QAAwB3xH,GAAE2xH,QAAU,IAC/CD,YAAqBtvG,IAAbpiB,GAAE0xH,OAAuB1xH,GAAE0xH,OAAS,IAC5C0yO,YAAqBhiV,IAAbpiB,GAAEokW,OAAuBpkW,GAAEokW,OAAS,IAC5Cv8L,eAA2BzlJ,IAAhBpiB,GAAE6nK,UAA0B7nK,GAAE6nK,UAAY,KAElDpoK,GAAIiG,KAAKs5B,KAAU,IAALre,IAClBT,GAAO6K,OAAStrB,GAChBygB,GAAOc,MAAY,GAAJvhB,GACfwgB,GAAIa,KAAOA,GAEX,IACIpW,GAAS,CACZknB,IAAK,GAIN3R,GAAIokV,UAAU,EAAG,EAAG5kW,GAAGA,IACvBwgB,GAAI0tJ,aAAe,MACnB1tJ,GAAI+9D,UAAY,QAChB/9D,GAAIwV,SATO,IASQ,EAAG,GACtB,IAAI6uU,GAAQC,SAAStkV,GAAIukV,aAAa,EAAG,EAAG/kW,GAAGA,KAC/CwgB,GAAIokV,UAAU,EAAG,EAAG5kW,GAAGA,IACvBwgB,GAAI0tJ,aAAe,SACnB1tJ,GAAIwV,SAbO,IAaQ,EAAGh2B,IACtB,IAAIglW,GAAWF,SAAStkV,GAAIukV,aAAa,EAAG,EAAG/kW,GAAGA,KAClDiL,GAAO+lD,WACP/lD,GAAOinB,OAASlyB,GAAIglW,GAAWH,GAG/BrkV,GAAIokV,UAAU,EAAG,EAAG5kW,GAAGA,IACvBwgB,GAAI0tJ,aAAe,aACnB1tJ,GAAIwV,SArBO,IAqBQ,EAAGh2B,IACtB,IACIilW,GAAWjlW,GADE8kW,SAAStkV,GAAIukV,aAAa,EAAG,EAAG/kW,GAAGA,KACpB,EAAI6kW,GACpC55V,GAAOg6V,SACPh6V,GAAOi6V,WAAaD,GAGpBzkV,GAAIokV,UAAU,EAAG,EAAG5kW,GAAGA,IACvBwgB,GAAI0tJ,aAAe,SACnB1tJ,GAAIwV,SA9BO,IA8BQ,EAAO,GAAJh2B,IACtB,IAAImlW,GAAWL,SAAStkV,GAAIukV,aAAa,EAAG,EAAG/kW,GAAGA,KAClDiL,GAAOq8H,OACPr8H,GAAO6gB,OAAS9rB,GAAImlW,GAAW,EAAIN,GAAY,GAAJ7kW,GAG3CwgB,GAAIokV,UAAU,EAAG,EAAG5kW,GAAGA,IACvBwgB,GAAI0tJ,aAAe,UACnB1tJ,GAAIwV,SAtCO,IAsCQ,EAAO,GAAJh2B,IACtB,IAAIolW,GAAYN,SAAStkV,GAAIukV,aAAa,EAAG,EAAG/kW,GAAGA,KACnDiL,GAAOo6V,QAAUrlW,GAAIolW,GAAY,EAAIP,GAAY,GAAJ7kW,GAG7CwgB,GAAIokV,UAAU,EAAG,EAAG5kW,GAAGA,IACvBwgB,GAAI0tJ,aAAe,cACnB1tJ,GAAIwV,SA7CO,IA6CQ,EAAGh2B,IACtB,IAAIslW,GAAgBR,SAAStkV,GAAIukV,aAAa,EAAG,EAAG/kW,GAAGA,KA8CvD,GA7CAiL,GAAOs6V,YAAcvlW,GAAIslW,GAAgB,EAAIT,GAGzC92L,GAAMz1B,QACT93H,GAAIokV,UAAU,EAAG,EAAG5kW,GAAGA,IACvBwgB,GAAI0tJ,aAAe,MACnB1tJ,GAAIwV,SAAS+3I,GAAMz1B,MAAO,EAAG,GAC7BrtI,GAAOqtI,MAAQwsN,SAAStkV,GAAIukV,aAAa,EAAG,EAAG/kW,GAAGA,KAClDiL,GAAOu6V,UAAav6V,GAAOg6V,SAAWh6V,GAAOqtI,OAI1Cy1B,GAAM8lI,QACTrzR,GAAIokV,UAAU,EAAG,EAAG5kW,GAAGA,IACvBwgB,GAAI0tJ,aAAe,MACnB1tJ,GAAIwV,SAAS+3I,GAAM8lI,MAAO,EAAG,GAC7B5oS,GAAO4oS,MAAQixD,SAAStkV,GAAIukV,aAAa,EAAG,EAAG/kW,GAAGA,KAClDiL,GAAOw6V,QAAWx6V,GAAOg6V,SAAWh6V,GAAO4oS,OAIxC9lI,GAAM42L,SACTnkV,GAAIokV,UAAU,EAAG,EAAG5kW,GAAGA,IACvBwgB,GAAI0tJ,aAAe,MACnB1tJ,GAAIwV,SAAS+3I,GAAM42L,OAAQ,EAAG,GAC9B15V,GAAO05V,OAASG,SAAStkV,GAAIukV,aAAa,EAAG,EAAG/kW,GAAGA,MAIhD+tK,GAAM97C,SACTzxG,GAAIokV,UAAU,EAAG,EAAG5kW,GAAGA,IACvBwgB,GAAI0tJ,aAAe,MACnB1tJ,GAAIwV,SAAS+3I,GAAM97C,OAAQ,EAAG,GAC9BhnH,GAAOgnH,OAAS6yO,SAAStkV,GAAIukV,aAAa,EAAG,EAAG/kW,GAAGA,MAIhD+tK,GAAM77C,UACT1xG,GAAIokV,UAAU,EAAG,EAAG5kW,GAAGA,IACvBwgB,GAAI0tJ,aAAe,MACnB1tJ,GAAIwV,SAAS+3I,GAAM77C,QAAS,EAAG,GAC/BjnH,GAAOinH,QAAUwzO,YAAYllV,GAAIukV,aAAa,EAAG,EAAG/kW,GAAGA,MAIpD+tK,GAAM3F,UAAW,CACpB5nJ,GAAIokV,UAAU,EAAG,EAAG5kW,GAAGA,IACvBwgB,GAAI0tJ,aAAe,MACnB1tJ,GAAIwV,SAAS+3I,GAAM3F,UAAW,EAAG,GACjC,IAAIu9L,GAAcD,YAAYllV,GAAIukV,aAAa,EAAG,EAAG/kW,GAAGA,KACxDiL,GAAOm9J,UAAYu9L,GAAcV,GAIlC,IAAK,IAAI5kW,MAAQ4K,GAChBA,GAAO5K,KAAS6gB,GAMjB,OAHAjW,GAAOwkB,GAAKvO,GACZmnE,QAAQmsD,MAAMzzH,IAAU9V,GAEjBy5V,YAAYz5V,GAAQ2oJ,IAG5B,SAAS8wM,YAAYjnU,GAAKm2H,IACzB,IAAI3N,GAAM,GAEV,IAAK,IAAI5lJ,KADa,iBAAXuzJ,KAAqBA,GAASn2H,GAAIm2H,KAC5Bn2H,GACH,OAATp9B,KACJ4lJ,GAAI5lJ,IAAQo9B,GAAIp9B,IAAQuzJ,IAEzB,OAAO3N,GAGR,SAAS6+M,SAASc,IAGjB,IAFA,IAAI5lW,GAAI4lW,GAAMt6U,OACVrhB,GAAO27V,GAAM37V,KACRlK,GAAI,EAAGA,GAAIkK,GAAK7H,OAAQrC,IAAG,EACnC,GAAgB,IAAZkK,GAAKlK,IACR,OAAOkG,KAAKyN,MAAe,KAAR3T,GAAI,GAAUC,IAKpC,SAAS0lW,YAAYE,IAGpB,IAFA,IAAI5lW,GAAI4lW,GAAMt6U,OACVrhB,GAAO27V,GAAM37V,KACRlK,GAAIkK,GAAK7H,OAAS,EAAGrC,GAAI,EAAGA,IAAK,EACzC,GAAgB,IAAZkK,GAAKlK,IACR,OAAOkG,KAAKyN,MAAe,KAAR3T,GAAI,GAAUC,IAnLpCR,GAAOC,QAAU4oF,QAEjBA,QAAQ5nE,OAASC,SAASC,cAAc,UACxC0nE,QAAQmsD,MAAQ,IAwLV,OACA,SAAUh1I,GAAQC,GAASI,IAEjC,aAWAL,GAAOC,QAAU,CACbyJ,WAAYrJ,GAAoB,QAChCiT,eAAgBjT,GAAoB,QACpC6/D,SAAU7/D,GAAoB,QAC9B+O,KAAM/O,GAAoB,QAC1B+sF,YAAa/sF,GAAoB,QAAQ+sF,YACzC75E,KAAMlT,GAAoB,QAAQkT,KAClC/C,MAAOnQ,GAAoB,QAAQmQ,MACnC2vD,cAAe9/D,GAAoB,QAAQ8/D,cAC3C3sD,YAAanT,GAAoB,QACjCogB,UAAWpgB,GAAoB,QAC/BoT,aAAcpT,GAAoB,QAElC6S,WAAY,QACZrS,KAAM,aACNsS,eAAgB9S,GAAoB,QACpC+S,WAAY,CAAC,MAAO,YAAa,cACjCC,KAAM,KAQJ,OACA,SAAUrT,GAAQC,GAASI,IAoBjC,IAAIyuD,GAAOzuD,GAAoB,QAC3B6Y,GAAS7Y,GAAoB,QASjC,SAASgmW,kBAAkBvrV,IACvBvW,KAAKmV,MAAQnV,KAAK6U,gBAAgB0B,IAAY,KAAOvW,KAAK6U,gBAAgB,IAG9EitV,kBAAkBjkW,UAAY,IAAI0sD,GAAKjvC,aAEvC3G,GAAOmtV,kBAAkBjkW,UAAW,CAGhCvB,KAAM,YAKNud,aAAa,EAGbd,SAAU,EAGVI,WAAY,EAGZH,OAAQ,EAiBRnE,gBAAiB,CACb,GAAI,CACAvY,KAAM,cACN2c,OAAQ,CAAC,KAAM,MACfmB,WAAY,CAAC,cAAe,QAAS,iBAAmB,iBAAmB,kBAAmB,kBAC9F,QAAS,WAAa,UAAW,UAAW,gBAAkB,iBAC9DC,gBAAiB,CAAC,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,MAAO,OAAS,MAAO,OAAQ,OAAQ,QACvGC,SAAU,CAAC,eAAgB,kBAAmB,oBAAqB,kBAAmB,iBAAkB,gBAAiB,gBACzHE,YAAa,CAAC,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,MACnD3D,OAAQ,KACR4D,WAAY,aACZC,SAAU,EACVC,OAAO,IASfrD,SAAU,SAAU9B,IAChB,IAAI6B,GAAOrX,KAAK6Y,UAAUrD,GAAMxV,KAAK+Y,SAAU/Y,KAAKgZ,OAAQuxC,GAAKp1C,MAAMF,aACvE,OAAyC,MAAjCjV,KAAK2X,WAAWN,GAAK7B,SAUjCkC,WAAY,SAAUlC,GAAMC,GAAOC,IAE/B,IAAIkF,GAAY5a,KAAK2W,QAAQnB,GAAMC,GAAOC,IAE1C,OADAkF,GAAU3C,KAAK2C,GAAU9C,YAAa,KAC/B5V,KAAKyN,OAAOiL,GAAUhD,YAAc,GAAK,GAAK,GAQzDD,WAAY,SAAUnC,IAElB,IADA,IAAIusV,GAAY,EACP/lW,GAAI,EAAGA,IAAK,GAAIA,KACrB+lW,IAAa/hW,KAAK6X,YAAYrC,GAAMxZ,IAExC,OAAO+lW,IASXlqV,YAAa,SAAUrC,GAAMC,IAKzB,IAJA,IACIusV,GADOhiW,KAAK6Y,UAAUrD,GAAMC,GAAOzV,KAAKgZ,OAAQuxC,GAAKp1C,MAAMH,cAC9CqD,OAAS,KAAU,GAEhClY,GAAQ,EACHnE,GAAI,EAAGA,GAAIimW,GAAc5jW,OAAQrC,KAAK,CAC3C,GAAIimW,GAAcjmW,IAAKgmW,GACnB,OAAQC,GAAc9hW,IAAS8hW,GAAc9hW,GAAQ,GAEzDA,KAEJ,OAAO,IAUX4X,QAAS,SAAUvC,GAAMC,GAAOC,IAC5B,OAA4C,IAArC1V,KAAK8X,UAAUtC,GAAMC,GAAOC,KAWvC2C,KAAM,SAAU7C,GAAMC,GAAOC,IACzB,IAAI2B,GAAOrX,KAAK6Y,UAAUrD,GAAMC,GAAOC,GAAK60C,GAAKp1C,MAAMJ,aACnD5U,GAAS,IAAMkX,GAAK7B,OAAS,GAAM6B,GAAK5B,QAAU,MAEtD,OADY4B,GAAK3B,MAAQusV,GAAc9hW,GAAQ,GAAK,EACrC,KAAU,IAO7BmY,OAAQ,SAAUC,IAKd,IAJA,IAAIypV,GAAQzpV,GAAK,KAAU,GAGvBpY,GAAQ,EACHnE,GAAI,EAAGA,GAAIimW,GAAc5jW,UAC1B4jW,GAAcjmW,IAAKgmW,IADehmW,KAEtCmE,KAEJ,IAAI+hW,GAAW/hW,GAAQ,MACnBgiW,GAAKjgW,KAAKyN,OAAOuyV,GAAW,GAAK,IACjC1sV,GAAO2sV,GAAK,EACZ1sV,GAAQysV,GAAW,GAAKC,GACxBzsV,GAAMssV,GAAQC,GAAc9hW,GAAQ,GAAK,EAC7C,OAAOH,KAAK2W,QAAQnB,GAAMC,GAAOC,KASrCM,QAAS,SAASR,GAAMC,GAAOC,IAC3B,IAAIsE,GAAQuwC,GAAKjvC,aAAazd,UAAUmY,QAAQtX,MAAMsB,KAAMoX,WAK5D,OAJI4C,KAEAA,IADAxE,GAAqB,MAAbA,GAAKA,KAAeA,GAAKA,KAAOA,KACvB,MAAQA,IAAQ,MAE9BwE,IAWXnB,UAAW,SAASrD,GAAMC,GAAOC,GAAKuE,IAClC,IAAI5C,GAAOkzC,GAAKjvC,aAAazd,UAAUgb,UAAUna,MAAMsB,KAAMoX,WAC7D,GAAIC,GAAK7B,KAAO,MAAQ6B,GAAK7B,KAAO,KAChC,MAAMyE,GAAM5F,QAAQ,QAASrU,KAAKmV,MAAM7Y,MAE5C,OAAO+a,MAKfkzC,GAAKn1C,UAAUgtV,UAAYN,kBAE3B,IAAIG,GAAgB,CAChB,GAAO,GAAO,GAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IACrI,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAEjD,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MA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GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,IAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,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AAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAIjlG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAKopF,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,IAAIksT,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI0kD,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIzkD,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI0kD,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI1kD,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,KAAKC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK8vL,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI71Y,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI+V,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,IAAIC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAIC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI62C,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI7jB,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,KAAKC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI2vD,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,KAAK2kC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAIu8C,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAImF,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAIr9C,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,IAAIx1Q,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI8Z,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,IAAIL,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAKC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAKu2C,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,IAAIjD,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI/sD,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIssB,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,KAAKywJ,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK41I,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI91I,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,IAAIh7M,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,IAAIke,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,KAAKy1R,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI/tP,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAKrhE,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAIC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIlE,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAIC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAIud,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAIwqB,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK1c,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI8jC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAIxvD,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,IAAImD,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAIK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,IAAIvD,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAIE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAIqB,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAIhB,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAKuB,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIimE,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAInnE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,KAAKmB,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIf,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,KAAKuD,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,IAAIjB,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,IAAIua,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,IAAIpP,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,IAAIkH,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAIxG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,E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","file":"js/main-dashboard.4fa637e1.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-plotly\"] = factory();\n\telse\n\t\troot[\"vue-plotly\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fae3\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* (ignored) */\n\n/***/ }),\n\n/***/ \"0000\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n//High level idea:\n// 1. Use Clarkson's incremental construction to find convex hull\n// 2. Point location in triangulation by jump and walk\n\nmodule.exports = incrementalConvexHull\n\nvar orient = __webpack_require__(\"92ba\")\nvar compareCell = __webpack_require__(\"24ad\").compareCells\n\nfunction compareInt(a, b) {\n return a - b\n}\n\nfunction Simplex(vertices, adjacent, boundary) {\n this.vertices = vertices\n this.adjacent = adjacent\n this.boundary = boundary\n this.lastVisited = -1\n}\n\nSimplex.prototype.flip = function() {\n var t = this.vertices[0]\n this.vertices[0] = this.vertices[1]\n this.vertices[1] = t\n var u = this.adjacent[0]\n this.adjacent[0] = this.adjacent[1]\n this.adjacent[1] = u\n}\n\nfunction GlueFacet(vertices, cell, index) {\n this.vertices = vertices\n this.cell = cell\n this.index = index\n}\n\nfunction compareGlue(a, b) {\n return compareCell(a.vertices, b.vertices)\n}\n\nfunction bakeOrient(d) {\n var code = [\"function orient(){var tuple=this.tuple;return test(\"]\n for(var i=0; i<=d; ++i) {\n if(i > 0) {\n code.push(\",\")\n }\n code.push(\"tuple[\", i, \"]\")\n }\n code.push(\")}return orient\")\n var proc = new Function(\"test\", code.join(\"\"))\n var test = orient[d+1]\n if(!test) {\n test = orient\n }\n return proc(test)\n}\n\nvar BAKED = []\n\nfunction Triangulation(dimension, vertices, simplices) {\n this.dimension = dimension\n this.vertices = vertices\n this.simplices = simplices\n this.interior = simplices.filter(function(c) {\n return !c.boundary\n })\n\n this.tuple = new Array(dimension+1)\n for(var i=0; i<=dimension; ++i) {\n this.tuple[i] = this.vertices[i]\n }\n\n var o = BAKED[dimension]\n if(!o) {\n o = BAKED[dimension] = bakeOrient(dimension)\n }\n this.orient = o\n}\n\nvar proto = Triangulation.prototype\n\n//Degenerate situation where we are on boundary, but coplanar to face\nproto.handleBoundaryDegeneracy = function(cell, point) {\n var d = this.dimension\n var n = this.vertices.length - 1\n var tuple = this.tuple\n var verts = this.vertices\n\n //Dumb solution: Just do dfs from boundary cell until we find any peak, or terminate\n var toVisit = [ cell ]\n cell.lastVisited = -n\n while(toVisit.length > 0) {\n cell = toVisit.pop()\n var cellVerts = cell.vertices\n var cellAdj = cell.adjacent\n for(var i=0; i<=d; ++i) {\n var neighbor = cellAdj[i]\n if(!neighbor.boundary || neighbor.lastVisited <= -n) {\n continue\n }\n var nv = neighbor.vertices\n for(var j=0; j<=d; ++j) {\n var vv = nv[j]\n if(vv < 0) {\n tuple[j] = point\n } else {\n tuple[j] = verts[vv]\n }\n }\n var o = this.orient()\n if(o > 0) {\n return neighbor\n }\n neighbor.lastVisited = -n\n if(o === 0) {\n toVisit.push(neighbor)\n }\n }\n }\n return null\n}\n\nproto.walk = function(point, random) {\n //Alias local properties\n var n = this.vertices.length - 1\n var d = this.dimension\n var verts = this.vertices\n var tuple = this.tuple\n\n //Compute initial jump cell\n var initIndex = random ? (this.interior.length * Math.random())|0 : (this.interior.length-1)\n var cell = this.interior[ initIndex ]\n\n //Start walking\nouterLoop:\n while(!cell.boundary) {\n var cellVerts = cell.vertices\n var cellAdj = cell.adjacent\n\n for(var i=0; i<=d; ++i) {\n tuple[i] = verts[cellVerts[i]]\n }\n cell.lastVisited = n\n\n //Find farthest adjacent cell\n for(var i=0; i<=d; ++i) {\n var neighbor = cellAdj[i]\n if(neighbor.lastVisited >= n) {\n continue\n }\n var prev = tuple[i]\n tuple[i] = point\n var o = this.orient()\n tuple[i] = prev\n if(o < 0) {\n cell = neighbor\n continue outerLoop\n } else {\n if(!neighbor.boundary) {\n neighbor.lastVisited = n\n } else {\n neighbor.lastVisited = -n\n }\n }\n }\n return\n }\n\n return cell\n}\n\nproto.addPeaks = function(point, cell) {\n var n = this.vertices.length - 1\n var d = this.dimension\n var verts = this.vertices\n var tuple = this.tuple\n var interior = this.interior\n var simplices = this.simplices\n\n //Walking finished at boundary, time to add peaks\n var tovisit = [ cell ]\n\n //Stretch initial boundary cell into a peak\n cell.lastVisited = n\n cell.vertices[cell.vertices.indexOf(-1)] = n\n cell.boundary = false\n interior.push(cell)\n\n //Record a list of all new boundaries created by added peaks so we can glue them together when we are all done\n var glueFacets = []\n\n //Do a traversal of the boundary walking outward from starting peak\n while(tovisit.length > 0) {\n //Pop off peak and walk over adjacent cells\n var cell = tovisit.pop()\n var cellVerts = cell.vertices\n var cellAdj = cell.adjacent\n var indexOfN = cellVerts.indexOf(n)\n if(indexOfN < 0) {\n continue\n }\n\n for(var i=0; i<=d; ++i) {\n if(i === indexOfN) {\n continue\n }\n\n //For each boundary neighbor of the cell\n var neighbor = cellAdj[i]\n if(!neighbor.boundary || neighbor.lastVisited >= n) {\n continue\n }\n\n var nv = neighbor.vertices\n\n //Test if neighbor is a peak\n if(neighbor.lastVisited !== -n) { \n //Compute orientation of p relative to each boundary peak\n var indexOfNeg1 = 0\n for(var j=0; j<=d; ++j) {\n if(nv[j] < 0) {\n indexOfNeg1 = j\n tuple[j] = point\n } else {\n tuple[j] = verts[nv[j]]\n }\n }\n var o = this.orient()\n\n //Test if neighbor cell is also a peak\n if(o > 0) {\n nv[indexOfNeg1] = n\n neighbor.boundary = false\n interior.push(neighbor)\n tovisit.push(neighbor)\n neighbor.lastVisited = n\n continue\n } else {\n neighbor.lastVisited = -n\n }\n }\n\n var na = neighbor.adjacent\n\n //Otherwise, replace neighbor with new face\n var vverts = cellVerts.slice()\n var vadj = cellAdj.slice()\n var ncell = new Simplex(vverts, vadj, true)\n simplices.push(ncell)\n\n //Connect to neighbor\n var opposite = na.indexOf(cell)\n if(opposite < 0) {\n continue\n }\n na[opposite] = ncell\n vadj[indexOfN] = neighbor\n\n //Connect to cell\n vverts[i] = -1\n vadj[i] = cell\n cellAdj[i] = ncell\n\n //Flip facet\n ncell.flip()\n\n //Add to glue list\n for(var j=0; j<=d; ++j) {\n var uu = vverts[j]\n if(uu < 0 || uu === n) {\n continue\n }\n var nface = new Array(d-1)\n var nptr = 0\n for(var k=0; k<=d; ++k) {\n var vv = vverts[k]\n if(vv < 0 || k === j) {\n continue\n }\n nface[nptr++] = vv\n }\n glueFacets.push(new GlueFacet(nface, ncell, j))\n }\n }\n }\n\n //Glue boundary facets together\n glueFacets.sort(compareGlue)\n\n for(var i=0; i+1= 0) {\n bcell[ptr++] = cv[j]\n } else {\n parity = j&1\n }\n }\n if(parity === (d&1)) {\n var t = bcell[0]\n bcell[0] = bcell[1]\n bcell[1] = t\n }\n boundary.push(bcell)\n }\n }\n return boundary\n}\n\nfunction incrementalConvexHull(points, randomSearch) {\n var n = points.length\n if(n === 0) {\n throw new Error(\"Must have at least d+1 points\")\n }\n var d = points[0].length\n if(n <= d) {\n throw new Error(\"Must input at least d+1 points\")\n }\n\n //FIXME: This could be degenerate, but need to select d+1 non-coplanar points to bootstrap process\n var initialSimplex = points.slice(0, d+1)\n\n //Make sure initial simplex is positively oriented\n var o = orient.apply(void 0, initialSimplex)\n if(o === 0) {\n throw new Error(\"Input not in general position\")\n }\n var initialCoords = new Array(d+1)\n for(var i=0; i<=d; ++i) {\n initialCoords[i] = i\n }\n if(o < 0) {\n initialCoords[0] = 1\n initialCoords[1] = 0\n }\n\n //Create initial topological index, glue pointers together (kind of messy)\n var initialCell = new Simplex(initialCoords, new Array(d+1), false)\n var boundary = initialCell.adjacent\n var list = new Array(d+2)\n for(var i=0; i<=d; ++i) {\n var verts = initialCoords.slice()\n for(var j=0; j<=d; ++j) {\n if(j === i) {\n verts[j] = -1\n }\n }\n var t = verts[0]\n verts[0] = verts[1]\n verts[1] = t\n var cell = new Simplex(verts, new Array(d+1), true)\n boundary[i] = cell\n list[i] = cell\n }\n list[d+1] = initialCell\n for(var i=0; i<=d; ++i) {\n var verts = boundary[i].vertices\n var adj = boundary[i].adjacent\n for(var j=0; j<=d; ++j) {\n var v = verts[j]\n if(v < 0) {\n adj[j] = initialCell\n continue\n }\n for(var k=0; k<=d; ++k) {\n if(boundary[k].vertices.indexOf(v) < 0) {\n adj[j] = boundary[k]\n }\n }\n }\n }\n\n //Initialize triangles\n var triangles = new Triangulation(d, initialSimplex, list)\n\n //Insert remaining points\n var useRandom = !!randomSearch\n for(var i=d+1; i 0) {\n for (var k = 0; k < 24; ++k) {\n buffer.push(buffer[buffer.length - 12])\n }\n vertexCount += 2\n hadGap = true\n }\n\n continue fill_loop\n }\n bounds[0][j] = Math.min(bounds[0][j], a[j], b[j])\n bounds[1][j] = Math.max(bounds[1][j], a[j], b[j])\n }\n\n var acolor, bcolor\n if (Array.isArray(colors[0])) {\n acolor = (colors.length > i - 1) ? colors[i - 1] : // using index value\n (colors.length > 0) ? colors[colors.length - 1] : // using last item\n [0, 0, 0, 1]; // using black\n\n bcolor = (colors.length > i) ? colors[i] : // using index value\n (colors.length > 0) ? colors[colors.length - 1] : // using last item\n [0, 0, 0, 1]; // using black\n } else {\n acolor = bcolor = colors\n }\n\n if (acolor.length === 3) {\n acolor = [acolor[0], acolor[1], acolor[2], 1]\n }\n if (bcolor.length === 3) {\n bcolor = [bcolor[0], bcolor[1], bcolor[2], 1]\n }\n\n if(!this.hasAlpha && acolor[3] < 1) this.hasAlpha = true\n\n var w0\n if (Array.isArray(lineWidth)) {\n w0 = (lineWidth.length > i - 1) ? lineWidth[i - 1] : // using index value\n (lineWidth.length > 0) ? lineWidth[lineWidth.length - 1] : // using last item\n [0, 0, 0, 1]; // using black\n } else {\n w0 = lineWidth\n }\n\n var t0 = arcLength\n arcLength += distance(a, b)\n\n if (hadGap) {\n for (j = 0; j < 2; ++j) {\n buffer.push(\n a[0], a[1], a[2], b[0], b[1], b[2], t0, w0, acolor[0], acolor[1], acolor[2], acolor[3])\n }\n vertexCount += 2\n hadGap = false\n }\n\n buffer.push(\n a[0], a[1], a[2], b[0], b[1], b[2], t0, w0, acolor[0], acolor[1], acolor[2], acolor[3],\n a[0], a[1], a[2], b[0], b[1], b[2], t0, -w0, acolor[0], acolor[1], acolor[2], acolor[3],\n b[0], b[1], b[2], a[0], a[1], a[2], arcLength, -w0, bcolor[0], bcolor[1], bcolor[2], bcolor[3],\n b[0], b[1], b[2], a[0], a[1], a[2], arcLength, w0, bcolor[0], bcolor[1], bcolor[2], bcolor[3])\n\n vertexCount += 4\n }\n }\n this.buffer.update(buffer)\n\n arcLengthArray.push(arcLength)\n pointArray.push(positions[positions.length - 1].slice())\n\n this.bounds = bounds\n\n this.vertexCount = vertexCount\n\n this.points = pointArray\n this.arcLength = arcLengthArray\n\n if ('dashes' in options) {\n var dashArray = options.dashes\n\n // Calculate prefix sum\n var prefixSum = dashArray.slice()\n prefixSum.unshift(0)\n for (i = 1; i < prefixSum.length; ++i) {\n prefixSum[i] = prefixSum[i - 1] + prefixSum[i]\n }\n\n var dashTexture = ndarray(new Array(256 * 4), [256, 1, 4])\n for (i = 0; i < 256; ++i) {\n for (j = 0; j < 4; ++j) {\n dashTexture.set(i, 0, j, 0)\n }\n if (bsearch.le(prefixSum, prefixSum[prefixSum.length - 1] * i / 255.0) & 1) {\n dashTexture.set(i, 0, 0, 0)\n } else {\n dashTexture.set(i, 0, 0, 255)\n }\n }\n\n this.texture.setPixels(dashTexture)\n }\n}\n\nproto.dispose = function () {\n this.shader.dispose()\n this.vao.dispose()\n this.buffer.dispose()\n}\n\nproto.pick = function (selection) {\n if (!selection) {\n return null\n }\n if (selection.id !== this.pickId) {\n return null\n }\n var tau = unpackFloat(\n selection.value[0],\n selection.value[1],\n selection.value[2],\n 0)\n var index = bsearch.le(this.arcLength, tau)\n if (index < 0) {\n return null\n }\n if (index === this.arcLength.length - 1) {\n return new PickResult(\n this.arcLength[this.arcLength.length - 1],\n this.points[this.points.length - 1].slice(),\n index)\n }\n var a = this.points[index]\n var b = this.points[Math.min(index + 1, this.points.length - 1)]\n var t = (tau - this.arcLength[index]) / (this.arcLength[index + 1] - this.arcLength[index])\n var ti = 1.0 - t\n var x = [0, 0, 0]\n for (var i = 0; i < 3; ++i) {\n x[i] = ti * a[i] + t * b[i]\n }\n var dataIndex = Math.min((t < 0.5) ? index : (index + 1), this.points.length - 1)\n return new PickResult(\n tau,\n x,\n dataIndex,\n this.points[dataIndex])\n}\n\nfunction createLinePlot (options) {\n var gl = options.gl || (options.scene && options.scene.gl)\n\n var shader = createShader(gl)\n shader.attributes.position.location = 0\n shader.attributes.nextPosition.location = 1\n shader.attributes.arcLength.location = 2\n shader.attributes.lineWidth.location = 3\n shader.attributes.color.location = 4\n\n var pickShader = createPickShader(gl)\n pickShader.attributes.position.location = 0\n pickShader.attributes.nextPosition.location = 1\n pickShader.attributes.arcLength.location = 2\n pickShader.attributes.lineWidth.location = 3\n pickShader.attributes.color.location = 4\n\n var buffer = createBuffer(gl)\n var vao = createVAO(gl, [\n {\n 'buffer': buffer,\n 'size': 3,\n 'offset': 0,\n 'stride': 48\n },\n {\n 'buffer': buffer,\n 'size': 3,\n 'offset': 12,\n 'stride': 48\n },\n {\n 'buffer': buffer,\n 'size': 1,\n 'offset': 24,\n 'stride': 48\n },\n {\n 'buffer': buffer,\n 'size': 1,\n 'offset': 28,\n 'stride': 48\n },\n {\n 'buffer': buffer,\n 'size': 4,\n 'offset': 32,\n 'stride': 48\n }\n ])\n\n // Create texture for dash pattern\n var defaultTexture = ndarray(new Array(256 * 4), [256, 1, 4])\n for (var i = 0; i < 256 * 4; ++i) {\n defaultTexture.data[i] = 255\n }\n var texture = createTexture(gl, defaultTexture)\n texture.wrap = gl.REPEAT\n\n var linePlot = new LinePlot(gl, shader, pickShader, buffer, vao, texture)\n linePlot.update(options)\n return linePlot\n}\n\n\n/***/ }),\n\n/***/ \"0054\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar colorscaleCalc = __webpack_require__(\"3aa8\");\n\n\n// Compute auto-z and autocolorscale if applicable\nmodule.exports = function calc(gd, trace) {\n if(trace.surfacecolor) {\n colorscaleCalc(gd, trace, {\n vals: trace.surfacecolor,\n containerStr: '',\n cLetter: 'c'\n });\n } else {\n colorscaleCalc(gd, trace, {\n vals: trace.z,\n containerStr: '',\n cLetter: 'c'\n });\n }\n};\n\n\n/***/ }),\n\n/***/ \"0082\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar NOTEDATA = [];\n\n/**\n * notifier\n * @param {String} text The person's user name\n * @param {Number} [delay=1000] The delay time in milliseconds\n * or 'long' which provides 2000 ms delay time.\n * @return {undefined} this function does not return a value\n */\nmodule.exports = function(text, displayLength) {\n if(NOTEDATA.indexOf(text) !== -1) return;\n\n NOTEDATA.push(text);\n\n var ts = 1000;\n if(isNumeric(displayLength)) ts = displayLength;\n else if(displayLength === 'long') ts = 3000;\n\n var notifierContainer = d3.select('body')\n .selectAll('.plotly-notifier')\n .data([0]);\n notifierContainer.enter()\n .append('div')\n .classed('plotly-notifier', true);\n\n var notes = notifierContainer.selectAll('.notifier-note').data(NOTEDATA);\n\n function killNote(transition) {\n transition\n .duration(700)\n .style('opacity', 0)\n .each('end', function(thisText) {\n var thisIndex = NOTEDATA.indexOf(thisText);\n if(thisIndex !== -1) NOTEDATA.splice(thisIndex, 1);\n d3.select(this).remove();\n });\n }\n\n notes.enter().append('div')\n .classed('notifier-note', true)\n .style('opacity', 0)\n .each(function(thisText) {\n var note = d3.select(this);\n\n note.append('button')\n .classed('notifier-close', true)\n .html('×')\n .on('click', function() {\n note.transition().call(killNote);\n });\n\n var p = note.append('p');\n var lines = thisText.split(//g);\n for(var i = 0; i < lines.length; i++) {\n if(i) p.append('br');\n p.append('span').text(lines[i]);\n }\n\n if(displayLength === 'stick') {\n note.transition()\n .duration(350)\n .style('opacity', 1);\n } else {\n note.transition()\n .duration(700)\n .style('opacity', 1)\n .transition()\n .delay(ts)\n .call(killNote);\n }\n });\n};\n\n\n/***/ }),\n\n/***/ \"00bd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar LINKEDFILLS = {tonextx: 1, tonexty: 1, tonext: 1};\n\nmodule.exports = function linkTraces(gd, plotinfo, cdscatter) {\n var trace, i, group, prevtrace, groupIndex;\n\n // first sort traces to keep stacks & filled-together groups together\n var groupIndices = {};\n var needsSort = false;\n var prevGroupIndex = -1;\n var nextGroupIndex = 0;\n var prevUnstackedGroupIndex = -1;\n for(i = 0; i < cdscatter.length; i++) {\n trace = cdscatter[i][0].trace;\n group = trace.stackgroup || '';\n if(group) {\n if(group in groupIndices) {\n groupIndex = groupIndices[group];\n } else {\n groupIndex = groupIndices[group] = nextGroupIndex;\n nextGroupIndex++;\n }\n } else if(trace.fill in LINKEDFILLS && prevUnstackedGroupIndex >= 0) {\n groupIndex = prevUnstackedGroupIndex;\n } else {\n groupIndex = prevUnstackedGroupIndex = nextGroupIndex;\n nextGroupIndex++;\n }\n\n if(groupIndex < prevGroupIndex) needsSort = true;\n trace._groupIndex = prevGroupIndex = groupIndex;\n }\n\n var cdscatterSorted = cdscatter.slice();\n if(needsSort) {\n cdscatterSorted.sort(function(a, b) {\n var traceA = a[0].trace;\n var traceB = b[0].trace;\n return (traceA._groupIndex - traceB._groupIndex) ||\n (traceA.index - traceB.index);\n });\n }\n\n // now link traces to each other\n var prevtraces = {};\n for(i = 0; i < cdscatterSorted.length; i++) {\n trace = cdscatterSorted[i][0].trace;\n group = trace.stackgroup || '';\n\n // Note: The check which ensures all cdscatter here are for the same axis and\n // are either cartesian or scatterternary has been removed. This code assumes\n // the passed scattertraces have been filtered to the proper plot types and\n // the proper subplots.\n if(trace.visible === true) {\n trace._nexttrace = null;\n\n if(trace.fill in LINKEDFILLS) {\n prevtrace = prevtraces[group];\n trace._prevtrace = prevtrace || null;\n\n if(prevtrace) {\n prevtrace._nexttrace = trace;\n }\n }\n\n trace._ownfill = (trace.fill && (\n trace.fill.substr(0, 6) === 'tozero' ||\n trace.fill === 'toself' ||\n (trace.fill.substr(0, 2) === 'to' && !trace._prevtrace)\n ));\n\n prevtraces[group] = trace;\n } else {\n trace._prevtrace = trace._nexttrace = trace._ownfill = null;\n }\n }\n\n return cdscatterSorted;\n};\n\n\n/***/ }),\n\n/***/ \"00fe\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n moduleType: 'trace',\n name: 'ohlc',\n basePlotModule: __webpack_require__(\"91cd\"),\n categories: ['cartesian', 'svg', 'showLegend'],\n meta: {\n \n },\n\n attributes: __webpack_require__(\"6657\"),\n supplyDefaults: __webpack_require__(\"9143\"),\n calc: __webpack_require__(\"bb14\").calc,\n plot: __webpack_require__(\"a56d\"),\n style: __webpack_require__(\"b0f1\"),\n hoverPoints: __webpack_require__(\"d945\").hoverPoints,\n selectPoints: __webpack_require__(\"ab9c\")\n};\n\n\n/***/ }),\n\n/***/ \"0103\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/** @module color-normalize */\r\n\r\n\r\n\r\nvar rgba = __webpack_require__(\"7f20\")\r\nvar clamp = __webpack_require__(\"53a5\")\r\nvar dtype = __webpack_require__(\"7831\")\r\n\r\nmodule.exports = function normalize (color, type) {\r\n\tif (type === 'float' || !type) type = 'array'\r\n\tif (type === 'uint') type = 'uint8'\r\n\tif (type === 'uint_clamped') type = 'uint8_clamped'\r\n\tvar Ctor = dtype(type)\r\n\tvar output = new Ctor(4)\r\n\r\n\tvar normalize = type !== 'uint8' && type !== 'uint8_clamped'\r\n\r\n\t// attempt to parse non-array arguments\r\n\tif (!color.length || typeof color === 'string') {\r\n\t\tcolor = rgba(color)\r\n\t\tcolor[0] /= 255\r\n\t\tcolor[1] /= 255\r\n\t\tcolor[2] /= 255\r\n\t}\r\n\r\n\t// 0, 1 are possible contradictory values for Arrays:\r\n\t// [1,1,1] input gives [1,1,1] output instead of [1/255,1/255,1/255], which may be collision if input is meant to be uint.\r\n\t// converting [1,1,1] to [1/255,1/255,1/255] in case of float input gives larger mistake since [1,1,1] float is frequent edge value, whereas [0,1,1], [1,1,1] etc. uint inputs are relatively rare\r\n\tif (isInt(color)) {\r\n\t\toutput[0] = color[0]\r\n\t\toutput[1] = color[1]\r\n\t\toutput[2] = color[2]\r\n\t\toutput[3] = color[3] != null ? color[3] : 255\r\n\r\n\t\tif (normalize) {\r\n\t\t\toutput[0] /= 255\r\n\t\t\toutput[1] /= 255\r\n\t\t\toutput[2] /= 255\r\n\t\t\toutput[3] /= 255\r\n\t\t}\r\n\r\n\t\treturn output\r\n\t}\r\n\r\n\tif (!normalize) {\r\n\t\toutput[0] = clamp(Math.floor(color[0] * 255), 0, 255)\r\n\t\toutput[1] = clamp(Math.floor(color[1] * 255), 0, 255)\r\n\t\toutput[2] = clamp(Math.floor(color[2] * 255), 0, 255)\r\n\t\toutput[3] = color[3] == null ? 255 : clamp(Math.floor(color[3] * 255), 0, 255)\r\n\t} else {\r\n\t\toutput[0] = color[0]\r\n\t\toutput[1] = color[1]\r\n\t\toutput[2] = color[2]\r\n\t\toutput[3] = color[3] != null ? color[3] : 1\r\n\t}\r\n\r\n\treturn output\r\n}\r\n\r\nfunction isInt(color) {\r\n\tif (color instanceof Uint8Array || color instanceof Uint8ClampedArray) return true\r\n\r\n\tif (Array.isArray(color) &&\r\n\t\t(color[0] > 1 || color[0] === 0) &&\r\n\t\t(color[1] > 1 || color[1] === 0) &&\r\n\t\t(color[2] > 1 || color[2] === 0) &&\r\n\t\t(!color[3] || color[3] > 1)\r\n\t) return true\r\n\r\n\treturn false\r\n}\r\n\n\n/***/ }),\n\n/***/ \"0119\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n//This code is extracted from ndarray-sort\n//It is inlined here as a temporary workaround\n\nmodule.exports = wrapper;\n\nvar INSERT_SORT_CUTOFF = 32\n\nfunction wrapper(data, n0) {\n if (n0 <= 4*INSERT_SORT_CUTOFF) {\n insertionSort(0, n0 - 1, data);\n } else {\n quickSort(0, n0 - 1, data);\n }\n}\n\nfunction insertionSort(left, right, data) {\n var ptr = 2*(left+1)\n for(var i=left+1; i<=right; ++i) {\n var a = data[ptr++]\n var b = data[ptr++]\n var j = i\n var jptr = ptr-2\n while(j-- > left) {\n var x = data[jptr-2]\n var y = data[jptr-1]\n if(x < a) {\n break\n } else if(x === a && y < b) {\n break\n }\n data[jptr] = x\n data[jptr+1] = y\n jptr -= 2\n }\n data[jptr] = a\n data[jptr+1] = b\n }\n}\n\nfunction swap(i, j, data) {\n i *= 2\n j *= 2\n var x = data[i]\n var y = data[i+1]\n data[i] = data[j]\n data[i+1] = data[j+1]\n data[j] = x\n data[j+1] = y\n}\n\nfunction move(i, j, data) {\n i *= 2\n j *= 2\n data[i] = data[j]\n data[i+1] = data[j+1]\n}\n\nfunction rotate(i, j, k, data) {\n i *= 2\n j *= 2\n k *= 2\n var x = data[i]\n var y = data[i+1]\n data[i] = data[j]\n data[i+1] = data[j+1]\n data[j] = data[k]\n data[j+1] = data[k+1]\n data[k] = x\n data[k+1] = y\n}\n\nfunction shufflePivot(i, j, px, py, data) {\n i *= 2\n j *= 2\n data[i] = data[j]\n data[j] = px\n data[i+1] = data[j+1]\n data[j+1] = py\n}\n\nfunction compare(i, j, data) {\n i *= 2\n j *= 2\n var x = data[i],\n y = data[j]\n if(x < y) {\n return false\n } else if(x === y) {\n return data[i+1] > data[j+1]\n }\n return true\n}\n\nfunction comparePivot(i, y, b, data) {\n i *= 2\n var x = data[i]\n if(x < y) {\n return true\n } else if(x === y) {\n return data[i+1] < b\n }\n return false\n}\n\nfunction quickSort(left, right, data) {\n var sixth = (right - left + 1) / 6 | 0, \n index1 = left + sixth, \n index5 = right - sixth, \n index3 = left + right >> 1, \n index2 = index3 - sixth, \n index4 = index3 + sixth, \n el1 = index1, \n el2 = index2, \n el3 = index3, \n el4 = index4, \n el5 = index5, \n less = left + 1, \n great = right - 1, \n tmp = 0\n if(compare(el1, el2, data)) {\n tmp = el1\n el1 = el2\n el2 = tmp\n }\n if(compare(el4, el5, data)) {\n tmp = el4\n el4 = el5\n el5 = tmp\n }\n if(compare(el1, el3, data)) {\n tmp = el1\n el1 = el3\n el3 = tmp\n }\n if(compare(el2, el3, data)) {\n tmp = el2\n el2 = el3\n el3 = tmp\n }\n if(compare(el1, el4, data)) {\n tmp = el1\n el1 = el4\n el4 = tmp\n }\n if(compare(el3, el4, data)) {\n tmp = el3\n el3 = el4\n el4 = tmp\n }\n if(compare(el2, el5, data)) {\n tmp = el2\n el2 = el5\n el5 = tmp\n }\n if(compare(el2, el3, data)) {\n tmp = el2\n el2 = el3\n el3 = tmp\n }\n if(compare(el4, el5, data)) {\n tmp = el4\n el4 = el5\n el5 = tmp\n }\n\n var pivot1X = data[2*el2]\n var pivot1Y = data[2*el2+1]\n var pivot2X = data[2*el4]\n var pivot2Y = data[2*el4+1]\n\n var ptr0 = 2 * el1;\n var ptr2 = 2 * el3;\n var ptr4 = 2 * el5;\n var ptr5 = 2 * index1;\n var ptr6 = 2 * index3;\n var ptr7 = 2 * index5;\n for (var i1 = 0; i1 < 2; ++i1) {\n var x = data[ptr0+i1];\n var y = data[ptr2+i1];\n var z = data[ptr4+i1];\n data[ptr5+i1] = x;\n data[ptr6+i1] = y;\n data[ptr7+i1] = z;\n }\n\n move(index2, left, data)\n move(index4, right, data)\n for (var k = less; k <= great; ++k) {\n if (comparePivot(k, pivot1X, pivot1Y, data)) {\n if (k !== less) {\n swap(k, less, data)\n }\n ++less;\n } else {\n if (!comparePivot(k, pivot2X, pivot2Y, data)) {\n while (true) {\n if (!comparePivot(great, pivot2X, pivot2Y, data)) {\n if (--great < k) {\n break;\n }\n continue;\n } else {\n if (comparePivot(great, pivot1X, pivot1Y, data)) {\n rotate(k, less, great, data)\n ++less;\n --great;\n } else {\n swap(k, great, data)\n --great;\n }\n break;\n }\n }\n }\n }\n }\n shufflePivot(left, less-1, pivot1X, pivot1Y, data)\n shufflePivot(right, great+1, pivot2X, pivot2Y, data)\n if (less - 2 - left <= INSERT_SORT_CUTOFF) {\n insertionSort(left, less - 2, data);\n } else {\n quickSort(left, less - 2, data);\n }\n if (right - (great + 2) <= INSERT_SORT_CUTOFF) {\n insertionSort(great + 2, right, data);\n } else {\n quickSort(great + 2, right, data);\n }\n if (great - less <= INSERT_SORT_CUTOFF) {\n insertionSort(less, great, data);\n } else {\n quickSort(less, great, data);\n }\n}\n\n/***/ }),\n\n/***/ \"014c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nmodule.exports = {\n circle: '●',\n 'circle-open': '○',\n square: '■',\n 'square-open': '□',\n diamond: '◆',\n 'diamond-open': '◇',\n cross: '+',\n x: '❌'\n};\n\n\n/***/ }),\n\n/***/ \"019a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n/* eslint block-scoped-var: 0*/\n/* eslint no-redeclare: 0*/\n\n\n\nmodule.exports = computeTickMarks;\n\nvar Axes = __webpack_require__(\"0642\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar AXES_NAMES = ['xaxis', 'yaxis', 'zaxis'];\n\nvar centerPoint = [0, 0, 0];\n\nfunction contourLevelsFromTicks(ticks) {\n var result = new Array(3);\n for(var i = 0; i < 3; ++i) {\n var tlevel = ticks[i];\n var clevel = new Array(tlevel.length);\n for(var j = 0; j < tlevel.length; ++j) {\n clevel[j] = tlevel[j].x;\n }\n result[i] = clevel;\n }\n return result;\n}\n\nfunction computeTickMarks(scene) {\n var axesOptions = scene.axesOptions;\n var glRange = scene.glplot.axesPixels;\n var sceneLayout = scene.fullSceneLayout;\n\n var ticks = [[], [], []];\n\n for(var i = 0; i < 3; ++i) {\n var axes = sceneLayout[AXES_NAMES[i]];\n\n axes._length = (glRange[i].hi - glRange[i].lo) *\n glRange[i].pixelsPerDataUnit / scene.dataScale[i];\n\n if(Math.abs(axes._length) === Infinity ||\n isNaN(axes._length)) {\n ticks[i] = [];\n } else {\n axes._input_range = axes.range.slice();\n axes.range[0] = (glRange[i].lo) / scene.dataScale[i];\n axes.range[1] = (glRange[i].hi) / scene.dataScale[i];\n axes._m = 1.0 / (scene.dataScale[i] * glRange[i].pixelsPerDataUnit);\n\n if(axes.range[0] === axes.range[1]) {\n axes.range[0] -= 1;\n axes.range[1] += 1;\n }\n // this is necessary to short-circuit the 'y' handling\n // in autotick part of calcTicks... Treating all axes as 'y' in this case\n // running the autoticks here, then setting\n // autoticks to false to get around the 2D handling in calcTicks.\n var tickModeCached = axes.tickmode;\n if(axes.tickmode === 'auto') {\n axes.tickmode = 'linear';\n var nticks = axes.nticks || Lib.constrain((axes._length / 40), 4, 9);\n Axes.autoTicks(axes, Math.abs(axes.range[1] - axes.range[0]) / nticks);\n }\n var dataTicks = Axes.calcTicks(axes);\n for(var j = 0; j < dataTicks.length; ++j) {\n dataTicks[j].x = dataTicks[j].x * scene.dataScale[i];\n\n if(axes.type === 'date') {\n dataTicks[j].text =\n dataTicks[j].text.replace(/\\/g, ' ');\n }\n }\n ticks[i] = dataTicks;\n\n\n axes.tickmode = tickModeCached;\n }\n }\n\n axesOptions.ticks = ticks;\n\n // Calculate tick lengths dynamically\n for(var i = 0; i < 3; ++i) {\n centerPoint[i] = 0.5 * (scene.glplot.bounds[0][i] + scene.glplot.bounds[1][i]);\n for(var j = 0; j < 2; ++j) {\n axesOptions.bounds[j][i] = scene.glplot.bounds[j][i];\n }\n }\n\n scene.contourLevels = contourLevelsFromTicks(ticks);\n}\n\n\n/***/ }),\n\n/***/ \"01db\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"b964\");\n\n\n/***/ }),\n\n/***/ \"0230\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* http://keith-wood.name/calendars.html\n Calendars for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar assign = __webpack_require__(\"320c\");\n\n\nfunction Calendars() {\n this.regionalOptions = [];\n this.regionalOptions[''] = {\n invalidCalendar: 'Calendar {0} not found',\n invalidDate: 'Invalid {0} date',\n invalidMonth: 'Invalid {0} month',\n invalidYear: 'Invalid {0} year',\n differentCalendars: 'Cannot mix {0} and {1} dates'\n };\n this.local = this.regionalOptions[''];\n this.calendars = {};\n this._localCals = {};\n}\n\n/** Create the calendars plugin.\n

Provides support for various world calendars in a consistent manner.

\n @class Calendars\n @example _exports.instance('julian').newDate(2014, 12, 25) */\nassign(Calendars.prototype, {\n\n /** Obtain a calendar implementation and localisation.\n @memberof Calendars\n @param [name='gregorian'] {string} The name of the calendar, e.g. 'gregorian', 'persian', 'islamic'.\n @param [language=''] {string} The language code to use for localisation (default is English).\n @return {Calendar} The calendar and localisation.\n @throws Error if calendar not found. */\n instance: function(name, language) {\n name = (name || 'gregorian').toLowerCase();\n language = language || '';\n var cal = this._localCals[name + '-' + language];\n if (!cal && this.calendars[name]) {\n cal = new this.calendars[name](language);\n this._localCals[name + '-' + language] = cal;\n }\n if (!cal) {\n throw (this.local.invalidCalendar || this.regionalOptions[''].invalidCalendar).\n replace(/\\{0\\}/, name);\n }\n return cal;\n },\n\n /** Create a new date - for today if no other parameters given.\n @memberof Calendars\n @param year {CDate|number} The date to copy or the year for the date.\n @param [month] {number} The month for the date.\n @param [day] {number} The day for the date.\n @param [calendar='gregorian'] {BaseCalendar|string} The underlying calendar or the name of the calendar.\n @param [language=''] {string} The language to use for localisation (default English).\n @return {CDate} The new date.\n @throws Error if an invalid date. */\n newDate: function(year, month, day, calendar, language) {\n calendar = (year != null && year.year ? year.calendar() : (typeof calendar === 'string' ?\n this.instance(calendar, language) : calendar)) || this.instance();\n return calendar.newDate(year, month, day);\n },\n \n /** A simple digit substitution function for localising numbers via the Calendar digits option.\n @member Calendars\n @param digits {string[]} The substitute digits, for 0 through 9.\n @return {function} The substitution function. */\n substituteDigits: function(digits) {\n return function(value) {\n return (value + '').replace(/[0-9]/g, function(digit) {\n return digits[digit];\n });\n }\n },\n \n /** Digit substitution function for localising Chinese style numbers via the Calendar digits option.\n @member Calendars\n @param digits {string[]} The substitute digits, for 0 through 9.\n @param powers {string[]} The characters denoting powers of 10, i.e. 1, 10, 100, 1000.\n @return {function} The substitution function. */\n substituteChineseDigits: function(digits, powers) {\n return function(value) {\n var localNumber = '';\n var power = 0;\n while (value > 0) {\n var units = value % 10;\n localNumber = (units === 0 ? '' : digits[units] + powers[power]) + localNumber;\n power++;\n value = Math.floor(value / 10);\n }\n if (localNumber.indexOf(digits[1] + powers[1]) === 0) {\n localNumber = localNumber.substr(1);\n }\n return localNumber || digits[0];\n }\n }\n});\n\n/** Generic date, based on a particular calendar.\n @class CDate\n @param calendar {BaseCalendar} The underlying calendar implementation.\n @param year {number} The year for this date.\n @param month {number} The month for this date.\n @param day {number} The day for this date.\n @return {CDate} The date object.\n @throws Error if an invalid date. */\nfunction CDate(calendar, year, month, day) {\n this._calendar = calendar;\n this._year = year;\n this._month = month;\n this._day = day;\n if (this._calendar._validateLevel === 0 &&\n !this._calendar.isValid(this._year, this._month, this._day)) {\n throw (_exports.local.invalidDate || _exports.regionalOptions[''].invalidDate).\n replace(/\\{0\\}/, this._calendar.local.name);\n }\n}\n\n/** Pad a numeric value with leading zeroes.\n @private\n @param value {number} The number to format.\n @param length {number} The minimum length.\n @return {string} The formatted number. */\nfunction pad(value, length) {\n value = '' + value;\n return '000000'.substring(0, length - value.length) + value;\n}\n\nassign(CDate.prototype, {\n\n /** Create a new date.\n @memberof CDate\n @param [year] {CDate|number} The date to copy or the year for the date (default this date).\n @param [month] {number} The month for the date.\n @param [day] {number} The day for the date.\n @return {CDate} The new date.\n @throws Error if an invalid date. */\n newDate: function(year, month, day) {\n return this._calendar.newDate((year == null ? this : year), month, day);\n },\n\n /** Set or retrieve the year for this date.\n @memberof CDate\n @param [year] {number} The year for the date.\n @return {number|CDate} The date's year (if no parameter) or the updated date.\n @throws Error if an invalid date. */\n year: function(year) {\n return (arguments.length === 0 ? this._year : this.set(year, 'y'));\n },\n\n /** Set or retrieve the month for this date.\n @memberof CDate\n @param [month] {number} The month for the date.\n @return {number|CDate} The date's month (if no parameter) or the updated date.\n @throws Error if an invalid date. */\n month: function(month) {\n return (arguments.length === 0 ? this._month : this.set(month, 'm'));\n },\n\n /** Set or retrieve the day for this date.\n @memberof CDate\n @param [day] {number} The day for the date.\n @return {number|CData} The date's day (if no parameter) or the updated date.\n @throws Error if an invalid date. */\n day: function(day) {\n return (arguments.length === 0 ? this._day : this.set(day, 'd'));\n },\n\n /** Set new values for this date.\n @memberof CDate\n @param year {number} The year for the date.\n @param month {number} The month for the date.\n @param day {number} The day for the date.\n @return {CDate} The updated date.\n @throws Error if an invalid date. */\n date: function(year, month, day) {\n if (!this._calendar.isValid(year, month, day)) {\n throw (_exports.local.invalidDate || _exports.regionalOptions[''].invalidDate).\n replace(/\\{0\\}/, this._calendar.local.name);\n }\n this._year = year;\n this._month = month;\n this._day = day;\n return this;\n },\n\n /** Determine whether this date is in a leap year.\n @memberof CDate\n @return {boolean} true if this is a leap year, false if not. */\n leapYear: function() {\n return this._calendar.leapYear(this);\n },\n\n /** Retrieve the epoch designator for this date, e.g. BCE or CE.\n @memberof CDate\n @return {string} The current epoch. */\n epoch: function() {\n return this._calendar.epoch(this);\n },\n\n /** Format the year, if not a simple sequential number.\n @memberof CDate\n @return {string} The formatted year. */\n formatYear: function() {\n return this._calendar.formatYear(this);\n },\n\n /** Retrieve the month of the year for this date,\n i.e. the month's position within a numbered year.\n @memberof CDate\n @return {number} The month of the year: minMonth to months per year. */\n monthOfYear: function() {\n return this._calendar.monthOfYear(this);\n },\n\n /** Retrieve the week of the year for this date.\n @memberof CDate\n @return {number} The week of the year: 1 to weeks per year. */\n weekOfYear: function() {\n return this._calendar.weekOfYear(this);\n },\n\n /** Retrieve the number of days in the year for this date.\n @memberof CDate\n @return {number} The number of days in this year. */\n daysInYear: function() {\n return this._calendar.daysInYear(this);\n },\n\n /** Retrieve the day of the year for this date.\n @memberof CDate\n @return {number} The day of the year: 1 to days per year. */\n dayOfYear: function() {\n return this._calendar.dayOfYear(this);\n },\n\n /** Retrieve the number of days in the month for this date.\n @memberof CDate\n @return {number} The number of days. */\n daysInMonth: function() {\n return this._calendar.daysInMonth(this);\n },\n\n /** Retrieve the day of the week for this date.\n @memberof CDate\n @return {number} The day of the week: 0 to number of days - 1. */\n dayOfWeek: function() {\n return this._calendar.dayOfWeek(this);\n },\n\n /** Determine whether this date is a week day.\n @memberof CDate\n @return {boolean} true if a week day, false if not. */\n weekDay: function() {\n return this._calendar.weekDay(this);\n },\n\n /** Retrieve additional information about this date.\n @memberof CDate\n @return {object} Additional information - contents depends on calendar. */\n extraInfo: function() {\n return this._calendar.extraInfo(this);\n },\n\n /** Add period(s) to a date.\n @memberof CDate\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date. */\n add: function(offset, period) {\n return this._calendar.add(this, offset, period);\n },\n\n /** Set a portion of the date.\n @memberof CDate\n @param value {number} The new value for the period.\n @param period {string} One of 'y' for year, 'm' for month, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if not a valid date. */\n set: function(value, period) {\n return this._calendar.set(this, value, period);\n },\n\n /** Compare this date to another date.\n @memberof CDate\n @param date {CDate} The other date.\n @return {number} -1 if this date is before the other date,\n 0 if they are equal, or +1 if this date is after the other date. */\n compareTo: function(date) {\n if (this._calendar.name !== date._calendar.name) {\n throw (_exports.local.differentCalendars || _exports.regionalOptions[''].differentCalendars).\n replace(/\\{0\\}/, this._calendar.local.name).replace(/\\{1\\}/, date._calendar.local.name);\n }\n var c = (this._year !== date._year ? this._year - date._year :\n this._month !== date._month ? this.monthOfYear() - date.monthOfYear() :\n this._day - date._day);\n return (c === 0 ? 0 : (c < 0 ? -1 : +1));\n },\n\n /** Retrieve the calendar backing this date.\n @memberof CDate\n @return {BaseCalendar} The calendar implementation. */\n calendar: function() {\n return this._calendar;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof CDate\n @return {number} The equivalent Julian date. */\n toJD: function() {\n return this._calendar.toJD(this);\n },\n\n /** Create a new date from a Julian date.\n @memberof CDate\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n return this._calendar.fromJD(jd);\n },\n\n /** Convert this date to a standard (Gregorian) JavaScript Date.\n @memberof CDate\n @return {Date} The equivalent JavaScript date. */\n toJSDate: function() {\n return this._calendar.toJSDate(this);\n },\n\n /** Create a new date from a standard (Gregorian) JavaScript Date.\n @memberof CDate\n @param jsd {Date} The JavaScript date to convert.\n @return {CDate} The equivalent date. */\n fromJSDate: function(jsd) {\n return this._calendar.fromJSDate(jsd);\n },\n\n /** Convert to a string for display.\n @memberof CDate\n @return {string} This date as a string. */\n toString: function() {\n return (this.year() < 0 ? '-' : '') + pad(Math.abs(this.year()), 4) +\n '-' + pad(this.month(), 2) + '-' + pad(this.day(), 2);\n }\n});\n\n/** Basic functionality for all calendars.\n Other calendars should extend this:\n
OtherCalendar.prototype = new BaseCalendar;
\n @class BaseCalendar */\nfunction BaseCalendar() {\n this.shortYearCutoff = '+10';\n}\n\nassign(BaseCalendar.prototype, {\n _validateLevel: 0, // \"Stack\" to turn validation on/off\n\n /** Create a new date within this calendar - today if no parameters given.\n @memberof BaseCalendar\n @param year {CDate|number} The date to duplicate or the year for the date.\n @param [month] {number} The month for the date.\n @param [day] {number} The day for the date.\n @return {CDate} The new date.\n @throws Error if not a valid date or a different calendar used. */\n newDate: function(year, month, day) {\n if (year == null) {\n return this.today();\n }\n if (year.year) {\n this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n day = year.day();\n month = year.month();\n year = year.year();\n }\n return new CDate(this, year, month, day);\n },\n\n /** Create a new date for today.\n @memberof BaseCalendar\n @return {CDate} Today's date. */\n today: function() {\n return this.fromJSDate(new Date());\n },\n\n /** Retrieve the epoch designator for this date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {string} The current epoch.\n @throws Error if an invalid year or a different calendar used. */\n epoch: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear);\n return (date.year() < 0 ? this.local.epochs[0] : this.local.epochs[1]);\n },\n\n /** Format the year, if not a simple sequential number\n @memberof BaseCalendar\n @param year {CDate|number} The date to format or the year to format.\n @return {string} The formatted year.\n @throws Error if an invalid year or a different calendar used. */\n formatYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear);\n return (date.year() < 0 ? '-' : '') + pad(Math.abs(date.year()), 4)\n },\n\n /** Retrieve the number of months in a year.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n this._validate(year, this.minMonth, this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear);\n return 12;\n },\n\n /** Calculate the month's ordinal position within the year -\n for those calendars that don't start at month 1!\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param month {number} The month to examine.\n @return {number} The ordinal position, starting from minMonth.\n @throws Error if an invalid year/month or a different calendar used. */\n monthOfYear: function(year, month) {\n var date = this._validate(year, month, this.minDay,\n _exports.local.invalidMonth || _exports.regionalOptions[''].invalidMonth);\n return (date.month() + this.monthsInYear(date) - this.firstMonth) %\n this.monthsInYear(date) + this.minMonth;\n },\n\n /** Calculate actual month from ordinal position, starting from minMonth.\n @memberof BaseCalendar\n @param year {number} The year to examine.\n @param ord {number} The month's ordinal position.\n @return {number} The month's number.\n @throws Error if an invalid year/month. */\n fromMonthOfYear: function(year, ord) {\n var m = (ord + this.firstMonth - 2 * this.minMonth) %\n this.monthsInYear(year) + this.minMonth;\n this._validate(year, m, this.minDay,\n _exports.local.invalidMonth || _exports.regionalOptions[''].invalidMonth);\n return m;\n },\n\n /** Retrieve the number of days in a year.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear);\n return (this.leapYear(date) ? 366 : 365);\n },\n\n /** Retrieve the day of the year for a date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The day of the year.\n @throws Error if an invalid date or a different calendar used. */\n dayOfYear: function(year, month, day) {\n var date = this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n return date.toJD() - this.newDate(date.year(),\n this.fromMonthOfYear(date.year(), this.minMonth), this.minDay).toJD() + 1;\n },\n\n /** Retrieve the number of days in a week.\n @memberof BaseCalendar\n @return {number} The number of days. */\n daysInWeek: function() {\n return 7;\n },\n\n /** Retrieve the day of the week for a date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The day of the week: 0 to number of days - 1.\n @throws Error if an invalid date or a different calendar used. */\n dayOfWeek: function(year, month, day) {\n var date = this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n return (Math.floor(this.toJD(date)) + 2) % this.daysInWeek();\n },\n\n /** Retrieve additional information about a date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {object} Additional information - contents depends on calendar.\n @throws Error if an invalid date or a different calendar used. */\n extraInfo: function(year, month, day) {\n this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n return {};\n },\n\n /** Add period(s) to a date.\n Cater for no year zero.\n @memberof BaseCalendar\n @param date {CDate} The starting date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if a different calendar used. */\n add: function(date, offset, period) {\n this._validate(date, this.minMonth, this.minDay,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n return this._correctAdd(date, this._add(date, offset, period), offset, period);\n },\n\n /** Add period(s) to a date.\n @memberof BaseCalendar\n @private\n @param date {CDate} The starting date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date. */\n _add: function(date, offset, period) {\n this._validateLevel++;\n if (period === 'd' || period === 'w') {\n var jd = date.toJD() + offset * (period === 'w' ? this.daysInWeek() : 1);\n var d = date.calendar().fromJD(jd);\n this._validateLevel--;\n return [d.year(), d.month(), d.day()];\n }\n try {\n var y = date.year() + (period === 'y' ? offset : 0);\n var m = date.monthOfYear() + (period === 'm' ? offset : 0);\n var d = date.day();// + (period === 'd' ? offset : 0) +\n //(period === 'w' ? offset * this.daysInWeek() : 0);\n var resyncYearMonth = function(calendar) {\n while (m < calendar.minMonth) {\n y--;\n m += calendar.monthsInYear(y);\n }\n var yearMonths = calendar.monthsInYear(y);\n while (m > yearMonths - 1 + calendar.minMonth) {\n y++;\n m -= yearMonths;\n yearMonths = calendar.monthsInYear(y);\n }\n };\n if (period === 'y') {\n if (date.month() !== this.fromMonthOfYear(y, m)) { // Hebrew\n m = this.newDate(y, date.month(), this.minDay).monthOfYear();\n }\n m = Math.min(m, this.monthsInYear(y));\n d = Math.min(d, this.daysInMonth(y, this.fromMonthOfYear(y, m)));\n }\n else if (period === 'm') {\n resyncYearMonth(this);\n d = Math.min(d, this.daysInMonth(y, this.fromMonthOfYear(y, m)));\n }\n var ymd = [y, this.fromMonthOfYear(y, m), d];\n this._validateLevel--;\n return ymd;\n }\n catch (e) {\n this._validateLevel--;\n throw e;\n }\n },\n\n /** Correct a candidate date after adding period(s) to a date.\n Handle no year zero if necessary.\n @memberof BaseCalendar\n @private\n @param date {CDate} The starting date.\n @param ymd {number[]} The added date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date. */\n _correctAdd: function(date, ymd, offset, period) {\n if (!this.hasYearZero && (period === 'y' || period === 'm')) {\n if (ymd[0] === 0 || // In year zero\n (date.year() > 0) !== (ymd[0] > 0)) { // Crossed year zero\n var adj = {y: [1, 1, 'y'], m: [1, this.monthsInYear(-1), 'm'],\n w: [this.daysInWeek(), this.daysInYear(-1), 'd'],\n d: [1, this.daysInYear(-1), 'd']}[period];\n var dir = (offset < 0 ? -1 : +1);\n ymd = this._add(date, offset * adj[0] + dir * adj[1], adj[2]);\n }\n }\n return date.date(ymd[0], ymd[1], ymd[2]);\n },\n\n /** Set a portion of the date.\n @memberof BaseCalendar\n @param date {CDate} The starting date.\n @param value {number} The new value for the period.\n @param period {string} One of 'y' for year, 'm' for month, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if an invalid date or a different calendar used. */\n set: function(date, value, period) {\n this._validate(date, this.minMonth, this.minDay,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n var y = (period === 'y' ? value : date.year());\n var m = (period === 'm' ? value : date.month());\n var d = (period === 'd' ? value : date.day());\n if (period === 'y' || period === 'm') {\n d = Math.min(d, this.daysInMonth(y, m));\n }\n return date.date(y, m, d);\n },\n\n /** Determine whether a date is valid for this calendar.\n @memberof BaseCalendar\n @param year {number} The year to examine.\n @param month {number} The month to examine.\n @param day {number} The day to examine.\n @return {boolean} true if a valid date, false if not. */\n isValid: function(year, month, day) {\n this._validateLevel++;\n var valid = (this.hasYearZero || year !== 0);\n if (valid) {\n var date = this.newDate(year, month, this.minDay);\n valid = (month >= this.minMonth && month - this.minMonth < this.monthsInYear(date)) &&\n (day >= this.minDay && day - this.minDay < this.daysInMonth(date));\n }\n this._validateLevel--;\n return valid;\n },\n\n /** Convert the date to a standard (Gregorian) JavaScript Date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {Date} The equivalent JavaScript date.\n @throws Error if an invalid date or a different calendar used. */\n toJSDate: function(year, month, day) {\n var date = this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n return _exports.instance().fromJD(this.toJD(date)).toJSDate();\n },\n\n /** Convert the date from a standard (Gregorian) JavaScript Date.\n @memberof BaseCalendar\n @param jsd {Date} The JavaScript date.\n @return {CDate} The equivalent calendar date. */\n fromJSDate: function(jsd) {\n return this.fromJD(_exports.instance().fromJSDate(jsd).toJD());\n },\n\n /** Check that a candidate date is from the same calendar and is valid.\n @memberof BaseCalendar\n @private\n @param year {CDate|number} The date to validate or the year to validate.\n @param [month] {number} The month to validate.\n @param [day] {number} The day to validate.\n @param error {string} Rrror message if invalid.\n @throws Error if different calendars used or invalid date. */\n _validate: function(year, month, day, error) {\n if (year.year) {\n if (this._validateLevel === 0 && this.name !== year.calendar().name) {\n throw (_exports.local.differentCalendars || _exports.regionalOptions[''].differentCalendars).\n replace(/\\{0\\}/, this.local.name).replace(/\\{1\\}/, year.calendar().local.name);\n }\n return year;\n }\n try {\n this._validateLevel++;\n if (this._validateLevel === 1 && !this.isValid(year, month, day)) {\n throw error.replace(/\\{0\\}/, this.local.name);\n }\n var date = this.newDate(year, month, day);\n this._validateLevel--;\n return date;\n }\n catch (e) {\n this._validateLevel--;\n throw e;\n }\n }\n});\n\n/** Implementation of the Proleptic Gregorian Calendar.\n See http://en.wikipedia.org/wiki/Gregorian_calendar\n and http://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar.\n @class GregorianCalendar\n @augments BaseCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction GregorianCalendar(language) {\n this.local = this.regionalOptions[language] || this.regionalOptions[''];\n}\n\nGregorianCalendar.prototype = new BaseCalendar;\n\nassign(GregorianCalendar.prototype, {\n /** The calendar name.\n @memberof GregorianCalendar */\n name: 'Gregorian',\n /** Julian date of start of Gregorian epoch: 1 January 0001 CE.\n @memberof GregorianCalendar */\n jdEpoch: 1721425.5,\n /** Days per month in a common year.\n @memberof GregorianCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof GregorianCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof GregorianCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof GregorianCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof GregorianCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof GregorianCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Gregorian',\n epochs: ['BCE', 'CE'],\n monthNames: ['January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n digits: null,\n dateFormat: 'mm/dd/yyyy',\n firstDay: 0,\n isRTL: false\n }\n },\n \n /** Determine whether this date is in a leap year.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear);\n var year = date.year() + (date.year() < 0 ? 1 : 0); // No year zero\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n },\n\n /** Determine the week of the year for a date - ISO 8601.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year, starting from 1.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n // Find Thursday of this week starting on Monday\n var checkDate = this.newDate(year, month, day);\n checkDate.add(4 - (checkDate.dayOfWeek() || 7), 'd');\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n\n /** Retrieve the number of days in a month.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay,\n _exports.local.invalidMonth || _exports.regionalOptions[''].invalidMonth);\n return this.daysPerMonth[date.month() - 1] +\n (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n\n /** Determine whether this date is a week day.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n if (year < 0) { year++; } // No year zero\n // Jean Meeus algorithm, \"Astronomical Algorithms\", 1991\n if (month < 3) {\n month += 12;\n year--;\n }\n var a = Math.floor(year / 100);\n var b = 2 - a + Math.floor(a / 4);\n return Math.floor(365.25 * (year + 4716)) +\n Math.floor(30.6001 * (month + 1)) + day + b - 1524.5;\n },\n\n /** Create a new date from a Julian date.\n @memberof GregorianCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n // Jean Meeus algorithm, \"Astronomical Algorithms\", 1991\n var z = Math.floor(jd + 0.5);\n var a = Math.floor((z - 1867216.25) / 36524.25);\n a = z + 1 + a - Math.floor(a / 4);\n var b = a + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var e = Math.floor((b - d) / 30.6001);\n var day = b - d - Math.floor(e * 30.6001);\n var month = e - (e > 13.5 ? 13 : 1);\n var year = c - (month > 2.5 ? 4716 : 4715);\n if (year <= 0) { year--; } // No year zero\n return this.newDate(year, month, day);\n },\n\n /** Convert this date to a standard (Gregorian) JavaScript Date.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {Date} The equivalent JavaScript date.\n @throws Error if an invalid date or a different calendar used. */\n toJSDate: function(year, month, day) {\n var date = this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n var jsd = new Date(date.year(), date.month() - 1, date.day());\n jsd.setHours(0);\n jsd.setMinutes(0);\n jsd.setSeconds(0);\n jsd.setMilliseconds(0);\n // Hours may be non-zero on daylight saving cut-over:\n // > 12 when midnight changeover, but then cannot generate\n // midnight datetime, so jump to 1AM, otherwise reset.\n jsd.setHours(jsd.getHours() > 12 ? jsd.getHours() + 2 : 0);\n return jsd;\n },\n\n /** Create a new date from a standard (Gregorian) JavaScript Date.\n @memberof GregorianCalendar\n @param jsd {Date} The JavaScript date to convert.\n @return {CDate} The equivalent date. */\n fromJSDate: function(jsd) {\n return this.newDate(jsd.getFullYear(), jsd.getMonth() + 1, jsd.getDate());\n }\n});\n\n// Singleton manager\nvar _exports = module.exports = new Calendars();\n\n// Date template\n_exports.cdate = CDate;\n\n// Base calendar template\n_exports.baseCalendar = BaseCalendar;\n\n// Gregorian calendar implementation\n_exports.calendars.gregorian = GregorianCalendar;\n\n\n\n/***/ }),\n\n/***/ \"0248\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar warp = __webpack_require__(\"86d9\")\nvar invert = __webpack_require__(\"ba76\")\n\nmodule.exports = applyHomography\n\nfunction applyHomography(dest, src, Xi) {\n var n = src.dimension\n var X = invert([], Xi)\n warp(dest, src, function(out_c, inp_c) {\n for(var i=0; i fs * threshold) {\r\n\t\t\tvar emWidth = (kerningWidth - width) / fs\r\n\t\t\ttable[pair] = emWidth * 1000\r\n\t\t}\r\n\t}\r\n\r\n\treturn table\r\n}\r\n\r\n\r\nfunction createPairs (range) {\r\n\tvar pairs = []\r\n\r\n for (var i = range[0]; i <= range[1]; i++) {\r\n\t\tvar leftChar = String.fromCharCode(i)\r\n\t\tfor (var j = range[0]; j < range[1]; j++) {\r\n\t\t\tvar rightChar = String.fromCharCode(j)\r\n\t\t\tvar pair = leftChar + rightChar\r\n\r\n\t\t\tpairs.push(pair)\r\n\t\t}\r\n\t}\r\n\r\n\treturn pairs\r\n}\r\n\n\n/***/ }),\n\n/***/ \"02e4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar hover = __webpack_require__(\"98e7\");\nvar makeHoverPointText = __webpack_require__(\"efcd\").makeHoverPointText;\n\nfunction hoverPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var stash = cd[0].t;\n var rArray = stash.r;\n var thetaArray = stash.theta;\n\n var scatterPointData = hover.hoverPoints(pointData, xval, yval, hovermode);\n if(!scatterPointData || scatterPointData[0].index === false) return;\n\n var newPointData = scatterPointData[0];\n\n if(newPointData.index === undefined) {\n return scatterPointData;\n }\n\n var subplot = pointData.subplot;\n var cdi = newPointData.cd[newPointData.index];\n var trace = newPointData.trace;\n\n // augment pointData with r/theta param\n cdi.r = rArray[newPointData.index];\n cdi.theta = thetaArray[newPointData.index];\n\n if(!subplot.isPtInside(cdi)) return;\n\n newPointData.xLabelVal = undefined;\n newPointData.yLabelVal = undefined;\n makeHoverPointText(cdi, trace, subplot, newPointData);\n\n return scatterPointData;\n}\n\nmodule.exports = {\n hoverPoints: hoverPoints\n};\n\n\n/***/ }),\n\n/***/ \"02ea\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Color = __webpack_require__(\"d115\");\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar baseAttrs = __webpack_require__(\"a876\");\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\nfunction makeContourProjAttr(axLetter) {\n return {\n valType: 'boolean',\n \n dflt: false,\n \n };\n}\n\nfunction makeContourAttr(axLetter) {\n return {\n show: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n start: {\n valType: 'number',\n dflt: null,\n \n editType: 'plot',\n // impliedEdits: {'^autocontour': false},\n \n },\n end: {\n valType: 'number',\n dflt: null,\n \n editType: 'plot',\n // impliedEdits: {'^autocontour': false},\n \n },\n size: {\n valType: 'number',\n dflt: null,\n min: 0,\n \n editType: 'plot',\n // impliedEdits: {'^autocontour': false},\n \n },\n project: {\n x: makeContourProjAttr('x'),\n y: makeContourProjAttr('y'),\n z: makeContourProjAttr('z')\n },\n color: {\n valType: 'color',\n \n dflt: Color.defaultLine,\n \n },\n usecolormap: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n width: {\n valType: 'number',\n \n min: 1,\n max: 16,\n dflt: 2,\n \n },\n highlight: {\n valType: 'boolean',\n \n dflt: true,\n \n },\n highlightcolor: {\n valType: 'color',\n \n dflt: Color.defaultLine,\n \n },\n highlightwidth: {\n valType: 'number',\n \n min: 1,\n max: 16,\n dflt: 2,\n \n }\n };\n}\n\nvar attrs = module.exports = overrideAll(extendFlat({\n z: {\n valType: 'data_array',\n \n },\n x: {\n valType: 'data_array',\n \n },\n y: {\n valType: 'data_array',\n \n },\n\n text: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n \n },\n hovertext: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n \n },\n hovertemplate: hovertemplateAttrs(),\n\n connectgaps: {\n valType: 'boolean',\n dflt: false,\n \n editType: 'calc',\n \n },\n\n surfacecolor: {\n valType: 'data_array',\n \n },\n},\n\ncolorScaleAttrs('', {\n colorAttr: 'z or surfacecolor',\n showScaleDflt: true,\n autoColorDflt: false,\n editTypeOverride: 'calc'\n}), {\n contours: {\n x: makeContourAttr('x'),\n y: makeContourAttr('y'),\n z: makeContourAttr('z')\n },\n hidesurface: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n\n lightposition: {\n x: {\n valType: 'number',\n \n min: -1e5,\n max: 1e5,\n dflt: 10,\n \n },\n y: {\n valType: 'number',\n \n min: -1e5,\n max: 1e5,\n dflt: 1e4,\n \n },\n z: {\n valType: 'number',\n \n min: -1e5,\n max: 1e5,\n dflt: 0,\n \n }\n },\n\n lighting: {\n ambient: {\n valType: 'number',\n \n min: 0.00,\n max: 1.0,\n dflt: 0.8,\n \n },\n diffuse: {\n valType: 'number',\n \n min: 0.00,\n max: 1.00,\n dflt: 0.8,\n \n },\n specular: {\n valType: 'number',\n \n min: 0.00,\n max: 2.00,\n dflt: 0.05,\n \n },\n roughness: {\n valType: 'number',\n \n min: 0.00,\n max: 1.00,\n dflt: 0.5,\n \n },\n fresnel: {\n valType: 'number',\n \n min: 0.00,\n max: 5.00,\n dflt: 0.2,\n \n }\n },\n\n opacity: {\n valType: 'number',\n \n min: 0,\n max: 1,\n dflt: 1,\n \n },\n\n _deprecated: {\n zauto: extendFlat({}, colorScaleAttrs.zauto, {\n \n }),\n zmin: extendFlat({}, colorScaleAttrs.zmin, {\n \n }),\n zmax: extendFlat({}, colorScaleAttrs.zmax, {\n \n })\n },\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo),\n showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false}),\n}), 'calc', 'nested');\n\nattrs.x.editType = attrs.y.editType = attrs.z.editType = 'calc+clearAxisTypes';\nattrs.transforms = undefined;\n\n\n/***/ }),\n\n/***/ \"030a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Plotly = __webpack_require__(\"c17d\");\n\n// traces\nPlotly.register([\n __webpack_require__(\"f725\"),\n __webpack_require__(\"b7e7\"),\n __webpack_require__(\"3eab\"),\n __webpack_require__(\"4fc7\"),\n __webpack_require__(\"90a6\"),\n __webpack_require__(\"b905\"),\n __webpack_require__(\"5cc5\"),\n __webpack_require__(\"664d\"),\n __webpack_require__(\"6578\"),\n __webpack_require__(\"3efe\"),\n __webpack_require__(\"6ca5\"),\n __webpack_require__(\"831f\"),\n\n __webpack_require__(\"4746\"),\n __webpack_require__(\"21dd\"),\n __webpack_require__(\"6d0a\"),\n __webpack_require__(\"f36e\"),\n\n __webpack_require__(\"a8b9\"),\n __webpack_require__(\"372f\"),\n __webpack_require__(\"f17e\"),\n __webpack_require__(\"6626\"),\n __webpack_require__(\"0eb8\"),\n __webpack_require__(\"f522\"),\n __webpack_require__(\"2781\"),\n\n __webpack_require__(\"388d\"),\n __webpack_require__(\"c80f\"),\n\n __webpack_require__(\"46c1\"),\n __webpack_require__(\"2f68\"),\n\n __webpack_require__(\"b7bb\"),\n __webpack_require__(\"f3ca\"),\n\n __webpack_require__(\"44d4\"),\n\n __webpack_require__(\"f366\"),\n\n __webpack_require__(\"01db\"),\n __webpack_require__(\"7016\"),\n __webpack_require__(\"d47b\"),\n\n __webpack_require__(\"f846\"),\n __webpack_require__(\"aa2c\"),\n\n __webpack_require__(\"82e4\"),\n\n __webpack_require__(\"f2a9\"),\n __webpack_require__(\"bd75\"),\n __webpack_require__(\"e2f4\"),\n\n __webpack_require__(\"dff2\"),\n __webpack_require__(\"75ac\"),\n\n __webpack_require__(\"1cfc\"),\n __webpack_require__(\"ff5b\"),\n __webpack_require__(\"2d12\")\n]);\n\n// transforms\n//\n// Please note that all *transform* methods are executed before\n// all *calcTransform* methods - which could possibly lead to\n// unexpected results when applying multiple transforms of different types\n// to a given trace.\n//\n// For more info, see:\n// https://github.com/plotly/plotly.js/pull/978#pullrequestreview-2403353\n//\nPlotly.register([\n __webpack_require__(\"2594\"),\n __webpack_require__(\"4b14\"),\n __webpack_require__(\"9633\"),\n __webpack_require__(\"d2d4\")\n]);\n\n// components\nPlotly.register([\n __webpack_require__(\"e1f5\")\n]);\n\nmodule.exports = Plotly;\n\n\n/***/ }),\n\n/***/ \"0316\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Axes = __webpack_require__(\"0642\");\n\nmodule.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n\n var subplot = fullLayout[trace.subplot]._subplot;\n var ax = subplot.mockAxis;\n\n var lonlat = cdi.lonlat;\n labels.lonLabel = Axes.tickText(ax, ax.c2l(lonlat[0]), true).text;\n labels.latLabel = Axes.tickText(ax, ax.c2l(lonlat[1]), true).text;\n\n return labels;\n};\n\n\n/***/ }),\n\n/***/ \"0324\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\n\n// remove opacity for any trace that has a fill or is filled to\nmodule.exports = function crossTraceDefaults(fullData) {\n for(var i = 0; i < fullData.length; i++) {\n var tracei = fullData[i];\n if(tracei.type !== 'scatter') continue;\n\n var filli = tracei.fill;\n if(filli === 'none' || filli === 'toself') continue;\n\n tracei.opacity = undefined;\n\n if(filli === 'tonexty' || filli === 'tonextx') {\n for(var j = i - 1; j >= 0; j--) {\n var tracej = fullData[j];\n\n if((tracej.type === 'scatter') &&\n (tracej.xaxis === tracei.xaxis) &&\n (tracej.yaxis === tracei.yaxis)) {\n tracej.opacity = undefined;\n break;\n }\n }\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"0365\":\n/***/ (function(module, exports) {\n\nmodule.exports = clone;\n\n/**\n * Creates a new vec3 initialized with values from an existing vector\n *\n * @param {vec3} a vector to clone\n * @returns {vec3} a new 3D vector\n */\nfunction clone(a) {\n var out = new Float32Array(3)\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n return out\n}\n\n/***/ }),\n\n/***/ \"0366\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(\"1c0b\");\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"0379\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\n/* global MathJax:false */\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar xmlnsNamespaces = __webpack_require__(\"73c9\");\nvar LINE_SPACING = __webpack_require__(\"63dc\").LINE_SPACING;\n\n// text converter\n\nfunction getSize(_selection, _dimension) {\n return _selection.node().getBoundingClientRect()[_dimension];\n}\n\nvar FIND_TEX = /([^$]*)([$]+[^$]*[$]+)([^$]*)/;\n\nexports.convertToTspans = function(_context, gd, _callback) {\n var str = _context.text();\n\n // Until we get tex integrated more fully (so it can be used along with non-tex)\n // allow some elements to prohibit it by attaching 'data-notex' to the original\n var tex = (!_context.attr('data-notex')) &&\n (typeof MathJax !== 'undefined') &&\n str.match(FIND_TEX);\n\n var parent = d3.select(_context.node().parentNode);\n if(parent.empty()) return;\n var svgClass = (_context.attr('class')) ? _context.attr('class').split(' ')[0] : 'text';\n svgClass += '-math';\n parent.selectAll('svg.' + svgClass).remove();\n parent.selectAll('g.' + svgClass + '-group').remove();\n _context.style('display', null)\n .attr({\n // some callers use data-unformatted *from the element* in 'cancel'\n // so we need it here even if we're going to turn it into math\n // these two (plus style and text-anchor attributes) form the key we're\n // going to use for Drawing.bBox\n 'data-unformatted': str,\n 'data-math': 'N'\n });\n\n function showText() {\n if(!parent.empty()) {\n svgClass = _context.attr('class') + '-math';\n parent.select('svg.' + svgClass).remove();\n }\n _context.text('')\n .style('white-space', 'pre');\n\n var hasLink = buildSVGText(_context.node(), str);\n\n if(hasLink) {\n // at least in Chrome, pointer-events does not seem\n // to be honored in children of elements\n // so if we have an anchor, we have to make the\n // whole element respond\n _context.style('pointer-events', 'all');\n }\n\n exports.positionText(_context);\n\n if(_callback) _callback.call(_context);\n }\n\n if(tex) {\n ((gd && gd._promises) || []).push(new Promise(function(resolve) {\n _context.style('display', 'none');\n var fontSize = parseInt(_context.node().style.fontSize, 10);\n var config = {fontSize: fontSize};\n\n texToSVG(tex[2], config, function(_svgEl, _glyphDefs, _svgBBox) {\n parent.selectAll('svg.' + svgClass).remove();\n parent.selectAll('g.' + svgClass + '-group').remove();\n\n var newSvg = _svgEl && _svgEl.select('svg');\n if(!newSvg || !newSvg.node()) {\n showText();\n resolve();\n return;\n }\n\n var mathjaxGroup = parent.append('g')\n .classed(svgClass + '-group', true)\n .attr({\n 'pointer-events': 'none',\n 'data-unformatted': str,\n 'data-math': 'Y'\n });\n\n mathjaxGroup.node().appendChild(newSvg.node());\n\n // stitch the glyph defs\n if(_glyphDefs && _glyphDefs.node()) {\n newSvg.node().insertBefore(_glyphDefs.node().cloneNode(true),\n newSvg.node().firstChild);\n }\n\n newSvg.attr({\n 'class': svgClass,\n height: _svgBBox.height,\n preserveAspectRatio: 'xMinYMin meet'\n })\n .style({overflow: 'visible', 'pointer-events': 'none'});\n\n var fill = _context.node().style.fill || 'black';\n var g = newSvg.select('g');\n g.attr({fill: fill, stroke: fill});\n\n var newSvgW = getSize(g, 'width');\n var newSvgH = getSize(g, 'height');\n var newX = +_context.attr('x') - newSvgW *\n {start: 0, middle: 0.5, end: 1}[_context.attr('text-anchor') || 'start'];\n // font baseline is about 1/4 fontSize below centerline\n var textHeight = fontSize || getSize(_context, 'height');\n var dy = -textHeight / 4;\n\n if(svgClass[0] === 'y') {\n mathjaxGroup.attr({\n transform: 'rotate(' + [-90, +_context.attr('x'), +_context.attr('y')] +\n ') translate(' + [-newSvgW / 2, dy - newSvgH / 2] + ')'\n });\n newSvg.attr({x: +_context.attr('x'), y: +_context.attr('y')});\n } else if(svgClass[0] === 'l') {\n newSvg.attr({x: _context.attr('x'), y: dy - (newSvgH / 2)});\n } else if(svgClass[0] === 'a' && svgClass.indexOf('atitle') !== 0) {\n newSvg.attr({x: 0, y: dy});\n } else {\n newSvg.attr({x: newX, y: (+_context.attr('y') + dy - newSvgH / 2)});\n }\n\n if(_callback) _callback.call(_context, mathjaxGroup);\n resolve(mathjaxGroup);\n });\n }));\n } else showText();\n\n return _context;\n};\n\n\n// MathJax\n\nvar LT_MATCH = /(<|<|<)/g;\nvar GT_MATCH = /(>|>|>)/g;\n\nfunction cleanEscapesForTex(s) {\n return s.replace(LT_MATCH, '\\\\lt ')\n .replace(GT_MATCH, '\\\\gt ');\n}\n\nfunction texToSVG(_texString, _config, _callback) {\n var originalRenderer,\n originalConfig,\n originalProcessSectionDelay,\n tmpDiv;\n\n MathJax.Hub.Queue(\n function() {\n originalConfig = Lib.extendDeepAll({}, MathJax.Hub.config);\n\n originalProcessSectionDelay = MathJax.Hub.processSectionDelay;\n if(MathJax.Hub.processSectionDelay !== undefined) {\n // MathJax 2.5+\n MathJax.Hub.processSectionDelay = 0;\n }\n\n return MathJax.Hub.Config({\n messageStyle: 'none',\n tex2jax: {\n inlineMath: [['$', '$'], ['\\\\(', '\\\\)']]\n },\n displayAlign: 'left',\n });\n },\n function() {\n // Get original renderer\n originalRenderer = MathJax.Hub.config.menuSettings.renderer;\n if(originalRenderer !== 'SVG') {\n return MathJax.Hub.setRenderer('SVG');\n }\n },\n function() {\n var randomID = 'math-output-' + Lib.randstr({}, 64);\n tmpDiv = d3.select('body').append('div')\n .attr({id: randomID})\n .style({visibility: 'hidden', position: 'absolute'})\n .style({'font-size': _config.fontSize + 'px'})\n .text(cleanEscapesForTex(_texString));\n\n return MathJax.Hub.Typeset(tmpDiv.node());\n },\n function() {\n var glyphDefs = d3.select('body').select('#MathJax_SVG_glyphs');\n\n if(tmpDiv.select('.MathJax_SVG').empty() || !tmpDiv.select('svg').node()) {\n Lib.log('There was an error in the tex syntax.', _texString);\n _callback();\n } else {\n var svgBBox = tmpDiv.select('svg').node().getBoundingClientRect();\n _callback(tmpDiv.select('.MathJax_SVG'), glyphDefs, svgBBox);\n }\n\n tmpDiv.remove();\n\n if(originalRenderer !== 'SVG') {\n return MathJax.Hub.setRenderer(originalRenderer);\n }\n },\n function() {\n if(originalProcessSectionDelay !== undefined) {\n MathJax.Hub.processSectionDelay = originalProcessSectionDelay;\n }\n return MathJax.Hub.Config(originalConfig);\n });\n}\n\nvar TAG_STYLES = {\n // would like to use baseline-shift for sub/sup but FF doesn't support it\n // so we need to use dy along with the uber hacky shift-back-to\n // baseline below\n sup: 'font-size:70%',\n sub: 'font-size:70%',\n b: 'font-weight:bold',\n i: 'font-style:italic',\n a: 'cursor:pointer',\n span: '',\n em: 'font-style:italic;font-weight:bold'\n};\n\n// baseline shifts for sub and sup\nvar SHIFT_DY = {\n sub: '0.3em',\n sup: '-0.6em'\n};\n// reset baseline by adding a tspan (empty except for a zero-width space)\n// with dy of -70% * SHIFT_DY (because font-size=70%)\nvar RESET_DY = {\n sub: '-0.21em',\n sup: '0.42em'\n};\nvar ZERO_WIDTH_SPACE = '\\u200b';\n\n/*\n * Whitelist of protocols in user-supplied urls. Mostly we want to avoid javascript\n * and related attack vectors. The empty items are there for IE, that in various\n * versions treats relative paths as having different flavors of no protocol, while\n * other browsers have these explicitly inherit the protocol of the page they're in.\n */\nvar PROTOCOLS = ['http:', 'https:', 'mailto:', '', undefined, ':'];\n\nvar NEWLINES = exports.NEWLINES = /(\\r\\n?|\\n)/g;\n\nvar SPLIT_TAGS = /(<[^<>]*>)/;\n\nvar ONE_TAG = /<(\\/?)([^ >]*)(\\s+(.*))?>/i;\n\nvar BR_TAG = //i;\nexports.BR_TAG_ALL = //gi;\n\n/*\n * style and href: pull them out of either single or double quotes. Also\n * - target: (_blank|_self|_parent|_top|framename)\n * note that you can't use target to get a popup but if you use popup,\n * a `framename` will be passed along as the name of the popup window.\n * per the spec, cannot contain whitespace.\n * for backward compatibility we default to '_blank'\n * - popup: a custom one for us to enable popup (new window) links. String\n * for window.open -> strWindowFeatures, like 'menubar=yes,width=500,height=550'\n * note that at least in Chrome, you need to give at least one property\n * in this string or the page will open in a new tab anyway. We follow this\n * convention and will not make a popup if this string is empty.\n * per the spec, cannot contain whitespace.\n *\n * Because we hack in other attributes with style (sub & sup), drop any trailing\n * semicolon in user-supplied styles so we can consistently append the tag-dependent style\n *\n * These are for tag attributes; Chrome anyway will convert entities in\n * attribute values, but not in attribute names\n * you can test this by for example:\n * > p = document.createElement('p')\n * > p.innerHTML = 'Hi'\n * > p.innerHTML\n * <- 'Hi'\n */\nvar STYLEMATCH = /(^|[\\s\"'])style\\s*=\\s*(\"([^\"]*);?\"|'([^']*);?')/i;\nvar HREFMATCH = /(^|[\\s\"'])href\\s*=\\s*(\"([^\"]*)\"|'([^']*)')/i;\nvar TARGETMATCH = /(^|[\\s\"'])target\\s*=\\s*(\"([^\"\\s]*)\"|'([^'\\s]*)')/i;\nvar POPUPMATCH = /(^|[\\s\"'])popup\\s*=\\s*(\"([\\w=,]*)\"|'([\\w=,]*)')/i;\n\n// dedicated matcher for these quoted regexes, that can return their results\n// in two different places\nfunction getQuotedMatch(_str, re) {\n if(!_str) return null;\n var match = _str.match(re);\n var result = match && (match[3] || match[4]);\n return result && convertEntities(result);\n}\n\nvar COLORMATCH = /(^|;)\\s*color:/;\n\n/**\n * Strip string of tags\n *\n * @param {string} _str : input string\n * @param {object} opts :\n * - len {number} max length of output string\n * - allowedTags {array} list of pseudo-html tags to NOT strip\n * @return {string}\n */\nexports.plainText = function(_str, opts) {\n opts = opts || {};\n\n var len = (opts.len !== undefined && opts.len !== -1) ? opts.len : Infinity;\n var allowedTags = opts.allowedTags !== undefined ? opts.allowedTags : ['br'];\n\n var ellipsis = '...';\n var eLen = ellipsis.length;\n\n var oldParts = _str.split(SPLIT_TAGS);\n var newParts = [];\n var prevTag = '';\n var l = 0;\n\n for(var i = 0; i < oldParts.length; i++) {\n var p = oldParts[i];\n var match = p.match(ONE_TAG);\n var tagType = match && match[2].toLowerCase();\n\n if(tagType) {\n // N.B. tags do not count towards string length\n if(allowedTags.indexOf(tagType) !== -1) {\n newParts.push(p);\n prevTag = tagType;\n }\n } else {\n var pLen = p.length;\n\n if((l + pLen) < len) {\n newParts.push(p);\n l += pLen;\n } else if(l < len) {\n var pLen2 = len - l;\n\n if(prevTag && (prevTag !== 'br' || pLen2 <= eLen || pLen <= eLen)) {\n newParts.pop();\n }\n\n if(len > eLen) {\n newParts.push(p.substr(0, pLen2 - eLen) + ellipsis);\n } else {\n newParts.push(p.substr(0, pLen2));\n }\n break;\n }\n\n prevTag = '';\n }\n }\n\n return newParts.join('');\n};\n\n/*\n * N.B. HTML entities are listed without the leading '&' and trailing ';'\n * https://www.freeformatter.com/html-entities.html\n *\n * FWIW if we wanted to support the full set, it has 2261 entries:\n * https://www.w3.org/TR/html5/entities.json\n * though I notice that some of these are duplicates and/or are missing \";\"\n * eg: \"&\", \"&\", \"&\", and \"&\" all map to \"&\"\n * We no longer need to include numeric entities here, these are now handled\n * by String.fromCodePoint/fromCharCode\n *\n * Anyway the only ones that are really important to allow are the HTML special\n * chars <, >, and &, because these ones can trigger special processing if not\n * replaced by the corresponding entity.\n */\nvar entityToUnicode = {\n mu: 'μ',\n amp: '&',\n lt: '<',\n gt: '>',\n nbsp: ' ',\n times: '×',\n plusmn: '±',\n deg: '°'\n};\n\n// NOTE: in general entities can contain uppercase too (so [a-zA-Z]) but all the\n// ones we support use only lowercase. If we ever change that, update the regex.\nvar ENTITY_MATCH = /&(#\\d+|#x[\\da-fA-F]+|[a-z]+);/g;\nfunction convertEntities(_str) {\n return _str.replace(ENTITY_MATCH, function(fullMatch, innerMatch) {\n var outChar;\n if(innerMatch.charAt(0) === '#') {\n // cannot use String.fromCodePoint in IE\n outChar = fromCodePoint(\n innerMatch.charAt(1) === 'x' ?\n parseInt(innerMatch.substr(2), 16) :\n parseInt(innerMatch.substr(1), 10)\n );\n } else outChar = entityToUnicode[innerMatch];\n\n // as in regular HTML, if we didn't decode the entity just\n // leave the raw text in place.\n return outChar || fullMatch;\n });\n}\nexports.convertEntities = convertEntities;\n\nfunction fromCodePoint(code) {\n // Don't allow overflow. In Chrome this turns into � but I feel like it's\n // more useful to just not convert it at all.\n if(code > 0x10FFFF) return;\n var stringFromCodePoint = String.fromCodePoint;\n if(stringFromCodePoint) return stringFromCodePoint(code);\n\n // IE doesn't have String.fromCodePoint\n // see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint\n var stringFromCharCode = String.fromCharCode;\n if(code <= 0xFFFF) return stringFromCharCode(code);\n return stringFromCharCode(\n (code >> 10) + 0xD7C0,\n (code % 0x400) + 0xDC00\n );\n}\n\n/*\n * buildSVGText: convert our pseudo-html into SVG tspan elements, and attach these\n * to containerNode\n *\n * @param {svg text element} containerNode: the node to insert this text into\n * @param {string} str: the pseudo-html string to convert to svg\n *\n * @returns {bool}: does the result contain any links? We need to handle the text element\n * somewhat differently if it does, so just keep track of this when it happens.\n */\nfunction buildSVGText(containerNode, str) {\n /*\n * Normalize behavior between IE and others wrt newlines and whitespace:pre\n * this combination makes IE barf https://github.com/plotly/plotly.js/issues/746\n * Chrome and FF display \\n, \\r, or \\r\\n as a space in this mode.\n * I feel like at some point we turned these into
but currently we don't so\n * I'm just going to cement what we do now in Chrome and FF\n */\n str = str.replace(NEWLINES, ' ');\n\n var hasLink = false;\n\n // as we're building the text, keep track of what elements we're nested inside\n // nodeStack will be an array of {node, type, style, href, target, popup}\n // where only type: 'a' gets the last 3 and node is only added when it's created\n var nodeStack = [];\n var currentNode;\n var currentLine = -1;\n\n function newLine() {\n currentLine++;\n\n var lineNode = document.createElementNS(xmlnsNamespaces.svg, 'tspan');\n d3.select(lineNode).attr({\n class: 'line',\n dy: (currentLine * LINE_SPACING) + 'em'\n });\n containerNode.appendChild(lineNode);\n\n currentNode = lineNode;\n\n var oldNodeStack = nodeStack;\n nodeStack = [{node: lineNode}];\n\n if(oldNodeStack.length > 1) {\n for(var i = 1; i < oldNodeStack.length; i++) {\n enterNode(oldNodeStack[i]);\n }\n }\n }\n\n function enterNode(nodeSpec) {\n var type = nodeSpec.type;\n var nodeAttrs = {};\n var nodeType;\n\n if(type === 'a') {\n nodeType = 'a';\n var target = nodeSpec.target;\n var href = nodeSpec.href;\n var popup = nodeSpec.popup;\n if(href) {\n nodeAttrs = {\n 'xlink:xlink:show': (target === '_blank' || target.charAt(0) !== '_') ? 'new' : 'replace',\n target: target,\n 'xlink:xlink:href': href\n };\n if(popup) {\n // security: href and target are not inserted as code but\n // as attributes. popup is, but limited to /[A-Za-z0-9_=,]/\n nodeAttrs.onclick = 'window.open(this.href.baseVal,this.target.baseVal,\"' +\n popup + '\");return false;';\n }\n }\n } else nodeType = 'tspan';\n\n if(nodeSpec.style) nodeAttrs.style = nodeSpec.style;\n\n var newNode = document.createElementNS(xmlnsNamespaces.svg, nodeType);\n\n if(type === 'sup' || type === 'sub') {\n addTextNode(currentNode, ZERO_WIDTH_SPACE);\n currentNode.appendChild(newNode);\n\n var resetter = document.createElementNS(xmlnsNamespaces.svg, 'tspan');\n addTextNode(resetter, ZERO_WIDTH_SPACE);\n d3.select(resetter).attr('dy', RESET_DY[type]);\n nodeAttrs.dy = SHIFT_DY[type];\n\n currentNode.appendChild(newNode);\n currentNode.appendChild(resetter);\n } else {\n currentNode.appendChild(newNode);\n }\n\n d3.select(newNode).attr(nodeAttrs);\n\n currentNode = nodeSpec.node = newNode;\n nodeStack.push(nodeSpec);\n }\n\n function addTextNode(node, text) {\n node.appendChild(document.createTextNode(text));\n }\n\n function exitNode(type) {\n // A bare closing tag can't close the root node. If we encounter this it\n // means there's an extra closing tag that can just be ignored:\n if(nodeStack.length === 1) {\n Lib.log('Ignoring unexpected end tag .', str);\n return;\n }\n\n var innerNode = nodeStack.pop();\n\n if(type !== innerNode.type) {\n Lib.log('Start tag <' + innerNode.type + '> doesnt match end tag <' +\n type + '>. Pretending it did match.', str);\n }\n currentNode = nodeStack[nodeStack.length - 1].node;\n }\n\n var hasLines = BR_TAG.test(str);\n\n if(hasLines) newLine();\n else {\n currentNode = containerNode;\n nodeStack = [{node: containerNode}];\n }\n\n var parts = str.split(SPLIT_TAGS);\n for(var i = 0; i < parts.length; i++) {\n var parti = parts[i];\n var match = parti.match(ONE_TAG);\n var tagType = match && match[2].toLowerCase();\n var tagStyle = TAG_STYLES[tagType];\n\n if(tagType === 'br') {\n newLine();\n } else if(tagStyle === undefined) {\n addTextNode(currentNode, convertEntities(parti));\n } else {\n // tag - open or close\n if(match[1]) {\n exitNode(tagType);\n } else {\n var extra = match[4];\n\n var nodeSpec = {type: tagType};\n\n // now add style, from both the tag name and any extra css\n // Most of the svg css that users will care about is just like html,\n // but font color is different (uses fill). Let our users ignore this.\n var css = getQuotedMatch(extra, STYLEMATCH);\n if(css) {\n css = css.replace(COLORMATCH, '$1 fill:');\n if(tagStyle) css += ';' + tagStyle;\n } else if(tagStyle) css = tagStyle;\n\n if(css) nodeSpec.style = css;\n\n if(tagType === 'a') {\n hasLink = true;\n\n var href = getQuotedMatch(extra, HREFMATCH);\n\n if(href) {\n // check safe protocols\n var dummyAnchor = document.createElement('a');\n dummyAnchor.href = href;\n if(PROTOCOLS.indexOf(dummyAnchor.protocol) !== -1) {\n // Decode href to allow both already encoded and not encoded\n // URIs. Without decoding prior encoding, an already encoded\n // URI would be encoded twice producing a semantically different URI.\n nodeSpec.href = encodeURI(decodeURI(href));\n nodeSpec.target = getQuotedMatch(extra, TARGETMATCH) || '_blank';\n nodeSpec.popup = getQuotedMatch(extra, POPUPMATCH);\n }\n }\n }\n\n enterNode(nodeSpec);\n }\n }\n }\n\n return hasLink;\n}\n\nexports.lineCount = function lineCount(s) {\n return s.selectAll('tspan.line').size() || 1;\n};\n\nexports.positionText = function positionText(s, x, y) {\n return s.each(function() {\n var text = d3.select(this);\n\n function setOrGet(attr, val) {\n if(val === undefined) {\n val = text.attr(attr);\n if(val === null) {\n text.attr(attr, 0);\n val = 0;\n }\n } else text.attr(attr, val);\n return val;\n }\n\n var thisX = setOrGet('x', x);\n var thisY = setOrGet('y', y);\n\n if(this.nodeName === 'text') {\n text.selectAll('tspan.line').attr({x: thisX, y: thisY});\n }\n });\n};\n\nfunction alignHTMLWith(_base, container, options) {\n var alignH = options.horizontalAlign;\n var alignV = options.verticalAlign || 'top';\n var bRect = _base.node().getBoundingClientRect();\n var cRect = container.node().getBoundingClientRect();\n var thisRect;\n var getTop;\n var getLeft;\n\n if(alignV === 'bottom') {\n getTop = function() { return bRect.bottom - thisRect.height; };\n } else if(alignV === 'middle') {\n getTop = function() { return bRect.top + (bRect.height - thisRect.height) / 2; };\n } else { // default: top\n getTop = function() { return bRect.top; };\n }\n\n if(alignH === 'right') {\n getLeft = function() { return bRect.right - thisRect.width; };\n } else if(alignH === 'center') {\n getLeft = function() { return bRect.left + (bRect.width - thisRect.width) / 2; };\n } else { // default: left\n getLeft = function() { return bRect.left; };\n }\n\n return function() {\n thisRect = this.node().getBoundingClientRect();\n this.style({\n top: (getTop() - cRect.top) + 'px',\n left: (getLeft() - cRect.left) + 'px',\n 'z-index': 1000\n });\n return this;\n };\n}\n\n/*\n * Editable title\n * @param {d3.selection} context: the element being edited. Normally text,\n * but if it isn't, you should provide the styling options\n * @param {object} options:\n * @param {div} options.gd: graphDiv\n * @param {d3.selection} options.delegate: item to bind events to if not this\n * @param {boolean} options.immediate: start editing now (true) or on click (false, default)\n * @param {string} options.fill: font color if not as shown\n * @param {string} options.background: background color if not as shown\n * @param {string} options.text: initial text, if not as shown\n * @param {string} options.horizontalAlign: alignment of the edit box wrt. the bound element\n * @param {string} options.verticalAlign: alignment of the edit box wrt. the bound element\n */\n\nexports.makeEditable = function(context, options) {\n var gd = options.gd;\n var _delegate = options.delegate;\n var dispatch = d3.dispatch('edit', 'input', 'cancel');\n var handlerElement = _delegate || context;\n\n context.style({'pointer-events': _delegate ? 'none' : 'all'});\n\n if(context.size() !== 1) throw new Error('boo');\n\n function handleClick() {\n appendEditable();\n context.style({opacity: 0});\n // also hide any mathjax svg\n var svgClass = handlerElement.attr('class');\n var mathjaxClass;\n if(svgClass) mathjaxClass = '.' + svgClass.split(' ')[0] + '-math-group';\n else mathjaxClass = '[class*=-math-group]';\n if(mathjaxClass) {\n d3.select(context.node().parentNode).select(mathjaxClass).style({opacity: 0});\n }\n }\n\n function selectElementContents(_el) {\n var el = _el.node();\n var range = document.createRange();\n range.selectNodeContents(el);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n el.focus();\n }\n\n function appendEditable() {\n var plotDiv = d3.select(gd);\n var container = plotDiv.select('.svg-container');\n var div = container.append('div');\n var cStyle = context.node().style;\n var fontSize = parseFloat(cStyle.fontSize || 12);\n\n var initialText = options.text;\n if(initialText === undefined) initialText = context.attr('data-unformatted');\n\n div.classed('plugin-editable editable', true)\n .style({\n position: 'absolute',\n 'font-family': cStyle.fontFamily || 'Arial',\n 'font-size': fontSize,\n color: options.fill || cStyle.fill || 'black',\n opacity: 1,\n 'background-color': options.background || 'transparent',\n outline: '#ffffff33 1px solid',\n margin: [-fontSize / 8 + 1, 0, 0, -1].join('px ') + 'px',\n padding: '0',\n 'box-sizing': 'border-box'\n })\n .attr({contenteditable: true})\n .text(initialText)\n .call(alignHTMLWith(context, container, options))\n .on('blur', function() {\n gd._editing = false;\n context.text(this.textContent)\n .style({opacity: 1});\n var svgClass = d3.select(this).attr('class');\n var mathjaxClass;\n if(svgClass) mathjaxClass = '.' + svgClass.split(' ')[0] + '-math-group';\n else mathjaxClass = '[class*=-math-group]';\n if(mathjaxClass) {\n d3.select(context.node().parentNode).select(mathjaxClass).style({opacity: 0});\n }\n var text = this.textContent;\n d3.select(this).transition().duration(0).remove();\n d3.select(document).on('mouseup', null);\n dispatch.edit.call(context, text);\n })\n .on('focus', function() {\n var editDiv = this;\n gd._editing = true;\n d3.select(document).on('mouseup', function() {\n if(d3.event.target === editDiv) return false;\n if(document.activeElement === div.node()) div.node().blur();\n });\n })\n .on('keyup', function() {\n if(d3.event.which === 27) {\n gd._editing = false;\n context.style({opacity: 1});\n d3.select(this)\n .style({opacity: 0})\n .on('blur', function() { return false; })\n .transition().remove();\n dispatch.cancel.call(context, this.textContent);\n } else {\n dispatch.input.call(context, this.textContent);\n d3.select(this).call(alignHTMLWith(context, container, options));\n }\n })\n .on('keydown', function() {\n if(d3.event.which === 13) this.blur();\n })\n .call(selectElementContents);\n }\n\n if(options.immediate) handleClick();\n else handlerElement.on('click', handleClick);\n\n return d3.rebind(context, dispatch, 'on');\n};\n\n\n/***/ }),\n\n/***/ \"037d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nmodule.exports = function sceneUpdate(gd, trace) {\n var fullLayout = gd._fullLayout;\n var uid = trace.uid;\n\n // must place ref to 'scene' in fullLayout, so that:\n // - it can be relinked properly on updates\n // - it can be destroyed properly when needed\n var splomScenes = fullLayout._splomScenes;\n if(!splomScenes) splomScenes = fullLayout._splomScenes = {};\n\n var reset = {dirty: true};\n\n var first = {\n matrix: false,\n selectBatch: [],\n unselectBatch: []\n };\n\n var scene = splomScenes[trace.uid];\n\n if(!scene) {\n scene = splomScenes[uid] = Lib.extendFlat({}, reset, first);\n\n scene.draw = function draw() {\n if(scene.matrix && scene.matrix.draw) {\n if(scene.selectBatch.length || scene.unselectBatch.length) {\n scene.matrix.draw(scene.unselectBatch, scene.selectBatch);\n } else {\n scene.matrix.draw();\n }\n }\n\n scene.dirty = false;\n };\n\n // remove scene resources\n scene.destroy = function destroy() {\n if(scene.matrix && scene.matrix.destroy) {\n scene.matrix.destroy();\n }\n scene.matrixOptions = null;\n scene.selectBatch = null;\n scene.unselectBatch = null;\n scene = null;\n };\n }\n\n // In case if we have scene from the last calc - reset data\n if(!scene.dirty) {\n Lib.extendFlat(scene, reset);\n }\n\n return scene;\n};\n\n\n/***/ }),\n\n/***/ \"0382\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n attributes: __webpack_require__(\"86d2\"),\n supplyDefaults: __webpack_require__(\"447e\"),\n calc: __webpack_require__(\"de229\"),\n plot: __webpack_require__(\"0cc1\"),\n style: __webpack_require__(\"464d\"),\n hoverPoints: __webpack_require__(\"cbb8\"),\n eventData: __webpack_require__(\"3e97\"),\n\n moduleType: 'trace',\n name: 'image',\n basePlotModule: __webpack_require__(\"91cd\"),\n categories: ['cartesian', 'svg', '2dMap', 'noSortingByValue'],\n animatable: false,\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"038d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Axes = __webpack_require__(\"0642\");\nvar attributes = __webpack_require__(\"8bd8\");\nvar fillText = __webpack_require__(\"fc26\").fillText;\n\nmodule.exports = function hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var geo = pointData.subplot;\n\n var pt, i, j, isInside;\n\n for(i = 0; i < cd.length; i++) {\n pt = cd[i];\n isInside = false;\n\n if(pt._polygons) {\n for(j = 0; j < pt._polygons.length; j++) {\n if(pt._polygons[j].contains([xval, yval])) {\n isInside = !isInside;\n }\n // for polygons that cross antimeridian as xval is in [-180, 180]\n if(pt._polygons[j].contains([xval + 360, yval])) {\n isInside = !isInside;\n }\n }\n\n if(isInside) break;\n }\n }\n\n if(!isInside || !pt) return;\n\n pointData.x0 = pointData.x1 = pointData.xa.c2p(pt.ct);\n pointData.y0 = pointData.y1 = pointData.ya.c2p(pt.ct);\n\n pointData.index = pt.index;\n pointData.location = pt.loc;\n pointData.z = pt.z;\n pointData.zLabel = Axes.tickText(geo.mockAxis, geo.mockAxis.c2l(pt.z), 'hover').text;\n pointData.hovertemplate = pt.hovertemplate;\n\n makeHoverInfo(pointData, trace, pt, geo.mockAxis);\n\n return [pointData];\n};\n\nfunction makeHoverInfo(pointData, trace, pt) {\n if(trace.hovertemplate) return;\n\n var hoverinfo = pt.hi || trace.hoverinfo;\n var loc = String(pt.loc);\n\n var parts = (hoverinfo === 'all') ?\n attributes.hoverinfo.flags :\n hoverinfo.split('+');\n\n var hasName = (parts.indexOf('name') !== -1);\n var hasLocation = (parts.indexOf('location') !== -1);\n var hasZ = (parts.indexOf('z') !== -1);\n var hasText = (parts.indexOf('text') !== -1);\n var hasIdAsNameLabel = !hasName && hasLocation;\n\n var text = [];\n\n if(hasIdAsNameLabel) {\n pointData.nameOverride = loc;\n } else {\n if(hasName) pointData.nameOverride = trace.name;\n if(hasLocation) text.push(loc);\n }\n\n if(hasZ) {\n text.push(pointData.zLabel);\n }\n if(hasText) {\n fillText(pt, trace, text);\n }\n\n pointData.extraText = text.join('
');\n}\n\n\n/***/ }),\n\n/***/ \"03d7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar Drawing = __webpack_require__(\"83d1\");\nvar Color = __webpack_require__(\"d115\");\nvar DESELECTDIM = __webpack_require__(\"72a4\").DESELECTDIM;\nvar barStyle = __webpack_require__(\"2df3\");\nvar resizeText = __webpack_require__(\"93a6\").resizeText;\nvar styleTextPoints = barStyle.styleTextPoints;\n\nfunction style(gd, cd, sel) {\n var s = sel ? sel : d3.select(gd).selectAll('g.waterfalllayer').selectAll('g.trace');\n resizeText(gd, s, 'waterfall');\n\n s.style('opacity', function(d) { return d[0].trace.opacity; });\n\n s.each(function(d) {\n var gTrace = d3.select(this);\n var trace = d[0].trace;\n\n gTrace.selectAll('.point > path').each(function(di) {\n if(!di.isBlank) {\n var cont = trace[di.dir].marker;\n\n d3.select(this)\n .call(Color.fill, cont.color)\n .call(Color.stroke, cont.line.color)\n .call(Drawing.dashLine, cont.line.dash, cont.line.width)\n .style('opacity', trace.selectedpoints && !di.selected ? DESELECTDIM : 1);\n }\n });\n\n styleTextPoints(gTrace, trace, gd);\n\n gTrace.selectAll('.lines').each(function() {\n var cont = trace.connector.line;\n\n Drawing.lineGroupStyle(\n d3.select(this).selectAll('path'),\n cont.width,\n cont.color,\n cont.dash\n );\n });\n });\n}\n\nmodule.exports = {\n style: style\n};\n\n\n/***/ }),\n\n/***/ \"0435\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar scatterAttrs = __webpack_require__(\"107c\");\nvar baseAttrs = __webpack_require__(\"a876\");\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\nvar FORMAT_LINK = __webpack_require__(\"78df\").FORMAT_LINK;\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nmodule.exports = extendFlat({\n z: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n x: extendFlat({}, scatterAttrs.x, {impliedEdits: {xtype: 'array'}}),\n x0: extendFlat({}, scatterAttrs.x0, {impliedEdits: {xtype: 'scaled'}}),\n dx: extendFlat({}, scatterAttrs.dx, {impliedEdits: {xtype: 'scaled'}}),\n y: extendFlat({}, scatterAttrs.y, {impliedEdits: {ytype: 'array'}}),\n y0: extendFlat({}, scatterAttrs.y0, {impliedEdits: {ytype: 'scaled'}}),\n dy: extendFlat({}, scatterAttrs.dy, {impliedEdits: {ytype: 'scaled'}}),\n\n text: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n hovertext: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n transpose: {\n valType: 'boolean',\n dflt: false,\n \n editType: 'calc',\n \n },\n xtype: {\n valType: 'enumerated',\n values: ['array', 'scaled'],\n \n editType: 'calc+clearAxisTypes',\n \n },\n ytype: {\n valType: 'enumerated',\n values: ['array', 'scaled'],\n \n editType: 'calc+clearAxisTypes',\n \n },\n zsmooth: {\n valType: 'enumerated',\n values: ['fast', 'best', false],\n dflt: false,\n \n editType: 'calc',\n \n },\n hoverongaps: {\n valType: 'boolean',\n dflt: true,\n \n editType: 'none',\n \n },\n connectgaps: {\n valType: 'boolean',\n \n editType: 'calc',\n \n },\n xgap: {\n valType: 'number',\n dflt: 0,\n min: 0,\n \n editType: 'plot',\n \n },\n ygap: {\n valType: 'number',\n dflt: 0,\n min: 0,\n \n editType: 'plot',\n \n },\n zhoverformat: {\n valType: 'string',\n dflt: '',\n \n editType: 'none',\n \n },\n hovertemplate: hovertemplateAttrs(),\n showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})\n}, {\n transforms: undefined\n},\n colorScaleAttrs('', {cLetter: 'z', autoColorDflt: false})\n);\n\n\n/***/ }),\n\n/***/ \"0446\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar Axes = __webpack_require__(\"0642\");\n\n/**\n * transitionAxes\n *\n * transition axes from one set of ranges to another, using a svg\n * transformations, similar to during panning.\n *\n * @param {DOM element | object} gd\n * @param {array} edits : array of 'edits', each item with\n * - plotinfo {object} subplot object\n * - xr0 {array} initial x-range\n * - xr1 {array} end x-range\n * - yr0 {array} initial y-range\n * - yr1 {array} end y-range\n * @param {object} transitionOpts\n * @param {function} makeOnCompleteCallback\n */\nmodule.exports = function transitionAxes(gd, edits, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = gd._fullLayout;\n\n // special case for redraw:false Plotly.animate that relies on this\n // to update axis-referenced layout components\n if(edits.length === 0) {\n Axes.redrawComponents(gd);\n return;\n }\n\n function unsetSubplotTransform(subplot) {\n var xa = subplot.xaxis;\n var ya = subplot.yaxis;\n\n fullLayout._defs.select('#' + subplot.clipId + '> rect')\n .call(Drawing.setTranslate, 0, 0)\n .call(Drawing.setScale, 1, 1);\n\n subplot.plot\n .call(Drawing.setTranslate, xa._offset, ya._offset)\n .call(Drawing.setScale, 1, 1);\n\n var traceGroups = subplot.plot.selectAll('.scatterlayer .trace');\n\n // This is specifically directed at scatter traces, applying an inverse\n // scale to individual points to counteract the scale of the trace\n // as a whole:\n traceGroups.selectAll('.point')\n .call(Drawing.setPointGroupScale, 1, 1);\n traceGroups.selectAll('.textpoint')\n .call(Drawing.setTextPointsScale, 1, 1);\n traceGroups\n .call(Drawing.hideOutsideRangePoints, subplot);\n }\n\n function updateSubplot(edit, progress) {\n var plotinfo = edit.plotinfo;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var xlen = xa._length;\n var ylen = ya._length;\n var editX = !!edit.xr1;\n var editY = !!edit.yr1;\n var viewBox = [];\n\n if(editX) {\n var xr0 = Lib.simpleMap(edit.xr0, xa.r2l);\n var xr1 = Lib.simpleMap(edit.xr1, xa.r2l);\n var dx0 = xr0[1] - xr0[0];\n var dx1 = xr1[1] - xr1[0];\n viewBox[0] = (xr0[0] * (1 - progress) + progress * xr1[0] - xr0[0]) / (xr0[1] - xr0[0]) * xlen;\n viewBox[2] = xlen * ((1 - progress) + progress * dx1 / dx0);\n xa.range[0] = xa.l2r(xr0[0] * (1 - progress) + progress * xr1[0]);\n xa.range[1] = xa.l2r(xr0[1] * (1 - progress) + progress * xr1[1]);\n } else {\n viewBox[0] = 0;\n viewBox[2] = xlen;\n }\n\n if(editY) {\n var yr0 = Lib.simpleMap(edit.yr0, ya.r2l);\n var yr1 = Lib.simpleMap(edit.yr1, ya.r2l);\n var dy0 = yr0[1] - yr0[0];\n var dy1 = yr1[1] - yr1[0];\n viewBox[1] = (yr0[1] * (1 - progress) + progress * yr1[1] - yr0[1]) / (yr0[0] - yr0[1]) * ylen;\n viewBox[3] = ylen * ((1 - progress) + progress * dy1 / dy0);\n ya.range[0] = xa.l2r(yr0[0] * (1 - progress) + progress * yr1[0]);\n ya.range[1] = ya.l2r(yr0[1] * (1 - progress) + progress * yr1[1]);\n } else {\n viewBox[1] = 0;\n viewBox[3] = ylen;\n }\n\n Axes.drawOne(gd, xa, {skipTitle: true});\n Axes.drawOne(gd, ya, {skipTitle: true});\n Axes.redrawComponents(gd, [xa._id, ya._id]);\n\n var xScaleFactor = editX ? xlen / viewBox[2] : 1;\n var yScaleFactor = editY ? ylen / viewBox[3] : 1;\n var clipDx = editX ? viewBox[0] : 0;\n var clipDy = editY ? viewBox[1] : 0;\n var fracDx = editX ? (viewBox[0] / viewBox[2] * xlen) : 0;\n var fracDy = editY ? (viewBox[1] / viewBox[3] * ylen) : 0;\n var plotDx = xa._offset - fracDx;\n var plotDy = ya._offset - fracDy;\n\n plotinfo.clipRect\n .call(Drawing.setTranslate, clipDx, clipDy)\n .call(Drawing.setScale, 1 / xScaleFactor, 1 / yScaleFactor);\n\n plotinfo.plot\n .call(Drawing.setTranslate, plotDx, plotDy)\n .call(Drawing.setScale, xScaleFactor, yScaleFactor);\n\n // apply an inverse scale to individual points to counteract\n // the scale of the trace group.\n Drawing.setPointGroupScale(plotinfo.zoomScalePts, 1 / xScaleFactor, 1 / yScaleFactor);\n Drawing.setTextPointsScale(plotinfo.zoomScaleTxt, 1 / xScaleFactor, 1 / yScaleFactor);\n }\n\n var onComplete;\n if(makeOnCompleteCallback) {\n // This module makes the choice whether or not it notifies Plotly.transition\n // about completion:\n onComplete = makeOnCompleteCallback();\n }\n\n function transitionComplete() {\n var aobj = {};\n\n for(var i = 0; i < edits.length; i++) {\n var edit = edits[i];\n var xa = edit.plotinfo.xaxis;\n var ya = edit.plotinfo.yaxis;\n if(edit.xr1) aobj[xa._name + '.range'] = edit.xr1.slice();\n if(edit.yr1) aobj[ya._name + '.range'] = edit.yr1.slice();\n }\n\n // Signal that this transition has completed:\n onComplete && onComplete();\n\n return Registry.call('relayout', gd, aobj).then(function() {\n for(var i = 0; i < edits.length; i++) {\n unsetSubplotTransform(edits[i].plotinfo);\n }\n });\n }\n\n function transitionInterrupt() {\n var aobj = {};\n\n for(var i = 0; i < edits.length; i++) {\n var edit = edits[i];\n var xa = edit.plotinfo.xaxis;\n var ya = edit.plotinfo.yaxis;\n if(edit.xr0) aobj[xa._name + '.range'] = edit.xr0.slice();\n if(edit.yr0) aobj[ya._name + '.range'] = edit.yr0.slice();\n }\n\n return Registry.call('relayout', gd, aobj).then(function() {\n for(var i = 0; i < edits.length; i++) {\n unsetSubplotTransform(edits[i].plotinfo);\n }\n });\n }\n\n var t1, t2, raf;\n var easeFn = d3.ease(transitionOpts.easing);\n\n gd._transitionData._interruptCallbacks.push(function() {\n window.cancelAnimationFrame(raf);\n raf = null;\n return transitionInterrupt();\n });\n\n function doFrame() {\n t2 = Date.now();\n\n var tInterp = Math.min(1, (t2 - t1) / transitionOpts.duration);\n var progress = easeFn(tInterp);\n\n for(var i = 0; i < edits.length; i++) {\n updateSubplot(edits[i], progress);\n }\n\n if(t2 - t1 > transitionOpts.duration) {\n transitionComplete();\n raf = window.cancelAnimationFrame(doFrame);\n } else {\n raf = window.requestAnimationFrame(doFrame);\n }\n }\n\n t1 = Date.now();\n raf = window.requestAnimationFrame(doFrame);\n\n return Promise.resolve();\n};\n\n\n/***/ }),\n\n/***/ \"044b\":\n/***/ (function(module, exports) {\n\n/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n\n\n/***/ }),\n\n/***/ \"046b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar rules = {\n \"X,X div\": \"direction:ltr;font-family:'Open Sans', verdana, arial, sans-serif;margin:0;padding:0;\",\n \"X input,X button\": \"font-family:'Open Sans', verdana, arial, sans-serif;\",\n \"X input:focus,X button:focus\": \"outline:none;\",\n \"X a\": \"text-decoration:none;\",\n \"X a:hover\": \"text-decoration:none;\",\n \"X .crisp\": \"shape-rendering:crispEdges;\",\n \"X .user-select-none\": \"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;\",\n \"X svg\": \"overflow:hidden;\",\n \"X svg a\": \"fill:#447adb;\",\n \"X svg a:hover\": \"fill:#3c6dc5;\",\n \"X .main-svg\": \"position:absolute;top:0;left:0;pointer-events:none;\",\n \"X .main-svg .draglayer\": \"pointer-events:all;\",\n \"X .cursor-default\": \"cursor:default;\",\n \"X .cursor-pointer\": \"cursor:pointer;\",\n \"X .cursor-crosshair\": \"cursor:crosshair;\",\n \"X .cursor-move\": \"cursor:move;\",\n \"X .cursor-col-resize\": \"cursor:col-resize;\",\n \"X .cursor-row-resize\": \"cursor:row-resize;\",\n \"X .cursor-ns-resize\": \"cursor:ns-resize;\",\n \"X .cursor-ew-resize\": \"cursor:ew-resize;\",\n \"X .cursor-sw-resize\": \"cursor:sw-resize;\",\n \"X .cursor-s-resize\": \"cursor:s-resize;\",\n \"X .cursor-se-resize\": \"cursor:se-resize;\",\n \"X .cursor-w-resize\": \"cursor:w-resize;\",\n \"X .cursor-e-resize\": \"cursor:e-resize;\",\n \"X .cursor-nw-resize\": \"cursor:nw-resize;\",\n \"X .cursor-n-resize\": \"cursor:n-resize;\",\n \"X .cursor-ne-resize\": \"cursor:ne-resize;\",\n \"X .cursor-grab\": \"cursor:-webkit-grab;cursor:grab;\",\n \"X .modebar\": \"position:absolute;top:2px;right:2px;\",\n \"X .ease-bg\": \"-webkit-transition:background-color 0.3s ease 0s;-moz-transition:background-color 0.3s ease 0s;-ms-transition:background-color 0.3s ease 0s;-o-transition:background-color 0.3s ease 0s;transition:background-color 0.3s ease 0s;\",\n \"X .modebar--hover>:not(.watermark)\": \"opacity:0;-webkit-transition:opacity 0.3s ease 0s;-moz-transition:opacity 0.3s ease 0s;-ms-transition:opacity 0.3s ease 0s;-o-transition:opacity 0.3s ease 0s;transition:opacity 0.3s ease 0s;\",\n \"X:hover .modebar--hover .modebar-group\": \"opacity:1;\",\n \"X .modebar-group\": \"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;\",\n \"X .modebar-btn\": \"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;\",\n \"X .modebar-btn svg\": \"position:relative;top:2px;\",\n \"X .modebar.vertical\": \"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;\",\n \"X .modebar.vertical svg\": \"top:-1px;\",\n \"X .modebar.vertical .modebar-group\": \"display:block;float:none;padding-left:0px;padding-bottom:8px;\",\n \"X .modebar.vertical .modebar-group .modebar-btn\": \"display:block;text-align:center;\",\n \"X [data-title]:before,X [data-title]:after\": \"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;\",\n \"X [data-title]:hover:before,X [data-title]:hover:after\": \"display:block;opacity:1;\",\n \"X [data-title]:before\": \"content:'';position:absolute;background:transparent;border:6px solid transparent;z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;\",\n \"X [data-title]:after\": \"content:attr(data-title);background:#69738a;color:white;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;\",\n \"X .vertical [data-title]:before,X .vertical [data-title]:after\": \"top:0%;right:200%;\",\n \"X .vertical [data-title]:before\": \"border:6px solid transparent;border-left-color:#69738a;margin-top:8px;margin-right:-30px;\",\n \"X .select-outline\": \"fill:none;stroke-width:1;shape-rendering:crispEdges;\",\n \"X .select-outline-1\": \"stroke:white;\",\n \"X .select-outline-2\": \"stroke:black;stroke-dasharray:2px 2px;\",\n Y: \"font-family:'Open Sans';position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;\",\n \"Y p\": \"margin:0;\",\n \"Y .notifier-note\": \"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,0.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;\",\n \"Y .notifier-close\": \"color:#fff;opacity:0.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;\",\n \"Y .notifier-close:hover\": \"color:#444;text-decoration:none;cursor:pointer;\"\n};\n\nfor(var selector in rules) {\n var fullSelector = selector.replace(/^,/,' ,')\n .replace(/X/g, '.js-plotly-plot .plotly')\n .replace(/Y/g, '.plotly-notifier');\n Lib.addStyleRule(fullSelector, rules[selector]);\n}\n\n\n/***/ }),\n\n/***/ \"04a4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar createCamera = __webpack_require__(\"9351\")\nvar createAxes = __webpack_require__(\"dbd1\")\nvar axesRanges = __webpack_require__(\"15dd\")\nvar createSpikes = __webpack_require__(\"794e\")\nvar createSelect = __webpack_require__(\"578f\")\nvar createFBO = __webpack_require__(\"44c3\")\nvar drawTriangle = __webpack_require__(\"a92a\")\nvar mouseChange = __webpack_require__(\"91b8\")\nvar perspective = __webpack_require__(\"7ad0\")\nvar ortho = __webpack_require__(\"f889\")\nvar createShader = __webpack_require__(\"5ccc\")\nvar isMobile = __webpack_require__(\"8df8\")({ tablet: true })\n\nmodule.exports = {\n createScene: createScene,\n createCamera: createCamera\n}\n\nfunction MouseSelect() {\n this.mouse = [-1,-1]\n this.screen = null\n this.distance = Infinity\n this.index = null\n this.dataCoordinate = null\n this.dataPosition = null\n this.object = null\n this.data = null\n}\n\nfunction getContext(canvas, options) {\n var gl = null\n try {\n gl = canvas.getContext('webgl', options)\n if(!gl) {\n gl = canvas.getContext('experimental-webgl', options)\n }\n } catch(e) {\n return null\n }\n return gl\n}\n\nfunction roundUpPow10(x) {\n var y = Math.round(Math.log(Math.abs(x)) / Math.log(10))\n if(y < 0) {\n var base = Math.round(Math.pow(10, -y))\n return Math.ceil(x*base) / base\n } else if(y > 0) {\n var base = Math.round(Math.pow(10, y))\n return Math.ceil(x/base) * base\n }\n return Math.ceil(x)\n}\n\nfunction defaultBool(x) {\n if(typeof x === 'boolean') {\n return x\n }\n return true\n}\n\nfunction createScene(options) {\n options = options || {}\n options.camera = options.camera || {}\n\n var canvas = options.canvas\n if(!canvas) {\n canvas = document.createElement('canvas')\n if(options.container) {\n var container = options.container\n container.appendChild(canvas)\n } else {\n document.body.appendChild(canvas)\n }\n }\n\n var gl = options.gl\n if(!gl) {\n gl = getContext(canvas,\n options.glOptions || {\n premultipliedAlpha: true,\n antialias: true,\n preserveDrawingBuffer: isMobile\n })\n }\n if(!gl) {\n throw new Error('webgl not supported')\n }\n\n //Initial bounds\n var bounds = options.bounds || [[-10,-10,-10], [10,10,10]]\n\n //Create selection\n var selection = new MouseSelect()\n\n //Accumulation buffer\n var accumBuffer = createFBO(gl,\n [gl.drawingBufferWidth, gl.drawingBufferHeight], {\n preferFloat: !isMobile\n })\n\n var accumShader = createShader(gl)\n\n var isOrtho =\n (options.cameraObject && options.cameraObject._ortho === true) ||\n (options.camera.projection && options.camera.projection.type === 'orthographic') ||\n false\n\n //Create a camera\n var cameraOptions = {\n eye: options.camera.eye || [2,0,0],\n center: options.camera.center || [0,0,0],\n up: options.camera.up || [0,1,0],\n zoomMin: options.camera.zoomMax || 0.1,\n zoomMax: options.camera.zoomMin || 100,\n mode: options.camera.mode || 'turntable',\n _ortho: isOrtho\n }\n\n //Create axes\n var axesOptions = options.axes || {}\n var axes = createAxes(gl, axesOptions)\n axes.enable = !axesOptions.disable\n\n //Create spikes\n var spikeOptions = options.spikes || {}\n var spikes = createSpikes(gl, spikeOptions)\n\n //Object list is empty initially\n var objects = []\n var pickBufferIds = []\n var pickBufferCount = []\n var pickBuffers = []\n\n //Dirty flag, skip redraw if scene static\n var dirty = true\n var pickDirty = true\n\n var projection = new Array(16)\n var model = new Array(16)\n\n var cameraParams = {\n view: null,\n projection: projection,\n model: model,\n _ortho: false\n }\n\n var pickDirty = true\n\n var viewShape = [ gl.drawingBufferWidth, gl.drawingBufferHeight ]\n\n var camera = options.cameraObject || createCamera(canvas, cameraOptions)\n\n //Create scene object\n var scene = {\n gl: gl,\n contextLost: false,\n pixelRatio: options.pixelRatio || 1,\n canvas: canvas,\n selection: selection,\n camera: camera,\n axes: axes,\n axesPixels: null,\n spikes: spikes,\n bounds: bounds,\n objects: objects,\n shape: viewShape,\n aspect: options.aspectRatio || [1,1,1],\n pickRadius: options.pickRadius || 10,\n zNear: options.zNear || 0.01,\n zFar: options.zFar || 1000,\n fovy: options.fovy || Math.PI/4,\n clearColor: options.clearColor || [0,0,0,0],\n autoResize: defaultBool(options.autoResize),\n autoBounds: defaultBool(options.autoBounds),\n autoScale: !!options.autoScale,\n autoCenter: defaultBool(options.autoCenter),\n clipToBounds: defaultBool(options.clipToBounds),\n snapToData: !!options.snapToData,\n onselect: options.onselect || null,\n onrender: options.onrender || null,\n onclick: options.onclick || null,\n cameraParams: cameraParams,\n oncontextloss: null,\n mouseListener: null,\n _stopped: false,\n\n getAspectratio: function() {\n return {\n x: this.aspect[0],\n y: this.aspect[1],\n z: this.aspect[2]\n }\n },\n\n setAspectratio: function(aspectratio) {\n this.aspect[0] = aspectratio.x\n this.aspect[1] = aspectratio.y\n this.aspect[2] = aspectratio.z\n },\n\n setBounds: function(axisIndex, range) {\n this.bounds[0][axisIndex] = range.min\n this.bounds[1][axisIndex] = range.max\n },\n\n setClearColor: function(clearColor) {\n this.clearColor = clearColor\n },\n\n clearRGBA: function() {\n this.gl.clearColor(\n this.clearColor[0],\n this.clearColor[1],\n this.clearColor[2],\n this.clearColor[3]\n )\n\n this.gl.clear(\n this.gl.COLOR_BUFFER_BIT |\n this.gl.DEPTH_BUFFER_BIT\n )\n }\n }\n\n var pickShape = [ (gl.drawingBufferWidth/scene.pixelRatio)|0, (gl.drawingBufferHeight/scene.pixelRatio)|0 ]\n\n function resizeListener() {\n if(scene._stopped) {\n return\n }\n if(!scene.autoResize) {\n return\n }\n var parent = canvas.parentNode\n var width = 1\n var height = 1\n if(parent && parent !== document.body) {\n width = parent.clientWidth\n height = parent.clientHeight\n } else {\n width = window.innerWidth\n height = window.innerHeight\n }\n var nextWidth = Math.ceil(width * scene.pixelRatio)|0\n var nextHeight = Math.ceil(height * scene.pixelRatio)|0\n if(nextWidth !== canvas.width || nextHeight !== canvas.height) {\n canvas.width = nextWidth\n canvas.height = nextHeight\n var style = canvas.style\n style.position = style.position || 'absolute'\n style.left = '0px'\n style.top = '0px'\n style.width = width + 'px'\n style.height = height + 'px'\n dirty = true\n }\n }\n if(scene.autoResize) {\n resizeListener()\n }\n window.addEventListener('resize', resizeListener)\n\n function reallocPickIds() {\n var numObjs = objects.length\n var numPick = pickBuffers.length\n for(var i=0; i 0 && pickBufferCount[numPick-1] === 0) {\n pickBufferCount.pop()\n pickBuffers.pop().dispose()\n }\n }\n\n scene.update = function(options) {\n\n if(scene._stopped) {\n return\n }\n options = options || {}\n dirty = true\n pickDirty = true\n }\n\n scene.add = function(obj) {\n if(scene._stopped) {\n return\n }\n obj.axes = axes\n objects.push(obj)\n pickBufferIds.push(-1)\n dirty = true\n pickDirty = true\n reallocPickIds()\n }\n\n scene.remove = function(obj) {\n if(scene._stopped) {\n return\n }\n var idx = objects.indexOf(obj)\n if(idx < 0) {\n return\n }\n objects.splice(idx, 1)\n pickBufferIds.pop()\n dirty = true\n pickDirty = true\n reallocPickIds()\n }\n\n scene.dispose = function() {\n if(scene._stopped) {\n return\n }\n\n scene._stopped = true\n\n window.removeEventListener('resize', resizeListener)\n canvas.removeEventListener('webglcontextlost', checkContextLoss)\n scene.mouseListener.enabled = false\n\n if(scene.contextLost) {\n return\n }\n\n //Destroy objects\n axes.dispose()\n spikes.dispose()\n for(var i=0; i selection.distance) {\n continue\n }\n for(var j=0; j 0) {\n stepVal.push(stride(i, order[j-1]) + \"*\" + shape(order[j-1]) )\n }\n vars.push(step(i,order[j]) + \"=(\" + stepVal.join(\"-\") + \")|0\")\n }\n }\n //Create index variables\n for(var i=0; i=0; --i) {\n sizeVariable.push(shape(order[i]))\n }\n //Previous phases and vertex_ids\n vars.push(POOL_SIZE + \"=(\" + sizeVariable.join(\"*\") + \")|0\",\n PHASES + \"=mallocUint32(\" + POOL_SIZE + \")\",\n VERTEX_IDS + \"=mallocUint32(\" + POOL_SIZE + \")\",\n POINTER + \"=0\")\n //Create cube variables for phases\n vars.push(pcube(0) + \"=0\")\n for(var j=1; j<(1<=0; --i) {\n forLoopBegin(i, 0) \n }\n var phaseFuncArgs = []\n for(var i=0; i0; k=(k-1)&subset) {\n faceArgs.push(VERTEX_IDS + \"[\" + POINTER + \"+\" + pdelta(k) + \"]\")\n }\n faceArgs.push(vert(0))\n for(var k=0; k0){\",\n index(order[i]), \"=1;\")\n createLoop(i-1, mask|(1< 0\")\n }\n if(typeof args.vertex !== \"function\") {\n error(\"Must specify vertex creation function\")\n }\n if(typeof args.cell !== \"function\") {\n error(\"Must specify cell creation function\")\n }\n if(typeof args.phase !== \"function\") {\n error(\"Must specify phase function\")\n }\n var getters = args.getters || []\n var typesig = new Array(arrays)\n for(var i=0; i= 0) {\n typesig[i] = true\n } else {\n typesig[i] = false\n }\n }\n return compileSurfaceProcedure(\n args.vertex,\n args.cell,\n args.phase,\n scalars,\n order,\n typesig)\n}\n\n/***/ }),\n\n/***/ \"05d6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n nodeTextOffsetHorizontal: 4,\n nodeTextOffsetVertical: 3,\n nodePadAcross: 10,\n sankeyIterations: 50,\n forceIterations: 5,\n forceTicksPerFrame: 10,\n duration: 500,\n ease: 'linear',\n cn: {\n sankey: 'sankey',\n sankeyLinks: 'sankey-links',\n sankeyLink: 'sankey-link',\n sankeyNodeSet: 'sankey-node-set',\n sankeyNode: 'sankey-node',\n nodeRect: 'node-rect',\n nodeCapture: 'node-capture',\n nodeCentered: 'node-entered',\n nodeLabelGuide: 'node-label-guide',\n nodeLabel: 'node-label',\n nodeLabelTextPath: 'node-label-text-path'\n }\n};\n\n\n/***/ }),\n\n/***/ \"0625\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Axes = __webpack_require__(\"0642\");\n\nvar histogram2dCalc = __webpack_require__(\"7f9e\");\nvar colorscaleCalc = __webpack_require__(\"3aa8\");\nvar convertColumnData = __webpack_require__(\"d064\");\nvar clean2dArray = __webpack_require__(\"1b6a\");\nvar interp2d = __webpack_require__(\"2d0e\");\nvar findEmpties = __webpack_require__(\"0c3a\");\nvar makeBoundArray = __webpack_require__(\"d706\");\n\nmodule.exports = function calc(gd, trace) {\n // prepare the raw data\n // run makeCalcdata on x and y even for heatmaps, in case of category mappings\n var xa = Axes.getFromId(gd, trace.xaxis || 'x');\n var ya = Axes.getFromId(gd, trace.yaxis || 'y');\n var isContour = Registry.traceIs(trace, 'contour');\n var isHist = Registry.traceIs(trace, 'histogram');\n var isGL2D = Registry.traceIs(trace, 'gl2d');\n var zsmooth = isContour ? 'best' : trace.zsmooth;\n var x;\n var x0;\n var dx;\n var y;\n var y0;\n var dy;\n var z;\n var i;\n var binned;\n\n // cancel minimum tick spacings (only applies to bars and boxes)\n xa._minDtick = 0;\n ya._minDtick = 0;\n\n if(isHist) {\n binned = histogram2dCalc(gd, trace);\n x = binned.x;\n x0 = binned.x0;\n dx = binned.dx;\n y = binned.y;\n y0 = binned.y0;\n dy = binned.dy;\n z = binned.z;\n } else {\n var zIn = trace.z;\n if(Lib.isArray1D(zIn)) {\n convertColumnData(trace, xa, ya, 'x', 'y', ['z']);\n x = trace._x;\n y = trace._y;\n zIn = trace._z;\n } else {\n x = trace._x = trace.x ? xa.makeCalcdata(trace, 'x') : [];\n y = trace._y = trace.y ? ya.makeCalcdata(trace, 'y') : [];\n }\n\n x0 = trace.x0;\n dx = trace.dx;\n y0 = trace.y0;\n dy = trace.dy;\n\n z = clean2dArray(zIn, trace, xa, ya);\n\n if(isContour || trace.connectgaps) {\n trace._emptypoints = findEmpties(z);\n interp2d(z, trace._emptypoints);\n }\n }\n\n function noZsmooth(msg) {\n zsmooth = trace._input.zsmooth = trace.zsmooth = false;\n Lib.warn('cannot use zsmooth: \"fast\": ' + msg);\n }\n\n // check whether we really can smooth (ie all boxes are about the same size)\n if(zsmooth === 'fast') {\n if(xa.type === 'log' || ya.type === 'log') {\n noZsmooth('log axis found');\n } else if(!isHist) {\n if(x.length) {\n var avgdx = (x[x.length - 1] - x[0]) / (x.length - 1);\n var maxErrX = Math.abs(avgdx / 100);\n for(i = 0; i < x.length - 1; i++) {\n if(Math.abs(x[i + 1] - x[i] - avgdx) > maxErrX) {\n noZsmooth('x scale is not linear');\n break;\n }\n }\n }\n if(y.length && zsmooth === 'fast') {\n var avgdy = (y[y.length - 1] - y[0]) / (y.length - 1);\n var maxErrY = Math.abs(avgdy / 100);\n for(i = 0; i < y.length - 1; i++) {\n if(Math.abs(y[i + 1] - y[i] - avgdy) > maxErrY) {\n noZsmooth('y scale is not linear');\n break;\n }\n }\n }\n }\n }\n\n // create arrays of brick boundaries, to be used by autorange and heatmap.plot\n var xlen = Lib.maxRowLength(z);\n var xIn = trace.xtype === 'scaled' ? '' : x;\n var xArray = makeBoundArray(trace, xIn, x0, dx, xlen, xa);\n var yIn = trace.ytype === 'scaled' ? '' : y;\n var yArray = makeBoundArray(trace, yIn, y0, dy, z.length, ya);\n\n // handled in gl2d convert step\n if(!isGL2D) {\n trace._extremes[xa._id] = Axes.findExtremes(xa, xArray);\n trace._extremes[ya._id] = Axes.findExtremes(ya, yArray);\n }\n\n var cd0 = {\n x: xArray,\n y: yArray,\n z: z,\n text: trace._text || trace.text,\n hovertext: trace._hovertext || trace.hovertext\n };\n\n if(xIn && xIn.length === xArray.length - 1) cd0.xCenter = xIn;\n if(yIn && yIn.length === yArray.length - 1) cd0.yCenter = yIn;\n\n if(isHist) {\n cd0.xRanges = binned.xRanges;\n cd0.yRanges = binned.yRanges;\n cd0.pts = binned.pts;\n }\n\n if(!isContour) {\n colorscaleCalc(gd, trace, {vals: z, cLetter: 'z'});\n }\n\n if(isContour && trace.contours && trace.contours.coloring === 'heatmap') {\n var dummyTrace = {\n type: trace.type === 'contour' ? 'heatmap' : 'histogram2d',\n xcalendar: trace.xcalendar,\n ycalendar: trace.ycalendar\n };\n cd0.xfill = makeBoundArray(dummyTrace, xIn, x0, dx, xlen, xa);\n cd0.yfill = makeBoundArray(dummyTrace, yIn, y0, dy, z.length, ya);\n }\n\n return [cd0];\n};\n\n\n/***/ }),\n\n/***/ \"0642\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar isNumeric = __webpack_require__(\"19b2\");\nvar Plots = __webpack_require__(\"bb71\");\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar svgTextUtils = __webpack_require__(\"0379\");\nvar Titles = __webpack_require__(\"1999\");\nvar Color = __webpack_require__(\"d115\");\nvar Drawing = __webpack_require__(\"83d1\");\n\nvar axAttrs = __webpack_require__(\"d798\");\nvar cleanTicks = __webpack_require__(\"da6a\");\n\nvar constants = __webpack_require__(\"e806\");\nvar ONEAVGYEAR = constants.ONEAVGYEAR;\nvar ONEAVGMONTH = constants.ONEAVGMONTH;\nvar ONEDAY = constants.ONEDAY;\nvar ONEHOUR = constants.ONEHOUR;\nvar ONEMIN = constants.ONEMIN;\nvar ONESEC = constants.ONESEC;\nvar MINUS_SIGN = constants.MINUS_SIGN;\nvar BADNUM = constants.BADNUM;\n\nvar alignmentConstants = __webpack_require__(\"63dc\");\nvar MID_SHIFT = alignmentConstants.MID_SHIFT;\nvar CAP_SHIFT = alignmentConstants.CAP_SHIFT;\nvar LINE_SPACING = alignmentConstants.LINE_SPACING;\nvar OPPOSITE_SIDE = alignmentConstants.OPPOSITE_SIDE;\n\nvar axes = module.exports = {};\n\naxes.setConvert = __webpack_require__(\"1a40\");\nvar autoType = __webpack_require__(\"0b77\");\n\nvar axisIds = __webpack_require__(\"3c1c\");\naxes.id2name = axisIds.id2name;\naxes.name2id = axisIds.name2id;\naxes.cleanId = axisIds.cleanId;\naxes.list = axisIds.list;\naxes.listIds = axisIds.listIds;\naxes.getFromId = axisIds.getFromId;\naxes.getFromTrace = axisIds.getFromTrace;\n\nvar autorange = __webpack_require__(\"ce56\");\naxes.getAutoRange = autorange.getAutoRange;\naxes.findExtremes = autorange.findExtremes;\n\n/*\n * find the list of possible axes to reference with an xref or yref attribute\n * and coerce it to that list\n *\n * attr: the attribute we're generating a reference for. Should end in 'x' or 'y'\n * but can be prefixed, like 'ax' for annotation's arrow x\n * dflt: the default to coerce to, or blank to use the first axis (falling back on\n * extraOption if there is no axis)\n * extraOption: aside from existing axes with this letter, what non-axis value is allowed?\n * Only required if it's different from `dflt`\n */\naxes.coerceRef = function(containerIn, containerOut, gd, attr, dflt, extraOption) {\n var axLetter = attr.charAt(attr.length - 1);\n var axlist = gd._fullLayout._subplots[axLetter + 'axis'];\n var refAttr = attr + 'ref';\n var attrDef = {};\n\n if(!dflt) dflt = axlist[0] || extraOption;\n if(!extraOption) extraOption = dflt;\n\n // data-ref annotations are not supported in gl2d yet\n\n attrDef[refAttr] = {\n valType: 'enumerated',\n values: axlist.concat(extraOption ? [extraOption] : []),\n dflt: dflt\n };\n\n // xref, yref\n return Lib.coerce(containerIn, containerOut, attrDef, refAttr);\n};\n\n/*\n * coerce position attributes (range-type) that can be either on axes or absolute\n * (paper or pixel) referenced. The biggest complication here is that we don't know\n * before looking at the axis whether the value must be a number or not (it may be\n * a date string), so we can't use the regular valType='number' machinery\n *\n * axRef (string): the axis this position is referenced to, or:\n * paper: fraction of the plot area\n * pixel: pixels relative to some starting position\n * attr (string): the attribute in containerOut we are coercing\n * dflt (number): the default position, as a fraction or pixels. If the attribute\n * is to be axis-referenced, this will be converted to an axis data value\n *\n * Also cleans the values, since the attribute definition itself has to say\n * valType: 'any' to handle date axes. This allows us to accept:\n * - for category axes: category names, and convert them here into serial numbers.\n * Note that this will NOT work for axis range endpoints, because we don't know\n * the category list yet (it's set by ax.makeCalcdata during calc)\n * but it works for component (note, shape, images) positions.\n * - for date axes: JS Dates or milliseconds, and convert to date strings\n * - for other types: coerce them to numbers\n */\naxes.coercePosition = function(containerOut, gd, coerce, axRef, attr, dflt) {\n var cleanPos, pos;\n\n if(axRef === 'paper' || axRef === 'pixel') {\n cleanPos = Lib.ensureNumber;\n pos = coerce(attr, dflt);\n } else {\n var ax = axes.getFromId(gd, axRef);\n dflt = ax.fraction2r(dflt);\n pos = coerce(attr, dflt);\n cleanPos = ax.cleanPos;\n }\n\n containerOut[attr] = cleanPos(pos);\n};\n\naxes.cleanPosition = function(pos, gd, axRef) {\n var cleanPos = (axRef === 'paper' || axRef === 'pixel') ?\n Lib.ensureNumber :\n axes.getFromId(gd, axRef).cleanPos;\n\n return cleanPos(pos);\n};\n\naxes.redrawComponents = function(gd, axIds) {\n axIds = axIds ? axIds : axes.listIds(gd);\n\n var fullLayout = gd._fullLayout;\n\n function _redrawOneComp(moduleName, methodName, stashName, shortCircuit) {\n var method = Registry.getComponentMethod(moduleName, methodName);\n var stash = {};\n\n for(var i = 0; i < axIds.length; i++) {\n var ax = fullLayout[axes.id2name(axIds[i])];\n var indices = ax[stashName];\n\n for(var j = 0; j < indices.length; j++) {\n var ind = indices[j];\n\n if(!stash[ind]) {\n method(gd, ind);\n stash[ind] = 1;\n // once is enough for images (which doesn't use the `i` arg anyway)\n if(shortCircuit) return;\n }\n }\n }\n }\n\n // annotations and shapes 'draw' method is slow,\n // use the finer-grained 'drawOne' method instead\n _redrawOneComp('annotations', 'drawOne', '_annIndices');\n _redrawOneComp('shapes', 'drawOne', '_shapeIndices');\n _redrawOneComp('images', 'draw', '_imgIndices', true);\n};\n\nvar getDataConversions = axes.getDataConversions = function(gd, trace, target, targetArray) {\n var ax;\n\n // If target points to an axis, use the type we already have for that\n // axis to find the data type. Otherwise use the values to autotype.\n var d2cTarget = (target === 'x' || target === 'y' || target === 'z') ?\n target :\n targetArray;\n\n // In the case of an array target, make a mock data array\n // and call supplyDefaults to the data type and\n // setup the data-to-calc method.\n if(Array.isArray(d2cTarget)) {\n ax = {\n type: autoType(targetArray),\n _categories: []\n };\n axes.setConvert(ax);\n\n // build up ax._categories (usually done during ax.makeCalcdata()\n if(ax.type === 'category') {\n for(var i = 0; i < targetArray.length; i++) {\n ax.d2c(targetArray[i]);\n }\n }\n // TODO what to do for transforms?\n } else {\n ax = axes.getFromTrace(gd, trace, d2cTarget);\n }\n\n // if 'target' has corresponding axis\n // -> use setConvert method\n if(ax) return {d2c: ax.d2c, c2d: ax.c2d};\n\n // special case for 'ids'\n // -> cast to String\n if(d2cTarget === 'ids') return {d2c: toString, c2d: toString};\n\n // otherwise (e.g. numeric-array of 'marker.color' or 'marker.size')\n // -> cast to Number\n\n return {d2c: toNum, c2d: toNum};\n};\n\nfunction toNum(v) { return +v; }\nfunction toString(v) { return String(v); }\n\naxes.getDataToCoordFunc = function(gd, trace, target, targetArray) {\n return getDataConversions(gd, trace, target, targetArray).d2c;\n};\n\n// get counteraxis letter for this axis (name or id)\n// this can also be used as the id for default counter axis\naxes.counterLetter = function(id) {\n var axLetter = id.charAt(0);\n if(axLetter === 'x') return 'y';\n if(axLetter === 'y') return 'x';\n};\n\n// incorporate a new minimum difference and first tick into\n// forced\n// note that _forceTick0 is linearized, so needs to be turned into\n// a range value for setting tick0\naxes.minDtick = function(ax, newDiff, newFirst, allow) {\n // doesn't make sense to do forced min dTick on log or category axes,\n // and the plot itself may decide to cancel (ie non-grouped bars)\n if(['log', 'category', 'multicategory'].indexOf(ax.type) !== -1 || !allow) {\n ax._minDtick = 0;\n } else if(ax._minDtick === undefined) {\n // undefined means there's nothing there yet\n\n ax._minDtick = newDiff;\n ax._forceTick0 = newFirst;\n } else if(ax._minDtick) {\n if((ax._minDtick / newDiff + 1e-6) % 1 < 2e-6 &&\n // existing minDtick is an integer multiple of newDiff\n // (within rounding err)\n // and forceTick0 can be shifted to newFirst\n\n (((newFirst - ax._forceTick0) / newDiff % 1) +\n 1.000001) % 1 < 2e-6) {\n ax._minDtick = newDiff;\n ax._forceTick0 = newFirst;\n } else if((newDiff / ax._minDtick + 1e-6) % 1 > 2e-6 ||\n // if the converse is true (newDiff is a multiple of minDtick and\n // newFirst can be shifted to forceTick0) then do nothing - same\n // forcing stands. Otherwise, cancel forced minimum\n\n (((newFirst - ax._forceTick0) / ax._minDtick % 1) +\n 1.000001) % 1 > 2e-6) {\n ax._minDtick = 0;\n }\n }\n};\n\n// save a copy of the initial axis ranges in fullLayout\n// use them in mode bar and dblclick events\naxes.saveRangeInitial = function(gd, overwrite) {\n var axList = axes.list(gd, '', true);\n var hasOneAxisChanged = false;\n\n for(var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n var isNew = (ax._rangeInitial === undefined);\n var hasChanged = isNew || !(\n ax.range[0] === ax._rangeInitial[0] &&\n ax.range[1] === ax._rangeInitial[1]\n );\n\n if((isNew && ax.autorange === false) || (overwrite && hasChanged)) {\n ax._rangeInitial = ax.range.slice();\n hasOneAxisChanged = true;\n }\n }\n\n return hasOneAxisChanged;\n};\n\n// save a copy of the initial spike visibility\naxes.saveShowSpikeInitial = function(gd, overwrite) {\n var axList = axes.list(gd, '', true);\n var hasOneAxisChanged = false;\n var allSpikesEnabled = 'on';\n\n for(var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n var isNew = (ax._showSpikeInitial === undefined);\n var hasChanged = isNew || !(ax.showspikes === ax._showspikes);\n\n if(isNew || (overwrite && hasChanged)) {\n ax._showSpikeInitial = ax.showspikes;\n hasOneAxisChanged = true;\n }\n\n if(allSpikesEnabled === 'on' && !ax.showspikes) {\n allSpikesEnabled = 'off';\n }\n }\n gd._fullLayout._cartesianSpikesEnabled = allSpikesEnabled;\n return hasOneAxisChanged;\n};\n\naxes.autoBin = function(data, ax, nbins, is2d, calendar, size) {\n var dataMin = Lib.aggNums(Math.min, null, data);\n var dataMax = Lib.aggNums(Math.max, null, data);\n\n if(ax.type === 'category' || ax.type === 'multicategory') {\n return {\n start: dataMin - 0.5,\n end: dataMax + 0.5,\n size: Math.max(1, Math.round(size) || 1),\n _dataSpan: dataMax - dataMin,\n };\n }\n\n if(!calendar) calendar = ax.calendar;\n\n // piggyback off tick code to make \"nice\" bin sizes and edges\n var dummyAx;\n if(ax.type === 'log') {\n dummyAx = {\n type: 'linear',\n range: [dataMin, dataMax]\n };\n } else {\n dummyAx = {\n type: ax.type,\n range: Lib.simpleMap([dataMin, dataMax], ax.c2r, 0, calendar),\n calendar: calendar\n };\n }\n axes.setConvert(dummyAx);\n\n size = size && cleanTicks.dtick(size, dummyAx.type);\n\n if(size) {\n dummyAx.dtick = size;\n dummyAx.tick0 = cleanTicks.tick0(undefined, dummyAx.type, calendar);\n } else {\n var size0;\n if(nbins) size0 = ((dataMax - dataMin) / nbins);\n else {\n // totally auto: scale off std deviation so the highest bin is\n // somewhat taller than the total number of bins, but don't let\n // the size get smaller than the 'nice' rounded down minimum\n // difference between values\n var distinctData = Lib.distinctVals(data);\n var msexp = Math.pow(10, Math.floor(\n Math.log(distinctData.minDiff) / Math.LN10));\n var minSize = msexp * Lib.roundUp(\n distinctData.minDiff / msexp, [0.9, 1.9, 4.9, 9.9], true);\n size0 = Math.max(minSize, 2 * Lib.stdev(data) /\n Math.pow(data.length, is2d ? 0.25 : 0.4));\n\n // fallback if ax.d2c output BADNUMs\n // e.g. when user try to plot categorical bins\n // on a layout.xaxis.type: 'linear'\n if(!isNumeric(size0)) size0 = 1;\n }\n\n axes.autoTicks(dummyAx, size0);\n }\n\n var finalSize = dummyAx.dtick;\n var binStart = axes.tickIncrement(\n axes.tickFirst(dummyAx), finalSize, 'reverse', calendar);\n var binEnd, bincount;\n\n // check for too many data points right at the edges of bins\n // (>50% within 1% of bin edges) or all data points integral\n // and offset the bins accordingly\n if(typeof finalSize === 'number') {\n binStart = autoShiftNumericBins(binStart, data, dummyAx, dataMin, dataMax);\n\n bincount = 1 + Math.floor((dataMax - binStart) / finalSize);\n binEnd = binStart + bincount * finalSize;\n } else {\n // month ticks - should be the only nonlinear kind we have at this point.\n // dtick (as supplied by axes.autoTick) only has nonlinear values on\n // date and log axes, but even if you display a histogram on a log axis\n // we bin it on a linear axis (which one could argue against, but that's\n // a separate issue)\n if(dummyAx.dtick.charAt(0) === 'M') {\n binStart = autoShiftMonthBins(binStart, data, finalSize, dataMin, calendar);\n }\n\n // calculate the endpoint for nonlinear ticks - you have to\n // just increment until you're done\n binEnd = binStart;\n bincount = 0;\n while(binEnd <= dataMax) {\n binEnd = axes.tickIncrement(binEnd, finalSize, false, calendar);\n bincount++;\n }\n }\n\n return {\n start: ax.c2r(binStart, 0, calendar),\n end: ax.c2r(binEnd, 0, calendar),\n size: finalSize,\n _dataSpan: dataMax - dataMin\n };\n};\n\n\nfunction autoShiftNumericBins(binStart, data, ax, dataMin, dataMax) {\n var edgecount = 0;\n var midcount = 0;\n var intcount = 0;\n var blankCount = 0;\n\n function nearEdge(v) {\n // is a value within 1% of a bin edge?\n return (1 + (v - binStart) * 100 / ax.dtick) % 100 < 2;\n }\n\n for(var i = 0; i < data.length; i++) {\n if(data[i] % 1 === 0) intcount++;\n else if(!isNumeric(data[i])) blankCount++;\n\n if(nearEdge(data[i])) edgecount++;\n if(nearEdge(data[i] + ax.dtick / 2)) midcount++;\n }\n var dataCount = data.length - blankCount;\n\n if(intcount === dataCount && ax.type !== 'date') {\n if(ax.dtick < 1) {\n // all integers: if bin size is <1, it's because\n // that was specifically requested (large nbins)\n // so respect that... but center the bins containing\n // integers on those integers\n\n binStart = dataMin - 0.5 * ax.dtick;\n } else {\n // otherwise start half an integer down regardless of\n // the bin size, just enough to clear up endpoint\n // ambiguity about which integers are in which bins.\n\n binStart -= 0.5;\n if(binStart + ax.dtick < dataMin) binStart += ax.dtick;\n }\n } else if(midcount < dataCount * 0.1) {\n if(edgecount > dataCount * 0.3 ||\n nearEdge(dataMin) || nearEdge(dataMax)) {\n // lots of points at the edge, not many in the middle\n // shift half a bin\n var binshift = ax.dtick / 2;\n binStart += (binStart + binshift < dataMin) ? binshift : -binshift;\n }\n }\n return binStart;\n}\n\n\nfunction autoShiftMonthBins(binStart, data, dtick, dataMin, calendar) {\n var stats = Lib.findExactDates(data, calendar);\n // number of data points that needs to be an exact value\n // to shift that increment to (near) the bin center\n var threshold = 0.8;\n\n if(stats.exactDays > threshold) {\n var numMonths = Number(dtick.substr(1));\n\n if((stats.exactYears > threshold) && (numMonths % 12 === 0)) {\n // The exact middle of a non-leap-year is 1.5 days into July\n // so if we start the bins here, all but leap years will\n // get hover-labeled as exact years.\n binStart = axes.tickIncrement(binStart, 'M6', 'reverse') + ONEDAY * 1.5;\n } else if(stats.exactMonths > threshold) {\n // Months are not as clean, but if we shift half the *longest*\n // month (31/2 days) then 31-day months will get labeled exactly\n // and shorter months will get labeled with the correct month\n // but shifted 12-36 hours into it.\n binStart = axes.tickIncrement(binStart, 'M1', 'reverse') + ONEDAY * 15.5;\n } else {\n // Shifting half a day is exact, but since these are month bins it\n // will always give a somewhat odd-looking label, until we do something\n // smarter like showing the bin boundaries (or the bounds of the actual\n // data in each bin)\n binStart -= ONEDAY / 2;\n }\n var nextBinStart = axes.tickIncrement(binStart, dtick);\n\n if(nextBinStart <= dataMin) return nextBinStart;\n }\n return binStart;\n}\n\n// ----------------------------------------------------\n// Ticks and grids\n// ----------------------------------------------------\n\n// ensure we have tick0, dtick, and tick rounding calculated\naxes.prepTicks = function(ax) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n\n // calculate max number of (auto) ticks to display based on plot size\n if(ax.tickmode === 'auto' || !ax.dtick) {\n var nt = ax.nticks;\n var minPx;\n\n if(!nt) {\n if(ax.type === 'category' || ax.type === 'multicategory') {\n minPx = ax.tickfont ? (ax.tickfont.size || 12) * 1.2 : 15;\n nt = ax._length / minPx;\n } else {\n minPx = ax._id.charAt(0) === 'y' ? 40 : 80;\n nt = Lib.constrain(ax._length / minPx, 4, 9) + 1;\n }\n\n // radial axes span half their domain,\n // multiply nticks value by two to get correct number of auto ticks.\n if(ax._name === 'radialaxis') nt *= 2;\n }\n\n // add a couple of extra digits for filling in ticks when we\n // have explicit tickvals without tick text\n if(ax.tickmode === 'array') nt *= 100;\n\n axes.autoTicks(ax, Math.abs(rng[1] - rng[0]) / nt);\n // check for a forced minimum dtick\n if(ax._minDtick > 0 && ax.dtick < ax._minDtick * 2) {\n ax.dtick = ax._minDtick;\n ax.tick0 = ax.l2r(ax._forceTick0);\n }\n }\n\n // check for missing tick0\n if(!ax.tick0) {\n ax.tick0 = (ax.type === 'date') ? '2000-01-01' : 0;\n }\n\n // ensure we don't try to make ticks below our minimum precision\n // see https://github.com/plotly/plotly.js/issues/2892\n if(ax.type === 'date' && ax.dtick < 0.1) ax.dtick = 0.1;\n\n // now figure out rounding of tick values\n autoTickRound(ax);\n};\n\n// calculate the ticks: text, values, positioning\n// if ticks are set to automatic, determine the right values (tick0,dtick)\n// in any case, set tickround to # of digits to round tick labels to,\n// or codes to this effect for log and date scales\naxes.calcTicks = function calcTicks(ax) {\n axes.prepTicks(ax);\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n\n // now that we've figured out the auto values for formatting\n // in case we're missing some ticktext, we can break out for array ticks\n if(ax.tickmode === 'array') return arrayTicks(ax);\n\n // find the first tick\n ax._tmin = axes.tickFirst(ax);\n\n // add a tiny bit so we get ticks which may have rounded out\n var startTick = rng[0] * 1.0001 - rng[1] * 0.0001;\n var endTick = rng[1] * 1.0001 - rng[0] * 0.0001;\n // check for reversed axis\n var axrev = (rng[1] < rng[0]);\n\n // No visible ticks? Quit.\n // I've only seen this on category axes with all categories off the edge.\n if((ax._tmin < startTick) !== axrev) return [];\n\n // return the full set of tick vals\n var tickVals = [];\n if(ax.type === 'category' || ax.type === 'multicategory') {\n endTick = (axrev) ? Math.max(-0.5, endTick) :\n Math.min(ax._categories.length - 0.5, endTick);\n }\n\n var isDLog = (ax.type === 'log') && !(isNumeric(ax.dtick) || ax.dtick.charAt(0) === 'L');\n\n var xPrevious = null;\n var maxTicks = Math.max(1000, ax._length || 0);\n for(var x = ax._tmin;\n (axrev) ? (x >= endTick) : (x <= endTick);\n x = axes.tickIncrement(x, ax.dtick, axrev, ax.calendar)) {\n // prevent infinite loops - no more than one tick per pixel,\n // and make sure each value is different from the previous\n if(tickVals.length > maxTicks || x === xPrevious) break;\n xPrevious = x;\n\n var minor = false;\n if(isDLog && (x !== (x | 0))) {\n minor = true;\n }\n\n tickVals.push({\n minor: minor,\n value: x\n });\n }\n\n // If same angle over a full circle, the last tick vals is a duplicate.\n // TODO must do something similar for angular date axes.\n if(isAngular(ax) && Math.abs(rng[1] - rng[0]) === 360) {\n tickVals.pop();\n }\n\n // save the last tick as well as first, so we can\n // show the exponent only on the last one\n ax._tmax = (tickVals[tickVals.length - 1] || {}).value;\n\n // for showing the rest of a date when the main tick label is only the\n // latter part: ax._prevDateHead holds what we showed most recently.\n // Start with it cleared and mark that we're in calcTicks (ie calculating a\n // whole string of these so we should care what the previous date head was!)\n ax._prevDateHead = '';\n ax._inCalcTicks = true;\n\n var ticksOut = new Array(tickVals.length);\n for(var i = 0; i < tickVals.length; i++) {\n ticksOut[i] = axes.tickText(\n ax,\n tickVals[i].value,\n false, // hover\n tickVals[i].minor // noSuffixPrefix\n );\n }\n\n ax._inCalcTicks = false;\n\n return ticksOut;\n};\n\nfunction arrayTicks(ax) {\n var vals = ax.tickvals;\n var text = ax.ticktext;\n var ticksOut = new Array(vals.length);\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n var r0expanded = rng[0] * 1.0001 - rng[1] * 0.0001;\n var r1expanded = rng[1] * 1.0001 - rng[0] * 0.0001;\n var tickMin = Math.min(r0expanded, r1expanded);\n var tickMax = Math.max(r0expanded, r1expanded);\n var j = 0;\n\n // without a text array, just format the given values as any other ticks\n // except with more precision to the numbers\n if(!Array.isArray(text)) text = [];\n\n // make sure showing ticks doesn't accidentally add new categories\n // TODO multicategory, if we allow ticktext / tickvals\n var tickVal2l = ax.type === 'category' ? ax.d2l_noadd : ax.d2l;\n\n // array ticks on log axes always show the full number\n // (if no explicit ticktext overrides it)\n if(ax.type === 'log' && String(ax.dtick).charAt(0) !== 'L') {\n ax.dtick = 'L' + Math.pow(10, Math.floor(Math.min(ax.range[0], ax.range[1])) - 1);\n }\n\n for(var i = 0; i < vals.length; i++) {\n var vali = tickVal2l(vals[i]);\n if(vali > tickMin && vali < tickMax) {\n if(text[i] === undefined) ticksOut[j] = axes.tickText(ax, vali);\n else ticksOut[j] = tickTextObj(ax, vali, String(text[i]));\n j++;\n }\n }\n\n if(j < vals.length) ticksOut.splice(j, vals.length - j);\n\n return ticksOut;\n}\n\nvar roundBase10 = [2, 5, 10];\nvar roundBase24 = [1, 2, 3, 6, 12];\nvar roundBase60 = [1, 2, 5, 10, 15, 30];\n// 2&3 day ticks are weird, but need something btwn 1&7\nvar roundDays = [1, 2, 3, 7, 14];\n// approx. tick positions for log axes, showing all (1) and just 1, 2, 5 (2)\n// these don't have to be exact, just close enough to round to the right value\nvar roundLog1 = [-0.046, 0, 0.301, 0.477, 0.602, 0.699, 0.778, 0.845, 0.903, 0.954, 1];\nvar roundLog2 = [-0.301, 0, 0.301, 0.699, 1];\n// N.B. `thetaunit; 'radians' angular axes must be converted to degrees\nvar roundAngles = [15, 30, 45, 90, 180];\n\nfunction roundDTick(roughDTick, base, roundingSet) {\n return base * Lib.roundUp(roughDTick / base, roundingSet);\n}\n\n// autoTicks: calculate best guess at pleasant ticks for this axis\n// inputs:\n// ax - an axis object\n// roughDTick - rough tick spacing (to be turned into a nice round number)\n// outputs (into ax):\n// tick0: starting point for ticks (not necessarily on the graph)\n// usually 0 for numeric (=10^0=1 for log) or jan 1, 2000 for dates\n// dtick: the actual, nice round tick spacing, usually a little larger than roughDTick\n// if the ticks are spaced linearly (linear scale, categories,\n// log with only full powers, date ticks < month),\n// this will just be a number\n// months: M#\n// years: M# where # is 12*number of years\n// log with linear ticks: L# where # is the linear tick spacing\n// log showing powers plus some intermediates:\n// D1 shows all digits, D2 shows 2 and 5\naxes.autoTicks = function(ax, roughDTick) {\n var base;\n\n function getBase(v) {\n return Math.pow(v, Math.floor(Math.log(roughDTick) / Math.LN10));\n }\n\n if(ax.type === 'date') {\n ax.tick0 = Lib.dateTick0(ax.calendar);\n // the criteria below are all based on the rough spacing we calculate\n // being > half of the final unit - so precalculate twice the rough val\n var roughX2 = 2 * roughDTick;\n\n if(roughX2 > ONEAVGYEAR) {\n roughDTick /= ONEAVGYEAR;\n base = getBase(10);\n ax.dtick = 'M' + (12 * roundDTick(roughDTick, base, roundBase10));\n } else if(roughX2 > ONEAVGMONTH) {\n roughDTick /= ONEAVGMONTH;\n ax.dtick = 'M' + roundDTick(roughDTick, 1, roundBase24);\n } else if(roughX2 > ONEDAY) {\n ax.dtick = roundDTick(roughDTick, ONEDAY, roundDays);\n // get week ticks on sunday\n // this will also move the base tick off 2000-01-01 if dtick is\n // 2 or 3 days... but that's a weird enough case that we'll ignore it.\n ax.tick0 = Lib.dateTick0(ax.calendar, true);\n } else if(roughX2 > ONEHOUR) {\n ax.dtick = roundDTick(roughDTick, ONEHOUR, roundBase24);\n } else if(roughX2 > ONEMIN) {\n ax.dtick = roundDTick(roughDTick, ONEMIN, roundBase60);\n } else if(roughX2 > ONESEC) {\n ax.dtick = roundDTick(roughDTick, ONESEC, roundBase60);\n } else {\n // milliseconds\n base = getBase(10);\n ax.dtick = roundDTick(roughDTick, base, roundBase10);\n }\n } else if(ax.type === 'log') {\n ax.tick0 = 0;\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n\n if(roughDTick > 0.7) {\n // only show powers of 10\n ax.dtick = Math.ceil(roughDTick);\n } else if(Math.abs(rng[1] - rng[0]) < 1) {\n // span is less than one power of 10\n var nt = 1.5 * Math.abs((rng[1] - rng[0]) / roughDTick);\n\n // ticks on a linear scale, labeled fully\n roughDTick = Math.abs(Math.pow(10, rng[1]) -\n Math.pow(10, rng[0])) / nt;\n base = getBase(10);\n ax.dtick = 'L' + roundDTick(roughDTick, base, roundBase10);\n } else {\n // include intermediates between powers of 10,\n // labeled with small digits\n // ax.dtick = \"D2\" (show 2 and 5) or \"D1\" (show all digits)\n ax.dtick = (roughDTick > 0.3) ? 'D2' : 'D1';\n }\n } else if(ax.type === 'category' || ax.type === 'multicategory') {\n ax.tick0 = 0;\n ax.dtick = Math.ceil(Math.max(roughDTick, 1));\n } else if(isAngular(ax)) {\n ax.tick0 = 0;\n base = 1;\n ax.dtick = roundDTick(roughDTick, base, roundAngles);\n } else {\n // auto ticks always start at 0\n ax.tick0 = 0;\n base = getBase(10);\n ax.dtick = roundDTick(roughDTick, base, roundBase10);\n }\n\n // prevent infinite loops\n if(ax.dtick === 0) ax.dtick = 1;\n\n // TODO: this is from log axis histograms with autorange off\n if(!isNumeric(ax.dtick) && typeof ax.dtick !== 'string') {\n var olddtick = ax.dtick;\n ax.dtick = 1;\n throw 'ax.dtick error: ' + String(olddtick);\n }\n};\n\n// after dtick is already known, find tickround = precision\n// to display in tick labels\n// for numeric ticks, integer # digits after . to round to\n// for date ticks, the last date part to show (y,m,d,H,M,S)\n// or an integer # digits past seconds\nfunction autoTickRound(ax) {\n var dtick = ax.dtick;\n\n ax._tickexponent = 0;\n if(!isNumeric(dtick) && typeof dtick !== 'string') {\n dtick = 1;\n }\n\n if(ax.type === 'category' || ax.type === 'multicategory') {\n ax._tickround = null;\n }\n if(ax.type === 'date') {\n // If tick0 is unusual, give tickround a bit more information\n // not necessarily *all* the information in tick0 though, if it's really odd\n // minimal string length for tick0: 'd' is 10, 'M' is 16, 'S' is 19\n // take off a leading minus (year < 0) and i (intercalary month) so length is consistent\n var tick0ms = ax.r2l(ax.tick0);\n var tick0str = ax.l2r(tick0ms).replace(/(^-|i)/g, '');\n var tick0len = tick0str.length;\n\n if(String(dtick).charAt(0) === 'M') {\n // any tick0 more specific than a year: alway show the full date\n if(tick0len > 10 || tick0str.substr(5) !== '01-01') ax._tickround = 'd';\n // show the month unless ticks are full multiples of a year\n else ax._tickround = (+(dtick.substr(1)) % 12 === 0) ? 'y' : 'm';\n } else if((dtick >= ONEDAY && tick0len <= 10) || (dtick >= ONEDAY * 15)) ax._tickround = 'd';\n else if((dtick >= ONEMIN && tick0len <= 16) || (dtick >= ONEHOUR)) ax._tickround = 'M';\n else if((dtick >= ONESEC && tick0len <= 19) || (dtick >= ONEMIN)) ax._tickround = 'S';\n else {\n // tickround is a number of digits of fractional seconds\n // of any two adjacent ticks, at least one will have the maximum fractional digits\n // of all possible ticks - so take the max. length of tick0 and the next one\n var tick1len = ax.l2r(tick0ms + dtick).replace(/^-/, '').length;\n ax._tickround = Math.max(tick0len, tick1len) - 20;\n\n // We shouldn't get here... but in case there's a situation I'm\n // not thinking of where tick0str and tick1str are identical or\n // something, fall back on maximum precision\n if(ax._tickround < 0) ax._tickround = 4;\n }\n } else if(isNumeric(dtick) || dtick.charAt(0) === 'L') {\n // linear or log (except D1, D2)\n var rng = ax.range.map(ax.r2d || Number);\n if(!isNumeric(dtick)) dtick = Number(dtick.substr(1));\n // 2 digits past largest digit of dtick\n ax._tickround = 2 - Math.floor(Math.log(dtick) / Math.LN10 + 0.01);\n\n var maxend = Math.max(Math.abs(rng[0]), Math.abs(rng[1]));\n var rangeexp = Math.floor(Math.log(maxend) / Math.LN10 + 0.01);\n if(Math.abs(rangeexp) > 3) {\n if(isSIFormat(ax.exponentformat) && !beyondSI(rangeexp)) {\n ax._tickexponent = 3 * Math.round((rangeexp - 1) / 3);\n } else ax._tickexponent = rangeexp;\n }\n } else {\n // D1 or D2 (log)\n ax._tickround = null;\n }\n}\n\n// months and years don't have constant millisecond values\n// (but a year is always 12 months so we only need months)\n// log-scale ticks are also not consistently spaced, except\n// for pure powers of 10\n// numeric ticks always have constant differences, other datetime ticks\n// can all be calculated as constant number of milliseconds\naxes.tickIncrement = function(x, dtick, axrev, calendar) {\n var axSign = axrev ? -1 : 1;\n\n // includes linear, all dates smaller than month, and pure 10^n in log\n if(isNumeric(dtick)) return x + axSign * dtick;\n\n // everything else is a string, one character plus a number\n var tType = dtick.charAt(0);\n var dtSigned = axSign * Number(dtick.substr(1));\n\n // Dates: months (or years - see Lib.incrementMonth)\n if(tType === 'M') return Lib.incrementMonth(x, dtSigned, calendar);\n\n // Log scales: Linear, Digits\n else if(tType === 'L') return Math.log(Math.pow(10, x) + dtSigned) / Math.LN10;\n\n // log10 of 2,5,10, or all digits (logs just have to be\n // close enough to round)\n else if(tType === 'D') {\n var tickset = (dtick === 'D2') ? roundLog2 : roundLog1;\n var x2 = x + axSign * 0.01;\n var frac = Lib.roundUp(Lib.mod(x2, 1), tickset, axrev);\n\n return Math.floor(x2) +\n Math.log(d3.round(Math.pow(10, frac), 1)) / Math.LN10;\n } else throw 'unrecognized dtick ' + String(dtick);\n};\n\n// calculate the first tick on an axis\naxes.tickFirst = function(ax) {\n var r2l = ax.r2l || Number;\n var rng = Lib.simpleMap(ax.range, r2l);\n var axrev = rng[1] < rng[0];\n var sRound = axrev ? Math.floor : Math.ceil;\n // add a tiny extra bit to make sure we get ticks\n // that may have been rounded out\n var r0 = rng[0] * 1.0001 - rng[1] * 0.0001;\n var dtick = ax.dtick;\n var tick0 = r2l(ax.tick0);\n\n if(isNumeric(dtick)) {\n var tmin = sRound((r0 - tick0) / dtick) * dtick + tick0;\n\n // make sure no ticks outside the category list\n if(ax.type === 'category' || ax.type === 'multicategory') {\n tmin = Lib.constrain(tmin, 0, ax._categories.length - 1);\n }\n return tmin;\n }\n\n var tType = dtick.charAt(0);\n var dtNum = Number(dtick.substr(1));\n\n // Dates: months (or years)\n if(tType === 'M') {\n var cnt = 0;\n var t0 = tick0;\n var t1, mult, newDTick;\n\n // This algorithm should work for *any* nonlinear (but close to linear!)\n // tick spacing. Limit to 10 iterations, for gregorian months it's normally <=3.\n while(cnt < 10) {\n t1 = axes.tickIncrement(t0, dtick, axrev, ax.calendar);\n if((t1 - r0) * (t0 - r0) <= 0) {\n // t1 and t0 are on opposite sides of r0! we've succeeded!\n if(axrev) return Math.min(t0, t1);\n return Math.max(t0, t1);\n }\n mult = (r0 - ((t0 + t1) / 2)) / (t1 - t0);\n newDTick = tType + ((Math.abs(Math.round(mult)) || 1) * dtNum);\n t0 = axes.tickIncrement(t0, newDTick, mult < 0 ? !axrev : axrev, ax.calendar);\n cnt++;\n }\n Lib.error('tickFirst did not converge', ax);\n return t0;\n } else if(tType === 'L') {\n // Log scales: Linear, Digits\n\n return Math.log(sRound(\n (Math.pow(10, r0) - tick0) / dtNum) * dtNum + tick0) / Math.LN10;\n } else if(tType === 'D') {\n var tickset = (dtick === 'D2') ? roundLog2 : roundLog1;\n var frac = Lib.roundUp(Lib.mod(r0, 1), tickset, axrev);\n\n return Math.floor(r0) +\n Math.log(d3.round(Math.pow(10, frac), 1)) / Math.LN10;\n } else throw 'unrecognized dtick ' + String(dtick);\n};\n\n// draw the text for one tick.\n// px,py are the location on gd.paper\n// prefix is there so the x axis ticks can be dropped a line\n// ax is the axis layout, x is the tick value\n// hover is a (truthy) flag for whether to show numbers with a bit\n// more precision for hovertext\naxes.tickText = function(ax, x, hover, noSuffixPrefix) {\n var out = tickTextObj(ax, x);\n var arrayMode = ax.tickmode === 'array';\n var extraPrecision = hover || arrayMode;\n var axType = ax.type;\n // TODO multicategory, if we allow ticktext / tickvals\n var tickVal2l = axType === 'category' ? ax.d2l_noadd : ax.d2l;\n var i;\n\n if(arrayMode && Array.isArray(ax.ticktext)) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n var minDiff = Math.abs(rng[1] - rng[0]) / 10000;\n\n for(i = 0; i < ax.ticktext.length; i++) {\n if(Math.abs(x - tickVal2l(ax.tickvals[i])) < minDiff) break;\n }\n if(i < ax.ticktext.length) {\n out.text = String(ax.ticktext[i]);\n return out;\n }\n }\n\n function isHidden(showAttr) {\n if(showAttr === undefined) return true;\n if(hover) return showAttr === 'none';\n\n var firstOrLast = {\n first: ax._tmin,\n last: ax._tmax\n }[showAttr];\n\n return showAttr !== 'all' && x !== firstOrLast;\n }\n\n var hideexp = hover ?\n 'never' :\n ax.exponentformat !== 'none' && isHidden(ax.showexponent) ? 'hide' : '';\n\n if(axType === 'date') formatDate(ax, out, hover, extraPrecision);\n else if(axType === 'log') formatLog(ax, out, hover, extraPrecision, hideexp);\n else if(axType === 'category') formatCategory(ax, out);\n else if(axType === 'multicategory') formatMultiCategory(ax, out, hover);\n else if(isAngular(ax)) formatAngle(ax, out, hover, extraPrecision, hideexp);\n else formatLinear(ax, out, hover, extraPrecision, hideexp);\n\n // add prefix and suffix\n if(!noSuffixPrefix) {\n if(ax.tickprefix && !isHidden(ax.showtickprefix)) out.text = ax.tickprefix + out.text;\n if(ax.ticksuffix && !isHidden(ax.showticksuffix)) out.text += ax.ticksuffix;\n }\n\n // Setup ticks and grid lines boundaries\n // at 1/2 a 'category' to the left/bottom\n if(ax.tickson === 'boundaries' || ax.showdividers) {\n var inbounds = function(v) {\n var p = ax.l2p(v);\n return p >= 0 && p <= ax._length ? v : null;\n };\n\n out.xbnd = [\n inbounds(out.x - 0.5),\n inbounds(out.x + ax.dtick - 0.5)\n ];\n }\n\n return out;\n};\n\n/**\n * create text for a hover label on this axis, with special handling of\n * log axes (where negative values can't be displayed but can appear in hover text)\n *\n * @param {object} ax: the axis to format text for\n * @param {number} val: calcdata value to format\n * @param {Optional(number)} val2: a second value to display\n *\n * @returns {string} `val` formatted as a string appropriate to this axis, or\n * `val` and `val2` as a range (ie ' - ') if `val2` is provided and\n * it's different from `val`.\n */\naxes.hoverLabelText = function(ax, val, val2) {\n if(val2 !== BADNUM && val2 !== val) {\n return axes.hoverLabelText(ax, val) + ' - ' + axes.hoverLabelText(ax, val2);\n }\n\n var logOffScale = (ax.type === 'log' && val <= 0);\n var tx = axes.tickText(ax, ax.c2l(logOffScale ? -val : val), 'hover').text;\n\n if(logOffScale) {\n return val === 0 ? '0' : MINUS_SIGN + tx;\n }\n\n // TODO: should we do something special if the axis calendar and\n // the data calendar are different? Somehow display both dates with\n // their system names? Right now it will just display in the axis calendar\n // but users could add the other one as text.\n return tx;\n};\n\nfunction tickTextObj(ax, x, text) {\n var tf = ax.tickfont || {};\n\n return {\n x: x,\n dx: 0,\n dy: 0,\n text: text || '',\n fontSize: tf.size,\n font: tf.family,\n fontColor: tf.color\n };\n}\n\nfunction formatDate(ax, out, hover, extraPrecision) {\n var tr = ax._tickround;\n var fmt = (hover && ax.hoverformat) || axes.getTickFormat(ax);\n\n if(extraPrecision) {\n // second or sub-second precision: extra always shows max digits.\n // for other fields, extra precision just adds one field.\n if(isNumeric(tr)) tr = 4;\n else tr = {y: 'm', m: 'd', d: 'M', M: 'S', S: 4}[tr];\n }\n\n var dateStr = Lib.formatDate(out.x, fmt, tr, ax._dateFormat, ax.calendar, ax._extraFormat);\n var headStr;\n\n var splitIndex = dateStr.indexOf('\\n');\n if(splitIndex !== -1) {\n headStr = dateStr.substr(splitIndex + 1);\n dateStr = dateStr.substr(0, splitIndex);\n }\n\n if(extraPrecision) {\n // if extraPrecision led to trailing zeros, strip them off\n // actually, this can lead to removing even more zeros than\n // in the original rounding, but that's fine because in these\n // contexts uniformity is not so important (if there's even\n // anything to be uniform with!)\n\n // can we remove the whole time part?\n if(dateStr === '00:00:00' || dateStr === '00:00') {\n dateStr = headStr;\n headStr = '';\n } else if(dateStr.length === 8) {\n // strip off seconds if they're zero (zero fractional seconds\n // are already omitted)\n // but we never remove minutes and leave just hours\n dateStr = dateStr.replace(/:00$/, '');\n }\n }\n\n if(headStr) {\n if(hover) {\n // hover puts it all on one line, so headPart works best up front\n // except for year headPart: turn this into \"Jan 1, 2000\" etc.\n if(tr === 'd') dateStr += ', ' + headStr;\n else dateStr = headStr + (dateStr ? ', ' + dateStr : '');\n } else if(!ax._inCalcTicks || (headStr !== ax._prevDateHead)) {\n dateStr += '
' + headStr;\n ax._prevDateHead = headStr;\n }\n }\n\n out.text = dateStr;\n}\n\nfunction formatLog(ax, out, hover, extraPrecision, hideexp) {\n var dtick = ax.dtick;\n var x = out.x;\n var tickformat = ax.tickformat;\n var dtChar0 = typeof dtick === 'string' && dtick.charAt(0);\n\n if(hideexp === 'never') {\n // If this is a hover label, then we must *never* hide the exponent\n // for the sake of display, which could give the wrong value by\n // potentially many orders of magnitude. If hideexp was 'never', then\n // it's now succeeded by preventing the other condition from automating\n // this choice. Thus we can unset it so that the axis formatting takes\n // precedence.\n hideexp = '';\n }\n\n if(extraPrecision && (dtChar0 !== 'L')) {\n dtick = 'L3';\n dtChar0 = 'L';\n }\n\n if(tickformat || (dtChar0 === 'L')) {\n out.text = numFormat(Math.pow(10, x), ax, hideexp, extraPrecision);\n } else if(isNumeric(dtick) || ((dtChar0 === 'D') && (Lib.mod(x + 0.01, 1) < 0.1))) {\n var p = Math.round(x);\n var absP = Math.abs(p);\n var exponentFormat = ax.exponentformat;\n if(exponentFormat === 'power' || (isSIFormat(exponentFormat) && beyondSI(p))) {\n if(p === 0) out.text = 1;\n else if(p === 1) out.text = '10';\n else out.text = '10' + (p > 1 ? '' : MINUS_SIGN) + absP + '';\n\n out.fontSize *= 1.25;\n } else if((exponentFormat === 'e' || exponentFormat === 'E') && absP > 2) {\n out.text = '1' + exponentFormat + (p > 0 ? '+' : MINUS_SIGN) + absP;\n } else {\n out.text = numFormat(Math.pow(10, x), ax, '', 'fakehover');\n if(dtick === 'D1' && ax._id.charAt(0) === 'y') {\n out.dy -= out.fontSize / 6;\n }\n }\n } else if(dtChar0 === 'D') {\n out.text = String(Math.round(Math.pow(10, Lib.mod(x, 1))));\n out.fontSize *= 0.75;\n } else throw 'unrecognized dtick ' + String(dtick);\n\n // if 9's are printed on log scale, move the 10's away a bit\n if(ax.dtick === 'D1') {\n var firstChar = String(out.text).charAt(0);\n if(firstChar === '0' || firstChar === '1') {\n if(ax._id.charAt(0) === 'y') {\n out.dx -= out.fontSize / 4;\n } else {\n out.dy += out.fontSize / 2;\n out.dx += (ax.range[1] > ax.range[0] ? 1 : -1) *\n out.fontSize * (x < 0 ? 0.5 : 0.25);\n }\n }\n }\n}\n\nfunction formatCategory(ax, out) {\n var tt = ax._categories[Math.round(out.x)];\n if(tt === undefined) tt = '';\n out.text = String(tt);\n}\n\nfunction formatMultiCategory(ax, out, hover) {\n var v = Math.round(out.x);\n var cats = ax._categories[v] || [];\n var tt = cats[1] === undefined ? '' : String(cats[1]);\n var tt2 = cats[0] === undefined ? '' : String(cats[0]);\n\n if(hover) {\n // TODO is this what we want?\n out.text = tt2 + ' - ' + tt;\n } else {\n // setup for secondary labels\n out.text = tt;\n out.text2 = tt2;\n }\n}\n\nfunction formatLinear(ax, out, hover, extraPrecision, hideexp) {\n if(hideexp === 'never') {\n // If this is a hover label, then we must *never* hide the exponent\n // for the sake of display, which could give the wrong value by\n // potentially many orders of magnitude. If hideexp was 'never', then\n // it's now succeeded by preventing the other condition from automating\n // this choice. Thus we can unset it so that the axis formatting takes\n // precedence.\n hideexp = '';\n } else if(ax.showexponent === 'all' && Math.abs(out.x / ax.dtick) < 1e-6) {\n // don't add an exponent to zero if we're showing all exponents\n // so the only reason you'd show an exponent on zero is if it's the\n // ONLY tick to get an exponent (first or last)\n hideexp = 'hide';\n }\n out.text = numFormat(out.x, ax, hideexp, extraPrecision);\n}\n\nfunction formatAngle(ax, out, hover, extraPrecision, hideexp) {\n if(ax.thetaunit === 'radians' && !hover) {\n var num = out.x / 180;\n\n if(num === 0) {\n out.text = '0';\n } else {\n var frac = num2frac(num);\n\n if(frac[1] >= 100) {\n out.text = numFormat(Lib.deg2rad(out.x), ax, hideexp, extraPrecision);\n } else {\n var isNeg = out.x < 0;\n\n if(frac[1] === 1) {\n if(frac[0] === 1) out.text = 'π';\n else out.text = frac[0] + 'π';\n } else {\n out.text = [\n '', frac[0], '',\n '⁄',\n '', frac[1], '',\n 'π'\n ].join('');\n }\n\n if(isNeg) out.text = MINUS_SIGN + out.text;\n }\n }\n } else {\n out.text = numFormat(out.x, ax, hideexp, extraPrecision);\n }\n}\n\n// inspired by\n// https://github.com/yisibl/num2fraction/blob/master/index.js\nfunction num2frac(num) {\n function almostEq(a, b) {\n return Math.abs(a - b) <= 1e-6;\n }\n\n function findGCD(a, b) {\n return almostEq(b, 0) ? a : findGCD(b, a % b);\n }\n\n function findPrecision(n) {\n var e = 1;\n while(!almostEq(Math.round(n * e) / e, n)) {\n e *= 10;\n }\n return e;\n }\n\n var precision = findPrecision(num);\n var number = num * precision;\n var gcd = Math.abs(findGCD(number, precision));\n\n return [\n // numerator\n Math.round(number / gcd),\n // denominator\n Math.round(precision / gcd)\n ];\n}\n\n// format a number (tick value) according to the axis settings\n// new, more reliable procedure than d3.round or similar:\n// add half the rounding increment, then stringify and truncate\n// also automatically switch to sci. notation\nvar SIPREFIXES = ['f', 'p', 'n', 'μ', 'm', '', 'k', 'M', 'G', 'T'];\n\nfunction isSIFormat(exponentFormat) {\n return exponentFormat === 'SI' || exponentFormat === 'B';\n}\n\n// are we beyond the range of common SI prefixes?\n// 10^-16 -> 1x10^-16\n// 10^-15 -> 1f\n// ...\n// 10^14 -> 100T\n// 10^15 -> 1x10^15\n// 10^16 -> 1x10^16\nfunction beyondSI(exponent) {\n return exponent > 14 || exponent < -15;\n}\n\nfunction numFormat(v, ax, fmtoverride, hover) {\n var isNeg = v < 0;\n // max number of digits past decimal point to show\n var tickRound = ax._tickround;\n var exponentFormat = fmtoverride || ax.exponentformat || 'B';\n var exponent = ax._tickexponent;\n var tickformat = axes.getTickFormat(ax);\n var separatethousands = ax.separatethousands;\n\n // special case for hover: set exponent just for this value, and\n // add a couple more digits of precision over tick labels\n if(hover) {\n // make a dummy axis obj to get the auto rounding and exponent\n var ah = {\n exponentformat: exponentFormat,\n dtick: ax.showexponent === 'none' ? ax.dtick :\n (isNumeric(v) ? Math.abs(v) || 1 : 1),\n // if not showing any exponents, don't change the exponent\n // from what we calculate\n range: ax.showexponent === 'none' ? ax.range.map(ax.r2d) : [0, v || 1]\n };\n autoTickRound(ah);\n tickRound = (Number(ah._tickround) || 0) + 4;\n exponent = ah._tickexponent;\n if(ax.hoverformat) tickformat = ax.hoverformat;\n }\n\n if(tickformat) return ax._numFormat(tickformat)(v).replace(/-/g, MINUS_SIGN);\n\n // 'epsilon' - rounding increment\n var e = Math.pow(10, -tickRound) / 2;\n\n // exponentFormat codes:\n // 'e' (1.2e+6, default)\n // 'E' (1.2E+6)\n // 'SI' (1.2M)\n // 'B' (same as SI except 10^9=B not G)\n // 'none' (1200000)\n // 'power' (1.2x10^6)\n // 'hide' (1.2, use 3rd argument=='hide' to eg\n // only show exponent on last tick)\n if(exponentFormat === 'none') exponent = 0;\n\n // take the sign out, put it back manually at the end\n // - makes cases easier\n v = Math.abs(v);\n if(v < e) {\n // 0 is just 0, but may get exponent if it's the last tick\n v = '0';\n isNeg = false;\n } else {\n v += e;\n // take out a common exponent, if any\n if(exponent) {\n v *= Math.pow(10, -exponent);\n tickRound += exponent;\n }\n // round the mantissa\n if(tickRound === 0) v = String(Math.floor(v));\n else if(tickRound < 0) {\n v = String(Math.round(v));\n v = v.substr(0, v.length + tickRound);\n for(var i = tickRound; i < 0; i++) v += '0';\n } else {\n v = String(v);\n var dp = v.indexOf('.') + 1;\n if(dp) v = v.substr(0, dp + tickRound).replace(/\\.?0+$/, '');\n }\n // insert appropriate decimal point and thousands separator\n v = Lib.numSeparate(v, ax._separators, separatethousands);\n }\n\n // add exponent\n if(exponent && exponentFormat !== 'hide') {\n if(isSIFormat(exponentFormat) && beyondSI(exponent)) exponentFormat = 'power';\n\n var signedExponent;\n if(exponent < 0) signedExponent = MINUS_SIGN + -exponent;\n else if(exponentFormat !== 'power') signedExponent = '+' + exponent;\n else signedExponent = String(exponent);\n\n if(exponentFormat === 'e' || exponentFormat === 'E') {\n v += exponentFormat + signedExponent;\n } else if(exponentFormat === 'power') {\n v += '×10' + signedExponent + '';\n } else if(exponentFormat === 'B' && exponent === 9) {\n v += 'B';\n } else if(isSIFormat(exponentFormat)) {\n v += SIPREFIXES[exponent / 3 + 5];\n }\n }\n\n // put sign back in and return\n // replace standard minus character (which is technically a hyphen)\n // with a true minus sign\n if(isNeg) return MINUS_SIGN + v;\n return v;\n}\n\naxes.getTickFormat = function(ax) {\n var i;\n\n function convertToMs(dtick) {\n return typeof dtick !== 'string' ? dtick : Number(dtick.replace('M', '')) * ONEAVGMONTH;\n }\n\n function compareLogTicks(left, right) {\n var priority = ['L', 'D'];\n if(typeof left === typeof right) {\n if(typeof left === 'number') {\n return left - right;\n } else {\n var leftPriority = priority.indexOf(left.charAt(0));\n var rightPriority = priority.indexOf(right.charAt(0));\n if(leftPriority === rightPriority) {\n return Number(left.replace(/(L|D)/g, '')) - Number(right.replace(/(L|D)/g, ''));\n } else {\n return leftPriority - rightPriority;\n }\n }\n } else {\n return typeof left === 'number' ? 1 : -1;\n }\n }\n\n function isProperStop(dtick, range, convert) {\n var convertFn = convert || function(x) { return x;};\n var leftDtick = range[0];\n var rightDtick = range[1];\n return ((!leftDtick && typeof leftDtick !== 'number') || convertFn(leftDtick) <= convertFn(dtick)) &&\n ((!rightDtick && typeof rightDtick !== 'number') || convertFn(rightDtick) >= convertFn(dtick));\n }\n\n function isProperLogStop(dtick, range) {\n var isLeftDtickNull = range[0] === null;\n var isRightDtickNull = range[1] === null;\n var isDtickInRangeLeft = compareLogTicks(dtick, range[0]) >= 0;\n var isDtickInRangeRight = compareLogTicks(dtick, range[1]) <= 0;\n return (isLeftDtickNull || isDtickInRangeLeft) && (isRightDtickNull || isDtickInRangeRight);\n }\n\n var tickstop, stopi;\n if(ax.tickformatstops && ax.tickformatstops.length > 0) {\n switch(ax.type) {\n case 'date':\n case 'linear': {\n for(i = 0; i < ax.tickformatstops.length; i++) {\n stopi = ax.tickformatstops[i];\n if(stopi.enabled && isProperStop(ax.dtick, stopi.dtickrange, convertToMs)) {\n tickstop = stopi;\n break;\n }\n }\n break;\n }\n case 'log': {\n for(i = 0; i < ax.tickformatstops.length; i++) {\n stopi = ax.tickformatstops[i];\n if(stopi.enabled && isProperLogStop(ax.dtick, stopi.dtickrange)) {\n tickstop = stopi;\n break;\n }\n }\n break;\n }\n default:\n }\n }\n return tickstop ? tickstop.value : ax.tickformat;\n};\n\n// getSubplots - extract all subplot IDs we need\n// as an array of items like 'xy', 'x2y', 'x2y2'...\n// sorted by x (x,x2,x3...) then y\n// optionally restrict to only subplots containing axis object ax\n//\n// NOTE: this is currently only used OUTSIDE plotly.js (toolpanel, webapp)\n// ideally we get rid of it there (or just copy this there) and remove it here\naxes.getSubplots = function(gd, ax) {\n var subplotObj = gd._fullLayout._subplots;\n var allSubplots = subplotObj.cartesian.concat(subplotObj.gl2d || []);\n\n var out = ax ? axes.findSubplotsWithAxis(allSubplots, ax) : allSubplots;\n\n out.sort(function(a, b) {\n var aParts = a.substr(1).split('y');\n var bParts = b.substr(1).split('y');\n\n if(aParts[0] === bParts[0]) return +aParts[1] - +bParts[1];\n return +aParts[0] - +bParts[0];\n });\n\n return out;\n};\n\n// find all subplots with axis 'ax'\n// NOTE: this is only used in axes.getSubplots (only used outside plotly.js) and\n// gl2d/convert (where it restricts axis subplots to only those with gl2d)\naxes.findSubplotsWithAxis = function(subplots, ax) {\n var axMatch = new RegExp(\n (ax._id.charAt(0) === 'x') ? ('^' + ax._id + 'y') : (ax._id + '$')\n );\n var subplotsWithAx = [];\n\n for(var i = 0; i < subplots.length; i++) {\n var sp = subplots[i];\n if(axMatch.test(sp)) subplotsWithAx.push(sp);\n }\n\n return subplotsWithAx;\n};\n\n// makeClipPaths: prepare clipPaths for all single axes and all possible xy pairings\naxes.makeClipPaths = function(gd) {\n var fullLayout = gd._fullLayout;\n\n // for more info: https://github.com/plotly/plotly.js/issues/2595\n if(fullLayout._hasOnlyLargeSploms) return;\n\n var fullWidth = {_offset: 0, _length: fullLayout.width, _id: ''};\n var fullHeight = {_offset: 0, _length: fullLayout.height, _id: ''};\n var xaList = axes.list(gd, 'x', true);\n var yaList = axes.list(gd, 'y', true);\n var clipList = [];\n var i, j;\n\n for(i = 0; i < xaList.length; i++) {\n clipList.push({x: xaList[i], y: fullHeight});\n for(j = 0; j < yaList.length; j++) {\n if(i === 0) clipList.push({x: fullWidth, y: yaList[j]});\n clipList.push({x: xaList[i], y: yaList[j]});\n }\n }\n\n // selectors don't work right with camelCase tags,\n // have to use class instead\n // https://groups.google.com/forum/#!topic/d3-js/6EpAzQ2gU9I\n var axClips = fullLayout._clips.selectAll('.axesclip')\n .data(clipList, function(d) { return d.x._id + d.y._id; });\n\n axClips.enter().append('clipPath')\n .classed('axesclip', true)\n .attr('id', function(d) { return 'clip' + fullLayout._uid + d.x._id + d.y._id; })\n .append('rect');\n\n axClips.exit().remove();\n\n axClips.each(function(d) {\n d3.select(this).select('rect').attr({\n x: d.x._offset || 0,\n y: d.y._offset || 0,\n width: d.x._length || 1,\n height: d.y._length || 1\n });\n });\n};\n\n/**\n * Main multi-axis drawing routine!\n *\n * @param {DOM element} gd : graph div\n * @param {string or array of strings} arg : polymorphic argument\n * @param {object} opts:\n * - @param {boolean} skipTitle : optional flag to skip axis title draw/update\n *\n * Signature 1: Axes.draw(gd, 'redraw')\n * use this to clear and redraw all axes on graph\n *\n * Signature 2: Axes.draw(gd, '')\n * use this to draw all axes on graph w/o the selectAll().remove()\n * of the 'redraw' signature\n *\n * Signature 3: Axes.draw(gd, [axId, axId2, ...])\n * where the items are axis id string,\n * use this to update multiple axes in one call\n *\n * N.B draw updates:\n * - ax._r (stored range for use by zoom/pan)\n * - ax._rl (stored linearized range for use by zoom/pan)\n */\naxes.draw = function(gd, arg, opts) {\n var fullLayout = gd._fullLayout;\n\n if(arg === 'redraw') {\n fullLayout._paper.selectAll('g.subplot').each(function(d) {\n var id = d[0];\n var plotinfo = fullLayout._plots[id];\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n plotinfo.xaxislayer.selectAll('.' + xa._id + 'tick').remove();\n plotinfo.yaxislayer.selectAll('.' + ya._id + 'tick').remove();\n plotinfo.xaxislayer.selectAll('.' + xa._id + 'tick2').remove();\n plotinfo.yaxislayer.selectAll('.' + ya._id + 'tick2').remove();\n plotinfo.xaxislayer.selectAll('.' + xa._id + 'divider').remove();\n plotinfo.yaxislayer.selectAll('.' + ya._id + 'divider').remove();\n\n if(plotinfo.gridlayer) plotinfo.gridlayer.selectAll('path').remove();\n if(plotinfo.zerolinelayer) plotinfo.zerolinelayer.selectAll('path').remove();\n\n fullLayout._infolayer.select('.g-' + xa._id + 'title').remove();\n fullLayout._infolayer.select('.g-' + ya._id + 'title').remove();\n });\n }\n\n var axList = (!arg || arg === 'redraw') ? axes.listIds(gd) : arg;\n\n return Lib.syncOrAsync(axList.map(function(axId) {\n return function() {\n if(!axId) return;\n\n var ax = axes.getFromId(gd, axId);\n var axDone = axes.drawOne(gd, ax, opts);\n\n ax._r = ax.range.slice();\n ax._rl = Lib.simpleMap(ax._r, ax.r2l);\n\n return axDone;\n };\n }));\n};\n\n/**\n * Draw one cartesian axis\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * @param {object} opts\n * - @param {boolean} skipTitle (set to true to skip axis title draw call)\n *\n * Depends on:\n * - ax._mainSubplot (from linkSubplots)\n * - ax._mainAxis\n * - ax._anchorAxis\n * - ax._subplotsWith\n * - ax._counterDomainMin, ax._counterDomainMax (optionally, from linkSubplots)\n * - ax._tickAngles (on redraw only, old value relinked during supplyDefaults)\n * - ax._mainLinePosition (from lsInner)\n * - ax._mainMirrorPosition\n * - ax._linepositions\n *\n * Fills in:\n * - ax._vals:\n * - ax._gridVals:\n * - ax._selections:\n * - ax._tickAngles:\n * - ax._depth (when required only):\n * - and calls ax.setScale\n */\naxes.drawOne = function(gd, ax, opts) {\n opts = opts || {};\n\n var i, sp, plotinfo;\n\n ax.setScale();\n\n var fullLayout = gd._fullLayout;\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var counterLetter = axes.counterLetter(axId);\n var mainLinePosition = ax._mainLinePosition;\n var mainMirrorPosition = ax._mainMirrorPosition;\n var mainPlotinfo = fullLayout._plots[ax._mainSubplot];\n var mainAxLayer = mainPlotinfo[axLetter + 'axislayer'];\n\n var vals = ax._vals = axes.calcTicks(ax);\n\n // Add a couple of axis properties that should cause us to recreate\n // elements. Used in d3 data function.\n var axInfo = [ax.mirror, mainLinePosition, mainMirrorPosition].join('_');\n for(i = 0; i < vals.length; i++) {\n vals[i].axInfo = axInfo;\n }\n\n // stash selections to avoid DOM queries e.g.\n // - stash tickLabels selection, so that drawTitle can use it to scoot title\n ax._selections = {};\n // stash tick angle (including the computed 'auto' values) per tick-label class\n // linkup 'previous' tick angles on redraws\n if(ax._tickAngles) ax._prevTickAngles = ax._tickAngles;\n ax._tickAngles = {};\n // measure [in px] between axis position and outward-most part of bounding box\n // (touching either the tick label or ticks)\n // depth can be expansive to compute, so we only do so when required\n ax._depth = null;\n\n // calcLabelLevelBbox can be expensive,\n // so make sure to not call it twice during the same Axes.drawOne call\n // by stashing label-level bounding boxes per tick-label class\n var llbboxes = {};\n function getLabelLevelBbox(suffix) {\n var cls = axId + (suffix || 'tick');\n if(!llbboxes[cls]) llbboxes[cls] = calcLabelLevelBbox(ax, cls);\n return llbboxes[cls];\n }\n\n if(!ax.visible) return;\n\n var transFn = axes.makeTransFn(ax);\n var tickVals;\n // We remove zero lines, grid lines, and inside ticks if they're within 1px of the end\n // The key case here is removing zero lines when the axis bound is zero\n var valsClipped;\n\n if(ax.tickson === 'boundaries') {\n var boundaryVals = getBoundaryVals(ax, vals);\n valsClipped = axes.clipEnds(ax, boundaryVals);\n tickVals = ax.ticks === 'inside' ? valsClipped : boundaryVals;\n } else {\n valsClipped = axes.clipEnds(ax, vals);\n tickVals = ax.ticks === 'inside' ? valsClipped : vals;\n }\n\n var gridVals = ax._gridVals = valsClipped;\n var dividerVals = getDividerVals(ax, vals);\n\n if(!fullLayout._hasOnlyLargeSploms) {\n var subplotsWithAx = ax._subplotsWith;\n\n // keep track of which subplots (by main counter axis) we've already\n // drawn grids for, so we don't overdraw overlaying subplots\n var finishedGrids = {};\n\n for(i = 0; i < subplotsWithAx.length; i++) {\n sp = subplotsWithAx[i];\n plotinfo = fullLayout._plots[sp];\n\n var counterAxis = plotinfo[counterLetter + 'axis'];\n var mainCounterID = counterAxis._mainAxis._id;\n if(finishedGrids[mainCounterID]) continue;\n finishedGrids[mainCounterID] = 1;\n\n var gridPath = axLetter === 'x' ?\n 'M0,' + counterAxis._offset + 'v' + counterAxis._length :\n 'M' + counterAxis._offset + ',0h' + counterAxis._length;\n\n axes.drawGrid(gd, ax, {\n vals: gridVals,\n counterAxis: counterAxis,\n layer: plotinfo.gridlayer.select('.' + axId),\n path: gridPath,\n transFn: transFn\n });\n axes.drawZeroLine(gd, ax, {\n counterAxis: counterAxis,\n layer: plotinfo.zerolinelayer,\n path: gridPath,\n transFn: transFn\n });\n }\n }\n\n var tickSigns = axes.getTickSigns(ax);\n var tickSubplots = [];\n\n if(ax.ticks) {\n var mainTickPath = axes.makeTickPath(ax, mainLinePosition, tickSigns[2]);\n var mirrorTickPath;\n var fullTickPath;\n if(ax._anchorAxis && ax.mirror && ax.mirror !== true) {\n mirrorTickPath = axes.makeTickPath(ax, mainMirrorPosition, tickSigns[3]);\n fullTickPath = mainTickPath + mirrorTickPath;\n } else {\n mirrorTickPath = '';\n fullTickPath = mainTickPath;\n }\n\n var tickPath;\n if(ax.showdividers && ax.ticks === 'outside' && ax.tickson === 'boundaries') {\n var dividerLookup = {};\n for(i = 0; i < dividerVals.length; i++) {\n dividerLookup[dividerVals[i].x] = 1;\n }\n tickPath = function(d) {\n return dividerLookup[d.x] ? mirrorTickPath : fullTickPath;\n };\n } else {\n tickPath = fullTickPath;\n }\n\n axes.drawTicks(gd, ax, {\n vals: tickVals,\n layer: mainAxLayer,\n path: tickPath,\n transFn: transFn\n });\n\n if(ax.mirror === 'allticks') {\n tickSubplots = Object.keys(ax._linepositions || {});\n }\n }\n\n for(i = 0; i < tickSubplots.length; i++) {\n sp = tickSubplots[i];\n plotinfo = fullLayout._plots[sp];\n // [bottom or left, top or right], free and main are handled above\n var linepositions = ax._linepositions[sp] || [];\n var spTickPath = axes.makeTickPath(ax, linepositions[0], tickSigns[0]) +\n axes.makeTickPath(ax, linepositions[1], tickSigns[1]);\n\n axes.drawTicks(gd, ax, {\n vals: tickVals,\n layer: plotinfo[axLetter + 'axislayer'],\n path: spTickPath,\n transFn: transFn\n });\n }\n\n var seq = [];\n\n // tick labels - for now just the main labels.\n // TODO: mirror labels, esp for subplots\n\n seq.push(function() {\n return axes.drawLabels(gd, ax, {\n vals: vals,\n layer: mainAxLayer,\n transFn: transFn,\n labelFns: axes.makeLabelFns(ax, mainLinePosition)\n });\n });\n\n if(ax.type === 'multicategory') {\n var pad = {x: 2, y: 10}[axLetter];\n\n seq.push(function() {\n var bboxKey = {x: 'height', y: 'width'}[axLetter];\n var standoff = getLabelLevelBbox()[bboxKey] + pad +\n (ax._tickAngles[axId + 'tick'] ? ax.tickfont.size * LINE_SPACING : 0);\n\n return axes.drawLabels(gd, ax, {\n vals: getSecondaryLabelVals(ax, vals),\n layer: mainAxLayer,\n cls: axId + 'tick2',\n repositionOnUpdate: true,\n secondary: true,\n transFn: transFn,\n labelFns: axes.makeLabelFns(ax, mainLinePosition + standoff * tickSigns[4])\n });\n });\n\n seq.push(function() {\n ax._depth = tickSigns[4] * (getLabelLevelBbox('tick2')[ax.side] - mainLinePosition);\n\n return drawDividers(gd, ax, {\n vals: dividerVals,\n layer: mainAxLayer,\n path: axes.makeTickPath(ax, mainLinePosition, tickSigns[4], ax._depth),\n transFn: transFn\n });\n });\n } else if(ax.title.hasOwnProperty('standoff')) {\n seq.push(function() {\n ax._depth = tickSigns[4] * (getLabelLevelBbox()[ax.side] - mainLinePosition);\n });\n }\n\n var hasRangeSlider = Registry.getComponentMethod('rangeslider', 'isVisible')(ax);\n\n seq.push(function() {\n var s = ax.side.charAt(0);\n var sMirror = OPPOSITE_SIDE[ax.side].charAt(0);\n var pos = axes.getPxPosition(gd, ax);\n var outsideTickLen = ax.ticks === 'outside' ? ax.ticklen : 0;\n var llbbox;\n\n var push;\n var mirrorPush;\n var rangeSliderPush;\n\n if(ax.automargin || hasRangeSlider) {\n if(ax.type === 'multicategory') {\n llbbox = getLabelLevelBbox('tick2');\n } else {\n llbbox = getLabelLevelBbox();\n if(axLetter === 'x' && s === 'b') {\n ax._depth = Math.max(llbbox.width > 0 ? llbbox.bottom - pos : 0, outsideTickLen);\n }\n }\n }\n\n if(ax.automargin) {\n push = {x: 0, y: 0, r: 0, l: 0, t: 0, b: 0};\n var domainIndices = [0, 1];\n\n if(axLetter === 'x') {\n if(s === 'b') {\n push[s] = ax._depth;\n } else {\n push[s] = ax._depth = Math.max(llbbox.width > 0 ? pos - llbbox.top : 0, outsideTickLen);\n domainIndices.reverse();\n }\n\n if(llbbox.width > 0) {\n var rExtra = llbbox.right - (ax._offset + ax._length);\n if(rExtra > 0) {\n push.xr = 1;\n push.r = rExtra;\n }\n var lExtra = ax._offset - llbbox.left;\n if(lExtra > 0) {\n push.xl = 0;\n push.l = lExtra;\n }\n }\n } else {\n if(s === 'l') {\n push[s] = ax._depth = Math.max(llbbox.height > 0 ? pos - llbbox.left : 0, outsideTickLen);\n } else {\n push[s] = ax._depth = Math.max(llbbox.height > 0 ? llbbox.right - pos : 0, outsideTickLen);\n domainIndices.reverse();\n }\n\n if(llbbox.height > 0) {\n var bExtra = llbbox.bottom - (ax._offset + ax._length);\n if(bExtra > 0) {\n push.yb = 0;\n push.b = bExtra;\n }\n var tExtra = ax._offset - llbbox.top;\n if(tExtra > 0) {\n push.yt = 1;\n push.t = tExtra;\n }\n }\n }\n\n push[counterLetter] = ax.anchor === 'free' ?\n ax.position :\n ax._anchorAxis.domain[domainIndices[0]];\n\n if(ax.title.text !== fullLayout._dfltTitle[axLetter]) {\n push[s] += approxTitleDepth(ax) + (ax.title.standoff || 0);\n }\n\n if(ax.mirror && ax.anchor !== 'free') {\n mirrorPush = {x: 0, y: 0, r: 0, l: 0, t: 0, b: 0};\n\n mirrorPush[sMirror] = ax.linewidth;\n if(ax.mirror && ax.mirror !== true) mirrorPush[sMirror] += outsideTickLen;\n\n if(ax.mirror === true || ax.mirror === 'ticks') {\n mirrorPush[counterLetter] = ax._anchorAxis.domain[domainIndices[1]];\n } else if(ax.mirror === 'all' || ax.mirror === 'allticks') {\n mirrorPush[counterLetter] = [ax._counterDomainMin, ax._counterDomainMax][domainIndices[1]];\n }\n }\n }\n\n if(hasRangeSlider) {\n rangeSliderPush = Registry.getComponentMethod('rangeslider', 'autoMarginOpts')(gd, ax);\n }\n\n Plots.autoMargin(gd, axAutoMarginID(ax), push);\n Plots.autoMargin(gd, axMirrorAutoMarginID(ax), mirrorPush);\n Plots.autoMargin(gd, rangeSliderAutoMarginID(ax), rangeSliderPush);\n });\n\n if(!opts.skipTitle &&\n !(hasRangeSlider && ax.side === 'bottom')\n ) {\n seq.push(function() { return drawTitle(gd, ax); });\n }\n\n return Lib.syncOrAsync(seq);\n};\n\nfunction getBoundaryVals(ax, vals) {\n var out = [];\n var i;\n\n // boundaryVals are never used for labels;\n // no need to worry about the other tickTextObj keys\n var _push = function(d, bndIndex) {\n var xb = d.xbnd[bndIndex];\n if(xb !== null) {\n out.push(Lib.extendFlat({}, d, {x: xb}));\n }\n };\n\n if(vals.length) {\n for(i = 0; i < vals.length; i++) {\n _push(vals[i], 0);\n }\n _push(vals[i - 1], 1);\n }\n\n return out;\n}\n\nfunction getSecondaryLabelVals(ax, vals) {\n var out = [];\n var lookup = {};\n\n for(var i = 0; i < vals.length; i++) {\n var d = vals[i];\n if(lookup[d.text2]) {\n lookup[d.text2].push(d.x);\n } else {\n lookup[d.text2] = [d.x];\n }\n }\n\n for(var k in lookup) {\n out.push(tickTextObj(ax, Lib.interp(lookup[k], 0.5), k));\n }\n\n return out;\n}\n\nfunction getDividerVals(ax, vals) {\n var out = [];\n var i, current;\n\n // never used for labels;\n // no need to worry about the other tickTextObj keys\n var _push = function(d, bndIndex) {\n var xb = d.xbnd[bndIndex];\n if(xb !== null) {\n out.push(Lib.extendFlat({}, d, {x: xb}));\n }\n };\n\n if(ax.showdividers && vals.length) {\n for(i = 0; i < vals.length; i++) {\n var d = vals[i];\n if(d.text2 !== current) {\n _push(d, 0);\n }\n current = d.text2;\n }\n _push(vals[i - 1], 1);\n }\n\n return out;\n}\n\nfunction calcLabelLevelBbox(ax, cls) {\n var top, bottom;\n var left, right;\n\n if(ax._selections[cls].size()) {\n top = Infinity;\n bottom = -Infinity;\n left = Infinity;\n right = -Infinity;\n ax._selections[cls].each(function() {\n var thisLabel = selectTickLabel(this);\n // Use parent node , to make Drawing.bBox\n // retrieve a bbox computed with transform info\n //\n // To improve perf, it would be nice to use `thisLabel.node()`\n // (like in fixLabelOverlaps) instead and use Axes.getPxPosition\n // together with the makeLabelFns outputs and `tickangle`\n // to compute one bbox per (tick value x tick style)\n var bb = Drawing.bBox(thisLabel.node().parentNode);\n top = Math.min(top, bb.top);\n bottom = Math.max(bottom, bb.bottom);\n left = Math.min(left, bb.left);\n right = Math.max(right, bb.right);\n });\n } else {\n top = 0;\n bottom = 0;\n left = 0;\n right = 0;\n }\n\n return {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n height: bottom - top,\n width: right - left\n };\n}\n\n/**\n * Which direction do the 'ax.side' values, and free ticks go?\n *\n * @param {object} ax (full) axis object\n * - {string} _id (starting with 'x' or 'y')\n * - {string} side\n * - {string} ticks\n * @return {array} all entries are either -1 or 1\n * - [0]: sign for top/right ticks (i.e. negative SVG direction)\n * - [1]: sign for bottom/left ticks (i.e. positive SVG direction)\n * - [2]: sign for ticks corresponding to 'ax.side'\n * - [3]: sign for ticks mirroring 'ax.side'\n * - [4]: sign of arrow starting at axis pointing towards margin\n */\naxes.getTickSigns = function(ax) {\n var axLetter = ax._id.charAt(0);\n var sideOpposite = {x: 'top', y: 'right'}[axLetter];\n var main = ax.side === sideOpposite ? 1 : -1;\n var out = [-1, 1, main, -main];\n // then we flip if outside XOR y axis\n if((ax.ticks !== 'inside') === (axLetter === 'x')) {\n out = out.map(function(v) { return -v; });\n }\n // independent of `ticks`; do not flip this one\n if(ax.side) {\n out.push({l: -1, t: -1, r: 1, b: 1}[ax.side.charAt(0)]);\n }\n return out;\n};\n\n/**\n * Make axis translate transform function\n *\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {number} _offset\n * - {fn} l2p\n * @return {fn} function of calcTicks items\n */\naxes.makeTransFn = function(ax) {\n var axLetter = ax._id.charAt(0);\n var offset = ax._offset;\n return axLetter === 'x' ?\n function(d) { return 'translate(' + (offset + ax.l2p(d.x)) + ',0)'; } :\n function(d) { return 'translate(0,' + (offset + ax.l2p(d.x)) + ')'; };\n};\n\n/**\n * Make axis tick path string\n *\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {number} ticklen\n * - {number} linewidth\n * @param {number} shift along direction of ticklen\n * @param {1 or -1} sgn tick sign\n * @param {number (optional)} len tick length\n * @return {string}\n */\naxes.makeTickPath = function(ax, shift, sgn, len) {\n len = len !== undefined ? len : ax.ticklen;\n\n var axLetter = ax._id.charAt(0);\n var pad = (ax.linewidth || 1) / 2;\n\n return axLetter === 'x' ?\n 'M0,' + (shift + pad * sgn) + 'v' + (len * sgn) :\n 'M' + (shift + pad * sgn) + ',0h' + (len * sgn);\n};\n\n/**\n * Make axis tick label x, y and anchor functions\n *\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {string} ticks\n * - {number} ticklen\n * - {string} side\n * - {number} linewidth\n * - {number} tickfont.size\n * - {boolean} showline\n * @param {number} shift\n * @param {number} angle [in degrees] ...\n * @return {object}\n * - {fn} xFn\n * - {fn} yFn\n * - {fn} anchorFn\n * - {fn} heightFn\n * - {number} labelStandoff (gap parallel to ticks)\n * - {number} labelShift (gap perpendicular to ticks)\n */\naxes.makeLabelFns = function(ax, shift, angle) {\n var axLetter = ax._id.charAt(0);\n var ticksOnOutsideLabels = ax.tickson !== 'boundaries' && ax.ticks === 'outside';\n\n var labelStandoff = 0;\n var labelShift = 0;\n\n if(ticksOnOutsideLabels) {\n labelStandoff += ax.ticklen;\n }\n if(angle && ax.ticks === 'outside') {\n var rad = Lib.deg2rad(angle);\n labelStandoff = ax.ticklen * Math.cos(rad) + 1;\n labelShift = ax.ticklen * Math.sin(rad);\n }\n if(ax.showticklabels && (ticksOnOutsideLabels || ax.showline)) {\n labelStandoff += 0.2 * ax.tickfont.size;\n }\n labelStandoff += (ax.linewidth || 1) / 2;\n\n var out = {\n labelStandoff: labelStandoff,\n labelShift: labelShift\n };\n\n var x0, y0, ff, flipIt;\n\n if(axLetter === 'x') {\n flipIt = ax.side === 'bottom' ? 1 : -1;\n x0 = labelShift * flipIt;\n y0 = shift + labelStandoff * flipIt;\n ff = ax.side === 'bottom' ? 1 : -0.2;\n\n out.xFn = function(d) { return d.dx + x0; };\n out.yFn = function(d) { return d.dy + y0 + d.fontSize * ff; };\n out.anchorFn = function(d, a) {\n if(!isNumeric(a) || a === 0 || a === 180) {\n return 'middle';\n }\n return (a * flipIt < 0) ? 'end' : 'start';\n };\n out.heightFn = function(d, a, h) {\n return (a < -60 || a > 60) ? -0.5 * h :\n ax.side === 'top' ? -h :\n 0;\n };\n } else if(axLetter === 'y') {\n flipIt = ax.side === 'right' ? 1 : -1;\n x0 = labelStandoff;\n y0 = -labelShift * flipIt;\n ff = Math.abs(ax.tickangle) === 90 ? 0.5 : 0;\n\n out.xFn = function(d) { return d.dx + shift + (x0 + d.fontSize * ff) * flipIt; };\n out.yFn = function(d) { return d.dy + y0 + d.fontSize * MID_SHIFT; };\n out.anchorFn = function(d, a) {\n if(isNumeric(a) && Math.abs(a) === 90) {\n return 'middle';\n }\n return ax.side === 'right' ? 'start' : 'end';\n };\n out.heightFn = function(d, a, h) {\n a *= ax.side === 'left' ? 1 : -1;\n return a < -30 ? -h :\n a < 30 ? -0.5 * h :\n 0;\n };\n }\n\n return out;\n};\n\nfunction tickDataFn(d) {\n return [d.text, d.x, d.axInfo, d.font, d.fontSize, d.fontColor].join('_');\n}\n\n/**\n * Draw axis ticks\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {string} ticks\n * - {number} linewidth\n * - {string} tickcolor\n * @param {object} opts\n * - {array of object} vals (calcTicks output-like)\n * - {d3 selection} layer\n * - {string or fn} path\n * - {fn} transFn\n * - {boolean} crisp (set to false to unset crisp-edge SVG rendering)\n */\naxes.drawTicks = function(gd, ax, opts) {\n opts = opts || {};\n\n var cls = ax._id + 'tick';\n\n var ticks = opts.layer.selectAll('path.' + cls)\n .data(ax.ticks ? opts.vals : [], tickDataFn);\n\n ticks.exit().remove();\n\n ticks.enter().append('path')\n .classed(cls, 1)\n .classed('ticks', 1)\n .classed('crisp', opts.crisp !== false)\n .call(Color.stroke, ax.tickcolor)\n .style('stroke-width', Drawing.crispRound(gd, ax.tickwidth, 1) + 'px')\n .attr('d', opts.path);\n\n ticks.attr('transform', opts.transFn);\n};\n\n/**\n * Draw axis grid\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {boolean} showgrid\n * - {string} gridcolor\n * - {string} gridwidth\n * - {boolean} zeroline\n * - {string} type\n * - {string} dtick\n * @param {object} opts\n * - {array of object} vals (calcTicks output-like)\n * - {d3 selection} layer\n * - {object} counterAxis (full axis object corresponding to counter axis)\n * optional - only required if this axis supports zero lines\n * - {string or fn} path\n * - {fn} transFn\n * - {boolean} crisp (set to false to unset crisp-edge SVG rendering)\n */\naxes.drawGrid = function(gd, ax, opts) {\n opts = opts || {};\n\n var cls = ax._id + 'grid';\n var vals = opts.vals;\n var counterAx = opts.counterAxis;\n if(ax.showgrid === false) {\n vals = [];\n } else if(counterAx && axes.shouldShowZeroLine(gd, ax, counterAx)) {\n var isArrayMode = ax.tickmode === 'array';\n for(var i = 0; i < vals.length; i++) {\n var xi = vals[i].x;\n if(isArrayMode ? !xi : (Math.abs(xi) < ax.dtick / 100)) {\n vals = vals.slice(0, i).concat(vals.slice(i + 1));\n // In array mode you can in principle have multiple\n // ticks at 0, so test them all. Otherwise once we found\n // one we can stop.\n if(isArrayMode) i--;\n else break;\n }\n }\n }\n\n var grid = opts.layer.selectAll('path.' + cls)\n .data(vals, tickDataFn);\n\n grid.exit().remove();\n\n grid.enter().append('path')\n .classed(cls, 1)\n .classed('crisp', opts.crisp !== false);\n\n ax._gw = Drawing.crispRound(gd, ax.gridwidth, 1);\n\n grid.attr('transform', opts.transFn)\n .attr('d', opts.path)\n .call(Color.stroke, ax.gridcolor || '#ddd')\n .style('stroke-width', ax._gw + 'px');\n\n if(typeof opts.path === 'function') grid.attr('d', opts.path);\n};\n\n/**\n * Draw axis zero-line\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {boolean} zeroline\n * - {number} zerolinewidth\n * - {string} zerolinecolor\n * - {number (optional)} _gridWidthCrispRound\n * @param {object} opts\n * - {d3 selection} layer\n * - {object} counterAxis (full axis object corresponding to counter axis)\n * - {string or fn} path\n * - {fn} transFn\n * - {boolean} crisp (set to false to unset crisp-edge SVG rendering)\n */\naxes.drawZeroLine = function(gd, ax, opts) {\n opts = opts || opts;\n\n var cls = ax._id + 'zl';\n var show = axes.shouldShowZeroLine(gd, ax, opts.counterAxis);\n\n var zl = opts.layer.selectAll('path.' + cls)\n .data(show ? [{x: 0, id: ax._id}] : []);\n\n zl.exit().remove();\n\n zl.enter().append('path')\n .classed(cls, 1)\n .classed('zl', 1)\n .classed('crisp', opts.crisp !== false)\n .each(function() {\n // use the fact that only one element can enter to trigger a sort.\n // If several zerolines enter at the same time we will sort once per,\n // but generally this should be a minimal overhead.\n opts.layer.selectAll('path').sort(function(da, db) {\n return axisIds.idSort(da.id, db.id);\n });\n });\n\n zl.attr('transform', opts.transFn)\n .attr('d', opts.path)\n .call(Color.stroke, ax.zerolinecolor || Color.defaultLine)\n .style('stroke-width', Drawing.crispRound(gd, ax.zerolinewidth, ax._gw || 1) + 'px');\n};\n\n/**\n * Draw axis tick labels\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {boolean} showticklabels\n * - {number} tickangle\n * - {object (optional)} _selections\n * - {object} (optional)} _tickAngles\n * - {object} (optional)} _prevTickAngles\n * @param {object} opts\n * - {array of object} vals (calcTicks output-like)\n * - {d3 selection} layer\n * - {string (optional)} cls (node className)\n * - {boolean} repositionOnUpdate (set to true to reposition update selection)\n * - {boolean} secondary\n * - {fn} transFn\n * - {object} labelFns\n * + {fn} xFn\n * + {fn} yFn\n * + {fn} anchorFn\n * + {fn} heightFn\n */\naxes.drawLabels = function(gd, ax, opts) {\n opts = opts || {};\n\n var fullLayout = gd._fullLayout;\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var cls = opts.cls || axId + 'tick';\n var vals = opts.vals;\n var labelFns = opts.labelFns;\n var tickAngle = opts.secondary ? 0 : ax.tickangle;\n var prevAngle = (ax._prevTickAngles || {})[cls];\n\n var tickLabels = opts.layer.selectAll('g.' + cls)\n .data(ax.showticklabels ? vals : [], tickDataFn);\n\n var labelsReady = [];\n\n tickLabels.enter().append('g')\n .classed(cls, 1)\n .append('text')\n // only so tex has predictable alignment that we can\n // alter later\n .attr('text-anchor', 'middle')\n .each(function(d) {\n var thisLabel = d3.select(this);\n var newPromise = gd._promises.length;\n\n thisLabel\n .call(svgTextUtils.positionText, labelFns.xFn(d), labelFns.yFn(d))\n .call(Drawing.font, d.font, d.fontSize, d.fontColor)\n .text(d.text)\n .call(svgTextUtils.convertToTspans, gd);\n\n if(gd._promises[newPromise]) {\n // if we have an async label, we'll deal with that\n // all here so take it out of gd._promises and\n // instead position the label and promise this in\n // labelsReady\n labelsReady.push(gd._promises.pop().then(function() {\n positionLabels(thisLabel, tickAngle);\n }));\n } else {\n // sync label: just position it now.\n positionLabels(thisLabel, tickAngle);\n }\n });\n\n tickLabels.exit().remove();\n\n if(opts.repositionOnUpdate) {\n tickLabels.each(function(d) {\n d3.select(this).select('text')\n .call(svgTextUtils.positionText, labelFns.xFn(d), labelFns.yFn(d));\n });\n }\n\n function positionLabels(s, angle) {\n s.each(function(d) {\n var thisLabel = d3.select(this);\n var mathjaxGroup = thisLabel.select('.text-math-group');\n var anchor = labelFns.anchorFn(d, angle);\n\n var transform = opts.transFn.call(thisLabel.node(), d) +\n ((isNumeric(angle) && +angle !== 0) ?\n (' rotate(' + angle + ',' + labelFns.xFn(d) + ',' +\n (labelFns.yFn(d) - d.fontSize / 2) + ')') :\n '');\n\n // how much to shift a multi-line label to center it vertically.\n var nLines = svgTextUtils.lineCount(thisLabel);\n var lineHeight = LINE_SPACING * d.fontSize;\n var anchorHeight = labelFns.heightFn(d, isNumeric(angle) ? +angle : 0, (nLines - 1) * lineHeight);\n\n if(anchorHeight) {\n transform += ' translate(0, ' + anchorHeight + ')';\n }\n\n if(mathjaxGroup.empty()) {\n thisLabel.select('text').attr({\n transform: transform,\n 'text-anchor': anchor\n });\n } else {\n var mjWidth = Drawing.bBox(mathjaxGroup.node()).width;\n var mjShift = mjWidth * {end: -0.5, start: 0.5}[anchor];\n mathjaxGroup.attr('transform', transform + (mjShift ? 'translate(' + mjShift + ',0)' : ''));\n }\n });\n }\n\n // make sure all labels are correctly positioned at their base angle\n // the positionLabels call above is only for newly drawn labels.\n // do this without waiting, using the last calculated angle to\n // minimize flicker, then do it again when we know all labels are\n // there, putting back the prescribed angle to check for overlaps.\n positionLabels(tickLabels, (prevAngle + 1) ? prevAngle : tickAngle);\n\n function allLabelsReady() {\n return labelsReady.length && Promise.all(labelsReady);\n }\n\n var autoangle = null;\n\n function fixLabelOverlaps() {\n positionLabels(tickLabels, tickAngle);\n\n // check for auto-angling if x labels overlap\n // don't auto-angle at all for log axes with\n // base and digit format\n if(vals.length && axLetter === 'x' && !isNumeric(tickAngle) &&\n (ax.type !== 'log' || String(ax.dtick).charAt(0) !== 'D')\n ) {\n autoangle = 0;\n\n var maxFontSize = 0;\n var lbbArray = [];\n var i;\n\n tickLabels.each(function(d) {\n maxFontSize = Math.max(maxFontSize, d.fontSize);\n\n var x = ax.l2p(d.x);\n var thisLabel = selectTickLabel(this);\n var bb = Drawing.bBox(thisLabel.node());\n\n lbbArray.push({\n // ignore about y, just deal with x overlaps\n top: 0,\n bottom: 10,\n height: 10,\n left: x - bb.width / 2,\n // impose a 2px gap\n right: x + bb.width / 2 + 2,\n width: bb.width + 2\n });\n });\n\n if((ax.tickson === 'boundaries' || ax.showdividers) && !opts.secondary) {\n var gap = 2;\n if(ax.ticks) gap += ax.tickwidth / 2;\n\n // TODO should secondary labels also fall into this fix-overlap regime?\n\n for(i = 0; i < lbbArray.length; i++) {\n var xbnd = vals[i].xbnd;\n var lbb = lbbArray[i];\n if(\n (xbnd[0] !== null && (lbb.left - ax.l2p(xbnd[0])) < gap) ||\n (xbnd[1] !== null && (ax.l2p(xbnd[1]) - lbb.right) < gap)\n ) {\n autoangle = 90;\n break;\n }\n }\n } else {\n var vLen = vals.length;\n var tickSpacing = Math.abs((vals[vLen - 1].x - vals[0].x) * ax._m) / (vLen - 1);\n var rotate90 = (tickSpacing < maxFontSize * 2.5) || ax.type === 'multicategory';\n\n // any overlap at all - set 30 degrees or 90 degrees\n for(i = 0; i < lbbArray.length - 1; i++) {\n if(Lib.bBoxIntersect(lbbArray[i], lbbArray[i + 1])) {\n autoangle = rotate90 ? 90 : 30;\n break;\n }\n }\n }\n\n if(autoangle) {\n positionLabels(tickLabels, autoangle);\n }\n }\n }\n\n if(ax._selections) {\n ax._selections[cls] = tickLabels;\n }\n\n var seq = [allLabelsReady];\n\n // N.B. during auto-margin redraws, if the axis fixed its label overlaps\n // by rotating 90 degrees, do not attempt to re-fix its label overlaps\n // as this can lead to infinite redraw loops!\n if(ax.automargin && fullLayout._redrawFromAutoMarginCount && prevAngle === 90) {\n autoangle = 90;\n seq.push(function() {\n positionLabels(tickLabels, prevAngle);\n });\n } else {\n seq.push(fixLabelOverlaps);\n }\n\n // save current tick angle for future redraws\n if(ax._tickAngles) {\n seq.push(function() {\n ax._tickAngles[cls] = autoangle === null ?\n (isNumeric(tickAngle) ? tickAngle : 0) :\n autoangle;\n });\n }\n\n var done = Lib.syncOrAsync(seq);\n if(done && done.then) gd._promises.push(done);\n return done;\n};\n\n/**\n * Draw axis dividers\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {string} showdividers\n * - {number} dividerwidth\n * - {string} dividercolor\n * @param {object} opts\n * - {array of object} vals (calcTicks output-like)\n * - {d3 selection} layer\n * - {fn} path\n * - {fn} transFn\n */\nfunction drawDividers(gd, ax, opts) {\n var cls = ax._id + 'divider';\n var vals = opts.vals;\n\n var dividers = opts.layer.selectAll('path.' + cls)\n .data(vals, tickDataFn);\n\n dividers.exit().remove();\n\n dividers.enter().insert('path', ':first-child')\n .classed(cls, 1)\n .classed('crisp', 1)\n .call(Color.stroke, ax.dividercolor)\n .style('stroke-width', Drawing.crispRound(gd, ax.dividerwidth, 1) + 'px');\n\n dividers\n .attr('transform', opts.transFn)\n .attr('d', opts.path);\n}\n\n/**\n * Get axis position in px, that is the distance for the graph's\n * top (left) edge for x (y) axes.\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {string} side\n * if anchored:\n * - {object} _anchorAxis\n * Otherwise:\n * - {number} position\n * @return {number}\n */\naxes.getPxPosition = function(gd, ax) {\n var gs = gd._fullLayout._size;\n var axLetter = ax._id.charAt(0);\n var side = ax.side;\n var anchorAxis;\n\n if(ax.anchor !== 'free') {\n anchorAxis = ax._anchorAxis;\n } else if(axLetter === 'x') {\n anchorAxis = {\n _offset: gs.t + (1 - (ax.position || 0)) * gs.h,\n _length: 0\n };\n } else if(axLetter === 'y') {\n anchorAxis = {\n _offset: gs.l + (ax.position || 0) * gs.w,\n _length: 0\n };\n }\n\n if(side === 'top' || side === 'left') {\n return anchorAxis._offset;\n } else if(side === 'bottom' || side === 'right') {\n return anchorAxis._offset + anchorAxis._length;\n }\n};\n\n/**\n * Approximate axis title depth (w/o computing its bounding box)\n *\n * @param {object} ax (full) axis object\n * - {string} title.text\n * - {number} title.font.size\n * - {number} title.standoff\n * @return {number} (in px)\n */\nfunction approxTitleDepth(ax) {\n var fontSize = ax.title.font.size;\n var extraLines = (ax.title.text.match(svgTextUtils.BR_TAG_ALL) || []).length;\n if(ax.title.hasOwnProperty('standoff')) {\n return extraLines ?\n fontSize * (CAP_SHIFT + (extraLines * LINE_SPACING)) :\n fontSize * CAP_SHIFT;\n } else {\n return extraLines ?\n fontSize * (extraLines + 1) * LINE_SPACING :\n fontSize;\n }\n}\n\n/**\n * Draw axis title, compute default standoff if necessary\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {string} _name\n * - {string} side\n * - {number} title.font.size\n * - {object} _selections\n *\n * - {number} _depth\n * - {number} title.standoff\n * OR\n * - {number} linewidth\n * - {boolean} showticklabels\n */\nfunction drawTitle(gd, ax) {\n var fullLayout = gd._fullLayout;\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var fontSize = ax.title.font.size;\n\n var titleStandoff;\n\n if(ax.title.hasOwnProperty('standoff')) {\n titleStandoff = ax._depth + ax.title.standoff + approxTitleDepth(ax);\n } else {\n if(ax.type === 'multicategory') {\n titleStandoff = ax._depth;\n } else {\n var offsetBase = 1.5;\n titleStandoff = 10 + fontSize * offsetBase + (ax.linewidth ? ax.linewidth - 1 : 0);\n }\n\n if(axLetter === 'x') {\n titleStandoff += ax.side === 'top' ?\n fontSize * (ax.showticklabels ? 1 : 0) :\n fontSize * (ax.showticklabels ? 1.5 : 0.5);\n } else {\n titleStandoff += ax.side === 'right' ?\n fontSize * (ax.showticklabels ? 1 : 0.5) :\n fontSize * (ax.showticklabels ? 0.5 : 0);\n }\n }\n\n var pos = axes.getPxPosition(gd, ax);\n var transform, x, y;\n\n if(axLetter === 'x') {\n x = ax._offset + ax._length / 2;\n y = (ax.side === 'top') ? pos - titleStandoff : pos + titleStandoff;\n } else {\n y = ax._offset + ax._length / 2;\n x = (ax.side === 'right') ? pos + titleStandoff : pos - titleStandoff;\n transform = {rotate: '-90', offset: 0};\n }\n\n var avoid;\n\n if(ax.type !== 'multicategory') {\n var tickLabels = ax._selections[ax._id + 'tick'];\n\n avoid = {\n selection: tickLabels,\n side: ax.side\n };\n\n if(tickLabels && tickLabels.node() && tickLabels.node().parentNode) {\n var translation = Drawing.getTranslate(tickLabels.node().parentNode);\n avoid.offsetLeft = translation.x;\n avoid.offsetTop = translation.y;\n }\n\n if(ax.title.hasOwnProperty('standoff')) {\n avoid.pad = 0;\n }\n }\n\n return Titles.draw(gd, axId + 'title', {\n propContainer: ax,\n propName: ax._name + '.title.text',\n placeholder: fullLayout._dfltTitle[axLetter],\n avoid: avoid,\n transform: transform,\n attributes: {x: x, y: y, 'text-anchor': 'middle'}\n });\n}\n\naxes.shouldShowZeroLine = function(gd, ax, counterAxis) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n return (\n (rng[0] * rng[1] <= 0) &&\n ax.zeroline &&\n (ax.type === 'linear' || ax.type === '-') &&\n (\n clipEnds(ax, 0) ||\n !anyCounterAxLineAtZero(gd, ax, counterAxis, rng) ||\n hasBarsOrFill(gd, ax)\n )\n );\n};\n\naxes.clipEnds = function(ax, vals) {\n return vals.filter(function(d) { return clipEnds(ax, d.x); });\n};\n\nfunction clipEnds(ax, l) {\n var p = ax.l2p(l);\n return (p > 1 && p < ax._length - 1);\n}\n\nfunction anyCounterAxLineAtZero(gd, ax, counterAxis, rng) {\n var mainCounterAxis = counterAxis._mainAxis;\n if(!mainCounterAxis) return;\n\n var fullLayout = gd._fullLayout;\n var axLetter = ax._id.charAt(0);\n var counterLetter = axes.counterLetter(ax._id);\n\n var zeroPosition = ax._offset + (\n ((Math.abs(rng[0]) < Math.abs(rng[1])) === (axLetter === 'x')) ?\n 0 : ax._length\n );\n\n function lineNearZero(ax2) {\n if(!ax2.showline || !ax2.linewidth) return false;\n var tolerance = Math.max((ax2.linewidth + ax.zerolinewidth) / 2, 1);\n\n function closeEnough(pos2) {\n return typeof pos2 === 'number' && Math.abs(pos2 - zeroPosition) < tolerance;\n }\n\n if(closeEnough(ax2._mainLinePosition) || closeEnough(ax2._mainMirrorPosition)) {\n return true;\n }\n var linePositions = ax2._linepositions || {};\n for(var k in linePositions) {\n if(closeEnough(linePositions[k][0]) || closeEnough(linePositions[k][1])) {\n return true;\n }\n }\n }\n\n var plotinfo = fullLayout._plots[counterAxis._mainSubplot];\n if(!(plotinfo.mainplotinfo || plotinfo).overlays.length) {\n return lineNearZero(counterAxis, zeroPosition);\n }\n\n var counterLetterAxes = axes.list(gd, counterLetter);\n for(var i = 0; i < counterLetterAxes.length; i++) {\n var counterAxis2 = counterLetterAxes[i];\n if(\n counterAxis2._mainAxis === mainCounterAxis &&\n lineNearZero(counterAxis2, zeroPosition)\n ) {\n return true;\n }\n }\n}\n\nfunction hasBarsOrFill(gd, ax) {\n var fullData = gd._fullData;\n var subplot = ax._mainSubplot;\n var axLetter = ax._id.charAt(0);\n\n for(var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n\n if(trace.visible === true && (trace.xaxis + trace.yaxis) === subplot) {\n if(\n Registry.traceIs(trace, 'bar-like') &&\n trace.orientation === {x: 'h', y: 'v'}[axLetter]\n ) return true;\n\n if(\n trace.fill &&\n trace.fill.charAt(trace.fill.length - 1) === axLetter\n ) return true;\n }\n }\n return false;\n}\n\nfunction selectTickLabel(gTick) {\n var s = d3.select(gTick);\n var mj = s.select('.text-math-group');\n return mj.empty() ? s.select('text') : mj;\n}\n\n/**\n * Find all margin pushers for 2D axes and reserve them for later use\n * Both label and rangeslider automargin calculations happen later so\n * we need to explicitly allow their ids in order to not delete them.\n *\n * TODO: can we pull the actual automargin calls forward to avoid this hack?\n * We're probably also doing multiple redraws in this case, would be faster\n * if we can just do the whole calculation ahead of time and draw once.\n */\naxes.allowAutoMargin = function(gd) {\n var axList = axes.list(gd, '', true);\n for(var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n if(ax.automargin) {\n Plots.allowAutoMargin(gd, axAutoMarginID(ax));\n if(ax.mirror) {\n Plots.allowAutoMargin(gd, axMirrorAutoMarginID(ax));\n }\n }\n if(Registry.getComponentMethod('rangeslider', 'isVisible')(ax)) {\n Plots.allowAutoMargin(gd, rangeSliderAutoMarginID(ax));\n }\n }\n};\n\nfunction axAutoMarginID(ax) { return ax._id + '.automargin'; }\nfunction axMirrorAutoMarginID(ax) { return axAutoMarginID(ax) + '.mirror'; }\nfunction rangeSliderAutoMarginID(ax) { return ax._id + '.rangeslider'; }\n\n// swap all the presentation attributes of the axes showing these traces\naxes.swap = function(gd, traces) {\n var axGroups = makeAxisGroups(gd, traces);\n\n for(var i = 0; i < axGroups.length; i++) {\n swapAxisGroup(gd, axGroups[i].x, axGroups[i].y);\n }\n};\n\nfunction makeAxisGroups(gd, traces) {\n var groups = [];\n var i, j;\n\n for(i = 0; i < traces.length; i++) {\n var groupsi = [];\n var xi = gd._fullData[traces[i]].xaxis;\n var yi = gd._fullData[traces[i]].yaxis;\n if(!xi || !yi) continue; // not a 2D cartesian trace?\n\n for(j = 0; j < groups.length; j++) {\n if(groups[j].x.indexOf(xi) !== -1 || groups[j].y.indexOf(yi) !== -1) {\n groupsi.push(j);\n }\n }\n\n if(!groupsi.length) {\n groups.push({x: [xi], y: [yi]});\n continue;\n }\n\n var group0 = groups[groupsi[0]];\n var groupj;\n\n if(groupsi.length > 1) {\n for(j = 1; j < groupsi.length; j++) {\n groupj = groups[groupsi[j]];\n mergeAxisGroups(group0.x, groupj.x);\n mergeAxisGroups(group0.y, groupj.y);\n }\n }\n mergeAxisGroups(group0.x, [xi]);\n mergeAxisGroups(group0.y, [yi]);\n }\n\n return groups;\n}\n\nfunction mergeAxisGroups(intoSet, fromSet) {\n for(var i = 0; i < fromSet.length; i++) {\n if(intoSet.indexOf(fromSet[i]) === -1) intoSet.push(fromSet[i]);\n }\n}\n\nfunction swapAxisGroup(gd, xIds, yIds) {\n var xFullAxes = [];\n var yFullAxes = [];\n var layout = gd.layout;\n var i, j;\n\n for(i = 0; i < xIds.length; i++) xFullAxes.push(axes.getFromId(gd, xIds[i]));\n for(i = 0; i < yIds.length; i++) yFullAxes.push(axes.getFromId(gd, yIds[i]));\n\n var allAxKeys = Object.keys(axAttrs);\n\n var noSwapAttrs = [\n 'anchor', 'domain', 'overlaying', 'position', 'side', 'tickangle', 'editType'\n ];\n var numericTypes = ['linear', 'log'];\n\n for(i = 0; i < allAxKeys.length; i++) {\n var keyi = allAxKeys[i];\n var xVal = xFullAxes[0][keyi];\n var yVal = yFullAxes[0][keyi];\n var allEqual = true;\n var coerceLinearX = false;\n var coerceLinearY = false;\n if(keyi.charAt(0) === '_' || typeof xVal === 'function' ||\n noSwapAttrs.indexOf(keyi) !== -1) {\n continue;\n }\n for(j = 1; j < xFullAxes.length && allEqual; j++) {\n var xVali = xFullAxes[j][keyi];\n if(keyi === 'type' && numericTypes.indexOf(xVal) !== -1 &&\n numericTypes.indexOf(xVali) !== -1 && xVal !== xVali) {\n // type is special - if we find a mixture of linear and log,\n // coerce them all to linear on flipping\n coerceLinearX = true;\n } else if(xVali !== xVal) allEqual = false;\n }\n for(j = 1; j < yFullAxes.length && allEqual; j++) {\n var yVali = yFullAxes[j][keyi];\n if(keyi === 'type' && numericTypes.indexOf(yVal) !== -1 &&\n numericTypes.indexOf(yVali) !== -1 && yVal !== yVali) {\n // type is special - if we find a mixture of linear and log,\n // coerce them all to linear on flipping\n coerceLinearY = true;\n } else if(yFullAxes[j][keyi] !== yVal) allEqual = false;\n }\n if(allEqual) {\n if(coerceLinearX) layout[xFullAxes[0]._name].type = 'linear';\n if(coerceLinearY) layout[yFullAxes[0]._name].type = 'linear';\n swapAxisAttrs(layout, keyi, xFullAxes, yFullAxes, gd._fullLayout._dfltTitle);\n }\n }\n\n // now swap x&y for any annotations anchored to these x & y\n for(i = 0; i < gd._fullLayout.annotations.length; i++) {\n var ann = gd._fullLayout.annotations[i];\n if(xIds.indexOf(ann.xref) !== -1 &&\n yIds.indexOf(ann.yref) !== -1) {\n Lib.swapAttrs(layout.annotations[i], ['?']);\n }\n }\n}\n\nfunction swapAxisAttrs(layout, key, xFullAxes, yFullAxes, dfltTitle) {\n // in case the value is the default for either axis,\n // look at the first axis in each list and see if\n // this key's value is undefined\n var np = Lib.nestedProperty;\n var xVal = np(layout[xFullAxes[0]._name], key).get();\n var yVal = np(layout[yFullAxes[0]._name], key).get();\n var i;\n\n if(key === 'title') {\n // special handling of placeholder titles\n if(xVal && xVal.text === dfltTitle.x) {\n xVal.text = dfltTitle.y;\n }\n if(yVal && yVal.text === dfltTitle.y) {\n yVal.text = dfltTitle.x;\n }\n }\n\n for(i = 0; i < xFullAxes.length; i++) {\n np(layout, xFullAxes[i]._name + '.' + key).set(yVal);\n }\n for(i = 0; i < yFullAxes.length; i++) {\n np(layout, yFullAxes[i]._name + '.' + key).set(xVal);\n }\n}\n\nfunction isAngular(ax) {\n return ax._id === 'angularaxis';\n}\n\n\n/***/ }),\n\n/***/ \"0648\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 300es builtins/reserved words that were previously valid in v100\r\nvar v100 = __webpack_require__(\"5ecd\")\r\n\r\n// The texture2D|Cube functions have been removed\r\n// And the gl_ features are updated\r\nv100 = v100.slice().filter(function (b) {\r\n return !/^(gl\\_|texture)/.test(b)\r\n})\r\n\r\nmodule.exports = v100.concat([\r\n // the updated gl_ constants\r\n 'gl_VertexID'\r\n , 'gl_InstanceID'\r\n , 'gl_Position'\r\n , 'gl_PointSize'\r\n , 'gl_FragCoord'\r\n , 'gl_FrontFacing'\r\n , 'gl_FragDepth'\r\n , 'gl_PointCoord'\r\n , 'gl_MaxVertexAttribs'\r\n , 'gl_MaxVertexUniformVectors'\r\n , 'gl_MaxVertexOutputVectors'\r\n , 'gl_MaxFragmentInputVectors'\r\n , 'gl_MaxVertexTextureImageUnits'\r\n , 'gl_MaxCombinedTextureImageUnits'\r\n , 'gl_MaxTextureImageUnits'\r\n , 'gl_MaxFragmentUniformVectors'\r\n , 'gl_MaxDrawBuffers'\r\n , 'gl_MinProgramTexelOffset'\r\n , 'gl_MaxProgramTexelOffset'\r\n , 'gl_DepthRangeParameters'\r\n , 'gl_DepthRange'\r\n\r\n // other builtins\r\n , 'trunc'\r\n , 'round'\r\n , 'roundEven'\r\n , 'isnan'\r\n , 'isinf'\r\n , 'floatBitsToInt'\r\n , 'floatBitsToUint'\r\n , 'intBitsToFloat'\r\n , 'uintBitsToFloat'\r\n , 'packSnorm2x16'\r\n , 'unpackSnorm2x16'\r\n , 'packUnorm2x16'\r\n , 'unpackUnorm2x16'\r\n , 'packHalf2x16'\r\n , 'unpackHalf2x16'\r\n , 'outerProduct'\r\n , 'transpose'\r\n , 'determinant'\r\n , 'inverse'\r\n , 'texture'\r\n , 'textureSize'\r\n , 'textureProj'\r\n , 'textureLod'\r\n , 'textureOffset'\r\n , 'texelFetch'\r\n , 'texelFetchOffset'\r\n , 'textureProjOffset'\r\n , 'textureLodOffset'\r\n , 'textureProjLod'\r\n , 'textureProjLodOffset'\r\n , 'textureGrad'\r\n , 'textureGradOffset'\r\n , 'textureProjGrad'\r\n , 'textureProjGradOffset'\r\n])\r\n\n\n/***/ }),\n\n/***/ \"0681\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\n// Maybe add kernels more down the road,\n// but note that the default `spanmode: 'soft'` bounds might have\n// to become kernel-dependent\nvar kernels = {\n gaussian: function(v) {\n return (1 / Math.sqrt(2 * Math.PI)) * Math.exp(-0.5 * v * v);\n }\n};\n\nexports.makeKDE = function(calcItem, trace, vals) {\n var len = vals.length;\n var kernel = kernels.gaussian;\n var bandwidth = calcItem.bandwidth;\n var factor = 1 / (len * bandwidth);\n\n // don't use Lib.aggNums to skip isNumeric checks\n return function(x) {\n var sum = 0;\n for(var i = 0; i < len; i++) {\n sum += kernel((x - vals[i]) / bandwidth);\n }\n return factor * sum;\n };\n};\n\nexports.getPositionOnKdePath = function(calcItem, trace, valuePx) {\n var posLetter, valLetter;\n\n if(trace.orientation === 'h') {\n posLetter = 'y';\n valLetter = 'x';\n } else {\n posLetter = 'x';\n valLetter = 'y';\n }\n\n var pointOnPath = Lib.findPointOnPath(\n calcItem.path,\n valuePx,\n valLetter,\n {pathLength: calcItem.pathLength}\n );\n\n var posCenterPx = calcItem.posCenterPx;\n var posOnPath0 = pointOnPath[posLetter];\n var posOnPath1 = trace.side === 'both' ?\n 2 * posCenterPx - posOnPath0 :\n posCenterPx;\n\n return [posOnPath0, posOnPath1];\n};\n\nexports.getKdeValue = function(calcItem, trace, valueDist) {\n var vals = calcItem.pts.map(exports.extractVal);\n var kde = exports.makeKDE(calcItem, trace, vals);\n return kde(valueDist) / calcItem.posDensityScale;\n};\n\nexports.extractVal = function(o) { return o.v; };\n\n\n/***/ }),\n\n/***/ \"06a2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar clear = __webpack_require__(\"a671d\")\n , assign = __webpack_require__(\"2031\")\n , callable = __webpack_require__(\"1a94\")\n , value = __webpack_require__(\"96ae\")\n , d = __webpack_require__(\"f508\")\n , autoBind = __webpack_require__(\"986b\")\n , Symbol = __webpack_require__(\"1c4a\");\n\nvar defineProperty = Object.defineProperty, defineProperties = Object.defineProperties, Iterator;\n\nmodule.exports = Iterator = function (list, context) {\n\tif (!(this instanceof Iterator)) throw new TypeError(\"Constructor requires 'new'\");\n\tdefineProperties(this, {\n\t\t__list__: d(\"w\", value(list)),\n\t\t__context__: d(\"w\", context),\n\t\t__nextIndex__: d(\"w\", 0)\n\t});\n\tif (!context) return;\n\tcallable(context.on);\n\tcontext.on(\"_add\", this._onAdd);\n\tcontext.on(\"_delete\", this._onDelete);\n\tcontext.on(\"_clear\", this._onClear);\n};\n\n// Internal %IteratorPrototype% doesn't expose its constructor\ndelete Iterator.prototype.constructor;\n\ndefineProperties(\n\tIterator.prototype,\n\tassign(\n\t\t{\n\t\t\t_next: d(function () {\n\t\t\t\tvar i;\n\t\t\t\tif (!this.__list__) return undefined;\n\t\t\t\tif (this.__redo__) {\n\t\t\t\t\ti = this.__redo__.shift();\n\t\t\t\t\tif (i !== undefined) return i;\n\t\t\t\t}\n\t\t\t\tif (this.__nextIndex__ < this.__list__.length) return this.__nextIndex__++;\n\t\t\t\tthis._unBind();\n\t\t\t\treturn undefined;\n\t\t\t}),\n\t\t\tnext: d(function () {\n\t\t\t\treturn this._createResult(this._next());\n\t\t\t}),\n\t\t\t_createResult: d(function (i) {\n\t\t\t\tif (i === undefined) return { done: true, value: undefined };\n\t\t\t\treturn { done: false, value: this._resolve(i) };\n\t\t\t}),\n\t\t\t_resolve: d(function (i) {\n\t\t\t\treturn this.__list__[i];\n\t\t\t}),\n\t\t\t_unBind: d(function () {\n\t\t\t\tthis.__list__ = null;\n\t\t\t\tdelete this.__redo__;\n\t\t\t\tif (!this.__context__) return;\n\t\t\t\tthis.__context__.off(\"_add\", this._onAdd);\n\t\t\t\tthis.__context__.off(\"_delete\", this._onDelete);\n\t\t\t\tthis.__context__.off(\"_clear\", this._onClear);\n\t\t\t\tthis.__context__ = null;\n\t\t\t}),\n\t\t\ttoString: d(function () {\n\t\t\t\treturn \"[object \" + (this[Symbol.toStringTag] || \"Object\") + \"]\";\n\t\t\t})\n\t\t},\n\t\tautoBind({\n\t\t\t_onAdd: d(function (index) {\n\t\t\t\tif (index >= this.__nextIndex__) return;\n\t\t\t\t++this.__nextIndex__;\n\t\t\t\tif (!this.__redo__) {\n\t\t\t\t\tdefineProperty(this, \"__redo__\", d(\"c\", [index]));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.__redo__.forEach(function (redo, i) {\n\t\t\t\t\tif (redo >= index) this.__redo__[i] = ++redo;\n\t\t\t\t}, this);\n\t\t\t\tthis.__redo__.push(index);\n\t\t\t}),\n\t\t\t_onDelete: d(function (index) {\n\t\t\t\tvar i;\n\t\t\t\tif (index >= this.__nextIndex__) return;\n\t\t\t\t--this.__nextIndex__;\n\t\t\t\tif (!this.__redo__) return;\n\t\t\t\ti = this.__redo__.indexOf(index);\n\t\t\t\tif (i !== -1) this.__redo__.splice(i, 1);\n\t\t\t\tthis.__redo__.forEach(function (redo, j) {\n\t\t\t\t\tif (redo > index) this.__redo__[j] = --redo;\n\t\t\t\t}, this);\n\t\t\t}),\n\t\t\t_onClear: d(function () {\n\t\t\t\tif (this.__redo__) clear.call(this.__redo__);\n\t\t\t\tthis.__nextIndex__ = 0;\n\t\t\t})\n\t\t})\n\t)\n);\n\ndefineProperty(\n\tIterator.prototype,\n\tSymbol.iterator,\n\td(function () {\n\t\treturn this;\n\t})\n);\n\n\n/***/ }),\n\n/***/ \"06ad\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar layoutAttributes = __webpack_require__(\"60dc\");\n\nfunction _supply(layoutIn, layoutOut, fullData, coerce, traceType) {\n var category = traceType + 'Layout';\n var hasTraceType = false;\n\n for(var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n\n if(Registry.traceIs(trace, category)) {\n hasTraceType = true;\n break;\n }\n }\n if(!hasTraceType) return;\n\n coerce(traceType + 'mode');\n coerce(traceType + 'gap');\n coerce(traceType + 'groupgap');\n}\n\nfunction supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n _supply(layoutIn, layoutOut, fullData, coerce, 'box');\n}\n\nmodule.exports = {\n supplyLayoutDefaults: supplyLayoutDefaults,\n _supply: _supply\n};\n\n\n/***/ }),\n\n/***/ \"06cf\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar propertyIsEnumerableModule = __webpack_require__(\"d1e7\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar toPrimitive = __webpack_require__(\"c04e\");\nvar has = __webpack_require__(\"5135\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"0cfb\");\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n\n/***/ \"075f\":\n/***/ (function(module, exports) {\n\nvar DEFAULT_NORMALS_EPSILON = 1e-6;\nvar DEFAULT_FACE_EPSILON = 1e-6;\n\n//Estimate the vertex normals of a mesh\nexports.vertexNormals = function(faces, positions, specifiedEpsilon) {\n\n var N = positions.length;\n var normals = new Array(N);\n var epsilon = specifiedEpsilon === void(0) ? DEFAULT_NORMALS_EPSILON : specifiedEpsilon;\n\n //Initialize normal array\n for(var i=0; i epsilon) {\n var norm = normals[c];\n var w = 1.0 / Math.sqrt(m01 * m21);\n for(var k=0; k<3; ++k) {\n var u = (k+1)%3;\n var v = (k+2)%3;\n norm[k] += w * (d21[u] * d01[v] - d21[v] * d01[u]);\n }\n }\n }\n }\n\n //Scale all normals to unit length\n for(var i=0; i epsilon) {\n var w = 1.0 / Math.sqrt(m);\n for(var k=0; k<3; ++k) {\n norm[k] *= w;\n }\n } else {\n for(var k=0; k<3; ++k) {\n norm[k] = 0.0;\n }\n }\n }\n\n //Return the resulting set of patches\n return normals;\n}\n\n//Compute face normals of a mesh\nexports.faceNormals = function(faces, positions, specifiedEpsilon) {\n\n var N = faces.length;\n var normals = new Array(N);\n var epsilon = specifiedEpsilon === void(0) ? DEFAULT_FACE_EPSILON : specifiedEpsilon;\n\n for(var i=0; i epsilon) {\n l = 1.0 / Math.sqrt(l);\n } else {\n l = 0.0;\n }\n for(var j=0; j<3; ++j) {\n n[j] *= l;\n }\n normals[i] = n;\n }\n return normals;\n}\n\n\n\n\n/***/ }),\n\n/***/ \"076f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Registry = __webpack_require__(\"371e\");\n\nmodule.exports = function handleXYDefaults(traceIn, traceOut, layout, coerce) {\n var x = coerce('x');\n var y = coerce('y');\n var len;\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x', 'y'], layout);\n\n if(x) {\n var xlen = Lib.minRowLength(x);\n if(y) {\n len = Math.min(xlen, Lib.minRowLength(y));\n } else {\n len = xlen;\n coerce('y0');\n coerce('dy');\n }\n } else {\n if(!y) return 0;\n\n len = Lib.minRowLength(y);\n coerce('x0');\n coerce('dx');\n }\n\n traceOut._length = len;\n\n return len;\n};\n\n\n/***/ }),\n\n/***/ \"078e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\nvar Scene2D = __webpack_require__(\"e212\");\nvar layoutGlobalAttrs = __webpack_require__(\"a685\");\nvar xmlnsNamespaces = __webpack_require__(\"73c9\");\nvar constants = __webpack_require__(\"d301\");\nvar Cartesian = __webpack_require__(\"91cd\");\nvar fxAttrs = __webpack_require__(\"927d\");\nvar getSubplotData = __webpack_require__(\"ad62\").getSubplotData;\n\nexports.name = 'gl2d';\n\nexports.attr = ['xaxis', 'yaxis'];\n\nexports.idRoot = ['x', 'y'];\n\nexports.idRegex = constants.idRegex;\n\nexports.attrRegex = constants.attrRegex;\n\nexports.attributes = __webpack_require__(\"3ff7\");\n\nexports.supplyLayoutDefaults = function(layoutIn, layoutOut, fullData) {\n if(!layoutOut._has('cartesian')) {\n Cartesian.supplyLayoutDefaults(layoutIn, layoutOut, fullData);\n }\n};\n\n// gl2d uses svg axis attributes verbatim, but overrides editType\n// this could potentially be just `layoutAttributes` but it would\n// still need special handling somewhere to give it precedence over\n// the svg version when both are in use on one plot\nexports.layoutAttrOverrides = overrideAll(Cartesian.layoutAttributes, 'plot', 'from-root');\n\n// similar overrides for base plot attributes (and those added by components)\nexports.baseLayoutAttrOverrides = overrideAll({\n plot_bgcolor: layoutGlobalAttrs.plot_bgcolor,\n hoverlabel: fxAttrs.hoverlabel\n // dragmode needs calc but only when transitioning TO lasso or select\n // so for now it's left inside _relayout\n // dragmode: fxAttrs.dragmode\n}, 'plot', 'nested');\n\nexports.plot = function plot(gd) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var subplotIds = fullLayout._subplots.gl2d;\n\n for(var i = 0; i < subplotIds.length; i++) {\n var subplotId = subplotIds[i];\n var subplotObj = fullLayout._plots[subplotId];\n var fullSubplotData = getSubplotData(fullData, 'gl2d', subplotId);\n\n // ref. to corresp. Scene instance\n var scene = subplotObj._scene2d;\n\n // If Scene is not instantiated, create one!\n if(scene === undefined) {\n scene = new Scene2D({\n id: subplotId,\n graphDiv: gd,\n container: gd.querySelector('.gl-container'),\n staticPlot: gd._context.staticPlot,\n plotGlPixelRatio: gd._context.plotGlPixelRatio\n },\n fullLayout\n );\n\n // set ref to Scene instance\n subplotObj._scene2d = scene;\n }\n\n scene.plot(fullSubplotData, gd.calcdata, fullLayout, gd.layout);\n }\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldSceneKeys = oldFullLayout._subplots.gl2d || [];\n\n for(var i = 0; i < oldSceneKeys.length; i++) {\n var id = oldSceneKeys[i];\n var oldSubplot = oldFullLayout._plots[id];\n\n // old subplot wasn't gl2d; nothing to do\n if(!oldSubplot._scene2d) continue;\n\n // if no traces are present, delete gl2d subplot\n var subplotData = getSubplotData(newFullData, 'gl2d', id);\n if(subplotData.length === 0) {\n oldSubplot._scene2d.destroy();\n delete oldFullLayout._plots[id];\n }\n }\n\n // since we use cartesian interactions, do cartesian clean\n Cartesian.clean.apply(this, arguments);\n};\n\nexports.drawFramework = function(gd) {\n if(!gd._context.staticPlot) {\n Cartesian.drawFramework(gd);\n }\n};\n\nexports.toSVG = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots.gl2d;\n\n for(var i = 0; i < subplotIds.length; i++) {\n var subplot = fullLayout._plots[subplotIds[i]];\n var scene = subplot._scene2d;\n\n var imageData = scene.toImage('png');\n var image = fullLayout._glimages.append('svg:image');\n\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n 'xlink:href': imageData,\n x: 0,\n y: 0,\n width: '100%',\n height: '100%',\n preserveAspectRatio: 'none'\n });\n\n scene.destroy();\n }\n};\n\nexports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots.gl2d;\n\n for(var i = 0; i < subplotIds.length; i++) {\n var subplotObj = fullLayout._plots[subplotIds[i]]._scene2d;\n subplotObj.updateFx(fullLayout.dragmode);\n }\n};\n\n\n/***/ }),\n\n/***/ \"07db\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\nvar sprintf = __webpack_require__(\"e19f\").sprintf;\nvar glConstants = __webpack_require__(\"b42a\");\nvar shaderName = __webpack_require__(\"b2dd\");\nvar addLineNumbers = __webpack_require__(\"911e\");\n\nmodule.exports = formatCompilerError;\n\nfunction formatCompilerError(errLog, src, type) {\n \"use strict\";\n\n var name = shaderName(src) || 'of unknown name (see npm glsl-shader-name)';\n\n var typeName = 'unknown type';\n if (type !== undefined) {\n typeName = type === glConstants.FRAGMENT_SHADER ? 'fragment' : 'vertex'\n }\n\n var longForm = sprintf('Error compiling %s shader %s:\\n', typeName, name);\n var shortForm = sprintf(\"%s%s\", longForm, errLog);\n\n var errorStrings = errLog.split('\\n');\n var errors = {};\n\n for (var i = 0; i < errorStrings.length; i++) {\n var errorString = errorStrings[i];\n if (errorString === '' || errorString === \"\\0\") continue;\n var lineNo = parseInt(errorString.split(':')[2]);\n if (isNaN(lineNo)) {\n throw new Error(sprintf('Could not parse error: %s', errorString));\n }\n errors[lineNo] = errorString;\n }\n\n var lines = addLineNumbers(src).split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n if (!errors[i+3] && !errors[i+2] && !errors[i+1]) continue;\n var line = lines[i];\n longForm += line + '\\n';\n if (errors[i+1]) {\n var e = errors[i+1];\n e = e.substr(e.split(':', 3).join(':').length + 1).trim();\n longForm += sprintf('^^^ %s\\n\\n', e);\n }\n }\n\n return {\n long: longForm.trim(),\n short: shortForm.trim()\n };\n}\n\n\n\n/***/ }),\n\n/***/ \"07dd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Registry = __webpack_require__(\"371e\");\nvar attributes = __webpack_require__(\"a08c\");\nvar colorscaleDefaults = __webpack_require__(\"4183\");\n\nfunction supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n}\n\nfunction supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce) {\n var isomin = coerce('isomin');\n var isomax = coerce('isomax');\n\n if(isomax !== undefined && isomax !== null &&\n isomin !== undefined && isomin !== null &&\n isomin > isomax) {\n // applying default values in this case:\n traceOut.isomin = null;\n traceOut.isomax = null;\n }\n\n var x = coerce('x');\n var y = coerce('y');\n var z = coerce('z');\n var value = coerce('value');\n\n if(\n !x || !x.length ||\n !y || !y.length ||\n !z || !z.length ||\n !value || !value.length\n ) {\n traceOut.visible = false;\n return;\n }\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x', 'y', 'z'], layout);\n\n ['x', 'y', 'z'].forEach(function(dim) {\n var capDim = 'caps.' + dim;\n var showCap = coerce(capDim + '.show');\n if(showCap) {\n coerce(capDim + '.fill');\n }\n\n var sliceDim = 'slices.' + dim;\n var showSlice = coerce(sliceDim + '.show');\n if(showSlice) {\n coerce(sliceDim + '.fill');\n coerce(sliceDim + '.locations');\n }\n });\n\n var showSpaceframe = coerce('spaceframe.show');\n if(showSpaceframe) {\n coerce('spaceframe.fill');\n }\n\n var showSurface = coerce('surface.show');\n if(showSurface) {\n coerce('surface.count');\n coerce('surface.fill');\n coerce('surface.pattern');\n }\n\n var showContour = coerce('contour.show');\n if(showContour) {\n coerce('contour.color');\n coerce('contour.width');\n }\n\n // Coerce remaining properties\n [\n 'text',\n 'hovertext',\n 'hovertemplate',\n 'lighting.ambient',\n 'lighting.diffuse',\n 'lighting.specular',\n 'lighting.roughness',\n 'lighting.fresnel',\n 'lighting.vertexnormalsepsilon',\n 'lighting.facenormalsepsilon',\n 'lightposition.x',\n 'lightposition.y',\n 'lightposition.z',\n 'flatshading',\n 'opacity'\n ].forEach(function(x) { coerce(x); });\n\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'});\n\n // disable 1D transforms (for now)\n traceOut._length = null;\n}\n\nmodule.exports = {\n supplyDefaults: supplyDefaults,\n supplyIsoDefaults: supplyIsoDefaults\n};\n\n\n/***/ }),\n\n/***/ \"0804\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n// projection names to d3 function name\nexports.projNames = {\n // d3.geo.projection\n 'equirectangular': 'equirectangular',\n 'mercator': 'mercator',\n 'orthographic': 'orthographic',\n 'natural earth': 'naturalEarth',\n 'kavrayskiy7': 'kavrayskiy7',\n 'miller': 'miller',\n 'robinson': 'robinson',\n 'eckert4': 'eckert4',\n 'azimuthal equal area': 'azimuthalEqualArea',\n 'azimuthal equidistant': 'azimuthalEquidistant',\n 'conic equal area': 'conicEqualArea',\n 'conic conformal': 'conicConformal',\n 'conic equidistant': 'conicEquidistant',\n 'gnomonic': 'gnomonic',\n 'stereographic': 'stereographic',\n 'mollweide': 'mollweide',\n 'hammer': 'hammer',\n 'transverse mercator': 'transverseMercator',\n 'albers usa': 'albersUsa',\n 'winkel tripel': 'winkel3',\n 'aitoff': 'aitoff',\n 'sinusoidal': 'sinusoidal'\n};\n\n// name of the axes\nexports.axesNames = ['lonaxis', 'lataxis'];\n\n// max longitudinal angular span (EXPERIMENTAL)\nexports.lonaxisSpan = {\n 'orthographic': 180,\n 'azimuthal equal area': 360,\n 'azimuthal equidistant': 360,\n 'conic conformal': 180,\n 'gnomonic': 160,\n 'stereographic': 180,\n 'transverse mercator': 180,\n '*': 360\n};\n\n// max latitudinal angular span (EXPERIMENTAL)\nexports.lataxisSpan = {\n 'conic conformal': 150,\n 'stereographic': 179.5,\n '*': 180\n};\n\n// defaults for each scope\nexports.scopeDefaults = {\n world: {\n lonaxisRange: [-180, 180],\n lataxisRange: [-90, 90],\n projType: 'equirectangular',\n projRotate: [0, 0, 0]\n },\n usa: {\n lonaxisRange: [-180, -50],\n lataxisRange: [15, 80],\n projType: 'albers usa'\n },\n europe: {\n lonaxisRange: [-30, 60],\n lataxisRange: [30, 85],\n projType: 'conic conformal',\n projRotate: [15, 0, 0],\n projParallels: [0, 60]\n },\n asia: {\n lonaxisRange: [22, 160],\n lataxisRange: [-15, 55],\n projType: 'mercator',\n projRotate: [0, 0, 0]\n },\n africa: {\n lonaxisRange: [-30, 60],\n lataxisRange: [-40, 40],\n projType: 'mercator',\n projRotate: [0, 0, 0]\n },\n 'north america': {\n lonaxisRange: [-180, -45],\n lataxisRange: [5, 85],\n projType: 'conic conformal',\n projRotate: [-100, 0, 0],\n projParallels: [29.5, 45.5]\n },\n 'south america': {\n lonaxisRange: [-100, -30],\n lataxisRange: [-60, 15],\n projType: 'mercator',\n projRotate: [0, 0, 0]\n }\n};\n\n// angular pad to avoid rounding error around clip angles\nexports.clipPad = 1e-3;\n\n// map projection precision\nexports.precision = 0.1;\n\n// default land and water fill colors\nexports.landColor = '#F0DC82';\nexports.waterColor = '#3399FF';\n\n// locationmode to layer name\nexports.locationmodeToLayer = {\n 'ISO-3': 'countries',\n 'USA-states': 'subunits',\n 'country names': 'countries'\n};\n\n// SVG element for a sphere (use to frame maps)\nexports.sphereSVG = {type: 'Sphere'};\n\n// N.B. base layer names must be the same as in the topojson files\n\n// base layer with a fill color\nexports.fillLayers = {\n ocean: 1,\n land: 1,\n lakes: 1\n};\n\n// base layer with a only a line color\nexports.lineLayers = {\n subunits: 1,\n countries: 1,\n coastlines: 1,\n rivers: 1,\n frame: 1\n};\n\nexports.layers = [\n 'bg',\n 'ocean', 'land', 'lakes',\n 'subunits', 'countries', 'coastlines', 'rivers',\n 'lataxis', 'lonaxis', 'frame',\n 'backplot',\n 'frontplot'\n];\n\nexports.layersForChoropleth = [\n 'bg',\n 'ocean', 'land',\n 'subunits', 'countries', 'coastlines',\n 'lataxis', 'lonaxis', 'frame',\n 'backplot',\n 'rivers', 'lakes',\n 'frontplot'\n];\n\nexports.layerNameToAdjective = {\n ocean: 'ocean',\n land: 'land',\n lakes: 'lake',\n subunits: 'subunit',\n countries: 'country',\n coastlines: 'coastline',\n rivers: 'river',\n frame: 'frame'\n};\n\n\n/***/ }),\n\n/***/ \"085f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar doubleBits = __webpack_require__(\"abc0\")\n\nvar SMALLEST_DENORM = Math.pow(2, -1074)\nvar UINT_MAX = (-1)>>>0\n\nmodule.exports = nextafter\n\nfunction nextafter(x, y) {\n if(isNaN(x) || isNaN(y)) {\n return NaN\n }\n if(x === y) {\n return x\n }\n if(x === 0) {\n if(y < 0) {\n return -SMALLEST_DENORM\n } else {\n return SMALLEST_DENORM\n }\n }\n var hi = doubleBits.hi(x)\n var lo = doubleBits.lo(x)\n if((y > x) === (x > 0)) {\n if(lo === UINT_MAX) {\n hi += 1\n lo = 0\n } else {\n lo += 1\n }\n } else {\n if(lo === 0) {\n lo = UINT_MAX\n hi -= 1\n } else {\n lo -= 1\n }\n }\n return doubleBits.pack(lo, hi)\n}\n\n/***/ }),\n\n/***/ \"089c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nmodule.exports = {\n solid: [[], 0],\n dot: [[0.5, 1], 200],\n dash: [[0.5, 1], 50],\n longdash: [[0.5, 1], 10],\n dashdot: [[0.5, 0.625, 0.875, 1], 50],\n longdashdot: [[0.5, 0.7, 0.8, 1], 10]\n};\n\n\n/***/ }),\n\n/***/ \"08ed\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n moduleType: 'trace',\n name: 'barpolar',\n basePlotModule: __webpack_require__(\"c07c\"),\n categories: ['polar', 'bar', 'showLegend'],\n\n attributes: __webpack_require__(\"792f\"),\n layoutAttributes: __webpack_require__(\"4ce7\"),\n supplyDefaults: __webpack_require__(\"5da2\"),\n supplyLayoutDefaults: __webpack_require__(\"25f3\"),\n\n calc: __webpack_require__(\"ce20\").calc,\n crossTraceCalc: __webpack_require__(\"ce20\").crossTraceCalc,\n\n plot: __webpack_require__(\"ec16\"),\n colorbar: __webpack_require__(\"f3cf\"),\n formatLabels: __webpack_require__(\"98e74\"),\n\n style: __webpack_require__(\"2df3\").style,\n styleOnSelect: __webpack_require__(\"2df3\").styleOnSelect,\n\n hoverPoints: __webpack_require__(\"f11b\"),\n selectPoints: __webpack_require__(\"7000\"),\n\n meta: {\n \n \n }\n};\n\n\n/***/ }),\n\n/***/ \"0919\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar countryRegex = __webpack_require__(\"cec7\");\nvar turfArea = __webpack_require__(\"3b74\");\nvar turfCentroid = __webpack_require__(\"8dde\");\nvar turfBbox = __webpack_require__(\"409f\");\n\nvar identity = __webpack_require__(\"306c\");\nvar loggers = __webpack_require__(\"ae13\");\nvar isPlainObject = __webpack_require__(\"1385\");\nvar nestedProperty = __webpack_require__(\"74d6\");\nvar polygon = __webpack_require__(\"b68b\");\n\n// make list of all country iso3 ids from at runtime\nvar countryIds = Object.keys(countryRegex);\n\nvar locationmodeToIdFinder = {\n 'ISO-3': identity,\n 'USA-states': identity,\n 'country names': countryNameToISO3\n};\n\nfunction countryNameToISO3(countryName) {\n for(var i = 0; i < countryIds.length; i++) {\n var iso3 = countryIds[i];\n var regex = new RegExp(countryRegex[iso3]);\n\n if(regex.test(countryName.trim().toLowerCase())) return iso3;\n }\n\n loggers.log('Unrecognized country name: ' + countryName + '.');\n\n return false;\n}\n\nfunction locationToFeature(locationmode, location, features) {\n if(!location || typeof location !== 'string') return false;\n\n var locationId = locationmodeToIdFinder[locationmode](location);\n var filteredFeatures;\n var f, i;\n\n if(locationId) {\n if(locationmode === 'USA-states') {\n // Filter out features out in USA\n //\n // This is important as the Natural Earth files\n // include state/provinces from USA, Canada, Australia and Brazil\n // which have some overlay in their two-letter ids. For example,\n // 'WA' is used for both Washington state and Western Australia.\n filteredFeatures = [];\n for(i = 0; i < features.length; i++) {\n f = features[i];\n if(f.properties && f.properties.gu && f.properties.gu === 'USA') {\n filteredFeatures.push(f);\n }\n }\n } else {\n filteredFeatures = features;\n }\n\n for(i = 0; i < filteredFeatures.length; i++) {\n f = filteredFeatures[i];\n if(f.id === locationId) return f;\n }\n\n loggers.log([\n 'Location with id', locationId,\n 'does not have a matching topojson feature at this resolution.'\n ].join(' '));\n }\n\n return false;\n}\n\nfunction feature2polygons(feature) {\n var geometry = feature.geometry;\n var coords = geometry.coordinates;\n var loc = feature.id;\n\n var polygons = [];\n var appendPolygon, j, k, m;\n\n function doesCrossAntiMerdian(pts) {\n for(var l = 0; l < pts.length - 1; l++) {\n if(pts[l][0] > 0 && pts[l + 1][0] < 0) return l;\n }\n return null;\n }\n\n if(loc === 'RUS' || loc === 'FJI') {\n // Russia and Fiji have landmasses that cross the antimeridian,\n // we need to add +360 to their longitude coordinates, so that\n // polygon 'contains' doesn't get confused when crossing the antimeridian.\n //\n // Note that other countries have polygons on either side of the antimeridian\n // (e.g. some Aleutian island for the USA), but those don't confuse\n // the 'contains' method; these are skipped here.\n appendPolygon = function(_pts) {\n var pts;\n\n if(doesCrossAntiMerdian(_pts) === null) {\n pts = _pts;\n } else {\n pts = new Array(_pts.length);\n for(m = 0; m < _pts.length; m++) {\n // do not mutate calcdata[i][j].geojson !!\n pts[m] = [\n _pts[m][0] < 0 ? _pts[m][0] + 360 : _pts[m][0],\n _pts[m][1]\n ];\n }\n }\n\n polygons.push(polygon.tester(pts));\n };\n } else if(loc === 'ATA') {\n // Antarctica has a landmass that wraps around every longitudes which\n // confuses the 'contains' methods.\n appendPolygon = function(pts) {\n var crossAntiMeridianIndex = doesCrossAntiMerdian(pts);\n\n // polygon that do not cross anti-meridian need no special handling\n if(crossAntiMeridianIndex === null) {\n return polygons.push(polygon.tester(pts));\n }\n\n // stitch polygon by adding pt over South Pole,\n // so that it covers the projected region covers all latitudes\n //\n // Note that the algorithm below only works for polygons that\n // start and end on longitude -180 (like the ones built by\n // https://github.com/etpinard/sane-topojson).\n var stitch = new Array(pts.length + 1);\n var si = 0;\n\n for(m = 0; m < pts.length; m++) {\n if(m > crossAntiMeridianIndex) {\n stitch[si++] = [pts[m][0] + 360, pts[m][1]];\n } else if(m === crossAntiMeridianIndex) {\n stitch[si++] = pts[m];\n stitch[si++] = [pts[m][0], -90];\n } else {\n stitch[si++] = pts[m];\n }\n }\n\n // polygon.tester by default appends pt[0] to the points list,\n // we must remove it here, to avoid a jump in longitude from 180 to -180,\n // that would confuse the 'contains' method\n var tester = polygon.tester(stitch);\n tester.pts.pop();\n polygons.push(tester);\n };\n } else {\n // otherwise using same array ref is fine\n appendPolygon = function(pts) {\n polygons.push(polygon.tester(pts));\n };\n }\n\n switch(geometry.type) {\n case 'MultiPolygon':\n for(j = 0; j < coords.length; j++) {\n for(k = 0; k < coords[j].length; k++) {\n appendPolygon(coords[j][k]);\n }\n }\n break;\n case 'Polygon':\n for(j = 0; j < coords.length; j++) {\n appendPolygon(coords[j]);\n }\n break;\n }\n\n return polygons;\n}\n\nfunction getTraceGeojson(trace) {\n var g = trace.geojson;\n var PlotlyGeoAssets = window.PlotlyGeoAssets || {};\n var geojsonIn = typeof g === 'string' ? PlotlyGeoAssets[g] : g;\n\n // This should not happen, but just in case something goes\n // really wrong when fetching the GeoJSON\n if(!isPlainObject(geojsonIn)) {\n loggers.error('Oops ... something went wrong when fetching ' + g);\n return false;\n }\n\n return geojsonIn;\n}\n\nfunction extractTraceFeature(calcTrace) {\n var trace = calcTrace[0].trace;\n\n var geojsonIn = getTraceGeojson(trace);\n if(!geojsonIn) return false;\n\n var lookup = {};\n var featuresOut = [];\n var i;\n\n for(i = 0; i < trace._length; i++) {\n var cdi = calcTrace[i];\n if(cdi.loc || cdi.loc === 0) {\n lookup[cdi.loc] = cdi;\n }\n }\n\n function appendFeature(fIn) {\n var id = nestedProperty(fIn, trace.featureidkey || 'id').get();\n var cdi = lookup[id];\n\n if(cdi) {\n var geometry = fIn.geometry;\n\n if(geometry.type === 'Polygon' || geometry.type === 'MultiPolygon') {\n var fOut = {\n type: 'Feature',\n id: id,\n geometry: geometry,\n properties: {}\n };\n\n // Compute centroid, add it to the properties\n fOut.properties.ct = findCentroid(fOut);\n\n // Mutate in in/out features into calcdata\n cdi.fIn = fIn;\n cdi.fOut = fOut;\n\n featuresOut.push(fOut);\n } else {\n loggers.log([\n 'Location', cdi.loc, 'does not have a valid GeoJSON geometry.',\n 'Traces with locationmode *geojson-id* only support',\n '*Polygon* and *MultiPolygon* geometries.'\n ].join(' '));\n }\n }\n\n // remove key from lookup, so that we can track (if any)\n // the locations that did not have a corresponding GeoJSON feature\n delete lookup[id];\n }\n\n switch(geojsonIn.type) {\n case 'FeatureCollection':\n var featuresIn = geojsonIn.features;\n for(i = 0; i < featuresIn.length; i++) {\n appendFeature(featuresIn[i]);\n }\n break;\n case 'Feature':\n appendFeature(geojsonIn);\n break;\n default:\n loggers.warn([\n 'Invalid GeoJSON type', (geojsonIn.type || 'none') + '.',\n 'Traces with locationmode *geojson-id* only support',\n '*FeatureCollection* and *Feature* types.'\n ].join(' '));\n return false;\n }\n\n for(var loc in lookup) {\n loggers.log([\n 'Location *' + loc + '*',\n 'does not have a matching feature with id-key',\n '*' + trace.featureidkey + '*.'\n ].join(' '));\n }\n\n return featuresOut;\n}\n\n// TODO this find the centroid of the polygon of maxArea\n// (just like we currently do for geo choropleth polygons),\n// maybe instead it would make more sense to compute the centroid\n// of each polygon and consider those on hover/select\nfunction findCentroid(feature) {\n var geometry = feature.geometry;\n var poly;\n\n if(geometry.type === 'MultiPolygon') {\n var coords = geometry.coordinates;\n var maxArea = 0;\n\n for(var i = 0; i < coords.length; i++) {\n var polyi = {type: 'Polygon', coordinates: coords[i]};\n var area = turfArea.default(polyi);\n if(area > maxArea) {\n maxArea = area;\n poly = polyi;\n }\n }\n } else {\n poly = geometry;\n }\n\n return turfCentroid.default(poly).geometry.coordinates;\n}\n\nfunction fetchTraceGeoData(calcData) {\n var PlotlyGeoAssets = window.PlotlyGeoAssets || {};\n var promises = [];\n\n function fetch(url) {\n return new Promise(function(resolve, reject) {\n d3.json(url, function(err, d) {\n if(err) {\n delete PlotlyGeoAssets[url];\n var msg = err.status === 404 ?\n ('GeoJSON at URL \"' + url + '\" does not exist.') :\n ('Unexpected error while fetching from ' + url);\n return reject(new Error(msg));\n }\n\n PlotlyGeoAssets[url] = d;\n return resolve(d);\n });\n });\n }\n\n function wait(url) {\n return new Promise(function(resolve, reject) {\n var cnt = 0;\n var interval = setInterval(function() {\n if(PlotlyGeoAssets[url] && PlotlyGeoAssets[url] !== 'pending') {\n clearInterval(interval);\n return resolve(PlotlyGeoAssets[url]);\n }\n if(cnt > 100) {\n clearInterval(interval);\n return reject('Unexpected error while fetching from ' + url);\n }\n cnt++;\n }, 50);\n });\n }\n\n for(var i = 0; i < calcData.length; i++) {\n var trace = calcData[i][0].trace;\n var url = trace.geojson;\n\n if(typeof url === 'string') {\n if(!PlotlyGeoAssets[url]) {\n PlotlyGeoAssets[url] = 'pending';\n promises.push(fetch(url));\n } else if(PlotlyGeoAssets[url] === 'pending') {\n promises.push(wait(url));\n }\n }\n }\n\n return promises;\n}\n\n// TODO `turf/bbox` gives wrong result when the input feature/geometry\n// crosses the anti-meridian. We should try to implement our own bbox logic.\nfunction computeBbox(d) {\n return turfBbox.default(d);\n}\n\nmodule.exports = {\n locationToFeature: locationToFeature,\n feature2polygons: feature2polygons,\n getTraceGeojson: getTraceGeojson,\n extractTraceFeature: extractTraceFeature,\n fetchTraceGeoData: fetchTraceGeoData,\n computeBbox: computeBbox\n};\n\n\n/***/ }),\n\n/***/ \"093d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar rat = __webpack_require__(\"f7bf\")\nvar mul = __webpack_require__(\"3bd6\")\n\nmodule.exports = muls\n\nfunction muls(a, x) {\n var s = rat(x)\n var n = a.length\n var r = new Array(n)\n for(var i=0; i= 0xd800 && code <= 0xdbff) return char + this.__list__[this.__nextIndex__++];\n\t\treturn char;\n\t})\n});\ndefineProperty(StringIterator.prototype, Symbol.toStringTag, d(\"c\", \"String Iterator\"));\n\n\n/***/ }),\n\n/***/ \"0a3e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar identity = __webpack_require__(\"306c\");\n\nfunction wrap(d) {return [d];}\n\nmodule.exports = {\n\n // The D3 data binding concept and the General Update Pattern promotes the idea of\n // traversing into the scenegraph by using the `.data(fun, keyFun)` call.\n // The `fun` is most often a `repeat`, ie. the elements beneath a `` element need\n // access to the same data, or a `descend`, which fans a scenegraph node into a bunch of\n // of elements, e.g. points, lines, rows, requiring an array as input.\n // The role of the `keyFun` is to identify what elements are being entered/exited/updated,\n // otherwise D3 reverts to using a plain index which would screw up `transition`s.\n keyFun: function(d) {return d.key;},\n repeat: wrap,\n descend: identity,\n\n // Plotly.js uses a convention of storing the actual contents of the `calcData` as the\n // element zero of a container array. These helpers are just used for clarity as a\n // newcomer to the codebase may not know what the `[0]` is, and whether there can be further\n // elements (not atm).\n wrap: wrap,\n unwrap: function(d) {return d[0];}\n};\n\n\n/***/ }),\n\n/***/ \"0a4a\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/center.js\n/* harmony default export */ var center = (function(x, y) {\n var nodes;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/constant.js\n/* harmony default export */ var constant = (function(x) {\n return function() {\n return x;\n };\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/jiggle.js\n/* harmony default export */ var jiggle = (function() {\n return (Math.random() - 0.5) * 1e-6;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/add.js\n/* harmony default export */ var add = (function(d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add_add(this.cover(x, y), x, y, d);\n});\n\nfunction add_add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nfunction addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add_add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/cover.js\n/* harmony default export */ var cover = (function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/data.js\n/* harmony default export */ var src_data = (function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/extent.js\n/* harmony default export */ var extent = (function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/quad.js\n/* harmony default export */ var src_quad = (function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/find.js\n\n\n/* harmony default export */ var find = (function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new src_quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new src_quad(node[3], xm, ym, x2, y2),\n new src_quad(node[2], x1, ym, xm, y2),\n new src_quad(node[1], xm, y1, x2, ym),\n new src_quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/remove.js\n/* harmony default export */ var remove = (function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n});\n\nfunction removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/root.js\n/* harmony default export */ var root = (function() {\n return this._root;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/size.js\n/* harmony default export */ var size = (function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/visit.js\n\n\n/* harmony default export */ var visit = (function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new src_quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new src_quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new src_quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new src_quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new src_quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/visitAfter.js\n\n\n/* harmony default export */ var visitAfter = (function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new src_quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new src_quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new src_quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new src_quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new src_quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/x.js\nfunction defaultX(d) {\n return d[0];\n}\n\n/* harmony default export */ var src_x = (function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/y.js\nfunction defaultY(d) {\n return d[1];\n}\n\n/* harmony default export */ var src_y = (function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/quadtree.js\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = add;\ntreeProto.addAll = addAll;\ntreeProto.cover = cover;\ntreeProto.data = src_data;\ntreeProto.extent = extent;\ntreeProto.find = find;\ntreeProto.remove = remove;\ntreeProto.removeAll = removeAll;\ntreeProto.root = root;\ntreeProto.size = size;\ntreeProto.visit = visit;\ntreeProto.visitAfter = visitAfter;\ntreeProto.x = src_x;\ntreeProto.y = src_y;\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/collide.js\n\n\n\n\nfunction collide_x(d) {\n return d.x + d.vx;\n}\n\nfunction collide_y(d) {\n return d.y + d.vy;\n}\n\n/* harmony default export */ var collide = (function(radius) {\n var nodes,\n radii,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, collide_x, collide_y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n return force;\n});\n\n// EXTERNAL MODULE: ./node_modules/d3-collection/src/index.js + 6 modules\nvar src = __webpack_require__(\"6f04\");\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/link.js\n\n\n\n\nfunction index(d) {\n return d.index;\n}\n\nfunction link_find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"missing: \" + nodeId);\n return node;\n}\n\n/* harmony default export */ var src_link = (function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n count,\n bias,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle();\n y = target.y + target.vy - source.y - source.vy || jiggle();\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = Object(src[\"a\" /* map */])(nodes, id),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = link_find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = link_find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-dispatch/src/dispatch.js\nvar noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\n/* harmony default export */ var src_dispatch = (dispatch);\n\n// CONCATENATED MODULE: ./node_modules/d3-timer/src/timer.js\nvar timer_frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nfunction now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nfunction Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nfunction timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nfunction timerFlush() {\n now(); // Get the current time, if not already set.\n ++timer_frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --timer_frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n timer_frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n timer_frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (timer_frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n timer_frame = 1, setFrame(wake);\n }\n}\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/simulation.js\n\n\n\n\nfunction simulation_x(d) {\n return d.x;\n}\n\nfunction simulation_y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\n/* harmony default export */ var src_simulation = (function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = Object(src[\"a\" /* map */])(),\n stepper = timer(step),\n event = src_dispatch(\"tick\", \"end\");\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.each(function (force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/manyBody.js\n\n\n\n\n\n/* harmony default export */ var manyBody = (function() {\n var nodes,\n node,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, simulation_x, simulation_y).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, weight = 0, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / weight;\n quad.y = y / weight;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/radial.js\n\n\n/* harmony default export */ var radial = (function(radius, x, y) {\n var nodes,\n strength = constant(0.1),\n strengths,\n radiuses;\n\n if (typeof radius !== \"function\") radius = constant(+radius);\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force(alpha) {\n for (var i = 0, n = nodes.length; i < n; ++i) {\n var node = nodes[i],\n dx = node.x - x || 1e-6,\n dy = node.y - y || 1e-6,\n r = Math.sqrt(dx * dx + dy * dy),\n k = (radiuses[i] - r) * strengths[i] * alpha / r;\n node.vx += dx * k;\n node.vy += dy * k;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n radiuses = new Array(n);\n for (i = 0; i < n; ++i) {\n radiuses[i] = +radius(nodes[i], i, nodes);\n strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _, initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/x.js\n\n\n/* harmony default export */ var d3_force_src_x = (function(x) {\n var strength = constant(0.1),\n nodes,\n strengths,\n xz;\n\n if (typeof x !== \"function\") x = constant(x == null ? 0 : +x);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x;\n };\n\n return force;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/y.js\n\n\n/* harmony default export */ var d3_force_src_y = (function(y) {\n var strength = constant(0.1),\n nodes,\n strengths,\n yz;\n\n if (typeof y !== \"function\") y = constant(y == null ? 0 : +y);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y;\n };\n\n return force;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/index.js\n/* concated harmony reexport forceCenter */__webpack_require__.d(__webpack_exports__, \"forceCenter\", function() { return center; });\n/* concated harmony reexport forceCollide */__webpack_require__.d(__webpack_exports__, \"forceCollide\", function() { return collide; });\n/* concated harmony reexport forceLink */__webpack_require__.d(__webpack_exports__, \"forceLink\", function() { return src_link; });\n/* concated harmony reexport forceManyBody */__webpack_require__.d(__webpack_exports__, \"forceManyBody\", function() { return manyBody; });\n/* concated harmony reexport forceRadial */__webpack_require__.d(__webpack_exports__, \"forceRadial\", function() { return radial; });\n/* concated harmony reexport forceSimulation */__webpack_require__.d(__webpack_exports__, \"forceSimulation\", function() { return src_simulation; });\n/* concated harmony reexport forceX */__webpack_require__.d(__webpack_exports__, \"forceX\", function() { return d3_force_src_x; });\n/* concated harmony reexport forceY */__webpack_require__.d(__webpack_exports__, \"forceY\", function() { return d3_force_src_y; });\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ \"0adf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar colorscaleCalc = __webpack_require__(\"3aa8\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar convertColumnData = __webpack_require__(\"d064\");\nvar clean2dArray = __webpack_require__(\"1b6a\");\nvar interp2d = __webpack_require__(\"2d0e\");\nvar findEmpties = __webpack_require__(\"0c3a\");\nvar makeBoundArray = __webpack_require__(\"d706\");\nvar supplyDefaults = __webpack_require__(\"eb12\");\nvar lookupCarpet = __webpack_require__(\"9b68\");\nvar setContours = __webpack_require__(\"8a7d\");\n\n// most is the same as heatmap calc, then adjust it\n// though a few things inside heatmap calc still look for\n// contour maps, because the makeBoundArray calls are too entangled\nmodule.exports = function calc(gd, trace) {\n var carpet = trace._carpetTrace = lookupCarpet(gd, trace);\n if(!carpet || !carpet.visible || carpet.visible === 'legendonly') return;\n\n if(!trace.a || !trace.b) {\n // Look up the original incoming carpet data:\n var carpetdata = gd.data[carpet.index];\n\n // Look up the incoming trace data, *except* perform a shallow\n // copy so that we're not actually modifying it when we use it\n // to supply defaults:\n var tracedata = gd.data[trace.index];\n // var tracedata = extendFlat({}, gd.data[trace.index]);\n\n // If the data is not specified\n if(!tracedata.a) tracedata.a = carpetdata.a;\n if(!tracedata.b) tracedata.b = carpetdata.b;\n\n supplyDefaults(tracedata, trace, trace._defaultColor, gd._fullLayout);\n }\n\n var cd = heatmappishCalc(gd, trace);\n setContours(trace, trace._z);\n\n return cd;\n};\n\nfunction heatmappishCalc(gd, trace) {\n // prepare the raw data\n // run makeCalcdata on x and y even for heatmaps, in case of category mappings\n var carpet = trace._carpetTrace;\n var aax = carpet.aaxis;\n var bax = carpet.baxis;\n var a,\n a0,\n da,\n b,\n b0,\n db,\n z;\n\n // cancel minimum tick spacings (only applies to bars and boxes)\n aax._minDtick = 0;\n bax._minDtick = 0;\n\n if(Lib.isArray1D(trace.z)) convertColumnData(trace, aax, bax, 'a', 'b', ['z']);\n a = trace._a = trace._a || trace.a;\n b = trace._b = trace._b || trace.b;\n\n a = a ? aax.makeCalcdata(trace, '_a') : [];\n b = b ? bax.makeCalcdata(trace, '_b') : [];\n a0 = trace.a0 || 0;\n da = trace.da || 1;\n b0 = trace.b0 || 0;\n db = trace.db || 1;\n\n z = trace._z = clean2dArray(trace._z || trace.z, trace.transpose);\n\n trace._emptypoints = findEmpties(z);\n interp2d(z, trace._emptypoints);\n\n // create arrays of brick boundaries, to be used by autorange and heatmap.plot\n var xlen = Lib.maxRowLength(z);\n var xIn = trace.xtype === 'scaled' ? '' : a;\n var xArray = makeBoundArray(trace, xIn, a0, da, xlen, aax);\n var yIn = trace.ytype === 'scaled' ? '' : b;\n var yArray = makeBoundArray(trace, yIn, b0, db, z.length, bax);\n\n var cd0 = {\n a: xArray,\n b: yArray,\n z: z,\n };\n\n if(trace.contours.type === 'levels' && trace.contours.coloring !== 'none') {\n // auto-z and autocolorscale if applicable\n colorscaleCalc(gd, trace, {\n vals: z,\n containerStr: '',\n cLetter: 'z'\n });\n }\n\n return [cd0];\n}\n\n\n/***/ }),\n\n/***/ \"0af2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar calcColorscale = __webpack_require__(\"09bd\");\nvar calcMarkerSize = __webpack_require__(\"70b4\").calcMarkerSize;\nvar convert = __webpack_require__(\"c879\");\nvar Axes = __webpack_require__(\"0642\");\nvar TOO_MANY_POINTS = __webpack_require__(\"b326\").TOO_MANY_POINTS;\n\nmodule.exports = function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var subplotId = trace.subplot;\n var radialAxis = fullLayout[subplotId].radialaxis;\n var angularAxis = fullLayout[subplotId].angularaxis;\n var rArray = trace._r = radialAxis.makeCalcdata(trace, 'r');\n var thetaArray = trace._theta = angularAxis.makeCalcdata(trace, 'theta');\n var len = trace._length;\n var stash = {};\n\n if(len < rArray.length) rArray = rArray.slice(0, len);\n if(len < thetaArray.length) thetaArray = thetaArray.slice(0, len);\n\n stash.r = rArray;\n stash.theta = thetaArray;\n\n calcColorscale(gd, trace);\n\n // only compute 'style' options in calc, as position options\n // depend on the radial range and must be set in plot\n var opts = stash.opts = convert.style(gd, trace);\n\n // For graphs with very large number of points and array marker.size,\n // use average marker size instead to speed things up.\n var ppad;\n if(len < TOO_MANY_POINTS) {\n ppad = calcMarkerSize(trace, len);\n } else if(opts.marker) {\n ppad = 2 * (opts.marker.sizeAvg || Math.max(opts.marker.size, 3));\n }\n trace._extremes.x = Axes.findExtremes(radialAxis, rArray, {ppad: ppad});\n\n return [{x: false, y: false, t: stash, trace: trace}];\n};\n\n\n/***/ }),\n\n/***/ \"0b1d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar twoProduct = __webpack_require__(\"c01c\")\nvar robustSum = __webpack_require__(\"a026\")\nvar robustDiff = __webpack_require__(\"e100\")\nvar robustScale = __webpack_require__(\"0dd1\")\n\nvar NUM_EXPAND = 6\n\nfunction cofactor(m, c) {\n var result = new Array(m.length-1)\n for(var i=1; i>1\n return [\"sum(\", generateSum(expr.slice(0, m)), \",\", generateSum(expr.slice(m)), \")\"].join(\"\")\n }\n}\n\nfunction makeProduct(a, b) {\n if(a.charAt(0) === \"m\") {\n if(b.charAt(0) === \"w\") {\n var toks = a.split(\"[\")\n return [\"w\", b.substr(1), \"m\", toks[0].substr(1)].join(\"\")\n } else {\n return [\"prod(\", a, \",\", b, \")\"].join(\"\")\n }\n } else {\n return makeProduct(b, a)\n }\n}\n\nfunction sign(s) {\n if(s & 1 !== 0) {\n return \"-\"\n }\n return \"\"\n}\n\nfunction determinant(m) {\n if(m.length === 2) {\n return [[\"diff(\", makeProduct(m[0][0], m[1][1]), \",\", makeProduct(m[1][0], m[0][1]), \")\"].join(\"\")]\n } else {\n var expr = []\n for(var i=0; i ncnt * 2);\n}\n\n// are the (x,y)-values in gd.data mostly text?\n// require twice as many DISTINCT categories as distinct numbers\nfunction category(a) {\n // test at most 1000 points\n var inc = Math.max(1, (a.length - 1) / 1000);\n var curvenums = 0;\n var curvecats = 0;\n var seen = {};\n\n for(var i = 0; i < a.length; i += inc) {\n var ai = a[Math.round(i)];\n var stri = String(ai);\n if(seen[stri]) continue;\n seen[stri] = 1;\n\n if(typeof ai === 'boolean') curvecats++;\n else if(Lib.cleanNumber(ai) !== BADNUM) curvenums++;\n else if(typeof ai === 'string') curvecats++;\n }\n\n return curvecats > curvenums * 2;\n}\n\n// very-loose requirements for multicategory,\n// trace modules that should never auto-type to multicategory\n// should be declared with 'noMultiCategory'\nfunction multiCategory(a) {\n return Lib.isArrayOrTypedArray(a[0]) && Lib.isArrayOrTypedArray(a[1]);\n}\n\n\n/***/ }),\n\n/***/ \"0b79\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* http://keith-wood.name/calendars.html\n Taiwanese (Minguo) calendar for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) February 2010.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar main = __webpack_require__(\"0230\");\nvar assign = __webpack_require__(\"320c\");\n\n\nvar gregorianCalendar = main.instance();\n\n/** Implementation of the Taiwanese calendar.\n See http://en.wikipedia.org/wiki/Minguo_calendar.\n @class TaiwanCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction TaiwanCalendar(language) {\n this.local = this.regionalOptions[language || ''] || this.regionalOptions[''];\n}\n\nTaiwanCalendar.prototype = new main.baseCalendar;\n\nassign(TaiwanCalendar.prototype, {\n /** The calendar name.\n @memberof TaiwanCalendar */\n name: 'Taiwan',\n /** Julian date of start of Taiwan epoch: 1 January 1912 CE (Gregorian).\n @memberof TaiwanCalendar */\n jdEpoch: 2419402.5,\n /** Difference in years between Taiwan and Gregorian calendars.\n @memberof TaiwanCalendar */\n yearsOffset: 1911,\n /** Days per month in a common year.\n @memberof TaiwanCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof TaiwanCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof TaiwanCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof TaiwanCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof TaiwanCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof TaiwanCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Taiwan',\n epochs: ['BROC', 'ROC'],\n monthNames: ['January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n digits: null,\n dateFormat: 'yyyy/mm/dd',\n firstDay: 1,\n isRTL: false\n }\n },\n\n /** Determine whether this date is in a leap year.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.leapYear(year);\n },\n\n /** Determine the week of the year for a date - ISO 8601.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.weekOfYear(year, date.month(), date.day());\n },\n\n /** Retrieve the number of days in a month.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] +\n (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n\n /** Determine whether this date is a week day.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.toJD(year, date.month(), date.day());\n },\n\n /** Create a new date from a Julian date.\n @memberof TaiwanCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var date = gregorianCalendar.fromJD(jd);\n var year = this._g2tYear(date.year());\n return this.newDate(year, date.month(), date.day());\n },\n\n /** Convert Taiwanese to Gregorian year.\n @memberof TaiwanCalendar\n @private\n @param year {number} The Taiwanese year.\n @return {number} The corresponding Gregorian year. */\n _t2gYear: function(year) {\n return year + this.yearsOffset + (year >= -this.yearsOffset && year <= -1 ? 1 : 0);\n },\n\n /** Convert Gregorian to Taiwanese year.\n @memberof TaiwanCalendar\n @private\n @param year {number} The Gregorian year.\n @return {number} The corresponding Taiwanese year. */\n _g2tYear: function(year) {\n return year - this.yearsOffset - (year >= 1 && year <= this.yearsOffset ? 1 : 0);\n }\n});\n\n// Taiwan calendar implementation\nmain.calendars.taiwan = TaiwanCalendar;\n\n\n\n/***/ }),\n\n/***/ \"0b89\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar TAU = Math.PI * 2;\n\nvar mapToEllipse = function mapToEllipse(_ref, rx, ry, cosphi, sinphi, centerx, centery) {\n var x = _ref.x,\n y = _ref.y;\n\n x *= rx;\n y *= ry;\n\n var xp = cosphi * x - sinphi * y;\n var yp = sinphi * x + cosphi * y;\n\n return {\n x: xp + centerx,\n y: yp + centery\n };\n};\n\nvar approxUnitArc = function approxUnitArc(ang1, ang2) {\n // If 90 degree circular arc, use a constant\n // as derived from http://spencermortensen.com/articles/bezier-circle\n var a = ang2 === 1.5707963267948966 ? 0.551915024494 : ang2 === -1.5707963267948966 ? -0.551915024494 : 4 / 3 * Math.tan(ang2 / 4);\n\n var x1 = Math.cos(ang1);\n var y1 = Math.sin(ang1);\n var x2 = Math.cos(ang1 + ang2);\n var y2 = Math.sin(ang1 + ang2);\n\n return [{\n x: x1 - y1 * a,\n y: y1 + x1 * a\n }, {\n x: x2 + y2 * a,\n y: y2 - x2 * a\n }, {\n x: x2,\n y: y2\n }];\n};\n\nvar vectorAngle = function vectorAngle(ux, uy, vx, vy) {\n var sign = ux * vy - uy * vx < 0 ? -1 : 1;\n\n var dot = ux * vx + uy * vy;\n\n if (dot > 1) {\n dot = 1;\n }\n\n if (dot < -1) {\n dot = -1;\n }\n\n return sign * Math.acos(dot);\n};\n\nvar getArcCenter = function getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp) {\n var rxsq = Math.pow(rx, 2);\n var rysq = Math.pow(ry, 2);\n var pxpsq = Math.pow(pxp, 2);\n var pypsq = Math.pow(pyp, 2);\n\n var radicant = rxsq * rysq - rxsq * pypsq - rysq * pxpsq;\n\n if (radicant < 0) {\n radicant = 0;\n }\n\n radicant /= rxsq * pypsq + rysq * pxpsq;\n radicant = Math.sqrt(radicant) * (largeArcFlag === sweepFlag ? -1 : 1);\n\n var centerxp = radicant * rx / ry * pyp;\n var centeryp = radicant * -ry / rx * pxp;\n\n var centerx = cosphi * centerxp - sinphi * centeryp + (px + cx) / 2;\n var centery = sinphi * centerxp + cosphi * centeryp + (py + cy) / 2;\n\n var vx1 = (pxp - centerxp) / rx;\n var vy1 = (pyp - centeryp) / ry;\n var vx2 = (-pxp - centerxp) / rx;\n var vy2 = (-pyp - centeryp) / ry;\n\n var ang1 = vectorAngle(1, 0, vx1, vy1);\n var ang2 = vectorAngle(vx1, vy1, vx2, vy2);\n\n if (sweepFlag === 0 && ang2 > 0) {\n ang2 -= TAU;\n }\n\n if (sweepFlag === 1 && ang2 < 0) {\n ang2 += TAU;\n }\n\n return [centerx, centery, ang1, ang2];\n};\n\nvar arcToBezier = function arcToBezier(_ref2) {\n var px = _ref2.px,\n py = _ref2.py,\n cx = _ref2.cx,\n cy = _ref2.cy,\n rx = _ref2.rx,\n ry = _ref2.ry,\n _ref2$xAxisRotation = _ref2.xAxisRotation,\n xAxisRotation = _ref2$xAxisRotation === undefined ? 0 : _ref2$xAxisRotation,\n _ref2$largeArcFlag = _ref2.largeArcFlag,\n largeArcFlag = _ref2$largeArcFlag === undefined ? 0 : _ref2$largeArcFlag,\n _ref2$sweepFlag = _ref2.sweepFlag,\n sweepFlag = _ref2$sweepFlag === undefined ? 0 : _ref2$sweepFlag;\n\n var curves = [];\n\n if (rx === 0 || ry === 0) {\n return [];\n }\n\n var sinphi = Math.sin(xAxisRotation * TAU / 360);\n var cosphi = Math.cos(xAxisRotation * TAU / 360);\n\n var pxp = cosphi * (px - cx) / 2 + sinphi * (py - cy) / 2;\n var pyp = -sinphi * (px - cx) / 2 + cosphi * (py - cy) / 2;\n\n if (pxp === 0 && pyp === 0) {\n return [];\n }\n\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n\n var lambda = Math.pow(pxp, 2) / Math.pow(rx, 2) + Math.pow(pyp, 2) / Math.pow(ry, 2);\n\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n\n var _getArcCenter = getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp),\n _getArcCenter2 = _slicedToArray(_getArcCenter, 4),\n centerx = _getArcCenter2[0],\n centery = _getArcCenter2[1],\n ang1 = _getArcCenter2[2],\n ang2 = _getArcCenter2[3];\n\n // If 'ang2' == 90.0000000001, then `ratio` will evaluate to\n // 1.0000000001. This causes `segments` to be greater than one, which is an\n // unecessary split, and adds extra points to the bezier curve. To alleviate\n // this issue, we round to 1.0 when the ratio is close to 1.0.\n\n\n var ratio = Math.abs(ang2) / (TAU / 4);\n if (Math.abs(1.0 - ratio) < 0.0000001) {\n ratio = 1.0;\n }\n\n var segments = Math.max(Math.ceil(ratio), 1);\n\n ang2 /= segments;\n\n for (var i = 0; i < segments; i++) {\n curves.push(approxUnitArc(ang1, ang2));\n ang1 += ang2;\n }\n\n return curves.map(function (curve) {\n var _mapToEllipse = mapToEllipse(curve[0], rx, ry, cosphi, sinphi, centerx, centery),\n x1 = _mapToEllipse.x,\n y1 = _mapToEllipse.y;\n\n var _mapToEllipse2 = mapToEllipse(curve[1], rx, ry, cosphi, sinphi, centerx, centery),\n x2 = _mapToEllipse2.x,\n y2 = _mapToEllipse2.y;\n\n var _mapToEllipse3 = mapToEllipse(curve[2], rx, ry, cosphi, sinphi, centerx, centery),\n x = _mapToEllipse3.x,\n y = _mapToEllipse3.y;\n\n return { x1: x1, y1: y1, x2: x2, y2: y2, x: x, y: y };\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arcToBezier);\n\n/***/ }),\n\n/***/ \"0c39\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Registry = __webpack_require__(\"371e\");\nvar Axes = __webpack_require__(\"0642\");\n\nvar arraysToCalcdata = __webpack_require__(\"424b\");\nvar binFunctions = __webpack_require__(\"6dcc\");\nvar normFunctions = __webpack_require__(\"c005\");\nvar doAvg = __webpack_require__(\"9547\");\nvar getBinSpanLabelRound = __webpack_require__(\"5913\");\n\nfunction calc(gd, trace) {\n var pos = [];\n var size = [];\n var pa = Axes.getFromId(gd, trace.orientation === 'h' ? trace.yaxis : trace.xaxis);\n var mainData = trace.orientation === 'h' ? 'y' : 'x';\n var counterData = {x: 'y', y: 'x'}[mainData];\n var calendar = trace[mainData + 'calendar'];\n var cumulativeSpec = trace.cumulative;\n var i;\n\n var binsAndPos = calcAllAutoBins(gd, trace, pa, mainData);\n var binSpec = binsAndPos[0];\n var pos0 = binsAndPos[1];\n\n var nonuniformBins = typeof binSpec.size === 'string';\n var binEdges = [];\n var bins = nonuniformBins ? binEdges : binSpec;\n // make the empty bin array\n var inc = [];\n var counts = [];\n var inputPoints = [];\n var total = 0;\n var norm = trace.histnorm;\n var func = trace.histfunc;\n var densityNorm = norm.indexOf('density') !== -1;\n var i2, binEnd, n;\n\n if(cumulativeSpec.enabled && densityNorm) {\n // we treat \"cumulative\" like it means \"integral\" if you use a density norm,\n // which in the end means it's the same as without \"density\"\n norm = norm.replace(/ ?density$/, '');\n densityNorm = false;\n }\n\n var extremeFunc = func === 'max' || func === 'min';\n var sizeInit = extremeFunc ? null : 0;\n var binFunc = binFunctions.count;\n var normFunc = normFunctions[norm];\n var isAvg = false;\n var pr2c = function(v) { return pa.r2c(v, 0, calendar); };\n var rawCounterData;\n\n if(Lib.isArrayOrTypedArray(trace[counterData]) && func !== 'count') {\n rawCounterData = trace[counterData];\n isAvg = func === 'avg';\n binFunc = binFunctions[func];\n }\n\n // create the bins (and any extra arrays needed)\n // assume more than 1e6 bins is an error, so we don't crash the browser\n i = pr2c(binSpec.start);\n\n // decrease end a little in case of rounding errors\n binEnd = pr2c(binSpec.end) + (i - Axes.tickIncrement(i, binSpec.size, false, calendar)) / 1e6;\n\n while(i < binEnd && pos.length < 1e6) {\n i2 = Axes.tickIncrement(i, binSpec.size, false, calendar);\n pos.push((i + i2) / 2);\n size.push(sizeInit);\n inputPoints.push([]);\n // nonuniform bins (like months) we need to search,\n // rather than straight calculate the bin we're in\n binEdges.push(i);\n // nonuniform bins also need nonuniform normalization factors\n if(densityNorm) inc.push(1 / (i2 - i));\n if(isAvg) counts.push(0);\n // break to avoid infinite loops\n if(i2 <= i) break;\n i = i2;\n }\n binEdges.push(i);\n\n // for date axes we need bin bounds to be calcdata. For nonuniform bins\n // we already have this, but uniform with start/end/size they're still strings.\n if(!nonuniformBins && pa.type === 'date') {\n bins = {\n start: pr2c(bins.start),\n end: pr2c(bins.end),\n size: bins.size\n };\n }\n\n // bin the data\n // and make histogram-specific pt-number-to-cd-index map object\n var nMax = size.length;\n var uniqueValsPerBin = true;\n var leftGap = Infinity;\n var rightGap = Infinity;\n var ptNumber2cdIndex = {};\n for(i = 0; i < pos0.length; i++) {\n var posi = pos0[i];\n n = Lib.findBin(posi, bins);\n if(n >= 0 && n < nMax) {\n total += binFunc(n, i, size, rawCounterData, counts);\n if(uniqueValsPerBin && inputPoints[n].length && posi !== pos0[inputPoints[n][0]]) {\n uniqueValsPerBin = false;\n }\n inputPoints[n].push(i);\n ptNumber2cdIndex[i] = n;\n\n leftGap = Math.min(leftGap, posi - binEdges[n]);\n rightGap = Math.min(rightGap, binEdges[n + 1] - posi);\n }\n }\n\n var roundFn;\n if(!uniqueValsPerBin) {\n roundFn = getBinSpanLabelRound(leftGap, rightGap, binEdges, pa, calendar);\n }\n\n // average and/or normalize the data, if needed\n if(isAvg) total = doAvg(size, counts);\n if(normFunc) normFunc(size, total, inc);\n\n // after all normalization etc, now we can accumulate if desired\n if(cumulativeSpec.enabled) cdf(size, cumulativeSpec.direction, cumulativeSpec.currentbin);\n\n var seriesLen = Math.min(pos.length, size.length);\n var cd = [];\n var firstNonzero = 0;\n var lastNonzero = seriesLen - 1;\n\n // look for empty bins at the ends to remove, so autoscale omits them\n for(i = 0; i < seriesLen; i++) {\n if(size[i]) {\n firstNonzero = i;\n break;\n }\n }\n for(i = seriesLen - 1; i >= firstNonzero; i--) {\n if(size[i]) {\n lastNonzero = i;\n break;\n }\n }\n\n // create the \"calculated data\" to plot\n for(i = firstNonzero; i <= lastNonzero; i++) {\n if((isNumeric(pos[i]) && isNumeric(size[i]))) {\n var cdi = {\n p: pos[i],\n s: size[i],\n b: 0\n };\n\n // setup hover and event data fields,\n // N.B. pts and \"hover\" positions ph0/ph1 don't seem to make much sense\n // for cumulative distributions\n if(!cumulativeSpec.enabled) {\n cdi.pts = inputPoints[i];\n if(uniqueValsPerBin) {\n cdi.ph0 = cdi.ph1 = (inputPoints[i].length) ? pos0[inputPoints[i][0]] : pos[i];\n } else {\n cdi.ph0 = roundFn(binEdges[i]);\n cdi.ph1 = roundFn(binEdges[i + 1], true);\n }\n }\n cd.push(cdi);\n }\n }\n\n if(cd.length === 1) {\n // when we collapse to a single bin, calcdata no longer describes bin size\n // so we need to explicitly specify it\n cd[0].width1 = Axes.tickIncrement(cd[0].p, binSpec.size, false, calendar) - cd[0].p;\n }\n\n arraysToCalcdata(cd, trace);\n\n if(Lib.isArrayOrTypedArray(trace.selectedpoints)) {\n Lib.tagSelected(cd, trace, ptNumber2cdIndex);\n }\n\n return cd;\n}\n\n/*\n * calcAllAutoBins: we want all histograms inside the same bingroup\n * (see logic in Histogram.crossTraceDefaults) to share bin specs\n *\n * If the user has explicitly specified differing\n * bin specs, there's nothing we can do, but if possible we will try to use the\n * smallest bins of any of the auto values for all histograms inside the same\n * bingroup.\n */\nfunction calcAllAutoBins(gd, trace, pa, mainData, _overlayEdgeCase) {\n var binAttr = mainData + 'bins';\n var fullLayout = gd._fullLayout;\n var groupName = trace['_' + mainData + 'bingroup'];\n var binOpts = fullLayout._histogramBinOpts[groupName];\n var isOverlay = fullLayout.barmode === 'overlay';\n var i, traces, tracei, calendar, pos0, autoVals, cumulativeSpec;\n\n var r2c = function(v) { return pa.r2c(v, 0, calendar); };\n var c2r = function(v) { return pa.c2r(v, 0, calendar); };\n\n var cleanBound = pa.type === 'date' ?\n function(v) { return (v || v === 0) ? Lib.cleanDate(v, null, calendar) : null; } :\n function(v) { return isNumeric(v) ? Number(v) : null; };\n\n function setBound(attr, bins, newBins) {\n if(bins[attr + 'Found']) {\n bins[attr] = cleanBound(bins[attr]);\n if(bins[attr] === null) bins[attr] = newBins[attr];\n } else {\n autoVals[attr] = bins[attr] = newBins[attr];\n Lib.nestedProperty(traces[0], binAttr + '.' + attr).set(newBins[attr]);\n }\n }\n\n // all but the first trace in this group has already been marked finished\n // clear this flag, so next time we run calc we will run autobin again\n if(trace['_' + mainData + 'autoBinFinished']) {\n delete trace['_' + mainData + 'autoBinFinished'];\n } else {\n traces = binOpts.traces;\n var allPos = [];\n\n // Note: we're including `legendonly` traces here for autobin purposes,\n // so that showing & hiding from the legend won't affect bins.\n // But this complicates things a bit since those traces don't `calc`,\n // hence `isFirstVisible`.\n var isFirstVisible = true;\n var has2dMap = false;\n var hasHist2dContour = false;\n for(i = 0; i < traces.length; i++) {\n tracei = traces[i];\n\n if(tracei.visible) {\n var mainDatai = binOpts.dirs[i];\n pos0 = tracei['_' + mainDatai + 'pos0'] = pa.makeCalcdata(tracei, mainDatai);\n\n allPos = Lib.concat(allPos, pos0);\n delete tracei['_' + mainData + 'autoBinFinished'];\n\n if(trace.visible === true) {\n if(isFirstVisible) {\n isFirstVisible = false;\n } else {\n delete tracei._autoBin;\n tracei['_' + mainData + 'autoBinFinished'] = 1;\n }\n if(Registry.traceIs(tracei, '2dMap')) {\n has2dMap = true;\n }\n if(tracei.type === 'histogram2dcontour') {\n hasHist2dContour = true;\n }\n }\n }\n }\n\n calendar = traces[0][mainData + 'calendar'];\n var newBinSpec = Axes.autoBin(allPos, pa, binOpts.nbins, has2dMap, calendar, binOpts.sizeFound && binOpts.size);\n\n var autoBin = traces[0]._autoBin = {};\n autoVals = autoBin[binOpts.dirs[0]] = {};\n\n if(hasHist2dContour) {\n // the \"true\" 2nd argument reverses the tick direction (which we can't\n // just do with a minus sign because of month bins)\n if(!binOpts.size) {\n newBinSpec.start = c2r(Axes.tickIncrement(\n r2c(newBinSpec.start), newBinSpec.size, true, calendar));\n }\n if(binOpts.end === undefined) {\n newBinSpec.end = c2r(Axes.tickIncrement(\n r2c(newBinSpec.end), newBinSpec.size, false, calendar));\n }\n }\n\n // Edge case: single-valued histogram overlaying others\n // Use them all together to calculate the bin size for the single-valued one\n if(isOverlay && !Registry.traceIs(trace, '2dMap') && newBinSpec._dataSpan === 0 &&\n pa.type !== 'category' && pa.type !== 'multicategory') {\n // Several single-valued histograms! Stop infinite recursion,\n // just return an extra flag that tells handleSingleValueOverlays\n // to sort out this trace too\n if(_overlayEdgeCase) return [newBinSpec, pos0, true];\n\n newBinSpec = handleSingleValueOverlays(gd, trace, pa, mainData, binAttr);\n }\n\n // adjust for CDF edge cases\n cumulativeSpec = tracei.cumulative || {};\n if(cumulativeSpec.enabled && (cumulativeSpec.currentbin !== 'include')) {\n if(cumulativeSpec.direction === 'decreasing') {\n newBinSpec.start = c2r(Axes.tickIncrement(\n r2c(newBinSpec.start), newBinSpec.size, true, calendar));\n } else {\n newBinSpec.end = c2r(Axes.tickIncrement(\n r2c(newBinSpec.end), newBinSpec.size, false, calendar));\n }\n }\n\n binOpts.size = newBinSpec.size;\n if(!binOpts.sizeFound) {\n autoVals.size = newBinSpec.size;\n Lib.nestedProperty(traces[0], binAttr + '.size').set(newBinSpec.size);\n }\n\n setBound('start', binOpts, newBinSpec);\n setBound('end', binOpts, newBinSpec);\n }\n\n pos0 = trace['_' + mainData + 'pos0'];\n delete trace['_' + mainData + 'pos0'];\n\n // Each trace can specify its own start/end, or if omitted\n // we ensure they're beyond the bounds of this trace's data,\n // and we need to make sure start is aligned with the main start\n var traceInputBins = trace._input[binAttr] || {};\n var traceBinOptsCalc = Lib.extendFlat({}, binOpts);\n var mainStart = binOpts.start;\n var startIn = pa.r2l(traceInputBins.start);\n var hasStart = startIn !== undefined;\n if((binOpts.startFound || hasStart) && startIn !== pa.r2l(mainStart)) {\n // We have an explicit start to reconcile across traces\n // if this trace has an explicit start, shift it down to a bin edge\n // if another trace had an explicit start, shift it down to a\n // bin edge past our data\n var traceStart = hasStart ?\n startIn :\n Lib.aggNums(Math.min, null, pos0);\n\n var dummyAx = {\n type: (pa.type === 'category' || pa.type === 'multicategory') ? 'linear' : pa.type,\n r2l: pa.r2l,\n dtick: binOpts.size,\n tick0: mainStart,\n calendar: calendar,\n range: ([traceStart, Axes.tickIncrement(traceStart, binOpts.size, false, calendar)]).map(pa.l2r)\n };\n var newStart = Axes.tickFirst(dummyAx);\n if(newStart > pa.r2l(traceStart)) {\n newStart = Axes.tickIncrement(newStart, binOpts.size, true, calendar);\n }\n traceBinOptsCalc.start = pa.l2r(newStart);\n if(!hasStart) Lib.nestedProperty(trace, binAttr + '.start').set(traceBinOptsCalc.start);\n }\n\n var mainEnd = binOpts.end;\n var endIn = pa.r2l(traceInputBins.end);\n var hasEnd = endIn !== undefined;\n if((binOpts.endFound || hasEnd) && endIn !== pa.r2l(mainEnd)) {\n // Reconciling an explicit end is easier, as it doesn't need to\n // match bin edges\n var traceEnd = hasEnd ?\n endIn :\n Lib.aggNums(Math.max, null, pos0);\n\n traceBinOptsCalc.end = pa.l2r(traceEnd);\n if(!hasEnd) Lib.nestedProperty(trace, binAttr + '.start').set(traceBinOptsCalc.end);\n }\n\n // Backward compatibility for one-time autobinning.\n // autobin: true is handled in cleanData, but autobin: false\n // needs to be here where we have determined the values.\n var autoBinAttr = 'autobin' + mainData;\n if(trace._input[autoBinAttr] === false) {\n trace._input[binAttr] = Lib.extendFlat({}, trace[binAttr] || {});\n delete trace._input[autoBinAttr];\n delete trace[autoBinAttr];\n }\n\n return [traceBinOptsCalc, pos0];\n}\n\n/*\n * Adjust single-value histograms in overlay mode to make as good a\n * guess as we can at autobin values the user would like.\n *\n * Returns the binSpec for the trace that sparked all this\n */\nfunction handleSingleValueOverlays(gd, trace, pa, mainData, binAttr) {\n var fullLayout = gd._fullLayout;\n var overlaidTraceGroup = getConnectedHistograms(gd, trace);\n var pastThisTrace = false;\n var minSize = Infinity;\n var singleValuedTraces = [trace];\n var i, tracei, binOpts;\n\n // first collect all the:\n // - min bin size from all multi-valued traces\n // - single-valued traces\n for(i = 0; i < overlaidTraceGroup.length; i++) {\n tracei = overlaidTraceGroup[i];\n\n if(tracei === trace) {\n pastThisTrace = true;\n } else if(!pastThisTrace) {\n // This trace has already had its autobins calculated, so either:\n // - it is part of a bingroup\n // - it is NOT a single-valued trace\n binOpts = fullLayout._histogramBinOpts[tracei['_' + mainData + 'bingroup']];\n minSize = Math.min(minSize, binOpts.size || tracei[binAttr].size);\n } else {\n var resulti = calcAllAutoBins(gd, tracei, pa, mainData, true);\n var binSpeci = resulti[0];\n var isSingleValued = resulti[2];\n\n // so we can use this result when we get to tracei in the normal\n // course of events, mark it as done and put _pos0 back\n tracei['_' + mainData + 'autoBinFinished'] = 1;\n tracei['_' + mainData + 'pos0'] = resulti[1];\n\n if(isSingleValued) {\n singleValuedTraces.push(tracei);\n } else {\n minSize = Math.min(minSize, binSpeci.size);\n }\n }\n }\n\n // find the real data values for each single-valued trace\n // hunt through pos0 for the first valid value\n var dataVals = new Array(singleValuedTraces.length);\n for(i = 0; i < singleValuedTraces.length; i++) {\n var pos0 = singleValuedTraces[i]['_' + mainData + 'pos0'];\n for(var j = 0; j < pos0.length; j++) {\n if(pos0[j] !== undefined) {\n dataVals[i] = pos0[j];\n break;\n }\n }\n }\n\n // are ALL traces are single-valued? use the min difference between\n // all of their values (which defaults to 1 if there's still only one)\n if(!isFinite(minSize)) {\n minSize = Lib.distinctVals(dataVals).minDiff;\n }\n\n // now apply the min size we found to all single-valued traces\n for(i = 0; i < singleValuedTraces.length; i++) {\n tracei = singleValuedTraces[i];\n var calendar = tracei[mainData + 'calendar'];\n\n var newBins = {\n start: pa.c2r(dataVals[i] - minSize / 2, 0, calendar),\n end: pa.c2r(dataVals[i] + minSize / 2, 0, calendar),\n size: minSize\n };\n\n tracei._input[binAttr] = tracei[binAttr] = newBins;\n\n binOpts = fullLayout._histogramBinOpts[tracei['_' + mainData + 'bingroup']];\n if(binOpts) Lib.extendFlat(binOpts, newBins);\n }\n\n return trace[binAttr];\n}\n\n/*\n * Return an array of histograms that share axes and orientation.\n *\n * Only considers histograms. In principle we could include bars in a\n * similar way to how we do manually binned histograms, though this\n * would have tons of edge cases and value judgments to make.\n */\nfunction getConnectedHistograms(gd, trace) {\n var xid = trace.xaxis;\n var yid = trace.yaxis;\n var orientation = trace.orientation;\n\n var out = [];\n var fullData = gd._fullData;\n for(var i = 0; i < fullData.length; i++) {\n var tracei = fullData[i];\n if(tracei.type === 'histogram' &&\n tracei.visible === true &&\n tracei.orientation === orientation &&\n tracei.xaxis === xid && tracei.yaxis === yid\n ) {\n out.push(tracei);\n }\n }\n\n return out;\n}\n\nfunction cdf(size, direction, currentBin) {\n var i, vi, prevSum;\n\n function firstHalfPoint(i) {\n prevSum = size[i];\n size[i] /= 2;\n }\n\n function nextHalfPoint(i) {\n vi = size[i];\n size[i] = prevSum + vi / 2;\n prevSum += vi;\n }\n\n if(currentBin === 'half') {\n if(direction === 'increasing') {\n firstHalfPoint(0);\n for(i = 1; i < size.length; i++) {\n nextHalfPoint(i);\n }\n } else {\n firstHalfPoint(size.length - 1);\n for(i = size.length - 2; i >= 0; i--) {\n nextHalfPoint(i);\n }\n }\n } else if(direction === 'increasing') {\n for(i = 1; i < size.length; i++) {\n size[i] += size[i - 1];\n }\n\n // 'exclude' is identical to 'include' just shifted one bin over\n if(currentBin === 'exclude') {\n size.unshift(0);\n size.pop();\n }\n } else {\n for(i = size.length - 2; i >= 0; i--) {\n size[i] += size[i + 1];\n }\n\n if(currentBin === 'exclude') {\n size.push(0);\n size.shift();\n }\n }\n}\n\nmodule.exports = {\n calc: calc,\n calcAllAutoBins: calcAllAutoBins\n};\n\n\n/***/ }),\n\n/***/ \"0c3a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar maxRowLength = __webpack_require__(\"fc26\").maxRowLength;\n\n/* Return a list of empty points in 2D array z\n * each empty point z[i][j] gives an array [i, j, neighborCount]\n * neighborCount is the count of 4 nearest neighbors that DO exist\n * this is to give us an order of points to evaluate for interpolation.\n * if no neighbors exist, we iteratively look for neighbors that HAVE\n * neighbors, and add a fractional neighborCount\n */\nmodule.exports = function findEmpties(z) {\n var empties = [];\n var neighborHash = {};\n var noNeighborList = [];\n var nextRow = z[0];\n var row = [];\n var blank = [0, 0, 0];\n var rowLength = maxRowLength(z);\n var prevRow;\n var i;\n var j;\n var thisPt;\n var p;\n var neighborCount;\n var newNeighborHash;\n var foundNewNeighbors;\n\n for(i = 0; i < z.length; i++) {\n prevRow = row;\n row = nextRow;\n nextRow = z[i + 1] || [];\n for(j = 0; j < rowLength; j++) {\n if(row[j] === undefined) {\n neighborCount = (row[j - 1] !== undefined ? 1 : 0) +\n (row[j + 1] !== undefined ? 1 : 0) +\n (prevRow[j] !== undefined ? 1 : 0) +\n (nextRow[j] !== undefined ? 1 : 0);\n\n if(neighborCount) {\n // for this purpose, don't count off-the-edge points\n // as undefined neighbors\n if(i === 0) neighborCount++;\n if(j === 0) neighborCount++;\n if(i === z.length - 1) neighborCount++;\n if(j === row.length - 1) neighborCount++;\n\n // if all neighbors that could exist do, we don't\n // need this for finding farther neighbors\n if(neighborCount < 4) {\n neighborHash[[i, j]] = [i, j, neighborCount];\n }\n\n empties.push([i, j, neighborCount]);\n } else noNeighborList.push([i, j]);\n }\n }\n }\n\n while(noNeighborList.length) {\n newNeighborHash = {};\n foundNewNeighbors = false;\n\n // look for cells that now have neighbors but didn't before\n for(p = noNeighborList.length - 1; p >= 0; p--) {\n thisPt = noNeighborList[p];\n i = thisPt[0];\n j = thisPt[1];\n\n neighborCount = ((neighborHash[[i - 1, j]] || blank)[2] +\n (neighborHash[[i + 1, j]] || blank)[2] +\n (neighborHash[[i, j - 1]] || blank)[2] +\n (neighborHash[[i, j + 1]] || blank)[2]) / 20;\n\n if(neighborCount) {\n newNeighborHash[thisPt] = [i, j, neighborCount];\n noNeighborList.splice(p, 1);\n foundNewNeighbors = true;\n }\n }\n\n if(!foundNewNeighbors) {\n throw 'findEmpties iterated with no new neighbors';\n }\n\n // put these new cells into the main neighbor list\n for(thisPt in newNeighborHash) {\n neighborHash[thisPt] = newNeighborHash[thisPt];\n empties.push(newNeighborHash[thisPt]);\n }\n }\n\n // sort the full list in descending order of neighbor count\n return empties.sort(function(a, b) { return b[2] - a[2]; });\n};\n\n\n/***/ }),\n\n/***/ \"0c5d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar handleSampleDefaults = __webpack_require__(\"8173\");\nvar handleContoursDefaults = __webpack_require__(\"d61b\");\nvar handleStyleDefaults = __webpack_require__(\"41f8\");\nvar attributes = __webpack_require__(\"348d\");\n\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n function coerce2(attr) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr);\n }\n\n handleSampleDefaults(traceIn, traceOut, coerce, layout);\n if(traceOut.visible === false) return;\n\n handleContoursDefaults(traceIn, traceOut, coerce, coerce2);\n handleStyleDefaults(traceIn, traceOut, coerce, layout);\n coerce('hovertemplate');\n};\n\n\n/***/ }),\n\n/***/ \"0c85\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isArrayOrTypedArray = __webpack_require__(\"fc26\").isArrayOrTypedArray;\nvar Colorscale = __webpack_require__(\"c258\");\nvar wrap = __webpack_require__(\"0a3e\").wrap;\n\nmodule.exports = function calc(gd, trace) {\n var lineColor;\n var cscale;\n\n if(Colorscale.hasColorscale(trace, 'line') && isArrayOrTypedArray(trace.line.color)) {\n lineColor = trace.line.color;\n cscale = Colorscale.extractOpts(trace.line).colorscale;\n\n Colorscale.calc(gd, trace, {\n vals: lineColor,\n containerStr: 'line',\n cLetter: 'c'\n });\n } else {\n lineColor = constHalf(trace._length);\n cscale = [[0, trace.line.color], [1, trace.line.color]];\n }\n\n return wrap({lineColor: lineColor, cscale: cscale});\n};\n\nfunction constHalf(len) {\n var out = new Array(len);\n for(var i = 0; i < len; i++) {\n out[i] = 0.5;\n }\n return out;\n}\n\n\n/***/ }),\n\n/***/ \"0cc1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Lib = __webpack_require__(\"fc26\");\nvar xmlnsNamespaces = __webpack_require__(\"73c9\");\nvar constants = __webpack_require__(\"000c\");\n\nmodule.exports = function plot(gd, plotinfo, cdimage, imageLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n Lib.makeTraceGroups(imageLayer, cdimage, 'im').each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n\n var z = cd0.z;\n var x0 = cd0.x0;\n var y0 = cd0.y0;\n var w = cd0.w;\n var h = cd0.h;\n var dx = trace.dx;\n var dy = trace.dy;\n\n var left, right, temp, top, bottom, i;\n // in case of log of a negative\n i = 0;\n while(left === undefined && i < w) {\n left = xa.c2p(x0 + i * dx);\n i++;\n }\n i = w;\n while(right === undefined && i > 0) {\n right = xa.c2p(x0 + i * dx);\n i--;\n }\n i = 0;\n while(top === undefined && i < h) {\n top = ya.c2p(y0 + i * dy);\n i++;\n }\n i = h;\n while(bottom === undefined && i > 0) {\n bottom = ya.c2p(y0 + i * dy);\n i--;\n }\n\n if(right < left) {\n temp = right;\n right = left;\n left = temp;\n }\n\n if(bottom < top) {\n temp = top;\n top = bottom;\n bottom = temp;\n }\n\n // Reduce image size when zoomed in to save memory\n var extra = 0.5; // half the axis size\n left = Math.max(-extra * xa._length, left);\n right = Math.min((1 + extra) * xa._length, right);\n top = Math.max(-extra * ya._length, top);\n bottom = Math.min((1 + extra) * ya._length, bottom);\n var imageWidth = Math.round(right - left);\n var imageHeight = Math.round(bottom - top);\n\n // if image is entirely off-screen, don't even draw it\n var isOffScreen = (imageWidth <= 0 || imageHeight <= 0);\n if(isOffScreen) {\n var noImage = plotGroup.selectAll('image').data([]);\n noImage.exit().remove();\n return;\n }\n\n // Draw each pixel\n var canvas = document.createElement('canvas');\n canvas.width = imageWidth;\n canvas.height = imageHeight;\n var context = canvas.getContext('2d');\n\n var ipx = function(i) {return Lib.constrain(Math.round(xa.c2p(x0 + i * dx) - left), 0, imageWidth);};\n var jpx = function(j) {return Lib.constrain(Math.round(ya.c2p(y0 + j * dy) - top), 0, imageHeight);};\n\n var fmt = constants.colormodel[trace.colormodel].fmt;\n var c;\n for(i = 0; i < cd0.w; i++) {\n var ipx0 = ipx(i); var ipx1 = ipx(i + 1);\n if(ipx1 === ipx0 || isNaN(ipx1) || isNaN(ipx0)) continue;\n for(var j = 0; j < cd0.h; j++) {\n var jpx0 = jpx(j); var jpx1 = jpx(j + 1);\n if(jpx1 === jpx0 || isNaN(jpx1) || isNaN(jpx0) || !z[j][i]) continue;\n c = trace._scaler(z[j][i]);\n if(c) {\n context.fillStyle = trace.colormodel + '(' + fmt(c).join(',') + ')';\n } else {\n // Return a transparent pixel\n context.fillStyle = 'rgba(0,0,0,0)';\n }\n context.fillRect(ipx0, jpx0, ipx1 - ipx0, jpx1 - jpx0);\n }\n }\n\n var image3 = plotGroup.selectAll('image')\n .data(cd);\n\n image3.enter().append('svg:image').attr({\n xmlns: xmlnsNamespaces.svg,\n preserveAspectRatio: 'none'\n });\n\n image3.attr({\n height: imageHeight,\n width: imageWidth,\n x: left,\n y: top,\n 'xlink:href': canvas.toDataURL('image/png')\n });\n });\n};\n\n\n/***/ }),\n\n/***/ \"0cec\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar isArrayOrTypedArray = __webpack_require__(\"fc26\").isArrayOrTypedArray;\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nvar Registry = __webpack_require__(\"371e\");\nvar Axes = __webpack_require__(\"0642\");\nvar getAxisGroup = __webpack_require__(\"3c1c\").getAxisGroup;\nvar Sieve = __webpack_require__(\"8b25\");\n\n/*\n * Bar chart stacking/grouping positioning and autoscaling calculations\n * for each direction separately calculate the ranges and positions\n * note that this handles histograms too\n * now doing this one subplot at a time\n */\n\nfunction crossTraceCalc(gd, plotinfo) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n var fullLayout = gd._fullLayout;\n var fullTraces = gd._fullData;\n var calcTraces = gd.calcdata;\n var calcTracesHorz = [];\n var calcTracesVert = [];\n\n for(var i = 0; i < fullTraces.length; i++) {\n var fullTrace = fullTraces[i];\n if(\n fullTrace.visible === true &&\n Registry.traceIs(fullTrace, 'bar') &&\n fullTrace.xaxis === xa._id &&\n fullTrace.yaxis === ya._id\n ) {\n if(fullTrace.orientation === 'h') {\n calcTracesHorz.push(calcTraces[i]);\n } else {\n calcTracesVert.push(calcTraces[i]);\n }\n }\n }\n\n var opts = {\n mode: fullLayout.barmode,\n norm: fullLayout.barnorm,\n gap: fullLayout.bargap,\n groupgap: fullLayout.bargroupgap\n };\n\n setGroupPositions(gd, xa, ya, calcTracesVert, opts);\n setGroupPositions(gd, ya, xa, calcTracesHorz, opts);\n}\n\nfunction setGroupPositions(gd, pa, sa, calcTraces, opts) {\n if(!calcTraces.length) return;\n\n var excluded;\n var included;\n var i, calcTrace, fullTrace;\n\n initBase(sa, calcTraces);\n\n switch(opts.mode) {\n case 'overlay':\n setGroupPositionsInOverlayMode(pa, sa, calcTraces, opts);\n break;\n\n case 'group':\n // exclude from the group those traces for which the user set an offset\n excluded = [];\n included = [];\n for(i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n\n if(fullTrace.offset === undefined) included.push(calcTrace);\n else excluded.push(calcTrace);\n }\n\n if(included.length) {\n setGroupPositionsInGroupMode(gd, pa, sa, included, opts);\n }\n if(excluded.length) {\n setGroupPositionsInOverlayMode(pa, sa, excluded, opts);\n }\n break;\n\n case 'stack':\n case 'relative':\n // exclude from the stack those traces for which the user set a base\n excluded = [];\n included = [];\n for(i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n\n if(fullTrace.base === undefined) included.push(calcTrace);\n else excluded.push(calcTrace);\n }\n\n if(included.length) {\n setGroupPositionsInStackOrRelativeMode(gd, pa, sa, included, opts);\n }\n if(excluded.length) {\n setGroupPositionsInOverlayMode(pa, sa, excluded, opts);\n }\n break;\n }\n\n collectExtents(calcTraces, pa);\n}\n\nfunction initBase(sa, calcTraces) {\n var i, j;\n\n for(i = 0; i < calcTraces.length; i++) {\n var cd = calcTraces[i];\n var trace = cd[0].trace;\n var base = (trace.type === 'funnel') ? trace._base : trace.base;\n var b;\n\n // not sure if it really makes sense to have dates for bar size data...\n // ideally if we want to make gantt charts or something we'd treat\n // the actual size (trace.x or y) as time delta but base as absolute\n // time. But included here for completeness.\n var scalendar = trace.orientation === 'h' ? trace.xcalendar : trace.ycalendar;\n\n // 'base' on categorical axes makes no sense\n var d2c = sa.type === 'category' || sa.type === 'multicategory' ?\n function() { return null; } :\n sa.d2c;\n\n if(isArrayOrTypedArray(base)) {\n for(j = 0; j < Math.min(base.length, cd.length); j++) {\n b = d2c(base[j], 0, scalendar);\n if(isNumeric(b)) {\n cd[j].b = +b;\n cd[j].hasB = 1;\n } else cd[j].b = 0;\n }\n for(; j < cd.length; j++) {\n cd[j].b = 0;\n }\n } else {\n b = d2c(base, 0, scalendar);\n var hasBase = isNumeric(b);\n b = hasBase ? b : 0;\n for(j = 0; j < cd.length; j++) {\n cd[j].b = b;\n if(hasBase) cd[j].hasB = 1;\n }\n }\n }\n}\n\nfunction setGroupPositionsInOverlayMode(pa, sa, calcTraces, opts) {\n // update position axis and set bar offsets and widths\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n\n var sieve = new Sieve([calcTrace], {\n sepNegVal: false,\n overlapNoMerge: !opts.norm\n });\n\n // set bar offsets and widths, and update position axis\n setOffsetAndWidth(pa, sieve, opts);\n\n // set bar bases and sizes, and update size axis\n //\n // (note that `setGroupPositionsInOverlayMode` handles the case barnorm\n // is defined, because this function is also invoked for traces that\n // can't be grouped or stacked)\n if(opts.norm) {\n sieveBars(sieve);\n normalizeBars(sa, sieve, opts);\n } else {\n setBaseAndTop(sa, sieve);\n }\n }\n}\n\nfunction setGroupPositionsInGroupMode(gd, pa, sa, calcTraces, opts) {\n var sieve = new Sieve(calcTraces, {\n sepNegVal: false,\n overlapNoMerge: !opts.norm\n });\n\n // set bar offsets and widths, and update position axis\n setOffsetAndWidthInGroupMode(gd, pa, sieve, opts);\n\n // relative-stack bars within the same trace that would otherwise\n // be hidden\n unhideBarsWithinTrace(sieve);\n\n // set bar bases and sizes, and update size axis\n if(opts.norm) {\n sieveBars(sieve);\n normalizeBars(sa, sieve, opts);\n } else {\n setBaseAndTop(sa, sieve);\n }\n}\n\nfunction setGroupPositionsInStackOrRelativeMode(gd, pa, sa, calcTraces, opts) {\n var sieve = new Sieve(calcTraces, {\n sepNegVal: opts.mode === 'relative',\n overlapNoMerge: !(opts.norm || opts.mode === 'stack' || opts.mode === 'relative')\n });\n\n // set bar offsets and widths, and update position axis\n setOffsetAndWidth(pa, sieve, opts);\n\n // set bar bases and sizes, and update size axis\n stackBars(sa, sieve, opts);\n\n // flag the outmost bar (for text display purposes)\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n\n for(var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n\n if(bar.s !== BADNUM) {\n var isOutmostBar = ((bar.b + bar.s) === sieve.get(bar.p, bar.s));\n if(isOutmostBar) bar._outmost = true;\n }\n }\n }\n\n // Note that marking the outmost bars has to be done\n // before `normalizeBars` changes `bar.b` and `bar.s`.\n if(opts.norm) normalizeBars(sa, sieve, opts);\n}\n\nfunction setOffsetAndWidth(pa, sieve, opts) {\n var minDiff = sieve.minDiff;\n var calcTraces = sieve.traces;\n\n // set bar offsets and widths\n var barGroupWidth = minDiff * (1 - opts.gap);\n var barWidthPlusGap = barGroupWidth;\n var barWidth = barWidthPlusGap * (1 - (opts.groupgap || 0));\n\n // computer bar group center and bar offset\n var offsetFromCenter = -barWidth / 2;\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var t = calcTrace[0].t;\n\n // store bar width and offset for this trace\n t.barwidth = barWidth;\n t.poffset = offsetFromCenter;\n t.bargroupwidth = barGroupWidth;\n t.bardelta = minDiff;\n }\n\n // stack bars that only differ by rounding\n sieve.binWidth = calcTraces[0][0].t.barwidth / 100;\n\n // if defined, apply trace offset and width\n applyAttributes(sieve);\n\n // store the bar center in each calcdata item\n setBarCenterAndWidth(pa, sieve);\n\n // update position axes\n updatePositionAxis(pa, sieve);\n}\n\nfunction setOffsetAndWidthInGroupMode(gd, pa, sieve, opts) {\n var fullLayout = gd._fullLayout;\n var positions = sieve.positions;\n var distinctPositions = sieve.distinctPositions;\n var minDiff = sieve.minDiff;\n var calcTraces = sieve.traces;\n var nTraces = calcTraces.length;\n\n // if there aren't any overlapping positions,\n // let them have full width even if mode is group\n var overlap = (positions.length !== distinctPositions.length);\n var barGroupWidth = minDiff * (1 - opts.gap);\n\n var groupId = getAxisGroup(fullLayout, pa._id) + calcTraces[0][0].trace.orientation;\n var alignmentGroups = fullLayout._alignmentOpts[groupId] || {};\n\n for(var i = 0; i < nTraces; i++) {\n var calcTrace = calcTraces[i];\n var trace = calcTrace[0].trace;\n\n var alignmentGroupOpts = alignmentGroups[trace.alignmentgroup] || {};\n var nOffsetGroups = Object.keys(alignmentGroupOpts.offsetGroups || {}).length;\n\n var barWidthPlusGap;\n if(nOffsetGroups) {\n barWidthPlusGap = barGroupWidth / nOffsetGroups;\n } else {\n barWidthPlusGap = overlap ? barGroupWidth / nTraces : barGroupWidth;\n }\n\n var barWidth = barWidthPlusGap * (1 - (opts.groupgap || 0));\n\n var offsetFromCenter;\n if(nOffsetGroups) {\n offsetFromCenter = ((2 * trace._offsetIndex + 1 - nOffsetGroups) * barWidthPlusGap - barWidth) / 2;\n } else {\n offsetFromCenter = overlap ?\n ((2 * i + 1 - nTraces) * barWidthPlusGap - barWidth) / 2 :\n -barWidth / 2;\n }\n\n var t = calcTrace[0].t;\n t.barwidth = barWidth;\n t.poffset = offsetFromCenter;\n t.bargroupwidth = barGroupWidth;\n t.bardelta = minDiff;\n }\n\n // stack bars that only differ by rounding\n sieve.binWidth = calcTraces[0][0].t.barwidth / 100;\n\n // if defined, apply trace width\n applyAttributes(sieve);\n\n // store the bar center in each calcdata item\n setBarCenterAndWidth(pa, sieve);\n\n // update position axes\n updatePositionAxis(pa, sieve, overlap);\n}\n\nfunction applyAttributes(sieve) {\n var calcTraces = sieve.traces;\n var i, j;\n\n for(i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var calcTrace0 = calcTrace[0];\n var fullTrace = calcTrace0.trace;\n var t = calcTrace0.t;\n var offset = fullTrace._offset || fullTrace.offset;\n var initialPoffset = t.poffset;\n var newPoffset;\n\n if(isArrayOrTypedArray(offset)) {\n // if offset is an array, then clone it into t.poffset.\n newPoffset = Array.prototype.slice.call(offset, 0, calcTrace.length);\n\n // guard against non-numeric items\n for(j = 0; j < newPoffset.length; j++) {\n if(!isNumeric(newPoffset[j])) {\n newPoffset[j] = initialPoffset;\n }\n }\n\n // if the length of the array is too short,\n // then extend it with the initial value of t.poffset\n for(j = newPoffset.length; j < calcTrace.length; j++) {\n newPoffset.push(initialPoffset);\n }\n\n t.poffset = newPoffset;\n } else if(offset !== undefined) {\n t.poffset = offset;\n }\n\n var width = fullTrace._width || fullTrace.width;\n var initialBarwidth = t.barwidth;\n\n if(isArrayOrTypedArray(width)) {\n // if width is an array, then clone it into t.barwidth.\n var newBarwidth = Array.prototype.slice.call(width, 0, calcTrace.length);\n\n // guard against non-numeric items\n for(j = 0; j < newBarwidth.length; j++) {\n if(!isNumeric(newBarwidth[j])) newBarwidth[j] = initialBarwidth;\n }\n\n // if the length of the array is too short,\n // then extend it with the initial value of t.barwidth\n for(j = newBarwidth.length; j < calcTrace.length; j++) {\n newBarwidth.push(initialBarwidth);\n }\n\n t.barwidth = newBarwidth;\n\n // if user didn't set offset,\n // then correct t.poffset to ensure bars remain centered\n if(offset === undefined) {\n newPoffset = [];\n for(j = 0; j < calcTrace.length; j++) {\n newPoffset.push(\n initialPoffset + (initialBarwidth - newBarwidth[j]) / 2\n );\n }\n t.poffset = newPoffset;\n }\n } else if(width !== undefined) {\n t.barwidth = width;\n\n // if user didn't set offset,\n // then correct t.poffset to ensure bars remain centered\n if(offset === undefined) {\n t.poffset = initialPoffset + (initialBarwidth - width) / 2;\n }\n }\n }\n}\n\nfunction setBarCenterAndWidth(pa, sieve) {\n var calcTraces = sieve.traces;\n var pLetter = getAxisLetter(pa);\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var t = calcTrace[0].t;\n var poffset = t.poffset;\n var poffsetIsArray = Array.isArray(poffset);\n var barwidth = t.barwidth;\n var barwidthIsArray = Array.isArray(barwidth);\n\n for(var j = 0; j < calcTrace.length; j++) {\n var calcBar = calcTrace[j];\n\n // store the actual bar width and position, for use by hover\n var width = calcBar.w = barwidthIsArray ? barwidth[j] : barwidth;\n calcBar[pLetter] = calcBar.p + (poffsetIsArray ? poffset[j] : poffset) + width / 2;\n }\n }\n}\n\nfunction updatePositionAxis(pa, sieve, allowMinDtick) {\n var calcTraces = sieve.traces;\n var minDiff = sieve.minDiff;\n var vpad = minDiff / 2;\n\n Axes.minDtick(pa, sieve.minDiff, sieve.distinctPositions[0], allowMinDtick);\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var calcTrace0 = calcTrace[0];\n var fullTrace = calcTrace0.trace;\n var pts = [];\n var bar, l, r, j;\n\n for(j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n l = bar.p - vpad;\n r = bar.p + vpad;\n pts.push(l, r);\n }\n\n if(fullTrace.width || fullTrace.offset) {\n var t = calcTrace0.t;\n var poffset = t.poffset;\n var barwidth = t.barwidth;\n var poffsetIsArray = Array.isArray(poffset);\n var barwidthIsArray = Array.isArray(barwidth);\n\n for(j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n var calcBarOffset = poffsetIsArray ? poffset[j] : poffset;\n var calcBarWidth = barwidthIsArray ? barwidth[j] : barwidth;\n l = bar.p + calcBarOffset;\n r = l + calcBarWidth;\n pts.push(l, r);\n }\n }\n\n fullTrace._extremes[pa._id] = Axes.findExtremes(pa, pts, {padded: false});\n }\n}\n\n// store these bar bases and tops in calcdata\n// and make sure the size axis includes zero,\n// along with the bases and tops of each bar.\nfunction setBaseAndTop(sa, sieve) {\n var calcTraces = sieve.traces;\n var sLetter = getAxisLetter(sa);\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var fullTrace = calcTrace[0].trace;\n var pts = [];\n var allBaseAboveZero = true;\n\n for(var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n var base = bar.b;\n var top = base + bar.s;\n\n bar[sLetter] = top;\n pts.push(top);\n if(bar.hasB) pts.push(base);\n\n if(!bar.hasB || !(bar.b > 0 && bar.s > 0)) {\n allBaseAboveZero = false;\n }\n }\n\n fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, {\n tozero: !allBaseAboveZero,\n padded: true\n });\n }\n}\n\nfunction stackBars(sa, sieve, opts) {\n var sLetter = getAxisLetter(sa);\n var calcTraces = sieve.traces;\n var calcTrace;\n var fullTrace;\n var isFunnel;\n var i, j;\n var bar;\n\n for(i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n\n if(fullTrace.type === 'funnel') {\n for(j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n\n if(bar.s !== BADNUM) {\n // create base of funnels\n sieve.put(bar.p, -0.5 * bar.s);\n }\n }\n }\n }\n\n for(i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n\n isFunnel = (fullTrace.type === 'funnel');\n\n var pts = [];\n\n for(j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n\n if(bar.s !== BADNUM) {\n // stack current bar and get previous sum\n var value;\n if(isFunnel) {\n value = bar.s;\n } else {\n value = bar.s + bar.b;\n }\n\n var base = sieve.put(bar.p, value);\n\n var top = base + value;\n\n // store the bar base and top in each calcdata item\n bar.b = base;\n bar[sLetter] = top;\n\n if(!opts.norm) {\n pts.push(top);\n if(bar.hasB) {\n pts.push(base);\n }\n }\n }\n }\n\n // if barnorm is set, let normalizeBars update the axis range\n if(!opts.norm) {\n fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, {\n // N.B. we don't stack base with 'base',\n // so set tozero:true always!\n tozero: true,\n padded: true\n });\n }\n }\n}\n\nfunction sieveBars(sieve) {\n var calcTraces = sieve.traces;\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n\n for(var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n\n if(bar.s !== BADNUM) {\n sieve.put(bar.p, bar.b + bar.s);\n }\n }\n }\n}\n\nfunction unhideBarsWithinTrace(sieve) {\n var calcTraces = sieve.traces;\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var fullTrace = calcTrace[0].trace;\n\n if(fullTrace.base === undefined) {\n var inTraceSieve = new Sieve([calcTrace], {\n sepNegVal: true,\n overlapNoMerge: true\n });\n\n for(var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n\n if(bar.p !== BADNUM) {\n // stack current bar and get previous sum\n var base = inTraceSieve.put(bar.p, bar.b + bar.s);\n\n // if previous sum if non-zero, this means:\n // multiple bars have same starting point are potentially hidden,\n // shift them vertically so that all bars are visible by default\n if(base) bar.b = base;\n }\n }\n }\n }\n}\n\n// Note:\n//\n// normalizeBars requires that either sieveBars or stackBars has been\n// previously invoked.\nfunction normalizeBars(sa, sieve, opts) {\n var calcTraces = sieve.traces;\n var sLetter = getAxisLetter(sa);\n var sTop = opts.norm === 'fraction' ? 1 : 100;\n var sTiny = sTop / 1e9; // in case of rounding error in sum\n var sMin = sa.l2c(sa.c2l(0));\n var sMax = opts.mode === 'stack' ? sTop : sMin;\n\n function needsPadding(v) {\n return (\n isNumeric(sa.c2l(v)) &&\n ((v < sMin - sTiny) || (v > sMax + sTiny) || !isNumeric(sMin))\n );\n }\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var fullTrace = calcTrace[0].trace;\n var pts = [];\n var allBaseAboveZero = true;\n var padded = false;\n\n for(var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n\n if(bar.s !== BADNUM) {\n var scale = Math.abs(sTop / sieve.get(bar.p, bar.s));\n bar.b *= scale;\n bar.s *= scale;\n\n var base = bar.b;\n var top = base + bar.s;\n\n bar[sLetter] = top;\n pts.push(top);\n padded = padded || needsPadding(top);\n\n if(bar.hasB) {\n pts.push(base);\n padded = padded || needsPadding(base);\n }\n\n if(!bar.hasB || !(bar.b > 0 && bar.s > 0)) {\n allBaseAboveZero = false;\n }\n }\n }\n\n fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, {\n tozero: !allBaseAboveZero,\n padded: padded\n });\n }\n}\n\n// find the full position span of bars at each position\n// for use by hover, to ensure labels move in if bars are\n// narrower than the space they're in.\n// run once per trace group (subplot & direction) and\n// the same mapping is attached to all calcdata traces\nfunction collectExtents(calcTraces, pa) {\n var pLetter = getAxisLetter(pa);\n var extents = {};\n var i, j, cd;\n\n var pMin = Infinity;\n var pMax = -Infinity;\n\n for(i = 0; i < calcTraces.length; i++) {\n cd = calcTraces[i];\n for(j = 0; j < cd.length; j++) {\n var p = cd[j].p;\n if(isNumeric(p)) {\n pMin = Math.min(pMin, p);\n pMax = Math.max(pMax, p);\n }\n }\n }\n\n // this is just for positioning of hover labels, and nobody will care if\n // the label is 1px too far out; so round positions to 1/10K in case\n // position values don't exactly match from trace to trace\n var roundFactor = 10000 / (pMax - pMin);\n var round = extents.round = function(p) {\n return String(Math.round(roundFactor * (p - pMin)));\n };\n\n for(i = 0; i < calcTraces.length; i++) {\n cd = calcTraces[i];\n cd[0].t.extents = extents;\n\n var poffset = cd[0].t.poffset;\n var poffsetIsArray = Array.isArray(poffset);\n\n for(j = 0; j < cd.length; j++) {\n var di = cd[j];\n var p0 = di[pLetter] - di.w / 2;\n\n if(isNumeric(p0)) {\n var p1 = di[pLetter] + di.w / 2;\n var pVal = round(di.p);\n if(extents[pVal]) {\n extents[pVal] = [Math.min(p0, extents[pVal][0]), Math.max(p1, extents[pVal][1])];\n } else {\n extents[pVal] = [p0, p1];\n }\n }\n\n di.p0 = di.p + (poffsetIsArray ? poffset[j] : poffset);\n di.p1 = di.p0 + di.w;\n di.s0 = di.b;\n di.s1 = di.s0 + di.s;\n }\n }\n}\n\nfunction getAxisLetter(ax) {\n return ax._id.charAt(0);\n}\n\nmodule.exports = {\n crossTraceCalc: crossTraceCalc,\n setGroupPositions: setGroupPositions\n};\n\n\n/***/ }),\n\n/***/ \"0cfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar fails = __webpack_require__(\"d039\");\nvar createElement = __webpack_require__(\"cc12\");\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"0d59\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n cellPad: 8,\n columnExtentOffset: 10,\n columnTitleOffset: 28,\n emptyHeaderHeight: 16,\n latexCheck: /^\\$.*\\$$/,\n goldenRatio: 1.618,\n lineBreaker: '
',\n maxDimensionCount: 60,\n overdrag: 45,\n releaseTransitionDuration: 120,\n releaseTransitionEase: 'cubic-out',\n scrollbarCaptureWidth: 18,\n scrollbarHideDelay: 1000,\n scrollbarHideDuration: 1000,\n scrollbarOffset: 5,\n scrollbarWidth: 8,\n transitionDuration: 100,\n transitionEase: 'cubic-out',\n uplift: 5,\n wrapSpacer: ' ',\n wrapSplitCharacter: ' ',\n cn: {\n // general class names\n table: 'table',\n tableControlView: 'table-control-view',\n scrollBackground: 'scroll-background',\n yColumn: 'y-column',\n columnBlock: 'column-block',\n scrollAreaClip: 'scroll-area-clip',\n scrollAreaClipRect: 'scroll-area-clip-rect',\n columnBoundary: 'column-boundary',\n columnBoundaryClippath: 'column-boundary-clippath',\n columnBoundaryRect: 'column-boundary-rect',\n columnCells: 'column-cells',\n columnCell: 'column-cell',\n cellRect: 'cell-rect',\n cellText: 'cell-text',\n cellTextHolder: 'cell-text-holder',\n\n // scroll related class names\n scrollbarKit: 'scrollbar-kit',\n scrollbar: 'scrollbar',\n scrollbarSlider: 'scrollbar-slider',\n scrollbarGlyph: 'scrollbar-glyph',\n scrollbarCaptureZone: 'scrollbar-capture-zone'\n }\n};\n\n\n/***/ }),\n\n/***/ \"0dd1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar twoProduct = __webpack_require__(\"c01c\")\nvar twoSum = __webpack_require__(\"d1bd\")\n\nmodule.exports = scaleLinearExpansion\n\nfunction scaleLinearExpansion(e, scale) {\n var n = e.length\n if(n === 1) {\n var ts = twoProduct(e[0], scale)\n if(ts[0]) {\n return ts\n }\n return [ ts[1] ]\n }\n var g = new Array(2 * n)\n var q = [0.1, 0.1]\n var t = [0.1, 0.1]\n var count = 0\n twoProduct(e[0], scale, q)\n if(q[0]) {\n g[count++] = q[0]\n }\n for(var i=1; i': makeInequalitySettings('>'),\n '<': makeInequalitySettings('<'),\n '=': makeInequalitySettings('=')\n};\n\n// This does not in any way shape or form support calendars. It's adapted from\n// transforms/filter.js.\nfunction coerceValue(operation, value) {\n var hasArrayValue = Array.isArray(value);\n\n var coercedValue;\n\n function coerce(value) {\n return isNumeric(value) ? (+value) : null;\n }\n\n if(filterOps.COMPARISON_OPS2.indexOf(operation) !== -1) {\n coercedValue = hasArrayValue ? coerce(value[0]) : coerce(value);\n } else if(filterOps.INTERVAL_OPS.indexOf(operation) !== -1) {\n coercedValue = hasArrayValue ?\n [coerce(value[0]), coerce(value[1])] :\n [coerce(value), coerce(value)];\n } else if(filterOps.SET_OPS.indexOf(operation) !== -1) {\n coercedValue = hasArrayValue ? value.map(coerce) : [coerce(value)];\n }\n\n return coercedValue;\n}\n\n// Returns a parabola scaled so that the min/max is either +/- 1 and zero at the two values\n// provided. The data is mapped by this function when constructing intervals so that it's\n// very easy to construct contours as normal.\nfunction makeRangeSettings(operation) {\n return function(value) {\n value = coerceValue(operation, value);\n\n // Ensure proper ordering:\n var min = Math.min(value[0], value[1]);\n var max = Math.max(value[0], value[1]);\n\n return {\n start: min,\n end: max,\n size: max - min\n };\n };\n}\n\nfunction makeInequalitySettings(operation) {\n return function(value) {\n value = coerceValue(operation, value);\n\n return {\n start: value,\n end: Infinity,\n size: Infinity\n };\n };\n}\n\n\n/***/ }),\n\n/***/ \"11e1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Color = __webpack_require__(\"d115\");\n\nvar handleStyleDefaults = __webpack_require__(\"9103\");\nvar attributes = __webpack_require__(\"40c0\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var x = coerce('x');\n var y = coerce('y');\n\n var cumulative = coerce('cumulative.enabled');\n if(cumulative) {\n coerce('cumulative.direction');\n coerce('cumulative.currentbin');\n }\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n var orientation = coerce('orientation', (y && !x) ? 'h' : 'v');\n var sampleLetter = orientation === 'v' ? 'x' : 'y';\n var aggLetter = orientation === 'v' ? 'y' : 'x';\n\n var len = (x && y) ?\n Math.min(Lib.minRowLength(x) && Lib.minRowLength(y)) :\n Lib.minRowLength(traceOut[sampleLetter] || []);\n\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._length = len;\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x', 'y'], layout);\n\n var hasAggregationData = traceOut[aggLetter];\n if(hasAggregationData) coerce('histfunc');\n coerce('histnorm');\n\n // Note: bin defaults are now handled in Histogram.crossTraceDefaults\n // autobin(x|y) are only included here to appease Plotly.validate\n coerce('autobin' + sampleLetter);\n\n handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n\n var lineColor = (traceOut.marker.line || {}).color;\n\n // override defaultColor for error bars with defaultLine\n var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'y'});\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'});\n};\n\n\n/***/ }),\n\n/***/ \"122d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Color = __webpack_require__(\"d115\");\nvar Template = __webpack_require__(\"a651\");\n\nvar handleSubplotDefaults = __webpack_require__(\"119e\");\nvar getSubplotData = __webpack_require__(\"ad62\").getSubplotData;\n\nvar handleTickValueDefaults = __webpack_require__(\"d92f\");\nvar handleTickMarkDefaults = __webpack_require__(\"27e3\");\nvar handleTickLabelDefaults = __webpack_require__(\"5008\");\nvar handleCategoryOrderDefaults = __webpack_require__(\"d18b\");\nvar handleLineGridDefaults = __webpack_require__(\"743b\");\nvar autoType = __webpack_require__(\"0b77\");\n\nvar layoutAttributes = __webpack_require__(\"ddde\");\nvar setConvert = __webpack_require__(\"7a52\");\nvar constants = __webpack_require__(\"f510\");\nvar axisNames = constants.axisNames;\n\nfunction handleDefaults(contIn, contOut, coerce, opts) {\n var bgColor = coerce('bgcolor');\n opts.bgColor = Color.combine(bgColor, opts.paper_bgcolor);\n\n var sector = coerce('sector');\n coerce('hole');\n\n // could optimize, subplotData is not always needed!\n var subplotData = getSubplotData(opts.fullData, constants.name, opts.id);\n var layoutOut = opts.layoutOut;\n var axName;\n\n function coerceAxis(attr, dflt) {\n return coerce(axName + '.' + attr, dflt);\n }\n\n for(var i = 0; i < axisNames.length; i++) {\n axName = axisNames[i];\n\n if(!Lib.isPlainObject(contIn[axName])) {\n contIn[axName] = {};\n }\n\n var axIn = contIn[axName];\n var axOut = Template.newContainer(contOut, axName);\n axOut._id = axOut._name = axName;\n axOut._attr = opts.id + '.' + axName;\n axOut._traceIndices = subplotData.map(function(t) { return t._expandedIndex; });\n\n var dataAttr = constants.axisName2dataArray[axName];\n var axType = handleAxisTypeDefaults(axIn, axOut, coerceAxis, subplotData, dataAttr);\n\n handleCategoryOrderDefaults(axIn, axOut, coerceAxis, {\n axData: subplotData,\n dataAttr: dataAttr\n });\n\n var visible = coerceAxis('visible');\n setConvert(axOut, contOut, layoutOut);\n\n coerceAxis('uirevision', contOut.uirevision);\n\n var dfltColor;\n var dfltFontColor;\n\n if(visible) {\n dfltColor = coerceAxis('color');\n dfltFontColor = (dfltColor === axIn.color) ? dfltColor : opts.font.color;\n }\n\n // We don't want to make downstream code call ax.setScale,\n // as both radial and angular axes don't have a set domain.\n // Furthermore, angular axes don't have a set range.\n //\n // Mocked domains and ranges are set by the polar subplot instances,\n // but Axes.findExtremes uses the sign of _m to determine which padding value\n // to use.\n //\n // By setting, _m to 1 here, we make Axes.findExtremes think that\n // range[1] > range[0], and vice-versa for `autorange: 'reversed'` below.\n axOut._m = 1;\n\n switch(axName) {\n case 'radialaxis':\n var autoRange = coerceAxis('autorange', !axOut.isValidRange(axIn.range));\n axIn.autorange = autoRange;\n if(autoRange && (axType === 'linear' || axType === '-')) coerceAxis('rangemode');\n if(autoRange === 'reversed') axOut._m = -1;\n\n coerceAxis('range');\n axOut.cleanRange('range', {dfltRange: [0, 1]});\n\n if(visible) {\n coerceAxis('side');\n coerceAxis('angle', sector[0]);\n\n coerceAxis('title.text');\n Lib.coerceFont(coerceAxis, 'title.font', {\n family: opts.font.family,\n size: Math.round(opts.font.size * 1.2),\n color: dfltFontColor\n });\n }\n break;\n\n case 'angularaxis':\n // We do not support 'true' date angular axes yet,\n // users can still plot dates on angular axes by setting\n // `angularaxis.type: 'category'`.\n //\n // Here, if a date angular axes is detected, we make\n // all its corresponding traces invisible, so that\n // when we do add support for data angular axes, the new\n // behavior won't conflict with existing behavior\n if(axType === 'date') {\n Lib.log('Polar plots do not support date angular axes yet.');\n\n for(var j = 0; j < subplotData.length; j++) {\n subplotData[j].visible = false;\n }\n\n // turn this into a 'dummy' linear axis so that\n // the subplot still renders ok\n axType = axIn.type = axOut.type = 'linear';\n }\n\n if(axType === 'linear') {\n coerceAxis('thetaunit');\n } else {\n coerceAxis('period');\n }\n\n var direction = coerceAxis('direction');\n coerceAxis('rotation', {counterclockwise: 0, clockwise: 90}[direction]);\n break;\n }\n\n if(visible) {\n handleTickValueDefaults(axIn, axOut, coerceAxis, axOut.type);\n handleTickLabelDefaults(axIn, axOut, coerceAxis, axOut.type, {\n tickSuffixDflt: axOut.thetaunit === 'degrees' ? '°' : undefined\n });\n handleTickMarkDefaults(axIn, axOut, coerceAxis, {outerTicks: true});\n\n var showTickLabels = coerceAxis('showticklabels');\n if(showTickLabels) {\n Lib.coerceFont(coerceAxis, 'tickfont', {\n family: opts.font.family,\n size: opts.font.size,\n color: dfltFontColor\n });\n coerceAxis('tickangle');\n coerceAxis('tickformat');\n }\n\n handleLineGridDefaults(axIn, axOut, coerceAxis, {\n dfltColor: dfltColor,\n bgColor: opts.bgColor,\n // default grid color is darker here (60%, vs cartesian default ~91%)\n // because the grid is not square so the eye needs heavier cues to follow\n blend: 60,\n showLine: true,\n showGrid: true,\n noZeroLine: true,\n attributes: layoutAttributes[axName]\n });\n\n coerceAxis('layer');\n }\n\n if(axType !== 'category') coerceAxis('hoverformat');\n\n axOut._input = axIn;\n }\n\n if(contOut.angularaxis.type === 'category') {\n coerce('gridshape');\n }\n}\n\nfunction handleAxisTypeDefaults(axIn, axOut, coerce, subplotData, dataAttr) {\n var axType = coerce('type');\n\n if(axType === '-') {\n var trace;\n\n for(var i = 0; i < subplotData.length; i++) {\n if(subplotData[i].visible) {\n trace = subplotData[i];\n break;\n }\n }\n\n if(trace && trace[dataAttr]) {\n axOut.type = autoType(trace[dataAttr], 'gregorian');\n }\n\n if(axOut.type === '-') {\n axOut.type = 'linear';\n } else {\n // copy autoType back to input axis\n // note that if this object didn't exist\n // in the input layout, we have to put it in\n // this happens in the main supplyDefaults function\n axIn.type = axOut.type;\n }\n }\n\n return axOut.type;\n}\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n type: constants.name,\n attributes: layoutAttributes,\n handleDefaults: handleDefaults,\n font: layoutOut.font,\n paper_bgcolor: layoutOut.paper_bgcolor,\n fullData: fullData,\n layoutOut: layoutOut\n });\n};\n\n\n/***/ }),\n\n/***/ \"12c1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n// Modified from https://github.com/ArthurClemens/Javascript-Undo-Manager\n// Copyright (c) 2010-2013 Arthur Clemens, arthur@visiblearea.com\nmodule.exports = function UndoManager() {\n var undoCommands = [];\n var index = -1;\n var isExecuting = false;\n var callback;\n\n function execute(command, action) {\n if(!command) return this;\n\n isExecuting = true;\n command[action]();\n isExecuting = false;\n\n return this;\n }\n\n return {\n add: function(command) {\n if(isExecuting) return this;\n undoCommands.splice(index + 1, undoCommands.length - index);\n undoCommands.push(command);\n index = undoCommands.length - 1;\n return this;\n },\n setCallback: function(callbackFunc) { callback = callbackFunc; },\n undo: function() {\n var command = undoCommands[index];\n if(!command) return this;\n execute(command, 'undo');\n index -= 1;\n if(callback) callback(command.undo);\n return this;\n },\n redo: function() {\n var command = undoCommands[index + 1];\n if(!command) return this;\n execute(command, 'redo');\n index += 1;\n if(callback) callback(command.redo);\n return this;\n },\n clear: function() {\n undoCommands = [];\n index = -1;\n },\n hasUndo: function() { return index !== -1; },\n hasRedo: function() { return index < (undoCommands.length - 1); },\n getCommands: function() { return undoCommands; },\n getPreviousCommand: function() { return undoCommands[index - 1]; },\n getIndex: function() { return index; }\n };\n};\n\n\n/***/ }),\n\n/***/ \"12e0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n// a trimmed down version of:\n// https://github.com/alexcjohnson/world-calendars/blob/master/dist/index.js\n\nmodule.exports = __webpack_require__(\"0230\");\n\n__webpack_require__(\"54ea\");\n\n__webpack_require__(\"87d2\");\n__webpack_require__(\"ad2d\");\n__webpack_require__(\"d402\");\n__webpack_require__(\"fd3b\");\n__webpack_require__(\"becc\");\n__webpack_require__(\"3e43\");\n__webpack_require__(\"aaa9\");\n__webpack_require__(\"a7c5\");\n__webpack_require__(\"8a0e\");\n__webpack_require__(\"c107\");\n__webpack_require__(\"2d7d\");\n__webpack_require__(\"0b79\");\n__webpack_require__(\"1bbd\");\n__webpack_require__(\"7abc\");\n\n\n/***/ }),\n\n/***/ \"134c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\nvar fxAttrs = __webpack_require__(\"927d\");\n\nvar Scene = __webpack_require__(\"bb88\");\nvar getSubplotData = __webpack_require__(\"ad62\").getSubplotData;\nvar Lib = __webpack_require__(\"fc26\");\nvar xmlnsNamespaces = __webpack_require__(\"73c9\");\n\nvar GL3D = 'gl3d';\nvar SCENE = 'scene';\n\n\nexports.name = GL3D;\n\nexports.attr = SCENE;\n\nexports.idRoot = SCENE;\n\nexports.idRegex = exports.attrRegex = Lib.counterRegex('scene');\n\nexports.attributes = __webpack_require__(\"cdaf\");\n\nexports.layoutAttributes = __webpack_require__(\"f409\");\n\nexports.baseLayoutAttrOverrides = overrideAll({\n hoverlabel: fxAttrs.hoverlabel\n}, 'plot', 'nested');\n\nexports.supplyLayoutDefaults = __webpack_require__(\"9f41\");\n\nexports.plot = function plot(gd) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var sceneIds = fullLayout._subplots[GL3D];\n\n for(var i = 0; i < sceneIds.length; i++) {\n var sceneId = sceneIds[i];\n var fullSceneData = getSubplotData(fullData, GL3D, sceneId);\n var sceneLayout = fullLayout[sceneId];\n var camera = sceneLayout.camera;\n var scene = sceneLayout._scene;\n\n if(!scene) {\n scene = new Scene({\n id: sceneId,\n graphDiv: gd,\n container: gd.querySelector('.gl-container'),\n staticPlot: gd._context.staticPlot,\n plotGlPixelRatio: gd._context.plotGlPixelRatio,\n camera: camera\n },\n fullLayout\n );\n\n // set ref to Scene instance\n sceneLayout._scene = scene;\n }\n\n // save 'initial' camera view settings for modebar button\n if(!scene.viewInitial) {\n scene.viewInitial = {\n up: {\n x: camera.up.x,\n y: camera.up.y,\n z: camera.up.z\n },\n eye: {\n x: camera.eye.x,\n y: camera.eye.y,\n z: camera.eye.z\n },\n center: {\n x: camera.center.x,\n y: camera.center.y,\n z: camera.center.z\n }\n };\n }\n\n scene.plot(fullSceneData, fullLayout, gd.layout);\n }\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldSceneKeys = oldFullLayout._subplots[GL3D] || [];\n\n for(var i = 0; i < oldSceneKeys.length; i++) {\n var oldSceneKey = oldSceneKeys[i];\n\n if(!newFullLayout[oldSceneKey] && !!oldFullLayout[oldSceneKey]._scene) {\n oldFullLayout[oldSceneKey]._scene.destroy();\n\n if(oldFullLayout._infolayer) {\n oldFullLayout._infolayer\n .selectAll('.annotation-' + oldSceneKey)\n .remove();\n }\n }\n }\n};\n\nexports.toSVG = function(gd) {\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots[GL3D];\n var size = fullLayout._size;\n\n for(var i = 0; i < sceneIds.length; i++) {\n var sceneLayout = fullLayout[sceneIds[i]];\n var domain = sceneLayout.domain;\n var scene = sceneLayout._scene;\n\n var imageData = scene.toImage('png');\n var image = fullLayout._glimages.append('svg:image');\n\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n 'xlink:href': imageData,\n x: size.l + size.w * domain.x[0],\n y: size.t + size.h * (1 - domain.y[1]),\n width: size.w * (domain.x[1] - domain.x[0]),\n height: size.h * (domain.y[1] - domain.y[0]),\n preserveAspectRatio: 'none'\n });\n\n scene.destroy();\n }\n};\n\n// clean scene ids, 'scene1' -> 'scene'\nexports.cleanId = function cleanId(id) {\n if(!id.match(/^scene[0-9]*$/)) return;\n\n var sceneNum = id.substr(5);\n if(sceneNum === '1') sceneNum = '';\n\n return SCENE + sceneNum;\n};\n\nexports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[GL3D];\n\n for(var i = 0; i < subplotIds.length; i++) {\n var subplotObj = fullLayout[subplotIds[i]]._scene;\n subplotObj.updateFx(fullLayout.dragmode, fullLayout.hovermode);\n }\n};\n\n\n/***/ }),\n\n/***/ \"1368\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process, global) {var require;/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 3.3.1\n */\n\n(function (global, factory) {\n true ? module.exports = factory() :\n undefined;\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n return typeof x === 'function' || typeof x === 'object' && x !== null;\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nvar _isArray = undefined;\nif (!Array.isArray) {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n} else {\n _isArray = Array.isArray;\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n return function () {\n vertxNext(flush);\n };\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = __webpack_require__(0);\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && \"function\" === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n _resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n _reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n _reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n _reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return _resolve(promise, value);\n }, function (reason) {\n return _reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$) {\n if (maybeThenable.constructor === promise.constructor && then$$ === then && maybeThenable.constructor.resolve === resolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$ === GET_THEN_ERROR) {\n _reject(promise, GET_THEN_ERROR.error);\n } else if (then$$ === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$)) {\n handleForeignThenable(promise, maybeThenable, then$$);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction _resolve(promise, value) {\n if (promise === value) {\n _reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction _reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n _reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n _resolve(promise, value);\n } else if (failed) {\n _reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n _reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n _resolve(promise, value);\n }, function rejectPromise(reason) {\n _reject(promise, reason);\n });\n } catch (e) {\n _reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n _reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function () {\n var length = this.length;\n var _input = this._input;\n\n for (var i = 0; this._state === PENDING && i < length; i++) {\n this._eachEntry(_input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve$$ = c.resolve;\n\n if (resolve$$ === resolve) {\n var _then = getThen(entry);\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$) {\n return resolve$$(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n _reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = resolve;\nPromise.reject = reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}\n\npolyfill();\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\n\nreturn Promise;\n\n})));\n//# sourceMappingURL=es6-promise.map\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"4362\"), __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"1385\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\n// more info: http://stackoverflow.com/questions/18531624/isplainobject-thing\nmodule.exports = function isPlainObject(obj) {\n // We need to be a little less strict in the `imagetest` container because\n // of how async image requests are handled.\n //\n // N.B. isPlainObject(new Constructor()) will return true in `imagetest`\n if(window && window.process && window.process.versions) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n }\n\n return (\n Object.prototype.toString.call(obj) === '[object Object]' &&\n Object.getPrototypeOf(obj) === Object.prototype\n );\n};\n\n\n/***/ }),\n\n/***/ \"13a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3Hierarchy = __webpack_require__(\"c947\");\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar makeColorScaleFn = __webpack_require__(\"c258\").makeColorScaleFuncFromTrace;\nvar makePullColorFn = __webpack_require__(\"86b8\").makePullColorFn;\nvar generateExtendedColors = __webpack_require__(\"86b8\").generateExtendedColors;\nvar colorscaleCalc = __webpack_require__(\"c258\").calc;\n\nvar ALMOST_EQUAL = __webpack_require__(\"e806\").ALMOST_EQUAL;\n\nvar sunburstExtendedColorWays = {};\nvar treemapExtendedColorWays = {};\n\nexports.calc = function(gd, trace) {\n var fullLayout = gd._fullLayout;\n var ids = trace.ids;\n var hasIds = Lib.isArrayOrTypedArray(ids);\n var labels = trace.labels;\n var parents = trace.parents;\n var values = trace.values;\n var hasValues = Lib.isArrayOrTypedArray(values);\n var cd = [];\n\n var parent2children = {};\n var refs = {};\n var addToLookup = function(parent, v) {\n if(parent2children[parent]) parent2children[parent].push(v);\n else parent2children[parent] = [v];\n refs[v] = 1;\n };\n\n // treat number `0` as valid\n var isValidKey = function(k) {\n return k || typeof k === 'number';\n };\n\n var isValidVal = function(i) {\n return !hasValues || (isNumeric(values[i]) && values[i] >= 0);\n };\n\n var len;\n var isValid;\n var getId;\n\n if(hasIds) {\n len = Math.min(ids.length, parents.length);\n isValid = function(i) { return isValidKey(ids[i]) && isValidVal(i); };\n getId = function(i) { return String(ids[i]); };\n } else {\n len = Math.min(labels.length, parents.length);\n isValid = function(i) { return isValidKey(labels[i]) && isValidVal(i); };\n // TODO We could allow some label / parent duplication\n //\n // From AJ:\n // It would work OK for one level\n // (multiple rows with the same name and different parents -\n // or even the same parent) but if that name is then used as a parent\n // which one is it?\n getId = function(i) { return String(labels[i]); };\n }\n\n if(hasValues) len = Math.min(len, values.length);\n\n for(var i = 0; i < len; i++) {\n if(isValid(i)) {\n var id = getId(i);\n var pid = isValidKey(parents[i]) ? String(parents[i]) : '';\n\n var cdi = {\n i: i,\n id: id,\n pid: pid,\n label: isValidKey(labels[i]) ? String(labels[i]) : ''\n };\n\n if(hasValues) cdi.v = +values[i];\n cd.push(cdi);\n addToLookup(pid, id);\n }\n }\n\n if(!parent2children['']) {\n var impliedRoots = [];\n var k;\n for(k in parent2children) {\n if(!refs[k]) {\n impliedRoots.push(k);\n }\n }\n\n // if an `id` has no ref in the `parents` array,\n // take it as being the root node\n\n if(impliedRoots.length === 1) {\n k = impliedRoots[0];\n cd.unshift({\n hasImpliedRoot: true,\n id: k,\n pid: '',\n label: k\n });\n } else {\n return Lib.warn('Multiple implied roots, cannot build ' + trace.type + ' hierarchy.');\n }\n } else if(parent2children[''].length > 1) {\n var dummyId = Lib.randstr();\n\n // if multiple rows linked to the root node,\n // add dummy \"root of roots\" node to make d3 build the hierarchy successfully\n\n for(var j = 0; j < cd.length; j++) {\n if(cd[j].pid === '') {\n cd[j].pid = dummyId;\n }\n }\n\n cd.unshift({\n hasMultipleRoots: true,\n id: dummyId,\n pid: '',\n label: ''\n });\n }\n\n // TODO might be better to replace stratify() with our own algorithm\n var root;\n try {\n root = d3Hierarchy.stratify()\n .id(function(d) { return d.id; })\n .parentId(function(d) { return d.pid; })(cd);\n } catch(e) {\n return Lib.warn('Failed to build ' + trace.type + ' hierarchy. Error: ' + e.message);\n }\n\n var hierarchy = d3Hierarchy.hierarchy(root);\n var failed = false;\n\n if(hasValues) {\n switch(trace.branchvalues) {\n case 'remainder':\n hierarchy.sum(function(d) { return d.data.v; });\n break;\n case 'total':\n hierarchy.each(function(d) {\n var cdi = d.data.data;\n var v = cdi.v;\n\n if(d.children) {\n var partialSum = d.children.reduce(function(a, c) {\n return a + c.data.data.v;\n }, 0);\n\n // N.B. we must fill in `value` for generated sectors\n // with the partialSum to compute the correct partition\n if(cdi.hasImpliedRoot || cdi.hasMultipleRoots) {\n v = partialSum;\n }\n\n if(v < partialSum * ALMOST_EQUAL) {\n failed = true;\n return Lib.warn([\n 'Total value for node', d.data.data.id,\n 'is smaller than the sum of its children.',\n '\\nparent value =', v,\n '\\nchildren sum =', partialSum\n ].join(' '));\n }\n }\n\n d.value = v;\n });\n break;\n }\n } else {\n countDescendants(hierarchy, trace, {\n branches: trace.count.indexOf('branches') !== -1,\n leaves: trace.count.indexOf('leaves') !== -1\n });\n }\n\n if(failed) return;\n\n // TODO add way to sort by height also?\n hierarchy.sort(function(a, b) { return b.value - a.value; });\n\n var pullColor;\n var scaleColor;\n var colors = trace.marker.colors || [];\n var hasColors = !!colors.length;\n\n if(trace._hasColorscale) {\n if(!hasColors) {\n colors = hasValues ? trace.values : trace._values;\n }\n\n colorscaleCalc(gd, trace, {\n vals: colors,\n containerStr: 'marker',\n cLetter: 'c'\n });\n\n scaleColor = makeColorScaleFn(trace.marker);\n } else {\n pullColor = makePullColorFn(fullLayout['_' + trace.type + 'colormap']);\n }\n\n // TODO keep track of 'root-children' (i.e. branch) for hover info etc.\n\n hierarchy.each(function(d) {\n var cdi = d.data.data;\n // N.B. this mutates items in `cd`\n cdi.color = trace._hasColorscale ?\n scaleColor(colors[cdi.i]) :\n pullColor(colors[cdi.i], cdi.id);\n });\n\n cd[0].hierarchy = hierarchy;\n\n return cd;\n};\n\n/*\n * `calc` filled in (and collated) explicit colors.\n * Now we need to propagate these explicit colors to other traces,\n * and fill in default colors.\n * This is done after sorting, so we pick defaults\n * in the order slices will be displayed\n */\nexports._runCrossTraceCalc = function(desiredType, gd) {\n var fullLayout = gd._fullLayout;\n var calcdata = gd.calcdata;\n var colorWay = fullLayout[desiredType + 'colorway'];\n var colorMap = fullLayout['_' + desiredType + 'colormap'];\n\n if(fullLayout['extend' + desiredType + 'colors']) {\n colorWay = generateExtendedColors(colorWay,\n desiredType === 'treemap' ? treemapExtendedColorWays : sunburstExtendedColorWays\n );\n }\n var dfltColorCount = 0;\n\n function pickColor(d) {\n var cdi = d.data.data;\n var id = cdi.id;\n\n if(cdi.color === false) {\n if(colorMap[id]) {\n // have we seen this label and assigned a color to it in a previous trace?\n cdi.color = colorMap[id];\n } else if(d.parent) {\n if(d.parent.parent) {\n // from third-level on, inherit from parent\n cdi.color = d.parent.data.data.color;\n } else {\n // pick new color for second level\n colorMap[id] = cdi.color = colorWay[dfltColorCount % colorWay.length];\n dfltColorCount++;\n }\n } else {\n // root gets no coloring by default\n cdi.color = 'rgba(0,0,0,0)';\n }\n }\n }\n\n for(var i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var cd0 = cd[0];\n if(cd0.trace.type === desiredType && cd0.hierarchy) {\n cd0.hierarchy.each(pickColor);\n }\n }\n};\n\nexports.crossTraceCalc = function(gd) {\n return exports._runCrossTraceCalc('sunburst', gd);\n};\n\nfunction countDescendants(node, trace, opts) {\n var nChild = 0;\n\n var children = node.children;\n if(children) {\n var len = children.length;\n\n for(var i = 0; i < len; i++) {\n nChild += countDescendants(children[i], trace, opts);\n }\n\n if(opts.branches) nChild++; // count this branch\n } else {\n if(opts.leaves) nChild++; // count this leaf\n }\n\n // save to the node\n node.value = node.data.data.value = nChild;\n\n // save to the trace\n if(!trace._values) trace._values = [];\n trace._values[node.data.data.i] = nChild;\n\n return nChild;\n}\n\n\n/***/ }),\n\n/***/ \"13a4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\n\n// set cursors pointing toward the closest corner/side,\n// to indicate alignment\n// x and y are 0-1, fractions of the plot area\nvar cursorset = [\n ['sw-resize', 's-resize', 'se-resize'],\n ['w-resize', 'move', 'e-resize'],\n ['nw-resize', 'n-resize', 'ne-resize']\n];\n\nmodule.exports = function getCursor(x, y, xanchor, yanchor) {\n if(xanchor === 'left') x = 0;\n else if(xanchor === 'center') x = 1;\n else if(xanchor === 'right') x = 2;\n else x = Lib.constrain(Math.floor(x * 3), 0, 2);\n\n if(yanchor === 'bottom') y = 0;\n else if(yanchor === 'middle') y = 1;\n else if(yanchor === 'top') y = 2;\n else y = Lib.constrain(Math.floor(y * 3), 0, 2);\n\n return cursorset[y][x];\n};\n\n\n/***/ }),\n\n/***/ \"13c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @module color-space/hsl\n */\n\n\nvar rgb = __webpack_require__(\"1bea\");\n\nmodule.exports = {\n\tname: 'hsl',\n\tmin: [0,0,0],\n\tmax: [360,100,100],\n\tchannel: ['hue', 'saturation', 'lightness'],\n\talias: ['HSL'],\n\n\trgb: function(hsl) {\n\t\tvar h = hsl[0] / 360,\n\t\t\t\ts = hsl[1] / 100,\n\t\t\t\tl = hsl[2] / 100,\n\t\t\t\tt1, t2, t3, rgb, val;\n\n\t\tif (s === 0) {\n\t\t\tval = l * 255;\n\t\t\treturn [val, val, val];\n\t\t}\n\n\t\tif (l < 0.5) {\n\t\t\tt2 = l * (1 + s);\n\t\t}\n\t\telse {\n\t\t\tt2 = l + s - l * s;\n\t\t}\n\t\tt1 = 2 * l - t2;\n\n\t\trgb = [0, 0, 0];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\tt3 = h + 1 / 3 * - (i - 1);\n\t\t\tif (t3 < 0) {\n\t\t\t\tt3++;\n\t\t\t}\n\t\t\telse if (t3 > 1) {\n\t\t\t\tt3--;\n\t\t\t}\n\n\t\t\tif (6 * t3 < 1) {\n\t\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t\t}\n\t\t\telse if (2 * t3 < 1) {\n\t\t\t\tval = t2;\n\t\t\t}\n\t\t\telse if (3 * t3 < 2) {\n\t\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tval = t1;\n\t\t\t}\n\n\t\t\trgb[i] = val * 255;\n\t\t}\n\n\t\treturn rgb;\n\t}\n};\n\n\n//extend rgb\nrgb.hsl = function(rgb) {\n\tvar r = rgb[0]/255,\n\t\t\tg = rgb[1]/255,\n\t\t\tb = rgb[2]/255,\n\t\t\tmin = Math.min(r, g, b),\n\t\t\tmax = Math.max(r, g, b),\n\t\t\tdelta = max - min,\n\t\t\th, s, l;\n\n\tif (max === min) {\n\t\th = 0;\n\t}\n\telse if (r === max) {\n\t\th = (g - b) / delta;\n\t}\n\telse if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t}\n\telse if (b === max) {\n\t\th = 4 + (r - g)/ delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t}\n\telse if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t}\n\telse {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\n\n/***/ }),\n\n/***/ \"13c4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Registry = __webpack_require__(\"371e\");\nvar Plots = __webpack_require__(\"bb71\");\nvar axisIds = __webpack_require__(\"3c1c\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Icons = __webpack_require__(\"7559\");\n\nvar _ = Lib._;\n\nvar modeBarButtons = module.exports = {};\n\n/**\n * ModeBar buttons configuration\n *\n * @param {string} name\n * name / id of the buttons (for tracking)\n * @param {string} title\n * text that appears while hovering over the button,\n * enter null, false or '' for no hover text\n * @param {string} icon\n * svg icon object associated with the button\n * can be linked to Plotly.Icons to use the default plotly icons\n * @param {string} [gravity]\n * icon positioning\n * @param {function} click\n * click handler associated with the button, a function of\n * 'gd' (the main graph object) and\n * 'ev' (the event object)\n * @param {string} [attr]\n * attribute associated with button,\n * use this with 'val' to keep track of the state\n * @param {*} [val]\n * initial 'attr' value, can be a function of gd\n * @param {boolean} [toggle]\n * is the button a toggle button?\n */\nmodeBarButtons.toImage = {\n name: 'toImage',\n title: function(gd) {\n var opts = gd._context.toImageButtonOptions || {};\n var format = opts.format || 'png';\n return format === 'png' ?\n _(gd, 'Download plot as a png') : // legacy text\n _(gd, 'Download plot'); // generic non-PNG text\n },\n icon: Icons.camera,\n click: function(gd) {\n var toImageButtonOptions = gd._context.toImageButtonOptions;\n var opts = {format: toImageButtonOptions.format || 'png'};\n\n Lib.notifier(_(gd, 'Taking snapshot - this may take a few seconds'), 'long');\n\n if(opts.format !== 'svg' && Lib.isIE()) {\n Lib.notifier(_(gd, 'IE only supports svg. Changing format to svg.'), 'long');\n opts.format = 'svg';\n }\n\n ['filename', 'width', 'height', 'scale'].forEach(function(key) {\n if(key in toImageButtonOptions) {\n opts[key] = toImageButtonOptions[key];\n }\n });\n\n Registry.call('downloadImage', gd, opts)\n .then(function(filename) {\n Lib.notifier(_(gd, 'Snapshot succeeded') + ' - ' + filename, 'long');\n })\n .catch(function() {\n Lib.notifier(_(gd, 'Sorry, there was a problem downloading your snapshot!'), 'long');\n });\n }\n};\n\nmodeBarButtons.sendDataToCloud = {\n name: 'sendDataToCloud',\n title: function(gd) { return _(gd, 'Edit in Chart Studio'); },\n icon: Icons.disk,\n click: function(gd) {\n Plots.sendDataToCloud(gd);\n }\n};\n\nmodeBarButtons.editInChartStudio = {\n name: 'editInChartStudio',\n title: function(gd) { return _(gd, 'Edit in Chart Studio'); },\n icon: Icons.pencil,\n click: function(gd) {\n Plots.sendDataToCloud(gd);\n }\n};\n\nmodeBarButtons.zoom2d = {\n name: 'zoom2d',\n title: function(gd) { return _(gd, 'Zoom'); },\n attr: 'dragmode',\n val: 'zoom',\n icon: Icons.zoombox,\n click: handleCartesian\n};\n\nmodeBarButtons.pan2d = {\n name: 'pan2d',\n title: function(gd) { return _(gd, 'Pan'); },\n attr: 'dragmode',\n val: 'pan',\n icon: Icons.pan,\n click: handleCartesian\n};\n\nmodeBarButtons.select2d = {\n name: 'select2d',\n title: function(gd) { return _(gd, 'Box Select'); },\n attr: 'dragmode',\n val: 'select',\n icon: Icons.selectbox,\n click: handleCartesian\n};\n\nmodeBarButtons.lasso2d = {\n name: 'lasso2d',\n title: function(gd) { return _(gd, 'Lasso Select'); },\n attr: 'dragmode',\n val: 'lasso',\n icon: Icons.lasso,\n click: handleCartesian\n};\n\nmodeBarButtons.zoomIn2d = {\n name: 'zoomIn2d',\n title: function(gd) { return _(gd, 'Zoom in'); },\n attr: 'zoom',\n val: 'in',\n icon: Icons.zoom_plus,\n click: handleCartesian\n};\n\nmodeBarButtons.zoomOut2d = {\n name: 'zoomOut2d',\n title: function(gd) { return _(gd, 'Zoom out'); },\n attr: 'zoom',\n val: 'out',\n icon: Icons.zoom_minus,\n click: handleCartesian\n};\n\nmodeBarButtons.autoScale2d = {\n name: 'autoScale2d',\n title: function(gd) { return _(gd, 'Autoscale'); },\n attr: 'zoom',\n val: 'auto',\n icon: Icons.autoscale,\n click: handleCartesian\n};\n\nmodeBarButtons.resetScale2d = {\n name: 'resetScale2d',\n title: function(gd) { return _(gd, 'Reset axes'); },\n attr: 'zoom',\n val: 'reset',\n icon: Icons.home,\n click: handleCartesian\n};\n\nmodeBarButtons.hoverClosestCartesian = {\n name: 'hoverClosestCartesian',\n title: function(gd) { return _(gd, 'Show closest data on hover'); },\n attr: 'hovermode',\n val: 'closest',\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: handleCartesian\n};\n\nmodeBarButtons.hoverCompareCartesian = {\n name: 'hoverCompareCartesian',\n title: function(gd) { return _(gd, 'Compare data on hover'); },\n attr: 'hovermode',\n val: function(gd) {\n return gd._fullLayout._isHoriz ? 'y' : 'x';\n },\n icon: Icons.tooltip_compare,\n gravity: 'ne',\n click: handleCartesian\n};\n\nfunction handleCartesian(gd, ev) {\n var button = ev.currentTarget;\n var astr = button.getAttribute('data-attr');\n var val = button.getAttribute('data-val') || true;\n var fullLayout = gd._fullLayout;\n var aobj = {};\n var axList = axisIds.list(gd, null, true);\n var allSpikesEnabled = fullLayout._cartesianSpikesEnabled;\n\n var ax, i;\n\n if(astr === 'zoom') {\n var mag = (val === 'in') ? 0.5 : 2;\n var r0 = (1 + mag) / 2;\n var r1 = (1 - mag) / 2;\n var axName;\n\n for(i = 0; i < axList.length; i++) {\n ax = axList[i];\n\n if(!ax.fixedrange) {\n axName = ax._name;\n if(val === 'auto') {\n aobj[axName + '.autorange'] = true;\n } else if(val === 'reset') {\n if(ax._rangeInitial === undefined) {\n aobj[axName + '.autorange'] = true;\n } else {\n var rangeInitial = ax._rangeInitial.slice();\n aobj[axName + '.range[0]'] = rangeInitial[0];\n aobj[axName + '.range[1]'] = rangeInitial[1];\n }\n\n // N.B. \"reset\" also resets showspikes\n if(ax._showSpikeInitial !== undefined) {\n aobj[axName + '.showspikes'] = ax._showSpikeInitial;\n if(allSpikesEnabled === 'on' && !ax._showSpikeInitial) {\n allSpikesEnabled = 'off';\n }\n }\n } else {\n var rangeNow = [\n ax.r2l(ax.range[0]),\n ax.r2l(ax.range[1]),\n ];\n\n var rangeNew = [\n r0 * rangeNow[0] + r1 * rangeNow[1],\n r0 * rangeNow[1] + r1 * rangeNow[0]\n ];\n\n aobj[axName + '.range[0]'] = ax.l2r(rangeNew[0]);\n aobj[axName + '.range[1]'] = ax.l2r(rangeNew[1]);\n }\n }\n }\n } else {\n // if ALL traces have orientation 'h', 'hovermode': 'x' otherwise: 'y'\n if(astr === 'hovermode' && (val === 'x' || val === 'y')) {\n val = fullLayout._isHoriz ? 'y' : 'x';\n button.setAttribute('data-val', val);\n }\n\n aobj[astr] = val;\n }\n\n fullLayout._cartesianSpikesEnabled = allSpikesEnabled;\n\n Registry.call('_guiRelayout', gd, aobj);\n}\n\nmodeBarButtons.zoom3d = {\n name: 'zoom3d',\n title: function(gd) { return _(gd, 'Zoom'); },\n attr: 'scene.dragmode',\n val: 'zoom',\n icon: Icons.zoombox,\n click: handleDrag3d\n};\n\nmodeBarButtons.pan3d = {\n name: 'pan3d',\n title: function(gd) { return _(gd, 'Pan'); },\n attr: 'scene.dragmode',\n val: 'pan',\n icon: Icons.pan,\n click: handleDrag3d\n};\n\nmodeBarButtons.orbitRotation = {\n name: 'orbitRotation',\n title: function(gd) { return _(gd, 'Orbital rotation'); },\n attr: 'scene.dragmode',\n val: 'orbit',\n icon: Icons['3d_rotate'],\n click: handleDrag3d\n};\n\nmodeBarButtons.tableRotation = {\n name: 'tableRotation',\n title: function(gd) { return _(gd, 'Turntable rotation'); },\n attr: 'scene.dragmode',\n val: 'turntable',\n icon: Icons['z-axis'],\n click: handleDrag3d\n};\n\nfunction handleDrag3d(gd, ev) {\n var button = ev.currentTarget;\n var attr = button.getAttribute('data-attr');\n var val = button.getAttribute('data-val') || true;\n var sceneIds = gd._fullLayout._subplots.gl3d || [];\n var layoutUpdate = {};\n\n var parts = attr.split('.');\n\n for(var i = 0; i < sceneIds.length; i++) {\n layoutUpdate[sceneIds[i] + '.' + parts[1]] = val;\n }\n\n // for multi-type subplots\n var val2d = (val === 'pan') ? val : 'zoom';\n layoutUpdate.dragmode = val2d;\n\n Registry.call('_guiRelayout', gd, layoutUpdate);\n}\n\nmodeBarButtons.resetCameraDefault3d = {\n name: 'resetCameraDefault3d',\n title: function(gd) { return _(gd, 'Reset camera to default'); },\n attr: 'resetDefault',\n icon: Icons.home,\n click: handleCamera3d\n};\n\nmodeBarButtons.resetCameraLastSave3d = {\n name: 'resetCameraLastSave3d',\n title: function(gd) { return _(gd, 'Reset camera to last save'); },\n attr: 'resetLastSave',\n icon: Icons.movie,\n click: handleCamera3d\n};\n\nfunction handleCamera3d(gd, ev) {\n var button = ev.currentTarget;\n var attr = button.getAttribute('data-attr');\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots.gl3d || [];\n var aobj = {};\n\n for(var i = 0; i < sceneIds.length; i++) {\n var sceneId = sceneIds[i];\n var camera = sceneId + '.camera';\n var aspectratio = sceneId + '.aspectratio';\n var scene = fullLayout[sceneId]._scene;\n var didUpdate;\n\n if(attr === 'resetLastSave') {\n aobj[camera + '.up'] = scene.viewInitial.up;\n aobj[camera + '.eye'] = scene.viewInitial.eye;\n aobj[camera + '.center'] = scene.viewInitial.center;\n didUpdate = true;\n } else if(attr === 'resetDefault') {\n aobj[camera + '.up'] = null;\n aobj[camera + '.eye'] = null;\n aobj[camera + '.center'] = null;\n didUpdate = true;\n }\n\n if(didUpdate) {\n aobj[aspectratio + '.x'] = scene.viewInitial.aspectratio.x;\n aobj[aspectratio + '.y'] = scene.viewInitial.aspectratio.y;\n aobj[aspectratio + '.z'] = scene.viewInitial.aspectratio.z;\n }\n }\n\n Registry.call('_guiRelayout', gd, aobj);\n}\n\nmodeBarButtons.hoverClosest3d = {\n name: 'hoverClosest3d',\n title: function(gd) { return _(gd, 'Toggle show closest data on hover'); },\n attr: 'hovermode',\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: handleHover3d\n};\n\nfunction getNextHover3d(gd, ev) {\n var button = ev.currentTarget;\n var val = button._previousVal;\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots.gl3d || [];\n\n var axes = ['xaxis', 'yaxis', 'zaxis'];\n\n // initialize 'current spike' object to be stored in the DOM\n var currentSpikes = {};\n var layoutUpdate = {};\n\n if(val) {\n layoutUpdate = val;\n button._previousVal = null;\n } else {\n for(var i = 0; i < sceneIds.length; i++) {\n var sceneId = sceneIds[i];\n var sceneLayout = fullLayout[sceneId];\n\n var hovermodeAStr = sceneId + '.hovermode';\n currentSpikes[hovermodeAStr] = sceneLayout.hovermode;\n layoutUpdate[hovermodeAStr] = false;\n\n // copy all the current spike attrs\n for(var j = 0; j < 3; j++) {\n var axis = axes[j];\n var spikeAStr = sceneId + '.' + axis + '.showspikes';\n layoutUpdate[spikeAStr] = false;\n currentSpikes[spikeAStr] = sceneLayout[axis].showspikes;\n }\n }\n\n button._previousVal = currentSpikes;\n }\n return layoutUpdate;\n}\n\nfunction handleHover3d(gd, ev) {\n var layoutUpdate = getNextHover3d(gd, ev);\n Registry.call('_guiRelayout', gd, layoutUpdate);\n}\n\nmodeBarButtons.zoomInGeo = {\n name: 'zoomInGeo',\n title: function(gd) { return _(gd, 'Zoom in'); },\n attr: 'zoom',\n val: 'in',\n icon: Icons.zoom_plus,\n click: handleGeo\n};\n\nmodeBarButtons.zoomOutGeo = {\n name: 'zoomOutGeo',\n title: function(gd) { return _(gd, 'Zoom out'); },\n attr: 'zoom',\n val: 'out',\n icon: Icons.zoom_minus,\n click: handleGeo\n};\n\nmodeBarButtons.resetGeo = {\n name: 'resetGeo',\n title: function(gd) { return _(gd, 'Reset'); },\n attr: 'reset',\n val: null,\n icon: Icons.autoscale,\n click: handleGeo\n};\n\nmodeBarButtons.hoverClosestGeo = {\n name: 'hoverClosestGeo',\n title: function(gd) { return _(gd, 'Toggle show closest data on hover'); },\n attr: 'hovermode',\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: toggleHover\n};\n\nfunction handleGeo(gd, ev) {\n var button = ev.currentTarget;\n var attr = button.getAttribute('data-attr');\n var val = button.getAttribute('data-val') || true;\n var fullLayout = gd._fullLayout;\n var geoIds = fullLayout._subplots.geo || [];\n\n for(var i = 0; i < geoIds.length; i++) {\n var id = geoIds[i];\n var geoLayout = fullLayout[id];\n\n if(attr === 'zoom') {\n var scale = geoLayout.projection.scale;\n var newScale = (val === 'in') ? 2 * scale : 0.5 * scale;\n\n Registry.call('_guiRelayout', gd, id + '.projection.scale', newScale);\n }\n }\n\n if(attr === 'reset') {\n resetView(gd, 'geo');\n }\n}\n\nmodeBarButtons.hoverClosestGl2d = {\n name: 'hoverClosestGl2d',\n title: function(gd) { return _(gd, 'Toggle show closest data on hover'); },\n attr: 'hovermode',\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: toggleHover\n};\n\nmodeBarButtons.hoverClosestPie = {\n name: 'hoverClosestPie',\n title: function(gd) { return _(gd, 'Toggle show closest data on hover'); },\n attr: 'hovermode',\n val: 'closest',\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: toggleHover\n};\n\nfunction getNextHover(gd) {\n var fullLayout = gd._fullLayout;\n\n if(fullLayout.hovermode) return false;\n\n if(fullLayout._has('cartesian')) {\n return fullLayout._isHoriz ? 'y' : 'x';\n }\n return 'closest';\n}\n\nfunction toggleHover(gd) {\n var newHover = getNextHover(gd);\n Registry.call('_guiRelayout', gd, 'hovermode', newHover);\n}\n\nmodeBarButtons.resetViewSankey = {\n name: 'resetSankeyGroup',\n title: function(gd) { return _(gd, 'Reset view'); },\n icon: Icons.home,\n click: function(gd) {\n var aObj = {\n 'node.groups': [],\n 'node.x': [],\n 'node.y': []\n };\n for(var i = 0; i < gd._fullData.length; i++) {\n var viewInitial = gd._fullData[i]._viewInitial;\n aObj['node.groups'].push(viewInitial.node.groups.slice());\n aObj['node.x'].push(viewInitial.node.x.slice());\n aObj['node.y'].push(viewInitial.node.y.slice());\n }\n Registry.call('restyle', gd, aObj);\n }\n};\n\n// buttons when more then one plot types are present\n\nmodeBarButtons.toggleHover = {\n name: 'toggleHover',\n title: function(gd) { return _(gd, 'Toggle show closest data on hover'); },\n attr: 'hovermode',\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: function(gd, ev) {\n var layoutUpdate = getNextHover3d(gd, ev);\n layoutUpdate.hovermode = getNextHover(gd);\n\n Registry.call('_guiRelayout', gd, layoutUpdate);\n }\n};\n\nmodeBarButtons.resetViews = {\n name: 'resetViews',\n title: function(gd) { return _(gd, 'Reset views'); },\n icon: Icons.home,\n click: function(gd, ev) {\n var button = ev.currentTarget;\n\n button.setAttribute('data-attr', 'zoom');\n button.setAttribute('data-val', 'reset');\n handleCartesian(gd, ev);\n\n button.setAttribute('data-attr', 'resetLastSave');\n handleCamera3d(gd, ev);\n\n resetView(gd, 'geo');\n resetView(gd, 'mapbox');\n }\n};\n\nmodeBarButtons.toggleSpikelines = {\n name: 'toggleSpikelines',\n title: function(gd) { return _(gd, 'Toggle Spike Lines'); },\n icon: Icons.spikeline,\n attr: '_cartesianSpikesEnabled',\n val: 'on',\n click: function(gd) {\n var fullLayout = gd._fullLayout;\n var allSpikesEnabled = fullLayout._cartesianSpikesEnabled;\n\n fullLayout._cartesianSpikesEnabled = allSpikesEnabled === 'on' ? 'off' : 'on';\n Registry.call('_guiRelayout', gd, setSpikelineVisibility(gd));\n }\n};\n\nfunction setSpikelineVisibility(gd) {\n var fullLayout = gd._fullLayout;\n var areSpikesOn = fullLayout._cartesianSpikesEnabled === 'on';\n var axList = axisIds.list(gd, null, true);\n var aobj = {};\n\n for(var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n aobj[ax._name + '.showspikes'] = areSpikesOn ? true : ax._showSpikeInitial;\n }\n\n return aobj;\n}\n\nmodeBarButtons.resetViewMapbox = {\n name: 'resetViewMapbox',\n title: function(gd) { return _(gd, 'Reset view'); },\n attr: 'reset',\n icon: Icons.home,\n click: function(gd) {\n resetView(gd, 'mapbox');\n }\n};\n\nmodeBarButtons.zoomInMapbox = {\n name: 'zoomInMapbox',\n title: function(gd) { return _(gd, 'Zoom in'); },\n attr: 'zoom',\n val: 'in',\n icon: Icons.zoom_plus,\n click: handleMapboxZoom\n};\n\nmodeBarButtons.zoomOutMapbox = {\n name: 'zoomOutMapbox',\n title: function(gd) { return _(gd, 'Zoom out'); },\n attr: 'zoom',\n val: 'out',\n icon: Icons.zoom_minus,\n click: handleMapboxZoom\n};\n\nfunction handleMapboxZoom(gd, ev) {\n var button = ev.currentTarget;\n var val = button.getAttribute('data-val');\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots.mapbox || [];\n var scalar = 1.05;\n var aObj = {};\n\n for(var i = 0; i < subplotIds.length; i++) {\n var id = subplotIds[i];\n var current = fullLayout[id].zoom;\n var next = (val === 'in') ? scalar * current : current / scalar;\n aObj[id + '.zoom'] = next;\n }\n\n Registry.call('_guiRelayout', gd, aObj);\n}\n\nfunction resetView(gd, subplotType) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[subplotType] || [];\n var aObj = {};\n\n for(var i = 0; i < subplotIds.length; i++) {\n var id = subplotIds[i];\n var subplotObj = fullLayout[id]._subplot;\n var viewInitial = subplotObj.viewInitial;\n var viewKeys = Object.keys(viewInitial);\n\n for(var j = 0; j < viewKeys.length; j++) {\n var key = viewKeys[j];\n aObj[id + '.' + key] = viewInitial[key];\n }\n }\n\n Registry.call('_guiRelayout', gd, aObj);\n}\n\n\n/***/ }),\n\n/***/ \"13d5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar $reduce = __webpack_require__(\"d58f\").left;\nvar arrayMethodIsStrict = __webpack_require__(\"a640\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"1417\":\n/***/ (function(module, exports) {\n\nmodule.exports = multiply;\n\n/**\n * Multiplies two mat4's\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the first operand\n * @param {mat4} b the second operand\n * @returns {mat4} out\n */\nfunction multiply(out, a, b) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3],\n a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7],\n a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11],\n a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n\n // Cache only the current line of the second matrix\n var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3]; \n out[0] = b0*a00 + b1*a10 + b2*a20 + b3*a30;\n out[1] = b0*a01 + b1*a11 + b2*a21 + b3*a31;\n out[2] = b0*a02 + b1*a12 + b2*a22 + b3*a32;\n out[3] = b0*a03 + b1*a13 + b2*a23 + b3*a33;\n\n b0 = b[4]; b1 = b[5]; b2 = b[6]; b3 = b[7];\n out[4] = b0*a00 + b1*a10 + b2*a20 + b3*a30;\n out[5] = b0*a01 + b1*a11 + b2*a21 + b3*a31;\n out[6] = b0*a02 + b1*a12 + b2*a22 + b3*a32;\n out[7] = b0*a03 + b1*a13 + b2*a23 + b3*a33;\n\n b0 = b[8]; b1 = b[9]; b2 = b[10]; b3 = b[11];\n out[8] = b0*a00 + b1*a10 + b2*a20 + b3*a30;\n out[9] = b0*a01 + b1*a11 + b2*a21 + b3*a31;\n out[10] = b0*a02 + b1*a12 + b2*a22 + b3*a32;\n out[11] = b0*a03 + b1*a13 + b2*a23 + b3*a33;\n\n b0 = b[12]; b1 = b[13]; b2 = b[14]; b3 = b[15];\n out[12] = b0*a00 + b1*a10 + b2*a20 + b3*a30;\n out[13] = b0*a01 + b1*a11 + b2*a21 + b3*a31;\n out[14] = b0*a02 + b1*a12 + b2*a22 + b3*a32;\n out[15] = b0*a03 + b1*a13 + b2*a23 + b3*a33;\n return out;\n};\n\n/***/ }),\n\n/***/ \"145a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar getModuleCalcData = __webpack_require__(\"ad62\").getModuleCalcData;\nvar parcatsPlot = __webpack_require__(\"3e11\");\n\nvar PARCATS = 'parcats';\nexports.name = PARCATS;\n\nexports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n var cdModuleAndOthers = getModuleCalcData(gd.calcdata, PARCATS);\n\n if(cdModuleAndOthers.length) {\n var calcData = cdModuleAndOthers[0];\n parcatsPlot(gd, calcData, transitionOpts, makeOnCompleteCallback);\n }\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadTable = (oldFullLayout._has && oldFullLayout._has('parcats'));\n var hasTable = (newFullLayout._has && newFullLayout._has('parcats'));\n\n if(hadTable && !hasTable) {\n oldFullLayout._paperdiv.selectAll('.parcats').remove();\n }\n};\n\n\n/***/ }),\n\n/***/ \"1477\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n\r\nvar isBrowser = __webpack_require__(\"dcf3\")\r\n\r\nfunction detect() {\r\n\tvar supported = false\r\n\r\n\ttry {\r\n\t\tvar opts = Object.defineProperty({}, 'passive', {\r\n\t\t\tget: function() {\r\n\t\t\t\tsupported = true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\twindow.addEventListener('test', null, opts)\r\n\t\twindow.removeEventListener('test', null, opts)\r\n\t} catch(e) {\r\n\t\tsupported = false\r\n\t}\r\n\r\n\treturn supported\r\n}\r\n\r\nmodule.exports = isBrowser && detect()\r\n\n\n/***/ }),\n\n/***/ \"14ab\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function () {\n\tvar assign = Object.assign, obj;\n\tif (typeof assign !== \"function\") return false;\n\tobj = { foo: \"raz\" };\n\tassign(obj, { bar: \"dwa\" }, { trzy: \"trzy\" });\n\treturn obj.foo + obj.bar + obj.trzy === \"razdwatrzy\";\n};\n\n\n/***/ }),\n\n/***/ \"14b6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar annAttrs = __webpack_require__(\"bb4a\");\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\nvar templatedArray = __webpack_require__(\"a651\").templatedArray;\n\nmodule.exports = overrideAll(templatedArray('annotation', {\n visible: annAttrs.visible,\n x: {\n valType: 'any',\n \n \n },\n y: {\n valType: 'any',\n \n \n },\n z: {\n valType: 'any',\n \n \n },\n ax: {\n valType: 'number',\n \n \n },\n ay: {\n valType: 'number',\n \n \n },\n\n xanchor: annAttrs.xanchor,\n xshift: annAttrs.xshift,\n yanchor: annAttrs.yanchor,\n yshift: annAttrs.yshift,\n\n text: annAttrs.text,\n textangle: annAttrs.textangle,\n font: annAttrs.font,\n width: annAttrs.width,\n height: annAttrs.height,\n opacity: annAttrs.opacity,\n align: annAttrs.align,\n valign: annAttrs.valign,\n bgcolor: annAttrs.bgcolor,\n bordercolor: annAttrs.bordercolor,\n borderpad: annAttrs.borderpad,\n borderwidth: annAttrs.borderwidth,\n showarrow: annAttrs.showarrow,\n arrowcolor: annAttrs.arrowcolor,\n arrowhead: annAttrs.arrowhead,\n startarrowhead: annAttrs.startarrowhead,\n arrowside: annAttrs.arrowside,\n arrowsize: annAttrs.arrowsize,\n startarrowsize: annAttrs.startarrowsize,\n arrowwidth: annAttrs.arrowwidth,\n standoff: annAttrs.standoff,\n startstandoff: annAttrs.startstandoff,\n hovertext: annAttrs.hovertext,\n hoverlabel: annAttrs.hoverlabel,\n captureevents: annAttrs.captureevents,\n\n // maybes later?\n // clicktoshow: annAttrs.clicktoshow,\n // xclick: annAttrs.xclick,\n // yclick: annAttrs.yclick,\n\n // not needed!\n // axref: 'pixel'\n // ayref: 'pixel'\n // xref: 'x'\n // yref: 'y\n // zref: 'z'\n}), 'calc', 'from-root');\n\n\n/***/ }),\n\n/***/ \"14c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"c6b6\");\nvar regexpExec = __webpack_require__(\"9263\");\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n\n\n/***/ }),\n\n/***/ \"14cf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function () {\n\tvar from = Array.from, arr, result;\n\tif (typeof from !== \"function\") return false;\n\tarr = [\"raz\", \"dwa\"];\n\tresult = from(arr);\n\treturn Boolean(result && result !== arr && result[1] === \"dwa\");\n};\n\n\n/***/ }),\n\n/***/ \"158b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = findMedian\n\nvar genPartition = __webpack_require__(\"8e58\")\n\nvar partitionStartLessThan = genPartition('lostart && boxes[ptr+axis] > x; \n --j, ptr-=elemSize) {\n //Swap\n var aPtr = ptr\n var bPtr = ptr+elemSize\n for(var k=0; k>> 1)\n var elemSize = 2*d\n var pivot = mid\n var value = boxes[elemSize*mid+axis]\n \n while(lo < hi) {\n if(hi - lo < PARTITION_THRESHOLD) {\n insertionSort(d, axis, lo, hi, boxes, ids)\n value = boxes[elemSize*mid+axis]\n break\n }\n \n //Select pivot using median-of-3\n var count = hi - lo\n var pivot0 = (Math.random()*count+lo)|0\n var value0 = boxes[elemSize*pivot0 + axis]\n var pivot1 = (Math.random()*count+lo)|0\n var value1 = boxes[elemSize*pivot1 + axis]\n var pivot2 = (Math.random()*count+lo)|0\n var value2 = boxes[elemSize*pivot2 + axis]\n if(value0 <= value1) {\n if(value2 >= value1) {\n pivot = pivot1\n value = value1\n } else if(value0 >= value2) {\n pivot = pivot0\n value = value0\n } else {\n pivot = pivot2\n value = value2\n }\n } else {\n if(value1 >= value2) {\n pivot = pivot1\n value = value1\n } else if(value2 >= value0) {\n pivot = pivot0\n value = value0\n } else {\n pivot = pivot2\n value = value2\n }\n }\n\n //Swap pivot to end of array\n var aPtr = elemSize * (hi-1)\n var bPtr = elemSize * pivot\n for(var i=0; i 0) {\n\t\t\tfor (var a = 0; a < facets; a++) {\n\t\t\t\tvar a1 = (a+1) % facets;\n\t\t\t\tverts.push(\n\t\t\t\t\tpreviousVerts[a],\n\t\t\t\t\tcurrentVerts[a],\n\t\t\t\t\tcurrentVerts[a1],\n\n\t\t\t\t\tcurrentVerts[a1],\n\t\t\t\t\tpreviousVerts[a1],\n\t\t\t\t\tpreviousVerts[a]\n\t\t\t\t);\n\t\t\t\tvectors.push(\n\t\t\t\t\tpreviousVector,\n\t\t\t\t\tcurrentVector,\n\t\t\t\t\tcurrentVector,\n\n\t\t\t\t\tcurrentVector,\n\t\t\t\t\tpreviousVector,\n\t\t\t\t\tpreviousVector\n\t\t\t\t);\n\t\t\t\tintensities.push(\n\t\t\t\t\tpreviousIntensity,\n\t\t\t\t\tcurrentIntensity,\n\t\t\t\t\tcurrentIntensity,\n\n\t\t\t\t\tcurrentIntensity,\n\t\t\t\t\tpreviousIntensity,\n\t\t\t\t\tpreviousIntensity\n\t\t\t\t);\n\n\t\t\t\tvar len = verts.length;\n\t\t\t\tfaces.push(\n\t\t\t\t\t[len-6, len-5, len-4],\n\t\t\t\t\t[len-3, len-2, len-1]\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tvar tmp1 = previousVerts;\n\t\tpreviousVerts = currentVerts;\n\t\tcurrentVerts = tmp1;\n\n\t\tvar tmp2 = previousVector;\n\t\tpreviousVector = currentVector;\n\t\tcurrentVector = tmp2;\n\n\t\tvar tmp3 = previousIntensity;\n\t\tpreviousIntensity = currentIntensity;\n\t\tcurrentIntensity = tmp3;\n\t}\n\treturn {\n\t\tpositions: verts,\n\t\tcells: faces,\n\t\tvectors: vectors,\n\t\tvertexIntensity: intensities\n\t};\n};\n\nvar createTubes = function(streams, colormap, maxDivergence, minDistance) {\n\n\tvar maxNorm = 0;\n\tfor (var i=0; i v) return i-1;\n }\n return i;\n};\n\nvar clamp = function(v, min, max) {\n\treturn v < min ? min : (v > max ? max : v);\n};\n\nvar sampleMeshgrid = function(point, vectorField, gridInfo) {\n\tvar vectors = vectorField.vectors;\n\tvar meshgrid = vectorField.meshgrid;\n\n\tvar x = point[0];\n\tvar y = point[1];\n\tvar z = point[2];\n\n\tvar w = meshgrid[0].length;\n\tvar h = meshgrid[1].length;\n\tvar d = meshgrid[2].length;\n\n\t// Find the index of the nearest smaller value in the meshgrid for each coordinate of (x,y,z).\n\t// The nearest smaller value index for x is the index x0 such that\n\t// meshgrid[0][x0] < x and for all x1 > x0, meshgrid[0][x1] >= x.\n\tvar x0 = findLastSmallerIndex(meshgrid[0], x);\n\tvar y0 = findLastSmallerIndex(meshgrid[1], y);\n\tvar z0 = findLastSmallerIndex(meshgrid[2], z);\n\n\t// Get the nearest larger meshgrid value indices.\n\t// From the above \"nearest smaller value\", we know that\n\t// meshgrid[0][x0] < x\n\t// meshgrid[0][x0+1] >= x\n\tvar x1 = x0 + 1;\n\tvar y1 = y0 + 1;\n\tvar z1 = z0 + 1;\n\n\tx0 = clamp(x0, 0, w-1);\n\tx1 = clamp(x1, 0, w-1);\n\ty0 = clamp(y0, 0, h-1);\n\ty1 = clamp(y1, 0, h-1);\n\tz0 = clamp(z0, 0, d-1);\n\tz1 = clamp(z1, 0, d-1);\n\n\t// Reject points outside the meshgrid, return a zero vector.\n\tif (x0 < 0 || y0 < 0 || z0 < 0 || x1 > w-1 || y1 > h-1 || z1 > d-1) {\n\t\treturn vec3.create();\n\t}\n\n\t// Normalize point coordinates to 0..1 scaling factor between x0 and x1.\n\tvar mX0 = meshgrid[0][x0];\n\tvar mX1 = meshgrid[0][x1];\n\tvar mY0 = meshgrid[1][y0];\n\tvar mY1 = meshgrid[1][y1];\n\tvar mZ0 = meshgrid[2][z0];\n\tvar mZ1 = meshgrid[2][z1];\n\tvar xf = (x - mX0) / (mX1 - mX0);\n\tvar yf = (y - mY0) / (mY1 - mY0);\n\tvar zf = (z - mZ0) / (mZ1 - mZ0);\n\n\tif (!isFinite(xf)) xf = 0.5;\n\tif (!isFinite(yf)) yf = 0.5;\n\tif (!isFinite(zf)) zf = 0.5;\n\n\tvar x0off;\n\tvar x1off;\n\tvar y0off;\n\tvar y1off;\n\tvar z0off;\n\tvar z1off;\n\n\tif(gridInfo.reversedX) {\n\t\tx0 = w - 1 - x0;\n\t\tx1 = w - 1 - x1;\n\t}\n\n\tif(gridInfo.reversedY) {\n\t\ty0 = h - 1 - y0;\n\t\ty1 = h - 1 - y1;\n\t}\n\n\tif(gridInfo.reversedZ) {\n\t\tz0 = d - 1 - z0;\n\t\tz1 = d - 1 - z1;\n\t}\n\n\tswitch(gridInfo.filled) {\n\t\tcase 5: // 'zyx'\n\t\t\tz0off = z0;\n\t\t\tz1off = z1;\n\t\t\ty0off = y0*d;\n\t\t\ty1off = y1*d;\n\t\t\tx0off = x0*d*h;\n\t\t\tx1off = x1*d*h;\n\t\t\tbreak;\n\n\t\tcase 4: // 'zxy'\n\t\t\tz0off = z0;\n\t\t\tz1off = z1;\n\t\t\tx0off = x0*d;\n\t\t\tx1off = x1*d;\n\t\t\ty0off = y0*d*w;\n\t\t\ty1off = y1*d*w;\n\t\t\tbreak;\n\n\t\tcase 3: // 'yzx'\n\t\t\ty0off = y0;\n\t\t\ty1off = y1;\n\t\t\tz0off = z0*h;\n\t\t\tz1off = z1*h;\n\t\t\tx0off = x0*h*d;\n\t\t\tx1off = x1*h*d;\n\t\t\tbreak;\n\n\t\tcase 2: // 'yxz'\n\t\t\ty0off = y0;\n\t\t\ty1off = y1;\n\t\t\tx0off = x0*h;\n\t\t\tx1off = x1*h;\n\t\t\tz0off = z0*h*w;\n\t\t\tz1off = z1*h*w;\n\t\t\tbreak;\n\n\t\tcase 1: // 'xzy'\n\t\t\tx0off = x0;\n\t\t\tx1off = x1;\n\t\t\tz0off = z0*w;\n\t\t\tz1off = z1*w;\n\t\t\ty0off = y0*w*d;\n\t\t\ty1off = y1*w*d;\n\t\t\tbreak;\n\n\t\tdefault: // case 0: // 'xyz'\n\t\t\tx0off = x0;\n\t\t\tx1off = x1;\n\t\t\ty0off = y0*w;\n\t\t\ty1off = y1*w;\n\t\t\tz0off = z0*w*h;\n\t\t\tz1off = z1*w*h;\n\t\t\tbreak;\n\t}\n\n\t// Sample data vectors around the (x,y,z) point.\n\tvar v000 = vectors[x0off + y0off + z0off];\n\tvar v001 = vectors[x0off + y0off + z1off];\n\tvar v010 = vectors[x0off + y1off + z0off];\n\tvar v011 = vectors[x0off + y1off + z1off];\n\tvar v100 = vectors[x1off + y0off + z0off];\n\tvar v101 = vectors[x1off + y0off + z1off];\n\tvar v110 = vectors[x1off + y1off + z0off];\n\tvar v111 = vectors[x1off + y1off + z1off];\n\n\tvar c00 = vec3.create();\n\tvar c01 = vec3.create();\n\tvar c10 = vec3.create();\n\tvar c11 = vec3.create();\n\n\tvec3.lerp(c00, v000, v100, xf);\n\tvec3.lerp(c01, v001, v101, xf);\n\tvec3.lerp(c10, v010, v110, xf);\n\tvec3.lerp(c11, v011, v111, xf);\n\n\tvar c0 = vec3.create();\n\tvar c1 = vec3.create();\n\n\tvec3.lerp(c0, c00, c10, yf);\n\tvec3.lerp(c1, c01, c11, yf);\n\n\tvar c = vec3.create();\n\n\tvec3.lerp(c, c0, c1, zf);\n\n\treturn c;\n};\n\n\nvar vabs = function(dst, v) {\n\tvar x = v[0];\n\tvar y = v[1];\n\tvar z = v[2];\n\tdst[0] = x < 0 ? -x : x;\n\tdst[1] = y < 0 ? -y : y;\n\tdst[2] = z < 0 ? -z : z;\n\treturn dst;\n};\n\nvar findMinSeparation = function(xs) {\n\tvar minSeparation = Infinity;\n\txs.sort(function(a, b) { return a - b; });\n\tvar len = xs.length;\n\tfor (var i=1; i maxX ||\n\t\t\ty < minY || y > maxY ||\n\t\t\tz < minZ || z > maxZ\n\t\t);\n\t};\n\n\tvar boundsSize = vec3.distance(bounds[0], bounds[1]);\n\tvar maxStepSize = 10 * boundsSize / maxLength;\n\tvar maxStepSizeSq = maxStepSize * maxStepSize;\n\n\tvar minDistance = 1;\n\tvar maxDivergence = 0; // For component-wise divergence vec3.create();\n\n\t// In case we need to do component-wise divergence visualization\n\t// var tmp = vec3.create();\n\n\tvar len = positions.length;\n\tif (len > 1) {\n\t\tminDistance = calculateMinPositionDistance(positions);\n\t}\n\n\tfor (var i = 0; i < len; i++) {\n\t\tvar p = vec3.create();\n\t\tvec3.copy(p, positions[i]);\n\n\t\tvar stream = [p];\n\t\tvar velocities = [];\n\t\tvar v = getVelocity(p);\n\t\tvar op = p;\n\t\tvelocities.push(v);\n\n\t\tvar divergences = [];\n\n\t\tvar dv = getDivergence(p, v);\n\t\tvar dvLength = vec3.length(dv);\n\t\tif (isFinite(dvLength) && dvLength > maxDivergence) {\n\t\t\tmaxDivergence = dvLength;\n\t\t}\n\t\t// In case we need to do component-wise divergence visualization\n\t\t// vec3.max(maxDivergence, maxDivergence, vabs(tmp, dv));\n\t\tdivergences.push(dvLength);\n\n\t\tstreams.push({points: stream, velocities: velocities, divergences: divergences});\n\n\t\tvar j = 0;\n\n\t\twhile (j < maxLength * 100 && stream.length < maxLength && inBounds(p)) {\n\t\t\tj++;\n\t\t\tvar np = vec3.clone(v);\n\t\t\tvar sqLen = vec3.squaredLength(np);\n\t\t\tif (sqLen === 0) {\n\t\t\t\tbreak;\n\t\t\t} else if (sqLen > maxStepSizeSq) {\n\t\t\t\tvec3.scale(np, np, maxStepSize / Math.sqrt(sqLen));\n\t\t\t}\n\t\t\tvec3.add(np, np, p);\n\n\t\t\tv = getVelocity(np);\n\n\t\t\tif (vec3.squaredDistance(op, np) - maxStepSizeSq > -0.0001 * maxStepSizeSq) {\n\t\t\t\tstream.push(np);\n\t\t\t\top = np;\n\t\t\t\tvelocities.push(v);\n\t\t\t\tvar dv = getDivergence(np, v);\n\t\t\t\tvar dvLength = vec3.length(dv);\n\t\t\t\tif (isFinite(dvLength) && dvLength > maxDivergence) {\n\t\t\t\t\tmaxDivergence = dvLength;\n\t\t\t\t}\n\t\t\t\t// In case we need to do component-wise divergence visualization\n\t\t\t\t//vec3.max(maxDivergence, maxDivergence, vabs(tmp, dv));\n\t\t\t\tdivergences.push(dvLength);\n\t\t\t}\n\n\t\t\tp = np;\n\t\t}\n\t}\n\n\tvar tubes = createTubes(streams, vectorField.colormap, maxDivergence, minDistance);\n\n\tif (absoluteTubeSize) {\n\t\ttubes.tubeScale = absoluteTubeSize;\n\t} else {\n\t\t// Avoid division by zero.\n\t\tif (maxDivergence === 0) {\n\t\t\tmaxDivergence = 1;\n\t\t}\n\t\ttubes.tubeScale = tubeSize * 0.5 * minDistance / maxDivergence;\n\t}\n\n\treturn tubes;\n};\n\nvar shaders = __webpack_require__(\"aee4\");\nvar createMesh = __webpack_require__(\"2969\").createMesh;\nmodule.exports.createTubeMesh = function(gl, params) {\n\treturn createMesh(gl, params, {\n\t\tshaders: shaders,\n\t\ttraceType: 'streamtube'\n\t});\n}\n\n\n/***/ }),\n\n/***/ \"16ef\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n attributes: __webpack_require__(\"7c39\"),\n layoutAttributes: __webpack_require__(\"36fc\"),\n supplyDefaults: __webpack_require__(\"49d8\"),\n crossTraceDefaults: __webpack_require__(\"abc9\").crossTraceDefaults,\n supplyLayoutDefaults: __webpack_require__(\"870c\"),\n calc: __webpack_require__(\"b8c0\"),\n crossTraceCalc: __webpack_require__(\"e9d4\"),\n plot: __webpack_require__(\"8298\"),\n style: __webpack_require__(\"c451\"),\n styleOnSelect: __webpack_require__(\"52e8\").styleOnSelect,\n hoverPoints: __webpack_require__(\"ca92\"),\n selectPoints: __webpack_require__(\"71b1\"),\n\n moduleType: 'trace',\n name: 'violin',\n basePlotModule: __webpack_require__(\"91cd\"),\n categories: ['cartesian', 'svg', 'symbols', 'oriented', 'box-violin', 'showLegend', 'violinLayout', 'zoomScale'],\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"1729\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Color = __webpack_require__(\"d115\");\n\n// defaults common to 'annotations' and 'annotations3d'\nmodule.exports = function handleAnnotationCommonDefaults(annIn, annOut, fullLayout, coerce) {\n coerce('opacity');\n var bgColor = coerce('bgcolor');\n\n var borderColor = coerce('bordercolor');\n var borderOpacity = Color.opacity(borderColor);\n\n coerce('borderpad');\n\n var borderWidth = coerce('borderwidth');\n var showArrow = coerce('showarrow');\n\n coerce('text', showArrow ? ' ' : fullLayout._dfltTitle.annotation);\n coerce('textangle');\n Lib.coerceFont(coerce, 'font', fullLayout.font);\n\n coerce('width');\n coerce('align');\n\n var h = coerce('height');\n if(h) coerce('valign');\n\n if(showArrow) {\n var arrowside = coerce('arrowside');\n var arrowhead;\n var arrowsize;\n\n if(arrowside.indexOf('end') !== -1) {\n arrowhead = coerce('arrowhead');\n arrowsize = coerce('arrowsize');\n }\n\n if(arrowside.indexOf('start') !== -1) {\n coerce('startarrowhead', arrowhead);\n coerce('startarrowsize', arrowsize);\n }\n coerce('arrowcolor', borderOpacity ? annOut.bordercolor : Color.defaultLine);\n coerce('arrowwidth', ((borderOpacity && borderWidth) || 1) * 2);\n coerce('standoff');\n coerce('startstandoff');\n }\n\n var hoverText = coerce('hovertext');\n var globalHoverLabel = fullLayout.hoverlabel || {};\n\n if(hoverText) {\n var hoverBG = coerce('hoverlabel.bgcolor', globalHoverLabel.bgcolor ||\n (Color.opacity(bgColor) ? Color.rgb(bgColor) : Color.defaultLine)\n );\n\n var hoverBorder = coerce('hoverlabel.bordercolor', globalHoverLabel.bordercolor ||\n Color.contrast(hoverBG)\n );\n\n Lib.coerceFont(coerce, 'hoverlabel.font', {\n family: globalHoverLabel.font.family,\n size: globalHoverLabel.font.size,\n color: globalHoverLabel.font.color || hoverBorder\n });\n }\n\n coerce('captureevents', !!hoverText);\n};\n\n\n/***/ }),\n\n/***/ \"1735\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n attributes: __webpack_require__(\"02ea\"),\n supplyDefaults: __webpack_require__(\"2ff0\"),\n colorbar: {\n min: 'cmin',\n max: 'cmax'\n },\n calc: __webpack_require__(\"0054\"),\n plot: __webpack_require__(\"baab\"),\n\n moduleType: 'trace',\n name: 'surface',\n basePlotModule: __webpack_require__(\"134c\"),\n categories: ['gl3d', '2dMap', 'showLegend'],\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"175e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction unique_pred(list, compare) {\n var ptr = 1\n , len = list.length\n , a=list[0], b=list[0]\n for(var i=1; i 1.0) {\n t = 1.0\n }\n var ti = 1.0 - t\n var n = a.length\n var r = new Array(n)\n for(var i=0; i 0) || (a > 0 && b < 0)) {\n var p = lerpW(s, b, t, a)\n pos.push(p)\n neg.push(p.slice())\n }\n if(b < 0) {\n neg.push(t.slice())\n } else if(b > 0) {\n pos.push(t.slice())\n } else {\n pos.push(t.slice())\n neg.push(t.slice())\n }\n a = b\n }\n return { positive: pos, negative: neg }\n}\n\nfunction positive(points, plane) {\n var pos = []\n var a = planeT(points[points.length-1], plane)\n for(var s=points[points.length-1], t=points[0], i=0; i 0) || (a > 0 && b < 0)) {\n pos.push(lerpW(s, b, t, a))\n }\n if(b >= 0) {\n pos.push(t.slice())\n }\n a = b\n }\n return pos\n}\n\nfunction negative(points, plane) {\n var neg = []\n var a = planeT(points[points.length-1], plane)\n for(var s=points[points.length-1], t=points[0], i=0; i 0) || (a > 0 && b < 0)) {\n neg.push(lerpW(s, b, t, a))\n }\n if(b <= 0) {\n neg.push(t.slice())\n }\n a = b\n }\n return neg\n}\n\n/***/ }),\n\n/***/ \"1793\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isFunction = __webpack_require__(\"6321\");\n\nvar classRe = /^\\s*class[\\s{/}]/, functionToString = Function.prototype.toString;\n\nmodule.exports = function (value) {\n\tif (!isFunction(value)) return false;\n\tif (classRe.test(functionToString.call(value))) return false;\n\treturn true;\n};\n\n\n/***/ }),\n\n/***/ \"17c2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $forEach = __webpack_require__(\"b727\").forEach;\nvar arrayMethodIsStrict = __webpack_require__(\"a640\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n\n\n/***/ }),\n\n/***/ \"182a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar getModuleCalcData = __webpack_require__(\"ad62\").getModuleCalcData;\nvar tablePlot = __webpack_require__(\"26dd\");\n\nvar TABLE = 'table';\n\nexports.name = TABLE;\n\nexports.plot = function(gd) {\n var calcData = getModuleCalcData(gd.calcdata, TABLE)[0];\n if(calcData.length) tablePlot(gd, calcData);\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadTable = (oldFullLayout._has && oldFullLayout._has(TABLE));\n var hasTable = (newFullLayout._has && newFullLayout._has(TABLE));\n\n if(hadTable && !hasTable) {\n oldFullLayout._paperdiv.selectAll('.table').remove();\n }\n};\n\n\n/***/ }),\n\n/***/ \"1876\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar polybool = __webpack_require__(\"2441\");\n\nvar Registry = __webpack_require__(\"371e\");\nvar Color = __webpack_require__(\"d115\");\nvar Fx = __webpack_require__(\"a5c4\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar polygon = __webpack_require__(\"b68b\");\nvar throttle = __webpack_require__(\"7df2\");\nvar makeEventData = __webpack_require__(\"c4c7\").makeEventData;\nvar getFromId = __webpack_require__(\"3c1c\").getFromId;\nvar clearGlCanvases = __webpack_require__(\"821b\");\n\nvar redrawReglTraces = __webpack_require__(\"a392\").redrawReglTraces;\n\nvar constants = __webpack_require__(\"d301\");\nvar MINSELECT = constants.MINSELECT;\n\nvar filteredPolygon = polygon.filter;\nvar polygonTester = polygon.tester;\n\nfunction getAxId(ax) { return ax._id; }\n\nfunction prepSelect(e, startX, startY, dragOptions, mode) {\n var gd = dragOptions.gd;\n var fullLayout = gd._fullLayout;\n var zoomLayer = fullLayout._zoomlayer;\n var dragBBox = dragOptions.element.getBoundingClientRect();\n var plotinfo = dragOptions.plotinfo;\n var xs = plotinfo.xaxis._offset;\n var ys = plotinfo.yaxis._offset;\n var x0 = startX - dragBBox.left;\n var y0 = startY - dragBBox.top;\n var x1 = x0;\n var y1 = y0;\n var path0 = 'M' + x0 + ',' + y0;\n var pw = dragOptions.xaxes[0]._length;\n var ph = dragOptions.yaxes[0]._length;\n var allAxes = dragOptions.xaxes.concat(dragOptions.yaxes);\n var subtract = e.altKey;\n\n var filterPoly, selectionTester, mergedPolygons, currentPolygon;\n var i, searchInfo, eventData;\n\n coerceSelectionsCache(e, gd, dragOptions);\n\n if(mode === 'lasso') {\n filterPoly = filteredPolygon([[x0, y0]], constants.BENDPX);\n }\n\n var outlines = zoomLayer.selectAll('path.select-outline-' + plotinfo.id).data([1, 2]);\n\n outlines.enter()\n .append('path')\n .attr('class', function(d) { return 'select-outline select-outline-' + d + ' select-outline-' + plotinfo.id; })\n .attr('transform', 'translate(' + xs + ', ' + ys + ')')\n .attr('d', path0 + 'Z');\n\n var corners = zoomLayer.append('path')\n .attr('class', 'zoombox-corners')\n .style({\n fill: Color.background,\n stroke: Color.defaultLine,\n 'stroke-width': 1\n })\n .attr('transform', 'translate(' + xs + ', ' + ys + ')')\n .attr('d', 'M0,0Z');\n\n\n var throttleID = fullLayout._uid + constants.SELECTID;\n var selection = [];\n\n // find the traces to search for selection points\n var searchTraces = determineSearchTraces(gd, dragOptions.xaxes,\n dragOptions.yaxes, dragOptions.subplot);\n\n // in v2 (once log ranges are fixed),\n // we'll be able to p2r here for all axis types\n function p2r(ax, v) {\n return ax.type === 'log' ? ax.p2d(v) : ax.p2r(v);\n }\n\n function axValue(ax) {\n var index = (ax._id.charAt(0) === 'y') ? 1 : 0;\n return function(v) { return p2r(ax, v[index]); };\n }\n\n function ascending(a, b) { return a - b; }\n\n // allow subplots to override fillRangeItems routine\n var fillRangeItems;\n\n if(plotinfo.fillRangeItems) {\n fillRangeItems = plotinfo.fillRangeItems;\n } else {\n if(mode === 'select') {\n fillRangeItems = function(eventData, poly) {\n var ranges = eventData.range = {};\n\n for(i = 0; i < allAxes.length; i++) {\n var ax = allAxes[i];\n var axLetter = ax._id.charAt(0);\n\n ranges[ax._id] = [\n p2r(ax, poly[axLetter + 'min']),\n p2r(ax, poly[axLetter + 'max'])\n ].sort(ascending);\n }\n };\n } else {\n fillRangeItems = function(eventData, poly, filterPoly) {\n var dataPts = eventData.lassoPoints = {};\n\n for(i = 0; i < allAxes.length; i++) {\n var ax = allAxes[i];\n dataPts[ax._id] = filterPoly.filtered.map(axValue(ax));\n }\n };\n }\n }\n\n dragOptions.moveFn = function(dx0, dy0) {\n x1 = Math.max(0, Math.min(pw, dx0 + x0));\n y1 = Math.max(0, Math.min(ph, dy0 + y0));\n\n var dx = Math.abs(x1 - x0);\n var dy = Math.abs(y1 - y0);\n\n if(mode === 'select') {\n var direction = fullLayout.selectdirection;\n\n if(fullLayout.selectdirection === 'any') {\n if(dy < Math.min(dx * 0.6, MINSELECT)) direction = 'h';\n else if(dx < Math.min(dy * 0.6, MINSELECT)) direction = 'v';\n else direction = 'd';\n } else {\n direction = fullLayout.selectdirection;\n }\n\n if(direction === 'h') {\n // horizontal motion: make a vertical box\n currentPolygon = [[x0, 0], [x0, ph], [x1, ph], [x1, 0]];\n currentPolygon.xmin = Math.min(x0, x1);\n currentPolygon.xmax = Math.max(x0, x1);\n currentPolygon.ymin = Math.min(0, ph);\n currentPolygon.ymax = Math.max(0, ph);\n // extras to guide users in keeping a straight selection\n corners.attr('d', 'M' + currentPolygon.xmin + ',' + (y0 - MINSELECT) +\n 'h-4v' + (2 * MINSELECT) + 'h4Z' +\n 'M' + (currentPolygon.xmax - 1) + ',' + (y0 - MINSELECT) +\n 'h4v' + (2 * MINSELECT) + 'h-4Z');\n } else if(direction === 'v') {\n // vertical motion: make a horizontal box\n currentPolygon = [[0, y0], [0, y1], [pw, y1], [pw, y0]];\n currentPolygon.xmin = Math.min(0, pw);\n currentPolygon.xmax = Math.max(0, pw);\n currentPolygon.ymin = Math.min(y0, y1);\n currentPolygon.ymax = Math.max(y0, y1);\n corners.attr('d', 'M' + (x0 - MINSELECT) + ',' + currentPolygon.ymin +\n 'v-4h' + (2 * MINSELECT) + 'v4Z' +\n 'M' + (x0 - MINSELECT) + ',' + (currentPolygon.ymax - 1) +\n 'v4h' + (2 * MINSELECT) + 'v-4Z');\n } else if(direction === 'd') {\n // diagonal motion\n currentPolygon = [[x0, y0], [x0, y1], [x1, y1], [x1, y0]];\n currentPolygon.xmin = Math.min(x0, x1);\n currentPolygon.xmax = Math.max(x0, x1);\n currentPolygon.ymin = Math.min(y0, y1);\n currentPolygon.ymax = Math.max(y0, y1);\n corners.attr('d', 'M0,0Z');\n }\n } else if(mode === 'lasso') {\n filterPoly.addPt([x1, y1]);\n currentPolygon = filterPoly.filtered;\n }\n\n // create outline & tester\n if(dragOptions.selectionDefs && dragOptions.selectionDefs.length) {\n mergedPolygons = mergePolygons(dragOptions.mergedPolygons, currentPolygon, subtract);\n currentPolygon.subtract = subtract;\n selectionTester = multiTester(dragOptions.selectionDefs.concat([currentPolygon]));\n } else {\n mergedPolygons = [currentPolygon];\n selectionTester = polygonTester(currentPolygon);\n }\n\n // draw selection\n drawSelection(mergedPolygons, outlines);\n\n\n throttle.throttle(\n throttleID,\n constants.SELECTDELAY,\n function() {\n selection = [];\n\n var thisSelection;\n var traceSelections = [];\n var traceSelection;\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n\n traceSelection = searchInfo._module.selectPoints(searchInfo, selectionTester);\n traceSelections.push(traceSelection);\n\n thisSelection = fillSelectionItem(traceSelection, searchInfo);\n\n if(selection.length) {\n for(var j = 0; j < thisSelection.length; j++) {\n selection.push(thisSelection[j]);\n }\n } else selection = thisSelection;\n }\n\n eventData = {points: selection};\n updateSelectedState(gd, searchTraces, eventData);\n fillRangeItems(eventData, currentPolygon, filterPoly);\n dragOptions.gd.emit('plotly_selecting', eventData);\n }\n );\n };\n\n dragOptions.clickFn = function(numClicks, evt) {\n var clickmode = fullLayout.clickmode;\n\n corners.remove();\n\n throttle.done(throttleID).then(function() {\n throttle.clear(throttleID);\n if(numClicks === 2) {\n // clear selection on doubleclick\n outlines.remove();\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n searchInfo._module.selectPoints(searchInfo, false);\n }\n\n updateSelectedState(gd, searchTraces);\n\n clearSelectionsCache(dragOptions);\n\n gd.emit('plotly_deselect', null);\n } else {\n if(clickmode.indexOf('select') > -1) {\n selectOnClick(evt, gd, dragOptions.xaxes, dragOptions.yaxes,\n dragOptions.subplot, dragOptions, outlines);\n }\n\n if(clickmode === 'event') {\n // TODO: remove in v2 - this was probably never intended to work as it does,\n // but in case anyone depends on it we don't want to break it now.\n // Note that click-to-select introduced pre v2 also emitts proper\n // event data when clickmode is having 'select' in its flag list.\n gd.emit('plotly_selected', undefined);\n }\n }\n\n Fx.click(gd, evt);\n }).catch(Lib.error);\n };\n\n dragOptions.doneFn = function() {\n corners.remove();\n\n throttle.done(throttleID).then(function() {\n throttle.clear(throttleID);\n dragOptions.gd.emit('plotly_selected', eventData);\n\n if(currentPolygon && dragOptions.selectionDefs) {\n // save last polygons\n currentPolygon.subtract = subtract;\n dragOptions.selectionDefs.push(currentPolygon);\n\n // we have to keep reference to arrays container\n dragOptions.mergedPolygons.length = 0;\n [].push.apply(dragOptions.mergedPolygons, mergedPolygons);\n }\n\n if(dragOptions.doneFnCompleted) {\n dragOptions.doneFnCompleted(selection);\n }\n }).catch(Lib.error);\n };\n}\n\nfunction selectOnClick(evt, gd, xAxes, yAxes, subplot, dragOptions, polygonOutlines) {\n var hoverData = gd._hoverdata;\n var clickmode = gd._fullLayout.clickmode;\n var sendEvents = clickmode.indexOf('event') > -1;\n var selection = [];\n var searchTraces, searchInfo, currentSelectionDef, selectionTester, traceSelection;\n var thisTracesSelection, pointOrBinSelected, subtract, eventData, i;\n\n if(isHoverDataSet(hoverData)) {\n coerceSelectionsCache(evt, gd, dragOptions);\n searchTraces = determineSearchTraces(gd, xAxes, yAxes, subplot);\n var clickedPtInfo = extractClickedPtInfo(hoverData, searchTraces);\n var isBinnedTrace = clickedPtInfo.pointNumbers.length > 0;\n\n\n // Note: potentially costly operation isPointOrBinSelected is\n // called as late as possible through the use of an assignment\n // in an if condition.\n if(isBinnedTrace ?\n isOnlyThisBinSelected(searchTraces, clickedPtInfo) :\n isOnlyOnePointSelected(searchTraces) &&\n (pointOrBinSelected = isPointOrBinSelected(clickedPtInfo))) {\n if(polygonOutlines) polygonOutlines.remove();\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n searchInfo._module.selectPoints(searchInfo, false);\n }\n\n updateSelectedState(gd, searchTraces);\n\n clearSelectionsCache(dragOptions);\n\n if(sendEvents) {\n gd.emit('plotly_deselect', null);\n }\n } else {\n subtract = evt.shiftKey &&\n (pointOrBinSelected !== undefined ?\n pointOrBinSelected :\n isPointOrBinSelected(clickedPtInfo));\n currentSelectionDef = newPointSelectionDef(clickedPtInfo.pointNumber, clickedPtInfo.searchInfo, subtract);\n\n var allSelectionDefs = dragOptions.selectionDefs.concat([currentSelectionDef]);\n selectionTester = multiTester(allSelectionDefs);\n\n for(i = 0; i < searchTraces.length; i++) {\n traceSelection = searchTraces[i]._module.selectPoints(searchTraces[i], selectionTester);\n thisTracesSelection = fillSelectionItem(traceSelection, searchTraces[i]);\n\n if(selection.length) {\n for(var j = 0; j < thisTracesSelection.length; j++) {\n selection.push(thisTracesSelection[j]);\n }\n } else selection = thisTracesSelection;\n }\n\n eventData = {points: selection};\n updateSelectedState(gd, searchTraces, eventData);\n\n if(currentSelectionDef && dragOptions) {\n dragOptions.selectionDefs.push(currentSelectionDef);\n }\n\n if(polygonOutlines) drawSelection(dragOptions.mergedPolygons, polygonOutlines);\n\n if(sendEvents) {\n gd.emit('plotly_selected', eventData);\n }\n }\n }\n}\n\n/**\n * Constructs a new point selection definition object.\n */\nfunction newPointSelectionDef(pointNumber, searchInfo, subtract) {\n return {\n pointNumber: pointNumber,\n searchInfo: searchInfo,\n subtract: subtract\n };\n}\n\nfunction isPointSelectionDef(o) {\n return 'pointNumber' in o && 'searchInfo' in o;\n}\n\n/*\n * Constructs a new point number tester.\n */\nfunction newPointNumTester(pointSelectionDef) {\n return {\n xmin: 0,\n xmax: 0,\n ymin: 0,\n ymax: 0,\n pts: [],\n contains: function(pt, omitFirstEdge, pointNumber, searchInfo) {\n var idxWantedTrace = pointSelectionDef.searchInfo.cd[0].trace._expandedIndex;\n var idxActualTrace = searchInfo.cd[0].trace._expandedIndex;\n return idxActualTrace === idxWantedTrace &&\n pointNumber === pointSelectionDef.pointNumber;\n },\n isRect: false,\n degenerate: false,\n subtract: pointSelectionDef.subtract\n };\n}\n\n/**\n * Wraps multiple selection testers.\n *\n * @param {Array} list - An array of selection testers.\n *\n * @return a selection tester object with a contains function\n * that can be called to evaluate a point against all wrapped\n * selection testers that were passed in list.\n */\nfunction multiTester(list) {\n var testers = [];\n var xmin = isPointSelectionDef(list[0]) ? 0 : list[0][0][0];\n var xmax = xmin;\n var ymin = isPointSelectionDef(list[0]) ? 0 : list[0][0][1];\n var ymax = ymin;\n\n for(var i = 0; i < list.length; i++) {\n if(isPointSelectionDef(list[i])) {\n testers.push(newPointNumTester(list[i]));\n } else {\n var tester = polygon.tester(list[i]);\n tester.subtract = list[i].subtract;\n testers.push(tester);\n xmin = Math.min(xmin, tester.xmin);\n xmax = Math.max(xmax, tester.xmax);\n ymin = Math.min(ymin, tester.ymin);\n ymax = Math.max(ymax, tester.ymax);\n }\n }\n\n /**\n * Tests if the given point is within this tester.\n *\n * @param {Array} pt - [0] is the x coordinate, [1] is the y coordinate of the point.\n * @param {*} arg - An optional parameter to pass down to wrapped testers.\n * @param {number} pointNumber - The point number of the point within the underlying data array.\n * @param {number} searchInfo - An object identifying the trace the point is contained in.\n *\n * @return {boolean} true if point is considered to be selected, false otherwise.\n */\n function contains(pt, arg, pointNumber, searchInfo) {\n var contained = false;\n for(var i = 0; i < testers.length; i++) {\n if(testers[i].contains(pt, arg, pointNumber, searchInfo)) {\n // if contained by subtract tester - exclude the point\n contained = testers[i].subtract === false;\n }\n }\n\n return contained;\n }\n\n return {\n xmin: xmin,\n xmax: xmax,\n ymin: ymin,\n ymax: ymax,\n pts: [],\n contains: contains,\n isRect: false,\n degenerate: false\n };\n}\n\nfunction coerceSelectionsCache(evt, gd, dragOptions) {\n var fullLayout = gd._fullLayout;\n var plotinfo = dragOptions.plotinfo;\n\n var selectingOnSameSubplot = (\n fullLayout._lastSelectedSubplot &&\n fullLayout._lastSelectedSubplot === plotinfo.id\n );\n var hasModifierKey = evt.shiftKey || evt.altKey;\n\n if(selectingOnSameSubplot && hasModifierKey &&\n (plotinfo.selection && plotinfo.selection.selectionDefs) && !dragOptions.selectionDefs) {\n // take over selection definitions from prev mode, if any\n dragOptions.selectionDefs = plotinfo.selection.selectionDefs;\n dragOptions.mergedPolygons = plotinfo.selection.mergedPolygons;\n } else if(!hasModifierKey || !plotinfo.selection) {\n clearSelectionsCache(dragOptions);\n }\n\n // clear selection outline when selecting a different subplot\n if(!selectingOnSameSubplot) {\n clearSelect(gd);\n fullLayout._lastSelectedSubplot = plotinfo.id;\n }\n}\n\nfunction clearSelectionsCache(dragOptions) {\n var plotinfo = dragOptions.plotinfo;\n\n plotinfo.selection = {};\n plotinfo.selection.selectionDefs = dragOptions.selectionDefs = [];\n plotinfo.selection.mergedPolygons = dragOptions.mergedPolygons = [];\n}\n\nfunction determineSearchTraces(gd, xAxes, yAxes, subplot) {\n var searchTraces = [];\n var xAxisIds = xAxes.map(getAxId);\n var yAxisIds = yAxes.map(getAxId);\n var cd, trace, i;\n\n for(i = 0; i < gd.calcdata.length; i++) {\n cd = gd.calcdata[i];\n trace = cd[0].trace;\n\n if(trace.visible !== true || !trace._module || !trace._module.selectPoints) continue;\n\n if(subplot && (trace.subplot === subplot || trace.geo === subplot)) {\n searchTraces.push(createSearchInfo(trace._module, cd, xAxes[0], yAxes[0]));\n } else if(\n trace.type === 'splom' &&\n // FIXME: make sure we don't have more than single axis for splom\n trace._xaxes[xAxisIds[0]] && trace._yaxes[yAxisIds[0]]\n ) {\n var info = createSearchInfo(trace._module, cd, xAxes[0], yAxes[0]);\n info.scene = gd._fullLayout._splomScenes[trace.uid];\n searchTraces.push(info);\n } else if(\n trace.type === 'sankey'\n ) {\n var sankeyInfo = createSearchInfo(trace._module, cd, xAxes[0], yAxes[0]);\n searchTraces.push(sankeyInfo);\n } else {\n if(xAxisIds.indexOf(trace.xaxis) === -1) continue;\n if(yAxisIds.indexOf(trace.yaxis) === -1) continue;\n\n searchTraces.push(createSearchInfo(trace._module, cd,\n getFromId(gd, trace.xaxis), getFromId(gd, trace.yaxis)));\n }\n }\n\n return searchTraces;\n\n function createSearchInfo(module, calcData, xaxis, yaxis) {\n return {\n _module: module,\n cd: calcData,\n xaxis: xaxis,\n yaxis: yaxis\n };\n }\n}\n\nfunction drawSelection(polygons, outlines) {\n var paths = [];\n var i, d;\n\n for(i = 0; i < polygons.length; i++) {\n var ppts = polygons[i];\n paths.push(ppts.join('L') + 'L' + ppts[0]);\n }\n\n d = polygons.length > 0 ?\n 'M' + paths.join('M') + 'Z' :\n 'M0,0Z';\n outlines.attr('d', d);\n}\n\nfunction isHoverDataSet(hoverData) {\n return hoverData &&\n Array.isArray(hoverData) &&\n hoverData[0].hoverOnBox !== true;\n}\n\nfunction extractClickedPtInfo(hoverData, searchTraces) {\n var hoverDatum = hoverData[0];\n var pointNumber = -1;\n var pointNumbers = [];\n var searchInfo, i;\n\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n if(hoverDatum.fullData._expandedIndex === searchInfo.cd[0].trace._expandedIndex) {\n // Special case for box (and violin)\n if(hoverDatum.hoverOnBox === true) {\n break;\n }\n\n // Hint: in some traces like histogram, one graphical element\n // doesn't correspond to one particular data point, but to\n // bins of data points. Thus, hoverDatum can have a binNumber\n // property instead of pointNumber.\n if(hoverDatum.pointNumber !== undefined) {\n pointNumber = hoverDatum.pointNumber;\n } else if(hoverDatum.binNumber !== undefined) {\n pointNumber = hoverDatum.binNumber;\n pointNumbers = hoverDatum.pointNumbers;\n }\n\n break;\n }\n }\n\n return {\n pointNumber: pointNumber,\n pointNumbers: pointNumbers,\n searchInfo: searchInfo\n };\n}\n\nfunction isPointOrBinSelected(clickedPtInfo) {\n var trace = clickedPtInfo.searchInfo.cd[0].trace;\n var ptNum = clickedPtInfo.pointNumber;\n var ptNums = clickedPtInfo.pointNumbers;\n var ptNumsSet = ptNums.length > 0;\n\n // When pointsNumbers is set (e.g. histogram's binning),\n // it is assumed that when the first point of\n // a bin is selected, all others are as well\n var ptNumToTest = ptNumsSet ? ptNums[0] : ptNum;\n\n // TODO potential performance improvement\n // Primarily we need this function to determine if a click adds\n // or subtracts from a selection.\n // In cases `trace.selectedpoints` is a huge array, indexOf\n // might be slow. One remedy would be to introduce a hash somewhere.\n return trace.selectedpoints ? trace.selectedpoints.indexOf(ptNumToTest) > -1 : false;\n}\n\nfunction isOnlyThisBinSelected(searchTraces, clickedPtInfo) {\n var tracesWithSelectedPts = [];\n var searchInfo, trace, isSameTrace, i;\n\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n if(searchInfo.cd[0].trace.selectedpoints && searchInfo.cd[0].trace.selectedpoints.length > 0) {\n tracesWithSelectedPts.push(searchInfo);\n }\n }\n\n if(tracesWithSelectedPts.length === 1) {\n isSameTrace = tracesWithSelectedPts[0] === clickedPtInfo.searchInfo;\n if(isSameTrace) {\n trace = clickedPtInfo.searchInfo.cd[0].trace;\n if(trace.selectedpoints.length === clickedPtInfo.pointNumbers.length) {\n for(i = 0; i < clickedPtInfo.pointNumbers.length; i++) {\n if(trace.selectedpoints.indexOf(clickedPtInfo.pointNumbers[i]) < 0) {\n return false;\n }\n }\n return true;\n }\n }\n }\n\n return false;\n}\n\nfunction isOnlyOnePointSelected(searchTraces) {\n var len = 0;\n var searchInfo, trace, i;\n\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n trace = searchInfo.cd[0].trace;\n if(trace.selectedpoints) {\n if(trace.selectedpoints.length > 1) return false;\n\n len += trace.selectedpoints.length;\n if(len > 1) return false;\n }\n }\n\n return len === 1;\n}\n\nfunction updateSelectedState(gd, searchTraces, eventData) {\n var i, searchInfo, cd, trace;\n\n // before anything else, update preGUI if necessary\n for(i = 0; i < searchTraces.length; i++) {\n var fullInputTrace = searchTraces[i].cd[0].trace._fullInput;\n var tracePreGUI = gd._fullLayout._tracePreGUI[fullInputTrace.uid] || {};\n if(tracePreGUI.selectedpoints === undefined) {\n tracePreGUI.selectedpoints = fullInputTrace._input.selectedpoints || null;\n }\n }\n\n if(eventData) {\n var pts = eventData.points || [];\n\n for(i = 0; i < searchTraces.length; i++) {\n trace = searchTraces[i].cd[0].trace;\n trace._input.selectedpoints = trace._fullInput.selectedpoints = [];\n if(trace._fullInput !== trace) trace.selectedpoints = [];\n }\n\n for(i = 0; i < pts.length; i++) {\n var pt = pts[i];\n var data = pt.data;\n var fullData = pt.fullData;\n\n if(pt.pointIndices) {\n [].push.apply(data.selectedpoints, pt.pointIndices);\n if(trace._fullInput !== trace) {\n [].push.apply(fullData.selectedpoints, pt.pointIndices);\n }\n } else {\n data.selectedpoints.push(pt.pointIndex);\n if(trace._fullInput !== trace) {\n fullData.selectedpoints.push(pt.pointIndex);\n }\n }\n }\n } else {\n for(i = 0; i < searchTraces.length; i++) {\n trace = searchTraces[i].cd[0].trace;\n delete trace.selectedpoints;\n delete trace._input.selectedpoints;\n if(trace._fullInput !== trace) {\n delete trace._fullInput.selectedpoints;\n }\n }\n }\n\n var hasRegl = false;\n\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n cd = searchInfo.cd;\n trace = cd[0].trace;\n\n if(Registry.traceIs(trace, 'regl')) {\n hasRegl = true;\n }\n\n var _module = searchInfo._module;\n var fn = _module.styleOnSelect || _module.style;\n if(fn) {\n fn(gd, cd, cd[0].node3);\n if(cd[0].nodeRangePlot3) fn(gd, cd, cd[0].nodeRangePlot3);\n }\n }\n\n if(hasRegl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n}\n\nfunction mergePolygons(list, poly, subtract) {\n var res;\n\n if(subtract) {\n res = polybool.difference({\n regions: list,\n inverted: false\n }, {\n regions: [poly],\n inverted: false\n });\n\n return res.regions;\n }\n\n res = polybool.union({\n regions: list,\n inverted: false\n }, {\n regions: [poly],\n inverted: false\n });\n\n return res.regions;\n}\n\nfunction fillSelectionItem(selection, searchInfo) {\n if(Array.isArray(selection)) {\n var cd = searchInfo.cd;\n var trace = searchInfo.cd[0].trace;\n\n for(var i = 0; i < selection.length; i++) {\n selection[i] = makeEventData(selection[i], trace, cd);\n }\n }\n\n return selection;\n}\n\n// until we get around to persistent selections, remove the outline\n// here. The selection itself will be removed when the plot redraws\n// at the end.\nfunction clearSelect(gd) {\n var fullLayout = gd._fullLayout || {};\n var zoomlayer = fullLayout._zoomlayer;\n if(zoomlayer) {\n zoomlayer.selectAll('.select-outline').remove();\n }\n}\n\nmodule.exports = {\n prepSelect: prepSelect,\n clearSelect: clearSelect,\n selectOnClick: selectOnClick\n};\n\n\n/***/ }),\n\n/***/ \"18a2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar rationalize = __webpack_require__(\"2195\")\n\nmodule.exports = div\n\nfunction div(a, b) {\n return rationalize(a[0].mul(b[1]), a[1].mul(b[0]))\n}\n\n\n/***/ }),\n\n/***/ \"18bb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar attributes = __webpack_require__(\"1c82\");\nvar handleDomainDefaults = __webpack_require__(\"81f0\").defaults;\nvar Template = __webpack_require__(\"a651\");\nvar handleArrayContainerDefaults = __webpack_require__(\"e5ac\");\nvar cn = __webpack_require__(\"49b4\");\n\nvar handleTickValueDefaults = __webpack_require__(\"d92f\");\nvar handleTickMarkDefaults = __webpack_require__(\"27e3\");\nvar handleTickLabelDefaults = __webpack_require__(\"5008\");\n\nfunction supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n handleDomainDefaults(traceOut, layout, coerce);\n\n // Mode\n coerce('mode');\n traceOut._hasNumber = traceOut.mode.indexOf('number') !== -1;\n traceOut._hasDelta = traceOut.mode.indexOf('delta') !== -1;\n traceOut._hasGauge = traceOut.mode.indexOf('gauge') !== -1;\n\n var value = coerce('value');\n traceOut._range = [0, (typeof value === 'number' ? 1.5 * value : 1)];\n\n // Number attributes\n var auto = new Array(2);\n var bignumberFontSize;\n if(traceOut._hasNumber) {\n coerce('number.valueformat');\n coerce('number.font.color', layout.font.color);\n coerce('number.font.family', layout.font.family);\n coerce('number.font.size');\n if(traceOut.number.font.size === undefined) {\n traceOut.number.font.size = cn.defaultNumberFontSize;\n auto[0] = true;\n }\n coerce('number.prefix');\n coerce('number.suffix');\n bignumberFontSize = traceOut.number.font.size;\n }\n\n // delta attributes\n var deltaFontSize;\n if(traceOut._hasDelta) {\n coerce('delta.font.color', layout.font.color);\n coerce('delta.font.family', layout.font.family);\n coerce('delta.font.size');\n if(traceOut.delta.font.size === undefined) {\n traceOut.delta.font.size = (traceOut._hasNumber ? 0.5 : 1) * (bignumberFontSize || cn.defaultNumberFontSize);\n auto[1] = true;\n }\n coerce('delta.reference', traceOut.value);\n coerce('delta.relative');\n coerce('delta.valueformat', traceOut.delta.relative ? '2%' : '');\n coerce('delta.increasing.symbol');\n coerce('delta.increasing.color');\n coerce('delta.decreasing.symbol');\n coerce('delta.decreasing.color');\n coerce('delta.position');\n deltaFontSize = traceOut.delta.font.size;\n }\n traceOut._scaleNumbers = (!traceOut._hasNumber || auto[0]) && (!traceOut._hasDelta || auto[1]) || false;\n\n // Title attributes\n coerce('title.font.color', layout.font.color);\n coerce('title.font.family', layout.font.family);\n coerce('title.font.size', 0.25 * (bignumberFontSize || deltaFontSize || cn.defaultNumberFontSize));\n coerce('title.text');\n\n // Gauge attributes\n var gaugeIn, gaugeOut, axisIn, axisOut;\n function coerceGauge(attr, dflt) {\n return Lib.coerce(gaugeIn, gaugeOut, attributes.gauge, attr, dflt);\n }\n function coerceGaugeAxis(attr, dflt) {\n return Lib.coerce(axisIn, axisOut, attributes.gauge.axis, attr, dflt);\n }\n\n if(traceOut._hasGauge) {\n gaugeIn = traceIn.gauge;\n if(!gaugeIn) gaugeIn = {};\n gaugeOut = Template.newContainer(traceOut, 'gauge');\n coerceGauge('shape');\n var isBullet = traceOut._isBullet = traceOut.gauge.shape === 'bullet';\n if(!isBullet) {\n coerce('title.align', 'center');\n }\n var isAngular = traceOut._isAngular = traceOut.gauge.shape === 'angular';\n if(!isAngular) {\n coerce('align', 'center');\n }\n\n // gauge background\n coerceGauge('bgcolor', layout.paper_bgcolor);\n coerceGauge('borderwidth');\n coerceGauge('bordercolor');\n\n // gauge bar indicator\n coerceGauge('bar.color');\n coerceGauge('bar.line.color');\n coerceGauge('bar.line.width');\n var defaultBarThickness = cn.valueThickness * (traceOut.gauge.shape === 'bullet' ? 0.5 : 1);\n coerceGauge('bar.thickness', defaultBarThickness);\n\n // Gauge steps\n handleArrayContainerDefaults(gaugeIn, gaugeOut, {\n name: 'steps',\n handleItemDefaults: stepDefaults\n });\n\n // Gauge threshold\n coerceGauge('threshold.value');\n coerceGauge('threshold.thickness');\n coerceGauge('threshold.line.width');\n coerceGauge('threshold.line.color');\n\n // Gauge axis\n axisIn = {};\n if(gaugeIn) axisIn = gaugeIn.axis || {};\n axisOut = Template.newContainer(gaugeOut, 'axis');\n coerceGaugeAxis('visible');\n traceOut._range = coerceGaugeAxis('range', traceOut._range);\n\n var opts = {outerTicks: true};\n handleTickValueDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear');\n handleTickLabelDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear', opts);\n handleTickMarkDefaults(axisIn, axisOut, coerceGaugeAxis, opts);\n } else {\n coerce('title.align', 'center');\n coerce('align', 'center');\n traceOut._isAngular = traceOut._isBullet = false;\n }\n\n // disable 1D transforms\n traceOut._length = null;\n}\n\nfunction stepDefaults(stepIn, stepOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(stepIn, stepOut, attributes.gauge.steps, attr, dflt);\n }\n\n coerce('color');\n coerce('line.color');\n coerce('line.width');\n coerce('range');\n coerce('thickness');\n}\n\nmodule.exports = {\n supplyDefaults: supplyDefaults\n};\n\n\n/***/ }),\n\n/***/ \"18ec\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar str = \"razdwatrzy\";\n\nmodule.exports = function () {\n\tif (typeof str.contains !== \"function\") return false;\n\treturn str.contains(\"dwa\") === true && str.contains(\"foo\") === false;\n};\n\n\n/***/ }),\n\n/***/ \"191c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar constants = __webpack_require__(\"de69\");\nvar subTypes = __webpack_require__(\"de81\");\nvar handleMarkerDefaults = __webpack_require__(\"5047\");\nvar handleLineDefaults = __webpack_require__(\"59be\");\nvar handleLineShapeDefaults = __webpack_require__(\"eb07\");\nvar handleTextDefaults = __webpack_require__(\"e9f7\");\nvar handleFillColorDefaults = __webpack_require__(\"3802\");\n\nvar attributes = __webpack_require__(\"ce65\");\n\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var a = coerce('a');\n var b = coerce('b');\n var c = coerce('c');\n var len;\n\n // allow any one array to be missing, len is the minimum length of those\n // present. Note that after coerce data_array's are either Arrays (which\n // are truthy even if empty) or undefined. As in scatter, an empty array\n // is different from undefined, because it can signify that this data is\n // not known yet but expected in the future\n if(a) {\n len = a.length;\n if(b) {\n len = Math.min(len, b.length);\n if(c) len = Math.min(len, c.length);\n } else if(c) len = Math.min(len, c.length);\n else len = 0;\n } else if(b && c) {\n len = Math.min(b.length, c.length);\n }\n\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._length = len;\n\n coerce('sum');\n\n coerce('text');\n coerce('hovertext');\n if(traceOut.hoveron !== 'fills') coerce('hovertemplate');\n\n var defaultMode = len < constants.PTS_LINESONLY ? 'lines+markers' : 'lines';\n coerce('mode', defaultMode);\n\n if(subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce('connectgaps');\n }\n\n if(subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});\n }\n\n if(subTypes.hasText(traceOut)) {\n coerce('texttemplate');\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n\n var dfltHoverOn = [];\n\n if(subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce('cliponaxis');\n coerce('marker.maxdisplayed');\n dfltHoverOn.push('points');\n }\n\n coerce('fill');\n if(traceOut.fill !== 'none') {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n\n if(traceOut.fill === 'tonext' || traceOut.fill === 'toself') {\n dfltHoverOn.push('fills');\n }\n coerce('hoveron', dfltHoverOn.join('+') || 'points');\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n};\n\n\n/***/ }),\n\n/***/ \"1936\":\n/***/ (function(module, exports) {\n\nmodule.exports = [\r\n // current\r\n 'precision'\r\n , 'highp'\r\n , 'mediump'\r\n , 'lowp'\r\n , 'attribute'\r\n , 'const'\r\n , 'uniform'\r\n , 'varying'\r\n , 'break'\r\n , 'continue'\r\n , 'do'\r\n , 'for'\r\n , 'while'\r\n , 'if'\r\n , 'else'\r\n , 'in'\r\n , 'out'\r\n , 'inout'\r\n , 'float'\r\n , 'int'\r\n , 'uint'\r\n , 'void'\r\n , 'bool'\r\n , 'true'\r\n , 'false'\r\n , 'discard'\r\n , 'return'\r\n , 'mat2'\r\n , 'mat3'\r\n , 'mat4'\r\n , 'vec2'\r\n , 'vec3'\r\n , 'vec4'\r\n , 'ivec2'\r\n , 'ivec3'\r\n , 'ivec4'\r\n , 'bvec2'\r\n , 'bvec3'\r\n , 'bvec4'\r\n , 'sampler1D'\r\n , 'sampler2D'\r\n , 'sampler3D'\r\n , 'samplerCube'\r\n , 'sampler1DShadow'\r\n , 'sampler2DShadow'\r\n , 'struct'\r\n\r\n // future\r\n , 'asm'\r\n , 'class'\r\n , 'union'\r\n , 'enum'\r\n , 'typedef'\r\n , 'template'\r\n , 'this'\r\n , 'packed'\r\n , 'goto'\r\n , 'switch'\r\n , 'default'\r\n , 'inline'\r\n , 'noinline'\r\n , 'volatile'\r\n , 'public'\r\n , 'static'\r\n , 'extern'\r\n , 'external'\r\n , 'interface'\r\n , 'long'\r\n , 'short'\r\n , 'double'\r\n , 'half'\r\n , 'fixed'\r\n , 'unsigned'\r\n , 'input'\r\n , 'output'\r\n , 'hvec2'\r\n , 'hvec3'\r\n , 'hvec4'\r\n , 'dvec2'\r\n , 'dvec3'\r\n , 'dvec4'\r\n , 'fvec2'\r\n , 'fvec3'\r\n , 'fvec4'\r\n , 'sampler2DRect'\r\n , 'sampler3DRect'\r\n , 'sampler2DRectShadow'\r\n , 'sizeof'\r\n , 'cast'\r\n , 'namespace'\r\n , 'using'\r\n]\r\n\n\n/***/ }),\n\n/***/ \"1978\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\n\n// used in the drawing step for 'scatter' and 'scattegeo' and\n// in the convert step for 'scatter3d'\nmodule.exports = function makeBubbleSizeFn(trace) {\n var marker = trace.marker;\n var sizeRef = marker.sizeref || 1;\n var sizeMin = marker.sizemin || 0;\n\n // for bubble charts, allow scaling the provided value linearly\n // and by area or diameter.\n // Note this only applies to the array-value sizes\n\n var baseFn = (marker.sizemode === 'area') ?\n function(v) { return Math.sqrt(v / sizeRef); } :\n function(v) { return v / sizeRef; };\n\n // TODO add support for position/negative bubbles?\n // TODO add 'sizeoffset' attribute?\n return function(v) {\n var baseSize = baseFn(v / 2);\n\n // don't show non-numeric and negative sizes\n return (isNumeric(baseSize) && (baseSize > 0)) ?\n Math.max(baseSize, sizeMin) :\n 0;\n };\n};\n\n\n/***/ }),\n\n/***/ \"1999\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Plots = __webpack_require__(\"bb71\");\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar Color = __webpack_require__(\"d115\");\nvar svgTextUtils = __webpack_require__(\"0379\");\nvar interactConstants = __webpack_require__(\"72a4\");\n\nvar OPPOSITE_SIDE = __webpack_require__(\"63dc\").OPPOSITE_SIDE;\nvar numStripRE = / [XY][0-9]* /;\n\n/**\n * Titles - (re)draw titles on the axes and plot:\n * @param {DOM element} gd - the graphDiv\n * @param {string} titleClass - the css class of this title\n * @param {object} options - how and what to draw\n * propContainer - the layout object containing `title` and `titlefont`\n * attributes that apply to this title\n * propName - the full name of the title property (for Plotly.relayout)\n * [traceIndex] - include only if this property applies to one trace\n * (such as a colorbar title) - then editing pipes to Plotly.restyle\n * instead of Plotly.relayout\n * placeholder - placeholder text for an empty editable title\n * [avoid] {object} - include if this title should move to avoid other elements\n * selection - d3 selection of elements to avoid\n * side - which direction to move if there is a conflict\n * [offsetLeft] - if these elements are subject to a translation\n * wrt the title element\n * [offsetTop]\n * attributes {object} - position and alignment attributes\n * x - pixels\n * y - pixels\n * text-anchor - start|middle|end\n * transform {object} - how to transform the title after positioning\n * rotate - degrees\n * offset - shift up/down in the rotated frame (unused?)\n * containerGroup - if an svg element already exists to hold this\n * title, include here. Otherwise it will go in fullLayout._infolayer\n * _meta {object (optional} - meta key-value to for title with\n * Lib.templateString, default to fullLayout._meta, if not provided\n *\n * @return {selection} d3 selection of title container group\n */\nfunction draw(gd, titleClass, options) {\n var cont = options.propContainer;\n var prop = options.propName;\n var placeholder = options.placeholder;\n var traceIndex = options.traceIndex;\n var avoid = options.avoid || {};\n var attributes = options.attributes;\n var transform = options.transform;\n var group = options.containerGroup;\n\n var fullLayout = gd._fullLayout;\n\n var opacity = 1;\n var isplaceholder = false;\n var title = cont.title;\n var txt = (title && title.text ? title.text : '').trim();\n\n var font = title && title.font ? title.font : {};\n var fontFamily = font.family;\n var fontSize = font.size;\n var fontColor = font.color;\n\n // only make this title editable if we positively identify its property\n // as one that has editing enabled.\n var editAttr;\n if(prop === 'title.text') editAttr = 'titleText';\n else if(prop.indexOf('axis') !== -1) editAttr = 'axisTitleText';\n else if(prop.indexOf('colorbar' !== -1)) editAttr = 'colorbarTitleText';\n var editable = gd._context.edits[editAttr];\n\n if(txt === '') opacity = 0;\n // look for placeholder text while stripping out numbers from eg X2, Y3\n // this is just for backward compatibility with the old version that had\n // \"Click to enter X2 title\" and may have gotten saved in some old plots,\n // we don't want this to show up when these are displayed.\n else if(txt.replace(numStripRE, ' % ') === placeholder.replace(numStripRE, ' % ')) {\n opacity = 0.2;\n isplaceholder = true;\n if(!editable) txt = '';\n }\n\n if(options._meta) {\n txt = Lib.templateString(txt, options._meta);\n } else if(fullLayout._meta) {\n txt = Lib.templateString(txt, fullLayout._meta);\n }\n\n var elShouldExist = txt || editable;\n\n if(!group) {\n group = Lib.ensureSingle(fullLayout._infolayer, 'g', 'g-' + titleClass);\n }\n\n var el = group.selectAll('text')\n .data(elShouldExist ? [0] : []);\n el.enter().append('text');\n el.text(txt)\n // this is hacky, but convertToTspans uses the class\n // to determine whether to rotate mathJax...\n // so we need to clear out any old class and put the\n // correct one (only relevant for colorbars, at least\n // for now) - ie don't use .classed\n .attr('class', titleClass);\n el.exit().remove();\n\n if(!elShouldExist) return group;\n\n function titleLayout(titleEl) {\n Lib.syncOrAsync([drawTitle, scootTitle], titleEl);\n }\n\n function drawTitle(titleEl) {\n var transformVal;\n\n if(transform) {\n transformVal = '';\n if(transform.rotate) {\n transformVal += 'rotate(' + [transform.rotate, attributes.x, attributes.y] + ')';\n }\n if(transform.offset) {\n transformVal += 'translate(0, ' + transform.offset + ')';\n }\n } else {\n transformVal = null;\n }\n\n titleEl.attr('transform', transformVal);\n\n titleEl.style({\n 'font-family': fontFamily,\n 'font-size': d3.round(fontSize, 2) + 'px',\n fill: Color.rgb(fontColor),\n opacity: opacity * Color.opacity(fontColor),\n 'font-weight': Plots.fontWeight\n })\n .attr(attributes)\n .call(svgTextUtils.convertToTspans, gd);\n\n return Plots.previousPromises(gd);\n }\n\n function scootTitle(titleElIn) {\n var titleGroup = d3.select(titleElIn.node().parentNode);\n\n if(avoid && avoid.selection && avoid.side && txt) {\n titleGroup.attr('transform', null);\n\n // move toward avoid.side (= left, right, top, bottom) if needed\n // can include pad (pixels, default 2)\n var backside = OPPOSITE_SIDE[avoid.side];\n var shiftSign = (avoid.side === 'left' || avoid.side === 'top') ? -1 : 1;\n var pad = isNumeric(avoid.pad) ? avoid.pad : 2;\n\n var titlebb = Drawing.bBox(titleGroup.node());\n var paperbb = {\n left: 0,\n top: 0,\n right: fullLayout.width,\n bottom: fullLayout.height\n };\n\n var maxshift = avoid.maxShift ||\n shiftSign * (paperbb[avoid.side] - titlebb[avoid.side]);\n var shift = 0;\n\n // Prevent the title going off the paper\n if(maxshift < 0) {\n shift = maxshift;\n } else {\n // so we don't have to offset each avoided element,\n // give the title the opposite offset\n var offsetLeft = avoid.offsetLeft || 0;\n var offsetTop = avoid.offsetTop || 0;\n titlebb.left -= offsetLeft;\n titlebb.right -= offsetLeft;\n titlebb.top -= offsetTop;\n titlebb.bottom -= offsetTop;\n\n // iterate over a set of elements (avoid.selection)\n // to avoid collisions with\n avoid.selection.each(function() {\n var avoidbb = Drawing.bBox(this);\n\n if(Lib.bBoxIntersect(titlebb, avoidbb, pad)) {\n shift = Math.max(shift, shiftSign * (\n avoidbb[avoid.side] - titlebb[backside]) + pad);\n }\n });\n shift = Math.min(maxshift, shift);\n }\n\n if(shift > 0 || maxshift < 0) {\n var shiftTemplate = {\n left: [-shift, 0],\n right: [shift, 0],\n top: [0, -shift],\n bottom: [0, shift]\n }[avoid.side];\n titleGroup.attr('transform', 'translate(' + shiftTemplate + ')');\n }\n }\n }\n\n el.call(titleLayout);\n\n function setPlaceholder() {\n opacity = 0;\n isplaceholder = true;\n el.text(placeholder)\n .on('mouseover.opacity', function() {\n d3.select(this).transition()\n .duration(interactConstants.SHOW_PLACEHOLDER).style('opacity', 1);\n })\n .on('mouseout.opacity', function() {\n d3.select(this).transition()\n .duration(interactConstants.HIDE_PLACEHOLDER).style('opacity', 0);\n });\n }\n\n if(editable) {\n if(!txt) setPlaceholder();\n else el.on('.opacity', null);\n\n el.call(svgTextUtils.makeEditable, {gd: gd})\n .on('edit', function(text) {\n if(traceIndex !== undefined) {\n Registry.call('_guiRestyle', gd, prop, text, traceIndex);\n } else {\n Registry.call('_guiRelayout', gd, prop, text);\n }\n })\n .on('cancel', function() {\n this.text(this.attr('data-unformatted'))\n .call(titleLayout);\n })\n .on('input', function(d) {\n this.text(d || ' ')\n .call(svgTextUtils.positionText, attributes.x, attributes.y);\n });\n }\n el.classed('js-placeholder', isplaceholder);\n\n return group;\n}\n\nmodule.exports = {\n draw: draw\n};\n\n\n/***/ }),\n\n/***/ \"19b2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * inspired by is-number \n * but significantly simplified and sped up by ignoring number and string constructors\n * ie these return false:\n * new Number(1)\n * new String('1')\n */\n\n\n\nvar allBlankCharCodes = __webpack_require__(\"e9b4\");\n\nmodule.exports = function(n) {\n var type = typeof n;\n if(type === 'string') {\n var original = n;\n n = +n;\n // whitespace strings cast to zero - filter them out\n if(n===0 && allBlankCharCodes(original)) return false;\n }\n else if(type !== 'number') return false;\n\n return n - n < 1;\n};\n\n\n/***/ }),\n\n/***/ \"19e1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar mod = __webpack_require__(\"d3dc\").mod;\n\n/*\n * look for intersection of two line segments\n * (1->2 and 3->4) - returns array [x,y] if they do, null if not\n */\nexports.segmentsIntersect = segmentsIntersect;\nfunction segmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4) {\n var a = x2 - x1;\n var b = x3 - x1;\n var c = x4 - x3;\n var d = y2 - y1;\n var e = y3 - y1;\n var f = y4 - y3;\n var det = a * f - c * d;\n // parallel lines? intersection is undefined\n // ignore the case where they are colinear\n if(det === 0) return null;\n var t = (b * f - c * e) / det;\n var u = (b * d - a * e) / det;\n // segments do not intersect?\n if(u < 0 || u > 1 || t < 0 || t > 1) return null;\n\n return {x: x1 + a * t, y: y1 + d * t};\n}\n\n/*\n * find the minimum distance between two line segments (1->2 and 3->4)\n */\nexports.segmentDistance = function segmentDistance(x1, y1, x2, y2, x3, y3, x4, y4) {\n if(segmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4)) return 0;\n\n // the two segments and their lengths squared\n var x12 = x2 - x1;\n var y12 = y2 - y1;\n var x34 = x4 - x3;\n var y34 = y4 - y3;\n var ll12 = x12 * x12 + y12 * y12;\n var ll34 = x34 * x34 + y34 * y34;\n\n // calculate distance squared, then take the sqrt at the very end\n var dist2 = Math.min(\n perpDistance2(x12, y12, ll12, x3 - x1, y3 - y1),\n perpDistance2(x12, y12, ll12, x4 - x1, y4 - y1),\n perpDistance2(x34, y34, ll34, x1 - x3, y1 - y3),\n perpDistance2(x34, y34, ll34, x2 - x3, y2 - y3)\n );\n\n return Math.sqrt(dist2);\n};\n\n/*\n * distance squared from segment ab to point c\n * [xab, yab] is the vector b-a\n * [xac, yac] is the vector c-a\n * llab is the length squared of (b-a), just to simplify calculation\n */\nfunction perpDistance2(xab, yab, llab, xac, yac) {\n var fcAB = (xac * xab + yac * yab);\n if(fcAB < 0) {\n // point c is closer to point a\n return xac * xac + yac * yac;\n } else if(fcAB > llab) {\n // point c is closer to point b\n var xbc = xac - xab;\n var ybc = yac - yab;\n return xbc * xbc + ybc * ybc;\n } else {\n // perpendicular distance is the shortest\n var crossProduct = xac * yab - yac * xab;\n return crossProduct * crossProduct / llab;\n }\n}\n\n// a very short-term cache for getTextLocation, just because\n// we're often looping over the same locations multiple times\n// invalidated as soon as we look at a different path\nvar locationCache, workingPath, workingTextWidth;\n\n// turn a path and position along it into x, y, and angle for the given text\nexports.getTextLocation = function getTextLocation(path, totalPathLen, positionOnPath, textWidth) {\n if(path !== workingPath || textWidth !== workingTextWidth) {\n locationCache = {};\n workingPath = path;\n workingTextWidth = textWidth;\n }\n if(locationCache[positionOnPath]) {\n return locationCache[positionOnPath];\n }\n\n // for the angle, use points on the path separated by the text width\n // even though due to curvature, the text will cover a bit more than that\n var p0 = path.getPointAtLength(mod(positionOnPath - textWidth / 2, totalPathLen));\n var p1 = path.getPointAtLength(mod(positionOnPath + textWidth / 2, totalPathLen));\n // note: atan handles 1/0 nicely\n var theta = Math.atan((p1.y - p0.y) / (p1.x - p0.x));\n // center the text at 2/3 of the center position plus 1/3 the p0/p1 midpoint\n // that's the average position of this segment, assuming it's roughly quadratic\n var pCenter = path.getPointAtLength(mod(positionOnPath, totalPathLen));\n var x = (pCenter.x * 4 + p0.x + p1.x) / 6;\n var y = (pCenter.y * 4 + p0.y + p1.y) / 6;\n\n var out = {x: x, y: y, theta: theta};\n locationCache[positionOnPath] = out;\n return out;\n};\n\nexports.clearLocationCache = function() {\n workingPath = null;\n};\n\n/*\n * Find the segment of `path` that's within the visible area\n * given by `bounds` {left, right, top, bottom}, to within a\n * precision of `buffer` px\n *\n * returns: undefined if nothing is visible, else object:\n * {\n * min: position where the path first enters bounds, or 0 if it\n * starts within bounds\n * max: position where the path last exits bounds, or the path length\n * if it finishes within bounds\n * len: max - min, ie the length of visible path\n * total: the total path length - just included so the caller doesn't\n * need to call path.getTotalLength() again\n * isClosed: true iff the start and end points of the path are both visible\n * and are at the same point\n * }\n *\n * Works by starting from either end and repeatedly finding the distance from\n * that point to the plot area, and if it's outside the plot, moving along the\n * path by that distance (because the plot must be at least that far away on\n * the path). Note that if a path enters, exits, and re-enters the plot, we\n * will not capture this behavior.\n */\nexports.getVisibleSegment = function getVisibleSegment(path, bounds, buffer) {\n var left = bounds.left;\n var right = bounds.right;\n var top = bounds.top;\n var bottom = bounds.bottom;\n\n var pMin = 0;\n var pTotal = path.getTotalLength();\n var pMax = pTotal;\n\n var pt0, ptTotal;\n\n function getDistToPlot(len) {\n var pt = path.getPointAtLength(len);\n\n // hold on to the start and end points for `closed`\n if(len === 0) pt0 = pt;\n else if(len === pTotal) ptTotal = pt;\n\n var dx = (pt.x < left) ? left - pt.x : (pt.x > right ? pt.x - right : 0);\n var dy = (pt.y < top) ? top - pt.y : (pt.y > bottom ? pt.y - bottom : 0);\n return Math.sqrt(dx * dx + dy * dy);\n }\n\n var distToPlot = getDistToPlot(pMin);\n while(distToPlot) {\n pMin += distToPlot + buffer;\n if(pMin > pMax) return;\n distToPlot = getDistToPlot(pMin);\n }\n\n distToPlot = getDistToPlot(pMax);\n while(distToPlot) {\n pMax -= distToPlot + buffer;\n if(pMin > pMax) return;\n distToPlot = getDistToPlot(pMax);\n }\n\n return {\n min: pMin,\n max: pMax,\n len: pMax - pMin,\n total: pTotal,\n isClosed: pMin === 0 && pMax === pTotal &&\n Math.abs(pt0.x - ptTotal.x) < 0.1 &&\n Math.abs(pt0.y - ptTotal.y) < 0.1\n };\n};\n\n/**\n * Find point on SVG path corresponding to a given constraint coordinate\n *\n * @param {SVGPathElement} path\n * @param {Number} val : constraint coordinate value\n * @param {String} coord : 'x' or 'y' the constraint coordinate\n * @param {Object} opts :\n * - {Number} pathLength : supply total path length before hand\n * - {Number} tolerance\n * - {Number} iterationLimit\n * @return {SVGPoint}\n */\nexports.findPointOnPath = function findPointOnPath(path, val, coord, opts) {\n opts = opts || {};\n\n var pathLength = opts.pathLength || path.getTotalLength();\n var tolerance = opts.tolerance || 1e-3;\n var iterationLimit = opts.iterationLimit || 30;\n\n // if path starts at a val greater than the path tail (like on vertical violins),\n // we must flip the sign of the computed diff.\n var mul = path.getPointAtLength(0)[coord] > path.getPointAtLength(pathLength)[coord] ? -1 : 1;\n\n var i = 0;\n var b0 = 0;\n var b1 = pathLength;\n var mid;\n var pt;\n var diff;\n\n while(i < iterationLimit) {\n mid = (b0 + b1) / 2;\n pt = path.getPointAtLength(mid);\n diff = pt[coord] - val;\n\n if(Math.abs(diff) < tolerance) {\n return pt;\n } else {\n if(mul * diff > 0) {\n b1 = mid;\n } else {\n b0 = mid;\n }\n i++;\n }\n }\n return pt;\n};\n\n\n/***/ }),\n\n/***/ \"1a06\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar handleXYZDefaults = __webpack_require__(\"41e0\");\nvar handleConstraintDefaults = __webpack_require__(\"86df\");\nvar handleContoursDefaults = __webpack_require__(\"d61b\");\nvar handleStyleDefaults = __webpack_require__(\"41f8\");\nvar attributes = __webpack_require__(\"43ef\");\n\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n function coerce2(attr) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr);\n }\n\n var len = handleXYZDefaults(traceIn, traceOut, coerce, layout);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n coerce('hoverongaps');\n\n var isConstraint = (coerce('contours.type') === 'constraint');\n coerce('connectgaps', Lib.isArray1D(traceOut.z));\n\n if(isConstraint) {\n handleConstraintDefaults(traceIn, traceOut, coerce, layout, defaultColor);\n } else {\n handleContoursDefaults(traceIn, traceOut, coerce, coerce2);\n handleStyleDefaults(traceIn, traceOut, coerce, layout);\n }\n};\n\n\n/***/ }),\n\n/***/ \"1a3f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar convexHull1d = __webpack_require__(\"1f25\")\nvar convexHull2d = __webpack_require__(\"8ff7\")\nvar convexHullnd = __webpack_require__(\"ca39\")\n\nmodule.exports = convexHull\n\nfunction convexHull(points) {\n var n = points.length\n if(n === 0) {\n return []\n } else if(n === 1) {\n return [[0]]\n }\n var d = points[0].length\n if(d === 0) {\n return []\n } else if(d === 1) {\n return convexHull1d(points)\n } else if(d === 2) {\n return convexHull2d(points)\n }\n return convexHullnd(points, d)\n}\n\n/***/ }),\n\n/***/ \"1a40\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar cleanNumber = Lib.cleanNumber;\nvar ms2DateTime = Lib.ms2DateTime;\nvar dateTime2ms = Lib.dateTime2ms;\nvar ensureNumber = Lib.ensureNumber;\nvar isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n\nvar numConstants = __webpack_require__(\"e806\");\nvar FP_SAFE = numConstants.FP_SAFE;\nvar BADNUM = numConstants.BADNUM;\nvar LOG_CLIP = numConstants.LOG_CLIP;\n\nvar constants = __webpack_require__(\"d301\");\nvar axisIds = __webpack_require__(\"3c1c\");\n\nfunction fromLog(v) {\n return Math.pow(10, v);\n}\n\nfunction isValidCategory(v) {\n return v !== null && v !== undefined;\n}\n\n/**\n * Define the conversion functions for an axis data is used in 5 ways:\n *\n * d: data, in whatever form it's provided\n * c: calcdata: turned into numbers, but not linearized\n * l: linearized - same as c except for log axes (and other nonlinear\n * mappings later?) this is used when we need to know if it's\n * *possible* to show some data on this axis, without caring about\n * the current range\n * p: pixel value - mapped to the screen with current size and zoom\n * r: ranges, tick0, and annotation positions match one of the above\n * but are handled differently for different types:\n * - linear and date: data format (d)\n * - category: calcdata format (c), and will stay that way because\n * the data format has no continuous mapping\n * - log: linearized (l) format\n * TODO: in v2.0 we plan to change it to data format. At that point\n * shapes will work the same way as ranges, tick0, and annotations\n * so they can use this conversion too.\n *\n * Creates/updates these conversion functions, and a few more utilities\n * like cleanRange, and makeCalcdata\n *\n * also clears the autotick constraints ._minDtick, ._forceTick0\n */\nmodule.exports = function setConvert(ax, fullLayout) {\n fullLayout = fullLayout || {};\n\n var axId = (ax._id || 'x');\n var axLetter = axId.charAt(0);\n\n function toLog(v, clip) {\n if(v > 0) return Math.log(v) / Math.LN10;\n\n else if(v <= 0 && clip && ax.range && ax.range.length === 2) {\n // clip NaN (ie past negative infinity) to LOG_CLIP axis\n // length past the negative edge\n var r0 = ax.range[0];\n var r1 = ax.range[1];\n return 0.5 * (r0 + r1 - 2 * LOG_CLIP * Math.abs(r0 - r1));\n } else return BADNUM;\n }\n\n /*\n * wrapped dateTime2ms that:\n * - accepts ms numbers for backward compatibility\n * - inserts a dummy arg so calendar is the 3rd arg (see notes below).\n * - defaults to ax.calendar\n */\n function dt2ms(v, _, calendar) {\n // NOTE: Changed this behavior: previously we took any numeric value\n // to be a ms, even if it was a string that could be a bare year.\n // Now we convert it as a date if at all possible, and only try\n // as (local) ms if that fails.\n var ms = dateTime2ms(v, calendar || ax.calendar);\n if(ms === BADNUM) {\n if(isNumeric(v)) {\n v = +v;\n // keep track of tenths of ms, that `new Date` will drop\n // same logic as in Lib.ms2DateTime\n var msecTenths = Math.floor(Lib.mod(v + 0.05, 1) * 10);\n var msRounded = Math.round(v - msecTenths / 10);\n ms = dateTime2ms(new Date(msRounded)) + msecTenths / 10;\n } else return BADNUM;\n }\n return ms;\n }\n\n // wrapped ms2DateTime to insert default ax.calendar\n function ms2dt(v, r, calendar) {\n return ms2DateTime(v, r, calendar || ax.calendar);\n }\n\n function getCategoryName(v) {\n return ax._categories[Math.round(v)];\n }\n\n /*\n * setCategoryIndex: return the index of category v,\n * inserting it in the list if it's not already there\n *\n * this will enter the categories in the order it\n * encounters them, ie all the categories from the\n * first data set, then all the ones from the second\n * that aren't in the first etc.\n *\n * it is assumed that this function is being invoked in the\n * already sorted category order; otherwise there would be\n * a disconnect between the array and the index returned\n */\n function setCategoryIndex(v) {\n if(isValidCategory(v)) {\n if(ax._categoriesMap === undefined) {\n ax._categoriesMap = {};\n }\n\n if(ax._categoriesMap[v] !== undefined) {\n return ax._categoriesMap[v];\n } else {\n ax._categories.push(typeof v === 'number' ? String(v) : v);\n\n var curLength = ax._categories.length - 1;\n ax._categoriesMap[v] = curLength;\n\n return curLength;\n }\n }\n return BADNUM;\n }\n\n function setMultiCategoryIndex(arrayIn, len) {\n var arrayOut = new Array(len);\n\n for(var i = 0; i < len; i++) {\n var v0 = (arrayIn[0] || [])[i];\n var v1 = (arrayIn[1] || [])[i];\n arrayOut[i] = getCategoryIndex([v0, v1]);\n }\n\n return arrayOut;\n }\n\n function getCategoryIndex(v) {\n if(ax._categoriesMap) {\n return ax._categoriesMap[v];\n }\n }\n\n function getCategoryPosition(v) {\n // d2l/d2c variant that that won't add categories but will also\n // allow numbers to be mapped to the linearized axis positions\n var index = getCategoryIndex(v);\n if(index !== undefined) return index;\n if(isNumeric(v)) return +v;\n }\n\n function l2p(v) {\n if(!isNumeric(v)) return BADNUM;\n\n // include 2 fractional digits on pixel, for PDF zooming etc\n return d3.round(ax._b + ax._m * v, 2);\n }\n\n function p2l(px) { return (px - ax._b) / ax._m; }\n\n // conversions among c/l/p are fairly simple - do them together for all axis types\n ax.c2l = (ax.type === 'log') ? toLog : ensureNumber;\n ax.l2c = (ax.type === 'log') ? fromLog : ensureNumber;\n\n ax.l2p = l2p;\n ax.p2l = p2l;\n\n ax.c2p = (ax.type === 'log') ? function(v, clip) { return l2p(toLog(v, clip)); } : l2p;\n ax.p2c = (ax.type === 'log') ? function(px) { return fromLog(p2l(px)); } : p2l;\n\n /*\n * now type-specific conversions for **ALL** other combinations\n * they're all written out, instead of being combinations of each other, for\n * both clarity and speed.\n */\n if(['linear', '-'].indexOf(ax.type) !== -1) {\n // all are data vals, but d and r need cleaning\n ax.d2r = ax.r2d = ax.d2c = ax.r2c = ax.d2l = ax.r2l = cleanNumber;\n ax.c2d = ax.c2r = ax.l2d = ax.l2r = ensureNumber;\n\n ax.d2p = ax.r2p = function(v) { return ax.l2p(cleanNumber(v)); };\n ax.p2d = ax.p2r = p2l;\n\n ax.cleanPos = ensureNumber;\n } else if(ax.type === 'log') {\n // d and c are data vals, r and l are logged (but d and r need cleaning)\n ax.d2r = ax.d2l = function(v, clip) { return toLog(cleanNumber(v), clip); };\n ax.r2d = ax.r2c = function(v) { return fromLog(cleanNumber(v)); };\n\n ax.d2c = ax.r2l = cleanNumber;\n ax.c2d = ax.l2r = ensureNumber;\n\n ax.c2r = toLog;\n ax.l2d = fromLog;\n\n ax.d2p = function(v, clip) { return ax.l2p(ax.d2r(v, clip)); };\n ax.p2d = function(px) { return fromLog(p2l(px)); };\n\n ax.r2p = function(v) { return ax.l2p(cleanNumber(v)); };\n ax.p2r = p2l;\n\n ax.cleanPos = ensureNumber;\n } else if(ax.type === 'date') {\n // r and d are date strings, l and c are ms\n\n /*\n * Any of these functions with r and d on either side, calendar is the\n * **3rd** argument. log has reserved the second argument.\n *\n * Unless you need the special behavior of the second arg (ms2DateTime\n * uses this to limit precision, toLog uses true to clip negatives\n * to offscreen low rather than undefined), it's safe to pass 0.\n */\n ax.d2r = ax.r2d = Lib.identity;\n\n ax.d2c = ax.r2c = ax.d2l = ax.r2l = dt2ms;\n ax.c2d = ax.c2r = ax.l2d = ax.l2r = ms2dt;\n\n ax.d2p = ax.r2p = function(v, _, calendar) { return ax.l2p(dt2ms(v, 0, calendar)); };\n ax.p2d = ax.p2r = function(px, r, calendar) { return ms2dt(p2l(px), r, calendar); };\n\n ax.cleanPos = function(v) { return Lib.cleanDate(v, BADNUM, ax.calendar); };\n } else if(ax.type === 'category') {\n // d is categories (string)\n // c and l are indices (numbers)\n // r is categories or numbers\n\n ax.d2c = ax.d2l = setCategoryIndex;\n ax.r2d = ax.c2d = ax.l2d = getCategoryName;\n\n ax.d2r = ax.d2l_noadd = getCategoryPosition;\n\n ax.r2c = function(v) {\n var index = getCategoryPosition(v);\n return index !== undefined ? index : ax.fraction2r(0.5);\n };\n\n ax.l2r = ax.c2r = ensureNumber;\n ax.r2l = getCategoryPosition;\n\n ax.d2p = function(v) { return ax.l2p(ax.r2c(v)); };\n ax.p2d = function(px) { return getCategoryName(p2l(px)); };\n ax.r2p = ax.d2p;\n ax.p2r = p2l;\n\n ax.cleanPos = function(v) {\n if(typeof v === 'string' && v !== '') return v;\n return ensureNumber(v);\n };\n } else if(ax.type === 'multicategory') {\n // N.B. multicategory axes don't define d2c and d2l,\n // as 'data-to-calcdata' conversion needs to take into\n // account all data array items as in ax.makeCalcdata.\n\n ax.r2d = ax.c2d = ax.l2d = getCategoryName;\n ax.d2r = ax.d2l_noadd = getCategoryPosition;\n\n ax.r2c = function(v) {\n var index = getCategoryPosition(v);\n return index !== undefined ? index : ax.fraction2r(0.5);\n };\n\n ax.r2c_just_indices = getCategoryIndex;\n\n ax.l2r = ax.c2r = ensureNumber;\n ax.r2l = getCategoryPosition;\n\n ax.d2p = function(v) { return ax.l2p(ax.r2c(v)); };\n ax.p2d = function(px) { return getCategoryName(p2l(px)); };\n ax.r2p = ax.d2p;\n ax.p2r = p2l;\n\n ax.cleanPos = function(v) {\n if(Array.isArray(v) || (typeof v === 'string' && v !== '')) return v;\n return ensureNumber(v);\n };\n\n ax.setupMultiCategory = function(fullData) {\n var traceIndices = ax._traceIndices;\n var i, j;\n\n var matchGroups = fullLayout._axisMatchGroups;\n if(matchGroups && matchGroups.length && ax._categories.length === 0) {\n for(i = 0; i < matchGroups.length; i++) {\n var group = matchGroups[i];\n if(group[axId]) {\n for(var axId2 in group) {\n if(axId2 !== axId) {\n var ax2 = fullLayout[axisIds.id2name(axId2)];\n traceIndices = traceIndices.concat(ax2._traceIndices);\n }\n }\n }\n }\n }\n\n // [ [cnt, {$cat: index}], for 1,2 ]\n var seen = [[0, {}], [0, {}]];\n // [ [arrayIn[0][i], arrayIn[1][i]], for i .. N ]\n var list = [];\n\n for(i = 0; i < traceIndices.length; i++) {\n var trace = fullData[traceIndices[i]];\n\n if(axLetter in trace) {\n var arrayIn = trace[axLetter];\n var len = trace._length || Lib.minRowLength(arrayIn);\n\n if(isArrayOrTypedArray(arrayIn[0]) && isArrayOrTypedArray(arrayIn[1])) {\n for(j = 0; j < len; j++) {\n var v0 = arrayIn[0][j];\n var v1 = arrayIn[1][j];\n\n if(isValidCategory(v0) && isValidCategory(v1)) {\n list.push([v0, v1]);\n\n if(!(v0 in seen[0][1])) {\n seen[0][1][v0] = seen[0][0]++;\n }\n if(!(v1 in seen[1][1])) {\n seen[1][1][v1] = seen[1][0]++;\n }\n }\n }\n }\n }\n }\n\n list.sort(function(a, b) {\n var ind0 = seen[0][1];\n var d = ind0[a[0]] - ind0[b[0]];\n if(d) return d;\n\n var ind1 = seen[1][1];\n return ind1[a[1]] - ind1[b[1]];\n });\n\n for(i = 0; i < list.length; i++) {\n setCategoryIndex(list[i]);\n }\n };\n }\n\n // find the range value at the specified (linear) fraction of the axis\n ax.fraction2r = function(v) {\n var rl0 = ax.r2l(ax.range[0]);\n var rl1 = ax.r2l(ax.range[1]);\n return ax.l2r(rl0 + v * (rl1 - rl0));\n };\n\n // find the fraction of the range at the specified range value\n ax.r2fraction = function(v) {\n var rl0 = ax.r2l(ax.range[0]);\n var rl1 = ax.r2l(ax.range[1]);\n return (ax.r2l(v) - rl0) / (rl1 - rl0);\n };\n\n /*\n * cleanRange: make sure range is a couplet of valid & distinct values\n * keep numbers away from the limits of floating point numbers,\n * and dates away from the ends of our date system (+/- 9999 years)\n *\n * optional param rangeAttr: operate on a different attribute, like\n * ax._r, rather than ax.range\n */\n ax.cleanRange = function(rangeAttr, opts) {\n if(!opts) opts = {};\n if(!rangeAttr) rangeAttr = 'range';\n\n var range = Lib.nestedProperty(ax, rangeAttr).get();\n var i, dflt;\n\n if(ax.type === 'date') dflt = Lib.dfltRange(ax.calendar);\n else if(axLetter === 'y') dflt = constants.DFLTRANGEY;\n else dflt = opts.dfltRange || constants.DFLTRANGEX;\n\n // make sure we don't later mutate the defaults\n dflt = dflt.slice();\n\n if(ax.rangemode === 'tozero' || ax.rangemode === 'nonnegative') {\n dflt[0] = 0;\n }\n\n if(!range || range.length !== 2) {\n Lib.nestedProperty(ax, rangeAttr).set(dflt);\n return;\n }\n\n if(ax.type === 'date' && !ax.autorange) {\n // check if milliseconds or js date objects are provided for range\n // and convert to date strings\n range[0] = Lib.cleanDate(range[0], BADNUM, ax.calendar);\n range[1] = Lib.cleanDate(range[1], BADNUM, ax.calendar);\n }\n\n for(i = 0; i < 2; i++) {\n if(ax.type === 'date') {\n if(!Lib.isDateTime(range[i], ax.calendar)) {\n ax[rangeAttr] = dflt;\n break;\n }\n\n if(ax.r2l(range[0]) === ax.r2l(range[1])) {\n // split by +/- 1 second\n var linCenter = Lib.constrain(ax.r2l(range[0]),\n Lib.MIN_MS + 1000, Lib.MAX_MS - 1000);\n range[0] = ax.l2r(linCenter - 1000);\n range[1] = ax.l2r(linCenter + 1000);\n break;\n }\n } else {\n if(!isNumeric(range[i])) {\n if(isNumeric(range[1 - i])) {\n range[i] = range[1 - i] * (i ? 10 : 0.1);\n } else {\n ax[rangeAttr] = dflt;\n break;\n }\n }\n\n if(range[i] < -FP_SAFE) range[i] = -FP_SAFE;\n else if(range[i] > FP_SAFE) range[i] = FP_SAFE;\n\n if(range[0] === range[1]) {\n // somewhat arbitrary: split by 1 or 1ppm, whichever is bigger\n var inc = Math.max(1, Math.abs(range[0] * 1e-6));\n range[0] -= inc;\n range[1] += inc;\n }\n }\n }\n };\n\n // set scaling to pixels\n ax.setScale = function(usePrivateRange) {\n var gs = fullLayout._size;\n\n // make sure we have a domain (pull it in from the axis\n // this one is overlaying if necessary)\n if(ax.overlaying) {\n var ax2 = axisIds.getFromId({ _fullLayout: fullLayout }, ax.overlaying);\n ax.domain = ax2.domain;\n }\n\n // While transitions are occuring, occurring, we get a double-transform\n // issue if we transform the drawn layer *and* use the new axis range to\n // draw the data. This allows us to construct setConvert using the pre-\n // interaction values of the range:\n var rangeAttr = (usePrivateRange && ax._r) ? '_r' : 'range';\n var calendar = ax.calendar;\n ax.cleanRange(rangeAttr);\n\n var rl0 = ax.r2l(ax[rangeAttr][0], calendar);\n var rl1 = ax.r2l(ax[rangeAttr][1], calendar);\n\n if(axLetter === 'y') {\n ax._offset = gs.t + (1 - ax.domain[1]) * gs.h;\n ax._length = gs.h * (ax.domain[1] - ax.domain[0]);\n ax._m = ax._length / (rl0 - rl1);\n ax._b = -ax._m * rl1;\n } else {\n ax._offset = gs.l + ax.domain[0] * gs.w;\n ax._length = gs.w * (ax.domain[1] - ax.domain[0]);\n ax._m = ax._length / (rl1 - rl0);\n ax._b = -ax._m * rl0;\n }\n\n if(!isFinite(ax._m) || !isFinite(ax._b) || ax._length < 0) {\n fullLayout._replotting = false;\n throw new Error('Something went wrong with axis scaling');\n }\n };\n\n // makeCalcdata: takes an x or y array and converts it\n // to a position on the axis object \"ax\"\n // inputs:\n // trace - a data object from gd.data\n // axLetter - a string, either 'x' or 'y', for which item\n // to convert (TODO: is this now always the same as\n // the first letter of ax._id?)\n // in case the expected data isn't there, make a list of\n // integers based on the opposite data\n ax.makeCalcdata = function(trace, axLetter) {\n var arrayIn, arrayOut, i, len;\n\n var axType = ax.type;\n var cal = axType === 'date' && trace[axLetter + 'calendar'];\n\n if(axLetter in trace) {\n arrayIn = trace[axLetter];\n len = trace._length || Lib.minRowLength(arrayIn);\n\n if(Lib.isTypedArray(arrayIn) && (axType === 'linear' || axType === 'log')) {\n if(len === arrayIn.length) {\n return arrayIn;\n } else if(arrayIn.subarray) {\n return arrayIn.subarray(0, len);\n }\n }\n\n if(axType === 'multicategory') {\n return setMultiCategoryIndex(arrayIn, len);\n }\n\n arrayOut = new Array(len);\n for(i = 0; i < len; i++) {\n arrayOut[i] = ax.d2c(arrayIn[i], 0, cal);\n }\n } else {\n var v0 = ((axLetter + '0') in trace) ? ax.d2c(trace[axLetter + '0'], 0, cal) : 0;\n var dv = (trace['d' + axLetter]) ? Number(trace['d' + axLetter]) : 1;\n\n // the opposing data, for size if we have x and dx etc\n arrayIn = trace[{x: 'y', y: 'x'}[axLetter]];\n len = trace._length || arrayIn.length;\n arrayOut = new Array(len);\n\n for(i = 0; i < len; i++) {\n arrayOut[i] = v0 + i * dv;\n }\n }\n\n return arrayOut;\n };\n\n ax.isValidRange = function(range) {\n return (\n Array.isArray(range) &&\n range.length === 2 &&\n isNumeric(ax.r2l(range[0])) &&\n isNumeric(ax.r2l(range[1]))\n );\n };\n\n ax.isPtWithinRange = function(d, calendar) {\n var coord = ax.c2l(d[axLetter], null, calendar);\n var r0 = ax.r2l(ax.range[0]);\n var r1 = ax.r2l(ax.range[1]);\n\n if(r0 < r1) {\n return r0 <= coord && coord <= r1;\n } else {\n // Reversed axis case.\n return r1 <= coord && coord <= r0;\n }\n };\n\n // should skip if not category nor multicategory\n ax.clearCalc = function() {\n var emptyCategories = function() {\n ax._categories = [];\n ax._categoriesMap = {};\n };\n\n var matchGroups = fullLayout._axisMatchGroups;\n\n if(matchGroups && matchGroups.length) {\n var found = false;\n\n for(var i = 0; i < matchGroups.length; i++) {\n var group = matchGroups[i];\n\n if(group[axId]) {\n found = true;\n var categories = null;\n var categoriesMap = null;\n\n for(var axId2 in group) {\n var ax2 = fullLayout[axisIds.id2name(axId2)];\n if(ax2._categories) {\n categories = ax2._categories;\n categoriesMap = ax2._categoriesMap;\n break;\n }\n }\n\n if(categories && categoriesMap) {\n ax._categories = categories;\n ax._categoriesMap = categoriesMap;\n } else {\n emptyCategories();\n }\n break;\n }\n }\n if(!found) emptyCategories();\n } else {\n emptyCategories();\n }\n\n if(ax._initialCategories) {\n for(var j = 0; j < ax._initialCategories.length; j++) {\n setCategoryIndex(ax._initialCategories[j]);\n }\n }\n };\n\n // sort the axis (and all the matching ones) by _initialCategories\n // returns the indices of the traces affected by the reordering\n ax.sortByInitialCategories = function() {\n var affectedTraces = [];\n var emptyCategories = function() {\n ax._categories = [];\n ax._categoriesMap = {};\n };\n\n emptyCategories();\n\n if(ax._initialCategories) {\n for(var j = 0; j < ax._initialCategories.length; j++) {\n setCategoryIndex(ax._initialCategories[j]);\n }\n }\n\n affectedTraces = affectedTraces.concat(ax._traceIndices);\n\n // Propagate to matching axes\n var group = ax._matchGroup;\n for(var axId2 in group) {\n if(axId === axId2) continue;\n var ax2 = fullLayout[axisIds.id2name(axId2)];\n ax2._categories = ax._categories;\n ax2._categoriesMap = ax._categoriesMap;\n affectedTraces = affectedTraces.concat(ax2._traceIndices);\n }\n return affectedTraces;\n };\n\n // Propagate localization into the axis so that\n // methods in Axes can use it w/o having to pass fullLayout\n // Default (non-d3) number formatting uses separators directly\n // dates and d3-formatted numbers use the d3 locale\n // Fall back on default format for dummy axes that don't care about formatting\n var locale = fullLayout._d3locale;\n if(ax.type === 'date') {\n ax._dateFormat = locale ? locale.timeFormat.utc : d3.time.format.utc;\n ax._extraFormat = fullLayout._extraFormat;\n }\n // occasionally we need _numFormat to pass through\n // even though it won't be needed by this axis\n ax._separators = fullLayout.separators;\n ax._numFormat = locale ? locale.numberFormat : d3.format;\n\n // and for bar charts and box plots: reset forced minimum tick spacing\n delete ax._minDtick;\n delete ax._forceTick0;\n};\n\n\n/***/ }),\n\n/***/ \"1a5e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nmodule.exports = {\n // padding in pixels around text\n TEXTPAD: 3,\n // 'value' and 'label' are not really necessary for bar traces,\n // but they were made available to `texttemplate` (maybe by accident)\n // via tokens `%{value}` and `%{label}` starting in 1.50.0,\n // so let's include them in the event data also.\n eventDataKeys: ['value', 'label']\n};\n\n\n/***/ }),\n\n/***/ \"1a88\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// CONCATENATED MODULE: ./node_modules/d3-path/src/path.js\nvar pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\n/* harmony default export */ var src_path = (path);\n\n// CONCATENATED MODULE: ./node_modules/d3-shape/src/array.js\nvar slice = Array.prototype.slice;\n\n// CONCATENATED MODULE: ./node_modules/d3-shape/src/constant.js\n/* harmony default export */ var constant = (function(x) {\n return function constant() {\n return x;\n };\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-shape/src/point.js\nfunction point_x(p) {\n return p[0];\n}\n\nfunction point_y(p) {\n return p[1];\n}\n\n// CONCATENATED MODULE: ./node_modules/d3-shape/src/pointRadial.js\n/* harmony default export */ var pointRadial = (function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-shape/src/link/index.js\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return linkHorizontal; });\n/* unused harmony export linkVertical */\n/* unused harmony export linkRadial */\n\n\n\n\n\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link_link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = point_x,\n y = point_y,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = src_path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nfunction linkHorizontal() {\n return link_link(curveHorizontal);\n}\n\nfunction linkVertical() {\n return link_link(curveVertical);\n}\n\nfunction linkRadial() {\n var l = link_link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n\n\n/***/ }),\n\n/***/ \"1a94\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (fn) {\n\tif (typeof fn !== \"function\") throw new TypeError(fn + \" is not a function\");\n\treturn fn;\n};\n\n\n/***/ }),\n\n/***/ \"1aea\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar Fx = __webpack_require__(\"a5c4\");\nvar dragElement = __webpack_require__(\"4efe\");\nvar setCursor = __webpack_require__(\"0f37\");\n\nvar makeDragBox = __webpack_require__(\"9676\").makeDragBox;\nvar DRAGGERSIZE = __webpack_require__(\"d301\").DRAGGERSIZE;\n\nexports.initInteractions = function initInteractions(gd) {\n var fullLayout = gd._fullLayout;\n\n if(gd._context.staticPlot) {\n // this sweeps up more than just cartesian drag elements...\n d3.select(gd).selectAll('.drag').remove();\n return;\n }\n\n if(!fullLayout._has('cartesian') && !fullLayout._has('splom')) return;\n\n var subplots = Object.keys(fullLayout._plots || {}).sort(function(a, b) {\n // sort overlays last, then by x axis number, then y axis number\n if((fullLayout._plots[a].mainplot && true) ===\n (fullLayout._plots[b].mainplot && true)) {\n var aParts = a.split('y');\n var bParts = b.split('y');\n return (aParts[0] === bParts[0]) ?\n (Number(aParts[1] || 1) - Number(bParts[1] || 1)) :\n (Number(aParts[0] || 1) - Number(bParts[0] || 1));\n }\n return fullLayout._plots[a].mainplot ? 1 : -1;\n });\n\n subplots.forEach(function(subplot) {\n var plotinfo = fullLayout._plots[subplot];\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n // main and corner draggers need not be repeated for\n // overlaid subplots - these draggers drag them all\n if(!plotinfo.mainplot) {\n // main dragger goes over the grids and data, so we use its\n // mousemove events for all data hover effects\n var maindrag = makeDragBox(gd, plotinfo, xa._offset, ya._offset,\n xa._length, ya._length, 'ns', 'ew');\n\n maindrag.onmousemove = function(evt) {\n // This is on `gd._fullLayout`, *not* fullLayout because the reference\n // changes by the time this is called again.\n gd._fullLayout._rehover = function() {\n if((gd._fullLayout._hoversubplot === subplot) && gd._fullLayout._plots[subplot]) {\n Fx.hover(gd, evt, subplot);\n }\n };\n\n Fx.hover(gd, evt, subplot);\n\n // Note that we have *not* used the cached fullLayout variable here\n // since that may be outdated when this is called as a callback later on\n gd._fullLayout._lasthover = maindrag;\n gd._fullLayout._hoversubplot = subplot;\n };\n\n /*\n * IMPORTANT:\n * We must check for the presence of the drag cover here.\n * If we don't, a 'mouseout' event is triggered on the\n * maindrag before each 'click' event, which has the effect\n * of clearing the hoverdata; thus, cancelling the click event.\n */\n maindrag.onmouseout = function(evt) {\n if(gd._dragging) return;\n\n // When the mouse leaves this maindrag, unset the hovered subplot.\n // This may cause problems if it leaves the subplot directly *onto*\n // another subplot, but that's a tiny corner case at the moment.\n gd._fullLayout._hoversubplot = null;\n\n dragElement.unhover(gd, evt);\n };\n\n // corner draggers\n if(gd._context.showAxisDragHandles) {\n makeDragBox(gd, plotinfo, xa._offset - DRAGGERSIZE, ya._offset - DRAGGERSIZE,\n DRAGGERSIZE, DRAGGERSIZE, 'n', 'w');\n makeDragBox(gd, plotinfo, xa._offset + xa._length, ya._offset - DRAGGERSIZE,\n DRAGGERSIZE, DRAGGERSIZE, 'n', 'e');\n makeDragBox(gd, plotinfo, xa._offset - DRAGGERSIZE, ya._offset + ya._length,\n DRAGGERSIZE, DRAGGERSIZE, 's', 'w');\n makeDragBox(gd, plotinfo, xa._offset + xa._length, ya._offset + ya._length,\n DRAGGERSIZE, DRAGGERSIZE, 's', 'e');\n }\n }\n if(gd._context.showAxisDragHandles) {\n // x axis draggers - if you have overlaid plots,\n // these drag each axis separately\n if(subplot === xa._mainSubplot) {\n // the y position of the main x axis line\n var y0 = xa._mainLinePosition;\n if(xa.side === 'top') y0 -= DRAGGERSIZE;\n makeDragBox(gd, plotinfo, xa._offset + xa._length * 0.1, y0,\n xa._length * 0.8, DRAGGERSIZE, '', 'ew');\n makeDragBox(gd, plotinfo, xa._offset, y0,\n xa._length * 0.1, DRAGGERSIZE, '', 'w');\n makeDragBox(gd, plotinfo, xa._offset + xa._length * 0.9, y0,\n xa._length * 0.1, DRAGGERSIZE, '', 'e');\n }\n // y axis draggers\n if(subplot === ya._mainSubplot) {\n // the x position of the main y axis line\n var x0 = ya._mainLinePosition;\n if(ya.side !== 'right') x0 -= DRAGGERSIZE;\n makeDragBox(gd, plotinfo, x0, ya._offset + ya._length * 0.1,\n DRAGGERSIZE, ya._length * 0.8, 'ns', '');\n makeDragBox(gd, plotinfo, x0, ya._offset + ya._length * 0.9,\n DRAGGERSIZE, ya._length * 0.1, 's', '');\n makeDragBox(gd, plotinfo, x0, ya._offset,\n DRAGGERSIZE, ya._length * 0.1, 'n', '');\n }\n }\n });\n\n // In case you mousemove over some hovertext, send it to Fx.hover too\n // we do this so that we can put the hover text in front of everything,\n // but still be able to interact with everything as if it isn't there\n var hoverLayer = fullLayout._hoverlayer.node();\n\n hoverLayer.onmousemove = function(evt) {\n evt.target = gd._fullLayout._lasthover;\n Fx.hover(gd, evt, fullLayout._hoversubplot);\n };\n\n hoverLayer.onclick = function(evt) {\n evt.target = gd._fullLayout._lasthover;\n Fx.click(gd, evt);\n };\n\n // also delegate mousedowns... TODO: does this actually work?\n hoverLayer.onmousedown = function(evt) {\n gd._fullLayout._lasthover.onmousedown(evt);\n };\n\n exports.updateFx(gd);\n};\n\n// Minimal set of update needed on 'modebar' edits.\n// We only need to update the cursor style.\n//\n// Note that changing the axis configuration and/or the fixedrange attribute\n// should trigger a full initInteractions.\nexports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var cursor = fullLayout.dragmode === 'pan' ? 'move' : 'crosshair';\n setCursor(fullLayout._draggers, cursor);\n};\n\n\n/***/ }),\n\n/***/ \"1b06\":\n/***/ (function(module, exports) {\n\nmodule.exports = lerp;\n\n/**\n * Performs a linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {vec3} out\n */\nfunction lerp(out, a, b, t) {\n var ax = a[0],\n ay = a[1],\n az = a[2]\n out[0] = ax + t * (b[0] - ax)\n out[1] = ay + t * (b[1] - ay)\n out[2] = az + t * (b[2] - az)\n return out\n}\n\n/***/ }),\n\n/***/ \"1b6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar Lib = __webpack_require__(\"fc26\");\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nmodule.exports = function clean2dArray(zOld, trace, xa, ya) {\n var rowlen, collen, getCollen, old2new, i, j;\n\n function cleanZvalue(v) {\n if(!isNumeric(v)) return undefined;\n return +v;\n }\n\n if(trace && trace.transpose) {\n rowlen = 0;\n for(i = 0; i < zOld.length; i++) rowlen = Math.max(rowlen, zOld[i].length);\n if(rowlen === 0) return false;\n getCollen = function(zOld) { return zOld.length; };\n old2new = function(zOld, i, j) { return (zOld[j] || [])[i]; };\n } else {\n rowlen = zOld.length;\n getCollen = function(zOld, i) { return zOld[i].length; };\n old2new = function(zOld, i, j) { return (zOld[i] || [])[j]; };\n }\n\n var padOld2new = function(zOld, i, j) {\n if(i === BADNUM || j === BADNUM) return BADNUM;\n return old2new(zOld, i, j);\n };\n\n function axisMapping(ax) {\n if(trace && trace.type !== 'carpet' && trace.type !== 'contourcarpet' &&\n ax && ax.type === 'category' && trace['_' + ax._id.charAt(0)].length) {\n var axLetter = ax._id.charAt(0);\n var axMapping = {};\n var traceCategories = trace['_' + axLetter + 'CategoryMap'] || trace[axLetter];\n for(i = 0; i < traceCategories.length; i++) {\n axMapping[traceCategories[i]] = i;\n }\n return function(i) {\n var ind = axMapping[ax._categories[i]];\n return ind + 1 ? ind : BADNUM;\n };\n } else {\n return Lib.identity;\n }\n }\n\n var xMap = axisMapping(xa);\n var yMap = axisMapping(ya);\n\n if(ya && ya.type === 'category') rowlen = ya._categories.length;\n var zNew = new Array(rowlen);\n\n for(i = 0; i < rowlen; i++) {\n if(xa && xa.type === 'category') {\n collen = xa._categories.length;\n } else {\n collen = getCollen(zOld, i);\n }\n zNew[i] = new Array(collen);\n for(j = 0; j < collen; j++) zNew[i][j] = cleanZvalue(padOld2new(zOld, yMap(i), xMap(j)));\n }\n\n return zNew;\n};\n\n\n/***/ }),\n\n/***/ \"1b88\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar loggers = __webpack_require__(\"ae13\");\n\n/**\n * Allow referencing a graph DOM element either directly\n * or by its id string\n *\n * @param {HTMLDivElement|string} gd: a graph element or its id\n *\n * @returns {HTMLDivElement} the DOM element of the graph\n */\nfunction getGraphDiv(gd) {\n var gdElement;\n\n if(typeof gd === 'string') {\n gdElement = document.getElementById(gd);\n\n if(gdElement === null) {\n throw new Error('No DOM element with id \\'' + gd + '\\' exists on the page.');\n }\n\n return gdElement;\n } else if(gd === null || gd === undefined) {\n throw new Error('DOM element provided is null or undefined');\n }\n\n // otherwise assume that gd is a DOM element\n return gd;\n}\n\nfunction isPlotDiv(el) {\n var el3 = d3.select(el);\n return el3.node() instanceof HTMLElement &&\n el3.size() &&\n el3.classed('js-plotly-plot');\n}\n\nfunction removeElement(el) {\n var elParent = el && el.parentNode;\n if(elParent) elParent.removeChild(el);\n}\n\n/**\n * for dynamically adding style rules\n * makes one stylesheet that contains all rules added\n * by all calls to this function\n */\nfunction addStyleRule(selector, styleString) {\n addRelatedStyleRule('global', selector, styleString);\n}\n\n/**\n * for dynamically adding style rules\n * to a stylesheet uniquely identified by a uid\n */\nfunction addRelatedStyleRule(uid, selector, styleString) {\n var id = 'plotly.js-style-' + uid;\n var style = document.getElementById(id);\n if(!style) {\n style = document.createElement('style');\n style.setAttribute('id', id);\n // WebKit hack :(\n style.appendChild(document.createTextNode(''));\n document.head.appendChild(style);\n }\n var styleSheet = style.sheet;\n\n if(styleSheet.insertRule) {\n styleSheet.insertRule(selector + '{' + styleString + '}', 0);\n } else if(styleSheet.addRule) {\n styleSheet.addRule(selector, styleString, 0);\n } else loggers.warn('addStyleRule failed');\n}\n\n/**\n * to remove from the page a stylesheet identified by a given uid\n */\nfunction deleteRelatedStyleRule(uid) {\n var id = 'plotly.js-style-' + uid;\n var style = document.getElementById(id);\n if(style) removeElement(style);\n}\n\nmodule.exports = {\n getGraphDiv: getGraphDiv,\n isPlotDiv: isPlotDiv,\n removeElement: removeElement,\n addStyleRule: addStyleRule,\n addRelatedStyleRule: addRelatedStyleRule,\n deleteRelatedStyleRule: deleteRelatedStyleRule\n};\n\n\n/***/ }),\n\n/***/ \"1bbd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* http://keith-wood.name/calendars.html\n Thai calendar for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) February 2010.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar main = __webpack_require__(\"0230\");\nvar assign = __webpack_require__(\"320c\");\n\n\nvar gregorianCalendar = main.instance();\n\n/** Implementation of the Thai calendar.\n See http://en.wikipedia.org/wiki/Thai_calendar.\n @class ThaiCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction ThaiCalendar(language) {\n this.local = this.regionalOptions[language || ''] || this.regionalOptions[''];\n}\n\nThaiCalendar.prototype = new main.baseCalendar;\n\nassign(ThaiCalendar.prototype, {\n /** The calendar name.\n @memberof ThaiCalendar */\n name: 'Thai',\n /** Julian date of start of Thai epoch: 1 January 543 BCE (Gregorian).\n @memberof ThaiCalendar */\n jdEpoch: 1523098.5,\n /** Difference in years between Thai and Gregorian calendars.\n @memberof ThaiCalendar */\n yearsOffset: 543, \n /** Days per month in a common year.\n @memberof ThaiCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof ThaiCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof ThaiCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof ThaiCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof ThaiCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof ThaiCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Thai',\n epochs: ['BBE', 'BE'],\n monthNames: ['January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n digits: null,\n dateFormat: 'dd/mm/yyyy',\n firstDay: 0,\n isRTL: false\n }\n },\n\n /** Determine whether this date is in a leap year.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.leapYear(year);\n },\n\n /** Determine the week of the year for a date - ISO 8601.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.weekOfYear(year, date.month(), date.day());\n },\n\n /** Retrieve the number of days in a month.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] +\n (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n\n /** Determine whether this date is a week day.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.toJD(year, date.month(), date.day());\n },\n\n /** Create a new date from a Julian date.\n @memberof ThaiCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var date = gregorianCalendar.fromJD(jd);\n var year = this._g2tYear(date.year());\n return this.newDate(year, date.month(), date.day());\n },\n\n /** Convert Thai to Gregorian year.\n @memberof ThaiCalendar\n @private\n @param year {number} The Thai year.\n @return {number} The corresponding Gregorian year. */\n _t2gYear: function(year) {\n return year - this.yearsOffset - (year >= 1 && year <= this.yearsOffset ? 1 : 0);\n },\n\n /** Convert Gregorian to Thai year.\n @memberof ThaiCalendar\n @private\n @param year {number} The Gregorian year.\n @return {number} The corresponding Thai year. */\n _g2tYear: function(year) {\n return year + this.yearsOffset + (year >= -this.yearsOffset && year <= -1 ? 1 : 0);\n }\n});\n\n// Thai calendar implementation\nmain.calendars.thai = ThaiCalendar;\n\n\n\n/***/ }),\n\n/***/ \"1bbe\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Icons = __webpack_require__(\"7559\");\nvar Parser = new DOMParser();\n\n/**\n * UI controller for interactive plots\n * @Class\n * @Param {object} opts\n * @Param {object} opts.buttons nested arrays of grouped buttons config objects\n * @Param {object} opts.container container div to append modeBar\n * @Param {object} opts.graphInfo primary plot object containing data and layout\n */\nfunction ModeBar(opts) {\n this.container = opts.container;\n this.element = document.createElement('div');\n\n this.update(opts.graphInfo, opts.buttons);\n\n this.container.appendChild(this.element);\n}\n\nvar proto = ModeBar.prototype;\n\n/**\n * Update modeBar (buttons and logo)\n *\n * @param {object} graphInfo primary plot object containing data and layout\n * @param {array of arrays} buttons nested arrays of grouped buttons to initialize\n *\n */\nproto.update = function(graphInfo, buttons) {\n this.graphInfo = graphInfo;\n\n var context = this.graphInfo._context;\n var fullLayout = this.graphInfo._fullLayout;\n var modeBarId = 'modebar-' + fullLayout._uid;\n\n this.element.setAttribute('id', modeBarId);\n this._uid = modeBarId;\n\n this.element.className = 'modebar';\n if(context.displayModeBar === 'hover') this.element.className += ' modebar--hover ease-bg';\n\n if(fullLayout.modebar.orientation === 'v') {\n this.element.className += ' vertical';\n buttons = buttons.reverse();\n }\n\n var style = fullLayout.modebar;\n var bgSelector = context.displayModeBar === 'hover' ? '.js-plotly-plot .plotly:hover ' : '';\n\n Lib.deleteRelatedStyleRule(modeBarId);\n Lib.addRelatedStyleRule(modeBarId, bgSelector + '#' + modeBarId + ' .modebar-group', 'background-color: ' + style.bgcolor);\n Lib.addRelatedStyleRule(modeBarId, '#' + modeBarId + ' .modebar-btn .icon path', 'fill: ' + style.color);\n Lib.addRelatedStyleRule(modeBarId, '#' + modeBarId + ' .modebar-btn:hover .icon path', 'fill: ' + style.activecolor);\n Lib.addRelatedStyleRule(modeBarId, '#' + modeBarId + ' .modebar-btn.active .icon path', 'fill: ' + style.activecolor);\n\n // if buttons or logo have changed, redraw modebar interior\n var needsNewButtons = !this.hasButtons(buttons);\n var needsNewLogo = (this.hasLogo !== context.displaylogo);\n var needsNewLocale = (this.locale !== context.locale);\n\n this.locale = context.locale;\n\n if(needsNewButtons || needsNewLogo || needsNewLocale) {\n this.removeAllButtons();\n\n this.updateButtons(buttons);\n\n if(context.watermark || context.displaylogo) {\n var logoGroup = this.getLogo();\n if(context.watermark) {\n logoGroup.className = logoGroup.className + ' watermark';\n }\n\n if(fullLayout.modebar.orientation === 'v') {\n this.element.insertBefore(logoGroup, this.element.childNodes[0]);\n } else {\n this.element.appendChild(logoGroup);\n }\n\n this.hasLogo = true;\n }\n }\n\n this.updateActiveButton();\n};\n\nproto.updateButtons = function(buttons) {\n var _this = this;\n\n this.buttons = buttons;\n this.buttonElements = [];\n this.buttonsNames = [];\n\n this.buttons.forEach(function(buttonGroup) {\n var group = _this.createGroup();\n\n buttonGroup.forEach(function(buttonConfig) {\n var buttonName = buttonConfig.name;\n if(!buttonName) {\n throw new Error('must provide button \\'name\\' in button config');\n }\n if(_this.buttonsNames.indexOf(buttonName) !== -1) {\n throw new Error('button name \\'' + buttonName + '\\' is taken');\n }\n _this.buttonsNames.push(buttonName);\n\n var button = _this.createButton(buttonConfig);\n _this.buttonElements.push(button);\n group.appendChild(button);\n });\n\n _this.element.appendChild(group);\n });\n};\n\n/**\n * Empty div for containing a group of buttons\n * @Return {HTMLelement}\n */\nproto.createGroup = function() {\n var group = document.createElement('div');\n group.className = 'modebar-group';\n return group;\n};\n\n/**\n * Create a new button div and set constant and configurable attributes\n * @Param {object} config (see ./buttons.js for more info)\n * @Return {HTMLelement}\n */\nproto.createButton = function(config) {\n var _this = this;\n var button = document.createElement('a');\n\n button.setAttribute('rel', 'tooltip');\n button.className = 'modebar-btn';\n\n var title = config.title;\n if(title === undefined) title = config.name;\n // for localization: allow title to be a callable that takes gd as arg\n else if(typeof title === 'function') title = title(this.graphInfo);\n\n if(title || title === 0) button.setAttribute('data-title', title);\n\n if(config.attr !== undefined) button.setAttribute('data-attr', config.attr);\n\n var val = config.val;\n if(val !== undefined) {\n if(typeof val === 'function') val = val(this.graphInfo);\n button.setAttribute('data-val', val);\n }\n\n var click = config.click;\n if(typeof click !== 'function') {\n throw new Error('must provide button \\'click\\' function in button config');\n } else {\n button.addEventListener('click', function(ev) {\n config.click(_this.graphInfo, ev);\n\n // only needed for 'hoverClosestGeo' which does not call relayout\n _this.updateActiveButton(ev.currentTarget);\n });\n }\n\n button.setAttribute('data-toggle', config.toggle || false);\n if(config.toggle) d3.select(button).classed('active', true);\n\n var icon = config.icon;\n if(typeof icon === 'function') {\n button.appendChild(icon());\n } else {\n button.appendChild(this.createIcon(icon || Icons.question));\n }\n button.setAttribute('data-gravity', config.gravity || 'n');\n\n return button;\n};\n\n/**\n * Add an icon to a button\n * @Param {object} thisIcon\n * @Param {number} thisIcon.width\n * @Param {string} thisIcon.path\n * @Param {string} thisIcon.color\n * @Return {HTMLelement}\n */\nproto.createIcon = function(thisIcon) {\n var iconHeight = isNumeric(thisIcon.height) ?\n Number(thisIcon.height) :\n thisIcon.ascent - thisIcon.descent;\n var svgNS = 'http://www.w3.org/2000/svg';\n var icon;\n\n if(thisIcon.path) {\n icon = document.createElementNS(svgNS, 'svg');\n icon.setAttribute('viewBox', [0, 0, thisIcon.width, iconHeight].join(' '));\n icon.setAttribute('class', 'icon');\n\n var path = document.createElementNS(svgNS, 'path');\n path.setAttribute('d', thisIcon.path);\n\n if(thisIcon.transform) {\n path.setAttribute('transform', thisIcon.transform);\n } else if(thisIcon.ascent !== undefined) {\n // Legacy icon transform calculation\n path.setAttribute('transform', 'matrix(1 0 0 -1 0 ' + thisIcon.ascent + ')');\n }\n\n icon.appendChild(path);\n }\n\n if(thisIcon.svg) {\n var svgDoc = Parser.parseFromString(thisIcon.svg, 'application/xml');\n icon = svgDoc.childNodes[0];\n }\n\n icon.setAttribute('height', '1em');\n icon.setAttribute('width', '1em');\n\n return icon;\n};\n\n/**\n * Updates active button with attribute specified in layout\n * @Param {object} graphInfo plot object containing data and layout\n * @Return {HTMLelement}\n */\nproto.updateActiveButton = function(buttonClicked) {\n var fullLayout = this.graphInfo._fullLayout;\n var dataAttrClicked = (buttonClicked !== undefined) ?\n buttonClicked.getAttribute('data-attr') :\n null;\n\n this.buttonElements.forEach(function(button) {\n var thisval = button.getAttribute('data-val') || true;\n var dataAttr = button.getAttribute('data-attr');\n var isToggleButton = (button.getAttribute('data-toggle') === 'true');\n var button3 = d3.select(button);\n\n // Use 'data-toggle' and 'buttonClicked' to toggle buttons\n // that have no one-to-one equivalent in fullLayout\n if(isToggleButton) {\n if(dataAttr === dataAttrClicked) {\n button3.classed('active', !button3.classed('active'));\n }\n } else {\n var val = (dataAttr === null) ?\n dataAttr :\n Lib.nestedProperty(fullLayout, dataAttr).get();\n\n button3.classed('active', val === thisval);\n }\n });\n};\n\n/**\n * Check if modeBar is configured as button configuration argument\n *\n * @Param {object} buttons 2d array of grouped button config objects\n * @Return {boolean}\n */\nproto.hasButtons = function(buttons) {\n var currentButtons = this.buttons;\n\n if(!currentButtons) return false;\n\n if(buttons.length !== currentButtons.length) return false;\n\n for(var i = 0; i < buttons.length; ++i) {\n if(buttons[i].length !== currentButtons[i].length) return false;\n for(var j = 0; j < buttons[i].length; j++) {\n if(buttons[i][j].name !== currentButtons[i][j].name) return false;\n }\n }\n\n return true;\n};\n\n/**\n * @return {HTMLDivElement} The logo image wrapped in a group\n */\nproto.getLogo = function() {\n var group = this.createGroup();\n var a = document.createElement('a');\n\n a.href = 'https://plot.ly/';\n a.target = '_blank';\n a.setAttribute('data-title', Lib._(this.graphInfo, 'Produced with Plotly'));\n a.className = 'modebar-btn plotlyjsicon modebar-btn--logo';\n\n a.appendChild(this.createIcon(Icons.newplotlylogo));\n\n group.appendChild(a);\n return group;\n};\n\nproto.removeAllButtons = function() {\n while(this.element.firstChild) {\n this.element.removeChild(this.element.firstChild);\n }\n\n this.hasLogo = false;\n};\n\nproto.destroy = function() {\n Lib.removeElement(this.container.querySelector('.modebar'));\n Lib.deleteRelatedStyleRule(this._uid);\n};\n\nfunction createModeBar(gd, buttons) {\n var fullLayout = gd._fullLayout;\n\n var modeBar = new ModeBar({\n graphInfo: gd,\n container: fullLayout._modebardiv.node(),\n buttons: buttons\n });\n\n if(fullLayout._privateplot) {\n d3.select(modeBar.element).append('span')\n .classed('badge-private float--left', true)\n .text('PRIVATE');\n }\n\n return modeBar;\n}\n\nmodule.exports = createModeBar;\n\n\n/***/ }),\n\n/***/ \"1be4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n\n/***/ \"1bea\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * RGB space.\n *\n * @module color-space/rgb\n */\n\n\nmodule.exports = {\n\tname: 'rgb',\n\tmin: [0,0,0],\n\tmax: [255,255,255],\n\tchannel: ['red', 'green', 'blue'],\n\talias: ['RGB']\n};\n\n\n/***/ }),\n\n/***/ \"1bef\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar subtypes = __webpack_require__(\"de81\");\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nmodule.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var trace = cd[0].trace;\n var i;\n\n if(!subtypes.hasMarkers(trace)) return [];\n\n if(selectionTester === false) {\n for(i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for(i = 0; i < cd.length; i++) {\n var di = cd[i];\n var lonlat = di.lonlat;\n\n if(lonlat[0] !== BADNUM) {\n var lonlat2 = [Lib.modHalf(lonlat[0], 360), lonlat[1]];\n var xy = [xa.c2p(lonlat2), ya.c2p(lonlat2)];\n\n if(selectionTester.contains(xy, null, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n lon: lonlat[0],\n lat: lonlat[1]\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n }\n\n return selection;\n};\n\n\n/***/ }),\n\n/***/ \"1c0b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"1c0b8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar attrs = __webpack_require__(\"8f38\");\nvar oppAxisAttrs = __webpack_require__(\"5844\");\nvar helpers = __webpack_require__(\"4c66\");\n\nmodule.exports = {\n moduleType: 'component',\n name: 'rangeslider',\n\n schema: {\n subplots: {\n xaxis: {\n rangeslider: Lib.extendFlat({}, attrs, {\n yaxis: oppAxisAttrs\n })\n }\n }\n },\n\n layoutAttributes: __webpack_require__(\"8f38\"),\n handleDefaults: __webpack_require__(\"6b10\"),\n calcAutorange: __webpack_require__(\"4cd2\"),\n draw: __webpack_require__(\"8b1d\"),\n isVisible: helpers.isVisible,\n makeData: helpers.makeData,\n autoMarginOpts: helpers.autoMarginOpts\n};\n\n\n/***/ }),\n\n/***/ \"1c1a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isValue = __webpack_require__(\"62c4\")\n , setPrototypeOf = __webpack_require__(\"e0f6\")\n , object = __webpack_require__(\"68e6\")\n , ensureValue = __webpack_require__(\"96ae\")\n , randomUniq = __webpack_require__(\"6599\")\n , d = __webpack_require__(\"f508\")\n , getIterator = __webpack_require__(\"8a50\")\n , forOf = __webpack_require__(\"c351\")\n , toStringTagSymbol = __webpack_require__(\"1c4a\").toStringTag\n , isNative = __webpack_require__(\"7d72\")\n\n , isArray = Array.isArray, defineProperty = Object.defineProperty\n , objHasOwnProperty = Object.prototype.hasOwnProperty, getPrototypeOf = Object.getPrototypeOf\n , WeakMapPoly;\n\nmodule.exports = WeakMapPoly = function (/* Iterable*/) {\n\tvar iterable = arguments[0], self;\n\n\tif (!(this instanceof WeakMapPoly)) throw new TypeError(\"Constructor requires 'new'\");\n\tself = isNative && setPrototypeOf && (WeakMap !== WeakMapPoly)\n\t\t? setPrototypeOf(new WeakMap(), getPrototypeOf(this)) : this;\n\n\tif (isValue(iterable)) {\n\t\tif (!isArray(iterable)) iterable = getIterator(iterable);\n\t}\n\tdefineProperty(self, \"__weakMapData__\", d(\"c\", \"$weakMap$\" + randomUniq()));\n\tif (!iterable) return self;\n\tforOf(iterable, function (val) {\n\t\tensureValue(val);\n\t\tself.set(val[0], val[1]);\n\t});\n\treturn self;\n};\n\nif (isNative) {\n\tif (setPrototypeOf) setPrototypeOf(WeakMapPoly, WeakMap);\n\tWeakMapPoly.prototype = Object.create(WeakMap.prototype, { constructor: d(WeakMapPoly) });\n}\n\nObject.defineProperties(WeakMapPoly.prototype, {\n\tdelete: d(function (key) {\n\t\tif (objHasOwnProperty.call(object(key), this.__weakMapData__)) {\n\t\t\tdelete key[this.__weakMapData__];\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}),\n\tget: d(function (key) {\n\t\tif (!objHasOwnProperty.call(object(key), this.__weakMapData__)) return undefined;\n\t\treturn key[this.__weakMapData__];\n\t}),\n\thas: d(function (key) {\n\t\treturn objHasOwnProperty.call(object(key), this.__weakMapData__);\n\t}),\n\tset: d(function (key, value) {\n\t\tdefineProperty(object(key), this.__weakMapData__, d(\"c\", value));\n\t\treturn this;\n\t}),\n\ttoString: d(function () {\n\t\treturn \"[object WeakMap]\";\n\t})\n});\ndefineProperty(WeakMapPoly.prototype, toStringTagSymbol, d(\"c\", \"WeakMap\"));\n\n\n/***/ }),\n\n/***/ \"1c1c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Color = __webpack_require__(\"d115\");\nvar Registry = __webpack_require__(\"371e\");\n\nvar handleXYDefaults = __webpack_require__(\"076f\");\nvar handleStyleDefaults = __webpack_require__(\"9103\");\nvar getAxisGroup = __webpack_require__(\"3c1c\").getAxisGroup;\nvar attributes = __webpack_require__(\"fb5a\");\n\nvar coerceFont = Lib.coerceFont;\n\nfunction supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var len = handleXYDefaults(traceIn, traceOut, layout, coerce);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n coerce('orientation', (traceOut.x && !traceOut.y) ? 'h' : 'v');\n coerce('base');\n coerce('offset');\n coerce('width');\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n var textposition = coerce('textposition');\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: true,\n moduleHasUnselected: true,\n moduleHasConstrain: true,\n moduleHasCliponaxis: true,\n moduleHasTextangle: true,\n moduleHasInsideanchor: true\n });\n\n handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);\n\n var lineColor = (traceOut.marker.line || {}).color;\n\n // override defaultColor for error bars with defaultLine\n var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'y'});\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'});\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n}\n\nfunction handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce) {\n var orientation = traceOut.orientation;\n // N.B. grouping is done across all trace types that support it\n var posAxId = traceOut[{v: 'x', h: 'y'}[orientation] + 'axis'];\n var groupId = getAxisGroup(fullLayout, posAxId) + orientation;\n\n var alignmentOpts = fullLayout._alignmentOpts || {};\n var alignmentgroup = coerce('alignmentgroup');\n\n var alignmentGroups = alignmentOpts[groupId];\n if(!alignmentGroups) alignmentGroups = alignmentOpts[groupId] = {};\n\n var alignmentGroupOpts = alignmentGroups[alignmentgroup];\n\n if(alignmentGroupOpts) {\n alignmentGroupOpts.traces.push(traceOut);\n } else {\n alignmentGroupOpts = alignmentGroups[alignmentgroup] = {\n traces: [traceOut],\n alignmentIndex: Object.keys(alignmentGroups).length,\n offsetGroups: {}\n };\n }\n\n var offsetgroup = coerce('offsetgroup');\n var offsetGroups = alignmentGroupOpts.offsetGroups;\n var offsetGroupOpts = offsetGroups[offsetgroup];\n\n if(offsetgroup) {\n if(!offsetGroupOpts) {\n offsetGroupOpts = offsetGroups[offsetgroup] = {\n offsetIndex: Object.keys(offsetGroups).length\n };\n }\n\n traceOut._offsetIndex = offsetGroupOpts.offsetIndex;\n }\n}\n\nfunction crossTraceDefaults(fullData, fullLayout) {\n var traceIn, traceOut;\n\n function coerce(attr) {\n return Lib.coerce(traceOut._input, traceOut, attributes, attr);\n }\n\n if(fullLayout.barmode === 'group') {\n for(var i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n\n if(traceOut.type === 'bar') {\n traceIn = traceOut._input;\n handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce);\n }\n }\n }\n}\n\nfunction handleText(traceIn, traceOut, layout, coerce, textposition, opts) {\n opts = opts || {};\n var moduleHasSelected = !(opts.moduleHasSelected === false);\n var moduleHasUnselected = !(opts.moduleHasUnselected === false);\n var moduleHasConstrain = !(opts.moduleHasConstrain === false);\n var moduleHasCliponaxis = !(opts.moduleHasCliponaxis === false);\n var moduleHasTextangle = !(opts.moduleHasTextangle === false);\n var moduleHasInsideanchor = !(opts.moduleHasInsideanchor === false);\n var hasPathbar = !!opts.hasPathbar;\n\n var hasBoth = Array.isArray(textposition) || textposition === 'auto';\n var hasInside = hasBoth || textposition === 'inside';\n var hasOutside = hasBoth || textposition === 'outside';\n\n if(hasInside || hasOutside) {\n var dfltFont = coerceFont(coerce, 'textfont', layout.font);\n\n // Note that coercing `insidetextfont` is always needed –\n // even if `textposition` is `outside` for each trace – since\n // an outside label can become an inside one, for example because\n // of a bar being stacked on top of it.\n var insideTextFontDefault = Lib.extendFlat({}, dfltFont);\n var isTraceTextfontColorSet = traceIn.textfont && traceIn.textfont.color;\n var isColorInheritedFromLayoutFont = !isTraceTextfontColorSet;\n if(isColorInheritedFromLayoutFont) {\n delete insideTextFontDefault.color;\n }\n coerceFont(coerce, 'insidetextfont', insideTextFontDefault);\n\n if(hasPathbar) {\n var pathbarTextFontDefault = Lib.extendFlat({}, dfltFont);\n if(isColorInheritedFromLayoutFont) {\n delete pathbarTextFontDefault.color;\n }\n coerceFont(coerce, 'pathbar.textfont', pathbarTextFontDefault);\n }\n\n if(hasOutside) coerceFont(coerce, 'outsidetextfont', dfltFont);\n\n if(moduleHasSelected) coerce('selected.textfont.color');\n if(moduleHasUnselected) coerce('unselected.textfont.color');\n if(moduleHasConstrain) coerce('constraintext');\n if(moduleHasCliponaxis) coerce('cliponaxis');\n if(moduleHasTextangle) coerce('textangle');\n\n coerce('texttemplate');\n }\n\n if(hasInside) {\n if(moduleHasInsideanchor) coerce('insidetextanchor');\n }\n}\n\nmodule.exports = {\n supplyDefaults: supplyDefaults,\n crossTraceDefaults: crossTraceDefaults,\n handleGroupingDefaults: handleGroupingDefaults,\n handleText: handleText\n};\n\n\n/***/ }),\n\n/***/ \"1c4a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(\"ba61\")()\n\t? __webpack_require__(\"7c4a\").Symbol\n\t: __webpack_require__(\"94ee\");\n\n\n/***/ }),\n\n/***/ \"1c4d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n\r\nvar sizes = __webpack_require__(\"fde6\")\r\n\r\nmodule.exports = {\r\n\tisSize: function isSize(value) {\r\n\t\treturn /^[\\d\\.]/.test(value)\r\n\t\t\t|| value.indexOf('/') !== -1\r\n\t\t\t|| sizes.indexOf(value) !== -1\r\n\t}\r\n}\r\n\n\n/***/ }),\n\n/***/ \"1c82\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar extendDeep = __webpack_require__(\"9092\").extendDeep;\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\nvar fontAttrs = __webpack_require__(\"9845\");\nvar colorAttrs = __webpack_require__(\"dfb3\");\nvar domainAttrs = __webpack_require__(\"81f0\").attributes;\nvar axesAttrs = __webpack_require__(\"d798\");\nvar templatedArray = __webpack_require__(\"a651\").templatedArray;\nvar delta = __webpack_require__(\"b8ce\");\nvar FORMAT_LINK = __webpack_require__(\"78df\").FORMAT_LINK;\n\nvar textFontAttrs = fontAttrs({\n editType: 'plot',\n colorEditType: 'plot'\n});\n\nvar gaugeBarAttrs = {\n color: {\n valType: 'color',\n editType: 'plot',\n \n \n },\n line: {\n color: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n editType: 'plot',\n \n },\n width: {\n valType: 'number',\n \n min: 0,\n dflt: 0,\n editType: 'plot',\n \n },\n editType: 'calc'\n },\n thickness: {\n valType: 'number',\n \n min: 0,\n max: 1,\n dflt: 1,\n editType: 'plot',\n \n },\n editType: 'calc'\n};\n\nvar rangeAttr = {\n valType: 'info_array',\n \n items: [\n {valType: 'number', editType: 'plot'},\n {valType: 'number', editType: 'plot'}\n ],\n editType: 'plot',\n \n};\n\nvar stepsAttrs = templatedArray('step', extendDeep({}, gaugeBarAttrs, {\n range: rangeAttr\n}));\n\nmodule.exports = {\n mode: {\n valType: 'flaglist',\n editType: 'calc',\n \n flags: ['number', 'delta', 'gauge'],\n dflt: 'number',\n \n },\n value: {\n valType: 'number',\n editType: 'calc',\n \n anim: true,\n \n },\n align: {\n valType: 'enumerated',\n values: ['left', 'center', 'right'],\n \n editType: 'plot',\n \n },\n // position\n domain: domainAttrs({name: 'indicator', trace: true, editType: 'calc'}),\n\n title: {\n text: {\n valType: 'string',\n \n editType: 'plot',\n \n },\n align: {\n valType: 'enumerated',\n values: ['left', 'center', 'right'],\n \n editType: 'plot',\n \n },\n font: extendFlat({}, textFontAttrs, {\n \n }),\n editType: 'plot'\n },\n number: {\n valueformat: {\n valType: 'string',\n dflt: '',\n \n editType: 'plot',\n \n },\n font: extendFlat({}, textFontAttrs, {\n \n }),\n prefix: {\n valType: 'string',\n dflt: '',\n \n editType: 'plot',\n \n },\n suffix: {\n valType: 'string',\n dflt: '',\n \n editType: 'plot',\n \n },\n editType: 'plot'\n },\n delta: {\n reference: {\n valType: 'number',\n \n editType: 'calc',\n \n },\n position: {\n valType: 'enumerated',\n values: ['top', 'bottom', 'left', 'right'],\n \n dflt: 'bottom',\n editType: 'plot',\n \n },\n relative: {\n valType: 'boolean',\n editType: 'plot',\n \n dflt: false,\n \n },\n valueformat: {\n valType: 'string',\n \n editType: 'plot',\n \n },\n increasing: {\n symbol: {\n valType: 'string',\n \n dflt: delta.INCREASING.SYMBOL,\n editType: 'plot',\n \n },\n color: {\n valType: 'color',\n \n dflt: delta.INCREASING.COLOR,\n editType: 'plot',\n \n },\n // TODO: add attribute to show sign\n editType: 'plot'\n },\n decreasing: {\n symbol: {\n valType: 'string',\n \n dflt: delta.DECREASING.SYMBOL,\n editType: 'plot',\n \n },\n color: {\n valType: 'color',\n \n dflt: delta.DECREASING.COLOR,\n editType: 'plot',\n \n },\n // TODO: add attribute to hide sign\n editType: 'plot'\n },\n font: extendFlat({}, textFontAttrs, {\n \n }),\n editType: 'calc'\n },\n gauge: {\n shape: {\n valType: 'enumerated',\n editType: 'plot',\n \n dflt: 'angular',\n values: ['angular', 'bullet'],\n \n },\n bar: extendDeep({}, gaugeBarAttrs, {\n color: {dflt: 'green'},\n \n }),\n // Background of the gauge\n bgcolor: {\n valType: 'color',\n \n editType: 'plot',\n \n },\n bordercolor: {\n valType: 'color',\n dflt: colorAttrs.defaultLine,\n \n editType: 'plot',\n \n },\n borderwidth: {\n valType: 'number',\n min: 0,\n dflt: 1,\n \n editType: 'plot',\n \n },\n axis: overrideAll({\n range: rangeAttr,\n visible: extendFlat({}, axesAttrs.visible, {\n dflt: true\n }),\n // tick and title properties named and function exactly as in axes\n tickmode: axesAttrs.tickmode,\n nticks: axesAttrs.nticks,\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: extendFlat({}, axesAttrs.ticks, {dflt: 'outside'}),\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n showticklabels: axesAttrs.showticklabels,\n tickfont: fontAttrs({\n \n }),\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n tickprefix: axesAttrs.tickprefix,\n showtickprefix: axesAttrs.showtickprefix,\n ticksuffix: axesAttrs.ticksuffix,\n showticksuffix: axesAttrs.showticksuffix,\n separatethousands: axesAttrs.separatethousands,\n exponentformat: axesAttrs.exponentformat,\n showexponent: axesAttrs.showexponent,\n editType: 'plot'\n }, 'plot'),\n // Steps (or ranges) and thresholds\n steps: stepsAttrs,\n threshold: {\n line: {\n color: extendFlat({}, gaugeBarAttrs.line.color, {\n \n }),\n width: extendFlat({}, gaugeBarAttrs.line.width, {\n dflt: 1,\n \n }),\n editType: 'plot'\n },\n thickness: extendFlat({}, gaugeBarAttrs.thickness, {\n dflt: 0.85,\n \n }),\n value: {\n valType: 'number',\n editType: 'calc',\n dflt: false,\n \n \n },\n editType: 'plot'\n },\n \n editType: 'plot'\n // TODO: in future version, add marker: (bar|needle)\n }\n};\n\n\n/***/ }),\n\n/***/ \"1cfc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"6386\");\n\n\n/***/ }),\n\n/***/ \"1d19\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* @module to-float32 */\r\n\r\n\r\n\r\nmodule.exports = float32\r\nmodule.exports.float32 =\r\nmodule.exports.float = float32\r\nmodule.exports.fract32 =\r\nmodule.exports.fract = fract32\r\n\r\nvar narr = new Float32Array(1)\r\n\r\n// return fractional part of float32 array\r\nfunction fract32 (arr) {\r\n\tif (arr.length) {\r\n\t\tvar fract = float32(arr)\r\n\t\tfor (var i = 0, l = fract.length; i < l; i++) {\r\n\t\t\tfract[i] = arr[i] - fract[i]\r\n\t\t}\r\n\t\treturn fract\r\n\t}\r\n\r\n\t// number\r\n\treturn float32(arr - float32(arr))\r\n}\r\n\r\n// make sure data is float32 array\r\nfunction float32 (arr) {\r\n\tif (arr.length) {\r\n\t\tif (arr instanceof Float32Array) return arr\r\n\t\tvar float = new Float32Array(arr)\r\n\t\tfloat.set(arr)\r\n\t\treturn float\r\n\t}\r\n\r\n\t// number\r\n\tnarr[0] = arr\r\n\treturn narr[0]\r\n}\r\n\n\n/***/ }),\n\n/***/ \"1d4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar compile = __webpack_require__(\"c535\")\nvar CACHE = {}\n\nfunction sort(array) {\n var order = array.order\n var dtype = array.dtype\n var typeSig = [order, dtype ]\n var typeName = typeSig.join(\":\")\n var compiled = CACHE[typeName]\n if(!compiled) {\n CACHE[typeName] = compiled = compile(order, dtype)\n }\n compiled(array)\n return array\n}\n\nmodule.exports = sort\n\n/***/ }),\n\n/***/ \"1d5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ndarray = __webpack_require__(\"b5bb\")\nvar ops = __webpack_require__(\"62d6\")\nvar pool = __webpack_require__(\"cea5\")\n\nmodule.exports = createTexture2D\n\nvar linearTypes = null\nvar filterTypes = null\nvar wrapTypes = null\n\nfunction lazyInitLinearTypes(gl) {\n linearTypes = [\n gl.LINEAR,\n gl.NEAREST_MIPMAP_LINEAR,\n gl.LINEAR_MIPMAP_NEAREST,\n gl.LINEAR_MIPMAP_NEAREST\n ]\n filterTypes = [\n gl.NEAREST,\n gl.LINEAR,\n gl.NEAREST_MIPMAP_NEAREST,\n gl.NEAREST_MIPMAP_LINEAR,\n gl.LINEAR_MIPMAP_NEAREST,\n gl.LINEAR_MIPMAP_LINEAR\n ]\n wrapTypes = [\n gl.REPEAT,\n gl.CLAMP_TO_EDGE,\n gl.MIRRORED_REPEAT\n ]\n}\n\nfunction acceptTextureDOM (obj) {\n return (\n ('undefined' != typeof HTMLCanvasElement && obj instanceof HTMLCanvasElement) ||\n ('undefined' != typeof HTMLImageElement && obj instanceof HTMLImageElement) ||\n ('undefined' != typeof HTMLVideoElement && obj instanceof HTMLVideoElement) ||\n ('undefined' != typeof ImageData && obj instanceof ImageData))\n}\n\nvar convertFloatToUint8 = function(out, inp) {\n ops.muls(out, inp, 255.0)\n}\n\nfunction reshapeTexture(tex, w, h) {\n var gl = tex.gl\n var maxSize = gl.getParameter(gl.MAX_TEXTURE_SIZE)\n if(w < 0 || w > maxSize || h < 0 || h > maxSize) {\n throw new Error('gl-texture2d: Invalid texture size')\n }\n tex._shape = [w, h]\n tex.bind()\n gl.texImage2D(gl.TEXTURE_2D, 0, tex.format, w, h, 0, tex.format, tex.type, null)\n tex._mipLevels = [0]\n return tex\n}\n\nfunction Texture2D(gl, handle, width, height, format, type) {\n this.gl = gl\n this.handle = handle\n this.format = format\n this.type = type\n this._shape = [width, height]\n this._mipLevels = [0]\n this._magFilter = gl.NEAREST\n this._minFilter = gl.NEAREST\n this._wrapS = gl.CLAMP_TO_EDGE\n this._wrapT = gl.CLAMP_TO_EDGE\n this._anisoSamples = 1\n\n var parent = this\n var wrapVector = [this._wrapS, this._wrapT]\n Object.defineProperties(wrapVector, [\n {\n get: function() {\n return parent._wrapS\n },\n set: function(v) {\n return parent.wrapS = v\n }\n },\n {\n get: function() {\n return parent._wrapT\n },\n set: function(v) {\n return parent.wrapT = v\n }\n }\n ])\n this._wrapVector = wrapVector\n\n var shapeVector = [this._shape[0], this._shape[1]]\n Object.defineProperties(shapeVector, [\n {\n get: function() {\n return parent._shape[0]\n },\n set: function(v) {\n return parent.width = v\n }\n },\n {\n get: function() {\n return parent._shape[1]\n },\n set: function(v) {\n return parent.height = v\n }\n }\n ])\n this._shapeVector = shapeVector\n}\n\nvar proto = Texture2D.prototype\n\nObject.defineProperties(proto, {\n minFilter: {\n get: function() {\n return this._minFilter\n },\n set: function(v) {\n this.bind()\n var gl = this.gl\n if(this.type === gl.FLOAT && linearTypes.indexOf(v) >= 0) {\n if(!gl.getExtension('OES_texture_float_linear')) {\n v = gl.NEAREST\n }\n }\n if(filterTypes.indexOf(v) < 0) {\n throw new Error('gl-texture2d: Unknown filter mode ' + v)\n }\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, v)\n return this._minFilter = v\n }\n },\n magFilter: {\n get: function() {\n return this._magFilter\n },\n set: function(v) {\n this.bind()\n var gl = this.gl\n if(this.type === gl.FLOAT && linearTypes.indexOf(v) >= 0) {\n if(!gl.getExtension('OES_texture_float_linear')) {\n v = gl.NEAREST\n }\n }\n if(filterTypes.indexOf(v) < 0) {\n throw new Error('gl-texture2d: Unknown filter mode ' + v)\n }\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, v)\n return this._magFilter = v\n }\n },\n mipSamples: {\n get: function() {\n return this._anisoSamples\n },\n set: function(i) {\n var psamples = this._anisoSamples\n this._anisoSamples = Math.max(i, 1)|0\n if(psamples !== this._anisoSamples) {\n var ext = this.gl.getExtension('EXT_texture_filter_anisotropic')\n if(ext) {\n this.gl.texParameterf(this.gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, this._anisoSamples)\n }\n }\n return this._anisoSamples\n }\n },\n wrapS: {\n get: function() {\n return this._wrapS\n },\n set: function(v) {\n this.bind()\n if(wrapTypes.indexOf(v) < 0) {\n throw new Error('gl-texture2d: Unknown wrap mode ' + v)\n }\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_S, v)\n return this._wrapS = v\n }\n },\n wrapT: {\n get: function() {\n return this._wrapT\n },\n set: function(v) {\n this.bind()\n if(wrapTypes.indexOf(v) < 0) {\n throw new Error('gl-texture2d: Unknown wrap mode ' + v)\n }\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_T, v)\n return this._wrapT = v\n }\n },\n wrap: {\n get: function() {\n return this._wrapVector\n },\n set: function(v) {\n if(!Array.isArray(v)) {\n v = [v,v]\n }\n if(v.length !== 2) {\n throw new Error('gl-texture2d: Must specify wrap mode for rows and columns')\n }\n for(var i=0; i<2; ++i) {\n if(wrapTypes.indexOf(v[i]) < 0) {\n throw new Error('gl-texture2d: Unknown wrap mode ' + v)\n }\n }\n this._wrapS = v[0]\n this._wrapT = v[1]\n\n var gl = this.gl\n this.bind()\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, this._wrapS)\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, this._wrapT)\n\n return v\n }\n },\n shape: {\n get: function() {\n return this._shapeVector\n },\n set: function(x) {\n if(!Array.isArray(x)) {\n x = [x|0,x|0]\n } else {\n if(x.length !== 2) {\n throw new Error('gl-texture2d: Invalid texture shape')\n }\n }\n reshapeTexture(this, x[0]|0, x[1]|0)\n return [x[0]|0, x[1]|0]\n }\n },\n width: {\n get: function() {\n return this._shape[0]\n },\n set: function(w) {\n w = w|0\n reshapeTexture(this, w, this._shape[1])\n return w\n }\n },\n height: {\n get: function() {\n return this._shape[1]\n },\n set: function(h) {\n h = h|0\n reshapeTexture(this, this._shape[0], h)\n return h\n }\n }\n})\n\nproto.bind = function(unit) {\n var gl = this.gl\n if(unit !== undefined) {\n gl.activeTexture(gl.TEXTURE0 + (unit|0))\n }\n gl.bindTexture(gl.TEXTURE_2D, this.handle)\n if(unit !== undefined) {\n return (unit|0)\n }\n return gl.getParameter(gl.ACTIVE_TEXTURE) - gl.TEXTURE0\n}\n\nproto.dispose = function() {\n this.gl.deleteTexture(this.handle)\n}\n\nproto.generateMipmap = function() {\n this.bind()\n this.gl.generateMipmap(this.gl.TEXTURE_2D)\n\n //Update mip levels\n var l = Math.min(this._shape[0], this._shape[1])\n for(var i=0; l>0; ++i, l>>>=1) {\n if(this._mipLevels.indexOf(i) < 0) {\n this._mipLevels.push(i)\n }\n }\n}\n\nproto.setPixels = function(data, x_off, y_off, mip_level) {\n var gl = this.gl\n this.bind()\n if(Array.isArray(x_off)) {\n mip_level = y_off\n y_off = x_off[1]|0\n x_off = x_off[0]|0\n } else {\n x_off = x_off || 0\n y_off = y_off || 0\n }\n mip_level = mip_level || 0\n var directData = acceptTextureDOM(data) ? data : data.raw\n if(directData) {\n var needsMip = this._mipLevels.indexOf(mip_level) < 0\n if(needsMip) {\n gl.texImage2D(gl.TEXTURE_2D, 0, this.format, this.format, this.type, directData)\n this._mipLevels.push(mip_level)\n } else {\n gl.texSubImage2D(gl.TEXTURE_2D, mip_level, x_off, y_off, this.format, this.type, directData)\n }\n } else if(data.shape && data.stride && data.data) {\n if(data.shape.length < 2 ||\n x_off + data.shape[1] > this._shape[1]>>>mip_level ||\n y_off + data.shape[0] > this._shape[0]>>>mip_level ||\n x_off < 0 ||\n y_off < 0) {\n throw new Error('gl-texture2d: Texture dimensions are out of bounds')\n }\n texSubImageArray(gl, x_off, y_off, mip_level, this.format, this.type, this._mipLevels, data)\n } else {\n throw new Error('gl-texture2d: Unsupported data type')\n }\n}\n\n\nfunction isPacked(shape, stride) {\n if(shape.length === 3) {\n return (stride[2] === 1) &&\n (stride[1] === shape[0]*shape[2]) &&\n (stride[0] === shape[2])\n }\n return (stride[0] === 1) &&\n (stride[1] === shape[0])\n}\n\nfunction texSubImageArray(gl, x_off, y_off, mip_level, cformat, ctype, mipLevels, array) {\n var dtype = array.dtype\n var shape = array.shape.slice()\n if(shape.length < 2 || shape.length > 3) {\n throw new Error('gl-texture2d: Invalid ndarray, must be 2d or 3d')\n }\n var type = 0, format = 0\n var packed = isPacked(shape, array.stride.slice())\n if(dtype === 'float32') {\n type = gl.FLOAT\n } else if(dtype === 'float64') {\n type = gl.FLOAT\n packed = false\n dtype = 'float32'\n } else if(dtype === 'uint8') {\n type = gl.UNSIGNED_BYTE\n } else {\n type = gl.UNSIGNED_BYTE\n packed = false\n dtype = 'uint8'\n }\n var channels = 1\n if(shape.length === 2) {\n format = gl.LUMINANCE\n shape = [shape[0], shape[1], 1]\n array = ndarray(array.data, shape, [array.stride[0], array.stride[1], 1], array.offset)\n } else if(shape.length === 3) {\n if(shape[2] === 1) {\n format = gl.ALPHA\n } else if(shape[2] === 2) {\n format = gl.LUMINANCE_ALPHA\n } else if(shape[2] === 3) {\n format = gl.RGB\n } else if(shape[2] === 4) {\n format = gl.RGBA\n } else {\n throw new Error('gl-texture2d: Invalid shape for pixel coords')\n }\n channels = shape[2]\n } else {\n throw new Error('gl-texture2d: Invalid shape for texture')\n }\n //For 1-channel textures allow conversion between formats\n if((format === gl.LUMINANCE || format === gl.ALPHA) &&\n (cformat === gl.LUMINANCE || cformat === gl.ALPHA)) {\n format = cformat\n }\n if(format !== cformat) {\n throw new Error('gl-texture2d: Incompatible texture format for setPixels')\n }\n var size = array.size\n var needsMip = mipLevels.indexOf(mip_level) < 0\n if(needsMip) {\n mipLevels.push(mip_level)\n }\n if(type === ctype && packed) {\n //Array data types are compatible, can directly copy into texture\n if(array.offset === 0 && array.data.length === size) {\n if(needsMip) {\n gl.texImage2D(gl.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, array.data)\n } else {\n gl.texSubImage2D(gl.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, array.data)\n }\n } else {\n if(needsMip) {\n gl.texImage2D(gl.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, array.data.subarray(array.offset, array.offset+size))\n } else {\n gl.texSubImage2D(gl.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, array.data.subarray(array.offset, array.offset+size))\n }\n }\n } else {\n //Need to do type conversion to pack data into buffer\n var pack_buffer\n if(ctype === gl.FLOAT) {\n pack_buffer = pool.mallocFloat32(size)\n } else {\n pack_buffer = pool.mallocUint8(size)\n }\n var pack_view = ndarray(pack_buffer, shape, [shape[2], shape[2]*shape[0], 1])\n if(type === gl.FLOAT && ctype === gl.UNSIGNED_BYTE) {\n convertFloatToUint8(pack_view, array)\n } else {\n ops.assign(pack_view, array)\n }\n if(needsMip) {\n gl.texImage2D(gl.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, pack_buffer.subarray(0, size))\n } else {\n gl.texSubImage2D(gl.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, pack_buffer.subarray(0, size))\n }\n if(ctype === gl.FLOAT) {\n pool.freeFloat32(pack_buffer)\n } else {\n pool.freeUint8(pack_buffer)\n }\n }\n}\n\nfunction initTexture(gl) {\n var tex = gl.createTexture()\n gl.bindTexture(gl.TEXTURE_2D, tex)\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST)\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST)\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE)\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE)\n return tex\n}\n\nfunction createTextureShape(gl, width, height, format, type) {\n var maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE)\n if(width < 0 || width > maxTextureSize || height < 0 || height > maxTextureSize) {\n throw new Error('gl-texture2d: Invalid texture shape')\n }\n if(type === gl.FLOAT && !gl.getExtension('OES_texture_float')) {\n throw new Error('gl-texture2d: Floating point textures not supported on this platform')\n }\n var tex = initTexture(gl)\n gl.texImage2D(gl.TEXTURE_2D, 0, format, width, height, 0, format, type, null)\n return new Texture2D(gl, tex, width, height, format, type)\n}\n\nfunction createTextureDOM(gl, directData, width, height, format, type) {\n var tex = initTexture(gl)\n gl.texImage2D(gl.TEXTURE_2D, 0, format, format, type, directData)\n return new Texture2D(gl, tex, width, height, format, type)\n}\n\n//Creates a texture from an ndarray\nfunction createTextureArray(gl, array) {\n var dtype = array.dtype\n var shape = array.shape.slice()\n var maxSize = gl.getParameter(gl.MAX_TEXTURE_SIZE)\n if(shape[0] < 0 || shape[0] > maxSize || shape[1] < 0 || shape[1] > maxSize) {\n throw new Error('gl-texture2d: Invalid texture size')\n }\n var packed = isPacked(shape, array.stride.slice())\n var type = 0\n if(dtype === 'float32') {\n type = gl.FLOAT\n } else if(dtype === 'float64') {\n type = gl.FLOAT\n packed = false\n dtype = 'float32'\n } else if(dtype === 'uint8') {\n type = gl.UNSIGNED_BYTE\n } else {\n type = gl.UNSIGNED_BYTE\n packed = false\n dtype = 'uint8'\n }\n var format = 0\n if(shape.length === 2) {\n format = gl.LUMINANCE\n shape = [shape[0], shape[1], 1]\n array = ndarray(array.data, shape, [array.stride[0], array.stride[1], 1], array.offset)\n } else if(shape.length === 3) {\n if(shape[2] === 1) {\n format = gl.ALPHA\n } else if(shape[2] === 2) {\n format = gl.LUMINANCE_ALPHA\n } else if(shape[2] === 3) {\n format = gl.RGB\n } else if(shape[2] === 4) {\n format = gl.RGBA\n } else {\n throw new Error('gl-texture2d: Invalid shape for pixel coords')\n }\n } else {\n throw new Error('gl-texture2d: Invalid shape for texture')\n }\n if(type === gl.FLOAT && !gl.getExtension('OES_texture_float')) {\n type = gl.UNSIGNED_BYTE\n packed = false\n }\n var buffer, buf_store\n var size = array.size\n if(!packed) {\n var stride = [shape[2], shape[2]*shape[0], 1]\n buf_store = pool.malloc(size, dtype)\n var buf_array = ndarray(buf_store, shape, stride, 0)\n if((dtype === 'float32' || dtype === 'float64') && type === gl.UNSIGNED_BYTE) {\n convertFloatToUint8(buf_array, array)\n } else {\n ops.assign(buf_array, array)\n }\n buffer = buf_store.subarray(0, size)\n } else if (array.offset === 0 && array.data.length === size) {\n buffer = array.data\n } else {\n buffer = array.data.subarray(array.offset, array.offset + size)\n }\n var tex = initTexture(gl)\n gl.texImage2D(gl.TEXTURE_2D, 0, format, shape[0], shape[1], 0, format, type, buffer)\n if(!packed) {\n pool.free(buf_store)\n }\n return new Texture2D(gl, tex, shape[0], shape[1], format, type)\n}\n\nfunction createTexture2D(gl) {\n if(arguments.length <= 1) {\n throw new Error('gl-texture2d: Missing arguments for texture2d constructor')\n }\n if(!linearTypes) {\n lazyInitLinearTypes(gl)\n }\n if(typeof arguments[1] === 'number') {\n return createTextureShape(gl, arguments[1], arguments[2], arguments[3]||gl.RGBA, arguments[4]||gl.UNSIGNED_BYTE)\n }\n if(Array.isArray(arguments[1])) {\n return createTextureShape(gl, arguments[1][0]|0, arguments[1][1]|0, arguments[2]||gl.RGBA, arguments[3]||gl.UNSIGNED_BYTE)\n }\n if(typeof arguments[1] === 'object') {\n var obj = arguments[1]\n var directData = acceptTextureDOM(obj) ? obj : obj.raw\n if (directData) {\n return createTextureDOM(gl, directData, obj.width|0, obj.height|0, arguments[2]||gl.RGBA, arguments[3]||gl.UNSIGNED_BYTE)\n } else if(obj.shape && obj.data && obj.stride) {\n return createTextureArray(gl, obj)\n }\n }\n throw new Error('gl-texture2d: Invalid arguments for texture2d constructor')\n}\n\n\n/***/ }),\n\n/***/ \"1d80\":\n/***/ (function(module, exports) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"1d9e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Color = __webpack_require__(\"d115\");\nvar Colorscale = __webpack_require__(\"c258\");\n\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\nvar makeBlank = __webpack_require__(\"2169\").makeBlank;\n\nmodule.exports = function convert(calcTrace) {\n var trace = calcTrace[0].trace;\n var isVisible = (trace.visible === true && trace._length !== 0);\n\n var heatmap = {\n layout: {visibility: 'none'},\n paint: {}\n };\n\n var opts = trace._opts = {\n heatmap: heatmap,\n geojson: makeBlank()\n };\n\n // early return if not visible or placeholder\n if(!isVisible) return opts;\n\n var features = [];\n var i;\n\n var z = trace.z;\n var radius = trace.radius;\n var hasZ = Lib.isArrayOrTypedArray(z) && z.length;\n var hasArrayRadius = Lib.isArrayOrTypedArray(radius);\n\n for(i = 0; i < calcTrace.length; i++) {\n var cdi = calcTrace[i];\n var lonlat = cdi.lonlat;\n\n if(lonlat[0] !== BADNUM) {\n var props = {};\n\n if(hasZ) {\n var zi = cdi.z;\n props.z = zi !== BADNUM ? zi : 0;\n }\n if(hasArrayRadius) {\n props.r = (isNumeric(radius[i]) && radius[i] > 0) ? +radius[i] : 0;\n }\n\n features.push({\n type: 'Feature',\n geometry: {type: 'Point', coordinates: lonlat},\n properties: props\n });\n }\n }\n\n var cOpts = Colorscale.extractOpts(trace);\n var scl = cOpts.reversescale ?\n Colorscale.flipScale(cOpts.colorscale) :\n cOpts.colorscale;\n\n // Add alpha channel to first colorscale step.\n // If not, we would essentially color the entire map.\n // See https://docs.mapbox.com/mapbox-gl-js/example/heatmap-layer/\n var scl01 = scl[0][1];\n var color0 = Color.opacity(scl01) < 1 ? scl01 : Color.addOpacity(scl01, 0);\n\n var heatmapColor = [\n 'interpolate', ['linear'],\n ['heatmap-density'],\n 0, color0\n ];\n for(i = 1; i < scl.length; i++) {\n heatmapColor.push(scl[i][0], scl[i][1]);\n }\n\n // Those \"weights\" have to be in [0, 1], we can do this either:\n // - as here using a mapbox-gl expression\n // - or, scale the 'z' property in the feature loop\n var zExp = [\n 'interpolate', ['linear'],\n ['get', 'z'],\n cOpts.min, 0,\n cOpts.max, 1\n ];\n\n Lib.extendFlat(opts.heatmap.paint, {\n 'heatmap-weight': hasZ ? zExp : 1 / (cOpts.max - cOpts.min),\n\n 'heatmap-color': heatmapColor,\n\n 'heatmap-radius': hasArrayRadius ?\n {type: 'identity', property: 'r'} :\n trace.radius,\n\n 'heatmap-opacity': trace.opacity\n });\n\n opts.geojson = {type: 'FeatureCollection', features: features};\n opts.heatmap.layout.visibility = 'visible';\n\n return opts;\n};\n\n\n/***/ }),\n\n/***/ \"1db7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar c = __webpack_require__(\"f7a4\");\nvar d3 = __webpack_require__(\"6e58\");\nvar keyFun = __webpack_require__(\"0a3e\").keyFun;\nvar repeat = __webpack_require__(\"0a3e\").repeat;\nvar sortAsc = __webpack_require__(\"fc26\").sorterAsc;\n\nvar snapRatio = c.bar.snapRatio;\nfunction snapOvershoot(v, vAdjacent) { return v * (1 - snapRatio) + vAdjacent * snapRatio; }\n\nvar snapClose = c.bar.snapClose;\nfunction closeToCovering(v, vAdjacent) { return v * (1 - snapClose) + vAdjacent * snapClose; }\n\n// snap for the low end of a range on an ordinal scale\n// on an ordinal scale, always show some overshoot from the exact value,\n// so it's clear we're covering it\n// find the interval we're in, and snap to 1/4 the distance to the next\n// these two could be unified at a slight loss of readability / perf\nfunction ordinalScaleSnap(isHigh, a, v, existingRanges) {\n if(overlappingExisting(v, existingRanges)) return v;\n\n var dir = isHigh ? -1 : 1;\n\n var first = 0;\n var last = a.length - 1;\n if(dir < 0) {\n var tmp = first;\n first = last;\n last = tmp;\n }\n\n var aHere = a[first];\n var aPrev = aHere;\n for(var i = first; dir * i < dir * last; i += dir) {\n var nextI = i + dir;\n var aNext = a[nextI];\n\n // very close to the previous - snap down to it\n if(dir * v < dir * closeToCovering(aHere, aNext)) return snapOvershoot(aHere, aPrev);\n if(dir * v < dir * aNext || nextI === last) return snapOvershoot(aNext, aHere);\n\n aPrev = aHere;\n aHere = aNext;\n }\n}\n\nfunction overlappingExisting(v, existingRanges) {\n for(var i = 0; i < existingRanges.length; i++) {\n if(v >= existingRanges[i][0] && v <= existingRanges[i][1]) return true;\n }\n return false;\n}\n\nfunction barHorizontalSetup(selection) {\n selection\n .attr('x', -c.bar.captureWidth / 2)\n .attr('width', c.bar.captureWidth);\n}\n\nfunction backgroundBarHorizontalSetup(selection) {\n selection\n .attr('visibility', 'visible')\n .style('visibility', 'visible')\n .attr('fill', 'yellow')\n .attr('opacity', 0);\n}\n\nfunction setHighlight(d) {\n if(!d.brush.filterSpecified) {\n return '0,' + d.height;\n }\n\n var pixelRanges = unitToPx(d.brush.filter.getConsolidated(), d.height);\n var dashArray = [0]; // we start with a 0 length selection as filter ranges are inclusive, not exclusive\n var p, sectionHeight, iNext;\n var currentGap = pixelRanges.length ? pixelRanges[0][0] : null;\n for(var i = 0; i < pixelRanges.length; i++) {\n p = pixelRanges[i];\n sectionHeight = p[1] - p[0];\n dashArray.push(currentGap);\n dashArray.push(sectionHeight);\n iNext = i + 1;\n if(iNext < pixelRanges.length) {\n currentGap = pixelRanges[iNext][0] - p[1];\n }\n }\n dashArray.push(d.height);\n // d.height is added at the end to ensure that (1) we have an even number of dasharray points, MDN page says\n // \"If an odd number of values is provided, then the list of values is repeated to yield an even number of values.\"\n // and (2) it's _at least_ as long as the full height (even if range is minuscule and at the bottom) though this\n // may not be necessary, maybe duplicating the last point would do too. But no harm in a longer dasharray than line.\n return dashArray;\n}\n\nfunction unitToPx(unitRanges, height) {\n return unitRanges.map(function(pr) {\n return pr.map(function(v) { return Math.max(0, v * height); }).sort(sortAsc);\n });\n}\n\n// is the cursor over the north, middle, or south of a bar?\n// the end handles extend over the last 10% of the bar\nfunction getRegion(fPix, y) {\n var pad = c.bar.handleHeight;\n if(y > fPix[1] + pad || y < fPix[0] - pad) return;\n if(y >= 0.9 * fPix[1] + 0.1 * fPix[0]) return 'n';\n if(y <= 0.9 * fPix[0] + 0.1 * fPix[1]) return 's';\n return 'ns';\n}\n\nfunction clearCursor() {\n d3.select(document.body)\n .style('cursor', null);\n}\n\nfunction styleHighlight(selection) {\n // stroke-dasharray is used to minimize the number of created DOM nodes, because the requirement calls for up to\n // 1000 individual selections on an axis, and there can be 60 axes per parcoords, and multiple parcoords per\n // dashboard. The technique is similar to https://codepen.io/monfera/pen/rLYqWR and using a `polyline` with\n // multiple sections, or a `path` element via its `d` attribute would also be DOM-sparing alternatives.\n selection.attr('stroke-dasharray', setHighlight);\n}\n\nfunction renderHighlight(root, tweenCallback) {\n var bar = d3.select(root).selectAll('.highlight, .highlight-shadow');\n var barToStyle = tweenCallback ? bar.transition().duration(c.bar.snapDuration).each('end', tweenCallback) : bar;\n styleHighlight(barToStyle);\n}\n\nfunction getInterval(d, y) {\n var b = d.brush;\n var active = b.filterSpecified;\n var closestInterval = NaN;\n var out = {};\n var i;\n\n if(active) {\n var height = d.height;\n var intervals = b.filter.getConsolidated();\n var pixIntervals = unitToPx(intervals, height);\n var hoveredInterval = NaN;\n var previousInterval = NaN;\n var nextInterval = NaN;\n for(i = 0; i <= pixIntervals.length; i++) {\n var p = pixIntervals[i];\n if(p && p[0] <= y && y <= p[1]) {\n // over a bar\n hoveredInterval = i;\n break;\n } else {\n // between bars, or before/after the first/last bar\n previousInterval = i ? i - 1 : NaN;\n if(p && p[0] > y) {\n nextInterval = i;\n break; // no point continuing as intervals are non-overlapping and sorted; could use log search\n }\n }\n }\n\n closestInterval = hoveredInterval;\n if(isNaN(closestInterval)) {\n if(isNaN(previousInterval) || isNaN(nextInterval)) {\n closestInterval = isNaN(previousInterval) ? nextInterval : previousInterval;\n } else {\n closestInterval = (y - pixIntervals[previousInterval][1] < pixIntervals[nextInterval][0] - y) ?\n previousInterval : nextInterval;\n }\n }\n\n if(!isNaN(closestInterval)) {\n var fPix = pixIntervals[closestInterval];\n var region = getRegion(fPix, y);\n\n if(region) {\n out.interval = intervals[closestInterval];\n out.intervalPix = fPix;\n out.region = region;\n }\n }\n }\n\n if(d.ordinal && !out.region) {\n var a = d.unitTickvals;\n var unitLocation = d.unitToPaddedPx.invert(y);\n for(i = 0; i < a.length; i++) {\n var rangei = [\n a[Math.max(i - 1, 0)] * 0.25 + a[i] * 0.75,\n a[Math.min(i + 1, a.length - 1)] * 0.25 + a[i] * 0.75\n ];\n if(unitLocation >= rangei[0] && unitLocation <= rangei[1]) {\n out.clickableOrdinalRange = rangei;\n break;\n }\n }\n }\n\n return out;\n}\n\nfunction dragstart(lThis, d) {\n d3.event.sourceEvent.stopPropagation();\n var y = d.height - d3.mouse(lThis)[1] - 2 * c.verticalPadding;\n var unitLocation = d.unitToPaddedPx.invert(y);\n var b = d.brush;\n var interval = getInterval(d, y);\n var unitRange = interval.interval;\n var s = b.svgBrush;\n s.wasDragged = false; // we start assuming there won't be a drag - useful for reset\n s.grabbingBar = interval.region === 'ns';\n if(s.grabbingBar) {\n var pixelRange = unitRange.map(d.unitToPaddedPx);\n s.grabPoint = y - pixelRange[0] - c.verticalPadding;\n s.barLength = pixelRange[1] - pixelRange[0];\n }\n s.clickableOrdinalRange = interval.clickableOrdinalRange;\n s.stayingIntervals = (d.multiselect && b.filterSpecified) ? b.filter.getConsolidated() : [];\n if(unitRange) {\n s.stayingIntervals = s.stayingIntervals.filter(function(int2) {\n return int2[0] !== unitRange[0] && int2[1] !== unitRange[1];\n });\n }\n s.startExtent = interval.region ? unitRange[interval.region === 's' ? 1 : 0] : unitLocation;\n d.parent.inBrushDrag = true;\n s.brushStartCallback();\n}\n\nfunction drag(lThis, d) {\n d3.event.sourceEvent.stopPropagation();\n var y = d.height - d3.mouse(lThis)[1] - 2 * c.verticalPadding;\n var s = d.brush.svgBrush;\n s.wasDragged = true;\n s._dragging = true;\n\n if(s.grabbingBar) { // moving the bar\n s.newExtent = [y - s.grabPoint, y + s.barLength - s.grabPoint].map(d.unitToPaddedPx.invert);\n } else { // south/north drag or new bar creation\n s.newExtent = [s.startExtent, d.unitToPaddedPx.invert(y)].sort(sortAsc);\n }\n\n d.brush.filterSpecified = true;\n s.extent = s.stayingIntervals.concat([s.newExtent]);\n s.brushCallback(d);\n renderHighlight(lThis.parentNode);\n}\n\nfunction dragend(lThis, d) {\n var brush = d.brush;\n var filter = brush.filter;\n var s = brush.svgBrush;\n\n if(!s._dragging) { // i.e. click\n // mock zero drag\n mousemove(lThis, d);\n drag(lThis, d);\n // remember it is a click not a drag\n d.brush.svgBrush.wasDragged = false;\n }\n s._dragging = false;\n\n var e = d3.event;\n e.sourceEvent.stopPropagation();\n var grabbingBar = s.grabbingBar;\n s.grabbingBar = false;\n s.grabLocation = undefined;\n d.parent.inBrushDrag = false;\n clearCursor(); // instead of clearing, a nicer thing would be to set it according to current location\n if(!s.wasDragged) { // a click+release on the same spot (ie. w/o dragging) means a bar or full reset\n s.wasDragged = undefined; // logic-wise unneeded, just shows `wasDragged` has no longer a meaning\n if(s.clickableOrdinalRange) {\n if(brush.filterSpecified && d.multiselect) {\n s.extent.push(s.clickableOrdinalRange);\n } else {\n s.extent = [s.clickableOrdinalRange];\n brush.filterSpecified = true;\n }\n } else if(grabbingBar) {\n s.extent = s.stayingIntervals;\n if(s.extent.length === 0) {\n brushClear(brush);\n }\n } else {\n brushClear(brush);\n }\n s.brushCallback(d);\n renderHighlight(lThis.parentNode);\n s.brushEndCallback(brush.filterSpecified ? filter.getConsolidated() : []);\n return; // no need to fuse intervals or snap to ordinals, so we can bail early\n }\n\n var mergeIntervals = function() {\n // Key piece of logic: once the button is released, possibly overlapping intervals will be fused:\n // Here it's done immediately on click release while on ordinal snap transition it's done at the end\n filter.set(filter.getConsolidated());\n };\n\n if(d.ordinal) {\n var a = d.unitTickvals;\n if(a[a.length - 1] < a[0]) a.reverse();\n s.newExtent = [\n ordinalScaleSnap(0, a, s.newExtent[0], s.stayingIntervals),\n ordinalScaleSnap(1, a, s.newExtent[1], s.stayingIntervals)\n ];\n var hasNewExtent = s.newExtent[1] > s.newExtent[0];\n s.extent = s.stayingIntervals.concat(hasNewExtent ? [s.newExtent] : []);\n if(!s.extent.length) {\n brushClear(brush);\n }\n s.brushCallback(d);\n if(hasNewExtent) {\n // merging intervals post the snap tween\n renderHighlight(lThis.parentNode, mergeIntervals);\n } else {\n // if no new interval, don't animate, just redraw the highlight immediately\n mergeIntervals();\n renderHighlight(lThis.parentNode);\n }\n } else {\n mergeIntervals(); // merging intervals immediately\n }\n s.brushEndCallback(brush.filterSpecified ? filter.getConsolidated() : []);\n}\n\nfunction mousemove(lThis, d) {\n var y = d.height - d3.mouse(lThis)[1] - 2 * c.verticalPadding;\n var interval = getInterval(d, y);\n\n var cursor = 'crosshair';\n if(interval.clickableOrdinalRange) cursor = 'pointer';\n else if(interval.region) cursor = interval.region + '-resize';\n d3.select(document.body)\n .style('cursor', cursor);\n}\n\nfunction attachDragBehavior(selection) {\n // There's some fiddling with pointer cursor styling so that the cursor preserves its shape while dragging a brush\n // even if the cursor strays from the interacting bar, which is bound to happen as bars are thin and the user\n // will inevitably leave the hotspot strip. In this regard, it does something similar to what the D3 brush would do.\n selection\n .on('mousemove', function(d) {\n d3.event.preventDefault();\n if(!d.parent.inBrushDrag) mousemove(this, d);\n })\n .on('mouseleave', function(d) {\n if(!d.parent.inBrushDrag) clearCursor();\n })\n .call(d3.behavior.drag()\n .on('dragstart', function(d) { dragstart(this, d); })\n .on('drag', function(d) { drag(this, d); })\n .on('dragend', function(d) { dragend(this, d); })\n );\n}\n\nfunction startAsc(a, b) { return a[0] - b[0]; }\n\nfunction renderAxisBrush(axisBrush) {\n var background = axisBrush.selectAll('.background').data(repeat);\n\n background.enter()\n .append('rect')\n .classed('background', true)\n .call(barHorizontalSetup)\n .call(backgroundBarHorizontalSetup)\n .style('pointer-events', 'auto') // parent pointer events are disabled; we must have it to register events\n .attr('transform', 'translate(0 ' + c.verticalPadding + ')');\n\n background\n .call(attachDragBehavior)\n .attr('height', function(d) {\n return d.height - c.verticalPadding;\n });\n\n var highlightShadow = axisBrush.selectAll('.highlight-shadow').data(repeat); // we have a set here, can't call it `extent`\n\n highlightShadow.enter()\n .append('line')\n .classed('highlight-shadow', true)\n .attr('x', -c.bar.width / 2)\n .attr('stroke-width', c.bar.width + c.bar.strokeWidth)\n .attr('stroke', c.bar.strokeColor)\n .attr('opacity', c.bar.strokeOpacity)\n .attr('stroke-linecap', 'butt');\n\n highlightShadow\n .attr('y1', function(d) { return d.height; })\n .call(styleHighlight);\n\n var highlight = axisBrush.selectAll('.highlight').data(repeat); // we have a set here, can't call it `extent`\n\n highlight.enter()\n .append('line')\n .classed('highlight', true)\n .attr('x', -c.bar.width / 2)\n .attr('stroke-width', c.bar.width - c.bar.strokeWidth)\n .attr('stroke', c.bar.fillColor)\n .attr('opacity', c.bar.fillOpacity)\n .attr('stroke-linecap', 'butt');\n\n highlight\n .attr('y1', function(d) { return d.height; })\n .call(styleHighlight);\n}\n\nfunction ensureAxisBrush(axisOverlays) {\n var axisBrush = axisOverlays.selectAll('.' + c.cn.axisBrush)\n .data(repeat, keyFun);\n\n axisBrush.enter()\n .append('g')\n .classed(c.cn.axisBrush, true);\n\n renderAxisBrush(axisBrush);\n}\n\nfunction getBrushExtent(brush) {\n return brush.svgBrush.extent.map(function(e) {return e.slice();});\n}\n\nfunction brushClear(brush) {\n brush.filterSpecified = false;\n brush.svgBrush.extent = [[-Infinity, Infinity]];\n}\n\nfunction axisBrushMoved(callback) {\n return function axisBrushMoved(dimension) {\n var brush = dimension.brush;\n var extent = getBrushExtent(brush);\n var newExtent = extent.slice();\n brush.filter.set(newExtent);\n callback();\n };\n}\n\nfunction dedupeRealRanges(intervals) {\n // Fuses elements of intervals if they overlap, yielding discontiguous intervals, results.length <= intervals.length\n // Currently uses closed intervals, ie. dedupeRealRanges([[400, 800], [300, 400]]) -> [300, 800]\n var queue = intervals.slice();\n var result = [];\n var currentInterval;\n var current = queue.shift();\n while(current) { // [].shift === undefined, so we don't descend into an empty array\n currentInterval = current.slice();\n while((current = queue.shift()) && current[0] <= /* right-open interval would need `<` */ currentInterval[1]) {\n currentInterval[1] = Math.max(currentInterval[1], current[1]);\n }\n result.push(currentInterval);\n }\n return result;\n}\n\nfunction makeFilter() {\n var filter = [];\n var consolidated;\n var bounds;\n return {\n set: function(a) {\n filter = a\n .map(function(d) { return d.slice().sort(sortAsc); })\n .sort(startAsc);\n\n // handle unselected case\n if(filter.length === 1 &&\n filter[0][0] === -Infinity &&\n filter[0][1] === Infinity) {\n filter = [[0, -1]];\n }\n\n consolidated = dedupeRealRanges(filter);\n bounds = filter.reduce(function(p, n) {\n return [Math.min(p[0], n[0]), Math.max(p[1], n[1])];\n }, [Infinity, -Infinity]);\n },\n get: function() { return filter.slice(); },\n getConsolidated: function() { return consolidated; },\n getBounds: function() { return bounds; }\n };\n}\n\nfunction makeBrush(state, rangeSpecified, initialRange, brushStartCallback, brushCallback, brushEndCallback) {\n var filter = makeFilter();\n filter.set(initialRange);\n return {\n filter: filter,\n filterSpecified: rangeSpecified, // there's a difference between not filtering and filtering a non-proper subset\n svgBrush: {\n extent: [], // this is where the svgBrush writes contents into\n brushStartCallback: brushStartCallback,\n brushCallback: axisBrushMoved(brushCallback),\n brushEndCallback: brushEndCallback\n }\n };\n}\n\n// for use by supplyDefaults, but it needed tons of pieces from here so\n// seemed to make more sense just to put the whole routine here\nfunction cleanRanges(ranges, dimension) {\n if(Array.isArray(ranges[0])) {\n ranges = ranges.map(function(ri) { return ri.sort(sortAsc); });\n\n if(!dimension.multiselect) ranges = [ranges[0]];\n else ranges = dedupeRealRanges(ranges.sort(startAsc));\n } else ranges = [ranges.sort(sortAsc)];\n\n // ordinal snapping\n if(dimension.tickvals) {\n var sortedTickVals = dimension.tickvals.slice().sort(sortAsc);\n ranges = ranges.map(function(ri) {\n var rSnapped = [\n ordinalScaleSnap(0, sortedTickVals, ri[0], []),\n ordinalScaleSnap(1, sortedTickVals, ri[1], [])\n ];\n if(rSnapped[1] > rSnapped[0]) return rSnapped;\n })\n .filter(function(ri) { return ri; });\n\n if(!ranges.length) return;\n }\n return ranges.length > 1 ? ranges : ranges[0];\n}\n\nmodule.exports = {\n makeBrush: makeBrush,\n ensureAxisBrush: ensureAxisBrush,\n cleanRanges: cleanRanges\n};\n\n\n/***/ }),\n\n/***/ \"1db7e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar hasColorscale = __webpack_require__(\"215c\").hasColorscale;\nvar extractOpts = __webpack_require__(\"215c\").extractOpts;\n\nmodule.exports = function crossTraceDefaults(fullData, fullLayout) {\n function replace(cont, k) {\n var val = cont['_' + k];\n if(val !== undefined) {\n cont[k] = val;\n }\n }\n\n function relinkColorAttrs(outerCont, cbOpt) {\n var cont = cbOpt.container ?\n Lib.nestedProperty(outerCont, cbOpt.container).get() :\n outerCont;\n\n if(cont) {\n if(cont.coloraxis) {\n // stash ref to color axis\n cont._colorAx = fullLayout[cont.coloraxis];\n } else {\n var cOpts = extractOpts(cont);\n var isAuto = cOpts.auto;\n\n if(isAuto || cOpts.min === undefined) {\n replace(cont, cbOpt.min);\n }\n if(isAuto || cOpts.max === undefined) {\n replace(cont, cbOpt.max);\n }\n if(cOpts.autocolorscale) {\n replace(cont, 'colorscale');\n }\n }\n }\n }\n\n for(var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n var cbOpts = trace._module.colorbar;\n\n if(cbOpts) {\n if(Array.isArray(cbOpts)) {\n for(var j = 0; j < cbOpts.length; j++) {\n relinkColorAttrs(trace, cbOpts[j]);\n }\n } else {\n relinkColorAttrs(trace, cbOpts);\n }\n }\n\n if(hasColorscale(trace, 'marker.line')) {\n relinkColorAttrs(trace, {\n container: 'marker.line',\n min: 'cmin',\n max: 'cmax'\n });\n }\n }\n\n for(var k in fullLayout._colorAxes) {\n relinkColorAttrs(fullLayout[k], {min: 'cmin', max: 'cmax'});\n }\n};\n\n\n/***/ }),\n\n/***/ \"1ddb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bindAttribs = __webpack_require__(\"8c75\")\n\nfunction VAOEmulated(gl) {\n this.gl = gl\n this._elements = null\n this._attributes = null\n this._elementsType = gl.UNSIGNED_SHORT\n}\n\nVAOEmulated.prototype.bind = function() {\n bindAttribs(this.gl, this._elements, this._attributes)\n}\n\nVAOEmulated.prototype.update = function(attributes, elements, elementsType) {\n this._elements = elements\n this._attributes = attributes\n this._elementsType = elementsType || this.gl.UNSIGNED_SHORT\n}\n\nVAOEmulated.prototype.dispose = function() { }\nVAOEmulated.prototype.unbind = function() { }\n\nVAOEmulated.prototype.draw = function(mode, count, offset) {\n offset = offset || 0\n var gl = this.gl\n if(this._elements) {\n gl.drawElements(mode, count, this._elementsType, offset)\n } else {\n gl.drawArrays(mode, offset, count)\n }\n}\n\nfunction createVAOEmulated(gl) {\n return new VAOEmulated(gl)\n}\n\nmodule.exports = createVAOEmulated\n\n/***/ }),\n\n/***/ \"1dde\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar V8_VERSION = __webpack_require__(\"2d00\");\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n\n\n/***/ }),\n\n/***/ \"1e03\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n moduleType: 'locale',\n name: 'en-US',\n dictionary: {\n 'Click to enter Colorscale title': 'Click to enter Colorscale title'\n },\n format: {\n date: '%m/%d/%Y'\n }\n};\n\n\n/***/ }),\n\n/***/ \"1e0a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (value) {\n\ttry {\n\t\treturn value.toString();\n\t} catch (error) {\n\t\ttry { return String(value); }\n\t\tcatch (error2) { return null; }\n\t}\n};\n\n\n/***/ }),\n\n/***/ \"1ea6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n moduleType: 'locale',\n name: 'en',\n dictionary: {\n 'Click to enter Colorscale title': 'Click to enter Colourscale title'\n },\n format: {\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n months: [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'\n ],\n shortMonths: [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ],\n periods: ['AM', 'PM'],\n dateTime: '%a %b %e %X %Y',\n date: '%d/%m/%Y',\n time: '%H:%M:%S',\n decimal: '.',\n thousands: ',',\n grouping: [3],\n currency: ['$', ''],\n year: '%Y',\n month: '%b %Y',\n dayMonth: '%b %-d',\n dayMonthYear: '%b %-d, %Y'\n }\n};\n\n\n/***/ }),\n\n/***/ \"1ebf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar scatterAttrs = __webpack_require__(\"107c\");\nvar barAttrs = __webpack_require__(\"fb5a\");\nvar colorAttrs = __webpack_require__(\"dfb3\");\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nvar scatterMarkerAttrs = scatterAttrs.marker;\nvar scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n\nmodule.exports = {\n y: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n x: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n x0: {\n valType: 'any',\n \n editType: 'calc+clearAxisTypes',\n \n },\n y0: {\n valType: 'any',\n \n editType: 'calc+clearAxisTypes',\n \n },\n\n dx: {\n valType: 'number',\n \n editType: 'calc',\n \n },\n dy: {\n valType: 'number',\n \n editType: 'calc',\n \n },\n\n name: {\n valType: 'string',\n \n editType: 'calc+clearAxisTypes',\n \n },\n\n q1: {\n valType: 'data_array',\n \n editType: 'calc+clearAxisTypes',\n \n },\n median: {\n valType: 'data_array',\n \n editType: 'calc+clearAxisTypes',\n \n },\n q3: {\n valType: 'data_array',\n \n editType: 'calc+clearAxisTypes',\n \n },\n lowerfence: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n upperfence: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n\n notched: {\n valType: 'boolean',\n \n editType: 'calc',\n \n },\n notchwidth: {\n valType: 'number',\n min: 0,\n max: 0.5,\n dflt: 0.25,\n \n editType: 'calc',\n \n },\n notchspan: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n\n // TODO\n // maybe add\n // - loweroutlierbound / upperoutlierbound\n // - lowersuspectedoutlierbound / uppersuspectedoutlierbound\n\n boxpoints: {\n valType: 'enumerated',\n values: ['all', 'outliers', 'suspectedoutliers', false],\n \n editType: 'calc',\n \n },\n jitter: {\n valType: 'number',\n min: 0,\n max: 1,\n \n editType: 'calc',\n \n },\n pointpos: {\n valType: 'number',\n min: -2,\n max: 2,\n \n editType: 'calc',\n \n },\n\n boxmean: {\n valType: 'enumerated',\n values: [true, 'sd', false],\n \n editType: 'calc',\n \n },\n mean: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n sd: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n\n orientation: {\n valType: 'enumerated',\n values: ['v', 'h'],\n \n editType: 'calc+clearAxisTypes',\n \n },\n\n quartilemethod: {\n valType: 'enumerated',\n values: ['linear', 'exclusive', 'inclusive'],\n dflt: 'linear',\n \n editType: 'calc',\n \n },\n\n width: {\n valType: 'number',\n min: 0,\n \n dflt: 0,\n editType: 'calc',\n \n },\n\n marker: {\n outliercolor: {\n valType: 'color',\n dflt: 'rgba(0, 0, 0, 0)',\n \n editType: 'style',\n \n },\n symbol: extendFlat({}, scatterMarkerAttrs.symbol,\n {arrayOk: false, editType: 'plot'}),\n opacity: extendFlat({}, scatterMarkerAttrs.opacity,\n {arrayOk: false, dflt: 1, editType: 'style'}),\n size: extendFlat({}, scatterMarkerAttrs.size,\n {arrayOk: false, editType: 'calc'}),\n color: extendFlat({}, scatterMarkerAttrs.color,\n {arrayOk: false, editType: 'style'}),\n line: {\n color: extendFlat({}, scatterMarkerLineAttrs.color,\n {arrayOk: false, dflt: colorAttrs.defaultLine, editType: 'style'}\n ),\n width: extendFlat({}, scatterMarkerLineAttrs.width,\n {arrayOk: false, dflt: 0, editType: 'style'}\n ),\n outliercolor: {\n valType: 'color',\n \n editType: 'style',\n \n },\n outlierwidth: {\n valType: 'number',\n min: 0,\n dflt: 1,\n \n editType: 'style',\n \n },\n editType: 'style'\n },\n editType: 'plot'\n },\n\n line: {\n color: {\n valType: 'color',\n \n editType: 'style',\n \n },\n width: {\n valType: 'number',\n \n min: 0,\n dflt: 2,\n editType: 'style',\n \n },\n editType: 'plot'\n },\n\n fillcolor: scatterAttrs.fillcolor,\n\n whiskerwidth: {\n valType: 'number',\n min: 0,\n max: 1,\n dflt: 0.5,\n \n editType: 'calc',\n \n },\n\n offsetgroup: barAttrs.offsetgroup,\n alignmentgroup: barAttrs.alignmentgroup,\n\n selected: {\n marker: scatterAttrs.selected.marker,\n editType: 'style'\n },\n unselected: {\n marker: scatterAttrs.unselected.marker,\n editType: 'style'\n },\n\n text: extendFlat({}, scatterAttrs.text, {\n \n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {\n \n }),\n hovertemplate: hovertemplateAttrs({\n \n }),\n\n hoveron: {\n valType: 'flaglist',\n flags: ['boxes', 'points'],\n dflt: 'boxes+points',\n \n editType: 'style',\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"1f25\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = convexHull1d\n\nfunction convexHull1d(points) {\n var lo = 0\n var hi = 0\n for(var i=1; i points[hi][0]) {\n hi = i\n }\n }\n if(lo < hi) {\n return [[lo], [hi]]\n } else if(lo > hi) {\n return [[hi], [lo]]\n } else {\n return [[lo]]\n }\n}\n\n/***/ }),\n\n/***/ \"1fac\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = gradient\n\nvar dup = __webpack_require__(\"84af\")\nvar cwiseCompiler = __webpack_require__(\"40ce\")\n\nvar TEMPLATE_CACHE = {}\nvar GRADIENT_CACHE = {}\n\nvar EmptyProc = {\n body: \"\",\n args: [],\n thisVars: [],\n localVars: []\n}\n\nvar centralDiff = cwiseCompiler({\n args: [ 'array', 'array', 'array' ],\n pre: EmptyProc,\n post: EmptyProc,\n body: {\n args: [ {\n name: 'out', \n lvalue: true,\n rvalue: false,\n count: 1\n }, {\n name: 'left', \n lvalue: false,\n rvalue: true,\n count: 1\n }, {\n name: 'right', \n lvalue: false,\n rvalue: true,\n count: 1\n }],\n body: \"out=0.5*(left-right)\",\n thisVars: [],\n localVars: []\n },\n funcName: 'cdiff'\n})\n\nvar zeroOut = cwiseCompiler({\n args: [ 'array' ],\n pre: EmptyProc,\n post: EmptyProc,\n body: {\n args: [ {\n name: 'out', \n lvalue: true,\n rvalue: false,\n count: 1\n }],\n body: \"out=0\",\n thisVars: [],\n localVars: []\n },\n funcName: 'zero'\n})\n\nfunction generateTemplate(d) {\n if(d in TEMPLATE_CACHE) {\n return TEMPLATE_CACHE[d]\n }\n var code = []\n for(var i=0; i= 0) {\n pickStr.push('0')\n } else if(facet.indexOf(-(i+1)) >= 0) {\n pickStr.push('s['+i+']-1')\n } else {\n pickStr.push('-1')\n loStr.push('1')\n hiStr.push('s['+i+']-2')\n }\n }\n var boundStr = '.lo(' + loStr.join() + ').hi(' + hiStr.join() + ')'\n if(loStr.length === 0) {\n boundStr = ''\n }\n \n if(cod > 0) {\n code.push('if(1') \n for(var i=0; i= 0 || facet.indexOf(-(i+1)) >= 0) {\n continue\n }\n code.push('&&s[', i, ']>2')\n }\n code.push('){grad', cod, '(src.pick(', pickStr.join(), ')', boundStr)\n for(var i=0; i= 0 || facet.indexOf(-(i+1)) >= 0) {\n continue\n }\n code.push(',dst.pick(', pickStr.join(), ',', i, ')', boundStr)\n }\n code.push(');')\n }\n\n for(var i=0; i1){dst.set(',\n pickStr.join(), ',', bnd, ',0.5*(src.get(',\n cPickStr.join(), ')-src.get(',\n dPickStr.join(), ')))}else{dst.set(',\n pickStr.join(), ',', bnd, ',0)};')\n } else {\n code.push('if(s[', bnd, ']>1){diff(', outStr, \n ',src.pick(', cPickStr.join(), ')', boundStr, \n ',src.pick(', dPickStr.join(), ')', boundStr, \n ');}else{zero(', outStr, ');};')\n }\n break\n\n case 'mirror':\n if(cod === 0) {\n code.push('dst.set(', pickStr.join(), ',', bnd, ',0);')\n } else {\n code.push('zero(', outStr, ');')\n }\n break\n\n case 'wrap':\n var aPickStr = pickStr.slice()\n var bPickStr = pickStr.slice()\n if(facet[i] < 0) {\n aPickStr[bnd] = 's[' + bnd + ']-2'\n bPickStr[bnd] = '0'\n \n } else {\n aPickStr[bnd] = 's[' + bnd + ']-1'\n bPickStr[bnd] = '1'\n }\n if(cod === 0) {\n code.push('if(s[', bnd, ']>2){dst.set(',\n pickStr.join(), ',', bnd, ',0.5*(src.get(',\n aPickStr.join(), ')-src.get(',\n bPickStr.join(), ')))}else{dst.set(',\n pickStr.join(), ',', bnd, ',0)};')\n } else {\n code.push('if(s[', bnd, ']>2){diff(', outStr, \n ',src.pick(', aPickStr.join(), ')', boundStr, \n ',src.pick(', bPickStr.join(), ')', boundStr, \n ');}else{zero(', outStr, ');};')\n }\n break\n\n default:\n throw new Error('ndarray-gradient: Invalid boundary condition')\n }\n }\n\n if(cod > 0) {\n code.push('};')\n }\n }\n\n //Enumerate ridges, facets, etc. of hypercube\n for(var i=0; i<(1< 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n\n\n/***/ }),\n\n/***/ \"2015\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Template = __webpack_require__(\"a651\");\n\nvar attributes = __webpack_require__(\"8c2d\");\n\n\nmodule.exports = function(traceIn, traceOut, defaultColor, opts) {\n var objName = 'error_' + opts.axis;\n var containerOut = Template.newContainer(traceOut, objName);\n var containerIn = traceIn[objName] || {};\n\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);\n }\n\n var hasErrorBars = (\n containerIn.array !== undefined ||\n containerIn.value !== undefined ||\n containerIn.type === 'sqrt'\n );\n\n var visible = coerce('visible', hasErrorBars);\n\n if(visible === false) return;\n\n var type = coerce('type', 'array' in containerIn ? 'data' : 'percent');\n var symmetric = true;\n\n if(type !== 'sqrt') {\n symmetric = coerce('symmetric',\n !((type === 'data' ? 'arrayminus' : 'valueminus') in containerIn));\n }\n\n if(type === 'data') {\n coerce('array');\n coerce('traceref');\n if(!symmetric) {\n coerce('arrayminus');\n coerce('tracerefminus');\n }\n } else if(type === 'percent' || type === 'constant') {\n coerce('value');\n if(!symmetric) coerce('valueminus');\n }\n\n var copyAttr = 'copy_' + opts.inherit + 'style';\n if(opts.inherit) {\n var inheritObj = traceOut['error_' + opts.inherit];\n if((inheritObj || {}).visible) {\n coerce(copyAttr, !(containerIn.color ||\n isNumeric(containerIn.thickness) ||\n isNumeric(containerIn.width)));\n }\n }\n if(!opts.inherit || !containerOut[copyAttr]) {\n coerce('color', defaultColor);\n coerce('thickness');\n coerce('width', Registry.traceIs(traceOut, 'gl3d') ? 0 : 4);\n }\n};\n\n\n/***/ }),\n\n/***/ \"2031\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(\"14ab\")() ? Object.assign : __webpack_require__(\"f60e\");\n\n\n/***/ }),\n\n/***/ \"20314\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction iota(n) {\n var result = new Array(n)\n for(var i=0; i= 0; i--, j++) {\n var si = scl[i];\n sclNew[j] = [1 - si[0], si[1]];\n }\n return sclNew;\n}\n\n/**\n * General colorscale function generator.\n *\n * @param {object} specs output of Colorscale.extractScale or precomputed domain, range.\n * - domain {array}\n * - range {array}\n *\n * @param {object} opts\n * - noNumericCheck {boolean} if true, scale func bypasses numeric checks\n * - returnArray {boolean} if true, scale func return 4-item array instead of color strings\n *\n * @return {function}\n */\nfunction makeColorScaleFunc(specs, opts) {\n opts = opts || {};\n\n var domain = specs.domain;\n var range = specs.range;\n var N = range.length;\n var _range = new Array(N);\n\n for(var i = 0; i < N; i++) {\n var rgba = tinycolor(range[i]).toRgb();\n _range[i] = [rgba.r, rgba.g, rgba.b, rgba.a];\n }\n\n var _sclFunc = d3.scale.linear()\n .domain(domain)\n .range(_range)\n .clamp(true);\n\n var noNumericCheck = opts.noNumericCheck;\n var returnArray = opts.returnArray;\n var sclFunc;\n\n if(noNumericCheck && returnArray) {\n sclFunc = _sclFunc;\n } else if(noNumericCheck) {\n sclFunc = function(v) {\n return colorArray2rbga(_sclFunc(v));\n };\n } else if(returnArray) {\n sclFunc = function(v) {\n if(isNumeric(v)) return _sclFunc(v);\n else if(tinycolor(v).isValid()) return v;\n else return Color.defaultLine;\n };\n } else {\n sclFunc = function(v) {\n if(isNumeric(v)) return colorArray2rbga(_sclFunc(v));\n else if(tinycolor(v).isValid()) return v;\n else return Color.defaultLine;\n };\n }\n\n // colorbar draw looks into the d3 scale closure for domain and range\n sclFunc.domain = _sclFunc.domain;\n sclFunc.range = function() { return range; };\n\n return sclFunc;\n}\n\nfunction makeColorScaleFuncFromTrace(trace, opts) {\n return makeColorScaleFunc(extractScale(trace), opts);\n}\n\nfunction colorArray2rbga(colorArray) {\n var colorObj = {\n r: colorArray[0],\n g: colorArray[1],\n b: colorArray[2],\n a: colorArray[3]\n };\n\n return tinycolor(colorObj).toRgbString();\n}\n\nmodule.exports = {\n hasColorscale: hasColorscale,\n extractOpts: extractOpts,\n extractScale: extractScale,\n flipScale: flipScale,\n makeColorScaleFunc: makeColorScaleFunc,\n makeColorScaleFuncFromTrace: makeColorScaleFuncFromTrace\n};\n\n\n/***/ }),\n\n/***/ \"2160\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isValue = __webpack_require__(\"62c4\");\n\nvar map = { function: true, object: true };\n\nmodule.exports = function (value) { return (isValue(value) && map[typeof value]) || false; };\n\n\n/***/ }),\n\n/***/ \"2169\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\n/**\n * Convert calcTrace to GeoJSON 'MultiLineString' coordinate arrays\n *\n * @param {object} calcTrace\n * gd.calcdata item.\n * Note that calcTrace[i].lonlat is assumed to be defined\n *\n * @return {array}\n * return line coords array (or array of arrays)\n *\n */\nexports.calcTraceToLineCoords = function(calcTrace) {\n var trace = calcTrace[0].trace;\n var connectgaps = trace.connectgaps;\n\n var coords = [];\n var lineString = [];\n\n for(var i = 0; i < calcTrace.length; i++) {\n var calcPt = calcTrace[i];\n var lonlat = calcPt.lonlat;\n\n if(lonlat[0] !== BADNUM) {\n lineString.push(lonlat);\n } else if(!connectgaps && lineString.length > 0) {\n coords.push(lineString);\n lineString = [];\n }\n }\n\n if(lineString.length > 0) {\n coords.push(lineString);\n }\n\n return coords;\n};\n\n\n/**\n * Make line ('LineString' or 'MultiLineString') GeoJSON\n *\n * @param {array} coords\n * results form calcTraceToLineCoords\n * @return {object} out\n * GeoJSON object\n *\n */\nexports.makeLine = function(coords) {\n if(coords.length === 1) {\n return {\n type: 'LineString',\n coordinates: coords[0]\n };\n } else {\n return {\n type: 'MultiLineString',\n coordinates: coords\n };\n }\n};\n\n/**\n * Make polygon ('Polygon' or 'MultiPolygon') GeoJSON\n *\n * @param {array} coords\n * results form calcTraceToLineCoords\n * @return {object} out\n * GeoJSON object\n */\nexports.makePolygon = function(coords) {\n if(coords.length === 1) {\n return {\n type: 'Polygon',\n coordinates: coords\n };\n } else {\n var _coords = new Array(coords.length);\n\n for(var i = 0; i < coords.length; i++) {\n _coords[i] = [coords[i]];\n }\n\n return {\n type: 'MultiPolygon',\n coordinates: _coords\n };\n }\n};\n\n/**\n * Make blank GeoJSON\n *\n * @return {object}\n * Blank GeoJSON object\n *\n */\nexports.makeBlank = function() {\n return {\n type: 'Point',\n coordinates: []\n };\n};\n\n\n/***/ }),\n\n/***/ \"2195\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar num2bn = __webpack_require__(\"def6\")\nvar sign = __webpack_require__(\"0fba\")\n\nmodule.exports = rationalize\n\nfunction rationalize(numer, denom) {\n var snumer = sign(numer)\n var sdenom = sign(denom)\n if(snumer === 0) {\n return [num2bn(0), num2bn(1)]\n }\n if(sdenom === 0) {\n return [num2bn(0), num2bn(0)]\n }\n if(sdenom < 0) {\n numer = numer.neg()\n denom = denom.neg()\n }\n var d = numer.gcd(denom)\n if(d.cmpn(1)) {\n return [ numer.div(d), denom.div(d) ]\n }\n return [ numer, denom ]\n}\n\n\n/***/ }),\n\n/***/ \"21d9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = boundary\n\nvar bnd = __webpack_require__(\"566e\")\nvar reduce = __webpack_require__(\"941b\")\n\nfunction boundary(cells) {\n return reduce(bnd(cells))\n}\n\n\n/***/ }),\n\n/***/ \"21dd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"f657\");\n\n\n/***/ }),\n\n/***/ \"223c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar svgTextUtils = __webpack_require__(\"0379\");\n\nvar partition = __webpack_require__(\"c8b8\");\nvar styleOne = __webpack_require__(\"da8c\").styleOne;\nvar constants = __webpack_require__(\"23cc\");\nvar helpers = __webpack_require__(\"fb56\");\nvar attachFxHandlers = __webpack_require__(\"6962\");\n\nvar onPathbar = true; // for Ancestors\n\nmodule.exports = function drawAncestors(gd, cd, entry, slices, opts) {\n var barDifY = opts.barDifY;\n var width = opts.width;\n var height = opts.height;\n var viewX = opts.viewX;\n var viewY = opts.viewY;\n var pathSlice = opts.pathSlice;\n var toMoveInsideSlice = opts.toMoveInsideSlice;\n var strTransform = opts.strTransform;\n var hasTransition = opts.hasTransition;\n var handleSlicesExit = opts.handleSlicesExit;\n var makeUpdateSliceInterpolator = opts.makeUpdateSliceInterpolator;\n var makeUpdateTextInterpolator = opts.makeUpdateTextInterpolator;\n var refRect = {};\n\n var fullLayout = gd._fullLayout;\n var cd0 = cd[0];\n var trace = cd0.trace;\n var hierarchy = cd0.hierarchy;\n\n var eachWidth = width / trace._entryDepth;\n\n var pathIds = helpers.listPath(entry.data, 'id');\n\n var sliceData = partition(hierarchy.copy(), [width, height], {\n packing: 'dice',\n pad: {\n inner: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n }\n }).descendants();\n\n // edit slices that show up on graph\n sliceData = sliceData.filter(function(pt) {\n var level = pathIds.indexOf(pt.data.id);\n if(level === -1) return false;\n\n pt.x0 = eachWidth * level;\n pt.x1 = eachWidth * (level + 1);\n pt.y0 = barDifY;\n pt.y1 = barDifY + height;\n\n pt.onPathbar = true;\n\n return true;\n });\n\n sliceData.reverse();\n\n slices = slices.data(sliceData, helpers.getPtId);\n\n slices.enter().append('g')\n .classed('pathbar', true);\n\n handleSlicesExit(slices, onPathbar, refRect, [width, height], pathSlice);\n\n slices.order();\n\n var updateSlices = slices;\n if(hasTransition) {\n updateSlices = updateSlices.transition().each('end', function() {\n // N.B. gd._transitioning is (still) *true* by the time\n // transition updates get here\n var sliceTop = d3.select(this);\n helpers.setSliceCursor(sliceTop, gd, {\n hideOnRoot: false,\n hideOnLeaves: false,\n isTransitioning: false\n });\n });\n }\n\n updateSlices.each(function(pt) {\n pt._hoverX = viewX(pt.x1 - Math.min(width, height) / 2);\n pt._hoverY = viewY(pt.y1 - height / 2);\n\n var sliceTop = d3.select(this);\n\n var slicePath = Lib.ensureSingle(sliceTop, 'path', 'surface', function(s) {\n s.style('pointer-events', 'all');\n });\n\n if(hasTransition) {\n slicePath.transition().attrTween('d', function(pt2) {\n var interp = makeUpdateSliceInterpolator(pt2, onPathbar, refRect, [width, height]);\n return function(t) { return pathSlice(interp(t)); };\n });\n } else {\n slicePath.attr('d', pathSlice);\n }\n\n sliceTop\n .call(attachFxHandlers, entry, gd, cd, {\n styleOne: styleOne,\n eventDataKeys: constants.eventDataKeys,\n transitionTime: constants.CLICK_TRANSITION_TIME,\n transitionEasing: constants.CLICK_TRANSITION_EASING\n })\n .call(helpers.setSliceCursor, gd, {\n hideOnRoot: false,\n hideOnLeaves: false,\n isTransitioning: gd._transitioning\n });\n\n slicePath.call(styleOne, pt, trace, {\n hovered: false\n });\n\n pt._text = (helpers.getPtLabel(pt) || '').split('
').join(' ') || '';\n\n var sliceTextGroup = Lib.ensureSingle(sliceTop, 'g', 'slicetext');\n var sliceText = Lib.ensureSingle(sliceTextGroup, 'text', '', function(s) {\n // prohibit tex interpretation until we can handle\n // tex and regular text together\n s.attr('data-notex', 1);\n });\n\n var font = Lib.ensureUniformFontSize(gd, helpers.determineTextFont(trace, pt, fullLayout.font, {\n onPathbar: true\n }));\n\n sliceText.text(pt._text || ' ') // use one space character instead of a blank string to avoid jumps during transition\n .classed('slicetext', true)\n .attr('text-anchor', 'start')\n .call(Drawing.font, font)\n .call(svgTextUtils.convertToTspans, gd);\n\n pt.textBB = Drawing.bBox(sliceText.node());\n pt.transform = toMoveInsideSlice(pt, {\n fontSize: font.size,\n onPathbar: true\n });\n pt.transform.fontSize = font.size;\n\n if(hasTransition) {\n sliceText.transition().attrTween('transform', function(pt2) {\n var interp = makeUpdateTextInterpolator(pt2, onPathbar, refRect, [width, height]);\n return function(t) { return strTransform(interp(t)); };\n });\n } else {\n sliceText.attr('transform', strTransform(pt));\n }\n });\n};\n\n\n/***/ }),\n\n/***/ \"2244\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar layoutAttributes = __webpack_require__(\"91ce\");\n\nmodule.exports = function(layoutIn, layoutOut, fullData) {\n var hasTraceType = false;\n\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n\n for(var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n\n if(trace.visible && trace.type === 'waterfall') {\n hasTraceType = true;\n break;\n }\n }\n\n if(hasTraceType) {\n coerce('waterfallmode');\n coerce('waterfallgap', 0.2);\n coerce('waterfallgroupgap');\n }\n};\n\n\n/***/ }),\n\n/***/ \"2292\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function () {\n\tvar weakMap, obj;\n\n\tif (typeof WeakMap !== \"function\") return false;\n\ttry {\n\t\t// WebKit doesn't support arguments and crashes\n\t\tweakMap = new WeakMap([[obj = {}, \"one\"], [{}, \"two\"], [{}, \"three\"]]);\n\t} catch (e) {\n\t\treturn false;\n\t}\n\tif (String(weakMap) !== \"[object WeakMap]\") return false;\n\tif (typeof weakMap.set !== \"function\") return false;\n\tif (weakMap.set({}, 1) !== weakMap) return false;\n\tif (typeof weakMap.delete !== \"function\") return false;\n\tif (typeof weakMap.has !== \"function\") return false;\n\tif (weakMap.get(obj) !== \"one\") return false;\n\n\treturn true;\n};\n\n\n/***/ }),\n\n/***/ \"22926\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar handleArrayContainerDefaults = __webpack_require__(\"e5ac\");\n\nvar attributes = __webpack_require__(\"26e4\");\nvar subTypes = __webpack_require__(\"de81\");\nvar handleMarkerDefaults = __webpack_require__(\"5047\");\nvar mergeLength = __webpack_require__(\"8cdc\");\nvar isOpenSymbol = __webpack_require__(\"50da\").isOpenSymbol;\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var dimensions = handleArrayContainerDefaults(traceIn, traceOut, {\n name: 'dimensions',\n handleItemDefaults: dimensionDefaults\n });\n\n var showDiag = coerce('diagonal.visible');\n var showUpper = coerce('showupperhalf');\n var showLower = coerce('showlowerhalf');\n\n var dimLength = mergeLength(traceOut, dimensions, 'values');\n\n if(!dimLength || (!showDiag && !showUpper && !showLower)) {\n traceOut.visible = false;\n return;\n }\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n\n var isOpen = isOpenSymbol(traceOut.marker.symbol);\n var isBubble = subTypes.isBubble(traceOut);\n coerce('marker.line.width', isOpen || isBubble ? 1 : 0);\n\n handleAxisDefaults(traceIn, traceOut, layout, coerce);\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n};\n\nfunction dimensionDefaults(dimIn, dimOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(dimIn, dimOut, attributes.dimensions, attr, dflt);\n }\n\n coerce('label');\n var values = coerce('values');\n\n if(!(values && values.length)) dimOut.visible = false;\n else coerce('visible');\n\n coerce('axis.type');\n coerce('axis.matches');\n}\n\nfunction handleAxisDefaults(traceIn, traceOut, layout, coerce) {\n var dimensions = traceOut.dimensions;\n var dimLength = dimensions.length;\n var showUpper = traceOut.showupperhalf;\n var showLower = traceOut.showlowerhalf;\n var showDiag = traceOut.diagonal.visible;\n var i, j;\n\n var xAxesDflt = new Array(dimLength);\n var yAxesDflt = new Array(dimLength);\n\n for(i = 0; i < dimLength; i++) {\n var suffix = i ? i + 1 : '';\n xAxesDflt[i] = 'x' + suffix;\n yAxesDflt[i] = 'y' + suffix;\n }\n\n var xaxes = coerce('xaxes', xAxesDflt);\n var yaxes = coerce('yaxes', yAxesDflt);\n\n // build list of [x,y] axis corresponding to each dimensions[i],\n // very useful for passing options to regl-splom\n var diag = traceOut._diag = new Array(dimLength);\n\n // lookup for 'drawn' x|y axes, to avoid costly indexOf downstream\n traceOut._xaxes = {};\n traceOut._yaxes = {};\n\n // list of 'drawn' x|y axes, use to generate list of subplots\n var xList = [];\n var yList = [];\n\n function fillAxisStashes(axId, counterAxId, dim, list) {\n if(!axId) return;\n\n var axLetter = axId.charAt(0);\n var stash = layout._splomAxes[axLetter];\n\n traceOut['_' + axLetter + 'axes'][axId] = 1;\n list.push(axId);\n\n if(!(axId in stash)) {\n var s = stash[axId] = {};\n if(dim) {\n s.label = dim.label || '';\n if(dim.visible && dim.axis) {\n if(dim.axis.type) s.type = dim.axis.type;\n if(dim.axis.matches) s.matches = counterAxId;\n }\n }\n }\n }\n\n // cases where showDiag and showLower or showUpper are false\n // no special treatment as the 'drawn' x-axes and y-axes no longer match\n // the dimensions items and xaxes|yaxes 1-to-1\n var mustShiftX = !showDiag && !showLower;\n var mustShiftY = !showDiag && !showUpper;\n\n traceOut._axesDim = {};\n for(i = 0; i < dimLength; i++) {\n var dim = dimensions[i];\n var i0 = i === 0;\n var iN = i === dimLength - 1;\n\n var xaId = (i0 && mustShiftX) || (iN && mustShiftY) ?\n undefined :\n xaxes[i];\n\n var yaId = (i0 && mustShiftY) || (iN && mustShiftX) ?\n undefined :\n yaxes[i];\n\n fillAxisStashes(xaId, yaId, dim, xList);\n fillAxisStashes(yaId, xaId, dim, yList);\n diag[i] = [xaId, yaId];\n traceOut._axesDim[xaId] = i;\n traceOut._axesDim[yaId] = i;\n }\n\n // fill in splom subplot keys\n for(i = 0; i < xList.length; i++) {\n for(j = 0; j < yList.length; j++) {\n var id = xList[i] + yList[j];\n\n if(i > j && showUpper) {\n layout._splomSubplots[id] = 1;\n } else if(i < j && showLower) {\n layout._splomSubplots[id] = 1;\n } else if(i === j && (showDiag || !showLower || !showUpper)) {\n // need to include diagonal subplots when\n // hiding one half and the diagonal\n layout._splomSubplots[id] = 1;\n }\n }\n }\n\n // when lower half is omitted, or when just the diagonal is gone,\n // override grid default to make sure axes remain on\n // the left/bottom of the plot area\n if(!showLower || (!showDiag && showUpper && showLower)) {\n layout._splomGridDflt.xside = 'bottom';\n layout._splomGridDflt.yside = 'left';\n }\n}\n\n\n/***/ }),\n\n/***/ \"22b4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.shader = getShaderReference\nexports.program = createProgram\n\nvar GLError = __webpack_require__(\"a3fd\")\nvar formatCompilerError = __webpack_require__(\"07db\");\n\nvar weakMap = typeof WeakMap === 'undefined' ? __webpack_require__(\"fcc5\") : WeakMap\nvar CACHE = new weakMap()\n\nvar SHADER_COUNTER = 0\n\nfunction ShaderReference(id, src, type, shader, programs, count, cache) {\n this.id = id\n this.src = src\n this.type = type\n this.shader = shader\n this.count = count\n this.programs = []\n this.cache = cache\n}\n\nShaderReference.prototype.dispose = function() {\n if(--this.count === 0) {\n var cache = this.cache\n var gl = cache.gl\n\n //Remove program references\n var programs = this.programs\n for(var i=0, n=programs.length; i 1.0){\n return 0\n } else {\n return Math.acos(cosine)\n } \n}\n\n\n/***/ }),\n\n/***/ \"2335\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n/***/ }),\n\n/***/ \"2357\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ch = __webpack_require__(\"0000\")\nvar uniq = __webpack_require__(\"175e\")\n\nmodule.exports = triangulate\n\nfunction LiftedPoint(p, i) {\n this.point = p\n this.index = i\n}\n\nfunction compareLifted(a, b) {\n var ap = a.point\n var bp = b.point\n var d = ap.length\n for(var i=0; i= 2) {\n return false\n }\n }\n cell[j] = v\n }\n return true\n })\n } else {\n hull = hull.filter(function(cell) {\n for(var i=0; i<=d; ++i) {\n var v = dindex[cell[i]]\n if(v < 0) {\n return false\n }\n cell[i] = v\n }\n return true\n })\n }\n\n if(d & 1) {\n for(var i=0; i minSensoryWidth ? sensoryWidth / 2 : minSensoryWidth;\n\n g.append('circle')\n .attr({\n 'data-line-point': 'start-point',\n 'cx': xPixelSized ? x2p(shapeOptions.xanchor) + shapeOptions.x0 : x2p(shapeOptions.x0),\n 'cy': yPixelSized ? y2p(shapeOptions.yanchor) - shapeOptions.y0 : y2p(shapeOptions.y0),\n 'r': circleRadius\n })\n .style(circleStyle)\n .classed('cursor-grab', true);\n\n g.append('circle')\n .attr({\n 'data-line-point': 'end-point',\n 'cx': xPixelSized ? x2p(shapeOptions.xanchor) + shapeOptions.x1 : x2p(shapeOptions.x1),\n 'cy': yPixelSized ? y2p(shapeOptions.yanchor) - shapeOptions.y1 : y2p(shapeOptions.y1),\n 'r': circleRadius\n })\n .style(circleStyle)\n .classed('cursor-grab', true);\n\n return g;\n }\n\n function updateDragMode(evt) {\n if(isLine) {\n if(evt.target.tagName === 'path') {\n dragMode = 'move';\n } else {\n dragMode = evt.target.attributes['data-line-point'].value === 'start-point' ?\n 'resize-over-start-point' : 'resize-over-end-point';\n }\n } else {\n // element might not be on screen at time of setup,\n // so obtain bounding box here\n var dragBBox = dragOptions.element.getBoundingClientRect();\n\n // choose 'move' or 'resize'\n // based on initial position of cursor within the drag element\n var w = dragBBox.right - dragBBox.left;\n var h = dragBBox.bottom - dragBBox.top;\n var x = evt.clientX - dragBBox.left;\n var y = evt.clientY - dragBBox.top;\n var cursor = (!isPath && w > MINWIDTH && h > MINHEIGHT && !evt.shiftKey) ?\n dragElement.getCursor(x / w, 1 - y / h) :\n 'move';\n\n setCursor(shapePath, cursor);\n\n // possible values 'move', 'sw', 'w', 'se', 'e', 'ne', 'n', 'nw' and 'w'\n dragMode = cursor.split('-')[0];\n }\n }\n\n function startDrag(evt) {\n // setup update strings and initial values\n if(xPixelSized) {\n xAnchor = x2p(shapeOptions.xanchor);\n }\n if(yPixelSized) {\n yAnchor = y2p(shapeOptions.yanchor);\n }\n\n if(shapeOptions.type === 'path') {\n pathIn = shapeOptions.path;\n } else {\n x0 = xPixelSized ? shapeOptions.x0 : x2p(shapeOptions.x0);\n y0 = yPixelSized ? shapeOptions.y0 : y2p(shapeOptions.y0);\n x1 = xPixelSized ? shapeOptions.x1 : x2p(shapeOptions.x1);\n y1 = yPixelSized ? shapeOptions.y1 : y2p(shapeOptions.y1);\n }\n\n if(x0 < x1) {\n w0 = x0;\n optW = 'x0';\n e0 = x1;\n optE = 'x1';\n } else {\n w0 = x1;\n optW = 'x1';\n e0 = x0;\n optE = 'x0';\n }\n\n // For fixed size shapes take opposing direction of y-axis into account.\n // Hint: For data sized shapes this is done by the y2p function.\n if((!yPixelSized && y0 < y1) || (yPixelSized && y0 > y1)) {\n n0 = y0;\n optN = 'y0';\n s0 = y1;\n optS = 'y1';\n } else {\n n0 = y1;\n optN = 'y1';\n s0 = y0;\n optS = 'y0';\n }\n\n // setup dragMode and the corresponding handler\n updateDragMode(evt);\n renderVisualCues(shapeLayer, shapeOptions);\n deactivateClipPathTemporarily(shapePath, shapeOptions, gd);\n dragOptions.moveFn = (dragMode === 'move') ? moveShape : resizeShape;\n }\n\n function endDrag() {\n setCursor(shapePath);\n removeVisualCues(shapeLayer);\n\n // Don't rely on clipPath being activated during re-layout\n setClipPath(shapePath, gd, shapeOptions);\n Registry.call('_guiRelayout', gd, editHelpers.getUpdateObj());\n }\n\n function abortDrag() {\n removeVisualCues(shapeLayer);\n }\n\n function moveShape(dx, dy) {\n if(shapeOptions.type === 'path') {\n var noOp = function(coord) { return coord; };\n var moveX = noOp;\n var moveY = noOp;\n\n if(xPixelSized) {\n modifyItem('xanchor', shapeOptions.xanchor = p2x(xAnchor + dx));\n } else {\n moveX = function moveX(x) { return p2x(x2p(x) + dx); };\n if(xa && xa.type === 'date') moveX = helpers.encodeDate(moveX);\n }\n\n if(yPixelSized) {\n modifyItem('yanchor', shapeOptions.yanchor = p2y(yAnchor + dy));\n } else {\n moveY = function moveY(y) { return p2y(y2p(y) + dy); };\n if(ya && ya.type === 'date') moveY = helpers.encodeDate(moveY);\n }\n\n modifyItem('path', shapeOptions.path = movePath(pathIn, moveX, moveY));\n } else {\n if(xPixelSized) {\n modifyItem('xanchor', shapeOptions.xanchor = p2x(xAnchor + dx));\n } else {\n modifyItem('x0', shapeOptions.x0 = p2x(x0 + dx));\n modifyItem('x1', shapeOptions.x1 = p2x(x1 + dx));\n }\n\n if(yPixelSized) {\n modifyItem('yanchor', shapeOptions.yanchor = p2y(yAnchor + dy));\n } else {\n modifyItem('y0', shapeOptions.y0 = p2y(y0 + dy));\n modifyItem('y1', shapeOptions.y1 = p2y(y1 + dy));\n }\n }\n\n shapePath.attr('d', getPathString(gd, shapeOptions));\n renderVisualCues(shapeLayer, shapeOptions);\n }\n\n function resizeShape(dx, dy) {\n if(isPath) {\n // TODO: implement path resize, don't forget to update dragMode code\n var noOp = function(coord) { return coord; };\n var moveX = noOp;\n var moveY = noOp;\n\n if(xPixelSized) {\n modifyItem('xanchor', shapeOptions.xanchor = p2x(xAnchor + dx));\n } else {\n moveX = function moveX(x) { return p2x(x2p(x) + dx); };\n if(xa && xa.type === 'date') moveX = helpers.encodeDate(moveX);\n }\n\n if(yPixelSized) {\n modifyItem('yanchor', shapeOptions.yanchor = p2y(yAnchor + dy));\n } else {\n moveY = function moveY(y) { return p2y(y2p(y) + dy); };\n if(ya && ya.type === 'date') moveY = helpers.encodeDate(moveY);\n }\n\n modifyItem('path', shapeOptions.path = movePath(pathIn, moveX, moveY));\n } else if(isLine) {\n if(dragMode === 'resize-over-start-point') {\n var newX0 = x0 + dx;\n var newY0 = yPixelSized ? y0 - dy : y0 + dy;\n modifyItem('x0', shapeOptions.x0 = xPixelSized ? newX0 : p2x(newX0));\n modifyItem('y0', shapeOptions.y0 = yPixelSized ? newY0 : p2y(newY0));\n } else if(dragMode === 'resize-over-end-point') {\n var newX1 = x1 + dx;\n var newY1 = yPixelSized ? y1 - dy : y1 + dy;\n modifyItem('x1', shapeOptions.x1 = xPixelSized ? newX1 : p2x(newX1));\n modifyItem('y1', shapeOptions.y1 = yPixelSized ? newY1 : p2y(newY1));\n }\n } else {\n var newN = (~dragMode.indexOf('n')) ? n0 + dy : n0;\n var newS = (~dragMode.indexOf('s')) ? s0 + dy : s0;\n var newW = (~dragMode.indexOf('w')) ? w0 + dx : w0;\n var newE = (~dragMode.indexOf('e')) ? e0 + dx : e0;\n\n // Do things in opposing direction for y-axis.\n // Hint: for data-sized shapes the reversal of axis direction is done in p2y.\n if(~dragMode.indexOf('n') && yPixelSized) newN = n0 - dy;\n if(~dragMode.indexOf('s') && yPixelSized) newS = s0 - dy;\n\n // Update shape eventually. Again, be aware of the\n // opposing direction of the y-axis of fixed size shapes.\n if((!yPixelSized && newS - newN > MINHEIGHT) ||\n (yPixelSized && newN - newS > MINHEIGHT)) {\n modifyItem(optN, shapeOptions[optN] = yPixelSized ? newN : p2y(newN));\n modifyItem(optS, shapeOptions[optS] = yPixelSized ? newS : p2y(newS));\n }\n if(newE - newW > MINWIDTH) {\n modifyItem(optW, shapeOptions[optW] = xPixelSized ? newW : p2x(newW));\n modifyItem(optE, shapeOptions[optE] = xPixelSized ? newE : p2x(newE));\n }\n }\n\n shapePath.attr('d', getPathString(gd, shapeOptions));\n renderVisualCues(shapeLayer, shapeOptions);\n }\n\n function renderVisualCues(shapeLayer, shapeOptions) {\n if(xPixelSized || yPixelSized) {\n renderAnchor();\n }\n\n function renderAnchor() {\n var isNotPath = shapeOptions.type !== 'path';\n\n // d3 join with dummy data to satisfy d3 data-binding\n var visualCues = shapeLayer.selectAll('.visual-cue').data([0]);\n\n // Enter\n var strokeWidth = 1;\n visualCues.enter()\n .append('path')\n .attr({\n 'fill': '#fff',\n 'fill-rule': 'evenodd',\n 'stroke': '#000',\n 'stroke-width': strokeWidth\n })\n .classed('visual-cue', true);\n\n // Update\n var posX = x2p(\n xPixelSized ?\n shapeOptions.xanchor :\n Lib.midRange(\n isNotPath ?\n [shapeOptions.x0, shapeOptions.x1] :\n helpers.extractPathCoords(shapeOptions.path, constants.paramIsX))\n );\n var posY = y2p(\n yPixelSized ?\n shapeOptions.yanchor :\n Lib.midRange(\n isNotPath ?\n [shapeOptions.y0, shapeOptions.y1] :\n helpers.extractPathCoords(shapeOptions.path, constants.paramIsY))\n );\n\n posX = helpers.roundPositionForSharpStrokeRendering(posX, strokeWidth);\n posY = helpers.roundPositionForSharpStrokeRendering(posY, strokeWidth);\n\n if(xPixelSized && yPixelSized) {\n var crossPath = 'M' + (posX - 1 - strokeWidth) + ',' + (posY - 1 - strokeWidth) +\n 'h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z';\n visualCues.attr('d', crossPath);\n } else if(xPixelSized) {\n var vBarPath = 'M' + (posX - 1 - strokeWidth) + ',' + (posY - 9 - strokeWidth) +\n 'v18 h2 v-18 Z';\n visualCues.attr('d', vBarPath);\n } else {\n var hBarPath = 'M' + (posX - 9 - strokeWidth) + ',' + (posY - 1 - strokeWidth) +\n 'h18 v2 h-18 Z';\n visualCues.attr('d', hBarPath);\n }\n }\n }\n\n function removeVisualCues(shapeLayer) {\n shapeLayer.selectAll('.visual-cue').remove();\n }\n\n function deactivateClipPathTemporarily(shapePath, shapeOptions, gd) {\n var xref = shapeOptions.xref;\n var yref = shapeOptions.yref;\n var xa = Axes.getFromId(gd, xref);\n var ya = Axes.getFromId(gd, yref);\n\n var clipAxes = '';\n if(xref !== 'paper' && !xa.autorange) clipAxes += xref;\n if(yref !== 'paper' && !ya.autorange) clipAxes += yref;\n\n Drawing.setClipUrl(\n shapePath,\n clipAxes ? 'clip' + gd._fullLayout._uid + clipAxes : null,\n gd\n );\n }\n}\n\nfunction getPathString(gd, options) {\n var type = options.type;\n var xa = Axes.getFromId(gd, options.xref);\n var ya = Axes.getFromId(gd, options.yref);\n var gs = gd._fullLayout._size;\n var x2r, x2p, y2r, y2p;\n var x0, x1, y0, y1;\n\n if(xa) {\n x2r = helpers.shapePositionToRange(xa);\n x2p = function(v) { return xa._offset + xa.r2p(x2r(v, true)); };\n } else {\n x2p = function(v) { return gs.l + gs.w * v; };\n }\n\n if(ya) {\n y2r = helpers.shapePositionToRange(ya);\n y2p = function(v) { return ya._offset + ya.r2p(y2r(v, true)); };\n } else {\n y2p = function(v) { return gs.t + gs.h * (1 - v); };\n }\n\n if(type === 'path') {\n if(xa && xa.type === 'date') x2p = helpers.decodeDate(x2p);\n if(ya && ya.type === 'date') y2p = helpers.decodeDate(y2p);\n return convertPath(options, x2p, y2p);\n }\n\n if(options.xsizemode === 'pixel') {\n var xAnchorPos = x2p(options.xanchor);\n x0 = xAnchorPos + options.x0;\n x1 = xAnchorPos + options.x1;\n } else {\n x0 = x2p(options.x0);\n x1 = x2p(options.x1);\n }\n\n if(options.ysizemode === 'pixel') {\n var yAnchorPos = y2p(options.yanchor);\n y0 = yAnchorPos - options.y0;\n y1 = yAnchorPos - options.y1;\n } else {\n y0 = y2p(options.y0);\n y1 = y2p(options.y1);\n }\n\n if(type === 'line') return 'M' + x0 + ',' + y0 + 'L' + x1 + ',' + y1;\n if(type === 'rect') return 'M' + x0 + ',' + y0 + 'H' + x1 + 'V' + y1 + 'H' + x0 + 'Z';\n\n // circle\n var cx = (x0 + x1) / 2;\n var cy = (y0 + y1) / 2;\n var rx = Math.abs(cx - x0);\n var ry = Math.abs(cy - y0);\n var rArc = 'A' + rx + ',' + ry;\n var rightPt = (cx + rx) + ',' + cy;\n var topPt = cx + ',' + (cy - ry);\n return 'M' + rightPt + rArc + ' 0 1,1 ' + topPt +\n rArc + ' 0 0,1 ' + rightPt + 'Z';\n}\n\n\nfunction convertPath(options, x2p, y2p) {\n var pathIn = options.path;\n var xSizemode = options.xsizemode;\n var ySizemode = options.ysizemode;\n var xAnchor = options.xanchor;\n var yAnchor = options.yanchor;\n\n return pathIn.replace(constants.segmentRE, function(segment) {\n var paramNumber = 0;\n var segmentType = segment.charAt(0);\n var xParams = constants.paramIsX[segmentType];\n var yParams = constants.paramIsY[segmentType];\n var nParams = constants.numParams[segmentType];\n\n var paramString = segment.substr(1).replace(constants.paramRE, function(param) {\n if(xParams[paramNumber]) {\n if(xSizemode === 'pixel') param = x2p(xAnchor) + Number(param);\n else param = x2p(param);\n } else if(yParams[paramNumber]) {\n if(ySizemode === 'pixel') param = y2p(yAnchor) - Number(param);\n else param = y2p(param);\n }\n paramNumber++;\n\n if(paramNumber > nParams) param = 'X';\n return param;\n });\n\n if(paramNumber > nParams) {\n paramString = paramString.replace(/[\\s,]*X.*/, '');\n Lib.log('Ignoring extra params in segment ' + segment);\n }\n\n return segmentType + paramString;\n });\n}\n\nfunction movePath(pathIn, moveX, moveY) {\n return pathIn.replace(constants.segmentRE, function(segment) {\n var paramNumber = 0;\n var segmentType = segment.charAt(0);\n var xParams = constants.paramIsX[segmentType];\n var yParams = constants.paramIsY[segmentType];\n var nParams = constants.numParams[segmentType];\n\n var paramString = segment.substr(1).replace(constants.paramRE, function(param) {\n if(paramNumber >= nParams) return param;\n\n if(xParams[paramNumber]) param = moveX(param);\n else if(yParams[paramNumber]) param = moveY(param);\n\n paramNumber++;\n\n return param;\n });\n\n return segmentType + paramString;\n });\n}\n\n\n/***/ }),\n\n/***/ \"2381\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n/* eslint-disable new-cap */\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Color = __webpack_require__(\"d115\");\n\nvar micropolar = __webpack_require__(\"3a99\");\nvar UndoManager = __webpack_require__(\"12c1\");\nvar extendDeepAll = Lib.extendDeepAll;\n\nvar manager = module.exports = {};\n\nmanager.framework = function(_gd) {\n var config, previousConfigClone, plot, convertedInput, container;\n var undoManager = new UndoManager();\n\n function exports(_inputConfig, _container) {\n if(_container) container = _container;\n d3.select(d3.select(container).node().parentNode).selectAll('.svg-container>*:not(.chart-root)').remove();\n\n config = (!config) ?\n _inputConfig :\n extendDeepAll(config, _inputConfig);\n\n if(!plot) plot = micropolar.Axis();\n convertedInput = micropolar.adapter.plotly().convert(config);\n plot.config(convertedInput).render(container);\n _gd.data = config.data;\n _gd.layout = config.layout;\n manager.fillLayout(_gd);\n return config;\n }\n exports.isPolar = true;\n exports.svg = function() { return plot.svg(); };\n exports.getConfig = function() { return config; };\n exports.getLiveConfig = function() {\n return micropolar.adapter.plotly().convert(plot.getLiveConfig(), true);\n };\n exports.getLiveScales = function() { return {t: plot.angularScale(), r: plot.radialScale()}; };\n exports.setUndoPoint = function() {\n var that = this;\n var configClone = micropolar.util.cloneJson(config);\n (function(_configClone, _previousConfigClone) {\n undoManager.add({\n undo: function() {\n if(_previousConfigClone) that(_previousConfigClone);\n },\n redo: function() {\n that(_configClone);\n }\n });\n })(configClone, previousConfigClone);\n previousConfigClone = micropolar.util.cloneJson(configClone);\n };\n exports.undo = function() { undoManager.undo(); };\n exports.redo = function() { undoManager.redo(); };\n return exports;\n};\n\nmanager.fillLayout = function(_gd) {\n var container = d3.select(_gd).selectAll('.plot-container');\n var paperDiv = container.selectAll('.svg-container');\n var paper = _gd.framework && _gd.framework.svg && _gd.framework.svg();\n var dflts = {\n width: 800,\n height: 600,\n paper_bgcolor: Color.background,\n _container: container,\n _paperdiv: paperDiv,\n _paper: paper\n };\n\n _gd._fullLayout = extendDeepAll(dflts, _gd.layout);\n};\n\n\n/***/ }),\n\n/***/ \"23cb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n\n/***/ \"23cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n CLICK_TRANSITION_TIME: 750,\n CLICK_TRANSITION_EASING: 'poly',\n eventDataKeys: [\n // string\n 'currentPath',\n 'root',\n 'entry',\n // no need to add 'parent' here\n\n // percentages i.e. ratios\n 'percentRoot',\n 'percentEntry',\n 'percentParent'\n ],\n gapWithPathbar: 1 // i.e. one pixel\n};\n\n\n/***/ }),\n\n/***/ \"23e7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar getOwnPropertyDescriptor = __webpack_require__(\"06cf\").f;\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar redefine = __webpack_require__(\"6eeb\");\nvar setGlobal = __webpack_require__(\"ce4e\");\nvar copyConstructorProperties = __webpack_require__(\"e893\");\nvar isForced = __webpack_require__(\"94ca\");\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n\n/***/ \"241c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(\"ca84\");\nvar enumBugKeys = __webpack_require__(\"7839\");\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n\n/***/ \"2441\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * @copyright 2016 Sean Connelly (@voidqk), http://syntheti.cc\n * @license MIT\n * @preserve Project Home: https://github.com/voidqk/polybooljs\n */\n\nvar BuildLog = __webpack_require__(\"a6dc\");\nvar Epsilon = __webpack_require__(\"f8a5\");\nvar Intersecter = __webpack_require__(\"9935\");\nvar SegmentChainer = __webpack_require__(\"a626\");\nvar SegmentSelector = __webpack_require__(\"b924\");\nvar GeoJSON = __webpack_require__(\"34cc\");\n\nvar buildLog = false;\nvar epsilon = Epsilon();\n\nvar PolyBool;\nPolyBool = {\n\t// getter/setter for buildLog\n\tbuildLog: function(bl){\n\t\tif (bl === true)\n\t\t\tbuildLog = BuildLog();\n\t\telse if (bl === false)\n\t\t\tbuildLog = false;\n\t\treturn buildLog === false ? false : buildLog.list;\n\t},\n\t// getter/setter for epsilon\n\tepsilon: function(v){\n\t\treturn epsilon.epsilon(v);\n\t},\n\n\t// core API\n\tsegments: function(poly){\n\t\tvar i = Intersecter(true, epsilon, buildLog);\n\t\tpoly.regions.forEach(i.addRegion);\n\t\treturn {\n\t\t\tsegments: i.calculate(poly.inverted),\n\t\t\tinverted: poly.inverted\n\t\t};\n\t},\n\tcombine: function(segments1, segments2){\n\t\tvar i3 = Intersecter(false, epsilon, buildLog);\n\t\treturn {\n\t\t\tcombined: i3.calculate(\n\t\t\t\tsegments1.segments, segments1.inverted,\n\t\t\t\tsegments2.segments, segments2.inverted\n\t\t\t),\n\t\t\tinverted1: segments1.inverted,\n\t\t\tinverted2: segments2.inverted\n\t\t};\n\t},\n\tselectUnion: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.union(combined.combined, buildLog),\n\t\t\tinverted: combined.inverted1 || combined.inverted2\n\t\t}\n\t},\n\tselectIntersect: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.intersect(combined.combined, buildLog),\n\t\t\tinverted: combined.inverted1 && combined.inverted2\n\t\t}\n\t},\n\tselectDifference: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.difference(combined.combined, buildLog),\n\t\t\tinverted: combined.inverted1 && !combined.inverted2\n\t\t}\n\t},\n\tselectDifferenceRev: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.differenceRev(combined.combined, buildLog),\n\t\t\tinverted: !combined.inverted1 && combined.inverted2\n\t\t}\n\t},\n\tselectXor: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.xor(combined.combined, buildLog),\n\t\t\tinverted: combined.inverted1 !== combined.inverted2\n\t\t}\n\t},\n\tpolygon: function(segments){\n\t\treturn {\n\t\t\tregions: SegmentChainer(segments.segments, epsilon, buildLog),\n\t\t\tinverted: segments.inverted\n\t\t};\n\t},\n\n\t// GeoJSON converters\n\tpolygonFromGeoJSON: function(geojson){\n\t\treturn GeoJSON.toPolygon(PolyBool, geojson);\n\t},\n\tpolygonToGeoJSON: function(poly){\n\t\treturn GeoJSON.fromPolygon(PolyBool, epsilon, poly);\n\t},\n\n\t// helper functions for common operations\n\tunion: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectUnion);\n\t},\n\tintersect: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectIntersect);\n\t},\n\tdifference: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectDifference);\n\t},\n\tdifferenceRev: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectDifferenceRev);\n\t},\n\txor: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectXor);\n\t}\n};\n\nfunction operate(poly1, poly2, selector){\n\tvar seg1 = PolyBool.segments(poly1);\n\tvar seg2 = PolyBool.segments(poly2);\n\tvar comb = PolyBool.combine(seg1, seg2);\n\tvar seg3 = selector(comb);\n\treturn PolyBool.polygon(seg3);\n}\n\nif (typeof window === 'object')\n\twindow.PolyBool = PolyBool;\n\nmodule.exports = PolyBool;\n\n\n/***/ }),\n\n/***/ \"2456\":\n/***/ (function(module, exports) {\n\nmodule.exports = squaredLength;\n\n/**\n * Calculates the squared length of a vec3\n *\n * @param {vec3} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\nfunction squaredLength(a) {\n var x = a[0],\n y = a[1],\n z = a[2]\n return x*x + y*y + z*z\n}\n\n/***/ }),\n\n/***/ \"24ad\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n \"use restrict\";\n\nvar bits = __webpack_require__(\"a48a\")\n , UnionFind = __webpack_require__(\"dca5\")\n\n//Returns the dimension of a cell complex\nfunction dimension(cells) {\n var d = 0\n , max = Math.max\n for(var i=0, il=cells.length; i> 1\n , s = compareCells(cells[mid], c)\n if(s <= 0) {\n if(s === 0) {\n r = mid\n }\n lo = mid + 1\n } else if(s > 0) {\n hi = mid - 1\n }\n }\n return r\n}\nexports.findCell = findCell;\n\n//Builds an index for an n-cell. This is more general than dual, but less efficient\nfunction incidence(from_cells, to_cells) {\n var index = new Array(from_cells.length)\n for(var i=0, il=index.length; i= from_cells.length || compareCells(from_cells[idx], b) !== 0) {\n break\n }\n }\n }\n }\n return index\n}\nexports.incidence = incidence\n\n//Computes the dual of the mesh. This is basically an optimized version of buildIndex for the situation where from_cells is just the list of vertices\nfunction dual(cells, vertex_count) {\n if(!vertex_count) {\n return incidence(unique(skeleton(cells, 0)), cells, 0)\n }\n var res = new Array(vertex_count)\n for(var i=0; i>> k) & 1) {\n b.push(c[k])\n }\n }\n result.push(b)\n }\n }\n return normalize(result)\n}\nexports.explode = explode\n\n//Enumerates all of the n-cells of a cell complex\nfunction skeleton(cells, n) {\n if(n < 0) {\n return []\n }\n var result = []\n , k0 = (1<<(n+1))-1\n for(var i=0; i 2 / 3) anchor = 'right';\n else anchor = 'center';\n }\n return {\n center: 0,\n middle: 0,\n left: 0.5,\n bottom: -0.5,\n right: -0.5,\n top: 0.5\n }[anchor];\n }\n\n var annotationIsOffscreen = false;\n var letters = ['x', 'y'];\n\n for(var i = 0; i < letters.length; i++) {\n var axLetter = letters[i];\n var axRef = options[axLetter + 'ref'] || axLetter;\n var tailRef = options['a' + axLetter + 'ref'];\n var ax = {x: xa, y: ya}[axLetter];\n var dimAngle = (textangle + (axLetter === 'x' ? 0 : -90)) * Math.PI / 180;\n // note that these two can be either positive or negative\n var annSizeFromWidth = outerWidth * Math.cos(dimAngle);\n var annSizeFromHeight = outerHeight * Math.sin(dimAngle);\n // but this one is the positive total size\n var annSize = Math.abs(annSizeFromWidth) + Math.abs(annSizeFromHeight);\n var anchor = options[axLetter + 'anchor'];\n var overallShift = options[axLetter + 'shift'] * (axLetter === 'x' ? 1 : -1);\n var posPx = annPosPx[axLetter];\n var basePx;\n var textPadShift;\n var alignPosition;\n var autoAlignFraction;\n var textShift;\n\n /*\n * calculate the *primary* pixel position\n * which is the arrowhead if there is one,\n * otherwise the text anchor point\n */\n if(ax) {\n // check if annotation is off screen, to bypass DOM manipulations\n var posFraction = ax.r2fraction(options[axLetter]);\n if(posFraction < 0 || posFraction > 1) {\n if(tailRef === axRef) {\n posFraction = ax.r2fraction(options['a' + axLetter]);\n if(posFraction < 0 || posFraction > 1) {\n annotationIsOffscreen = true;\n }\n } else {\n annotationIsOffscreen = true;\n }\n }\n basePx = ax._offset + ax.r2p(options[axLetter]);\n autoAlignFraction = 0.5;\n } else {\n if(axLetter === 'x') {\n alignPosition = options[axLetter];\n basePx = gs.l + gs.w * alignPosition;\n } else {\n alignPosition = 1 - options[axLetter];\n basePx = gs.t + gs.h * alignPosition;\n }\n autoAlignFraction = options.showarrow ? 0.5 : alignPosition;\n }\n\n // now translate this into pixel positions of head, tail, and text\n // as well as paddings for autorange\n if(options.showarrow) {\n posPx.head = basePx;\n\n var arrowLength = options['a' + axLetter];\n\n // with an arrow, the text rotates around the anchor point\n textShift = annSizeFromWidth * shiftFraction(0.5, options.xanchor) -\n annSizeFromHeight * shiftFraction(0.5, options.yanchor);\n\n if(tailRef === axRef) {\n posPx.tail = ax._offset + ax.r2p(arrowLength);\n // tail is data-referenced: autorange pads the text in px from the tail\n textPadShift = textShift;\n } else {\n posPx.tail = basePx + arrowLength;\n // tail is specified in px from head, so autorange also pads vs head\n textPadShift = textShift + arrowLength;\n }\n\n posPx.text = posPx.tail + textShift;\n\n // constrain pixel/paper referenced so the draggers are at least\n // partially visible\n var maxPx = fullLayout[(axLetter === 'x') ? 'width' : 'height'];\n if(axRef === 'paper') {\n posPx.head = Lib.constrain(posPx.head, 1, maxPx - 1);\n }\n if(tailRef === 'pixel') {\n var shiftPlus = -Math.max(posPx.tail - 3, posPx.text);\n var shiftMinus = Math.min(posPx.tail + 3, posPx.text) - maxPx;\n if(shiftPlus > 0) {\n posPx.tail += shiftPlus;\n posPx.text += shiftPlus;\n } else if(shiftMinus > 0) {\n posPx.tail -= shiftMinus;\n posPx.text -= shiftMinus;\n }\n }\n\n posPx.tail += overallShift;\n posPx.head += overallShift;\n } else {\n // with no arrow, the text rotates and *then* we put the anchor\n // relative to the new bounding box\n textShift = annSize * shiftFraction(autoAlignFraction, anchor);\n textPadShift = textShift;\n posPx.text = basePx + textShift;\n }\n\n posPx.text += overallShift;\n textShift += overallShift;\n textPadShift += overallShift;\n\n // padplus/minus are used by autorange\n options['_' + axLetter + 'padplus'] = (annSize / 2) + textPadShift;\n options['_' + axLetter + 'padminus'] = (annSize / 2) - textPadShift;\n\n // size/shift are used during dragging\n options['_' + axLetter + 'size'] = annSize;\n options['_' + axLetter + 'shift'] = textShift;\n }\n\n if(annotationIsOffscreen) {\n annTextGroupInner.remove();\n return;\n }\n\n var xShift = 0;\n var yShift = 0;\n\n if(options.align !== 'left') {\n xShift = (annWidth - textWidth) * (options.align === 'center' ? 0.5 : 1);\n }\n if(options.valign !== 'top') {\n yShift = (annHeight - textHeight) * (options.valign === 'middle' ? 0.5 : 1);\n }\n\n if(hasMathjax) {\n mathjaxGroup.select('svg').attr({\n x: borderfull + xShift - 1,\n y: borderfull + yShift\n })\n .call(Drawing.setClipUrl, isSizeConstrained ? annClipID : null, gd);\n } else {\n var texty = borderfull + yShift - anntextBB.top;\n var textx = borderfull + xShift - anntextBB.left;\n\n annText.call(svgTextUtils.positionText, textx, texty)\n .call(Drawing.setClipUrl, isSizeConstrained ? annClipID : null, gd);\n }\n\n annTextClip.select('rect').call(Drawing.setRect, borderfull, borderfull,\n annWidth, annHeight);\n\n annTextBG.call(Drawing.setRect, borderwidth / 2, borderwidth / 2,\n outerWidth - borderwidth, outerHeight - borderwidth);\n\n annTextGroupInner.call(Drawing.setTranslate,\n Math.round(annPosPx.x.text - outerWidth / 2),\n Math.round(annPosPx.y.text - outerHeight / 2));\n\n /*\n * rotate text and background\n * we already calculated the text center position *as rotated*\n * because we needed that for autoranging anyway, so now whether\n * we have an arrow or not, we rotate about the text center.\n */\n annTextGroup.attr({transform: 'rotate(' + textangle + ',' +\n annPosPx.x.text + ',' + annPosPx.y.text + ')'});\n\n /*\n * add the arrow\n * uses options[arrowwidth,arrowcolor,arrowhead] for styling\n * dx and dy are normally zero, but when you are dragging the textbox\n * while the head stays put, dx and dy are the pixel offsets\n */\n var drawArrow = function(dx, dy) {\n annGroup\n .selectAll('.annotation-arrow-g')\n .remove();\n\n var headX = annPosPx.x.head;\n var headY = annPosPx.y.head;\n var tailX = annPosPx.x.tail + dx;\n var tailY = annPosPx.y.tail + dy;\n var textX = annPosPx.x.text + dx;\n var textY = annPosPx.y.text + dy;\n\n // find the edge of the text box, where we'll start the arrow:\n // create transform matrix to rotate the text box corners\n var transform = Lib.rotationXYMatrix(textangle, textX, textY);\n var applyTransform = Lib.apply2DTransform(transform);\n var applyTransform2 = Lib.apply2DTransform2(transform);\n\n // calculate and transform bounding box\n var width = +annTextBG.attr('width');\n var height = +annTextBG.attr('height');\n var xLeft = textX - 0.5 * width;\n var xRight = xLeft + width;\n var yTop = textY - 0.5 * height;\n var yBottom = yTop + height;\n var edges = [\n [xLeft, yTop, xLeft, yBottom],\n [xLeft, yBottom, xRight, yBottom],\n [xRight, yBottom, xRight, yTop],\n [xRight, yTop, xLeft, yTop]\n ].map(applyTransform2);\n\n // Remove the line if it ends inside the box. Use ray\n // casting for rotated boxes: see which edges intersect a\n // line from the arrowhead to far away and reduce with xor\n // to get the parity of the number of intersections.\n if(edges.reduce(function(a, x) {\n return a ^\n !!Lib.segmentsIntersect(headX, headY, headX + 1e6, headY + 1e6,\n x[0], x[1], x[2], x[3]);\n }, false)) {\n // no line or arrow - so quit drawArrow now\n return;\n }\n\n edges.forEach(function(x) {\n var p = Lib.segmentsIntersect(tailX, tailY, headX, headY,\n x[0], x[1], x[2], x[3]);\n if(p) {\n tailX = p.x;\n tailY = p.y;\n }\n });\n\n var strokewidth = options.arrowwidth;\n var arrowColor = options.arrowcolor;\n var arrowSide = options.arrowside;\n\n var arrowGroup = annGroup.append('g')\n .style({opacity: Color.opacity(arrowColor)})\n .classed('annotation-arrow-g', true);\n\n var arrow = arrowGroup.append('path')\n .attr('d', 'M' + tailX + ',' + tailY + 'L' + headX + ',' + headY)\n .style('stroke-width', strokewidth + 'px')\n .call(Color.stroke, Color.rgb(arrowColor));\n\n drawArrowHead(arrow, arrowSide, options);\n\n // the arrow dragger is a small square right at the head, then a line to the tail,\n // all expanded by a stroke width of 6px plus the arrow line width\n if(edits.annotationPosition && arrow.node().parentNode && !subplotId) {\n var arrowDragHeadX = headX;\n var arrowDragHeadY = headY;\n if(options.standoff) {\n var arrowLength = Math.sqrt(Math.pow(headX - tailX, 2) + Math.pow(headY - tailY, 2));\n arrowDragHeadX += options.standoff * (tailX - headX) / arrowLength;\n arrowDragHeadY += options.standoff * (tailY - headY) / arrowLength;\n }\n var arrowDrag = arrowGroup.append('path')\n .classed('annotation-arrow', true)\n .classed('anndrag', true)\n .classed('cursor-move', true)\n .attr({\n d: 'M3,3H-3V-3H3ZM0,0L' + (tailX - arrowDragHeadX) + ',' + (tailY - arrowDragHeadY),\n transform: 'translate(' + arrowDragHeadX + ',' + arrowDragHeadY + ')'\n })\n .style('stroke-width', (strokewidth + 6) + 'px')\n .call(Color.stroke, 'rgba(0,0,0,0)')\n .call(Color.fill, 'rgba(0,0,0,0)');\n\n var annx0, anny0;\n\n // dragger for the arrow & head: translates the whole thing\n // (head/tail/text) all together\n dragElement.init({\n element: arrowDrag.node(),\n gd: gd,\n prepFn: function() {\n var pos = Drawing.getTranslate(annTextGroupInner);\n\n annx0 = pos.x;\n anny0 = pos.y;\n if(xa && xa.autorange) {\n modifyBase(xa._name + '.autorange', true);\n }\n if(ya && ya.autorange) {\n modifyBase(ya._name + '.autorange', true);\n }\n },\n moveFn: function(dx, dy) {\n var annxy0 = applyTransform(annx0, anny0);\n var xcenter = annxy0[0] + dx;\n var ycenter = annxy0[1] + dy;\n annTextGroupInner.call(Drawing.setTranslate, xcenter, ycenter);\n\n modifyItem('x', xa ?\n xa.p2r(xa.r2p(options.x) + dx) :\n (options.x + (dx / gs.w)));\n modifyItem('y', ya ?\n ya.p2r(ya.r2p(options.y) + dy) :\n (options.y - (dy / gs.h)));\n\n if(options.axref === options.xref) {\n modifyItem('ax', xa.p2r(xa.r2p(options.ax) + dx));\n }\n\n if(options.ayref === options.yref) {\n modifyItem('ay', ya.p2r(ya.r2p(options.ay) + dy));\n }\n\n arrowGroup.attr('transform', 'translate(' + dx + ',' + dy + ')');\n annTextGroup.attr({\n transform: 'rotate(' + textangle + ',' +\n xcenter + ',' + ycenter + ')'\n });\n },\n doneFn: function() {\n Registry.call('_guiRelayout', gd, getUpdateObj());\n var notesBox = document.querySelector('.js-notes-box-panel');\n if(notesBox) notesBox.redraw(notesBox.selectedObj);\n }\n });\n }\n };\n\n if(options.showarrow) drawArrow(0, 0);\n\n // user dragging the annotation (text, not arrow)\n if(editTextPosition) {\n var baseTextTransform;\n\n // dragger for the textbox: if there's an arrow, just drag the\n // textbox and tail, leave the head untouched\n dragElement.init({\n element: annTextGroupInner.node(),\n gd: gd,\n prepFn: function() {\n baseTextTransform = annTextGroup.attr('transform');\n },\n moveFn: function(dx, dy) {\n var csr = 'pointer';\n if(options.showarrow) {\n if(options.axref === options.xref) {\n modifyItem('ax', xa.p2r(xa.r2p(options.ax) + dx));\n } else {\n modifyItem('ax', options.ax + dx);\n }\n\n if(options.ayref === options.yref) {\n modifyItem('ay', ya.p2r(ya.r2p(options.ay) + dy));\n } else {\n modifyItem('ay', options.ay + dy);\n }\n\n drawArrow(dx, dy);\n } else if(!subplotId) {\n var xUpdate, yUpdate;\n if(xa) {\n xUpdate = xa.p2r(xa.r2p(options.x) + dx);\n } else {\n var widthFraction = options._xsize / gs.w;\n var xLeft = options.x + (options._xshift - options.xshift) / gs.w - widthFraction / 2;\n\n xUpdate = dragElement.align(xLeft + dx / gs.w,\n widthFraction, 0, 1, options.xanchor);\n }\n\n if(ya) {\n yUpdate = ya.p2r(ya.r2p(options.y) + dy);\n } else {\n var heightFraction = options._ysize / gs.h;\n var yBottom = options.y - (options._yshift + options.yshift) / gs.h - heightFraction / 2;\n\n yUpdate = dragElement.align(yBottom - dy / gs.h,\n heightFraction, 0, 1, options.yanchor);\n }\n modifyItem('x', xUpdate);\n modifyItem('y', yUpdate);\n if(!xa || !ya) {\n csr = dragElement.getCursor(\n xa ? 0.5 : xUpdate,\n ya ? 0.5 : yUpdate,\n options.xanchor, options.yanchor\n );\n }\n } else return;\n\n annTextGroup.attr({\n transform: 'translate(' + dx + ',' + dy + ')' + baseTextTransform\n });\n\n setCursor(annTextGroupInner, csr);\n },\n clickFn: function(_, initialEvent) {\n if(options.captureevents) {\n gd.emit('plotly_clickannotation', makeEventData(initialEvent));\n }\n },\n doneFn: function() {\n setCursor(annTextGroupInner);\n Registry.call('_guiRelayout', gd, getUpdateObj());\n var notesBox = document.querySelector('.js-notes-box-panel');\n if(notesBox) notesBox.redraw(notesBox.selectedObj);\n }\n });\n }\n }\n\n if(edits.annotationText) {\n annText.call(svgTextUtils.makeEditable, {delegate: annTextGroupInner, gd: gd})\n .call(textLayout)\n .on('edit', function(_text) {\n options.text = _text;\n\n this.call(textLayout);\n\n modifyItem('text', _text);\n\n if(xa && xa.autorange) {\n modifyBase(xa._name + '.autorange', true);\n }\n if(ya && ya.autorange) {\n modifyBase(ya._name + '.autorange', true);\n }\n\n Registry.call('_guiRelayout', gd, getUpdateObj());\n });\n } else annText.call(textLayout);\n}\n\n\n/***/ }),\n\n/***/ \"25be\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar d = __webpack_require__(\"f508\")\n , validateSymbol = __webpack_require__(\"b380\");\n\nvar registry = Object.create(null);\n\nmodule.exports = function (SymbolPolyfill) {\n\treturn Object.defineProperties(SymbolPolyfill, {\n\t\tfor: d(function (key) {\n\t\t\tif (registry[key]) return registry[key];\n\t\t\treturn (registry[key] = SymbolPolyfill(String(key)));\n\t\t}),\n\t\tkeyFor: d(function (symbol) {\n\t\t\tvar key;\n\t\t\tvalidateSymbol(symbol);\n\t\t\tfor (key in registry) {\n\t\t\t\tif (registry[key] === symbol) return key;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t})\n\t});\n};\n\n\n/***/ }),\n\n/***/ \"25f3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar attrs = __webpack_require__(\"4ce7\");\n\nmodule.exports = function(layoutIn, layoutOut, fullData) {\n var subplotsDone = {};\n var sp;\n\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn[sp] || {}, layoutOut[sp], attrs, attr, dflt);\n }\n\n for(var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if(trace.type === 'barpolar' && trace.visible === true) {\n sp = trace.subplot;\n if(!subplotsDone[sp]) {\n coerce('barmode');\n coerce('bargap');\n subplotsDone[sp] = 1;\n }\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"25f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\n/*\n * Given a 2D array as well as a basis in either direction, this function fills in the\n * 2D array using a combination of smoothing and extrapolation. This is rather important\n * for carpet plots since it's used for layout so that we can't simply omit or blank out\n * points. We need a reasonable guess so that the interpolation puts points somewhere\n * even if we were to somehow represent that the data was missing later on.\n *\n * input:\n * - data: 2D array of arrays\n * - a: array such that a.length === data[0].length\n * - b: array such that b.length === data.length\n */\nmodule.exports = function smoothFill2dArray(data, a, b) {\n var i, j, k;\n var ip = [];\n var jp = [];\n // var neighborCnts = [];\n\n var ni = data[0].length;\n var nj = data.length;\n\n function avgSurrounding(i, j) {\n // As a low-quality start, we can simply average surrounding points (in a not\n // non-uniform grid aware manner):\n var sum = 0.0;\n var val;\n var cnt = 0;\n if(i > 0 && (val = data[j][i - 1]) !== undefined) {\n cnt++;\n sum += val;\n }\n if(i < ni - 1 && (val = data[j][i + 1]) !== undefined) {\n cnt++;\n sum += val;\n }\n if(j > 0 && (val = data[j - 1][i]) !== undefined) {\n cnt++;\n sum += val;\n }\n if(j < nj - 1 && (val = data[j + 1][i]) !== undefined) {\n cnt++;\n sum += val;\n }\n return sum / Math.max(1, cnt);\n }\n\n // This loop iterates over all cells. Any cells that are null will be noted and those\n // are the only points we will loop over and update via laplace's equation. Points with\n // any neighbors will receive the average. If there are no neighboring points, then they\n // will be set to zero. Also as we go, track the maximum magnitude so that we can scale\n // our tolerance accordingly.\n var dmax = 0.0;\n for(i = 0; i < ni; i++) {\n for(j = 0; j < nj; j++) {\n if(data[j][i] === undefined) {\n ip.push(i);\n jp.push(j);\n\n data[j][i] = avgSurrounding(i, j);\n // neighborCnts.push(result.neighbors);\n }\n dmax = Math.max(dmax, Math.abs(data[j][i]));\n }\n }\n\n if(!ip.length) return data;\n\n // The tolerance doesn't need to be excessive. It's just for display positioning\n var dxp, dxm, dap, dam, dbp, dbm, c, d, diff, reldiff, overrelaxation;\n var tol = 1e-5;\n var resid = 0;\n var itermax = 100;\n var iter = 0;\n var n = ip.length;\n do {\n resid = 0;\n // Normally we'd loop in two dimensions, but not all points are blank and need\n // an update, so we instead loop only over the points that were tabulated above\n for(k = 0; k < n; k++) {\n i = ip[k];\n j = jp[k];\n // neighborCnt = neighborCnts[k];\n\n // Track a counter for how many contributions there are. We'll use this counter\n // to average at the end, which reduces to laplace's equation with neumann boundary\n // conditions on the first derivative (second derivative is zero so that we get\n // a nice linear extrapolation at the boundaries).\n var boundaryCnt = 0;\n var newVal = 0;\n\n var d0, d1, x0, x1, i0, j0;\n if(i === 0) {\n // If this lies along the i = 0 boundary, extrapolate from the two points\n // to the right of this point. Note that the finite differences take into\n // account non-uniform grid spacing:\n i0 = Math.min(ni - 1, 2);\n x0 = a[i0];\n x1 = a[1];\n d0 = data[j][i0];\n d1 = data[j][1];\n newVal += d1 + (d1 - d0) * (a[0] - x1) / (x1 - x0);\n boundaryCnt++;\n } else if(i === ni - 1) {\n // If along the high i boundary, extrapolate from the two points to the\n // left of this point\n i0 = Math.max(0, ni - 3);\n x0 = a[i0];\n x1 = a[ni - 2];\n d0 = data[j][i0];\n d1 = data[j][ni - 2];\n newVal += d1 + (d1 - d0) * (a[ni - 1] - x1) / (x1 - x0);\n boundaryCnt++;\n }\n\n if((i === 0 || i === ni - 1) && (j > 0 && j < nj - 1)) {\n // If along the min(i) or max(i) boundaries, also smooth vertically as long\n // as we're not in a corner. Note that the finite differences used here\n // are also aware of nonuniform grid spacing:\n dxp = b[j + 1] - b[j];\n dxm = b[j] - b[j - 1];\n newVal += (dxm * data[j + 1][i] + dxp * data[j - 1][i]) / (dxm + dxp);\n boundaryCnt++;\n }\n\n if(j === 0) {\n // If along the j = 0 boundary, extrpolate this point from the two points\n // above it\n j0 = Math.min(nj - 1, 2);\n x0 = b[j0];\n x1 = b[1];\n d0 = data[j0][i];\n d1 = data[1][i];\n newVal += d1 + (d1 - d0) * (b[0] - x1) / (x1 - x0);\n boundaryCnt++;\n } else if(j === nj - 1) {\n // Same for the max j boundary from the cells below it:\n j0 = Math.max(0, nj - 3);\n x0 = b[j0];\n x1 = b[nj - 2];\n d0 = data[j0][i];\n d1 = data[nj - 2][i];\n newVal += d1 + (d1 - d0) * (b[nj - 1] - x1) / (x1 - x0);\n boundaryCnt++;\n }\n\n if((j === 0 || j === nj - 1) && (i > 0 && i < ni - 1)) {\n // Now average points to the left/right as long as not in a corner:\n dxp = a[i + 1] - a[i];\n dxm = a[i] - a[i - 1];\n newVal += (dxm * data[j][i + 1] + dxp * data[j][i - 1]) / (dxm + dxp);\n boundaryCnt++;\n }\n\n if(!boundaryCnt) {\n // If none of the above conditions were triggered, then this is an interior\n // point and we can just do a laplace equation update. As above, these differences\n // are aware of nonuniform grid spacing:\n dap = a[i + 1] - a[i];\n dam = a[i] - a[i - 1];\n dbp = b[j + 1] - b[j];\n dbm = b[j] - b[j - 1];\n\n // These are just some useful constants for the iteration, which is perfectly\n // straightforward but a little long to derive from f_xx + f_yy = 0.\n c = dap * dam * (dap + dam);\n d = dbp * dbm * (dbp + dbm);\n\n newVal = (c * (dbm * data[j + 1][i] + dbp * data[j - 1][i]) +\n d * (dam * data[j][i + 1] + dap * data[j][i - 1])) /\n (d * (dam + dap) + c * (dbm + dbp));\n } else {\n // If we did have contributions from the boundary conditions, then average\n // the result from the various contributions:\n newVal /= boundaryCnt;\n }\n\n // Jacobi updates are ridiculously slow to converge, so this approach uses a\n // Gauss-seidel iteration which is dramatically faster.\n diff = newVal - data[j][i];\n reldiff = diff / dmax;\n resid += reldiff * reldiff;\n\n // Gauss-Seidel-ish iteration, omega chosen based on heuristics and some\n // quick tests.\n //\n // NB: Don't overrelax the boundarie. Otherwise set an overrelaxation factor\n // which is a little low but safely optimal-ish:\n overrelaxation = boundaryCnt ? 0 : 0.85;\n\n // If there are four non-null neighbors, then we want a simple average without\n // overrelaxation. If all the surrouding points are null, then we want the full\n // overrelaxation\n //\n // Based on experiments, this actually seems to slow down convergence just a bit.\n // I'll leave it here for reference in case this needs to be revisited, but\n // it seems to work just fine without this.\n // if (overrelaxation) overrelaxation *= (4 - neighborCnt) / 4;\n\n data[j][i] += diff * (1 + overrelaxation);\n }\n\n resid = Math.sqrt(resid);\n } while(iter++ < itermax && resid > tol);\n\n Lib.log('Smoother converged to', resid, 'after', iter, 'iterations');\n\n return data;\n};\n\n\n/***/ }),\n\n/***/ \"262a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar resolveException = __webpack_require__(\"84d3\")\n , is = __webpack_require__(\"936a\");\n\nmodule.exports = function (value/*, options*/) {\n\tif (is(value)) return value;\n\treturn resolveException(value, \"Cannot use %v\", arguments[1]);\n};\n\n\n/***/ }),\n\n/***/ \"2638\":\n/***/ (function(module, exports) {\n\nmodule.exports = create\n\n/**\n * Creates a new, empty vec4\n *\n * @returns {vec4} a new 4D vector\n */\nfunction create () {\n var out = new Float32Array(4)\n out[0] = 0\n out[1] = 0\n out[2] = 0\n out[3] = 0\n return out\n}\n\n\n/***/ }),\n\n/***/ \"265e\":\n/***/ (function(module, exports) {\n\nmodule.exports = copy\n\n/**\n * Copy the values from one vec4 to another\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the source vector\n * @returns {vec4} out\n */\nfunction copy (out, a) {\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n out[3] = a[3]\n return out\n}\n\n\n/***/ }),\n\n/***/ \"26a7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createErrorBars\n\nvar createBuffer = __webpack_require__(\"efce\")\nvar createVAO = __webpack_require__(\"b205\")\nvar createShader = __webpack_require__(\"531f\")\n\nvar IDENTITY = [1,0,0,0,\n 0,1,0,0,\n 0,0,1,0,\n 0,0,0,1]\n\nfunction ErrorBars(gl, buffer, vao, shader) {\n this.gl = gl\n this.shader = shader\n this.buffer = buffer\n this.vao = vao\n this.pixelRatio = 1\n this.bounds = [[ Infinity, Infinity, Infinity], [-Infinity,-Infinity,-Infinity]]\n this.clipBounds = [[-Infinity,-Infinity,-Infinity], [ Infinity, Infinity, Infinity]]\n this.lineWidth = [1,1,1]\n this.capSize = [10,10,10]\n this.lineCount = [0,0,0]\n this.lineOffset = [0,0,0]\n this.opacity = 1\n this.hasAlpha = false\n}\n\nvar proto = ErrorBars.prototype\n\nproto.isOpaque = function() {\n return !this.hasAlpha\n}\n\nproto.isTransparent = function() {\n return this.hasAlpha\n}\n\nproto.drawTransparent = proto.draw = function(cameraParams) {\n var gl = this.gl\n var uniforms = this.shader.uniforms\n\n this.shader.bind()\n var view = uniforms.view = cameraParams.view || IDENTITY\n var projection = uniforms.projection = cameraParams.projection || IDENTITY\n uniforms.model = cameraParams.model || IDENTITY\n uniforms.clipBounds = this.clipBounds\n uniforms.opacity = this.opacity\n\n\n var cx = view[12]\n var cy = view[13]\n var cz = view[14]\n var cw = view[15]\n\n var isOrtho = cameraParams._ortho || false\n var orthoFix = (isOrtho) ? 2 : 1 // double up padding for orthographic ticks & labels\n var pixelScaleF = orthoFix * this.pixelRatio * (projection[3]*cx + projection[7]*cy + projection[11]*cz + projection[15]*cw) / gl.drawingBufferHeight\n\n this.vao.bind()\n for(var i=0; i<3; ++i) {\n gl.lineWidth(this.lineWidth[i] * this.pixelRatio)\n uniforms.capSize = this.capSize[i] * pixelScaleF\n if (this.lineCount[i]) {\n gl.drawArrays(gl.LINES, this.lineOffset[i], this.lineCount[i])\n }\n }\n this.vao.unbind()\n}\n\nfunction updateBounds(bounds, point) {\n for(var i=0; i<3; ++i) {\n bounds[0][i] = Math.min(bounds[0][i], point[i])\n bounds[1][i] = Math.max(bounds[1][i], point[i])\n }\n}\n\nvar FACE_TABLE = (function(){\n var table = new Array(3)\n for(var d=0; d<3; ++d) {\n var row = []\n for(var j=1; j<=2; ++j) {\n for(var s=-1; s<=1; s+=2) {\n var u = (j+d) % 3\n var y = [0,0,0]\n y[u] = s\n row.push(y)\n }\n }\n table[d] = row\n }\n return table\n})()\n\n\nfunction emitFace(verts, x, c, d) {\n var offsets = FACE_TABLE[d]\n for(var i=0; i 0) {\n var x = p.slice()\n x[j] += e[1][j]\n verts.push(p[0], p[1], p[2],\n c[0], c[1], c[2], c[3],\n 0, 0, 0,\n x[0], x[1], x[2],\n c[0], c[1], c[2], c[3],\n 0, 0, 0)\n updateBounds(this.bounds, x)\n vertexCount += 2 + emitFace(verts, x, c, j)\n }\n }\n this.lineCount[j] = vertexCount - this.lineOffset[j]\n }\n this.buffer.update(verts)\n }\n}\n\nproto.dispose = function() {\n this.shader.dispose()\n this.buffer.dispose()\n this.vao.dispose()\n}\n\nfunction createErrorBars(options) {\n var gl = options.gl\n var buffer = createBuffer(gl)\n var vao = createVAO(gl, [\n {\n buffer: buffer,\n type: gl.FLOAT,\n size: 3,\n offset: 0,\n stride: 40\n },\n {\n buffer: buffer,\n type: gl.FLOAT,\n size: 4,\n offset: 12,\n stride: 40\n },\n {\n buffer: buffer,\n type: gl.FLOAT,\n size: 3,\n offset: 28,\n stride: 40\n }\n ])\n\n var shader = createShader(gl)\n shader.attributes.position.location = 0\n shader.attributes.color.location = 1\n shader.attributes.offset.location = 2\n\n var result = new ErrorBars(gl, buffer, vao, shader)\n result.update(options)\n return result\n}\n\n\n/***/ }),\n\n/***/ \"26cf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar pool = __webpack_require__(\"cea5\")\nvar inverse = __webpack_require__(\"f31e\")\n\nfunction rank(permutation) {\n var n = permutation.length\n switch(n) {\n case 0:\n case 1:\n return 0\n case 2:\n return permutation[1]\n default:\n break\n }\n var p = pool.mallocUint32(n)\n var pinv = pool.mallocUint32(n)\n var r = 0, s, t, i\n inverse(permutation, pinv)\n for(i=0; i0; --i) {\n t = pinv[i]\n s = p[i]\n p[i] = p[t]\n p[t] = s\n pinv[i] = pinv[s]\n pinv[s] = t\n r = (r + s) * i\n }\n pool.freeUint32(pinv)\n pool.freeUint32(p)\n return r\n}\n\nfunction unrank(n, r, p) {\n switch(n) {\n case 0:\n if(p) { return p }\n return []\n case 1:\n if(p) {\n p[0] = 0\n return p\n } else {\n return [0]\n }\n case 2:\n if(p) {\n if(r) {\n p[0] = 0\n p[1] = 1\n } else {\n p[0] = 1\n p[1] = 0\n }\n return p\n } else {\n return r ? [0,1] : [1,0]\n }\n default:\n break\n }\n p = p || new Array(n)\n var s, t, i, nf=1\n p[0] = 0\n for(i=1; i0; --i) {\n s = (r / nf)|0\n r = (r - s * nf)|0\n nf = (nf / i)|0\n t = p[i]|0\n p[i] = p[s]|0\n p[s] = t|0\n }\n return p\n}\n\nexports.rank = rank\nexports.unrank = unrank\n\n\n/***/ }),\n\n/***/ \"26d1\":\n/***/ (function(module, exports) {\n\nmodule.exports = transformQuat;\n\n/**\n * Transforms the vec3 with a quat\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to transform\n * @param {quat} q quaternion to transform with\n * @returns {vec3} out\n */\nfunction transformQuat(out, a, q) {\n // benchmarks: http://jsperf.com/quaternion-transform-vec3-implementations\n\n var x = a[0], y = a[1], z = a[2],\n qx = q[0], qy = q[1], qz = q[2], qw = q[3],\n\n // calculate quat * vec\n ix = qw * x + qy * z - qz * y,\n iy = qw * y + qz * x - qx * z,\n iz = qw * z + qx * y - qy * x,\n iw = -qx * x - qy * y - qz * z\n\n // calculate result * inverse quat\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx\n return out\n}\n\n/***/ }),\n\n/***/ \"26dd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar c = __webpack_require__(\"0d59\");\nvar d3 = __webpack_require__(\"6e58\");\nvar gup = __webpack_require__(\"0a3e\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar svgUtil = __webpack_require__(\"0379\");\nvar raiseToTop = __webpack_require__(\"fc26\").raiseToTop;\nvar cancelEeaseColumn = __webpack_require__(\"fc26\").cancelTransition;\nvar prepareData = __webpack_require__(\"8766\");\nvar splitData = __webpack_require__(\"7815\");\nvar Color = __webpack_require__(\"d115\");\n\nmodule.exports = function plot(gd, wrappedTraceHolders) {\n var dynamic = !gd._context.staticPlot;\n\n var table = gd._fullLayout._paper.selectAll('.' + c.cn.table)\n .data(wrappedTraceHolders.map(function(wrappedTraceHolder) {\n var traceHolder = gup.unwrap(wrappedTraceHolder);\n var trace = traceHolder.trace;\n return prepareData(gd, trace);\n }), gup.keyFun);\n\n table.exit().remove();\n\n table.enter()\n .append('g')\n .classed(c.cn.table, true)\n .attr('overflow', 'visible')\n .style('box-sizing', 'content-box')\n .style('position', 'absolute')\n .style('left', 0)\n .style('overflow', 'visible')\n .style('shape-rendering', 'crispEdges')\n .style('pointer-events', 'all');\n\n table\n .attr('width', function(d) {return d.width + d.size.l + d.size.r;})\n .attr('height', function(d) {return d.height + d.size.t + d.size.b;})\n .attr('transform', function(d) {\n return 'translate(' + d.translateX + ',' + d.translateY + ')';\n });\n\n var tableControlView = table.selectAll('.' + c.cn.tableControlView)\n .data(gup.repeat, gup.keyFun);\n\n var cvEnter = tableControlView.enter()\n .append('g')\n .classed(c.cn.tableControlView, true)\n .style('box-sizing', 'content-box');\n if(dynamic) {\n cvEnter\n .on('mousemove', function(d) {\n tableControlView\n .filter(function(dd) {return d === dd;})\n .call(renderScrollbarKit, gd);\n })\n .on('mousewheel', function(d) {\n if(d.scrollbarState.wheeling) return;\n d.scrollbarState.wheeling = true;\n var newY = d.scrollY + d3.event.deltaY;\n var noChange = makeDragRow(gd, tableControlView, null, newY)(d);\n if(!noChange) {\n d3.event.stopPropagation();\n d3.event.preventDefault();\n }\n d.scrollbarState.wheeling = false;\n })\n .call(renderScrollbarKit, gd, true);\n }\n\n tableControlView\n .attr('transform', function(d) {return 'translate(' + d.size.l + ' ' + d.size.t + ')';});\n\n // scrollBackground merely ensures that mouse events are captured even on crazy fast scrollwheeling\n // otherwise rendering glitches may occur\n var scrollBackground = tableControlView.selectAll('.' + c.cn.scrollBackground)\n .data(gup.repeat, gup.keyFun);\n\n scrollBackground.enter()\n .append('rect')\n .classed(c.cn.scrollBackground, true)\n .attr('fill', 'none');\n\n scrollBackground\n .attr('width', function(d) {return d.width;})\n .attr('height', function(d) {return d.height;});\n\n tableControlView.each(function(d) {\n Drawing.setClipUrl(d3.select(this), scrollAreaBottomClipKey(gd, d), gd);\n });\n\n var yColumn = tableControlView.selectAll('.' + c.cn.yColumn)\n .data(function(vm) {return vm.columns;}, gup.keyFun);\n\n yColumn.enter()\n .append('g')\n .classed(c.cn.yColumn, true);\n\n yColumn.exit().remove();\n\n yColumn.attr('transform', function(d) {return 'translate(' + d.x + ' 0)';});\n\n if(dynamic) {\n yColumn.call(d3.behavior.drag()\n .origin(function(d) {\n var movedColumn = d3.select(this);\n easeColumn(movedColumn, d, -c.uplift);\n raiseToTop(this);\n d.calcdata.columnDragInProgress = true;\n renderScrollbarKit(tableControlView.filter(function(dd) {return d.calcdata.key === dd.key;}), gd);\n return d;\n })\n .on('drag', function(d) {\n var movedColumn = d3.select(this);\n var getter = function(dd) {return (d === dd ? d3.event.x : dd.x) + dd.columnWidth / 2;};\n d.x = Math.max(-c.overdrag, Math.min(d.calcdata.width + c.overdrag - d.columnWidth, d3.event.x));\n\n var sortableColumns = flatData(yColumn).filter(function(dd) {return dd.calcdata.key === d.calcdata.key;});\n var newOrder = sortableColumns.sort(function(a, b) {return getter(a) - getter(b);});\n newOrder.forEach(function(dd, i) {\n dd.xIndex = i;\n dd.x = d === dd ? dd.x : dd.xScale(dd);\n });\n\n yColumn.filter(function(dd) {return d !== dd;})\n .transition()\n .ease(c.transitionEase)\n .duration(c.transitionDuration)\n .attr('transform', function(d) {return 'translate(' + d.x + ' 0)';});\n movedColumn\n .call(cancelEeaseColumn)\n .attr('transform', 'translate(' + d.x + ' -' + c.uplift + ' )');\n })\n .on('dragend', function(d) {\n var movedColumn = d3.select(this);\n var p = d.calcdata;\n d.x = d.xScale(d);\n d.calcdata.columnDragInProgress = false;\n easeColumn(movedColumn, d, 0);\n columnMoved(gd, p, p.columns.map(function(dd) {return dd.xIndex;}));\n })\n );\n }\n\n yColumn.each(function(d) {\n Drawing.setClipUrl(d3.select(this), columnBoundaryClipKey(gd, d), gd);\n });\n\n var columnBlock = yColumn.selectAll('.' + c.cn.columnBlock)\n .data(splitData.splitToPanels, gup.keyFun);\n\n columnBlock.enter()\n .append('g')\n .classed(c.cn.columnBlock, true)\n .attr('id', function(d) {return d.key;});\n\n columnBlock\n .style('cursor', function(d) {\n return d.dragHandle ? 'ew-resize' : d.calcdata.scrollbarState.barWiggleRoom ? 'ns-resize' : 'default';\n });\n\n var headerColumnBlock = columnBlock.filter(headerBlock);\n var cellsColumnBlock = columnBlock.filter(cellsBlock);\n\n if(dynamic) {\n cellsColumnBlock.call(d3.behavior.drag()\n .origin(function(d) {\n d3.event.stopPropagation();\n return d;\n })\n .on('drag', makeDragRow(gd, tableControlView, -1))\n .on('dragend', function() {\n // fixme emit plotly notification\n })\n );\n }\n\n // initial rendering: header is rendered first, as it may may have async LaTeX (show header first)\n // but blocks are _entered_ the way they are due to painter's algo (header on top)\n renderColumnCellTree(gd, tableControlView, headerColumnBlock, columnBlock);\n renderColumnCellTree(gd, tableControlView, cellsColumnBlock, columnBlock);\n\n var scrollAreaClip = tableControlView.selectAll('.' + c.cn.scrollAreaClip)\n .data(gup.repeat, gup.keyFun);\n\n scrollAreaClip.enter()\n .append('clipPath')\n .classed(c.cn.scrollAreaClip, true)\n .attr('id', function(d) {return scrollAreaBottomClipKey(gd, d);});\n\n var scrollAreaClipRect = scrollAreaClip.selectAll('.' + c.cn.scrollAreaClipRect)\n .data(gup.repeat, gup.keyFun);\n\n scrollAreaClipRect.enter()\n .append('rect')\n .classed(c.cn.scrollAreaClipRect, true)\n .attr('x', -c.overdrag)\n .attr('y', -c.uplift)\n .attr('fill', 'none');\n\n scrollAreaClipRect\n .attr('width', function(d) {return d.width + 2 * c.overdrag;})\n .attr('height', function(d) {return d.height + c.uplift;});\n\n var columnBoundary = yColumn.selectAll('.' + c.cn.columnBoundary)\n .data(gup.repeat, gup.keyFun);\n\n columnBoundary.enter()\n .append('g')\n .classed(c.cn.columnBoundary, true);\n\n var columnBoundaryClippath = yColumn.selectAll('.' + c.cn.columnBoundaryClippath)\n .data(gup.repeat, gup.keyFun);\n\n // SVG spec doesn't mandate wrapping into a and doesn't seem to cause a speed difference\n columnBoundaryClippath.enter()\n .append('clipPath')\n .classed(c.cn.columnBoundaryClippath, true);\n\n columnBoundaryClippath\n .attr('id', function(d) {return columnBoundaryClipKey(gd, d);});\n\n var columnBoundaryRect = columnBoundaryClippath.selectAll('.' + c.cn.columnBoundaryRect)\n .data(gup.repeat, gup.keyFun);\n\n columnBoundaryRect.enter()\n .append('rect')\n .classed(c.cn.columnBoundaryRect, true)\n .attr('fill', 'none');\n\n columnBoundaryRect\n .attr('width', function(d) { return d.columnWidth + 2 * roundHalfWidth(d); })\n .attr('height', function(d) {return d.calcdata.height + 2 * roundHalfWidth(d) + c.uplift;})\n .attr('x', function(d) { return -roundHalfWidth(d); })\n .attr('y', function(d) { return -roundHalfWidth(d); });\n\n updateBlockYPosition(null, cellsColumnBlock, tableControlView);\n};\n\nfunction roundHalfWidth(d) {\n return Math.ceil(d.calcdata.maxLineWidth / 2);\n}\n\nfunction scrollAreaBottomClipKey(gd, d) {\n return 'clip' + gd._fullLayout._uid + '_scrollAreaBottomClip_' + d.key;\n}\n\nfunction columnBoundaryClipKey(gd, d) {\n return 'clip' + gd._fullLayout._uid + '_columnBoundaryClippath_' + d.calcdata.key + '_' + d.specIndex;\n}\n\nfunction flatData(selection) {\n return [].concat.apply([], selection.map(function(g) {return g;}))\n .map(function(g) {return g.__data__;});\n}\n\nfunction renderScrollbarKit(tableControlView, gd, bypassVisibleBar) {\n function calcTotalHeight(d) {\n var blocks = d.rowBlocks;\n return firstRowAnchor(blocks, blocks.length - 1) + (blocks.length ? rowsHeight(blocks[blocks.length - 1], Infinity) : 1);\n }\n\n var scrollbarKit = tableControlView.selectAll('.' + c.cn.scrollbarKit)\n .data(gup.repeat, gup.keyFun);\n\n scrollbarKit.enter()\n .append('g')\n .classed(c.cn.scrollbarKit, true)\n .style('shape-rendering', 'geometricPrecision');\n\n scrollbarKit\n .each(function(d) {\n var s = d.scrollbarState;\n s.totalHeight = calcTotalHeight(d);\n s.scrollableAreaHeight = d.groupHeight - headerHeight(d);\n s.currentlyVisibleHeight = Math.min(s.totalHeight, s.scrollableAreaHeight);\n s.ratio = s.currentlyVisibleHeight / s.totalHeight;\n s.barLength = Math.max(s.ratio * s.currentlyVisibleHeight, c.goldenRatio * c.scrollbarWidth);\n s.barWiggleRoom = s.currentlyVisibleHeight - s.barLength;\n s.wiggleRoom = Math.max(0, s.totalHeight - s.scrollableAreaHeight);\n s.topY = s.barWiggleRoom === 0 ? 0 : (d.scrollY / s.wiggleRoom) * s.barWiggleRoom;\n s.bottomY = s.topY + s.barLength;\n s.dragMultiplier = s.wiggleRoom / s.barWiggleRoom;\n })\n .attr('transform', function(d) {\n var xPosition = d.width + c.scrollbarWidth / 2 + c.scrollbarOffset;\n return 'translate(' + xPosition + ' ' + headerHeight(d) + ')';\n });\n\n var scrollbar = scrollbarKit.selectAll('.' + c.cn.scrollbar)\n .data(gup.repeat, gup.keyFun);\n\n scrollbar.enter()\n .append('g')\n .classed(c.cn.scrollbar, true);\n\n var scrollbarSlider = scrollbar.selectAll('.' + c.cn.scrollbarSlider)\n .data(gup.repeat, gup.keyFun);\n\n scrollbarSlider.enter()\n .append('g')\n .classed(c.cn.scrollbarSlider, true);\n\n scrollbarSlider\n .attr('transform', function(d) {\n return 'translate(0 ' + (d.scrollbarState.topY || 0) + ')';\n });\n\n var scrollbarGlyph = scrollbarSlider.selectAll('.' + c.cn.scrollbarGlyph)\n .data(gup.repeat, gup.keyFun);\n\n scrollbarGlyph.enter()\n .append('line')\n .classed(c.cn.scrollbarGlyph, true)\n .attr('stroke', 'black')\n .attr('stroke-width', c.scrollbarWidth)\n .attr('stroke-linecap', 'round')\n .attr('y1', c.scrollbarWidth / 2);\n\n scrollbarGlyph\n .attr('y2', function(d) {\n return d.scrollbarState.barLength - c.scrollbarWidth / 2;\n })\n .attr('stroke-opacity', function(d) {\n return d.columnDragInProgress || !d.scrollbarState.barWiggleRoom || bypassVisibleBar ? 0 : 0.4;\n });\n\n // cancel transition: possible pending (also, delayed) transition\n scrollbarGlyph\n .transition().delay(0).duration(0);\n\n scrollbarGlyph\n .transition().delay(c.scrollbarHideDelay).duration(c.scrollbarHideDuration)\n .attr('stroke-opacity', 0);\n\n var scrollbarCaptureZone = scrollbar.selectAll('.' + c.cn.scrollbarCaptureZone)\n .data(gup.repeat, gup.keyFun);\n\n scrollbarCaptureZone.enter()\n .append('line')\n .classed(c.cn.scrollbarCaptureZone, true)\n .attr('stroke', 'white')\n .attr('stroke-opacity', 0.01) // some browser might get rid of a 0 opacity element\n .attr('stroke-width', c.scrollbarCaptureWidth)\n .attr('stroke-linecap', 'butt')\n .attr('y1', 0)\n .on('mousedown', function(d) {\n var y = d3.event.y;\n var bbox = this.getBoundingClientRect();\n var s = d.scrollbarState;\n var pixelVal = y - bbox.top;\n var inverseScale = d3.scale.linear().domain([0, s.scrollableAreaHeight]).range([0, s.totalHeight]).clamp(true);\n if(!(s.topY <= pixelVal && pixelVal <= s.bottomY)) {\n makeDragRow(gd, tableControlView, null, inverseScale(pixelVal - s.barLength / 2))(d);\n }\n })\n .call(d3.behavior.drag()\n .origin(function(d) {\n d3.event.stopPropagation();\n d.scrollbarState.scrollbarScrollInProgress = true;\n return d;\n })\n .on('drag', makeDragRow(gd, tableControlView))\n .on('dragend', function() {\n // fixme emit Plotly event\n })\n );\n\n scrollbarCaptureZone\n .attr('y2', function(d) {\n return d.scrollbarState.scrollableAreaHeight;\n });\n\n // Remove scroll glyph and capture zone on static plots\n // as they don't render properly when converted to PDF\n // in the Chrome PDF viewer\n // https://github.com/plotly/streambed/issues/11618\n if(gd._context.staticPlot) {\n scrollbarGlyph.remove();\n scrollbarCaptureZone.remove();\n }\n}\n\nfunction renderColumnCellTree(gd, tableControlView, columnBlock, allColumnBlock) {\n // fixme this perf hotspot\n // this is performance critical code as scrolling calls it on every revolver switch\n // it appears sufficiently fast but there are plenty of low-hanging fruits for performance optimization\n\n var columnCells = renderColumnCells(columnBlock);\n\n var columnCell = renderColumnCell(columnCells);\n\n supplyStylingValues(columnCell);\n\n var cellRect = renderCellRect(columnCell);\n\n sizeAndStyleRect(cellRect);\n\n var cellTextHolder = renderCellTextHolder(columnCell);\n\n var cellText = renderCellText(cellTextHolder);\n\n setFont(cellText);\n populateCellText(cellText, tableControlView, allColumnBlock, gd);\n\n // doing this at the end when text, and text stlying are set\n setCellHeightAndPositionY(columnCell);\n}\n\nfunction renderColumnCells(columnBlock) {\n var columnCells = columnBlock.selectAll('.' + c.cn.columnCells)\n .data(gup.repeat, gup.keyFun);\n\n columnCells.enter()\n .append('g')\n .classed(c.cn.columnCells, true);\n\n columnCells.exit()\n .remove();\n\n return columnCells;\n}\n\nfunction renderColumnCell(columnCells) {\n var columnCell = columnCells.selectAll('.' + c.cn.columnCell)\n .data(splitData.splitToCells, function(d) {return d.keyWithinBlock;});\n\n columnCell.enter()\n .append('g')\n .classed(c.cn.columnCell, true);\n\n columnCell.exit()\n .remove();\n\n return columnCell;\n}\n\nfunction renderCellRect(columnCell) {\n var cellRect = columnCell.selectAll('.' + c.cn.cellRect)\n .data(gup.repeat, function(d) {return d.keyWithinBlock;});\n\n cellRect.enter()\n .append('rect')\n .classed(c.cn.cellRect, true);\n\n return cellRect;\n}\n\nfunction renderCellText(cellTextHolder) {\n var cellText = cellTextHolder.selectAll('.' + c.cn.cellText)\n .data(gup.repeat, function(d) {return d.keyWithinBlock;});\n\n cellText.enter()\n .append('text')\n .classed(c.cn.cellText, true)\n .style('cursor', function() {return 'auto';})\n .on('mousedown', function() {d3.event.stopPropagation();});\n\n return cellText;\n}\n\nfunction renderCellTextHolder(columnCell) {\n var cellTextHolder = columnCell.selectAll('.' + c.cn.cellTextHolder)\n .data(gup.repeat, function(d) {return d.keyWithinBlock;});\n\n cellTextHolder.enter()\n .append('g')\n .classed(c.cn.cellTextHolder, true)\n .style('shape-rendering', 'geometricPrecision');\n\n return cellTextHolder;\n}\n\nfunction supplyStylingValues(columnCell) {\n columnCell\n .each(function(d, i) {\n var spec = d.calcdata.cells.font;\n var col = d.column.specIndex;\n var font = {\n size: gridPick(spec.size, col, i),\n color: gridPick(spec.color, col, i),\n family: gridPick(spec.family, col, i)\n };\n d.rowNumber = d.key;\n d.align = gridPick(d.calcdata.cells.align, col, i);\n d.cellBorderWidth = gridPick(d.calcdata.cells.line.width, col, i);\n d.font = font;\n });\n}\n\nfunction setFont(cellText) {\n cellText\n .each(function(d) {\n Drawing.font(d3.select(this), d.font);\n });\n}\n\nfunction sizeAndStyleRect(cellRect) {\n cellRect\n .attr('width', function(d) {return d.column.columnWidth;})\n .attr('stroke-width', function(d) {return d.cellBorderWidth;})\n .each(function(d) {\n var atomicSelection = d3.select(this);\n Color.stroke(atomicSelection, gridPick(d.calcdata.cells.line.color, d.column.specIndex, d.rowNumber));\n Color.fill(atomicSelection, gridPick(d.calcdata.cells.fill.color, d.column.specIndex, d.rowNumber));\n });\n}\n\nfunction populateCellText(cellText, tableControlView, allColumnBlock, gd) {\n cellText\n .text(function(d) {\n var col = d.column.specIndex;\n var row = d.rowNumber;\n\n var userSuppliedContent = d.value;\n var stringSupplied = (typeof userSuppliedContent === 'string');\n var hasBreaks = stringSupplied && userSuppliedContent.match(/
/i);\n var userBrokenText = !stringSupplied || hasBreaks;\n d.mayHaveMarkup = stringSupplied && userSuppliedContent.match(/[<&>]/);\n\n var latex = isLatex(userSuppliedContent);\n d.latex = latex;\n\n var prefix = latex ? '' : gridPick(d.calcdata.cells.prefix, col, row) || '';\n var suffix = latex ? '' : gridPick(d.calcdata.cells.suffix, col, row) || '';\n var format = latex ? null : gridPick(d.calcdata.cells.format, col, row) || null;\n\n var prefixSuffixedText = prefix + (format ? d3.format(format)(d.value) : d.value) + suffix;\n\n var hasWrapSplitCharacter;\n d.wrappingNeeded = !d.wrapped && !userBrokenText && !latex && (hasWrapSplitCharacter = hasWrapCharacter(prefixSuffixedText));\n d.cellHeightMayIncrease = hasBreaks || latex || d.mayHaveMarkup || (hasWrapSplitCharacter === void(0) ? hasWrapCharacter(prefixSuffixedText) : hasWrapSplitCharacter);\n d.needsConvertToTspans = d.mayHaveMarkup || d.wrappingNeeded || d.latex;\n\n var textToRender;\n if(d.wrappingNeeded) {\n var hrefPreservedText = c.wrapSplitCharacter === ' ' ? prefixSuffixedText.replace(/ pTop) {\n pages.push(blockIndex);\n }\n pTop += rowsHeight;\n\n // consider this nice final optimization; put it in `for` condition - caveat, currently the\n // block.allRowsHeight relies on being invalidated, so enabling this opt may not be safe\n // if(pages.length > 1) break;\n }\n\n return pages;\n}\n\nfunction updateBlockYPosition(gd, cellsColumnBlock, tableControlView) {\n var d = flatData(cellsColumnBlock)[0];\n if(d === undefined) return;\n var blocks = d.rowBlocks;\n var calcdata = d.calcdata;\n\n var bottom = firstRowAnchor(blocks, blocks.length);\n var scrollHeight = d.calcdata.groupHeight - headerHeight(d);\n var scrollY = calcdata.scrollY = Math.max(0, Math.min(bottom - scrollHeight, calcdata.scrollY));\n\n var pages = findPagesAndCacheHeights(blocks, scrollY, scrollHeight);\n if(pages.length === 1) {\n if(pages[0] === blocks.length - 1) {\n pages.unshift(pages[0] - 1);\n } else {\n pages.push(pages[0] + 1);\n }\n }\n\n // make phased out page jump by 2 while leaving stationary page intact\n if(pages[0] % 2) {\n pages.reverse();\n }\n\n cellsColumnBlock\n .each(function(d, i) {\n // these values will also be needed when a block is translated again due to growing cell height\n d.page = pages[i];\n d.scrollY = scrollY;\n });\n\n cellsColumnBlock\n .attr('transform', function(d) {\n var yTranslate = firstRowAnchor(d.rowBlocks, d.page) - d.scrollY;\n return 'translate(0 ' + yTranslate + ')';\n });\n\n // conditionally rerendering panel 0 and 1\n if(gd) {\n conditionalPanelRerender(gd, tableControlView, cellsColumnBlock, pages, d.prevPages, d, 0);\n conditionalPanelRerender(gd, tableControlView, cellsColumnBlock, pages, d.prevPages, d, 1);\n renderScrollbarKit(tableControlView, gd);\n }\n}\n\nfunction makeDragRow(gd, allTableControlView, optionalMultiplier, optionalPosition) {\n return function dragRow(eventD) {\n // may come from whichever DOM event target: drag, wheel, bar... eventD corresponds to event target\n var d = eventD.calcdata ? eventD.calcdata : eventD;\n var tableControlView = allTableControlView.filter(function(dd) {return d.key === dd.key;});\n var multiplier = optionalMultiplier || d.scrollbarState.dragMultiplier;\n\n var initialScrollY = d.scrollY;\n\n d.scrollY = optionalPosition === void(0) ? d.scrollY + multiplier * d3.event.dy : optionalPosition;\n var cellsColumnBlock = tableControlView.selectAll('.' + c.cn.yColumn).selectAll('.' + c.cn.columnBlock).filter(cellsBlock);\n updateBlockYPosition(gd, cellsColumnBlock, tableControlView);\n\n // return false if we've \"used\" the scroll, ie it did something,\n // so the event shouldn't bubble (if appropriate)\n return d.scrollY === initialScrollY;\n };\n}\n\nfunction conditionalPanelRerender(gd, tableControlView, cellsColumnBlock, pages, prevPages, d, revolverIndex) {\n var shouldComponentUpdate = pages[revolverIndex] !== prevPages[revolverIndex];\n if(shouldComponentUpdate) {\n clearTimeout(d.currentRepaint[revolverIndex]);\n d.currentRepaint[revolverIndex] = setTimeout(function() {\n // setTimeout might lag rendering but yields a smoother scroll, because fast scrolling makes\n // some repaints invisible ie. wasteful (DOM work blocks the main thread)\n var toRerender = cellsColumnBlock.filter(function(d, i) {return i === revolverIndex && pages[i] !== prevPages[i];});\n renderColumnCellTree(gd, tableControlView, toRerender, cellsColumnBlock);\n prevPages[revolverIndex] = pages[revolverIndex];\n });\n }\n}\n\nfunction wrapTextMaker(columnBlock, element, tableControlView, gd) {\n return function wrapText() {\n var cellTextHolder = d3.select(element.parentNode);\n cellTextHolder\n .each(function(d) {\n var fragments = d.fragments;\n cellTextHolder.selectAll('tspan.line').each(function(dd, i) {\n fragments[i].width = this.getComputedTextLength();\n });\n // last element is only for measuring the separator character, so it's ignored:\n var separatorLength = fragments[fragments.length - 1].width;\n var rest = fragments.slice(0, -1);\n var currentRow = [];\n var currentAddition, currentAdditionLength;\n var currentRowLength = 0;\n var rowLengthLimit = d.column.columnWidth - 2 * c.cellPad;\n d.value = '';\n while(rest.length) {\n currentAddition = rest.shift();\n currentAdditionLength = currentAddition.width + separatorLength;\n if(currentRowLength + currentAdditionLength > rowLengthLimit) {\n d.value += currentRow.join(c.wrapSpacer) + c.lineBreaker;\n currentRow = [];\n currentRowLength = 0;\n }\n currentRow.push(currentAddition.text);\n currentRowLength += currentAdditionLength;\n }\n if(currentRowLength) {\n d.value += currentRow.join(c.wrapSpacer);\n }\n d.wrapped = true;\n });\n\n // the pre-wrapped text was rendered only for the text measurements\n cellTextHolder.selectAll('tspan.line').remove();\n\n // resupply text, now wrapped\n populateCellText(cellTextHolder.select('.' + c.cn.cellText), tableControlView, columnBlock, gd);\n d3.select(element.parentNode.parentNode).call(setCellHeightAndPositionY);\n };\n}\n\nfunction updateYPositionMaker(columnBlock, element, tableControlView, gd, d) {\n return function updateYPosition() {\n if(d.settledY) return;\n var cellTextHolder = d3.select(element.parentNode);\n var l = getBlock(d);\n var rowIndex = d.key - l.firstRowIndex;\n\n var declaredRowHeight = l.rows[rowIndex].rowHeight;\n\n var requiredHeight = d.cellHeightMayIncrease ? element.parentNode.getBoundingClientRect().height + 2 * c.cellPad : declaredRowHeight;\n\n var finalHeight = Math.max(requiredHeight, declaredRowHeight);\n var increase = finalHeight - l.rows[rowIndex].rowHeight;\n\n if(increase) {\n // current row height increased\n l.rows[rowIndex].rowHeight = finalHeight;\n\n columnBlock\n .selectAll('.' + c.cn.columnCell)\n .call(setCellHeightAndPositionY);\n\n updateBlockYPosition(null, columnBlock.filter(cellsBlock), 0);\n\n // if d.column.type === 'header', then the scrollbar has to be pushed downward to the scrollable area\n // if d.column.type === 'cells', it can still be relevant if total scrolling content height is less than the\n // scrollable window, as increases to row heights may need scrollbar updates\n renderScrollbarKit(tableControlView, gd, true);\n }\n\n cellTextHolder\n .attr('transform', function() {\n // this code block is only invoked for items where d.cellHeightMayIncrease is truthy\n var element = this;\n var columnCellElement = element.parentNode;\n var box = columnCellElement.getBoundingClientRect();\n var rectBox = d3.select(element.parentNode).select('.' + c.cn.cellRect).node().getBoundingClientRect();\n var currentTransform = element.transform.baseVal.consolidate();\n var yPosition = rectBox.top - box.top + (currentTransform ? currentTransform.matrix.f : c.cellPad);\n return 'translate(' + xPosition(d, d3.select(element.parentNode).select('.' + c.cn.cellTextHolder).node().getBoundingClientRect().width) + ' ' + yPosition + ')';\n });\n\n d.settledY = true;\n };\n}\n\nfunction xPosition(d, optionalWidth) {\n switch(d.align) {\n case 'left': return c.cellPad;\n case 'right': return d.column.columnWidth - (optionalWidth || 0) - c.cellPad;\n case 'center': return (d.column.columnWidth - (optionalWidth || 0)) / 2;\n default: return c.cellPad;\n }\n}\n\nfunction setCellHeightAndPositionY(columnCell) {\n columnCell\n .attr('transform', function(d) {\n var headerHeight = d.rowBlocks[0].auxiliaryBlocks.reduce(function(p, n) {return p + rowsHeight(n, Infinity);}, 0);\n var l = getBlock(d);\n var rowAnchor = rowsHeight(l, d.key);\n var yOffset = rowAnchor + headerHeight;\n return 'translate(0 ' + yOffset + ')';\n })\n .selectAll('.' + c.cn.cellRect)\n .attr('height', function(d) {return getRow(getBlock(d), d.key).rowHeight;});\n}\n\nfunction firstRowAnchor(blocks, page) {\n var total = 0;\n for(var i = page - 1; i >= 0; i--) {\n total += allRowsHeight(blocks[i]);\n }\n return total;\n}\n\nfunction rowsHeight(rowBlock, key) {\n var total = 0;\n for(var i = 0; i < rowBlock.rows.length && rowBlock.rows[i].rowIndex < key; i++) {\n total += rowBlock.rows[i].rowHeight;\n }\n return total;\n}\n\nfunction allRowsHeight(rowBlock) {\n var cached = rowBlock.allRowsHeight;\n\n if(cached !== void(0)) {\n return cached;\n }\n\n var total = 0;\n for(var i = 0; i < rowBlock.rows.length; i++) {\n total += rowBlock.rows[i].rowHeight;\n }\n rowBlock.allRowsHeight = total;\n\n return total;\n}\n\nfunction getBlock(d) {return d.rowBlocks[d.page];}\nfunction getRow(l, i) {return l.rows[i - l.firstRowIndex];}\n\n\n/***/ }),\n\n/***/ \"26e4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar scatterAttrs = __webpack_require__(\"107c\");\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar scatterGlAttrs = __webpack_require__(\"c20e\");\nvar cartesianIdRegex = __webpack_require__(\"d301\").idRegex;\nvar templatedArray = __webpack_require__(\"a651\").templatedArray;\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nvar scatterMarkerAttrs = scatterAttrs.marker;\nvar scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n\nvar markerLineAttrs = extendFlat(colorScaleAttrs('marker.line', {editTypeOverride: 'calc'}), {\n width: extendFlat({}, scatterMarkerLineAttrs.width, {editType: 'calc'}),\n editType: 'calc'\n});\n\nvar markerAttrs = extendFlat(colorScaleAttrs('marker'), {\n symbol: scatterMarkerAttrs.symbol,\n size: extendFlat({}, scatterMarkerAttrs.size, {editType: 'markerSize'}),\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n opacity: scatterMarkerAttrs.opacity,\n colorbar: scatterMarkerAttrs.colorbar,\n line: markerLineAttrs,\n editType: 'calc'\n});\n\nmarkerAttrs.color.editType = markerAttrs.cmin.editType = markerAttrs.cmax.editType = 'style';\n\nfunction makeAxesValObject(axLetter) {\n return {\n valType: 'info_array',\n freeLength: true,\n \n editType: 'calc',\n items: {\n valType: 'subplotid',\n regex: cartesianIdRegex[axLetter],\n editType: 'plot'\n },\n \n };\n}\n\nmodule.exports = {\n dimensions: templatedArray('dimension', {\n visible: {\n valType: 'boolean',\n \n dflt: true,\n editType: 'calc',\n \n },\n label: {\n valType: 'string',\n \n editType: 'calc',\n \n },\n values: {\n valType: 'data_array',\n \n editType: 'calc+clearAxisTypes',\n \n },\n\n axis: {\n type: {\n valType: 'enumerated',\n values: ['linear', 'log', 'date', 'category'],\n \n editType: 'calc+clearAxisTypes',\n \n },\n\n // TODO make 'true' the default in v2?\n matches: {\n valType: 'boolean',\n dflt: false,\n \n editType: 'calc',\n \n },\n\n editType: 'calc+clearAxisTypes'\n },\n\n // TODO should add an attribute to pin down x only vars and y only vars\n // like https://seaborn.pydata.org/generated/seaborn.pairplot.html\n // x_vars and y_vars\n\n // maybe more axis defaulting option e.g. `showgrid: false`\n\n editType: 'calc+clearAxisTypes'\n }),\n\n // mode: {}, (only 'markers' for now)\n\n text: extendFlat({}, scatterGlAttrs.text, {\n \n }),\n hovertext: extendFlat({}, scatterGlAttrs.hovertext, {\n \n }),\n\n hovertemplate: hovertemplateAttrs(),\n\n marker: markerAttrs,\n\n xaxes: makeAxesValObject('x'),\n yaxes: makeAxesValObject('y'),\n\n diagonal: {\n visible: {\n valType: 'boolean',\n \n dflt: true,\n editType: 'calc',\n \n },\n\n // type: 'scattergl' | 'histogram' | 'box' | 'violin'\n // ...\n // more options\n\n editType: 'calc'\n },\n\n showupperhalf: {\n valType: 'boolean',\n \n dflt: true,\n editType: 'calc',\n \n },\n showlowerhalf: {\n valType: 'boolean',\n \n dflt: true,\n editType: 'calc',\n \n },\n\n selected: {\n marker: scatterGlAttrs.selected.marker,\n editType: 'calc'\n },\n unselected: {\n marker: scatterGlAttrs.unselected.marker,\n editType: 'calc'\n },\n\n opacity: scatterGlAttrs.opacity\n};\n\n\n/***/ }),\n\n/***/ \"2705\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar constants = __webpack_require__(\"de69\");\nvar subTypes = __webpack_require__(\"de81\");\nvar handleMarkerDefaults = __webpack_require__(\"5047\");\nvar handleLineDefaults = __webpack_require__(\"59be\");\nvar handleLineShapeDefaults = __webpack_require__(\"eb07\");\nvar handleTextDefaults = __webpack_require__(\"e9f7\");\nvar handleFillColorDefaults = __webpack_require__(\"3802\");\n\nvar attributes = __webpack_require__(\"5aae\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n coerce('carpet');\n\n // XXX: Don't hard code this\n traceOut.xaxis = 'x';\n traceOut.yaxis = 'y';\n\n var a = coerce('a');\n var b = coerce('b');\n var len = Math.min(a.length, b.length);\n\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._length = len;\n\n coerce('text');\n coerce('texttemplate');\n coerce('hovertext');\n\n var defaultMode = len < constants.PTS_LINESONLY ? 'lines+markers' : 'lines';\n coerce('mode', defaultMode);\n\n if(subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce('connectgaps');\n }\n\n if(subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});\n }\n\n if(subTypes.hasText(traceOut)) {\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n\n var dfltHoverOn = [];\n\n if(subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce('marker.maxdisplayed');\n dfltHoverOn.push('points');\n }\n\n coerce('fill');\n if(traceOut.fill !== 'none') {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n\n if(traceOut.fill === 'tonext' || traceOut.fill === 'toself') {\n dfltHoverOn.push('fills');\n }\n\n var hoverOn = coerce('hoveron', dfltHoverOn.join('+') || 'points');\n if(hoverOn !== 'fills') coerce('hovertemplate');\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n};\n\n\n/***/ }),\n\n/***/ \"2781\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"0e9a\");\n\n\n/***/ }),\n\n/***/ \"27a4\":\n/***/ (function(module, exports) {\n\nmodule.exports = cross;\n\n/**\n * Computes the cross product of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */\nfunction cross(out, a, b) {\n var ax = a[0], ay = a[1], az = a[2],\n bx = b[0], by = b[1], bz = b[2]\n\n out[0] = ay * bz - az * by\n out[1] = az * bx - ax * bz\n out[2] = ax * by - ay * bx\n return out\n}\n\n/***/ }),\n\n/***/ \"27c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Registry = __webpack_require__(\"371e\");\n\nvar helpers = __webpack_require__(\"50da\");\nvar attributes = __webpack_require__(\"c20e\");\nvar constants = __webpack_require__(\"de69\");\nvar subTypes = __webpack_require__(\"de81\");\nvar handleXYDefaults = __webpack_require__(\"076f\");\nvar handleMarkerDefaults = __webpack_require__(\"5047\");\nvar handleLineDefaults = __webpack_require__(\"59be\");\nvar handleFillColorDefaults = __webpack_require__(\"3802\");\nvar handleTextDefaults = __webpack_require__(\"e9f7\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var isOpen = traceIn.marker ? helpers.isOpenSymbol(traceIn.marker.symbol) : false;\n var isBubble = subTypes.isBubble(traceIn);\n\n var len = handleXYDefaults(traceIn, traceOut, layout, coerce);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n var defaultMode = len < constants.PTS_LINESONLY ? 'lines+markers' : 'lines';\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n coerce('mode', defaultMode);\n\n if(subTypes.hasLines(traceOut)) {\n coerce('connectgaps');\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n coerce('line.shape');\n }\n\n if(subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n coerce('marker.line.width', isOpen || isBubble ? 1 : 0);\n }\n\n if(subTypes.hasText(traceOut)) {\n coerce('texttemplate');\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n\n var lineColor = (traceOut.line || {}).color;\n var markerColor = (traceOut.marker || {}).color;\n\n coerce('fill');\n if(traceOut.fill !== 'none') {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n }\n\n var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'y'});\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'x', inherit: 'y'});\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n};\n\n\n/***/ }),\n\n/***/ \"27e3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar layoutAttributes = __webpack_require__(\"d798\");\n\n\n/**\n * options: inherits outerTicks from axes.handleAxisDefaults\n */\nmodule.exports = function handleTickDefaults(containerIn, containerOut, coerce, options) {\n var tickLen = Lib.coerce2(containerIn, containerOut, layoutAttributes, 'ticklen');\n var tickWidth = Lib.coerce2(containerIn, containerOut, layoutAttributes, 'tickwidth');\n var tickColor = Lib.coerce2(containerIn, containerOut, layoutAttributes, 'tickcolor', containerOut.color);\n var showTicks = coerce('ticks', (options.outerTicks || tickLen || tickWidth || tickColor) ? 'outside' : '');\n\n if(!showTicks) {\n delete containerOut.ticklen;\n delete containerOut.tickwidth;\n delete containerOut.tickcolor;\n }\n};\n\n\n/***/ }),\n\n/***/ \"283e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createLines\n\nvar createBuffer = __webpack_require__(\"efce\")\nvar createShader = __webpack_require__(\"28dd\")\n\nvar shaders = __webpack_require__(\"b44d\")\n\nfunction Lines(plot, vbo, shader) {\n this.plot = plot\n this.vbo = vbo\n this.shader = shader\n}\n\nvar proto = Lines.prototype\n\nproto.bind = function() {\n var shader = this.shader\n this.vbo.bind()\n this.shader.bind()\n shader.attributes.coord.pointer()\n shader.uniforms.screenBox = this.plot.screenBox\n}\n\nproto.drawLine = (function() {\n var start = [0,0]\n var end = [0,0]\n return function(startX, startY, endX, endY, width, color) {\n var plot = this.plot\n var shader = this.shader\n var gl = plot.gl\n\n start[0] = startX\n start[1] = startY\n end[0] = endX\n end[1] = endY\n\n shader.uniforms.start = start\n shader.uniforms.end = end\n shader.uniforms.width = width * plot.pixelRatio\n shader.uniforms.color = color\n\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4)\n }\n}())\n\nproto.dispose = function() {\n this.vbo.dispose()\n this.shader.dispose()\n}\n\nfunction createLines(plot) {\n var gl = plot.gl\n var vbo = createBuffer(gl, [\n -1,-1,\n -1,1,\n 1,-1,\n 1,1])\n var shader = createShader(gl, shaders.lineVert, shaders.lineFrag)\n var lines = new Lines(plot, vbo, shader)\n return lines\n}\n\n\n/***/ }),\n\n/***/ \"28a0\":\n/***/ (function(module, exports) {\n\nif (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n\n\n/***/ }),\n\n/***/ \"28dd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar createUniformWrapper = __webpack_require__(\"d064b\")\nvar createAttributeWrapper = __webpack_require__(\"7e91\")\nvar makeReflect = __webpack_require__(\"eb73\")\nvar shaderCache = __webpack_require__(\"22b4\")\nvar runtime = __webpack_require__(\"d41a\")\nvar GLError = __webpack_require__(\"a3fd\")\n\n//Shader object\nfunction Shader(gl) {\n this.gl = gl\n this.gl.lastAttribCount = 0 // fixme where else should we store info, safe but not nice on the gl object\n\n //Default initialize these to null\n this._vref =\n this._fref =\n this._relink =\n this.vertShader =\n this.fragShader =\n this.program =\n this.attributes =\n this.uniforms =\n this.types = null\n}\n\nvar proto = Shader.prototype\n\nproto.bind = function() {\n if(!this.program) {\n this._relink()\n }\n\n // ensuring that we have the right number of enabled vertex attributes\n var i\n var newAttribCount = this.gl.getProgramParameter(this.program, this.gl.ACTIVE_ATTRIBUTES) // more robust approach\n //var newAttribCount = Object.keys(this.attributes).length // avoids the probably immaterial introspection slowdown\n var oldAttribCount = this.gl.lastAttribCount\n if(newAttribCount > oldAttribCount) {\n for(i = oldAttribCount; i < newAttribCount; i++) {\n this.gl.enableVertexAttribArray(i)\n }\n } else if(oldAttribCount > newAttribCount) {\n for(i = newAttribCount; i < oldAttribCount; i++) {\n this.gl.disableVertexAttribArray(i)\n }\n }\n\n this.gl.lastAttribCount = newAttribCount\n\n this.gl.useProgram(this.program)\n}\n\nproto.dispose = function() {\n\n // disabling vertex attributes so new shader starts with zero\n // and it's also useful if all shaders are disposed but the\n // gl context is reused for subsequent replotting\n var oldAttribCount = this.gl.lastAttribCount\n for (var i = 0; i < oldAttribCount; i++) {\n this.gl.disableVertexAttribArray(i)\n }\n this.gl.lastAttribCount = 0\n\n if(this._fref) {\n this._fref.dispose()\n }\n if(this._vref) {\n this._vref.dispose()\n }\n this.attributes =\n this.types =\n this.vertShader =\n this.fragShader =\n this.program =\n this._relink =\n this._fref =\n this._vref = null\n}\n\nfunction compareAttributes(a, b) {\n if(a.name < b.name) {\n return -1\n }\n return 1\n}\n\n//Update export hook for glslify-live\nproto.update = function(\n vertSource\n , fragSource\n , uniforms\n , attributes) {\n\n //If only one object passed, assume glslify style output\n if(!fragSource || arguments.length === 1) {\n var obj = vertSource\n vertSource = obj.vertex\n fragSource = obj.fragment\n uniforms = obj.uniforms\n attributes = obj.attributes\n }\n\n var wrapper = this\n var gl = wrapper.gl\n\n //Compile vertex and fragment shaders\n var pvref = wrapper._vref\n wrapper._vref = shaderCache.shader(gl, gl.VERTEX_SHADER, vertSource)\n if(pvref) {\n pvref.dispose()\n }\n wrapper.vertShader = wrapper._vref.shader\n var pfref = this._fref\n wrapper._fref = shaderCache.shader(gl, gl.FRAGMENT_SHADER, fragSource)\n if(pfref) {\n pfref.dispose()\n }\n wrapper.fragShader = wrapper._fref.shader\n\n //If uniforms/attributes is not specified, use RT reflection\n if(!uniforms || !attributes) {\n\n //Create initial test program\n var testProgram = gl.createProgram()\n gl.attachShader(testProgram, wrapper.fragShader)\n gl.attachShader(testProgram, wrapper.vertShader)\n gl.linkProgram(testProgram)\n if(!gl.getProgramParameter(testProgram, gl.LINK_STATUS)) {\n var errLog = gl.getProgramInfoLog(testProgram)\n throw new GLError(errLog, 'Error linking program:' + errLog)\n }\n\n //Load data from runtime\n uniforms = uniforms || runtime.uniforms(gl, testProgram)\n attributes = attributes || runtime.attributes(gl, testProgram)\n\n //Release test program\n gl.deleteProgram(testProgram)\n }\n\n //Sort attributes lexicographically\n // overrides undefined WebGL behavior for attribute locations\n attributes = attributes.slice()\n attributes.sort(compareAttributes)\n\n //Convert attribute types, read out locations\n var attributeUnpacked = []\n var attributeNames = []\n var attributeLocations = []\n var i\n for(i=0; i= 0) {\n var size = attr.type.charAt(attr.type.length-1)|0\n var locVector = new Array(size)\n for(var j=0; j= 0) {\n curLocation += 1\n }\n attributeLocations[i] = curLocation\n }\n }\n\n //Rebuild program and recompute all uniform locations\n var uniformLocations = new Array(uniforms.length)\n function relink() {\n wrapper.program = shaderCache.program(\n gl\n , wrapper._vref\n , wrapper._fref\n , attributeNames\n , attributeLocations)\n\n for(var i=0; i maxNorm) {\n\t\t\tmaxNorm = vec3.length(u);\n\t\t}\n\t\tif (i) {\n\t\t\t// Find vector scale [w/ units of time] using \"successive\" positions\n\t\t\t// (not \"adjacent\" with would be O(n^2)),\n\t\t\t//\n\t\t\t// The vector scale corresponds to the minimum \"time\" to travel across two\n\t\t\t// two adjacent positions at the average velocity of those two adjacent positions\n\n\t\t\tvar q = (2 * vec3.distance(p2, p) / (vec3.length(u2) + vec3.length(u)));\n\t\t\tif(q) {\n\t\t\t\tvectorScale = Math.min(vectorScale, q);\n\t\t\t\tskipIt = false;\n\t\t\t} else {\n\t\t\t\tskipIt = true;\n\t\t\t}\n\t\t}\n\t\tif(!skipIt) {\n\t\t\tp2 = p;\n\t\t\tu2 = u;\n\t\t}\n\t\tpositionVectors.push(u);\n\t}\n\tvar minV = [minX, minY, minZ];\n\tvar maxV = [maxX, maxY, maxZ];\n\tif (bounds) {\n\t\tbounds[0] = minV;\n\t\tbounds[1] = maxV;\n\t}\n\tif (maxNorm === 0) {\n\t\tmaxNorm = 1;\n\t}\n\n\t// Inverted max norm would map vector with norm maxNorm to 1 coord space units in length\n\tvar invertedMaxNorm = 1 / maxNorm;\n\n\tif (!isFinite(vectorScale)) {\n\t\tvectorScale = 1.0;\n\t}\n\tgeo.vectorScale = vectorScale;\n\n\tvar coneScale = vectorfield.coneSize || 0.5;\n\n\tif (vectorfield.absoluteConeSize) {\n\t\tconeScale = vectorfield.absoluteConeSize * invertedMaxNorm;\n\t}\n\n\tgeo.coneScale = coneScale;\n\n\t// Build the cone model.\n\tfor (var i = 0, j = 0; i < positions.length; i++) {\n\t\tvar p = positions[i];\n\t\tvar x = p[0], y = p[1], z = p[2];\n\t\tvar d = positionVectors[i];\n\t\tvar intensity = vec3.length(d) * invertedMaxNorm;\n\t\tfor (var k = 0, l = 8; k < l; k++) {\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\n\t\t\tgeo.vectors.push(d);\n\t\t\tgeo.vectors.push(d);\n\t\t\tgeo.vectors.push(d);\n\t\t\tgeo.vectors.push(d);\n\t\t\tgeo.vectors.push(d);\n\t\t\tgeo.vectors.push(d);\n\n\t\t\tgeo.vertexIntensity.push(intensity, intensity, intensity);\n\t\t\tgeo.vertexIntensity.push(intensity, intensity, intensity);\n\n\t\t\tvar m = geo.positions.length;\n\t\t\tgeo.cells.push([m-6, m-5, m-4], [m-3, m-2, m-1]);\n\t\t}\n\t}\n\n\treturn geo;\n};\n\nvar shaders = __webpack_require__(\"f280\");\nmodule.exports.createMesh = __webpack_require__(\"6b3c\");\nmodule.exports.createConeMesh = function(gl, params) {\n\treturn module.exports.createMesh(gl, params, {\n\t\tshaders: shaders,\n\t\ttraceType: 'cone'\n\t});\n}\n\n\n/***/ }),\n\n/***/ \"2969f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nexports.getDimIndex = function getDimIndex(trace, ax) {\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var ind = {x: 0, y: 1}[axLetter];\n var visibleDims = trace._visibleDims;\n\n for(var k = 0; k < visibleDims.length; k++) {\n var i = visibleDims[k];\n if(trace._diag[i][ind] === axId) return k;\n }\n return false;\n};\n\n\n/***/ }),\n\n/***/ \"296e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\n\n// for automatic alignment on dragging, <1/3 means left align,\n// >2/3 means right, and between is center. Pick the right fraction\n// based on where you are, and return the fraction corresponding to\n// that position on the object\nmodule.exports = function align(v, dv, v0, v1, anchor) {\n var vmin = (v - v0) / (v1 - v0);\n var vmax = vmin + dv / (v1 - v0);\n var vc = (vmin + vmax) / 2;\n\n // explicitly specified anchor\n if(anchor === 'left' || anchor === 'bottom') return vmin;\n if(anchor === 'center' || anchor === 'middle') return vc;\n if(anchor === 'right' || anchor === 'top') return vmax;\n\n // automatic based on position\n if(vmin < (2 / 3) - vc) return vmin;\n if(vmax > (4 / 3) - vc) return vmax;\n return vc;\n};\n\n\n/***/ }),\n\n/***/ \"299d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar createScatter = __webpack_require__(\"96e3\");\nvar createLine = __webpack_require__(\"e8ee\");\nvar createError = __webpack_require__(\"b113\");\nvar Text = __webpack_require__(\"ad68\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar prepareRegl = __webpack_require__(\"cf42\");\n\nvar subTypes = __webpack_require__(\"de81\");\nvar linkTraces = __webpack_require__(\"00bd\");\n\nvar styleTextSelection = __webpack_require__(\"e38a\").styleTextSelection;\n\nfunction getViewport(fullLayout, xaxis, yaxis) {\n var gs = fullLayout._size;\n var width = fullLayout.width;\n var height = fullLayout.height;\n return [\n gs.l + xaxis.domain[0] * gs.w,\n gs.b + yaxis.domain[0] * gs.h,\n (width - gs.r) - (1 - xaxis.domain[1]) * gs.w,\n (height - gs.t) - (1 - yaxis.domain[1]) * gs.h\n ];\n}\n\nmodule.exports = function plot(gd, subplot, cdata) {\n if(!cdata.length) return;\n\n var fullLayout = gd._fullLayout;\n var scene = subplot._scene;\n var xaxis = subplot.xaxis;\n var yaxis = subplot.yaxis;\n var i, j;\n\n // we may have more subplots than initialized data due to Axes.getSubplots method\n if(!scene) return;\n\n var success = prepareRegl(gd, ['ANGLE_instanced_arrays', 'OES_element_index_uint']);\n if(!success) {\n scene.init();\n return;\n }\n\n var count = scene.count;\n var regl = fullLayout._glcanvas.data()[0].regl;\n\n // that is needed for fills\n linkTraces(gd, subplot, cdata);\n\n if(scene.dirty) {\n // make sure scenes are created\n if(scene.error2d === true) {\n scene.error2d = createError(regl);\n }\n if(scene.line2d === true) {\n scene.line2d = createLine(regl);\n }\n if(scene.scatter2d === true) {\n scene.scatter2d = createScatter(regl);\n }\n if(scene.fill2d === true) {\n scene.fill2d = createLine(regl);\n }\n if(scene.glText === true) {\n scene.glText = new Array(count);\n for(i = 0; i < count; i++) {\n scene.glText[i] = new Text(regl);\n }\n }\n\n // update main marker options\n if(scene.glText) {\n if(count > scene.glText.length) {\n // add gl text marker\n var textsToAdd = count - scene.glText.length;\n for(i = 0; i < textsToAdd; i++) {\n scene.glText.push(new Text(regl));\n }\n } else if(count < scene.glText.length) {\n // remove gl text marker\n var textsToRemove = scene.glText.length - count;\n var removedTexts = scene.glText.splice(count, textsToRemove);\n removedTexts.forEach(function(text) { text.destroy(); });\n }\n\n for(i = 0; i < count; i++) {\n scene.glText[i].update(scene.textOptions[i]);\n }\n }\n if(scene.line2d) {\n scene.line2d.update(scene.lineOptions);\n scene.lineOptions = scene.lineOptions.map(function(lineOptions) {\n if(lineOptions && lineOptions.positions) {\n var srcPos = lineOptions.positions;\n\n var firstptdef = 0;\n while(firstptdef < srcPos.length && (isNaN(srcPos[firstptdef]) || isNaN(srcPos[firstptdef + 1]))) {\n firstptdef += 2;\n }\n var lastptdef = srcPos.length - 2;\n while(lastptdef > firstptdef && (isNaN(srcPos[lastptdef]) || isNaN(srcPos[lastptdef + 1]))) {\n lastptdef -= 2;\n }\n lineOptions.positions = srcPos.slice(firstptdef, lastptdef + 2);\n }\n return lineOptions;\n });\n scene.line2d.update(scene.lineOptions);\n }\n if(scene.error2d) {\n var errorBatch = (scene.errorXOptions || []).concat(scene.errorYOptions || []);\n scene.error2d.update(errorBatch);\n }\n if(scene.scatter2d) {\n scene.scatter2d.update(scene.markerOptions);\n }\n\n // fill requires linked traces, so we generate it's positions here\n scene.fillOrder = Lib.repeat(null, count);\n if(scene.fill2d) {\n scene.fillOptions = scene.fillOptions.map(function(fillOptions, i) {\n var cdscatter = cdata[i];\n if(!fillOptions || !cdscatter || !cdscatter[0] || !cdscatter[0].trace) return;\n var cd = cdscatter[0];\n var trace = cd.trace;\n var stash = cd.t;\n var lineOptions = scene.lineOptions[i];\n var last, j;\n\n var fillData = [];\n if(trace._ownfill) fillData.push(i);\n if(trace._nexttrace) fillData.push(i + 1);\n if(fillData.length) scene.fillOrder[i] = fillData;\n\n var pos = [];\n var srcPos = (lineOptions && lineOptions.positions) || stash.positions;\n var firstptdef, lastptdef;\n\n if(trace.fill === 'tozeroy') {\n firstptdef = 0;\n while(firstptdef < srcPos.length && isNaN(srcPos[firstptdef + 1])) {\n firstptdef += 2;\n }\n lastptdef = srcPos.length - 2;\n while(lastptdef > firstptdef && isNaN(srcPos[lastptdef + 1])) {\n lastptdef -= 2;\n }\n if(srcPos[firstptdef + 1] !== 0) {\n pos = [srcPos[firstptdef], 0];\n }\n pos = pos.concat(srcPos.slice(firstptdef, lastptdef + 2));\n if(srcPos[lastptdef + 1] !== 0) {\n pos = pos.concat([srcPos[lastptdef], 0]);\n }\n } else if(trace.fill === 'tozerox') {\n firstptdef = 0;\n while(firstptdef < srcPos.length && isNaN(srcPos[firstptdef])) {\n firstptdef += 2;\n }\n lastptdef = srcPos.length - 2;\n while(lastptdef > firstptdef && isNaN(srcPos[lastptdef])) {\n lastptdef -= 2;\n }\n if(srcPos[firstptdef] !== 0) {\n pos = [0, srcPos[firstptdef + 1]];\n }\n pos = pos.concat(srcPos.slice(firstptdef, lastptdef + 2));\n if(srcPos[lastptdef] !== 0) {\n pos = pos.concat([ 0, srcPos[lastptdef + 1]]);\n }\n } else if(trace.fill === 'toself' || trace.fill === 'tonext') {\n pos = [];\n last = 0;\n for(j = 0; j < srcPos.length; j += 2) {\n if(isNaN(srcPos[j]) || isNaN(srcPos[j + 1])) {\n pos = pos.concat(srcPos.slice(last, j));\n pos.push(srcPos[last], srcPos[last + 1]);\n last = j + 2;\n }\n }\n pos = pos.concat(srcPos.slice(last));\n if(last) {\n pos.push(srcPos[last], srcPos[last + 1]);\n }\n } else {\n var nextTrace = trace._nexttrace;\n\n if(nextTrace) {\n var nextOptions = scene.lineOptions[i + 1];\n\n if(nextOptions) {\n var nextPos = nextOptions.positions;\n if(trace.fill === 'tonexty') {\n pos = srcPos.slice();\n\n for(i = Math.floor(nextPos.length / 2); i--;) {\n var xx = nextPos[i * 2];\n var yy = nextPos[i * 2 + 1];\n if(isNaN(xx) || isNaN(yy)) continue;\n pos.push(xx, yy);\n }\n fillOptions.fill = nextTrace.fillcolor;\n }\n }\n }\n }\n\n // detect prev trace positions to exclude from current fill\n if(trace._prevtrace && trace._prevtrace.fill === 'tonext') {\n var prevLinePos = scene.lineOptions[i - 1].positions;\n\n // FIXME: likely this logic should be tested better\n var offset = pos.length / 2;\n last = offset;\n var hole = [last];\n for(j = 0; j < prevLinePos.length; j += 2) {\n if(isNaN(prevLinePos[j]) || isNaN(prevLinePos[j + 1])) {\n hole.push(j / 2 + offset + 1);\n last = j + 2;\n }\n }\n\n pos = pos.concat(prevLinePos);\n fillOptions.hole = hole;\n }\n fillOptions.fillmode = trace.fill;\n fillOptions.opacity = trace.opacity;\n fillOptions.positions = pos;\n\n return fillOptions;\n });\n\n scene.fill2d.update(scene.fillOptions);\n }\n }\n\n // form batch arrays, and check for selected points\n var dragmode = fullLayout.dragmode;\n var selectMode = dragmode === 'lasso' || dragmode === 'select';\n var clickSelectEnabled = fullLayout.clickmode.indexOf('select') > -1;\n\n for(i = 0; i < count; i++) {\n var cd0 = cdata[i][0];\n var trace = cd0.trace;\n var stash = cd0.t;\n var index = stash.index;\n var len = trace._length;\n var x = stash.x;\n var y = stash.y;\n\n if(trace.selectedpoints || selectMode || clickSelectEnabled) {\n if(!selectMode) selectMode = true;\n\n // regenerate scene batch, if traces number changed during selection\n if(trace.selectedpoints) {\n var selPts = scene.selectBatch[index] = Lib.selIndices2selPoints(trace);\n\n var selDict = {};\n for(j = 0; j < selPts.length; j++) {\n selDict[selPts[j]] = 1;\n }\n var unselPts = [];\n for(j = 0; j < len; j++) {\n if(!selDict[j]) unselPts.push(j);\n }\n scene.unselectBatch[index] = unselPts;\n }\n\n // precalculate px coords since we are not going to pan during select\n // TODO, could do better here e.g.\n // - spin that in a webworker\n // - compute selection from polygons in data coordinates\n // (maybe just for linear axes)\n var xpx = stash.xpx = new Array(len);\n var ypx = stash.ypx = new Array(len);\n for(j = 0; j < len; j++) {\n xpx[j] = xaxis.c2p(x[j]);\n ypx[j] = yaxis.c2p(y[j]);\n }\n } else {\n stash.xpx = stash.ypx = null;\n }\n }\n\n if(selectMode) {\n // create scatter instance by cloning scatter2d\n if(!scene.select2d) {\n scene.select2d = createScatter(fullLayout._glcanvas.data()[1].regl);\n }\n\n // use unselected styles on 'context' canvas\n if(scene.scatter2d) {\n var unselOpts = new Array(count);\n for(i = 0; i < count; i++) {\n unselOpts[i] = scene.selectBatch[i].length || scene.unselectBatch[i].length ?\n scene.markerUnselectedOptions[i] :\n {};\n }\n scene.scatter2d.update(unselOpts);\n }\n\n // use selected style on 'focus' canvas\n if(scene.select2d) {\n scene.select2d.update(scene.markerOptions);\n scene.select2d.update(scene.markerSelectedOptions);\n }\n\n if(scene.glText) {\n cdata.forEach(function(cdscatter) {\n var trace = ((cdscatter || [])[0] || {}).trace || {};\n if(subTypes.hasText(trace)) {\n styleTextSelection(cdscatter);\n }\n });\n }\n } else {\n // reset 'context' scatter2d opts to base opts,\n // thus unsetting markerUnselectedOptions from selection\n if(scene.scatter2d) {\n scene.scatter2d.update(scene.markerOptions);\n }\n }\n\n // provide viewport and range\n var vpRange0 = {\n viewport: getViewport(fullLayout, xaxis, yaxis),\n // TODO do we need those fallbacks?\n range: [\n (xaxis._rl || xaxis.range)[0],\n (yaxis._rl || yaxis.range)[0],\n (xaxis._rl || xaxis.range)[1],\n (yaxis._rl || yaxis.range)[1]\n ]\n };\n var vpRange = Lib.repeat(vpRange0, scene.count);\n\n // upload viewport/range data to GPU\n if(scene.fill2d) {\n scene.fill2d.update(vpRange);\n }\n if(scene.line2d) {\n scene.line2d.update(vpRange);\n }\n if(scene.error2d) {\n scene.error2d.update(vpRange.concat(vpRange));\n }\n if(scene.scatter2d) {\n scene.scatter2d.update(vpRange);\n }\n if(scene.select2d) {\n scene.select2d.update(vpRange);\n }\n if(scene.glText) {\n scene.glText.forEach(function(text) { text.update(vpRange0); });\n }\n};\n\n\n/***/ }),\n\n/***/ \"2a16\":\n/***/ (function(module, exports) {\n\nmodule.exports = scale;\n\n/**\n * Scales a vec3 by a scalar number\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec3} out\n */\nfunction scale(out, a, b) {\n out[0] = a[0] * b\n out[1] = a[1] * b\n out[2] = a[2] * b\n return out\n}\n\n/***/ }),\n\n/***/ \"2a27\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar attributes = __webpack_require__(\"97d1\");\nvar Color = __webpack_require__(\"d115\");\nvar handleDomainDefaults = __webpack_require__(\"81f0\").defaults;\nvar handleText = __webpack_require__(\"1c1c\").handleText;\nvar TEXTPAD = __webpack_require__(\"1a5e\").TEXTPAD;\n\nvar Colorscale = __webpack_require__(\"c258\");\nvar hasColorscale = Colorscale.hasColorscale;\nvar colorscaleDefaults = Colorscale.handleDefaults;\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var labels = coerce('labels');\n var parents = coerce('parents');\n\n if(!labels || !labels.length || !parents || !parents.length) {\n traceOut.visible = false;\n return;\n }\n\n var vals = coerce('values');\n if(vals && vals.length) {\n coerce('branchvalues');\n } else {\n coerce('count');\n }\n\n coerce('level');\n coerce('maxdepth');\n\n var packing = coerce('tiling.packing');\n if(packing === 'squarify') {\n coerce('tiling.squarifyratio');\n }\n\n coerce('tiling.flip');\n coerce('tiling.pad');\n\n var text = coerce('text');\n coerce('texttemplate');\n if(!traceOut.texttemplate) coerce('textinfo', Array.isArray(text) ? 'text+label' : 'label');\n\n coerce('hovertext');\n coerce('hovertemplate');\n\n var hasPathbar = coerce('pathbar.visible');\n\n var textposition = 'auto';\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n hasPathbar: hasPathbar,\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: false,\n moduleHasCliponaxis: false,\n moduleHasTextangle: false,\n moduleHasInsideanchor: false\n });\n coerce('textposition');\n var bottomText = traceOut.textposition.indexOf('bottom') !== -1;\n\n var lineWidth = coerce('marker.line.width');\n if(lineWidth) coerce('marker.line.color', layout.paper_bgcolor);\n\n var colors = coerce('marker.colors');\n var withColorscale = traceOut._hasColorscale = (\n hasColorscale(traceIn, 'marker', 'colors') ||\n (traceIn.marker || {}).coloraxis // N.B. special logic to consider \"values\" colorscales\n );\n if(withColorscale) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});\n } else {\n coerce('marker.depthfade', !(colors || []).length);\n }\n\n var headerSize = traceOut.textfont.size * 2;\n\n coerce('marker.pad.t', bottomText ? headerSize / 4 : headerSize);\n coerce('marker.pad.l', headerSize / 4);\n coerce('marker.pad.r', headerSize / 4);\n coerce('marker.pad.b', bottomText ? headerSize : headerSize / 4);\n\n if(withColorscale) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});\n }\n\n traceOut._hovered = {\n marker: {\n line: {\n width: 2,\n color: Color.contrast(layout.paper_bgcolor)\n }\n }\n };\n\n if(hasPathbar) {\n // This works even for multi-line labels as treemap pathbar trim out line breaks\n coerce('pathbar.thickness', traceOut.pathbar.textfont.size + 2 * TEXTPAD);\n\n coerce('pathbar.side');\n coerce('pathbar.edgeshape');\n }\n\n handleDomainDefaults(traceOut, layout, coerce);\n\n // do not support transforms for now\n traceOut._length = null;\n};\n\n\n/***/ }),\n\n/***/ \"2aa9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var selection = [];\n var fullData = cd[0].trace;\n\n var nodes = fullData._sankey.graph.nodes;\n\n for(var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n if(node.partOfGroup) continue; // Those are invisible\n\n // Position of node's centroid\n var pos = [(node.x0 + node.x1) / 2, (node.y0 + node.y1) / 2];\n\n // Swap x and y if trace is vertical\n if(fullData.orientation === 'v') pos.reverse();\n\n if(selectionTester && selectionTester.contains(pos, false, i, searchInfo)) {\n selection.push({\n pointNumber: node.pointNumber\n // TODO: add eventData\n });\n }\n }\n return selection;\n};\n\n\n/***/ }),\n\n/***/ \"2ad6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\n/**\n * Copyright Marc J. Schmidt. See the LICENSE file at the top-level\n * directory of this distribution and at\n * https://github.com/marcj/css-element-queries/blob/master/LICENSE.\n */\n(function (root, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n}(typeof window !== 'undefined' ? window : this, function () {\n\n // Make sure it does not throw in a SSR (Server Side Rendering) situation\n if (typeof window === \"undefined\") {\n return null;\n }\n // https://github.com/Semantic-Org/Semantic-UI/issues/3855\n // https://github.com/marcj/css-element-queries/issues/257\n var globalWindow = typeof window != 'undefined' && window.Math == Math\n ? window\n : typeof self != 'undefined' && self.Math == Math\n ? self\n : Function('return this')();\n // Only used for the dirty checking, so the event callback count is limited to max 1 call per fps per sensor.\n // In combination with the event based resize sensor this saves cpu time, because the sensor is too fast and\n // would generate too many unnecessary events.\n var requestAnimationFrame = globalWindow.requestAnimationFrame ||\n globalWindow.mozRequestAnimationFrame ||\n globalWindow.webkitRequestAnimationFrame ||\n function (fn) {\n return globalWindow.setTimeout(fn, 20);\n };\n\n /**\n * Iterate over each of the provided element(s).\n *\n * @param {HTMLElement|HTMLElement[]} elements\n * @param {Function} callback\n */\n function forEachElement(elements, callback){\n var elementsType = Object.prototype.toString.call(elements);\n var isCollectionTyped = ('[object Array]' === elementsType\n || ('[object NodeList]' === elementsType)\n || ('[object HTMLCollection]' === elementsType)\n || ('[object Object]' === elementsType)\n || ('undefined' !== typeof jQuery && elements instanceof jQuery) //jquery\n || ('undefined' !== typeof Elements && elements instanceof Elements) //mootools\n );\n var i = 0, j = elements.length;\n if (isCollectionTyped) {\n for (; i < j; i++) {\n callback(elements[i]);\n }\n } else {\n callback(elements);\n }\n }\n\n /**\n * Get element size\n * @param {HTMLElement} element\n * @returns {Object} {width, height}\n */\n function getElementSize(element) {\n if (!element.getBoundingClientRect) {\n return {\n width: element.offsetWidth,\n height: element.offsetHeight\n }\n }\n\n var rect = element.getBoundingClientRect();\n return {\n width: Math.round(rect.width),\n height: Math.round(rect.height)\n }\n }\n\n /**\n * Apply CSS styles to element.\n *\n * @param {HTMLElement} element\n * @param {Object} style\n */\n function setStyle(element, style) {\n Object.keys(style).forEach(function(key) {\n element.style[key] = style[key];\n });\n }\n\n /**\n * Class for dimension change detection.\n *\n * @param {Element|Element[]|Elements|jQuery} element\n * @param {Function} callback\n *\n * @constructor\n */\n var ResizeSensor = function(element, callback) {\n /**\n *\n * @constructor\n */\n function EventQueue() {\n var q = [];\n this.add = function(ev) {\n q.push(ev);\n };\n\n var i, j;\n this.call = function(sizeInfo) {\n for (i = 0, j = q.length; i < j; i++) {\n q[i].call(this, sizeInfo);\n }\n };\n\n this.remove = function(ev) {\n var newQueue = [];\n for(i = 0, j = q.length; i < j; i++) {\n if(q[i] !== ev) newQueue.push(q[i]);\n }\n q = newQueue;\n };\n\n this.length = function() {\n return q.length;\n }\n }\n\n /**\n *\n * @param {HTMLElement} element\n * @param {Function} resized\n */\n function attachResizeEvent(element, resized) {\n if (!element) return;\n if (element.resizedAttached) {\n element.resizedAttached.add(resized);\n return;\n }\n\n element.resizedAttached = new EventQueue();\n element.resizedAttached.add(resized);\n\n element.resizeSensor = document.createElement('div');\n element.resizeSensor.dir = 'ltr';\n element.resizeSensor.className = 'resize-sensor';\n\n var style = {\n pointerEvents: 'none',\n position: 'absolute',\n left: '0px',\n top: '0px',\n right: '0px',\n bottom: '0px',\n overflow: 'hidden',\n zIndex: '-1',\n visibility: 'hidden',\n maxWidth: '100%'\n };\n var styleChild = {\n position: 'absolute',\n left: '0px',\n top: '0px',\n transition: '0s',\n };\n\n setStyle(element.resizeSensor, style);\n\n var expand = document.createElement('div');\n expand.className = 'resize-sensor-expand';\n setStyle(expand, style);\n\n var expandChild = document.createElement('div');\n setStyle(expandChild, styleChild);\n expand.appendChild(expandChild);\n\n var shrink = document.createElement('div');\n shrink.className = 'resize-sensor-shrink';\n setStyle(shrink, style);\n\n var shrinkChild = document.createElement('div');\n setStyle(shrinkChild, styleChild);\n setStyle(shrinkChild, { width: '200%', height: '200%' });\n shrink.appendChild(shrinkChild);\n\n element.resizeSensor.appendChild(expand);\n element.resizeSensor.appendChild(shrink);\n element.appendChild(element.resizeSensor);\n\n var computedStyle = window.getComputedStyle(element);\n var position = computedStyle ? computedStyle.getPropertyValue('position') : null;\n if ('absolute' !== position && 'relative' !== position && 'fixed' !== position) {\n element.style.position = 'relative';\n }\n\n var dirty, rafId;\n var size = getElementSize(element);\n var lastWidth = 0;\n var lastHeight = 0;\n var initialHiddenCheck = true;\n var lastAnimationFrame = 0;\n\n var resetExpandShrink = function () {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n expandChild.style.width = (width + 10) + 'px';\n expandChild.style.height = (height + 10) + 'px';\n\n expand.scrollLeft = width + 10;\n expand.scrollTop = height + 10;\n\n shrink.scrollLeft = width + 10;\n shrink.scrollTop = height + 10;\n };\n\n var reset = function() {\n // Check if element is hidden\n if (initialHiddenCheck) {\n var invisible = element.offsetWidth === 0 && element.offsetHeight === 0;\n if (invisible) {\n // Check in next frame\n if (!lastAnimationFrame){\n lastAnimationFrame = requestAnimationFrame(function(){\n lastAnimationFrame = 0;\n\n reset();\n });\n }\n\n return;\n } else {\n // Stop checking\n initialHiddenCheck = false;\n }\n }\n\n resetExpandShrink();\n };\n element.resizeSensor.resetSensor = reset;\n\n var onResized = function() {\n rafId = 0;\n\n if (!dirty) return;\n\n lastWidth = size.width;\n lastHeight = size.height;\n\n if (element.resizedAttached) {\n element.resizedAttached.call(size);\n }\n };\n\n var onScroll = function() {\n size = getElementSize(element);\n dirty = size.width !== lastWidth || size.height !== lastHeight;\n\n if (dirty && !rafId) {\n rafId = requestAnimationFrame(onResized);\n }\n\n reset();\n };\n\n var addEvent = function(el, name, cb) {\n if (el.attachEvent) {\n el.attachEvent('on' + name, cb);\n } else {\n el.addEventListener(name, cb);\n }\n };\n\n addEvent(expand, 'scroll', onScroll);\n addEvent(shrink, 'scroll', onScroll);\n\n // Fix for custom Elements\n requestAnimationFrame(reset);\n }\n\n forEachElement(element, function(elem){\n attachResizeEvent(elem, callback);\n });\n\n this.detach = function(ev) {\n ResizeSensor.detach(element, ev);\n };\n\n this.reset = function() {\n element.resizeSensor.resetSensor();\n };\n };\n\n ResizeSensor.reset = function(element) {\n forEachElement(element, function(elem){\n elem.resizeSensor.resetSensor();\n });\n };\n\n ResizeSensor.detach = function(element, ev) {\n forEachElement(element, function(elem){\n if (!elem) return;\n if(elem.resizedAttached && typeof ev === \"function\"){\n elem.resizedAttached.remove(ev);\n if(elem.resizedAttached.length()) return;\n }\n if (elem.resizeSensor) {\n if (elem.contains(elem.resizeSensor)) {\n elem.removeChild(elem.resizeSensor);\n }\n delete elem.resizeSensor;\n delete elem.resizedAttached;\n }\n });\n };\n\n if (typeof MutationObserver !== \"undefined\") {\n var observer = new MutationObserver(function (mutations) {\n for (var i in mutations) {\n if (mutations.hasOwnProperty(i)) {\n var items = mutations[i].addedNodes;\n for (var j = 0; j < items.length; j++) {\n if (items[j].resizeSensor) {\n ResizeSensor.reset(items[j]);\n }\n }\n }\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", function (event) {\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n });\n });\n }\n\n return ResizeSensor;\n\n}));\n\n\n/***/ }),\n\n/***/ \"2c66\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"2456\")\n\n\n/***/ }),\n\n/***/ \"2c8d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\r\n\r\nvar isBrowser = __webpack_require__(\"dcf3\")\r\nvar hasHover\r\n\r\nif (typeof global.matchMedia === 'function') {\r\n\thasHover = !global.matchMedia('(hover: none)').matches\r\n}\r\nelse {\r\n\thasHover = isBrowser\r\n}\r\n\r\nmodule.exports = hasHover\r\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar userAgent = __webpack_require__(\"342f\");\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n\n/***/ \"2d0e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar INTERPTHRESHOLD = 1e-2;\nvar NEIGHBORSHIFTS = [[-1, 0], [1, 0], [0, -1], [0, 1]];\n\nfunction correctionOvershoot(maxFractionalChange) {\n // start with less overshoot, until we know it's converging,\n // then ramp up the overshoot for faster convergence\n return 0.5 - 0.25 * Math.min(1, maxFractionalChange * 0.5);\n}\n\n/*\n * interp2d: Fill in missing data from a 2D array using an iterative\n * poisson equation solver with zero-derivative BC at edges.\n * Amazingly, this just amounts to repeatedly averaging all the existing\n * nearest neighbors, at least if we don't take x/y scaling into account,\n * which is the right approach here where x and y may not even have the\n * same units.\n *\n * @param {array of arrays} z\n * The 2D array to fill in. Will be mutated here. Assumed to already be\n * cleaned, so all entries are numbers except gaps, which are `undefined`.\n * @param {array of arrays} emptyPoints\n * Each entry [i, j, neighborCount] for empty points z[i][j] and the number\n * of neighbors that are *not* missing. Assumed to be sorted from most to\n * least neighbors, as produced by heatmap/find_empties.\n */\nmodule.exports = function interp2d(z, emptyPoints) {\n var maxFractionalChange = 1;\n var i;\n\n // one pass to fill in a starting value for all the empties\n iterateInterp2d(z, emptyPoints);\n\n // we're don't need to iterate lone empties - remove them\n for(i = 0; i < emptyPoints.length; i++) {\n if(emptyPoints[i][2] < 4) break;\n }\n // but don't remove these points from the original array,\n // we'll use them for masking, so make a copy.\n emptyPoints = emptyPoints.slice(i);\n\n for(i = 0; i < 100 && maxFractionalChange > INTERPTHRESHOLD; i++) {\n maxFractionalChange = iterateInterp2d(z, emptyPoints,\n correctionOvershoot(maxFractionalChange));\n }\n if(maxFractionalChange > INTERPTHRESHOLD) {\n Lib.log('interp2d didn\\'t converge quickly', maxFractionalChange);\n }\n\n return z;\n};\n\nfunction iterateInterp2d(z, emptyPoints, overshoot) {\n var maxFractionalChange = 0;\n var thisPt;\n var i;\n var j;\n var p;\n var q;\n var neighborShift;\n var neighborRow;\n var neighborVal;\n var neighborCount;\n var neighborSum;\n var initialVal;\n var minNeighbor;\n var maxNeighbor;\n\n for(p = 0; p < emptyPoints.length; p++) {\n thisPt = emptyPoints[p];\n i = thisPt[0];\n j = thisPt[1];\n initialVal = z[i][j];\n neighborSum = 0;\n neighborCount = 0;\n\n for(q = 0; q < 4; q++) {\n neighborShift = NEIGHBORSHIFTS[q];\n neighborRow = z[i + neighborShift[0]];\n if(!neighborRow) continue;\n neighborVal = neighborRow[j + neighborShift[1]];\n if(neighborVal !== undefined) {\n if(neighborSum === 0) {\n minNeighbor = maxNeighbor = neighborVal;\n } else {\n minNeighbor = Math.min(minNeighbor, neighborVal);\n maxNeighbor = Math.max(maxNeighbor, neighborVal);\n }\n neighborCount++;\n neighborSum += neighborVal;\n }\n }\n\n if(neighborCount === 0) {\n throw 'iterateInterp2d order is wrong: no defined neighbors';\n }\n\n // this is the laplace equation interpolation:\n // each point is just the average of its neighbors\n // note that this ignores differential x/y scaling\n // which I think is the right approach, since we\n // don't know what that scaling means\n z[i][j] = neighborSum / neighborCount;\n\n if(initialVal === undefined) {\n if(neighborCount < 4) maxFractionalChange = 1;\n } else {\n // we can make large empty regions converge faster\n // if we overshoot the change vs the previous value\n z[i][j] = (1 + overshoot) * z[i][j] - overshoot * initialVal;\n\n if(maxNeighbor > minNeighbor) {\n maxFractionalChange = Math.max(maxFractionalChange,\n Math.abs(z[i][j] - initialVal) / (maxNeighbor - minNeighbor));\n }\n }\n }\n\n return maxFractionalChange;\n}\n\n\n/***/ }),\n\n/***/ \"2d12\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"08ed\");\n\n\n/***/ }),\n\n/***/ \"2d1c\":\n/***/ (function(module, exports) {\n\nmodule.exports = negate;\n\n/**\n * Negates the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to negate\n * @returns {vec3} out\n */\nfunction negate(out, a) {\n out[0] = -a[0]\n out[1] = -a[1]\n out[2] = -a[2]\n return out\n}\n\n/***/ }),\n\n/***/ \"2d7d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* http://keith-wood.name/calendars.html\n Persian calendar for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar main = __webpack_require__(\"0230\");\nvar assign = __webpack_require__(\"320c\");\n\n\n/** Implementation of the Persian or Jalali calendar.\n Based on code from http://www.iranchamber.com/calendar/converter/iranian_calendar_converter.php.\n See also http://en.wikipedia.org/wiki/Iranian_calendar.\n @class PersianCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction PersianCalendar(language) {\n this.local = this.regionalOptions[language || ''] || this.regionalOptions[''];\n}\n\nPersianCalendar.prototype = new main.baseCalendar;\n\nassign(PersianCalendar.prototype, {\n /** The calendar name.\n @memberof PersianCalendar */\n name: 'Persian',\n /** Julian date of start of Persian epoch: 19 March 622 CE.\n @memberof PersianCalendar */\n jdEpoch: 1948320.5,\n /** Days per month in a common year.\n @memberof PersianCalendar */\n daysPerMonth: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29],\n /** true if has a year zero, false if not.\n @memberof PersianCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof PersianCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof PersianCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof PersianCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof PersianCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Persian',\n epochs: ['BP', 'AP'],\n monthNames: ['Farvardin', 'Ordibehesht', 'Khordad', 'Tir', 'Mordad', 'Shahrivar',\n 'Mehr', 'Aban', 'Azar', 'Day', 'Bahman', 'Esfand'],\n monthNamesShort: ['Far', 'Ord', 'Kho', 'Tir', 'Mor', 'Sha', 'Meh', 'Aba', 'Aza', 'Day', 'Bah', 'Esf'],\n dayNames: ['Yekshambe', 'Doshambe', 'Seshambe', 'Chæharshambe', 'Panjshambe', 'Jom\\'e', 'Shambe'],\n dayNamesShort: ['Yek', 'Do', 'Se', 'Chæ', 'Panj', 'Jom', 'Sha'],\n dayNamesMin: ['Ye','Do','Se','Ch','Pa','Jo','Sh'],\n digits: null,\n dateFormat: 'yyyy/mm/dd',\n firstDay: 6,\n isRTL: false\n }\n },\n\n /** Determine whether this date is in a leap year.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return (((((date.year() - (date.year() > 0 ? 474 : 473)) % 2820) +\n 474 + 38) * 682) % 2816) < 682;\n },\n\n /** Determine the week of the year for a date.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n // Find Saturday of this week starting on Saturday\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-((checkDate.dayOfWeek() + 1) % 7), 'd');\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n\n /** Retrieve the number of days in a month.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] +\n (date.month() === 12 && this.leapYear(date.year()) ? 1 : 0);\n },\n\n /** Determine whether this date is a week day.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return this.dayOfWeek(year, month, day) !== 5;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof PersianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n var epBase = year - (year >= 0 ? 474 : 473);\n var epYear = 474 + mod(epBase, 2820);\n return day + (month <= 7 ? (month - 1) * 31 : (month - 1) * 30 + 6) +\n Math.floor((epYear * 682 - 110) / 2816) + (epYear - 1) * 365 +\n Math.floor(epBase / 2820) * 1029983 + this.jdEpoch - 1;\n },\n\n /** Create a new date from a Julian date.\n @memberof PersianCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd) + 0.5;\n var depoch = jd - this.toJD(475, 1, 1);\n var cycle = Math.floor(depoch / 1029983);\n var cyear = mod(depoch, 1029983);\n var ycycle = 2820;\n if (cyear !== 1029982) {\n var aux1 = Math.floor(cyear / 366);\n var aux2 = mod(cyear, 366);\n ycycle = Math.floor(((2134 * aux1) + (2816 * aux2) + 2815) / 1028522) + aux1 + 1;\n }\n var year = ycycle + (2820 * cycle) + 474;\n year = (year <= 0 ? year - 1 : year);\n var yday = jd - this.toJD(year, 1, 1) + 1;\n var month = (yday <= 186 ? Math.ceil(yday / 31) : Math.ceil((yday - 6) / 30));\n var day = jd - this.toJD(year, month, 1) + 1;\n return this.newDate(year, month, day);\n }\n});\n\n// Modulus function which works for non-integers.\nfunction mod(a, b) {\n return a - (b * Math.floor(a / b));\n}\n\n// Persian (Jalali) calendar implementation\nmain.calendars.persian = PersianCalendar;\nmain.calendars.jalali = PersianCalendar;\n\n\n\n/***/ }),\n\n/***/ \"2d9a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar isPlainObject = Lib.isPlainObject;\nvar PlotSchema = __webpack_require__(\"6921\");\nvar Plots = __webpack_require__(\"bb71\");\nvar plotAttributes = __webpack_require__(\"a876\");\nvar Template = __webpack_require__(\"a651\");\nvar dfltConfig = __webpack_require__(\"3ff5\").dfltConfig;\n\n/**\n * Plotly.makeTemplate: create a template off an existing figure to reuse\n * style attributes on other figures.\n *\n * Note: separated from the rest of templates because otherwise we get circular\n * references due to PlotSchema.\n *\n * @param {object|DOM element|string} figure: The figure to base the template on\n * should contain a trace array `figure.data`\n * and a layout object `figure.layout`\n * @returns {object} template: the extracted template - can then be used as\n * `layout.template` in another figure.\n */\nexports.makeTemplate = function(figure) {\n figure = Lib.isPlainObject(figure) ? figure : Lib.getGraphDiv(figure);\n figure = Lib.extendDeep({_context: dfltConfig}, {data: figure.data, layout: figure.layout});\n Plots.supplyDefaults(figure);\n var data = figure.data || [];\n var layout = figure.layout || {};\n // copy over a few items to help follow the schema\n layout._basePlotModules = figure._fullLayout._basePlotModules;\n layout._modules = figure._fullLayout._modules;\n\n var template = {\n data: {},\n layout: {}\n };\n\n /*\n * Note: we do NOT validate template values, we just take what's in the\n * user inputs data and layout, not the validated values in fullData and\n * fullLayout. Even if we were to validate here, there's no guarantee that\n * these values would still be valid when applied to a new figure, which\n * may contain different trace modes, different axes, etc. So it's\n * important that when applying a template we still validate the template\n * values, rather than just using them as defaults.\n */\n\n data.forEach(function(trace) {\n // TODO: What if no style info is extracted for this trace. We may\n // not want an empty object as the null value.\n // TODO: allow transforms to contribute to templates?\n // as it stands they are ignored, which may be for the best...\n\n var traceTemplate = {};\n walkStyleKeys(trace, traceTemplate, getTraceInfo.bind(null, trace));\n\n var traceType = Lib.coerce(trace, {}, plotAttributes, 'type');\n var typeTemplates = template.data[traceType];\n if(!typeTemplates) typeTemplates = template.data[traceType] = [];\n typeTemplates.push(traceTemplate);\n });\n\n walkStyleKeys(layout, template.layout, getLayoutInfo.bind(null, layout));\n\n /*\n * Compose the new template with an existing one to the same effect\n *\n * NOTE: there's a possibility of slightly different behavior: if the plot\n * has an invalid value and the old template has a valid value for the same\n * attribute, the plot will use the old template value but this routine\n * will pull the invalid value (resulting in the original default).\n * In the general case it's not possible to solve this with a single value,\n * since valid options can be context-dependent. It could be solved with\n * a *list* of values, but that would be huge complexity for little gain.\n */\n delete template.layout.template;\n var oldTemplate = layout.template;\n if(isPlainObject(oldTemplate)) {\n var oldLayoutTemplate = oldTemplate.layout;\n\n var i, traceType, oldTypeTemplates, oldTypeLen, typeTemplates, typeLen;\n\n if(isPlainObject(oldLayoutTemplate)) {\n mergeTemplates(oldLayoutTemplate, template.layout);\n }\n var oldDataTemplate = oldTemplate.data;\n if(isPlainObject(oldDataTemplate)) {\n for(traceType in template.data) {\n oldTypeTemplates = oldDataTemplate[traceType];\n if(Array.isArray(oldTypeTemplates)) {\n typeTemplates = template.data[traceType];\n typeLen = typeTemplates.length;\n oldTypeLen = oldTypeTemplates.length;\n for(i = 0; i < typeLen; i++) {\n mergeTemplates(oldTypeTemplates[i % oldTypeLen], typeTemplates[i]);\n }\n for(i = typeLen; i < oldTypeLen; i++) {\n typeTemplates.push(Lib.extendDeep({}, oldTypeTemplates[i]));\n }\n }\n }\n for(traceType in oldDataTemplate) {\n if(!(traceType in template.data)) {\n template.data[traceType] = Lib.extendDeep([], oldDataTemplate[traceType]);\n }\n }\n }\n }\n\n return template;\n};\n\nfunction mergeTemplates(oldTemplate, newTemplate) {\n // we don't care about speed here, just make sure we have a totally\n // distinct object from the previous template\n oldTemplate = Lib.extendDeep({}, oldTemplate);\n\n // sort keys so we always get annotationdefaults before annotations etc\n // so arrayTemplater will work right\n var oldKeys = Object.keys(oldTemplate).sort();\n var i, j;\n\n function mergeOne(oldVal, newVal, key) {\n if(isPlainObject(newVal) && isPlainObject(oldVal)) {\n mergeTemplates(oldVal, newVal);\n } else if(Array.isArray(newVal) && Array.isArray(oldVal)) {\n // Note: omitted `inclusionAttr` from arrayTemplater here,\n // it's irrelevant as we only want the resulting `_template`.\n var templater = Template.arrayTemplater({_template: oldTemplate}, key);\n for(j = 0; j < newVal.length; j++) {\n var item = newVal[j];\n var oldItem = templater.newItem(item)._template;\n if(oldItem) mergeTemplates(oldItem, item);\n }\n var defaultItems = templater.defaultItems();\n for(j = 0; j < defaultItems.length; j++) newVal.push(defaultItems[j]._template);\n\n // templateitemname only applies to receiving plots\n for(j = 0; j < newVal.length; j++) delete newVal[j].templateitemname;\n }\n }\n\n for(i = 0; i < oldKeys.length; i++) {\n var key = oldKeys[i];\n var oldVal = oldTemplate[key];\n if(key in newTemplate) {\n mergeOne(oldVal, newTemplate[key], key);\n } else newTemplate[key] = oldVal;\n\n // if this is a base key from the old template (eg xaxis), look for\n // extended keys (eg xaxis2) in the new template to merge into\n if(getBaseKey(key) === key) {\n for(var key2 in newTemplate) {\n var baseKey2 = getBaseKey(key2);\n if(key2 !== baseKey2 && baseKey2 === key && !(key2 in oldTemplate)) {\n mergeOne(oldVal, newTemplate[key2], key);\n }\n }\n }\n }\n}\n\nfunction getBaseKey(key) {\n return key.replace(/[0-9]+$/, '');\n}\n\nfunction walkStyleKeys(parent, templateOut, getAttributeInfo, path, basePath) {\n var pathAttr = basePath && getAttributeInfo(basePath);\n for(var key in parent) {\n var child = parent[key];\n var nextPath = getNextPath(parent, key, path);\n var nextBasePath = getNextPath(parent, key, basePath);\n var attr = getAttributeInfo(nextBasePath);\n if(!attr) {\n var baseKey = getBaseKey(key);\n if(baseKey !== key) {\n nextBasePath = getNextPath(parent, baseKey, basePath);\n attr = getAttributeInfo(nextBasePath);\n }\n }\n\n // we'll get an attr if path starts with a valid part, then has an\n // invalid ending. Make sure we got all the way to the end.\n if(pathAttr && (pathAttr === attr)) continue;\n\n if(!attr || attr._noTemplating ||\n attr.valType === 'data_array' ||\n (attr.arrayOk && Array.isArray(child))\n ) {\n continue;\n }\n\n if(!attr.valType && isPlainObject(child)) {\n walkStyleKeys(child, templateOut, getAttributeInfo, nextPath, nextBasePath);\n } else if(attr._isLinkedToArray && Array.isArray(child)) {\n var dfltDone = false;\n var namedIndex = 0;\n var usedNames = {};\n for(var i = 0; i < child.length; i++) {\n var item = child[i];\n if(isPlainObject(item)) {\n var name = item.name;\n if(name) {\n if(!usedNames[name]) {\n // named array items: allow all attributes except data arrays\n walkStyleKeys(item, templateOut, getAttributeInfo,\n getNextPath(child, namedIndex, nextPath),\n getNextPath(child, namedIndex, nextBasePath));\n namedIndex++;\n usedNames[name] = 1;\n }\n } else if(!dfltDone) {\n var dfltKey = Template.arrayDefaultKey(key);\n var dfltPath = getNextPath(parent, dfltKey, path);\n\n // getAttributeInfo will fail if we try to use dfltKey directly.\n // Instead put this item into the next array element, then\n // pull it out and move it to dfltKey.\n var pathInArray = getNextPath(child, namedIndex, nextPath);\n walkStyleKeys(item, templateOut, getAttributeInfo, pathInArray,\n getNextPath(child, namedIndex, nextBasePath));\n var itemPropInArray = Lib.nestedProperty(templateOut, pathInArray);\n var dfltProp = Lib.nestedProperty(templateOut, dfltPath);\n dfltProp.set(itemPropInArray.get());\n itemPropInArray.set(null);\n\n dfltDone = true;\n }\n }\n }\n } else {\n var templateProp = Lib.nestedProperty(templateOut, nextPath);\n templateProp.set(child);\n }\n }\n}\n\nfunction getLayoutInfo(layout, path) {\n return PlotSchema.getLayoutValObject(\n layout, Lib.nestedProperty({}, path).parts\n );\n}\n\nfunction getTraceInfo(trace, path) {\n return PlotSchema.getTraceValObject(\n trace, Lib.nestedProperty({}, path).parts\n );\n}\n\nfunction getNextPath(parent, key, path) {\n var nextPath;\n if(!path) nextPath = key;\n else if(Array.isArray(parent)) nextPath = path + '[' + key + ']';\n else nextPath = path + '.' + key;\n\n return nextPath;\n}\n\n/**\n * validateTemplate: Test for consistency between the given figure and\n * a template, either already included in the figure or given separately.\n * Note that not every issue we identify here is necessarily a problem,\n * it depends on what you're using the template for.\n *\n * @param {object|DOM element} figure: the plot, with {data, layout} members,\n * to test the template against\n * @param {Optional(object)} template: the template, with its own {data, layout},\n * to test. If omitted, we will look for a template already attached as the\n * plot's `layout.template` attribute.\n *\n * @returns {array} array of error objects each containing:\n * - {string} code\n * error code ('missing', 'unused', 'reused', 'noLayout', 'noData')\n * - {string} msg\n * a full readable description of the issue.\n */\nexports.validateTemplate = function(figureIn, template) {\n var figure = Lib.extendDeep({}, {\n _context: dfltConfig,\n data: figureIn.data,\n layout: figureIn.layout\n });\n var layout = figure.layout || {};\n if(!isPlainObject(template)) template = layout.template || {};\n var layoutTemplate = template.layout;\n var dataTemplate = template.data;\n var errorList = [];\n\n figure.layout = layout;\n figure.layout.template = template;\n Plots.supplyDefaults(figure);\n\n var fullLayout = figure._fullLayout;\n var fullData = figure._fullData;\n\n var layoutPaths = {};\n function crawlLayoutForContainers(obj, paths) {\n for(var key in obj) {\n if(key.charAt(0) !== '_' && isPlainObject(obj[key])) {\n var baseKey = getBaseKey(key);\n var nextPaths = [];\n var i;\n for(i = 0; i < paths.length; i++) {\n nextPaths.push(getNextPath(obj, key, paths[i]));\n if(baseKey !== key) nextPaths.push(getNextPath(obj, baseKey, paths[i]));\n }\n for(i = 0; i < nextPaths.length; i++) {\n layoutPaths[nextPaths[i]] = 1;\n }\n crawlLayoutForContainers(obj[key], nextPaths);\n }\n }\n }\n\n function crawlLayoutTemplateForContainers(obj, path) {\n for(var key in obj) {\n if(key.indexOf('defaults') === -1 && isPlainObject(obj[key])) {\n var nextPath = getNextPath(obj, key, path);\n if(layoutPaths[nextPath]) {\n crawlLayoutTemplateForContainers(obj[key], nextPath);\n } else {\n errorList.push({code: 'unused', path: nextPath});\n }\n }\n }\n }\n\n if(!isPlainObject(layoutTemplate)) {\n errorList.push({code: 'layout'});\n } else {\n crawlLayoutForContainers(fullLayout, ['layout']);\n crawlLayoutTemplateForContainers(layoutTemplate, 'layout');\n }\n\n if(!isPlainObject(dataTemplate)) {\n errorList.push({code: 'data'});\n } else {\n var typeCount = {};\n var traceType;\n for(var i = 0; i < fullData.length; i++) {\n var fullTrace = fullData[i];\n traceType = fullTrace.type;\n typeCount[traceType] = (typeCount[traceType] || 0) + 1;\n if(!fullTrace._fullInput._template) {\n // this takes care of the case of traceType in the data but not\n // the template\n errorList.push({\n code: 'missing',\n index: fullTrace._fullInput.index,\n traceType: traceType\n });\n }\n }\n for(traceType in dataTemplate) {\n var templateCount = dataTemplate[traceType].length;\n var dataCount = typeCount[traceType] || 0;\n if(templateCount > dataCount) {\n errorList.push({\n code: 'unused',\n traceType: traceType,\n templateCount: templateCount,\n dataCount: dataCount\n });\n } else if(dataCount > templateCount) {\n errorList.push({\n code: 'reused',\n traceType: traceType,\n templateCount: templateCount,\n dataCount: dataCount\n });\n }\n }\n }\n\n // _template: false is when someone tried to modify an array item\n // but there was no template with matching name\n function crawlForMissingTemplates(obj, path) {\n for(var key in obj) {\n if(key.charAt(0) === '_') continue;\n var val = obj[key];\n var nextPath = getNextPath(obj, key, path);\n if(isPlainObject(val)) {\n if(Array.isArray(obj) && val._template === false && val.templateitemname) {\n errorList.push({\n code: 'missing',\n path: nextPath,\n templateitemname: val.templateitemname\n });\n }\n crawlForMissingTemplates(val, nextPath);\n } else if(Array.isArray(val) && hasPlainObject(val)) {\n crawlForMissingTemplates(val, nextPath);\n }\n }\n }\n crawlForMissingTemplates({data: fullData, layout: fullLayout}, '');\n\n if(errorList.length) return errorList.map(format);\n};\n\nfunction hasPlainObject(arr) {\n for(var i = 0; i < arr.length; i++) {\n if(isPlainObject(arr[i])) return true;\n }\n}\n\nfunction format(opts) {\n var msg;\n switch(opts.code) {\n case 'data':\n msg = 'The template has no key data.';\n break;\n case 'layout':\n msg = 'The template has no key layout.';\n break;\n case 'missing':\n if(opts.path) {\n msg = 'There are no templates for item ' + opts.path +\n ' with name ' + opts.templateitemname;\n } else {\n msg = 'There are no templates for trace ' + opts.index +\n ', of type ' + opts.traceType + '.';\n }\n break;\n case 'unused':\n if(opts.path) {\n msg = 'The template item at ' + opts.path +\n ' was not used in constructing the plot.';\n } else if(opts.dataCount) {\n msg = 'Some of the templates of type ' + opts.traceType +\n ' were not used. The template has ' + opts.templateCount +\n ' traces, the data only has ' + opts.dataCount +\n ' of this type.';\n } else {\n msg = 'The template has ' + opts.templateCount +\n ' traces of type ' + opts.traceType +\n ' but there are none in the data.';\n }\n break;\n case 'reused':\n msg = 'Some of the templates of type ' + opts.traceType +\n ' were used more than once. The template has ' +\n opts.templateCount + ' traces, the data has ' +\n opts.dataCount + ' of this type.';\n break;\n }\n opts.msg = msg;\n\n return opts;\n}\n\n\n/***/ }),\n\n/***/ \"2dbe\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n\r\nvar stringifyFont = __webpack_require__(\"c243\")\r\nvar defaultChars = [32, 126]\r\n\r\nmodule.exports = atlas\r\n\r\nfunction atlas(options) {\r\n options = options || {}\r\n\r\n var shape = options.shape ? options.shape : options.canvas ? [options.canvas.width, options.canvas.height] : [512, 512]\r\n var canvas = options.canvas || document.createElement('canvas')\r\n var font = options.font\r\n var step = typeof options.step === 'number' ? [options.step, options.step] : options.step || [32, 32]\r\n var chars = options.chars || defaultChars\r\n\r\n if (font && typeof font !== 'string') font = stringifyFont(font)\r\n\r\n if (!Array.isArray(chars)) {\r\n chars = String(chars).split('')\r\n } else\r\n if (chars.length === 2\r\n && typeof chars[0] === 'number'\r\n && typeof chars[1] === 'number'\r\n ) {\r\n var newchars = []\r\n\r\n for (var i = chars[0], j = 0; i <= chars[1]; i++) {\r\n newchars[j++] = String.fromCharCode(i)\r\n }\r\n\r\n chars = newchars\r\n }\r\n\r\n shape = shape.slice()\r\n canvas.width = shape[0]\r\n canvas.height = shape[1]\r\n\r\n var ctx = canvas.getContext('2d')\r\n\r\n ctx.fillStyle = '#000'\r\n ctx.fillRect(0, 0, canvas.width, canvas.height)\r\n\r\n ctx.font = font\r\n ctx.textAlign = 'center'\r\n ctx.textBaseline = 'middle'\r\n ctx.fillStyle = '#fff'\r\n\r\n var x = step[0] / 2\r\n var y = step[1] / 2\r\n for (var i = 0; i < chars.length; i++) {\r\n ctx.fillText(chars[i], x, y)\r\n if ((x += step[0]) > shape[0] - step[0]/2) (x = step[0]/2), (y += step[1])\r\n }\r\n\r\n return canvas\r\n}\r\n\n\n/***/ }),\n\n/***/ \"2dd7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar layoutAttributes = __webpack_require__(\"7ba3\");\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce('sunburstcolorway', layoutOut.colorway);\n coerce('extendsunburstcolors');\n};\n\n\n/***/ }),\n\n/***/ \"2dd9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = compressExpansion\n\nfunction compressExpansion(e) {\n var m = e.length\n var Q = e[e.length-1]\n var bottom = m\n for(var i=m-2; i>=0; --i) {\n var a = Q\n var b = e[i]\n Q = a + b\n var bv = Q - a\n var q = b - bv\n if(q) {\n e[--bottom] = Q\n Q = q\n }\n }\n var top = 0\n for(var i=bottom; i 1) ||\n (fullLayout.bargap === 0 &&\n fullLayout.bargroupgap === 0 &&\n !d[0].trace.marker.line.width)) {\n d3.select(this).attr('shape-rendering', 'crispEdges');\n }\n });\n\n s.selectAll('g.points').each(function(d) {\n var sel = d3.select(this);\n var trace = d[0].trace;\n stylePoints(sel, trace, gd);\n });\n\n Registry.getComponentMethod('errorbars', 'style')(s);\n}\n\nfunction stylePoints(sel, trace, gd) {\n Drawing.pointStyle(sel.selectAll('path'), trace, gd);\n styleTextPoints(sel, trace, gd);\n}\n\nfunction styleTextPoints(sel, trace, gd) {\n sel.selectAll('text').each(function(d) {\n var tx = d3.select(this);\n var font = Lib.ensureUniformFontSize(gd, determineFont(tx, d, trace, gd));\n\n Drawing.font(tx, font);\n });\n}\n\nfunction styleOnSelect(gd, cd, sel) {\n var trace = cd[0].trace;\n\n if(trace.selectedpoints) {\n stylePointsInSelectionMode(sel, trace, gd);\n } else {\n stylePoints(sel, trace, gd);\n Registry.getComponentMethod('errorbars', 'style')(sel);\n }\n}\n\nfunction stylePointsInSelectionMode(s, trace, gd) {\n Drawing.selectedPointStyle(s.selectAll('path'), trace);\n styleTextInSelectionMode(s.selectAll('text'), trace, gd);\n}\n\nfunction styleTextInSelectionMode(txs, trace, gd) {\n txs.each(function(d) {\n var tx = d3.select(this);\n var font;\n\n if(d.selected) {\n font = Lib.ensureUniformFontSize(gd, determineFont(tx, d, trace, gd));\n\n var selectedFontColor = trace.selected.textfont && trace.selected.textfont.color;\n if(selectedFontColor) {\n font.color = selectedFontColor;\n }\n\n Drawing.font(tx, font);\n } else {\n Drawing.selectedTextStyle(tx, trace);\n }\n });\n}\n\nfunction determineFont(tx, d, trace, gd) {\n var layoutFont = gd._fullLayout.font;\n var textFont = trace.textfont;\n\n if(tx.classed('bartext-inside')) {\n var barColor = getBarColor(d, trace);\n textFont = getInsideTextFont(trace, d.i, layoutFont, barColor);\n } else if(tx.classed('bartext-outside')) {\n textFont = getOutsideTextFont(trace, d.i, layoutFont);\n }\n\n return textFont;\n}\n\nfunction getTextFont(trace, index, defaultValue) {\n return getFontValue(\n attributeTextFont, trace.textfont, index, defaultValue);\n}\n\nfunction getInsideTextFont(trace, index, layoutFont, barColor) {\n var defaultFont = getTextFont(trace, index, layoutFont);\n\n var wouldFallBackToLayoutFont =\n (trace._input.textfont === undefined || trace._input.textfont.color === undefined) ||\n (Array.isArray(trace.textfont.color) && trace.textfont.color[index] === undefined);\n if(wouldFallBackToLayoutFont) {\n defaultFont = {\n color: Color.contrast(barColor),\n family: defaultFont.family,\n size: defaultFont.size\n };\n }\n\n return getFontValue(\n attributeInsideTextFont, trace.insidetextfont, index, defaultFont);\n}\n\nfunction getOutsideTextFont(trace, index, layoutFont) {\n var defaultFont = getTextFont(trace, index, layoutFont);\n return getFontValue(\n attributeOutsideTextFont, trace.outsidetextfont, index, defaultFont);\n}\n\nfunction getFontValue(attributeDefinition, attributeValue, index, defaultValue) {\n attributeValue = attributeValue || {};\n\n var familyValue = helpers.getValue(attributeValue.family, index);\n var sizeValue = helpers.getValue(attributeValue.size, index);\n var colorValue = helpers.getValue(attributeValue.color, index);\n\n return {\n family: helpers.coerceString(\n attributeDefinition.family, familyValue, defaultValue.family),\n size: helpers.coerceNumber(\n attributeDefinition.size, sizeValue, defaultValue.size),\n color: helpers.coerceColor(\n attributeDefinition.color, colorValue, defaultValue.color)\n };\n}\n\nfunction getBarColor(cd, trace) {\n if(trace.type === 'waterfall') {\n return trace[cd.dir].marker.color;\n }\n return cd.mc || trace.marker.color;\n}\n\nmodule.exports = {\n style: style,\n styleTextPoints: styleTextPoints,\n styleOnSelect: styleOnSelect,\n getInsideTextFont: getInsideTextFont,\n getOutsideTextFont: getOutsideTextFont,\n getBarColor: getBarColor,\n resizeText: resizeText\n};\n\n\n/***/ }),\n\n/***/ \"2e22\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sankeyCircular\", function() { return sankeyCircular; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sankeyCenter\", function() { return center; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sankeyLeft\", function() { return left; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sankeyRight\", function() { return right; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sankeyJustify\", function() { return justify; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"bc17\");\n/* harmony import */ var d3_collection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"6f04\");\n/* harmony import */ var d3_shape__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"1a88\");\n/* harmony import */ var elementary_circuits_directed_graph__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"7e55\");\n/* harmony import */ var elementary_circuits_directed_graph__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(elementary_circuits_directed_graph__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\n\n// For a given link, return the target node's depth\nfunction targetDepth(d) {\n return d.target.depth;\n}\n\n// The depth of a node when the nodeAlign (align) is set to 'left'\nfunction left(node) {\n return node.depth;\n}\n\n// The depth of a node when the nodeAlign (align) is set to 'right'\nfunction right(node, n) {\n return n - 1 - node.height;\n}\n\n// The depth of a node when the nodeAlign (align) is set to 'justify'\nfunction justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n}\n\n// The depth of a node when the nodeAlign (align) is set to 'center'\nfunction center(node) {\n return node.targetLinks.length ? node.depth : node.sourceLinks.length ? Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* min */ \"d\"])(node.sourceLinks, targetDepth) - 1 : 0;\n}\n\n// returns a function, using the parameter given to the sankey setting\nfunction constant(x) {\n return function () {\n return x;\n };\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n/// https://github.com/tomshanley/d3-sankeyCircular-circular\n\n// sort links' breadth (ie top to bottom in a column), based on their source nodes' breadths\nfunction ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n}\n\n// sort links' breadth (ie top to bottom in a column), based on their target nodes' breadths\nfunction ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n}\n\n// sort nodes' breadth (ie top to bottom in a column)\n// if both nodes have circular links, or both don't have circular links, then sort by the top (y0) of the node\n// else push nodes that have top circular links to the top, and nodes that have bottom circular links to the bottom\nfunction ascendingBreadth(a, b) {\n if (a.partOfCycle === b.partOfCycle) {\n return a.y0 - b.y0;\n } else {\n if (a.circularLinkType === 'top' || b.circularLinkType === 'bottom') {\n return -1;\n } else {\n return 1;\n }\n }\n}\n\n// return the value of a node or link\nfunction value(d) {\n return d.value;\n}\n\n// return the vertical center of a node\nfunction nodeCenter(node) {\n return (node.y0 + node.y1) / 2;\n}\n\n// return the vertical center of a link's source node\nfunction linkSourceCenter(link) {\n return nodeCenter(link.source);\n}\n\n// return the vertical center of a link's target node\nfunction linkTargetCenter(link) {\n return nodeCenter(link.target);\n}\n\n// Return the default value for ID for node, d.index\nfunction defaultId(d) {\n return d.index;\n}\n\n// Return the default object the graph's nodes, graph.nodes\nfunction defaultNodes(graph) {\n return graph.nodes;\n}\n\n// Return the default object the graph's nodes, graph.links\nfunction defaultLinks(graph) {\n return graph.links;\n}\n\n// Return the node from the collection that matches the provided ID, or throw an error if no match\nfunction find(nodeById, id) {\n var node = nodeById.get(id);\n if (!node) throw new Error('missing: ' + id);\n return node;\n}\n\nfunction getNodeID(node, id) {\n return id(node);\n}\n\n// The main sankeyCircular functions\n\n// Some constants for circular link calculations\nvar verticalMargin = 25;\nvar baseRadius = 10;\nvar scale = 0.3; //Possibly let user control this, although anything over 0.5 starts to get too cramped\n\nfunction sankeyCircular () {\n // Set the default values\n var x0 = 0,\n y0 = 0,\n x1 = 1,\n y1 = 1,\n // extent\n dx = 24,\n // nodeWidth\n py,\n // nodePadding, for vertical postioning\n id = defaultId,\n align = justify,\n nodes = defaultNodes,\n links = defaultLinks,\n iterations = 32,\n circularLinkGap = 2,\n paddingRatio,\n sortNodes = null;\n\n function sankeyCircular() {\n var graph = {\n nodes: nodes.apply(null, arguments),\n links: links.apply(null, arguments)\n\n // Process the graph's nodes and links, setting their positions\n\n // 1. Associate the nodes with their respective links, and vice versa\n };computeNodeLinks(graph);\n\n // 2. Determine which links result in a circular path in the graph\n identifyCircles(graph, id, sortNodes);\n\n // 4. Calculate the nodes' values, based on the values of the incoming and outgoing links\n computeNodeValues(graph);\n\n // 5. Calculate the nodes' depth based on the incoming and outgoing links\n // Sets the nodes':\n // - depth: the depth in the graph\n // - column: the depth (0, 1, 2, etc), as is relates to visual position from left to right\n // - x0, x1: the x coordinates, as is relates to visual position from left to right\n computeNodeDepths(graph);\n\n // 3. Determine how the circular links will be drawn,\n // either travelling back above the main chart (\"top\")\n // or below the main chart (\"bottom\")\n selectCircularLinkTypes(graph, id);\n\n // 6. Calculate the nodes' and links' vertical position within their respective column\n // Also readjusts sankeyCircular size if circular links are needed, and node x's\n computeNodeBreadths(graph, iterations, id);\n computeLinkBreadths(graph);\n\n // 7. Sort links per node, based on the links' source/target nodes' breadths\n // 8. Adjust nodes that overlap links that span 2+ columns\n var linkSortingIterations = 4; //Possibly let user control this number, like the iterations over node placement\n for (var iteration = 0; iteration < linkSortingIterations; iteration++) {\n\n sortSourceLinks(graph, y1, id);\n sortTargetLinks(graph, y1, id);\n resolveNodeLinkOverlaps(graph, y0, y1, id);\n sortSourceLinks(graph, y1, id);\n sortTargetLinks(graph, y1, id);\n }\n\n // 8.1 Adjust node and link positions back to fill height of chart area if compressed\n fillHeight(graph, y0, y1);\n\n // 9. Calculate visually appealling path for the circular paths, and create the \"d\" string\n addCircularPathData(graph, circularLinkGap, y1, id);\n\n return graph;\n } // end of sankeyCircular function\n\n\n // Set the sankeyCircular parameters\n // nodeID, nodeAlign, nodeWidth, nodePadding, nodes, links, size, extent, iterations, nodePaddingRatio, circularLinkGap\n sankeyCircular.nodeId = function (_) {\n return arguments.length ? (id = typeof _ === 'function' ? _ : constant(_), sankeyCircular) : id;\n };\n\n sankeyCircular.nodeAlign = function (_) {\n return arguments.length ? (align = typeof _ === 'function' ? _ : constant(_), sankeyCircular) : align;\n };\n\n sankeyCircular.nodeWidth = function (_) {\n return arguments.length ? (dx = +_, sankeyCircular) : dx;\n };\n\n sankeyCircular.nodePadding = function (_) {\n return arguments.length ? (py = +_, sankeyCircular) : py;\n };\n\n sankeyCircular.nodes = function (_) {\n return arguments.length ? (nodes = typeof _ === 'function' ? _ : constant(_), sankeyCircular) : nodes;\n };\n\n sankeyCircular.links = function (_) {\n return arguments.length ? (links = typeof _ === 'function' ? _ : constant(_), sankeyCircular) : links;\n };\n\n sankeyCircular.size = function (_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankeyCircular) : [x1 - x0, y1 - y0];\n };\n\n sankeyCircular.extent = function (_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankeyCircular) : [[x0, y0], [x1, y1]];\n };\n\n sankeyCircular.iterations = function (_) {\n return arguments.length ? (iterations = +_, sankeyCircular) : iterations;\n };\n\n sankeyCircular.circularLinkGap = function (_) {\n return arguments.length ? (circularLinkGap = +_, sankeyCircular) : circularLinkGap;\n };\n\n sankeyCircular.nodePaddingRatio = function (_) {\n return arguments.length ? (paddingRatio = +_, sankeyCircular) : paddingRatio;\n };\n\n sankeyCircular.sortNodes = function (_) {\n return arguments.length ? (sortNodes = _, sankeyCircular) : sortNodes;\n };\n\n sankeyCircular.update = function (graph) {\n // 5. Calculate the nodes' depth based on the incoming and outgoing links\n // Sets the nodes':\n // - depth: the depth in the graph\n // - column: the depth (0, 1, 2, etc), as is relates to visual position from left to right\n // - x0, x1: the x coordinates, as is relates to visual position from left to right\n // computeNodeDepths(graph)\n\n // 3. Determine how the circular links will be drawn,\n // either travelling back above the main chart (\"top\")\n // or below the main chart (\"bottom\")\n selectCircularLinkTypes(graph, id);\n\n // 6. Calculate the nodes' and links' vertical position within their respective column\n // Also readjusts sankeyCircular size if circular links are needed, and node x's\n // computeNodeBreadths(graph, iterations, id)\n computeLinkBreadths(graph);\n\n // Force position of circular link type based on position\n graph.links.forEach(function (link) {\n if (link.circular) {\n link.circularLinkType = link.y0 + link.y1 < y1 ? 'top' : 'bottom';\n\n link.source.circularLinkType = link.circularLinkType;\n link.target.circularLinkType = link.circularLinkType;\n }\n });\n\n sortSourceLinks(graph, y1, id, false); // Sort links but do not move nodes\n sortTargetLinks(graph, y1, id);\n\n // 7. Sort links per node, based on the links' source/target nodes' breadths\n // 8. Adjust nodes that overlap links that span 2+ columns\n // var linkSortingIterations = 4; //Possibly let user control this number, like the iterations over node placement\n // for (var iteration = 0; iteration < linkSortingIterations; iteration++) {\n //\n // sortSourceLinks(graph, y1, id)\n // sortTargetLinks(graph, y1, id)\n // resolveNodeLinkOverlaps(graph, y0, y1, id)\n // sortSourceLinks(graph, y1, id)\n // sortTargetLinks(graph, y1, id)\n //\n // }\n\n // 8.1 Adjust node and link positions back to fill height of chart area if compressed\n // fillHeight(graph, y0, y1)\n\n // 9. Calculate visually appealling path for the circular paths, and create the \"d\" string\n addCircularPathData(graph, circularLinkGap, y1, id);\n return graph;\n };\n\n // Populate the sourceLinks and targetLinks for each node.\n // Also, if the source and target are not objects, assume they are indices.\n function computeNodeLinks(graph) {\n graph.nodes.forEach(function (node, i) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n });\n var nodeById = Object(d3_collection__WEBPACK_IMPORTED_MODULE_1__[/* map */ \"a\"])(graph.nodes, id);\n graph.links.forEach(function (link, i) {\n link.index = i;\n var source = link.source;\n var target = link.target;\n if ((typeof source === \"undefined\" ? \"undefined\" : _typeof(source)) !== 'object') {\n source = link.source = find(nodeById, source);\n }\n if ((typeof target === \"undefined\" ? \"undefined\" : _typeof(target)) !== 'object') {\n target = link.target = find(nodeById, target);\n }\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n });\n return graph;\n }\n\n // Compute the value (size) and cycleness of each node by summing the associated links.\n function computeNodeValues(graph) {\n graph.nodes.forEach(function (node) {\n node.partOfCycle = false;\n node.value = Math.max(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* sum */ \"e\"])(node.sourceLinks, value), Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* sum */ \"e\"])(node.targetLinks, value));\n node.sourceLinks.forEach(function (link) {\n if (link.circular) {\n node.partOfCycle = true;\n node.circularLinkType = link.circularLinkType;\n }\n });\n node.targetLinks.forEach(function (link) {\n if (link.circular) {\n node.partOfCycle = true;\n node.circularLinkType = link.circularLinkType;\n }\n });\n });\n }\n\n function getCircleMargins(graph) {\n var totalTopLinksWidth = 0,\n totalBottomLinksWidth = 0,\n totalRightLinksWidth = 0,\n totalLeftLinksWidth = 0;\n\n var maxColumn = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* max */ \"b\"])(graph.nodes, function (node) {\n return node.column;\n });\n\n graph.links.forEach(function (link) {\n if (link.circular) {\n if (link.circularLinkType == 'top') {\n totalTopLinksWidth = totalTopLinksWidth + link.width;\n } else {\n totalBottomLinksWidth = totalBottomLinksWidth + link.width;\n }\n\n if (link.target.column == 0) {\n totalLeftLinksWidth = totalLeftLinksWidth + link.width;\n }\n\n if (link.source.column == maxColumn) {\n totalRightLinksWidth = totalRightLinksWidth + link.width;\n }\n }\n });\n\n //account for radius of curves and padding between links\n totalTopLinksWidth = totalTopLinksWidth > 0 ? totalTopLinksWidth + verticalMargin + baseRadius : totalTopLinksWidth;\n totalBottomLinksWidth = totalBottomLinksWidth > 0 ? totalBottomLinksWidth + verticalMargin + baseRadius : totalBottomLinksWidth;\n totalRightLinksWidth = totalRightLinksWidth > 0 ? totalRightLinksWidth + verticalMargin + baseRadius : totalRightLinksWidth;\n totalLeftLinksWidth = totalLeftLinksWidth > 0 ? totalLeftLinksWidth + verticalMargin + baseRadius : totalLeftLinksWidth;\n\n return { \"top\": totalTopLinksWidth, \"bottom\": totalBottomLinksWidth, \"left\": totalLeftLinksWidth, \"right\": totalRightLinksWidth };\n }\n\n // Update the x0, y0, x1 and y1 for the sankeyCircular, to allow space for any circular links\n function scaleSankeySize(graph, margin) {\n\n var maxColumn = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* max */ \"b\"])(graph.nodes, function (node) {\n return node.column;\n });\n\n var currentWidth = x1 - x0;\n var currentHeight = y1 - y0;\n\n var newWidth = currentWidth + margin.right + margin.left;\n var newHeight = currentHeight + margin.top + margin.bottom;\n\n var scaleX = currentWidth / newWidth;\n var scaleY = currentHeight / newHeight;\n\n x0 = x0 * scaleX + margin.left;\n x1 = margin.right == 0 ? x1 : x1 * scaleX;\n y0 = y0 * scaleY + margin.top;\n y1 = y1 * scaleY;\n\n graph.nodes.forEach(function (node) {\n node.x0 = x0 + node.column * ((x1 - x0 - dx) / maxColumn);\n node.x1 = node.x0 + dx;\n });\n\n return scaleY;\n }\n\n // Iteratively assign the depth for each node.\n // Nodes are assigned the maximum depth of incoming neighbors plus one;\n // nodes with no incoming links are assigned depth zero, while\n // nodes with no outgoing links are assigned the maximum depth.\n function computeNodeDepths(graph) {\n var nodes, next, x;\n\n for (nodes = graph.nodes, next = [], x = 0; nodes.length; ++x, nodes = next, next = []) {\n nodes.forEach(function (node) {\n node.depth = x;\n node.sourceLinks.forEach(function (link) {\n if (next.indexOf(link.target) < 0 && !link.circular) {\n next.push(link.target);\n }\n });\n });\n }\n\n for (nodes = graph.nodes, next = [], x = 0; nodes.length; ++x, nodes = next, next = []) {\n nodes.forEach(function (node) {\n node.height = x;\n node.targetLinks.forEach(function (link) {\n if (next.indexOf(link.source) < 0 && !link.circular) {\n next.push(link.source);\n }\n });\n });\n }\n\n // assign column numbers, and get max value\n graph.nodes.forEach(function (node) {\n node.column = Math.floor(align.call(null, node, x));\n });\n }\n\n // Assign nodes' breadths, and then shift nodes that overlap (resolveCollisions)\n function computeNodeBreadths(graph, iterations, id) {\n var columns = Object(d3_collection__WEBPACK_IMPORTED_MODULE_1__[/* nest */ \"b\"])().key(function (d) {\n return d.column;\n }).sortKeys(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* ascending */ \"a\"]).entries(graph.nodes).map(function (d) {\n return d.values;\n });\n\n initializeNodeBreadth(id);\n resolveCollisions();\n\n for (var alpha = 1, n = iterations; n > 0; --n) {\n relaxLeftAndRight(alpha *= 0.99, id);\n resolveCollisions();\n }\n\n function initializeNodeBreadth(id) {\n\n //override py if nodePadding has been set\n if (paddingRatio) {\n var padding = Infinity;\n columns.forEach(function (nodes) {\n var thisPadding = y1 * paddingRatio / (nodes.length + 1);\n padding = thisPadding < padding ? thisPadding : padding;\n });\n py = padding;\n }\n\n var ky = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* min */ \"d\"])(columns, function (nodes) {\n return (y1 - y0 - (nodes.length - 1) * py) / Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* sum */ \"e\"])(nodes, value);\n });\n\n //calculate the widths of the links\n ky = ky * scale;\n\n graph.links.forEach(function (link) {\n link.width = link.value * ky;\n });\n\n //determine how much to scale down the chart, based on circular links\n var margin = getCircleMargins(graph);\n var ratio = scaleSankeySize(graph, margin);\n\n //re-calculate widths\n ky = ky * ratio;\n\n graph.links.forEach(function (link) {\n link.width = link.value * ky;\n });\n\n columns.forEach(function (nodes) {\n var nodesLength = nodes.length;\n nodes.forEach(function (node, i) {\n if (node.depth == columns.length - 1 && nodesLength == 1) {\n node.y0 = y1 / 2 - node.value * ky;\n node.y1 = node.y0 + node.value * ky;\n } else if (node.depth == 0 && nodesLength == 1) {\n node.y0 = y1 / 2 - node.value * ky;\n node.y1 = node.y0 + node.value * ky;\n } else if (node.partOfCycle) {\n if (numberOfNonSelfLinkingCycles(node, id) == 0) {\n node.y0 = y1 / 2 + i;\n node.y1 = node.y0 + node.value * ky;\n } else if (node.circularLinkType == 'top') {\n node.y0 = y0 + i;\n node.y1 = node.y0 + node.value * ky;\n } else {\n node.y0 = y1 - node.value * ky - i;\n node.y1 = node.y0 + node.value * ky;\n }\n } else {\n if (margin.top == 0 || margin.bottom == 0) {\n node.y0 = (y1 - y0) / nodesLength * i;\n node.y1 = node.y0 + node.value * ky;\n } else {\n node.y0 = (y1 - y0) / 2 - nodesLength / 2 + i;\n node.y1 = node.y0 + node.value * ky;\n }\n }\n });\n });\n }\n\n // For each node in each column, check the node's vertical position in relation to its targets and sources vertical position\n // and shift up/down to be closer to the vertical middle of those targets and sources\n function relaxLeftAndRight(alpha, id) {\n var columnsLength = columns.length;\n\n columns.forEach(function (nodes) {\n var n = nodes.length;\n var depth = nodes[0].depth;\n\n nodes.forEach(function (node) {\n // check the node is not an orphan\n var nodeHeight;\n if (node.sourceLinks.length || node.targetLinks.length) {\n if (node.partOfCycle && numberOfNonSelfLinkingCycles(node, id) > 0) ; else if (depth == 0 && n == 1) {\n nodeHeight = node.y1 - node.y0;\n\n node.y0 = y1 / 2 - nodeHeight / 2;\n node.y1 = y1 / 2 + nodeHeight / 2;\n } else if (depth == columnsLength - 1 && n == 1) {\n nodeHeight = node.y1 - node.y0;\n\n node.y0 = y1 / 2 - nodeHeight / 2;\n node.y1 = y1 / 2 + nodeHeight / 2;\n } else {\n var avg = 0;\n\n var avgTargetY = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* mean */ \"c\"])(node.sourceLinks, linkTargetCenter);\n var avgSourceY = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* mean */ \"c\"])(node.targetLinks, linkSourceCenter);\n\n if (avgTargetY && avgSourceY) {\n avg = (avgTargetY + avgSourceY) / 2;\n } else {\n avg = avgTargetY || avgSourceY;\n }\n\n var dy = (avg - nodeCenter(node)) * alpha;\n // positive if it node needs to move down\n node.y0 += dy;\n node.y1 += dy;\n }\n }\n });\n });\n }\n\n // For each column, check if nodes are overlapping, and if so, shift up/down\n function resolveCollisions() {\n columns.forEach(function (nodes) {\n var node,\n dy,\n y = y0,\n n = nodes.length,\n i;\n\n // Push any overlapping nodes down.\n nodes.sort(ascendingBreadth);\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dy = y - node.y0;\n\n if (dy > 0) {\n node.y0 += dy;\n node.y1 += dy;\n }\n y = node.y1 + py;\n }\n\n // If the bottommost node goes outside the bounds, push it back up.\n dy = y - py - y1;\n if (dy > 0) {\n y = node.y0 -= dy, node.y1 -= dy;\n\n // Push any overlapping nodes back up.\n for (i = n - 2; i >= 0; --i) {\n node = nodes[i];\n dy = node.y1 + py - y;\n if (dy > 0) node.y0 -= dy, node.y1 -= dy;\n y = node.y0;\n }\n }\n });\n }\n }\n\n // Assign the links y0 and y1 based on source/target nodes position,\n // plus the link's relative position to other links to the same node\n function computeLinkBreadths(graph) {\n graph.nodes.forEach(function (node) {\n node.sourceLinks.sort(ascendingTargetBreadth);\n node.targetLinks.sort(ascendingSourceBreadth);\n });\n graph.nodes.forEach(function (node) {\n var y0 = node.y0;\n var y1 = y0;\n\n // start from the bottom of the node for cycle links\n var y0cycle = node.y1;\n var y1cycle = y0cycle;\n\n node.sourceLinks.forEach(function (link) {\n if (link.circular) {\n link.y0 = y0cycle - link.width / 2;\n y0cycle = y0cycle - link.width;\n } else {\n link.y0 = y0 + link.width / 2;\n y0 += link.width;\n }\n });\n node.targetLinks.forEach(function (link) {\n if (link.circular) {\n link.y1 = y1cycle - link.width / 2;\n y1cycle = y1cycle - link.width;\n } else {\n link.y1 = y1 + link.width / 2;\n y1 += link.width;\n }\n });\n });\n }\n\n return sankeyCircular;\n}\n\n/// /////////////////////////////////////////////////////////////////////////////////\n// Cycle functions\n// portion of code to detect circular links based on Colin Fergus' bl.ock https://gist.github.com/cfergus/3956043\n\n// Identify circles in the link objects\nfunction identifyCircles(graph, id, sortNodes) {\n var circularLinkID = 0;\n if (sortNodes === null) {\n\n // Building adjacency graph\n var adjList = [];\n for (var i = 0; i < graph.links.length; i++) {\n var link = graph.links[i];\n var source = link.source.index;\n var target = link.target.index;\n if (!adjList[source]) adjList[source] = [];\n if (!adjList[target]) adjList[target] = [];\n\n // Add links if not already in set\n if (adjList[source].indexOf(target) === -1) adjList[source].push(target);\n }\n\n // Find all elementary circuits\n var cycles = elementary_circuits_directed_graph__WEBPACK_IMPORTED_MODULE_3___default()(adjList);\n\n // Sort by circuits length\n cycles.sort(function (a, b) {\n return a.length - b.length;\n });\n\n var circularLinks = {};\n for (i = 0; i < cycles.length; i++) {\n var cycle = cycles[i];\n var last = cycle.slice(-2);\n if (!circularLinks[last[0]]) circularLinks[last[0]] = {};\n circularLinks[last[0]][last[1]] = true;\n }\n\n graph.links.forEach(function (link) {\n var target = link.target.index;\n var source = link.source.index;\n // If self-linking or a back-edge\n if (target === source || circularLinks[source] && circularLinks[source][target]) {\n link.circular = true;\n link.circularLinkID = circularLinkID;\n circularLinkID = circularLinkID + 1;\n } else {\n link.circular = false;\n }\n });\n } else {\n graph.links.forEach(function (link) {\n if (link.source[sortNodes] < link.target[sortNodes]) {\n link.circular = false;\n } else {\n link.circular = true;\n link.circularLinkID = circularLinkID;\n circularLinkID = circularLinkID + 1;\n }\n });\n }\n}\n\n// Assign a circular link type (top or bottom), based on:\n// - if the source/target node already has circular links, then use the same type\n// - if not, choose the type with fewer links\nfunction selectCircularLinkTypes(graph, id) {\n var numberOfTops = 0;\n var numberOfBottoms = 0;\n graph.links.forEach(function (link) {\n if (link.circular) {\n // if either souce or target has type already use that\n if (link.source.circularLinkType || link.target.circularLinkType) {\n // default to source type if available\n link.circularLinkType = link.source.circularLinkType ? link.source.circularLinkType : link.target.circularLinkType;\n } else {\n link.circularLinkType = numberOfTops < numberOfBottoms ? 'top' : 'bottom';\n }\n\n if (link.circularLinkType == 'top') {\n numberOfTops = numberOfTops + 1;\n } else {\n numberOfBottoms = numberOfBottoms + 1;\n }\n\n graph.nodes.forEach(function (node) {\n if (getNodeID(node, id) == getNodeID(link.source, id) || getNodeID(node, id) == getNodeID(link.target, id)) {\n node.circularLinkType = link.circularLinkType;\n }\n });\n }\n });\n\n //correct self-linking links to be same direction as node\n graph.links.forEach(function (link) {\n if (link.circular) {\n //if both source and target node are same type, then link should have same type\n if (link.source.circularLinkType == link.target.circularLinkType) {\n link.circularLinkType = link.source.circularLinkType;\n }\n //if link is selflinking, then link should have same type as node\n if (selfLinking(link, id)) {\n link.circularLinkType = link.source.circularLinkType;\n }\n }\n });\n}\n\n// Return the angle between a straight line between the source and target of the link, and the vertical plane of the node\nfunction linkAngle(link) {\n var adjacent = Math.abs(link.y1 - link.y0);\n var opposite = Math.abs(link.target.x0 - link.source.x1);\n\n return Math.atan(opposite / adjacent);\n}\n\n// Check if two circular links potentially overlap\nfunction circularLinksCross(link1, link2) {\n if (link1.source.column < link2.target.column) {\n return false;\n } else if (link1.target.column > link2.source.column) {\n return false;\n } else {\n return true;\n }\n}\n\n// Return the number of circular links for node, not including self linking links\nfunction numberOfNonSelfLinkingCycles(node, id) {\n var sourceCount = 0;\n node.sourceLinks.forEach(function (l) {\n sourceCount = l.circular && !selfLinking(l, id) ? sourceCount + 1 : sourceCount;\n });\n\n var targetCount = 0;\n node.targetLinks.forEach(function (l) {\n targetCount = l.circular && !selfLinking(l, id) ? targetCount + 1 : targetCount;\n });\n\n return sourceCount + targetCount;\n}\n\n// Check if a circular link is the only circular link for both its source and target node\nfunction onlyCircularLink(link) {\n var nodeSourceLinks = link.source.sourceLinks;\n var sourceCount = 0;\n nodeSourceLinks.forEach(function (l) {\n sourceCount = l.circular ? sourceCount + 1 : sourceCount;\n });\n\n var nodeTargetLinks = link.target.targetLinks;\n var targetCount = 0;\n nodeTargetLinks.forEach(function (l) {\n targetCount = l.circular ? targetCount + 1 : targetCount;\n });\n\n if (sourceCount > 1 || targetCount > 1) {\n return false;\n } else {\n return true;\n }\n}\n\n// creates vertical buffer values per set of top/bottom links\nfunction calcVerticalBuffer(links, circularLinkGap, id) {\n links.sort(sortLinkColumnAscending);\n links.forEach(function (link, i) {\n var buffer = 0;\n\n if (selfLinking(link, id) && onlyCircularLink(link)) {\n link.circularPathData.verticalBuffer = buffer + link.width / 2;\n } else {\n var j = 0;\n for (j; j < i; j++) {\n if (circularLinksCross(links[i], links[j])) {\n var bufferOverThisLink = links[j].circularPathData.verticalBuffer + links[j].width / 2 + circularLinkGap;\n buffer = bufferOverThisLink > buffer ? bufferOverThisLink : buffer;\n }\n }\n\n link.circularPathData.verticalBuffer = buffer + link.width / 2;\n }\n });\n\n return links;\n}\n\n// calculate the optimum path for a link to reduce overlaps\nfunction addCircularPathData(graph, circularLinkGap, y1, id) {\n //var baseRadius = 10\n var buffer = 5;\n //var verticalMargin = 25\n\n var minY = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* min */ \"d\"])(graph.links, function (link) {\n return link.source.y0;\n });\n\n // create object for circular Path Data\n graph.links.forEach(function (link) {\n if (link.circular) {\n link.circularPathData = {};\n }\n });\n\n // calc vertical offsets per top/bottom links\n var topLinks = graph.links.filter(function (l) {\n return l.circularLinkType == 'top';\n });\n /* topLinks = */calcVerticalBuffer(topLinks, circularLinkGap, id);\n\n var bottomLinks = graph.links.filter(function (l) {\n return l.circularLinkType == 'bottom';\n });\n /* bottomLinks = */calcVerticalBuffer(bottomLinks, circularLinkGap, id);\n\n // add the base data for each link\n graph.links.forEach(function (link) {\n if (link.circular) {\n link.circularPathData.arcRadius = link.width + baseRadius;\n link.circularPathData.leftNodeBuffer = buffer;\n link.circularPathData.rightNodeBuffer = buffer;\n link.circularPathData.sourceWidth = link.source.x1 - link.source.x0;\n link.circularPathData.sourceX = link.source.x0 + link.circularPathData.sourceWidth;\n link.circularPathData.targetX = link.target.x0;\n link.circularPathData.sourceY = link.y0;\n link.circularPathData.targetY = link.y1;\n\n // for self linking paths, and that the only circular link in/out of that node\n if (selfLinking(link, id) && onlyCircularLink(link)) {\n link.circularPathData.leftSmallArcRadius = baseRadius + link.width / 2;\n link.circularPathData.leftLargeArcRadius = baseRadius + link.width / 2;\n link.circularPathData.rightSmallArcRadius = baseRadius + link.width / 2;\n link.circularPathData.rightLargeArcRadius = baseRadius + link.width / 2;\n\n if (link.circularLinkType == 'bottom') {\n link.circularPathData.verticalFullExtent = link.source.y1 + verticalMargin + link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.rightLargeArcRadius;\n } else {\n // top links\n link.circularPathData.verticalFullExtent = link.source.y0 - verticalMargin - link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.rightLargeArcRadius;\n }\n } else {\n // else calculate normally\n // add left extent coordinates, based on links with same source column and circularLink type\n var thisColumn = link.source.column;\n var thisCircularLinkType = link.circularLinkType;\n var sameColumnLinks = graph.links.filter(function (l) {\n return l.source.column == thisColumn && l.circularLinkType == thisCircularLinkType;\n });\n\n if (link.circularLinkType == 'bottom') {\n sameColumnLinks.sort(sortLinkSourceYDescending);\n } else {\n sameColumnLinks.sort(sortLinkSourceYAscending);\n }\n\n var radiusOffset = 0;\n sameColumnLinks.forEach(function (l, i) {\n if (l.circularLinkID == link.circularLinkID) {\n link.circularPathData.leftSmallArcRadius = baseRadius + link.width / 2 + radiusOffset;\n link.circularPathData.leftLargeArcRadius = baseRadius + link.width / 2 + i * circularLinkGap + radiusOffset;\n }\n radiusOffset = radiusOffset + l.width;\n });\n\n // add right extent coordinates, based on links with same target column and circularLink type\n thisColumn = link.target.column;\n sameColumnLinks = graph.links.filter(function (l) {\n return l.target.column == thisColumn && l.circularLinkType == thisCircularLinkType;\n });\n if (link.circularLinkType == 'bottom') {\n sameColumnLinks.sort(sortLinkTargetYDescending);\n } else {\n sameColumnLinks.sort(sortLinkTargetYAscending);\n }\n\n radiusOffset = 0;\n sameColumnLinks.forEach(function (l, i) {\n if (l.circularLinkID == link.circularLinkID) {\n link.circularPathData.rightSmallArcRadius = baseRadius + link.width / 2 + radiusOffset;\n link.circularPathData.rightLargeArcRadius = baseRadius + link.width / 2 + i * circularLinkGap + radiusOffset;\n }\n radiusOffset = radiusOffset + l.width;\n });\n\n // bottom links\n if (link.circularLinkType == 'bottom') {\n link.circularPathData.verticalFullExtent = Math.max(y1, link.source.y1, link.target.y1) + verticalMargin + link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.rightLargeArcRadius;\n } else {\n // top links\n link.circularPathData.verticalFullExtent = minY - verticalMargin - link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.rightLargeArcRadius;\n }\n }\n\n // all links\n link.circularPathData.leftInnerExtent = link.circularPathData.sourceX + link.circularPathData.leftNodeBuffer;\n link.circularPathData.rightInnerExtent = link.circularPathData.targetX - link.circularPathData.rightNodeBuffer;\n link.circularPathData.leftFullExtent = link.circularPathData.sourceX + link.circularPathData.leftLargeArcRadius + link.circularPathData.leftNodeBuffer;\n link.circularPathData.rightFullExtent = link.circularPathData.targetX - link.circularPathData.rightLargeArcRadius - link.circularPathData.rightNodeBuffer;\n }\n\n if (link.circular) {\n link.path = createCircularPathString(link);\n } else {\n var normalPath = Object(d3_shape__WEBPACK_IMPORTED_MODULE_2__[/* linkHorizontal */ \"a\"])().source(function (d) {\n var x = d.source.x0 + (d.source.x1 - d.source.x0);\n var y = d.y0;\n return [x, y];\n }).target(function (d) {\n var x = d.target.x0;\n var y = d.y1;\n return [x, y];\n });\n link.path = normalPath(link);\n }\n });\n}\n\n// create a d path using the addCircularPathData\nfunction createCircularPathString(link) {\n var pathString = '';\n // 'pathData' is assigned a value but never used\n // var pathData = {}\n\n if (link.circularLinkType == 'top') {\n pathString =\n // start at the right of the source node\n 'M' + link.circularPathData.sourceX + ' ' + link.circularPathData.sourceY + ' ' +\n // line right to buffer point\n 'L' + link.circularPathData.leftInnerExtent + ' ' + link.circularPathData.sourceY + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.leftLargeArcRadius + ' ' + link.circularPathData.leftSmallArcRadius + ' 0 0 0 ' +\n // End of arc X //End of arc Y\n link.circularPathData.leftFullExtent + ' ' + (link.circularPathData.sourceY - link.circularPathData.leftSmallArcRadius) + ' ' + // End of arc X\n // line up to buffer point\n 'L' + link.circularPathData.leftFullExtent + ' ' + link.circularPathData.verticalLeftInnerExtent + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.leftLargeArcRadius + ' ' + link.circularPathData.leftLargeArcRadius + ' 0 0 0 ' +\n // End of arc X //End of arc Y\n link.circularPathData.leftInnerExtent + ' ' + link.circularPathData.verticalFullExtent + ' ' + // End of arc X\n // line left to buffer point\n 'L' + link.circularPathData.rightInnerExtent + ' ' + link.circularPathData.verticalFullExtent + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.rightLargeArcRadius + ' ' + link.circularPathData.rightLargeArcRadius + ' 0 0 0 ' +\n // End of arc X //End of arc Y\n link.circularPathData.rightFullExtent + ' ' + link.circularPathData.verticalRightInnerExtent + ' ' + // End of arc X\n // line down\n 'L' + link.circularPathData.rightFullExtent + ' ' + (link.circularPathData.targetY - link.circularPathData.rightSmallArcRadius) + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.rightLargeArcRadius + ' ' + link.circularPathData.rightSmallArcRadius + ' 0 0 0 ' +\n // End of arc X //End of arc Y\n link.circularPathData.rightInnerExtent + ' ' + link.circularPathData.targetY + ' ' + // End of arc X\n // line to end\n 'L' + link.circularPathData.targetX + ' ' + link.circularPathData.targetY;\n } else {\n // bottom path\n pathString =\n // start at the right of the source node\n 'M' + link.circularPathData.sourceX + ' ' + link.circularPathData.sourceY + ' ' +\n // line right to buffer point\n 'L' + link.circularPathData.leftInnerExtent + ' ' + link.circularPathData.sourceY + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.leftLargeArcRadius + ' ' + link.circularPathData.leftSmallArcRadius + ' 0 0 1 ' +\n // End of arc X //End of arc Y\n link.circularPathData.leftFullExtent + ' ' + (link.circularPathData.sourceY + link.circularPathData.leftSmallArcRadius) + ' ' + // End of arc X\n // line down to buffer point\n 'L' + link.circularPathData.leftFullExtent + ' ' + link.circularPathData.verticalLeftInnerExtent + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.leftLargeArcRadius + ' ' + link.circularPathData.leftLargeArcRadius + ' 0 0 1 ' +\n // End of arc X //End of arc Y\n link.circularPathData.leftInnerExtent + ' ' + link.circularPathData.verticalFullExtent + ' ' + // End of arc X\n // line left to buffer point\n 'L' + link.circularPathData.rightInnerExtent + ' ' + link.circularPathData.verticalFullExtent + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.rightLargeArcRadius + ' ' + link.circularPathData.rightLargeArcRadius + ' 0 0 1 ' +\n // End of arc X //End of arc Y\n link.circularPathData.rightFullExtent + ' ' + link.circularPathData.verticalRightInnerExtent + ' ' + // End of arc X\n // line up\n 'L' + link.circularPathData.rightFullExtent + ' ' + (link.circularPathData.targetY + link.circularPathData.rightSmallArcRadius) + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.rightLargeArcRadius + ' ' + link.circularPathData.rightSmallArcRadius + ' 0 0 1 ' +\n // End of arc X //End of arc Y\n link.circularPathData.rightInnerExtent + ' ' + link.circularPathData.targetY + ' ' + // End of arc X\n // line to end\n 'L' + link.circularPathData.targetX + ' ' + link.circularPathData.targetY;\n }\n\n return pathString;\n}\n\n// sort links based on the distance between the source and tartget node columns\n// if the same, then use Y position of the source node\nfunction sortLinkColumnAscending(link1, link2) {\n if (linkColumnDistance(link1) == linkColumnDistance(link2)) {\n return link1.circularLinkType == 'bottom' ? sortLinkSourceYDescending(link1, link2) : sortLinkSourceYAscending(link1, link2);\n } else {\n return linkColumnDistance(link2) - linkColumnDistance(link1);\n }\n}\n\n// sort ascending links by their source vertical position, y0\nfunction sortLinkSourceYAscending(link1, link2) {\n return link1.y0 - link2.y0;\n}\n\n// sort descending links by their source vertical position, y0\nfunction sortLinkSourceYDescending(link1, link2) {\n return link2.y0 - link1.y0;\n}\n\n// sort ascending links by their target vertical position, y1\nfunction sortLinkTargetYAscending(link1, link2) {\n return link1.y1 - link2.y1;\n}\n\n// sort descending links by their target vertical position, y1\nfunction sortLinkTargetYDescending(link1, link2) {\n return link2.y1 - link1.y1;\n}\n\n// return the distance between the link's target and source node, in terms of the nodes' column\nfunction linkColumnDistance(link) {\n return link.target.column - link.source.column;\n}\n\n// return the distance between the link's target and source node, in terms of the nodes' X coordinate\nfunction linkXLength(link) {\n return link.target.x0 - link.source.x1;\n}\n\n// Return the Y coordinate on the longerLink path * which is perpendicular shorterLink's source.\n// * approx, based on a straight line from target to source, when in fact the path is a bezier\nfunction linkPerpendicularYToLinkSource(longerLink, shorterLink) {\n // get the angle for the longer link\n var angle = linkAngle(longerLink);\n\n // get the adjacent length to the other link's x position\n var heightFromY1ToPependicular = linkXLength(shorterLink) / Math.tan(angle);\n\n // add or subtract from longer link1's original y1, depending on the slope\n var yPerpendicular = incline(longerLink) == 'up' ? longerLink.y1 + heightFromY1ToPependicular : longerLink.y1 - heightFromY1ToPependicular;\n\n return yPerpendicular;\n}\n\n// Return the Y coordinate on the longerLink path * which is perpendicular shorterLink's source.\n// * approx, based on a straight line from target to source, when in fact the path is a bezier\nfunction linkPerpendicularYToLinkTarget(longerLink, shorterLink) {\n // get the angle for the longer link\n var angle = linkAngle(longerLink);\n\n // get the adjacent length to the other link's x position\n var heightFromY1ToPependicular = linkXLength(shorterLink) / Math.tan(angle);\n\n // add or subtract from longer link's original y1, depending on the slope\n var yPerpendicular = incline(longerLink) == 'up' ? longerLink.y1 - heightFromY1ToPependicular : longerLink.y1 + heightFromY1ToPependicular;\n\n return yPerpendicular;\n}\n\n// Move any nodes that overlap links which span 2+ columns\nfunction resolveNodeLinkOverlaps(graph, y0, y1, id) {\n\n graph.links.forEach(function (link) {\n if (link.circular) {\n return;\n }\n\n if (link.target.column - link.source.column > 1) {\n var columnToTest = link.source.column + 1;\n var maxColumnToTest = link.target.column - 1;\n\n var i = 1;\n var numberOfColumnsToTest = maxColumnToTest - columnToTest + 1;\n\n for (i = 1; columnToTest <= maxColumnToTest; columnToTest++, i++) {\n graph.nodes.forEach(function (node) {\n if (node.column == columnToTest) {\n var t = i / (numberOfColumnsToTest + 1);\n\n // Find all the points of a cubic bezier curve in javascript\n // https://stackoverflow.com/questions/15397596/find-all-the-points-of-a-cubic-bezier-curve-in-javascript\n\n var B0_t = Math.pow(1 - t, 3);\n var B1_t = 3 * t * Math.pow(1 - t, 2);\n var B2_t = 3 * Math.pow(t, 2) * (1 - t);\n var B3_t = Math.pow(t, 3);\n\n var py_t = B0_t * link.y0 + B1_t * link.y0 + B2_t * link.y1 + B3_t * link.y1;\n\n var linkY0AtColumn = py_t - link.width / 2;\n var linkY1AtColumn = py_t + link.width / 2;\n var dy;\n\n // If top of link overlaps node, push node up\n if (linkY0AtColumn > node.y0 && linkY0AtColumn < node.y1) {\n\n dy = node.y1 - linkY0AtColumn + 10;\n dy = node.circularLinkType == 'bottom' ? dy : -dy;\n\n node = adjustNodeHeight(node, dy, y0, y1);\n\n // check if other nodes need to move up too\n graph.nodes.forEach(function (otherNode) {\n // don't need to check itself or nodes at different columns\n if (getNodeID(otherNode, id) == getNodeID(node, id) || otherNode.column != node.column) {\n return;\n }\n if (nodesOverlap(node, otherNode)) {\n adjustNodeHeight(otherNode, dy, y0, y1);\n }\n });\n } else if (linkY1AtColumn > node.y0 && linkY1AtColumn < node.y1) {\n // If bottom of link overlaps node, push node down\n dy = linkY1AtColumn - node.y0 + 10;\n\n node = adjustNodeHeight(node, dy, y0, y1);\n\n // check if other nodes need to move down too\n graph.nodes.forEach(function (otherNode) {\n // don't need to check itself or nodes at different columns\n if (getNodeID(otherNode, id) == getNodeID(node, id) || otherNode.column != node.column) {\n return;\n }\n if (otherNode.y0 < node.y1 && otherNode.y1 > node.y1) {\n adjustNodeHeight(otherNode, dy, y0, y1);\n }\n });\n } else if (linkY0AtColumn < node.y0 && linkY1AtColumn > node.y1) {\n // if link completely overlaps node\n dy = linkY1AtColumn - node.y0 + 10;\n\n node = adjustNodeHeight(node, dy, y0, y1);\n\n graph.nodes.forEach(function (otherNode) {\n // don't need to check itself or nodes at different columns\n if (getNodeID(otherNode, id) == getNodeID(node, id) || otherNode.column != node.column) {\n return;\n }\n if (otherNode.y0 < node.y1 && otherNode.y1 > node.y1) {\n adjustNodeHeight(otherNode, dy, y0, y1);\n }\n });\n }\n }\n });\n }\n }\n });\n}\n\n// check if two nodes overlap\nfunction nodesOverlap(nodeA, nodeB) {\n // test if nodeA top partially overlaps nodeB\n if (nodeA.y0 > nodeB.y0 && nodeA.y0 < nodeB.y1) {\n return true;\n } else if (nodeA.y1 > nodeB.y0 && nodeA.y1 < nodeB.y1) {\n // test if nodeA bottom partially overlaps nodeB\n return true;\n } else if (nodeA.y0 < nodeB.y0 && nodeA.y1 > nodeB.y1) {\n // test if nodeA covers nodeB\n return true;\n } else {\n return false;\n }\n}\n\n// update a node, and its associated links, vertical positions (y0, y1)\nfunction adjustNodeHeight(node, dy, sankeyY0, sankeyY1) {\n if (node.y0 + dy >= sankeyY0 && node.y1 + dy <= sankeyY1) {\n node.y0 = node.y0 + dy;\n node.y1 = node.y1 + dy;\n\n node.targetLinks.forEach(function (l) {\n l.y1 = l.y1 + dy;\n });\n\n node.sourceLinks.forEach(function (l) {\n l.y0 = l.y0 + dy;\n });\n }\n return node;\n}\n\n// sort and set the links' y0 for each node\nfunction sortSourceLinks(graph, y1, id, moveNodes) {\n graph.nodes.forEach(function (node) {\n // move any nodes up which are off the bottom\n if (moveNodes && node.y + (node.y1 - node.y0) > y1) {\n node.y = node.y - (node.y + (node.y1 - node.y0) - y1);\n }\n\n var nodesSourceLinks = graph.links.filter(function (l) {\n return getNodeID(l.source, id) == getNodeID(node, id);\n });\n\n var nodeSourceLinksLength = nodesSourceLinks.length;\n\n // if more than 1 link then sort\n if (nodeSourceLinksLength > 1) {\n nodesSourceLinks.sort(function (link1, link2) {\n // if both are not circular...\n if (!link1.circular && !link2.circular) {\n // if the target nodes are the same column, then sort by the link's target y\n if (link1.target.column == link2.target.column) {\n return link1.y1 - link2.y1;\n } else if (!sameInclines(link1, link2)) {\n // if the links slope in different directions, then sort by the link's target y\n return link1.y1 - link2.y1;\n\n // if the links slope in same directions, then sort by any overlap\n } else {\n if (link1.target.column > link2.target.column) {\n var link2Adj = linkPerpendicularYToLinkTarget(link2, link1);\n return link1.y1 - link2Adj;\n }\n if (link2.target.column > link1.target.column) {\n var link1Adj = linkPerpendicularYToLinkTarget(link1, link2);\n return link1Adj - link2.y1;\n }\n }\n }\n\n // if only one is circular, the move top links up, or bottom links down\n if (link1.circular && !link2.circular) {\n return link1.circularLinkType == 'top' ? -1 : 1;\n } else if (link2.circular && !link1.circular) {\n return link2.circularLinkType == 'top' ? 1 : -1;\n }\n\n // if both links are circular...\n if (link1.circular && link2.circular) {\n // ...and they both loop the same way (both top)\n if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == 'top') {\n // ...and they both connect to a target with same column, then sort by the target's y\n if (link1.target.column === link2.target.column) {\n return link1.target.y1 - link2.target.y1;\n } else {\n // ...and they connect to different column targets, then sort by how far back they\n return link2.target.column - link1.target.column;\n }\n } else if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == 'bottom') {\n // ...and they both loop the same way (both bottom)\n // ...and they both connect to a target with same column, then sort by the target's y\n if (link1.target.column === link2.target.column) {\n return link2.target.y1 - link1.target.y1;\n } else {\n // ...and they connect to different column targets, then sort by how far back they\n return link1.target.column - link2.target.column;\n }\n } else {\n // ...and they loop around different ways, the move top up and bottom down\n return link1.circularLinkType == 'top' ? -1 : 1;\n }\n }\n });\n }\n\n // update y0 for links\n var ySourceOffset = node.y0;\n\n nodesSourceLinks.forEach(function (link) {\n link.y0 = ySourceOffset + link.width / 2;\n ySourceOffset = ySourceOffset + link.width;\n });\n\n // correct any circular bottom links so they are at the bottom of the node\n nodesSourceLinks.forEach(function (link, i) {\n if (link.circularLinkType == 'bottom') {\n var j = i + 1;\n var offsetFromBottom = 0;\n // sum the widths of any links that are below this link\n for (j; j < nodeSourceLinksLength; j++) {\n offsetFromBottom = offsetFromBottom + nodesSourceLinks[j].width;\n }\n link.y0 = node.y1 - offsetFromBottom - link.width / 2;\n }\n });\n });\n}\n\n// sort and set the links' y1 for each node\nfunction sortTargetLinks(graph, y1, id) {\n graph.nodes.forEach(function (node) {\n var nodesTargetLinks = graph.links.filter(function (l) {\n return getNodeID(l.target, id) == getNodeID(node, id);\n });\n\n var nodesTargetLinksLength = nodesTargetLinks.length;\n\n if (nodesTargetLinksLength > 1) {\n nodesTargetLinks.sort(function (link1, link2) {\n // if both are not circular, the base on the source y position\n if (!link1.circular && !link2.circular) {\n if (link1.source.column == link2.source.column) {\n return link1.y0 - link2.y0;\n } else if (!sameInclines(link1, link2)) {\n return link1.y0 - link2.y0;\n } else {\n // get the angle of the link to the further source node (ie the smaller column)\n if (link2.source.column < link1.source.column) {\n var link2Adj = linkPerpendicularYToLinkSource(link2, link1);\n\n return link1.y0 - link2Adj;\n }\n if (link1.source.column < link2.source.column) {\n var link1Adj = linkPerpendicularYToLinkSource(link1, link2);\n\n return link1Adj - link2.y0;\n }\n }\n }\n\n // if only one is circular, the move top links up, or bottom links down\n if (link1.circular && !link2.circular) {\n return link1.circularLinkType == 'top' ? -1 : 1;\n } else if (link2.circular && !link1.circular) {\n return link2.circularLinkType == 'top' ? 1 : -1;\n }\n\n // if both links are circular...\n if (link1.circular && link2.circular) {\n // ...and they both loop the same way (both top)\n if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == 'top') {\n // ...and they both connect to a target with same column, then sort by the target's y\n if (link1.source.column === link2.source.column) {\n return link1.source.y1 - link2.source.y1;\n } else {\n // ...and they connect to different column targets, then sort by how far back they\n return link1.source.column - link2.source.column;\n }\n } else if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == 'bottom') {\n // ...and they both loop the same way (both bottom)\n // ...and they both connect to a target with same column, then sort by the target's y\n if (link1.source.column === link2.source.column) {\n return link1.source.y1 - link2.source.y1;\n } else {\n // ...and they connect to different column targets, then sort by how far back they\n return link2.source.column - link1.source.column;\n }\n } else {\n // ...and they loop around different ways, the move top up and bottom down\n return link1.circularLinkType == 'top' ? -1 : 1;\n }\n }\n });\n }\n\n // update y1 for links\n var yTargetOffset = node.y0;\n\n nodesTargetLinks.forEach(function (link) {\n link.y1 = yTargetOffset + link.width / 2;\n yTargetOffset = yTargetOffset + link.width;\n });\n\n // correct any circular bottom links so they are at the bottom of the node\n nodesTargetLinks.forEach(function (link, i) {\n if (link.circularLinkType == 'bottom') {\n var j = i + 1;\n var offsetFromBottom = 0;\n // sum the widths of any links that are below this link\n for (j; j < nodesTargetLinksLength; j++) {\n offsetFromBottom = offsetFromBottom + nodesTargetLinks[j].width;\n }\n link.y1 = node.y1 - offsetFromBottom - link.width / 2;\n }\n });\n });\n}\n\n// test if links both slope up, or both slope down\nfunction sameInclines(link1, link2) {\n return incline(link1) == incline(link2);\n}\n\n// returns the slope of a link, from source to target\n// up => slopes up from source to target\n// down => slopes down from source to target\nfunction incline(link) {\n return link.y0 - link.y1 > 0 ? 'up' : 'down';\n}\n\n// check if link is self linking, ie links a node to the same node\nfunction selfLinking(link, id) {\n return getNodeID(link.source, id) == getNodeID(link.target, id);\n}\n\nfunction fillHeight(graph, y0, y1) {\n\n var nodes = graph.nodes;\n var links = graph.links;\n\n var top = false;\n var bottom = false;\n\n links.forEach(function (link) {\n if (link.circularLinkType == \"top\") {\n top = true;\n } else if (link.circularLinkType == \"bottom\") {\n bottom = true;\n }\n });\n\n if (top == false || bottom == false) {\n var minY0 = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* min */ \"d\"])(nodes, function (node) {\n return node.y0;\n });\n var maxY1 = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* max */ \"b\"])(nodes, function (node) {\n return node.y1;\n });\n var currentHeight = maxY1 - minY0;\n var chartHeight = y1 - y0;\n var ratio = chartHeight / currentHeight;\n\n nodes.forEach(function (node) {\n var nodeHeight = (node.y1 - node.y0) * ratio;\n node.y0 = (node.y0 - minY0) * ratio;\n node.y1 = node.y0 + nodeHeight;\n });\n\n links.forEach(function (link) {\n link.y0 = (link.y0 - minY0) * ratio;\n link.y1 = (link.y1 - minY0) * ratio;\n link.width = link.width * ratio;\n });\n }\n}\n\n\n\n\n/***/ }),\n\n/***/ \"2e3d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\n// ASCEND: chop off the last nesting level - either [] or . - to ascend\n// the attribute tree. the remaining attrString is in match[1]\nvar ASCEND = /^(.*)(\\.[^\\.\\[\\]]+|\\[\\d\\])$/;\n\n// SIMPLEATTR: is this an un-nested attribute? (no dots or brackets)\nvar SIMPLEATTR = /^[^\\.\\[\\]]+$/;\n\n/*\n * calculate a relative attribute string, similar to a relative path\n *\n * @param {string} baseAttr:\n * an attribute string, such as 'annotations[3].x'. The \"current location\"\n * is the attribute string minus the last component ('annotations[3]')\n * @param {string} relativeAttr:\n * a route to the desired attribute string, using '^' to ascend\n *\n * @return {string} attrString:\n * for example:\n * relativeAttr('annotations[3].x', 'y') = 'annotations[3].y'\n * relativeAttr('annotations[3].x', '^[2].z') = 'annotations[2].z'\n * relativeAttr('annotations[3].x', '^^margin') = 'margin'\n * relativeAttr('annotations[3].x', '^^margin.r') = 'margin.r'\n */\nmodule.exports = function(baseAttr, relativeAttr) {\n while(relativeAttr) {\n var match = baseAttr.match(ASCEND);\n\n if(match) baseAttr = match[1];\n else if(baseAttr.match(SIMPLEATTR)) baseAttr = '';\n else throw new Error('bad relativeAttr call:' + [baseAttr, relativeAttr]);\n\n if(relativeAttr.charAt(0) === '^') relativeAttr = relativeAttr.slice(1);\n else break;\n }\n\n if(baseAttr && relativeAttr.charAt(0) !== '[') {\n return baseAttr + '.' + relativeAttr;\n }\n return baseAttr + relativeAttr;\n};\n\n\n/***/ }),\n\n/***/ \"2e46\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction compileSearch(funcName, predicate, reversed, extraArgs, useNdarray, earlyOut) {\n var code = [\n \"function \", funcName, \"(a,l,h,\", extraArgs.join(\",\"), \"){\",\nearlyOut ? \"\" : \"var i=\", (reversed ? \"l-1\" : \"h+1\"),\n\";while(l<=h){\\\nvar m=(l+h)>>>1,x=a\", useNdarray ? \".get(m)\" : \"[m]\"]\n if(earlyOut) {\n if(predicate.indexOf(\"c\") < 0) {\n code.push(\";if(x===y){return m}else if(x<=y){\")\n } else {\n code.push(\";var p=c(x,y);if(p===0){return m}else if(p<=0){\")\n }\n } else {\n code.push(\";if(\", predicate, \"){i=m;\")\n }\n if(reversed) {\n code.push(\"l=m+1}else{h=m-1}\")\n } else {\n code.push(\"h=m-1}else{l=m+1}\")\n }\n code.push(\"}\")\n if(earlyOut) {\n code.push(\"return -1};\")\n } else {\n code.push(\"return i};\")\n }\n return code.join(\"\")\n}\n\nfunction compileBoundsSearch(predicate, reversed, suffix, earlyOut) {\n var result = new Function([\n compileSearch(\"A\", \"x\" + predicate + \"y\", reversed, [\"y\"], false, earlyOut),\n compileSearch(\"B\", \"x\" + predicate + \"y\", reversed, [\"y\"], true, earlyOut),\n compileSearch(\"P\", \"c(x,y)\" + predicate + \"0\", reversed, [\"y\", \"c\"], false, earlyOut),\n compileSearch(\"Q\", \"c(x,y)\" + predicate + \"0\", reversed, [\"y\", \"c\"], true, earlyOut),\n\"function dispatchBsearch\", suffix, \"(a,y,c,l,h){\\\nif(a.shape){\\\nif(typeof(c)==='function'){\\\nreturn Q(a,(l===undefined)?0:l|0,(h===undefined)?a.shape[0]-1:h|0,y,c)\\\n}else{\\\nreturn B(a,(c===undefined)?0:c|0,(l===undefined)?a.shape[0]-1:l|0,y)\\\n}}else{\\\nif(typeof(c)==='function'){\\\nreturn P(a,(l===undefined)?0:l|0,(h===undefined)?a.length-1:h|0,y,c)\\\n}else{\\\nreturn A(a,(c===undefined)?0:c|0,(l===undefined)?a.length-1:l|0,y)\\\n}}}\\\nreturn dispatchBsearch\", suffix].join(\"\"))\n return result()\n}\n\nmodule.exports = {\n ge: compileBoundsSearch(\">=\", false, \"GE\"),\n gt: compileBoundsSearch(\">\", false, \"GT\"),\n lt: compileBoundsSearch(\"<\", true, \"LT\"),\n le: compileBoundsSearch(\"<=\", true, \"LE\"),\n eq: compileBoundsSearch(\"-\", true, \"EQ\", true)\n}\n\n\n/***/ }),\n\n/***/ \"2ee6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isTypedArray = __webpack_require__(\"fc26\").isTypedArray;\n\nexports.convertTypedArray = function(a) {\n return isTypedArray(a) ? Array.prototype.slice.call(a) : a;\n};\n\nexports.isOrdinal = function(dimension) {\n return !!dimension.tickvals;\n};\n\nexports.isVisible = function(dimension) {\n return dimension.visible || !('visible' in dimension);\n};\n\n\n/***/ }),\n\n/***/ \"2f03\":\n/***/ (function(module, exports) {\n\n// Copyright (C) 2011 Google Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/**\n * @fileoverview Install a leaky WeakMap emulation on platforms that\n * don't provide a built-in one.\n *\n *

Assumes that an ES5 platform where, if {@code WeakMap} is\n * already present, then it conforms to the anticipated ES6\n * specification. To run this file on an ES5 or almost ES5\n * implementation where the {@code WeakMap} specification does not\n * quite conform, run repairES5.js first.\n *\n *

Even though WeakMapModule is not global, the linter thinks it\n * is, which is why it is in the overrides list below.\n *\n *

NOTE: Before using this WeakMap emulation in a non-SES\n * environment, see the note below about hiddenRecord.\n *\n * @author Mark S. Miller\n * @requires crypto, ArrayBuffer, Uint8Array, navigator, console\n * @overrides WeakMap, ses, Proxy\n * @overrides WeakMapModule\n */\n\n/**\n * This {@code WeakMap} emulation is observably equivalent to the\n * ES-Harmony WeakMap, but with leakier garbage collection properties.\n *\n *

As with true WeakMaps, in this emulation, a key does not\n * retain maps indexed by that key and (crucially) a map does not\n * retain the keys it indexes. A map by itself also does not retain\n * the values associated with that map.\n *\n *

However, the values associated with a key in some map are\n * retained so long as that key is retained and those associations are\n * not overridden. For example, when used to support membranes, all\n * values exported from a given membrane will live for the lifetime\n * they would have had in the absence of an interposed membrane. Even\n * when the membrane is revoked, all objects that would have been\n * reachable in the absence of revocation will still be reachable, as\n * far as the GC can tell, even though they will no longer be relevant\n * to ongoing computation.\n *\n *

The API implemented here is approximately the API as implemented\n * in FF6.0a1 and agreed to by MarkM, Andreas Gal, and Dave Herman,\n * rather than the offially approved proposal page. TODO(erights):\n * upgrade the ecmascript WeakMap proposal page to explain this API\n * change and present to EcmaScript committee for their approval.\n *\n *

The first difference between the emulation here and that in\n * FF6.0a1 is the presence of non enumerable {@code get___, has___,\n * set___, and delete___} methods on WeakMap instances to represent\n * what would be the hidden internal properties of a primitive\n * implementation. Whereas the FF6.0a1 WeakMap.prototype methods\n * require their {@code this} to be a genuine WeakMap instance (i.e.,\n * an object of {@code [[Class]]} \"WeakMap}), since there is nothing\n * unforgeable about the pseudo-internal method names used here,\n * nothing prevents these emulated prototype methods from being\n * applied to non-WeakMaps with pseudo-internal methods of the same\n * names.\n *\n *

Another difference is that our emulated {@code\n * WeakMap.prototype} is not itself a WeakMap. A problem with the\n * current FF6.0a1 API is that WeakMap.prototype is itself a WeakMap\n * providing ambient mutability and an ambient communications\n * channel. Thus, if a WeakMap is already present and has this\n * problem, repairES5.js wraps it in a safe wrappper in order to\n * prevent access to this channel. (See\n * PATCH_MUTABLE_FROZEN_WEAKMAP_PROTO in repairES5.js).\n */\n\n/**\n * If this is a full secureable ES5 platform and the ES-Harmony {@code WeakMap} is\n * absent, install an approximate emulation.\n *\n *

If WeakMap is present but cannot store some objects, use our approximate\n * emulation as a wrapper.\n *\n *

If this is almost a secureable ES5 platform, then WeakMap.js\n * should be run after repairES5.js.\n *\n *

See {@code WeakMap} for documentation of the garbage collection\n * properties of this WeakMap emulation.\n */\n(function WeakMapModule() {\n \"use strict\";\n\n if (typeof ses !== 'undefined' && ses.ok && !ses.ok()) {\n // already too broken, so give up\n return;\n }\n\n /**\n * In some cases (current Firefox), we must make a choice betweeen a\n * WeakMap which is capable of using all varieties of host objects as\n * keys and one which is capable of safely using proxies as keys. See\n * comments below about HostWeakMap and DoubleWeakMap for details.\n *\n * This function (which is a global, not exposed to guests) marks a\n * WeakMap as permitted to do what is necessary to index all host\n * objects, at the cost of making it unsafe for proxies.\n *\n * Do not apply this function to anything which is not a genuine\n * fresh WeakMap.\n */\n function weakMapPermitHostObjects(map) {\n // identity of function used as a secret -- good enough and cheap\n if (map.permitHostObjects___) {\n map.permitHostObjects___(weakMapPermitHostObjects);\n }\n }\n if (typeof ses !== 'undefined') {\n ses.weakMapPermitHostObjects = weakMapPermitHostObjects;\n }\n\n // IE 11 has no Proxy but has a broken WeakMap such that we need to patch\n // it using DoubleWeakMap; this flag tells DoubleWeakMap so.\n var doubleWeakMapCheckSilentFailure = false;\n\n // Check if there is already a good-enough WeakMap implementation, and if so\n // exit without replacing it.\n if (typeof WeakMap === 'function') {\n var HostWeakMap = WeakMap;\n // There is a WeakMap -- is it good enough?\n if (typeof navigator !== 'undefined' &&\n /Firefox/.test(navigator.userAgent)) {\n // We're now *assuming not*, because as of this writing (2013-05-06)\n // Firefox's WeakMaps have a miscellany of objects they won't accept, and\n // we don't want to make an exhaustive list, and testing for just one\n // will be a problem if that one is fixed alone (as they did for Event).\n\n // If there is a platform that we *can* reliably test on, here's how to\n // do it:\n // var problematic = ... ;\n // var testHostMap = new HostWeakMap();\n // try {\n // testHostMap.set(problematic, 1); // Firefox 20 will throw here\n // if (testHostMap.get(problematic) === 1) {\n // return;\n // }\n // } catch (e) {}\n\n } else {\n // IE 11 bug: WeakMaps silently fail to store frozen objects.\n var testMap = new HostWeakMap();\n var testObject = Object.freeze({});\n testMap.set(testObject, 1);\n if (testMap.get(testObject) !== 1) {\n doubleWeakMapCheckSilentFailure = true;\n // Fall through to installing our WeakMap.\n } else {\n module.exports = WeakMap;\n return;\n }\n }\n }\n\n var hop = Object.prototype.hasOwnProperty;\n var gopn = Object.getOwnPropertyNames;\n var defProp = Object.defineProperty;\n var isExtensible = Object.isExtensible;\n\n /**\n * Security depends on HIDDEN_NAME being both unguessable and\n * undiscoverable by untrusted code.\n *\n *

Given the known weaknesses of Math.random() on existing\n * browsers, it does not generate unguessability we can be confident\n * of.\n *\n *

It is the monkey patching logic in this file that is intended\n * to ensure undiscoverability. The basic idea is that there are\n * three fundamental means of discovering properties of an object:\n * The for/in loop, Object.keys(), and Object.getOwnPropertyNames(),\n * as well as some proposed ES6 extensions that appear on our\n * whitelist. The first two only discover enumerable properties, and\n * we only use HIDDEN_NAME to name a non-enumerable property, so the\n * only remaining threat should be getOwnPropertyNames and some\n * proposed ES6 extensions that appear on our whitelist. We monkey\n * patch them to remove HIDDEN_NAME from the list of properties they\n * returns.\n *\n *

TODO(erights): On a platform with built-in Proxies, proxies\n * could be used to trap and thereby discover the HIDDEN_NAME, so we\n * need to monkey patch Proxy.create, Proxy.createFunction, etc, in\n * order to wrap the provided handler with the real handler which\n * filters out all traps using HIDDEN_NAME.\n *\n *

TODO(erights): Revisit Mike Stay's suggestion that we use an\n * encapsulated function at a not-necessarily-secret name, which\n * uses the Stiegler shared-state rights amplification pattern to\n * reveal the associated value only to the WeakMap in which this key\n * is associated with that value. Since only the key retains the\n * function, the function can also remember the key without causing\n * leakage of the key, so this doesn't violate our general gc\n * goals. In addition, because the name need not be a guarded\n * secret, we could efficiently handle cross-frame frozen keys.\n */\n var HIDDEN_NAME_PREFIX = 'weakmap:';\n var HIDDEN_NAME = HIDDEN_NAME_PREFIX + 'ident:' + Math.random() + '___';\n\n if (typeof crypto !== 'undefined' &&\n typeof crypto.getRandomValues === 'function' &&\n typeof ArrayBuffer === 'function' &&\n typeof Uint8Array === 'function') {\n var ab = new ArrayBuffer(25);\n var u8s = new Uint8Array(ab);\n crypto.getRandomValues(u8s);\n HIDDEN_NAME = HIDDEN_NAME_PREFIX + 'rand:' +\n Array.prototype.map.call(u8s, function(u8) {\n return (u8 % 36).toString(36);\n }).join('') + '___';\n }\n\n function isNotHiddenName(name) {\n return !(\n name.substr(0, HIDDEN_NAME_PREFIX.length) == HIDDEN_NAME_PREFIX &&\n name.substr(name.length - 3) === '___');\n }\n\n /**\n * Monkey patch getOwnPropertyNames to avoid revealing the\n * HIDDEN_NAME.\n *\n *

The ES5.1 spec requires each name to appear only once, but as\n * of this writing, this requirement is controversial for ES6, so we\n * made this code robust against this case. If the resulting extra\n * search turns out to be expensive, we can probably relax this once\n * ES6 is adequately supported on all major browsers, iff no browser\n * versions we support at that time have relaxed this constraint\n * without providing built-in ES6 WeakMaps.\n */\n defProp(Object, 'getOwnPropertyNames', {\n value: function fakeGetOwnPropertyNames(obj) {\n return gopn(obj).filter(isNotHiddenName);\n }\n });\n\n /**\n * getPropertyNames is not in ES5 but it is proposed for ES6 and\n * does appear in our whitelist, so we need to clean it too.\n */\n if ('getPropertyNames' in Object) {\n var originalGetPropertyNames = Object.getPropertyNames;\n defProp(Object, 'getPropertyNames', {\n value: function fakeGetPropertyNames(obj) {\n return originalGetPropertyNames(obj).filter(isNotHiddenName);\n }\n });\n }\n\n /**\n *

To treat objects as identity-keys with reasonable efficiency\n * on ES5 by itself (i.e., without any object-keyed collections), we\n * need to add a hidden property to such key objects when we\n * can. This raises several issues:\n *

    \n *
  • Arranging to add this property to objects before we lose the\n * chance, and\n *
  • Hiding the existence of this new property from most\n * JavaScript code.\n *
  • Preventing certification theft, where one object is\n * created falsely claiming to be the key of an association\n * actually keyed by another object.\n *
  • Preventing value theft, where untrusted code with\n * access to a key object but not a weak map nevertheless\n * obtains access to the value associated with that key in that\n * weak map.\n *
\n * We do so by\n *
    \n *
  • Making the name of the hidden property unguessable, so \"[]\"\n * indexing, which we cannot intercept, cannot be used to access\n * a property without knowing the name.\n *
  • Making the hidden property non-enumerable, so we need not\n * worry about for-in loops or {@code Object.keys},\n *
  • monkey patching those reflective methods that would\n * prevent extensions, to add this hidden property first,\n *
  • monkey patching those methods that would reveal this\n * hidden property.\n *
\n * Unfortunately, because of same-origin iframes, we cannot reliably\n * add this hidden property before an object becomes\n * non-extensible. Instead, if we encounter a non-extensible object\n * without a hidden record that we can detect (whether or not it has\n * a hidden record stored under a name secret to us), then we just\n * use the key object itself to represent its identity in a brute\n * force leaky map stored in the weak map, losing all the advantages\n * of weakness for these.\n */\n function getHiddenRecord(key) {\n if (key !== Object(key)) {\n throw new TypeError('Not an object: ' + key);\n }\n var hiddenRecord = key[HIDDEN_NAME];\n if (hiddenRecord && hiddenRecord.key === key) { return hiddenRecord; }\n if (!isExtensible(key)) {\n // Weak map must brute force, as explained in doc-comment above.\n return void 0;\n }\n\n // The hiddenRecord and the key point directly at each other, via\n // the \"key\" and HIDDEN_NAME properties respectively. The key\n // field is for quickly verifying that this hidden record is an\n // own property, not a hidden record from up the prototype chain.\n //\n // NOTE: Because this WeakMap emulation is meant only for systems like\n // SES where Object.prototype is frozen without any numeric\n // properties, it is ok to use an object literal for the hiddenRecord.\n // This has two advantages:\n // * It is much faster in a performance critical place\n // * It avoids relying on Object.create(null), which had been\n // problematic on Chrome 28.0.1480.0. See\n // https://code.google.com/p/google-caja/issues/detail?id=1687\n hiddenRecord = { key: key };\n\n // When using this WeakMap emulation on platforms where\n // Object.prototype might not be frozen and Object.create(null) is\n // reliable, use the following two commented out lines instead.\n // hiddenRecord = Object.create(null);\n // hiddenRecord.key = key;\n\n // Please contact us if you need this to work on platforms where\n // Object.prototype might not be frozen and\n // Object.create(null) might not be reliable.\n\n try {\n defProp(key, HIDDEN_NAME, {\n value: hiddenRecord,\n writable: false,\n enumerable: false,\n configurable: false\n });\n return hiddenRecord;\n } catch (error) {\n // Under some circumstances, isExtensible seems to misreport whether\n // the HIDDEN_NAME can be defined.\n // The circumstances have not been isolated, but at least affect\n // Node.js v0.10.26 on TravisCI / Linux, but not the same version of\n // Node.js on OS X.\n return void 0;\n }\n }\n\n /**\n * Monkey patch operations that would make their argument\n * non-extensible.\n *\n *

The monkey patched versions throw a TypeError if their\n * argument is not an object, so it should only be done to functions\n * that should throw a TypeError anyway if their argument is not an\n * object.\n */\n (function(){\n var oldFreeze = Object.freeze;\n defProp(Object, 'freeze', {\n value: function identifyingFreeze(obj) {\n getHiddenRecord(obj);\n return oldFreeze(obj);\n }\n });\n var oldSeal = Object.seal;\n defProp(Object, 'seal', {\n value: function identifyingSeal(obj) {\n getHiddenRecord(obj);\n return oldSeal(obj);\n }\n });\n var oldPreventExtensions = Object.preventExtensions;\n defProp(Object, 'preventExtensions', {\n value: function identifyingPreventExtensions(obj) {\n getHiddenRecord(obj);\n return oldPreventExtensions(obj);\n }\n });\n })();\n\n function constFunc(func) {\n func.prototype = null;\n return Object.freeze(func);\n }\n\n var calledAsFunctionWarningDone = false;\n function calledAsFunctionWarning() {\n // Future ES6 WeakMap is currently (2013-09-10) expected to reject WeakMap()\n // but we used to permit it and do it ourselves, so warn only.\n if (!calledAsFunctionWarningDone && typeof console !== 'undefined') {\n calledAsFunctionWarningDone = true;\n console.warn('WeakMap should be invoked as new WeakMap(), not ' +\n 'WeakMap(). This will be an error in the future.');\n }\n }\n\n var nextId = 0;\n\n var OurWeakMap = function() {\n if (!(this instanceof OurWeakMap)) { // approximate test for new ...()\n calledAsFunctionWarning();\n }\n\n // We are currently (12/25/2012) never encountering any prematurely\n // non-extensible keys.\n var keys = []; // brute force for prematurely non-extensible keys.\n var values = []; // brute force for corresponding values.\n var id = nextId++;\n\n function get___(key, opt_default) {\n var index;\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n return id in hiddenRecord ? hiddenRecord[id] : opt_default;\n } else {\n index = keys.indexOf(key);\n return index >= 0 ? values[index] : opt_default;\n }\n }\n\n function has___(key) {\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n return id in hiddenRecord;\n } else {\n return keys.indexOf(key) >= 0;\n }\n }\n\n function set___(key, value) {\n var index;\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n hiddenRecord[id] = value;\n } else {\n index = keys.indexOf(key);\n if (index >= 0) {\n values[index] = value;\n } else {\n // Since some browsers preemptively terminate slow turns but\n // then continue computing with presumably corrupted heap\n // state, we here defensively get keys.length first and then\n // use it to update both the values and keys arrays, keeping\n // them in sync.\n index = keys.length;\n values[index] = value;\n // If we crash here, values will be one longer than keys.\n keys[index] = key;\n }\n }\n return this;\n }\n\n function delete___(key) {\n var hiddenRecord = getHiddenRecord(key);\n var index, lastIndex;\n if (hiddenRecord) {\n return id in hiddenRecord && delete hiddenRecord[id];\n } else {\n index = keys.indexOf(key);\n if (index < 0) {\n return false;\n }\n // Since some browsers preemptively terminate slow turns but\n // then continue computing with potentially corrupted heap\n // state, we here defensively get keys.length first and then use\n // it to update both the keys and the values array, keeping\n // them in sync. We update the two with an order of assignments,\n // such that any prefix of these assignments will preserve the\n // key/value correspondence, either before or after the delete.\n // Note that this needs to work correctly when index === lastIndex.\n lastIndex = keys.length - 1;\n keys[index] = void 0;\n // If we crash here, there's a void 0 in the keys array, but\n // no operation will cause a \"keys.indexOf(void 0)\", since\n // getHiddenRecord(void 0) will always throw an error first.\n values[index] = values[lastIndex];\n // If we crash here, values[index] cannot be found here,\n // because keys[index] is void 0.\n keys[index] = keys[lastIndex];\n // If index === lastIndex and we crash here, then keys[index]\n // is still void 0, since the aliasing killed the previous key.\n keys.length = lastIndex;\n // If we crash here, keys will be one shorter than values.\n values.length = lastIndex;\n return true;\n }\n }\n\n return Object.create(OurWeakMap.prototype, {\n get___: { value: constFunc(get___) },\n has___: { value: constFunc(has___) },\n set___: { value: constFunc(set___) },\n delete___: { value: constFunc(delete___) }\n });\n };\n\n OurWeakMap.prototype = Object.create(Object.prototype, {\n get: {\n /**\n * Return the value most recently associated with key, or\n * opt_default if none.\n */\n value: function get(key, opt_default) {\n return this.get___(key, opt_default);\n },\n writable: true,\n configurable: true\n },\n\n has: {\n /**\n * Is there a value associated with key in this WeakMap?\n */\n value: function has(key) {\n return this.has___(key);\n },\n writable: true,\n configurable: true\n },\n\n set: {\n /**\n * Associate value with key in this WeakMap, overwriting any\n * previous association if present.\n */\n value: function set(key, value) {\n return this.set___(key, value);\n },\n writable: true,\n configurable: true\n },\n\n 'delete': {\n /**\n * Remove any association for key in this WeakMap, returning\n * whether there was one.\n *\n *

Note that the boolean return here does not work like the\n * {@code delete} operator. The {@code delete} operator returns\n * whether the deletion succeeds at bringing about a state in\n * which the deleted property is absent. The {@code delete}\n * operator therefore returns true if the property was already\n * absent, whereas this {@code delete} method returns false if\n * the association was already absent.\n */\n value: function remove(key) {\n return this.delete___(key);\n },\n writable: true,\n configurable: true\n }\n });\n\n if (typeof HostWeakMap === 'function') {\n (function() {\n // If we got here, then the platform has a WeakMap but we are concerned\n // that it may refuse to store some key types. Therefore, make a map\n // implementation which makes use of both as possible.\n\n // In this mode we are always using double maps, so we are not proxy-safe.\n // This combination does not occur in any known browser, but we had best\n // be safe.\n if (doubleWeakMapCheckSilentFailure && typeof Proxy !== 'undefined') {\n Proxy = undefined;\n }\n\n function DoubleWeakMap() {\n if (!(this instanceof OurWeakMap)) { // approximate test for new ...()\n calledAsFunctionWarning();\n }\n\n // Preferable, truly weak map.\n var hmap = new HostWeakMap();\n\n // Our hidden-property-based pseudo-weak-map. Lazily initialized in the\n // 'set' implementation; thus we can avoid performing extra lookups if\n // we know all entries actually stored are entered in 'hmap'.\n var omap = undefined;\n\n // Hidden-property maps are not compatible with proxies because proxies\n // can observe the hidden name and either accidentally expose it or fail\n // to allow the hidden property to be set. Therefore, we do not allow\n // arbitrary WeakMaps to switch to using hidden properties, but only\n // those which need the ability, and unprivileged code is not allowed\n // to set the flag.\n //\n // (Except in doubleWeakMapCheckSilentFailure mode in which case we\n // disable proxies.)\n var enableSwitching = false;\n\n function dget(key, opt_default) {\n if (omap) {\n return hmap.has(key) ? hmap.get(key)\n : omap.get___(key, opt_default);\n } else {\n return hmap.get(key, opt_default);\n }\n }\n\n function dhas(key) {\n return hmap.has(key) || (omap ? omap.has___(key) : false);\n }\n\n var dset;\n if (doubleWeakMapCheckSilentFailure) {\n dset = function(key, value) {\n hmap.set(key, value);\n if (!hmap.has(key)) {\n if (!omap) { omap = new OurWeakMap(); }\n omap.set(key, value);\n }\n return this;\n };\n } else {\n dset = function(key, value) {\n if (enableSwitching) {\n try {\n hmap.set(key, value);\n } catch (e) {\n if (!omap) { omap = new OurWeakMap(); }\n omap.set___(key, value);\n }\n } else {\n hmap.set(key, value);\n }\n return this;\n };\n }\n\n function ddelete(key) {\n var result = !!hmap['delete'](key);\n if (omap) { return omap.delete___(key) || result; }\n return result;\n }\n\n return Object.create(OurWeakMap.prototype, {\n get___: { value: constFunc(dget) },\n has___: { value: constFunc(dhas) },\n set___: { value: constFunc(dset) },\n delete___: { value: constFunc(ddelete) },\n permitHostObjects___: { value: constFunc(function(token) {\n if (token === weakMapPermitHostObjects) {\n enableSwitching = true;\n } else {\n throw new Error('bogus call to permitHostObjects___');\n }\n })}\n });\n }\n DoubleWeakMap.prototype = OurWeakMap.prototype;\n module.exports = DoubleWeakMap;\n\n // define .constructor to hide OurWeakMap ctor\n Object.defineProperty(WeakMap.prototype, 'constructor', {\n value: WeakMap,\n enumerable: false, // as default .constructor is\n configurable: true,\n writable: true\n });\n })();\n } else {\n // There is no host WeakMap, so we must use the emulation.\n\n // Emulated WeakMaps are incompatible with native proxies (because proxies\n // can observe the hidden name), so we must disable Proxy usage (in\n // ArrayLike and Domado, currently).\n if (typeof Proxy !== 'undefined') {\n Proxy = undefined;\n }\n\n module.exports = OurWeakMap;\n }\n})();\n\n\n/***/ }),\n\n/***/ \"2f68\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"f1c3\");\n\n\n/***/ }),\n\n/***/ \"2ff0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar colorscaleDefaults = __webpack_require__(\"4183\");\nvar attributes = __webpack_require__(\"02ea\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n var i, j;\n\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var x = coerce('x');\n var y = coerce('y');\n\n var z = coerce('z');\n if(!z || !z.length ||\n (x ? (x.length < 1) : false) ||\n (y ? (y.length < 1) : false)\n ) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._xlength = (Array.isArray(x) && Lib.isArrayOrTypedArray(x[0])) ? z.length : z[0].length;\n traceOut._ylength = z.length;\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x', 'y', 'z'], layout);\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n // Coerce remaining properties\n [\n 'lighting.ambient',\n 'lighting.diffuse',\n 'lighting.specular',\n 'lighting.roughness',\n 'lighting.fresnel',\n 'lightposition.x',\n 'lightposition.y',\n 'lightposition.z',\n 'hidesurface',\n 'connectgaps',\n 'opacity'\n ].forEach(function(x) { coerce(x); });\n\n var surfaceColor = coerce('surfacecolor');\n\n var dims = ['x', 'y', 'z'];\n for(i = 0; i < 3; ++i) {\n var contourDim = 'contours.' + dims[i];\n var show = coerce(contourDim + '.show');\n var highlight = coerce(contourDim + '.highlight');\n\n if(show || highlight) {\n for(j = 0; j < 3; ++j) {\n coerce(contourDim + '.project.' + dims[j]);\n }\n }\n\n if(show) {\n coerce(contourDim + '.color');\n coerce(contourDim + '.width');\n coerce(contourDim + '.usecolormap');\n }\n\n if(highlight) {\n coerce(contourDim + '.highlightcolor');\n coerce(contourDim + '.highlightwidth');\n }\n\n coerce(contourDim + '.start');\n coerce(contourDim + '.end');\n coerce(contourDim + '.size');\n }\n\n // backward compatibility block\n if(!surfaceColor) {\n mapLegacy(traceIn, 'zmin', 'cmin');\n mapLegacy(traceIn, 'zmax', 'cmax');\n mapLegacy(traceIn, 'zauto', 'cauto');\n }\n\n // TODO if contours.?.usecolormap are false and hidesurface is true\n // the colorbar shouldn't be shown by default\n\n colorscaleDefaults(\n traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'}\n );\n\n // disable 1D transforms - currently surface does NOT support column data like heatmap does\n // you can use mesh3d for this use case, but not surface\n traceOut._length = null;\n};\n\nfunction mapLegacy(traceIn, oldAttr, newAttr) {\n if(oldAttr in traceIn && !(newAttr in traceIn)) {\n traceIn[newAttr] = traceIn[oldAttr];\n }\n}\n\n\n/***/ }),\n\n/***/ \"3022\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = Object({\"NODE_ENV\":\"production\",\"BASE_URL\":\"\"}).NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = __webpack_require__(\"d60a\");\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = __webpack_require__(\"28a0\");\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"4362\")))\n\n/***/ }),\n\n/***/ \"3029\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = solveIntersection\n\nvar ratMul = __webpack_require__(\"3bd6\")\nvar ratDiv = __webpack_require__(\"18a2\")\nvar ratSub = __webpack_require__(\"9c7c\")\nvar ratSign = __webpack_require__(\"3dac\")\nvar rvSub = __webpack_require__(\"66ac\")\nvar rvAdd = __webpack_require__(\"e56e\")\nvar rvMuls = __webpack_require__(\"093d\")\n\nfunction ratPerp (a, b) {\n return ratSub(ratMul(a[0], b[1]), ratMul(a[1], b[0]))\n}\n\n// Solve for intersection\n// x = a + t (b-a)\n// (x - c) ^ (d-c) = 0\n// (t * (b-a) + (a-c) ) ^ (d-c) = 0\n// t * (b-a)^(d-c) = (d-c)^(a-c)\n// t = (d-c)^(a-c) / (b-a)^(d-c)\n\nfunction solveIntersection (a, b, c, d) {\n var ba = rvSub(b, a)\n var dc = rvSub(d, c)\n\n var baXdc = ratPerp(ba, dc)\n\n if (ratSign(baXdc) === 0) {\n return null\n }\n\n var ac = rvSub(a, c)\n var dcXac = ratPerp(dc, ac)\n\n var t = ratDiv(dcXac, baXdc)\n var s = rvMuls(ba, t)\n var r = rvAdd(a, s)\n\n return r\n}\n\n\n/***/ }),\n\n/***/ \"3044\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar heatmapAttrs = __webpack_require__(\"0435\");\nvar contourAttrs = __webpack_require__(\"43ef\");\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nvar contourContourAttrs = contourAttrs.contours;\n\nmodule.exports = extendFlat({\n carpet: {\n valType: 'string',\n \n editType: 'calc',\n \n },\n z: heatmapAttrs.z,\n a: heatmapAttrs.x,\n a0: heatmapAttrs.x0,\n da: heatmapAttrs.dx,\n b: heatmapAttrs.y,\n b0: heatmapAttrs.y0,\n db: heatmapAttrs.dy,\n text: heatmapAttrs.text,\n hovertext: heatmapAttrs.hovertext,\n transpose: heatmapAttrs.transpose,\n atype: heatmapAttrs.xtype,\n btype: heatmapAttrs.ytype,\n\n fillcolor: contourAttrs.fillcolor,\n\n autocontour: contourAttrs.autocontour,\n ncontours: contourAttrs.ncontours,\n\n contours: {\n type: contourContourAttrs.type,\n start: contourContourAttrs.start,\n end: contourContourAttrs.end,\n size: contourContourAttrs.size,\n coloring: {\n // from contourAttrs.contours.coloring but no 'heatmap' option\n valType: 'enumerated',\n values: ['fill', 'lines', 'none'],\n dflt: 'fill',\n \n editType: 'calc',\n \n },\n showlines: contourContourAttrs.showlines,\n showlabels: contourContourAttrs.showlabels,\n labelfont: contourContourAttrs.labelfont,\n labelformat: contourContourAttrs.labelformat,\n operation: contourContourAttrs.operation,\n value: contourContourAttrs.value,\n editType: 'calc',\n impliedEdits: {'autocontour': false}\n },\n\n line: {\n color: contourAttrs.line.color,\n width: contourAttrs.line.width,\n dash: contourAttrs.line.dash,\n smoothing: contourAttrs.line.smoothing,\n editType: 'plot'\n },\n\n transforms: undefined\n},\n\n colorScaleAttrs('', {\n cLetter: 'z',\n autoColorDflt: false\n })\n);\n\n\n/***/ }),\n\n/***/ \"3068\":\n/***/ (function(module, exports) {\n\nvar reg = /[\\'\\\"]/\n\nmodule.exports = function unquote(str) {\n if (!str) {\n return ''\n }\n if (reg.test(str.charAt(0))) {\n str = str.substr(1)\n }\n if (reg.test(str.charAt(str.length - 1))) {\n str = str.substr(0, str.length - 1)\n }\n return str\n}\n\n\n/***/ }),\n\n/***/ \"306c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n// Simple helper functions\n// none of these need any external deps\n\nmodule.exports = function identity(d) { return d; };\n\n\n/***/ }),\n\n/***/ \"3122\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = compareAngle\n\nvar orient = __webpack_require__(\"92ba\")\nvar sgn = __webpack_require__(\"79d9\")\nvar twoSum = __webpack_require__(\"d1bd\")\nvar robustProduct = __webpack_require__(\"91e1\")\nvar robustSum = __webpack_require__(\"a026\")\n\nfunction testInterior(a, b, c) {\n var x0 = twoSum(a[0], -b[0])\n var y0 = twoSum(a[1], -b[1])\n var x1 = twoSum(c[0], -b[0])\n var y1 = twoSum(c[1], -b[1])\n\n var d = robustSum(\n robustProduct(x0, x1),\n robustProduct(y0, y1))\n\n return d[d.length-1] >= 0\n}\n\nfunction compareAngle(a, b, c, d) {\n var bcd = orient(b, c, d)\n if(bcd === 0) {\n //Handle degenerate cases\n var sabc = sgn(orient(a, b, c))\n var sabd = sgn(orient(a, b, d))\n if(sabc === sabd) {\n if(sabc === 0) {\n var ic = testInterior(a, b, c)\n var id = testInterior(a, b, d)\n if(ic === id) {\n return 0\n } else if(ic) {\n return 1\n } else {\n return -1\n }\n }\n return 0\n } else if(sabd === 0) {\n if(sabc > 0) {\n return -1\n } else if(testInterior(a, b, d)) {\n return -1\n } else {\n return 1\n }\n } else if(sabc === 0) {\n if(sabd > 0) {\n return 1\n } else if(testInterior(a, b, c)) {\n return 1\n } else {\n return -1\n }\n }\n return sgn(sabd - sabc)\n }\n var abc = orient(a, b, c)\n if(abc > 0) {\n if(bcd > 0 && orient(a, b, d) > 0) {\n return 1\n }\n return -1\n } else if(abc < 0) {\n if(bcd > 0 || orient(a, b, d) > 0) {\n return 1\n }\n return -1\n } else {\n var abd = orient(a, b, d)\n if(abd > 0) {\n return 1\n } else {\n if(testInterior(a, b, c)) {\n return 1\n } else {\n return -1\n }\n }\n }\n}\n\n/***/ }),\n\n/***/ \"3146\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createBackgroundCube\n\nvar createBuffer = __webpack_require__(\"efce\")\nvar createVAO = __webpack_require__(\"b205\")\nvar createShader = __webpack_require__(\"c185\").bg\n\nfunction BackgroundCube(gl, buffer, vao, shader) {\n this.gl = gl\n this.buffer = buffer\n this.vao = vao\n this.shader = shader\n}\n\nvar proto = BackgroundCube.prototype\n\nproto.draw = function(model, view, projection, bounds, enable, colors) {\n var needsBG = false\n for(var i=0; i<3; ++i) {\n needsBG = needsBG || enable[i]\n }\n if(!needsBG) {\n return\n }\n\n var gl = this.gl\n\n gl.enable(gl.POLYGON_OFFSET_FILL)\n gl.polygonOffset(1, 2)\n\n this.shader.bind()\n this.shader.uniforms = {\n model: model,\n view: view,\n projection: projection,\n bounds: bounds,\n enable: enable,\n colors: colors\n }\n this.vao.bind()\n this.vao.draw(this.gl.TRIANGLES, 36)\n this.vao.unbind()\n\n gl.disable(gl.POLYGON_OFFSET_FILL)\n}\n\nproto.dispose = function() {\n this.vao.dispose()\n this.buffer.dispose()\n this.shader.dispose()\n}\n\nfunction createBackgroundCube(gl) {\n //Create cube vertices\n var vertices = []\n var indices = []\n var ptr = 0\n for(var d=0; d<3; ++d) {\n var u = (d+1) % 3\n var v = (d+2) % 3\n var x = [0,0,0]\n var c = [0,0,0]\n for(var s=-1; s<=1; s+=2) {\n indices.push(ptr, ptr+2, ptr+1,\n ptr+1, ptr+2, ptr+3)\n x[d] = s\n c[d] = s\n for(var i=-1; i<=1; i+=2) {\n x[u] = i\n for(var j=-1; j<=1; j+=2) {\n x[v] = j\n vertices.push(x[0], x[1], x[2],\n c[0], c[1], c[2])\n ptr += 1\n }\n }\n //Swap u and v\n var tt = u\n u = v\n v = tt\n }\n }\n\n //Allocate buffer and vertex array\n var buffer = createBuffer(gl, new Float32Array(vertices))\n var elements = createBuffer(gl, new Uint16Array(indices), gl.ELEMENT_ARRAY_BUFFER)\n var vao = createVAO(gl, [\n {\n buffer: buffer,\n type: gl.FLOAT,\n size: 3,\n offset: 0,\n stride: 24\n },\n {\n buffer: buffer,\n type: gl.FLOAT,\n size: 3,\n offset: 12,\n stride: 24\n }\n ], elements)\n\n //Create shader object\n var shader = createShader(gl)\n shader.attributes.position.location = 0\n shader.attributes.normal.location = 1\n\n return new BackgroundCube(gl, buffer, vao, shader)\n}\n\n\n/***/ }),\n\n/***/ \"320c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n/***/ }),\n\n/***/ \"3273\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar drawModule = __webpack_require__(\"236d\");\n\nmodule.exports = {\n moduleType: 'component',\n name: 'shapes',\n\n layoutAttributes: __webpack_require__(\"a5cc\"),\n supplyLayoutDefaults: __webpack_require__(\"567e\"),\n includeBasePlot: __webpack_require__(\"37d1\")('shapes'),\n\n calcAutorange: __webpack_require__(\"cef0\"),\n draw: drawModule.draw,\n drawOne: drawModule.drawOne\n};\n\n\n/***/ }),\n\n/***/ \"3350\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\n\n/** Marker symbol definitions\n * users can specify markers either by number or name\n * add 100 (or '-open') and you get an open marker\n * open markers have no fill and use line color as the stroke color\n * add 200 (or '-dot') and you get a dot in the middle\n * add both and you get both\n */\n\nmodule.exports = {\n circle: {\n n: 0,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M' + rs + ',0A' + rs + ',' + rs + ' 0 1,1 0,-' + rs +\n 'A' + rs + ',' + rs + ' 0 0,1 ' + rs + ',0Z';\n }\n },\n square: {\n n: 1,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M' + rs + ',' + rs + 'H-' + rs + 'V-' + rs + 'H' + rs + 'Z';\n }\n },\n diamond: {\n n: 2,\n f: function(r) {\n var rd = d3.round(r * 1.3, 2);\n return 'M' + rd + ',0L0,' + rd + 'L-' + rd + ',0L0,-' + rd + 'Z';\n }\n },\n cross: {\n n: 3,\n f: function(r) {\n var rc = d3.round(r * 0.4, 2);\n var rc2 = d3.round(r * 1.2, 2);\n return 'M' + rc2 + ',' + rc + 'H' + rc + 'V' + rc2 + 'H-' + rc +\n 'V' + rc + 'H-' + rc2 + 'V-' + rc + 'H-' + rc + 'V-' + rc2 +\n 'H' + rc + 'V-' + rc + 'H' + rc2 + 'Z';\n }\n },\n x: {\n n: 4,\n f: function(r) {\n var rx = d3.round(r * 0.8 / Math.sqrt(2), 2);\n var ne = 'l' + rx + ',' + rx;\n var se = 'l' + rx + ',-' + rx;\n var sw = 'l-' + rx + ',-' + rx;\n var nw = 'l-' + rx + ',' + rx;\n return 'M0,' + rx + ne + se + sw + se + sw + nw + sw + nw + ne + nw + ne + 'Z';\n }\n },\n 'triangle-up': {\n n: 5,\n f: function(r) {\n var rt = d3.round(r * 2 / Math.sqrt(3), 2);\n var r2 = d3.round(r / 2, 2);\n var rs = d3.round(r, 2);\n return 'M-' + rt + ',' + r2 + 'H' + rt + 'L0,-' + rs + 'Z';\n }\n },\n 'triangle-down': {\n n: 6,\n f: function(r) {\n var rt = d3.round(r * 2 / Math.sqrt(3), 2);\n var r2 = d3.round(r / 2, 2);\n var rs = d3.round(r, 2);\n return 'M-' + rt + ',-' + r2 + 'H' + rt + 'L0,' + rs + 'Z';\n }\n },\n 'triangle-left': {\n n: 7,\n f: function(r) {\n var rt = d3.round(r * 2 / Math.sqrt(3), 2);\n var r2 = d3.round(r / 2, 2);\n var rs = d3.round(r, 2);\n return 'M' + r2 + ',-' + rt + 'V' + rt + 'L-' + rs + ',0Z';\n }\n },\n 'triangle-right': {\n n: 8,\n f: function(r) {\n var rt = d3.round(r * 2 / Math.sqrt(3), 2);\n var r2 = d3.round(r / 2, 2);\n var rs = d3.round(r, 2);\n return 'M-' + r2 + ',-' + rt + 'V' + rt + 'L' + rs + ',0Z';\n }\n },\n 'triangle-ne': {\n n: 9,\n f: function(r) {\n var r1 = d3.round(r * 0.6, 2);\n var r2 = d3.round(r * 1.2, 2);\n return 'M-' + r2 + ',-' + r1 + 'H' + r1 + 'V' + r2 + 'Z';\n }\n },\n 'triangle-se': {\n n: 10,\n f: function(r) {\n var r1 = d3.round(r * 0.6, 2);\n var r2 = d3.round(r * 1.2, 2);\n return 'M' + r1 + ',-' + r2 + 'V' + r1 + 'H-' + r2 + 'Z';\n }\n },\n 'triangle-sw': {\n n: 11,\n f: function(r) {\n var r1 = d3.round(r * 0.6, 2);\n var r2 = d3.round(r * 1.2, 2);\n return 'M' + r2 + ',' + r1 + 'H-' + r1 + 'V-' + r2 + 'Z';\n }\n },\n 'triangle-nw': {\n n: 12,\n f: function(r) {\n var r1 = d3.round(r * 0.6, 2);\n var r2 = d3.round(r * 1.2, 2);\n return 'M-' + r1 + ',' + r2 + 'V-' + r1 + 'H' + r2 + 'Z';\n }\n },\n pentagon: {\n n: 13,\n f: function(r) {\n var x1 = d3.round(r * 0.951, 2);\n var x2 = d3.round(r * 0.588, 2);\n var y0 = d3.round(-r, 2);\n var y1 = d3.round(r * -0.309, 2);\n var y2 = d3.round(r * 0.809, 2);\n return 'M' + x1 + ',' + y1 + 'L' + x2 + ',' + y2 + 'H-' + x2 +\n 'L-' + x1 + ',' + y1 + 'L0,' + y0 + 'Z';\n }\n },\n hexagon: {\n n: 14,\n f: function(r) {\n var y0 = d3.round(r, 2);\n var y1 = d3.round(r / 2, 2);\n var x = d3.round(r * Math.sqrt(3) / 2, 2);\n return 'M' + x + ',-' + y1 + 'V' + y1 + 'L0,' + y0 +\n 'L-' + x + ',' + y1 + 'V-' + y1 + 'L0,-' + y0 + 'Z';\n }\n },\n hexagon2: {\n n: 15,\n f: function(r) {\n var x0 = d3.round(r, 2);\n var x1 = d3.round(r / 2, 2);\n var y = d3.round(r * Math.sqrt(3) / 2, 2);\n return 'M-' + x1 + ',' + y + 'H' + x1 + 'L' + x0 +\n ',0L' + x1 + ',-' + y + 'H-' + x1 + 'L-' + x0 + ',0Z';\n }\n },\n octagon: {\n n: 16,\n f: function(r) {\n var a = d3.round(r * 0.924, 2);\n var b = d3.round(r * 0.383, 2);\n return 'M-' + b + ',-' + a + 'H' + b + 'L' + a + ',-' + b + 'V' + b +\n 'L' + b + ',' + a + 'H-' + b + 'L-' + a + ',' + b + 'V-' + b + 'Z';\n }\n },\n star: {\n n: 17,\n f: function(r) {\n var rs = r * 1.4;\n var x1 = d3.round(rs * 0.225, 2);\n var x2 = d3.round(rs * 0.951, 2);\n var x3 = d3.round(rs * 0.363, 2);\n var x4 = d3.round(rs * 0.588, 2);\n var y0 = d3.round(-rs, 2);\n var y1 = d3.round(rs * -0.309, 2);\n var y3 = d3.round(rs * 0.118, 2);\n var y4 = d3.round(rs * 0.809, 2);\n var y5 = d3.round(rs * 0.382, 2);\n return 'M' + x1 + ',' + y1 + 'H' + x2 + 'L' + x3 + ',' + y3 +\n 'L' + x4 + ',' + y4 + 'L0,' + y5 + 'L-' + x4 + ',' + y4 +\n 'L-' + x3 + ',' + y3 + 'L-' + x2 + ',' + y1 + 'H-' + x1 +\n 'L0,' + y0 + 'Z';\n }\n },\n hexagram: {\n n: 18,\n f: function(r) {\n var y = d3.round(r * 0.66, 2);\n var x1 = d3.round(r * 0.38, 2);\n var x2 = d3.round(r * 0.76, 2);\n return 'M-' + x2 + ',0l-' + x1 + ',-' + y + 'h' + x2 +\n 'l' + x1 + ',-' + y + 'l' + x1 + ',' + y + 'h' + x2 +\n 'l-' + x1 + ',' + y + 'l' + x1 + ',' + y + 'h-' + x2 +\n 'l-' + x1 + ',' + y + 'l-' + x1 + ',-' + y + 'h-' + x2 + 'Z';\n }\n },\n 'star-triangle-up': {\n n: 19,\n f: function(r) {\n var x = d3.round(r * Math.sqrt(3) * 0.8, 2);\n var y1 = d3.round(r * 0.8, 2);\n var y2 = d3.round(r * 1.6, 2);\n var rc = d3.round(r * 4, 2);\n var aPart = 'A ' + rc + ',' + rc + ' 0 0 1 ';\n return 'M-' + x + ',' + y1 + aPart + x + ',' + y1 +\n aPart + '0,-' + y2 + aPart + '-' + x + ',' + y1 + 'Z';\n }\n },\n 'star-triangle-down': {\n n: 20,\n f: function(r) {\n var x = d3.round(r * Math.sqrt(3) * 0.8, 2);\n var y1 = d3.round(r * 0.8, 2);\n var y2 = d3.round(r * 1.6, 2);\n var rc = d3.round(r * 4, 2);\n var aPart = 'A ' + rc + ',' + rc + ' 0 0 1 ';\n return 'M' + x + ',-' + y1 + aPart + '-' + x + ',-' + y1 +\n aPart + '0,' + y2 + aPart + x + ',-' + y1 + 'Z';\n }\n },\n 'star-square': {\n n: 21,\n f: function(r) {\n var rp = d3.round(r * 1.1, 2);\n var rc = d3.round(r * 2, 2);\n var aPart = 'A ' + rc + ',' + rc + ' 0 0 1 ';\n return 'M-' + rp + ',-' + rp + aPart + '-' + rp + ',' + rp +\n aPart + rp + ',' + rp + aPart + rp + ',-' + rp +\n aPart + '-' + rp + ',-' + rp + 'Z';\n }\n },\n 'star-diamond': {\n n: 22,\n f: function(r) {\n var rp = d3.round(r * 1.4, 2);\n var rc = d3.round(r * 1.9, 2);\n var aPart = 'A ' + rc + ',' + rc + ' 0 0 1 ';\n return 'M-' + rp + ',0' + aPart + '0,' + rp +\n aPart + rp + ',0' + aPart + '0,-' + rp +\n aPart + '-' + rp + ',0' + 'Z';\n }\n },\n 'diamond-tall': {\n n: 23,\n f: function(r) {\n var x = d3.round(r * 0.7, 2);\n var y = d3.round(r * 1.4, 2);\n return 'M0,' + y + 'L' + x + ',0L0,-' + y + 'L-' + x + ',0Z';\n }\n },\n 'diamond-wide': {\n n: 24,\n f: function(r) {\n var x = d3.round(r * 1.4, 2);\n var y = d3.round(r * 0.7, 2);\n return 'M0,' + y + 'L' + x + ',0L0,-' + y + 'L-' + x + ',0Z';\n }\n },\n hourglass: {\n n: 25,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M' + rs + ',' + rs + 'H-' + rs + 'L' + rs + ',-' + rs + 'H-' + rs + 'Z';\n },\n noDot: true\n },\n bowtie: {\n n: 26,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M' + rs + ',' + rs + 'V-' + rs + 'L-' + rs + ',' + rs + 'V-' + rs + 'Z';\n },\n noDot: true\n },\n 'circle-cross': {\n n: 27,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M0,' + rs + 'V-' + rs + 'M' + rs + ',0H-' + rs +\n 'M' + rs + ',0A' + rs + ',' + rs + ' 0 1,1 0,-' + rs +\n 'A' + rs + ',' + rs + ' 0 0,1 ' + rs + ',0Z';\n },\n needLine: true,\n noDot: true\n },\n 'circle-x': {\n n: 28,\n f: function(r) {\n var rs = d3.round(r, 2);\n var rc = d3.round(r / Math.sqrt(2), 2);\n return 'M' + rc + ',' + rc + 'L-' + rc + ',-' + rc +\n 'M' + rc + ',-' + rc + 'L-' + rc + ',' + rc +\n 'M' + rs + ',0A' + rs + ',' + rs + ' 0 1,1 0,-' + rs +\n 'A' + rs + ',' + rs + ' 0 0,1 ' + rs + ',0Z';\n },\n needLine: true,\n noDot: true\n },\n 'square-cross': {\n n: 29,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M0,' + rs + 'V-' + rs + 'M' + rs + ',0H-' + rs +\n 'M' + rs + ',' + rs + 'H-' + rs + 'V-' + rs + 'H' + rs + 'Z';\n },\n needLine: true,\n noDot: true\n },\n 'square-x': {\n n: 30,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M' + rs + ',' + rs + 'L-' + rs + ',-' + rs +\n 'M' + rs + ',-' + rs + 'L-' + rs + ',' + rs +\n 'M' + rs + ',' + rs + 'H-' + rs + 'V-' + rs + 'H' + rs + 'Z';\n },\n needLine: true,\n noDot: true\n },\n 'diamond-cross': {\n n: 31,\n f: function(r) {\n var rd = d3.round(r * 1.3, 2);\n return 'M' + rd + ',0L0,' + rd + 'L-' + rd + ',0L0,-' + rd + 'Z' +\n 'M0,-' + rd + 'V' + rd + 'M-' + rd + ',0H' + rd;\n },\n needLine: true,\n noDot: true\n },\n 'diamond-x': {\n n: 32,\n f: function(r) {\n var rd = d3.round(r * 1.3, 2);\n var r2 = d3.round(r * 0.65, 2);\n return 'M' + rd + ',0L0,' + rd + 'L-' + rd + ',0L0,-' + rd + 'Z' +\n 'M-' + r2 + ',-' + r2 + 'L' + r2 + ',' + r2 +\n 'M-' + r2 + ',' + r2 + 'L' + r2 + ',-' + r2;\n },\n needLine: true,\n noDot: true\n },\n 'cross-thin': {\n n: 33,\n f: function(r) {\n var rc = d3.round(r * 1.4, 2);\n return 'M0,' + rc + 'V-' + rc + 'M' + rc + ',0H-' + rc;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'x-thin': {\n n: 34,\n f: function(r) {\n var rx = d3.round(r, 2);\n return 'M' + rx + ',' + rx + 'L-' + rx + ',-' + rx +\n 'M' + rx + ',-' + rx + 'L-' + rx + ',' + rx;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n asterisk: {\n n: 35,\n f: function(r) {\n var rc = d3.round(r * 1.2, 2);\n var rs = d3.round(r * 0.85, 2);\n return 'M0,' + rc + 'V-' + rc + 'M' + rc + ',0H-' + rc +\n 'M' + rs + ',' + rs + 'L-' + rs + ',-' + rs +\n 'M' + rs + ',-' + rs + 'L-' + rs + ',' + rs;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n hash: {\n n: 36,\n f: function(r) {\n var r1 = d3.round(r / 2, 2);\n var r2 = d3.round(r, 2);\n return 'M' + r1 + ',' + r2 + 'V-' + r2 +\n 'm-' + r2 + ',0V' + r2 +\n 'M' + r2 + ',' + r1 + 'H-' + r2 +\n 'm0,-' + r2 + 'H' + r2;\n },\n needLine: true,\n noFill: true\n },\n 'y-up': {\n n: 37,\n f: function(r) {\n var x = d3.round(r * 1.2, 2);\n var y0 = d3.round(r * 1.6, 2);\n var y1 = d3.round(r * 0.8, 2);\n return 'M-' + x + ',' + y1 + 'L0,0M' + x + ',' + y1 + 'L0,0M0,-' + y0 + 'L0,0';\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'y-down': {\n n: 38,\n f: function(r) {\n var x = d3.round(r * 1.2, 2);\n var y0 = d3.round(r * 1.6, 2);\n var y1 = d3.round(r * 0.8, 2);\n return 'M-' + x + ',-' + y1 + 'L0,0M' + x + ',-' + y1 + 'L0,0M0,' + y0 + 'L0,0';\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'y-left': {\n n: 39,\n f: function(r) {\n var y = d3.round(r * 1.2, 2);\n var x0 = d3.round(r * 1.6, 2);\n var x1 = d3.round(r * 0.8, 2);\n return 'M' + x1 + ',' + y + 'L0,0M' + x1 + ',-' + y + 'L0,0M-' + x0 + ',0L0,0';\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'y-right': {\n n: 40,\n f: function(r) {\n var y = d3.round(r * 1.2, 2);\n var x0 = d3.round(r * 1.6, 2);\n var x1 = d3.round(r * 0.8, 2);\n return 'M-' + x1 + ',' + y + 'L0,0M-' + x1 + ',-' + y + 'L0,0M' + x0 + ',0L0,0';\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'line-ew': {\n n: 41,\n f: function(r) {\n var rc = d3.round(r * 1.4, 2);\n return 'M' + rc + ',0H-' + rc;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'line-ns': {\n n: 42,\n f: function(r) {\n var rc = d3.round(r * 1.4, 2);\n return 'M0,' + rc + 'V-' + rc;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'line-ne': {\n n: 43,\n f: function(r) {\n var rx = d3.round(r, 2);\n return 'M' + rx + ',-' + rx + 'L-' + rx + ',' + rx;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'line-nw': {\n n: 44,\n f: function(r) {\n var rx = d3.round(r, 2);\n return 'M' + rx + ',' + rx + 'L-' + rx + ',-' + rx;\n },\n needLine: true,\n noDot: true,\n noFill: true\n }\n};\n\n\n/***/ }),\n\n/***/ \"33ae\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar str2RGBArray = __webpack_require__(\"f977\");\n\nvar AXES_NAMES = ['xaxis', 'yaxis', 'zaxis'];\n\nfunction SpikeOptions() {\n this.enabled = [true, true, true];\n this.colors = [[0, 0, 0, 1],\n [0, 0, 0, 1],\n [0, 0, 0, 1]];\n this.drawSides = [true, true, true];\n this.lineWidth = [1, 1, 1];\n}\n\nvar proto = SpikeOptions.prototype;\n\nproto.merge = function(sceneLayout) {\n for(var i = 0; i < 3; ++i) {\n var axes = sceneLayout[AXES_NAMES[i]];\n\n if(!axes.visible) {\n this.enabled[i] = false;\n this.drawSides[i] = false;\n continue;\n }\n\n this.enabled[i] = axes.showspikes;\n this.colors[i] = str2RGBArray(axes.spikecolor);\n this.drawSides[i] = axes.spikesides;\n this.lineWidth[i] = axes.spikethickness;\n }\n};\n\nfunction createSpikeOptions(layout) {\n var result = new SpikeOptions();\n result.merge(layout);\n return result;\n}\n\nmodule.exports = createSpikeOptions;\n\n\n/***/ }),\n\n/***/ \"342f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n\n/***/ \"3473\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isIterable = __webpack_require__(\"91e3\");\n\nmodule.exports = function (value) {\n\tif (!isIterable(value)) throw new TypeError(value + \" is not iterable\");\n\treturn value;\n};\n\n\n/***/ }),\n\n/***/ \"348d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar histogram2dAttrs = __webpack_require__(\"1590\");\nvar contourAttrs = __webpack_require__(\"43ef\");\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nmodule.exports = extendFlat({\n x: histogram2dAttrs.x,\n y: histogram2dAttrs.y,\n z: histogram2dAttrs.z,\n marker: histogram2dAttrs.marker,\n\n histnorm: histogram2dAttrs.histnorm,\n histfunc: histogram2dAttrs.histfunc,\n nbinsx: histogram2dAttrs.nbinsx,\n xbins: histogram2dAttrs.xbins,\n nbinsy: histogram2dAttrs.nbinsy,\n ybins: histogram2dAttrs.ybins,\n autobinx: histogram2dAttrs.autobinx,\n autobiny: histogram2dAttrs.autobiny,\n\n bingroup: histogram2dAttrs.bingroup,\n xbingroup: histogram2dAttrs.xbingroup,\n ybingroup: histogram2dAttrs.ybingroup,\n\n autocontour: contourAttrs.autocontour,\n ncontours: contourAttrs.ncontours,\n contours: contourAttrs.contours,\n line: {\n color: contourAttrs.line.color,\n width: extendFlat({}, contourAttrs.line.width, {\n dflt: 0.5,\n \n }),\n dash: contourAttrs.line.dash,\n smoothing: contourAttrs.line.smoothing,\n editType: 'plot'\n },\n zhoverformat: histogram2dAttrs.zhoverformat,\n hovertemplate: histogram2dAttrs.hovertemplate\n},\n colorScaleAttrs('', {\n cLetter: 'z',\n editTypeOverride: 'calc'\n })\n);\n\n\n/***/ }),\n\n/***/ \"34cc\":\n/***/ (function(module, exports) {\n\n// (c) Copyright 2017, Sean Connelly (@voidqk), http://syntheti.cc\n// MIT License\n// Project Home: https://github.com/voidqk/polybooljs\n\n//\n// convert between PolyBool polygon format and GeoJSON formats (Polygon and MultiPolygon)\n//\n\nvar GeoJSON = {\n\t// convert a GeoJSON object to a PolyBool polygon\n\ttoPolygon: function(PolyBool, geojson){\n\n\t\t// converts list of LineString's to segments\n\t\tfunction GeoPoly(coords){\n\t\t\t// check for empty coords\n\t\t\tif (coords.length <= 0)\n\t\t\t\treturn PolyBool.segments({ inverted: false, regions: [] });\n\n\t\t\t// convert LineString to segments\n\t\t\tfunction LineString(ls){\n\t\t\t\t// remove tail which should be the same as head\n\t\t\t\tvar reg = ls.slice(0, ls.length - 1);\n\t\t\t\treturn PolyBool.segments({ inverted: false, regions: [reg] });\n\t\t\t}\n\n\t\t\t// the first LineString is considered the outside\n\t\t\tvar out = LineString(coords[0]);\n\n\t\t\t// the rest of the LineStrings are considered interior holes, so subtract them from the\n\t\t\t// current result\n\t\t\tfor (var i = 1; i < coords.length; i++)\n\t\t\t\tout = PolyBool.selectDifference(PolyBool.combine(out, LineString(coords[i])));\n\n\t\t\treturn out;\n\t\t}\n\n\t\tif (geojson.type === 'Polygon'){\n\t\t\t// single polygon, so just convert it and we're done\n\t\t\treturn PolyBool.polygon(GeoPoly(geojson.coordinates));\n\t\t}\n\t\telse if (geojson.type === 'MultiPolygon'){\n\t\t\t// multiple polygons, so union all the polygons together\n\t\t\tvar out = PolyBool.segments({ inverted: false, regions: [] });\n\t\t\tfor (var i = 0; i < geojson.coordinates.length; i++)\n\t\t\t\tout = PolyBool.selectUnion(PolyBool.combine(out, GeoPoly(geojson.coordinates[i])));\n\t\t\treturn PolyBool.polygon(out);\n\t\t}\n\t\tthrow new Error('PolyBool: Cannot convert GeoJSON object to PolyBool polygon');\n\t},\n\n\t// convert a PolyBool polygon to a GeoJSON object\n\tfromPolygon: function(PolyBool, eps, poly){\n\t\t// make sure out polygon is clean\n\t\tpoly = PolyBool.polygon(PolyBool.segments(poly));\n\n\t\t// test if r1 is inside r2\n\t\tfunction regionInsideRegion(r1, r2){\n\t\t\t// we're guaranteed no lines intersect (because the polygon is clean), but a vertex\n\t\t\t// could be on the edge -- so we just average pt[0] and pt[1] to produce a point on the\n\t\t\t// edge of the first line, which cannot be on an edge\n\t\t\treturn eps.pointInsideRegion([\n\t\t\t\t(r1[0][0] + r1[1][0]) * 0.5,\n\t\t\t\t(r1[0][1] + r1[1][1]) * 0.5\n\t\t\t], r2);\n\t\t}\n\n\t\t// calculate inside heirarchy\n\t\t//\n\t\t// _____________________ _______ roots -> A -> F\n\t\t// | A | | F | | |\n\t\t// | _______ _______ | | ___ | +-- B +-- G\n\t\t// | | B | | C | | | | | | | |\n\t\t// | | ___ | | ___ | | | | | | | +-- D\n\t\t// | | | D | | | | E | | | | | G | | |\n\t\t// | | |___| | | |___| | | | | | | +-- C\n\t\t// | |_______| |_______| | | |___| | |\n\t\t// |_____________________| |_______| +-- E\n\n\t\tfunction newNode(region){\n\t\t\treturn {\n\t\t\t\tregion: region,\n\t\t\t\tchildren: []\n\t\t\t};\n\t\t}\n\n\t\tvar roots = newNode(null);\n\n\t\tfunction addChild(root, region){\n\t\t\t// first check if we're inside any children\n\t\t\tfor (var i = 0; i < root.children.length; i++){\n\t\t\t\tvar child = root.children[i];\n\t\t\t\tif (regionInsideRegion(region, child.region)){\n\t\t\t\t\t// we are, so insert inside them instead\n\t\t\t\t\taddChild(child, region);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// not inside any children, so check to see if any children are inside us\n\t\t\tvar node = newNode(region);\n\t\t\tfor (var i = 0; i < root.children.length; i++){\n\t\t\t\tvar child = root.children[i];\n\t\t\t\tif (regionInsideRegion(child.region, region)){\n\t\t\t\t\t// oops... move the child beneath us, and remove them from root\n\t\t\t\t\tnode.children.push(child);\n\t\t\t\t\troot.children.splice(i, 1);\n\t\t\t\t\ti--;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// now we can add ourselves\n\t\t\troot.children.push(node);\n\t\t}\n\n\t\t// add all regions to the root\n\t\tfor (var i = 0; i < poly.regions.length; i++){\n\t\t\tvar region = poly.regions[i];\n\t\t\tif (region.length < 3) // regions must have at least 3 points (sanity check)\n\t\t\t\tcontinue;\n\t\t\taddChild(roots, region);\n\t\t}\n\n\t\t// with our heirarchy, we can distinguish between exterior borders, and interior holes\n\t\t// the root nodes are exterior, children are interior, children's children are exterior,\n\t\t// children's children's children are interior, etc\n\n\t\t// while we're at it, exteriors are counter-clockwise, and interiors are clockwise\n\n\t\tfunction forceWinding(region, clockwise){\n\t\t\t// first, see if we're clockwise or counter-clockwise\n\t\t\t// https://en.wikipedia.org/wiki/Shoelace_formula\n\t\t\tvar winding = 0;\n\t\t\tvar last_x = region[region.length - 1][0];\n\t\t\tvar last_y = region[region.length - 1][1];\n\t\t\tvar copy = [];\n\t\t\tfor (var i = 0; i < region.length; i++){\n\t\t\t\tvar curr_x = region[i][0];\n\t\t\t\tvar curr_y = region[i][1];\n\t\t\t\tcopy.push([curr_x, curr_y]); // create a copy while we're at it\n\t\t\t\twinding += curr_y * last_x - curr_x * last_y;\n\t\t\t\tlast_x = curr_x;\n\t\t\t\tlast_y = curr_y;\n\t\t\t}\n\t\t\t// this assumes Cartesian coordinates (Y is positive going up)\n\t\t\tvar isclockwise = winding < 0;\n\t\t\tif (isclockwise !== clockwise)\n\t\t\t\tcopy.reverse();\n\t\t\t// while we're here, the last point must be the first point...\n\t\t\tcopy.push([copy[0][0], copy[0][1]]);\n\t\t\treturn copy;\n\t\t}\n\n\t\tvar geopolys = [];\n\n\t\tfunction addExterior(node){\n\t\t\tvar poly = [forceWinding(node.region, false)];\n\t\t\tgeopolys.push(poly);\n\t\t\t// children of exteriors are interior\n\t\t\tfor (var i = 0; i < node.children.length; i++)\n\t\t\t\tpoly.push(getInterior(node.children[i]));\n\t\t}\n\n\t\tfunction getInterior(node){\n\t\t\t// children of interiors are exterior\n\t\t\tfor (var i = 0; i < node.children.length; i++)\n\t\t\t\taddExterior(node.children[i]);\n\t\t\t// return the clockwise interior\n\t\t\treturn forceWinding(node.region, true);\n\t\t}\n\n\t\t// root nodes are exterior\n\t\tfor (var i = 0; i < roots.children.length; i++)\n\t\t\taddExterior(roots.children[i]);\n\n\t\t// lastly, construct the approrpriate GeoJSON object\n\n\t\tif (geopolys.length <= 0) // empty GeoJSON Polygon\n\t\t\treturn { type: 'Polygon', coordinates: [] };\n\t\tif (geopolys.length == 1) // use a GeoJSON Polygon\n\t\t\treturn { type: 'Polygon', coordinates: geopolys[0] };\n\t\treturn { // otherwise, use a GeoJSON MultiPolygon\n\t\t\ttype: 'MultiPolygon',\n\t\t\tcoordinates: geopolys\n\t\t};\n\t}\n};\n\nmodule.exports = GeoJSON;\n\n\n/***/ }),\n\n/***/ \"34d8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar barPlot = __webpack_require__(\"c791\");\nvar clearMinTextSize = __webpack_require__(\"93a6\").clearMinTextSize;\n\nmodule.exports = function plot(gd, plotinfo, cdModule, traceLayer) {\n var fullLayout = gd._fullLayout;\n\n clearMinTextSize('funnel', fullLayout);\n\n plotConnectorRegions(gd, plotinfo, cdModule, traceLayer);\n plotConnectorLines(gd, plotinfo, cdModule, traceLayer);\n\n barPlot.plot(gd, plotinfo, cdModule, traceLayer, {\n mode: fullLayout.funnelmode,\n norm: fullLayout.funnelmode,\n gap: fullLayout.funnelgap,\n groupgap: fullLayout.funnelgroupgap\n });\n};\n\nfunction plotConnectorRegions(gd, plotinfo, cdModule, traceLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n Lib.makeTraceGroups(traceLayer, cdModule, 'trace bars').each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n\n var group = Lib.ensureSingle(plotGroup, 'g', 'regions');\n\n if(!trace.connector || !trace.connector.visible) {\n group.remove();\n return;\n }\n\n var isHorizontal = (trace.orientation === 'h');\n\n var connectors = group.selectAll('g.region').data(Lib.identity);\n\n connectors.enter().append('g')\n .classed('region', true);\n\n connectors.exit().remove();\n\n var len = connectors.size();\n\n connectors.each(function(di, i) {\n // don't draw lines between nulls\n if(i !== len - 1 && !di.cNext) return;\n\n var xy = getXY(di, xa, ya, isHorizontal);\n var x = xy[0];\n var y = xy[1];\n\n var shape = '';\n\n if(x[3] !== undefined && y[3] !== undefined) {\n if(isHorizontal) {\n shape += 'M' + x[0] + ',' + y[1] + 'L' + x[2] + ',' + y[2] + 'H' + x[3] + 'L' + x[1] + ',' + y[1] + 'Z';\n } else {\n shape += 'M' + x[1] + ',' + y[1] + 'L' + x[2] + ',' + y[3] + 'V' + y[2] + 'L' + x[1] + ',' + y[0] + 'Z';\n }\n }\n\n Lib.ensureSingle(d3.select(this), 'path')\n .attr('d', shape)\n .call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n });\n });\n}\n\nfunction plotConnectorLines(gd, plotinfo, cdModule, traceLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n Lib.makeTraceGroups(traceLayer, cdModule, 'trace bars').each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n\n var group = Lib.ensureSingle(plotGroup, 'g', 'lines');\n\n if(!trace.connector || !trace.connector.visible || !trace.connector.line.width) {\n group.remove();\n return;\n }\n\n var isHorizontal = (trace.orientation === 'h');\n\n var connectors = group.selectAll('g.line').data(Lib.identity);\n\n connectors.enter().append('g')\n .classed('line', true);\n\n connectors.exit().remove();\n\n var len = connectors.size();\n\n connectors.each(function(di, i) {\n // don't draw lines between nulls\n if(i !== len - 1 && !di.cNext) return;\n\n var xy = getXY(di, xa, ya, isHorizontal);\n var x = xy[0];\n var y = xy[1];\n\n var shape = '';\n\n if(x[3] !== undefined && y[3] !== undefined) {\n if(isHorizontal) {\n shape += 'M' + x[0] + ',' + y[1] + 'L' + x[2] + ',' + y[2];\n shape += 'M' + x[1] + ',' + y[1] + 'L' + x[3] + ',' + y[2];\n } else {\n shape += 'M' + x[1] + ',' + y[1] + 'L' + x[2] + ',' + y[3];\n shape += 'M' + x[1] + ',' + y[0] + 'L' + x[2] + ',' + y[2];\n }\n }\n\n if(shape === '') shape = 'M0,0Z';\n\n Lib.ensureSingle(d3.select(this), 'path')\n .attr('d', shape)\n .call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n });\n });\n}\n\nfunction getXY(di, xa, ya, isHorizontal) {\n var s = [];\n var p = [];\n\n var sAxis = isHorizontal ? xa : ya;\n var pAxis = isHorizontal ? ya : xa;\n\n s[0] = sAxis.c2p(di.s0, true);\n p[0] = pAxis.c2p(di.p0, true);\n\n s[1] = sAxis.c2p(di.s1, true);\n p[1] = pAxis.c2p(di.p1, true);\n\n s[2] = sAxis.c2p(di.nextS0, true);\n p[2] = pAxis.c2p(di.nextP0, true);\n\n s[3] = sAxis.c2p(di.nextS1, true);\n p[3] = pAxis.c2p(di.nextP1, true);\n\n return isHorizontal ? [s, p] : [p, s];\n}\n\n\n/***/ }),\n\n/***/ \"34f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Registry = __webpack_require__(\"371e\");\nvar arrayEditor = __webpack_require__(\"a651\").arrayEditor;\n\nmodule.exports = {\n hasClickToShow: hasClickToShow,\n onClick: onClick\n};\n\n/*\n * hasClickToShow: does the given hoverData have ANY annotations which will\n * turn ON if we click here? (used by hover events to set cursor)\n *\n * gd: graphDiv\n * hoverData: a hoverData array, as included with the *plotly_hover* or\n * *plotly_click* events in the `points` attribute\n *\n * returns: boolean\n */\nfunction hasClickToShow(gd, hoverData) {\n var sets = getToggleSets(gd, hoverData);\n return sets.on.length > 0 || sets.explicitOff.length > 0;\n}\n\n/*\n * onClick: perform the toggling (via Plotly.update) implied by clicking\n * at this hoverData\n *\n * gd: graphDiv\n * hoverData: a hoverData array, as included with the *plotly_hover* or\n * *plotly_click* events in the `points` attribute\n *\n * returns: Promise that the update is complete\n */\nfunction onClick(gd, hoverData) {\n var toggleSets = getToggleSets(gd, hoverData);\n var onSet = toggleSets.on;\n var offSet = toggleSets.off.concat(toggleSets.explicitOff);\n var update = {};\n var annotationsOut = gd._fullLayout.annotations;\n var i, editHelpers;\n\n if(!(onSet.length || offSet.length)) return;\n\n for(i = 0; i < onSet.length; i++) {\n editHelpers = arrayEditor(gd.layout, 'annotations', annotationsOut[onSet[i]]);\n editHelpers.modifyItem('visible', true);\n Lib.extendFlat(update, editHelpers.getUpdateObj());\n }\n\n for(i = 0; i < offSet.length; i++) {\n editHelpers = arrayEditor(gd.layout, 'annotations', annotationsOut[offSet[i]]);\n editHelpers.modifyItem('visible', false);\n Lib.extendFlat(update, editHelpers.getUpdateObj());\n }\n\n return Registry.call('update', gd, {}, update);\n}\n\n/*\n * getToggleSets: find the annotations which will turn on or off at this\n * hoverData\n *\n * gd: graphDiv\n * hoverData: a hoverData array, as included with the *plotly_hover* or\n * *plotly_click* events in the `points` attribute\n *\n * returns: {\n * on: Array (indices of annotations to turn on),\n * off: Array (indices to turn off because you're not hovering on them),\n * explicitOff: Array (indices to turn off because you *are* hovering on them)\n * }\n */\nfunction getToggleSets(gd, hoverData) {\n var annotations = gd._fullLayout.annotations;\n var onSet = [];\n var offSet = [];\n var explicitOffSet = [];\n var hoverLen = (hoverData || []).length;\n\n var i, j, anni, showMode, pointj, xa, ya, toggleType;\n\n for(i = 0; i < annotations.length; i++) {\n anni = annotations[i];\n showMode = anni.clicktoshow;\n\n if(showMode) {\n for(j = 0; j < hoverLen; j++) {\n pointj = hoverData[j];\n xa = pointj.xaxis;\n ya = pointj.yaxis;\n\n if(xa._id === anni.xref &&\n ya._id === anni.yref &&\n xa.d2r(pointj.x) === clickData2r(anni._xclick, xa) &&\n ya.d2r(pointj.y) === clickData2r(anni._yclick, ya)\n ) {\n // match! toggle this annotation\n // regardless of its clicktoshow mode\n // but if it's onout mode, off is implicit\n if(anni.visible) {\n if(showMode === 'onout') toggleType = offSet;\n else toggleType = explicitOffSet;\n } else {\n toggleType = onSet;\n }\n toggleType.push(i);\n break;\n }\n }\n\n if(j === hoverLen) {\n // no match - only turn this annotation OFF, and only if\n // showmode is 'onout'\n if(anni.visible && showMode === 'onout') offSet.push(i);\n }\n }\n }\n\n return {on: onSet, off: offSet, explicitOff: explicitOffSet};\n}\n\n// to handle log axes until v2\nfunction clickData2r(d, ax) {\n return ax.type === 'log' ? ax.l2r(d) : ax.d2r(d);\n}\n\n\n/***/ }),\n\n/***/ \"3511\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar constraintMapping = __webpack_require__(\"11ab\");\nvar endPlus = __webpack_require__(\"bc6b\");\n\nmodule.exports = function emptyPathinfo(contours, plotinfo, cd0) {\n var contoursFinal = (contours.type === 'constraint') ?\n constraintMapping[contours._operation](contours.value) :\n contours;\n\n var cs = contoursFinal.size;\n var pathinfo = [];\n var end = endPlus(contoursFinal);\n\n var carpet = cd0.trace._carpetTrace;\n\n var basePathinfo = carpet ? {\n // store axes so we can convert to px\n xaxis: carpet.aaxis,\n yaxis: carpet.baxis,\n // full data arrays to use for interpolation\n x: cd0.a,\n y: cd0.b\n } : {\n xaxis: plotinfo.xaxis,\n yaxis: plotinfo.yaxis,\n x: cd0.x,\n y: cd0.y\n };\n\n for(var ci = contoursFinal.start; ci < end; ci += cs) {\n pathinfo.push(Lib.extendFlat({\n level: ci,\n // all the cells with nontrivial marching index\n crossings: {},\n // starting points on the edges of the lattice for each contour\n starts: [],\n // all unclosed paths (may have less items than starts,\n // if a path is closed by rounding)\n edgepaths: [],\n // all closed paths\n paths: [],\n z: cd0.z,\n smoothing: cd0.trace.line.smoothing\n }, basePathinfo));\n\n if(pathinfo.length > 1000) {\n Lib.warn('Too many contours, clipping at 1000', contours);\n break;\n }\n }\n return pathinfo;\n};\n\n\n/***/ }),\n\n/***/ \"351b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar toLogRange = __webpack_require__(\"f6b0\");\n\n/*\n * convertCoords: when converting an axis between log and linear\n * you need to alter any annotations on that axis to keep them\n * pointing at the same data point.\n * In v2.0 this will become obsolete\n *\n * gd: the plot div\n * ax: the axis being changed\n * newType: the type it's getting\n * doExtra: function(attr, val) from inside relayout that sets the attribute.\n * Use this to make the changes as it's aware if any other changes in the\n * same relayout call should override this conversion.\n */\nmodule.exports = function convertCoords(gd, ax, newType, doExtra) {\n ax = ax || {};\n\n var toLog = (newType === 'log') && (ax.type === 'linear');\n var fromLog = (newType === 'linear') && (ax.type === 'log');\n\n if(!(toLog || fromLog)) return;\n\n var annotations = gd._fullLayout.annotations;\n var axLetter = ax._id.charAt(0);\n var ann;\n var attrPrefix;\n\n function convert(attr) {\n var currentVal = ann[attr];\n var newVal = null;\n\n if(toLog) newVal = toLogRange(currentVal, ax.range);\n else newVal = Math.pow(10, currentVal);\n\n // if conversion failed, delete the value so it gets a default value\n if(!isNumeric(newVal)) newVal = null;\n\n doExtra(attrPrefix + attr, newVal);\n }\n\n for(var i = 0; i < annotations.length; i++) {\n ann = annotations[i];\n attrPrefix = 'annotations[' + i + '].';\n\n if(ann[axLetter + 'ref'] === ax._id) convert(axLetter);\n if(ann['a' + axLetter + 'ref'] === ax._id) convert('a' + axLetter);\n }\n};\n\n\n/***/ }),\n\n/***/ \"3560\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = boxIntersectIter\n\nvar pool = __webpack_require__(\"cea5\")\nvar bits = __webpack_require__(\"a48a\")\nvar bruteForce = __webpack_require__(\"b83d\")\nvar bruteForcePartial = bruteForce.partial\nvar bruteForceFull = bruteForce.full\nvar sweep = __webpack_require__(\"97e2\")\nvar findMedian = __webpack_require__(\"158b\")\nvar genPartition = __webpack_require__(\"8e58\")\n\n//Twiddle parameters\nvar BRUTE_FORCE_CUTOFF = 128 //Cut off for brute force search\nvar SCAN_CUTOFF = (1<<22) //Cut off for two way scan\nvar SCAN_COMPLETE_CUTOFF = (1<<22) \n\n//Partition functions\nvar partitionInteriorContainsInterval = genPartition(\n '!(lo>=p0)&&!(p1>=hi)', \n ['p0', 'p1'])\n\nvar partitionStartEqual = genPartition(\n 'lo===p0',\n ['p0'])\n\nvar partitionStartLessThan = genPartition(\n 'lo 0) {\n top -= 1\n\n var iptr = top * IFRAME_SIZE\n var axis = BOX_ISTACK[iptr]\n var redStart = BOX_ISTACK[iptr+1]\n var redEnd = BOX_ISTACK[iptr+2]\n var blueStart = BOX_ISTACK[iptr+3]\n var blueEnd = BOX_ISTACK[iptr+4]\n var state = BOX_ISTACK[iptr+5]\n\n var dptr = top * DFRAME_SIZE\n var lo = BOX_DSTACK[dptr]\n var hi = BOX_DSTACK[dptr+1]\n\n //Unpack state info\n var flip = (state & 1)\n var full = !!(state & 16)\n\n //Unpack indices\n var red = xBoxes\n var redIndex = xIndex\n var blue = yBoxes\n var blueIndex = yIndex\n if(flip) {\n red = yBoxes\n redIndex = yIndex\n blue = xBoxes\n blueIndex = xIndex\n }\n\n if(state & 2) {\n redEnd = partitionStartLessThan(\n d, axis,\n redStart, redEnd, red, redIndex,\n hi)\n if(redStart >= redEnd) {\n continue\n }\n }\n if(state & 4) {\n redStart = partitionEndLessThanEqual(\n d, axis,\n redStart, redEnd, red, redIndex,\n lo)\n if(redStart >= redEnd) {\n continue\n }\n }\n \n var redCount = redEnd - redStart\n var blueCount = blueEnd - blueStart\n\n if(full) {\n if(d * redCount * (redCount + blueCount) < SCAN_COMPLETE_CUTOFF) {\n retval = sweep.scanComplete(\n d, axis, visit, \n redStart, redEnd, red, redIndex,\n blueStart, blueEnd, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n continue\n }\n } else {\n if(d * Math.min(redCount, blueCount) < BRUTE_FORCE_CUTOFF) {\n //If input small, then use brute force\n retval = bruteForcePartial(\n d, axis, visit, flip,\n redStart, redEnd, red, redIndex,\n blueStart, blueEnd, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n continue\n } else if(d * redCount * blueCount < SCAN_CUTOFF) {\n //If input medium sized, then use sweep and prune\n retval = sweep.scanBipartite(\n d, axis, visit, flip, \n redStart, redEnd, red, redIndex,\n blueStart, blueEnd, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n continue\n }\n }\n \n //First, find all red intervals whose interior contains (lo,hi)\n var red0 = partitionInteriorContainsInterval(\n d, axis, \n redStart, redEnd, red, redIndex,\n lo, hi)\n\n //Lower dimensional case\n if(redStart < red0) {\n\n if(d * (red0 - redStart) < BRUTE_FORCE_CUTOFF) {\n //Special case for small inputs: use brute force\n retval = bruteForceFull(\n d, axis+1, visit,\n redStart, red0, red, redIndex,\n blueStart, blueEnd, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n } else if(axis === d-2) {\n if(flip) {\n retval = sweep.sweepBipartite(\n d, visit,\n blueStart, blueEnd, blue, blueIndex,\n redStart, red0, red, redIndex)\n } else {\n retval = sweep.sweepBipartite(\n d, visit,\n redStart, red0, red, redIndex,\n blueStart, blueEnd, blue, blueIndex)\n }\n if(retval !== void 0) {\n return retval\n }\n } else {\n iterPush(top++,\n axis+1,\n redStart, red0,\n blueStart, blueEnd,\n flip,\n -Infinity, Infinity)\n iterPush(top++,\n axis+1,\n blueStart, blueEnd,\n redStart, red0,\n flip^1,\n -Infinity, Infinity)\n }\n }\n\n //Divide and conquer phase\n if(red0 < redEnd) {\n\n //Cut blue into 3 parts:\n //\n // Points < mid point\n // Points = mid point\n // Points > mid point\n //\n var blue0 = findMedian(\n d, axis, \n blueStart, blueEnd, blue, blueIndex)\n var mid = blue[elemSize * blue0 + axis]\n var blue1 = partitionStartEqual(\n d, axis,\n blue0, blueEnd, blue, blueIndex,\n mid)\n\n //Right case\n if(blue1 < blueEnd) {\n iterPush(top++,\n axis,\n red0, redEnd,\n blue1, blueEnd,\n (flip|4) + (full ? 16 : 0),\n mid, hi)\n }\n\n //Left case\n if(blueStart < blue0) {\n iterPush(top++,\n axis,\n red0, redEnd,\n blueStart, blue0,\n (flip|2) + (full ? 16 : 0),\n lo, mid)\n }\n\n //Center case (the hard part)\n if(blue0 + 1 === blue1) {\n //Optimization: Range with exactly 1 point, use a brute force scan\n if(full) {\n retval = onePointFull(\n d, axis, visit,\n red0, redEnd, red, redIndex,\n blue0, blue, blueIndex[blue0])\n } else {\n retval = onePointPartial(\n d, axis, visit, flip,\n red0, redEnd, red, redIndex,\n blue0, blue, blueIndex[blue0])\n }\n if(retval !== void 0) {\n return retval\n }\n } else if(blue0 < blue1) {\n var red1\n if(full) {\n //If full intersection, need to handle special case\n red1 = partitionContainsPoint(\n d, axis,\n red0, redEnd, red, redIndex,\n mid)\n if(red0 < red1) {\n var redX = partitionStartEqual(\n d, axis,\n red0, red1, red, redIndex,\n mid)\n if(axis === d-2) {\n //Degenerate sweep intersection:\n // [red0, redX] with [blue0, blue1]\n if(red0 < redX) {\n retval = sweep.sweepComplete(\n d, visit,\n red0, redX, red, redIndex,\n blue0, blue1, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n }\n\n //Normal sweep intersection:\n // [redX, red1] with [blue0, blue1]\n if(redX < red1) {\n retval = sweep.sweepBipartite(\n d, visit,\n redX, red1, red, redIndex,\n blue0, blue1, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n }\n } else {\n if(red0 < redX) {\n iterPush(top++,\n axis+1,\n red0, redX,\n blue0, blue1,\n 16,\n -Infinity, Infinity)\n }\n if(redX < red1) {\n iterPush(top++,\n axis+1,\n redX, red1,\n blue0, blue1,\n 0,\n -Infinity, Infinity)\n iterPush(top++,\n axis+1,\n blue0, blue1,\n redX, red1,\n 1,\n -Infinity, Infinity)\n }\n }\n }\n } else {\n if(flip) {\n red1 = partitionContainsPointProper(\n d, axis,\n red0, redEnd, red, redIndex,\n mid)\n } else {\n red1 = partitionContainsPoint(\n d, axis,\n red0, redEnd, red, redIndex,\n mid)\n }\n if(red0 < red1) {\n if(axis === d-2) {\n if(flip) {\n retval = sweep.sweepBipartite(\n d, visit,\n blue0, blue1, blue, blueIndex,\n red0, red1, red, redIndex)\n } else {\n retval = sweep.sweepBipartite(\n d, visit,\n red0, red1, red, redIndex,\n blue0, blue1, blue, blueIndex)\n }\n } else {\n iterPush(top++,\n axis+1,\n red0, red1,\n blue0, blue1,\n flip,\n -Infinity, Infinity)\n iterPush(top++,\n axis+1,\n blue0, blue1,\n red0, red1,\n flip^1,\n -Infinity, Infinity)\n }\n }\n }\n }\n }\n }\n}\n\n/***/ }),\n\n/***/ \"35b1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar determinant = __webpack_require__(\"c2ef\")\n\nvar NUM_EXPAND = 6\n\nfunction generateSolver(n) {\n var funcName = \"robustLinearSolve\" + n + \"d\"\n var code = [\"function \", funcName, \"(A,b){return [\"]\n for(var i=0; i 0) {\n code.push(\",\")\n }\n code.push(\"[\")\n for(var k=0; k 0) {\n code.push(\",\")\n }\n if(k === i) {\n code.push(\"+b[\", j, \"]\")\n } else {\n code.push(\"+A[\", j, \"][\", k, \"]\")\n }\n }\n code.push(\"]\")\n }\n code.push(\"]),\")\n }\n code.push(\"det(A)]}return \", funcName)\n var proc = new Function(\"det\", code.join(\"\"))\n if(n < 6) {\n return proc(determinant[n])\n }\n return proc(determinant)\n}\n\nfunction robustLinearSolve0d() {\n return [ 0 ]\n}\n\nfunction robustLinearSolve1d(A, b) {\n return [ [ b[0] ], [ A[0][0] ] ]\n}\n\nvar CACHE = [\n robustLinearSolve0d,\n robustLinearSolve1d\n]\n\nfunction generateDispatch() {\n while(CACHE.length < NUM_EXPAND) {\n CACHE.push(generateSolver(CACHE.length))\n }\n var procArgs = []\n var code = [\"function dispatchLinearSolve(A,b){switch(A.length){\"]\n for(var i=0; i>> 24\r\n\tvar g = (n & 0x00ff0000) >>> 16\r\n\tvar b = (n & 0x0000ff00) >>> 8\r\n\tvar a = n & 0x000000ff\r\n\r\n\tif (normalized === false) return [r, g, b, a]\r\n\r\n\treturn [r/255, g/255, b/255, a/255]\r\n}\r\n\n\n/***/ }),\n\n/***/ \"3642\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toString = Object.prototype.toString;\n\nmodule.exports = function (x) {\n\tvar prototype;\n\treturn toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({}));\n};\n\n\n/***/ }),\n\n/***/ \"36ea\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar barPlot = __webpack_require__(\"c791\");\nvar clearMinTextSize = __webpack_require__(\"93a6\").clearMinTextSize;\n\nmodule.exports = function plot(gd, plotinfo, cdModule, traceLayer) {\n var fullLayout = gd._fullLayout;\n\n clearMinTextSize('waterfall', fullLayout);\n\n barPlot.plot(gd, plotinfo, cdModule, traceLayer, {\n mode: fullLayout.waterfallmode,\n norm: fullLayout.waterfallmode,\n gap: fullLayout.waterfallgap,\n groupgap: fullLayout.waterfallgroupgap\n });\n\n plotConnectors(gd, plotinfo, cdModule, traceLayer);\n};\n\nfunction plotConnectors(gd, plotinfo, cdModule, traceLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n Lib.makeTraceGroups(traceLayer, cdModule, 'trace bars').each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n\n var group = Lib.ensureSingle(plotGroup, 'g', 'lines');\n\n if(!trace.connector || !trace.connector.visible) {\n group.remove();\n return;\n }\n\n var isHorizontal = (trace.orientation === 'h');\n var mode = trace.connector.mode;\n\n var connectors = group.selectAll('g.line').data(Lib.identity);\n\n connectors.enter().append('g')\n .classed('line', true);\n\n connectors.exit().remove();\n\n var len = connectors.size();\n\n connectors.each(function(di, i) {\n // don't draw lines between nulls\n if(i !== len - 1 && !di.cNext) return;\n\n var xy = getXY(di, xa, ya, isHorizontal);\n var x = xy[0];\n var y = xy[1];\n\n var shape = '';\n\n if(mode === 'spanning') {\n if(!di.isSum && i > 0) {\n if(isHorizontal) {\n shape += 'M' + x[0] + ',' + y[1] + 'V' + y[0];\n } else {\n shape += 'M' + x[1] + ',' + y[0] + 'H' + x[0];\n }\n }\n }\n\n if(mode !== 'between') {\n if(di.isSum || i < len - 1) {\n if(isHorizontal) {\n shape += 'M' + x[1] + ',' + y[0] + 'V' + y[1];\n } else {\n shape += 'M' + x[0] + ',' + y[1] + 'H' + x[1];\n }\n }\n }\n\n if(x[2] !== undefined && y[2] !== undefined) {\n if(isHorizontal) {\n shape += 'M' + x[1] + ',' + y[1] + 'V' + y[2];\n } else {\n shape += 'M' + x[1] + ',' + y[1] + 'H' + x[2];\n }\n }\n\n if(shape === '') shape = 'M0,0Z';\n\n Lib.ensureSingle(d3.select(this), 'path')\n .attr('d', shape)\n .call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n });\n });\n}\n\nfunction getXY(di, xa, ya, isHorizontal) {\n var s = [];\n var p = [];\n\n var sAxis = isHorizontal ? xa : ya;\n var pAxis = isHorizontal ? ya : xa;\n\n s[0] = sAxis.c2p(di.s0, true);\n p[0] = pAxis.c2p(di.p0, true);\n\n s[1] = sAxis.c2p(di.s1, true);\n p[1] = pAxis.c2p(di.p1, true);\n\n s[2] = sAxis.c2p(di.nextS0, true);\n p[2] = pAxis.c2p(di.nextP0, true);\n\n return isHorizontal ? [s, p] : [p, s];\n}\n\n\n/***/ }),\n\n/***/ \"36fc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar boxLayoutAttrs = __webpack_require__(\"60dc\");\nvar extendFlat = __webpack_require__(\"fc26\").extendFlat;\n\nmodule.exports = {\n violinmode: extendFlat({}, boxLayoutAttrs.boxmode, {\n \n }),\n violingap: extendFlat({}, boxLayoutAttrs.boxgap, {\n \n }),\n violingroupgap: extendFlat({}, boxLayoutAttrs.boxgroupgap, {\n \n })\n};\n\n\n/***/ }),\n\n/***/ \"371e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Loggers = __webpack_require__(\"ae13\");\nvar noop = __webpack_require__(\"b778\");\nvar pushUnique = __webpack_require__(\"5a1b\");\nvar isPlainObject = __webpack_require__(\"1385\");\nvar addStyleRule = __webpack_require__(\"1b88\").addStyleRule;\nvar ExtendModule = __webpack_require__(\"9092\");\n\nvar basePlotAttributes = __webpack_require__(\"a876\");\nvar baseLayoutAttributes = __webpack_require__(\"a685\");\n\nvar extendFlat = ExtendModule.extendFlat;\nvar extendDeepAll = ExtendModule.extendDeepAll;\n\nexports.modules = {};\nexports.allCategories = {};\nexports.allTypes = [];\nexports.subplotsRegistry = {};\nexports.transformsRegistry = {};\nexports.componentsRegistry = {};\nexports.layoutArrayContainers = [];\nexports.layoutArrayRegexes = [];\nexports.traceLayoutAttributes = {};\nexports.localeRegistry = {};\nexports.apiMethodRegistry = {};\nexports.collectableSubplotTypes = null;\n\n/**\n * Top-level register routine, exported as Plotly.register\n *\n * @param {object array or array of objects} _modules :\n * module object or list of module object to register.\n *\n * A valid `moduleType: 'trace'` module has fields:\n * - name {string} : the trace type\n * - categories {array} : categories associated with this trace type,\n * tested with Register.traceIs()\n * - meta {object} : meta info (mostly for plot-schema)\n *\n * A valid `moduleType: 'locale'` module has fields:\n * - name {string} : the locale name. Should be a 2-digit language string ('en', 'de')\n * optionally with a country/region code ('en-GB', 'de-CH'). If a country\n * code is used but the base language locale has not yet been supplied,\n * we will use this locale for the base as well.\n * - dictionary {object} : the dictionary mapping input strings to localized strings\n * generally the keys should be the literal input strings, but\n * if default translations are provided you can use any string as a key.\n * - format {object} : a `d3.locale` format specifier for this locale\n * any omitted keys we'll fall back on en-US.\n *\n * A valid `moduleType: 'transform'` module has fields:\n * - name {string} : transform name\n * - transform {function} : default-level transform function\n * - calcTransform {function} : calc-level transform function\n * - attributes {object} : transform attributes declarations\n * - supplyDefaults {function} : attributes default-supply function\n *\n * A valid `moduleType: 'component'` module has fields:\n * - name {string} : the component name, used it with Register.getComponentMethod()\n * to employ component method.\n *\n * A valid `moduleType: 'apiMethod'` module has fields:\n * - name {string} : the api method name.\n * - fn {function} : the api method called with Register.call();\n *\n */\nexports.register = function register(_modules) {\n exports.collectableSubplotTypes = null;\n\n if(!_modules) {\n throw new Error('No argument passed to Plotly.register.');\n } else if(_modules && !Array.isArray(_modules)) {\n _modules = [_modules];\n }\n\n for(var i = 0; i < _modules.length; i++) {\n var newModule = _modules[i];\n\n if(!newModule) {\n throw new Error('Invalid module was attempted to be registered!');\n }\n\n switch(newModule.moduleType) {\n case 'trace':\n registerTraceModule(newModule);\n break;\n case 'transform':\n registerTransformModule(newModule);\n break;\n case 'component':\n registerComponentModule(newModule);\n break;\n case 'locale':\n registerLocale(newModule);\n break;\n case 'apiMethod':\n var name = newModule.name;\n exports.apiMethodRegistry[name] = newModule.fn;\n break;\n default:\n throw new Error('Invalid module was attempted to be registered!');\n }\n }\n};\n\n/**\n * Get registered module using trace object or trace type\n *\n * @param {object||string} trace\n * trace object with prop 'type' or trace type as a string\n * @return {object}\n * module object corresponding to trace type\n */\nexports.getModule = function(trace) {\n var _module = exports.modules[getTraceType(trace)];\n if(!_module) return false;\n return _module._module;\n};\n\n/**\n * Determine if this trace type is in a given category\n *\n * @param {object||string} traceType\n * a trace (object) or trace type (string)\n * @param {string} category\n * category in question\n * @return {boolean}\n */\nexports.traceIs = function(traceType, category) {\n traceType = getTraceType(traceType);\n\n // old plot.ly workspace hack, nothing to see here\n if(traceType === 'various') return false;\n\n var _module = exports.modules[traceType];\n\n if(!_module) {\n if(traceType && traceType !== 'area') {\n Loggers.log('Unrecognized trace type ' + traceType + '.');\n }\n\n _module = exports.modules[basePlotAttributes.type.dflt];\n }\n\n return !!_module.categories[category];\n};\n\n/**\n * Determine if this trace has a transform of the given type and return\n * array of matching indices.\n *\n * @param {object} data\n * a trace object (member of data or fullData)\n * @param {string} type\n * type of trace to test\n * @return {array}\n * array of matching indices. If none found, returns []\n */\nexports.getTransformIndices = function(data, type) {\n var indices = [];\n var transforms = data.transforms || [];\n for(var i = 0; i < transforms.length; i++) {\n if(transforms[i].type === type) {\n indices.push(i);\n }\n }\n return indices;\n};\n\n/**\n * Determine if this trace has a transform of the given type\n *\n * @param {object} data\n * a trace object (member of data or fullData)\n * @param {string} type\n * type of trace to test\n * @return {boolean}\n */\nexports.hasTransform = function(data, type) {\n var transforms = data.transforms || [];\n for(var i = 0; i < transforms.length; i++) {\n if(transforms[i].type === type) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * Retrieve component module method. Falls back on noop if either the\n * module or the method is missing, so the result can always be safely called\n *\n * @param {string} name\n * name of component (as declared in component module)\n * @param {string} method\n * name of component module method\n * @return {function}\n */\nexports.getComponentMethod = function(name, method) {\n var _module = exports.componentsRegistry[name];\n\n if(!_module) return noop;\n return _module[method] || noop;\n};\n\n/**\n * Call registered api method.\n *\n * @param {string} name : api method name\n * @param {...array} args : arguments passed to api method\n * @return {any} : returns api method output\n */\nexports.call = function() {\n var name = arguments[0];\n var args = [].slice.call(arguments, 1);\n return exports.apiMethodRegistry[name].apply(null, args);\n};\n\nfunction registerTraceModule(_module) {\n var thisType = _module.name;\n var categoriesIn = _module.categories;\n var meta = _module.meta;\n\n if(exports.modules[thisType]) {\n Loggers.log('Type ' + thisType + ' already registered');\n return;\n }\n\n if(!exports.subplotsRegistry[_module.basePlotModule.name]) {\n registerSubplot(_module.basePlotModule);\n }\n\n var categoryObj = {};\n for(var i = 0; i < categoriesIn.length; i++) {\n categoryObj[categoriesIn[i]] = true;\n exports.allCategories[categoriesIn[i]] = true;\n }\n\n exports.modules[thisType] = {\n _module: _module,\n categories: categoryObj\n };\n\n if(meta && Object.keys(meta).length) {\n exports.modules[thisType].meta = meta;\n }\n\n exports.allTypes.push(thisType);\n\n for(var componentName in exports.componentsRegistry) {\n mergeComponentAttrsToTrace(componentName, thisType);\n }\n\n /*\n * Collect all trace layout attributes in one place for easier lookup later\n * but don't merge them into the base schema as it would confuse the docs\n * (at least after https://github.com/plotly/documentation/issues/202 gets done!)\n */\n if(_module.layoutAttributes) {\n extendFlat(exports.traceLayoutAttributes, _module.layoutAttributes);\n }\n\n var basePlotModule = _module.basePlotModule;\n var bpmName = basePlotModule.name;\n\n // add mapbox-gl CSS here to avoid console warning on instantiation\n if(bpmName === 'mapbox') {\n var styleRules = basePlotModule.constants.styleRules;\n for(var k in styleRules) {\n addStyleRule('.js-plotly-plot .plotly .mapboxgl-' + k, styleRules[k]);\n }\n }\n\n // if `plotly-geo-assets.js` is not included,\n // add `PlotlyGeoAssets` global to stash references to all fetched\n // topojson / geojson data\n if((bpmName === 'geo' || bpmName === 'mapbox') &&\n (typeof window !== undefined && window.PlotlyGeoAssets === undefined)\n ) {\n window.PlotlyGeoAssets = {topojson: {}};\n }\n}\n\nfunction registerSubplot(_module) {\n var plotType = _module.name;\n\n if(exports.subplotsRegistry[plotType]) {\n Loggers.log('Plot type ' + plotType + ' already registered.');\n return;\n }\n\n // relayout array handling will look for component module methods with this\n // name and won't find them because this is a subplot module... but that\n // should be fine, it will just fall back on redrawing the plot.\n findArrayRegexps(_module);\n\n // not sure what's best for the 'cartesian' type at this point\n exports.subplotsRegistry[plotType] = _module;\n\n for(var componentName in exports.componentsRegistry) {\n mergeComponentAttrsToSubplot(componentName, _module.name);\n }\n}\n\nfunction registerComponentModule(_module) {\n if(typeof _module.name !== 'string') {\n throw new Error('Component module *name* must be a string.');\n }\n\n var name = _module.name;\n exports.componentsRegistry[name] = _module;\n\n if(_module.layoutAttributes) {\n if(_module.layoutAttributes._isLinkedToArray) {\n pushUnique(exports.layoutArrayContainers, name);\n }\n findArrayRegexps(_module);\n }\n\n for(var traceType in exports.modules) {\n mergeComponentAttrsToTrace(name, traceType);\n }\n\n for(var subplotName in exports.subplotsRegistry) {\n mergeComponentAttrsToSubplot(name, subplotName);\n }\n\n for(var transformType in exports.transformsRegistry) {\n mergeComponentAttrsToTransform(name, transformType);\n }\n\n if(_module.schema && _module.schema.layout) {\n extendDeepAll(baseLayoutAttributes, _module.schema.layout);\n }\n}\n\nfunction registerTransformModule(_module) {\n if(typeof _module.name !== 'string') {\n throw new Error('Transform module *name* must be a string.');\n }\n\n var prefix = 'Transform module ' + _module.name;\n var hasTransform = typeof _module.transform === 'function';\n var hasCalcTransform = typeof _module.calcTransform === 'function';\n\n if(!hasTransform && !hasCalcTransform) {\n throw new Error(prefix + ' is missing a *transform* or *calcTransform* method.');\n }\n if(hasTransform && hasCalcTransform) {\n Loggers.log([\n prefix + ' has both a *transform* and *calcTransform* methods.',\n 'Please note that all *transform* methods are executed',\n 'before all *calcTransform* methods.'\n ].join(' '));\n }\n if(!isPlainObject(_module.attributes)) {\n Loggers.log(prefix + ' registered without an *attributes* object.');\n }\n if(typeof _module.supplyDefaults !== 'function') {\n Loggers.log(prefix + ' registered without a *supplyDefaults* method.');\n }\n\n exports.transformsRegistry[_module.name] = _module;\n\n for(var componentName in exports.componentsRegistry) {\n mergeComponentAttrsToTransform(componentName, _module.name);\n }\n}\n\nfunction registerLocale(_module) {\n var locale = _module.name;\n var baseLocale = locale.split('-')[0];\n\n var newDict = _module.dictionary;\n var newFormat = _module.format;\n var hasDict = newDict && Object.keys(newDict).length;\n var hasFormat = newFormat && Object.keys(newFormat).length;\n\n var locales = exports.localeRegistry;\n\n var localeObj = locales[locale];\n if(!localeObj) locales[locale] = localeObj = {};\n\n // Should we use this dict for the base locale?\n // In case we're overwriting a previous dict for this locale, check\n // whether the base matches the full locale dict now. If we're not\n // overwriting, locales[locale] is undefined so this just checks if\n // baseLocale already had a dict or not.\n // Same logic for dateFormats\n if(baseLocale !== locale) {\n var baseLocaleObj = locales[baseLocale];\n if(!baseLocaleObj) locales[baseLocale] = baseLocaleObj = {};\n\n if(hasDict && baseLocaleObj.dictionary === localeObj.dictionary) {\n baseLocaleObj.dictionary = newDict;\n }\n if(hasFormat && baseLocaleObj.format === localeObj.format) {\n baseLocaleObj.format = newFormat;\n }\n }\n\n if(hasDict) localeObj.dictionary = newDict;\n if(hasFormat) localeObj.format = newFormat;\n}\n\nfunction findArrayRegexps(_module) {\n if(_module.layoutAttributes) {\n var arrayAttrRegexps = _module.layoutAttributes._arrayAttrRegexps;\n if(arrayAttrRegexps) {\n for(var i = 0; i < arrayAttrRegexps.length; i++) {\n pushUnique(exports.layoutArrayRegexes, arrayAttrRegexps[i]);\n }\n }\n }\n}\n\nfunction mergeComponentAttrsToTrace(componentName, traceType) {\n var componentSchema = exports.componentsRegistry[componentName].schema;\n if(!componentSchema || !componentSchema.traces) return;\n\n var traceAttrs = componentSchema.traces[traceType];\n if(traceAttrs) {\n extendDeepAll(exports.modules[traceType]._module.attributes, traceAttrs);\n }\n}\n\nfunction mergeComponentAttrsToTransform(componentName, transformType) {\n var componentSchema = exports.componentsRegistry[componentName].schema;\n if(!componentSchema || !componentSchema.transforms) return;\n\n var transformAttrs = componentSchema.transforms[transformType];\n if(transformAttrs) {\n extendDeepAll(exports.transformsRegistry[transformType].attributes, transformAttrs);\n }\n}\n\nfunction mergeComponentAttrsToSubplot(componentName, subplotName) {\n var componentSchema = exports.componentsRegistry[componentName].schema;\n if(!componentSchema || !componentSchema.subplots) return;\n\n var subplotModule = exports.subplotsRegistry[subplotName];\n var subplotAttrs = subplotModule.layoutAttributes;\n var subplotAttr = subplotModule.attr === 'subplot' ? subplotModule.name : subplotModule.attr;\n if(Array.isArray(subplotAttr)) subplotAttr = subplotAttr[0];\n\n var componentLayoutAttrs = componentSchema.subplots[subplotAttr];\n if(subplotAttrs && componentLayoutAttrs) {\n extendDeepAll(subplotAttrs, componentLayoutAttrs);\n }\n}\n\nfunction getTraceType(traceType) {\n if(typeof traceType === 'object') traceType = traceType.type;\n return traceType;\n}\n\n\n/***/ }),\n\n/***/ \"372f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"1735\");\n\n\n/***/ }),\n\n/***/ \"375c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = typeof navigator !== 'undefined' &&\n\t(/MSIE/.test(navigator.userAgent) || /Trident\\//.test(navigator.appVersion));\n\n\n/***/ }),\n\n/***/ \"37bf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar isArray1D = __webpack_require__(\"fc26\").isArray1D;\n\nmodule.exports = function handleXYDefaults(traceIn, traceOut, coerce) {\n var x = coerce('x');\n var hasX = x && x.length;\n var y = coerce('y');\n var hasY = y && y.length;\n if(!hasX && !hasY) return false;\n\n traceOut._cheater = !x;\n\n if((!hasX || isArray1D(x)) && (!hasY || isArray1D(y))) {\n var len = hasX ? x.length : Infinity;\n if(hasY) len = Math.min(len, y.length);\n if(traceOut.a && traceOut.a.length) len = Math.min(len, traceOut.a.length);\n if(traceOut.b && traceOut.b.length) len = Math.min(len, traceOut.b.length);\n traceOut._length = len;\n } else traceOut._length = null;\n\n return true;\n};\n\n\n/***/ }),\n\n/***/ \"37cd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*eslint new-cap:0*/\nvar dtype = __webpack_require__(\"7831\")\n\nmodule.exports = flattenVertexData\n\nfunction flattenVertexData (data, output, offset) {\n if (!data) throw new TypeError('must specify data as first parameter')\n offset = +(offset || 0) | 0\n\n if (Array.isArray(data) && (data[0] && typeof data[0][0] === 'number')) {\n var dim = data[0].length\n var length = data.length * dim\n var i, j, k, l\n\n // no output specified, create a new typed array\n if (!output || typeof output === 'string') {\n output = new (dtype(output || 'float32'))(length + offset)\n }\n\n var dstLength = output.length - offset\n if (length !== dstLength) {\n throw new Error('source length ' + length + ' (' + dim + 'x' + data.length + ')' +\n ' does not match destination length ' + dstLength)\n }\n\n for (i = 0, k = offset; i < data.length; i++) {\n for (j = 0; j < dim; j++) {\n output[k++] = data[i][j] === null ? NaN : data[i][j]\n }\n }\n } else {\n if (!output || typeof output === 'string') {\n // no output, create a new one\n var Ctor = dtype(output || 'float32')\n\n // handle arrays separately due to possible nulls\n if (Array.isArray(data) || output === 'array') {\n output = new Ctor(data.length + offset)\n for (i = 0, k = offset, l = output.length; k < l; k++, i++) {\n output[k] = data[i] === null ? NaN : data[i]\n }\n } else {\n if (offset === 0) {\n output = new Ctor(data)\n } else {\n output = new Ctor(data.length + offset)\n\n output.set(data, offset)\n }\n }\n } else {\n // store output in existing array\n output.set(data, offset)\n }\n }\n\n return output\n}\n\n\n/***/ }),\n\n/***/ \"37d1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\n\n/**\n * Factory function for checking component arrays for subplot references.\n *\n * @param {string} containerArrayName: the top-level array in gd.layout to check\n * If an item in this container is found that references a cartesian x and/or y axis,\n * ensure cartesian is marked as a base plot module and record the axes (and subplot\n * if both refs are axes) in gd._fullLayout\n *\n * @return {function}: with args layoutIn (gd.layout) and layoutOut (gd._fullLayout)\n * as expected of a component includeBasePlot method\n */\nmodule.exports = function makeIncludeComponents(containerArrayName) {\n return function includeComponents(layoutIn, layoutOut) {\n var array = layoutIn[containerArrayName];\n if(!Array.isArray(array)) return;\n\n var Cartesian = Registry.subplotsRegistry.cartesian;\n var idRegex = Cartesian.idRegex;\n var subplots = layoutOut._subplots;\n var xaList = subplots.xaxis;\n var yaList = subplots.yaxis;\n var cartesianList = subplots.cartesian;\n var hasCartesianOrGL2D = layoutOut._has('cartesian') || layoutOut._has('gl2d');\n\n for(var i = 0; i < array.length; i++) {\n var itemi = array[i];\n if(!Lib.isPlainObject(itemi)) continue;\n\n var xref = itemi.xref;\n var yref = itemi.yref;\n\n var hasXref = idRegex.x.test(xref);\n var hasYref = idRegex.y.test(yref);\n if(hasXref || hasYref) {\n if(!hasCartesianOrGL2D) Lib.pushUnique(layoutOut._basePlotModules, Cartesian);\n\n var newAxis = false;\n if(hasXref && xaList.indexOf(xref) === -1) {\n xaList.push(xref);\n newAxis = true;\n }\n if(hasYref && yaList.indexOf(yref) === -1) {\n yaList.push(yref);\n newAxis = true;\n }\n\n /*\n * Notice the logic here: only add a subplot for a component if\n * it's referencing both x and y axes AND it's creating a new axis\n * so for example if your plot already has xy and x2y2, an annotation\n * on x2y or xy2 will not create a new subplot.\n */\n if(newAxis && hasXref && hasYref) {\n cartesianList.push(xref + yref);\n }\n }\n }\n };\n};\n\n\n/***/ }),\n\n/***/ \"37e3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nmodule.exports = {\n barmode: {\n valType: 'enumerated',\n values: ['stack', 'group', 'overlay', 'relative'],\n dflt: 'group',\n \n editType: 'calc',\n \n },\n barnorm: {\n valType: 'enumerated',\n values: ['', 'fraction', 'percent'],\n dflt: '',\n \n editType: 'calc',\n \n },\n bargap: {\n valType: 'number',\n min: 0,\n max: 1,\n \n editType: 'calc',\n \n },\n bargroupgap: {\n valType: 'number',\n min: 0,\n max: 1,\n dflt: 0,\n \n editType: 'calc',\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"37e8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar anObject = __webpack_require__(\"825a\");\nvar objectKeys = __webpack_require__(\"df75\");\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"3802\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar Color = __webpack_require__(\"d115\");\nvar isArrayOrTypedArray = __webpack_require__(\"fc26\").isArrayOrTypedArray;\n\nmodule.exports = function fillColorDefaults(traceIn, traceOut, defaultColor, coerce) {\n var inheritColorFromMarker = false;\n\n if(traceOut.marker) {\n // don't try to inherit a color array\n var markerColor = traceOut.marker.color;\n var markerLineColor = (traceOut.marker.line || {}).color;\n\n if(markerColor && !isArrayOrTypedArray(markerColor)) {\n inheritColorFromMarker = markerColor;\n } else if(markerLineColor && !isArrayOrTypedArray(markerLineColor)) {\n inheritColorFromMarker = markerLineColor;\n }\n }\n\n coerce('fillcolor', Color.addOpacity(\n (traceOut.line || {}).color ||\n inheritColorFromMarker ||\n defaultColor, 0.5\n ));\n};\n\n\n/***/ }),\n\n/***/ \"388d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"feb0\");\n\n\n/***/ }),\n\n/***/ \"38eb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar glslify = __webpack_require__(\"e98f\")\n\nvar triVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, normal;\\nattribute vec4 color;\\nattribute vec2 uv;\\n\\nuniform mat4 model\\n , view\\n , projection\\n , inverseModel;\\nuniform vec3 eyePosition\\n , lightPosition;\\n\\nvarying vec3 f_normal\\n , f_lightDirection\\n , f_eyeDirection\\n , f_data;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvec4 project(vec3 p) {\\n return projection * view * model * vec4(p, 1.0);\\n}\\n\\nvoid main() {\\n gl_Position = project(position);\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * vec4(position , 1.0);\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\\n\\n f_color = color;\\n f_data = position;\\n f_uv = uv;\\n}\\n\"])\nvar triFragSrc = glslify([\"#extension GL_OES_standard_derivatives : enable\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat cookTorranceSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness,\\n float fresnel) {\\n\\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\n\\n //Half angle vector\\n vec3 H = normalize(lightDirection + viewDirection);\\n\\n //Geometric term\\n float NdotH = max(dot(surfaceNormal, H), 0.0);\\n float VdotH = max(dot(viewDirection, H), 0.000001);\\n float LdotH = max(dot(lightDirection, H), 0.000001);\\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\\n float G = min(1.0, min(G1, G2));\\n \\n //Distribution term\\n float D = beckmannDistribution(NdotH, roughness);\\n\\n //Fresnel term\\n float F = pow(1.0 - VdotN, fresnel);\\n\\n //Multiply terms and done\\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\\n}\\n\\n//#pragma glslify: beckmann = require(glsl-specular-beckmann) // used in gl-surface3d\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float roughness\\n , fresnel\\n , kambient\\n , kdiffuse\\n , kspecular;\\nuniform sampler2D texture;\\n\\nvarying vec3 f_normal\\n , f_lightDirection\\n , f_eyeDirection\\n , f_data;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (f_color.a == 0.0 ||\\n outOfRange(clipBounds[0], clipBounds[1], f_data)\\n ) discard;\\n\\n vec3 N = normalize(f_normal);\\n vec3 L = normalize(f_lightDirection);\\n vec3 V = normalize(f_eyeDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\\n //float specular = max(0.0, beckmann(L, V, N, roughness)); // used in gl-surface3d\\n\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n vec4 surfaceColor = vec4(f_color.rgb, 1.0) * texture2D(texture, f_uv);\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = litColor * f_color.a;\\n}\\n\"])\nvar edgeVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 uv;\\n\\nuniform mat4 model, view, projection;\\n\\nvarying vec4 f_color;\\nvarying vec3 f_data;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n f_color = color;\\n f_data = position;\\n f_uv = uv;\\n}\"])\nvar edgeFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform sampler2D texture;\\nuniform float opacity;\\n\\nvarying vec4 f_color;\\nvarying vec3 f_data;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;\\n\\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\\n}\"])\nvar pointVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 uv;\\nattribute float pointSize;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0.0, 0.0 ,0.0 ,0.0);\\n } else {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n }\\n gl_PointSize = pointSize;\\n f_color = color;\\n f_uv = uv;\\n}\"])\nvar pointFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform sampler2D texture;\\nuniform float opacity;\\n\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n vec2 pointR = gl_PointCoord.xy - vec2(0.5, 0.5);\\n if(dot(pointR, pointR) > 0.25) {\\n discard;\\n }\\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\\n}\"])\nvar pickVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n f_id = id;\\n f_position = position;\\n}\"])\nvar pickFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n\\n gl_FragColor = vec4(pickId, f_id.xyz);\\n}\"])\nvar pickPointVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute float pointSize;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0.0, 0.0, 0.0, 0.0);\\n } else {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n gl_PointSize = pointSize;\\n }\\n f_id = id;\\n f_position = position;\\n}\"])\nvar contourVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\n\\nuniform mat4 model, view, projection;\\n\\nvoid main() {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n}\"])\nvar contourFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform vec3 contourColor;\\n\\nvoid main() {\\n gl_FragColor = vec4(contourColor, 1.0);\\n}\\n\"])\n\nexports.meshShader = {\n vertex: triVertSrc,\n fragment: triFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'},\n {name: 'normal', type: 'vec3'},\n {name: 'color', type: 'vec4'},\n {name: 'uv', type: 'vec2'}\n ]\n}\nexports.wireShader = {\n vertex: edgeVertSrc,\n fragment: edgeFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'},\n {name: 'color', type: 'vec4'},\n {name: 'uv', type: 'vec2'}\n ]\n}\nexports.pointShader = {\n vertex: pointVertSrc,\n fragment: pointFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'},\n {name: 'color', type: 'vec4'},\n {name: 'uv', type: 'vec2'},\n {name: 'pointSize', type: 'float'}\n ]\n}\nexports.pickShader = {\n vertex: pickVertSrc,\n fragment: pickFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'},\n {name: 'id', type: 'vec4'}\n ]\n}\nexports.pointPickShader = {\n vertex: pickPointVertSrc,\n fragment: pickFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'},\n {name: 'pointSize', type: 'float'},\n {name: 'id', type: 'vec4'}\n ]\n}\nexports.contourShader = {\n vertex: contourVertSrc,\n fragment: contourFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'}\n ]\n}\n\n\n/***/ }),\n\n/***/ \"391b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Fx = __webpack_require__(\"a5c4\");\nvar Registry = __webpack_require__(\"371e\");\nvar getTraceColor = __webpack_require__(\"feed\");\nvar Color = __webpack_require__(\"d115\");\nvar fillText = Lib.fillText;\n\nmodule.exports = function hoverPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var xpx = xa.c2p(xval);\n var ypx = ya.c2p(yval);\n var pt = [xpx, ypx];\n var hoveron = trace.hoveron || '';\n var minRad = (trace.mode.indexOf('markers') !== -1) ? 3 : 0.5;\n\n // look for points to hover on first, then take fills only if we\n // didn't find a point\n if(hoveron.indexOf('points') !== -1) {\n var dx = function(di) {\n // dx and dy are used in compare modes - here we want to always\n // prioritize the closest data point, at least as long as markers are\n // the same size or nonexistent, but still try to prioritize small markers too.\n var rad = Math.max(3, di.mrc || 0);\n var kink = 1 - 1 / rad;\n var dxRaw = Math.abs(xa.c2p(di.x) - xpx);\n var d = (dxRaw < rad) ? (kink * dxRaw / rad) : (dxRaw - rad + kink);\n return d;\n };\n var dy = function(di) {\n var rad = Math.max(3, di.mrc || 0);\n var kink = 1 - 1 / rad;\n var dyRaw = Math.abs(ya.c2p(di.y) - ypx);\n return (dyRaw < rad) ? (kink * dyRaw / rad) : (dyRaw - rad + kink);\n };\n var dxy = function(di) {\n // scatter points: d.mrc is the calculated marker radius\n // adjust the distance so if you're inside the marker it\n // always will show up regardless of point size, but\n // prioritize smaller points\n var rad = Math.max(minRad, di.mrc || 0);\n var dx = xa.c2p(di.x) - xpx;\n var dy = ya.c2p(di.y) - ypx;\n return Math.max(Math.sqrt(dx * dx + dy * dy) - rad, 1 - minRad / rad);\n };\n var distfn = Fx.getDistanceFunction(hovermode, dx, dy, dxy);\n\n Fx.getClosest(cd, distfn, pointData);\n\n // skip the rest (for this trace) if we didn't find a close point\n if(pointData.index !== false) {\n // the closest data point\n var di = cd[pointData.index];\n var xc = xa.c2p(di.x, true);\n var yc = ya.c2p(di.y, true);\n var rad = di.mrc || 1;\n\n // now we're done using the whole `calcdata` array, replace the\n // index with the original index (in case of inserted point from\n // stacked area)\n pointData.index = di.i;\n\n var orientation = cd[0].t.orientation;\n // TODO: for scatter and bar, option to show (sub)totals and\n // raw data? Currently stacked and/or normalized bars just show\n // the normalized individual sizes, so that's what I'm doing here\n // for now.\n var sizeVal = orientation && (di.sNorm || di.s);\n var xLabelVal = (orientation === 'h') ? sizeVal : di.x;\n var yLabelVal = (orientation === 'v') ? sizeVal : di.y;\n\n Lib.extendFlat(pointData, {\n color: getTraceColor(trace, di),\n\n x0: xc - rad,\n x1: xc + rad,\n xLabelVal: xLabelVal,\n\n y0: yc - rad,\n y1: yc + rad,\n yLabelVal: yLabelVal,\n\n spikeDistance: dxy(di),\n hovertemplate: trace.hovertemplate\n });\n\n fillText(di, trace, pointData);\n Registry.getComponentMethod('errorbars', 'hoverInfo')(di, trace, pointData);\n\n return [pointData];\n }\n }\n\n // even if hoveron is 'fills', only use it if we have polygons too\n if(hoveron.indexOf('fills') !== -1 && trace._polygons) {\n var polygons = trace._polygons;\n var polygonsIn = [];\n var inside = false;\n var xmin = Infinity;\n var xmax = -Infinity;\n var ymin = Infinity;\n var ymax = -Infinity;\n\n var i, j, polygon, pts, xCross, x0, x1, y0, y1;\n\n for(i = 0; i < polygons.length; i++) {\n polygon = polygons[i];\n // TODO: this is not going to work right for curved edges, it will\n // act as though they're straight. That's probably going to need\n // the elements themselves to capture the events. Worth it?\n if(polygon.contains(pt)) {\n inside = !inside;\n // TODO: need better than just the overall bounding box\n polygonsIn.push(polygon);\n ymin = Math.min(ymin, polygon.ymin);\n ymax = Math.max(ymax, polygon.ymax);\n }\n }\n\n if(inside) {\n // constrain ymin/max to the visible plot, so the label goes\n // at the middle of the piece you can see\n ymin = Math.max(ymin, 0);\n ymax = Math.min(ymax, ya._length);\n\n // find the overall left-most and right-most points of the\n // polygon(s) we're inside at their combined vertical midpoint.\n // This is where we will draw the hover label.\n // Note that this might not be the vertical midpoint of the\n // whole trace, if it's disjoint.\n var yAvg = (ymin + ymax) / 2;\n for(i = 0; i < polygonsIn.length; i++) {\n pts = polygonsIn[i].pts;\n for(j = 1; j < pts.length; j++) {\n y0 = pts[j - 1][1];\n y1 = pts[j][1];\n if((y0 > yAvg) !== (y1 >= yAvg)) {\n x0 = pts[j - 1][0];\n x1 = pts[j][0];\n if(y1 - y0) {\n xCross = x0 + (x1 - x0) * (yAvg - y0) / (y1 - y0);\n xmin = Math.min(xmin, xCross);\n xmax = Math.max(xmax, xCross);\n }\n }\n }\n }\n\n // constrain xmin/max to the visible plot now too\n xmin = Math.max(xmin, 0);\n xmax = Math.min(xmax, xa._length);\n\n // get only fill or line color for the hover color\n var color = Color.defaultLine;\n if(Color.opacity(trace.fillcolor)) color = trace.fillcolor;\n else if(Color.opacity((trace.line || {}).color)) {\n color = trace.line.color;\n }\n\n Lib.extendFlat(pointData, {\n // never let a 2D override 1D type as closest point\n // also: no spikeDistance, it's not allowed for fills\n distance: pointData.maxHoverDistance,\n x0: xmin,\n x1: xmax,\n y0: yAvg,\n y1: yAvg,\n color: color,\n hovertemplate: false\n });\n\n delete pointData.index;\n\n if(trace.text && !Array.isArray(trace.text)) {\n pointData.text = String(trace.text);\n } else pointData.text = trace.name;\n\n return [pointData];\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"3936\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar pieCalc = __webpack_require__(\"86b8\");\n\nfunction calc(gd, trace) {\n return pieCalc.calc(gd, trace);\n}\n\nfunction crossTraceCalc(gd) {\n pieCalc.crossTraceCalc(gd, { type: 'funnelarea' });\n}\n\nmodule.exports = {\n calc: calc,\n crossTraceCalc: crossTraceCalc\n};\n\n\n/***/ }),\n\n/***/ \"399f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = __webpack_require__(1).Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n r.strip();\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})( false || module, this);\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"62e4\")(module)))\n\n/***/ }),\n\n/***/ \"3a04\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\n// make sure scene exists on subplot, return it\nmodule.exports = function sceneUpdate(gd, subplot) {\n var scene = subplot._scene;\n\n var resetOpts = {\n // number of traces in subplot, since scene:subplot -> 1:1\n count: 0,\n // whether scene requires init hook in plot call (dirty plot call)\n dirty: true,\n // last used options\n lineOptions: [],\n fillOptions: [],\n markerOptions: [],\n markerSelectedOptions: [],\n markerUnselectedOptions: [],\n errorXOptions: [],\n errorYOptions: [],\n textOptions: [],\n textSelectedOptions: [],\n textUnselectedOptions: [],\n // selection batches\n selectBatch: [],\n unselectBatch: []\n };\n\n // regl- component stubs, initialized in dirty plot call\n var initOpts = {\n fill2d: false,\n scatter2d: false,\n error2d: false,\n line2d: false,\n glText: false,\n select2d: false\n };\n\n if(!subplot._scene) {\n scene = subplot._scene = {};\n\n scene.init = function init() {\n Lib.extendFlat(scene, initOpts, resetOpts);\n };\n\n scene.init();\n\n // apply new option to all regl components (used on drag)\n scene.update = function update(opt) {\n var opts = Lib.repeat(opt, scene.count);\n\n if(scene.fill2d) scene.fill2d.update(opts);\n if(scene.scatter2d) scene.scatter2d.update(opts);\n if(scene.line2d) scene.line2d.update(opts);\n if(scene.error2d) scene.error2d.update(opts.concat(opts));\n if(scene.select2d) scene.select2d.update(opts);\n if(scene.glText) {\n for(var i = 0; i < scene.count; i++) {\n scene.glText[i].update(opt);\n }\n }\n };\n\n // draw traces in proper order\n scene.draw = function draw() {\n var count = scene.count;\n var fill2d = scene.fill2d;\n var error2d = scene.error2d;\n var line2d = scene.line2d;\n var scatter2d = scene.scatter2d;\n var glText = scene.glText;\n var select2d = scene.select2d;\n var selectBatch = scene.selectBatch;\n var unselectBatch = scene.unselectBatch;\n\n for(var i = 0; i < count; i++) {\n if(fill2d && scene.fillOrder[i]) {\n fill2d.draw(scene.fillOrder[i]);\n }\n if(line2d && scene.lineOptions[i]) {\n line2d.draw(i);\n }\n if(error2d) {\n if(scene.errorXOptions[i]) error2d.draw(i);\n if(scene.errorYOptions[i]) error2d.draw(i + count);\n }\n if(scatter2d && scene.markerOptions[i]) {\n if(unselectBatch[i].length) {\n var arg = Lib.repeat([], scene.count);\n arg[i] = unselectBatch[i];\n scatter2d.draw(arg);\n } else if(!selectBatch[i].length) {\n scatter2d.draw(i);\n }\n }\n if(glText[i] && scene.textOptions[i]) {\n glText[i].render();\n }\n }\n\n if(select2d) {\n select2d.draw(selectBatch);\n }\n\n scene.dirty = false;\n };\n\n // remove scene resources\n scene.destroy = function destroy() {\n if(scene.fill2d && scene.fill2d.destroy) scene.fill2d.destroy();\n if(scene.scatter2d && scene.scatter2d.destroy) scene.scatter2d.destroy();\n if(scene.error2d && scene.error2d.destroy) scene.error2d.destroy();\n if(scene.line2d && scene.line2d.destroy) scene.line2d.destroy();\n if(scene.select2d && scene.select2d.destroy) scene.select2d.destroy();\n if(scene.glText) {\n scene.glText.forEach(function(text) {\n if(text.destroy) text.destroy();\n });\n }\n\n scene.lineOptions = null;\n scene.fillOptions = null;\n scene.markerOptions = null;\n scene.markerSelectedOptions = null;\n scene.markerUnselectedOptions = null;\n scene.errorXOptions = null;\n scene.errorYOptions = null;\n scene.textOptions = null;\n scene.textSelectedOptions = null;\n scene.textUnselectedOptions = null;\n\n scene.selectBatch = null;\n scene.unselectBatch = null;\n\n // we can't just delete _scene, because `destroy` is called in the\n // middle of supplyDefaults, before relinkPrivateKeys which will put it back.\n subplot._scene = null;\n };\n }\n\n // in case if we have scene from the last calc - reset data\n if(!scene.dirty) {\n Lib.extendFlat(scene, resetOpts);\n }\n\n return scene;\n};\n\n\n/***/ }),\n\n/***/ \"3a19\":\n/***/ (function(module, exports) {\n\nmodule.exports = round\n\n/**\n * Math.round the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to round\n * @returns {vec3} out\n */\nfunction round(out, a) {\n out[0] = Math.round(a[0])\n out[1] = Math.round(a[1])\n out[2] = Math.round(a[2])\n return out\n}\n\n\n/***/ }),\n\n/***/ \"3a55\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = findZeroCrossings\n\nvar core = __webpack_require__(\"b530\")\n\nfunction findZeroCrossings(array, level) {\n var cross = []\n level = +level || 0.0\n core(array.hi(array.shape[0]-1), cross, level)\n return cross\n}\n\n/***/ }),\n\n/***/ \"3a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Lib = __webpack_require__(\"fc26\");\nvar extendDeepAll = Lib.extendDeepAll;\nvar MID_SHIFT = __webpack_require__(\"63dc\").MID_SHIFT;\n\nvar µ = module.exports = { version: '0.2.2' };\n\nµ.Axis = function module() {\n var config = {\n data: [],\n layout: {}\n }, inputConfig = {}, liveConfig = {};\n var svg, container, dispatch = d3.dispatch('hover'), radialScale, angularScale;\n var exports = {};\n function render(_container) {\n container = _container || container;\n var data = config.data;\n var axisConfig = config.layout;\n if (typeof container == 'string' || container.nodeName) container = d3.select(container);\n container.datum(data).each(function(_data, _index) {\n var dataOriginal = _data.slice();\n liveConfig = {\n data: µ.util.cloneJson(dataOriginal),\n layout: µ.util.cloneJson(axisConfig)\n };\n var colorIndex = 0;\n dataOriginal.forEach(function(d, i) {\n if (!d.color) {\n d.color = axisConfig.defaultColorRange[colorIndex];\n colorIndex = (colorIndex + 1) % axisConfig.defaultColorRange.length;\n }\n if (!d.strokeColor) {\n d.strokeColor = d.geometry === 'LinePlot' ? d.color : d3.rgb(d.color).darker().toString();\n }\n liveConfig.data[i].color = d.color;\n liveConfig.data[i].strokeColor = d.strokeColor;\n liveConfig.data[i].strokeDash = d.strokeDash;\n liveConfig.data[i].strokeSize = d.strokeSize;\n });\n var data = dataOriginal.filter(function(d, i) {\n var visible = d.visible;\n return typeof visible === 'undefined' || visible === true;\n });\n var isStacked = false;\n var dataWithGroupId = data.map(function(d, i) {\n isStacked = isStacked || typeof d.groupId !== 'undefined';\n return d;\n });\n if (isStacked) {\n var grouped = d3.nest().key(function(d, i) {\n return typeof d.groupId != 'undefined' ? d.groupId : 'unstacked';\n }).entries(dataWithGroupId);\n var dataYStack = [];\n var stacked = grouped.map(function(d, i) {\n if (d.key === 'unstacked') return d.values; else {\n var prevArray = d.values[0].r.map(function(d, i) {\n return 0;\n });\n d.values.forEach(function(d, i, a) {\n d.yStack = [ prevArray ];\n dataYStack.push(prevArray);\n prevArray = µ.util.sumArrays(d.r, prevArray);\n });\n return d.values;\n }\n });\n data = d3.merge(stacked);\n }\n data.forEach(function(d, i) {\n d.t = Array.isArray(d.t[0]) ? d.t : [ d.t ];\n d.r = Array.isArray(d.r[0]) ? d.r : [ d.r ];\n });\n var radius = Math.min(axisConfig.width - axisConfig.margin.left - axisConfig.margin.right, axisConfig.height - axisConfig.margin.top - axisConfig.margin.bottom) / 2;\n radius = Math.max(10, radius);\n var chartCenter = [ axisConfig.margin.left + radius, axisConfig.margin.top + radius ];\n var extent;\n if (isStacked) {\n var highestStackedValue = d3.max(µ.util.sumArrays(µ.util.arrayLast(data).r[0], µ.util.arrayLast(dataYStack)));\n extent = [ 0, highestStackedValue ];\n } else extent = d3.extent(µ.util.flattenArray(data.map(function(d, i) {\n return d.r;\n })));\n if (axisConfig.radialAxis.domain != µ.DATAEXTENT) extent[0] = 0;\n radialScale = d3.scale.linear().domain(axisConfig.radialAxis.domain != µ.DATAEXTENT && axisConfig.radialAxis.domain ? axisConfig.radialAxis.domain : extent).range([ 0, radius ]);\n liveConfig.layout.radialAxis.domain = radialScale.domain();\n var angularDataMerged = µ.util.flattenArray(data.map(function(d, i) {\n return d.t;\n }));\n var isOrdinal = typeof angularDataMerged[0] === 'string';\n var ticks;\n if (isOrdinal) {\n angularDataMerged = µ.util.deduplicate(angularDataMerged);\n ticks = angularDataMerged.slice();\n angularDataMerged = d3.range(angularDataMerged.length);\n data = data.map(function(d, i) {\n var result = d;\n d.t = [ angularDataMerged ];\n if (isStacked) result.yStack = d.yStack;\n return result;\n });\n }\n var hasOnlyLineOrDotPlot = data.filter(function(d, i) {\n return d.geometry === 'LinePlot' || d.geometry === 'DotPlot';\n }).length === data.length;\n var needsEndSpacing = axisConfig.needsEndSpacing === null ? isOrdinal || !hasOnlyLineOrDotPlot : axisConfig.needsEndSpacing;\n var useProvidedDomain = axisConfig.angularAxis.domain && axisConfig.angularAxis.domain != µ.DATAEXTENT && !isOrdinal && axisConfig.angularAxis.domain[0] >= 0;\n var angularDomain = useProvidedDomain ? axisConfig.angularAxis.domain : d3.extent(angularDataMerged);\n var angularDomainStep = Math.abs(angularDataMerged[1] - angularDataMerged[0]);\n if (hasOnlyLineOrDotPlot && !isOrdinal) angularDomainStep = 0;\n var angularDomainWithPadding = angularDomain.slice();\n if (needsEndSpacing && isOrdinal) angularDomainWithPadding[1] += angularDomainStep;\n var tickCount = axisConfig.angularAxis.ticksCount || 4;\n if (tickCount > 8) tickCount = tickCount / (tickCount / 8) + tickCount % 8;\n if (axisConfig.angularAxis.ticksStep) {\n tickCount = (angularDomainWithPadding[1] - angularDomainWithPadding[0]) / tickCount;\n }\n var angularTicksStep = axisConfig.angularAxis.ticksStep || (angularDomainWithPadding[1] - angularDomainWithPadding[0]) / (tickCount * (axisConfig.minorTicks + 1));\n if (ticks) angularTicksStep = Math.max(Math.round(angularTicksStep), 1);\n if (!angularDomainWithPadding[2]) angularDomainWithPadding[2] = angularTicksStep;\n var angularAxisRange = d3.range.apply(this, angularDomainWithPadding);\n angularAxisRange = angularAxisRange.map(function(d, i) {\n return parseFloat(d.toPrecision(12));\n });\n angularScale = d3.scale.linear().domain(angularDomainWithPadding.slice(0, 2)).range(axisConfig.direction === 'clockwise' ? [ 0, 360 ] : [ 360, 0 ]);\n liveConfig.layout.angularAxis.domain = angularScale.domain();\n liveConfig.layout.angularAxis.endPadding = needsEndSpacing ? angularDomainStep : 0;\n svg = d3.select(this).select('svg.chart-root');\n if (typeof svg === 'undefined' || svg.empty()) {\n var skeleton = \"' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '\";\n var doc = new DOMParser().parseFromString(skeleton, 'application/xml');\n var newSvg = this.appendChild(this.ownerDocument.importNode(doc.documentElement, true));\n svg = d3.select(newSvg);\n }\n svg.select('.guides-group').style({\n 'pointer-events': 'none'\n });\n svg.select('.angular.axis-group').style({\n 'pointer-events': 'none'\n });\n svg.select('.radial.axis-group').style({\n 'pointer-events': 'none'\n });\n var chartGroup = svg.select('.chart-group');\n var lineStyle = {\n fill: 'none',\n stroke: axisConfig.tickColor\n };\n var fontStyle = {\n 'font-size': axisConfig.font.size,\n 'font-family': axisConfig.font.family,\n fill: axisConfig.font.color,\n 'text-shadow': [ '-1px 0px', '1px -1px', '-1px 1px', '1px 1px' ].map(function(d, i) {\n return ' ' + d + ' 0 ' + axisConfig.font.outlineColor;\n }).join(',')\n };\n var legendContainer;\n if (axisConfig.showLegend) {\n legendContainer = svg.select('.legend-group').attr({\n transform: 'translate(' + [ radius, axisConfig.margin.top ] + ')'\n }).style({\n display: 'block'\n });\n var elements = data.map(function(d, i) {\n var datumClone = µ.util.cloneJson(d);\n datumClone.symbol = d.geometry === 'DotPlot' ? d.dotType || 'circle' : d.geometry != 'LinePlot' ? 'square' : 'line';\n datumClone.visibleInLegend = typeof d.visibleInLegend === 'undefined' || d.visibleInLegend;\n datumClone.color = d.geometry === 'LinePlot' ? d.strokeColor : d.color;\n return datumClone;\n });\n\n µ.Legend().config({\n data: data.map(function(d, i) {\n return d.name || 'Element' + i;\n }),\n legendConfig: extendDeepAll({},\n µ.Legend.defaultConfig().legendConfig,\n {\n container: legendContainer,\n elements: elements,\n reverseOrder: axisConfig.legend.reverseOrder\n }\n )\n })();\n\n var legendBBox = legendContainer.node().getBBox();\n radius = Math.min(axisConfig.width - legendBBox.width - axisConfig.margin.left - axisConfig.margin.right, axisConfig.height - axisConfig.margin.top - axisConfig.margin.bottom) / 2;\n radius = Math.max(10, radius);\n chartCenter = [ axisConfig.margin.left + radius, axisConfig.margin.top + radius ];\n radialScale.range([ 0, radius ]);\n liveConfig.layout.radialAxis.domain = radialScale.domain();\n legendContainer.attr('transform', 'translate(' + [ chartCenter[0] + radius, chartCenter[1] - radius ] + ')');\n } else {\n legendContainer = svg.select('.legend-group').style({\n display: 'none'\n });\n }\n svg.attr({\n width: axisConfig.width,\n height: axisConfig.height\n }).style({\n opacity: axisConfig.opacity\n });\n chartGroup.attr('transform', 'translate(' + chartCenter + ')').style({\n cursor: 'crosshair'\n });\n var centeringOffset = [ (axisConfig.width - (axisConfig.margin.left + axisConfig.margin.right + radius * 2 + (legendBBox ? legendBBox.width : 0))) / 2, (axisConfig.height - (axisConfig.margin.top + axisConfig.margin.bottom + radius * 2)) / 2 ];\n centeringOffset[0] = Math.max(0, centeringOffset[0]);\n centeringOffset[1] = Math.max(0, centeringOffset[1]);\n svg.select('.outer-group').attr('transform', 'translate(' + centeringOffset + ')');\n if (axisConfig.title && axisConfig.title.text) {\n var title = svg.select('g.title-group text').style(fontStyle).text(axisConfig.title.text);\n var titleBBox = title.node().getBBox();\n title.attr({\n x: chartCenter[0] - titleBBox.width / 2,\n y: chartCenter[1] - radius - 20\n });\n }\n var radialAxis = svg.select('.radial.axis-group');\n if (axisConfig.radialAxis.gridLinesVisible) {\n var gridCircles = radialAxis.selectAll('circle.grid-circle').data(radialScale.ticks(5));\n gridCircles.enter().append('circle').attr({\n 'class': 'grid-circle'\n }).style(lineStyle);\n gridCircles.attr('r', radialScale);\n gridCircles.exit().remove();\n }\n radialAxis.select('circle.outside-circle').attr({\n r: radius\n }).style(lineStyle);\n var backgroundCircle = svg.select('circle.background-circle').attr({\n r: radius\n }).style({\n fill: axisConfig.backgroundColor,\n stroke: axisConfig.stroke\n });\n function currentAngle(d, i) {\n return angularScale(d) % 360 + axisConfig.orientation;\n }\n if (axisConfig.radialAxis.visible) {\n var axis = d3.svg.axis().scale(radialScale).ticks(5).tickSize(5);\n radialAxis.call(axis).attr({\n transform: 'rotate(' + axisConfig.radialAxis.orientation + ')'\n });\n radialAxis.selectAll('.domain').style(lineStyle);\n radialAxis.selectAll('g>text').text(function(d, i) {\n return this.textContent + axisConfig.radialAxis.ticksSuffix;\n }).style(fontStyle).style({\n 'text-anchor': 'start'\n }).attr({\n x: 0,\n y: 0,\n dx: 0,\n dy: 0,\n transform: function(d, i) {\n if (axisConfig.radialAxis.tickOrientation === 'horizontal') {\n return 'rotate(' + -axisConfig.radialAxis.orientation + ') translate(' + [ 0, fontStyle['font-size'] ] + ')';\n } else return 'translate(' + [ 0, fontStyle['font-size'] ] + ')';\n }\n });\n radialAxis.selectAll('g>line').style({\n stroke: 'black'\n });\n }\n var angularAxis = svg.select('.angular.axis-group').selectAll('g.angular-tick').data(angularAxisRange);\n var angularAxisEnter = angularAxis.enter().append('g').classed('angular-tick', true);\n angularAxis.attr({\n transform: function(d, i) {\n return 'rotate(' + currentAngle(d, i) + ')';\n }\n }).style({\n display: axisConfig.angularAxis.visible ? 'block' : 'none'\n });\n angularAxis.exit().remove();\n angularAxisEnter.append('line').classed('grid-line', true).classed('major', function(d, i) {\n return i % (axisConfig.minorTicks + 1) == 0;\n }).classed('minor', function(d, i) {\n return !(i % (axisConfig.minorTicks + 1) == 0);\n }).style(lineStyle);\n angularAxisEnter.selectAll('.minor').style({\n stroke: axisConfig.minorTickColor\n });\n angularAxis.select('line.grid-line').attr({\n x1: axisConfig.tickLength ? radius - axisConfig.tickLength : 0,\n x2: radius\n }).style({\n display: axisConfig.angularAxis.gridLinesVisible ? 'block' : 'none'\n });\n angularAxisEnter.append('text').classed('axis-text', true).style(fontStyle);\n var ticksText = angularAxis.select('text.axis-text').attr({\n x: radius + axisConfig.labelOffset,\n dy: MID_SHIFT + 'em',\n transform: function(d, i) {\n var angle = currentAngle(d, i);\n var rad = radius + axisConfig.labelOffset;\n var orient = axisConfig.angularAxis.tickOrientation;\n if (orient == 'horizontal') return 'rotate(' + -angle + ' ' + rad + ' 0)'; else if (orient == 'radial') return angle < 270 && angle > 90 ? 'rotate(180 ' + rad + ' 0)' : null; else return 'rotate(' + (angle <= 180 && angle > 0 ? -90 : 90) + ' ' + rad + ' 0)';\n }\n }).style({\n 'text-anchor': 'middle',\n display: axisConfig.angularAxis.labelsVisible ? 'block' : 'none'\n }).text(function(d, i) {\n if (i % (axisConfig.minorTicks + 1) != 0) return '';\n if (ticks) {\n return ticks[d] + axisConfig.angularAxis.ticksSuffix;\n } else return d + axisConfig.angularAxis.ticksSuffix;\n }).style(fontStyle);\n if (axisConfig.angularAxis.rewriteTicks) ticksText.text(function(d, i) {\n if (i % (axisConfig.minorTicks + 1) != 0) return '';\n return axisConfig.angularAxis.rewriteTicks(this.textContent, i);\n });\n var rightmostTickEndX = d3.max(chartGroup.selectAll('.angular-tick text')[0].map(function(d, i) {\n return d.getCTM().e + d.getBBox().width;\n }));\n legendContainer.attr({\n transform: 'translate(' + [ radius + rightmostTickEndX, axisConfig.margin.top ] + ')'\n });\n var hasGeometry = svg.select('g.geometry-group').selectAll('g').size() > 0;\n var geometryContainer = svg.select('g.geometry-group').selectAll('g.geometry').data(data);\n geometryContainer.enter().append('g').attr({\n 'class': function(d, i) {\n return 'geometry geometry' + i;\n }\n });\n geometryContainer.exit().remove();\n if (data[0] || hasGeometry) {\n var geometryConfigs = [];\n data.forEach(function(d, i) {\n var geometryConfig = {};\n geometryConfig.radialScale = radialScale;\n geometryConfig.angularScale = angularScale;\n geometryConfig.container = geometryContainer.filter(function(dB, iB) {\n return iB == i;\n });\n geometryConfig.geometry = d.geometry;\n geometryConfig.orientation = axisConfig.orientation;\n geometryConfig.direction = axisConfig.direction;\n geometryConfig.index = i;\n geometryConfigs.push({\n data: d,\n geometryConfig: geometryConfig\n });\n });\n var geometryConfigsGrouped = d3.nest().key(function(d, i) {\n return typeof d.data.groupId != 'undefined' || 'unstacked';\n }).entries(geometryConfigs);\n var geometryConfigsGrouped2 = [];\n geometryConfigsGrouped.forEach(function(d, i) {\n if (d.key === 'unstacked') geometryConfigsGrouped2 = geometryConfigsGrouped2.concat(d.values.map(function(d, i) {\n return [ d ];\n })); else geometryConfigsGrouped2.push(d.values);\n });\n geometryConfigsGrouped2.forEach(function(d, i) {\n var geometry;\n if (Array.isArray(d)) geometry = d[0].geometryConfig.geometry; else geometry = d.geometryConfig.geometry;\n var finalGeometryConfig = d.map(function(dB, iB) {\n return extendDeepAll(µ[geometry].defaultConfig(), dB);\n });\n µ[geometry]().config(finalGeometryConfig)();\n });\n }\n var guides = svg.select('.guides-group');\n var tooltipContainer = svg.select('.tooltips-group');\n var angularTooltip = µ.tooltipPanel().config({\n container: tooltipContainer,\n fontSize: 8\n })();\n var radialTooltip = µ.tooltipPanel().config({\n container: tooltipContainer,\n fontSize: 8\n })();\n var geometryTooltip = µ.tooltipPanel().config({\n container: tooltipContainer,\n hasTick: true\n })();\n var angularValue, radialValue;\n if (!isOrdinal) {\n var angularGuideLine = guides.select('line').attr({\n x1: 0,\n y1: 0,\n y2: 0\n }).style({\n stroke: 'grey',\n 'pointer-events': 'none'\n });\n chartGroup.on('mousemove.angular-guide', function(d, i) {\n var mouseAngle = µ.util.getMousePos(backgroundCircle).angle;\n angularGuideLine.attr({\n x2: -radius,\n transform: 'rotate(' + mouseAngle + ')'\n }).style({\n opacity: .5\n });\n var angleWithOriginOffset = (mouseAngle + 180 + 360 - axisConfig.orientation) % 360;\n angularValue = angularScale.invert(angleWithOriginOffset);\n var pos = µ.util.convertToCartesian(radius + 12, mouseAngle + 180);\n angularTooltip.text(µ.util.round(angularValue)).move([ pos[0] + chartCenter[0], pos[1] + chartCenter[1] ]);\n }).on('mouseout.angular-guide', function(d, i) {\n guides.select('line').style({\n opacity: 0\n });\n });\n }\n var angularGuideCircle = guides.select('circle').style({\n stroke: 'grey',\n fill: 'none'\n });\n chartGroup.on('mousemove.radial-guide', function(d, i) {\n var r = µ.util.getMousePos(backgroundCircle).radius;\n angularGuideCircle.attr({\n r: r\n }).style({\n opacity: .5\n });\n radialValue = radialScale.invert(µ.util.getMousePos(backgroundCircle).radius);\n var pos = µ.util.convertToCartesian(r, axisConfig.radialAxis.orientation);\n radialTooltip.text(µ.util.round(radialValue)).move([ pos[0] + chartCenter[0], pos[1] + chartCenter[1] ]);\n }).on('mouseout.radial-guide', function(d, i) {\n angularGuideCircle.style({\n opacity: 0\n });\n geometryTooltip.hide();\n angularTooltip.hide();\n radialTooltip.hide();\n });\n svg.selectAll('.geometry-group .mark').on('mouseover.tooltip', function(d, i) {\n var el = d3.select(this);\n var color = this.style.fill;\n var newColor = 'black';\n var opacity = this.style.opacity || 1;\n el.attr({\n 'data-opacity': opacity\n });\n if (color && color !== 'none') {\n el.attr({\n 'data-fill': color\n });\n newColor = d3.hsl(color).darker().toString();\n el.style({\n fill: newColor,\n opacity: 1\n });\n var textData = {\n t: µ.util.round(d[0]),\n r: µ.util.round(d[1])\n };\n if (isOrdinal) textData.t = ticks[d[0]];\n var text = 't: ' + textData.t + ', r: ' + textData.r;\n var bbox = this.getBoundingClientRect();\n var svgBBox = svg.node().getBoundingClientRect();\n var pos = [ bbox.left + bbox.width / 2 - centeringOffset[0] - svgBBox.left, bbox.top + bbox.height / 2 - centeringOffset[1] - svgBBox.top ];\n geometryTooltip.config({\n color: newColor\n }).text(text);\n geometryTooltip.move(pos);\n } else {\n color = this.style.stroke || 'black';\n el.attr({\n 'data-stroke': color\n });\n newColor = d3.hsl(color).darker().toString();\n el.style({\n stroke: newColor,\n opacity: 1\n });\n }\n }).on('mousemove.tooltip', function(d, i) {\n if (d3.event.which != 0) return false;\n if (d3.select(this).attr('data-fill')) geometryTooltip.show();\n }).on('mouseout.tooltip', function(d, i) {\n geometryTooltip.hide();\n var el = d3.select(this);\n var fillColor = el.attr('data-fill');\n if (fillColor) el.style({\n fill: fillColor,\n opacity: el.attr('data-opacity')\n }); else el.style({\n stroke: el.attr('data-stroke'),\n opacity: el.attr('data-opacity')\n });\n });\n });\n return exports;\n }\n exports.render = function(_container) {\n render(_container);\n return this;\n };\n exports.config = function(_x) {\n if (!arguments.length) return config;\n var xClone = µ.util.cloneJson(_x);\n xClone.data.forEach(function(d, i) {\n if (!config.data[i]) config.data[i] = {};\n extendDeepAll(config.data[i], µ.Axis.defaultConfig().data[0]);\n extendDeepAll(config.data[i], d);\n });\n extendDeepAll(config.layout, µ.Axis.defaultConfig().layout);\n extendDeepAll(config.layout, xClone.layout);\n return this;\n };\n exports.getLiveConfig = function() {\n return liveConfig;\n };\n exports.getinputConfig = function() {\n return inputConfig;\n };\n exports.radialScale = function(_x) {\n return radialScale;\n };\n exports.angularScale = function(_x) {\n return angularScale;\n };\n exports.svg = function() {\n return svg;\n };\n d3.rebind(exports, dispatch, 'on');\n return exports;\n};\n\nµ.Axis.defaultConfig = function(d, i) {\n var config = {\n data: [ {\n t: [ 1, 2, 3, 4 ],\n r: [ 10, 11, 12, 13 ],\n name: 'Line1',\n geometry: 'LinePlot',\n color: null,\n strokeDash: 'solid',\n strokeColor: null,\n strokeSize: '1',\n visibleInLegend: true,\n opacity: 1\n } ],\n layout: {\n defaultColorRange: d3.scale.category10().range(),\n title: null,\n height: 450,\n width: 500,\n margin: {\n top: 40,\n right: 40,\n bottom: 40,\n left: 40\n },\n font: {\n size: 12,\n color: 'gray',\n outlineColor: 'white',\n family: 'Tahoma, sans-serif'\n },\n direction: 'clockwise',\n orientation: 0,\n labelOffset: 10,\n radialAxis: {\n domain: null,\n orientation: -45,\n ticksSuffix: '',\n visible: true,\n gridLinesVisible: true,\n tickOrientation: 'horizontal',\n rewriteTicks: null\n },\n angularAxis: {\n domain: [ 0, 360 ],\n ticksSuffix: '',\n visible: true,\n gridLinesVisible: true,\n labelsVisible: true,\n tickOrientation: 'horizontal',\n rewriteTicks: null,\n ticksCount: null,\n ticksStep: null\n },\n minorTicks: 0,\n tickLength: null,\n tickColor: 'silver',\n minorTickColor: '#eee',\n backgroundColor: 'none',\n needsEndSpacing: null,\n showLegend: true,\n legend: {\n reverseOrder: false\n },\n opacity: 1\n }\n };\n return config;\n};\n\nµ.util = {};\n\nµ.DATAEXTENT = 'dataExtent';\n\nµ.AREA = 'AreaChart';\n\nµ.LINE = 'LinePlot';\n\nµ.DOT = 'DotPlot';\n\nµ.BAR = 'BarChart';\n\nµ.util._override = function(_objA, _objB) {\n for (var x in _objA) if (x in _objB) _objB[x] = _objA[x];\n};\n\nµ.util._extend = function(_objA, _objB) {\n for (var x in _objA) _objB[x] = _objA[x];\n};\n\nµ.util._rndSnd = function() {\n return Math.random() * 2 - 1 + (Math.random() * 2 - 1) + (Math.random() * 2 - 1);\n};\n\nµ.util.dataFromEquation2 = function(_equation, _step) {\n var step = _step || 6;\n var data = d3.range(0, 360 + step, step).map(function(deg, index) {\n var theta = deg * Math.PI / 180;\n var radius = _equation(theta);\n return [ deg, radius ];\n });\n return data;\n};\n\nµ.util.dataFromEquation = function(_equation, _step, _name) {\n var step = _step || 6;\n var t = [], r = [];\n d3.range(0, 360 + step, step).forEach(function(deg, index) {\n var theta = deg * Math.PI / 180;\n var radius = _equation(theta);\n t.push(deg);\n r.push(radius);\n });\n var result = {\n t: t,\n r: r\n };\n if (_name) result.name = _name;\n return result;\n};\n\nµ.util.ensureArray = function(_val, _count) {\n if (typeof _val === 'undefined') return null;\n var arr = [].concat(_val);\n return d3.range(_count).map(function(d, i) {\n return arr[i] || arr[0];\n });\n};\n\nµ.util.fillArrays = function(_obj, _valueNames, _count) {\n _valueNames.forEach(function(d, i) {\n _obj[d] = µ.util.ensureArray(_obj[d], _count);\n });\n return _obj;\n};\n\nµ.util.cloneJson = function(json) {\n return JSON.parse(JSON.stringify(json));\n};\n\nµ.util.validateKeys = function(obj, keys) {\n if (typeof keys === 'string') keys = keys.split('.');\n var next = keys.shift();\n return obj[next] && (!keys.length || objHasKeys(obj[next], keys));\n};\n\nµ.util.sumArrays = function(a, b) {\n return d3.zip(a, b).map(function(d, i) {\n return d3.sum(d);\n });\n};\n\nµ.util.arrayLast = function(a) {\n return a[a.length - 1];\n};\n\nµ.util.arrayEqual = function(a, b) {\n var i = Math.max(a.length, b.length, 1);\n while (i-- >= 0 && a[i] === b[i]) ;\n return i === -2;\n};\n\nµ.util.flattenArray = function(arr) {\n var r = [];\n while (!µ.util.arrayEqual(r, arr)) {\n r = arr;\n arr = [].concat.apply([], arr);\n }\n return arr;\n};\n\nµ.util.deduplicate = function(arr) {\n return arr.filter(function(v, i, a) {\n return a.indexOf(v) == i;\n });\n};\n\nµ.util.convertToCartesian = function(radius, theta) {\n var thetaRadians = theta * Math.PI / 180;\n var x = radius * Math.cos(thetaRadians);\n var y = radius * Math.sin(thetaRadians);\n return [ x, y ];\n};\n\nµ.util.round = function(_value, _digits) {\n var digits = _digits || 2;\n var mult = Math.pow(10, digits);\n return Math.round(_value * mult) / mult;\n};\n\nµ.util.getMousePos = function(_referenceElement) {\n var mousePos = d3.mouse(_referenceElement.node());\n var mouseX = mousePos[0];\n var mouseY = mousePos[1];\n var mouse = {};\n mouse.x = mouseX;\n mouse.y = mouseY;\n mouse.pos = mousePos;\n mouse.angle = (Math.atan2(mouseY, mouseX) + Math.PI) * 180 / Math.PI;\n mouse.radius = Math.sqrt(mouseX * mouseX + mouseY * mouseY);\n return mouse;\n};\n\nµ.util.duplicatesCount = function(arr) {\n var uniques = {}, val;\n var dups = {};\n for (var i = 0, len = arr.length; i < len; i++) {\n val = arr[i];\n if (val in uniques) {\n uniques[val]++;\n dups[val] = uniques[val];\n } else {\n uniques[val] = 1;\n }\n }\n return dups;\n};\n\nµ.util.duplicates = function(arr) {\n return Object.keys(µ.util.duplicatesCount(arr));\n};\n\nµ.util.translator = function(obj, sourceBranch, targetBranch, reverse) {\n if (reverse) {\n var targetBranchCopy = targetBranch.slice();\n targetBranch = sourceBranch;\n sourceBranch = targetBranchCopy;\n }\n var value = sourceBranch.reduce(function(previousValue, currentValue) {\n if (typeof previousValue != 'undefined') return previousValue[currentValue];\n }, obj);\n if (typeof value === 'undefined') return;\n sourceBranch.reduce(function(previousValue, currentValue, index) {\n if (typeof previousValue == 'undefined') return;\n if (index === sourceBranch.length - 1) delete previousValue[currentValue];\n return previousValue[currentValue];\n }, obj);\n targetBranch.reduce(function(previousValue, currentValue, index) {\n if (typeof previousValue[currentValue] === 'undefined') previousValue[currentValue] = {};\n if (index === targetBranch.length - 1) previousValue[currentValue] = value;\n return previousValue[currentValue];\n }, obj);\n};\n\nµ.PolyChart = function module() {\n var config = [ µ.PolyChart.defaultConfig() ];\n var dispatch = d3.dispatch('hover');\n var dashArray = {\n solid: 'none',\n dash: [ 5, 2 ],\n dot: [ 2, 5 ]\n };\n var colorScale;\n function exports() {\n var geometryConfig = config[0].geometryConfig;\n var container = geometryConfig.container;\n if (typeof container == 'string') container = d3.select(container);\n container.datum(config).each(function(_config, _index) {\n var isStack = !!_config[0].data.yStack;\n var data = _config.map(function(d, i) {\n if (isStack) return d3.zip(d.data.t[0], d.data.r[0], d.data.yStack[0]); else return d3.zip(d.data.t[0], d.data.r[0]);\n });\n var angularScale = geometryConfig.angularScale;\n var domainMin = geometryConfig.radialScale.domain()[0];\n var generator = {};\n generator.bar = function(d, i, pI) {\n var dataConfig = _config[pI].data;\n var h = geometryConfig.radialScale(d[1]) - geometryConfig.radialScale(0);\n var stackTop = geometryConfig.radialScale(d[2] || 0);\n var w = dataConfig.barWidth;\n d3.select(this).attr({\n 'class': 'mark bar',\n d: 'M' + [ [ h + stackTop, -w / 2 ], [ h + stackTop, w / 2 ], [ stackTop, w / 2 ], [ stackTop, -w / 2 ] ].join('L') + 'Z',\n transform: function(d, i) {\n return 'rotate(' + (geometryConfig.orientation + angularScale(d[0])) + ')';\n }\n });\n };\n generator.dot = function(d, i, pI) {\n var stackedData = d[2] ? [ d[0], d[1] + d[2] ] : d;\n var symbol = d3.svg.symbol().size(_config[pI].data.dotSize).type(_config[pI].data.dotType)(d, i);\n d3.select(this).attr({\n 'class': 'mark dot',\n d: symbol,\n transform: function(d, i) {\n var coord = convertToCartesian(getPolarCoordinates(stackedData));\n return 'translate(' + [ coord.x, coord.y ] + ')';\n }\n });\n };\n var line = d3.svg.line.radial().interpolate(_config[0].data.lineInterpolation).radius(function(d) {\n return geometryConfig.radialScale(d[1]);\n }).angle(function(d) {\n return geometryConfig.angularScale(d[0]) * Math.PI / 180;\n });\n generator.line = function(d, i, pI) {\n var lineData = d[2] ? data[pI].map(function(d, i) {\n return [ d[0], d[1] + d[2] ];\n }) : data[pI];\n d3.select(this).each(generator['dot']).style({\n opacity: function(dB, iB) {\n return +_config[pI].data.dotVisible;\n },\n fill: markStyle.stroke(d, i, pI)\n }).attr({\n 'class': 'mark dot'\n });\n if (i > 0) return;\n var lineSelection = d3.select(this.parentNode).selectAll('path.line').data([ 0 ]);\n lineSelection.enter().insert('path');\n lineSelection.attr({\n 'class': 'line',\n d: line(lineData),\n transform: function(dB, iB) {\n return 'rotate(' + (geometryConfig.orientation + 90) + ')';\n },\n 'pointer-events': 'none'\n }).style({\n fill: function(dB, iB) {\n return markStyle.fill(d, i, pI);\n },\n 'fill-opacity': 0,\n stroke: function(dB, iB) {\n return markStyle.stroke(d, i, pI);\n },\n 'stroke-width': function(dB, iB) {\n return markStyle['stroke-width'](d, i, pI);\n },\n 'stroke-dasharray': function(dB, iB) {\n return markStyle['stroke-dasharray'](d, i, pI);\n },\n opacity: function(dB, iB) {\n return markStyle.opacity(d, i, pI);\n },\n display: function(dB, iB) {\n return markStyle.display(d, i, pI);\n }\n });\n };\n var angularRange = geometryConfig.angularScale.range();\n var triangleAngle = Math.abs(angularRange[1] - angularRange[0]) / data[0].length * Math.PI / 180;\n var arc = d3.svg.arc().startAngle(function(d) {\n return -triangleAngle / 2;\n }).endAngle(function(d) {\n return triangleAngle / 2;\n }).innerRadius(function(d) {\n return geometryConfig.radialScale(domainMin + (d[2] || 0));\n }).outerRadius(function(d) {\n return geometryConfig.radialScale(domainMin + (d[2] || 0)) + geometryConfig.radialScale(d[1]);\n });\n generator.arc = function(d, i, pI) {\n d3.select(this).attr({\n 'class': 'mark arc',\n d: arc,\n transform: function(d, i) {\n return 'rotate(' + (geometryConfig.orientation + angularScale(d[0]) + 90) + ')';\n }\n });\n };\n var markStyle = {\n fill: function(d, i, pI) {\n return _config[pI].data.color;\n },\n stroke: function(d, i, pI) {\n return _config[pI].data.strokeColor;\n },\n 'stroke-width': function(d, i, pI) {\n return _config[pI].data.strokeSize + 'px';\n },\n 'stroke-dasharray': function(d, i, pI) {\n return dashArray[_config[pI].data.strokeDash];\n },\n opacity: function(d, i, pI) {\n return _config[pI].data.opacity;\n },\n display: function(d, i, pI) {\n return typeof _config[pI].data.visible === 'undefined' || _config[pI].data.visible ? 'block' : 'none';\n }\n };\n var geometryLayer = d3.select(this).selectAll('g.layer').data(data);\n geometryLayer.enter().append('g').attr({\n 'class': 'layer'\n });\n var geometry = geometryLayer.selectAll('path.mark').data(function(d, i) {\n return d;\n });\n geometry.enter().append('path').attr({\n 'class': 'mark'\n });\n geometry.style(markStyle).each(generator[geometryConfig.geometryType]);\n geometry.exit().remove();\n geometryLayer.exit().remove();\n function getPolarCoordinates(d, i) {\n var r = geometryConfig.radialScale(d[1]);\n var t = (geometryConfig.angularScale(d[0]) + geometryConfig.orientation) * Math.PI / 180;\n return {\n r: r,\n t: t\n };\n }\n function convertToCartesian(polarCoordinates) {\n var x = polarCoordinates.r * Math.cos(polarCoordinates.t);\n var y = polarCoordinates.r * Math.sin(polarCoordinates.t);\n return {\n x: x,\n y: y\n };\n }\n });\n }\n exports.config = function(_x) {\n if (!arguments.length) return config;\n _x.forEach(function(d, i) {\n if (!config[i]) config[i] = {};\n extendDeepAll(config[i], µ.PolyChart.defaultConfig());\n extendDeepAll(config[i], d);\n });\n return this;\n };\n exports.getColorScale = function() {\n return colorScale;\n };\n d3.rebind(exports, dispatch, 'on');\n return exports;\n};\n\nµ.PolyChart.defaultConfig = function() {\n var config = {\n data: {\n name: 'geom1',\n t: [ [ 1, 2, 3, 4 ] ],\n r: [ [ 1, 2, 3, 4 ] ],\n dotType: 'circle',\n dotSize: 64,\n dotVisible: false,\n barWidth: 20,\n color: '#ffa500',\n strokeSize: 1,\n strokeColor: 'silver',\n strokeDash: 'solid',\n opacity: 1,\n index: 0,\n visible: true,\n visibleInLegend: true\n },\n geometryConfig: {\n geometry: 'LinePlot',\n geometryType: 'arc',\n direction: 'clockwise',\n orientation: 0,\n container: 'body',\n radialScale: null,\n angularScale: null,\n colorScale: d3.scale.category20()\n }\n };\n return config;\n};\n\nµ.BarChart = function module() {\n return µ.PolyChart();\n};\n\nµ.BarChart.defaultConfig = function() {\n var config = {\n geometryConfig: {\n geometryType: 'bar'\n }\n };\n return config;\n};\n\nµ.AreaChart = function module() {\n return µ.PolyChart();\n};\n\nµ.AreaChart.defaultConfig = function() {\n var config = {\n geometryConfig: {\n geometryType: 'arc'\n }\n };\n return config;\n};\n\nµ.DotPlot = function module() {\n return µ.PolyChart();\n};\n\nµ.DotPlot.defaultConfig = function() {\n var config = {\n geometryConfig: {\n geometryType: 'dot',\n dotType: 'circle'\n }\n };\n return config;\n};\n\nµ.LinePlot = function module() {\n return µ.PolyChart();\n};\n\nµ.LinePlot.defaultConfig = function() {\n var config = {\n geometryConfig: {\n geometryType: 'line'\n }\n };\n return config;\n};\n\nµ.Legend = function module() {\n var config = µ.Legend.defaultConfig();\n var dispatch = d3.dispatch('hover');\n function exports() {\n var legendConfig = config.legendConfig;\n var flattenData = config.data.map(function(d, i) {\n return [].concat(d).map(function(dB, iB) {\n var element = extendDeepAll({}, legendConfig.elements[i]);\n element.name = dB;\n element.color = [].concat(legendConfig.elements[i].color)[iB];\n return element;\n });\n });\n var data = d3.merge(flattenData);\n data = data.filter(function(d, i) {\n return legendConfig.elements[i] && (legendConfig.elements[i].visibleInLegend || typeof legendConfig.elements[i].visibleInLegend === 'undefined');\n });\n if (legendConfig.reverseOrder) data = data.reverse();\n var container = legendConfig.container;\n if (typeof container == 'string' || container.nodeName) container = d3.select(container);\n var colors = data.map(function(d, i) {\n return d.color;\n });\n var lineHeight = legendConfig.fontSize;\n var isContinuous = legendConfig.isContinuous == null ? typeof data[0] === 'number' : legendConfig.isContinuous;\n var height = isContinuous ? legendConfig.height : lineHeight * data.length;\n var legendContainerGroup = container.classed('legend-group', true);\n var svg = legendContainerGroup.selectAll('svg').data([ 0 ]);\n var svgEnter = svg.enter().append('svg').attr({\n width: 300,\n height: height + lineHeight,\n xmlns: 'http://www.w3.org/2000/svg',\n 'xmlns:xlink': 'http://www.w3.org/1999/xlink',\n version: '1.1'\n });\n svgEnter.append('g').classed('legend-axis', true);\n svgEnter.append('g').classed('legend-marks', true);\n var dataNumbered = d3.range(data.length);\n var colorScale = d3.scale[isContinuous ? 'linear' : 'ordinal']().domain(dataNumbered).range(colors);\n var dataScale = d3.scale[isContinuous ? 'linear' : 'ordinal']().domain(dataNumbered)[isContinuous ? 'range' : 'rangePoints']([ 0, height ]);\n var shapeGenerator = function(_type, _size) {\n var squareSize = _size * 3;\n if (_type === 'line') {\n return 'M' + [ [ -_size / 2, -_size / 12 ], [ _size / 2, -_size / 12 ], [ _size / 2, _size / 12 ], [ -_size / 2, _size / 12 ] ] + 'Z';\n } else if (d3.svg.symbolTypes.indexOf(_type) != -1) return d3.svg.symbol().type(_type).size(squareSize)(); else return d3.svg.symbol().type('square').size(squareSize)();\n };\n if (isContinuous) {\n var gradient = svg.select('.legend-marks').append('defs').append('linearGradient').attr({\n id: 'grad1',\n x1: '0%',\n y1: '0%',\n x2: '0%',\n y2: '100%'\n }).selectAll('stop').data(colors);\n gradient.enter().append('stop');\n gradient.attr({\n offset: function(d, i) {\n return i / (colors.length - 1) * 100 + '%';\n }\n }).style({\n 'stop-color': function(d, i) {\n return d;\n }\n });\n svg.append('rect').classed('legend-mark', true).attr({\n height: legendConfig.height,\n width: legendConfig.colorBandWidth,\n fill: 'url(#grad1)'\n });\n } else {\n var legendElement = svg.select('.legend-marks').selectAll('path.legend-mark').data(data);\n legendElement.enter().append('path').classed('legend-mark', true);\n legendElement.attr({\n transform: function(d, i) {\n return 'translate(' + [ lineHeight / 2, dataScale(i) + lineHeight / 2 ] + ')';\n },\n d: function(d, i) {\n var symbolType = d.symbol;\n return shapeGenerator(symbolType, lineHeight);\n },\n fill: function(d, i) {\n return colorScale(i);\n }\n });\n legendElement.exit().remove();\n }\n var legendAxis = d3.svg.axis().scale(dataScale).orient('right');\n var axis = svg.select('g.legend-axis').attr({\n transform: 'translate(' + [ isContinuous ? legendConfig.colorBandWidth : lineHeight, lineHeight / 2 ] + ')'\n }).call(legendAxis);\n axis.selectAll('.domain').style({\n fill: 'none',\n stroke: 'none'\n });\n axis.selectAll('line').style({\n fill: 'none',\n stroke: isContinuous ? legendConfig.textColor : 'none'\n });\n axis.selectAll('text').style({\n fill: legendConfig.textColor,\n 'font-size': legendConfig.fontSize\n }).text(function(d, i) {\n return data[i].name;\n });\n return exports;\n }\n exports.config = function(_x) {\n if (!arguments.length) return config;\n extendDeepAll(config, _x);\n return this;\n };\n d3.rebind(exports, dispatch, 'on');\n return exports;\n};\n\nµ.Legend.defaultConfig = function(d, i) {\n var config = {\n data: [ 'a', 'b', 'c' ],\n legendConfig: {\n elements: [ {\n symbol: 'line',\n color: 'red'\n }, {\n symbol: 'square',\n color: 'yellow'\n }, {\n symbol: 'diamond',\n color: 'limegreen'\n } ],\n height: 150,\n colorBandWidth: 30,\n fontSize: 12,\n container: 'body',\n isContinuous: null,\n textColor: 'grey',\n reverseOrder: false\n }\n };\n return config;\n};\n\nµ.tooltipPanel = function() {\n var tooltipEl, tooltipTextEl, backgroundEl;\n var config = {\n container: null,\n hasTick: false,\n fontSize: 12,\n color: 'white',\n padding: 5\n };\n var id = 'tooltip-' + µ.tooltipPanel.uid++;\n var tickSize = 10;\n var exports = function() {\n tooltipEl = config.container.selectAll('g.' + id).data([ 0 ]);\n var tooltipEnter = tooltipEl.enter().append('g').classed(id, true).style({\n 'pointer-events': 'none',\n display: 'none'\n });\n backgroundEl = tooltipEnter.append('path').style({\n fill: 'white',\n 'fill-opacity': .9\n }).attr({\n d: 'M0 0'\n });\n tooltipTextEl = tooltipEnter.append('text').attr({\n dx: config.padding + tickSize,\n dy: +config.fontSize * .3\n });\n return exports;\n };\n exports.text = function(_text) {\n var l = d3.hsl(config.color).l;\n var strokeColor = l >= .5 ? '#aaa' : 'white';\n var fillColor = l >= .5 ? 'black' : 'white';\n var text = _text || '';\n tooltipTextEl.style({\n fill: fillColor,\n 'font-size': config.fontSize + 'px'\n }).text(text);\n var padding = config.padding;\n var bbox = tooltipTextEl.node().getBBox();\n var boxStyle = {\n fill: config.color,\n stroke: strokeColor,\n 'stroke-width': '2px'\n };\n var backGroundW = bbox.width + padding * 2 + tickSize;\n var backGroundH = bbox.height + padding * 2;\n backgroundEl.attr({\n d: 'M' + [ [ tickSize, -backGroundH / 2 ], [ tickSize, -backGroundH / 4 ], [ config.hasTick ? 0 : tickSize, 0 ], [ tickSize, backGroundH / 4 ], [ tickSize, backGroundH / 2 ], [ backGroundW, backGroundH / 2 ], [ backGroundW, -backGroundH / 2 ] ].join('L') + 'Z'\n }).style(boxStyle);\n tooltipEl.attr({\n transform: 'translate(' + [ tickSize, -backGroundH / 2 + padding * 2 ] + ')'\n });\n tooltipEl.style({\n display: 'block'\n });\n return exports;\n };\n exports.move = function(_pos) {\n if (!tooltipEl) return;\n tooltipEl.attr({\n transform: 'translate(' + [ _pos[0], _pos[1] ] + ')'\n }).style({\n display: 'block'\n });\n return exports;\n };\n exports.hide = function() {\n if (!tooltipEl) return;\n tooltipEl.style({\n display: 'none'\n });\n return exports;\n };\n exports.show = function() {\n if (!tooltipEl) return;\n tooltipEl.style({\n display: 'block'\n });\n return exports;\n };\n exports.config = function(_x) {\n extendDeepAll(config, _x);\n return exports;\n };\n return exports;\n};\n\nµ.tooltipPanel.uid = 1;\n\nµ.adapter = {};\n\nµ.adapter.plotly = function module() {\n var exports = {};\n exports.convert = function(_inputConfig, reverse) {\n var outputConfig = {};\n if (_inputConfig.data) {\n outputConfig.data = _inputConfig.data.map(function(d, i) {\n var r = extendDeepAll({}, d);\n var toTranslate = [\n [ r, [ 'marker', 'color' ], [ 'color' ] ],\n [ r, [ 'marker', 'opacity' ], [ 'opacity' ] ],\n [ r, [ 'marker', 'line', 'color' ], [ 'strokeColor' ] ],\n [ r, [ 'marker', 'line', 'dash' ], [ 'strokeDash' ] ],\n [ r, [ 'marker', 'line', 'width' ], [ 'strokeSize' ] ],\n [ r, [ 'marker', 'symbol' ], [ 'dotType' ] ],\n [ r, [ 'marker', 'size' ], [ 'dotSize' ] ],\n [ r, [ 'marker', 'barWidth' ], [ 'barWidth' ] ],\n [ r, [ 'line', 'interpolation' ], [ 'lineInterpolation' ] ],\n [ r, [ 'showlegend' ], [ 'visibleInLegend' ] ]\n ];\n toTranslate.forEach(function(d, i) {\n µ.util.translator.apply(null, d.concat(reverse));\n });\n\n if (!reverse) delete r.marker;\n if (reverse) delete r.groupId;\n if (!reverse) {\n if (r.type === 'scatter') {\n if (r.mode === 'lines') r.geometry = 'LinePlot'; else if (r.mode === 'markers') r.geometry = 'DotPlot'; else if (r.mode === 'lines+markers') {\n r.geometry = 'LinePlot';\n r.dotVisible = true;\n }\n } else if (r.type === 'area') r.geometry = 'AreaChart'; else if (r.type === 'bar') r.geometry = 'BarChart';\n delete r.mode;\n delete r.type;\n } else {\n if (r.geometry === 'LinePlot') {\n r.type = 'scatter';\n if (r.dotVisible === true) {\n delete r.dotVisible;\n r.mode = 'lines+markers';\n } else r.mode = 'lines';\n } else if (r.geometry === 'DotPlot') {\n r.type = 'scatter';\n r.mode = 'markers';\n } else if (r.geometry === 'AreaChart') r.type = 'area'; else if (r.geometry === 'BarChart') r.type = 'bar';\n delete r.geometry;\n }\n return r;\n });\n if (!reverse && _inputConfig.layout && _inputConfig.layout.barmode === 'stack') {\n var duplicates = µ.util.duplicates(outputConfig.data.map(function(d, i) {\n return d.geometry;\n }));\n outputConfig.data.forEach(function(d, i) {\n var idx = duplicates.indexOf(d.geometry);\n if (idx != -1) outputConfig.data[i].groupId = idx;\n });\n }\n }\n if (_inputConfig.layout) {\n var r = extendDeepAll({}, _inputConfig.layout);\n var toTranslate = [\n [ r, [ 'plot_bgcolor' ], [ 'backgroundColor' ] ],\n [ r, [ 'showlegend' ], [ 'showLegend' ] ],\n [ r, [ 'radialaxis' ], [ 'radialAxis' ] ],\n [ r, [ 'angularaxis' ], [ 'angularAxis' ] ],\n [ r.angularaxis, [ 'showline' ], [ 'gridLinesVisible' ] ],\n [ r.angularaxis, [ 'showticklabels' ], [ 'labelsVisible' ] ],\n [ r.angularaxis, [ 'nticks' ], [ 'ticksCount' ] ],\n [ r.angularaxis, [ 'tickorientation' ], [ 'tickOrientation' ] ],\n [ r.angularaxis, [ 'ticksuffix' ], [ 'ticksSuffix' ] ],\n [ r.angularaxis, [ 'range' ], [ 'domain' ] ],\n [ r.angularaxis, [ 'endpadding' ], [ 'endPadding' ] ],\n [ r.radialaxis, [ 'showline' ], [ 'gridLinesVisible' ] ],\n [ r.radialaxis, [ 'tickorientation' ], [ 'tickOrientation' ] ],\n [ r.radialaxis, [ 'ticksuffix' ], [ 'ticksSuffix' ] ],\n [ r.radialaxis, [ 'range' ], [ 'domain' ] ],\n [ r.angularAxis, [ 'showline' ], [ 'gridLinesVisible' ] ],\n [ r.angularAxis, [ 'showticklabels' ], [ 'labelsVisible' ] ],\n [ r.angularAxis, [ 'nticks' ], [ 'ticksCount' ] ],\n [ r.angularAxis, [ 'tickorientation' ], [ 'tickOrientation' ] ],\n [ r.angularAxis, [ 'ticksuffix' ], [ 'ticksSuffix' ] ],\n [ r.angularAxis, [ 'range' ], [ 'domain' ] ],\n [ r.angularAxis, [ 'endpadding' ], [ 'endPadding' ] ],\n [ r.radialAxis, [ 'showline' ], [ 'gridLinesVisible' ] ],\n [ r.radialAxis, [ 'tickorientation' ], [ 'tickOrientation' ] ],\n [ r.radialAxis, [ 'ticksuffix' ], [ 'ticksSuffix' ] ],\n [ r.radialAxis, [ 'range' ], [ 'domain' ] ],\n [ r.font, [ 'outlinecolor' ], [ 'outlineColor' ] ],\n [ r.legend, [ 'traceorder' ], [ 'reverseOrder' ] ],\n [ r, [ 'labeloffset' ], [ 'labelOffset' ] ],\n [ r, [ 'defaultcolorrange' ], [ 'defaultColorRange' ] ]\n ];\n toTranslate.forEach(function(d, i) {\n µ.util.translator.apply(null, d.concat(reverse));\n });\n\n if (!reverse) {\n if (r.angularAxis && typeof r.angularAxis.ticklen !== 'undefined') r.tickLength = r.angularAxis.ticklen;\n if (r.angularAxis && typeof r.angularAxis.tickcolor !== 'undefined') r.tickColor = r.angularAxis.tickcolor;\n } else {\n if (typeof r.tickLength !== 'undefined') {\n r.angularaxis.ticklen = r.tickLength;\n delete r.tickLength;\n }\n if (r.tickColor) {\n r.angularaxis.tickcolor = r.tickColor;\n delete r.tickColor;\n }\n }\n if (r.legend && typeof r.legend.reverseOrder != 'boolean') {\n r.legend.reverseOrder = r.legend.reverseOrder != 'normal';\n }\n if (r.legend && typeof r.legend.traceorder == 'boolean') {\n r.legend.traceorder = r.legend.traceorder ? 'reversed' : 'normal';\n delete r.legend.reverseOrder;\n }\n if (r.margin && typeof r.margin.t != 'undefined') {\n var source = [ 't', 'r', 'b', 'l', 'pad' ];\n var target = [ 'top', 'right', 'bottom', 'left', 'pad' ];\n var margin = {};\n d3.entries(r.margin).forEach(function(dB, iB) {\n margin[target[source.indexOf(dB.key)]] = dB.value;\n });\n r.margin = margin;\n }\n if (reverse) {\n delete r.needsEndSpacing;\n delete r.minorTickColor;\n delete r.minorTicks;\n delete r.angularaxis.ticksCount;\n delete r.angularaxis.ticksCount;\n delete r.angularaxis.ticksStep;\n delete r.angularaxis.rewriteTicks;\n delete r.angularaxis.nticks;\n delete r.radialaxis.ticksCount;\n delete r.radialaxis.ticksCount;\n delete r.radialaxis.ticksStep;\n delete r.radialaxis.rewriteTicks;\n delete r.radialaxis.nticks;\n }\n outputConfig.layout = r;\n }\n return outputConfig;\n };\n return exports;\n};\n\n\n/***/ }),\n\n/***/ \"3a9c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar setGroupPositions = __webpack_require__(\"0cec\").setGroupPositions;\n\nmodule.exports = function crossTraceCalc(gd, plotinfo) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var calcdata = gd.calcdata;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var funnels = [];\n var funnelsVert = [];\n var funnelsHorz = [];\n var cd, i;\n\n for(i = 0; i < fullData.length; i++) {\n var fullTrace = fullData[i];\n var isHorizontal = (fullTrace.orientation === 'h');\n\n if(\n fullTrace.visible === true &&\n fullTrace.xaxis === xa._id &&\n fullTrace.yaxis === ya._id &&\n fullTrace.type === 'funnel'\n ) {\n cd = calcdata[i];\n\n if(isHorizontal) {\n funnelsHorz.push(cd);\n } else {\n funnelsVert.push(cd);\n }\n\n funnels.push(cd);\n }\n }\n\n var opts = {\n mode: fullLayout.funnelmode,\n norm: fullLayout.funnelnorm,\n gap: fullLayout.funnelgap,\n groupgap: fullLayout.funnelgroupgap\n };\n\n setGroupPositions(gd, xa, ya, funnelsVert, opts);\n setGroupPositions(gd, ya, xa, funnelsHorz, opts);\n\n for(i = 0; i < funnels.length; i++) {\n cd = funnels[i];\n\n for(var j = 0; j < cd.length; j++) {\n if(j + 1 < cd.length) {\n cd[j].nextP0 = cd[j + 1].p0;\n cd[j].nextS0 = cd[j + 1].s0;\n\n cd[j].nextP1 = cd[j + 1].p1;\n cd[j].nextS1 = cd[j + 1].s1;\n }\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"3aa8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar extractOpts = __webpack_require__(\"215c\").extractOpts;\n\nmodule.exports = function calc(gd, trace, opts) {\n var fullLayout = gd._fullLayout;\n var vals = opts.vals;\n var containerStr = opts.containerStr;\n\n var container = containerStr ?\n Lib.nestedProperty(trace, containerStr).get() :\n trace;\n\n var cOpts = extractOpts(container);\n var auto = cOpts.auto !== false;\n var min = cOpts.min;\n var max = cOpts.max;\n var mid = cOpts.mid;\n\n var minVal = function() { return Lib.aggNums(Math.min, null, vals); };\n var maxVal = function() { return Lib.aggNums(Math.max, null, vals); };\n\n if(min === undefined) {\n min = minVal();\n } else if(auto) {\n if(container._colorAx && isNumeric(min)) {\n min = Math.min(min, minVal());\n } else {\n min = minVal();\n }\n }\n\n if(max === undefined) {\n max = maxVal();\n } else if(auto) {\n if(container._colorAx && isNumeric(max)) {\n max = Math.max(max, maxVal());\n } else {\n max = maxVal();\n }\n }\n\n if(auto && mid !== undefined) {\n if(max - mid > mid - min) {\n min = mid - (max - mid);\n } else if(max - mid < mid - min) {\n max = mid + (mid - min);\n }\n }\n\n if(min === max) {\n min -= 0.5;\n max += 0.5;\n }\n\n cOpts._sync('min', min);\n cOpts._sync('max', max);\n\n if(cOpts.autocolorscale) {\n var scl;\n if(min * max < 0) scl = fullLayout.colorscale.diverging;\n else if(min >= 0) scl = fullLayout.colorscale.sequential;\n else scl = fullLayout.colorscale.sequentialminus;\n cOpts._sync('colorscale', scl);\n }\n};\n\n\n/***/ }),\n\n/***/ \"3af0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar glslify = __webpack_require__(\"e98f\");\nvar vertexShaderSource = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nvarying vec4 fragColor;\\n\\nattribute vec4 p01_04, p05_08, p09_12, p13_16,\\n p17_20, p21_24, p25_28, p29_32,\\n p33_36, p37_40, p41_44, p45_48,\\n p49_52, p53_56, p57_60, colors;\\n\\nuniform mat4 dim0A, dim1A, dim0B, dim1B, dim0C, dim1C, dim0D, dim1D,\\n loA, hiA, loB, hiB, loC, hiC, loD, hiD;\\n\\nuniform vec2 resolution, viewBoxPos, viewBoxSize;\\nuniform sampler2D mask, palette;\\nuniform float maskHeight;\\nuniform float drwLayer; // 0: context, 1: focus, 2: pick\\nuniform vec4 contextColor;\\n\\nbool isPick = (drwLayer > 1.5);\\nbool isContext = (drwLayer < 0.5);\\n\\nconst vec4 ZEROS = vec4(0.0, 0.0, 0.0, 0.0);\\nconst vec4 UNITS = vec4(1.0, 1.0, 1.0, 1.0);\\n\\nfloat val(mat4 p, mat4 v) {\\n return dot(matrixCompMult(p, v) * UNITS, UNITS);\\n}\\n\\nfloat axisY(float ratio, mat4 A, mat4 B, mat4 C, mat4 D) {\\n float y1 = val(A, dim0A) + val(B, dim0B) + val(C, dim0C) + val(D, dim0D);\\n float y2 = val(A, dim1A) + val(B, dim1B) + val(C, dim1C) + val(D, dim1D);\\n return y1 * (1.0 - ratio) + y2 * ratio;\\n}\\n\\nint iMod(int a, int b) {\\n return a - b * (a / b);\\n}\\n\\nbool fOutside(float p, float lo, float hi) {\\n return (lo < hi) && (lo > p || p > hi);\\n}\\n\\nbool vOutside(vec4 p, vec4 lo, vec4 hi) {\\n return (\\n fOutside(p[0], lo[0], hi[0]) ||\\n fOutside(p[1], lo[1], hi[1]) ||\\n fOutside(p[2], lo[2], hi[2]) ||\\n fOutside(p[3], lo[3], hi[3])\\n );\\n}\\n\\nbool mOutside(mat4 p, mat4 lo, mat4 hi) {\\n return (\\n vOutside(p[0], lo[0], hi[0]) ||\\n vOutside(p[1], lo[1], hi[1]) ||\\n vOutside(p[2], lo[2], hi[2]) ||\\n vOutside(p[3], lo[3], hi[3])\\n );\\n}\\n\\nbool outsideBoundingBox(mat4 A, mat4 B, mat4 C, mat4 D) {\\n return mOutside(A, loA, hiA) ||\\n mOutside(B, loB, hiB) ||\\n mOutside(C, loC, hiC) ||\\n mOutside(D, loD, hiD);\\n}\\n\\nbool outsideRasterMask(mat4 A, mat4 B, mat4 C, mat4 D) {\\n mat4 pnts[4];\\n pnts[0] = A;\\n pnts[1] = B;\\n pnts[2] = C;\\n pnts[3] = D;\\n\\n for(int i = 0; i < 4; ++i) {\\n for(int j = 0; j < 4; ++j) {\\n for(int k = 0; k < 4; ++k) {\\n if(0 == iMod(\\n int(255.0 * texture2D(mask,\\n vec2(\\n (float(i * 2 + j / 2) + 0.5) / 8.0,\\n (pnts[i][j][k] * (maskHeight - 1.0) + 1.0) / maskHeight\\n ))[3]\\n ) / int(pow(2.0, float(iMod(j * 4 + k, 8)))),\\n 2\\n )) return true;\\n }\\n }\\n }\\n return false;\\n}\\n\\nvec4 position(bool isContext, float v, mat4 A, mat4 B, mat4 C, mat4 D) {\\n float x = 0.5 * sign(v) + 0.5;\\n float y = axisY(x, A, B, C, D);\\n float z = 1.0 - abs(v);\\n\\n z += isContext ? 0.0 : 2.0 * float(\\n outsideBoundingBox(A, B, C, D) ||\\n outsideRasterMask(A, B, C, D)\\n );\\n\\n return vec4(\\n 2.0 * (vec2(x, y) * viewBoxSize + viewBoxPos) / resolution - 1.0,\\n z,\\n 1.0\\n );\\n}\\n\\nvoid main() {\\n mat4 A = mat4(p01_04, p05_08, p09_12, p13_16);\\n mat4 B = mat4(p17_20, p21_24, p25_28, p29_32);\\n mat4 C = mat4(p33_36, p37_40, p41_44, p45_48);\\n mat4 D = mat4(p49_52, p53_56, p57_60, ZEROS);\\n\\n float v = colors[3];\\n\\n gl_Position = position(isContext, v, A, B, C, D);\\n\\n fragColor =\\n isContext ? vec4(contextColor) :\\n isPick ? vec4(colors.rgb, 1.0) : texture2D(palette, vec2(abs(v), 0.5));\\n}\\n\"]);\nvar fragmentShaderSource = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n gl_FragColor = fragColor;\\n}\\n\"]);\nvar maxDim = __webpack_require__(\"f7a4\").maxDimensionCount;\n\nvar Lib = __webpack_require__(\"fc26\");\n\n// don't change; otherwise near/far plane lines are lost\nvar depthLimitEpsilon = 1e-6;\n\n// precision of multiselect is the full range divided into this many parts\nvar maskHeight = 2048;\n\nvar dummyPixel = new Uint8Array(4);\nvar dataPixel = new Uint8Array(4);\n\nvar paletteTextureConfig = {\n shape: [256, 1],\n format: 'rgba',\n type: 'uint8',\n mag: 'nearest',\n min: 'nearest'\n};\n\nfunction ensureDraw(regl) {\n regl.read({\n x: 0,\n y: 0,\n width: 1,\n height: 1,\n data: dummyPixel\n });\n}\n\nfunction clear(regl, x, y, width, height) {\n var gl = regl._gl;\n gl.enable(gl.SCISSOR_TEST);\n gl.scissor(x, y, width, height);\n regl.clear({color: [0, 0, 0, 0], depth: 1}); // clearing is done in scissored panel only\n}\n\nfunction renderBlock(regl, glAes, renderState, blockLineCount, sampleCount, item) {\n var rafKey = item.key;\n\n function render(blockNumber) {\n var count = Math.min(blockLineCount, sampleCount - blockNumber * blockLineCount);\n\n if(blockNumber === 0) {\n // stop drawing possibly stale glyphs before clearing\n window.cancelAnimationFrame(renderState.currentRafs[rafKey]);\n delete renderState.currentRafs[rafKey];\n clear(regl, item.scissorX, item.scissorY, item.scissorWidth, item.viewBoxSize[1]);\n }\n\n if(renderState.clearOnly) {\n return;\n }\n\n item.count = 2 * count;\n item.offset = 2 * blockNumber * blockLineCount;\n glAes(item);\n\n if(blockNumber * blockLineCount + count < sampleCount) {\n renderState.currentRafs[rafKey] = window.requestAnimationFrame(function() {\n render(blockNumber + 1);\n });\n }\n\n renderState.drawCompleted = false;\n }\n\n if(!renderState.drawCompleted) {\n ensureDraw(regl);\n renderState.drawCompleted = true;\n }\n\n // start with rendering item 0; recursion handles the rest\n render(0);\n}\n\nfunction adjustDepth(d) {\n // WebGL matrix operations use floats with limited precision, potentially causing a number near a border of [0, 1]\n // to end up slightly outside the border. With an epsilon, we reduce the chance that a line gets clipped by the\n // near or the far plane.\n return Math.max(depthLimitEpsilon, Math.min(1 - depthLimitEpsilon, d));\n}\n\nfunction palette(unitToColor, opacity) {\n var result = new Array(256);\n for(var i = 0; i < 256; i++) {\n result[i] = unitToColor(i / 255).concat(opacity);\n }\n return result;\n}\n\n// Maps the sample index [0...sampleCount - 1] to a range of [0, 1] as the shader expects colors in the [0, 1] range.\n// but first it shifts the sample index by 0, 8 or 16 bits depending on rgbIndex [0..2]\n// with the end result that each line will be of a unique color, making it possible for the pick handler\n// to uniquely identify which line is hovered over (bijective mapping).\n// The inverse, i.e. readPixel is invoked from 'parcoords.js'\nfunction calcPickColor(i, rgbIndex) {\n return (i >>> 8 * rgbIndex) % 256 / 255;\n}\n\nfunction makePoints(sampleCount, dims, color) {\n var points = new Array(sampleCount * (maxDim + 4));\n var n = 0;\n for(var i = 0; i < sampleCount; i++) {\n for(var k = 0; k < maxDim; k++) {\n points[n++] = (k < dims.length) ? dims[k].paddedUnitValues[i] : 0.5;\n }\n points[n++] = calcPickColor(i, 2);\n points[n++] = calcPickColor(i, 1);\n points[n++] = calcPickColor(i, 0);\n points[n++] = adjustDepth(color[i]);\n }\n return points;\n}\n\nfunction makeVecAttr(vecIndex, sampleCount, points) {\n var pointPairs = new Array(sampleCount * 8);\n var n = 0;\n for(var i = 0; i < sampleCount; i++) {\n for(var j = 0; j < 2; j++) {\n for(var k = 0; k < 4; k++) {\n var q = vecIndex * 4 + k;\n var v = points[i * 64 + q];\n if(q === 63 && j === 0) {\n v *= -1;\n }\n pointPairs[n++] = v;\n }\n }\n }\n return pointPairs;\n}\n\nfunction pad2(num) {\n var s = '0' + num;\n return s.substr(s.length - 2);\n}\n\nfunction getAttrName(i) {\n return (i < maxDim) ? 'p' + pad2(i + 1) + '_' + pad2(i + 4) : 'colors';\n}\n\nfunction setAttributes(attributes, sampleCount, points) {\n for(var i = 0; i <= maxDim; i += 4) {\n attributes[getAttrName(i)](makeVecAttr(i / 4, sampleCount, points));\n }\n}\n\nfunction emptyAttributes(regl) {\n var attributes = {};\n for(var i = 0; i <= maxDim; i += 4) {\n attributes[getAttrName(i)] = regl.buffer({usage: 'dynamic', type: 'float', data: new Uint8Array(0)});\n }\n return attributes;\n}\n\nfunction makeItem(model, leftmost, rightmost, itemNumber, i0, i1, x, y, panelSizeX, panelSizeY, crossfilterDimensionIndex, drwLayer, constraints) {\n var dims = [[], []];\n for(var k = 0; k < 64; k++) {\n dims[0][k] = (k === i0) ? 1 : 0;\n dims[1][k] = (k === i1) ? 1 : 0;\n }\n\n var overdrag = model.lines.canvasOverdrag;\n var domain = model.domain;\n var canvasWidth = model.canvasWidth;\n var canvasHeight = model.canvasHeight;\n\n var deselectedLinesColor = model.deselectedLines.color;\n\n var itemModel = Lib.extendFlat({\n key: crossfilterDimensionIndex,\n resolution: [canvasWidth, canvasHeight],\n viewBoxPos: [x + overdrag, y],\n viewBoxSize: [panelSizeX, panelSizeY],\n i0: i0,\n i1: i1,\n\n dim0A: dims[0].slice(0, 16),\n dim0B: dims[0].slice(16, 32),\n dim0C: dims[0].slice(32, 48),\n dim0D: dims[0].slice(48, 64),\n dim1A: dims[1].slice(0, 16),\n dim1B: dims[1].slice(16, 32),\n dim1C: dims[1].slice(32, 48),\n dim1D: dims[1].slice(48, 64),\n\n drwLayer: drwLayer,\n contextColor: [\n deselectedLinesColor[0] / 255,\n deselectedLinesColor[1] / 255,\n deselectedLinesColor[2] / 255,\n deselectedLinesColor[3] < 1 ?\n deselectedLinesColor[3] :\n Math.max(1 / 255, Math.pow(1 / model.lines.color.length, 1 / 3))\n ],\n\n scissorX: (itemNumber === leftmost ? 0 : x + overdrag) + (model.pad.l - overdrag) + model.layoutWidth * domain.x[0],\n scissorWidth: (itemNumber === rightmost ? canvasWidth - x + overdrag : panelSizeX + 0.5) + (itemNumber === leftmost ? x + overdrag : 0),\n scissorY: y + model.pad.b + model.layoutHeight * domain.y[0],\n scissorHeight: panelSizeY,\n\n viewportX: model.pad.l - overdrag + model.layoutWidth * domain.x[0],\n viewportY: model.pad.b + model.layoutHeight * domain.y[0],\n viewportWidth: canvasWidth,\n viewportHeight: canvasHeight\n }, constraints);\n\n return itemModel;\n}\n\nfunction expandedPixelRange(bounds) {\n var dh = maskHeight - 1;\n var a = Math.max(0, Math.floor(bounds[0] * dh), 0);\n var b = Math.min(dh, Math.ceil(bounds[1] * dh), dh);\n return [\n Math.min(a, b),\n Math.max(a, b)\n ];\n}\n\nmodule.exports = function(canvasGL, d) {\n // context & pick describe which canvas we're talking about - won't change with new data\n var isContext = d.context;\n var isPick = d.pick;\n\n var regl = d.regl;\n\n var renderState = {\n currentRafs: {},\n drawCompleted: true,\n clearOnly: false\n };\n\n // state to be set by update and used later\n var model;\n var vm;\n var initialDims;\n var sampleCount;\n var attributes = emptyAttributes(regl);\n var maskTexture;\n var paletteTexture = regl.texture(paletteTextureConfig);\n\n var prevAxisOrder = [];\n\n update(d);\n\n var glAes = regl({\n\n profile: false,\n\n blend: {\n enable: isContext,\n func: {\n srcRGB: 'src alpha',\n dstRGB: 'one minus src alpha',\n srcAlpha: 1,\n dstAlpha: 1 // 'one minus src alpha'\n },\n equation: {\n rgb: 'add',\n alpha: 'add'\n },\n color: [0, 0, 0, 0]\n },\n\n depth: {\n enable: !isContext,\n mask: true,\n func: 'less',\n range: [0, 1]\n },\n\n // for polygons\n cull: {\n enable: true,\n face: 'back'\n },\n\n scissor: {\n enable: true,\n box: {\n x: regl.prop('scissorX'),\n y: regl.prop('scissorY'),\n width: regl.prop('scissorWidth'),\n height: regl.prop('scissorHeight')\n }\n },\n\n viewport: {\n x: regl.prop('viewportX'),\n y: regl.prop('viewportY'),\n width: regl.prop('viewportWidth'),\n height: regl.prop('viewportHeight')\n },\n\n dither: false,\n\n vert: vertexShaderSource,\n\n frag: fragmentShaderSource,\n\n primitive: 'lines',\n lineWidth: 1,\n attributes: attributes,\n uniforms: {\n resolution: regl.prop('resolution'),\n viewBoxPos: regl.prop('viewBoxPos'),\n viewBoxSize: regl.prop('viewBoxSize'),\n dim0A: regl.prop('dim0A'),\n dim1A: regl.prop('dim1A'),\n dim0B: regl.prop('dim0B'),\n dim1B: regl.prop('dim1B'),\n dim0C: regl.prop('dim0C'),\n dim1C: regl.prop('dim1C'),\n dim0D: regl.prop('dim0D'),\n dim1D: regl.prop('dim1D'),\n loA: regl.prop('loA'),\n hiA: regl.prop('hiA'),\n loB: regl.prop('loB'),\n hiB: regl.prop('hiB'),\n loC: regl.prop('loC'),\n hiC: regl.prop('hiC'),\n loD: regl.prop('loD'),\n hiD: regl.prop('hiD'),\n palette: paletteTexture,\n contextColor: regl.prop('contextColor'),\n mask: regl.prop('maskTexture'),\n drwLayer: regl.prop('drwLayer'),\n maskHeight: regl.prop('maskHeight')\n },\n offset: regl.prop('offset'),\n count: regl.prop('count')\n });\n\n function update(dNew) {\n model = dNew.model;\n vm = dNew.viewModel;\n initialDims = vm.dimensions.slice();\n sampleCount = initialDims[0] ? initialDims[0].values.length : 0;\n\n var lines = model.lines;\n var color = isPick ? lines.color.map(function(_, i) {return i / lines.color.length;}) : lines.color;\n\n var points = makePoints(sampleCount, initialDims, color);\n setAttributes(attributes, sampleCount, points);\n\n if(!isContext && !isPick) {\n paletteTexture = regl.texture(Lib.extendFlat({\n data: palette(model.unitToColor, 255)\n }, paletteTextureConfig));\n }\n }\n\n function makeConstraints(isContext) {\n var i, j, k;\n\n var limits = [[], []];\n for(k = 0; k < 64; k++) {\n var p = (!isContext && k < initialDims.length) ?\n initialDims[k].brush.filter.getBounds() : [-Infinity, Infinity];\n\n limits[0][k] = p[0];\n limits[1][k] = p[1];\n }\n\n var len = maskHeight * 8;\n var mask = new Array(len);\n for(i = 0; i < len; i++) {\n mask[i] = 255;\n }\n if(!isContext) {\n for(i = 0; i < initialDims.length; i++) {\n var u = i % 8;\n var v = (i - u) / 8;\n var bitMask = Math.pow(2, u);\n var dim = initialDims[i];\n var ranges = dim.brush.filter.get();\n if(ranges.length < 2) continue; // bail if the bounding box based filter is sufficient\n\n var prevEnd = expandedPixelRange(ranges[0])[1];\n for(j = 1; j < ranges.length; j++) {\n var nextRange = expandedPixelRange(ranges[j]);\n for(k = prevEnd + 1; k < nextRange[0]; k++) {\n mask[k * 8 + v] &= ~bitMask;\n }\n prevEnd = Math.max(prevEnd, nextRange[1]);\n }\n }\n }\n\n var textureData = {\n // 8 units x 8 bits = 64 bits, just sufficient for the almost 64 dimensions we support\n shape: [8, maskHeight],\n format: 'alpha',\n type: 'uint8',\n mag: 'nearest',\n min: 'nearest',\n data: mask\n };\n if(maskTexture) maskTexture(textureData);\n else maskTexture = regl.texture(textureData);\n\n return {\n maskTexture: maskTexture,\n maskHeight: maskHeight,\n loA: limits[0].slice(0, 16),\n loB: limits[0].slice(16, 32),\n loC: limits[0].slice(32, 48),\n loD: limits[0].slice(48, 64),\n hiA: limits[1].slice(0, 16),\n hiB: limits[1].slice(16, 32),\n hiC: limits[1].slice(32, 48),\n hiD: limits[1].slice(48, 64),\n };\n }\n\n function renderGLParcoords(panels, setChanged, clearOnly) {\n var panelCount = panels.length;\n var i;\n\n var leftmost;\n var rightmost;\n var lowestX = Infinity;\n var highestX = -Infinity;\n\n for(i = 0; i < panelCount; i++) {\n if(panels[i].dim0.canvasX < lowestX) {\n lowestX = panels[i].dim0.canvasX;\n leftmost = i;\n }\n if(panels[i].dim1.canvasX > highestX) {\n highestX = panels[i].dim1.canvasX;\n rightmost = i;\n }\n }\n\n if(panelCount === 0) {\n // clear canvas here, as the panel iteration below will not enter the loop body\n clear(regl, 0, 0, model.canvasWidth, model.canvasHeight);\n }\n var constraints = makeConstraints(isContext);\n\n for(i = 0; i < panelCount; i++) {\n var p = panels[i];\n var i0 = p.dim0.crossfilterDimensionIndex;\n var i1 = p.dim1.crossfilterDimensionIndex;\n var x = p.canvasX;\n var y = p.canvasY;\n var nextX = x + p.panelSizeX;\n if(setChanged ||\n !prevAxisOrder[i0] ||\n prevAxisOrder[i0][0] !== x ||\n prevAxisOrder[i0][1] !== nextX\n ) {\n prevAxisOrder[i0] = [x, nextX];\n\n var item = makeItem(\n model,\n leftmost, rightmost, i, i0, i1, x, y,\n p.panelSizeX, p.panelSizeY,\n p.dim0.crossfilterDimensionIndex,\n isContext ? 0 : isPick ? 2 : 1,\n constraints\n );\n\n renderState.clearOnly = clearOnly;\n\n var blockLineCount = setChanged ? model.lines.blockLineCount : sampleCount;\n renderBlock(\n regl, glAes, renderState, blockLineCount, sampleCount, item\n );\n }\n }\n }\n\n function readPixel(canvasX, canvasY) {\n regl.read({\n x: canvasX,\n y: canvasY,\n width: 1,\n height: 1,\n data: dataPixel\n });\n return dataPixel;\n }\n\n function readPixels(canvasX, canvasY, width, height) {\n var pixelArray = new Uint8Array(4 * width * height);\n regl.read({\n x: canvasX,\n y: canvasY,\n width: width,\n height: height,\n data: pixelArray\n });\n return pixelArray;\n }\n\n function destroy() {\n canvasGL.style['pointer-events'] = 'none';\n paletteTexture.destroy();\n if(maskTexture) maskTexture.destroy();\n for(var k in attributes) attributes[k].destroy();\n }\n\n return {\n render: renderGLParcoords,\n readPixel: readPixel,\n readPixels: readPixels,\n destroy: destroy,\n update: update\n };\n};\n\n\n/***/ }),\n\n/***/ \"3b74\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar meta_1 = __webpack_require__(\"716c\");\n// Note: change RADIUS => earthRadius\nvar RADIUS = 6378137;\n/**\n * Takes one or more features and returns their area in square meters.\n *\n * @name area\n * @param {GeoJSON} geojson input GeoJSON feature(s)\n * @returns {number} area in square meters\n * @example\n * var polygon = turf.polygon([[[125, -15], [113, -22], [154, -27], [144, -15], [125, -15]]]);\n *\n * var area = turf.area(polygon);\n *\n * //addToMap\n * var addToMap = [polygon]\n * polygon.properties.area = area\n */\nfunction area(geojson) {\n return meta_1.geomReduce(geojson, function (value, geom) {\n return value + calculateArea(geom);\n }, 0);\n}\nexports.default = area;\n/**\n * Calculate Area\n *\n * @private\n * @param {Geometry} geom GeoJSON Geometries\n * @returns {number} area\n */\nfunction calculateArea(geom) {\n var total = 0;\n var i;\n switch (geom.type) {\n case \"Polygon\":\n return polygonArea(geom.coordinates);\n case \"MultiPolygon\":\n for (i = 0; i < geom.coordinates.length; i++) {\n total += polygonArea(geom.coordinates[i]);\n }\n return total;\n case \"Point\":\n case \"MultiPoint\":\n case \"LineString\":\n case \"MultiLineString\":\n return 0;\n }\n return 0;\n}\nfunction polygonArea(coords) {\n var total = 0;\n if (coords && coords.length > 0) {\n total += Math.abs(ringArea(coords[0]));\n for (var i = 1; i < coords.length; i++) {\n total -= Math.abs(ringArea(coords[i]));\n }\n }\n return total;\n}\n/**\n * @private\n * Calculate the approximate area of the polygon were it projected onto the earth.\n * Note that this area will be positive if ring is oriented clockwise, otherwise it will be negative.\n *\n * Reference:\n * Robert. G. Chamberlain and William H. Duquette, \"Some Algorithms for Polygons on a Sphere\",\n * JPL Publication 07-03, Jet Propulsion\n * Laboratory, Pasadena, CA, June 2007 http://trs-new.jpl.nasa.gov/dspace/handle/2014/40409\n *\n * @param {Array>} coords Ring Coordinates\n * @returns {number} The approximate signed geodesic area of the polygon in square meters.\n */\nfunction ringArea(coords) {\n var p1;\n var p2;\n var p3;\n var lowerIndex;\n var middleIndex;\n var upperIndex;\n var i;\n var total = 0;\n var coordsLength = coords.length;\n if (coordsLength > 2) {\n for (i = 0; i < coordsLength; i++) {\n if (i === coordsLength - 2) {\n lowerIndex = coordsLength - 2;\n middleIndex = coordsLength - 1;\n upperIndex = 0;\n }\n else if (i === coordsLength - 1) {\n lowerIndex = coordsLength - 1;\n middleIndex = 0;\n upperIndex = 1;\n }\n else {\n lowerIndex = i;\n middleIndex = i + 1;\n upperIndex = i + 2;\n }\n p1 = coords[lowerIndex];\n p2 = coords[middleIndex];\n p3 = coords[upperIndex];\n total += (rad(p3[0]) - rad(p1[0])) * Math.sin(rad(p2[1]));\n }\n total = total * RADIUS * RADIUS / 2;\n }\n return total;\n}\nfunction rad(num) {\n return num * Math.PI / 180;\n}\n\n\n/***/ }),\n\n/***/ \"3b80\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n attributes: __webpack_require__(\"5aae\"),\n supplyDefaults: __webpack_require__(\"2705\"),\n colorbar: __webpack_require__(\"f3cf\"),\n formatLabels: __webpack_require__(\"a2ee\"),\n calc: __webpack_require__(\"fcb7\"),\n plot: __webpack_require__(\"b8b2\"),\n style: __webpack_require__(\"52e8\").style,\n styleOnSelect: __webpack_require__(\"52e8\").styleOnSelect,\n hoverPoints: __webpack_require__(\"e92c\"),\n selectPoints: __webpack_require__(\"214c\"),\n eventData: __webpack_require__(\"0271\"),\n\n moduleType: 'trace',\n name: 'scattercarpet',\n basePlotModule: __webpack_require__(\"91cd\"),\n categories: ['svg', 'carpet', 'symbols', 'showLegend', 'carpetDependent', 'zoomScale'],\n meta: {\n \n \n }\n};\n\n\n/***/ }),\n\n/***/ \"3bd6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar rationalize = __webpack_require__(\"2195\")\n\nmodule.exports = mul\n\nfunction mul(a, b) {\n return rationalize(a[0].mul(b[0]), a[1].mul(b[1]))\n}\n\n\n/***/ }),\n\n/***/ \"3c1c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Registry = __webpack_require__(\"371e\");\n\nvar constants = __webpack_require__(\"d301\");\n\n\n// convert between axis names (xaxis, xaxis2, etc, elements of gd.layout)\n// and axis id's (x, x2, etc). Would probably have ditched 'xaxis'\n// completely in favor of just 'x' if it weren't ingrained in the API etc.\nexports.id2name = function id2name(id) {\n if(typeof id !== 'string' || !id.match(constants.AX_ID_PATTERN)) return;\n var axNum = id.substr(1);\n if(axNum === '1') axNum = '';\n return id.charAt(0) + 'axis' + axNum;\n};\n\nexports.name2id = function name2id(name) {\n if(!name.match(constants.AX_NAME_PATTERN)) return;\n var axNum = name.substr(5);\n if(axNum === '1') axNum = '';\n return name.charAt(0) + axNum;\n};\n\nexports.cleanId = function cleanId(id, axLetter) {\n if(!id.match(constants.AX_ID_PATTERN)) return;\n if(axLetter && id.charAt(0) !== axLetter) return;\n\n var axNum = id.substr(1).replace(/^0+/, '');\n if(axNum === '1') axNum = '';\n return id.charAt(0) + axNum;\n};\n\n// get all axis objects, as restricted in listNames\nexports.list = function(gd, axLetter, only2d) {\n var fullLayout = gd._fullLayout;\n if(!fullLayout) return [];\n\n var idList = exports.listIds(gd, axLetter);\n var out = new Array(idList.length);\n var i;\n\n for(i = 0; i < idList.length; i++) {\n var idi = idList[i];\n out[i] = fullLayout[idi.charAt(0) + 'axis' + idi.substr(1)];\n }\n\n if(!only2d) {\n var sceneIds3D = fullLayout._subplots.gl3d || [];\n\n for(i = 0; i < sceneIds3D.length; i++) {\n var scene = fullLayout[sceneIds3D[i]];\n\n if(axLetter) out.push(scene[axLetter + 'axis']);\n else out.push(scene.xaxis, scene.yaxis, scene.zaxis);\n }\n }\n\n return out;\n};\n\n// get all axis ids, optionally restricted by letter\n// this only makes sense for 2d axes\nexports.listIds = function(gd, axLetter) {\n var fullLayout = gd._fullLayout;\n if(!fullLayout) return [];\n\n var subplotLists = fullLayout._subplots;\n if(axLetter) return subplotLists[axLetter + 'axis'];\n return subplotLists.xaxis.concat(subplotLists.yaxis);\n};\n\n// get an axis object from its id 'x','x2' etc\n// optionally, id can be a subplot (ie 'x2y3') and type gets x or y from it\nexports.getFromId = function(gd, id, type) {\n var fullLayout = gd._fullLayout;\n\n if(type === 'x') id = id.replace(/y[0-9]*/, '');\n else if(type === 'y') id = id.replace(/x[0-9]*/, '');\n\n return fullLayout[exports.id2name(id)];\n};\n\n// get an axis object of specified type from the containing trace\nexports.getFromTrace = function(gd, fullTrace, type) {\n var fullLayout = gd._fullLayout;\n var ax = null;\n\n if(Registry.traceIs(fullTrace, 'gl3d')) {\n var scene = fullTrace.scene;\n if(scene.substr(0, 5) === 'scene') {\n ax = fullLayout[scene][type + 'axis'];\n }\n } else {\n ax = exports.getFromId(gd, fullTrace[type + 'axis'] || type);\n }\n\n return ax;\n};\n\n// sort x, x2, x10, y, y2, y10...\nexports.idSort = function(id1, id2) {\n var letter1 = id1.charAt(0);\n var letter2 = id2.charAt(0);\n if(letter1 !== letter2) return letter1 > letter2 ? 1 : -1;\n return +(id1.substr(1) || 1) - +(id2.substr(1) || 1);\n};\n\nexports.getAxisGroup = function getAxisGroup(fullLayout, axId) {\n var matchGroups = fullLayout._axisMatchGroups;\n\n for(var i = 0; i < matchGroups.length; i++) {\n var group = matchGroups[i];\n if(group[axId]) return 'g' + i;\n }\n return axId;\n};\n\n\n/***/ }),\n\n/***/ \"3c31\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\n\n/**\n * Error bar computing function generator\n *\n * N.B. The generated function does not clean the dataPt entries. Non-numeric\n * entries result in undefined error magnitudes.\n *\n * @param {object} opts error bar attributes\n *\n * @return {function} :\n * @param {numeric} dataPt data point from where to compute the error magnitude\n * @param {number} index index of dataPt in its corresponding data array\n * @return {array}\n * - error[0] : error magnitude in the negative direction\n * - error[1] : \" \" \" \" positive \"\n */\nmodule.exports = function makeComputeError(opts) {\n var type = opts.type;\n var symmetric = opts.symmetric;\n\n if(type === 'data') {\n var array = opts.array || [];\n\n if(symmetric) {\n return function computeError(dataPt, index) {\n var val = +(array[index]);\n return [val, val];\n };\n } else {\n var arrayminus = opts.arrayminus || [];\n return function computeError(dataPt, index) {\n var val = +array[index];\n var valMinus = +arrayminus[index];\n // in case one is present and the other is missing, fill in 0\n // so we still see the present one. Mostly useful during manual\n // data entry.\n if(!isNaN(val) || !isNaN(valMinus)) {\n return [valMinus || 0, val || 0];\n }\n return [NaN, NaN];\n };\n }\n } else {\n var computeErrorValue = makeComputeErrorValue(type, opts.value);\n var computeErrorValueMinus = makeComputeErrorValue(type, opts.valueminus);\n\n if(symmetric || opts.valueminus === undefined) {\n return function computeError(dataPt) {\n var val = computeErrorValue(dataPt);\n return [val, val];\n };\n } else {\n return function computeError(dataPt) {\n return [\n computeErrorValueMinus(dataPt),\n computeErrorValue(dataPt)\n ];\n };\n }\n }\n};\n\n/**\n * Compute error bar magnitude (for all types except data)\n *\n * @param {string} type error bar type\n * @param {numeric} value error bar value\n *\n * @return {function} :\n * @param {numeric} dataPt\n */\nfunction makeComputeErrorValue(type, value) {\n if(type === 'percent') {\n return function(dataPt) {\n return Math.abs(dataPt * value / 100);\n };\n }\n if(type === 'constant') {\n return function() {\n return Math.abs(value);\n };\n }\n if(type === 'sqrt') {\n return function(dataPt) {\n return Math.sqrt(Math.abs(dataPt));\n };\n }\n}\n\n\n/***/ }),\n\n/***/ \"3c41\":\n/***/ (function(module, exports) {\n\nmodule.exports = clone\n\n/**\n * Creates a new vec4 initialized with values from an existing vector\n *\n * @param {vec4} a vector to clone\n * @returns {vec4} a new 4D vector\n */\nfunction clone (a) {\n var out = new Float32Array(4)\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n out[3] = a[3]\n return out\n}\n\n\n/***/ }),\n\n/***/ \"3cf3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar scatterFormatLabels = __webpack_require__(\"7e96\");\n\nmodule.exports = function formatLabels(cdi, trace, fullLayout) {\n var i = cdi.i;\n if(!('x' in cdi)) cdi.x = trace._x[i];\n if(!('y' in cdi)) cdi.y = trace._y[i];\n return scatterFormatLabels(cdi, trace, fullLayout);\n};\n\n\n/***/ }),\n\n/***/ \"3d2e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\n\nmodule.exports = {\n\n // layout attribute name\n name: 'updatemenus',\n\n // class names\n containerClassName: 'updatemenu-container',\n headerGroupClassName: 'updatemenu-header-group',\n headerClassName: 'updatemenu-header',\n headerArrowClassName: 'updatemenu-header-arrow',\n dropdownButtonGroupClassName: 'updatemenu-dropdown-button-group',\n dropdownButtonClassName: 'updatemenu-dropdown-button',\n buttonClassName: 'updatemenu-button',\n itemRectClassName: 'updatemenu-item-rect',\n itemTextClassName: 'updatemenu-item-text',\n\n // DOM attribute name in button group keeping track\n // of active update menu\n menuIndexAttrName: 'updatemenu-active-index',\n\n // id root pass to Plots.autoMargin\n autoMarginIdRoot: 'updatemenu-',\n\n // options when 'active: -1'\n blankHeaderOpts: { label: ' ' },\n\n // min item width / height\n minWidth: 30,\n minHeight: 30,\n\n // padding around item text\n textPadX: 24,\n arrowPadX: 16,\n\n // item rect radii\n rx: 2,\n ry: 2,\n\n // item text x offset off left edge\n textOffsetX: 12,\n\n // item text y offset (w.r.t. middle)\n textOffsetY: 3,\n\n // arrow offset off right edge\n arrowOffsetX: 4,\n\n // gap between header and buttons\n gapButtonHeader: 5,\n\n // gap between between buttons\n gapButton: 2,\n\n // color given to active buttons\n activeColor: '#F4FAFF',\n\n // color given to hovered buttons\n hoverColor: '#F4FAFF',\n\n // symbol for menu open arrow\n arrowSymbol: {\n left: '◄',\n right: '►',\n up: '▲',\n down: '▼'\n }\n};\n\n\n/***/ }),\n\n/***/ \"3d78\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar vectorizeText = __webpack_require__(\"b993\")\n\nmodule.exports = getGlyph\n\nvar GLYPH_CACHE = {}\n\nfunction getGlyph(symbol, font, pixelRatio) {\n var fontCache = GLYPH_CACHE[font]\n if(!fontCache) {\n fontCache = GLYPH_CACHE[font] = {}\n }\n if(symbol in fontCache) {\n return fontCache[symbol]\n }\n\n var config = {\n textAlign: \"center\",\n textBaseline: \"middle\",\n lineHeight: 1.0,\n font: font,\n lineSpacing: 1.25,\n styletags: {\n breaklines:true,\n bolds: true,\n italics: true,\n subscripts:true,\n superscripts:true\n }\n }\n\n //Get line and triangle meshes for glyph\n config.triangles = true\n var triSymbol = vectorizeText(symbol, config)\n config.triangles = false\n var lineSymbol = vectorizeText(symbol, config)\n\n var i, j\n\n if(pixelRatio && pixelRatio !== 1) {\n for(i = 0; i < triSymbol.positions.length; ++i){\n for(j = 0; j < triSymbol.positions[i].length; ++j){\n triSymbol.positions[i][j] /= pixelRatio;\n }\n }\n\n for(i = 0; i < lineSymbol.positions.length; ++i){\n for(j = 0; j < lineSymbol.positions[i].length; ++j){\n lineSymbol.positions[i][j] /= pixelRatio;\n }\n }\n }\n\n //Calculate bounding box\n var bounds = [[Infinity,Infinity], [-Infinity,-Infinity]]\n var n = lineSymbol.positions.length\n for(i = 0; i < n; ++i) {\n var p = lineSymbol.positions[i]\n for(j=0; j<2; ++j) {\n bounds[0][j] = Math.min(bounds[0][j], p[j])\n bounds[1][j] = Math.max(bounds[1][j], p[j])\n }\n }\n\n //Save cached symbol\n return fontCache[symbol] = [triSymbol, lineSymbol, bounds]\n}\n\n/***/ }),\n\n/***/ \"3dac\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bnsign = __webpack_require__(\"0fba\")\n\nmodule.exports = sign\n\nfunction sign(x) {\n return bnsign(x[0]) * bnsign(x[1])\n}\n\n\n/***/ }),\n\n/***/ \"3de2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n\r\nvar pick = __webpack_require__(\"b7d1\")\r\n\r\nmodule.exports = parseRect\r\n\r\nfunction parseRect (arg) {\r\n var rect\r\n\r\n // direct arguments sequence\r\n if (arguments.length > 1) {\r\n arg = arguments\r\n }\r\n\r\n // svg viewbox\r\n if (typeof arg === 'string') {\r\n arg = arg.split(/\\s/).map(parseFloat)\r\n }\r\n else if (typeof arg === 'number') {\r\n arg = [arg]\r\n }\r\n\r\n // 0, 0, 100, 100 - array-like\r\n if (arg.length && typeof arg[0] === 'number') {\r\n // [w, w]\r\n if (arg.length === 1) {\r\n rect = {\r\n width: arg[0],\r\n height: arg[0],\r\n x: 0, y: 0\r\n }\r\n }\r\n // [w, h]\r\n else if (arg.length === 2) {\r\n rect = {\r\n width: arg[0],\r\n height: arg[1],\r\n x: 0, y: 0\r\n }\r\n }\r\n // [l, t, r, b]\r\n else {\r\n rect = {\r\n x: arg[0],\r\n y: arg[1],\r\n width: (arg[2] - arg[0]) || 0,\r\n height: (arg[3] - arg[1]) || 0\r\n }\r\n }\r\n }\r\n // {x, y, w, h} or {l, t, b, r}\r\n else if (arg) {\r\n arg = pick(arg, {\r\n left: 'x l left Left',\r\n top: 'y t top Top',\r\n width: 'w width W Width',\r\n height: 'h height W Width',\r\n bottom: 'b bottom Bottom',\r\n right: 'r right Right'\r\n })\r\n\r\n rect = {\r\n x: arg.left || 0,\r\n y: arg.top || 0\r\n }\r\n\r\n if (arg.width == null) {\r\n if (arg.right) rect.width = arg.right - rect.x\r\n else rect.width = 0\r\n }\r\n else {\r\n rect.width = arg.width\r\n }\r\n\r\n if (arg.height == null) {\r\n if (arg.bottom) rect.height = arg.bottom - rect.y\r\n else rect.height = 0\r\n }\r\n else {\r\n rect.height = arg.height\r\n }\r\n }\r\n\r\n return rect\r\n}\r\n\n\n/***/ }),\n\n/***/ \"3e11\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar parcats = __webpack_require__(\"cf9f\");\n\n/**\n * Create / update parcat traces\n *\n * @param {Object} graphDiv\n * @param {Array.} parcatsModels\n */\nmodule.exports = function plot(graphDiv, parcatsModels, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = graphDiv._fullLayout;\n var svg = fullLayout._paper;\n var size = fullLayout._size;\n\n parcats(\n graphDiv,\n svg,\n parcatsModels,\n {\n width: size.w,\n height: size.h,\n margin: {\n t: size.t,\n r: size.r,\n b: size.b,\n l: size.l\n }\n },\n transitionOpts,\n makeOnCompleteCallback\n );\n};\n\n\n/***/ }),\n\n/***/ \"3e43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* http://keith-wood.name/calendars.html\n Islamic calendar for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar main = __webpack_require__(\"0230\");\nvar assign = __webpack_require__(\"320c\");\n\n\n/** Implementation of the Islamic or '16 civil' calendar.\n Based on code from http://www.iranchamber.com/calendar/converter/iranian_calendar_converter.php.\n See also http://en.wikipedia.org/wiki/Islamic_calendar.\n @class IslamicCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction IslamicCalendar(language) {\n this.local = this.regionalOptions[language || ''] || this.regionalOptions[''];\n}\n\nIslamicCalendar.prototype = new main.baseCalendar;\n\nassign(IslamicCalendar.prototype, {\n /** The calendar name.\n @memberof IslamicCalendar */\n name: 'Islamic',\n /** Julian date of start of Islamic epoch: 16 July 622 CE.\n @memberof IslamicCalendar */\n jdEpoch: 1948439.5,\n /** Days per month in a common year.\n @memberof IslamicCalendar */\n daysPerMonth: [30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29],\n /** true if has a year zero, false if not.\n @memberof IslamicCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof IslamicCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof IslamicCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof IslamicCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof IslamicCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Islamic',\n epochs: ['BH', 'AH'],\n monthNames: ['Muharram', 'Safar', 'Rabi\\' al-awwal', 'Rabi\\' al-thani', 'Jumada al-awwal', 'Jumada al-thani',\n 'Rajab', 'Sha\\'aban', 'Ramadan', 'Shawwal', 'Dhu al-Qi\\'dah', 'Dhu al-Hijjah'],\n monthNamesShort: ['Muh', 'Saf', 'Rab1', 'Rab2', 'Jum1', 'Jum2', 'Raj', 'Sha\\'', 'Ram', 'Shaw', 'DhuQ', 'DhuH'],\n dayNames: ['Yawm al-ahad', 'Yawm al-ithnayn', 'Yawm ath-thulaathaa\\'',\n 'Yawm al-arbi\\'aa\\'', 'Yawm al-khamīs', 'Yawm al-jum\\'a', 'Yawm as-sabt'],\n dayNamesShort: ['Aha', 'Ith', 'Thu', 'Arb', 'Kha', 'Jum', 'Sab'],\n dayNamesMin: ['Ah','It','Th','Ar','Kh','Ju','Sa'],\n digits: null,\n dateFormat: 'yyyy/mm/dd',\n firstDay: 6,\n isRTL: false\n }\n },\n\n /** Determine whether this date is in a leap year.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return (date.year() * 11 + 14) % 30 < 11;\n },\n\n /** Determine the week of the year for a date.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n // Find Sunday of this week starting on Sunday\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), 'd');\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n\n /** Retrieve the number of days in a year.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n return (this.leapYear(year) ? 355 : 354);\n },\n\n /** Retrieve the number of days in a month.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] +\n (date.month() === 12 && this.leapYear(date.year()) ? 1 : 0);\n },\n\n /** Determine whether this date is a week day.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return this.dayOfWeek(year, month, day) !== 5;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n year = (year <= 0 ? year + 1 : year);\n return day + Math.ceil(29.5 * (month - 1)) + (year - 1) * 354 +\n Math.floor((3 + (11 * year)) / 30) + this.jdEpoch - 1;\n },\n\n /** Create a new date from a Julian date.\n @memberof IslamicCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd) + 0.5;\n var year = Math.floor((30 * (jd - this.jdEpoch) + 10646) / 10631);\n year = (year <= 0 ? year - 1 : year);\n var month = Math.min(12, Math.ceil((jd - 29 - this.toJD(year, 1, 1)) / 29.5) + 1);\n var day = jd - this.toJD(year, month, 1) + 1;\n return this.newDate(year, month, day);\n }\n});\n\n// Islamic (16 civil) calendar implementation\nmain.calendars.islamic = IslamicCalendar;\n\n\n\n/***/ }),\n\n/***/ \"3e8e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n treemapcolorway: {\n valType: 'colorlist',\n \n editType: 'calc',\n \n },\n extendtreemapcolors: {\n valType: 'boolean',\n dflt: true,\n \n editType: 'calc',\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"3e97\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = function eventData(out, pt) {\n if('xVal' in pt) out.x = pt.xVal;\n if('yVal' in pt) out.y = pt.yVal;\n if(pt.xa) out.xaxis = pt.xa;\n if(pt.ya) out.yaxis = pt.ya;\n out.color = pt.color;\n out.colormodel = pt.trace.colormodel;\n return out;\n};\n\n\n/***/ }),\n\n/***/ \"3eab\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"77ae\");\n\n\n/***/ }),\n\n/***/ \"3ee9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n attributes: __webpack_require__(\"6b50\"),\n supplyDefaults: __webpack_require__(\"b6f7\"),\n calc: __webpack_require__(\"6dea\"),\n colorbar: {\n min: 'cmin',\n max: 'cmax'\n },\n plot: __webpack_require__(\"54a9\"),\n\n moduleType: 'trace',\n name: 'mesh3d',\n basePlotModule: __webpack_require__(\"134c\"),\n categories: ['gl3d', 'showLegend'],\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"3efe\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"a18b\");\n\n\n/***/ }),\n\n/***/ \"3f57\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"e5c5\")\n\n/***/ }),\n\n/***/ \"3fb2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Plots = __webpack_require__(\"bb71\");\nvar PlotSchema = __webpack_require__(\"6921\");\nvar dfltConfig = __webpack_require__(\"3ff5\").dfltConfig;\n\nvar isPlainObject = Lib.isPlainObject;\nvar isArray = Array.isArray;\nvar isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n\n/**\n * Validate a data array and layout object.\n *\n * @param {array} data\n * @param {object} layout\n *\n * @return {array} array of error objects each containing:\n * - {string} code\n * error code ('object', 'array', 'schema', 'unused', 'invisible' or 'value')\n * - {string} container\n * container where the error occurs ('data' or 'layout')\n * - {number} trace\n * trace index of the 'data' container where the error occurs\n * - {array} path\n * nested path to the key that causes the error\n * - {string} astr\n * attribute string variant of 'path' compatible with Plotly.restyle and\n * Plotly.relayout.\n * - {string} msg\n * error message (shown in console in logger config argument is enable)\n */\nmodule.exports = function validate(data, layout) {\n var schema = PlotSchema.get();\n var errorList = [];\n var gd = {_context: Lib.extendFlat({}, dfltConfig)};\n\n var dataIn, layoutIn;\n\n if(isArray(data)) {\n gd.data = Lib.extendDeep([], data);\n dataIn = data;\n } else {\n gd.data = [];\n dataIn = [];\n errorList.push(format('array', 'data'));\n }\n\n if(isPlainObject(layout)) {\n gd.layout = Lib.extendDeep({}, layout);\n layoutIn = layout;\n } else {\n gd.layout = {};\n layoutIn = {};\n if(arguments.length > 1) {\n errorList.push(format('object', 'layout'));\n }\n }\n\n // N.B. dataIn and layoutIn are in general not the same as\n // gd.data and gd.layout after supplyDefaults as some attributes\n // in gd.data and gd.layout (still) get mutated during this step.\n\n Plots.supplyDefaults(gd);\n\n var dataOut = gd._fullData;\n var len = dataIn.length;\n\n for(var i = 0; i < len; i++) {\n var traceIn = dataIn[i];\n var base = ['data', i];\n\n if(!isPlainObject(traceIn)) {\n errorList.push(format('object', base));\n continue;\n }\n\n var traceOut = dataOut[i];\n var traceType = traceOut.type;\n var traceSchema = schema.traces[traceType].attributes;\n\n // PlotSchema does something fancy with trace 'type', reset it here\n // to make the trace schema compatible with Lib.validate.\n traceSchema.type = {\n valType: 'enumerated',\n values: [traceType]\n };\n\n if(traceOut.visible === false && traceIn.visible !== false) {\n errorList.push(format('invisible', base));\n }\n\n crawl(traceIn, traceOut, traceSchema, errorList, base);\n\n var transformsIn = traceIn.transforms;\n var transformsOut = traceOut.transforms;\n\n if(transformsIn) {\n if(!isArray(transformsIn)) {\n errorList.push(format('array', base, ['transforms']));\n }\n\n base.push('transforms');\n\n for(var j = 0; j < transformsIn.length; j++) {\n var path = ['transforms', j];\n var transformType = transformsIn[j].type;\n\n if(!isPlainObject(transformsIn[j])) {\n errorList.push(format('object', base, path));\n continue;\n }\n\n var transformSchema = schema.transforms[transformType] ?\n schema.transforms[transformType].attributes :\n {};\n\n // add 'type' to transform schema to validate the transform type\n transformSchema.type = {\n valType: 'enumerated',\n values: Object.keys(schema.transforms)\n };\n\n crawl(transformsIn[j], transformsOut[j], transformSchema, errorList, base, path);\n }\n }\n }\n\n var layoutOut = gd._fullLayout;\n var layoutSchema = fillLayoutSchema(schema, dataOut);\n\n crawl(layoutIn, layoutOut, layoutSchema, errorList, 'layout');\n\n // return undefined if no validation errors were found\n return (errorList.length === 0) ? void(0) : errorList;\n};\n\nfunction crawl(objIn, objOut, schema, list, base, path) {\n path = path || [];\n\n var keys = Object.keys(objIn);\n\n for(var i = 0; i < keys.length; i++) {\n var k = keys[i];\n\n // transforms are handled separately\n if(k === 'transforms') continue;\n\n var p = path.slice();\n p.push(k);\n\n var valIn = objIn[k];\n var valOut = objOut[k];\n\n var nestedSchema = getNestedSchema(schema, k);\n var isInfoArray = (nestedSchema || {}).valType === 'info_array';\n var isColorscale = (nestedSchema || {}).valType === 'colorscale';\n var items = (nestedSchema || {}).items;\n\n if(!isInSchema(schema, k)) {\n list.push(format('schema', base, p));\n } else if(isPlainObject(valIn) && isPlainObject(valOut)) {\n crawl(valIn, valOut, nestedSchema, list, base, p);\n } else if(isInfoArray && isArray(valIn)) {\n if(valIn.length > valOut.length) {\n list.push(format('unused', base, p.concat(valOut.length)));\n }\n var len = valOut.length;\n var arrayItems = Array.isArray(items);\n if(arrayItems) len = Math.min(len, items.length);\n var m, n, item, valInPart, valOutPart;\n if(nestedSchema.dimensions === 2) {\n for(n = 0; n < len; n++) {\n if(isArray(valIn[n])) {\n if(valIn[n].length > valOut[n].length) {\n list.push(format('unused', base, p.concat(n, valOut[n].length)));\n }\n var len2 = valOut[n].length;\n for(m = 0; m < (arrayItems ? Math.min(len2, items[n].length) : len2); m++) {\n item = arrayItems ? items[n][m] : items;\n valInPart = valIn[n][m];\n valOutPart = valOut[n][m];\n if(!Lib.validate(valInPart, item)) {\n list.push(format('value', base, p.concat(n, m), valInPart));\n } else if(valOutPart !== valInPart && valOutPart !== +valInPart) {\n list.push(format('dynamic', base, p.concat(n, m), valInPart, valOutPart));\n }\n }\n } else {\n list.push(format('array', base, p.concat(n), valIn[n]));\n }\n }\n } else {\n for(n = 0; n < len; n++) {\n item = arrayItems ? items[n] : items;\n valInPart = valIn[n];\n valOutPart = valOut[n];\n if(!Lib.validate(valInPart, item)) {\n list.push(format('value', base, p.concat(n), valInPart));\n } else if(valOutPart !== valInPart && valOutPart !== +valInPart) {\n list.push(format('dynamic', base, p.concat(n), valInPart, valOutPart));\n }\n }\n }\n } else if(nestedSchema.items && !isInfoArray && isArray(valIn)) {\n var _nestedSchema = items[Object.keys(items)[0]];\n var indexList = [];\n\n var j, _p;\n\n // loop over valOut items while keeping track of their\n // corresponding input container index (given by _index)\n for(j = 0; j < valOut.length; j++) {\n var _index = valOut[j]._index || j;\n\n _p = p.slice();\n _p.push(_index);\n\n if(isPlainObject(valIn[_index]) && isPlainObject(valOut[j])) {\n indexList.push(_index);\n var valInj = valIn[_index];\n var valOutj = valOut[j];\n if(isPlainObject(valInj) && valInj.visible !== false && valOutj.visible === false) {\n list.push(format('invisible', base, _p));\n } else crawl(valInj, valOutj, _nestedSchema, list, base, _p);\n }\n }\n\n // loop over valIn to determine where it went wrong for some items\n for(j = 0; j < valIn.length; j++) {\n _p = p.slice();\n _p.push(j);\n\n if(!isPlainObject(valIn[j])) {\n list.push(format('object', base, _p, valIn[j]));\n } else if(indexList.indexOf(j) === -1) {\n list.push(format('unused', base, _p));\n }\n }\n } else if(!isPlainObject(valIn) && isPlainObject(valOut)) {\n list.push(format('object', base, p, valIn));\n } else if(!isArrayOrTypedArray(valIn) && isArrayOrTypedArray(valOut) && !isInfoArray && !isColorscale) {\n list.push(format('array', base, p, valIn));\n } else if(!(k in objOut)) {\n list.push(format('unused', base, p, valIn));\n } else if(!Lib.validate(valIn, nestedSchema)) {\n list.push(format('value', base, p, valIn));\n } else if(nestedSchema.valType === 'enumerated' &&\n ((nestedSchema.coerceNumber && valIn !== +valOut) || valIn !== valOut)\n ) {\n list.push(format('dynamic', base, p, valIn, valOut));\n }\n }\n\n return list;\n}\n\n// the 'full' layout schema depends on the traces types presents\nfunction fillLayoutSchema(schema, dataOut) {\n var layoutSchema = schema.layout.layoutAttributes;\n\n for(var i = 0; i < dataOut.length; i++) {\n var traceOut = dataOut[i];\n var traceSchema = schema.traces[traceOut.type];\n var traceLayoutAttr = traceSchema.layoutAttributes;\n\n if(traceLayoutAttr) {\n if(traceOut.subplot) {\n Lib.extendFlat(layoutSchema[traceSchema.attributes.subplot.dflt], traceLayoutAttr);\n } else {\n Lib.extendFlat(layoutSchema, traceLayoutAttr);\n }\n }\n }\n\n return layoutSchema;\n}\n\n// validation error codes\nvar code2msgFunc = {\n object: function(base, astr) {\n var prefix;\n\n if(base === 'layout' && astr === '') prefix = 'The layout argument';\n else if(base[0] === 'data' && astr === '') {\n prefix = 'Trace ' + base[1] + ' in the data argument';\n } else prefix = inBase(base) + 'key ' + astr;\n\n return prefix + ' must be linked to an object container';\n },\n array: function(base, astr) {\n var prefix;\n\n if(base === 'data') prefix = 'The data argument';\n else prefix = inBase(base) + 'key ' + astr;\n\n return prefix + ' must be linked to an array container';\n },\n schema: function(base, astr) {\n return inBase(base) + 'key ' + astr + ' is not part of the schema';\n },\n unused: function(base, astr, valIn) {\n var target = isPlainObject(valIn) ? 'container' : 'key';\n\n return inBase(base) + target + ' ' + astr + ' did not get coerced';\n },\n dynamic: function(base, astr, valIn, valOut) {\n return [\n inBase(base) + 'key',\n astr,\n '(set to \\'' + valIn + '\\')',\n 'got reset to',\n '\\'' + valOut + '\\'',\n 'during defaults.'\n ].join(' ');\n },\n invisible: function(base, astr) {\n return (\n astr ? (inBase(base) + 'item ' + astr) : ('Trace ' + base[1])\n ) + ' got defaulted to be not visible';\n },\n value: function(base, astr, valIn) {\n return [\n inBase(base) + 'key ' + astr,\n 'is set to an invalid value (' + valIn + ')'\n ].join(' ');\n }\n};\n\nfunction inBase(base) {\n if(isArray(base)) return 'In data trace ' + base[1] + ', ';\n\n return 'In ' + base + ', ';\n}\n\nfunction format(code, base, path, valIn, valOut) {\n path = path || '';\n\n var container, trace;\n\n // container is either 'data' or 'layout\n // trace is the trace index if 'data', null otherwise\n\n if(isArray(base)) {\n container = base[0];\n trace = base[1];\n } else {\n container = base;\n trace = null;\n }\n\n var astr = convertPathToAttributeString(path);\n var msg = code2msgFunc[code](base, astr, valIn, valOut);\n\n // log to console if logger config option is enabled\n Lib.log(msg);\n\n return {\n code: code,\n container: container,\n trace: trace,\n path: path,\n astr: astr,\n msg: msg\n };\n}\n\nfunction isInSchema(schema, key) {\n var parts = splitKey(key);\n var keyMinusId = parts.keyMinusId;\n var id = parts.id;\n\n if((keyMinusId in schema) && schema[keyMinusId]._isSubplotObj && id) {\n return true;\n }\n\n return (key in schema);\n}\n\nfunction getNestedSchema(schema, key) {\n if(key in schema) return schema[key];\n\n var parts = splitKey(key);\n\n return schema[parts.keyMinusId];\n}\n\nvar idRegex = Lib.counterRegex('([a-z]+)');\n\nfunction splitKey(key) {\n var idMatch = key.match(idRegex);\n\n return {\n keyMinusId: idMatch && idMatch[1],\n id: idMatch && idMatch[2]\n };\n}\n\nfunction convertPathToAttributeString(path) {\n if(!isArray(path)) return String(path);\n\n var astr = '';\n\n for(var i = 0; i < path.length; i++) {\n var p = path[i];\n\n if(typeof p === 'number') {\n astr = astr.substr(0, astr.length - 1) + '[' + p + ']';\n } else {\n astr += p;\n }\n\n if(i < path.length - 1) astr += '.';\n }\n\n return astr;\n}\n\n\n/***/ }),\n\n/***/ \"3fca\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar mapboxgl = __webpack_require__(\"e192\");\n\nvar Fx = __webpack_require__(\"a5c4\");\nvar Lib = __webpack_require__(\"fc26\");\nvar geoUtils = __webpack_require__(\"0919\");\nvar Registry = __webpack_require__(\"371e\");\nvar Axes = __webpack_require__(\"0642\");\nvar dragElement = __webpack_require__(\"4efe\");\nvar prepSelect = __webpack_require__(\"1876\").prepSelect;\nvar selectOnClick = __webpack_require__(\"1876\").selectOnClick;\n\nvar constants = __webpack_require__(\"b5e4\");\nvar createMapboxLayer = __webpack_require__(\"d0d2\");\n\nfunction Mapbox(gd, id) {\n this.id = id;\n this.gd = gd;\n\n var fullLayout = gd._fullLayout;\n var context = gd._context;\n\n this.container = fullLayout._glcontainer.node();\n this.isStatic = context.staticPlot;\n\n // unique id for this Mapbox instance\n this.uid = fullLayout._uid + '-' + this.id;\n\n // create framework on instantiation for a smoother first plot call\n this.div = null;\n this.xaxis = null;\n this.yaxis = null;\n this.createFramework(fullLayout);\n\n // state variables used to infer how and what to update\n this.map = null;\n this.accessToken = null;\n this.styleObj = null;\n this.traceHash = {};\n this.layerList = [];\n this.belowLookup = {};\n this.dragging = false;\n this.wheeling = false;\n}\n\nvar proto = Mapbox.prototype;\n\nproto.plot = function(calcData, fullLayout, promises) {\n var self = this;\n var opts = fullLayout[self.id];\n\n // remove map and create a new map if access token has change\n if(self.map && (opts.accesstoken !== self.accessToken)) {\n self.map.remove();\n self.map = null;\n self.styleObj = null;\n self.traceHash = [];\n self.layerList = {};\n }\n\n var promise;\n\n if(!self.map) {\n promise = new Promise(function(resolve, reject) {\n self.createMap(calcData, fullLayout, resolve, reject);\n });\n } else {\n promise = new Promise(function(resolve, reject) {\n self.updateMap(calcData, fullLayout, resolve, reject);\n });\n }\n\n promises.push(promise);\n};\n\nproto.createMap = function(calcData, fullLayout, resolve, reject) {\n var self = this;\n var opts = fullLayout[self.id];\n\n // store style id and URL or object\n var styleObj = self.styleObj = getStyleObj(opts.style);\n\n // store access token associated with this map\n self.accessToken = opts.accesstoken;\n\n // create the map!\n var map = self.map = new mapboxgl.Map({\n container: self.div,\n\n style: styleObj.style,\n center: convertCenter(opts.center),\n zoom: opts.zoom,\n bearing: opts.bearing,\n pitch: opts.pitch,\n\n interactive: !self.isStatic,\n preserveDrawingBuffer: self.isStatic,\n\n doubleClickZoom: false,\n boxZoom: false,\n\n attributionControl: false\n })\n .addControl(new mapboxgl.AttributionControl({\n compact: true\n }));\n\n\n // make sure canvas does not inherit left and top css\n map._canvas.style.left = '0px';\n map._canvas.style.top = '0px';\n\n self.rejectOnError(reject);\n\n if(!self.isStatic) {\n self.initFx(calcData, fullLayout);\n }\n\n var promises = [];\n\n promises.push(new Promise(function(resolve) {\n map.once('load', resolve);\n }));\n\n promises = promises.concat(geoUtils.fetchTraceGeoData(calcData));\n\n Promise.all(promises).then(function() {\n self.fillBelowLookup(calcData, fullLayout);\n self.updateData(calcData);\n self.updateLayout(fullLayout);\n self.resolveOnRender(resolve);\n }).catch(reject);\n};\n\nproto.updateMap = function(calcData, fullLayout, resolve, reject) {\n var self = this;\n var map = self.map;\n var opts = fullLayout[this.id];\n\n self.rejectOnError(reject);\n\n var promises = [];\n var styleObj = getStyleObj(opts.style);\n\n if(self.styleObj.id !== styleObj.id) {\n self.styleObj = styleObj;\n map.setStyle(styleObj.style);\n\n // need to rebuild trace layers on reload\n // to avoid 'lost event' errors\n self.traceHash = {};\n\n promises.push(new Promise(function(resolve) {\n map.once('styledata', resolve);\n }));\n }\n\n promises = promises.concat(geoUtils.fetchTraceGeoData(calcData));\n\n Promise.all(promises).then(function() {\n self.fillBelowLookup(calcData, fullLayout);\n self.updateData(calcData);\n self.updateLayout(fullLayout);\n self.resolveOnRender(resolve);\n }).catch(reject);\n};\n\nproto.fillBelowLookup = function(calcData, fullLayout) {\n var opts = fullLayout[this.id];\n var layers = opts.layers;\n var i, val;\n\n var belowLookup = this.belowLookup = {};\n var hasTraceAtTop = false;\n\n for(i = 0; i < calcData.length; i++) {\n var trace = calcData[i][0].trace;\n var _module = trace._module;\n\n if(typeof trace.below === 'string') {\n val = trace.below;\n } else if(_module.getBelow) {\n // 'smart' default that depend the map's base layers\n val = _module.getBelow(trace, this);\n }\n\n if(val === '') {\n hasTraceAtTop = true;\n }\n\n belowLookup['trace-' + trace.uid] = val || '';\n }\n\n for(i = 0; i < layers.length; i++) {\n var item = layers[i];\n\n if(typeof item.below === 'string') {\n val = item.below;\n } else if(hasTraceAtTop) {\n // if one or more trace(s) set `below:''` and\n // layers[i].below is unset,\n // place layer below traces\n val = 'traces';\n } else {\n val = '';\n }\n\n belowLookup['layout-' + i] = val;\n }\n\n // N.B. If multiple layers have the 'below' value,\n // we must clear the stashed 'below' field in order\n // to make `traceHash[k].update()` and `layerList[i].update()`\n // remove/add the all those layers to have preserve\n // the correct layer ordering\n var val2list = {};\n var k, id;\n\n for(k in belowLookup) {\n val = belowLookup[k];\n if(val2list[val]) {\n val2list[val].push(k);\n } else {\n val2list[val] = [k];\n }\n }\n\n for(val in val2list) {\n var list = val2list[val];\n if(list.length > 1) {\n for(i = 0; i < list.length; i++) {\n k = list[i];\n if(k.indexOf('trace-') === 0) {\n id = k.split('trace-')[1];\n if(this.traceHash[id]) {\n this.traceHash[id].below = null;\n }\n } else if(k.indexOf('layout-') === 0) {\n id = k.split('layout-')[1];\n if(this.layerList[id]) {\n this.layerList[id].below = null;\n }\n }\n }\n }\n }\n};\n\nvar traceType2orderIndex = {\n choroplethmapbox: 0,\n densitymapbox: 1,\n scattermapbox: 2\n};\n\nproto.updateData = function(calcData) {\n var traceHash = this.traceHash;\n var traceObj, trace, i, j;\n\n // Need to sort here by trace type here,\n // in case traces with different `type` have the same\n // below value, but sorting we ensure that\n // e.g. choroplethmapbox traces will be below scattermapbox traces\n var calcDataSorted = calcData.slice().sort(function(a, b) {\n return (\n traceType2orderIndex[a[0].trace.type] -\n traceType2orderIndex[b[0].trace.type]\n );\n });\n\n // update or create trace objects\n for(i = 0; i < calcDataSorted.length; i++) {\n var calcTrace = calcDataSorted[i];\n\n trace = calcTrace[0].trace;\n traceObj = traceHash[trace.uid];\n\n var didUpdate = false;\n if(traceObj) {\n if(traceObj.type === trace.type) {\n traceObj.update(calcTrace);\n didUpdate = true;\n } else {\n traceObj.dispose();\n }\n }\n if(!didUpdate && trace._module) {\n traceHash[trace.uid] = trace._module.plot(this, calcTrace);\n }\n }\n\n // remove empty trace objects\n var ids = Object.keys(traceHash);\n idLoop:\n for(i = 0; i < ids.length; i++) {\n var id = ids[i];\n\n for(j = 0; j < calcData.length; j++) {\n trace = calcData[j][0].trace;\n if(id === trace.uid) continue idLoop;\n }\n\n traceObj = traceHash[id];\n traceObj.dispose();\n delete traceHash[id];\n }\n};\n\nproto.updateLayout = function(fullLayout) {\n var map = this.map;\n var opts = fullLayout[this.id];\n\n if(!this.dragging && !this.wheeling) {\n map.setCenter(convertCenter(opts.center));\n map.setZoom(opts.zoom);\n map.setBearing(opts.bearing);\n map.setPitch(opts.pitch);\n }\n\n this.updateLayers(fullLayout);\n this.updateFramework(fullLayout);\n this.updateFx(fullLayout);\n this.map.resize();\n\n if(this.gd._context._scrollZoom.mapbox) {\n map.scrollZoom.enable();\n } else {\n map.scrollZoom.disable();\n }\n};\n\nproto.resolveOnRender = function(resolve) {\n var map = this.map;\n\n map.on('render', function onRender() {\n if(map.loaded()) {\n map.off('render', onRender);\n // resolve at end of render loop\n //\n // Need a 10ms delay (0ms should suffice to skip a thread in the\n // render loop) to workaround mapbox-gl bug introduced in v1.3.0\n setTimeout(resolve, 10);\n }\n });\n};\n\nproto.rejectOnError = function(reject) {\n var map = this.map;\n\n function handler() {\n reject(new Error(constants.mapOnErrorMsg));\n }\n\n map.once('error', handler);\n map.once('style.error', handler);\n map.once('source.error', handler);\n map.once('tile.error', handler);\n map.once('layer.error', handler);\n};\n\nproto.createFramework = function(fullLayout) {\n var self = this;\n\n var div = self.div = document.createElement('div');\n div.id = self.uid;\n div.style.position = 'absolute';\n self.container.appendChild(div);\n\n // create mock x/y axes for hover routine\n self.xaxis = {\n _id: 'x',\n c2p: function(v) { return self.project(v).x; }\n };\n self.yaxis = {\n _id: 'y',\n c2p: function(v) { return self.project(v).y; }\n };\n\n self.updateFramework(fullLayout);\n\n // mock axis for hover formatting\n self.mockAxis = {\n type: 'linear',\n showexponent: 'all',\n exponentformat: 'B'\n };\n Axes.setConvert(self.mockAxis, fullLayout);\n};\n\nproto.initFx = function(calcData, fullLayout) {\n var self = this;\n var gd = self.gd;\n var map = self.map;\n\n // keep track of pan / zoom in user layout and emit relayout event\n map.on('moveend', function(evt) {\n if(!self.map) return;\n\n var fullLayoutNow = gd._fullLayout;\n\n // 'moveend' gets triggered by map.setCenter, map.setZoom,\n // map.setBearing and map.setPitch.\n //\n // Here, we make sure that state updates amd 'plotly_relayout'\n // are triggered only when the 'moveend' originates from a\n // mouse target (filtering out API calls) to not\n // duplicate 'plotly_relayout' events.\n\n if(evt.originalEvent || self.wheeling) {\n var optsNow = fullLayoutNow[self.id];\n Registry.call('_storeDirectGUIEdit', gd.layout, fullLayoutNow._preGUI, self.getViewEdits(optsNow));\n\n var viewNow = self.getView();\n optsNow._input.center = optsNow.center = viewNow.center;\n optsNow._input.zoom = optsNow.zoom = viewNow.zoom;\n optsNow._input.bearing = optsNow.bearing = viewNow.bearing;\n optsNow._input.pitch = optsNow.pitch = viewNow.pitch;\n gd.emit('plotly_relayout', self.getViewEditsWithDerived(viewNow));\n }\n if(evt.originalEvent && evt.originalEvent.type === 'mouseup') {\n self.dragging = false;\n } else if(self.wheeling) {\n self.wheeling = false;\n }\n\n if(fullLayoutNow._rehover) {\n fullLayoutNow._rehover();\n }\n });\n\n map.on('wheel', function() {\n self.wheeling = true;\n });\n\n map.on('mousemove', function(evt) {\n var bb = self.div.getBoundingClientRect();\n\n // some hackery to get Fx.hover to work\n evt.clientX = evt.point.x + bb.left;\n evt.clientY = evt.point.y + bb.top;\n\n evt.target.getBoundingClientRect = function() { return bb; };\n\n self.xaxis.p2c = function() { return evt.lngLat.lng; };\n self.yaxis.p2c = function() { return evt.lngLat.lat; };\n\n gd._fullLayout._rehover = function() {\n if(gd._fullLayout._hoversubplot === self.id && gd._fullLayout[self.id]) {\n Fx.hover(gd, evt, self.id);\n }\n };\n\n Fx.hover(gd, evt, self.id);\n gd._fullLayout._hoversubplot = self.id;\n });\n\n function unhover() {\n Fx.loneUnhover(fullLayout._hoverlayer);\n }\n\n map.on('dragstart', function() {\n self.dragging = true;\n unhover();\n });\n map.on('zoomstart', unhover);\n\n map.on('mouseout', function() {\n gd._fullLayout._hoversubplot = null;\n });\n\n function emitUpdate() {\n var viewNow = self.getView();\n gd.emit('plotly_relayouting', self.getViewEditsWithDerived(viewNow));\n }\n\n map.on('drag', emitUpdate);\n map.on('zoom', emitUpdate);\n\n map.on('dblclick', function() {\n var optsNow = gd._fullLayout[self.id];\n Registry.call('_storeDirectGUIEdit', gd.layout, gd._fullLayout._preGUI, self.getViewEdits(optsNow));\n\n var viewInitial = self.viewInitial;\n map.setCenter(convertCenter(viewInitial.center));\n map.setZoom(viewInitial.zoom);\n map.setBearing(viewInitial.bearing);\n map.setPitch(viewInitial.pitch);\n\n var viewNow = self.getView();\n optsNow._input.center = optsNow.center = viewNow.center;\n optsNow._input.zoom = optsNow.zoom = viewNow.zoom;\n optsNow._input.bearing = optsNow.bearing = viewNow.bearing;\n optsNow._input.pitch = optsNow.pitch = viewNow.pitch;\n\n gd.emit('plotly_doubleclick', null);\n gd.emit('plotly_relayout', self.getViewEditsWithDerived(viewNow));\n });\n\n // define event handlers on map creation, to keep one ref per map,\n // so that map.on / map.off in updateFx works as expected\n self.clearSelect = function() {\n gd._fullLayout._zoomlayer.selectAll('.select-outline').remove();\n };\n\n /**\n * Returns a click handler function that is supposed\n * to handle clicks in pan mode.\n */\n self.onClickInPanFn = function(dragOptions) {\n return function(evt) {\n var clickMode = gd._fullLayout.clickmode;\n\n if(clickMode.indexOf('select') > -1) {\n selectOnClick(evt.originalEvent, gd, [self.xaxis], [self.yaxis], self.id, dragOptions);\n }\n\n if(clickMode.indexOf('event') > -1) {\n // TODO: this does not support right-click. If we want to support it, we\n // would likely need to change mapbox to use dragElement instead of straight\n // mapbox event binding. Or perhaps better, make a simple wrapper with the\n // right mousedown, mousemove, and mouseup handlers just for a left/right click\n // pie would use this too.\n Fx.click(gd, evt.originalEvent);\n }\n };\n };\n};\n\nproto.updateFx = function(fullLayout) {\n var self = this;\n var map = self.map;\n var gd = self.gd;\n\n if(self.isStatic) return;\n\n function invert(pxpy) {\n var obj = self.map.unproject(pxpy);\n return [obj.lng, obj.lat];\n }\n\n var dragMode = fullLayout.dragmode;\n var fillRangeItems;\n\n if(dragMode === 'select') {\n fillRangeItems = function(eventData, poly) {\n var ranges = eventData.range = {};\n ranges[self.id] = [\n invert([poly.xmin, poly.ymin]),\n invert([poly.xmax, poly.ymax])\n ];\n };\n } else {\n fillRangeItems = function(eventData, poly, pts) {\n var dataPts = eventData.lassoPoints = {};\n dataPts[self.id] = pts.filtered.map(invert);\n };\n }\n\n // Note: dragOptions is needed to be declared for all dragmodes because\n // it's the object that holds persistent selection state.\n // Merge old dragOptions with new to keep possibly initialized\n // persistent selection state.\n var oldDragOptions = self.dragOptions;\n self.dragOptions = Lib.extendDeep(oldDragOptions || {}, {\n element: self.div,\n gd: gd,\n plotinfo: {\n id: self.id,\n xaxis: self.xaxis,\n yaxis: self.yaxis,\n fillRangeItems: fillRangeItems\n },\n xaxes: [self.xaxis],\n yaxes: [self.yaxis],\n subplot: self.id\n });\n\n // Unregister the old handler before potentially registering\n // a new one. Otherwise multiple click handlers might\n // be registered resulting in unwanted behavior.\n map.off('click', self.onClickInPanHandler);\n if(dragMode === 'select' || dragMode === 'lasso') {\n map.dragPan.disable();\n map.on('zoomstart', self.clearSelect);\n\n self.dragOptions.prepFn = function(e, startX, startY) {\n prepSelect(e, startX, startY, self.dragOptions, dragMode);\n };\n\n dragElement.init(self.dragOptions);\n } else {\n map.dragPan.enable();\n map.off('zoomstart', self.clearSelect);\n self.div.onmousedown = null;\n\n // TODO: this does not support right-click. If we want to support it, we\n // would likely need to change mapbox to use dragElement instead of straight\n // mapbox event binding. Or perhaps better, make a simple wrapper with the\n // right mousedown, mousemove, and mouseup handlers just for a left/right click\n // pie would use this too.\n self.onClickInPanHandler = self.onClickInPanFn(self.dragOptions);\n map.on('click', self.onClickInPanHandler);\n }\n};\n\nproto.updateFramework = function(fullLayout) {\n var domain = fullLayout[this.id].domain;\n var size = fullLayout._size;\n\n var style = this.div.style;\n style.width = size.w * (domain.x[1] - domain.x[0]) + 'px';\n style.height = size.h * (domain.y[1] - domain.y[0]) + 'px';\n style.left = size.l + domain.x[0] * size.w + 'px';\n style.top = size.t + (1 - domain.y[1]) * size.h + 'px';\n\n this.xaxis._offset = size.l + domain.x[0] * size.w;\n this.xaxis._length = size.w * (domain.x[1] - domain.x[0]);\n\n this.yaxis._offset = size.t + (1 - domain.y[1]) * size.h;\n this.yaxis._length = size.h * (domain.y[1] - domain.y[0]);\n};\n\nproto.updateLayers = function(fullLayout) {\n var opts = fullLayout[this.id];\n var layers = opts.layers;\n var layerList = this.layerList;\n var i;\n\n // if the layer arrays don't match,\n // don't try to be smart,\n // delete them all, and start all over.\n\n if(layers.length !== layerList.length) {\n for(i = 0; i < layerList.length; i++) {\n layerList[i].dispose();\n }\n\n layerList = this.layerList = [];\n\n for(i = 0; i < layers.length; i++) {\n layerList.push(createMapboxLayer(this, i, layers[i]));\n }\n } else {\n for(i = 0; i < layers.length; i++) {\n layerList[i].update(layers[i]);\n }\n }\n};\n\nproto.destroy = function() {\n if(this.map) {\n this.map.remove();\n this.map = null;\n this.container.removeChild(this.div);\n }\n};\n\nproto.toImage = function() {\n this.map.stop();\n return this.map.getCanvas().toDataURL();\n};\n\n// convenience wrapper to create set multiple layer\n// 'layout' or 'paint options at once.\nproto.setOptions = function(id, methodName, opts) {\n for(var k in opts) {\n this.map[methodName](id, k, opts[k]);\n }\n};\n\nproto.getMapLayers = function() {\n return this.map.getStyle().layers;\n};\n\n// convenience wrapper that first check in 'below' references\n// a layer that exist and then add the layer to the map,\nproto.addLayer = function(opts, below) {\n var map = this.map;\n\n if(typeof below === 'string') {\n if(below === '') {\n map.addLayer(opts, below);\n return;\n }\n\n var mapLayers = this.getMapLayers();\n for(var i = 0; i < mapLayers.length; i++) {\n if(below === mapLayers[i].id) {\n map.addLayer(opts, below);\n return;\n }\n }\n\n Lib.warn([\n 'Trying to add layer with *below* value',\n below,\n 'referencing a layer that does not exist',\n 'or that does not yet exist.'\n ].join(' '));\n }\n\n map.addLayer(opts);\n};\n\n// convenience method to project a [lon, lat] array to pixel coords\nproto.project = function(v) {\n return this.map.project(new mapboxgl.LngLat(v[0], v[1]));\n};\n\n// get map's current view values in plotly.js notation\nproto.getView = function() {\n var map = this.map;\n var mapCenter = map.getCenter();\n var center = { lon: mapCenter.lng, lat: mapCenter.lat };\n\n var canvas = map.getCanvas();\n var w = canvas.width;\n var h = canvas.height;\n return {\n center: center,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch(),\n _derived: {\n coordinates: [\n map.unproject([0, 0]).toArray(),\n map.unproject([w, 0]).toArray(),\n map.unproject([w, h]).toArray(),\n map.unproject([0, h]).toArray()\n ]\n }\n };\n};\n\nproto.getViewEdits = function(cont) {\n var id = this.id;\n var keys = ['center', 'zoom', 'bearing', 'pitch'];\n var obj = {};\n\n for(var i = 0; i < keys.length; i++) {\n var k = keys[i];\n obj[id + '.' + k] = cont[k];\n }\n\n return obj;\n};\n\nproto.getViewEditsWithDerived = function(cont) {\n var id = this.id;\n var obj = this.getViewEdits(cont);\n obj[id + '._derived'] = cont._derived;\n return obj;\n};\n\nfunction getStyleObj(val) {\n var styleObj = {};\n\n if(Lib.isPlainObject(val)) {\n styleObj.id = val.id;\n styleObj.style = val;\n } else if(typeof val === 'string') {\n styleObj.id = val;\n\n if(constants.styleValuesMapbox.indexOf(val) !== -1) {\n styleObj.style = convertStyleVal(val);\n } else if(constants.stylesNonMapbox[val]) {\n styleObj.style = constants.stylesNonMapbox[val];\n } else {\n styleObj.style = val;\n }\n } else {\n styleObj.id = constants.styleValueDflt;\n styleObj.style = convertStyleVal(constants.styleValueDflt);\n }\n\n styleObj.transition = {duration: 0, delay: 0};\n\n return styleObj;\n}\n\n// if style is part of the 'official' mapbox values, add URL prefix and suffix\nfunction convertStyleVal(val) {\n return constants.styleUrlPrefix + val + '-' + constants.styleUrlSuffix;\n}\n\nfunction convertCenter(center) {\n return [center.lon, center.lat];\n}\n\nmodule.exports = Mapbox;\n\n\n/***/ }),\n\n/***/ \"3fe8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\n\nmodule.exports = function handleOHLC(traceIn, traceOut, coerce, layout) {\n var x = coerce('x');\n var open = coerce('open');\n var high = coerce('high');\n var low = coerce('low');\n var close = coerce('close');\n\n coerce('hoverlabel.split');\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x'], layout);\n\n if(!(open && high && low && close)) return;\n\n var len = Math.min(open.length, high.length, low.length, close.length);\n if(x) len = Math.min(len, Lib.minRowLength(x));\n traceOut._length = len;\n\n return len;\n};\n\n\n/***/ }),\n\n/***/ \"3ff5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n/**\n * This will be transferred over to gd and overridden by\n * config args to Plotly.plot.\n *\n * The defaults are the appropriate settings for plotly.js,\n * so we get the right experience without any config argument.\n *\n * N.B. the config options are not coerced using Lib.coerce so keys\n * like `valType` and `values` are only set for documentation purposes\n * at the moment.\n */\n\nvar configAttributes = {\n staticPlot: {\n valType: 'boolean',\n dflt: false,\n \n },\n\n plotlyServerURL: {\n valType: 'string',\n dflt: 'https://plot.ly',\n \n },\n\n editable: {\n valType: 'boolean',\n dflt: false,\n \n },\n edits: {\n annotationPosition: {\n valType: 'boolean',\n dflt: false,\n \n },\n annotationTail: {\n valType: 'boolean',\n dflt: false,\n \n },\n annotationText: {\n valType: 'boolean',\n dflt: false,\n \n },\n axisTitleText: {\n valType: 'boolean',\n dflt: false,\n \n },\n colorbarPosition: {\n valType: 'boolean',\n dflt: false,\n \n },\n colorbarTitleText: {\n valType: 'boolean',\n dflt: false,\n \n },\n legendPosition: {\n valType: 'boolean',\n dflt: false,\n \n },\n legendText: {\n valType: 'boolean',\n dflt: false,\n \n },\n shapePosition: {\n valType: 'boolean',\n dflt: false,\n \n },\n titleText: {\n valType: 'boolean',\n dflt: false,\n \n }\n },\n\n autosizable: {\n valType: 'boolean',\n dflt: false,\n \n },\n responsive: {\n valType: 'boolean',\n dflt: false,\n \n },\n fillFrame: {\n valType: 'boolean',\n dflt: false,\n \n },\n frameMargins: {\n valType: 'number',\n dflt: 0,\n min: 0,\n max: 0.5,\n \n },\n\n scrollZoom: {\n valType: 'flaglist',\n flags: ['cartesian', 'gl3d', 'geo', 'mapbox'],\n extras: [true, false],\n dflt: 'gl3d+geo+mapbox',\n \n },\n doubleClick: {\n valType: 'enumerated',\n values: [false, 'reset', 'autosize', 'reset+autosize'],\n dflt: 'reset+autosize',\n \n },\n doubleClickDelay: {\n valType: 'number',\n dflt: 300,\n min: 0,\n \n },\n\n showAxisDragHandles: {\n valType: 'boolean',\n dflt: true,\n \n },\n showAxisRangeEntryBoxes: {\n valType: 'boolean',\n dflt: true,\n \n },\n\n showTips: {\n valType: 'boolean',\n dflt: true,\n \n },\n\n showLink: {\n valType: 'boolean',\n dflt: false,\n \n },\n linkText: {\n valType: 'string',\n dflt: 'Edit chart',\n noBlank: true,\n \n },\n sendData: {\n valType: 'boolean',\n dflt: true,\n \n },\n showSources: {\n valType: 'any',\n dflt: false,\n \n },\n\n displayModeBar: {\n valType: 'enumerated',\n values: ['hover', true, false],\n dflt: 'hover',\n \n },\n showSendToCloud: {\n valType: 'boolean',\n dflt: false,\n \n },\n showEditInChartStudio: {\n valType: 'boolean',\n dflt: false,\n \n },\n modeBarButtonsToRemove: {\n valType: 'any',\n dflt: [],\n \n },\n modeBarButtonsToAdd: {\n valType: 'any',\n dflt: [],\n \n },\n modeBarButtons: {\n valType: 'any',\n dflt: false,\n \n },\n toImageButtonOptions: {\n valType: 'any',\n dflt: {},\n \n },\n displaylogo: {\n valType: 'boolean',\n dflt: true,\n \n },\n watermark: {\n valType: 'boolean',\n dflt: false,\n \n },\n\n plotGlPixelRatio: {\n valType: 'number',\n dflt: 2,\n min: 1,\n max: 4,\n \n },\n\n setBackground: {\n valType: 'any',\n dflt: 'transparent',\n \n },\n\n topojsonURL: {\n valType: 'string',\n noBlank: true,\n dflt: 'https://cdn.plot.ly/',\n \n },\n\n mapboxAccessToken: {\n valType: 'string',\n dflt: null,\n \n },\n\n logging: {\n valType: 'integer',\n min: 0,\n max: 2,\n dflt: 1,\n \n },\n\n notifyOnLogging: {\n valType: 'integer',\n min: 0,\n max: 2,\n dflt: 0,\n \n },\n\n queueLength: {\n valType: 'integer',\n min: 0,\n dflt: 0,\n \n },\n\n globalTransforms: {\n valType: 'any',\n dflt: [],\n \n },\n\n locale: {\n valType: 'string',\n dflt: 'en-US',\n \n },\n\n locales: {\n valType: 'any',\n dflt: {},\n \n }\n};\n\nvar dfltConfig = {};\n\nfunction crawl(src, target) {\n for(var k in src) {\n var obj = src[k];\n if(obj.valType) {\n target[k] = obj.dflt;\n } else {\n if(!target[k]) {\n target[k] = {};\n }\n crawl(obj, target[k]);\n }\n }\n}\n\ncrawl(configAttributes, dfltConfig);\n\nmodule.exports = {\n configAttributes: configAttributes,\n dfltConfig: dfltConfig\n};\n\n\n/***/ }),\n\n/***/ \"3ff7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nmodule.exports = {\n xaxis: {\n valType: 'subplotid',\n \n dflt: 'x',\n editType: 'calc+clearAxisTypes',\n \n },\n yaxis: {\n valType: 'subplotid',\n \n dflt: 'y',\n editType: 'calc+clearAxisTypes',\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"402e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar createShader = __webpack_require__(\"28dd\")\nvar createBuffer = __webpack_require__(\"efce\")\n\nvar pool = __webpack_require__(\"cea5\")\n\nvar SHADERS = __webpack_require__(\"c9eb\")\n\nmodule.exports = createPointcloud2D\n\nfunction Pointcloud2D(plot, offsetBuffer, pickBuffer, shader, pickShader) {\n this.plot = plot\n this.offsetBuffer = offsetBuffer\n this.pickBuffer = pickBuffer\n this.shader = shader\n this.pickShader = pickShader\n this.sizeMin = 0.5\n this.sizeMinCap = 2\n this.sizeMax = 20\n this.areaRatio = 1.0\n this.pointCount = 0\n this.color = [1, 0, 0, 1]\n this.borderColor = [0, 0, 0, 1]\n this.blend = false\n this.pickOffset = 0\n this.points = null\n}\n\nvar proto = Pointcloud2D.prototype\n\nproto.dispose = function() {\n this.shader.dispose()\n this.pickShader.dispose()\n this.offsetBuffer.dispose()\n this.pickBuffer.dispose()\n this.plot.removeObject(this)\n}\n\nproto.update = function(options) {\n\n var i\n\n options = options || {}\n\n function dflt(opt, value) {\n if(opt in options) {\n return options[opt]\n }\n return value\n }\n\n this.sizeMin = dflt('sizeMin', 0.5)\n // this.sizeMinCap = dflt('sizeMinCap', 2)\n this.sizeMax = dflt('sizeMax', 20)\n this.color = dflt('color', [1, 0, 0, 1]).slice()\n this.areaRatio = dflt('areaRatio', 1)\n this.borderColor = dflt('borderColor', [0, 0, 0, 1]).slice()\n this.blend = dflt('blend', false)\n\n //Update point data\n\n // Attempt straight-through processing (STP) to avoid allocation and copy\n // TODO eventually abstract out STP logic, maybe into `pool` or a layer above\n var pointCount = options.positions.length >>> 1\n var dataStraightThrough = options.positions instanceof Float32Array\n var idStraightThrough = options.idToIndex instanceof Int32Array && options.idToIndex.length >= pointCount // permit larger to help reuse\n\n var data = options.positions\n var packed = dataStraightThrough ? data : pool.mallocFloat32(data.length)\n var packedId = idStraightThrough ? options.idToIndex : pool.mallocInt32(pointCount)\n\n if(!dataStraightThrough) {\n packed.set(data)\n }\n\n if(!idStraightThrough) {\n packed.set(data)\n for(i = 0; i < pointCount; i++) {\n packedId[i] = i\n }\n }\n\n this.points = data\n\n this.offsetBuffer.update(packed)\n this.pickBuffer.update(packedId)\n\n if(!dataStraightThrough) {\n pool.free(packed)\n }\n\n if(!idStraightThrough) {\n pool.free(packedId)\n }\n\n this.pointCount = pointCount\n this.pickOffset = 0\n}\n\nfunction count(points, dataBox) {\n var visiblePointCountEstimate = 0\n var length = points.length >>> 1\n var i\n for(i = 0; i < length; i++) {\n var x = points[i * 2]\n var y = points[i * 2 + 1]\n if(x >= dataBox[0] && x <= dataBox[2] && y >= dataBox[1] && y <= dataBox[3])\n visiblePointCountEstimate++\n }\n return visiblePointCountEstimate\n}\n\nproto.unifiedDraw = (function() {\n var MATRIX = [1, 0, 0,\n 0, 1, 0,\n 0, 0, 1]\n var PICK_VEC4 = [0, 0, 0, 0]\nreturn function(pickOffset) {\n var pick = pickOffset !== void(0)\n\n var shader = pick ? this.pickShader : this.shader\n var gl = this.plot.gl\n var dataBox = this.plot.dataBox\n\n if(this.pointCount === 0) {\n return pickOffset\n }\n\n var dataX = dataBox[2] - dataBox[0]\n var dataY = dataBox[3] - dataBox[1]\n\n var visiblePointCountEstimate = count(this.points, dataBox)\n var basicPointSize = this.plot.pickPixelRatio * Math.max(Math.min(this.sizeMinCap, this.sizeMin), Math.min(this.sizeMax, this.sizeMax / Math.pow(visiblePointCountEstimate, 0.33333)))\n\n MATRIX[0] = 2.0 / dataX\n MATRIX[4] = 2.0 / dataY\n MATRIX[6] = -2.0 * dataBox[0] / dataX - 1.0\n MATRIX[7] = -2.0 * dataBox[1] / dataY - 1.0\n\n this.offsetBuffer.bind()\n\n shader.bind()\n shader.attributes.position.pointer()\n shader.uniforms.matrix = MATRIX\n shader.uniforms.color = this.color\n shader.uniforms.borderColor = this.borderColor\n shader.uniforms.pointCloud = basicPointSize < 5\n shader.uniforms.pointSize = basicPointSize\n shader.uniforms.centerFraction = Math.min(1, Math.max(0, Math.sqrt(1 - this.areaRatio)))\n\n if(pick) {\n\n PICK_VEC4[0] = ( pickOffset & 0xff)\n PICK_VEC4[1] = ((pickOffset >> 8) & 0xff)\n PICK_VEC4[2] = ((pickOffset >> 16) & 0xff)\n PICK_VEC4[3] = ((pickOffset >> 24) & 0xff)\n\n this.pickBuffer.bind()\n shader.attributes.pickId.pointer(gl.UNSIGNED_BYTE)\n shader.uniforms.pickOffset = PICK_VEC4\n this.pickOffset = pickOffset\n }\n\n // Worth switching these off, but we can't make assumptions about other\n // renderers, so let's restore it after each draw\n var blend = gl.getParameter(gl.BLEND)\n var dither = gl.getParameter(gl.DITHER)\n\n if(blend && !this.blend)\n gl.disable(gl.BLEND)\n if(dither)\n gl.disable(gl.DITHER)\n\n gl.drawArrays(gl.POINTS, 0, this.pointCount)\n\n if(blend && !this.blend)\n gl.enable(gl.BLEND)\n if(dither)\n gl.enable(gl.DITHER)\n\n return pickOffset + this.pointCount\n}\n})()\n\nproto.draw = proto.unifiedDraw\nproto.drawPick = proto.unifiedDraw\n\nproto.pick = function(x, y, value) {\n var pickOffset = this.pickOffset\n var pointCount = this.pointCount\n if(value < pickOffset || value >= pickOffset + pointCount) {\n return null\n }\n var pointId = value - pickOffset\n var points = this.points\n return {\n object: this,\n pointId: pointId,\n dataCoord: [points[2 * pointId], points[2 * pointId + 1] ]\n }\n}\n\nfunction createPointcloud2D(plot, options) {\n var gl = plot.gl\n var buffer = createBuffer(gl)\n var pickBuffer = createBuffer(gl)\n var shader = createShader(gl, SHADERS.pointVertex, SHADERS.pointFragment)\n var pickShader = createShader(gl, SHADERS.pickVertex, SHADERS.pickFragment)\n\n var result = new Pointcloud2D(plot, buffer, pickBuffer, shader, pickShader)\n result.update(options)\n\n //Register with plot\n plot.addObject(result)\n\n return result\n}\n\n\n/***/ }),\n\n/***/ \"4051\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar helpers = __webpack_require__(\"2969f\");\nvar calcHover = __webpack_require__(\"98e7\").calcHover;\n\nfunction hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var scene = pointData.scene;\n var cdata = scene.matrixOptions.cdata;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var xpx = xa.c2p(xval);\n var ypx = ya.c2p(yval);\n var maxDistance = pointData.distance;\n\n var xi = helpers.getDimIndex(trace, xa);\n var yi = helpers.getDimIndex(trace, ya);\n if(xi === false || yi === false) return [pointData];\n\n var x = cdata[xi];\n var y = cdata[yi];\n\n var id, dxy;\n var minDist = maxDistance;\n\n for(var i = 0; i < x.length; i++) {\n var ptx = x[i];\n var pty = y[i];\n var dx = xa.c2p(ptx) - xpx;\n var dy = ya.c2p(pty) - ypx;\n var dist = Math.sqrt(dx * dx + dy * dy);\n\n if(dist < minDist) {\n minDist = dxy = dist;\n id = i;\n }\n }\n\n pointData.index = id;\n pointData.distance = minDist;\n pointData.dxy = dxy;\n\n if(id === undefined) return [pointData];\n\n return [calcHover(pointData, x, y, trace)];\n}\n\nmodule.exports = {\n hoverPoints: hoverPoints\n};\n\n\n/***/ }),\n\n/***/ \"409f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar meta_1 = __webpack_require__(\"716c\");\n/**\n * Takes a set of features, calculates the bbox of all input features, and returns a bounding box.\n *\n * @name bbox\n * @param {GeoJSON} geojson any GeoJSON object\n * @returns {BBox} bbox extent in [minX, minY, maxX, maxY] order\n * @example\n * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]]);\n * var bbox = turf.bbox(line);\n * var bboxPolygon = turf.bboxPolygon(bbox);\n *\n * //addToMap\n * var addToMap = [line, bboxPolygon]\n */\nfunction bbox(geojson) {\n var result = [Infinity, Infinity, -Infinity, -Infinity];\n meta_1.coordEach(geojson, function (coord) {\n if (result[0] > coord[0]) {\n result[0] = coord[0];\n }\n if (result[1] > coord[1]) {\n result[1] = coord[1];\n }\n if (result[2] < coord[0]) {\n result[2] = coord[0];\n }\n if (result[3] < coord[1]) {\n result[3] = coord[1];\n }\n });\n return result;\n}\nexports.default = bbox;\n\n\n/***/ }),\n\n/***/ \"40c0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar barAttrs = __webpack_require__(\"fb5a\");\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar makeBinAttrs = __webpack_require__(\"4274\");\nvar constants = __webpack_require__(\"8d0e\");\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nmodule.exports = {\n x: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n y: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n\n text: extendFlat({}, barAttrs.text, {\n \n }),\n hovertext: extendFlat({}, barAttrs.hovertext, {\n \n }),\n orientation: barAttrs.orientation,\n\n histfunc: {\n valType: 'enumerated',\n values: ['count', 'sum', 'avg', 'min', 'max'],\n \n dflt: 'count',\n editType: 'calc',\n \n },\n histnorm: {\n valType: 'enumerated',\n values: ['', 'percent', 'probability', 'density', 'probability density'],\n dflt: '',\n \n editType: 'calc',\n \n },\n\n cumulative: {\n enabled: {\n valType: 'boolean',\n dflt: false,\n \n editType: 'calc',\n \n },\n\n direction: {\n valType: 'enumerated',\n values: ['increasing', 'decreasing'],\n dflt: 'increasing',\n \n editType: 'calc',\n \n },\n\n currentbin: {\n valType: 'enumerated',\n values: ['include', 'exclude', 'half'],\n dflt: 'include',\n \n editType: 'calc',\n \n },\n editType: 'calc'\n },\n nbinsx: {\n valType: 'integer',\n min: 0,\n dflt: 0,\n \n editType: 'calc',\n \n },\n xbins: makeBinAttrs('x', true),\n\n nbinsy: {\n valType: 'integer',\n min: 0,\n dflt: 0,\n \n editType: 'calc',\n \n },\n ybins: makeBinAttrs('y', true),\n autobinx: {\n valType: 'boolean',\n dflt: null,\n \n editType: 'calc',\n \n },\n autobiny: {\n valType: 'boolean',\n dflt: null,\n \n editType: 'calc',\n \n },\n\n bingroup: {\n valType: 'string',\n \n dflt: '',\n editType: 'calc',\n \n },\n\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n\n marker: barAttrs.marker,\n\n offsetgroup: barAttrs.offsetgroup,\n alignmentgroup: barAttrs.alignmentgroup,\n\n selected: barAttrs.selected,\n unselected: barAttrs.unselected,\n\n _deprecated: {\n bardir: barAttrs._deprecated.bardir\n }\n};\n\n\n/***/ }),\n\n/***/ \"40ce\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar createThunk = __webpack_require__(\"d37d\")\n\nfunction Procedure() {\n this.argTypes = []\n this.shimArgs = []\n this.arrayArgs = []\n this.arrayBlockIndices = []\n this.scalarArgs = []\n this.offsetArgs = []\n this.offsetArgIndex = []\n this.indexArgs = []\n this.shapeArgs = []\n this.funcName = \"\"\n this.pre = null\n this.body = null\n this.post = null\n this.debug = false\n}\n\nfunction compileCwise(user_args) {\n //Create procedure\n var proc = new Procedure()\n \n //Parse blocks\n proc.pre = user_args.pre\n proc.body = user_args.body\n proc.post = user_args.post\n\n //Parse arguments\n var proc_args = user_args.args.slice(0)\n proc.argTypes = proc_args\n for(var i=0; i0) {\n throw new Error(\"cwise: pre() block may not reference array args\")\n }\n if(i < proc.post.args.length && proc.post.args[i].count>0) {\n throw new Error(\"cwise: post() block may not reference array args\")\n }\n } else if(arg_type === \"scalar\") {\n proc.scalarArgs.push(i)\n proc.shimArgs.push(\"scalar\" + i)\n } else if(arg_type === \"index\") {\n proc.indexArgs.push(i)\n if(i < proc.pre.args.length && proc.pre.args[i].count > 0) {\n throw new Error(\"cwise: pre() block may not reference array index\")\n }\n if(i < proc.body.args.length && proc.body.args[i].lvalue) {\n throw new Error(\"cwise: body() block may not write to array index\")\n }\n if(i < proc.post.args.length && proc.post.args[i].count > 0) {\n throw new Error(\"cwise: post() block may not reference array index\")\n }\n } else if(arg_type === \"shape\") {\n proc.shapeArgs.push(i)\n if(i < proc.pre.args.length && proc.pre.args[i].lvalue) {\n throw new Error(\"cwise: pre() block may not write to array shape\")\n }\n if(i < proc.body.args.length && proc.body.args[i].lvalue) {\n throw new Error(\"cwise: body() block may not write to array shape\")\n }\n if(i < proc.post.args.length && proc.post.args[i].lvalue) {\n throw new Error(\"cwise: post() block may not write to array shape\")\n }\n } else if(typeof arg_type === \"object\" && arg_type.offset) {\n proc.argTypes[i] = \"offset\"\n proc.offsetArgs.push({ array: arg_type.array, offset:arg_type.offset })\n proc.offsetArgIndex.push(i)\n } else {\n throw new Error(\"cwise: Unknown argument type \" + proc_args[i])\n }\n }\n \n //Make sure at least one array argument was specified\n if(proc.arrayArgs.length <= 0) {\n throw new Error(\"cwise: No array arguments specified\")\n }\n \n //Make sure arguments are correct\n if(proc.pre.args.length > proc_args.length) {\n throw new Error(\"cwise: Too many arguments in pre() block\")\n }\n if(proc.body.args.length > proc_args.length) {\n throw new Error(\"cwise: Too many arguments in body() block\")\n }\n if(proc.post.args.length > proc_args.length) {\n throw new Error(\"cwise: Too many arguments in post() block\")\n }\n\n //Check debug flag\n proc.debug = !!user_args.printCode || !!user_args.debug\n \n //Retrieve name\n proc.funcName = user_args.funcName || \"cwise\"\n \n //Read in block size\n proc.blockSize = user_args.blockSize || 64\n\n return createThunk(proc)\n}\n\nmodule.exports = compileCwise\n\n\n/***/ }),\n\n/***/ \"4136\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nmodule.exports = function calcSelection(cd, trace) {\n if(Lib.isArrayOrTypedArray(trace.selectedpoints)) {\n Lib.tagSelected(cd, trace);\n }\n};\n\n\n/***/ }),\n\n/***/ \"4160\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar forEach = __webpack_require__(\"17c2\");\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n\n\n/***/ }),\n\n/***/ \"4168\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n\r\nvar bsearch = __webpack_require__(\"7fcc\")\r\nvar m4interp = __webpack_require__(\"8b23\")\r\nvar invert44 = __webpack_require__(\"9343\")\r\nvar rotateX = __webpack_require__(\"e9e1\")\r\nvar rotateY = __webpack_require__(\"44fe\")\r\nvar rotateZ = __webpack_require__(\"fc11\")\r\nvar lookAt = __webpack_require__(\"e581\")\r\nvar translate = __webpack_require__(\"6f51\")\r\nvar scale = __webpack_require__(\"9ca2\")\r\nvar normalize = __webpack_require__(\"913b\")\r\n\r\nvar DEFAULT_CENTER = [0,0,0]\r\n\r\nmodule.exports = createMatrixCameraController\r\n\r\nfunction MatrixCameraController(initialMatrix) {\r\n this._components = initialMatrix.slice()\r\n this._time = [0]\r\n this.prevMatrix = initialMatrix.slice()\r\n this.nextMatrix = initialMatrix.slice()\r\n this.computedMatrix = initialMatrix.slice()\r\n this.computedInverse = initialMatrix.slice()\r\n this.computedEye = [0,0,0]\r\n this.computedUp = [0,0,0]\r\n this.computedCenter = [0,0,0]\r\n this.computedRadius = [0]\r\n this._limits = [-Infinity, Infinity]\r\n}\r\n\r\nvar proto = MatrixCameraController.prototype\r\n\r\nproto.recalcMatrix = function(t) {\r\n var time = this._time\r\n var tidx = bsearch.le(time, t)\r\n var mat = this.computedMatrix\r\n if(tidx < 0) {\r\n return\r\n }\r\n var comps = this._components\r\n if(tidx === time.length-1) {\r\n var ptr = 16*tidx\r\n for(var i=0; i<16; ++i) {\r\n mat[i] = comps[ptr++]\r\n }\r\n } else {\r\n var dt = (time[tidx+1] - time[tidx])\r\n var ptr = 16*tidx\r\n var prev = this.prevMatrix\r\n var allEqual = true\r\n for(var i=0; i<16; ++i) {\r\n prev[i] = comps[ptr++]\r\n }\r\n var next = this.nextMatrix\r\n for(var i=0; i<16; ++i) {\r\n next[i] = comps[ptr++]\r\n allEqual = allEqual && (prev[i] === next[i])\r\n }\r\n if(dt < 1e-6 || allEqual) {\r\n for(var i=0; i<16; ++i) {\r\n mat[i] = prev[i]\r\n }\r\n } else {\r\n m4interp(mat, prev, next, (t - time[tidx])/dt)\r\n }\r\n }\r\n\r\n var up = this.computedUp\r\n up[0] = mat[1]\r\n up[1] = mat[5]\r\n up[2] = mat[9]\r\n normalize(up, up)\r\n\r\n var imat = this.computedInverse\r\n invert44(imat, mat)\r\n var eye = this.computedEye\r\n var w = imat[15]\r\n eye[0] = imat[12]/w\r\n eye[1] = imat[13]/w\r\n eye[2] = imat[14]/w\r\n\r\n var center = this.computedCenter\r\n var radius = Math.exp(this.computedRadius[0])\r\n for(var i=0; i<3; ++i) {\r\n center[i] = eye[i] - mat[2+4*i] * radius\r\n }\r\n}\r\n\r\nproto.idle = function(t) {\r\n if(t < this.lastT()) {\r\n return\r\n }\r\n var mc = this._components\r\n var ptr = mc.length-16\r\n for(var i=0; i<16; ++i) {\r\n mc.push(mc[ptr++])\r\n }\r\n this._time.push(t)\r\n}\r\n\r\nproto.flush = function(t) {\r\n var idx = bsearch.gt(this._time, t) - 2\r\n if(idx < 0) {\r\n return\r\n }\r\n this._time.splice(0, idx)\r\n this._components.splice(0, 16*idx)\r\n}\r\n\r\nproto.lastT = function() {\r\n return this._time[this._time.length-1]\r\n}\r\n\r\nproto.lookAt = function(t, eye, center, up) {\r\n this.recalcMatrix(t)\r\n eye = eye || this.computedEye\r\n center = center || DEFAULT_CENTER\r\n up = up || this.computedUp\r\n this.setMatrix(t, lookAt(this.computedMatrix, eye, center, up))\r\n var d2 = 0.0\r\n for(var i=0; i<3; ++i) {\r\n d2 += Math.pow(center[i] - eye[i], 2)\r\n }\r\n d2 = Math.log(Math.sqrt(d2))\r\n this.computedRadius[0] = d2\r\n}\r\n\r\nproto.rotate = function(t, yaw, pitch, roll) {\r\n this.recalcMatrix(t)\r\n var mat = this.computedInverse\r\n if(yaw) rotateY(mat, mat, yaw)\r\n if(pitch) rotateX(mat, mat, pitch)\r\n if(roll) rotateZ(mat, mat, roll)\r\n this.setMatrix(t, invert44(this.computedMatrix, mat))\r\n}\r\n\r\nvar tvec = [0,0,0]\r\n\r\nproto.pan = function(t, dx, dy, dz) {\r\n tvec[0] = -(dx || 0.0)\r\n tvec[1] = -(dy || 0.0)\r\n tvec[2] = -(dz || 0.0)\r\n this.recalcMatrix(t)\r\n var mat = this.computedInverse\r\n translate(mat, mat, tvec)\r\n this.setMatrix(t, invert44(mat, mat))\r\n}\r\n\r\nproto.translate = function(t, dx, dy, dz) {\r\n tvec[0] = dx || 0.0\r\n tvec[1] = dy || 0.0\r\n tvec[2] = dz || 0.0\r\n this.recalcMatrix(t)\r\n var mat = this.computedMatrix\r\n translate(mat, mat, tvec)\r\n this.setMatrix(t, mat)\r\n}\r\n\r\nproto.setMatrix = function(t, mat) {\r\n if(t < this.lastT()) {\r\n return\r\n }\r\n this._time.push(t)\r\n for(var i=0; i<16; ++i) {\r\n this._components.push(mat[i])\r\n }\r\n}\r\n\r\nproto.setDistance = function(t, d) {\r\n this.computedRadius[0] = d\r\n}\r\n\r\nproto.setDistanceLimits = function(a,b) {\r\n var lim = this._limits\r\n lim[0] = a\r\n lim[1] = b\r\n}\r\n\r\nproto.getDistanceLimits = function(out) {\r\n var lim = this._limits\r\n if(out) {\r\n out[0] = lim[0]\r\n out[1] = lim[1]\r\n return out\r\n }\r\n return lim\r\n}\r\n\r\nfunction createMatrixCameraController(options) {\r\n options = options || {}\r\n var matrix = options.matrix || \r\n [1,0,0,0,\r\n 0,1,0,0,\r\n 0,0,1,0,\r\n 0,0,0,1]\r\n return new MatrixCameraController(matrix)\r\n}\r\n\n\n/***/ }),\n\n/***/ \"4183\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar hasColorbar = __webpack_require__(\"7089\");\nvar colorbarDefaults = __webpack_require__(\"8f2a\");\n\nvar isValidScale = __webpack_require__(\"4852\").isValid;\nvar traceIs = __webpack_require__(\"371e\").traceIs;\n\nfunction npMaybe(parentCont, prefix) {\n var containerStr = prefix.slice(0, prefix.length - 1);\n return prefix ?\n Lib.nestedProperty(parentCont, containerStr).get() || {} :\n parentCont;\n}\n\n/**\n * Colorscale / colorbar default handler\n *\n * @param {object} parentContIn : user (input) parent container (e.g. trace or layout coloraxis object)\n * @param {object} parentContOut : full parent container\n * @param {object} layout : (full) layout object\n * @param {fn} coerce : Lib.coerce wrapper\n * @param {object} opts :\n * - prefix {string} : attr string prefix to colorscale container from parent root\n * - cLetter {string} : 'c or 'z' color letter\n */\nmodule.exports = function colorScaleDefaults(parentContIn, parentContOut, layout, coerce, opts) {\n var prefix = opts.prefix;\n var cLetter = opts.cLetter;\n var inTrace = '_module' in parentContOut;\n var containerIn = npMaybe(parentContIn, prefix);\n var containerOut = npMaybe(parentContOut, prefix);\n var template = npMaybe(parentContOut._template || {}, prefix) || {};\n\n // colorScaleDefaults wrapper called if-ever we need to reset the colorscale\n // attributes for containers that were linked to invalid color axes\n var thisFn = function() {\n delete parentContIn.coloraxis;\n delete parentContOut.coloraxis;\n return colorScaleDefaults(parentContIn, parentContOut, layout, coerce, opts);\n };\n\n if(inTrace) {\n var colorAxes = layout._colorAxes || {};\n var colorAx = coerce(prefix + 'coloraxis');\n\n if(colorAx) {\n var colorbarVisuals = (\n traceIs(parentContOut, 'contour') &&\n Lib.nestedProperty(parentContOut, 'contours.coloring').get()\n ) || 'heatmap';\n\n var stash = colorAxes[colorAx];\n\n if(stash) {\n stash[2].push(thisFn);\n\n if(stash[0] !== colorbarVisuals) {\n stash[0] = false;\n Lib.warn([\n 'Ignoring coloraxis:', colorAx, 'setting',\n 'as it is linked to incompatible colorscales.'\n ].join(' '));\n }\n } else {\n // stash:\n // - colorbar visual 'type'\n // - colorbar options to help in Colorbar.draw\n // - list of colorScaleDefaults wrapper functions\n colorAxes[colorAx] = [colorbarVisuals, parentContOut, [thisFn]];\n }\n return;\n }\n }\n\n var minIn = containerIn[cLetter + 'min'];\n var maxIn = containerIn[cLetter + 'max'];\n var validMinMax = isNumeric(minIn) && isNumeric(maxIn) && (minIn < maxIn);\n var auto = coerce(prefix + cLetter + 'auto', !validMinMax);\n\n if(auto) {\n coerce(prefix + cLetter + 'mid');\n } else {\n coerce(prefix + cLetter + 'min');\n coerce(prefix + cLetter + 'max');\n }\n\n // handles both the trace case (autocolorscale is false by default) and\n // the marker and marker.line case (autocolorscale is true by default)\n var sclIn = containerIn.colorscale;\n var sclTemplate = template.colorscale;\n var autoColorscaleDflt;\n if(sclIn !== undefined) autoColorscaleDflt = !isValidScale(sclIn);\n if(sclTemplate !== undefined) autoColorscaleDflt = !isValidScale(sclTemplate);\n coerce(prefix + 'autocolorscale', autoColorscaleDflt);\n\n coerce(prefix + 'colorscale');\n coerce(prefix + 'reversescale');\n\n if(prefix !== 'marker.line.') {\n // handles both the trace case where the dflt is listed in attributes and\n // the marker case where the dflt is determined by hasColorbar\n var showScaleDflt;\n if(prefix && inTrace) showScaleDflt = hasColorbar(containerIn);\n\n var showScale = coerce(prefix + 'showscale', showScaleDflt);\n if(showScale) {\n if(prefix && template) containerOut._template = template;\n colorbarDefaults(containerIn, containerOut, layout);\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"4190\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar handleXYDefaults = __webpack_require__(\"37bf\");\nvar handleABDefaults = __webpack_require__(\"8da3\");\nvar attributes = __webpack_require__(\"e7bd\");\nvar colorAttrs = __webpack_require__(\"dfb3\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, dfltColor, fullLayout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n traceOut._clipPathId = 'clip' + traceOut.uid + 'carpet';\n\n var defaultColor = coerce('color', colorAttrs.defaultLine);\n Lib.coerceFont(coerce, 'font');\n\n coerce('carpet');\n\n handleABDefaults(traceIn, traceOut, fullLayout, coerce, defaultColor);\n\n if(!traceOut.a || !traceOut.b) {\n traceOut.visible = false;\n return;\n }\n\n if(traceOut.a.length < 3) {\n traceOut.aaxis.smoothing = 0;\n }\n\n if(traceOut.b.length < 3) {\n traceOut.baxis.smoothing = 0;\n }\n\n // NB: the input is x/y arrays. You should know that the *first* dimension of x and y\n // corresponds to b and the second to a. This sounds backwards but ends up making sense\n // the important part to know is that when you write y[j][i], j goes from 0 to b.length - 1\n // and i goes from 0 to a.length - 1.\n var validData = handleXYDefaults(traceIn, traceOut, coerce);\n if(!validData) {\n traceOut.visible = false;\n }\n\n if(traceOut._cheater) {\n coerce('cheaterslope');\n }\n};\n\n\n/***/ }),\n\n/***/ \"41a1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = cmp\n\nfunction cmp(a, b) {\n return a[0].mul(b[1]).cmp(b[0].mul(a[1]))\n}\n\n\n/***/ }),\n\n/***/ \"41e0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar Registry = __webpack_require__(\"371e\");\n\nmodule.exports = function handleXYZDefaults(traceIn, traceOut, coerce, layout, xName, yName) {\n var z = coerce('z');\n xName = xName || 'x';\n yName = yName || 'y';\n var x, y;\n\n if(z === undefined || !z.length) return 0;\n\n if(Lib.isArray1D(traceIn.z)) {\n x = coerce(xName);\n y = coerce(yName);\n\n var xlen = Lib.minRowLength(x);\n var ylen = Lib.minRowLength(y);\n\n // column z must be accompanied by xName and yName arrays\n if(xlen === 0 || ylen === 0) return 0;\n\n traceOut._length = Math.min(xlen, ylen, z.length);\n } else {\n x = coordDefaults(xName, coerce);\n y = coordDefaults(yName, coerce);\n\n // TODO put z validation elsewhere\n if(!isValidZ(z)) return 0;\n\n coerce('transpose');\n\n traceOut._length = null;\n }\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, [xName, yName], layout);\n\n return true;\n};\n\nfunction coordDefaults(coordStr, coerce) {\n var coord = coerce(coordStr);\n var coordType = coord ? coerce(coordStr + 'type', 'array') : 'scaled';\n\n if(coordType === 'scaled') {\n coerce(coordStr + '0');\n coerce('d' + coordStr);\n }\n\n return coord;\n}\n\nfunction isValidZ(z) {\n var allRowsAreArrays = true;\n var oneRowIsFilled = false;\n var hasOneNumber = false;\n var zi;\n\n /*\n * Without this step:\n *\n * hasOneNumber = false breaks contour but not heatmap\n * allRowsAreArrays = false breaks contour but not heatmap\n * oneRowIsFilled = false breaks both\n */\n\n for(var i = 0; i < z.length; i++) {\n zi = z[i];\n if(!Lib.isArrayOrTypedArray(zi)) {\n allRowsAreArrays = false;\n break;\n }\n if(zi.length > 0) oneRowIsFilled = true;\n for(var j = 0; j < zi.length; j++) {\n if(isNumeric(zi[j])) {\n hasOneNumber = true;\n break;\n }\n }\n }\n\n return (allRowsAreArrays && oneRowIsFilled && hasOneNumber);\n}\n\n\n/***/ }),\n\n/***/ \"41f8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar colorscaleDefaults = __webpack_require__(\"4183\");\nvar handleLabelDefaults = __webpack_require__(\"6533\");\n\n\nmodule.exports = function handleStyleDefaults(traceIn, traceOut, coerce, layout, opts) {\n var coloring = coerce('contours.coloring');\n\n var showLines;\n var lineColor = '';\n if(coloring === 'fill') showLines = coerce('contours.showlines');\n\n if(showLines !== false) {\n if(coloring !== 'lines') lineColor = coerce('line.color', '#000');\n coerce('line.width', 0.5);\n coerce('line.dash');\n }\n\n if(coloring !== 'none') {\n // plots/plots always coerces showlegend to true, but in this case\n // we default to false and (by default) show a colorbar instead\n if(traceIn.showlegend !== true) traceOut.showlegend = false;\n traceOut._dfltShowLegend = false;\n\n colorscaleDefaults(\n traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'}\n );\n }\n\n coerce('line.smoothing');\n\n handleLabelDefaults(coerce, layout, lineColor, opts);\n};\n\n\n/***/ }),\n\n/***/ \"422c\":\n/***/ (function(module, exports) {\n\nmodule.exports = rotateX;\n\n/**\n * Rotate a 3D vector around the x-axis\n * @param {vec3} out The receiving vec3\n * @param {vec3} a The vec3 point to rotate\n * @param {vec3} b The origin of the rotation\n * @param {Number} c The angle of rotation\n * @returns {vec3} out\n */\nfunction rotateX(out, a, b, c){\n var by = b[1]\n var bz = b[2]\n\n // Translate point to the origin\n var py = a[1] - by\n var pz = a[2] - bz\n\n var sc = Math.sin(c)\n var cc = Math.cos(c)\n\n // perform rotation and translate to correct position\n out[0] = a[0]\n out[1] = by + py * cc - pz * sc\n out[2] = bz + py * sc + pz * cc\n\n return out\n}\n\n\n/***/ }),\n\n/***/ \"4248\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Registry = __webpack_require__(\"371e\");\n\nexports.getDelay = function(fullLayout) {\n if(!fullLayout._has) return 0;\n\n return (\n fullLayout._has('gl3d') ||\n fullLayout._has('gl2d') ||\n fullLayout._has('mapbox')\n ) ? 500 : 0;\n};\n\nexports.getRedrawFunc = function(gd) {\n return function() {\n var fullLayout = gd._fullLayout || {};\n var hasPolar = fullLayout._has && fullLayout._has('polar');\n var hasLegacyPolar = !hasPolar && gd.data && gd.data[0] && gd.data[0].r;\n\n if(!hasLegacyPolar) {\n Registry.getComponentMethod('colorbar', 'draw')(gd);\n }\n };\n};\n\nexports.encodeSVG = function(svg) {\n return 'data:image/svg+xml,' + encodeURIComponent(svg);\n};\n\nvar DOM_URL = window.URL || window.webkitURL;\n\nexports.createObjectURL = function(blob) {\n return DOM_URL.createObjectURL(blob);\n};\n\nexports.revokeObjectURL = function(url) {\n return DOM_URL.revokeObjectURL(url);\n};\n\nexports.createBlob = function(url, format) {\n if(format === 'svg') {\n return new window.Blob([url], {type: 'image/svg+xml;charset=utf-8'});\n } else {\n var binary = fixBinary(window.atob(url));\n return new window.Blob([binary], {type: 'image/' + format});\n }\n};\n\nexports.octetStream = function(s) {\n document.location.href = 'data:application/octet-stream' + s;\n};\n\n// Taken from https://bl.ocks.org/nolanlawson/0eac306e4dac2114c752\nfunction fixBinary(b) {\n var len = b.length;\n var buf = new ArrayBuffer(len);\n var arr = new Uint8Array(buf);\n for(var i = 0; i < len; i++) {\n arr[i] = b.charCodeAt(i);\n }\n return buf;\n}\n\nexports.IMAGE_URL_PREFIX = /^data:image\\/\\w+;base64,/;\n\nexports.MSG_IE_BAD_FORMAT = 'Sorry IE does not support downloading from canvas. Try {format:\\'svg\\'} instead.';\n\n\n/***/ }),\n\n/***/ \"424b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\n// arrayOk attributes, merge them into calcdata array\nmodule.exports = function arraysToCalcdata(cd, trace) {\n for(var i = 0; i < cd.length; i++) cd[i].i = i;\n\n Lib.mergeArray(trace.text, cd, 'tx');\n Lib.mergeArray(trace.hovertext, cd, 'htx');\n\n var marker = trace.marker;\n if(marker) {\n Lib.mergeArray(marker.opacity, cd, 'mo', true);\n Lib.mergeArray(marker.color, cd, 'mc');\n\n var markerLine = marker.line;\n if(markerLine) {\n Lib.mergeArray(markerLine.color, cd, 'mlc');\n Lib.mergeArrayCastPositive(markerLine.width, cd, 'mlw');\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"4274\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = function makeBinAttrs(axLetter, match) {\n return {\n start: {\n valType: 'any', // for date axes\n \n editType: 'calc',\n \n },\n end: {\n valType: 'any', // for date axes\n \n editType: 'calc',\n \n },\n size: {\n valType: 'any', // for date axes\n \n editType: 'calc',\n \n },\n editType: 'calc'\n };\n};\n\n\n/***/ }),\n\n/***/ \"428d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n!function(t,e){ true?module.exports=e(__webpack_require__(\"2ad6\"),__webpack_require__(\"f7fe\")):undefined}(this,function(t,e){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p=\"/\",e(0)}([function(t,e,n){var r,o,i;!function(s,u){o=[t,e,n(10),n(38),n(39),n(9),n(37)],r=u,i=\"function\"==typeof r?r.apply(e,o):r,!(void 0!==i&&(t.exports=i))}(this,function(t,e,n,r,o){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}function s(t){if(!t)return{delay:_,initial:!1};var e=t.initial,n=void 0!==e&&e,r=(0,h.default)(t).map(function(t){return parseInt(t)}).find(function(t){return!isNaN(t)});return r=r||_,{delay:r,initial:n}}function u(t,e){var n={root:document.documentElement},r=new IntersectionObserver(function(t,n){t.forEach(function(t){t.isIntersecting&&(e(),n.disconnect())})},n);return r.observe(t),r}function c(t,e){var n=e.value,r=e.arg,o=e.options,i=function(){return n(t)};switch(r){case\"debounce\":i=v(function(){return n(t)},o.delay);break;case\"throttle\":i=v(function(){return n(t)},o.delay,{leading:!0,trailing:!0,maxWait:o.delay})}var s=new l.default(t,i);return o.initial&&n(t),s}function a(t,e,n){var r=e.value,o=e.arg,i=e.modifiers,h=n.context;if(!r||\"function\"!=typeof r)return void console.warn(\"v-resize should received a function as value\");var l=s(i);return h&&h.$el===t&&h.$once(\"hook:deactivated\",function(){f(t),h.$once(\"hook:activated\",function(){a(t,{value:r,arg:o,modifiers:i},{context:h})})}),t.offsetParent?void c(t,{value:r,arg:o,options:l}):(l.initial=!0,void(t.__visibility__listener__=u(t,function(){return c(t,{value:r,arg:o,options:l})})))}function f(t){t.__visibility__listener__&&t.__visibility__listener__.disconnect(),t.resizeSensor&&l.default.detach(t)}Object.defineProperty(e,\"__esModule\",{value:!0});var h=i(n),l=i(r),p=i(o),d=p.default.debounce,v=void 0===d?p.default:d,_=150;e.default={inserted:a,unbind:f},t.exports=e.default})},function(t,e){var n=t.exports={version:\"2.4.0\"};\"number\"==typeof __e&&(__e=n)},function(t,e,n){t.exports=!n(3)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){var n=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(23),o=n(6);t.exports=function(t){return r(o(t))}},function(t,e,n){var r,o,i;!function(n,s){o=[],r=s,i=\"function\"==typeof r?r.apply(e,o):r,!(void 0!==i&&(t.exports=i))}(this,function(){\"use strict\";Array.prototype.find||Object.defineProperty(Array.prototype,\"find\",{value:function(t){if(null==this)throw new TypeError('\"this\" is null or not defined');var e=Object(this),n=e.length>>>0;if(\"function\"!=typeof t)throw new TypeError(\"predicate must be a function\");for(var r=arguments[1],o=0;of;)if(u=c[f++],u!=u)return!0}else for(;a>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(12);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(5),o=n(4).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e){t.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(t,e,n){var r=n(4),o=n(1),i=n(16),s=n(21),u=\"prototype\",c=function(t,e,n){var a,f,h,l=t&c.F,p=t&c.G,d=t&c.S,v=t&c.P,_=t&c.B,y=t&c.W,g=p?o:o[e]||(o[e]={}),b=g[u],m=p?r:d?r[e]:(r[e]||{})[u];p&&(n=e);for(a in n)f=!l&&m&&void 0!==m[a],f&&a in g||(h=f?m[a]:n[a],g[a]=p&&\"function\"!=typeof m[a]?n[a]:_&&f?i(h,r):y&&m[a]==h?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[u]=t[u],e}(h):v&&\"function\"==typeof h?i(Function.call,h):h,v&&((g.virtual||(g.virtual={}))[a]=h,t&c.R&&b&&!b[a]&&s(b,a,h)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(24),o=n(28);t.exports=n(2)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){t.exports=!n(2)&&!n(3)(function(){return 7!=Object.defineProperty(n(17)(\"div\"),\"a\",{get:function(){return 7}}).a})},function(t,e,n){var r=n(15);t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==r(t)?t.split(\"\"):Object(t)}},function(t,e,n){var r=n(13),o=n(22),i=n(34),s=Object.defineProperty;e.f=n(2)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return s(t,e,n)}catch(t){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(20),o=n(8),i=n(14)(!1),s=n(29)(\"IE_PROTO\");t.exports=function(t,e){var n,u=o(t),c=0,a=[];for(n in u)n!=s&&r(u,n)&&a.push(n);for(;e.length>c;)r(u,n=e[c++])&&(~i(a,n)||a.push(n));return a}},function(t,e,n){var r=n(25),o=n(18);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(19),o=n(1),i=n(3);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],s={};s[t]=e(n),r(r.S+r.F*i(function(){n(1)}),\"Object\",s)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r=n(30)(\"keys\"),o=n(35);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(4),o=\"__core-js_shared__\",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e,n){var r=n(7),o=Math.max,i=Math.min;t.exports=function(t,e){return t=r(t),t<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(7),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(6);t.exports=function(t){return Object(r(t))}},function(t,e,n){var r=n(5);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++n+r).toString(36))}},function(t,e,n){var r=n(33),o=n(26);n(27)(\"keys\",function(){return function(t){return o(r(t))}})},function(t,e){!function(t,e){\"use strict\";function n(t){this.time=t.time,this.target=t.target,this.rootBounds=t.rootBounds,this.boundingClientRect=t.boundingClientRect,this.intersectionRect=t.intersectionRect||f(),this.isIntersecting=!!t.intersectionRect;var e=this.boundingClientRect,n=e.width*e.height,r=this.intersectionRect,o=r.width*r.height;n?this.intersectionRatio=o/n:this.intersectionRatio=this.isIntersecting?1:0}function r(t,e){var n=e||{};if(\"function\"!=typeof t)throw new Error(\"callback must be a function\");if(n.root&&1!=n.root.nodeType)throw new Error(\"root must be an Element\");this._checkForIntersections=i(this._checkForIntersections.bind(this),this.THROTTLE_TIMEOUT),this._callback=t,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(n.rootMargin),this.thresholds=this._initThresholds(n.threshold),this.root=n.root||null,this.rootMargin=this._rootMarginValues.map(function(t){return t.value+t.unit}).join(\" \")}function o(){return t.performance&&performance.now&&performance.now()}function i(t,e){var n=null;return function(){n||(n=setTimeout(function(){t(),n=null},e))}}function s(t,e,n,r){\"function\"==typeof t.addEventListener?t.addEventListener(e,n,r||!1):\"function\"==typeof t.attachEvent&&t.attachEvent(\"on\"+e,n)}function u(t,e,n,r){\"function\"==typeof t.removeEventListener?t.removeEventListener(e,n,r||!1):\"function\"==typeof t.detatchEvent&&t.detatchEvent(\"on\"+e,n)}function c(t,e){var n=Math.max(t.top,e.top),r=Math.min(t.bottom,e.bottom),o=Math.max(t.left,e.left),i=Math.min(t.right,e.right),s=i-o,u=r-n;return s>=0&&u>=0&&{top:n,bottom:r,left:o,right:i,width:s,height:u}}function a(t){var e;try{e=t.getBoundingClientRect()}catch(t){}return e?(e.width&&e.height||(e={top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.right-e.left,height:e.bottom-e.top}),e):f()}function f(){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}function h(t,e){for(var n=e;n;){if(n==t)return!0;n=l(n)}return!1}function l(t){var e=t.parentNode;return e&&11==e.nodeType&&e.host?e.host:e}if(\"IntersectionObserver\"in t&&\"IntersectionObserverEntry\"in t&&\"intersectionRatio\"in t.IntersectionObserverEntry.prototype)return void(\"isIntersecting\"in t.IntersectionObserverEntry.prototype||Object.defineProperty(t.IntersectionObserverEntry.prototype,\"isIntersecting\",{get:function(){return this.intersectionRatio>0}}));var p=[];r.prototype.THROTTLE_TIMEOUT=100,r.prototype.POLL_INTERVAL=null,r.prototype.USE_MUTATION_OBSERVER=!0,r.prototype.observe=function(t){var e=this._observationTargets.some(function(e){return e.element==t});if(!e){if(!t||1!=t.nodeType)throw new Error(\"target must be an Element\");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(),this._checkForIntersections()}},r.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter(function(e){return e.element!=t}),this._observationTargets.length||(this._unmonitorIntersections(),this._unregisterInstance())},r.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorIntersections(),this._unregisterInstance()},r.prototype.takeRecords=function(){var t=this._queuedEntries.slice();return this._queuedEntries=[],t},r.prototype._initThresholds=function(t){var e=t||[0];return Array.isArray(e)||(e=[e]),e.sort().filter(function(t,e,n){if(\"number\"!=typeof t||isNaN(t)||t<0||t>1)throw new Error(\"threshold must be a number between 0 and 1 inclusively\");return t!==n[e-1]})},r.prototype._parseRootMargin=function(t){var e=t||\"0px\",n=e.split(/\\s+/).map(function(t){var e=/^(-?\\d*\\.?\\d+)(px|%)$/.exec(t);if(!e)throw new Error(\"rootMargin must be specified in pixels or percent\");return{value:parseFloat(e[1]),unit:e[2]}});return n[1]=n[1]||n[0],n[2]=n[2]||n[0],n[3]=n[3]||n[1],n},r.prototype._monitorIntersections=function(){this._monitoringIntersections||(this._monitoringIntersections=!0,this.POLL_INTERVAL?this._monitoringInterval=setInterval(this._checkForIntersections,this.POLL_INTERVAL):(s(t,\"resize\",this._checkForIntersections,!0),s(e,\"scroll\",this._checkForIntersections,!0),this.USE_MUTATION_OBSERVER&&\"MutationObserver\"in t&&(this._domObserver=new MutationObserver(this._checkForIntersections),this._domObserver.observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))))},r.prototype._unmonitorIntersections=function(){this._monitoringIntersections&&(this._monitoringIntersections=!1,clearInterval(this._monitoringInterval),this._monitoringInterval=null,u(t,\"resize\",this._checkForIntersections,!0),u(e,\"scroll\",this._checkForIntersections,!0),this._domObserver&&(this._domObserver.disconnect(),this._domObserver=null))},r.prototype._checkForIntersections=function(){var t=this._rootIsInDom(),e=t?this._getRootRect():f();this._observationTargets.forEach(function(r){var i=r.element,s=a(i),u=this._rootContainsTarget(i),c=r.entry,f=t&&u&&this._computeTargetAndRootIntersection(i,e),h=r.entry=new n({time:o(),target:i,boundingClientRect:s,rootBounds:e,intersectionRect:f});c?t&&u?this._hasCrossedThreshold(c,h)&&this._queuedEntries.push(h):c&&c.isIntersecting&&this._queuedEntries.push(h):this._queuedEntries.push(h)},this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)},r.prototype._computeTargetAndRootIntersection=function(n,r){if(\"none\"!=t.getComputedStyle(n).display){for(var o=a(n),i=o,s=l(n),u=!1;!u;){var f=null,h=1==s.nodeType?t.getComputedStyle(s):{};if(\"none\"==h.display)return;if(s==this.root||s==e?(u=!0,f=r):s!=e.body&&s!=e.documentElement&&\"visible\"!=h.overflow&&(f=a(s)),f&&(i=c(f,i),!i))break;s=l(s)}return i}},r.prototype._getRootRect=function(){var t;if(this.root)t=a(this.root);else{var n=e.documentElement,r=e.body;t={top:0,left:0,right:n.clientWidth||r.clientWidth,width:n.clientWidth||r.clientWidth,bottom:n.clientHeight||r.clientHeight,height:n.clientHeight||r.clientHeight}}return this._expandRectByRootMargin(t)},r.prototype._expandRectByRootMargin=function(t){var e=this._rootMarginValues.map(function(e,n){return\"px\"==e.unit?e.value:e.value*(n%2?t.width:t.height)/100}),n={top:t.top-e[0],right:t.right+e[1],bottom:t.bottom+e[2],left:t.left-e[3]};return n.width=n.right-n.left,n.height=n.bottom-n.top,n},r.prototype._hasCrossedThreshold=function(t,e){var n=t&&t.isIntersecting?t.intersectionRatio||0:-1,r=e.isIntersecting?e.intersectionRatio||0:-1;if(n!==r)for(var o=0;o allPositions[k] && k < allPositions.length; k++) {\n // the current trace is missing a position from some previous trace(s)\n insertBlank(cd, j, allPositions[k], i, hasAnyBlanks, interpolate, posAttr);\n j++;\n }\n if(posj !== allPositions[k]) {\n // previous trace(s) are missing a position from the current trace\n for(i2 = 0; i2 < i; i2++) {\n insertBlank(calcTraces[indices[i2]], k, posj, i2, hasAnyBlanks, interpolate, posAttr);\n }\n allPositions.splice(k, 0, posj);\n }\n k++;\n }\n for(; k < allPositions.length; k++) {\n insertBlank(cd, j, allPositions[k], i, hasAnyBlanks, interpolate, posAttr);\n j++;\n }\n }\n\n var serieslen = allPositions.length;\n\n // stack (and normalize)!\n for(j = 0; j < cd0.length; j++) {\n sumj = cd0[j][valAttr] = cd0[j].s;\n for(i = 1; i < indices.length; i++) {\n cd = calcTraces[indices[i]];\n cd[0].trace._rawLength = cd[0].trace._length;\n cd[0].trace._length = serieslen;\n sumj += cd[j].s;\n cd[j][valAttr] = sumj;\n }\n\n if(groupnorm) {\n norm = ((groupnorm === 'fraction') ? sumj : (sumj / 100)) || 1;\n for(i = 0; i < indices.length; i++) {\n var cdj = calcTraces[indices[i]][j];\n cdj[valAttr] /= norm;\n cdj.sNorm = cdj.s / norm;\n }\n }\n }\n\n // autorange\n for(i = 0; i < indices.length; i++) {\n cd = calcTraces[indices[i]];\n var trace = cd[0].trace;\n var ppad = calc.calcMarkerSize(trace, trace._rawLength);\n var arrayPad = Array.isArray(ppad);\n if((ppad && hasAnyBlanks[i]) || arrayPad) {\n var ppadRaw = ppad;\n ppad = new Array(serieslen);\n for(j = 0; j < serieslen; j++) {\n ppad[j] = cd[j].gap ? 0 : (arrayPad ? ppadRaw[cd[j].i] : ppadRaw);\n }\n }\n var x = new Array(serieslen);\n var y = new Array(serieslen);\n for(j = 0; j < serieslen; j++) {\n x[j] = cd[j].x;\n y[j] = cd[j].y;\n }\n calc.calcAxisExpansion(gd, trace, xa, ya, x, y, ppad);\n\n // while we're here (in a loop over all traces in the stack)\n // record the orientation, so hover can find it easily\n cd[0].t.orientation = groupOpts.orientation;\n }\n }\n};\n\nfunction insertBlank(calcTrace, index, position, traceIndex, hasAnyBlanks, interpolate, posAttr) {\n hasAnyBlanks[traceIndex] = true;\n var newEntry = {\n i: null,\n gap: true,\n s: 0\n };\n newEntry[posAttr] = position;\n calcTrace.splice(index, 0, newEntry);\n // Even if we're not interpolating, if one trace has multiple\n // values at the same position and this trace only has one value there,\n // we just duplicate that one value rather than insert a zero.\n // We also make it look like a real point - because it's ambiguous which\n // one really is the real one!\n if(index && position === calcTrace[index - 1][posAttr]) {\n var prevEntry = calcTrace[index - 1];\n newEntry.s = prevEntry.s;\n // TODO is it going to cause any problems to have multiple\n // calcdata points with the same index?\n newEntry.i = prevEntry.i;\n newEntry.gap = prevEntry.gap;\n } else if(interpolate) {\n newEntry.s = getInterp(calcTrace, index, position, posAttr);\n }\n if(!index) {\n // t and trace need to stay on the first cd entry\n calcTrace[0].t = calcTrace[1].t;\n calcTrace[0].trace = calcTrace[1].trace;\n delete calcTrace[1].t;\n delete calcTrace[1].trace;\n }\n}\n\nfunction getInterp(calcTrace, index, position, posAttr) {\n var pt0 = calcTrace[index - 1];\n var pt1 = calcTrace[index + 1];\n if(!pt1) return pt0.s;\n if(!pt0) return pt1.s;\n return pt0.s + (pt1.s - pt0.s) * (position - pt0[posAttr]) / (pt1[posAttr] - pt0[posAttr]);\n}\n\n\n/***/ }),\n\n/***/ \"4358\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar isArrayOrTypedArray = __webpack_require__(\"6af8\").isArrayOrTypedArray;\nvar isPlainObject = __webpack_require__(\"1385\");\n\n/**\n * Relink private _keys and keys with a function value from one container\n * to the new container.\n * Relink means copying if object is pass-by-value and adding a reference\n * if object is pass-by-ref.\n * This prevents deepCopying massive structures like a webgl context.\n */\nmodule.exports = function relinkPrivateKeys(toContainer, fromContainer) {\n for(var k in fromContainer) {\n var fromVal = fromContainer[k];\n var toVal = toContainer[k];\n\n if(toVal === fromVal) {\n continue;\n }\n if(k.charAt(0) === '_' || typeof fromVal === 'function') {\n // if it already exists at this point, it's something\n // that we recreate each time around, so ignore it\n if(k in toContainer) continue;\n\n toContainer[k] = fromVal;\n } else if(isArrayOrTypedArray(fromVal) && isArrayOrTypedArray(toVal) && isPlainObject(fromVal[0])) {\n // filter out data_array items that can contain user objects\n // most of the time the toVal === fromVal check will catch these early\n // but if the user makes new ones we also don't want to recurse in.\n if(k === 'customdata' || k === 'ids') continue;\n\n // recurse into arrays containers\n var minLen = Math.min(fromVal.length, toVal.length);\n for(var j = 0; j < minLen; j++) {\n if((toVal[j] !== fromVal[j]) && isPlainObject(fromVal[j]) && isPlainObject(toVal[j])) {\n relinkPrivateKeys(toVal[j], fromVal[j]);\n }\n }\n } else if(isPlainObject(fromVal) && isPlainObject(toVal)) {\n // recurse into objects, but only if they still exist\n relinkPrivateKeys(toVal, fromVal);\n\n if(!Object.keys(toVal).length) delete toContainer[k];\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"4362\":\n/***/ (function(module, exports, __webpack_require__) {\n\nexports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = __webpack_require__(\"df7c\");\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n\n\n/***/ }),\n\n/***/ \"4393\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bounds = __webpack_require__(\"a671\")\n\nvar NOT_FOUND = 0\nvar SUCCESS = 1\nvar EMPTY = 2\n\nmodule.exports = createWrapper\n\nfunction IntervalTreeNode(mid, left, right, leftPoints, rightPoints) {\n this.mid = mid\n this.left = left\n this.right = right\n this.leftPoints = leftPoints\n this.rightPoints = rightPoints\n this.count = (left ? left.count : 0) + (right ? right.count : 0) + leftPoints.length\n}\n\nvar proto = IntervalTreeNode.prototype\n\nfunction copy(a, b) {\n a.mid = b.mid\n a.left = b.left\n a.right = b.right\n a.leftPoints = b.leftPoints\n a.rightPoints = b.rightPoints\n a.count = b.count\n}\n\nfunction rebuild(node, intervals) {\n var ntree = createIntervalTree(intervals)\n node.mid = ntree.mid\n node.left = ntree.left\n node.right = ntree.right\n node.leftPoints = ntree.leftPoints\n node.rightPoints = ntree.rightPoints\n node.count = ntree.count\n}\n\nfunction rebuildWithInterval(node, interval) {\n var intervals = node.intervals([])\n intervals.push(interval)\n rebuild(node, intervals) \n}\n\nfunction rebuildWithoutInterval(node, interval) {\n var intervals = node.intervals([])\n var idx = intervals.indexOf(interval)\n if(idx < 0) {\n return NOT_FOUND\n }\n intervals.splice(idx, 1)\n rebuild(node, intervals)\n return SUCCESS\n}\n\nproto.intervals = function(result) {\n result.push.apply(result, this.leftPoints)\n if(this.left) {\n this.left.intervals(result)\n }\n if(this.right) {\n this.right.intervals(result)\n }\n return result\n}\n\nproto.insert = function(interval) {\n var weight = this.count - this.leftPoints.length\n this.count += 1\n if(interval[1] < this.mid) {\n if(this.left) {\n if(4*(this.left.count+1) > 3*(weight+1)) {\n rebuildWithInterval(this, interval)\n } else {\n this.left.insert(interval)\n }\n } else {\n this.left = createIntervalTree([interval])\n }\n } else if(interval[0] > this.mid) {\n if(this.right) {\n if(4*(this.right.count+1) > 3*(weight+1)) {\n rebuildWithInterval(this, interval)\n } else {\n this.right.insert(interval)\n }\n } else {\n this.right = createIntervalTree([interval])\n }\n } else {\n var l = bounds.ge(this.leftPoints, interval, compareBegin)\n var r = bounds.ge(this.rightPoints, interval, compareEnd)\n this.leftPoints.splice(l, 0, interval)\n this.rightPoints.splice(r, 0, interval)\n }\n}\n\nproto.remove = function(interval) {\n var weight = this.count - this.leftPoints\n if(interval[1] < this.mid) {\n if(!this.left) {\n return NOT_FOUND\n }\n var rw = this.right ? this.right.count : 0\n if(4 * rw > 3 * (weight-1)) {\n return rebuildWithoutInterval(this, interval)\n }\n var r = this.left.remove(interval)\n if(r === EMPTY) {\n this.left = null\n this.count -= 1\n return SUCCESS\n } else if(r === SUCCESS) {\n this.count -= 1\n }\n return r\n } else if(interval[0] > this.mid) {\n if(!this.right) {\n return NOT_FOUND\n }\n var lw = this.left ? this.left.count : 0\n if(4 * lw > 3 * (weight-1)) {\n return rebuildWithoutInterval(this, interval)\n }\n var r = this.right.remove(interval)\n if(r === EMPTY) {\n this.right = null\n this.count -= 1\n return SUCCESS\n } else if(r === SUCCESS) {\n this.count -= 1\n }\n return r\n } else {\n if(this.count === 1) {\n if(this.leftPoints[0] === interval) {\n return EMPTY\n } else {\n return NOT_FOUND\n }\n }\n if(this.leftPoints.length === 1 && this.leftPoints[0] === interval) {\n if(this.left && this.right) {\n var p = this\n var n = this.left\n while(n.right) {\n p = n\n n = n.right\n }\n if(p === this) {\n n.right = this.right\n } else {\n var l = this.left\n var r = this.right\n p.count -= n.count\n p.right = n.left\n n.left = l\n n.right = r\n }\n copy(this, n)\n this.count = (this.left?this.left.count:0) + (this.right?this.right.count:0) + this.leftPoints.length\n } else if(this.left) {\n copy(this, this.left)\n } else {\n copy(this, this.right)\n }\n return SUCCESS\n }\n for(var l = bounds.ge(this.leftPoints, interval, compareBegin); l=0 && arr[i][1] >= lo; --i) {\n var r = cb(arr[i])\n if(r) { return r }\n }\n}\n\nfunction reportRange(arr, cb) {\n for(var i=0; i this.mid) {\n if(this.right) {\n var r = this.right.queryPoint(x, cb)\n if(r) { return r }\n }\n return reportRightRange(this.rightPoints, x, cb)\n } else {\n return reportRange(this.leftPoints, cb)\n }\n}\n\nproto.queryInterval = function(lo, hi, cb) {\n if(lo < this.mid && this.left) {\n var r = this.left.queryInterval(lo, hi, cb)\n if(r) { return r }\n }\n if(hi > this.mid && this.right) {\n var r = this.right.queryInterval(lo, hi, cb)\n if(r) { return r }\n }\n if(hi < this.mid) {\n return reportLeftRange(this.leftPoints, hi, cb)\n } else if(lo > this.mid) {\n return reportRightRange(this.rightPoints, lo, cb)\n } else {\n return reportRange(this.leftPoints, cb)\n }\n}\n\nfunction compareNumbers(a, b) {\n return a - b\n}\n\nfunction compareBegin(a, b) {\n var d = a[0] - b[0]\n if(d) { return d }\n return a[1] - b[1]\n}\n\nfunction compareEnd(a, b) {\n var d = a[1] - b[1]\n if(d) { return d }\n return a[0] - b[0]\n}\n\nfunction createIntervalTree(intervals) {\n if(intervals.length === 0) {\n return null\n }\n var pts = []\n for(var i=0; i>1]\n\n var leftIntervals = []\n var rightIntervals = []\n var centerIntervals = []\n for(var i=0; i= bbox.left && e.clientX <= bbox.right &&\n e.clientY >= bbox.top && e.clientY <= bbox.bottom\n );\n });\n if(clickedTrace.size() > 0) {\n clickOrDoubleClick(gd, legend, clickedTrace, numClicks, e);\n }\n }\n });\n }\n }], gd);\n};\n\nfunction clickOrDoubleClick(gd, legend, legendItem, numClicks, evt) {\n var trace = legendItem.data()[0][0].trace;\n var evtData = {\n event: evt,\n node: legendItem.node(),\n curveNumber: trace.index,\n expandedIndex: trace._expandedIndex,\n data: gd.data,\n layout: gd.layout,\n frames: gd._transitionData._frames,\n config: gd._context,\n fullData: gd._fullData,\n fullLayout: gd._fullLayout\n };\n\n if(trace._group) {\n evtData.group = trace._group;\n }\n if(Registry.traceIs(trace, 'pie-like')) {\n evtData.label = legendItem.datum()[0].label;\n }\n\n var clickVal = Events.triggerHandler(gd, 'plotly_legendclick', evtData);\n if(clickVal === false) return;\n\n if(numClicks === 1) {\n legend._clickTimeout = setTimeout(function() {\n handleClick(legendItem, gd, numClicks);\n }, gd._context.doubleClickDelay);\n } else if(numClicks === 2) {\n if(legend._clickTimeout) clearTimeout(legend._clickTimeout);\n gd._legendMouseDownTime = 0;\n\n var dblClickVal = Events.triggerHandler(gd, 'plotly_legenddoubleclick', evtData);\n if(dblClickVal !== false) handleClick(legendItem, gd, numClicks);\n }\n}\n\nfunction drawTexts(g, gd) {\n var legendItem = g.data()[0][0];\n var fullLayout = gd._fullLayout;\n var opts = fullLayout.legend;\n var trace = legendItem.trace;\n var isPieLike = Registry.traceIs(trace, 'pie-like');\n var traceIndex = trace.index;\n var isEditable = gd._context.edits.legendText && !isPieLike;\n var maxNameLength = opts._maxNameLength;\n\n var name = isPieLike ? legendItem.label : trace.name;\n if(trace._meta) {\n name = Lib.templateString(name, trace._meta);\n }\n\n var textEl = Lib.ensureSingle(g, 'text', 'legendtext');\n\n textEl.attr('text-anchor', 'start')\n .classed('user-select-none', true)\n .call(Drawing.font, opts.font)\n .text(isEditable ? ensureLength(name, maxNameLength) : name);\n\n svgTextUtils.positionText(textEl, constants.textGap, 0);\n\n if(isEditable) {\n textEl.call(svgTextUtils.makeEditable, {gd: gd, text: name})\n .call(textLayout, g, gd)\n .on('edit', function(newName) {\n this.text(ensureLength(newName, maxNameLength))\n .call(textLayout, g, gd);\n\n var fullInput = legendItem.trace._fullInput || {};\n var update = {};\n\n if(Registry.hasTransform(fullInput, 'groupby')) {\n var groupbyIndices = Registry.getTransformIndices(fullInput, 'groupby');\n var index = groupbyIndices[groupbyIndices.length - 1];\n\n var kcont = Lib.keyedContainer(fullInput, 'transforms[' + index + '].styles', 'target', 'value.name');\n\n kcont.set(legendItem.trace._group, newName);\n\n update = kcont.constructUpdate();\n } else {\n update.name = newName;\n }\n\n return Registry.call('_guiRestyle', gd, update, traceIndex);\n });\n } else {\n textLayout(textEl, g, gd);\n }\n}\n\n/*\n * Make sure we have a reasonably clickable region.\n * If this string is missing or very short, pad it with spaces out to at least\n * 4 characters, up to the max length of other labels, on the assumption that\n * most characters are wider than spaces so a string of spaces will usually be\n * no wider than the real labels.\n */\nfunction ensureLength(str, maxLength) {\n var targetLength = Math.max(4, maxLength);\n if(str && str.trim().length >= targetLength / 2) return str;\n str = str || '';\n for(var i = targetLength - str.length; i > 0; i--) str += ' ';\n return str;\n}\n\nfunction setupTraceToggle(g, gd) {\n var doubleClickDelay = gd._context.doubleClickDelay;\n var newMouseDownTime;\n var numClicks = 1;\n\n var traceToggle = Lib.ensureSingle(g, 'rect', 'legendtoggle', function(s) {\n s.style('cursor', 'pointer')\n .attr('pointer-events', 'all')\n .call(Color.fill, 'rgba(0,0,0,0)');\n });\n\n traceToggle.on('mousedown', function() {\n newMouseDownTime = (new Date()).getTime();\n if(newMouseDownTime - gd._legendMouseDownTime < doubleClickDelay) {\n // in a click train\n numClicks += 1;\n } else {\n // new click train\n numClicks = 1;\n gd._legendMouseDownTime = newMouseDownTime;\n }\n });\n traceToggle.on('mouseup', function() {\n if(gd._dragged || gd._editing) return;\n var legend = gd._fullLayout.legend;\n\n if((new Date()).getTime() - gd._legendMouseDownTime > doubleClickDelay) {\n numClicks = Math.max(numClicks - 1, 1);\n }\n\n clickOrDoubleClick(gd, legend, g, numClicks, d3.event);\n });\n}\n\nfunction textLayout(s, g, gd) {\n svgTextUtils.convertToTspans(s, gd, function() {\n computeTextDimensions(g, gd);\n });\n}\n\nfunction computeTextDimensions(g, gd) {\n var legendItem = g.data()[0][0];\n if(legendItem && !legendItem.trace.showlegend) {\n g.remove();\n return;\n }\n\n var mathjaxGroup = g.select('g[class*=math-group]');\n var mathjaxNode = mathjaxGroup.node();\n var bw = gd._fullLayout.legend.borderwidth;\n var opts = gd._fullLayout.legend;\n var lineHeight = (legendItem ? opts : opts.title).font.size * LINE_SPACING;\n var height, width;\n\n if(mathjaxNode) {\n var mathjaxBB = Drawing.bBox(mathjaxNode);\n\n height = mathjaxBB.height;\n width = mathjaxBB.width;\n\n if(legendItem) {\n Drawing.setTranslate(mathjaxGroup, 0, height * 0.25);\n } else { // case of title\n Drawing.setTranslate(mathjaxGroup, bw, height * 0.75 + bw);\n }\n } else {\n var textEl = g.select(legendItem ?\n '.legendtext' : '.legendtitletext'\n );\n var textLines = svgTextUtils.lineCount(textEl);\n var textNode = textEl.node();\n\n height = lineHeight * textLines;\n width = textNode ? Drawing.bBox(textNode).width : 0;\n\n // approximation to height offset to center the font\n // to avoid getBoundingClientRect\n var textY = lineHeight * ((textLines - 1) / 2 - 0.3);\n if(legendItem) {\n svgTextUtils.positionText(textEl, constants.textGap, -textY);\n } else { // case of title\n svgTextUtils.positionText(textEl, constants.titlePad + bw, lineHeight + bw);\n }\n }\n\n if(legendItem) {\n legendItem.lineHeight = lineHeight;\n legendItem.height = Math.max(height, 16) + 3;\n legendItem.width = width;\n } else { // case of title\n opts._titleWidth = width;\n opts._titleHeight = height;\n }\n}\n\nfunction getTitleSize(opts) {\n var w = 0;\n var h = 0;\n\n var side = opts.title.side;\n if(side) {\n if(side.indexOf('left') !== -1) {\n w = opts._titleWidth;\n }\n if(side.indexOf('top') !== -1) {\n h = opts._titleHeight;\n }\n }\n\n return [w, h];\n}\n\n/*\n * Computes in fullLayout.legend:\n *\n * - _height: legend height including items past scrollbox height\n * - _maxHeight: maximum legend height before scrollbox is required\n * - _effHeight: legend height w/ or w/o scrollbox\n *\n * - _width: legend width\n * - _maxWidth (for orientation:h only): maximum width before starting new row\n */\nfunction computeLegendDimensions(gd, groups, traces) {\n var fullLayout = gd._fullLayout;\n var opts = fullLayout.legend;\n var gs = fullLayout._size;\n\n var isVertical = helpers.isVertical(opts);\n var isGrouped = helpers.isGrouped(opts);\n\n var bw = opts.borderwidth;\n var bw2 = 2 * bw;\n var textGap = constants.textGap;\n var itemGap = constants.itemGap;\n var endPad = 2 * (bw + itemGap);\n\n var yanchor = getYanchor(opts);\n var isBelowPlotArea = opts.y < 0 || (opts.y === 0 && yanchor === 'top');\n var isAbovePlotArea = opts.y > 1 || (opts.y === 1 && yanchor === 'bottom');\n\n // - if below/above plot area, give it the maximum potential margin-push value\n // - otherwise, extend the height of the plot area\n opts._maxHeight = Math.max(\n (isBelowPlotArea || isAbovePlotArea) ? fullLayout.height / 2 : gs.h,\n 30\n );\n\n var toggleRectWidth = 0;\n opts._width = 0;\n opts._height = 0;\n var titleSize = getTitleSize(opts);\n\n if(isVertical) {\n traces.each(function(d) {\n var h = d[0].height;\n Drawing.setTranslate(this,\n bw + titleSize[0],\n bw + titleSize[1] + opts._height + h / 2 + itemGap\n );\n opts._height += h;\n opts._width = Math.max(opts._width, d[0].width);\n });\n\n toggleRectWidth = textGap + opts._width;\n opts._width += itemGap + textGap + bw2;\n opts._height += endPad;\n\n if(isGrouped) {\n groups.each(function(d, i) {\n Drawing.setTranslate(this, 0, i * opts.tracegroupgap);\n });\n opts._height += (opts._lgroupsLength - 1) * opts.tracegroupgap;\n }\n } else {\n var xanchor = getXanchor(opts);\n var isLeftOfPlotArea = opts.x < 0 || (opts.x === 0 && xanchor === 'right');\n var isRightOfPlotArea = opts.x > 1 || (opts.x === 1 && xanchor === 'left');\n var isBeyondPlotAreaY = isAbovePlotArea || isBelowPlotArea;\n var hw = fullLayout.width / 2;\n\n // - if placed within x-margins, extend the width of the plot area\n // - else if below/above plot area and anchored in the margin, extend to opposite margin,\n // - otherwise give it the maximum potential margin-push value\n opts._maxWidth = Math.max(\n isLeftOfPlotArea ? ((isBeyondPlotAreaY && xanchor === 'left') ? gs.l + gs.w : hw) :\n isRightOfPlotArea ? ((isBeyondPlotAreaY && xanchor === 'right') ? gs.r + gs.w : hw) :\n gs.w,\n 2 * textGap);\n var maxItemWidth = 0;\n var combinedItemWidth = 0;\n traces.each(function(d) {\n var w = d[0].width + textGap;\n maxItemWidth = Math.max(maxItemWidth, w);\n combinedItemWidth += w;\n });\n\n toggleRectWidth = null;\n var maxRowWidth = 0;\n\n if(isGrouped) {\n var maxGroupHeightInRow = 0;\n var groupOffsetX = 0;\n var groupOffsetY = 0;\n groups.each(function() {\n var maxWidthInGroup = 0;\n var offsetY = 0;\n d3.select(this).selectAll('g.traces').each(function(d) {\n var h = d[0].height;\n Drawing.setTranslate(this,\n titleSize[0],\n titleSize[1] + bw + itemGap + h / 2 + offsetY\n );\n offsetY += h;\n maxWidthInGroup = Math.max(maxWidthInGroup, textGap + d[0].width);\n });\n maxGroupHeightInRow = Math.max(maxGroupHeightInRow, offsetY);\n\n var next = maxWidthInGroup + itemGap;\n\n if((next + bw + groupOffsetX) > opts._maxWidth) {\n maxRowWidth = Math.max(maxRowWidth, groupOffsetX);\n groupOffsetX = 0;\n groupOffsetY += maxGroupHeightInRow + opts.tracegroupgap;\n maxGroupHeightInRow = offsetY;\n }\n\n Drawing.setTranslate(this, groupOffsetX, groupOffsetY);\n\n groupOffsetX += next;\n });\n\n opts._width = Math.max(maxRowWidth, groupOffsetX) + bw;\n opts._height = groupOffsetY + maxGroupHeightInRow + endPad;\n } else {\n var nTraces = traces.size();\n var oneRowLegend = (combinedItemWidth + bw2 + (nTraces - 1) * itemGap) < opts._maxWidth;\n\n var maxItemHeightInRow = 0;\n var offsetX = 0;\n var offsetY = 0;\n var rowWidth = 0;\n traces.each(function(d) {\n var h = d[0].height;\n var w = textGap + d[0].width;\n var next = (oneRowLegend ? w : maxItemWidth) + itemGap;\n\n if((next + bw + offsetX) > opts._maxWidth) {\n maxRowWidth = Math.max(maxRowWidth, rowWidth);\n offsetX = 0;\n offsetY += maxItemHeightInRow;\n opts._height += maxItemHeightInRow;\n maxItemHeightInRow = 0;\n }\n\n Drawing.setTranslate(this,\n titleSize[0] + bw + offsetX,\n titleSize[1] + bw + offsetY + h / 2 + itemGap\n );\n\n rowWidth = offsetX + w + itemGap;\n offsetX += next;\n maxItemHeightInRow = Math.max(maxItemHeightInRow, h);\n });\n\n if(oneRowLegend) {\n opts._width = offsetX + bw2;\n opts._height = maxItemHeightInRow + endPad;\n } else {\n opts._width = Math.max(maxRowWidth, rowWidth) + bw2;\n opts._height += maxItemHeightInRow + endPad;\n }\n }\n }\n\n opts._width = Math.ceil(\n Math.max(\n opts._width + titleSize[0],\n opts._titleWidth + 2 * (bw + constants.titlePad)\n )\n );\n\n opts._height = Math.ceil(\n Math.max(\n opts._height + titleSize[1],\n opts._titleHeight + 2 * (bw + constants.itemGap)\n )\n );\n\n opts._effHeight = Math.min(opts._height, opts._maxHeight);\n\n var edits = gd._context.edits;\n var isEditable = edits.legendText || edits.legendPosition;\n traces.each(function(d) {\n var traceToggle = d3.select(this).select('.legendtoggle');\n var h = d[0].height;\n var w = isEditable ? textGap : (toggleRectWidth || (textGap + d[0].width));\n if(!isVertical) w += itemGap / 2;\n Drawing.setRect(traceToggle, 0, -h / 2, w, h);\n });\n}\n\nfunction expandMargin(gd) {\n var fullLayout = gd._fullLayout;\n var opts = fullLayout.legend;\n var xanchor = getXanchor(opts);\n var yanchor = getYanchor(opts);\n\n return Plots.autoMargin(gd, 'legend', {\n x: opts.x,\n y: opts.y,\n l: opts._width * (FROM_TL[xanchor]),\n r: opts._width * (FROM_BR[xanchor]),\n b: opts._effHeight * (FROM_BR[yanchor]),\n t: opts._effHeight * (FROM_TL[yanchor])\n });\n}\n\nfunction getXanchor(opts) {\n return Lib.isRightAnchor(opts) ? 'right' :\n Lib.isCenterAnchor(opts) ? 'center' :\n 'left';\n}\n\nfunction getYanchor(opts) {\n return Lib.isBottomAnchor(opts) ? 'bottom' :\n Lib.isMiddleAnchor(opts) ? 'middle' :\n 'top';\n}\n\n\n/***/ }),\n\n/***/ \"43ef\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar heatmapAttrs = __webpack_require__(\"0435\");\nvar scatterAttrs = __webpack_require__(\"107c\");\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\nvar dash = __webpack_require__(\"db54\").dash;\nvar fontAttrs = __webpack_require__(\"9845\");\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nvar filterOps = __webpack_require__(\"6c77\");\nvar COMPARISON_OPS2 = filterOps.COMPARISON_OPS2;\nvar INTERVAL_OPS = filterOps.INTERVAL_OPS;\n\nvar FORMAT_LINK = __webpack_require__(\"78df\").FORMAT_LINK;\n\nvar scatterLineAttrs = scatterAttrs.line;\n\nmodule.exports = extendFlat({\n z: heatmapAttrs.z,\n x: heatmapAttrs.x,\n x0: heatmapAttrs.x0,\n dx: heatmapAttrs.dx,\n y: heatmapAttrs.y,\n y0: heatmapAttrs.y0,\n dy: heatmapAttrs.dy,\n text: heatmapAttrs.text,\n hovertext: heatmapAttrs.hovertext,\n transpose: heatmapAttrs.transpose,\n xtype: heatmapAttrs.xtype,\n ytype: heatmapAttrs.ytype,\n zhoverformat: heatmapAttrs.zhoverformat,\n hovertemplate: heatmapAttrs.hovertemplate,\n hoverongaps: heatmapAttrs.hoverongaps,\n connectgaps: extendFlat({}, heatmapAttrs.connectgaps, {\n \n }),\n\n fillcolor: {\n valType: 'color',\n \n editType: 'calc',\n \n },\n\n autocontour: {\n valType: 'boolean',\n dflt: true,\n \n editType: 'calc',\n impliedEdits: {\n 'contours.start': undefined,\n 'contours.end': undefined,\n 'contours.size': undefined\n },\n \n },\n ncontours: {\n valType: 'integer',\n dflt: 15,\n min: 1,\n \n editType: 'calc',\n \n },\n\n contours: {\n type: {\n valType: 'enumerated',\n values: ['levels', 'constraint'],\n dflt: 'levels',\n \n editType: 'calc',\n \n },\n start: {\n valType: 'number',\n dflt: null,\n \n editType: 'plot',\n impliedEdits: {'^autocontour': false},\n \n },\n end: {\n valType: 'number',\n dflt: null,\n \n editType: 'plot',\n impliedEdits: {'^autocontour': false},\n \n },\n size: {\n valType: 'number',\n dflt: null,\n min: 0,\n \n editType: 'plot',\n impliedEdits: {'^autocontour': false},\n \n },\n coloring: {\n valType: 'enumerated',\n values: ['fill', 'heatmap', 'lines', 'none'],\n dflt: 'fill',\n \n editType: 'calc',\n \n },\n showlines: {\n valType: 'boolean',\n dflt: true,\n \n editType: 'plot',\n \n },\n showlabels: {\n valType: 'boolean',\n dflt: false,\n \n editType: 'plot',\n \n },\n labelfont: fontAttrs({\n editType: 'plot',\n colorEditType: 'style',\n \n }),\n labelformat: {\n valType: 'string',\n dflt: '',\n \n editType: 'plot',\n \n },\n operation: {\n valType: 'enumerated',\n values: [].concat(COMPARISON_OPS2).concat(INTERVAL_OPS),\n \n dflt: '=',\n editType: 'calc',\n \n },\n value: {\n valType: 'any',\n dflt: 0,\n \n editType: 'calc',\n \n },\n editType: 'calc',\n impliedEdits: {'autocontour': false}\n },\n\n line: {\n color: extendFlat({}, scatterLineAttrs.color, {\n editType: 'style+colorbars',\n \n }),\n width: {\n valType: 'number',\n min: 0,\n \n editType: 'style+colorbars',\n \n },\n dash: dash,\n smoothing: extendFlat({}, scatterLineAttrs.smoothing, {\n \n }),\n editType: 'plot'\n }\n},\n colorScaleAttrs('', {\n cLetter: 'z',\n autoColorDflt: false,\n editTypeOverride: 'calc'\n })\n);\n\n\n/***/ }),\n\n/***/ \"442f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar main = __webpack_require__(\"b5e3\");\n\nexports.plot = main.plot;\nexports.newPlot = main.newPlot;\nexports.restyle = main.restyle;\nexports.relayout = main.relayout;\nexports.redraw = main.redraw;\nexports.update = main.update;\nexports._guiRestyle = main._guiRestyle;\nexports._guiRelayout = main._guiRelayout;\nexports._guiUpdate = main._guiUpdate;\nexports._storeDirectGUIEdit = main._storeDirectGUIEdit;\nexports.react = main.react;\nexports.extendTraces = main.extendTraces;\nexports.prependTraces = main.prependTraces;\nexports.addTraces = main.addTraces;\nexports.deleteTraces = main.deleteTraces;\nexports.moveTraces = main.moveTraces;\nexports.purge = main.purge;\nexports.addFrames = main.addFrames;\nexports.deleteFrames = main.deleteFrames;\nexports.animate = main.animate;\nexports.setPlotConfig = main.setPlotConfig;\n\nexports.toImage = __webpack_require__(\"a288\");\nexports.validate = __webpack_require__(\"3fb2\");\nexports.downloadImage = __webpack_require__(\"ad91\");\n\nvar templateApi = __webpack_require__(\"2d9a\");\nexports.makeTemplate = templateApi.makeTemplate;\nexports.validateTemplate = templateApi.validateTemplate;\n\n\n/***/ }),\n\n/***/ \"447e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar attributes = __webpack_require__(\"86d2\");\nvar constants = __webpack_require__(\"000c\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var z = coerce('z');\n if(z === undefined || !z.length || !z[0] || !z[0].length) {\n traceOut.visible = false;\n return;\n }\n\n coerce('x0');\n coerce('y0');\n coerce('dx');\n coerce('dy');\n var colormodel = coerce('colormodel');\n\n coerce('zmin', constants.colormodel[colormodel].min);\n coerce('zmax', constants.colormodel[colormodel].max);\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n traceOut._length = null;\n};\n\n\n/***/ }),\n\n/***/ \"44ad\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar classof = __webpack_require__(\"c6b6\");\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n\n/***/ \"44c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar createTexture = __webpack_require__(\"1d5b\")\n\nmodule.exports = createFBO\n\nvar colorAttachmentArrays = null\nvar FRAMEBUFFER_UNSUPPORTED\nvar FRAMEBUFFER_INCOMPLETE_ATTACHMENT\nvar FRAMEBUFFER_INCOMPLETE_DIMENSIONS\nvar FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\n\nfunction saveFBOState(gl) {\n var fbo = gl.getParameter(gl.FRAMEBUFFER_BINDING)\n var rbo = gl.getParameter(gl.RENDERBUFFER_BINDING)\n var tex = gl.getParameter(gl.TEXTURE_BINDING_2D)\n return [fbo, rbo, tex]\n}\n\nfunction restoreFBOState(gl, data) {\n gl.bindFramebuffer(gl.FRAMEBUFFER, data[0])\n gl.bindRenderbuffer(gl.RENDERBUFFER, data[1])\n gl.bindTexture(gl.TEXTURE_2D, data[2])\n}\n\nfunction lazyInitColorAttachments(gl, ext) {\n var maxColorAttachments = gl.getParameter(ext.MAX_COLOR_ATTACHMENTS_WEBGL)\n colorAttachmentArrays = new Array(maxColorAttachments + 1)\n for(var i=0; i<=maxColorAttachments; ++i) {\n var x = new Array(maxColorAttachments)\n for(var j=0; j 1) {\n ext.drawBuffersWEBGL(colorAttachmentArrays[numColors])\n }\n\n //Allocate depth/stencil buffers\n var WEBGL_depth_texture = gl.getExtension('WEBGL_depth_texture')\n if(WEBGL_depth_texture) {\n if(useStencil) {\n fbo.depth = initTexture(gl, width, height,\n WEBGL_depth_texture.UNSIGNED_INT_24_8_WEBGL,\n gl.DEPTH_STENCIL,\n gl.DEPTH_STENCIL_ATTACHMENT)\n } else if(useDepth) {\n fbo.depth = initTexture(gl, width, height,\n gl.UNSIGNED_SHORT,\n gl.DEPTH_COMPONENT,\n gl.DEPTH_ATTACHMENT)\n }\n } else {\n if(useDepth && useStencil) {\n fbo._depth_rb = initRenderBuffer(gl, width, height, gl.DEPTH_STENCIL, gl.DEPTH_STENCIL_ATTACHMENT)\n } else if(useDepth) {\n fbo._depth_rb = initRenderBuffer(gl, width, height, gl.DEPTH_COMPONENT16, gl.DEPTH_ATTACHMENT)\n } else if(useStencil) {\n fbo._depth_rb = initRenderBuffer(gl, width, height, gl.STENCIL_INDEX, gl.STENCIL_ATTACHMENT)\n }\n }\n\n //Check frame buffer state\n var status = gl.checkFramebufferStatus(gl.FRAMEBUFFER)\n if(status !== gl.FRAMEBUFFER_COMPLETE) {\n\n //Release all partially allocated resources\n fbo._destroyed = true\n\n //Release all resources\n gl.bindFramebuffer(gl.FRAMEBUFFER, null)\n gl.deleteFramebuffer(fbo.handle)\n fbo.handle = null\n if(fbo.depth) {\n fbo.depth.dispose()\n fbo.depth = null\n }\n if(fbo._depth_rb) {\n gl.deleteRenderbuffer(fbo._depth_rb)\n fbo._depth_rb = null\n }\n for(var i=0; i maxFBOSize ||\n h < 0 || h > maxFBOSize) {\n throw new Error('gl-fbo: Can\\'t resize FBO, invalid dimensions')\n }\n\n //Update shape\n fbo._shape[0] = w\n fbo._shape[1] = h\n\n //Save framebuffer state\n var state = saveFBOState(gl)\n\n //Resize framebuffer attachments\n for(var i=0; i maxFBOSize || height < 0 || height > maxFBOSize) {\n throw new Error('gl-fbo: Parameters are too large for FBO')\n }\n\n //Handle each option type\n options = options || {}\n\n //Figure out number of color buffers to use\n var numColors = 1\n if('color' in options) {\n numColors = Math.max(options.color|0, 0)\n if(numColors < 0) {\n throw new Error('gl-fbo: Must specify a nonnegative number of colors')\n }\n if(numColors > 1) {\n //Check if multiple render targets supported\n if(!WEBGL_draw_buffers) {\n throw new Error('gl-fbo: Multiple draw buffer extension not supported')\n } else if(numColors > gl.getParameter(WEBGL_draw_buffers.MAX_COLOR_ATTACHMENTS_WEBGL)) {\n throw new Error('gl-fbo: Context does not support ' + numColors + ' draw buffers')\n }\n }\n }\n\n //Determine whether to use floating point textures\n var colorType = gl.UNSIGNED_BYTE\n var OES_texture_float = gl.getExtension('OES_texture_float')\n if(options.float && numColors > 0) {\n if(!OES_texture_float) {\n throw new Error('gl-fbo: Context does not support floating point textures')\n }\n colorType = gl.FLOAT\n } else if(options.preferFloat && numColors > 0) {\n if(OES_texture_float) {\n colorType = gl.FLOAT\n }\n }\n\n //Check if we should use depth buffer\n var useDepth = true\n if('depth' in options) {\n useDepth = !!options.depth\n }\n\n //Check if we should use a stencil buffer\n var useStencil = false\n if('stencil' in options) {\n useStencil = !!options.stencil\n }\n\n return new Framebuffer(\n gl,\n width,\n height,\n colorType,\n numColors,\n useDepth,\n useStencil,\n WEBGL_draw_buffers)\n}\n\n\n/***/ }),\n\n/***/ \"44d4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"ea27\");\n\n\n/***/ }),\n\n/***/ \"44fe\":\n/***/ (function(module, exports) {\n\nmodule.exports = rotateY;\n\n/**\n * Rotates a matrix by the given angle around the Y axis\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\nfunction rotateY(out, a, rad) {\n var s = Math.sin(rad),\n c = Math.cos(rad),\n a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3],\n a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n\n if (a !== out) { // If the source and destination differ, copy the unchanged rows\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n\n // Perform axis-specific matrix multiplication\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n};\n\n/***/ }),\n\n/***/ \"45a2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar colorAttrs = __webpack_require__(\"dfb3\");\nvar domainAttrs = __webpack_require__(\"81f0\").attributes;\nvar axesAttrs = __webpack_require__(\"d798\");\n\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nvar ternaryAxesAttrs = {\n title: {\n text: axesAttrs.title.text,\n font: axesAttrs.title.font\n // TODO does standoff here make sense?\n },\n color: axesAttrs.color,\n // ticks\n tickmode: axesAttrs.tickmode,\n nticks: extendFlat({}, axesAttrs.nticks, {dflt: 6, min: 1}),\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: axesAttrs.ticks,\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n showticklabels: axesAttrs.showticklabels,\n showtickprefix: axesAttrs.showtickprefix,\n tickprefix: axesAttrs.tickprefix,\n showticksuffix: axesAttrs.showticksuffix,\n ticksuffix: axesAttrs.ticksuffix,\n showexponent: axesAttrs.showexponent,\n exponentformat: axesAttrs.exponentformat,\n separatethousands: axesAttrs.separatethousands,\n tickfont: axesAttrs.tickfont,\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n hoverformat: axesAttrs.hoverformat,\n // lines and grids\n showline: extendFlat({}, axesAttrs.showline, {dflt: true}),\n linecolor: axesAttrs.linecolor,\n linewidth: axesAttrs.linewidth,\n showgrid: extendFlat({}, axesAttrs.showgrid, {dflt: true}),\n gridcolor: axesAttrs.gridcolor,\n gridwidth: axesAttrs.gridwidth,\n layer: axesAttrs.layer,\n // range\n min: {\n valType: 'number',\n dflt: 0,\n \n min: 0,\n \n },\n _deprecated: {\n title: axesAttrs._deprecated.title,\n titlefont: axesAttrs._deprecated.titlefont\n }\n};\n\nvar attrs = module.exports = overrideAll({\n domain: domainAttrs({name: 'ternary'}),\n\n bgcolor: {\n valType: 'color',\n \n dflt: colorAttrs.background,\n \n },\n sum: {\n valType: 'number',\n \n dflt: 1,\n min: 0,\n \n },\n aaxis: ternaryAxesAttrs,\n baxis: ternaryAxesAttrs,\n caxis: ternaryAxesAttrs\n}, 'plot', 'from-root');\n\n// set uirevisions outside of `overrideAll` so we can get `editType: none`\nattrs.uirevision = {\n valType: 'any',\n \n editType: 'none',\n \n};\n\nattrs.aaxis.uirevision = attrs.baxis.uirevision = attrs.caxis.uirevision = {\n valType: 'any',\n \n editType: 'none',\n \n};\n\n\n/***/ }),\n\n/***/ \"45be\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar colorAttrs = __webpack_require__(\"dfb3\");\nvar domainAttrs = __webpack_require__(\"81f0\").attributes;\nvar constants = __webpack_require__(\"0804\");\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\nvar geoAxesAttrs = {\n range: {\n valType: 'info_array',\n \n items: [\n {valType: 'number'},\n {valType: 'number'}\n ],\n \n },\n showgrid: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n tick0: {\n valType: 'number',\n \n dflt: 0,\n \n },\n dtick: {\n valType: 'number',\n \n \n },\n gridcolor: {\n valType: 'color',\n \n dflt: colorAttrs.lightLine,\n \n },\n gridwidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n }\n};\n\nvar attrs = module.exports = overrideAll({\n domain: domainAttrs({name: 'geo'}, {\n \n }),\n\n fitbounds: {\n valType: 'enumerated',\n values: [false, 'locations', 'geojson'],\n dflt: false,\n \n editType: 'plot',\n \n },\n\n resolution: {\n valType: 'enumerated',\n values: [110, 50],\n \n dflt: 110,\n coerceNumber: true,\n \n },\n scope: {\n valType: 'enumerated',\n \n values: Object.keys(constants.scopeDefaults),\n dflt: 'world',\n \n },\n projection: {\n type: {\n valType: 'enumerated',\n \n values: Object.keys(constants.projNames),\n \n },\n rotation: {\n lon: {\n valType: 'number',\n \n \n },\n lat: {\n valType: 'number',\n \n \n },\n roll: {\n valType: 'number',\n \n \n }\n },\n parallels: {\n valType: 'info_array',\n \n items: [\n {valType: 'number'},\n {valType: 'number'}\n ],\n \n },\n scale: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n },\n center: {\n lon: {\n valType: 'number',\n \n \n },\n lat: {\n valType: 'number',\n \n \n }\n },\n visible: {\n valType: 'boolean',\n \n dflt: true,\n \n },\n showcoastlines: {\n valType: 'boolean',\n \n \n },\n coastlinecolor: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n \n },\n coastlinewidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n showland: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n landcolor: {\n valType: 'color',\n \n dflt: constants.landColor,\n \n },\n showocean: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n oceancolor: {\n valType: 'color',\n \n dflt: constants.waterColor,\n \n },\n showlakes: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n lakecolor: {\n valType: 'color',\n \n dflt: constants.waterColor,\n \n },\n showrivers: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n rivercolor: {\n valType: 'color',\n \n dflt: constants.waterColor,\n \n },\n riverwidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n showcountries: {\n valType: 'boolean',\n \n \n },\n countrycolor: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n \n },\n countrywidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n showsubunits: {\n valType: 'boolean',\n \n \n },\n subunitcolor: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n \n },\n subunitwidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n showframe: {\n valType: 'boolean',\n \n \n },\n framecolor: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n \n },\n framewidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n bgcolor: {\n valType: 'color',\n \n dflt: colorAttrs.background,\n \n },\n lonaxis: geoAxesAttrs,\n lataxis: geoAxesAttrs\n}, 'plot', 'from-root');\n\n// set uirevision outside of overrideAll so it can be `editType: 'none'`\nattrs.uirevision = {\n valType: 'any',\n \n editType: 'none',\n \n};\n\n\n/***/ }),\n\n/***/ \"4633\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*!\n * repeat-string \n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\n/**\n * Results cache\n */\n\nvar res = '';\nvar cache;\n\n/**\n * Expose `repeat`\n */\n\nmodule.exports = repeat;\n\n/**\n * Repeat the given `string` the specified `number`\n * of times.\n *\n * **Example:**\n *\n * ```js\n * var repeat = require('repeat-string');\n * repeat('A', 5);\n * //=> AAAAA\n * ```\n *\n * @param {String} `string` The string to repeat\n * @param {Number} `number` The number of times to repeat the string\n * @return {String} Repeated string\n * @api public\n */\n\nfunction repeat(str, num) {\n if (typeof str !== 'string') {\n throw new TypeError('expected a string');\n }\n\n // cover common, quick use cases\n if (num === 1) return str;\n if (num === 2) return str + str;\n\n var max = str.length * num;\n if (cache !== str || typeof cache === 'undefined') {\n cache = str;\n res = '';\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n\n num >>= 1;\n str += str;\n }\n\n res += str;\n res = res.substr(0, max);\n return res;\n}\n\n\n/***/ }),\n\n/***/ \"464d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\n\nmodule.exports = function style(gd) {\n d3.select(gd).selectAll('.im image')\n .style('opacity', function(d) {\n return d.trace.opacity;\n });\n};\n\n\n/***/ }),\n\n/***/ \"4665\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar callable = __webpack_require__(\"1a94\")\n , forEach = __webpack_require__(\"6858\")\n , call = Function.prototype.call;\n\nmodule.exports = function (obj, cb/*, thisArg*/) {\n\tvar result = {}, thisArg = arguments[2];\n\tcallable(cb);\n\tforEach(obj, function (value, key, targetObj, index) {\n\t\tresult[key] = call.call(cb, thisArg, value, key, targetObj, index);\n\t});\n\treturn result;\n};\n\n\n/***/ }),\n\n/***/ \"469b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\n\n/*\n * Create or update an observer. This function is designed to be\n * idempotent so that it can be called over and over as the component\n * updates, and will attach and detach listeners as needed.\n *\n * @param {optional object} container\n * An object on which the observer is stored. This is the mechanism\n * by which it is idempotent. If it already exists, another won't be\n * added. Each time it's called, the value lookup table is updated.\n * @param {array} commandList\n * An array of commands, following either `buttons` of `updatemenus`\n * or `steps` of `sliders`.\n * @param {function} onchange\n * A listener called when the value is changed. Receives data object\n * with information about the new state.\n */\nexports.manageCommandObserver = function(gd, container, commandList, onchange) {\n var ret = {};\n var enabled = true;\n\n if(container && container._commandObserver) {\n ret = container._commandObserver;\n }\n\n if(!ret.cache) {\n ret.cache = {};\n }\n\n // Either create or just recompute this:\n ret.lookupTable = {};\n\n var binding = exports.hasSimpleAPICommandBindings(gd, commandList, ret.lookupTable);\n\n if(container && container._commandObserver) {\n if(!binding) {\n // If container exists and there are no longer any bindings,\n // remove existing:\n if(container._commandObserver.remove) {\n container._commandObserver.remove();\n container._commandObserver = null;\n return ret;\n }\n } else {\n // If container exists and there *are* bindings, then the lookup\n // table should have been updated and check is already attached,\n // so there's nothing to be done:\n return ret;\n }\n }\n\n // Determine whether there's anything to do for this binding:\n\n if(binding) {\n // Build the cache:\n bindingValueHasChanged(gd, binding, ret.cache);\n\n ret.check = function check() {\n if(!enabled) return;\n\n var update = bindingValueHasChanged(gd, binding, ret.cache);\n\n if(update.changed && onchange) {\n // Disable checks for the duration of this command in order to avoid\n // infinite loops:\n if(ret.lookupTable[update.value] !== undefined) {\n ret.disable();\n Promise.resolve(onchange({\n value: update.value,\n type: binding.type,\n prop: binding.prop,\n traces: binding.traces,\n index: ret.lookupTable[update.value]\n })).then(ret.enable, ret.enable);\n }\n }\n\n return update.changed;\n };\n\n var checkEvents = [\n 'plotly_relayout',\n 'plotly_redraw',\n 'plotly_restyle',\n 'plotly_update',\n 'plotly_animatingframe',\n 'plotly_afterplot'\n ];\n\n for(var i = 0; i < checkEvents.length; i++) {\n gd._internalOn(checkEvents[i], ret.check);\n }\n\n ret.remove = function() {\n for(var i = 0; i < checkEvents.length; i++) {\n gd._removeInternalListener(checkEvents[i], ret.check);\n }\n };\n } else {\n // TODO: It'd be really neat to actually give a *reason* for this, but at least a warning\n // is a start\n Lib.log('Unable to automatically bind plot updates to API command');\n\n ret.lookupTable = {};\n ret.remove = function() {};\n }\n\n ret.disable = function disable() {\n enabled = false;\n };\n\n ret.enable = function enable() {\n enabled = true;\n };\n\n if(container) {\n container._commandObserver = ret;\n }\n\n return ret;\n};\n\n/*\n * This function checks to see if an array of objects containing\n * method and args properties is compatible with automatic two-way\n * binding. The criteria right now are that\n *\n * 1. multiple traces may be affected\n * 2. only one property may be affected\n * 3. the same property must be affected by all commands\n */\nexports.hasSimpleAPICommandBindings = function(gd, commandList, bindingsByValue) {\n var i;\n var n = commandList.length;\n\n var refBinding;\n\n for(i = 0; i < n; i++) {\n var binding;\n var command = commandList[i];\n var method = command.method;\n var args = command.args;\n\n if(!Array.isArray(args)) args = [];\n\n // If any command has no method, refuse to bind:\n if(!method) {\n return false;\n }\n var bindings = exports.computeAPICommandBindings(gd, method, args);\n\n // Right now, handle one and *only* one property being set:\n if(bindings.length !== 1) {\n return false;\n }\n\n if(!refBinding) {\n refBinding = bindings[0];\n if(Array.isArray(refBinding.traces)) {\n refBinding.traces.sort();\n }\n } else {\n binding = bindings[0];\n if(binding.type !== refBinding.type) {\n return false;\n }\n if(binding.prop !== refBinding.prop) {\n return false;\n }\n if(Array.isArray(refBinding.traces)) {\n if(Array.isArray(binding.traces)) {\n binding.traces.sort();\n for(var j = 0; j < refBinding.traces.length; j++) {\n if(refBinding.traces[j] !== binding.traces[j]) {\n return false;\n }\n }\n } else {\n return false;\n }\n } else {\n if(binding.prop !== refBinding.prop) {\n return false;\n }\n }\n }\n\n binding = bindings[0];\n var value = binding.value;\n if(Array.isArray(value)) {\n if(value.length === 1) {\n value = value[0];\n } else {\n return false;\n }\n }\n if(bindingsByValue) {\n bindingsByValue[value] = i;\n }\n }\n\n return refBinding;\n};\n\nfunction bindingValueHasChanged(gd, binding, cache) {\n var container, value, obj;\n var changed = false;\n\n if(binding.type === 'data') {\n // If it's data, we need to get a trace. Based on the limited scope\n // of what we cover, we can just take the first trace from the list,\n // or otherwise just the first trace:\n container = gd._fullData[binding.traces !== null ? binding.traces[0] : 0];\n } else if(binding.type === 'layout') {\n container = gd._fullLayout;\n } else {\n return false;\n }\n\n value = Lib.nestedProperty(container, binding.prop).get();\n\n obj = cache[binding.type] = cache[binding.type] || {};\n\n if(obj.hasOwnProperty(binding.prop)) {\n if(obj[binding.prop] !== value) {\n changed = true;\n }\n }\n\n obj[binding.prop] = value;\n\n return {\n changed: changed,\n value: value\n };\n}\n\n/*\n * Execute an API command. There's really not much to this; it just provides\n * a common hook so that implementations don't need to be synchronized across\n * multiple components with the ability to invoke API commands.\n *\n * @param {string} method\n * The name of the plotly command to execute. Must be one of 'animate',\n * 'restyle', 'relayout', 'update'.\n * @param {array} args\n * A list of arguments passed to the API command\n */\nexports.executeAPICommand = function(gd, method, args) {\n if(method === 'skip') return Promise.resolve();\n\n var _method = Registry.apiMethodRegistry[method];\n var allArgs = [gd];\n if(!Array.isArray(args)) args = [];\n\n for(var i = 0; i < args.length; i++) {\n allArgs.push(args[i]);\n }\n\n return _method.apply(null, allArgs).catch(function(err) {\n Lib.warn('API call to Plotly.' + method + ' rejected.', err);\n return Promise.reject(err);\n });\n};\n\nexports.computeAPICommandBindings = function(gd, method, args) {\n var bindings;\n\n if(!Array.isArray(args)) args = [];\n\n switch(method) {\n case 'restyle':\n bindings = computeDataBindings(gd, args);\n break;\n case 'relayout':\n bindings = computeLayoutBindings(gd, args);\n break;\n case 'update':\n bindings = computeDataBindings(gd, [args[0], args[2]])\n .concat(computeLayoutBindings(gd, [args[1]]));\n break;\n case 'animate':\n bindings = computeAnimateBindings(gd, args);\n break;\n default:\n // This is the case where intelligent logic about what affects\n // this command is not implemented. It causes no ill effects.\n // For example, addFrames simply won't bind to a control component.\n bindings = [];\n }\n return bindings;\n};\n\nfunction computeAnimateBindings(gd, args) {\n // We'll assume that the only relevant modification an animation\n // makes that's meaningfully tracked is the frame:\n if(Array.isArray(args[0]) && args[0].length === 1 && ['string', 'number'].indexOf(typeof args[0][0]) !== -1) {\n return [{type: 'layout', prop: '_currentFrame', value: args[0][0].toString()}];\n } else {\n return [];\n }\n}\n\nfunction computeLayoutBindings(gd, args) {\n var bindings = [];\n\n var astr = args[0];\n var aobj = {};\n if(typeof astr === 'string') {\n aobj[astr] = args[1];\n } else if(Lib.isPlainObject(astr)) {\n aobj = astr;\n } else {\n return bindings;\n }\n\n crawl(aobj, function(path, attrName, attr) {\n bindings.push({type: 'layout', prop: path, value: attr});\n }, '', 0);\n\n return bindings;\n}\n\nfunction computeDataBindings(gd, args) {\n var traces, astr, val, aobj;\n var bindings = [];\n\n // Logic copied from Plotly.restyle:\n astr = args[0];\n val = args[1];\n traces = args[2];\n aobj = {};\n if(typeof astr === 'string') {\n aobj[astr] = val;\n } else if(Lib.isPlainObject(astr)) {\n // the 3-arg form\n aobj = astr;\n\n if(traces === undefined) {\n traces = val;\n }\n } else {\n return bindings;\n }\n\n if(traces === undefined) {\n // Explicitly assign this to null instead of undefined:\n traces = null;\n }\n\n crawl(aobj, function(path, attrName, _attr) {\n var thisTraces;\n var attr;\n\n if(Array.isArray(_attr)) {\n attr = _attr.slice();\n\n var nAttr = Math.min(attr.length, gd.data.length);\n if(traces) {\n nAttr = Math.min(nAttr, traces.length);\n }\n thisTraces = [];\n for(var j = 0; j < nAttr; j++) {\n thisTraces[j] = traces ? traces[j] : j;\n }\n } else {\n attr = _attr;\n thisTraces = traces ? traces.slice() : null;\n }\n\n // Convert [7] to just 7 when traces is null:\n if(thisTraces === null) {\n if(Array.isArray(attr)) {\n attr = attr[0];\n }\n } else if(Array.isArray(thisTraces)) {\n if(!Array.isArray(attr)) {\n var tmp = attr;\n attr = [];\n for(var i = 0; i < thisTraces.length; i++) {\n attr[i] = tmp;\n }\n }\n attr.length = Math.min(thisTraces.length, attr.length);\n }\n\n bindings.push({\n type: 'data',\n prop: path,\n traces: thisTraces,\n value: attr\n });\n }, '', 0);\n\n return bindings;\n}\n\nfunction crawl(attrs, callback, path, depth) {\n Object.keys(attrs).forEach(function(attrName) {\n var attr = attrs[attrName];\n\n if(attrName[0] === '_') return;\n\n var thisPath = path + (depth > 0 ? '.' : '') + attrName;\n\n if(Lib.isPlainObject(attr)) {\n crawl(attr, callback, thisPath, depth + 1);\n } else {\n // Only execute the callback on leaf nodes:\n callback(thisPath, attrName, attr);\n }\n });\n}\n\n\n/***/ }),\n\n/***/ \"46bc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar inCircle = __webpack_require__(\"0b1d\")[4]\nvar bsearch = __webpack_require__(\"cc77\")\n\nmodule.exports = delaunayRefine\n\nfunction testFlip(points, triangulation, stack, a, b, x) {\n var y = triangulation.opposite(a, b)\n\n //Test boundary edge\n if(y < 0) {\n return\n }\n\n //Swap edge if order flipped\n if(b < a) {\n var tmp = a\n a = b\n b = tmp\n tmp = x\n x = y\n y = tmp\n }\n\n //Test if edge is constrained\n if(triangulation.isConstraint(a, b)) {\n return\n }\n\n //Test if edge is delaunay\n if(inCircle(points[a], points[b], points[x], points[y]) < 0) {\n stack.push(a, b)\n }\n}\n\n//Assume edges are sorted lexicographically\nfunction delaunayRefine(points, triangulation) {\n var stack = []\n\n var numPoints = points.length\n var stars = triangulation.stars\n for(var a=0; a 0) {\n var b = stack.pop()\n var a = stack.pop()\n\n //Find opposite pairs\n var x = -1, y = -1\n var star = stars[a]\n for(var i=1; i= 0) {\n continue\n }\n\n //Flip the edge\n triangulation.flip(a, b)\n\n //Test flipping neighboring edges\n testFlip(points, triangulation, stack, x, a, y)\n testFlip(points, triangulation, stack, a, y, x)\n testFlip(points, triangulation, stack, y, b, x)\n testFlip(points, triangulation, stack, b, x, y)\n }\n}\n\n\n/***/ }),\n\n/***/ \"46c1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"60c5\");\n\n\n/***/ }),\n\n/***/ \"4746\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"48bb\");\n\n\n/***/ }),\n\n/***/ \"47cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nmodule.exports = function orientText(trace, xaxis, yaxis, xy, dxy, refDxy) {\n var dx = dxy[0] * trace.dpdx(xaxis);\n var dy = dxy[1] * trace.dpdy(yaxis);\n var flip = 1;\n\n var offsetMultiplier = 1.0;\n if(refDxy) {\n var l1 = Math.sqrt(dxy[0] * dxy[0] + dxy[1] * dxy[1]);\n var l2 = Math.sqrt(refDxy[0] * refDxy[0] + refDxy[1] * refDxy[1]);\n var dot = (dxy[0] * refDxy[0] + dxy[1] * refDxy[1]) / l1 / l2;\n offsetMultiplier = Math.max(0.0, dot);\n }\n\n var angle = Math.atan2(dy, dx) * 180 / Math.PI;\n if(angle < -90) {\n angle += 180;\n flip = -flip;\n } else if(angle > 90) {\n angle -= 180;\n flip = -flip;\n }\n\n return {\n angle: angle,\n flip: flip,\n p: trace.c2p(xy, xaxis, yaxis),\n offsetMultplier: offsetMultiplier\n };\n};\n\n\n/***/ }),\n\n/***/ \"4852\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar tinycolor = __webpack_require__(\"66cb\");\n\nvar scales = {\n 'Greys': [\n [0, 'rgb(0,0,0)'], [1, 'rgb(255,255,255)']\n ],\n\n 'YlGnBu': [\n [0, 'rgb(8,29,88)'], [0.125, 'rgb(37,52,148)'],\n [0.25, 'rgb(34,94,168)'], [0.375, 'rgb(29,145,192)'],\n [0.5, 'rgb(65,182,196)'], [0.625, 'rgb(127,205,187)'],\n [0.75, 'rgb(199,233,180)'], [0.875, 'rgb(237,248,217)'],\n [1, 'rgb(255,255,217)']\n ],\n\n 'Greens': [\n [0, 'rgb(0,68,27)'], [0.125, 'rgb(0,109,44)'],\n [0.25, 'rgb(35,139,69)'], [0.375, 'rgb(65,171,93)'],\n [0.5, 'rgb(116,196,118)'], [0.625, 'rgb(161,217,155)'],\n [0.75, 'rgb(199,233,192)'], [0.875, 'rgb(229,245,224)'],\n [1, 'rgb(247,252,245)']\n ],\n\n 'YlOrRd': [\n [0, 'rgb(128,0,38)'], [0.125, 'rgb(189,0,38)'],\n [0.25, 'rgb(227,26,28)'], [0.375, 'rgb(252,78,42)'],\n [0.5, 'rgb(253,141,60)'], [0.625, 'rgb(254,178,76)'],\n [0.75, 'rgb(254,217,118)'], [0.875, 'rgb(255,237,160)'],\n [1, 'rgb(255,255,204)']\n ],\n\n 'Bluered': [\n [0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']\n ],\n\n // modified RdBu based on\n // http://www.kennethmoreland.com/color-maps/\n 'RdBu': [\n [0, 'rgb(5,10,172)'], [0.35, 'rgb(106,137,247)'],\n [0.5, 'rgb(190,190,190)'], [0.6, 'rgb(220,170,132)'],\n [0.7, 'rgb(230,145,90)'], [1, 'rgb(178,10,28)']\n ],\n\n // Scale for non-negative numeric values\n 'Reds': [\n [0, 'rgb(220,220,220)'], [0.2, 'rgb(245,195,157)'],\n [0.4, 'rgb(245,160,105)'], [1, 'rgb(178,10,28)']\n ],\n\n // Scale for non-positive numeric values\n 'Blues': [\n [0, 'rgb(5,10,172)'], [0.35, 'rgb(40,60,190)'],\n [0.5, 'rgb(70,100,245)'], [0.6, 'rgb(90,120,245)'],\n [0.7, 'rgb(106,137,247)'], [1, 'rgb(220,220,220)']\n ],\n\n 'Picnic': [\n [0, 'rgb(0,0,255)'], [0.1, 'rgb(51,153,255)'],\n [0.2, 'rgb(102,204,255)'], [0.3, 'rgb(153,204,255)'],\n [0.4, 'rgb(204,204,255)'], [0.5, 'rgb(255,255,255)'],\n [0.6, 'rgb(255,204,255)'], [0.7, 'rgb(255,153,255)'],\n [0.8, 'rgb(255,102,204)'], [0.9, 'rgb(255,102,102)'],\n [1, 'rgb(255,0,0)']\n ],\n\n 'Rainbow': [\n [0, 'rgb(150,0,90)'], [0.125, 'rgb(0,0,200)'],\n [0.25, 'rgb(0,25,255)'], [0.375, 'rgb(0,152,255)'],\n [0.5, 'rgb(44,255,150)'], [0.625, 'rgb(151,255,0)'],\n [0.75, 'rgb(255,234,0)'], [0.875, 'rgb(255,111,0)'],\n [1, 'rgb(255,0,0)']\n ],\n\n 'Portland': [\n [0, 'rgb(12,51,131)'], [0.25, 'rgb(10,136,186)'],\n [0.5, 'rgb(242,211,56)'], [0.75, 'rgb(242,143,56)'],\n [1, 'rgb(217,30,30)']\n ],\n\n 'Jet': [\n [0, 'rgb(0,0,131)'], [0.125, 'rgb(0,60,170)'],\n [0.375, 'rgb(5,255,255)'], [0.625, 'rgb(255,255,0)'],\n [0.875, 'rgb(250,0,0)'], [1, 'rgb(128,0,0)']\n ],\n\n 'Hot': [\n [0, 'rgb(0,0,0)'], [0.3, 'rgb(230,0,0)'],\n [0.6, 'rgb(255,210,0)'], [1, 'rgb(255,255,255)']\n ],\n\n 'Blackbody': [\n [0, 'rgb(0,0,0)'], [0.2, 'rgb(230,0,0)'],\n [0.4, 'rgb(230,210,0)'], [0.7, 'rgb(255,255,255)'],\n [1, 'rgb(160,200,255)']\n ],\n\n 'Earth': [\n [0, 'rgb(0,0,130)'], [0.1, 'rgb(0,180,180)'],\n [0.2, 'rgb(40,210,40)'], [0.4, 'rgb(230,230,50)'],\n [0.6, 'rgb(120,70,20)'], [1, 'rgb(255,255,255)']\n ],\n\n 'Electric': [\n [0, 'rgb(0,0,0)'], [0.15, 'rgb(30,0,100)'],\n [0.4, 'rgb(120,0,100)'], [0.6, 'rgb(160,90,0)'],\n [0.8, 'rgb(230,200,0)'], [1, 'rgb(255,250,220)']\n ],\n\n 'Viridis': [\n [0, '#440154'], [0.06274509803921569, '#48186a'],\n [0.12549019607843137, '#472d7b'], [0.18823529411764706, '#424086'],\n [0.25098039215686274, '#3b528b'], [0.3137254901960784, '#33638d'],\n [0.3764705882352941, '#2c728e'], [0.4392156862745098, '#26828e'],\n [0.5019607843137255, '#21918c'], [0.5647058823529412, '#1fa088'],\n [0.6274509803921569, '#28ae80'], [0.6901960784313725, '#3fbc73'],\n [0.7529411764705882, '#5ec962'], [0.8156862745098039, '#84d44b'],\n [0.8784313725490196, '#addc30'], [0.9411764705882353, '#d8e219'],\n [1, '#fde725']\n ],\n\n 'Cividis': [\n [0.000000, 'rgb(0,32,76)'], [0.058824, 'rgb(0,42,102)'],\n [0.117647, 'rgb(0,52,110)'], [0.176471, 'rgb(39,63,108)'],\n [0.235294, 'rgb(60,74,107)'], [0.294118, 'rgb(76,85,107)'],\n [0.352941, 'rgb(91,95,109)'], [0.411765, 'rgb(104,106,112)'],\n [0.470588, 'rgb(117,117,117)'], [0.529412, 'rgb(131,129,120)'],\n [0.588235, 'rgb(146,140,120)'], [0.647059, 'rgb(161,152,118)'],\n [0.705882, 'rgb(176,165,114)'], [0.764706, 'rgb(192,177,109)'],\n [0.823529, 'rgb(209,191,102)'], [0.882353, 'rgb(225,204,92)'],\n [0.941176, 'rgb(243,219,79)'], [1.000000, 'rgb(255,233,69)']\n ]\n};\n\nvar defaultScale = scales.RdBu;\n\nfunction getScale(scl, dflt) {\n if(!dflt) dflt = defaultScale;\n if(!scl) return dflt;\n\n function parseScale() {\n try {\n scl = scales[scl] || JSON.parse(scl);\n } catch(e) {\n scl = dflt;\n }\n }\n\n if(typeof scl === 'string') {\n parseScale();\n // occasionally scl is double-JSON encoded...\n if(typeof scl === 'string') parseScale();\n }\n\n if(!isValidScaleArray(scl)) return dflt;\n return scl;\n}\n\n\nfunction isValidScaleArray(scl) {\n var highestVal = 0;\n\n if(!Array.isArray(scl) || scl.length < 2) return false;\n\n if(!scl[0] || !scl[scl.length - 1]) return false;\n\n if(+scl[0][0] !== 0 || +scl[scl.length - 1][0] !== 1) return false;\n\n for(var i = 0; i < scl.length; i++) {\n var si = scl[i];\n\n if(si.length !== 2 || +si[0] < highestVal || !tinycolor(si[1]).isValid()) {\n return false;\n }\n\n highestVal = +si[0];\n }\n\n return true;\n}\n\nfunction isValidScale(scl) {\n if(scales[scl] !== undefined) return true;\n else return isValidScaleArray(scl);\n}\n\nmodule.exports = {\n scales: scales,\n defaultScale: defaultScale,\n\n get: getScale,\n isValid: isValidScale\n};\n\n\n/***/ }),\n\n/***/ \"487e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createLines\n\nvar createBuffer = __webpack_require__(\"efce\")\nvar createVAO = __webpack_require__(\"b205\")\nvar createShader = __webpack_require__(\"c185\").line\n\nvar MAJOR_AXIS = [0,0,0]\nvar MINOR_AXIS = [0,0,0]\nvar SCREEN_AXIS = [0,0,0]\nvar OFFSET_VEC = [0,0,0]\nvar SHAPE = [1,1]\n\nfunction zeroVec(a) {\n a[0] = a[1] = a[2] = 0\n return a\n}\n\nfunction copyVec(a,b) {\n a[0] = b[0]\n a[1] = b[1]\n a[2] = b[2]\n return a\n}\n\nfunction Lines(gl, vertBuffer, vao, shader, tickCount, tickOffset, gridCount, gridOffset) {\n this.gl = gl\n this.vertBuffer = vertBuffer\n this.vao = vao\n this.shader = shader\n this.tickCount = tickCount\n this.tickOffset = tickOffset\n this.gridCount = gridCount\n this.gridOffset = gridOffset\n}\n\nvar proto = Lines.prototype\n\nproto.bind = function(model, view, projection) {\n this.shader.bind()\n this.shader.uniforms.model = model\n this.shader.uniforms.view = view\n this.shader.uniforms.projection = projection\n\n SHAPE[0] = this.gl.drawingBufferWidth\n SHAPE[1] = this.gl.drawingBufferHeight\n\n this.shader.uniforms.screenShape = SHAPE\n this.vao.bind()\n}\n\nproto.unbind = function() {\n this.vao.unbind()\n}\n\nproto.drawAxisLine = function(j, bounds, offset, color, lineWidth) {\n var minorAxis = zeroVec(MINOR_AXIS)\n this.shader.uniforms.majorAxis = MINOR_AXIS\n\n minorAxis[j] = bounds[1][j] - bounds[0][j]\n this.shader.uniforms.minorAxis = minorAxis\n\n var noffset = copyVec(OFFSET_VEC, offset)\n noffset[j] += bounds[0][j]\n this.shader.uniforms.offset = noffset\n\n this.shader.uniforms.lineWidth = lineWidth\n\n this.shader.uniforms.color = color\n\n var screenAxis = zeroVec(SCREEN_AXIS)\n screenAxis[(j+2)%3] = 1\n this.shader.uniforms.screenAxis = screenAxis\n this.vao.draw(this.gl.TRIANGLES, 6)\n\n var screenAxis = zeroVec(SCREEN_AXIS)\n screenAxis[(j+1)%3] = 1\n this.shader.uniforms.screenAxis = screenAxis\n this.vao.draw(this.gl.TRIANGLES, 6)\n}\n\nproto.drawAxisTicks = function(j, offset, minorAxis, color, lineWidth) {\n if(!this.tickCount[j]) {\n return\n }\n\n var majorAxis = zeroVec(MAJOR_AXIS)\n majorAxis[j] = 1\n this.shader.uniforms.majorAxis = majorAxis\n this.shader.uniforms.offset = offset\n this.shader.uniforms.minorAxis = minorAxis\n this.shader.uniforms.color = color\n this.shader.uniforms.lineWidth = lineWidth\n\n var screenAxis = zeroVec(SCREEN_AXIS)\n screenAxis[j] = 1\n this.shader.uniforms.screenAxis = screenAxis\n this.vao.draw(this.gl.TRIANGLES, this.tickCount[j], this.tickOffset[j])\n}\n\n\nproto.drawGrid = function(i, j, bounds, offset, color, lineWidth) {\n if(!this.gridCount[i]) {\n return\n }\n\n var minorAxis = zeroVec(MINOR_AXIS)\n minorAxis[j] = bounds[1][j] - bounds[0][j]\n this.shader.uniforms.minorAxis = minorAxis\n\n var noffset = copyVec(OFFSET_VEC, offset)\n noffset[j] += bounds[0][j]\n this.shader.uniforms.offset = noffset\n\n var majorAxis = zeroVec(MAJOR_AXIS)\n majorAxis[i] = 1\n this.shader.uniforms.majorAxis = majorAxis\n\n var screenAxis = zeroVec(SCREEN_AXIS)\n screenAxis[i] = 1\n this.shader.uniforms.screenAxis = screenAxis\n this.shader.uniforms.lineWidth = lineWidth\n\n this.shader.uniforms.color = color\n this.vao.draw(this.gl.TRIANGLES, this.gridCount[i], this.gridOffset[i])\n}\n\nproto.drawZero = function(j, i, bounds, offset, color, lineWidth) {\n var minorAxis = zeroVec(MINOR_AXIS)\n this.shader.uniforms.majorAxis = minorAxis\n\n minorAxis[j] = bounds[1][j] - bounds[0][j]\n this.shader.uniforms.minorAxis = minorAxis\n\n var noffset = copyVec(OFFSET_VEC, offset)\n noffset[j] += bounds[0][j]\n this.shader.uniforms.offset = noffset\n\n var screenAxis = zeroVec(SCREEN_AXIS)\n screenAxis[i] = 1\n this.shader.uniforms.screenAxis = screenAxis\n this.shader.uniforms.lineWidth = lineWidth\n\n this.shader.uniforms.color = color\n this.vao.draw(this.gl.TRIANGLES, 6)\n}\n\nproto.dispose = function() {\n this.vao.dispose()\n this.vertBuffer.dispose()\n this.shader.dispose()\n}\n\nfunction createLines(gl, bounds, ticks) {\n var vertices = []\n var tickOffset = [0,0,0]\n var tickCount = [0,0,0]\n\n //Create grid lines for each axis/direction\n var gridOffset = [0,0,0]\n var gridCount = [0,0,0]\n\n //Add zero line\n vertices.push(\n 0,0,1, 0,1,1, 0,0,-1,\n 0,0,-1, 0,1,1, 0,1,-1)\n\n for(var i=0; i<3; ++i) {\n //Axis tick marks\n var start = ((vertices.length / 3)|0)\n for(var j=0; j\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT license.\n */\n\n\n\nvar repeat = __webpack_require__(\"4633\");\n\nmodule.exports = function padLeft(str, num, ch) {\n ch = typeof ch !== 'undefined' ? (ch + '') : ' ';\n return repeat(ch, num) + str;\n};\n\n/***/ }),\n\n/***/ \"48f0\":\n/***/ (function(module, exports) {\n\nmodule.exports = invert\n\n/**\n * Inverts a mat2\n *\n * @alias mat2.invert\n * @param {mat2} out the receiving matrix\n * @param {mat2} a the source matrix\n * @returns {mat2} out\n */\nfunction invert(out, a) {\n var a0 = a[0]\n var a1 = a[1]\n var a2 = a[2]\n var a3 = a[3]\n var det = a0 * a3 - a2 * a1\n\n if (!det) return null\n det = 1.0 / det\n\n out[0] = a3 * det\n out[1] = -a1 * det\n out[2] = -a2 * det\n out[3] = a0 * det\n\n return out\n}\n\n\n/***/ }),\n\n/***/ \"492e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createSlabDecomposition\n\nvar bounds = __webpack_require__(\"2e46\")\nvar createRBTree = __webpack_require__(\"c8ac\")\nvar orient = __webpack_require__(\"92ba\")\nvar orderSegments = __webpack_require__(\"9cfb\")\n\nfunction SlabDecomposition(slabs, coordinates, horizontal) {\n this.slabs = slabs\n this.coordinates = coordinates\n this.horizontal = horizontal\n}\n\nvar proto = SlabDecomposition.prototype\n\nfunction compareHorizontal(e, y) {\n return e.y - y\n}\n\nfunction searchBucket(root, p) {\n var lastNode = null\n while(root) {\n var seg = root.key\n var l, r\n if(seg[0][0] < seg[1][0]) {\n l = seg[0]\n r = seg[1]\n } else {\n l = seg[1]\n r = seg[0]\n }\n var o = orient(l, r, p)\n if(o < 0) {\n root = root.left\n } else if(o > 0) {\n if(p[0] !== seg[1][0]) {\n lastNode = root\n root = root.right\n } else {\n var val = searchBucket(root.right, p)\n if(val) {\n return val\n }\n root = root.left\n }\n } else {\n if(p[0] !== seg[1][0]) {\n return root\n } else {\n var val = searchBucket(root.right, p)\n if(val) {\n return val\n }\n root = root.left\n }\n }\n }\n return lastNode\n}\n\nproto.castUp = function(p) {\n var bucket = bounds.le(this.coordinates, p[0])\n if(bucket < 0) {\n return -1\n }\n var root = this.slabs[bucket]\n var hitNode = searchBucket(this.slabs[bucket], p)\n var lastHit = -1\n if(hitNode) {\n lastHit = hitNode.value\n }\n //Edge case: need to handle horizontal segments (sucks)\n if(this.coordinates[bucket] === p[0]) {\n var lastSegment = null\n if(hitNode) {\n lastSegment = hitNode.key\n }\n if(bucket > 0) {\n var otherHitNode = searchBucket(this.slabs[bucket-1], p)\n if(otherHitNode) {\n if(lastSegment) {\n if(orderSegments(otherHitNode.key, lastSegment) > 0) {\n lastSegment = otherHitNode.key\n lastHit = otherHitNode.value\n }\n } else {\n lastHit = otherHitNode.value\n lastSegment = otherHitNode.key\n }\n }\n }\n var horiz = this.horizontal[bucket]\n if(horiz.length > 0) {\n var hbucket = bounds.ge(horiz, p[1], compareHorizontal)\n if(hbucket < horiz.length) {\n var e = horiz[hbucket]\n if(p[1] === e.y) {\n if(e.closed) {\n return e.index\n } else {\n while(hbucket < horiz.length-1 && horiz[hbucket+1].y === p[1]) {\n hbucket = hbucket+1\n e = horiz[hbucket]\n if(e.closed) {\n return e.index\n }\n }\n if(e.y === p[1] && !e.start) {\n hbucket = hbucket+1\n if(hbucket >= horiz.length) {\n return lastHit\n }\n e = horiz[hbucket]\n }\n }\n }\n //Check if e is above/below last segment\n if(e.start) {\n if(lastSegment) {\n var o = orient(lastSegment[0], lastSegment[1], [p[0], e.y])\n if(lastSegment[0][0] > lastSegment[1][0]) {\n o = -o\n }\n if(o > 0) {\n lastHit = e.index\n }\n } else {\n lastHit = e.index\n }\n } else if(e.y !== p[1]) {\n lastHit = e.index\n }\n }\n }\n }\n return lastHit\n}\n\nfunction IntervalSegment(y, index, start, closed) {\n this.y = y\n this.index = index\n this.start = start\n this.closed = closed\n}\n\nfunction Event(x, segment, create, index) {\n this.x = x\n this.segment = segment\n this.create = create\n this.index = index\n}\n\n\nfunction createSlabDecomposition(segments) {\n var numSegments = segments.length\n var numEvents = 2 * numSegments\n var events = new Array(numEvents)\n for(var i=0; i bounds[2]) bounds[2] = points[j + 0]\r\n if (points[j + 1] > bounds[3]) bounds[3] = points[j + 1]\r\n }\r\n }\r\n\r\n return bounds\r\n}\r\n\n\n/***/ }),\n\n/***/ \"4aa8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar layoutAttributes = __webpack_require__(\"3e8e\");\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce('treemapcolorway', layoutOut.colorway);\n coerce('extendtreemapcolors');\n};\n\n\n/***/ }),\n\n/***/ \"4ae2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = preprocessPolygon\n\nvar orient = __webpack_require__(\"92ba\")[3]\nvar makeSlabs = __webpack_require__(\"492e\")\nvar makeIntervalTree = __webpack_require__(\"4393\")\nvar bsearch = __webpack_require__(\"b707\")\n\nfunction visitInterval() {\n return true\n}\n\nfunction intervalSearch(table) {\n return function(x, y) {\n var tree = table[x]\n if(tree) {\n return !!tree.queryPoint(y, visitInterval)\n }\n return false\n }\n}\n\nfunction buildVerticalIndex(segments) {\n var table = {}\n for(var i=0; i 0 && coordinates[bucket] === p[0]) {\n root = slabs[bucket-1]\n } else {\n return 1\n }\n }\n var lastOrientation = 1\n while(root) {\n var s = root.key\n var o = orient(p, s[0], s[1])\n if(s[0][0] < s[1][0]) {\n if(o < 0) {\n root = root.left\n } else if(o > 0) {\n lastOrientation = -1\n root = root.right\n } else {\n return 0\n }\n } else {\n if(o > 0) {\n root = root.left\n } else if(o < 0) {\n lastOrientation = 1\n root = root.right\n } else {\n return 0\n }\n }\n }\n return lastOrientation\n }\n}\n\nfunction classifyEmpty(p) {\n return 1\n}\n\nfunction createClassifyVertical(testVertical) {\n return function classify(p) {\n if(testVertical(p[0], p[1])) {\n return 0\n }\n return 1\n }\n}\n\nfunction createClassifyPointDegen(testVertical, testNormal) {\n return function classify(p) {\n if(testVertical(p[0], p[1])) {\n return 0\n }\n return testNormal(p)\n }\n}\n\nfunction preprocessPolygon(loops) {\n //Compute number of loops\n var numLoops = loops.length\n\n //Unpack segments\n var segments = []\n var vsegments = []\n var ptr = 0\n for(var i=0; i 1 ? {\n type: \"MultiPolygon\",\n coordinates: polygons\n } : {\n type: \"Polygon\",\n coordinates: polygons[0]\n };\n }\n };\n var d3_geo_projectGeometryType = {\n Point: d3_geo_projectPoint,\n MultiPoint: d3_geo_projectPoint,\n LineString: d3_geo_projectLine,\n MultiLineString: d3_geo_projectLine,\n Polygon: d3_geo_projectPolygon,\n MultiPolygon: d3_geo_projectPolygon,\n Sphere: d3_geo_projectPolygon\n };\n function d3_geo_projectNoop() {}\n function d3_geo_projectClockwise(ring) {\n if ((n = ring.length) < 4) return false;\n var i = 0, n, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n return area <= 0;\n }\n function d3_geo_projectContains(ring, point) {\n var x = point[0], y = point[1], contains = false;\n for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];\n if (yi > y ^ yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi) contains = !contains;\n }\n return contains;\n }\n var ε = 1e-6, ε2 = ε * ε, π = Math.PI, halfπ = π / 2, sqrtπ = Math.sqrt(π), radians = π / 180, degrees = 180 / π;\n function sinci(x) {\n return x ? x / Math.sin(x) : 1;\n }\n function sgn(x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n }\n function asin(x) {\n return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x);\n }\n function acos(x) {\n return x > 1 ? 0 : x < -1 ? π : Math.acos(x);\n }\n function asqrt(x) {\n return x > 0 ? Math.sqrt(x) : 0;\n }\n var projection = d3.geo.projection, projectionMutator = d3.geo.projectionMutator;\n d3.geo.interrupt = function(project) {\n var lobes = [ [ [ [ -π, 0 ], [ 0, halfπ ], [ π, 0 ] ] ], [ [ [ -π, 0 ], [ 0, -halfπ ], [ π, 0 ] ] ] ];\n var bounds;\n function forward(λ, φ) {\n var sign = φ < 0 ? -1 : +1, hemilobes = lobes[+(φ < 0)];\n for (var i = 0, n = hemilobes.length - 1; i < n && λ > hemilobes[i][2][0]; ++i) ;\n var coordinates = project(λ - hemilobes[i][1][0], φ);\n coordinates[0] += project(hemilobes[i][1][0], sign * φ > sign * hemilobes[i][0][1] ? hemilobes[i][0][1] : φ)[0];\n return coordinates;\n }\n function reset() {\n bounds = lobes.map(function(hemilobes) {\n return hemilobes.map(function(lobe) {\n var x0 = project(lobe[0][0], lobe[0][1])[0], x1 = project(lobe[2][0], lobe[2][1])[0], y0 = project(lobe[1][0], lobe[0][1])[1], y1 = project(lobe[1][0], lobe[1][1])[1], t;\n if (y0 > y1) t = y0, y0 = y1, y1 = t;\n return [ [ x0, y0 ], [ x1, y1 ] ];\n });\n });\n }\n if (project.invert) forward.invert = function(x, y) {\n var hemibounds = bounds[+(y < 0)], hemilobes = lobes[+(y < 0)];\n for (var i = 0, n = hemibounds.length; i < n; ++i) {\n var b = hemibounds[i];\n if (b[0][0] <= x && x < b[1][0] && b[0][1] <= y && y < b[1][1]) {\n var coordinates = project.invert(x - project(hemilobes[i][1][0], 0)[0], y);\n coordinates[0] += hemilobes[i][1][0];\n return pointEqual(forward(coordinates[0], coordinates[1]), [ x, y ]) ? coordinates : null;\n }\n }\n };\n var projection = d3.geo.projection(forward), stream_ = projection.stream;\n projection.stream = function(stream) {\n var rotate = projection.rotate(), rotateStream = stream_(stream), sphereStream = (projection.rotate([ 0, 0 ]),\n stream_(stream));\n projection.rotate(rotate);\n rotateStream.sphere = function() {\n d3.geo.stream(sphere(), sphereStream);\n };\n return rotateStream;\n };\n projection.lobes = function(_) {\n if (!arguments.length) return lobes.map(function(lobes) {\n return lobes.map(function(lobe) {\n return [ [ lobe[0][0] * 180 / π, lobe[0][1] * 180 / π ], [ lobe[1][0] * 180 / π, lobe[1][1] * 180 / π ], [ lobe[2][0] * 180 / π, lobe[2][1] * 180 / π ] ];\n });\n });\n lobes = _.map(function(lobes) {\n return lobes.map(function(lobe) {\n return [ [ lobe[0][0] * π / 180, lobe[0][1] * π / 180 ], [ lobe[1][0] * π / 180, lobe[1][1] * π / 180 ], [ lobe[2][0] * π / 180, lobe[2][1] * π / 180 ] ];\n });\n });\n reset();\n return projection;\n };\n function sphere() {\n var ε = 1e-6, coordinates = [];\n for (var i = 0, n = lobes[0].length; i < n; ++i) {\n var lobe = lobes[0][i], λ0 = lobe[0][0] * 180 / π, φ0 = lobe[0][1] * 180 / π, φ1 = lobe[1][1] * 180 / π, λ2 = lobe[2][0] * 180 / π, φ2 = lobe[2][1] * 180 / π;\n coordinates.push(resample([ [ λ0 + ε, φ0 + ε ], [ λ0 + ε, φ1 - ε ], [ λ2 - ε, φ1 - ε ], [ λ2 - ε, φ2 + ε ] ], 30));\n }\n for (var i = lobes[1].length - 1; i >= 0; --i) {\n var lobe = lobes[1][i], λ0 = lobe[0][0] * 180 / π, φ0 = lobe[0][1] * 180 / π, φ1 = lobe[1][1] * 180 / π, λ2 = lobe[2][0] * 180 / π, φ2 = lobe[2][1] * 180 / π;\n coordinates.push(resample([ [ λ2 - ε, φ2 - ε ], [ λ2 - ε, φ1 + ε ], [ λ0 + ε, φ1 + ε ], [ λ0 + ε, φ0 - ε ] ], 30));\n }\n return {\n type: \"Polygon\",\n coordinates: [ d3.merge(coordinates) ]\n };\n }\n function resample(coordinates, m) {\n var i = -1, n = coordinates.length, p0 = coordinates[0], p1, dx, dy, resampled = [];\n while (++i < n) {\n p1 = coordinates[i];\n dx = (p1[0] - p0[0]) / m;\n dy = (p1[1] - p0[1]) / m;\n for (var j = 0; j < m; ++j) resampled.push([ p0[0] + j * dx, p0[1] + j * dy ]);\n p0 = p1;\n }\n resampled.push(p1);\n return resampled;\n }\n function pointEqual(a, b) {\n return Math.abs(a[0] - b[0]) < ε && Math.abs(a[1] - b[1]) < ε;\n }\n return projection;\n };\n function eckert4(λ, φ) {\n var k = (2 + halfπ) * Math.sin(φ);\n φ /= 2;\n for (var i = 0, δ = Infinity; i < 10 && Math.abs(δ) > ε; i++) {\n var cosφ = Math.cos(φ);\n φ -= δ = (φ + Math.sin(φ) * (cosφ + 2) - k) / (2 * cosφ * (1 + cosφ));\n }\n return [ 2 / Math.sqrt(π * (4 + π)) * λ * (1 + Math.cos(φ)), 2 * Math.sqrt(π / (4 + π)) * Math.sin(φ) ];\n }\n eckert4.invert = function(x, y) {\n var A = .5 * y * Math.sqrt((4 + π) / π), k = asin(A), c = Math.cos(k);\n return [ x / (2 / Math.sqrt(π * (4 + π)) * (1 + c)), asin((k + A * (c + 2)) / (2 + halfπ)) ];\n };\n (d3.geo.eckert4 = function() {\n return projection(eckert4);\n }).raw = eckert4;\n var hammerAzimuthalEqualArea = d3.geo.azimuthalEqualArea.raw;\n function hammer(A, B) {\n if (arguments.length < 2) B = A;\n if (B === 1) return hammerAzimuthalEqualArea;\n if (B === Infinity) return hammerQuarticAuthalic;\n function forward(λ, φ) {\n var coordinates = hammerAzimuthalEqualArea(λ / B, φ);\n coordinates[0] *= A;\n return coordinates;\n }\n forward.invert = function(x, y) {\n var coordinates = hammerAzimuthalEqualArea.invert(x / A, y);\n coordinates[0] *= B;\n return coordinates;\n };\n return forward;\n }\n function hammerProjection() {\n var B = 2, m = projectionMutator(hammer), p = m(B);\n p.coefficient = function(_) {\n if (!arguments.length) return B;\n return m(B = +_);\n };\n return p;\n }\n function hammerQuarticAuthalic(λ, φ) {\n return [ λ * Math.cos(φ) / Math.cos(φ /= 2), 2 * Math.sin(φ) ];\n }\n hammerQuarticAuthalic.invert = function(x, y) {\n var φ = 2 * asin(y / 2);\n return [ x * Math.cos(φ / 2) / Math.cos(φ), φ ];\n };\n (d3.geo.hammer = hammerProjection).raw = hammer;\n function kavrayskiy7(λ, φ) {\n return [ 3 * λ / (2 * π) * Math.sqrt(π * π / 3 - φ * φ), φ ];\n }\n kavrayskiy7.invert = function(x, y) {\n return [ 2 / 3 * π * x / Math.sqrt(π * π / 3 - y * y), y ];\n };\n (d3.geo.kavrayskiy7 = function() {\n return projection(kavrayskiy7);\n }).raw = kavrayskiy7;\n function miller(λ, φ) {\n return [ λ, 1.25 * Math.log(Math.tan(π / 4 + .4 * φ)) ];\n }\n miller.invert = function(x, y) {\n return [ x, 2.5 * Math.atan(Math.exp(.8 * y)) - .625 * π ];\n };\n (d3.geo.miller = function() {\n return projection(miller);\n }).raw = miller;\n function mollweideBromleyθ(Cp) {\n return function(θ) {\n var Cpsinθ = Cp * Math.sin(θ), i = 30, δ;\n do θ -= δ = (θ + Math.sin(θ) - Cpsinθ) / (1 + Math.cos(θ)); while (Math.abs(δ) > ε && --i > 0);\n return θ / 2;\n };\n }\n function mollweideBromley(Cx, Cy, Cp) {\n var θ = mollweideBromleyθ(Cp);\n function forward(λ, φ) {\n return [ Cx * λ * Math.cos(φ = θ(φ)), Cy * Math.sin(φ) ];\n }\n forward.invert = function(x, y) {\n var θ = asin(y / Cy);\n return [ x / (Cx * Math.cos(θ)), asin((2 * θ + Math.sin(2 * θ)) / Cp) ];\n };\n return forward;\n }\n var mollweideθ = mollweideBromleyθ(π), mollweide = mollweideBromley(Math.SQRT2 / halfπ, Math.SQRT2, π);\n (d3.geo.mollweide = function() {\n return projection(mollweide);\n }).raw = mollweide;\n function naturalEarth(λ, φ) {\n var φ2 = φ * φ, φ4 = φ2 * φ2;\n return [ λ * (.8707 - .131979 * φ2 + φ4 * (-.013791 + φ4 * (.003971 * φ2 - .001529 * φ4))), φ * (1.007226 + φ2 * (.015085 + φ4 * (-.044475 + .028874 * φ2 - .005916 * φ4))) ];\n }\n naturalEarth.invert = function(x, y) {\n var φ = y, i = 25, δ;\n do {\n var φ2 = φ * φ, φ4 = φ2 * φ2;\n φ -= δ = (φ * (1.007226 + φ2 * (.015085 + φ4 * (-.044475 + .028874 * φ2 - .005916 * φ4))) - y) / (1.007226 + φ2 * (.015085 * 3 + φ4 * (-.044475 * 7 + .028874 * 9 * φ2 - .005916 * 11 * φ4)));\n } while (Math.abs(δ) > ε && --i > 0);\n return [ x / (.8707 + (φ2 = φ * φ) * (-.131979 + φ2 * (-.013791 + φ2 * φ2 * φ2 * (.003971 - .001529 * φ2)))), φ ];\n };\n (d3.geo.naturalEarth = function() {\n return projection(naturalEarth);\n }).raw = naturalEarth;\n var robinsonConstants = [ [ .9986, -.062 ], [ 1, 0 ], [ .9986, .062 ], [ .9954, .124 ], [ .99, .186 ], [ .9822, .248 ], [ .973, .31 ], [ .96, .372 ], [ .9427, .434 ], [ .9216, .4958 ], [ .8962, .5571 ], [ .8679, .6176 ], [ .835, .6769 ], [ .7986, .7346 ], [ .7597, .7903 ], [ .7186, .8435 ], [ .6732, .8936 ], [ .6213, .9394 ], [ .5722, .9761 ], [ .5322, 1 ] ];\n robinsonConstants.forEach(function(d) {\n d[1] *= 1.0144;\n });\n function robinson(λ, φ) {\n var i = Math.min(18, Math.abs(φ) * 36 / π), i0 = Math.floor(i), di = i - i0, ax = (k = robinsonConstants[i0])[0], ay = k[1], bx = (k = robinsonConstants[++i0])[0], by = k[1], cx = (k = robinsonConstants[Math.min(19, ++i0)])[0], cy = k[1], k;\n return [ λ * (bx + di * (cx - ax) / 2 + di * di * (cx - 2 * bx + ax) / 2), (φ > 0 ? halfπ : -halfπ) * (by + di * (cy - ay) / 2 + di * di * (cy - 2 * by + ay) / 2) ];\n }\n robinson.invert = function(x, y) {\n var yy = y / halfπ, φ = yy * 90, i = Math.min(18, Math.abs(φ / 5)), i0 = Math.max(0, Math.floor(i));\n do {\n var ay = robinsonConstants[i0][1], by = robinsonConstants[i0 + 1][1], cy = robinsonConstants[Math.min(19, i0 + 2)][1], u = cy - ay, v = cy - 2 * by + ay, t = 2 * (Math.abs(yy) - by) / u, c = v / u, di = t * (1 - c * t * (1 - 2 * c * t));\n if (di >= 0 || i0 === 1) {\n φ = (y >= 0 ? 5 : -5) * (di + i);\n var j = 50, δ;\n do {\n i = Math.min(18, Math.abs(φ) / 5);\n i0 = Math.floor(i);\n di = i - i0;\n ay = robinsonConstants[i0][1];\n by = robinsonConstants[i0 + 1][1];\n cy = robinsonConstants[Math.min(19, i0 + 2)][1];\n φ -= (δ = (y >= 0 ? halfπ : -halfπ) * (by + di * (cy - ay) / 2 + di * di * (cy - 2 * by + ay) / 2) - y) * degrees;\n } while (Math.abs(δ) > ε2 && --j > 0);\n break;\n }\n } while (--i0 >= 0);\n var ax = robinsonConstants[i0][0], bx = robinsonConstants[i0 + 1][0], cx = robinsonConstants[Math.min(19, i0 + 2)][0];\n return [ x / (bx + di * (cx - ax) / 2 + di * di * (cx - 2 * bx + ax) / 2), φ * radians ];\n };\n (d3.geo.robinson = function() {\n return projection(robinson);\n }).raw = robinson;\n function sinusoidal(λ, φ) {\n return [ λ * Math.cos(φ), φ ];\n }\n sinusoidal.invert = function(x, y) {\n return [ x / Math.cos(y), y ];\n };\n (d3.geo.sinusoidal = function() {\n return projection(sinusoidal);\n }).raw = sinusoidal;\n function aitoff(λ, φ) {\n var cosφ = Math.cos(φ), sinciα = sinci(acos(cosφ * Math.cos(λ /= 2)));\n return [ 2 * cosφ * Math.sin(λ) * sinciα, Math.sin(φ) * sinciα ];\n }\n aitoff.invert = function(x, y) {\n if (x * x + 4 * y * y > π * π + ε) return;\n var λ = x, φ = y, i = 25;\n do {\n var sinλ = Math.sin(λ), sinλ_2 = Math.sin(λ / 2), cosλ_2 = Math.cos(λ / 2), sinφ = Math.sin(φ), cosφ = Math.cos(φ), sin_2φ = Math.sin(2 * φ), sin2φ = sinφ * sinφ, cos2φ = cosφ * cosφ, sin2λ_2 = sinλ_2 * sinλ_2, C = 1 - cos2φ * cosλ_2 * cosλ_2, E = C ? acos(cosφ * cosλ_2) * Math.sqrt(F = 1 / C) : F = 0, F, fx = 2 * E * cosφ * sinλ_2 - x, fy = E * sinφ - y, δxδλ = F * (cos2φ * sin2λ_2 + E * cosφ * cosλ_2 * sin2φ), δxδφ = F * (.5 * sinλ * sin_2φ - E * 2 * sinφ * sinλ_2), δyδλ = F * .25 * (sin_2φ * sinλ_2 - E * sinφ * cos2φ * sinλ), δyδφ = F * (sin2φ * cosλ_2 + E * sin2λ_2 * cosφ), denominator = δxδφ * δyδλ - δyδφ * δxδλ;\n if (!denominator) break;\n var δλ = (fy * δxδφ - fx * δyδφ) / denominator, δφ = (fx * δyδλ - fy * δxδλ) / denominator;\n λ -= δλ, φ -= δφ;\n } while ((Math.abs(δλ) > ε || Math.abs(δφ) > ε) && --i > 0);\n return [ λ, φ ];\n };\n (d3.geo.aitoff = function() {\n return projection(aitoff);\n }).raw = aitoff;\n function winkel3(λ, φ) {\n var coordinates = aitoff(λ, φ);\n return [ (coordinates[0] + λ / halfπ) / 2, (coordinates[1] + φ) / 2 ];\n }\n winkel3.invert = function(x, y) {\n var λ = x, φ = y, i = 25;\n do {\n var cosφ = Math.cos(φ), sinφ = Math.sin(φ), sin_2φ = Math.sin(2 * φ), sin2φ = sinφ * sinφ, cos2φ = cosφ * cosφ, sinλ = Math.sin(λ), cosλ_2 = Math.cos(λ / 2), sinλ_2 = Math.sin(λ / 2), sin2λ_2 = sinλ_2 * sinλ_2, C = 1 - cos2φ * cosλ_2 * cosλ_2, E = C ? acos(cosφ * cosλ_2) * Math.sqrt(F = 1 / C) : F = 0, F, fx = .5 * (2 * E * cosφ * sinλ_2 + λ / halfπ) - x, fy = .5 * (E * sinφ + φ) - y, δxδλ = .5 * F * (cos2φ * sin2λ_2 + E * cosφ * cosλ_2 * sin2φ) + .5 / halfπ, δxδφ = F * (sinλ * sin_2φ / 4 - E * sinφ * sinλ_2), δyδλ = .125 * F * (sin_2φ * sinλ_2 - E * sinφ * cos2φ * sinλ), δyδφ = .5 * F * (sin2φ * cosλ_2 + E * sin2λ_2 * cosφ) + .5, denominator = δxδφ * δyδλ - δyδφ * δxδλ, δλ = (fy * δxδφ - fx * δyδφ) / denominator, δφ = (fx * δyδλ - fy * δxδλ) / denominator;\n λ -= δλ, φ -= δφ;\n } while ((Math.abs(δλ) > ε || Math.abs(δφ) > ε) && --i > 0);\n return [ λ, φ ];\n };\n (d3.geo.winkel3 = function() {\n return projection(winkel3);\n }).raw = winkel3;\n}\n\nmodule.exports = addProjectionsToD3;\n\n\n/***/ }),\n\n/***/ \"4bba\":\n/***/ (function(module, exports) {\n\nmodule.exports = inverse;\n\n/**\n * Returns the inverse of the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to invert\n * @returns {vec3} out\n */\nfunction inverse(out, a) {\n out[0] = 1.0 / a[0]\n out[1] = 1.0 / a[1]\n out[2] = 1.0 / a[2]\n return out\n}\n\n/***/ }),\n\n/***/ \"4c18\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar uniq = __webpack_require__(\"175e\")\n\n// This function generates very simple loops analogous to how you typically traverse arrays (the outermost loop corresponds to the slowest changing index, the innermost loop to the fastest changing index)\n// TODO: If two arrays have the same strides (and offsets) there is potential for decreasing the number of \"pointers\" and related variables. The drawback is that the type signature would become more specific and that there would thus be less potential for caching, but it might still be worth it, especially when dealing with large numbers of arguments.\nfunction innerFill(order, proc, body) {\n var dimension = order.length\n , nargs = proc.arrayArgs.length\n , has_index = proc.indexArgs.length>0\n , code = []\n , vars = []\n , idx=0, pidx=0, i, j\n for(i=0; i 0) {\n code.push(\"var \" + vars.join(\",\"))\n } \n //Scan loop\n for(i=dimension-1; i>=0; --i) { // Start at largest stride and work your way inwards\n idx = order[i]\n code.push([\"for(i\",i,\"=0;i\",i,\" 0) {\n code.push([\"index[\",pidx,\"]-=s\",pidx].join(\"\"))\n }\n code.push([\"++index[\",idx,\"]\"].join(\"\"))\n }\n code.push(\"}\")\n }\n return code.join(\"\\n\")\n}\n\n// Generate \"outer\" loops that loop over blocks of data, applying \"inner\" loops to the blocks by manipulating the local variables in such a way that the inner loop only \"sees\" the current block.\n// TODO: If this is used, then the previous declaration (done by generateCwiseOp) of s* is essentially unnecessary.\n// I believe the s* are not used elsewhere (in particular, I don't think they're used in the pre/post parts and \"shape\" is defined independently), so it would be possible to make defining the s* dependent on what loop method is being used.\nfunction outerFill(matched, order, proc, body) {\n var dimension = order.length\n , nargs = proc.arrayArgs.length\n , blockSize = proc.blockSize\n , has_index = proc.indexArgs.length > 0\n , code = []\n for(var i=0; i0;){\"].join(\"\")) // Iterate back to front\n code.push([\"if(j\",i,\"<\",blockSize,\"){\"].join(\"\")) // Either decrease j by blockSize (s = blockSize), or set it to zero (after setting s = j).\n code.push([\"s\",order[i],\"=j\",i].join(\"\"))\n code.push([\"j\",i,\"=0\"].join(\"\"))\n code.push([\"}else{s\",order[i],\"=\",blockSize].join(\"\"))\n code.push([\"j\",i,\"-=\",blockSize,\"}\"].join(\"\"))\n if(has_index) {\n code.push([\"index[\",order[i],\"]=j\",i].join(\"\"))\n }\n }\n for(var i=0; i 0) {\n allEqual = allEqual && summary[i] === summary[i-1]\n }\n }\n if(allEqual) {\n return summary[0]\n }\n return summary.join(\"\")\n}\n\n//Generates a cwise operator\nfunction generateCWiseOp(proc, typesig) {\n\n //Compute dimension\n // Arrays get put first in typesig, and there are two entries per array (dtype and order), so this gets the number of dimensions in the first array arg.\n var dimension = (typesig[1].length - Math.abs(proc.arrayBlockIndices[0]))|0\n var orders = new Array(proc.arrayArgs.length)\n var dtypes = new Array(proc.arrayArgs.length)\n for(var i=0; i 0) {\n vars.push(\"shape=SS.slice(0)\") // Makes the shape over which we iterate available to the user defined functions (so you can use width/height for example)\n }\n if(proc.indexArgs.length > 0) {\n // Prepare an array to keep track of the (logical) indices, initialized to dimension zeroes.\n var zeros = new Array(dimension)\n for(var i=0; i 0) {\n code.push(\"var \" + vars.join(\",\"))\n }\n for(var i=0; i 3) {\n code.push(processBlock(proc.pre, proc, dtypes))\n }\n\n //Process body\n var body = processBlock(proc.body, proc, dtypes)\n var matched = countMatches(loopOrders)\n if(matched < dimension) {\n code.push(outerFill(matched, loopOrders[0], proc, body)) // TODO: Rather than passing loopOrders[0], it might be interesting to look at passing an order that represents the majority of the arguments for example.\n } else {\n code.push(innerFill(loopOrders[0], proc, body))\n }\n\n //Inline epilog\n if(proc.post.body.length > 3) {\n code.push(processBlock(proc.post, proc, dtypes))\n }\n \n if(proc.debug) {\n console.log(\"-----Generated cwise routine for \", typesig, \":\\n\" + code.join(\"\\n\") + \"\\n----------\")\n }\n \n var loopName = [(proc.funcName||\"unnamed\"), \"_cwise_loop_\", orders[0].join(\"s\"),\"m\",matched,typeSummary(dtypes)].join(\"\")\n var f = new Function([\"function \",loopName,\"(\", arglist.join(\",\"),\"){\", code.join(\"\\n\"),\"} return \", loopName].join(\"\"))\n return f()\n}\nmodule.exports = generateCWiseOp\n\n\n/***/ }),\n\n/***/ \"4c66\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar axisIDs = __webpack_require__(\"3c1c\");\nvar svgTextUtils = __webpack_require__(\"0379\");\nvar constants = __webpack_require__(\"22f9\");\nvar LINE_SPACING = __webpack_require__(\"63dc\").LINE_SPACING;\nvar name = constants.name;\n\nfunction isVisible(ax) {\n var rangeSlider = ax && ax[name];\n return rangeSlider && rangeSlider.visible;\n}\nexports.isVisible = isVisible;\n\nexports.makeData = function(fullLayout) {\n var axes = axisIDs.list({ _fullLayout: fullLayout }, 'x', true);\n var margin = fullLayout.margin;\n var rangeSliderData = [];\n\n if(!fullLayout._has('gl2d')) {\n for(var i = 0; i < axes.length; i++) {\n var ax = axes[i];\n\n if(isVisible(ax)) {\n rangeSliderData.push(ax);\n\n var opts = ax[name];\n opts._id = name + ax._id;\n opts._height = (fullLayout.height - margin.b - margin.t) * opts.thickness;\n opts._offsetShift = Math.floor(opts.borderwidth / 2);\n }\n }\n }\n\n fullLayout._rangeSliderData = rangeSliderData;\n};\n\nexports.autoMarginOpts = function(gd, ax) {\n var fullLayout = gd._fullLayout;\n var opts = ax[name];\n var axLetter = ax._id.charAt(0);\n\n var bottomDepth = 0;\n var titleHeight = 0;\n if(ax.side === 'bottom') {\n bottomDepth = ax._depth;\n if(ax.title.text !== fullLayout._dfltTitle[axLetter]) {\n // as in rangeslider/draw.js\n titleHeight = 1.5 * ax.title.font.size + 10 + opts._offsetShift;\n // multi-line extra bump\n var extraLines = (ax.title.text.match(svgTextUtils.BR_TAG_ALL) || []).length;\n titleHeight += extraLines * ax.title.font.size * LINE_SPACING;\n }\n }\n\n return {\n x: 0,\n y: ax._counterDomainMin,\n l: 0,\n r: 0,\n t: 0,\n b: opts._height + bottomDepth + Math.max(fullLayout.margin.b, titleHeight),\n pad: constants.extraPad + opts._offsetShift * 2\n };\n};\n\n\n/***/ }),\n\n/***/ \"4c69\":\n/***/ (function(module, exports) {\n\nmodule.exports = function parseUnit(str, out) {\n if (!out)\n out = [ 0, '' ]\n\n str = String(str)\n var num = parseFloat(str, 10)\n out[0] = num\n out[1] = str.match(/[\\d.\\-\\+]*\\s*(.*)/)[1] || ''\n return out\n}\n\n/***/ }),\n\n/***/ \"4cd2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar listAxes = __webpack_require__(\"3c1c\").list;\nvar getAutoRange = __webpack_require__(\"ce56\").getAutoRange;\nvar constants = __webpack_require__(\"22f9\");\n\nmodule.exports = function calcAutorange(gd) {\n var axes = listAxes(gd, 'x', true);\n\n // Compute new slider range using axis autorange if necessary.\n //\n // Copy back range to input range slider container to skip\n // this step in subsequent draw calls.\n\n for(var i = 0; i < axes.length; i++) {\n var ax = axes[i];\n var opts = ax[constants.name];\n\n if(opts && opts.visible && opts.autorange) {\n opts._input.autorange = true;\n opts._input.range = opts.range = getAutoRange(gd, ax);\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"4cd5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nmodule.exports = {\n RELATIVE_CULL_TOLERANCE: 1e-6\n};\n\n\n/***/ }),\n\n/***/ \"4ce7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n barmode: {\n valType: 'enumerated',\n values: ['stack', 'overlay'],\n dflt: 'stack',\n \n editType: 'calc',\n \n },\n bargap: {\n valType: 'number',\n dflt: 0.1,\n min: 0,\n max: 1,\n \n editType: 'calc',\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"4d64\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toAbsoluteIndex = __webpack_require__(\"23cb\");\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ \"4de4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar $filter = __webpack_require__(\"b727\").filter;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(\"1dde\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"4e7e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar BN = __webpack_require__(\"399f\")\n\nmodule.exports = isBN\n\n//Test if x is a bignumber\n//FIXME: obviously this is the wrong way to do it\nfunction isBN(x) {\n return x && typeof x === 'object' && Boolean(x.words)\n}\n\n\n/***/ }),\n\n/***/ \"4e89\":\n/***/ (function(module, exports) {\n\nmodule.exports = length\n\n/**\n * Calculates the length of a vec4\n *\n * @param {vec4} a vector to calculate length of\n * @returns {Number} length of a\n */\nfunction length (a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3]\n return Math.sqrt(x * x + y * y + z * z + w * w)\n}\n\n\n/***/ }),\n\n/***/ \"4ebd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar EventEmitter = __webpack_require__(\"7e25\").EventEmitter;\n\nvar helpers = __webpack_require__(\"4248\");\n\nfunction svgToImg(opts) {\n var ev = opts.emitter || new EventEmitter();\n\n var promise = new Promise(function(resolve, reject) {\n var Image = window.Image;\n var svg = opts.svg;\n var format = opts.format || 'png';\n\n // IE only support svg\n if(Lib.isIE() && format !== 'svg') {\n var ieSvgError = new Error(helpers.MSG_IE_BAD_FORMAT);\n reject(ieSvgError);\n // eventually remove the ev\n // in favor of promises\n if(!opts.promise) {\n return ev.emit('error', ieSvgError);\n } else {\n return promise;\n }\n }\n\n var canvas = opts.canvas;\n var scale = opts.scale || 1;\n var w0 = opts.width || 300;\n var h0 = opts.height || 150;\n var w1 = scale * w0;\n var h1 = scale * h0;\n\n var ctx = canvas.getContext('2d');\n var img = new Image();\n var svgBlob, url;\n\n if(format === 'svg' || Lib.isIE9orBelow() || Lib.isSafari()) {\n url = helpers.encodeSVG(svg);\n } else {\n svgBlob = helpers.createBlob(svg, 'svg');\n url = helpers.createObjectURL(svgBlob);\n }\n\n canvas.width = w1;\n canvas.height = h1;\n\n img.onload = function() {\n var imgData;\n\n svgBlob = null;\n helpers.revokeObjectURL(url);\n\n // don't need to draw to canvas if svg\n // save some time and also avoid failure on IE\n if(format !== 'svg') {\n ctx.drawImage(img, 0, 0, w1, h1);\n }\n\n switch(format) {\n case 'jpeg':\n imgData = canvas.toDataURL('image/jpeg');\n break;\n case 'png':\n imgData = canvas.toDataURL('image/png');\n break;\n case 'webp':\n imgData = canvas.toDataURL('image/webp');\n break;\n case 'svg':\n imgData = url;\n break;\n default:\n var errorMsg = 'Image format is not jpeg, png, svg or webp.';\n reject(new Error(errorMsg));\n // eventually remove the ev\n // in favor of promises\n if(!opts.promise) {\n return ev.emit('error', errorMsg);\n }\n }\n resolve(imgData);\n // eventually remove the ev\n // in favor of promises\n if(!opts.promise) {\n ev.emit('success', imgData);\n }\n };\n\n img.onerror = function(err) {\n svgBlob = null;\n helpers.revokeObjectURL(url);\n\n reject(err);\n // eventually remove the ev\n // in favor of promises\n if(!opts.promise) {\n return ev.emit('error', err);\n }\n };\n\n img.src = url;\n });\n\n // temporary for backward compatibility\n // move to only Promise in 2.0.0\n // and eliminate the EventEmitter\n if(opts.promise) {\n return promise;\n }\n\n return ev;\n}\n\nmodule.exports = svgToImg;\n\n\n/***/ }),\n\n/***/ \"4eee\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isArrayOrTypedArray = __webpack_require__(\"fc26\").isArrayOrTypedArray;\n\n/*\n * Construct a 2D array of cheater values given a, b, and a slope.\n * If\n */\nmodule.exports = function(a, b, cheaterslope) {\n var i, j, ascal, bscal, aval, bval;\n var data = [];\n\n var na = isArrayOrTypedArray(a) ? a.length : a;\n var nb = isArrayOrTypedArray(b) ? b.length : b;\n var adata = isArrayOrTypedArray(a) ? a : null;\n var bdata = isArrayOrTypedArray(b) ? b : null;\n\n // If we're using data, scale it so that for data that's just barely\n // not evenly spaced, the switch to value-based indexing is continuous.\n // This means evenly spaced data should look the same whether value\n // or index cheatertype.\n if(adata) {\n ascal = (adata.length - 1) / (adata[adata.length - 1] - adata[0]) / (na - 1);\n }\n\n if(bdata) {\n bscal = (bdata.length - 1) / (bdata[bdata.length - 1] - bdata[0]) / (nb - 1);\n }\n\n var xval;\n var xmin = Infinity;\n var xmax = -Infinity;\n for(j = 0; j < nb; j++) {\n data[j] = [];\n bval = bdata ? (bdata[j] - bdata[0]) * bscal : j / (nb - 1);\n for(i = 0; i < na; i++) {\n aval = adata ? (adata[i] - adata[0]) * ascal : i / (na - 1);\n xval = aval - bval * cheaterslope;\n xmin = Math.min(xval, xmin);\n xmax = Math.max(xval, xmax);\n data[j][i] = xval;\n }\n }\n\n // Normalize cheater values to the 0-1 range. This comes into play when you have\n // multiple cheater plots. After careful consideration, it seems better if cheater\n // values are normalized to a consistent range. Otherwise one cheater affects the\n // layout of other cheaters on the same axis.\n var slope = 1.0 / (xmax - xmin);\n var offset = -xmin * slope;\n for(j = 0; j < nb; j++) {\n for(i = 0; i < na; i++) {\n data[j][i] = slope * data[j][i] + offset;\n }\n }\n\n return data;\n};\n\n\n/***/ }),\n\n/***/ \"4efe\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar mouseOffset = __webpack_require__(\"8b98\");\nvar hasHover = __webpack_require__(\"2c8d\");\nvar supportsPassive = __webpack_require__(\"1477\");\n\nvar removeElement = __webpack_require__(\"fc26\").removeElement;\nvar constants = __webpack_require__(\"d301\");\n\nvar dragElement = module.exports = {};\n\ndragElement.align = __webpack_require__(\"296e\");\ndragElement.getCursor = __webpack_require__(\"13a4\");\n\nvar unhover = __webpack_require__(\"855b\");\ndragElement.unhover = unhover.wrapped;\ndragElement.unhoverRaw = unhover.raw;\n\n/**\n * Abstracts click & drag interactions\n *\n * During the interaction, a \"coverSlip\" element - a transparent\n * div covering the whole page - is created, which has two key effects:\n * - Lets you drag beyond the boundaries of the plot itself without\n * dropping (but if you drag all the way out of the browser window the\n * interaction will end)\n * - Freezes the cursor: whatever mouse cursor the drag element had when the\n * interaction started gets copied to the coverSlip for use until mouseup\n *\n * If the user executes a drag bigger than MINDRAG, callbacks will fire as:\n * prepFn, moveFn (1 or more times), doneFn\n * If the user does not drag enough, prepFn and clickFn will fire.\n *\n * Note: If you cancel contextmenu, clickFn will fire even with a right click\n * (unlike native events) so you'll get a `plotly_click` event. Cancel context eg:\n * gd.addEventListener('contextmenu', function(e) { e.preventDefault(); });\n * TODO: we should probably turn this into a `config` parameter, so we can fix it\n * such that if you *don't* cancel contextmenu, we can prevent partial drags, which\n * put you in a weird state.\n *\n * If the user clicks multiple times quickly, clickFn will fire each time\n * but numClicks will increase to help you recognize doubleclicks.\n *\n * @param {object} options with keys:\n * element (required) the DOM element to drag\n * prepFn (optional) function(event, startX, startY)\n * executed on mousedown\n * startX and startY are the clientX and clientY pixel position\n * of the mousedown event\n * moveFn (optional) function(dx, dy)\n * executed on move, ONLY after we've exceeded MINDRAG\n * (we keep executing moveFn if you move back to where you started)\n * dx and dy are the net pixel offset of the drag,\n * dragged is true/false, has the mouse moved enough to\n * constitute a drag\n * doneFn (optional) function(e)\n * executed on mouseup, ONLY if we exceeded MINDRAG (so you can be\n * sure that moveFn has been called at least once)\n * numClicks is how many clicks we've registered within\n * a doubleclick time\n * e is the original mouseup event\n * clickFn (optional) function(numClicks, e)\n * executed on mouseup if we have NOT exceeded MINDRAG (ie moveFn\n * has not been called at all)\n * numClicks is how many clicks we've registered within\n * a doubleclick time\n * e is the original mousedown event\n * clampFn (optional, function(dx, dy) return [dx2, dy2])\n * Provide custom clamping function for small displacements.\n * By default, clamping is done using `minDrag` to x and y displacements\n * independently.\n */\ndragElement.init = function init(options) {\n var gd = options.gd;\n var numClicks = 1;\n var doubleClickDelay = gd._context.doubleClickDelay;\n var element = options.element;\n\n var startX,\n startY,\n newMouseDownTime,\n cursor,\n dragCover,\n initialEvent,\n initialTarget,\n rightClick;\n\n if(!gd._mouseDownTime) gd._mouseDownTime = 0;\n\n element.style.pointerEvents = 'all';\n\n element.onmousedown = onStart;\n\n if(!supportsPassive) {\n element.ontouchstart = onStart;\n } else {\n if(element._ontouchstart) {\n element.removeEventListener('touchstart', element._ontouchstart);\n }\n element._ontouchstart = onStart;\n element.addEventListener('touchstart', onStart, {passive: false});\n }\n\n function _clampFn(dx, dy, minDrag) {\n if(Math.abs(dx) < minDrag) dx = 0;\n if(Math.abs(dy) < minDrag) dy = 0;\n return [dx, dy];\n }\n\n var clampFn = options.clampFn || _clampFn;\n\n function onStart(e) {\n // make dragging and dragged into properties of gd\n // so that others can look at and modify them\n gd._dragged = false;\n gd._dragging = true;\n var offset = pointerOffset(e);\n startX = offset[0];\n startY = offset[1];\n initialTarget = e.target;\n initialEvent = e;\n rightClick = e.buttons === 2 || e.ctrlKey;\n\n // fix Fx.hover for touch events\n if(typeof e.clientX === 'undefined' && typeof e.clientY === 'undefined') {\n e.clientX = startX;\n e.clientY = startY;\n }\n\n newMouseDownTime = (new Date()).getTime();\n if(newMouseDownTime - gd._mouseDownTime < doubleClickDelay) {\n // in a click train\n numClicks += 1;\n } else {\n // new click train\n numClicks = 1;\n gd._mouseDownTime = newMouseDownTime;\n }\n\n if(options.prepFn) options.prepFn(e, startX, startY);\n\n if(hasHover && !rightClick) {\n dragCover = coverSlip();\n dragCover.style.cursor = window.getComputedStyle(element).cursor;\n } else if(!hasHover) {\n // document acts as a dragcover for mobile, bc we can't create dragcover dynamically\n dragCover = document;\n cursor = window.getComputedStyle(document.documentElement).cursor;\n document.documentElement.style.cursor = window.getComputedStyle(element).cursor;\n }\n\n document.addEventListener('mouseup', onDone);\n document.addEventListener('touchend', onDone);\n\n if(options.dragmode !== false) {\n e.preventDefault();\n document.addEventListener('mousemove', onMove);\n document.addEventListener('touchmove', onMove, {passive: false});\n }\n\n return;\n }\n\n function onMove(e) {\n e.preventDefault();\n\n var offset = pointerOffset(e);\n var minDrag = options.minDrag || constants.MINDRAG;\n var dxdy = clampFn(offset[0] - startX, offset[1] - startY, minDrag);\n var dx = dxdy[0];\n var dy = dxdy[1];\n\n if(dx || dy) {\n gd._dragged = true;\n dragElement.unhover(gd);\n }\n\n if(gd._dragged && options.moveFn && !rightClick) {\n gd._dragdata = {\n element: element,\n dx: dx,\n dy: dy\n };\n options.moveFn(dx, dy);\n }\n\n return;\n }\n\n function onDone(e) {\n delete gd._dragdata;\n\n if(options.dragmode !== false) {\n e.preventDefault();\n document.removeEventListener('mousemove', onMove);\n document.removeEventListener('touchmove', onMove);\n }\n\n document.removeEventListener('mouseup', onDone);\n document.removeEventListener('touchend', onDone);\n\n if(hasHover) {\n removeElement(dragCover);\n } else if(cursor) {\n dragCover.documentElement.style.cursor = cursor;\n cursor = null;\n }\n\n if(!gd._dragging) {\n gd._dragged = false;\n return;\n }\n gd._dragging = false;\n\n // don't count as a dblClick unless the mouseUp is also within\n // the dblclick delay\n if((new Date()).getTime() - gd._mouseDownTime > doubleClickDelay) {\n numClicks = Math.max(numClicks - 1, 1);\n }\n\n if(gd._dragged) {\n if(options.doneFn) options.doneFn();\n } else {\n if(options.clickFn) options.clickFn(numClicks, initialEvent);\n\n // If we haven't dragged, this should be a click. But because of the\n // coverSlip changing the element, the natural system might not generate one,\n // so we need to make our own. But right clicks don't normally generate\n // click events, only contextmenu events, which happen on mousedown.\n if(!rightClick) {\n var e2;\n\n try {\n e2 = new MouseEvent('click', e);\n } catch(err) {\n var offset = pointerOffset(e);\n e2 = document.createEvent('MouseEvents');\n e2.initMouseEvent('click',\n e.bubbles, e.cancelable,\n e.view, e.detail,\n e.screenX, e.screenY,\n offset[0], offset[1],\n e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,\n e.button, e.relatedTarget);\n }\n\n initialTarget.dispatchEvent(e2);\n }\n }\n\n gd._dragging = false;\n gd._dragged = false;\n return;\n }\n};\n\nfunction coverSlip() {\n var cover = document.createElement('div');\n\n cover.className = 'dragcover';\n var cStyle = cover.style;\n cStyle.position = 'fixed';\n cStyle.left = 0;\n cStyle.right = 0;\n cStyle.top = 0;\n cStyle.bottom = 0;\n cStyle.zIndex = 999999999;\n cStyle.background = 'none';\n\n document.body.appendChild(cover);\n\n return cover;\n}\n\ndragElement.coverSlip = coverSlip;\n\nfunction pointerOffset(e) {\n return mouseOffset(\n e.changedTouches ? e.changedTouches[0] : e,\n document.body\n );\n}\n\n\n/***/ }),\n\n/***/ \"4f25\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar glslify = __webpack_require__(\"e98f\")\n\nmodule.exports = {\n fragment: glslify([\"precision lowp float;\\n#define GLSLIFY 1\\nvarying vec4 fragColor;\\nvoid main() {\\n gl_FragColor = vec4(fragColor.rgb * fragColor.a, fragColor.a);\\n}\\n\"]),\n vertex: glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec2 position;\\nattribute vec4 color;\\nattribute vec2 weight;\\n\\nuniform vec2 shape;\\nuniform mat3 viewTransform;\\n\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n vec3 vPosition = viewTransform * vec3( position + (weight-.5)/(shape-1.) , 1.0);\\n fragColor = color;\\n gl_Position = vec4(vPosition.xy, 0, vPosition.z);\\n}\\n\"]),\n pickFragment: glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nvarying vec4 fragId;\\nvarying vec2 vWeight;\\n\\nuniform vec2 shape;\\nuniform vec4 pickOffset;\\n\\nvoid main() {\\n vec2 d = step(.5, vWeight);\\n vec4 id = fragId + pickOffset;\\n id.x += d.x + d.y*shape.x;\\n\\n id.y += floor(id.x / 256.0);\\n id.x -= floor(id.x / 256.0) * 256.0;\\n\\n id.z += floor(id.y / 256.0);\\n id.y -= floor(id.y / 256.0) * 256.0;\\n\\n id.w += floor(id.z / 256.0);\\n id.z -= floor(id.z / 256.0) * 256.0;\\n\\n gl_FragColor = id/255.;\\n}\\n\"]),\n pickVertex: glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec2 position;\\nattribute vec4 pickId;\\nattribute vec2 weight;\\n\\nuniform vec2 shape;\\nuniform mat3 viewTransform;\\n\\nvarying vec4 fragId;\\nvarying vec2 vWeight;\\n\\nvoid main() {\\n vWeight = weight;\\n\\n fragId = pickId;\\n\\n vec3 vPosition = viewTransform * vec3( position + (weight-.5)/(shape-1.) , 1.0);\\n gl_Position = vec4(vPosition.xy, 0, vPosition.z);\\n}\\n\"])\n}\n\n\n/***/ }),\n\n/***/ \"4f4d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n\n\n/***/ }),\n\n/***/ \"4f65\":\n/***/ (function(module, exports) {\n\nmodule.exports = rotateY;\n\n/**\n * Rotate a 3D vector around the y-axis\n * @param {vec3} out The receiving vec3\n * @param {vec3} a The vec3 point to rotate\n * @param {vec3} b The origin of the rotation\n * @param {Number} c The angle of rotation\n * @returns {vec3} out\n */\nfunction rotateY(out, a, b, c){\n var bx = b[0]\n var bz = b[2]\n\n // translate point to the origin\n var px = a[0] - bx\n var pz = a[2] - bz\n \n var sc = Math.sin(c)\n var cc = Math.cos(c)\n \n // perform rotation and translate to correct position\n out[0] = bx + pz * sc + px * cc\n out[1] = a[1]\n out[2] = bz + pz * cc - px * sc\n \n return out\n}\n\n\n/***/ }),\n\n/***/ \"4f94\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n attributes: __webpack_require__(\"1ebf\"),\n layoutAttributes: __webpack_require__(\"60dc\"),\n supplyDefaults: __webpack_require__(\"abc9\").supplyDefaults,\n crossTraceDefaults: __webpack_require__(\"abc9\").crossTraceDefaults,\n supplyLayoutDefaults: __webpack_require__(\"06ad\").supplyLayoutDefaults,\n calc: __webpack_require__(\"6a77\"),\n crossTraceCalc: __webpack_require__(\"f4b3\").crossTraceCalc,\n plot: __webpack_require__(\"d34f\").plot,\n style: __webpack_require__(\"b4c7\").style,\n styleOnSelect: __webpack_require__(\"b4c7\").styleOnSelect,\n hoverPoints: __webpack_require__(\"fa10\").hoverPoints,\n eventData: __webpack_require__(\"5885\"),\n selectPoints: __webpack_require__(\"71b1\"),\n\n moduleType: 'trace',\n name: 'box',\n basePlotModule: __webpack_require__(\"91cd\"),\n categories: ['cartesian', 'svg', 'symbols', 'oriented', 'box-violin', 'showLegend', 'boxLayout', 'zoomScale'],\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"4fc7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"af50\");\n\n\n/***/ }),\n\n/***/ \"4ffa\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = extractPlanes\n\nfunction extractPlanes(M, zNear, zFar) {\n var z = zNear || 0.0\n var zf = zFar || 1.0\n return [\n [ M[12] + M[0], M[13] + M[1], M[14] + M[2], M[15] + M[3] ],\n [ M[12] - M[0], M[13] - M[1], M[14] - M[2], M[15] - M[3] ],\n [ M[12] + M[4], M[13] + M[5], M[14] + M[6], M[15] + M[7] ],\n [ M[12] - M[4], M[13] - M[5], M[14] - M[6], M[15] - M[7] ],\n [ z*M[12] + M[8], z*M[13] + M[9], z*M[14] + M[10], z*M[15] + M[11] ],\n [ zf*M[12] - M[8], zf*M[13] - M[9], zf*M[14] - M[10], zf*M[15] - M[11] ]\n ]\n}\n\n/***/ }),\n\n/***/ \"5008\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar layoutAttributes = __webpack_require__(\"d798\");\nvar handleArrayContainerDefaults = __webpack_require__(\"e5ac\");\n\nmodule.exports = function handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options, config) {\n if(!config || config.pass === 1) {\n handlePrefixSuffix(containerIn, containerOut, coerce, axType, options);\n }\n\n if(!config || config.pass === 2) {\n handleOtherDefaults(containerIn, containerOut, coerce, axType, options);\n }\n};\n\nfunction handlePrefixSuffix(containerIn, containerOut, coerce, axType, options) {\n var showAttrDflt = getShowAttrDflt(containerIn);\n\n var tickPrefix = coerce('tickprefix');\n if(tickPrefix) coerce('showtickprefix', showAttrDflt);\n\n var tickSuffix = coerce('ticksuffix', options.tickSuffixDflt);\n if(tickSuffix) coerce('showticksuffix', showAttrDflt);\n}\n\nfunction handleOtherDefaults(containerIn, containerOut, coerce, axType, options) {\n var showAttrDflt = getShowAttrDflt(containerIn);\n\n var tickPrefix = coerce('tickprefix');\n if(tickPrefix) coerce('showtickprefix', showAttrDflt);\n\n var tickSuffix = coerce('ticksuffix', options.tickSuffixDflt);\n if(tickSuffix) coerce('showticksuffix', showAttrDflt);\n\n var showTickLabels = coerce('showticklabels');\n if(showTickLabels) {\n var font = options.font || {};\n var contColor = containerOut.color;\n // as with titlefont.color, inherit axis.color only if one was\n // explicitly provided\n var dfltFontColor = (contColor && contColor !== layoutAttributes.color.dflt) ?\n contColor : font.color;\n Lib.coerceFont(coerce, 'tickfont', {\n family: font.family,\n size: font.size,\n color: dfltFontColor\n });\n coerce('tickangle');\n\n if(axType !== 'category') {\n var tickFormat = coerce('tickformat');\n var tickformatStops = containerIn.tickformatstops;\n if(Array.isArray(tickformatStops) && tickformatStops.length) {\n handleArrayContainerDefaults(containerIn, containerOut, {\n name: 'tickformatstops',\n inclusionAttr: 'enabled',\n handleItemDefaults: tickformatstopDefaults\n });\n }\n if(!tickFormat && axType !== 'date') {\n coerce('showexponent', showAttrDflt);\n coerce('exponentformat');\n coerce('separatethousands');\n }\n }\n }\n}\n\n/*\n * Attributes 'showexponent', 'showtickprefix' and 'showticksuffix'\n * share values.\n *\n * If only 1 attribute is set,\n * the remaining attributes inherit that value.\n *\n * If 2 attributes are set to the same value,\n * the remaining attribute inherits that value.\n *\n * If 2 attributes are set to different values,\n * the remaining is set to its dflt value.\n *\n */\nfunction getShowAttrDflt(containerIn) {\n var showAttrsAll = ['showexponent', 'showtickprefix', 'showticksuffix'];\n var showAttrs = showAttrsAll.filter(function(a) {\n return containerIn[a] !== undefined;\n });\n var sameVal = function(a) {\n return containerIn[a] === containerIn[showAttrs[0]];\n };\n\n if(showAttrs.every(sameVal) || showAttrs.length === 1) {\n return containerIn[showAttrs[0]];\n }\n}\n\nfunction tickformatstopDefaults(valueIn, valueOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(valueIn, valueOut, layoutAttributes.tickformatstops, attr, dflt);\n }\n\n var enabled = coerce('enabled');\n if(enabled) {\n coerce('dtickrange');\n coerce('value');\n }\n}\n\n\n/***/ }),\n\n/***/ \"5047\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Color = __webpack_require__(\"d115\");\nvar hasColorscale = __webpack_require__(\"215c\").hasColorscale;\nvar colorscaleDefaults = __webpack_require__(\"4183\");\n\nvar subTypes = __webpack_require__(\"de81\");\n\n/*\n * opts: object of flags to control features not all marker users support\n * noLine: caller does not support marker lines\n * gradient: caller supports gradients\n * noSelect: caller does not support selected/unselected attribute containers\n */\nmodule.exports = function markerDefaults(traceIn, traceOut, defaultColor, layout, coerce, opts) {\n var isBubble = subTypes.isBubble(traceIn);\n var lineColor = (traceIn.line || {}).color;\n var defaultMLC;\n\n opts = opts || {};\n\n // marker.color inherit from line.color (even if line.color is an array)\n if(lineColor) defaultColor = lineColor;\n\n coerce('marker.symbol');\n coerce('marker.opacity', isBubble ? 0.7 : 1);\n coerce('marker.size');\n\n coerce('marker.color', defaultColor);\n if(hasColorscale(traceIn, 'marker')) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});\n }\n\n if(!opts.noSelect) {\n coerce('selected.marker.color');\n coerce('unselected.marker.color');\n coerce('selected.marker.size');\n coerce('unselected.marker.size');\n }\n\n if(!opts.noLine) {\n // if there's a line with a different color than the marker, use\n // that line color as the default marker line color\n // (except when it's an array)\n // mostly this is for transparent markers to behave nicely\n if(lineColor && !Array.isArray(lineColor) && (traceOut.marker.color !== lineColor)) {\n defaultMLC = lineColor;\n } else if(isBubble) defaultMLC = Color.background;\n else defaultMLC = Color.defaultLine;\n\n coerce('marker.line.color', defaultMLC);\n if(hasColorscale(traceIn, 'marker.line')) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.line.', cLetter: 'c'});\n }\n\n coerce('marker.line.width', isBubble ? 1 : 0);\n }\n\n if(isBubble) {\n coerce('marker.sizeref');\n coerce('marker.sizemin');\n coerce('marker.sizemode');\n }\n\n if(opts.gradient) {\n var gradientType = coerce('marker.gradient.type');\n if(gradientType !== 'none') {\n coerce('marker.gradient.color');\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"5053\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"8be6\")\n\n\n/***/ }),\n\n/***/ \"50c4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"50da\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar constants = __webpack_require__(\"b326\");\n\nexports.isOpenSymbol = function(symbol) {\n return (typeof symbol === 'string') ?\n constants.OPEN_RE.test(symbol) :\n symbol % 200 > 100;\n};\n\nexports.isDotSymbol = function(symbol) {\n return (typeof symbol === 'string') ?\n constants.DOT_RE.test(symbol) :\n symbol > 200;\n};\n\n\n/***/ }),\n\n/***/ \"510f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar Color = __webpack_require__(\"d115\");\n\nvar heatmapHoverPoints = __webpack_require__(\"d6fb\");\n\nmodule.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLayer) {\n var hoverData = heatmapHoverPoints(pointData, xval, yval, hovermode, hoverLayer, true);\n\n if(hoverData) {\n hoverData.forEach(function(hoverPt) {\n var trace = hoverPt.trace;\n if(trace.contours.type === 'constraint') {\n if(trace.fillcolor && Color.opacity(trace.fillcolor)) {\n hoverPt.color = Color.addOpacity(trace.fillcolor, 1);\n } else if(trace.contours.showlines && Color.opacity(trace.line.color)) {\n hoverPt.color = Color.addOpacity(trace.line.color, 1);\n }\n }\n });\n }\n\n return hoverData;\n};\n\n\n/***/ }),\n\n/***/ \"5135\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"5243\":\n/***/ (function(module, exports) {\n\nmodule.exports = normalize\n\n/**\n * Normalize a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a vector to normalize\n * @returns {vec4} out\n */\nfunction normalize (out, a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3]\n var len = x * x + y * y + z * z + w * w\n if (len > 0) {\n len = 1 / Math.sqrt(len)\n out[0] = x * len\n out[1] = y * len\n out[2] = z * len\n out[3] = w * len\n }\n return out\n}\n\n\n/***/ }),\n\n/***/ \"52d8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n attributes: __webpack_require__(\"a08c\"),\n supplyDefaults: __webpack_require__(\"07dd\").supplyDefaults,\n calc: __webpack_require__(\"edf7\"),\n colorbar: {\n min: 'cmin',\n max: 'cmax'\n },\n plot: __webpack_require__(\"caf7\").createIsosurfaceTrace,\n\n moduleType: 'trace',\n name: 'isosurface',\n basePlotModule: __webpack_require__(\"134c\"),\n categories: ['gl3d', 'showLegend'],\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"52e8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar Registry = __webpack_require__(\"371e\");\n\nfunction style(gd) {\n var s = d3.select(gd).selectAll('g.trace.scatter');\n\n s.style('opacity', function(d) {\n return d[0].trace.opacity;\n });\n\n s.selectAll('g.points').each(function(d) {\n var sel = d3.select(this);\n var trace = d.trace || d[0].trace;\n stylePoints(sel, trace, gd);\n });\n\n s.selectAll('g.text').each(function(d) {\n var sel = d3.select(this);\n var trace = d.trace || d[0].trace;\n styleText(sel, trace, gd);\n });\n\n s.selectAll('g.trace path.js-line')\n .call(Drawing.lineGroupStyle);\n\n s.selectAll('g.trace path.js-fill')\n .call(Drawing.fillGroupStyle);\n\n Registry.getComponentMethod('errorbars', 'style')(s);\n}\n\nfunction stylePoints(sel, trace, gd) {\n Drawing.pointStyle(sel.selectAll('path.point'), trace, gd);\n}\n\nfunction styleText(sel, trace, gd) {\n Drawing.textPointStyle(sel.selectAll('text'), trace, gd);\n}\n\nfunction styleOnSelect(gd, cd, sel) {\n var trace = cd[0].trace;\n\n if(trace.selectedpoints) {\n Drawing.selectedPointStyle(sel.selectAll('path.point'), trace);\n Drawing.selectedTextStyle(sel.selectAll('text'), trace);\n } else {\n stylePoints(sel, trace, gd);\n styleText(sel, trace, gd);\n }\n}\n\nmodule.exports = {\n style: style,\n stylePoints: stylePoints,\n styleText: styleText,\n styleOnSelect: styleOnSelect\n};\n\n\n/***/ }),\n\n/***/ \"5319\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(\"d784\");\nvar anObject = __webpack_require__(\"825a\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toInteger = __webpack_require__(\"a691\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\nvar advanceStringIndex = __webpack_require__(\"8aa5\");\nvar regExpExec = __webpack_require__(\"14c3\");\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"531f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar glslify = __webpack_require__(\"e98f\")\nvar createShader = __webpack_require__(\"28dd\")\n\nvar vertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, offset;\\nattribute vec4 color;\\nuniform mat4 model, view, projection;\\nuniform float capSize;\\nvarying vec4 fragColor;\\nvarying vec3 fragPosition;\\n\\nvoid main() {\\n vec4 worldPosition = model * vec4(position, 1.0);\\n worldPosition = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0);\\n gl_Position = projection * view * worldPosition;\\n fragColor = color;\\n fragPosition = position;\\n}\"])\nvar fragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float opacity;\\nvarying vec3 fragPosition;\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n if (\\n outOfRange(clipBounds[0], clipBounds[1], fragPosition) ||\\n fragColor.a * opacity == 0.\\n ) discard;\\n\\n gl_FragColor = opacity * fragColor;\\n}\"])\n\nmodule.exports = function(gl) {\n return createShader(gl, vertSrc, fragSrc, null, [\n {name: 'position', type: 'vec3'},\n {name: 'color', type: 'vec4'},\n {name: 'offset', type: 'vec3'}\n ])\n}\n\n\n/***/ }),\n\n/***/ \"5348\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\nvar isosurfaceAttrs = __webpack_require__(\"a08c\");\nvar baseAttrs = __webpack_require__(\"a876\");\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\nvar attrs = module.exports = overrideAll(extendFlat({\n x: isosurfaceAttrs.x,\n y: isosurfaceAttrs.y,\n z: isosurfaceAttrs.z,\n value: isosurfaceAttrs.value,\n isomin: isosurfaceAttrs.isomin,\n isomax: isosurfaceAttrs.isomax,\n surface: isosurfaceAttrs.surface,\n spaceframe: {\n show: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n fill: {\n valType: 'number',\n \n min: 0,\n max: 1,\n dflt: 1,\n \n }\n },\n\n slices: isosurfaceAttrs.slices,\n caps: isosurfaceAttrs.caps,\n text: isosurfaceAttrs.text,\n hovertext: isosurfaceAttrs.hovertext,\n hovertemplate: isosurfaceAttrs.hovertemplate\n},\n\ncolorScaleAttrs('', {\n colorAttr: '`value`',\n showScaleDflt: true,\n editTypeOverride: 'calc'\n}), {\n\n colorbar: isosurfaceAttrs.colorbar,\n opacity: isosurfaceAttrs.opacity,\n opacityscale: {\n valType: 'any',\n \n editType: 'calc',\n \n },\n\n lightposition: isosurfaceAttrs.lightposition,\n lighting: isosurfaceAttrs.lighting,\n flatshading: isosurfaceAttrs.flatshading,\n contour: isosurfaceAttrs.contour,\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo),\n showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})\n}), 'calc', 'nested');\n\nattrs.x.editType = attrs.y.editType = attrs.z.editType = attrs.value.editType = 'calc+clearAxisTypes';\nattrs.transforms = undefined;\n\n\n/***/ }),\n\n/***/ \"535c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar baseAttrs = __webpack_require__(\"a876\");\nvar scatterMapboxAttrs = __webpack_require__(\"74b4\");\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\n/*\n * - https://docs.mapbox.com/help/tutorials/make-a-heatmap-with-mapbox-gl-js/\n * - https://docs.mapbox.com/mapbox-gl-js/example/heatmap-layer/\n * - https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers-heatmap\n * - https://blog.mapbox.com/introducing-heatmaps-in-mapbox-gl-js-71355ada9e6c\n *\n * Gotchas:\n * - https://github.com/mapbox/mapbox-gl-js/issues/6463\n * - https://github.com/mapbox/mapbox-gl-js/issues/6112\n */\n\n/*\n *\n * In mathematical terms, Mapbox GL heatmaps are a bivariate (2D) kernel density\n * estimation with a Gaussian kernel. It means that each data point has an area\n * of “influence” around it (called a kernel) where the numerical value of\n * influence (which we call density) decreases as you go further from the point.\n * If we sum density values of all points in every pixel of the screen, we get a\n * combined density value which we then map to a heatmap color.\n *\n */\n\nmodule.exports = extendFlat({\n lon: scatterMapboxAttrs.lon,\n lat: scatterMapboxAttrs.lat,\n\n z: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n\n radius: {\n valType: 'number',\n \n editType: 'plot',\n arrayOk: true,\n min: 1,\n dflt: 30,\n \n },\n\n below: {\n valType: 'string',\n \n editType: 'plot',\n \n },\n\n text: scatterMapboxAttrs.text,\n hovertext: scatterMapboxAttrs.hovertext,\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: ['lon', 'lat', 'z', 'text', 'name']\n }),\n hovertemplate: hovertemplateAttrs(),\n showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})\n},\n colorScaleAttrs('', {\n cLetter: 'z',\n editTypeOverride: 'calc'\n })\n);\n\n\n/***/ }),\n\n/***/ \"5374\":\n/***/ (function(module, exports) {\n\nmodule.exports = min\n\n/**\n * Returns the minimum of two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {vec4} out\n */\nfunction min (out, a, b) {\n out[0] = Math.min(a[0], b[0])\n out[1] = Math.min(a[1], b[1])\n out[2] = Math.min(a[2], b[2])\n out[3] = Math.min(a[3], b[3])\n return out\n}\n\n\n/***/ }),\n\n/***/ \"538c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar geoUtils = __webpack_require__(\"0919\");\nvar getTopojsonFeatures = __webpack_require__(\"c400\").getTopojsonFeatures;\nvar findExtremes = __webpack_require__(\"ce56\").findExtremes;\n\nvar style = __webpack_require__(\"e7ab\").style;\n\nfunction plot(gd, geo, calcData) {\n var choroplethLayer = geo.layers.backplot.select('.choroplethlayer');\n\n Lib.makeTraceGroups(choroplethLayer, calcData, 'trace choropleth').each(function(calcTrace) {\n var sel = d3.select(this);\n\n var paths = sel.selectAll('path.choroplethlocation')\n .data(Lib.identity);\n\n paths.enter().append('path')\n .classed('choroplethlocation', true);\n\n paths.exit().remove();\n\n // call style here within topojson request callback\n style(gd, calcTrace);\n });\n}\n\nfunction calcGeoJSON(calcTrace, fullLayout) {\n var trace = calcTrace[0].trace;\n var geoLayout = fullLayout[trace.geo];\n var geo = geoLayout._subplot;\n var locationmode = trace.locationmode;\n var len = trace._length;\n\n var features = locationmode === 'geojson-id' ?\n geoUtils.extractTraceFeature(calcTrace) :\n getTopojsonFeatures(trace, geo.topojson);\n\n var lonArray = [];\n var latArray = [];\n\n for(var i = 0; i < len; i++) {\n var calcPt = calcTrace[i];\n var feature = locationmode === 'geojson-id' ?\n calcPt.fOut :\n geoUtils.locationToFeature(locationmode, calcPt.loc, features);\n\n if(feature) {\n calcPt.geojson = feature;\n calcPt.ct = feature.properties.ct;\n calcPt._polygons = geoUtils.feature2polygons(feature);\n\n var bboxFeature = geoUtils.computeBbox(feature);\n lonArray.push(bboxFeature[0], bboxFeature[2]);\n latArray.push(bboxFeature[1], bboxFeature[3]);\n } else {\n calcPt.geojson = null;\n }\n }\n\n if(geoLayout.fitbounds === 'geojson' && locationmode === 'geojson-id') {\n var bboxGeojson = geoUtils.computeBbox(geoUtils.getTraceGeojson(trace));\n lonArray = [bboxGeojson[0], bboxGeojson[2]];\n latArray = [bboxGeojson[1], bboxGeojson[3]];\n }\n\n var opts = {padded: true};\n trace._extremes.lon = findExtremes(geoLayout.lonaxis._ax, lonArray, opts);\n trace._extremes.lat = findExtremes(geoLayout.lataxis._ax, latArray, opts);\n}\n\nmodule.exports = {\n calcGeoJSON: calcGeoJSON,\n plot: plot\n};\n\n\n/***/ }),\n\n/***/ \"53a5\":\n/***/ (function(module, exports) {\n\nmodule.exports = clamp\n\nfunction clamp(value, min, max) {\n return min < max\n ? (value < min ? min : value > max ? max : value)\n : (value < max ? max : value > min ? min : value)\n}\n\n\n/***/ }),\n\n/***/ \"53cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = stronglyConnectedComponents\n\nfunction stronglyConnectedComponents(adjList) {\n var numVertices = adjList.length;\n var index = new Array(numVertices)\n var lowValue = new Array(numVertices)\n var active = new Array(numVertices)\n var child = new Array(numVertices)\n var scc = new Array(numVertices)\n var sccLinks = new Array(numVertices)\n \n //Initialize tables\n for(var i=0; i 0) {\n v = T[T.length-1]\n var e = adjList[v]\n if (child[v] < e.length) { // If we're not done iterating over the children, first try finishing that.\n for(var i=child[v]; i= 0) {\n // Node v is not yet assigned an scc, but once it is that scc can apparently reach scc[u].\n sccLinks[v].push(scc[u])\n }\n }\n child[v] = i // Remember where we left off.\n } else { // If we're done iterating over the children, check whether we have an scc.\n if(lowValue[v] === index[v]) { // TODO: It /might/ be true that T is always a prefix of S (at this point!!!), and if so, this could be used here.\n var component = []\n var links = [], linkCount = 0\n for(var i=S.length-1; i>=0; --i) {\n var w = S[i]\n active[w] = false\n component.push(w)\n links.push(sccLinks[w])\n linkCount += sccLinks[w].length\n scc[w] = components.length\n if(w === v) {\n S.length = i\n break\n }\n }\n components.push(component)\n var allLinks = new Array(linkCount)\n for(var i=0; i= numVertices - 0.5) { // Note: the indices would be rounded -0.49 is valid.\n return false;\n }\n }\n return true;\n}\n\nproto.update = function(data) {\n var scene = this.scene;\n var layout = scene.fullSceneLayout;\n\n this.data = data;\n\n var numVertices = data.x.length;\n\n var positions = zip3(\n toDataCoords(layout.xaxis, data.x, scene.dataScale[0], data.xcalendar),\n toDataCoords(layout.yaxis, data.y, scene.dataScale[1], data.ycalendar),\n toDataCoords(layout.zaxis, data.z, scene.dataScale[2], data.zcalendar)\n );\n\n var cells;\n if(data.i && data.j && data.k) {\n if(\n data.i.length !== data.j.length ||\n data.j.length !== data.k.length ||\n !hasValidIndices(data.i, numVertices) ||\n !hasValidIndices(data.j, numVertices) ||\n !hasValidIndices(data.k, numVertices)\n ) {\n return;\n }\n cells = zip3(\n toRoundIndex(data.i),\n toRoundIndex(data.j),\n toRoundIndex(data.k)\n );\n } else if(data.alphahull === 0) {\n cells = convexHull(positions);\n } else if(data.alphahull > 0) {\n cells = alphaShape(data.alphahull, positions);\n } else {\n cells = delaunayCells(data.delaunayaxis, positions);\n }\n\n var config = {\n positions: positions,\n cells: cells,\n lightPosition: [data.lightposition.x, data.lightposition.y, data.lightposition.z],\n ambient: data.lighting.ambient,\n diffuse: data.lighting.diffuse,\n specular: data.lighting.specular,\n roughness: data.lighting.roughness,\n fresnel: data.lighting.fresnel,\n vertexNormalsEpsilon: data.lighting.vertexnormalsepsilon,\n faceNormalsEpsilon: data.lighting.facenormalsepsilon,\n opacity: data.opacity,\n contourEnable: data.contour.show,\n contourColor: str2RgbaArray(data.contour.color).slice(0, 3),\n contourWidth: data.contour.width,\n useFacetNormals: data.flatshading\n };\n\n if(data.intensity) {\n var cOpts = extractOpts(data);\n this.color = '#fff';\n var mode = data.intensitymode;\n config[mode + 'Intensity'] = data.intensity;\n config[mode + 'IntensityBounds'] = [cOpts.min, cOpts.max];\n config.colormap = parseColorScale(data);\n } else if(data.vertexcolor) {\n this.color = data.vertexcolor[0];\n config.vertexColors = parseColorArray(data.vertexcolor);\n } else if(data.facecolor) {\n this.color = data.facecolor[0];\n config.cellColors = parseColorArray(data.facecolor);\n } else {\n this.color = data.color;\n config.meshColor = str2RgbaArray(data.color);\n }\n\n // Update mesh\n this.mesh.update(config);\n};\n\nproto.dispose = function() {\n this.scene.glplot.remove(this.mesh);\n this.mesh.dispose();\n};\n\nfunction createMesh3DTrace(scene, data) {\n var gl = scene.glplot.gl;\n var mesh = createMesh({gl: gl});\n var result = new Mesh3DTrace(scene, mesh, data.uid);\n mesh._trace = result;\n result.update(data);\n scene.glplot.add(mesh);\n return result;\n}\n\nmodule.exports = createMesh3DTrace;\n\n\n/***/ }),\n\n/***/ \"54ea\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* http://keith-wood.name/calendars.html\n Calendars extras for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar assign = __webpack_require__(\"320c\");\nvar main = __webpack_require__(\"0230\");\n\n\nassign(main.regionalOptions[''], {\n invalidArguments: 'Invalid arguments',\n invalidFormat: 'Cannot format a date from another calendar',\n missingNumberAt: 'Missing number at position {0}',\n unknownNameAt: 'Unknown name at position {0}',\n unexpectedLiteralAt: 'Unexpected literal at position {0}',\n unexpectedText: 'Additional text found at end'\n});\nmain.local = main.regionalOptions[''];\n\nassign(main.cdate.prototype, {\n\n /** Format this date.\n Found in the jquery.calendars.plus.js module.\n @memberof CDate\n @param [format] {string} The date format to use (see formatDate).\n @param [settings] {object} Options for the formatDate function.\n @return {string} The formatted date. */\n formatDate: function(format, settings) {\n if (typeof format !== 'string') {\n settings = format;\n format = '';\n }\n return this._calendar.formatDate(format || '', this, settings);\n }\n});\n\nassign(main.baseCalendar.prototype, {\n\n UNIX_EPOCH: main.instance().newDate(1970, 1, 1).toJD(),\n SECS_PER_DAY: 24 * 60 * 60,\n TICKS_EPOCH: main.instance().jdEpoch, // 1 January 0001 CE\n TICKS_PER_DAY: 24 * 60 * 60 * 10000000,\n\n /** Date form for ATOM (RFC 3339/ISO 8601).\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n ATOM: 'yyyy-mm-dd',\n /** Date form for cookies.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n COOKIE: 'D, dd M yyyy',\n /** Date form for full date.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n FULL: 'DD, MM d, yyyy',\n /** Date form for ISO 8601.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n ISO_8601: 'yyyy-mm-dd',\n /** Date form for Julian date.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n JULIAN: 'J',\n /** Date form for RFC 822.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_822: 'D, d M yy',\n /** Date form for RFC 850.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_850: 'DD, dd-M-yy',\n /** Date form for RFC 1036.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_1036: 'D, d M yy',\n /** Date form for RFC 1123.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_1123: 'D, d M yyyy',\n /** Date form for RFC 2822.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_2822: 'D, d M yyyy',\n /** Date form for RSS (RFC 822).\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RSS: 'D, d M yy',\n /** Date form for Windows ticks.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n TICKS: '!',\n /** Date form for Unix timestamp.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n TIMESTAMP: '@',\n /** Date form for W3c (ISO 8601).\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n W3C: 'yyyy-mm-dd',\n\n /** Format a date object into a string value.\n The format can be combinations of the following:\n

    \n
  • d - day of month (no leading zero)
  • \n
  • dd - day of month (two digit)
  • \n
  • o - day of year (no leading zeros)
  • \n
  • oo - day of year (three digit)
  • \n
  • D - day name short
  • \n
  • DD - day name long
  • \n
  • w - week of year (no leading zero)
  • \n
  • ww - week of year (two digit)
  • \n
  • m - month of year (no leading zero)
  • \n
  • mm - month of year (two digit)
  • \n
  • M - month name short
  • \n
  • MM - month name long
  • \n
  • yy - year (two digit)
  • \n
  • yyyy - year (four digit)
  • \n
  • YYYY - formatted year
  • \n
  • J - Julian date (days since January 1, 4713 BCE Greenwich noon)
  • \n
  • @ - Unix timestamp (s since 01/01/1970)
  • \n
  • ! - Windows ticks (100ns since 01/01/0001)
  • \n
  • '...' - literal text
  • \n
  • '' - single quote
  • \n
\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar\n @param [format] {string} The desired format of the date (defaults to calendar format).\n @param date {CDate} The date value to format.\n @param [settings] {object} Addition options, whose attributes include:\n @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.\n @property [dayNames] {string[]} Names of the days from Sunday.\n @property [monthNamesShort] {string[]} Abbreviated names of the months.\n @property [monthNames] {string[]} Names of the months.\n @property [calculateWeek] {CalendarsPickerCalculateWeek} Function that determines week of the year.\n @property [localNumbers=false] {boolean} true to localise numbers (if available),\n false to use normal Arabic numerals.\n @return {string} The date in the above format.\n @throws Errors if the date is from a different calendar. */\n formatDate: function(format, date, settings) {\n if (typeof format !== 'string') {\n settings = date;\n date = format;\n format = '';\n }\n if (!date) {\n return '';\n }\n if (date.calendar() !== this) {\n throw main.local.invalidFormat || main.regionalOptions[''].invalidFormat;\n }\n format = format || this.local.dateFormat;\n settings = settings || {};\n var dayNamesShort = settings.dayNamesShort || this.local.dayNamesShort;\n var dayNames = settings.dayNames || this.local.dayNames;\n var monthNumbers = settings.monthNumbers || this.local.monthNumbers;\n var monthNamesShort = settings.monthNamesShort || this.local.monthNamesShort;\n var monthNames = settings.monthNames || this.local.monthNames;\n var calculateWeek = settings.calculateWeek || this.local.calculateWeek;\n // Check whether a format character is doubled\n var doubled = function(match, step) {\n var matches = 1;\n while (iFormat + matches < format.length && format.charAt(iFormat + matches) === match) {\n matches++;\n }\n iFormat += matches - 1;\n return Math.floor(matches / (step || 1)) > 1;\n };\n // Format a number, with leading zeroes if necessary\n var formatNumber = function(match, value, len, step) {\n var num = '' + value;\n if (doubled(match, step)) {\n while (num.length < len) {\n num = '0' + num;\n }\n }\n return num;\n };\n // Format a name, short or long as requested\n var formatName = function(match, value, shortNames, longNames) {\n return (doubled(match) ? longNames[value] : shortNames[value]);\n };\n // Format month number\n // (e.g. Chinese calendar needs to account for intercalary months)\n var calendar = this;\n var formatMonth = function(date) {\n return (typeof monthNumbers === 'function') ?\n monthNumbers.call(calendar, date, doubled('m')) :\n localiseNumbers(formatNumber('m', date.month(), 2));\n };\n // Format a month name, short or long as requested\n var formatMonthName = function(date, useLongName) {\n if (useLongName) {\n return (typeof monthNames === 'function') ?\n monthNames.call(calendar, date) :\n monthNames[date.month() - calendar.minMonth];\n } else {\n return (typeof monthNamesShort === 'function') ?\n monthNamesShort.call(calendar, date) :\n monthNamesShort[date.month() - calendar.minMonth];\n }\n };\n // Localise numbers if requested and available\n var digits = this.local.digits;\n var localiseNumbers = function(value) {\n return (settings.localNumbers && digits ? digits(value) : value);\n };\n var output = '';\n var literal = false;\n for (var iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !doubled(\"'\")) {\n literal = false;\n }\n else {\n output += format.charAt(iFormat);\n }\n }\n else {\n switch (format.charAt(iFormat)) {\n case 'd': output += localiseNumbers(formatNumber('d', date.day(), 2)); break;\n case 'D': output += formatName('D', date.dayOfWeek(),\n dayNamesShort, dayNames); break;\n case 'o': output += formatNumber('o', date.dayOfYear(), 3); break;\n case 'w': output += formatNumber('w', date.weekOfYear(), 2); break;\n case 'm': output += formatMonth(date); break;\n case 'M': output += formatMonthName(date, doubled('M')); break;\n case 'y':\n output += (doubled('y', 2) ? date.year() :\n (date.year() % 100 < 10 ? '0' : '') + date.year() % 100);\n break;\n case 'Y':\n doubled('Y', 2);\n output += date.formatYear();\n break;\n case 'J': output += date.toJD(); break;\n case '@': output += (date.toJD() - this.UNIX_EPOCH) * this.SECS_PER_DAY; break;\n case '!': output += (date.toJD() - this.TICKS_EPOCH) * this.TICKS_PER_DAY; break;\n case \"'\":\n if (doubled(\"'\")) {\n output += \"'\";\n }\n else {\n literal = true;\n }\n break;\n default:\n output += format.charAt(iFormat);\n }\n }\n }\n return output;\n },\n\n /** Parse a string value into a date object.\n See formatDate for the possible formats, plus:\n
    \n
  • * - ignore rest of string
  • \n
\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar\n @param format {string} The expected format of the date ('' for default calendar format).\n @param value {string} The date in the above format.\n @param [settings] {object} Additional options whose attributes include:\n @property [shortYearCutoff] {number} The cutoff year for determining the century.\n @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.\n @property [dayNames] {string[]} Names of the days from Sunday.\n @property [monthNamesShort] {string[]} Abbreviated names of the months.\n @property [monthNames] {string[]} Names of the months.\n @return {CDate} The extracted date value or null if value is blank.\n @throws Errors if the format and/or value are missing,\n if the value doesn't match the format, or if the date is invalid. */\n parseDate: function(format, value, settings) {\n if (value == null) {\n throw main.local.invalidArguments || main.regionalOptions[''].invalidArguments;\n }\n value = (typeof value === 'object' ? value.toString() : value + '');\n if (value === '') {\n return null;\n }\n format = format || this.local.dateFormat;\n settings = settings || {};\n var shortYearCutoff = settings.shortYearCutoff || this.shortYearCutoff;\n shortYearCutoff = (typeof shortYearCutoff !== 'string' ? shortYearCutoff :\n this.today().year() % 100 + parseInt(shortYearCutoff, 10));\n var dayNamesShort = settings.dayNamesShort || this.local.dayNamesShort;\n var dayNames = settings.dayNames || this.local.dayNames;\n var parseMonth = settings.parseMonth || this.local.parseMonth;\n var monthNumbers = settings.monthNumbers || this.local.monthNumbers;\n var monthNamesShort = settings.monthNamesShort || this.local.monthNamesShort;\n var monthNames = settings.monthNames || this.local.monthNames;\n var jd = -1;\n var year = -1;\n var month = -1;\n var day = -1;\n var doy = -1;\n var shortYear = false;\n var literal = false;\n // Check whether a format character is doubled\n var doubled = function(match, step) {\n var matches = 1;\n while (iFormat + matches < format.length && format.charAt(iFormat + matches) === match) {\n matches++;\n }\n iFormat += matches - 1;\n return Math.floor(matches / (step || 1)) > 1;\n };\n // Extract a number from the string value\n var getNumber = function(match, step) {\n var isDoubled = doubled(match, step);\n var size = [2, 3, isDoubled ? 4 : 2, isDoubled ? 4 : 2, 10, 11, 20]['oyYJ@!'.indexOf(match) + 1];\n var digits = new RegExp('^-?\\\\d{1,' + size + '}');\n var num = value.substring(iValue).match(digits);\n if (!num) {\n throw (main.local.missingNumberAt || main.regionalOptions[''].missingNumberAt).\n replace(/\\{0\\}/, iValue);\n }\n iValue += num[0].length;\n return parseInt(num[0], 10);\n };\n // Extract a month number from the string value\n var calendar = this;\n var getMonthNumber = function() {\n if (typeof monthNumbers === 'function') {\n doubled('m'); // update iFormat\n var month = monthNumbers.call(calendar, value.substring(iValue));\n iValue += month.length;\n return month;\n }\n\n return getNumber('m');\n };\n // Extract a name from the string value and convert to an index\n var getName = function(match, shortNames, longNames, step) {\n var names = (doubled(match, step) ? longNames : shortNames);\n for (var i = 0; i < names.length; i++) {\n if (value.substr(iValue, names[i].length).toLowerCase() === names[i].toLowerCase()) {\n iValue += names[i].length;\n return i + calendar.minMonth;\n }\n }\n throw (main.local.unknownNameAt || main.regionalOptions[''].unknownNameAt).\n replace(/\\{0\\}/, iValue);\n };\n // Extract a month number from the string value\n var getMonthName = function() {\n if (typeof monthNames === 'function') {\n var month = doubled('M') ?\n monthNames.call(calendar, value.substring(iValue)) :\n monthNamesShort.call(calendar, value.substring(iValue));\n iValue += month.length;\n return month;\n }\n\n return getName('M', monthNamesShort, monthNames);\n };\n // Confirm that a literal character matches the string value\n var checkLiteral = function() {\n if (value.charAt(iValue) !== format.charAt(iFormat)) {\n throw (main.local.unexpectedLiteralAt ||\n main.regionalOptions[''].unexpectedLiteralAt).replace(/\\{0\\}/, iValue);\n }\n iValue++;\n };\n var iValue = 0;\n for (var iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !doubled(\"'\")) {\n literal = false;\n }\n else {\n checkLiteral();\n }\n }\n else {\n switch (format.charAt(iFormat)) {\n case 'd': day = getNumber('d'); break;\n case 'D': getName('D', dayNamesShort, dayNames); break;\n case 'o': doy = getNumber('o'); break;\n case 'w': getNumber('w'); break;\n case 'm': month = getMonthNumber(); break;\n case 'M': month = getMonthName(); break;\n case 'y':\n var iSave = iFormat;\n shortYear = !doubled('y', 2);\n iFormat = iSave;\n year = getNumber('y', 2);\n break;\n case 'Y': year = getNumber('Y', 2); break;\n case 'J':\n jd = getNumber('J') + 0.5;\n if (value.charAt(iValue) === '.') {\n iValue++;\n getNumber('J');\n }\n break;\n case '@': jd = getNumber('@') / this.SECS_PER_DAY + this.UNIX_EPOCH; break;\n case '!': jd = getNumber('!') / this.TICKS_PER_DAY + this.TICKS_EPOCH; break;\n case '*': iValue = value.length; break;\n case \"'\":\n if (doubled(\"'\")) {\n checkLiteral();\n }\n else {\n literal = true;\n }\n break;\n default: checkLiteral();\n }\n }\n }\n if (iValue < value.length) {\n throw main.local.unexpectedText || main.regionalOptions[''].unexpectedText;\n }\n if (year === -1) {\n year = this.today().year();\n }\n else if (year < 100 && shortYear) {\n year += (shortYearCutoff === -1 ? 1900 : this.today().year() -\n this.today().year() % 100 - (year <= shortYearCutoff ? 0 : 100));\n }\n if (typeof month === 'string') {\n month = parseMonth.call(this, year, month);\n }\n if (doy > -1) {\n month = 1;\n day = doy;\n for (var dim = this.daysInMonth(year, month); day > dim; dim = this.daysInMonth(year, month)) {\n month++;\n day -= dim;\n }\n }\n return (jd > -1 ? this.fromJD(jd) : this.newDate(year, month, day));\n },\n\n /** A date may be specified as an exact value or a relative one.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar\n @param dateSpec {CDate|number|string} The date as an object or string in the given format or\n an offset - numeric days from today, or string amounts and periods, e.g. '+1m +2w'.\n @param defaultDate {CDate} The date to use if no other supplied, may be null.\n @param currentDate {CDate} The current date as a possible basis for relative dates,\n if null today is used (optional)\n @param [dateFormat] {string} The expected date format - see formatDate.\n @param [settings] {object} Additional options whose attributes include:\n @property [shortYearCutoff] {number} The cutoff year for determining the century.\n @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.\n @property [dayNames] {string[]} Names of the days from Sunday.\n @property [monthNamesShort] {string[]} Abbreviated names of the months.\n @property [monthNames] {string[]} Names of the months.\n @return {CDate} The decoded date. */\n determineDate: function(dateSpec, defaultDate, currentDate, dateFormat, settings) {\n if (currentDate && typeof currentDate !== 'object') {\n settings = dateFormat;\n dateFormat = currentDate;\n currentDate = null;\n }\n if (typeof dateFormat !== 'string') {\n settings = dateFormat;\n dateFormat = '';\n }\n var calendar = this;\n var offsetString = function(offset) {\n try {\n return calendar.parseDate(dateFormat, offset, settings);\n }\n catch (e) {\n // Ignore\n }\n offset = offset.toLowerCase();\n var date = (offset.match(/^c/) && currentDate ?\n currentDate.newDate() : null) || calendar.today();\n var pattern = /([+-]?[0-9]+)\\s*(d|w|m|y)?/g;\n var matches = pattern.exec(offset);\n while (matches) {\n date.add(parseInt(matches[1], 10), matches[2] || 'd');\n matches = pattern.exec(offset);\n }\n return date;\n };\n defaultDate = (defaultDate ? defaultDate.newDate() : null);\n dateSpec = (dateSpec == null ? defaultDate :\n (typeof dateSpec === 'string' ? offsetString(dateSpec) : (typeof dateSpec === 'number' ?\n (isNaN(dateSpec) || dateSpec === Infinity || dateSpec === -Infinity ? defaultDate :\n calendar.today().add(dateSpec, 'd')) : calendar.newDate(dateSpec))));\n return dateSpec;\n }\n});\n\n\n\n/***/ }),\n\n/***/ \"5506\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Polar = module.exports = __webpack_require__(\"3a99\");\n\nPolar.manager = __webpack_require__(\"2381\");\n\n\n/***/ }),\n\n/***/ \"551a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar DEFAULT_VERTEX_NORMALS_EPSILON = 1e-6; // may be too large if triangles are very small\nvar DEFAULT_FACE_NORMALS_EPSILON = 1e-6;\n\nvar createShader = __webpack_require__(\"28dd\")\nvar createBuffer = __webpack_require__(\"efce\")\nvar createVAO = __webpack_require__(\"b205\")\nvar createTexture = __webpack_require__(\"1d5b\")\nvar normals = __webpack_require__(\"075f\")\nvar multiply = __webpack_require__(\"1417\")\nvar invert = __webpack_require__(\"9343\")\nvar ndarray = __webpack_require__(\"b5bb\")\nvar colormap = __webpack_require__(\"595c\")\nvar getContour = __webpack_require__(\"b7f8\")\nvar pool = __webpack_require__(\"cea5\")\nvar shaders = __webpack_require__(\"38eb\")\nvar closestPoint = __webpack_require__(\"b82b\")\n\nvar meshShader = shaders.meshShader\nvar wireShader = shaders.wireShader\nvar pointShader = shaders.pointShader\nvar pickShader = shaders.pickShader\nvar pointPickShader = shaders.pointPickShader\nvar contourShader = shaders.contourShader\n\nvar IDENTITY = [\n 1,0,0,0,\n 0,1,0,0,\n 0,0,1,0,\n 0,0,0,1]\n\n\nfunction SimplicialMesh(gl\n , texture\n , triShader\n , lineShader\n , pointShader\n , pickShader\n , pointPickShader\n , contourShader\n , trianglePositions\n , triangleIds\n , triangleColors\n , triangleUVs\n , triangleNormals\n , triangleVAO\n , edgePositions\n , edgeIds\n , edgeColors\n , edgeUVs\n , edgeVAO\n , pointPositions\n , pointIds\n , pointColors\n , pointUVs\n , pointSizes\n , pointVAO\n , contourPositions\n , contourVAO) {\n\n this.gl = gl\n this.pixelRatio = 1\n this.cells = []\n this.positions = []\n this.intensity = []\n this.texture = texture\n this.dirty = true\n\n this.triShader = triShader\n this.lineShader = lineShader\n this.pointShader = pointShader\n this.pickShader = pickShader\n this.pointPickShader = pointPickShader\n this.contourShader = contourShader\n\n this.trianglePositions = trianglePositions\n this.triangleColors = triangleColors\n this.triangleNormals = triangleNormals\n this.triangleUVs = triangleUVs\n this.triangleIds = triangleIds\n this.triangleVAO = triangleVAO\n this.triangleCount = 0\n\n this.lineWidth = 1\n this.edgePositions = edgePositions\n this.edgeColors = edgeColors\n this.edgeUVs = edgeUVs\n this.edgeIds = edgeIds\n this.edgeVAO = edgeVAO\n this.edgeCount = 0\n\n this.pointPositions = pointPositions\n this.pointColors = pointColors\n this.pointUVs = pointUVs\n this.pointSizes = pointSizes\n this.pointIds = pointIds\n this.pointVAO = pointVAO\n this.pointCount = 0\n\n this.contourLineWidth = 1\n this.contourPositions = contourPositions\n this.contourVAO = contourVAO\n this.contourCount = 0\n this.contourColor = [0,0,0]\n this.contourEnable = true\n\n this.pickId = 1\n this.bounds = [\n [ Infinity, Infinity, Infinity],\n [-Infinity,-Infinity,-Infinity] ]\n this.clipBounds = [\n [-Infinity,-Infinity,-Infinity],\n [ Infinity, Infinity, Infinity] ]\n\n this.lightPosition = [1e5, 1e5, 0]\n this.ambientLight = 0.8\n this.diffuseLight = 0.8\n this.specularLight = 2.0\n this.roughness = 0.5\n this.fresnel = 1.5\n\n this.opacity = 1.0\n this.hasAlpha = false\n this.opacityscale = false\n\n this._model = IDENTITY\n this._view = IDENTITY\n this._projection = IDENTITY\n this._resolution = [1,1]\n}\n\nvar proto = SimplicialMesh.prototype\n\nproto.isOpaque = function() {\n return !this.hasAlpha\n}\n\nproto.isTransparent = function() {\n return this.hasAlpha\n}\n\nproto.pickSlots = 1\n\nproto.setPickBase = function(id) {\n this.pickId = id\n}\n\nfunction getOpacityFromScale(ratio, opacityscale) {\n\n if(!opacityscale) return 1\n if(!opacityscale.length) return 1\n\n for(var i = 0; i < opacityscale.length; ++i) {\n if(opacityscale.length < 2) return 1\n if(opacityscale[i][0] === ratio) return opacityscale[i][1]\n if(opacityscale[i][0] > ratio && i > 0) {\n var d = (opacityscale[i][0] - ratio) / (opacityscale[i][0] - opacityscale[i - 1][0])\n return opacityscale[i][1] * (1 - d) + d * opacityscale[i - 1][1]\n }\n }\n\n return 1\n}\n\nfunction genColormap(param, opacityscale) {\n var colors = colormap({\n colormap: param\n , nshades: 256\n , format: 'rgba'\n })\n\n var result = new Uint8Array(256*4)\n for(var i=0; i<256; ++i) {\n var c = colors[i]\n for(var j=0; j<3; ++j) {\n result[4*i+j] = c[j]\n }\n if(!opacityscale) {\n result[4*i+3] = 255 * c[3]\n } else {\n result[4*i+3] = 255 * getOpacityFromScale(i / 255.0, opacityscale)\n }\n }\n\n return ndarray(result, [256,256,4], [4,0,1])\n}\n\nfunction unpackIntensity(cells, numVerts, cellIntensity) {\n var result = new Array(numVerts)\n for(var i=0; i 0) {\n var shader = this.triShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.triangleVAO.bind()\n gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3)\n this.triangleVAO.unbind()\n }\n\n if(this.edgeCount > 0 && this.lineWidth > 0) {\n var shader = this.lineShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.edgeVAO.bind()\n gl.lineWidth(this.lineWidth * this.pixelRatio)\n gl.drawArrays(gl.LINES, 0, this.edgeCount*2)\n this.edgeVAO.unbind()\n }\n\n if(this.pointCount > 0) {\n var shader = this.pointShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.pointVAO.bind()\n gl.drawArrays(gl.POINTS, 0, this.pointCount)\n this.pointVAO.unbind()\n }\n\n if(this.contourEnable && this.contourCount > 0 && this.contourLineWidth > 0) {\n var shader = this.contourShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.contourVAO.bind()\n gl.drawArrays(gl.LINES, 0, this.contourCount)\n this.contourVAO.unbind()\n }\n}\n\nproto.drawPick = function(params) {\n params = params || {}\n\n var gl = this.gl\n\n var model = params.model || IDENTITY\n var view = params.view || IDENTITY\n var projection = params.projection || IDENTITY\n\n var clipBounds = [[-1e6,-1e6,-1e6],[1e6,1e6,1e6]]\n for(var i=0; i<3; ++i) {\n clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i])\n clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i])\n }\n\n //Save camera parameters\n this._model = [].slice.call(model)\n this._view = [].slice.call(view)\n this._projection = [].slice.call(projection)\n this._resolution = [gl.drawingBufferWidth, gl.drawingBufferHeight]\n\n var uniforms = {\n model: model,\n view: view,\n projection: projection,\n clipBounds: clipBounds,\n pickId: this.pickId / 255.0,\n }\n\n var shader = this.pickShader\n shader.bind()\n shader.uniforms = uniforms\n\n if(this.triangleCount > 0) {\n this.triangleVAO.bind()\n gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3)\n this.triangleVAO.unbind()\n }\n\n if(this.edgeCount > 0) {\n this.edgeVAO.bind()\n gl.lineWidth(this.lineWidth * this.pixelRatio)\n gl.drawArrays(gl.LINES, 0, this.edgeCount*2)\n this.edgeVAO.unbind()\n }\n\n if(this.pointCount > 0) {\n var shader = this.pointPickShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.pointVAO.bind()\n gl.drawArrays(gl.POINTS, 0, this.pointCount)\n this.pointVAO.unbind()\n }\n}\n\n\nproto.pick = function(pickData) {\n if(!pickData) {\n return null\n }\n if(pickData.id !== this.pickId) {\n return null\n }\n\n var cellId = pickData.value[0] + 256*pickData.value[1] + 65536*pickData.value[2]\n var cell = this.cells[cellId]\n var positions = this.positions\n\n var simplex = new Array(cell.length)\n for(var i=0; i 0;\n\n traces.each(function(d) {\n var trace = d[0].trace;\n // || {} is in case the trace (specifically scatterternary)\n // doesn't support error bars at all, but does go through\n // the scatter.plot mechanics, which calls ErrorBars.plot\n // internally\n var xObj = trace.error_x || {};\n var yObj = trace.error_y || {};\n\n var keyFunc;\n\n if(trace.ids) {\n keyFunc = function(d) {return d.id;};\n }\n\n var sparse = (\n subTypes.hasMarkers(trace) &&\n trace.marker.maxdisplayed > 0\n );\n\n if(!yObj.visible && !xObj.visible) d = [];\n\n var errorbars = d3.select(this).selectAll('g.errorbar')\n .data(d, keyFunc);\n\n errorbars.exit().remove();\n\n if(!d.length) return;\n\n if(!xObj.visible) errorbars.selectAll('path.xerror').remove();\n if(!yObj.visible) errorbars.selectAll('path.yerror').remove();\n\n errorbars.style('opacity', 1);\n\n var enter = errorbars.enter().append('g')\n .classed('errorbar', true);\n\n if(hasAnimation) {\n enter.style('opacity', 0).transition()\n .duration(transitionOpts.duration)\n .style('opacity', 1);\n }\n\n Drawing.setClipUrl(errorbars, plotinfo.layerClipId, gd);\n\n errorbars.each(function(d) {\n var errorbar = d3.select(this);\n var coords = errorCoords(d, xa, ya);\n\n if(sparse && !d.vis) return;\n\n var path;\n\n var yerror = errorbar.select('path.yerror');\n if(yObj.visible && isNumeric(coords.x) &&\n isNumeric(coords.yh) &&\n isNumeric(coords.ys)) {\n var yw = yObj.width;\n\n path = 'M' + (coords.x - yw) + ',' +\n coords.yh + 'h' + (2 * yw) + // hat\n 'm-' + yw + ',0V' + coords.ys; // bar\n\n\n if(!coords.noYS) path += 'm-' + yw + ',0h' + (2 * yw); // shoe\n\n isNew = !yerror.size();\n\n if(isNew) {\n yerror = errorbar.append('path')\n .style('vector-effect', 'non-scaling-stroke')\n .classed('yerror', true);\n } else if(hasAnimation) {\n yerror = yerror\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing);\n }\n\n yerror.attr('d', path);\n } else yerror.remove();\n\n var xerror = errorbar.select('path.xerror');\n if(xObj.visible && isNumeric(coords.y) &&\n isNumeric(coords.xh) &&\n isNumeric(coords.xs)) {\n var xw = (xObj.copy_ystyle ? yObj : xObj).width;\n\n path = 'M' + coords.xh + ',' +\n (coords.y - xw) + 'v' + (2 * xw) + // hat\n 'm0,-' + xw + 'H' + coords.xs; // bar\n\n if(!coords.noXS) path += 'm0,-' + xw + 'v' + (2 * xw); // shoe\n\n isNew = !xerror.size();\n\n if(isNew) {\n xerror = errorbar.append('path')\n .style('vector-effect', 'non-scaling-stroke')\n .classed('xerror', true);\n } else if(hasAnimation) {\n xerror = xerror\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing);\n }\n\n xerror.attr('d', path);\n } else xerror.remove();\n });\n });\n};\n\n// compute the coordinates of the error-bar objects\nfunction errorCoords(d, xa, ya) {\n var out = {\n x: xa.c2p(d.x),\n y: ya.c2p(d.y)\n };\n\n // calculate the error bar size and hat and shoe locations\n if(d.yh !== undefined) {\n out.yh = ya.c2p(d.yh);\n out.ys = ya.c2p(d.ys);\n\n // if the shoes go off-scale (ie log scale, error bars past zero)\n // clip the bar and hide the shoes\n if(!isNumeric(out.ys)) {\n out.noYS = true;\n out.ys = ya.c2p(d.ys, true);\n }\n }\n\n if(d.xh !== undefined) {\n out.xh = xa.c2p(d.xh);\n out.xs = xa.c2p(d.xs);\n\n if(!isNumeric(out.xs)) {\n out.noXS = true;\n out.xs = xa.c2p(d.xs, true);\n }\n }\n\n return out;\n}\n\n\n/***/ }),\n\n/***/ \"5567\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\n\n/**\n * Return news array containing only the unique items\n * found in input array.\n *\n * IMPORTANT: Note that items are considered unique\n * if `String({})` is unique. For example;\n *\n * Lib.filterUnique([ { a: 1 }, { b: 2 } ])\n *\n * returns [{ a: 1 }]\n *\n * and\n *\n * Lib.filterUnique([ '1', 1 ])\n *\n * returns ['1']\n *\n *\n * @param {array} array base array\n * @return {array} new filtered array\n */\nmodule.exports = function filterUnique(array) {\n var seen = {};\n var out = [];\n var j = 0;\n\n for(var i = 0; i < array.length; i++) {\n var item = array[i];\n\n if(seen[item] !== 1) {\n seen[item] = 1;\n out[j++] = item;\n }\n }\n\n return out;\n};\n\n\n/***/ }),\n\n/***/ \"55eb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n eventDataKeys: [\n 'initial',\n 'delta',\n 'final'\n ]\n};\n\n\n/***/ }),\n\n/***/ \"55f6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar isArrayOrTypedArray = __webpack_require__(\"fc26\").isArrayOrTypedArray;\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nvar colorscaleCalc = __webpack_require__(\"3aa8\");\nvar _ = __webpack_require__(\"fc26\")._;\n\nmodule.exports = function calc(gd, trace) {\n var len = trace._length;\n var calcTrace = new Array(len);\n var z = trace.z;\n var hasZ = isArrayOrTypedArray(z) && z.length;\n\n for(var i = 0; i < len; i++) {\n var cdi = calcTrace[i] = {};\n\n var lon = trace.lon[i];\n var lat = trace.lat[i];\n\n cdi.lonlat = isNumeric(lon) && isNumeric(lat) ?\n [+lon, +lat] :\n [BADNUM, BADNUM];\n\n if(hasZ) {\n var zi = z[i];\n cdi.z = isNumeric(zi) ? zi : BADNUM;\n }\n }\n\n colorscaleCalc(gd, trace, {\n vals: hasZ ? z : [0, 1],\n containerStr: '',\n cLetter: 'z'\n });\n\n if(len) {\n calcTrace[0].t = {\n labels: {\n lat: _(gd, 'lat:') + ' ',\n lon: _(gd, 'lon:') + ' '\n }\n };\n }\n\n return calcTrace;\n};\n\n\n/***/ }),\n\n/***/ \"5664\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = earcut;\nmodule.exports.default = earcut;\n\nfunction earcut(data, holeIndices, dim) {\n\n dim = dim || 2;\n\n var hasHoles = holeIndices && holeIndices.length,\n outerLen = hasHoles ? holeIndices[0] * dim : data.length,\n outerNode = linkedList(data, 0, outerLen, dim, true),\n triangles = [];\n\n if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n\n var minX, minY, maxX, maxY, x, y, invSize;\n\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n\n // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n\n for (var i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n\n // minX, minY and invSize are later used to transform coords into integers for z-order calculation\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 1 / invSize : 0;\n }\n\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize);\n\n return triangles;\n}\n\n// create a circular doubly linked list from polygon points in the specified winding order\nfunction linkedList(data, start, end, dim, clockwise) {\n var i, last;\n\n if (clockwise === (signedArea(data, start, end, dim) > 0)) {\n for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);\n } else {\n for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);\n }\n\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n\n return last;\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n\n var p = start,\n again;\n do {\n again = false;\n\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) break;\n again = true;\n\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n\n return end;\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n if (!ear) return;\n\n // interlink polygon nodes in z-order\n if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n\n var stop = ear,\n prev, next;\n\n // iterate through ears, slicing them one by one\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n // cut off the triangle\n triangles.push(prev.i / dim);\n triangles.push(ear.i / dim);\n triangles.push(next.i / dim);\n\n removeNode(ear);\n\n // skipping the next vertex leads to less sliver triangles\n ear = next.next;\n stop = next.next;\n\n continue;\n }\n\n ear = next;\n\n // if we looped through the whole remaining polygon and can't find any more ears\n if (ear === stop) {\n // try filtering points and slicing again\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n\n // if this didn't work, try curing all small self-intersections locally\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n\n // as a last resort, try splitting the remaining polygon into two\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n\n break;\n }\n }\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar(ear) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // now make sure we don't have other points inside the potential ear\n var p = ear.next.next;\n\n while (p !== ear.prev) {\n if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n\n return true;\n}\n\nfunction isEarHashed(ear, minX, minY, invSize) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // triangle bbox; min & max are calculated like this for speed\n var minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : (b.x < c.x ? b.x : c.x),\n minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : (b.y < c.y ? b.y : c.y),\n maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : (b.x > c.x ? b.x : c.x),\n maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : (b.y > c.y ? b.y : c.y);\n\n // z-order range for the current triangle bbox;\n var minZ = zOrder(minTX, minTY, minX, minY, invSize),\n maxZ = zOrder(maxTX, maxTY, minX, minY, invSize);\n\n var p = ear.prevZ,\n n = ear.nextZ;\n\n // look for points inside the triangle in both directions\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p !== ear.prev && p !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n\n if (n !== ear.prev && n !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&\n area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n // look for remaining points in decreasing z-order\n while (p && p.z >= minZ) {\n if (p !== ear.prev && p !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n }\n\n // look for remaining points in increasing z-order\n while (n && n.z <= maxZ) {\n if (n !== ear.prev && n !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&\n area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n return true;\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections(start, triangles, dim) {\n var p = start;\n do {\n var a = p.prev,\n b = p.next.next;\n\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n\n triangles.push(a.i / dim);\n triangles.push(p.i / dim);\n triangles.push(b.i / dim);\n\n // remove two nodes involved\n removeNode(p);\n removeNode(p.next);\n\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n\n return filterPoints(p);\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut(start, triangles, dim, minX, minY, invSize) {\n // look for a valid diagonal that divides the polygon into two\n var a = start;\n do {\n var b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n // split the polygon in two by the diagonal\n var c = splitPolygon(a, b);\n\n // filter colinear points around the cuts\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n\n // run earcut on each half\n earcutLinked(a, triangles, dim, minX, minY, invSize);\n earcutLinked(c, triangles, dim, minX, minY, invSize);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles(data, holeIndices, outerNode, dim) {\n var queue = [],\n i, len, start, end, list;\n\n for (i = 0, len = holeIndices.length; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n\n queue.sort(compareX);\n\n // process holes from left to right\n for (i = 0; i < queue.length; i++) {\n eliminateHole(queue[i], outerNode);\n outerNode = filterPoints(outerNode, outerNode.next);\n }\n\n return outerNode;\n}\n\nfunction compareX(a, b) {\n return a.x - b.x;\n}\n\n// find a bridge between vertices that connects hole with an outer ring and and link it\nfunction eliminateHole(hole, outerNode) {\n outerNode = findHoleBridge(hole, outerNode);\n if (outerNode) {\n var b = splitPolygon(outerNode, hole);\n filterPoints(b, b.next);\n }\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge(hole, outerNode) {\n var p = outerNode,\n hx = hole.x,\n hy = hole.y,\n qx = -Infinity,\n m;\n\n // find a segment intersected by a ray from the hole's leftmost point to the left;\n // segment's endpoint with lesser x will be potential connection point\n do {\n if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n if (x === hx) {\n if (hy === p.y) return p;\n if (hy === p.next.y) return p.next;\n }\n m = p.x < p.next.x ? p : p.next;\n }\n }\n p = p.next;\n } while (p !== outerNode);\n\n if (!m) return null;\n\n if (hx === qx) return m; // hole touches outer segment; pick leftmost endpoint\n\n // look for points inside the triangle of hole point, segment intersection and endpoint;\n // if there are no points found, we have a valid connection;\n // otherwise choose the point of the minimum angle with the ray as connection point\n\n var stop = m,\n mx = m.x,\n my = m.y,\n tanMin = Infinity,\n tan;\n\n p = m;\n\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x &&\n pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n\n tan = Math.abs(hy - p.y) / (hx - p.x); // tangential\n\n if (locallyInside(p, hole) &&\n (tan < tanMin || (tan === tanMin && (p.x > m.x || (p.x === m.x && sectorContainsSector(m, p)))))) {\n m = p;\n tanMin = tan;\n }\n }\n\n p = p.next;\n } while (p !== stop);\n\n return m;\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve(start, minX, minY, invSize) {\n var p = start;\n do {\n if (p.z === null) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n\n p.prevZ.nextZ = null;\n p.prevZ = null;\n\n sortLinked(p);\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked(list) {\n var i, p, q, e, tail, numMerges, pSize, qSize,\n inSize = 1;\n\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n qSize = inSize;\n\n while (pSize > 0 || (qSize > 0 && q)) {\n\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n\n if (tail) tail.nextZ = e;\n else list = e;\n\n e.prevZ = tail;\n tail = e;\n }\n\n p = q;\n }\n\n tail.nextZ = null;\n inSize *= 2;\n\n } while (numMerges > 1);\n\n return list;\n}\n\n// z-order of a point given coords and inverse of the longer side of data bbox\nfunction zOrder(x, y, minX, minY, invSize) {\n // coords are transformed into non-negative 15-bit integer range\n x = 32767 * (x - minX) * invSize;\n y = 32767 * (y - minY) * invSize;\n\n x = (x | (x << 8)) & 0x00FF00FF;\n x = (x | (x << 4)) & 0x0F0F0F0F;\n x = (x | (x << 2)) & 0x33333333;\n x = (x | (x << 1)) & 0x55555555;\n\n y = (y | (y << 8)) & 0x00FF00FF;\n y = (y | (y << 4)) & 0x0F0F0F0F;\n y = (y | (y << 2)) & 0x33333333;\n y = (y | (y << 1)) & 0x55555555;\n\n return x | (y << 1);\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost(start) {\n var p = start,\n leftmost = start;\n do {\n if (p.x < leftmost.x || (p.x === leftmost.x && p.y < leftmost.y)) leftmost = p;\n p = p.next;\n } while (p !== start);\n\n return leftmost;\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 &&\n (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 &&\n (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges\n (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible\n (area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors\n equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); // special zero-length case\n}\n\n// signed area of a triangle\nfunction area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n}\n\n// check if two points are equal\nfunction equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n}\n\n// check if two segments intersect\nfunction intersects(p1, q1, p2, q2) {\n var o1 = sign(area(p1, q1, p2));\n var o2 = sign(area(p1, q1, q2));\n var o3 = sign(area(p2, q2, p1));\n var o4 = sign(area(p2, q2, q1));\n\n if (o1 !== o2 && o3 !== o4) return true; // general case\n\n if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n return false;\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment(p, q, r) {\n return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n}\n\nfunction sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon(a, b) {\n var p = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n intersects(p, p.next, a, b)) return true;\n p = p.next;\n } while (p !== a);\n\n return false;\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ?\n area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :\n area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside(a, b) {\n var p = a,\n inside = false,\n px = (a.x + b.x) / 2,\n py = (a.y + b.y) / 2;\n do {\n if (((p.y > py) !== (p.next.y > py)) && p.next.y !== p.y &&\n (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))\n inside = !inside;\n p = p.next;\n } while (p !== a);\n\n return inside;\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nfunction splitPolygon(a, b) {\n var a2 = new Node(a.i, a.x, a.y),\n b2 = new Node(b.i, b.x, b.y),\n an = a.next,\n bp = b.prev;\n\n a.next = b;\n b.prev = a;\n\n a2.next = an;\n an.prev = a2;\n\n b2.next = a2;\n a2.prev = b2;\n\n bp.next = b2;\n b2.prev = bp;\n\n return b2;\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode(i, x, y, last) {\n var p = new Node(i, x, y);\n\n if (!last) {\n p.prev = p;\n p.next = p;\n\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n}\n\nfunction removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\n\nfunction Node(i, x, y) {\n // vertex index in coordinates array\n this.i = i;\n\n // vertex coordinates\n this.x = x;\n this.y = y;\n\n // previous and next vertex nodes in a polygon ring\n this.prev = null;\n this.next = null;\n\n // z-order curve value\n this.z = null;\n\n // previous and next nodes in z-order\n this.prevZ = null;\n this.nextZ = null;\n\n // indicates whether this is a steiner point\n this.steiner = false;\n}\n\n// return a percentage difference between the polygon area and its triangulation area;\n// used to verify correctness of triangulation\nearcut.deviation = function (data, holeIndices, dim, triangles) {\n var hasHoles = holeIndices && holeIndices.length;\n var outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n\n var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));\n if (hasHoles) {\n for (var i = 0, len = holeIndices.length; i < len; i++) {\n var start = holeIndices[i] * dim;\n var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n polygonArea -= Math.abs(signedArea(data, start, end, dim));\n }\n }\n\n var trianglesArea = 0;\n for (i = 0; i < triangles.length; i += 3) {\n var a = triangles[i] * dim;\n var b = triangles[i + 1] * dim;\n var c = triangles[i + 2] * dim;\n trianglesArea += Math.abs(\n (data[a] - data[c]) * (data[b + 1] - data[a + 1]) -\n (data[a] - data[b]) * (data[c + 1] - data[a + 1]));\n }\n\n return polygonArea === 0 && trianglesArea === 0 ? 0 :\n Math.abs((trianglesArea - polygonArea) / polygonArea);\n};\n\nfunction signedArea(data, start, end, dim) {\n var sum = 0;\n for (var i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n}\n\n// turn a polygon in a multi-dimensional array form (e.g. as in GeoJSON) into a form Earcut accepts\nearcut.flatten = function (data) {\n var dim = data[0][0].length,\n result = {vertices: [], holes: [], dimensions: dim},\n holeIndex = 0;\n\n for (var i = 0; i < data.length; i++) {\n for (var j = 0; j < data[i].length; j++) {\n for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);\n }\n if (i > 0) {\n holeIndex += data[i - 1].length;\n result.holes.push(holeIndex);\n }\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"566e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = boundary\n\nfunction boundary (cells) {\n var i, j, k\n var n = cells.length\n var sz = 0\n for (i = 0; i < n; ++i) {\n sz += cells[i].length\n }\n var result = new Array(sz)\n var ptr = 0\n for (i = 0; i < n; ++i) {\n var c = cells[i]\n var d = c.length\n for (j = 0; j < d; ++j) {\n var b = result[ptr++] = new Array(d - 1)\n var p = 0\n for (k = 0; k < d; ++k) {\n if (k === j) {\n continue\n }\n b[p++] = c[k]\n }\n if (j & 1) {\n var tmp = b[1]\n b[1] = b[0]\n b[0] = tmp\n }\n }\n }\n return result\n}\n\n\n/***/ }),\n\n/***/ \"567e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Axes = __webpack_require__(\"0642\");\nvar handleArrayContainerDefaults = __webpack_require__(\"e5ac\");\n\nvar attributes = __webpack_require__(\"a5cc\");\nvar helpers = __webpack_require__(\"fdc7\");\n\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n handleArrayContainerDefaults(layoutIn, layoutOut, {\n name: 'shapes',\n handleItemDefaults: handleShapeDefaults\n });\n};\n\nfunction handleShapeDefaults(shapeIn, shapeOut, fullLayout) {\n function coerce(attr, dflt) {\n return Lib.coerce(shapeIn, shapeOut, attributes, attr, dflt);\n }\n\n var visible = coerce('visible');\n\n if(!visible) return;\n\n coerce('layer');\n coerce('opacity');\n coerce('fillcolor');\n coerce('line.color');\n coerce('line.width');\n coerce('line.dash');\n\n var dfltType = shapeIn.path ? 'path' : 'rect';\n var shapeType = coerce('type', dfltType);\n var xSizeMode = coerce('xsizemode');\n var ySizeMode = coerce('ysizemode');\n\n // positioning\n var axLetters = ['x', 'y'];\n for(var i = 0; i < 2; i++) {\n var axLetter = axLetters[i];\n var attrAnchor = axLetter + 'anchor';\n var sizeMode = axLetter === 'x' ? xSizeMode : ySizeMode;\n var gdMock = {_fullLayout: fullLayout};\n var ax;\n var pos2r;\n var r2pos;\n\n // xref, yref\n var axRef = Axes.coerceRef(shapeIn, shapeOut, gdMock, axLetter, '', 'paper');\n\n if(axRef !== 'paper') {\n ax = Axes.getFromId(gdMock, axRef);\n ax._shapeIndices.push(shapeOut._index);\n r2pos = helpers.rangeToShapePosition(ax);\n pos2r = helpers.shapePositionToRange(ax);\n } else {\n pos2r = r2pos = Lib.identity;\n }\n\n // Coerce x0, x1, y0, y1\n if(shapeType !== 'path') {\n var dflt0 = 0.25;\n var dflt1 = 0.75;\n\n // hack until V2.0 when log has regular range behavior - make it look like other\n // ranges to send to coerce, then put it back after\n // this is all to give reasonable default position behavior on log axes, which is\n // a pretty unimportant edge case so we could just ignore this.\n var attr0 = axLetter + '0';\n var attr1 = axLetter + '1';\n var in0 = shapeIn[attr0];\n var in1 = shapeIn[attr1];\n shapeIn[attr0] = pos2r(shapeIn[attr0], true);\n shapeIn[attr1] = pos2r(shapeIn[attr1], true);\n\n if(sizeMode === 'pixel') {\n coerce(attr0, 0);\n coerce(attr1, 10);\n } else {\n Axes.coercePosition(shapeOut, gdMock, coerce, axRef, attr0, dflt0);\n Axes.coercePosition(shapeOut, gdMock, coerce, axRef, attr1, dflt1);\n }\n\n // hack part 2\n shapeOut[attr0] = r2pos(shapeOut[attr0]);\n shapeOut[attr1] = r2pos(shapeOut[attr1]);\n shapeIn[attr0] = in0;\n shapeIn[attr1] = in1;\n }\n\n // Coerce xanchor and yanchor\n if(sizeMode === 'pixel') {\n // Hack for log axis described above\n var inAnchor = shapeIn[attrAnchor];\n shapeIn[attrAnchor] = pos2r(shapeIn[attrAnchor], true);\n\n Axes.coercePosition(shapeOut, gdMock, coerce, axRef, attrAnchor, 0.25);\n\n // Hack part 2\n shapeOut[attrAnchor] = r2pos(shapeOut[attrAnchor]);\n shapeIn[attrAnchor] = inAnchor;\n }\n }\n\n if(shapeType === 'path') {\n coerce('path');\n } else {\n Lib.noneOrAll(shapeIn, shapeOut, ['x0', 'x1', 'y0', 'y1']);\n }\n}\n\n\n/***/ }),\n\n/***/ \"5692\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(\"c430\");\nvar store = __webpack_require__(\"c6cd\");\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.4',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"569b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = function zip3(x, y, z, len) {\n len = len || x.length;\n\n var result = new Array(len);\n for(var i = 0; i < len; i++) {\n result[i] = [x[i], y[i], z[i]];\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"56b4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar layoutAttributes = __webpack_require__(\"78d8\");\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n\n coerce('hiddenlabels');\n coerce('piecolorway', layoutOut.colorway);\n coerce('extendpiecolors');\n};\n\n\n/***/ }),\n\n/***/ \"56cf\":\n/***/ (function(module, exports) {\n\nmodule.exports = subtract\n\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {vec4} out\n */\nfunction subtract (out, a, b) {\n out[0] = a[0] - b[0]\n out[1] = a[1] - b[1]\n out[2] = a[2] - b[2]\n out[3] = a[3] - b[3]\n return out\n}\n\n\n/***/ }),\n\n/***/ \"56ef\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\nvar getOwnPropertyNamesModule = __webpack_require__(\"241c\");\nvar getOwnPropertySymbolsModule = __webpack_require__(\"7418\");\nvar anObject = __webpack_require__(\"825a\");\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n\n/***/ \"56f3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar texttemplateAttrs = __webpack_require__(\"94d5\").texttemplateAttrs;\nvar scatterAttrs = __webpack_require__(\"107c\");\nvar baseAttrs = __webpack_require__(\"a876\");\nvar colorAttributes = __webpack_require__(\"f4e9\");\nvar dash = __webpack_require__(\"db54\").dash;\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\nvar scatterMarkerAttrs = scatterAttrs.marker;\nvar scatterLineAttrs = scatterAttrs.line;\nvar scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n\nmodule.exports = overrideAll({\n lon: {\n valType: 'data_array',\n \n },\n lat: {\n valType: 'data_array',\n \n },\n\n locations: {\n valType: 'data_array',\n \n },\n locationmode: {\n valType: 'enumerated',\n values: ['ISO-3', 'USA-states', 'country names', 'geojson-id'],\n \n dflt: 'ISO-3',\n \n },\n\n geojson: {\n valType: 'any',\n \n editType: 'calc',\n \n },\n featureidkey: {\n valType: 'string',\n \n editType: 'calc',\n dflt: 'id',\n \n },\n\n mode: extendFlat({}, scatterAttrs.mode, {dflt: 'markers'}),\n\n text: extendFlat({}, scatterAttrs.text, {\n \n }),\n texttemplate: texttemplateAttrs({editType: 'plot'}, {\n keys: ['lat', 'lon', 'location', 'text']\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {\n \n }),\n\n textfont: scatterAttrs.textfont,\n textposition: scatterAttrs.textposition,\n\n line: {\n color: scatterLineAttrs.color,\n width: scatterLineAttrs.width,\n dash: dash\n },\n connectgaps: scatterAttrs.connectgaps,\n\n marker: extendFlat({\n symbol: scatterMarkerAttrs.symbol,\n opacity: scatterMarkerAttrs.opacity,\n size: scatterMarkerAttrs.size,\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n colorbar: scatterMarkerAttrs.colorbar,\n line: extendFlat({\n width: scatterMarkerLineAttrs.width\n },\n colorAttributes('marker.line')\n ),\n gradient: scatterMarkerAttrs.gradient\n },\n colorAttributes('marker')\n ),\n\n fill: {\n valType: 'enumerated',\n values: ['none', 'toself'],\n dflt: 'none',\n \n \n },\n fillcolor: scatterAttrs.fillcolor,\n\n selected: scatterAttrs.selected,\n unselected: scatterAttrs.unselected,\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: ['lon', 'lat', 'location', 'text', 'name']\n }),\n hovertemplate: hovertemplateAttrs(),\n}, 'calc', 'nested');\n\n\n/***/ }),\n\n/***/ \"56fc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n/*\n * Return a function that evaluates a set of linear or bicubic control points.\n * This will get evaluated a lot, so we'll at least do a bit of extra work to\n * flatten some of the choices. In particular, we'll unroll the linear/bicubic\n * combinations and we'll allow computing results in parallel to cut down\n * on repeated arithmetic.\n *\n * Take note that we don't search for the correct range in this function. The\n * reason is for consistency due to the corrresponding derivative function. In\n * particular, the derivatives aren't continuous across cells, so it's important\n * to be able control whether the derivative at a cell boundary is approached\n * from one side or the other.\n */\nmodule.exports = function(arrays, na, nb, asmoothing, bsmoothing) {\n var imax = na - 2;\n var jmax = nb - 2;\n\n if(asmoothing && bsmoothing) {\n return function(out, i, j) {\n if(!out) out = [];\n var f0, f1, f2, f3, ak, k;\n\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n\n // Since it's a grid of control points, the actual indices are * 3:\n i0 *= 3;\n j0 *= 3;\n\n // Precompute some numbers:\n var u2 = u * u;\n var u3 = u2 * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ou3 = ou2 * ou;\n\n var v2 = v * v;\n var v3 = v2 * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ov3 = ov2 * ov;\n\n for(k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ou3 * ak[j0][i0] + 3 * (ou2 * u * ak[j0][i0 + 1] + ou * u2 * ak[j0][i0 + 2]) + u3 * ak[j0][i0 + 3];\n f1 = ou3 * ak[j0 + 1][i0] + 3 * (ou2 * u * ak[j0 + 1][i0 + 1] + ou * u2 * ak[j0 + 1][i0 + 2]) + u3 * ak[j0 + 1][i0 + 3];\n f2 = ou3 * ak[j0 + 2][i0] + 3 * (ou2 * u * ak[j0 + 2][i0 + 1] + ou * u2 * ak[j0 + 2][i0 + 2]) + u3 * ak[j0 + 2][i0 + 3];\n f3 = ou3 * ak[j0 + 3][i0] + 3 * (ou2 * u * ak[j0 + 3][i0 + 1] + ou * u2 * ak[j0 + 3][i0 + 2]) + u3 * ak[j0 + 3][i0 + 3];\n out[k] = ov3 * f0 + 3 * (ov2 * v * f1 + ov * v2 * f2) + v3 * f3;\n }\n\n return out;\n };\n } else if(asmoothing) {\n // Handle smooth in the a-direction but linear in the b-direction by performing four\n // linear interpolations followed by one cubic interpolation of the result\n return function(out, i, j) {\n if(!out) out = [];\n\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n\n var f0, f1, f2, f3, k, ak;\n i0 *= 3;\n var u2 = u * u;\n var u3 = u2 * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ou3 = ou2 * ou;\n var ov = 1 - v;\n for(k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ov * ak[j0][i0] + v * ak[j0 + 1][i0];\n f1 = ov * ak[j0][i0 + 1] + v * ak[j0 + 1][i0 + 1];\n f2 = ov * ak[j0][i0 + 2] + v * ak[j0 + 1][i0 + 1];\n f3 = ov * ak[j0][i0 + 3] + v * ak[j0 + 1][i0 + 1];\n\n out[k] = ou3 * f0 + 3 * (ou2 * u * f1 + ou * u2 * f2) + u3 * f3;\n }\n return out;\n };\n } else if(bsmoothing) {\n // Same as the above case, except reversed:\n return function(out, i, j) {\n if(!out) out = [];\n\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n\n var f0, f1, f2, f3, k, ak;\n j0 *= 3;\n var v2 = v * v;\n var v3 = v2 * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ov3 = ov2 * ov;\n var ou = 1 - u;\n for(k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ou * ak[j0][i0] + u * ak[j0][i0 + 1];\n f1 = ou * ak[j0 + 1][i0] + u * ak[j0 + 1][i0 + 1];\n f2 = ou * ak[j0 + 2][i0] + u * ak[j0 + 2][i0 + 1];\n f3 = ou * ak[j0 + 3][i0] + u * ak[j0 + 3][i0 + 1];\n\n out[k] = ov3 * f0 + 3 * (ov2 * v * f1 + ov * v2 * f2) + v3 * f3;\n }\n return out;\n };\n } else {\n // Finally, both directions are linear:\n return function(out, i, j) {\n if(!out) out = [];\n\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n\n var f0, f1, k, ak;\n var ov = 1 - v;\n var ou = 1 - u;\n for(k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ou * ak[j0][i0] + u * ak[j0][i0 + 1];\n f1 = ou * ak[j0 + 1][i0] + u * ak[j0 + 1][i0 + 1];\n\n out[k] = ov * f0 + v * f1;\n }\n return out;\n };\n }\n};\n\n\n/***/ }),\n\n/***/ \"5714\":\n/***/ (function(module, exports) {\n\nmodule.exports = ceil\n\n/**\n * Math.ceil the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to ceil\n * @returns {vec3} out\n */\nfunction ceil(out, a) {\n out[0] = Math.ceil(a[0])\n out[1] = Math.ceil(a[1])\n out[2] = Math.ceil(a[2])\n return out\n}\n\n\n/***/ }),\n\n/***/ \"5752\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar BN = __webpack_require__(\"399f\")\n\nmodule.exports = str2BN\n\nfunction str2BN(x) {\n return new BN(x)\n}\n\n\n/***/ }),\n\n/***/ \"578f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createSelectBuffer\n\nvar createFBO = __webpack_require__(\"44c3\")\nvar pool = __webpack_require__(\"cea5\")\nvar ndarray = __webpack_require__(\"b5bb\")\n\nvar nextPow2 = __webpack_require__(\"a48a\").nextPow2\n\nvar selectRange = __webpack_require__(\"dd8f\")({\"args\":[\"array\",{\"offset\":[0,0,1],\"array\":0},{\"offset\":[0,0,2],\"array\":0},{\"offset\":[0,0,3],\"array\":0},\"scalar\",\"scalar\",\"index\"],\"pre\":{\"body\":\"{this_closestD2=1e8,this_closestX=-1,this_closestY=-1}\",\"args\":[],\"thisVars\":[\"this_closestD2\",\"this_closestX\",\"this_closestY\"],\"localVars\":[]},\"body\":{\"body\":\"{if(_inline_4_arg0_<255||_inline_4_arg1_<255||_inline_4_arg2_<255||_inline_4_arg3_<255){var _inline_4_l=_inline_4_arg4_-_inline_4_arg6_[0],_inline_4_a=_inline_4_arg5_-_inline_4_arg6_[1],_inline_4_f=_inline_4_l*_inline_4_l+_inline_4_a*_inline_4_a;_inline_4_f this.buffer.length) {\n pool.free(this.buffer)\n var buffer = this.buffer = pool.mallocUint8(nextPow2(r*c*4))\n for(var i=0; i -1 ? vph + barPad : -(barH + barPad);\n\n var pathbarOrigin = {\n x0: barW, // slide to the right\n x1: barW,\n y0: barDifY,\n y1: barDifY + barH\n };\n\n var findClosestEdge = function(pt, ref, size) {\n var e = trace.tiling.pad;\n var isLeftOfRect = function(x) { return x - e <= ref.x0; };\n var isRightOfRect = function(x) { return x + e >= ref.x1; };\n var isBottomOfRect = function(y) { return y - e <= ref.y0; };\n var isTopOfRect = function(y) { return y + e >= ref.y1; };\n\n return {\n x0: isLeftOfRect(pt.x0 - e) ? 0 : isRightOfRect(pt.x0 - e) ? size[0] : pt.x0,\n x1: isLeftOfRect(pt.x1 + e) ? 0 : isRightOfRect(pt.x1 + e) ? size[0] : pt.x1,\n y0: isBottomOfRect(pt.y0 - e) ? 0 : isTopOfRect(pt.y0 - e) ? size[1] : pt.y0,\n y1: isBottomOfRect(pt.y1 + e) ? 0 : isTopOfRect(pt.y1 + e) ? size[1] : pt.y1\n };\n };\n\n // stash of 'previous' position data used by tweening functions\n var prevEntry = null;\n var prevLookupPathbar = {};\n var prevLookupSlices = {};\n var nextOfPrevEntry = null;\n var getPrev = function(pt, onPathbar) {\n return onPathbar ?\n prevLookupPathbar[getKey(pt)] :\n prevLookupSlices[getKey(pt)];\n };\n\n var getOrigin = function(pt, onPathbar, refRect, size) {\n if(onPathbar) {\n return prevLookupPathbar[getKey(hierarchy)] || pathbarOrigin;\n } else {\n var ref = prevLookupSlices[trace.level] || refRect;\n\n if(hasVisibleDepth(pt)) { // case of an empty object - happens when maxdepth is set\n return findClosestEdge(pt, ref, size);\n }\n }\n return {};\n };\n\n // N.B. handle multiple-root special case\n if(cd0.hasMultipleRoots && isRoot) {\n maxDepth++;\n }\n\n trace._maxDepth = maxDepth;\n trace._backgroundColor = fullLayout.paper_bgcolor;\n trace._entryDepth = entry.data.depth;\n trace._atRootLevel = isRoot;\n\n var cenX = -vpw / 2 + gs.l + gs.w * (domain.x[1] + domain.x[0]) / 2;\n var cenY = -vph / 2 + gs.t + gs.h * (1 - (domain.y[1] + domain.y[0]) / 2);\n\n var viewMapX = function(x) { return cenX + x; };\n var viewMapY = function(y) { return cenY + y; };\n\n var barY0 = viewMapY(0);\n var barX0 = viewMapX(0);\n\n var viewBarX = function(x) { return barX0 + x; };\n var viewBarY = function(y) { return barY0 + y; };\n\n function pos(x, y) {\n return x + ',' + y;\n }\n\n var xStart = viewBarX(0);\n var limitX0 = function(p) { p.x = Math.max(xStart, p.x); };\n\n var edgeshape = trace.pathbar.edgeshape;\n\n // pathbar(directory) path generation fn\n var pathAncestor = function(d) {\n var _x0 = viewBarX(Math.max(Math.min(d.x0, d.x0), 0));\n var _x1 = viewBarX(Math.min(Math.max(d.x1, d.x1), barW));\n var _y0 = viewBarY(d.y0);\n var _y1 = viewBarY(d.y1);\n\n var halfH = barH / 2;\n\n var pL = {};\n var pR = {};\n\n pL.x = _x0;\n pR.x = _x1;\n\n pL.y = pR.y = (_y0 + _y1) / 2;\n\n var pA = {x: _x0, y: _y0};\n var pB = {x: _x1, y: _y0};\n var pC = {x: _x1, y: _y1};\n var pD = {x: _x0, y: _y1};\n\n if(edgeshape === '>') {\n pA.x -= halfH;\n pB.x -= halfH;\n pC.x -= halfH;\n pD.x -= halfH;\n } else if(edgeshape === '/') {\n pC.x -= halfH;\n pD.x -= halfH;\n pL.x -= halfH / 2;\n pR.x -= halfH / 2;\n } else if(edgeshape === '\\\\') {\n pA.x -= halfH;\n pB.x -= halfH;\n pL.x -= halfH / 2;\n pR.x -= halfH / 2;\n } else if(edgeshape === '<') {\n pL.x -= halfH;\n pR.x -= halfH;\n }\n\n limitX0(pA);\n limitX0(pD);\n limitX0(pL);\n\n limitX0(pB);\n limitX0(pC);\n limitX0(pR);\n\n return (\n 'M' + pos(pA.x, pA.y) +\n 'L' + pos(pB.x, pB.y) +\n 'L' + pos(pR.x, pR.y) +\n 'L' + pos(pC.x, pC.y) +\n 'L' + pos(pD.x, pD.y) +\n 'L' + pos(pL.x, pL.y) +\n 'Z'\n );\n };\n\n // slice path generation fn\n var pathDescendant = function(d) {\n var _x0 = viewMapX(d.x0);\n var _x1 = viewMapX(d.x1);\n var _y0 = viewMapY(d.y0);\n var _y1 = viewMapY(d.y1);\n\n var dx = _x1 - _x0;\n var dy = _y1 - _y0;\n if(!dx || !dy) return '';\n\n var FILLET = 0; // TODO: may expose this constant\n\n var r = (\n dx > 2 * FILLET &&\n dy > 2 * FILLET\n ) ? FILLET : 0;\n\n var arc = function(rx, ry) { return r ? 'a' + pos(r, r) + ' 0 0 1 ' + pos(rx, ry) : ''; };\n\n return (\n 'M' + pos(_x0, _y0 + r) +\n arc(r, -r) +\n 'L' + pos(_x1 - r, _y0) +\n arc(r, r) +\n 'L' + pos(_x1, _y1 - r) +\n arc(-r, r) +\n 'L' + pos(_x0 + r, _y1) +\n arc(-r, -r) + 'Z'\n );\n };\n\n var toMoveInsideSlice = function(pt, opts) {\n var x0 = pt.x0;\n var x1 = pt.x1;\n var y0 = pt.y0;\n var y1 = pt.y1;\n var textBB = pt.textBB;\n\n var hasFlag = function(f) { return trace.textposition.indexOf(f) !== -1; };\n\n var hasBottom = hasFlag('bottom');\n var hasTop = hasFlag('top') || (opts.isHeader && !hasBottom);\n\n var anchor =\n hasTop ? 'start' :\n hasBottom ? 'end' : 'middle';\n\n var hasRight = hasFlag('right');\n var hasLeft = hasFlag('left') || opts.onPathbar;\n\n var leftToRight =\n hasLeft ? -1 :\n hasRight ? 1 : 0;\n\n var pad = trace.marker.pad;\n if(opts.isHeader) {\n x0 += pad.l - TEXTPAD;\n x1 -= pad.r - TEXTPAD;\n if(x0 >= x1) {\n var mid = (x0 + x1) / 2;\n x0 = mid;\n x1 = mid;\n }\n\n // limit the drawing area for headers\n var limY;\n if(hasBottom) {\n limY = y1 - pad.b;\n if(y0 < limY && limY < y1) y0 = limY;\n } else {\n limY = y0 + pad.t;\n if(y0 < limY && limY < y1) y1 = limY;\n }\n }\n\n // position the text relative to the slice\n var transform = toMoveInsideBar(x0, x1, y0, y1, textBB, {\n isHorizontal: false,\n constrained: true,\n angle: 0,\n anchor: anchor,\n leftToRight: leftToRight\n });\n transform.fontSize = opts.fontSize;\n\n transform.targetX = viewMapX(transform.targetX);\n transform.targetY = viewMapY(transform.targetY);\n\n if(isNaN(transform.targetX) || isNaN(transform.targetY)) {\n return {};\n }\n\n if(x0 !== x1 && y0 !== y1) {\n recordMinTextSize(trace.type, transform, fullLayout);\n }\n\n return {\n scale: transform.scale,\n rotate: transform.rotate,\n textX: transform.textX,\n textY: transform.textY,\n anchorX: transform.anchorX,\n anchorY: transform.anchorY,\n targetX: transform.targetX,\n targetY: transform.targetY\n };\n };\n\n var interpFromParent = function(pt, onPathbar) {\n var parentPrev;\n var i = 0;\n var Q = pt;\n while(!parentPrev && i < maxDepth) { // loop to find a parent/grandParent on the previous graph\n i++;\n Q = Q.parent;\n if(Q) {\n parentPrev = getPrev(Q, onPathbar);\n } else i = maxDepth;\n }\n return parentPrev || {};\n };\n\n var makeExitSliceInterpolator = function(pt, onPathbar, refRect, size) {\n var prev = getPrev(pt, onPathbar);\n var next;\n\n if(onPathbar) {\n next = pathbarOrigin;\n } else {\n var entryPrev = getPrev(entry, onPathbar);\n if(entryPrev) {\n // 'entryPrev' is here has the previous coordinates of the entry\n // node, which corresponds to the last \"clicked\" node when zooming in\n next = findClosestEdge(pt, entryPrev, size);\n } else {\n // this happens when maxdepth is set, when leaves must\n // be removed and the entry is new (i.e. does not have a 'prev' object)\n next = {};\n }\n }\n\n return d3.interpolate(prev, next);\n };\n\n var makeUpdateSliceInterpolator = function(pt, onPathbar, refRect, size) {\n var prev0 = getPrev(pt, onPathbar);\n var prev;\n\n if(prev0) {\n // if pt already on graph, this is easy\n prev = prev0;\n } else {\n // for new pts:\n if(onPathbar) {\n prev = pathbarOrigin;\n } else {\n if(prevEntry) {\n // if trace was visible before\n if(pt.parent) {\n var ref = nextOfPrevEntry || refRect;\n\n if(ref && !onPathbar) {\n prev = findClosestEdge(pt, ref, size);\n } else {\n // if new leaf (when maxdepth is set),\n // grow it from its parent node\n prev = {};\n Lib.extendFlat(prev, interpFromParent(pt, onPathbar));\n }\n } else {\n prev = pt;\n }\n } else {\n prev = {};\n }\n }\n }\n\n return d3.interpolate(prev, {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n });\n };\n\n var makeUpdateTextInterpolator = function(pt, onPathbar, refRect, size) {\n var prev0 = getPrev(pt, onPathbar);\n var prev = {};\n var origin = getOrigin(pt, onPathbar, refRect, size);\n\n Lib.extendFlat(prev, {\n transform: toMoveInsideSlice({\n x0: origin.x0,\n x1: origin.x1,\n y0: origin.y0,\n y1: origin.y1,\n textBB: pt.textBB,\n _text: pt._text\n }, {\n isHeader: helpers.isHeader(pt, trace)\n })\n });\n\n if(prev0) {\n // if pt already on graph, this is easy\n prev = prev0;\n } else {\n // for new pts:\n if(pt.parent) {\n Lib.extendFlat(prev, interpFromParent(pt, onPathbar));\n }\n }\n\n var transform = pt.transform;\n if(pt.x0 !== pt.x1 && pt.y0 !== pt.y1) {\n recordMinTextSize(trace.type, transform, fullLayout);\n }\n\n return d3.interpolate(prev, {\n transform: {\n scale: transform.scale,\n rotate: transform.rotate,\n textX: transform.textX,\n textY: transform.textY,\n anchorX: transform.anchorX,\n anchorY: transform.anchorY,\n targetX: transform.targetX,\n targetY: transform.targetY\n }\n });\n };\n\n var handleSlicesExit = function(slices, onPathbar, refRect, size, pathSlice) {\n var width = size[0];\n var height = size[1];\n\n if(hasTransition) {\n slices.exit().transition()\n .each(function() {\n var sliceTop = d3.select(this);\n\n var slicePath = sliceTop.select('path.surface');\n slicePath.transition().attrTween('d', function(pt2) {\n var interp = makeExitSliceInterpolator(pt2, onPathbar, refRect, [width, height]);\n return function(t) { return pathSlice(interp(t)); };\n });\n\n var sliceTextGroup = sliceTop.select('g.slicetext');\n sliceTextGroup.attr('opacity', 0);\n })\n .remove();\n } else {\n slices.exit().remove();\n }\n };\n\n var strTransform = function(d) {\n var transform = d.transform;\n\n if(d.x0 !== d.x1 && d.y0 !== d.y1) {\n recordMinTextSize(trace.type, transform, fullLayout);\n }\n\n return Lib.getTextTransform({\n textX: transform.textX,\n textY: transform.textY,\n anchorX: transform.anchorX,\n anchorY: transform.anchorY,\n targetX: transform.targetX,\n targetY: transform.targetY,\n scale: transform.scale,\n rotate: transform.rotate\n });\n };\n\n if(hasTransition) {\n // Important: do this before binding new sliceData!\n\n selAncestors.each(function(pt) {\n prevLookupPathbar[getKey(pt)] = {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n };\n\n if(pt.transform) {\n prevLookupPathbar[getKey(pt)].transform = {\n textX: pt.transform.textX,\n textY: pt.transform.textY,\n anchorX: pt.transform.anchorX,\n anchorY: pt.transform.anchorY,\n targetX: pt.transform.targetX,\n targetY: pt.transform.targetY,\n scale: pt.transform.scale,\n rotate: pt.transform.rotate\n };\n }\n });\n\n selDescendants.each(function(pt) {\n prevLookupSlices[getKey(pt)] = {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n };\n\n if(pt.transform) {\n prevLookupSlices[getKey(pt)].transform = {\n textX: pt.transform.textX,\n textY: pt.transform.textY,\n anchorX: pt.transform.anchorX,\n anchorY: pt.transform.anchorY,\n targetX: pt.transform.targetX,\n targetY: pt.transform.targetY,\n scale: pt.transform.scale,\n rotate: pt.transform.rotate\n };\n }\n\n if(!prevEntry && helpers.isEntry(pt)) {\n prevEntry = pt;\n }\n });\n }\n\n nextOfPrevEntry = drawDescendants(gd, cd, entry, selDescendants, {\n width: vpw,\n height: vph,\n\n viewX: viewMapX,\n viewY: viewMapY,\n\n pathSlice: pathDescendant,\n toMoveInsideSlice: toMoveInsideSlice,\n\n prevEntry: prevEntry,\n makeUpdateSliceInterpolator: makeUpdateSliceInterpolator,\n makeUpdateTextInterpolator: makeUpdateTextInterpolator,\n\n handleSlicesExit: handleSlicesExit,\n hasTransition: hasTransition,\n strTransform: strTransform\n });\n\n if(trace.pathbar.visible) {\n drawAncestors(gd, cd, entry, selAncestors, {\n barDifY: barDifY,\n width: barW,\n height: barH,\n\n viewX: viewBarX,\n viewY: viewBarY,\n\n pathSlice: pathAncestor,\n toMoveInsideSlice: toMoveInsideSlice,\n\n makeUpdateSliceInterpolator: makeUpdateSliceInterpolator,\n makeUpdateTextInterpolator: makeUpdateTextInterpolator,\n\n handleSlicesExit: handleSlicesExit,\n hasTransition: hasTransition,\n strTransform: strTransform\n });\n }\n}\n\n\n/***/ }),\n\n/***/ \"5844\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n // not really a 'subplot' attribute container,\n // but this is the flag we use to denote attributes that\n // support yaxis, yaxis2, yaxis3, ... counters\n _isSubplotObj: true,\n\n rangemode: {\n valType: 'enumerated',\n values: ['auto', 'fixed', 'match'],\n dflt: 'match',\n \n editType: 'calc',\n \n },\n range: {\n valType: 'info_array',\n \n items: [\n {valType: 'any', editType: 'plot'},\n {valType: 'any', editType: 'plot'}\n ],\n editType: 'plot',\n \n },\n editType: 'calc'\n};\n\n\n/***/ }),\n\n/***/ \"5885\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = function eventData(out, pt) {\n // Note: hoverOnBox property is needed for click-to-select\n // to ignore when a box was clicked. This is the reason box\n // implements this custom eventData function.\n if(pt.hoverOnBox) out.hoverOnBox = pt.hoverOnBox;\n\n if('xVal' in pt) out.x = pt.xVal;\n if('yVal' in pt) out.y = pt.yVal;\n if(pt.xa) out.xaxis = pt.xa;\n if(pt.ya) out.yaxis = pt.ya;\n\n return out;\n};\n\n\n/***/ }),\n\n/***/ \"5913\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar numConstants = __webpack_require__(\"e806\");\nvar oneYear = numConstants.ONEAVGYEAR;\nvar oneMonth = numConstants.ONEAVGMONTH;\nvar oneDay = numConstants.ONEDAY;\nvar oneHour = numConstants.ONEHOUR;\nvar oneMin = numConstants.ONEMIN;\nvar oneSec = numConstants.ONESEC;\nvar tickIncrement = __webpack_require__(\"0642\").tickIncrement;\n\n\n/*\n * make a function that will find rounded bin edges\n * @param {number} leftGap: how far from the left edge of any bin is the closest data value?\n * @param {number} rightGap: how far from the right edge of any bin is the closest data value?\n * @param {Array[number]} binEdges: the actual edge values used in binning\n * @param {object} pa: the position axis\n * @param {string} calendar: the data calendar\n *\n * @return {function(v, isRightEdge)}:\n * find the start (isRightEdge is falsy) or end (truthy) label value for a bin edge `v`\n */\nmodule.exports = function getBinSpanLabelRound(leftGap, rightGap, binEdges, pa, calendar) {\n // the rounding digit is the largest digit that changes in *all* of 4 regions:\n // - inside the rightGap before binEdges[0] (shifted 10% to the left)\n // - inside the leftGap after binEdges[0] (expanded by 10% of rightGap on each end)\n // - same for binEdges[1]\n var dv0 = -1.1 * rightGap;\n var dv1 = -0.1 * rightGap;\n var dv2 = leftGap - dv1;\n var edge0 = binEdges[0];\n var edge1 = binEdges[1];\n var leftDigit = Math.min(\n biggestDigitChanged(edge0 + dv1, edge0 + dv2, pa, calendar),\n biggestDigitChanged(edge1 + dv1, edge1 + dv2, pa, calendar)\n );\n var rightDigit = Math.min(\n biggestDigitChanged(edge0 + dv0, edge0 + dv1, pa, calendar),\n biggestDigitChanged(edge1 + dv0, edge1 + dv1, pa, calendar)\n );\n\n // normally we try to make the label for the right edge different from\n // the left edge label, so it's unambiguous which bin gets data on the edge.\n // but if this results in more than 3 extra digits (or for dates, more than\n // 2 fields ie hr&min or min&sec, which is 3600x), it'll be more clutter than\n // useful so keep the label cleaner instead\n var digit, disambiguateEdges;\n if(leftDigit > rightDigit && rightDigit < Math.abs(edge1 - edge0) / 4000) {\n digit = leftDigit;\n disambiguateEdges = false;\n } else {\n digit = Math.min(leftDigit, rightDigit);\n disambiguateEdges = true;\n }\n\n if(pa.type === 'date' && digit > oneDay) {\n var dashExclude = (digit === oneYear) ? 1 : 6;\n var increment = (digit === oneYear) ? 'M12' : 'M1';\n\n return function(v, isRightEdge) {\n var dateStr = pa.c2d(v, oneYear, calendar);\n var dashPos = dateStr.indexOf('-', dashExclude);\n if(dashPos > 0) dateStr = dateStr.substr(0, dashPos);\n var roundedV = pa.d2c(dateStr, 0, calendar);\n\n if(roundedV < v) {\n var nextV = tickIncrement(roundedV, increment, false, calendar);\n if((roundedV + nextV) / 2 < v + leftGap) roundedV = nextV;\n }\n\n if(isRightEdge && disambiguateEdges) {\n return tickIncrement(roundedV, increment, true, calendar);\n }\n\n return roundedV;\n };\n }\n\n return function(v, isRightEdge) {\n var roundedV = digit * Math.round(v / digit);\n // if we rounded down and we could round up and still be < leftGap\n // (or what leftGap values round to), do that\n if(roundedV + (digit / 10) < v && roundedV + (digit * 0.9) < v + leftGap) {\n roundedV += digit;\n }\n // finally for the right edge back off one digit - but only if we can do that\n // and not clip off any data that's potentially in the bin\n if(isRightEdge && disambiguateEdges) {\n roundedV -= digit;\n }\n return roundedV;\n };\n};\n\n/*\n * Find the largest digit that changes within a (calcdata) region [v1, v2]\n * if dates, \"digit\" means date/time part when it's bigger than a second\n * returns the unit value to round to this digit, eg 0.01 to round to hundredths, or\n * 100 to round to hundreds. returns oneMonth or oneYear for month or year rounding,\n * so that Math.min will work, rather than 'M1' and 'M12'\n */\nfunction biggestDigitChanged(v1, v2, pa, calendar) {\n // are we crossing zero? can't say anything.\n // in principle this doesn't apply to dates but turns out this doesn't matter.\n if(v1 * v2 <= 0) return Infinity;\n\n var dv = Math.abs(v2 - v1);\n var isDate = pa.type === 'date';\n var digit = biggestGuaranteedDigitChanged(dv, isDate);\n // see if a larger digit also changed\n for(var i = 0; i < 10; i++) {\n // numbers: next digit needs to be >10x but <100x then gets rounded down.\n // dates: next digit can be as much as 60x (then rounded down)\n var nextDigit = biggestGuaranteedDigitChanged(digit * 80, isDate);\n // if we get to years, the chain stops\n if(digit === nextDigit) break;\n if(didDigitChange(nextDigit, v1, v2, isDate, pa, calendar)) digit = nextDigit;\n else break;\n }\n return digit;\n}\n\n/*\n * Find the largest digit that *definitely* changes in a region [v, v + dv] for any v\n * for nonuniform date regions (months/years) pick the largest\n */\nfunction biggestGuaranteedDigitChanged(dv, isDate) {\n if(isDate && dv > oneSec) {\n // this is supposed to be the biggest *guaranteed* change\n // so compare to the longest month and year across any calendar,\n // and we'll iterate back up later\n // note: does not support rounding larger than one year. We could add\n // that if anyone wants it, but seems unusual and not strictly necessary.\n if(dv > oneDay) {\n if(dv > oneYear * 1.1) return oneYear;\n if(dv > oneMonth * 1.1) return oneMonth;\n return oneDay;\n }\n\n if(dv > oneHour) return oneHour;\n if(dv > oneMin) return oneMin;\n return oneSec;\n }\n return Math.pow(10, Math.floor(Math.log(dv) / Math.LN10));\n}\n\nfunction didDigitChange(digit, v1, v2, isDate, pa, calendar) {\n if(isDate && digit > oneDay) {\n var dateParts1 = dateParts(v1, pa, calendar);\n var dateParts2 = dateParts(v2, pa, calendar);\n var parti = (digit === oneYear) ? 0 : 1;\n return dateParts1[parti] !== dateParts2[parti];\n }\n return Math.floor(v2 / digit) - Math.floor(v1 / digit) > 0.1;\n}\n\nfunction dateParts(v, pa, calendar) {\n var parts = pa.c2d(v, oneYear, calendar).split('-');\n if(parts[0] === '') {\n parts.unshift();\n parts[0] = '-' + parts[0];\n }\n return parts;\n}\n\n\n/***/ }),\n\n/***/ \"5928\":\n/***/ (function(module, exports) {\n\nmodule.exports = fromQuat;\n\n/**\n * Creates a matrix from a quaternion rotation.\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @returns {mat4} out\n */\nfunction fromQuat(out, q) {\n var x = q[0], y = q[1], z = q[2], w = q[3],\n x2 = x + x,\n y2 = y + y,\n z2 = z + z,\n\n xx = x * x2,\n yx = y * x2,\n yy = y * y2,\n zx = z * x2,\n zy = z * y2,\n zz = z * z2,\n wx = w * x2,\n wy = w * y2,\n wz = w * z2;\n\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n\n return out;\n};\n\n/***/ }),\n\n/***/ \"595c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\n * Ben Postlethwaite\n * January 2013\n * License MIT\n */\n\n\nvar colorScale = __webpack_require__(\"9a02\");\nvar lerp = __webpack_require__(\"9b49\")\n\nmodule.exports = createColormap;\n\nfunction createColormap (spec) {\n /*\n * Default Options\n */\n var indicies, fromrgba, torgba,\n nsteps, cmap, colormap, format,\n nshades, colors, alpha, i;\n\n if ( !spec ) spec = {};\n\n nshades = (spec.nshades || 72) - 1;\n format = spec.format || 'hex';\n\n colormap = spec.colormap;\n if (!colormap) colormap = 'jet';\n\n if (typeof colormap === 'string') {\n colormap = colormap.toLowerCase();\n\n if (!colorScale[colormap]) {\n throw Error(colormap + ' not a supported colorscale');\n }\n\n cmap = colorScale[colormap];\n\n } else if (Array.isArray(colormap)) {\n cmap = colormap.slice();\n\n } else {\n throw Error('unsupported colormap option', colormap);\n }\n\n if (cmap.length > nshades + 1) {\n throw new Error(\n colormap+' map requires nshades to be at least size '+cmap.length\n );\n }\n\n if (!Array.isArray(spec.alpha)) {\n\n if (typeof spec.alpha === 'number') {\n alpha = [spec.alpha, spec.alpha];\n\n } else {\n alpha = [1, 1];\n }\n\n } else if (spec.alpha.length !== 2) {\n alpha = [1, 1];\n\n } else {\n alpha = spec.alpha.slice();\n }\n\n // map index points from 0..1 to 0..n-1\n indicies = cmap.map(function(c) {\n return Math.round(c.index * nshades);\n });\n\n // Add alpha channel to the map\n alpha[0] = Math.min(Math.max(alpha[0], 0), 1);\n alpha[1] = Math.min(Math.max(alpha[1], 0), 1);\n\n var steps = cmap.map(function(c, i) {\n var index = cmap[i].index\n\n var rgba = cmap[i].rgb.slice();\n\n // if user supplies their own map use it\n if (rgba.length === 4 && rgba[3] >= 0 && rgba[3] <= 1) {\n return rgba\n }\n rgba[3] = alpha[0] + (alpha[1] - alpha[0])*index;\n\n return rgba\n })\n\n\n /*\n * map increasing linear values between indicies to\n * linear steps in colorvalues\n */\n var colors = []\n for (i = 0; i < indicies.length-1; ++i) {\n nsteps = indicies[i+1] - indicies[i];\n fromrgba = steps[i];\n torgba = steps[i+1];\n\n for (var j = 0; j < nsteps; j++) {\n var amt = j / nsteps\n colors.push([\n Math.round(lerp(fromrgba[0], torgba[0], amt)),\n Math.round(lerp(fromrgba[1], torgba[1], amt)),\n Math.round(lerp(fromrgba[2], torgba[2], amt)),\n lerp(fromrgba[3], torgba[3], amt)\n ])\n }\n }\n\n //add 1 step as last value\n colors.push(cmap[cmap.length - 1].rgb.concat(alpha[1]))\n\n if (format === 'hex') colors = colors.map( rgb2hex );\n else if (format === 'rgbaString') colors = colors.map( rgbaStr );\n else if (format === 'float') colors = colors.map( rgb2float );\n\n return colors;\n};\n\nfunction rgb2float (rgba) {\n return [\n rgba[0] / 255,\n rgba[1] / 255,\n rgba[2] / 255,\n rgba[3]\n ]\n}\n\nfunction rgb2hex (rgba) {\n var dig, hex = '#';\n for (var i = 0; i < 3; ++i) {\n dig = rgba[i];\n dig = dig.toString(16);\n hex += ('00' + dig).substr( dig.length );\n }\n return hex;\n}\n\nfunction rgbaStr (rgba) {\n return 'rgba(' + rgba.join(',') + ')';\n}\n\n\n/***/ }),\n\n/***/ \"59be\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isArrayOrTypedArray = __webpack_require__(\"fc26\").isArrayOrTypedArray;\nvar hasColorscale = __webpack_require__(\"215c\").hasColorscale;\nvar colorscaleDefaults = __webpack_require__(\"4183\");\n\nmodule.exports = function lineDefaults(traceIn, traceOut, defaultColor, layout, coerce, opts) {\n var markerColor = (traceIn.marker || {}).color;\n\n coerce('line.color', defaultColor);\n\n if(hasColorscale(traceIn, 'line')) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'line.', cLetter: 'c'});\n } else {\n var lineColorDflt = (isArrayOrTypedArray(markerColor) ? false : markerColor) || defaultColor;\n coerce('line.color', lineColorDflt);\n }\n\n coerce('line.width');\n if(!(opts || {}).noDash) coerce('line.dash');\n};\n\n\n/***/ }),\n\n/***/ \"59ce\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar tinycolor = __webpack_require__(\"66cb\");\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Color = __webpack_require__(\"d115\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar Plots = __webpack_require__(\"bb71\");\nvar Axes = __webpack_require__(\"0642\");\nvar setConvertCartesian = __webpack_require__(\"1a40\");\nvar setConvertPolar = __webpack_require__(\"7a52\");\nvar doAutoRange = __webpack_require__(\"ce56\").doAutoRange;\nvar dragBox = __webpack_require__(\"9676\");\nvar dragElement = __webpack_require__(\"4efe\");\nvar Fx = __webpack_require__(\"a5c4\");\nvar Titles = __webpack_require__(\"1999\");\nvar prepSelect = __webpack_require__(\"1876\").prepSelect;\nvar selectOnClick = __webpack_require__(\"1876\").selectOnClick;\nvar clearSelect = __webpack_require__(\"1876\").clearSelect;\nvar setCursor = __webpack_require__(\"0f37\");\nvar clearGlCanvases = __webpack_require__(\"821b\");\nvar redrawReglTraces = __webpack_require__(\"a392\").redrawReglTraces;\n\nvar MID_SHIFT = __webpack_require__(\"63dc\").MID_SHIFT;\nvar constants = __webpack_require__(\"f510\");\nvar helpers = __webpack_require__(\"a60f\");\n\nvar _ = Lib._;\nvar mod = Lib.mod;\nvar deg2rad = Lib.deg2rad;\nvar rad2deg = Lib.rad2deg;\n\nfunction Polar(gd, id) {\n this.id = id;\n this.gd = gd;\n\n this._hasClipOnAxisFalse = null;\n this.vangles = null;\n this.radialAxisAngle = null;\n this.traceHash = {};\n this.layers = {};\n this.clipPaths = {};\n this.clipIds = {};\n this.viewInitial = {};\n\n var fullLayout = gd._fullLayout;\n var clipIdBase = 'clip' + fullLayout._uid + id;\n\n this.clipIds.forTraces = clipIdBase + '-for-traces';\n this.clipPaths.forTraces = fullLayout._clips.append('clipPath')\n .attr('id', this.clipIds.forTraces);\n this.clipPaths.forTraces.append('path');\n\n this.framework = fullLayout._polarlayer.append('g')\n .attr('class', id);\n\n // unfortunately, we have to keep track of some axis tick settings\n // as polar subplots do not implement the 'ticks' editType\n this.radialTickLayout = null;\n this.angularTickLayout = null;\n}\n\nvar proto = Polar.prototype;\n\nmodule.exports = function createPolar(gd, id) {\n return new Polar(gd, id);\n};\n\nproto.plot = function(polarCalcData, fullLayout) {\n var _this = this;\n var polarLayout = fullLayout[_this.id];\n\n _this._hasClipOnAxisFalse = false;\n for(var i = 0; i < polarCalcData.length; i++) {\n var trace = polarCalcData[i][0].trace;\n if(trace.cliponaxis === false) {\n _this._hasClipOnAxisFalse = true;\n break;\n }\n }\n\n _this.updateLayers(fullLayout, polarLayout);\n _this.updateLayout(fullLayout, polarLayout);\n Plots.generalUpdatePerTraceModule(_this.gd, _this, polarCalcData, polarLayout);\n _this.updateFx(fullLayout, polarLayout);\n};\n\nproto.updateLayers = function(fullLayout, polarLayout) {\n var _this = this;\n var layers = _this.layers;\n var radialLayout = polarLayout.radialaxis;\n var angularLayout = polarLayout.angularaxis;\n var layerNames = constants.layerNames;\n\n var frontPlotIndex = layerNames.indexOf('frontplot');\n var layerData = layerNames.slice(0, frontPlotIndex);\n var isAngularAxisBelowTraces = angularLayout.layer === 'below traces';\n var isRadialAxisBelowTraces = radialLayout.layer === 'below traces';\n\n if(isAngularAxisBelowTraces) layerData.push('angular-line');\n if(isRadialAxisBelowTraces) layerData.push('radial-line');\n if(isAngularAxisBelowTraces) layerData.push('angular-axis');\n if(isRadialAxisBelowTraces) layerData.push('radial-axis');\n\n layerData.push('frontplot');\n\n if(!isAngularAxisBelowTraces) layerData.push('angular-line');\n if(!isRadialAxisBelowTraces) layerData.push('radial-line');\n if(!isAngularAxisBelowTraces) layerData.push('angular-axis');\n if(!isRadialAxisBelowTraces) layerData.push('radial-axis');\n\n var join = _this.framework.selectAll('.polarsublayer')\n .data(layerData, String);\n\n join.enter().append('g')\n .attr('class', function(d) { return 'polarsublayer ' + d;})\n .each(function(d) {\n var sel = layers[d] = d3.select(this);\n\n switch(d) {\n case 'frontplot':\n // TODO add option to place in 'backplot' layer??\n sel.append('g').classed('barlayer', true);\n sel.append('g').classed('scatterlayer', true);\n break;\n case 'backplot':\n sel.append('g').classed('maplayer', true);\n break;\n case 'plotbg':\n layers.bg = sel.append('path');\n break;\n case 'radial-grid':\n sel.style('fill', 'none');\n break;\n case 'angular-grid':\n sel.style('fill', 'none');\n break;\n case 'radial-line':\n sel.append('line').style('fill', 'none');\n break;\n case 'angular-line':\n sel.append('path').style('fill', 'none');\n break;\n }\n });\n\n join.order();\n};\n\n/* Polar subplots juggle with 6 'axis objects' (!), these are:\n *\n * - polarLayout.radialaxis (aka radialLayout in this file):\n * - polarLayout.angularaxis (aka angularLayout in this file):\n * used for data -> calcdata conversions (aka d2c) during the calc step\n *\n * - this.radialAxis\n * extends polarLayout.radialaxis, adds mocked 'domain' and\n * few other keys in order to reuse Cartesian doAutoRange and the Axes\n * drawing routines.\n * used for calcdata -> geometric conversions (aka c2g) during the plot step\n * + setGeometry setups ax.c2g for given ax.range\n * + setScale setups ax._m,ax._b for given ax.range\n *\n * - this.angularAxis\n * extends polarLayout.angularaxis, adds mocked 'range' and 'domain' and\n * a few other keys in order to reuse the Axes drawing routines.\n * used for calcdata -> geometric conversions (aka c2g) during the plot step\n * + setGeometry setups ax.c2g given ax.rotation, ax.direction & ax._categories,\n * and mocks ax.range\n * + setScale setups ax._m,ax._b with that mocked ax.range\n *\n * - this.xaxis\n * - this.yaxis\n * setup so that polar traces can reuse plot methods of Cartesian traces\n * which mostly rely on 2pixel methods (e.g ax.c2p)\n */\nproto.updateLayout = function(fullLayout, polarLayout) {\n var _this = this;\n var layers = _this.layers;\n var gs = fullLayout._size;\n\n // axis attributes\n var radialLayout = polarLayout.radialaxis;\n var angularLayout = polarLayout.angularaxis;\n // layout domains\n var xDomain = polarLayout.domain.x;\n var yDomain = polarLayout.domain.y;\n // offsets from paper edge to layout domain box\n _this.xOffset = gs.l + gs.w * xDomain[0];\n _this.yOffset = gs.t + gs.h * (1 - yDomain[1]);\n // lengths of the layout domain box\n var xLength = _this.xLength = gs.w * (xDomain[1] - xDomain[0]);\n var yLength = _this.yLength = gs.h * (yDomain[1] - yDomain[0]);\n // sector to plot\n var sector = polarLayout.sector;\n _this.sectorInRad = sector.map(deg2rad);\n var sectorBBox = _this.sectorBBox = computeSectorBBox(sector);\n var dxSectorBBox = sectorBBox[2] - sectorBBox[0];\n var dySectorBBox = sectorBBox[3] - sectorBBox[1];\n // aspect ratios\n var arDomain = yLength / xLength;\n var arSector = Math.abs(dySectorBBox / dxSectorBBox);\n // actual lengths and domains of subplot box\n var xLength2, yLength2;\n var xDomain2, yDomain2;\n var gap;\n if(arDomain > arSector) {\n xLength2 = xLength;\n yLength2 = xLength * arSector;\n gap = (yLength - yLength2) / gs.h / 2;\n xDomain2 = [xDomain[0], xDomain[1]];\n yDomain2 = [yDomain[0] + gap, yDomain[1] - gap];\n } else {\n xLength2 = yLength / arSector;\n yLength2 = yLength;\n gap = (xLength - xLength2) / gs.w / 2;\n xDomain2 = [xDomain[0] + gap, xDomain[1] - gap];\n yDomain2 = [yDomain[0], yDomain[1]];\n }\n _this.xLength2 = xLength2;\n _this.yLength2 = yLength2;\n _this.xDomain2 = xDomain2;\n _this.yDomain2 = yDomain2;\n // actual offsets from paper edge to the subplot box top-left corner\n var xOffset2 = _this.xOffset2 = gs.l + gs.w * xDomain2[0];\n var yOffset2 = _this.yOffset2 = gs.t + gs.h * (1 - yDomain2[1]);\n // circle radius in px\n var radius = _this.radius = xLength2 / dxSectorBBox;\n // 'inner' radius in px (when polar.hole is set)\n var innerRadius = _this.innerRadius = polarLayout.hole * radius;\n // circle center position in px\n var cx = _this.cx = xOffset2 - radius * sectorBBox[0];\n var cy = _this.cy = yOffset2 + radius * sectorBBox[3];\n // circle center in the coordinate system of plot area\n var cxx = _this.cxx = cx - xOffset2;\n var cyy = _this.cyy = cy - yOffset2;\n\n _this.radialAxis = _this.mockAxis(fullLayout, polarLayout, radialLayout, {\n // make this an 'x' axis to make positioning (especially rotation) easier\n _id: 'x',\n // convert to 'x' axis equivalent\n side: {\n counterclockwise: 'top',\n clockwise: 'bottom'\n }[radialLayout.side],\n // spans length 1 radius\n domain: [innerRadius / gs.w, radius / gs.w]\n });\n\n _this.angularAxis = _this.mockAxis(fullLayout, polarLayout, angularLayout, {\n side: 'right',\n // to get auto nticks right\n domain: [0, Math.PI],\n // don't pass through autorange logic\n autorange: false\n });\n\n _this.doAutoRange(fullLayout, polarLayout);\n // N.B. this sets _this.vangles\n _this.updateAngularAxis(fullLayout, polarLayout);\n // N.B. this sets _this.radialAxisAngle\n _this.updateRadialAxis(fullLayout, polarLayout);\n _this.updateRadialAxisTitle(fullLayout, polarLayout);\n\n _this.xaxis = _this.mockCartesianAxis(fullLayout, polarLayout, {\n _id: 'x',\n domain: xDomain2\n });\n\n _this.yaxis = _this.mockCartesianAxis(fullLayout, polarLayout, {\n _id: 'y',\n domain: yDomain2\n });\n\n var dPath = _this.pathSubplot();\n\n _this.clipPaths.forTraces.select('path')\n .attr('d', dPath)\n .attr('transform', strTranslate(cxx, cyy));\n\n layers.frontplot\n .attr('transform', strTranslate(xOffset2, yOffset2))\n .call(Drawing.setClipUrl, _this._hasClipOnAxisFalse ? null : _this.clipIds.forTraces, _this.gd);\n\n layers.bg\n .attr('d', dPath)\n .attr('transform', strTranslate(cx, cy))\n .call(Color.fill, polarLayout.bgcolor);\n};\n\nproto.mockAxis = function(fullLayout, polarLayout, axLayout, opts) {\n var ax = Lib.extendFlat({}, axLayout, opts);\n setConvertPolar(ax, polarLayout, fullLayout);\n return ax;\n};\n\nproto.mockCartesianAxis = function(fullLayout, polarLayout, opts) {\n var _this = this;\n var axId = opts._id;\n\n var ax = Lib.extendFlat({type: 'linear'}, opts);\n setConvertCartesian(ax, fullLayout);\n\n var bboxIndices = {\n x: [0, 2],\n y: [1, 3]\n };\n\n ax.setRange = function() {\n var sectorBBox = _this.sectorBBox;\n var ind = bboxIndices[axId];\n var rl = _this.radialAxis._rl;\n var drl = (rl[1] - rl[0]) / (1 - polarLayout.hole);\n ax.range = [sectorBBox[ind[0]] * drl, sectorBBox[ind[1]] * drl];\n };\n\n ax.isPtWithinRange = axId === 'x' ?\n function(d) { return _this.isPtInside(d); } :\n function() { return true; };\n\n ax.setRange();\n ax.setScale();\n return ax;\n};\n\nproto.doAutoRange = function(fullLayout, polarLayout) {\n var gd = this.gd;\n var radialAxis = this.radialAxis;\n var radialLayout = polarLayout.radialaxis;\n\n radialAxis.setScale();\n doAutoRange(gd, radialAxis);\n\n var rng = radialAxis.range;\n radialLayout.range = rng.slice();\n radialLayout._input.range = rng.slice();\n\n radialAxis._rl = [\n radialAxis.r2l(rng[0], null, 'gregorian'),\n radialAxis.r2l(rng[1], null, 'gregorian')\n ];\n};\n\nproto.updateRadialAxis = function(fullLayout, polarLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var radialLayout = polarLayout.radialaxis;\n var a0 = mod(polarLayout.sector[0], 360);\n var ax = _this.radialAxis;\n var hasRoomForIt = innerRadius < radius;\n\n _this.fillViewInitialKey('radialaxis.angle', radialLayout.angle);\n _this.fillViewInitialKey('radialaxis.range', ax.range.slice());\n\n ax.setGeometry();\n\n // rotate auto tick labels by 180 if in quadrant II and III to make them\n // readable from left-to-right\n //\n // TODO try moving deeper in Axes.drawLabels for better results?\n if(ax.tickangle === 'auto' && (a0 > 90 && a0 <= 270)) {\n ax.tickangle = 180;\n }\n\n // easier to set rotate angle with custom translate function\n var transFn = function(d) {\n return 'translate(' + (ax.l2p(d.x) + innerRadius) + ',0)';\n };\n\n // set special grid path function\n var gridPathFn = function(d) {\n return _this.pathArc(ax.r2p(d.x) + innerRadius);\n };\n\n var newTickLayout = strTickLayout(radialLayout);\n if(_this.radialTickLayout !== newTickLayout) {\n layers['radial-axis'].selectAll('.xtick').remove();\n _this.radialTickLayout = newTickLayout;\n }\n\n if(hasRoomForIt) {\n ax.setScale();\n\n var vals = Axes.calcTicks(ax);\n var valsClipped = Axes.clipEnds(ax, vals);\n var tickSign = Axes.getTickSigns(ax)[2];\n\n Axes.drawTicks(gd, ax, {\n vals: vals,\n layer: layers['radial-axis'],\n path: Axes.makeTickPath(ax, 0, tickSign),\n transFn: transFn,\n crisp: false\n });\n\n Axes.drawGrid(gd, ax, {\n vals: valsClipped,\n layer: layers['radial-grid'],\n path: gridPathFn,\n transFn: Lib.noop,\n crisp: false\n });\n\n Axes.drawLabels(gd, ax, {\n vals: vals,\n layer: layers['radial-axis'],\n transFn: transFn,\n labelFns: Axes.makeLabelFns(ax, 0)\n });\n }\n\n // stash 'actual' radial axis angle for drag handlers (in degrees)\n var angle = _this.radialAxisAngle = _this.vangles ?\n rad2deg(snapToVertexAngle(deg2rad(radialLayout.angle), _this.vangles)) :\n radialLayout.angle;\n\n var tLayer = strTranslate(cx, cy);\n var tLayer2 = tLayer + strRotate(-angle);\n\n updateElement(\n layers['radial-axis'],\n hasRoomForIt && (radialLayout.showticklabels || radialLayout.ticks),\n {transform: tLayer2}\n );\n\n updateElement(\n layers['radial-grid'],\n hasRoomForIt && radialLayout.showgrid,\n {transform: tLayer}\n );\n\n updateElement(\n layers['radial-line'].select('line'),\n hasRoomForIt && radialLayout.showline,\n {\n x1: innerRadius,\n y1: 0,\n x2: radius,\n y2: 0,\n transform: tLayer2\n }\n )\n .attr('stroke-width', radialLayout.linewidth)\n .call(Color.stroke, radialLayout.linecolor);\n};\n\nproto.updateRadialAxisTitle = function(fullLayout, polarLayout, _angle) {\n var _this = this;\n var gd = _this.gd;\n var radius = _this.radius;\n var cx = _this.cx;\n var cy = _this.cy;\n var radialLayout = polarLayout.radialaxis;\n var titleClass = _this.id + 'title';\n\n var angle = _angle !== undefined ? _angle : _this.radialAxisAngle;\n var angleRad = deg2rad(angle);\n var cosa = Math.cos(angleRad);\n var sina = Math.sin(angleRad);\n\n var pad = 0;\n\n // Hint: no need to check if there is in fact a title.text set\n // because if plot is editable, pad needs to be calculated anyways\n // to properly show placeholder text when title is empty.\n if(radialLayout.title) {\n var h = Drawing.bBox(_this.layers['radial-axis'].node()).height;\n var ts = radialLayout.title.font.size;\n pad = radialLayout.side === 'counterclockwise' ?\n -h - ts * 0.4 :\n h + ts * 0.8;\n }\n\n _this.layers['radial-axis-title'] = Titles.draw(gd, titleClass, {\n propContainer: radialLayout,\n propName: _this.id + '.radialaxis.title',\n placeholder: _(gd, 'Click to enter radial axis title'),\n attributes: {\n x: cx + (radius / 2) * cosa + pad * sina,\n y: cy - (radius / 2) * sina + pad * cosa,\n 'text-anchor': 'middle'\n },\n transform: {rotate: -angle}\n });\n};\n\nproto.updateAngularAxis = function(fullLayout, polarLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var angularLayout = polarLayout.angularaxis;\n var ax = _this.angularAxis;\n\n _this.fillViewInitialKey('angularaxis.rotation', angularLayout.rotation);\n\n ax.setGeometry();\n ax.setScale();\n\n // 't'ick to 'g'eometric radians is used all over the place here\n var t2g = function(d) { return ax.t2g(d.x); };\n\n // run rad2deg on tick0 and ditck for thetaunit: 'radians' axes\n if(ax.type === 'linear' && ax.thetaunit === 'radians') {\n ax.tick0 = rad2deg(ax.tick0);\n ax.dtick = rad2deg(ax.dtick);\n }\n\n var _transFn = function(rad) {\n return strTranslate(cx + radius * Math.cos(rad), cy - radius * Math.sin(rad));\n };\n\n var transFn = function(d) {\n return _transFn(t2g(d));\n };\n\n var transFn2 = function(d) {\n var rad = t2g(d);\n return _transFn(rad) + strRotate(-rad2deg(rad));\n };\n\n var gridPathFn = function(d) {\n var rad = t2g(d);\n var cosRad = Math.cos(rad);\n var sinRad = Math.sin(rad);\n return 'M' + [cx + innerRadius * cosRad, cy - innerRadius * sinRad] +\n 'L' + [cx + radius * cosRad, cy - radius * sinRad];\n };\n\n var out = Axes.makeLabelFns(ax, 0);\n var labelStandoff = out.labelStandoff;\n var labelFns = {};\n\n labelFns.xFn = function(d) {\n var rad = t2g(d);\n return Math.cos(rad) * labelStandoff;\n };\n\n labelFns.yFn = function(d) {\n var rad = t2g(d);\n var ff = Math.sin(rad) > 0 ? 0.2 : 1;\n return -Math.sin(rad) * (labelStandoff + d.fontSize * ff) +\n Math.abs(Math.cos(rad)) * (d.fontSize * MID_SHIFT);\n };\n\n labelFns.anchorFn = function(d) {\n var rad = t2g(d);\n var cos = Math.cos(rad);\n return Math.abs(cos) < 0.1 ?\n 'middle' :\n (cos > 0 ? 'start' : 'end');\n };\n\n labelFns.heightFn = function(d, a, h) {\n var rad = t2g(d);\n return -0.5 * (1 + Math.sin(rad)) * h;\n };\n\n var newTickLayout = strTickLayout(angularLayout);\n if(_this.angularTickLayout !== newTickLayout) {\n layers['angular-axis'].selectAll('.' + ax._id + 'tick').remove();\n _this.angularTickLayout = newTickLayout;\n }\n\n var vals = Axes.calcTicks(ax);\n\n // angle of polygon vertices in geometric radians (null means circles)\n // TODO what to do when ax.period > ax._categories ??\n var vangles;\n if(polarLayout.gridshape === 'linear') {\n vangles = vals.map(t2g);\n\n // ax._vals should be always ordered, make them\n // always turn counterclockwise for convenience here\n if(Lib.angleDelta(vangles[0], vangles[1]) < 0) {\n vangles = vangles.slice().reverse();\n }\n } else {\n vangles = null;\n }\n _this.vangles = vangles;\n\n // Use tickval filter for category axes instead of tweaking\n // the range w.r.t sector, so that sectors that cross 360 can\n // show all their ticks.\n if(ax.type === 'category') {\n vals = vals.filter(function(d) {\n return Lib.isAngleInsideSector(t2g(d), _this.sectorInRad);\n });\n }\n\n if(ax.visible) {\n var tickSign = ax.ticks === 'inside' ? -1 : 1;\n var pad = (ax.linewidth || 1) / 2;\n\n Axes.drawTicks(gd, ax, {\n vals: vals,\n layer: layers['angular-axis'],\n path: 'M' + (tickSign * pad) + ',0h' + (tickSign * ax.ticklen),\n transFn: transFn2,\n crisp: false\n });\n\n Axes.drawGrid(gd, ax, {\n vals: vals,\n layer: layers['angular-grid'],\n path: gridPathFn,\n transFn: Lib.noop,\n crisp: false\n });\n\n Axes.drawLabels(gd, ax, {\n vals: vals,\n layer: layers['angular-axis'],\n repositionOnUpdate: true,\n transFn: transFn,\n labelFns: labelFns\n });\n }\n\n // TODO maybe two arcs is better here?\n // maybe split style attributes between inner and outer angular axes?\n\n updateElement(layers['angular-line'].select('path'), angularLayout.showline, {\n d: _this.pathSubplot(),\n transform: strTranslate(cx, cy)\n })\n .attr('stroke-width', angularLayout.linewidth)\n .call(Color.stroke, angularLayout.linecolor);\n};\n\nproto.updateFx = function(fullLayout, polarLayout) {\n if(!this.gd._context.staticPlot) {\n this.updateAngularDrag(fullLayout);\n this.updateRadialDrag(fullLayout, polarLayout, 0);\n this.updateRadialDrag(fullLayout, polarLayout, 1);\n this.updateMainDrag(fullLayout);\n }\n};\n\nproto.updateMainDrag = function(fullLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var zoomlayer = fullLayout._zoomlayer;\n var MINZOOM = constants.MINZOOM;\n var OFFEDGE = constants.OFFEDGE;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var cxx = _this.cxx;\n var cyy = _this.cyy;\n var sectorInRad = _this.sectorInRad;\n var vangles = _this.vangles;\n var radialAxis = _this.radialAxis;\n var clampTiny = helpers.clampTiny;\n var findXYatLength = helpers.findXYatLength;\n var findEnclosingVertexAngles = helpers.findEnclosingVertexAngles;\n var chw = constants.cornerHalfWidth;\n var chl = constants.cornerLen / 2;\n\n var mainDrag = dragBox.makeDragger(layers, 'path', 'maindrag', 'crosshair');\n\n d3.select(mainDrag)\n .attr('d', _this.pathSubplot())\n .attr('transform', strTranslate(cx, cy));\n\n var dragOpts = {\n element: mainDrag,\n gd: gd,\n subplot: _this.id,\n plotinfo: {\n id: _this.id,\n xaxis: _this.xaxis,\n yaxis: _this.yaxis\n },\n xaxes: [_this.xaxis],\n yaxes: [_this.yaxis]\n };\n\n // mouse px position at drag start (0), move (1)\n var x0, y0;\n // radial distance from circle center at drag start (0), move (1)\n var r0, r1;\n // zoombox persistent quantities\n var path0, dimmed, lum;\n // zoombox, corners elements\n var zb, corners;\n\n function norm(x, y) {\n return Math.sqrt(x * x + y * y);\n }\n\n function xy2r(x, y) {\n return norm(x - cxx, y - cyy);\n }\n\n function xy2a(x, y) {\n return Math.atan2(cyy - y, x - cxx);\n }\n\n function ra2xy(r, a) {\n return [r * Math.cos(a), r * Math.sin(-a)];\n }\n\n function pathCorner(r, a) {\n if(r === 0) return _this.pathSector(2 * chw);\n\n var da = chl / r;\n var am = a - da;\n var ap = a + da;\n var rb = Math.max(0, Math.min(r, radius));\n var rm = rb - chw;\n var rp = rb + chw;\n\n return 'M' + ra2xy(rm, am) +\n 'A' + [rm, rm] + ' 0,0,0 ' + ra2xy(rm, ap) +\n 'L' + ra2xy(rp, ap) +\n 'A' + [rp, rp] + ' 0,0,1 ' + ra2xy(rp, am) +\n 'Z';\n }\n\n // (x,y) is the pt at middle of the va0 <-> va1 edge\n //\n // ... we could eventually add another mode for cursor\n // angles 'close to' enough to a particular vertex.\n function pathCornerForPolygons(r, va0, va1) {\n if(r === 0) return _this.pathSector(2 * chw);\n\n var xy0 = ra2xy(r, va0);\n var xy1 = ra2xy(r, va1);\n var x = clampTiny((xy0[0] + xy1[0]) / 2);\n var y = clampTiny((xy0[1] + xy1[1]) / 2);\n var innerPts, outerPts;\n\n if(x && y) {\n var m = y / x;\n var mperp = -1 / m;\n var midPts = findXYatLength(chw, m, x, y);\n innerPts = findXYatLength(chl, mperp, midPts[0][0], midPts[0][1]);\n outerPts = findXYatLength(chl, mperp, midPts[1][0], midPts[1][1]);\n } else {\n var dx, dy;\n if(y) {\n // horizontal handles\n dx = chl;\n dy = chw;\n } else {\n // vertical handles\n dx = chw;\n dy = chl;\n }\n innerPts = [[x - dx, y - dy], [x + dx, y - dy]];\n outerPts = [[x - dx, y + dy], [x + dx, y + dy]];\n }\n\n return 'M' + innerPts.join('L') +\n 'L' + outerPts.reverse().join('L') + 'Z';\n }\n\n function zoomPrep() {\n r0 = null;\n r1 = null;\n path0 = _this.pathSubplot();\n dimmed = false;\n\n var polarLayoutNow = gd._fullLayout[_this.id];\n lum = tinycolor(polarLayoutNow.bgcolor).getLuminance();\n\n zb = dragBox.makeZoombox(zoomlayer, lum, cx, cy, path0);\n zb.attr('fill-rule', 'evenodd');\n corners = dragBox.makeCorners(zoomlayer, cx, cy);\n clearSelect(gd);\n }\n\n // N.B. this sets scoped 'r0' and 'r1'\n // return true if 'valid' zoom distance, false otherwise\n function clampAndSetR0R1(rr0, rr1) {\n rr1 = Math.max(Math.min(rr1, radius), innerRadius);\n\n // starting or ending drag near center (outer edge),\n // clamps radial distance at origin (at r=radius)\n if(rr0 < OFFEDGE) rr0 = 0;\n else if((radius - rr0) < OFFEDGE) rr0 = radius;\n else if(rr1 < OFFEDGE) rr1 = 0;\n else if((radius - rr1) < OFFEDGE) rr1 = radius;\n\n // make sure r0 < r1,\n // to get correct fill pattern in path1 below\n if(Math.abs(rr1 - rr0) > MINZOOM) {\n if(rr0 < rr1) {\n r0 = rr0;\n r1 = rr1;\n } else {\n r0 = rr1;\n r1 = rr0;\n }\n return true;\n } else {\n r0 = null;\n r1 = null;\n return false;\n }\n }\n\n function applyZoomMove(path1, cpath) {\n path1 = path1 || path0;\n cpath = cpath || 'M0,0Z';\n\n zb.attr('d', path1);\n corners.attr('d', cpath);\n dragBox.transitionZoombox(zb, corners, dimmed, lum);\n dimmed = true;\n\n var updateObj = {};\n computeZoomUpdates(updateObj);\n gd.emit('plotly_relayouting', updateObj);\n }\n\n function zoomMove(dx, dy) {\n var x1 = x0 + dx;\n var y1 = y0 + dy;\n var rr0 = xy2r(x0, y0);\n var rr1 = Math.min(xy2r(x1, y1), radius);\n var a0 = xy2a(x0, y0);\n var path1;\n var cpath;\n\n if(clampAndSetR0R1(rr0, rr1)) {\n path1 = path0 + _this.pathSector(r1);\n if(r0) path1 += _this.pathSector(r0);\n // keep 'starting' angle\n cpath = pathCorner(r0, a0) + pathCorner(r1, a0);\n }\n applyZoomMove(path1, cpath);\n }\n\n function findPolygonRadius(x, y, va0, va1) {\n var xy = helpers.findIntersectionXY(va0, va1, va0, [x - cxx, cyy - y]);\n return norm(xy[0], xy[1]);\n }\n\n function zoomMoveForPolygons(dx, dy) {\n var x1 = x0 + dx;\n var y1 = y0 + dy;\n var a0 = xy2a(x0, y0);\n var a1 = xy2a(x1, y1);\n var vangles0 = findEnclosingVertexAngles(a0, vangles);\n var vangles1 = findEnclosingVertexAngles(a1, vangles);\n var rr0 = findPolygonRadius(x0, y0, vangles0[0], vangles0[1]);\n var rr1 = Math.min(findPolygonRadius(x1, y1, vangles1[0], vangles1[1]), radius);\n var path1;\n var cpath;\n\n if(clampAndSetR0R1(rr0, rr1)) {\n path1 = path0 + _this.pathSector(r1);\n if(r0) path1 += _this.pathSector(r0);\n // keep 'starting' angle here too\n cpath = [\n pathCornerForPolygons(r0, vangles0[0], vangles0[1]),\n pathCornerForPolygons(r1, vangles0[0], vangles0[1])\n ].join(' ');\n }\n applyZoomMove(path1, cpath);\n }\n\n function zoomDone() {\n dragBox.removeZoombox(gd);\n\n if(r0 === null || r1 === null) return;\n var updateObj = {};\n computeZoomUpdates(updateObj);\n\n dragBox.showDoubleClickNotifier(gd);\n\n Registry.call('_guiRelayout', gd, updateObj);\n }\n\n function computeZoomUpdates(update) {\n var rl = radialAxis._rl;\n var m = (rl[1] - rl[0]) / (1 - innerRadius / radius) / radius;\n var newRng = [\n rl[0] + (r0 - innerRadius) * m,\n rl[0] + (r1 - innerRadius) * m\n ];\n update[_this.id + '.radialaxis.range'] = newRng;\n }\n\n function zoomClick(numClicks, evt) {\n var clickMode = gd._fullLayout.clickmode;\n\n dragBox.removeZoombox(gd);\n\n // TODO double once vs twice logic (autorange vs fixed range)\n if(numClicks === 2) {\n var updateObj = {};\n for(var k in _this.viewInitial) {\n updateObj[_this.id + '.' + k] = _this.viewInitial[k];\n }\n\n gd.emit('plotly_doubleclick', null);\n Registry.call('_guiRelayout', gd, updateObj);\n }\n\n if(clickMode.indexOf('select') > -1 && numClicks === 1) {\n selectOnClick(evt, gd, [_this.xaxis], [_this.yaxis], _this.id, dragOpts);\n }\n\n if(clickMode.indexOf('event') > -1) {\n Fx.click(gd, evt, _this.id);\n }\n }\n\n dragOpts.prepFn = function(evt, startX, startY) {\n var dragModeNow = gd._fullLayout.dragmode;\n\n var bbox = mainDrag.getBoundingClientRect();\n x0 = startX - bbox.left;\n y0 = startY - bbox.top;\n\n // need to offset x/y as bbox center does not\n // match origin for asymmetric polygons\n if(vangles) {\n var offset = helpers.findPolygonOffset(radius, sectorInRad[0], sectorInRad[1], vangles);\n x0 += cxx + offset[0];\n y0 += cyy + offset[1];\n }\n\n switch(dragModeNow) {\n case 'zoom':\n if(vangles) {\n dragOpts.moveFn = zoomMoveForPolygons;\n } else {\n dragOpts.moveFn = zoomMove;\n }\n dragOpts.clickFn = zoomClick;\n dragOpts.doneFn = zoomDone;\n zoomPrep(evt, startX, startY);\n break;\n case 'select':\n case 'lasso':\n prepSelect(evt, startX, startY, dragOpts, dragModeNow);\n break;\n }\n };\n\n mainDrag.onmousemove = function(evt) {\n Fx.hover(gd, evt, _this.id);\n gd._fullLayout._lasthover = mainDrag;\n gd._fullLayout._hoversubplot = _this.id;\n };\n\n mainDrag.onmouseout = function(evt) {\n if(gd._dragging) return;\n dragElement.unhover(gd, evt);\n };\n\n dragElement.init(dragOpts);\n};\n\nproto.updateRadialDrag = function(fullLayout, polarLayout, rngIndex) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var radialAxis = _this.radialAxis;\n var bl = constants.radialDragBoxSize;\n var bl2 = bl / 2;\n\n if(!radialAxis.visible) return;\n\n var angle0 = deg2rad(_this.radialAxisAngle);\n var rl = radialAxis._rl;\n var rl0 = rl[0];\n var rl1 = rl[1];\n var rbase = rl[rngIndex];\n var m = 0.75 * (rl[1] - rl[0]) / (1 - polarLayout.hole) / radius;\n\n var tx, ty, className;\n if(rngIndex) {\n tx = cx + (radius + bl2) * Math.cos(angle0);\n ty = cy - (radius + bl2) * Math.sin(angle0);\n className = 'radialdrag';\n } else {\n // the 'inner' box can get called:\n // - when polar.hole>0\n // - when polar.sector isn't a full circle\n // otherwise it is hidden behind the main drag.\n tx = cx + (innerRadius - bl2) * Math.cos(angle0);\n ty = cy - (innerRadius - bl2) * Math.sin(angle0);\n className = 'radialdrag-inner';\n }\n\n var radialDrag = dragBox.makeRectDragger(layers, className, 'crosshair', -bl2, -bl2, bl, bl);\n var dragOpts = {element: radialDrag, gd: gd};\n\n updateElement(d3.select(radialDrag), radialAxis.visible && innerRadius < radius, {\n transform: strTranslate(tx, ty)\n });\n\n // move function (either rotate or re-range flavor)\n var moveFn2;\n // rotate angle on done\n var angle1;\n // re-range range[1] (or range[0]) on done\n var rprime;\n\n function moveFn(dx, dy) {\n if(moveFn2) {\n moveFn2(dx, dy);\n } else {\n var dvec = [dx, -dy];\n var rvec = [Math.cos(angle0), Math.sin(angle0)];\n var comp = Math.abs(Lib.dot(dvec, rvec) / Math.sqrt(Lib.dot(dvec, dvec)));\n\n // mostly perpendicular motions rotate,\n // mostly parallel motions re-range\n if(!isNaN(comp)) {\n moveFn2 = comp < 0.5 ? rotateMove : rerangeMove;\n }\n }\n\n var update = {};\n computeRadialAxisUpdates(update);\n gd.emit('plotly_relayouting', update);\n }\n\n function computeRadialAxisUpdates(update) {\n if(angle1 !== null) {\n update[_this.id + '.radialaxis.angle'] = angle1;\n } else if(rprime !== null) {\n update[_this.id + '.radialaxis.range[' + rngIndex + ']'] = rprime;\n }\n }\n\n function doneFn() {\n if(angle1 !== null) {\n Registry.call('_guiRelayout', gd, _this.id + '.radialaxis.angle', angle1);\n } else if(rprime !== null) {\n Registry.call('_guiRelayout', gd, _this.id + '.radialaxis.range[' + rngIndex + ']', rprime);\n }\n }\n\n function rotateMove(dx, dy) {\n // disable for inner drag boxes\n if(rngIndex === 0) return;\n\n var x1 = tx + dx;\n var y1 = ty + dy;\n\n angle1 = Math.atan2(cy - y1, x1 - cx);\n if(_this.vangles) angle1 = snapToVertexAngle(angle1, _this.vangles);\n angle1 = rad2deg(angle1);\n\n var transform = strTranslate(cx, cy) + strRotate(-angle1);\n layers['radial-axis'].attr('transform', transform);\n layers['radial-line'].select('line').attr('transform', transform);\n\n var fullLayoutNow = _this.gd._fullLayout;\n var polarLayoutNow = fullLayoutNow[_this.id];\n _this.updateRadialAxisTitle(fullLayoutNow, polarLayoutNow, angle1);\n }\n\n function rerangeMove(dx, dy) {\n // project (dx, dy) unto unit radial axis vector\n var dr = Lib.dot([dx, -dy], [Math.cos(angle0), Math.sin(angle0)]);\n rprime = rbase - m * dr;\n\n // make sure rprime does not change the range[0] -> range[1] sign\n if((m > 0) !== (rngIndex ? rprime > rl0 : rprime < rl1)) {\n rprime = null;\n return;\n }\n\n var fullLayoutNow = gd._fullLayout;\n var polarLayoutNow = fullLayoutNow[_this.id];\n\n // update radial range -> update c2g -> update _m,_b\n radialAxis.range[rngIndex] = rprime;\n radialAxis._rl[rngIndex] = rprime;\n _this.updateRadialAxis(fullLayoutNow, polarLayoutNow);\n\n _this.xaxis.setRange();\n _this.xaxis.setScale();\n _this.yaxis.setRange();\n _this.yaxis.setScale();\n\n var hasRegl = false;\n\n for(var traceType in _this.traceHash) {\n var moduleCalcData = _this.traceHash[traceType];\n var moduleCalcDataVisible = Lib.filterVisible(moduleCalcData);\n var _module = moduleCalcData[0][0].trace._module;\n _module.plot(gd, _this, moduleCalcDataVisible, polarLayoutNow);\n if(Registry.traceIs(traceType, 'gl') && moduleCalcDataVisible.length) hasRegl = true;\n }\n\n if(hasRegl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n }\n\n dragOpts.prepFn = function() {\n moveFn2 = null;\n angle1 = null;\n rprime = null;\n\n dragOpts.moveFn = moveFn;\n dragOpts.doneFn = doneFn;\n\n clearSelect(gd);\n };\n\n dragOpts.clampFn = function(dx, dy) {\n if(Math.sqrt(dx * dx + dy * dy) < constants.MINDRAG) {\n dx = 0;\n dy = 0;\n }\n return [dx, dy];\n };\n\n dragElement.init(dragOpts);\n};\n\nproto.updateAngularDrag = function(fullLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var angularAxis = _this.angularAxis;\n var cx = _this.cx;\n var cy = _this.cy;\n var cxx = _this.cxx;\n var cyy = _this.cyy;\n var dbs = constants.angularDragBoxSize;\n\n var angularDrag = dragBox.makeDragger(layers, 'path', 'angulardrag', 'move');\n var dragOpts = {element: angularDrag, gd: gd};\n\n d3.select(angularDrag)\n .attr('d', _this.pathAnnulus(radius, radius + dbs))\n .attr('transform', strTranslate(cx, cy))\n .call(setCursor, 'move');\n\n function xy2a(x, y) {\n return Math.atan2(cyy + dbs - y, x - cxx - dbs);\n }\n\n // scatter trace, points and textpoints selections\n var scatterTraces = layers.frontplot.select('.scatterlayer').selectAll('.trace');\n var scatterPoints = scatterTraces.selectAll('.point');\n var scatterTextPoints = scatterTraces.selectAll('.textpoint');\n\n // mouse px position at drag start (0), move (1)\n var x0, y0;\n // angular axis angle rotation at drag start (0), move (1)\n var rot0, rot1;\n // induced radial axis rotation (only used on polygon grids)\n var rrot1;\n // angle about circle center at drag start\n var a0;\n\n function moveFn(dx, dy) {\n var fullLayoutNow = _this.gd._fullLayout;\n var polarLayoutNow = fullLayoutNow[_this.id];\n\n var x1 = x0 + dx;\n var y1 = y0 + dy;\n var a1 = xy2a(x1, y1);\n var da = rad2deg(a1 - a0);\n rot1 = rot0 + da;\n\n layers.frontplot.attr('transform',\n strTranslate(_this.xOffset2, _this.yOffset2) + strRotate([-da, cxx, cyy])\n );\n\n if(_this.vangles) {\n rrot1 = _this.radialAxisAngle + da;\n\n var trans = strTranslate(cx, cy) + strRotate(-da);\n var trans2 = strTranslate(cx, cy) + strRotate(-rrot1);\n\n layers.bg.attr('transform', trans);\n layers['radial-grid'].attr('transform', trans);\n layers['radial-axis'].attr('transform', trans2);\n layers['radial-line'].select('line').attr('transform', trans2);\n _this.updateRadialAxisTitle(fullLayoutNow, polarLayoutNow, rrot1);\n } else {\n _this.clipPaths.forTraces.select('path').attr('transform',\n strTranslate(cxx, cyy) + strRotate(da)\n );\n }\n\n // 'un-rotate' marker and text points\n scatterPoints.each(function() {\n var sel = d3.select(this);\n var xy = Drawing.getTranslate(sel);\n sel.attr('transform', strTranslate(xy.x, xy.y) + strRotate([da]));\n });\n scatterTextPoints.each(function() {\n var sel = d3.select(this);\n var tx = sel.select('text');\n var xy = Drawing.getTranslate(sel);\n // N.B rotate -> translate ordering matters\n sel.attr('transform', strRotate([da, tx.attr('x'), tx.attr('y')]) + strTranslate(xy.x, xy.y));\n });\n\n // update rotation -> range -> _m,_b\n angularAxis.rotation = Lib.modHalf(rot1, 360);\n _this.updateAngularAxis(fullLayoutNow, polarLayoutNow);\n\n if(_this._hasClipOnAxisFalse && !Lib.isFullCircle(_this.sectorInRad)) {\n scatterTraces.call(Drawing.hideOutsideRangePoints, _this);\n }\n\n var hasRegl = false;\n\n for(var traceType in _this.traceHash) {\n if(Registry.traceIs(traceType, 'gl')) {\n var moduleCalcData = _this.traceHash[traceType];\n var moduleCalcDataVisible = Lib.filterVisible(moduleCalcData);\n var _module = moduleCalcData[0][0].trace._module;\n _module.plot(gd, _this, moduleCalcDataVisible, polarLayoutNow);\n if(moduleCalcDataVisible.length) hasRegl = true;\n }\n }\n\n if(hasRegl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n\n var update = {};\n computeRotationUpdates(update);\n gd.emit('plotly_relayouting', update);\n }\n\n function computeRotationUpdates(updateObj) {\n updateObj[_this.id + '.angularaxis.rotation'] = rot1;\n\n if(_this.vangles) {\n updateObj[_this.id + '.radialaxis.angle'] = rrot1;\n }\n }\n\n function doneFn() {\n scatterTextPoints.select('text').attr('transform', null);\n\n var updateObj = {};\n computeRotationUpdates(updateObj);\n Registry.call('_guiRelayout', gd, updateObj);\n }\n\n dragOpts.prepFn = function(evt, startX, startY) {\n var polarLayoutNow = fullLayout[_this.id];\n rot0 = polarLayoutNow.angularaxis.rotation;\n\n var bbox = angularDrag.getBoundingClientRect();\n x0 = startX - bbox.left;\n y0 = startY - bbox.top;\n a0 = xy2a(x0, y0);\n\n dragOpts.moveFn = moveFn;\n dragOpts.doneFn = doneFn;\n\n clearSelect(gd);\n };\n\n // I don't what we should do in this case, skip we now\n if(_this.vangles && !Lib.isFullCircle(_this.sectorInRad)) {\n dragOpts.prepFn = Lib.noop;\n setCursor(d3.select(angularDrag), null);\n }\n\n dragElement.init(dragOpts);\n};\n\nproto.isPtInside = function(d) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var thetag = this.angularAxis.c2g(d.theta);\n var radialAxis = this.radialAxis;\n var r = radialAxis.c2l(d.r);\n var rl = radialAxis._rl;\n\n var fn = vangles ? helpers.isPtInsidePolygon : Lib.isPtInsideSector;\n return fn(r, thetag, rl, sectorInRad, vangles);\n};\n\nproto.pathArc = function(r) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var fn = vangles ? helpers.pathPolygon : Lib.pathArc;\n return fn(r, sectorInRad[0], sectorInRad[1], vangles);\n};\n\nproto.pathSector = function(r) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var fn = vangles ? helpers.pathPolygon : Lib.pathSector;\n return fn(r, sectorInRad[0], sectorInRad[1], vangles);\n};\n\nproto.pathAnnulus = function(r0, r1) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var fn = vangles ? helpers.pathPolygonAnnulus : Lib.pathAnnulus;\n return fn(r0, r1, sectorInRad[0], sectorInRad[1], vangles);\n};\n\nproto.pathSubplot = function() {\n var r0 = this.innerRadius;\n var r1 = this.radius;\n return r0 ? this.pathAnnulus(r0, r1) : this.pathSector(r1);\n};\n\nproto.fillViewInitialKey = function(key, val) {\n if(!(key in this.viewInitial)) {\n this.viewInitial[key] = val;\n }\n};\n\nfunction strTickLayout(axLayout) {\n var out = axLayout.ticks + String(axLayout.ticklen) + String(axLayout.showticklabels);\n if('side' in axLayout) out += axLayout.side;\n return out;\n}\n\n// Finds the bounding box of a given circle sector,\n// inspired by https://math.stackexchange.com/q/1852703\n//\n// assumes:\n// - sector[0] < sector[1]\n// - counterclockwise rotation\nfunction computeSectorBBox(sector) {\n var s0 = sector[0];\n var s1 = sector[1];\n var arc = s1 - s0;\n var a0 = mod(s0, 360);\n var a1 = a0 + arc;\n\n var ax0 = Math.cos(deg2rad(a0));\n var ay0 = Math.sin(deg2rad(a0));\n var ax1 = Math.cos(deg2rad(a1));\n var ay1 = Math.sin(deg2rad(a1));\n\n var x0, y0, x1, y1;\n\n if((a0 <= 90 && a1 >= 90) || (a0 > 90 && a1 >= 450)) {\n y1 = 1;\n } else if(ay0 <= 0 && ay1 <= 0) {\n y1 = 0;\n } else {\n y1 = Math.max(ay0, ay1);\n }\n\n if((a0 <= 180 && a1 >= 180) || (a0 > 180 && a1 >= 540)) {\n x0 = -1;\n } else if(ax0 >= 0 && ax1 >= 0) {\n x0 = 0;\n } else {\n x0 = Math.min(ax0, ax1);\n }\n\n if((a0 <= 270 && a1 >= 270) || (a0 > 270 && a1 >= 630)) {\n y0 = -1;\n } else if(ay0 >= 0 && ay1 >= 0) {\n y0 = 0;\n } else {\n y0 = Math.min(ay0, ay1);\n }\n\n if(a1 >= 360) {\n x1 = 1;\n } else if(ax0 <= 0 && ax1 <= 0) {\n x1 = 0;\n } else {\n x1 = Math.max(ax0, ax1);\n }\n\n return [x0, y0, x1, y1];\n}\n\nfunction snapToVertexAngle(a, vangles) {\n var fn = function(v) { return Lib.angleDist(a, v); };\n var ind = Lib.findIndexOfMin(vangles, fn);\n return vangles[ind];\n}\n\nfunction updateElement(sel, showAttr, attrs) {\n if(showAttr) {\n sel.attr('display', null);\n sel.attr(attrs);\n } else if(sel) {\n sel.attr('display', 'none');\n }\n return sel;\n}\n\nfunction strTranslate(x, y) {\n return 'translate(' + x + ',' + y + ')';\n}\n\nfunction strRotate(angle) {\n return 'rotate(' + angle + ')';\n}\n\n\n/***/ }),\n\n/***/ \"59e0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nexports.formatPiePercent = function formatPiePercent(v, separators) {\n var vRounded = (v * 100).toPrecision(3);\n if(vRounded.lastIndexOf('.') !== -1) {\n vRounded = vRounded.replace(/[.]?0+$/, '');\n }\n return Lib.numSeparate(vRounded, separators) + '%';\n};\n\nexports.formatPieValue = function formatPieValue(v, separators) {\n var vRounded = v.toPrecision(10);\n if(vRounded.lastIndexOf('.') !== -1) {\n vRounded = vRounded.replace(/[.]?0+$/, '');\n }\n return Lib.numSeparate(vRounded, separators);\n};\n\nexports.getFirstFilled = function getFirstFilled(array, indices) {\n if(!Array.isArray(array)) return;\n for(var i = 0; i < indices.length; i++) {\n var v = array[indices[i]];\n if(v || v === 0 || v === '') return v;\n }\n};\n\nexports.castOption = function castOption(item, indices) {\n if(Array.isArray(item)) return exports.getFirstFilled(item, indices);\n else if(item) return item;\n};\n\n\n/***/ }),\n\n/***/ \"5a1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n/**\n * Push array with unique items\n *\n * Ignores falsy items, except 0 so we can use it to construct arrays of indices.\n *\n * @param {array} array\n * array to be filled\n * @param {any} item\n * item to be or not to be inserted\n * @return {array}\n * ref to array (now possibly containing one more item)\n *\n */\nmodule.exports = function pushUnique(array, item) {\n if(item instanceof RegExp) {\n var itemStr = item.toString();\n for(var i = 0; i < array.length; i++) {\n if(array[i] instanceof RegExp && array[i].toString() === itemStr) {\n return array;\n }\n }\n array.push(item);\n } else if((item || item === 0) && array.indexOf(item) === -1) array.push(item);\n\n return array;\n};\n\n\n/***/ }),\n\n/***/ \"5a1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar Color = __webpack_require__(\"d115\");\n\nvar ARROWPATHS = __webpack_require__(\"a935\");\n\n/**\n * Add arrowhead(s) to a path or line element\n *\n * @param {d3.selection} el3: a d3-selected line or path element\n *\n * @param {string} ends: 'none', 'start', 'end', or 'start+end' for which ends get arrowheads\n *\n * @param {object} options: style information. Must have all the following:\n * @param {number} options.arrowhead: end head style - see ./arrow_paths\n * @param {number} options.startarrowhead: start head style - see ./arrow_paths\n * @param {number} options.arrowsize: relative size of the end head vs line width\n * @param {number} options.startarrowsize: relative size of the start head vs line width\n * @param {number} options.standoff: distance in px to move the end arrow point from its target\n * @param {number} options.startstandoff: distance in px to move the start arrow point from its target\n * @param {number} options.arrowwidth: width of the arrow line\n * @param {string} options.arrowcolor: color of the arrow line, for the head to match\n * Note that the opacity of this color is ignored, as it's assumed the container\n * of both the line and head has opacity applied to it so there isn't greater opacity\n * where they overlap.\n */\nmodule.exports = function drawArrowHead(el3, ends, options) {\n var el = el3.node();\n var headStyle = ARROWPATHS[options.arrowhead || 0];\n var startHeadStyle = ARROWPATHS[options.startarrowhead || 0];\n var scale = (options.arrowwidth || 1) * (options.arrowsize || 1);\n var startScale = (options.arrowwidth || 1) * (options.startarrowsize || 1);\n var doStart = ends.indexOf('start') >= 0;\n var doEnd = ends.indexOf('end') >= 0;\n var backOff = headStyle.backoff * scale + options.standoff;\n var startBackOff = startHeadStyle.backoff * startScale + options.startstandoff;\n\n var start, end, startRot, endRot;\n\n if(el.nodeName === 'line') {\n start = {x: +el3.attr('x1'), y: +el3.attr('y1')};\n end = {x: +el3.attr('x2'), y: +el3.attr('y2')};\n\n var dx = start.x - end.x;\n var dy = start.y - end.y;\n\n startRot = Math.atan2(dy, dx);\n endRot = startRot + Math.PI;\n if(backOff && startBackOff) {\n if(backOff + startBackOff > Math.sqrt(dx * dx + dy * dy)) {\n hideLine();\n return;\n }\n }\n\n if(backOff) {\n if(backOff * backOff > dx * dx + dy * dy) {\n hideLine();\n return;\n }\n var backOffX = backOff * Math.cos(startRot);\n var backOffY = backOff * Math.sin(startRot);\n\n end.x += backOffX;\n end.y += backOffY;\n el3.attr({x2: end.x, y2: end.y});\n }\n\n if(startBackOff) {\n if(startBackOff * startBackOff > dx * dx + dy * dy) {\n hideLine();\n return;\n }\n var startBackOffX = startBackOff * Math.cos(startRot);\n var startbackOffY = startBackOff * Math.sin(startRot);\n\n start.x -= startBackOffX;\n start.y -= startbackOffY;\n el3.attr({x1: start.x, y1: start.y});\n }\n } else if(el.nodeName === 'path') {\n var pathlen = el.getTotalLength();\n // using dash to hide the backOff region of the path.\n // if we ever allow dash for the arrow we'll have to\n // do better than this hack... maybe just manually\n // combine the two\n var dashArray = '';\n\n if(pathlen < backOff + startBackOff) {\n hideLine();\n return;\n }\n\n\n var start0 = el.getPointAtLength(0);\n var dstart = el.getPointAtLength(0.1);\n\n startRot = Math.atan2(start0.y - dstart.y, start0.x - dstart.x);\n start = el.getPointAtLength(Math.min(startBackOff, pathlen));\n\n dashArray = '0px,' + startBackOff + 'px,';\n\n var end0 = el.getPointAtLength(pathlen);\n var dend = el.getPointAtLength(pathlen - 0.1);\n\n endRot = Math.atan2(end0.y - dend.y, end0.x - dend.x);\n end = el.getPointAtLength(Math.max(0, pathlen - backOff));\n\n var shortening = dashArray ? startBackOff + backOff : backOff;\n dashArray += (pathlen - shortening) + 'px,' + pathlen + 'px';\n\n el3.style('stroke-dasharray', dashArray);\n }\n\n function hideLine() { el3.style('stroke-dasharray', '0px,100px'); }\n\n function drawhead(arrowHeadStyle, p, rot, arrowScale) {\n if(!arrowHeadStyle.path) return;\n if(arrowHeadStyle.noRotate) rot = 0;\n\n d3.select(el.parentNode).append('path')\n .attr({\n 'class': el3.attr('class'),\n d: arrowHeadStyle.path,\n transform:\n 'translate(' + p.x + ',' + p.y + ')' +\n (rot ? 'rotate(' + (rot * 180 / Math.PI) + ')' : '') +\n 'scale(' + arrowScale + ')'\n })\n .style({\n fill: Color.rgb(options.arrowcolor),\n 'stroke-width': 0\n });\n }\n\n if(doStart) drawhead(startHeadStyle, start, startRot, startScale);\n if(doEnd) drawhead(headStyle, end, endRot, scale);\n};\n\n\n/***/ }),\n\n/***/ \"5aa9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bn2num = __webpack_require__(\"0948\")\nvar ctz = __webpack_require__(\"7223\")\n\nmodule.exports = roundRat\n\n// Round a rational to the closest float\nfunction roundRat (f) {\n var a = f[0]\n var b = f[1]\n if (a.cmpn(0) === 0) {\n return 0\n }\n var h = a.abs().divmod(b.abs())\n var iv = h.div\n var x = bn2num(iv)\n var ir = h.mod\n var sgn = (a.negative !== b.negative) ? -1 : 1\n if (ir.cmpn(0) === 0) {\n return sgn * x\n }\n if (x) {\n var s = ctz(x) + 4\n var y = bn2num(ir.ushln(s).divRound(b))\n return sgn * (x + y * Math.pow(2, -s))\n } else {\n var ybits = b.bitLength() - ir.bitLength() + 53\n var y = bn2num(ir.ushln(ybits).divRound(b))\n if (ybits < 1023) {\n return sgn * y * Math.pow(2, -ybits)\n }\n y *= Math.pow(2, -1023)\n return sgn * y * Math.pow(2, 1023 - ybits)\n }\n}\n\n\n/***/ }),\n\n/***/ \"5aae\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar scatterAttrs = __webpack_require__(\"107c\");\nvar baseAttrs = __webpack_require__(\"a876\");\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar texttemplateAttrs = __webpack_require__(\"94d5\").texttemplateAttrs;\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nvar scatterMarkerAttrs = scatterAttrs.marker;\nvar scatterLineAttrs = scatterAttrs.line;\nvar scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n\nmodule.exports = {\n carpet: {\n valType: 'string',\n \n editType: 'calc',\n \n },\n a: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n b: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n mode: extendFlat({}, scatterAttrs.mode, {dflt: 'markers'}),\n text: extendFlat({}, scatterAttrs.text, {\n \n }),\n texttemplate: texttemplateAttrs({editType: 'plot'}, {\n keys: ['a', 'b', 'text']\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {\n \n }),\n line: {\n color: scatterLineAttrs.color,\n width: scatterLineAttrs.width,\n dash: scatterLineAttrs.dash,\n shape: extendFlat({}, scatterLineAttrs.shape,\n {values: ['linear', 'spline']}),\n smoothing: scatterLineAttrs.smoothing,\n editType: 'calc'\n },\n connectgaps: scatterAttrs.connectgaps,\n fill: extendFlat({}, scatterAttrs.fill, {\n values: ['none', 'toself', 'tonext'],\n dflt: 'none',\n \n }),\n fillcolor: scatterAttrs.fillcolor,\n marker: extendFlat({\n symbol: scatterMarkerAttrs.symbol,\n opacity: scatterMarkerAttrs.opacity,\n maxdisplayed: scatterMarkerAttrs.maxdisplayed,\n size: scatterMarkerAttrs.size,\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n line: extendFlat({\n width: scatterMarkerLineAttrs.width,\n editType: 'calc'\n },\n colorScaleAttrs('marker.line')\n ),\n gradient: scatterMarkerAttrs.gradient,\n editType: 'calc'\n },\n colorScaleAttrs('marker')\n ),\n\n textfont: scatterAttrs.textfont,\n textposition: scatterAttrs.textposition,\n\n selected: scatterAttrs.selected,\n unselected: scatterAttrs.unselected,\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: ['a', 'b', 'text', 'name']\n }),\n hoveron: scatterAttrs.hoveron,\n hovertemplate: hovertemplateAttrs()\n};\n\n\n/***/ }),\n\n/***/ \"5ad1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n// var Lib = require('../../lib');\n\nfunction calc(gd, trace) {\n var cd = [];\n\n var lastReading = trace.value;\n if(!(typeof trace._lastValue === 'number')) trace._lastValue = trace.value;\n var secondLastReading = trace._lastValue;\n var deltaRef = secondLastReading;\n if(trace._hasDelta && typeof trace.delta.reference === 'number') {\n deltaRef = trace.delta.reference;\n }\n cd[0] = {\n y: lastReading,\n lastY: secondLastReading,\n\n delta: lastReading - deltaRef,\n relativeDelta: (lastReading - deltaRef) / deltaRef,\n };\n return cd;\n}\n\nmodule.exports = {\n calc: calc\n};\n\n\n/***/ }),\n\n/***/ \"5ad3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(\"f6a2\")\n\r\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbIkY6L3NvdXJjZS92dWUtcGxvdGx5LmpzL25vZGVfbW9kdWxlcy9wb2ludC1jbHVzdGVyL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vcXVhZCcpXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaO0FBQ0EsTUFBTSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDOyJ9\n\n/***/ }),\n\n/***/ \"5b68\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n mode: {\n valType: 'enumerated',\n dflt: 'afterall',\n \n values: ['immediate', 'next', 'afterall'],\n \n },\n direction: {\n valType: 'enumerated',\n \n values: ['forward', 'reverse'],\n dflt: 'forward',\n \n },\n fromcurrent: {\n valType: 'boolean',\n dflt: false,\n \n \n },\n frame: {\n duration: {\n valType: 'number',\n \n min: 0,\n dflt: 500,\n \n },\n redraw: {\n valType: 'boolean',\n \n dflt: true,\n \n },\n },\n transition: {\n duration: {\n valType: 'number',\n \n min: 0,\n dflt: 500,\n editType: 'none',\n \n },\n easing: {\n valType: 'enumerated',\n dflt: 'cubic-in-out',\n values: [\n 'linear',\n 'quad',\n 'cubic',\n 'sin',\n 'exp',\n 'circle',\n 'elastic',\n 'back',\n 'bounce',\n 'linear-in',\n 'quad-in',\n 'cubic-in',\n 'sin-in',\n 'exp-in',\n 'circle-in',\n 'elastic-in',\n 'back-in',\n 'bounce-in',\n 'linear-out',\n 'quad-out',\n 'cubic-out',\n 'sin-out',\n 'exp-out',\n 'circle-out',\n 'elastic-out',\n 'back-out',\n 'bounce-out',\n 'linear-in-out',\n 'quad-in-out',\n 'cubic-in-out',\n 'sin-in-out',\n 'exp-in-out',\n 'circle-in-out',\n 'elastic-in-out',\n 'back-in-out',\n 'bounce-in-out'\n ],\n \n editType: 'none',\n \n },\n ordering: {\n valType: 'enumerated',\n values: ['layout first', 'traces first'],\n dflt: 'layout first',\n \n editType: 'none',\n \n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"5bec\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = function eventData(out, pt /* , trace, cd, pointNumber */) {\n // standard cartesian event data\n out.x = 'xVal' in pt ? pt.xVal : pt.x;\n out.y = 'yVal' in pt ? pt.yVal : pt.y;\n\n // for funnel\n if('initial' in pt) out.initial = pt.initial;\n if('delta' in pt) out.delta = pt.delta;\n if('final' in pt) out.final = pt.final;\n\n if(pt.xa) out.xaxis = pt.xa;\n if(pt.ya) out.yaxis = pt.ya;\n\n return out;\n};\n\n\n/***/ }),\n\n/***/ \"5c33\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar annAttrs = __webpack_require__(\"bb4a\");\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\nvar fontAttrs = __webpack_require__(\"9845\");\nvar domainAttrs = __webpack_require__(\"81f0\").attributes;\n\nvar FORMAT_LINK = __webpack_require__(\"78df\").FORMAT_LINK;\n\nvar attrs = module.exports = overrideAll({\n domain: domainAttrs({name: 'table', trace: true}),\n\n columnwidth: {\n valType: 'number',\n arrayOk: true,\n dflt: null,\n \n \n },\n\n columnorder: {\n valType: 'data_array',\n \n \n },\n\n header: {\n\n values: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n\n format: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n\n prefix: {\n valType: 'string',\n arrayOk: true,\n dflt: null,\n \n \n },\n\n suffix: {\n valType: 'string',\n arrayOk: true,\n dflt: null,\n \n \n },\n\n height: {\n valType: 'number',\n dflt: 28,\n \n \n },\n\n align: extendFlat({}, annAttrs.align, {arrayOk: true}),\n\n line: {\n width: {\n valType: 'number',\n arrayOk: true,\n dflt: 1,\n \n },\n color: {\n valType: 'color',\n arrayOk: true,\n dflt: 'grey',\n \n }\n },\n\n fill: {\n color: {\n valType: 'color',\n arrayOk: true,\n dflt: 'white',\n \n \n }\n },\n\n font: extendFlat({}, fontAttrs({arrayOk: true}))\n },\n\n cells: {\n\n values: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n\n format: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n\n prefix: {\n valType: 'string',\n arrayOk: true,\n dflt: null,\n \n \n },\n\n suffix: {\n valType: 'string',\n arrayOk: true,\n dflt: null,\n \n \n },\n\n height: {\n valType: 'number',\n dflt: 20,\n \n \n },\n\n align: extendFlat({}, annAttrs.align, {arrayOk: true}),\n\n line: {\n width: {\n valType: 'number',\n arrayOk: true,\n dflt: 1,\n \n },\n color: {\n valType: 'color',\n arrayOk: true,\n dflt: 'grey',\n \n }\n },\n\n fill: {\n color: {\n valType: 'color',\n arrayOk: true,\n \n dflt: 'white',\n \n }\n },\n\n font: extendFlat({}, fontAttrs({arrayOk: true}))\n }\n}, 'calc', 'from-root');\nattrs.transforms = undefined;\n\n\n/***/ }),\n\n/***/ \"5c6c\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"5c79\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar tinycolor = __webpack_require__(\"66cb\");\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar _ = Lib._;\nvar Color = __webpack_require__(\"d115\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar setConvert = __webpack_require__(\"1a40\");\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar Plots = __webpack_require__(\"bb71\");\nvar Axes = __webpack_require__(\"0642\");\nvar dragElement = __webpack_require__(\"4efe\");\nvar Fx = __webpack_require__(\"a5c4\");\nvar Titles = __webpack_require__(\"1999\");\nvar prepSelect = __webpack_require__(\"1876\").prepSelect;\nvar selectOnClick = __webpack_require__(\"1876\").selectOnClick;\nvar clearSelect = __webpack_require__(\"1876\").clearSelect;\nvar constants = __webpack_require__(\"d301\");\n\nfunction Ternary(options, fullLayout) {\n this.id = options.id;\n this.graphDiv = options.graphDiv;\n this.init(fullLayout);\n this.makeFramework(fullLayout);\n\n // unfortunately, we have to keep track of some axis tick settings\n // as ternary subplots do not implement the 'ticks' editType\n this.aTickLayout = null;\n this.bTickLayout = null;\n this.cTickLayout = null;\n}\n\nmodule.exports = Ternary;\n\nvar proto = Ternary.prototype;\n\nproto.init = function(fullLayout) {\n this.container = fullLayout._ternarylayer;\n this.defs = fullLayout._defs;\n this.layoutId = fullLayout._uid;\n this.traceHash = {};\n this.layers = {};\n};\n\nproto.plot = function(ternaryCalcData, fullLayout) {\n var _this = this;\n var ternaryLayout = fullLayout[_this.id];\n var graphSize = fullLayout._size;\n\n _this._hasClipOnAxisFalse = false;\n for(var i = 0; i < ternaryCalcData.length; i++) {\n var trace = ternaryCalcData[i][0].trace;\n\n if(trace.cliponaxis === false) {\n _this._hasClipOnAxisFalse = true;\n break;\n }\n }\n\n _this.updateLayers(ternaryLayout);\n _this.adjustLayout(ternaryLayout, graphSize);\n Plots.generalUpdatePerTraceModule(_this.graphDiv, _this, ternaryCalcData, ternaryLayout);\n _this.layers.plotbg.select('path').call(Color.fill, ternaryLayout.bgcolor);\n};\n\nproto.makeFramework = function(fullLayout) {\n var _this = this;\n var gd = _this.graphDiv;\n var ternaryLayout = fullLayout[_this.id];\n\n var clipId = _this.clipId = 'clip' + _this.layoutId + _this.id;\n var clipIdRelative = _this.clipIdRelative = 'clip-relative' + _this.layoutId + _this.id;\n\n // clippath for this ternary subplot\n _this.clipDef = Lib.ensureSingleById(fullLayout._clips, 'clipPath', clipId, function(s) {\n s.append('path').attr('d', 'M0,0Z');\n });\n\n // 'relative' clippath (i.e. no translation) for this ternary subplot\n _this.clipDefRelative = Lib.ensureSingleById(fullLayout._clips, 'clipPath', clipIdRelative, function(s) {\n s.append('path').attr('d', 'M0,0Z');\n });\n\n // container for everything in this ternary subplot\n _this.plotContainer = Lib.ensureSingle(_this.container, 'g', _this.id);\n _this.updateLayers(ternaryLayout);\n\n Drawing.setClipUrl(_this.layers.backplot, clipId, gd);\n Drawing.setClipUrl(_this.layers.grids, clipId, gd);\n};\n\nproto.updateLayers = function(ternaryLayout) {\n var _this = this;\n var layers = _this.layers;\n\n // inside that container, we have one container for the data, and\n // one each for the three axes around it.\n\n var plotLayers = ['draglayer', 'plotbg', 'backplot', 'grids'];\n\n if(ternaryLayout.aaxis.layer === 'below traces') {\n plotLayers.push('aaxis', 'aline');\n }\n if(ternaryLayout.baxis.layer === 'below traces') {\n plotLayers.push('baxis', 'bline');\n }\n if(ternaryLayout.caxis.layer === 'below traces') {\n plotLayers.push('caxis', 'cline');\n }\n\n plotLayers.push('frontplot');\n\n if(ternaryLayout.aaxis.layer === 'above traces') {\n plotLayers.push('aaxis', 'aline');\n }\n if(ternaryLayout.baxis.layer === 'above traces') {\n plotLayers.push('baxis', 'bline');\n }\n if(ternaryLayout.caxis.layer === 'above traces') {\n plotLayers.push('caxis', 'cline');\n }\n\n var toplevel = _this.plotContainer.selectAll('g.toplevel')\n .data(plotLayers, String);\n\n var grids = ['agrid', 'bgrid', 'cgrid'];\n\n toplevel.enter().append('g')\n .attr('class', function(d) { return 'toplevel ' + d; })\n .each(function(d) {\n var s = d3.select(this);\n layers[d] = s;\n\n // containers for different trace types.\n // NOTE - this is different from cartesian, where all traces\n // are in front of grids. Here I'm putting maps behind the grids\n // so the grids will always be visible if they're requested.\n // Perhaps we want that for cartesian too?\n if(d === 'frontplot') {\n s.append('g').classed('scatterlayer', true);\n } else if(d === 'backplot') {\n s.append('g').classed('maplayer', true);\n } else if(d === 'plotbg') {\n s.append('path').attr('d', 'M0,0Z');\n } else if(d === 'aline' || d === 'bline' || d === 'cline') {\n s.append('path');\n } else if(d === 'grids') {\n grids.forEach(function(d) {\n layers[d] = s.append('g').classed('grid ' + d, true);\n });\n }\n });\n\n toplevel.order();\n};\n\nvar whRatio = Math.sqrt(4 / 3);\n\nproto.adjustLayout = function(ternaryLayout, graphSize) {\n var _this = this;\n var domain = ternaryLayout.domain;\n var xDomainCenter = (domain.x[0] + domain.x[1]) / 2;\n var yDomainCenter = (domain.y[0] + domain.y[1]) / 2;\n var xDomain = domain.x[1] - domain.x[0];\n var yDomain = domain.y[1] - domain.y[0];\n var wmax = xDomain * graphSize.w;\n var hmax = yDomain * graphSize.h;\n var sum = ternaryLayout.sum;\n var amin = ternaryLayout.aaxis.min;\n var bmin = ternaryLayout.baxis.min;\n var cmin = ternaryLayout.caxis.min;\n\n var x0, y0, w, h, xDomainFinal, yDomainFinal;\n\n if(wmax > whRatio * hmax) {\n h = hmax;\n w = h * whRatio;\n } else {\n w = wmax;\n h = w / whRatio;\n }\n\n xDomainFinal = xDomain * w / wmax;\n yDomainFinal = yDomain * h / hmax;\n\n x0 = graphSize.l + graphSize.w * xDomainCenter - w / 2;\n y0 = graphSize.t + graphSize.h * (1 - yDomainCenter) - h / 2;\n\n _this.x0 = x0;\n _this.y0 = y0;\n _this.w = w;\n _this.h = h;\n _this.sum = sum;\n\n // set up the x and y axis objects we'll use to lay out the points\n _this.xaxis = {\n type: 'linear',\n range: [amin + 2 * cmin - sum, sum - amin - 2 * bmin],\n domain: [\n xDomainCenter - xDomainFinal / 2,\n xDomainCenter + xDomainFinal / 2\n ],\n _id: 'x'\n };\n setConvert(_this.xaxis, _this.graphDiv._fullLayout);\n _this.xaxis.setScale();\n _this.xaxis.isPtWithinRange = function(d) {\n return (\n d.a >= _this.aaxis.range[0] &&\n d.a <= _this.aaxis.range[1] &&\n d.b >= _this.baxis.range[1] &&\n d.b <= _this.baxis.range[0] &&\n d.c >= _this.caxis.range[1] &&\n d.c <= _this.caxis.range[0]\n );\n };\n\n _this.yaxis = {\n type: 'linear',\n range: [amin, sum - bmin - cmin],\n domain: [\n yDomainCenter - yDomainFinal / 2,\n yDomainCenter + yDomainFinal / 2\n ],\n _id: 'y'\n };\n setConvert(_this.yaxis, _this.graphDiv._fullLayout);\n _this.yaxis.setScale();\n _this.yaxis.isPtWithinRange = function() { return true; };\n\n // set up the modified axes for tick drawing\n var yDomain0 = _this.yaxis.domain[0];\n\n // aaxis goes up the left side. Set it up as a y axis, but with\n // fictitious angles and domain, but then rotate and translate\n // it into place at the end\n var aaxis = _this.aaxis = extendFlat({}, ternaryLayout.aaxis, {\n range: [amin, sum - bmin - cmin],\n side: 'left',\n // tickangle = 'auto' means 0 anyway for a y axis, need to coerce to 0 here\n // so we can shift by 30.\n tickangle: (+ternaryLayout.aaxis.tickangle || 0) - 30,\n domain: [yDomain0, yDomain0 + yDomainFinal * whRatio],\n anchor: 'free',\n position: 0,\n _id: 'y',\n _length: w\n });\n setConvert(aaxis, _this.graphDiv._fullLayout);\n aaxis.setScale();\n\n // baxis goes across the bottom (backward). We can set it up as an x axis\n // without any enclosing transformation.\n var baxis = _this.baxis = extendFlat({}, ternaryLayout.baxis, {\n range: [sum - amin - cmin, bmin],\n side: 'bottom',\n domain: _this.xaxis.domain,\n anchor: 'free',\n position: 0,\n _id: 'x',\n _length: w\n });\n setConvert(baxis, _this.graphDiv._fullLayout);\n baxis.setScale();\n\n // caxis goes down the right side. Set it up as a y axis, with\n // post-transformation similar to aaxis\n var caxis = _this.caxis = extendFlat({}, ternaryLayout.caxis, {\n range: [sum - amin - bmin, cmin],\n side: 'right',\n tickangle: (+ternaryLayout.caxis.tickangle || 0) + 30,\n domain: [yDomain0, yDomain0 + yDomainFinal * whRatio],\n anchor: 'free',\n position: 0,\n _id: 'y',\n _length: w\n });\n setConvert(caxis, _this.graphDiv._fullLayout);\n caxis.setScale();\n\n var triangleClip = 'M' + x0 + ',' + (y0 + h) + 'h' + w + 'l-' + (w / 2) + ',-' + h + 'Z';\n _this.clipDef.select('path').attr('d', triangleClip);\n _this.layers.plotbg.select('path').attr('d', triangleClip);\n\n var triangleClipRelative = 'M0,' + h + 'h' + w + 'l-' + (w / 2) + ',-' + h + 'Z';\n _this.clipDefRelative.select('path').attr('d', triangleClipRelative);\n\n var plotTransform = 'translate(' + x0 + ',' + y0 + ')';\n _this.plotContainer.selectAll('.scatterlayer,.maplayer')\n .attr('transform', plotTransform);\n\n _this.clipDefRelative.select('path').attr('transform', null);\n\n // TODO: shift axes to accommodate linewidth*sin(30) tick mark angle\n\n // TODO: there's probably an easier way to handle these translations/offsets now...\n var bTransform = 'translate(' + (x0 - baxis._offset) + ',' + (y0 + h) + ')';\n\n _this.layers.baxis.attr('transform', bTransform);\n _this.layers.bgrid.attr('transform', bTransform);\n\n var aTransform = 'translate(' + (x0 + w / 2) + ',' + y0 +\n ')rotate(30)translate(0,' + -aaxis._offset + ')';\n _this.layers.aaxis.attr('transform', aTransform);\n _this.layers.agrid.attr('transform', aTransform);\n\n var cTransform = 'translate(' + (x0 + w / 2) + ',' + y0 +\n ')rotate(-30)translate(0,' + -caxis._offset + ')';\n _this.layers.caxis.attr('transform', cTransform);\n _this.layers.cgrid.attr('transform', cTransform);\n\n _this.drawAxes(true);\n\n _this.layers.aline.select('path')\n .attr('d', aaxis.showline ?\n 'M' + x0 + ',' + (y0 + h) + 'l' + (w / 2) + ',-' + h : 'M0,0')\n .call(Color.stroke, aaxis.linecolor || '#000')\n .style('stroke-width', (aaxis.linewidth || 0) + 'px');\n _this.layers.bline.select('path')\n .attr('d', baxis.showline ?\n 'M' + x0 + ',' + (y0 + h) + 'h' + w : 'M0,0')\n .call(Color.stroke, baxis.linecolor || '#000')\n .style('stroke-width', (baxis.linewidth || 0) + 'px');\n _this.layers.cline.select('path')\n .attr('d', caxis.showline ?\n 'M' + (x0 + w / 2) + ',' + y0 + 'l' + (w / 2) + ',' + h : 'M0,0')\n .call(Color.stroke, caxis.linecolor || '#000')\n .style('stroke-width', (caxis.linewidth || 0) + 'px');\n\n if(!_this.graphDiv._context.staticPlot) {\n _this.initInteractions();\n }\n\n Drawing.setClipUrl(\n _this.layers.frontplot,\n _this._hasClipOnAxisFalse ? null : _this.clipId,\n _this.graphDiv\n );\n};\n\nproto.drawAxes = function(doTitles) {\n var _this = this;\n var gd = _this.graphDiv;\n var titlesuffix = _this.id.substr(7) + 'title';\n var layers = _this.layers;\n var aaxis = _this.aaxis;\n var baxis = _this.baxis;\n var caxis = _this.caxis;\n\n _this.drawAx(aaxis);\n _this.drawAx(baxis);\n _this.drawAx(caxis);\n\n if(doTitles) {\n var apad = Math.max(aaxis.showticklabels ? aaxis.tickfont.size / 2 : 0,\n (caxis.showticklabels ? caxis.tickfont.size * 0.75 : 0) +\n (caxis.ticks === 'outside' ? caxis.ticklen * 0.87 : 0));\n var bpad = (baxis.showticklabels ? baxis.tickfont.size : 0) +\n (baxis.ticks === 'outside' ? baxis.ticklen : 0) + 3;\n\n layers['a-title'] = Titles.draw(gd, 'a' + titlesuffix, {\n propContainer: aaxis,\n propName: _this.id + '.aaxis.title',\n placeholder: _(gd, 'Click to enter Component A title'),\n attributes: {\n x: _this.x0 + _this.w / 2,\n y: _this.y0 - aaxis.title.font.size / 3 - apad,\n 'text-anchor': 'middle'\n }\n });\n layers['b-title'] = Titles.draw(gd, 'b' + titlesuffix, {\n propContainer: baxis,\n propName: _this.id + '.baxis.title',\n placeholder: _(gd, 'Click to enter Component B title'),\n attributes: {\n x: _this.x0 - bpad,\n y: _this.y0 + _this.h + baxis.title.font.size * 0.83 + bpad,\n 'text-anchor': 'middle'\n }\n });\n layers['c-title'] = Titles.draw(gd, 'c' + titlesuffix, {\n propContainer: caxis,\n propName: _this.id + '.caxis.title',\n placeholder: _(gd, 'Click to enter Component C title'),\n attributes: {\n x: _this.x0 + _this.w + bpad,\n y: _this.y0 + _this.h + caxis.title.font.size * 0.83 + bpad,\n 'text-anchor': 'middle'\n }\n });\n }\n};\n\nproto.drawAx = function(ax) {\n var _this = this;\n var gd = _this.graphDiv;\n var axName = ax._name;\n var axLetter = axName.charAt(0);\n var axId = ax._id;\n var axLayer = _this.layers[axName];\n var counterAngle = 30;\n\n var stashKey = axLetter + 'tickLayout';\n var newTickLayout = strTickLayout(ax);\n if(_this[stashKey] !== newTickLayout) {\n axLayer.selectAll('.' + axId + 'tick').remove();\n _this[stashKey] = newTickLayout;\n }\n\n ax.setScale();\n\n var vals = Axes.calcTicks(ax);\n var valsClipped = Axes.clipEnds(ax, vals);\n var transFn = Axes.makeTransFn(ax);\n var tickSign = Axes.getTickSigns(ax)[2];\n\n var caRad = Lib.deg2rad(counterAngle);\n var pad = tickSign * (ax.linewidth || 1) / 2;\n var len = tickSign * ax.ticklen;\n var w = _this.w;\n var h = _this.h;\n\n var tickPath = axLetter === 'b' ?\n 'M0,' + pad + 'l' + (Math.sin(caRad) * len) + ',' + (Math.cos(caRad) * len) :\n 'M' + pad + ',0l' + (Math.cos(caRad) * len) + ',' + (-Math.sin(caRad) * len);\n\n var gridPath = {\n a: 'M0,0l' + h + ',-' + (w / 2),\n b: 'M0,0l-' + (w / 2) + ',-' + h,\n c: 'M0,0l-' + h + ',' + (w / 2)\n }[axLetter];\n\n Axes.drawTicks(gd, ax, {\n vals: ax.ticks === 'inside' ? valsClipped : vals,\n layer: axLayer,\n path: tickPath,\n transFn: transFn,\n crisp: false\n });\n\n Axes.drawGrid(gd, ax, {\n vals: valsClipped,\n layer: _this.layers[axLetter + 'grid'],\n path: gridPath,\n transFn: transFn,\n crisp: false\n });\n\n Axes.drawLabels(gd, ax, {\n vals: vals,\n layer: axLayer,\n transFn: transFn,\n labelFns: Axes.makeLabelFns(ax, 0, counterAngle)\n });\n};\n\nfunction strTickLayout(axLayout) {\n return axLayout.ticks + String(axLayout.ticklen) + String(axLayout.showticklabels);\n}\n\n// hard coded paths for zoom corners\n// uses the same sizing as cartesian, length is MINZOOM/2, width is 3px\nvar CLEN = constants.MINZOOM / 2 + 0.87;\nvar BLPATH = 'm-0.87,.5h' + CLEN + 'v3h-' + (CLEN + 5.2) +\n 'l' + (CLEN / 2 + 2.6) + ',-' + (CLEN * 0.87 + 4.5) +\n 'l2.6,1.5l-' + (CLEN / 2) + ',' + (CLEN * 0.87) + 'Z';\nvar BRPATH = 'm0.87,.5h-' + CLEN + 'v3h' + (CLEN + 5.2) +\n 'l-' + (CLEN / 2 + 2.6) + ',-' + (CLEN * 0.87 + 4.5) +\n 'l-2.6,1.5l' + (CLEN / 2) + ',' + (CLEN * 0.87) + 'Z';\nvar TOPPATH = 'm0,1l' + (CLEN / 2) + ',' + (CLEN * 0.87) +\n 'l2.6,-1.5l-' + (CLEN / 2 + 2.6) + ',-' + (CLEN * 0.87 + 4.5) +\n 'l-' + (CLEN / 2 + 2.6) + ',' + (CLEN * 0.87 + 4.5) +\n 'l2.6,1.5l' + (CLEN / 2) + ',-' + (CLEN * 0.87) + 'Z';\nvar STARTMARKER = 'm0.5,0.5h5v-2h-5v-5h-2v5h-5v2h5v5h2Z';\n\n// I guess this could be shared with cartesian... but for now it's separate.\nvar SHOWZOOMOUTTIP = true;\n\nproto.initInteractions = function() {\n var _this = this;\n var dragger = _this.layers.plotbg.select('path').node();\n var gd = _this.graphDiv;\n var zoomLayer = gd._fullLayout._zoomlayer;\n\n // use plotbg for the main interactions\n var dragOptions = {\n element: dragger,\n gd: gd,\n plotinfo: {\n id: _this.id,\n xaxis: _this.xaxis,\n yaxis: _this.yaxis\n },\n subplot: _this.id,\n prepFn: function(e, startX, startY) {\n // these aren't available yet when initInteractions\n // is called\n dragOptions.xaxes = [_this.xaxis];\n dragOptions.yaxes = [_this.yaxis];\n var dragModeNow = gd._fullLayout.dragmode;\n\n if(dragModeNow === 'lasso') dragOptions.minDrag = 1;\n else dragOptions.minDrag = undefined;\n\n if(dragModeNow === 'zoom') {\n dragOptions.moveFn = zoomMove;\n dragOptions.clickFn = clickZoomPan;\n dragOptions.doneFn = zoomDone;\n zoomPrep(e, startX, startY);\n } else if(dragModeNow === 'pan') {\n dragOptions.moveFn = plotDrag;\n dragOptions.clickFn = clickZoomPan;\n dragOptions.doneFn = dragDone;\n panPrep();\n clearSelect(gd);\n } else if(dragModeNow === 'select' || dragModeNow === 'lasso') {\n prepSelect(e, startX, startY, dragOptions, dragModeNow);\n }\n }\n };\n\n var x0, y0, mins0, span0, mins, lum, path0, dimmed, zb, corners;\n\n function makeUpdate(_mins) {\n var attrs = {};\n attrs[_this.id + '.aaxis.min'] = _mins.a;\n attrs[_this.id + '.baxis.min'] = _mins.b;\n attrs[_this.id + '.caxis.min'] = _mins.c;\n return attrs;\n }\n\n function clickZoomPan(numClicks, evt) {\n var clickMode = gd._fullLayout.clickmode;\n\n removeZoombox(gd);\n\n if(numClicks === 2) {\n gd.emit('plotly_doubleclick', null);\n Registry.call('_guiRelayout', gd, makeUpdate({a: 0, b: 0, c: 0}));\n }\n\n if(clickMode.indexOf('select') > -1 && numClicks === 1) {\n selectOnClick(evt, gd, [_this.xaxis], [_this.yaxis], _this.id, dragOptions);\n }\n\n if(clickMode.indexOf('event') > -1) {\n Fx.click(gd, evt, _this.id);\n }\n }\n\n function zoomPrep(e, startX, startY) {\n var dragBBox = dragger.getBoundingClientRect();\n x0 = startX - dragBBox.left;\n y0 = startY - dragBBox.top;\n mins0 = {\n a: _this.aaxis.range[0],\n b: _this.baxis.range[1],\n c: _this.caxis.range[1]\n };\n mins = mins0;\n span0 = _this.aaxis.range[1] - mins0.a;\n lum = tinycolor(_this.graphDiv._fullLayout[_this.id].bgcolor).getLuminance();\n path0 = 'M0,' + _this.h + 'L' + (_this.w / 2) + ', 0L' + _this.w + ',' + _this.h + 'Z';\n dimmed = false;\n\n zb = zoomLayer.append('path')\n .attr('class', 'zoombox')\n .attr('transform', 'translate(' + _this.x0 + ', ' + _this.y0 + ')')\n .style({\n 'fill': lum > 0.2 ? 'rgba(0,0,0,0)' : 'rgba(255,255,255,0)',\n 'stroke-width': 0\n })\n .attr('d', path0);\n\n corners = zoomLayer.append('path')\n .attr('class', 'zoombox-corners')\n .attr('transform', 'translate(' + _this.x0 + ', ' + _this.y0 + ')')\n .style({\n fill: Color.background,\n stroke: Color.defaultLine,\n 'stroke-width': 1,\n opacity: 0\n })\n .attr('d', 'M0,0Z');\n\n clearSelect(gd);\n }\n\n function getAFrac(x, y) { return 1 - (y / _this.h); }\n function getBFrac(x, y) { return 1 - ((x + (_this.h - y) / Math.sqrt(3)) / _this.w); }\n function getCFrac(x, y) { return ((x - (_this.h - y) / Math.sqrt(3)) / _this.w); }\n\n function zoomMove(dx0, dy0) {\n var x1 = x0 + dx0;\n var y1 = y0 + dy0;\n var afrac = Math.max(0, Math.min(1, getAFrac(x0, y0), getAFrac(x1, y1)));\n var bfrac = Math.max(0, Math.min(1, getBFrac(x0, y0), getBFrac(x1, y1)));\n var cfrac = Math.max(0, Math.min(1, getCFrac(x0, y0), getCFrac(x1, y1)));\n var xLeft = ((afrac / 2) + cfrac) * _this.w;\n var xRight = (1 - (afrac / 2) - bfrac) * _this.w;\n var xCenter = (xLeft + xRight) / 2;\n var xSpan = xRight - xLeft;\n var yBottom = (1 - afrac) * _this.h;\n var yTop = yBottom - xSpan / whRatio;\n\n if(xSpan < constants.MINZOOM) {\n mins = mins0;\n zb.attr('d', path0);\n corners.attr('d', 'M0,0Z');\n } else {\n mins = {\n a: mins0.a + afrac * span0,\n b: mins0.b + bfrac * span0,\n c: mins0.c + cfrac * span0\n };\n zb.attr('d', path0 + 'M' + xLeft + ',' + yBottom +\n 'H' + xRight + 'L' + xCenter + ',' + yTop +\n 'L' + xLeft + ',' + yBottom + 'Z');\n corners.attr('d', 'M' + x0 + ',' + y0 + STARTMARKER +\n 'M' + xLeft + ',' + yBottom + BLPATH +\n 'M' + xRight + ',' + yBottom + BRPATH +\n 'M' + xCenter + ',' + yTop + TOPPATH);\n }\n\n if(!dimmed) {\n zb.transition()\n .style('fill', lum > 0.2 ? 'rgba(0,0,0,0.4)' :\n 'rgba(255,255,255,0.3)')\n .duration(200);\n corners.transition()\n .style('opacity', 1)\n .duration(200);\n dimmed = true;\n }\n\n gd.emit('plotly_relayouting', makeUpdate(mins));\n }\n\n function zoomDone() {\n removeZoombox(gd);\n\n if(mins === mins0) return;\n\n Registry.call('_guiRelayout', gd, makeUpdate(mins));\n\n if(SHOWZOOMOUTTIP && gd.data && gd._context.showTips) {\n Lib.notifier(_(gd, 'Double-click to zoom back out'), 'long');\n SHOWZOOMOUTTIP = false;\n }\n }\n\n function panPrep() {\n mins0 = {\n a: _this.aaxis.range[0],\n b: _this.baxis.range[1],\n c: _this.caxis.range[1]\n };\n mins = mins0;\n }\n\n function plotDrag(dx, dy) {\n var dxScaled = dx / _this.xaxis._m;\n var dyScaled = dy / _this.yaxis._m;\n mins = {\n a: mins0.a - dyScaled,\n b: mins0.b + (dxScaled + dyScaled) / 2,\n c: mins0.c - (dxScaled - dyScaled) / 2\n };\n var minsorted = [mins.a, mins.b, mins.c].sort();\n var minindices = {\n a: minsorted.indexOf(mins.a),\n b: minsorted.indexOf(mins.b),\n c: minsorted.indexOf(mins.c)\n };\n if(minsorted[0] < 0) {\n if(minsorted[1] + minsorted[0] / 2 < 0) {\n minsorted[2] += minsorted[0] + minsorted[1];\n minsorted[0] = minsorted[1] = 0;\n } else {\n minsorted[2] += minsorted[0] / 2;\n minsorted[1] += minsorted[0] / 2;\n minsorted[0] = 0;\n }\n mins = {\n a: minsorted[minindices.a],\n b: minsorted[minindices.b],\n c: minsorted[minindices.c]\n };\n dy = (mins0.a - mins.a) * _this.yaxis._m;\n dx = (mins0.c - mins.c - mins0.b + mins.b) * _this.xaxis._m;\n }\n\n // move the data (translate, don't redraw)\n var plotTransform = 'translate(' + (_this.x0 + dx) + ',' + (_this.y0 + dy) + ')';\n _this.plotContainer.selectAll('.scatterlayer,.maplayer')\n .attr('transform', plotTransform);\n\n var plotTransform2 = 'translate(' + -dx + ',' + -dy + ')';\n _this.clipDefRelative.select('path').attr('transform', plotTransform2);\n\n // move the ticks\n _this.aaxis.range = [mins.a, _this.sum - mins.b - mins.c];\n _this.baxis.range = [_this.sum - mins.a - mins.c, mins.b];\n _this.caxis.range = [_this.sum - mins.a - mins.b, mins.c];\n\n _this.drawAxes(false);\n\n if(_this._hasClipOnAxisFalse) {\n _this.plotContainer\n .select('.scatterlayer').selectAll('.trace')\n .call(Drawing.hideOutsideRangePoints, _this);\n }\n\n gd.emit('plotly_relayouting', makeUpdate(mins));\n }\n\n function dragDone() {\n Registry.call('_guiRelayout', gd, makeUpdate(mins));\n }\n\n // finally, set up hover and click\n // these event handlers must already be set before dragElement.init\n // so it can stash them and override them.\n dragger.onmousemove = function(evt) {\n Fx.hover(gd, evt, _this.id);\n gd._fullLayout._lasthover = dragger;\n gd._fullLayout._hoversubplot = _this.id;\n };\n\n dragger.onmouseout = function(evt) {\n if(gd._dragging) return;\n\n dragElement.unhover(gd, evt);\n };\n\n dragElement.init(dragOptions);\n};\n\nfunction removeZoombox(gd) {\n d3.select(gd)\n .selectAll('.zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners')\n .remove();\n}\n\n\n/***/ }),\n\n/***/ \"5c9a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n attributes: __webpack_require__(\"43ef\"),\n supplyDefaults: __webpack_require__(\"1a06\"),\n calc: __webpack_require__(\"6bd5\"),\n plot: __webpack_require__(\"6954\").plot,\n style: __webpack_require__(\"ee6b\"),\n colorbar: __webpack_require__(\"a5e1\"),\n hoverPoints: __webpack_require__(\"510f\"),\n\n moduleType: 'trace',\n name: 'contour',\n basePlotModule: __webpack_require__(\"91cd\"),\n categories: ['cartesian', 'svg', '2dMap', 'contour', 'showLegend'],\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"5cc5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"5c9a\");\n\n\n/***/ }),\n\n/***/ \"5ccc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar glslify = __webpack_require__(\"e98f\")\nvar createShader = __webpack_require__(\"28dd\")\n\nvar vertSrc = glslify([\"precision mediump float;\\n#define GLSLIFY 1\\nattribute vec2 position;\\nvarying vec2 uv;\\nvoid main() {\\n uv = position;\\n gl_Position = vec4(position, 0, 1);\\n}\"])\nvar fragSrc = glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nuniform sampler2D accumBuffer;\\nvarying vec2 uv;\\n\\nvoid main() {\\n vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0));\\n gl_FragColor = min(vec4(1,1,1,1), accum);\\n}\"])\n\nmodule.exports = function(gl) {\n return createShader(gl, vertSrc, fragSrc, null, [ { name: 'position', type: 'vec2'}])\n}\n\n\n/***/ }),\n\n/***/ \"5cf9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction mouseButtons(ev) {\n if(typeof ev === 'object') {\n if('buttons' in ev) {\n return ev.buttons\n } else if('which' in ev) {\n var b = ev.which\n if(b === 2) {\n return 4\n } else if(b === 3) {\n return 2\n } else if(b > 0) {\n return 1<<(b-1)\n }\n } else if('button' in ev) {\n var b = ev.button\n if(b === 1) {\n return 4\n } else if(b === 2) {\n return 2\n } else if(b >= 0) {\n return 1<= 0)) {\n continue\n }\n\n var zeroIntercept = screenBox[i] -\n dataBox[i] * (screenBox[i+2] - screenBox[i]) / (dataBox[i+2] - dataBox[i])\n\n if(i === 0) {\n line.drawLine(\n zeroIntercept, screenBox[1], zeroIntercept, screenBox[3],\n zeroLineWidth[i],\n zeroLineColor[i])\n } else {\n line.drawLine(\n screenBox[0], zeroIntercept, screenBox[2], zeroIntercept,\n zeroLineWidth[i],\n zeroLineColor[i])\n }\n }\n }\n\n //Draw traces\n for(var i=0; i=0; --i) {\n this.objects[i].dispose()\n }\n this.objects.length = 0\n for(var i=this.overlays.length-1; i>=0; --i) {\n this.overlays[i].dispose()\n }\n this.overlays.length = 0\n\n this.gl = null\n}\n\nproto.addObject = function(object) {\n if(this.objects.indexOf(object) < 0) {\n this.objects.push(object)\n this.setDirty()\n }\n}\n\nproto.removeObject = function(object) {\n var objects = this.objects\n for(var i=0; i 2) {\n // This object contains more than just the key/value, so unset\n // the value without modifying the entry otherwise:\n changeTypes[idx] = changeTypes[idx] | VALUE;\n return obj.set(name, null);\n }\n\n if(isSimpleValueProp) {\n for(i = idx; i < arr.length; i++) {\n changeTypes[i] = changeTypes[i] | BOTH;\n }\n for(i = idx; i < arr.length; i++) {\n indexLookup[arr[i][keyName]]--;\n }\n arr.splice(idx, 1);\n delete(indexLookup[name]);\n } else {\n // Perform this update *strictly* so we can check whether the result's\n // been pruned. If so, it's a removal. If not, it's a value unset only.\n nestedProperty(object, valueName).set(null);\n\n // Now check if the top level nested property has any keys left. If so,\n // the object still has values so we only want to unset the key. If not,\n // the entire object can be removed since there's no other data.\n // var topLevelKeys = Object.keys(object[valueName.split('.')[0]] || []);\n\n changeTypes[idx] = changeTypes[idx] | VALUE | UNSET;\n }\n\n return obj;\n },\n constructUpdate: function() {\n var astr, idx;\n var update = {};\n var changed = Object.keys(changeTypes);\n for(var i = 0; i < changed.length; i++) {\n idx = changed[i];\n astr = path + '[' + idx + ']';\n if(arr[idx]) {\n if(changeTypes[idx] & NAME) {\n update[astr + '.' + keyName] = arr[idx][keyName];\n }\n if(changeTypes[idx] & VALUE) {\n if(isSimpleValueProp) {\n update[astr + '.' + valueName] = (changeTypes[idx] & UNSET) ? null : arr[idx][valueName];\n } else {\n update[astr + '.' + valueName] = (changeTypes[idx] & UNSET) ? null : nestedProperty(arr[idx], valueName).get();\n }\n }\n } else {\n update[astr] = null;\n }\n }\n\n return update;\n }\n };\n\n return obj;\n};\n\n\n/***/ }),\n\n/***/ \"5e2e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createBoxes\n\nvar createBuffer = __webpack_require__(\"efce\")\nvar createShader = __webpack_require__(\"28dd\")\n\nvar shaders = __webpack_require__(\"b44d\")\n\nfunction Boxes(plot, vbo, shader) {\n this.plot = plot\n this.vbo = vbo\n this.shader = shader\n}\n\nvar proto = Boxes.prototype\n\nproto.bind = function() {\n var shader = this.shader\n this.vbo.bind()\n this.shader.bind()\n shader.attributes.coord.pointer()\n shader.uniforms.screenBox = this.plot.screenBox\n}\n\nproto.drawBox = (function() {\n var lo = [0,0]\n var hi = [0,0]\n return function(loX, loY, hiX, hiY, color) {\n var plot = this.plot\n var shader = this.shader\n var gl = plot.gl\n\n lo[0] = loX\n lo[1] = loY\n hi[0] = hiX\n hi[1] = hiY\n\n shader.uniforms.lo = lo\n shader.uniforms.hi = hi\n shader.uniforms.color = color\n\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4)\n }\n}())\n\nproto.dispose = function() {\n this.vbo.dispose()\n this.shader.dispose()\n}\n\nfunction createBoxes(plot) {\n var gl = plot.gl\n var vbo = createBuffer(gl, [\n 0,0,\n 0,1,\n 1,0,\n 1,1])\n var shader = createShader(gl, shaders.boxVert, shaders.lineFrag)\n return new Boxes(plot, vbo, shader)\n}\n\n\n/***/ }),\n\n/***/ \"5e46\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar scatterPolarFormatLabels = __webpack_require__(\"98e74\");\n\nmodule.exports = function formatLabels(cdi, trace, fullLayout) {\n var i = cdi.i;\n if(!('r' in cdi)) cdi.r = trace._r[i];\n if(!('theta' in cdi)) cdi.theta = trace._theta[i];\n return scatterPolarFormatLabels(cdi, trace, fullLayout);\n};\n\n\n/***/ }),\n\n/***/ \"5e8f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar subtypes = __webpack_require__(\"de81\");\n\nmodule.exports = {\n hasLines: subtypes.hasLines,\n hasMarkers: subtypes.hasMarkers,\n hasText: subtypes.hasText,\n isBubble: subtypes.isBubble,\n\n attributes: __webpack_require__(\"107c\"),\n supplyDefaults: __webpack_require__(\"0eb7\"),\n crossTraceDefaults: __webpack_require__(\"0324\"),\n calc: __webpack_require__(\"70b4\").calc,\n crossTraceCalc: __webpack_require__(\"4324\"),\n arraysToCalcdata: __webpack_require__(\"106b\"),\n plot: __webpack_require__(\"f118\"),\n colorbar: __webpack_require__(\"f3cf\"),\n formatLabels: __webpack_require__(\"7e96\"),\n style: __webpack_require__(\"52e8\").style,\n styleOnSelect: __webpack_require__(\"52e8\").styleOnSelect,\n hoverPoints: __webpack_require__(\"391b\"),\n selectPoints: __webpack_require__(\"214c\"),\n animatable: true,\n\n moduleType: 'trace',\n name: 'scatter',\n basePlotModule: __webpack_require__(\"91cd\"),\n categories: [\n 'cartesian', 'svg', 'symbols', 'errorBarsOK', 'showLegend', 'scatter-like',\n 'zoomScale'\n ],\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"5ecd\":\n/***/ (function(module, exports) {\n\nmodule.exports = [\r\n // Keep this list sorted\r\n 'abs'\r\n , 'acos'\r\n , 'all'\r\n , 'any'\r\n , 'asin'\r\n , 'atan'\r\n , 'ceil'\r\n , 'clamp'\r\n , 'cos'\r\n , 'cross'\r\n , 'dFdx'\r\n , 'dFdy'\r\n , 'degrees'\r\n , 'distance'\r\n , 'dot'\r\n , 'equal'\r\n , 'exp'\r\n , 'exp2'\r\n , 'faceforward'\r\n , 'floor'\r\n , 'fract'\r\n , 'gl_BackColor'\r\n , 'gl_BackLightModelProduct'\r\n , 'gl_BackLightProduct'\r\n , 'gl_BackMaterial'\r\n , 'gl_BackSecondaryColor'\r\n , 'gl_ClipPlane'\r\n , 'gl_ClipVertex'\r\n , 'gl_Color'\r\n , 'gl_DepthRange'\r\n , 'gl_DepthRangeParameters'\r\n , 'gl_EyePlaneQ'\r\n , 'gl_EyePlaneR'\r\n , 'gl_EyePlaneS'\r\n , 'gl_EyePlaneT'\r\n , 'gl_Fog'\r\n , 'gl_FogCoord'\r\n , 'gl_FogFragCoord'\r\n , 'gl_FogParameters'\r\n , 'gl_FragColor'\r\n , 'gl_FragCoord'\r\n , 'gl_FragData'\r\n , 'gl_FragDepth'\r\n , 'gl_FragDepthEXT'\r\n , 'gl_FrontColor'\r\n , 'gl_FrontFacing'\r\n , 'gl_FrontLightModelProduct'\r\n , 'gl_FrontLightProduct'\r\n , 'gl_FrontMaterial'\r\n , 'gl_FrontSecondaryColor'\r\n , 'gl_LightModel'\r\n , 'gl_LightModelParameters'\r\n , 'gl_LightModelProducts'\r\n , 'gl_LightProducts'\r\n , 'gl_LightSource'\r\n , 'gl_LightSourceParameters'\r\n , 'gl_MaterialParameters'\r\n , 'gl_MaxClipPlanes'\r\n , 'gl_MaxCombinedTextureImageUnits'\r\n , 'gl_MaxDrawBuffers'\r\n , 'gl_MaxFragmentUniformComponents'\r\n , 'gl_MaxLights'\r\n , 'gl_MaxTextureCoords'\r\n , 'gl_MaxTextureImageUnits'\r\n , 'gl_MaxTextureUnits'\r\n , 'gl_MaxVaryingFloats'\r\n , 'gl_MaxVertexAttribs'\r\n , 'gl_MaxVertexTextureImageUnits'\r\n , 'gl_MaxVertexUniformComponents'\r\n , 'gl_ModelViewMatrix'\r\n , 'gl_ModelViewMatrixInverse'\r\n , 'gl_ModelViewMatrixInverseTranspose'\r\n , 'gl_ModelViewMatrixTranspose'\r\n , 'gl_ModelViewProjectionMatrix'\r\n , 'gl_ModelViewProjectionMatrixInverse'\r\n , 'gl_ModelViewProjectionMatrixInverseTranspose'\r\n , 'gl_ModelViewProjectionMatrixTranspose'\r\n , 'gl_MultiTexCoord0'\r\n , 'gl_MultiTexCoord1'\r\n , 'gl_MultiTexCoord2'\r\n , 'gl_MultiTexCoord3'\r\n , 'gl_MultiTexCoord4'\r\n , 'gl_MultiTexCoord5'\r\n , 'gl_MultiTexCoord6'\r\n , 'gl_MultiTexCoord7'\r\n , 'gl_Normal'\r\n , 'gl_NormalMatrix'\r\n , 'gl_NormalScale'\r\n , 'gl_ObjectPlaneQ'\r\n , 'gl_ObjectPlaneR'\r\n , 'gl_ObjectPlaneS'\r\n , 'gl_ObjectPlaneT'\r\n , 'gl_Point'\r\n , 'gl_PointCoord'\r\n , 'gl_PointParameters'\r\n , 'gl_PointSize'\r\n , 'gl_Position'\r\n , 'gl_ProjectionMatrix'\r\n , 'gl_ProjectionMatrixInverse'\r\n , 'gl_ProjectionMatrixInverseTranspose'\r\n , 'gl_ProjectionMatrixTranspose'\r\n , 'gl_SecondaryColor'\r\n , 'gl_TexCoord'\r\n , 'gl_TextureEnvColor'\r\n , 'gl_TextureMatrix'\r\n , 'gl_TextureMatrixInverse'\r\n , 'gl_TextureMatrixInverseTranspose'\r\n , 'gl_TextureMatrixTranspose'\r\n , 'gl_Vertex'\r\n , 'greaterThan'\r\n , 'greaterThanEqual'\r\n , 'inversesqrt'\r\n , 'length'\r\n , 'lessThan'\r\n , 'lessThanEqual'\r\n , 'log'\r\n , 'log2'\r\n , 'matrixCompMult'\r\n , 'max'\r\n , 'min'\r\n , 'mix'\r\n , 'mod'\r\n , 'normalize'\r\n , 'not'\r\n , 'notEqual'\r\n , 'pow'\r\n , 'radians'\r\n , 'reflect'\r\n , 'refract'\r\n , 'sign'\r\n , 'sin'\r\n , 'smoothstep'\r\n , 'sqrt'\r\n , 'step'\r\n , 'tan'\r\n , 'texture2D'\r\n , 'texture2DLod'\r\n , 'texture2DProj'\r\n , 'texture2DProjLod'\r\n , 'textureCube'\r\n , 'textureCubeLod'\r\n , 'texture2DLodEXT'\r\n , 'texture2DProjLodEXT'\r\n , 'textureCubeLodEXT'\r\n , 'texture2DGradEXT'\r\n , 'texture2DProjGradEXT'\r\n , 'textureCubeGradEXT'\r\n]\r\n\n\n/***/ }),\n\n/***/ \"5edd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isValue = __webpack_require__(\"936a\");\n\n// prettier-ignore\nvar possibleTypes = { \"object\": true, \"function\": true, \"undefined\": true /* document.all */ };\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) return false;\n\treturn hasOwnProperty.call(possibleTypes, typeof value);\n};\n\n\n/***/ }),\n\n/***/ \"5f0d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar tarjan = __webpack_require__(\"53cc\");\nvar Lib = __webpack_require__(\"fc26\");\nvar wrap = __webpack_require__(\"0a3e\").wrap;\n\nvar isArrayOrTypedArray = Lib.isArrayOrTypedArray;\nvar isIndex = Lib.isIndex;\nvar Colorscale = __webpack_require__(\"c258\");\n\nfunction convertToD3Sankey(trace) {\n var nodeSpec = trace.node;\n var linkSpec = trace.link;\n\n var links = [];\n var hasLinkColorArray = isArrayOrTypedArray(linkSpec.color);\n var linkedNodes = {};\n\n var components = {};\n var componentCount = linkSpec.colorscales.length;\n var i;\n for(i = 0; i < componentCount; i++) {\n var cscale = linkSpec.colorscales[i];\n var specs = Colorscale.extractScale(cscale, {cLetter: 'c'});\n var scale = Colorscale.makeColorScaleFunc(specs);\n components[cscale.label] = scale;\n }\n\n var maxNodeId = 0;\n for(i = 0; i < linkSpec.value.length; i++) {\n if(linkSpec.source[i] > maxNodeId) maxNodeId = linkSpec.source[i];\n if(linkSpec.target[i] > maxNodeId) maxNodeId = linkSpec.target[i];\n }\n var nodeCount = maxNodeId + 1;\n trace.node._count = nodeCount;\n\n // Group nodes\n var j;\n var groups = trace.node.groups;\n var groupLookup = {};\n for(i = 0; i < groups.length; i++) {\n var group = groups[i];\n // Build a lookup table to quickly find in which group a node is\n for(j = 0; j < group.length; j++) {\n var nodeIndex = group[j];\n var groupIndex = nodeCount + i;\n if(groupLookup.hasOwnProperty(nodeIndex)) {\n Lib.warn('Node ' + nodeIndex + ' is already part of a group.');\n } else {\n groupLookup[nodeIndex] = groupIndex;\n }\n }\n }\n\n // Process links\n var groupedLinks = {\n source: [],\n target: []\n };\n for(i = 0; i < linkSpec.value.length; i++) {\n var val = linkSpec.value[i];\n // remove negative values, but keep zeros with special treatment\n var source = linkSpec.source[i];\n var target = linkSpec.target[i];\n if(!(val > 0 && isIndex(source, nodeCount) && isIndex(target, nodeCount))) {\n continue;\n }\n\n // Remove links that are within the same group\n if(groupLookup.hasOwnProperty(source) && groupLookup.hasOwnProperty(target) && groupLookup[source] === groupLookup[target]) {\n continue;\n }\n\n // if link targets a node in the group, relink target to that group\n if(groupLookup.hasOwnProperty(target)) {\n target = groupLookup[target];\n }\n\n // if link originates from a node in a group, relink source to that group\n if(groupLookup.hasOwnProperty(source)) {\n source = groupLookup[source];\n }\n\n source = +source;\n target = +target;\n linkedNodes[source] = linkedNodes[target] = true;\n\n var label = '';\n if(linkSpec.label && linkSpec.label[i]) label = linkSpec.label[i];\n\n var concentrationscale = null;\n if(label && components.hasOwnProperty(label)) concentrationscale = components[label];\n\n links.push({\n pointNumber: i,\n label: label,\n color: hasLinkColorArray ? linkSpec.color[i] : linkSpec.color,\n concentrationscale: concentrationscale,\n source: source,\n target: target,\n value: +val\n });\n\n groupedLinks.source.push(source);\n groupedLinks.target.push(target);\n }\n\n // Process nodes\n var totalCount = nodeCount + groups.length;\n var hasNodeColorArray = isArrayOrTypedArray(nodeSpec.color);\n var nodes = [];\n for(i = 0; i < totalCount; i++) {\n if(!linkedNodes[i]) continue;\n var l = nodeSpec.label[i];\n\n nodes.push({\n group: (i > nodeCount - 1),\n childrenNodes: [],\n pointNumber: i,\n label: l,\n color: hasNodeColorArray ? nodeSpec.color[i] : nodeSpec.color\n });\n }\n\n // Check if we have circularity on the resulting graph\n var circular = false;\n if(circularityPresent(totalCount, groupedLinks.source, groupedLinks.target)) {\n circular = true;\n }\n\n return {\n circular: circular,\n links: links,\n nodes: nodes,\n\n // Data structure for groups\n groups: groups,\n groupLookup: groupLookup\n };\n}\n\nfunction circularityPresent(nodeLen, sources, targets) {\n var nodes = Lib.init2dArray(nodeLen, 0);\n\n for(var i = 0; i < Math.min(sources.length, targets.length); i++) {\n if(Lib.isIndex(sources[i], nodeLen) && Lib.isIndex(targets[i], nodeLen)) {\n if(sources[i] === targets[i]) {\n return true; // self-link which is also a scc of one\n }\n nodes[sources[i]].push(targets[i]);\n }\n }\n\n var scc = tarjan(nodes);\n\n // Tarján's strongly connected components algorithm coded by Mikola Lysenko\n // returns at least one non-singular component if there's circularity in the graph\n return scc.components.some(function(c) {\n return c.length > 1;\n });\n}\n\nmodule.exports = function calc(gd, trace) {\n var result = convertToD3Sankey(trace);\n\n return wrap({\n circular: result.circular,\n _nodes: result.nodes,\n _links: result.links,\n\n // Data structure for grouping\n _groups: result.groups,\n _groupLookup: result.groupLookup,\n });\n};\n\n\n/***/ }),\n\n/***/ \"5f5f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createSpikes2D\n\nfunction GLSpikes2D(plot) {\n this.plot = plot\n this.enable = [true, true, false, false]\n this.width = [1, 1, 1, 1]\n this.color = [[0,0,0,1],\n [0,0,0,1],\n [0,0,0,1],\n [0,0,0,1]]\n this.center = [Infinity, Infinity]\n}\n\nvar proto = GLSpikes2D.prototype\n\nproto.update = function(options) {\n options = options || {}\n this.enable = (options.enable || [true,true,false,false]).slice()\n this.width = (options.width || [1,1,1,1]).slice()\n this.color = (options.color || [\n [0,0,0,1],\n [0,0,0,1],\n [0,0,0,1],\n [0,0,0,1]]).map(function(x) { return x.slice() })\n this.center = (options.center || [Infinity,Infinity]).slice()\n this.plot.setOverlayDirty()\n}\n\nproto.draw = function() {\n var spikeEnable = this.enable\n var spikeWidth = this.width\n var spikeColor = this.color\n var spikeCenter = this.center\n var plot = this.plot\n var line = plot.line\n\n var dataBox = plot.dataBox\n var viewPixels = plot.viewBox\n\n line.bind()\n\n if(dataBox[0] <= spikeCenter[0] && spikeCenter[0] <= dataBox[2] &&\n dataBox[1] <= spikeCenter[1] && spikeCenter[1] <= dataBox[3]) {\n\n var centerX = viewPixels[0] + (spikeCenter[0] - dataBox[0]) / (dataBox[2] - dataBox[0]) * (viewPixels[2] - viewPixels[0])\n var centerY = viewPixels[1] + (spikeCenter[1] - dataBox[1]) / (dataBox[3] - dataBox[1]) * (viewPixels[3] - viewPixels[1])\n\n if(spikeEnable[0]) {\n line.drawLine(\n centerX, centerY,\n viewPixels[0], centerY,\n spikeWidth[0], spikeColor[0])\n }\n if(spikeEnable[1]) {\n line.drawLine(\n centerX, centerY,\n centerX, viewPixels[1],\n spikeWidth[1], spikeColor[1])\n }\n if(spikeEnable[2]) {\n line.drawLine(\n centerX, centerY,\n viewPixels[2], centerY,\n spikeWidth[2], spikeColor[2])\n }\n if(spikeEnable[3]) {\n line.drawLine(\n centerX, centerY,\n centerX, viewPixels[3],\n spikeWidth[3], spikeColor[3])\n }\n }\n}\n\nproto.dispose = function() {\n this.plot.removeOverlay(this)\n}\n\nfunction createSpikes2D(plot, options) {\n var spikes = new GLSpikes2D(plot)\n spikes.update(options)\n plot.addOverlay(spikes)\n return spikes\n}\n\n\n/***/ }),\n\n/***/ \"6024\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar setPrototypeOf = __webpack_require__(\"e0f6\")\n , contains = __webpack_require__(\"f973\")\n , d = __webpack_require__(\"f508\")\n , Symbol = __webpack_require__(\"1c4a\")\n , Iterator = __webpack_require__(\"06a2\");\n\nvar defineProperty = Object.defineProperty, ArrayIterator;\n\nArrayIterator = module.exports = function (arr, kind) {\n\tif (!(this instanceof ArrayIterator)) throw new TypeError(\"Constructor requires 'new'\");\n\tIterator.call(this, arr);\n\tif (!kind) kind = \"value\";\n\telse if (contains.call(kind, \"key+value\")) kind = \"key+value\";\n\telse if (contains.call(kind, \"key\")) kind = \"key\";\n\telse kind = \"value\";\n\tdefineProperty(this, \"__kind__\", d(\"\", kind));\n};\nif (setPrototypeOf) setPrototypeOf(ArrayIterator, Iterator);\n\n// Internal %ArrayIteratorPrototype% doesn't expose its constructor\ndelete ArrayIterator.prototype.constructor;\n\nArrayIterator.prototype = Object.create(Iterator.prototype, {\n\t_resolve: d(function (i) {\n\t\tif (this.__kind__ === \"value\") return this.__list__[i];\n\t\tif (this.__kind__ === \"key+value\") return [i, this.__list__[i]];\n\t\treturn i;\n\t})\n});\ndefineProperty(ArrayIterator.prototype, Symbol.toStringTag, d(\"c\", \"Array Iterator\"));\n\n\n/***/ }),\n\n/***/ \"605a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.create = defaultTicks\nexports.equal = ticksEqual\n\nfunction prettyPrint(spacing, i) {\n var stepStr = spacing + \"\"\n var u = stepStr.indexOf(\".\")\n var sigFigs = 0\n if(u >= 0) {\n sigFigs = stepStr.length - u - 1\n }\n var shift = Math.pow(10, sigFigs)\n var x = Math.round(spacing * i * shift)\n var xstr = x + \"\"\n if(xstr.indexOf(\"e\") >= 0) {\n return xstr\n }\n var xi = x / shift, xf = x % shift\n if(x < 0) {\n xi = -Math.ceil(xi)|0\n xf = (-xf)|0\n } else {\n xi = Math.floor(xi)|0\n xf = xf|0\n }\n var xis = \"\" + xi \n if(x < 0) {\n xis = \"-\" + xis\n }\n if(sigFigs) {\n var xs = \"\" + xf\n while(xs.length < sigFigs) {\n xs = \"0\" + xs\n }\n return xis + \".\" + xs\n } else {\n return xis\n }\n}\n\nfunction defaultTicks(bounds, tickSpacing) {\n var array = []\n for(var d=0; d<3; ++d) {\n var ticks = []\n var m = 0.5*(bounds[0][d]+bounds[1][d])\n for(var t=0; t*tickSpacing[d]<=bounds[1][d]; ++t) {\n ticks.push({x: t*tickSpacing[d], text: prettyPrint(tickSpacing[d], t)})\n }\n for(var t=-1; t*tickSpacing[d]>=bounds[0][d]; --t) {\n ticks.push({x: t*tickSpacing[d], text: prettyPrint(tickSpacing[d], t)})\n }\n array.push(ticks)\n }\n return array\n}\n\nfunction ticksEqual(ticksA, ticksB) {\n for(var i=0; i<3; ++i) {\n if(ticksA[i].length !== ticksB[i].length) {\n return false\n }\n for(var j=0; j index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n\n\n/***/ }),\n\n/***/ \"60dc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nmodule.exports = {\n boxmode: {\n valType: 'enumerated',\n values: ['group', 'overlay'],\n dflt: 'overlay',\n \n editType: 'calc',\n \n },\n boxgap: {\n valType: 'number',\n min: 0,\n max: 1,\n dflt: 0.3,\n \n editType: 'calc',\n \n },\n boxgroupgap: {\n valType: 'number',\n min: 0,\n max: 1,\n dflt: 0.3,\n \n editType: 'calc',\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"615a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createTextElements\n\nvar createBuffer = __webpack_require__(\"efce\")\nvar createShader = __webpack_require__(\"28dd\")\nvar getText = __webpack_require__(\"9662\")\nvar bsearch = __webpack_require__(\"cc77\")\nvar shaders = __webpack_require__(\"b44d\")\n\nfunction TextElements(plot, vbo, shader) {\n this.plot = plot\n this.vbo = vbo\n this.shader = shader\n this.tickOffset = [[],[]]\n this.tickX = [[],[]]\n this.labelOffset = [0,0]\n this.labelCount = [0,0]\n}\n\nvar proto = TextElements.prototype\n\nproto.drawTicks = (function() {\n var DATA_AXIS = [0,0]\n var SCREEN_OFFSET = [0,0]\n var ZERO_2 = [0,0]\n\n return function(axis) {\n var plot = this.plot\n var shader = this.shader\n var tickX = this.tickX[axis]\n var tickOffset = this.tickOffset[axis]\n var gl = plot.gl\n var viewBox = plot.viewBox\n var dataBox = plot.dataBox\n var screenBox = plot.screenBox\n var pixelRatio = plot.pixelRatio\n var tickEnable = plot.tickEnable\n var tickPad = plot.tickPad\n var textColor = plot.tickColor\n var textAngle = plot.tickAngle\n // todo check if this should be used (now unused)\n // var tickLength = plot.tickMarkLength\n\n var labelEnable = plot.labelEnable\n var labelPad = plot.labelPad\n var labelColor = plot.labelColor\n var labelAngle = plot.labelAngle\n var labelOffset = this.labelOffset[axis]\n var labelCount = this.labelCount[axis]\n\n var start = bsearch.lt(tickX, dataBox[axis])\n var end = bsearch.le(tickX, dataBox[axis+2])\n\n DATA_AXIS[0] = DATA_AXIS[1] = 0\n DATA_AXIS[axis] = 1\n\n SCREEN_OFFSET[axis] = (viewBox[2+axis] + viewBox[axis]) / (screenBox[2+axis] - screenBox[axis]) - 1.0\n\n var screenScale = 2.0 / screenBox[2+(axis^1)] - screenBox[axis^1]\n\n SCREEN_OFFSET[axis^1] = screenScale * viewBox[axis^1] - 1.0\n if(tickEnable[axis]) {\n SCREEN_OFFSET[axis^1] -= screenScale * pixelRatio * tickPad[axis]\n if(start < end && tickOffset[end] > tickOffset[start]) {\n shader.uniforms.dataAxis = DATA_AXIS\n shader.uniforms.screenOffset = SCREEN_OFFSET\n shader.uniforms.color = textColor[axis]\n shader.uniforms.angle = textAngle[axis]\n gl.drawArrays(\n gl.TRIANGLES,\n tickOffset[start],\n tickOffset[end] - tickOffset[start])\n }\n }\n if(labelEnable[axis] && labelCount) {\n SCREEN_OFFSET[axis^1] -= screenScale * pixelRatio * labelPad[axis]\n shader.uniforms.dataAxis = ZERO_2\n shader.uniforms.screenOffset = SCREEN_OFFSET\n shader.uniforms.color = labelColor[axis]\n shader.uniforms.angle = labelAngle[axis]\n gl.drawArrays(\n gl.TRIANGLES,\n labelOffset,\n labelCount)\n }\n\n SCREEN_OFFSET[axis^1] = screenScale * viewBox[2+(axis^1)] - 1.0\n if(tickEnable[axis+2]) {\n SCREEN_OFFSET[axis^1] += screenScale * pixelRatio * tickPad[axis+2]\n if(start < end && tickOffset[end] > tickOffset[start]) {\n shader.uniforms.dataAxis = DATA_AXIS\n shader.uniforms.screenOffset = SCREEN_OFFSET\n shader.uniforms.color = textColor[axis+2]\n shader.uniforms.angle = textAngle[axis+2]\n gl.drawArrays(\n gl.TRIANGLES,\n tickOffset[start],\n tickOffset[end] - tickOffset[start])\n }\n }\n if(labelEnable[axis+2] && labelCount) {\n SCREEN_OFFSET[axis^1] += screenScale * pixelRatio * labelPad[axis+2]\n shader.uniforms.dataAxis = ZERO_2\n shader.uniforms.screenOffset = SCREEN_OFFSET\n shader.uniforms.color = labelColor[axis+2]\n shader.uniforms.angle = labelAngle[axis+2]\n gl.drawArrays(\n gl.TRIANGLES,\n labelOffset,\n labelCount)\n }\n\n }\n})()\n\nproto.drawTitle = (function() {\n var DATA_AXIS = [0,0]\n var SCREEN_OFFSET = [0,0]\n\n return function() {\n var plot = this.plot\n var shader = this.shader\n var gl = plot.gl\n var screenBox = plot.screenBox\n var titleCenter = plot.titleCenter\n var titleAngle = plot.titleAngle\n var titleColor = plot.titleColor\n var pixelRatio = plot.pixelRatio\n\n if(!this.titleCount) {\n return\n }\n\n for(var i=0; i<2; ++i) {\n SCREEN_OFFSET[i] = 2.0 * (titleCenter[i]*pixelRatio - screenBox[i]) /\n (screenBox[2+i] - screenBox[i]) - 1\n }\n\n shader.bind()\n shader.uniforms.dataAxis = DATA_AXIS\n shader.uniforms.screenOffset = SCREEN_OFFSET\n shader.uniforms.angle = titleAngle\n shader.uniforms.color = titleColor\n\n gl.drawArrays(gl.TRIANGLES, this.titleOffset, this.titleCount)\n }\n})()\n\nproto.bind = (function() {\n var DATA_SHIFT = [0,0]\n var DATA_SCALE = [0,0]\n var TEXT_SCALE = [0,0]\n\n return function() {\n var plot = this.plot\n var shader = this.shader\n var bounds = plot._tickBounds\n var dataBox = plot.dataBox\n var screenBox = plot.screenBox\n var viewBox = plot.viewBox\n\n shader.bind()\n\n //Set up coordinate scaling uniforms\n for(var i=0; i<2; ++i) {\n\n var lo = bounds[i]\n var hi = bounds[i+2]\n var boundScale = hi - lo\n var dataCenter = 0.5 * (dataBox[i+2] + dataBox[i])\n var dataWidth = (dataBox[i+2] - dataBox[i])\n\n var viewLo = viewBox[i]\n var viewHi = viewBox[i+2]\n var viewScale = viewHi - viewLo\n var screenLo = screenBox[i]\n var screenHi = screenBox[i+2]\n var screenScale = screenHi - screenLo\n\n DATA_SCALE[i] = 2.0 * boundScale / dataWidth * viewScale / screenScale\n DATA_SHIFT[i] = 2.0 * (lo - dataCenter) / dataWidth * viewScale / screenScale\n }\n\n TEXT_SCALE[1] = 2.0 * plot.pixelRatio / (screenBox[3] - screenBox[1])\n TEXT_SCALE[0] = TEXT_SCALE[1] * (screenBox[3] - screenBox[1]) / (screenBox[2] - screenBox[0])\n\n shader.uniforms.dataScale = DATA_SCALE\n shader.uniforms.dataShift = DATA_SHIFT\n shader.uniforms.textScale = TEXT_SCALE\n\n //Set attributes\n this.vbo.bind()\n shader.attributes.textCoordinate.pointer()\n }\n})()\n\nproto.update = function(options) {\n var vertices = []\n var axesTicks = options.ticks\n var bounds = options.bounds\n var i, j, k, data, scale, dimension\n\n for(dimension=0; dimension<2; ++dimension) {\n var offsets = [Math.floor(vertices.length/3)], tickX = [-Infinity]\n\n //Copy vertices over to buffer\n var ticks = axesTicks[dimension]\n for(i=0; i 1e-6) {\n out[0] = ax/al\n out[1] = ay/al\n out[2] = az/al\n out[3] = aw/al\n } else {\n out[0] = out[1] = out[2] = 0.0\n out[3] = 1.0\n }\n}\n\nfunction OrbitCameraController(initQuat, initCenter, initRadius) {\n this.radius = filterVector([initRadius])\n this.center = filterVector(initCenter)\n this.rotation = filterVector(initQuat)\n\n this.computedRadius = this.radius.curve(0)\n this.computedCenter = this.center.curve(0)\n this.computedRotation = this.rotation.curve(0)\n this.computedUp = [0.1,0,0]\n this.computedEye = [0.1,0,0]\n this.computedMatrix = [0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]\n\n this.recalcMatrix(0)\n}\n\nvar proto = OrbitCameraController.prototype\n\nproto.lastT = function() {\n return Math.max(\n this.radius.lastT(),\n this.center.lastT(),\n this.rotation.lastT())\n}\n\nproto.recalcMatrix = function(t) {\n this.radius.curve(t)\n this.center.curve(t)\n this.rotation.curve(t)\n\n var quat = this.computedRotation\n normalize4(quat, quat)\n\n var mat = this.computedMatrix\n mat4FromQuat(mat, quat)\n\n var center = this.computedCenter\n var eye = this.computedEye\n var up = this.computedUp\n var radius = Math.exp(this.computedRadius[0])\n\n eye[0] = center[0] + radius * mat[2]\n eye[1] = center[1] + radius * mat[6]\n eye[2] = center[2] + radius * mat[10]\n up[0] = mat[1]\n up[1] = mat[5]\n up[2] = mat[9]\n\n for(var i=0; i<3; ++i) {\n var rr = 0.0\n for(var j=0; j<3; ++j) {\n rr += mat[i+4*j] * eye[j]\n }\n mat[12+i] = -rr\n }\n}\n\nproto.getMatrix = function(t, result) {\n this.recalcMatrix(t)\n var m = this.computedMatrix\n if(result) {\n for(var i=0; i<16; ++i) {\n result[i] = m[i]\n }\n return result\n }\n return m\n}\n\nproto.idle = function(t) {\n this.center.idle(t)\n this.radius.idle(t)\n this.rotation.idle(t)\n}\n\nproto.flush = function(t) {\n this.center.flush(t)\n this.radius.flush(t)\n this.rotation.flush(t)\n}\n\nproto.pan = function(t, dx, dy, dz) {\n dx = dx || 0.0\n dy = dy || 0.0\n dz = dz || 0.0\n\n this.recalcMatrix(t)\n var mat = this.computedMatrix\n\n var ux = mat[1]\n var uy = mat[5]\n var uz = mat[9]\n var ul = len3(ux, uy, uz)\n ux /= ul\n uy /= ul\n uz /= ul\n\n var rx = mat[0]\n var ry = mat[4]\n var rz = mat[8]\n var ru = rx * ux + ry * uy + rz * uz\n rx -= ux * ru\n ry -= uy * ru\n rz -= uz * ru\n var rl = len3(rx, ry, rz)\n rx /= rl\n ry /= rl\n rz /= rl\n\n var fx = mat[2]\n var fy = mat[6]\n var fz = mat[10]\n var fu = fx * ux + fy * uy + fz * uz\n var fr = fx * rx + fy * ry + fz * rz\n fx -= fu * ux + fr * rx\n fy -= fu * uy + fr * ry\n fz -= fu * uz + fr * rz\n var fl = len3(fx, fy, fz)\n fx /= fl\n fy /= fl\n fz /= fl\n\n var vx = rx * dx + ux * dy\n var vy = ry * dx + uy * dy\n var vz = rz * dx + uz * dy\n\n this.center.move(t, vx, vy, vz)\n\n //Update z-component of radius\n var radius = Math.exp(this.computedRadius[0])\n radius = Math.max(1e-4, radius + dz)\n this.radius.set(t, Math.log(radius))\n}\n\nproto.rotate = function(t, dx, dy, dz) {\n this.recalcMatrix(t)\n\n dx = dx||0.0\n dy = dy||0.0\n\n var mat = this.computedMatrix\n\n var rx = mat[0]\n var ry = mat[4]\n var rz = mat[8]\n\n var ux = mat[1]\n var uy = mat[5]\n var uz = mat[9]\n\n var fx = mat[2]\n var fy = mat[6]\n var fz = mat[10]\n\n var qx = dx * rx + dy * ux\n var qy = dx * ry + dy * uy\n var qz = dx * rz + dy * uz\n\n var bx = -(fy * qz - fz * qy)\n var by = -(fz * qx - fx * qz)\n var bz = -(fx * qy - fy * qx) \n var bw = Math.sqrt(Math.max(0.0, 1.0 - Math.pow(bx,2) - Math.pow(by,2) - Math.pow(bz,2)))\n var bl = len4(bx, by, bz, bw)\n if(bl > 1e-6) {\n bx /= bl\n by /= bl\n bz /= bl\n bw /= bl\n } else {\n bx = by = bz = 0.0\n bw = 1.0\n }\n\n var rotation = this.computedRotation\n var ax = rotation[0]\n var ay = rotation[1]\n var az = rotation[2]\n var aw = rotation[3]\n\n var cx = ax*bw + aw*bx + ay*bz - az*by\n var cy = ay*bw + aw*by + az*bx - ax*bz\n var cz = az*bw + aw*bz + ax*by - ay*bx\n var cw = aw*bw - ax*bx - ay*by - az*bz\n \n //Apply roll\n if(dz) {\n bx = fx\n by = fy\n bz = fz\n var s = Math.sin(dz) / len3(bx, by, bz)\n bx *= s\n by *= s\n bz *= s\n bw = Math.cos(dx)\n cx = cx*bw + cw*bx + cy*bz - cz*by\n cy = cy*bw + cw*by + cz*bx - cx*bz\n cz = cz*bw + cw*bz + cx*by - cy*bx\n cw = cw*bw - cx*bx - cy*by - cz*bz\n }\n\n var cl = len4(cx, cy, cz, cw)\n if(cl > 1e-6) {\n cx /= cl\n cy /= cl\n cz /= cl\n cw /= cl\n } else {\n cx = cy = cz = 0.0\n cw = 1.0\n }\n\n this.rotation.set(t, cx, cy, cz, cw)\n}\n\nproto.lookAt = function(t, eye, center, up) {\n this.recalcMatrix(t)\n\n center = center || this.computedCenter\n eye = eye || this.computedEye\n up = up || this.computedUp\n\n var mat = this.computedMatrix\n lookAt(mat, eye, center, up)\n\n var rotation = this.computedRotation\n quatFromFrame(rotation,\n mat[0], mat[1], mat[2],\n mat[4], mat[5], mat[6],\n mat[8], mat[9], mat[10])\n normalize4(rotation, rotation)\n this.rotation.set(t, rotation[0], rotation[1], rotation[2], rotation[3])\n\n var fl = 0.0\n for(var i=0; i<3; ++i) {\n fl += Math.pow(center[i] - eye[i], 2)\n }\n this.radius.set(t, 0.5 * Math.log(Math.max(fl, 1e-6)))\n\n this.center.set(t, center[0], center[1], center[2])\n}\n\nproto.translate = function(t, dx, dy, dz) {\n this.center.move(t,\n dx||0.0,\n dy||0.0,\n dz||0.0)\n}\n\nproto.setMatrix = function(t, matrix) {\n\n var rotation = this.computedRotation\n quatFromFrame(rotation,\n matrix[0], matrix[1], matrix[2],\n matrix[4], matrix[5], matrix[6],\n matrix[8], matrix[9], matrix[10])\n normalize4(rotation, rotation)\n this.rotation.set(t, rotation[0], rotation[1], rotation[2], rotation[3])\n\n var mat = this.computedMatrix\n invert44(mat, matrix)\n var w = mat[15]\n if(Math.abs(w) > 1e-6) {\n var cx = mat[12]/w\n var cy = mat[13]/w\n var cz = mat[14]/w\n\n this.recalcMatrix(t) \n var r = Math.exp(this.computedRadius[0])\n this.center.set(t, cx-mat[2]*r, cy-mat[6]*r, cz-mat[10]*r)\n this.radius.idle(t)\n } else {\n this.center.idle(t)\n this.radius.idle(t)\n }\n}\n\nproto.setDistance = function(t, d) {\n if(d > 0) {\n this.radius.set(t, Math.log(d))\n }\n}\n\nproto.setDistanceLimits = function(lo, hi) {\n if(lo > 0) {\n lo = Math.log(lo)\n } else {\n lo = -Infinity \n }\n if(hi > 0) {\n hi = Math.log(hi)\n } else {\n hi = Infinity\n }\n hi = Math.max(hi, lo)\n this.radius.bounds[0][0] = lo\n this.radius.bounds[1][0] = hi\n}\n\nproto.getDistanceLimits = function(out) {\n var bounds = this.radius.bounds\n if(out) {\n out[0] = Math.exp(bounds[0][0])\n out[1] = Math.exp(bounds[1][0])\n return out\n }\n return [ Math.exp(bounds[0][0]), Math.exp(bounds[1][0]) ]\n}\n\nproto.toJSON = function() {\n this.recalcMatrix(this.lastT())\n return {\n center: this.computedCenter.slice(),\n rotation: this.computedRotation.slice(),\n distance: Math.log(this.computedRadius[0]),\n zoomMin: this.radius.bounds[0][0],\n zoomMax: this.radius.bounds[1][0]\n }\n}\n\nproto.fromJSON = function(options) {\n var t = this.lastT()\n var c = options.center\n if(c) {\n this.center.set(t, c[0], c[1], c[2])\n }\n var r = options.rotation\n if(r) {\n this.rotation.set(t, r[0], r[1], r[2], r[3])\n }\n var d = options.distance\n if(d && d > 0) {\n this.radius.set(t, Math.log(d))\n }\n this.setDistanceLimits(options.zoomMin, options.zoomMax)\n}\n\nfunction createOrbitController(options) {\n options = options || {}\n var center = options.center || [0,0,0]\n var rotation = options.rotation || [0,0,0,1]\n var radius = options.radius || 1.0\n\n center = [].slice.call(center, 0, 3)\n rotation = [].slice.call(rotation, 0, 4)\n normalize4(rotation, rotation)\n\n var result = new OrbitCameraController(\n rotation,\n center,\n Math.log(radius))\n\n result.setDistanceLimits(options.zoomMin, options.zoomMax)\n\n if('eye' in options || 'up' in options) {\n result.lookAt(0, options.eye, options.center, options.up)\n }\n\n return result\n}\n\n/***/ }),\n\n/***/ \"6259\":\n/***/ (function(module, exports) {\n\nmodule.exports = transformMat4\n\n/**\n * Transforms the vec4 with a mat4.\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the vector to transform\n * @param {mat4} m matrix to transform with\n * @returns {vec4} out\n */\nfunction transformMat4 (out, a, m) {\n var x = a[0], y = a[1], z = a[2], w = a[3]\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w\n return out\n}\n\n\n/***/ }),\n\n/***/ \"6295\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar createShader = __webpack_require__(\"28dd\")\nvar glslify = __webpack_require__(\"e98f\")\n\nvar vertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec4 uv;\\nattribute vec3 f;\\nattribute vec3 normal;\\n\\nuniform vec3 objectOffset;\\nuniform mat4 model, view, projection, inverseModel;\\nuniform vec3 lightPosition, eyePosition;\\nuniform sampler2D colormap;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n vec3 localCoordinate = vec3(uv.zw, f.x);\\n worldCoordinate = objectOffset + localCoordinate;\\n vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\\n vec4 clipPosition = projection * view * worldPosition;\\n gl_Position = clipPosition;\\n kill = f.y;\\n value = f.z;\\n planeCoordinate = uv.xy;\\n\\n vColor = texture2D(colormap, vec2(value, value));\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * worldPosition;\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n lightDirection = lightPosition - cameraCoordinate.xyz;\\n eyeDirection = eyePosition - cameraCoordinate.xyz;\\n surfaceNormal = normalize((vec4(normal,0) * inverseModel).xyz);\\n}\\n\"])\nvar fragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat beckmannSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness) {\\n return beckmannDistribution(dot(surfaceNormal, normalize(lightDirection + viewDirection)), roughness);\\n}\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 lowerBound, upperBound;\\nuniform float contourTint;\\nuniform vec4 contourColor;\\nuniform sampler2D colormap;\\nuniform vec3 clipBounds[2];\\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\\nuniform float vertexColor;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n if ((kill > 0.0) ||\\n (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\\n\\n vec3 N = normalize(surfaceNormal);\\n vec3 V = normalize(eyeDirection);\\n vec3 L = normalize(lightDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = max(beckmannSpecular(L, V, N, roughness), 0.);\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n //decide how to interpolate color — in vertex or in fragment\\n vec4 surfaceColor =\\n step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) +\\n step(.5, vertexColor) * vColor;\\n\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = mix(litColor, contourColor, contourTint) * opacity;\\n}\\n\"])\nvar contourVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec4 uv;\\nattribute float f;\\n\\nuniform vec3 objectOffset;\\nuniform mat3 permutation;\\nuniform mat4 model, view, projection;\\nuniform float height, zOffset;\\nuniform sampler2D colormap;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n vec3 dataCoordinate = permutation * vec3(uv.xy, height);\\n worldCoordinate = objectOffset + dataCoordinate;\\n vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\\n\\n vec4 clipPosition = projection * view * worldPosition;\\n clipPosition.z += zOffset;\\n\\n gl_Position = clipPosition;\\n value = f + objectOffset.z;\\n kill = -1.0;\\n planeCoordinate = uv.zw;\\n\\n vColor = texture2D(colormap, vec2(value, value));\\n\\n //Don't do lighting for contours\\n surfaceNormal = vec3(1,0,0);\\n eyeDirection = vec3(0,1,0);\\n lightDirection = vec3(0,0,1);\\n}\\n\"])\nvar pickSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec2 shape;\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 surfaceNormal;\\n\\nvec2 splitFloat(float v) {\\n float vh = 255.0 * v;\\n float upper = floor(vh);\\n float lower = fract(vh);\\n return vec2(upper / 255.0, floor(lower * 16.0) / 16.0);\\n}\\n\\nvoid main() {\\n if ((kill > 0.0) ||\\n (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\\n\\n vec2 ux = splitFloat(planeCoordinate.x / shape.x);\\n vec2 uy = splitFloat(planeCoordinate.y / shape.y);\\n gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0));\\n}\\n\"])\n\nexports.createShader = function (gl) {\n var shader = createShader(gl, vertSrc, fragSrc, null, [\n {name: 'uv', type: 'vec4'},\n {name: 'f', type: 'vec3'},\n {name: 'normal', type: 'vec3'}\n ])\n shader.attributes.uv.location = 0\n shader.attributes.f.location = 1\n shader.attributes.normal.location = 2\n return shader\n}\nexports.createPickShader = function (gl) {\n var shader = createShader(gl, vertSrc, pickSrc, null, [\n {name: 'uv', type: 'vec4'},\n {name: 'f', type: 'vec3'},\n {name: 'normal', type: 'vec3'}\n ])\n shader.attributes.uv.location = 0\n shader.attributes.f.location = 1\n shader.attributes.normal.location = 2\n return shader\n}\nexports.createContourShader = function (gl) {\n var shader = createShader(gl, contourVertSrc, fragSrc, null, [\n {name: 'uv', type: 'vec4'},\n {name: 'f', type: 'float'}\n ])\n shader.attributes.uv.location = 0\n shader.attributes.f.location = 1\n return shader\n}\nexports.createPickContourShader = function (gl) {\n var shader = createShader(gl, contourVertSrc, pickSrc, null, [\n {name: 'uv', type: 'vec4'},\n {name: 'f', type: 'float'}\n ])\n shader.attributes.uv.location = 0\n shader.attributes.f.location = 1\n return shader\n}\n\n\n/***/ }),\n\n/***/ \"62c4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _undefined = __webpack_require__(\"e76c\")(); // Support ES3 engines\n\nmodule.exports = function (val) { return val !== _undefined && val !== null; };\n\n\n/***/ }),\n\n/***/ \"62d6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar compile = __webpack_require__(\"40ce\")\n\nvar EmptyProc = {\n body: \"\",\n args: [],\n thisVars: [],\n localVars: []\n}\n\nfunction fixup(x) {\n if(!x) {\n return EmptyProc\n }\n for(var i=0; i>\",\n rrshift: \">>>\"\n}\n;(function(){\n for(var id in assign_ops) {\n var op = assign_ops[id]\n exports[id] = makeOp({\n args: [\"array\",\"array\",\"array\"],\n body: {args:[\"a\",\"b\",\"c\"],\n body: \"a=b\"+op+\"c\"},\n funcName: id\n })\n exports[id+\"eq\"] = makeOp({\n args: [\"array\",\"array\"],\n body: {args:[\"a\",\"b\"],\n body:\"a\"+op+\"=b\"},\n rvalue: true,\n funcName: id+\"eq\"\n })\n exports[id+\"s\"] = makeOp({\n args: [\"array\", \"array\", \"scalar\"],\n body: {args:[\"a\",\"b\",\"s\"],\n body:\"a=b\"+op+\"s\"},\n funcName: id+\"s\"\n })\n exports[id+\"seq\"] = makeOp({\n args: [\"array\",\"scalar\"],\n body: {args:[\"a\",\"s\"],\n body:\"a\"+op+\"=s\"},\n rvalue: true,\n funcName: id+\"seq\"\n })\n }\n})();\n\nvar unary_ops = {\n not: \"!\",\n bnot: \"~\",\n neg: \"-\",\n recip: \"1.0/\"\n}\n;(function(){\n for(var id in unary_ops) {\n var op = unary_ops[id]\n exports[id] = makeOp({\n args: [\"array\", \"array\"],\n body: {args:[\"a\",\"b\"],\n body:\"a=\"+op+\"b\"},\n funcName: id\n })\n exports[id+\"eq\"] = makeOp({\n args: [\"array\"],\n body: {args:[\"a\"],\n body:\"a=\"+op+\"a\"},\n rvalue: true,\n count: 2,\n funcName: id+\"eq\"\n })\n }\n})();\n\nvar binary_ops = {\n and: \"&&\",\n or: \"||\",\n eq: \"===\",\n neq: \"!==\",\n lt: \"<\",\n gt: \">\",\n leq: \"<=\",\n geq: \">=\"\n}\n;(function() {\n for(var id in binary_ops) {\n var op = binary_ops[id]\n exports[id] = makeOp({\n args: [\"array\",\"array\",\"array\"],\n body: {args:[\"a\", \"b\", \"c\"],\n body:\"a=b\"+op+\"c\"},\n funcName: id\n })\n exports[id+\"s\"] = makeOp({\n args: [\"array\",\"array\",\"scalar\"],\n body: {args:[\"a\", \"b\", \"s\"],\n body:\"a=b\"+op+\"s\"},\n funcName: id+\"s\"\n })\n exports[id+\"eq\"] = makeOp({\n args: [\"array\", \"array\"],\n body: {args:[\"a\", \"b\"],\n body:\"a=a\"+op+\"b\"},\n rvalue:true,\n count:2,\n funcName: id+\"eq\"\n })\n exports[id+\"seq\"] = makeOp({\n args: [\"array\", \"scalar\"],\n body: {args:[\"a\",\"s\"],\n body:\"a=a\"+op+\"s\"},\n rvalue:true,\n count:2,\n funcName: id+\"seq\"\n })\n }\n})();\n\nvar math_unary = [\n \"abs\",\n \"acos\",\n \"asin\",\n \"atan\",\n \"ceil\",\n \"cos\",\n \"exp\",\n \"floor\",\n \"log\",\n \"round\",\n \"sin\",\n \"sqrt\",\n \"tan\"\n]\n;(function() {\n for(var i=0; ithis_s){this_s=-a}else if(a>this_s){this_s=a}\", localVars: [], thisVars: [\"this_s\"]},\n post: {args:[], localVars:[], thisVars:[\"this_s\"], body:\"return this_s\"},\n funcName: \"norminf\"\n})\n\nexports.norm1 = compile({\n args:[\"array\"],\n pre: {args:[], localVars:[], thisVars:[\"this_s\"], body:\"this_s=0\"},\n body: {args:[{name:\"a\", lvalue:false, rvalue:true, count:3}], body: \"this_s+=a<0?-a:a\", localVars: [], thisVars: [\"this_s\"]},\n post: {args:[], localVars:[], thisVars:[\"this_s\"], body:\"return this_s\"},\n funcName: \"norm1\"\n})\n\nexports.sup = compile({\n args: [ \"array\" ],\n pre:\n { body: \"this_h=-Infinity\",\n args: [],\n thisVars: [ \"this_h\" ],\n localVars: [] },\n body:\n { body: \"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_\",\n args: [{\"name\":\"_inline_1_arg0_\",\"lvalue\":false,\"rvalue\":true,\"count\":2} ],\n thisVars: [ \"this_h\" ],\n localVars: [] },\n post:\n { body: \"return this_h\",\n args: [],\n thisVars: [ \"this_h\" ],\n localVars: [] }\n })\n\nexports.inf = compile({\n args: [ \"array\" ],\n pre:\n { body: \"this_h=Infinity\",\n args: [],\n thisVars: [ \"this_h\" ],\n localVars: [] },\n body:\n { body: \"if(_inline_1_arg0_this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}\",\n args:[\n {name:\"_inline_1_arg0_\",lvalue:false,rvalue:true,count:2},\n {name:\"_inline_1_arg1_\",lvalue:false,rvalue:true,count:2}],\n thisVars:[\"this_i\",\"this_v\"],\n localVars:[\"_inline_1_k\"]},\n post:{\n body:\"{return this_i}\",\n args:[],\n thisVars:[\"this_i\"],\n localVars:[]}\n}) \n\nexports.random = makeOp({\n args: [\"array\"],\n pre: {args:[], body:\"this_f=Math.random\", thisVars:[\"this_f\"]},\n body: {args: [\"a\"], body:\"a=this_f()\", thisVars:[\"this_f\"]},\n funcName: \"random\"\n})\n\nexports.assign = makeOp({\n args:[\"array\", \"array\"],\n body: {args:[\"a\", \"b\"], body:\"a=b\"},\n funcName: \"assign\" })\n\nexports.assigns = makeOp({\n args:[\"array\", \"scalar\"],\n body: {args:[\"a\", \"b\"], body:\"a=b\"},\n funcName: \"assigns\" })\n\n\nexports.equals = compile({\n args:[\"array\", \"array\"],\n pre: EmptyProc,\n body: {args:[{name:\"x\", lvalue:false, rvalue:true, count:1},\n {name:\"y\", lvalue:false, rvalue:true, count:1}], \n body: \"if(x!==y){return false}\", \n localVars: [], \n thisVars: []},\n post: {args:[], localVars:[], thisVars:[], body:\"return true\"},\n funcName: \"equals\"\n})\n\n\n\n\n/***/ }),\n\n/***/ \"62e4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n/***/ }),\n\n/***/ \"6321\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isPrototype = __webpack_require__(\"9013\");\n\nmodule.exports = function (value) {\n\tif (typeof value !== \"function\") return false;\n\n\tif (!hasOwnProperty.call(value, \"length\")) return false;\n\n\ttry {\n\t\tif (typeof value.length !== \"number\") return false;\n\t\tif (typeof value.call !== \"function\") return false;\n\t\tif (typeof value.apply !== \"function\") return false;\n\t} catch (error) {\n\t\treturn false;\n\t}\n\n\treturn !isPrototype(value);\n};\n\n\n/***/ }),\n\n/***/ \"6386\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n moduleType: 'trace',\n name: 'scatterpolar',\n basePlotModule: __webpack_require__(\"c07c\"),\n categories: ['polar', 'symbols', 'showLegend', 'scatter-like'],\n\n attributes: __webpack_require__(\"8a6e\"),\n supplyDefaults: __webpack_require__(\"66db\").supplyDefaults,\n colorbar: __webpack_require__(\"f3cf\"),\n formatLabels: __webpack_require__(\"98e74\"),\n calc: __webpack_require__(\"8a43\"),\n plot: __webpack_require__(\"8260\"),\n style: __webpack_require__(\"52e8\").style,\n styleOnSelect: __webpack_require__(\"52e8\").styleOnSelect,\n hoverPoints: __webpack_require__(\"efcd\").hoverPoints,\n selectPoints: __webpack_require__(\"214c\"),\n\n meta: {\n \n \n }\n};\n\n\n/***/ }),\n\n/***/ \"63dc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n// fraction of some size to get to a named position\nmodule.exports = {\n // from bottom left: this is the origin of our paper-reference\n // positioning system\n FROM_BL: {\n left: 0,\n center: 0.5,\n right: 1,\n bottom: 0,\n middle: 0.5,\n top: 1\n },\n // from top left: this is the screen pixel positioning origin\n FROM_TL: {\n left: 0,\n center: 0.5,\n right: 1,\n bottom: 1,\n middle: 0.5,\n top: 0\n },\n // from bottom right: sometimes you just need the opposite of ^^\n FROM_BR: {\n left: 1,\n center: 0.5,\n right: 0,\n bottom: 0,\n middle: 0.5,\n top: 1\n },\n // multiple of fontSize to get the vertical offset between lines\n LINE_SPACING: 1.3,\n\n // multiple of fontSize to shift from the baseline\n // to the cap (captical letter) line\n // (to use when we don't calculate this shift from Drawing.bBox)\n // This is an approximation since in reality cap height can differ\n // from font to font. However, according to Wikipedia\n // an \"average\" font might have a cap height of 70% of the em\n // https://en.wikipedia.org/wiki/Em_(typography)#History\n CAP_SHIFT: 0.70,\n\n // half the cap height (distance between baseline and cap line)\n // of an \"average\" font (for more info see above).\n MID_SHIFT: 0.35,\n\n OPPOSITE_SIDE: {\n left: 'right',\n right: 'left',\n top: 'bottom',\n bottom: 'top'\n }\n};\n\n\n/***/ }),\n\n/***/ \"643c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar plots = __webpack_require__(\"bb71\");\n\nexports.name = 'indicator';\n\nexports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n};\n\n\n/***/ }),\n\n/***/ \"644a\":\n/***/ (function(module, exports) {\n\nmodule.exports = squaredLength\n\n/**\n * Calculates the squared length of a vec4\n *\n * @param {vec4} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\nfunction squaredLength (a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3]\n return x * x + y * y + z * z + w * w\n}\n\n\n/***/ }),\n\n/***/ \"64c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar extendFlat = __webpack_require__(\"fc26\").extendFlat;\nvar OHLCattrs = __webpack_require__(\"6657\");\nvar boxAttrs = __webpack_require__(\"1ebf\");\n\nfunction directionAttrs(lineColorDefault) {\n return {\n line: {\n color: extendFlat({}, boxAttrs.line.color, {dflt: lineColorDefault}),\n width: boxAttrs.line.width,\n editType: 'style'\n },\n\n fillcolor: boxAttrs.fillcolor,\n editType: 'style'\n };\n}\n\nmodule.exports = {\n x: OHLCattrs.x,\n open: OHLCattrs.open,\n high: OHLCattrs.high,\n low: OHLCattrs.low,\n close: OHLCattrs.close,\n\n line: {\n width: extendFlat({}, boxAttrs.line.width, {\n \n }),\n editType: 'style'\n },\n\n increasing: directionAttrs(OHLCattrs.increasing.line.color.dflt),\n\n decreasing: directionAttrs(OHLCattrs.decreasing.line.color.dflt),\n\n text: OHLCattrs.text,\n hovertext: OHLCattrs.hovertext,\n whiskerwidth: extendFlat({}, boxAttrs.whiskerwidth, { dflt: 0 }),\n\n hoverlabel: OHLCattrs.hoverlabel,\n};\n\n\n/***/ }),\n\n/***/ \"6533\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nmodule.exports = function handleLabelDefaults(coerce, layout, lineColor, opts) {\n if(!opts) opts = {};\n var showLabels = coerce('contours.showlabels');\n if(showLabels) {\n var globalFont = layout.font;\n Lib.coerceFont(coerce, 'contours.labelfont', {\n family: globalFont.family,\n size: globalFont.size,\n color: lineColor\n });\n coerce('contours.labelformat');\n }\n\n if(opts.hasHover !== false) coerce('zhoverformat');\n};\n\n\n/***/ }),\n\n/***/ \"6547\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ \"654e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar colorscaleDefaults = __webpack_require__(\"4183\");\nvar attributes = __webpack_require__(\"535c\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var lon = coerce('lon') || [];\n var lat = coerce('lat') || [];\n\n var len = Math.min(lon.length, lat.length);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._length = len;\n\n coerce('z');\n coerce('radius');\n coerce('below');\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});\n};\n\n\n/***/ }),\n\n/***/ \"6578\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"16ef\");\n\n\n/***/ }),\n\n/***/ \"6599\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar generated = Object.create(null), random = Math.random;\n\nmodule.exports = function () {\n\tvar str;\n\tdo {\n\t\tstr = random().toString(36).slice(2);\n\t} while (generated[str]);\n\treturn str;\n};\n\n\n/***/ }),\n\n/***/ \"65f0\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\nvar isArray = __webpack_require__(\"e8b5\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n\n\n/***/ }),\n\n/***/ \"661c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Loggers = __webpack_require__(\"ae13\");\nvar mod = __webpack_require__(\"d3dc\").mod;\n\nvar constants = __webpack_require__(\"e806\");\nvar BADNUM = constants.BADNUM;\nvar ONEDAY = constants.ONEDAY;\nvar ONEHOUR = constants.ONEHOUR;\nvar ONEMIN = constants.ONEMIN;\nvar ONESEC = constants.ONESEC;\nvar EPOCHJD = constants.EPOCHJD;\n\nvar Registry = __webpack_require__(\"371e\");\n\nvar utcFormat = d3.time.format.utc;\n\nvar DATETIME_REGEXP = /^\\s*(-?\\d\\d\\d\\d|\\d\\d)(-(\\d?\\d)(-(\\d?\\d)([ Tt]([01]?\\d|2[0-3])(:([0-5]\\d)(:([0-5]\\d(\\.\\d+)?))?(Z|z|[+\\-]\\d\\d:?\\d\\d)?)?)?)?)?\\s*$/m;\n// special regex for chinese calendars to support yyyy-mmi-dd etc for intercalary months\nvar DATETIME_REGEXP_CN = /^\\s*(-?\\d\\d\\d\\d|\\d\\d)(-(\\d?\\di?)(-(\\d?\\d)([ Tt]([01]?\\d|2[0-3])(:([0-5]\\d)(:([0-5]\\d(\\.\\d+)?))?(Z|z|[+\\-]\\d\\d:?\\d\\d)?)?)?)?)?\\s*$/m;\n\n// for 2-digit years, the first year we map them onto\nvar YFIRST = new Date().getFullYear() - 70;\n\nfunction isWorldCalendar(calendar) {\n return (\n calendar &&\n Registry.componentsRegistry.calendars &&\n typeof calendar === 'string' && calendar !== 'gregorian'\n );\n}\n\n/*\n * dateTick0: get the canonical tick for this calendar\n *\n * bool sunday is for week ticks, shift it to a Sunday.\n */\nexports.dateTick0 = function(calendar, sunday) {\n if(isWorldCalendar(calendar)) {\n return sunday ?\n Registry.getComponentMethod('calendars', 'CANONICAL_SUNDAY')[calendar] :\n Registry.getComponentMethod('calendars', 'CANONICAL_TICK')[calendar];\n } else {\n return sunday ? '2000-01-02' : '2000-01-01';\n }\n};\n\n/*\n * dfltRange: for each calendar, give a valid default range\n */\nexports.dfltRange = function(calendar) {\n if(isWorldCalendar(calendar)) {\n return Registry.getComponentMethod('calendars', 'DFLTRANGE')[calendar];\n } else {\n return ['2000-01-01', '2001-01-01'];\n }\n};\n\n// is an object a javascript date?\nexports.isJSDate = function(v) {\n return typeof v === 'object' && v !== null && typeof v.getTime === 'function';\n};\n\n// The absolute limits of our date-time system\n// This is a little weird: we use MIN_MS and MAX_MS in dateTime2ms\n// but we use dateTime2ms to calculate them (after defining it!)\nvar MIN_MS, MAX_MS;\n\n/**\n * dateTime2ms - turn a date object or string s into milliseconds\n * (relative to 1970-01-01, per javascript standard)\n * optional calendar (string) to use a non-gregorian calendar\n *\n * Returns BADNUM if it doesn't find a date\n *\n * strings should have the form:\n *\n * -?YYYY-mm-ddHH:MM:SS.sss?\n *\n * : space (our normal standard) or T or t (ISO-8601)\n * : Z, z, or [+\\-]HH:?MM and we THROW IT AWAY\n * this format comes from https://tools.ietf.org/html/rfc3339#section-5.6\n * but we allow it even with a space as the separator\n *\n * May truncate after any full field, and sss can be any length\n * even >3 digits, though javascript dates truncate to milliseconds,\n * we keep as much as javascript numeric precision can hold, but we only\n * report back up to 100 microsecond precision, because most dates support\n * this precision (close to 1970 support more, very far away support less)\n *\n * Expanded to support negative years to -9999 but you must always\n * give 4 digits, except for 2-digit positive years which we assume are\n * near the present time.\n * Note that we follow ISO 8601:2004: there *is* a year 0, which\n * is 1BC/BCE, and -1===2BC etc.\n *\n * World calendars: not all of these *have* agreed extensions to this full range,\n * if you have another calendar system but want a date range outside its validity,\n * you can use a gregorian date string prefixed with 'G' or 'g'.\n *\n * Where to cut off 2-digit years between 1900s and 2000s?\n * from http://support.microsoft.com/kb/244664:\n * 1930-2029 (the most retro of all...)\n * but in my mac chrome from eg. d=new Date(Date.parse('8/19/50')):\n * 1950-2049\n * by Java, from http://stackoverflow.com/questions/2024273/:\n * now-80 - now+19\n * or FileMaker Pro, from\n * http://www.filemaker.com/12help/html/add_view_data.4.21.html:\n * now-70 - now+29\n * but python strptime etc, via\n * http://docs.python.org/py3k/library/time.html:\n * 1969-2068 (super forward-looking, but static, not sliding!)\n *\n * lets go with now-70 to now+29, and if anyone runs into this problem\n * they can learn the hard way not to use 2-digit years, as no choice we\n * make now will cover all possibilities. mostly this will all be taken\n * care of in initial parsing, should only be an issue for hand-entered data\n * currently (2016) this range is:\n * 1946-2045\n */\nexports.dateTime2ms = function(s, calendar) {\n // first check if s is a date object\n if(exports.isJSDate(s)) {\n // Convert to the UTC milliseconds that give the same\n // hours as this date has in the local timezone\n var tzOffset = s.getTimezoneOffset() * ONEMIN;\n var offsetTweak = (s.getUTCMinutes() - s.getMinutes()) * ONEMIN +\n (s.getUTCSeconds() - s.getSeconds()) * ONESEC +\n (s.getUTCMilliseconds() - s.getMilliseconds());\n\n if(offsetTweak) {\n var comb = 3 * ONEMIN;\n tzOffset = tzOffset - comb / 2 + mod(offsetTweak - tzOffset + comb / 2, comb);\n }\n s = Number(s) - tzOffset;\n if(s >= MIN_MS && s <= MAX_MS) return s;\n return BADNUM;\n }\n // otherwise only accept strings and numbers\n if(typeof s !== 'string' && typeof s !== 'number') return BADNUM;\n\n s = String(s);\n\n var isWorld = isWorldCalendar(calendar);\n\n // to handle out-of-range dates in international calendars, accept\n // 'G' as a prefix to force the built-in gregorian calendar.\n var s0 = s.charAt(0);\n if(isWorld && (s0 === 'G' || s0 === 'g')) {\n s = s.substr(1);\n calendar = '';\n }\n\n var isChinese = isWorld && calendar.substr(0, 7) === 'chinese';\n\n var match = s.match(isChinese ? DATETIME_REGEXP_CN : DATETIME_REGEXP);\n if(!match) return BADNUM;\n var y = match[1];\n var m = match[3] || '1';\n var d = Number(match[5] || 1);\n var H = Number(match[7] || 0);\n var M = Number(match[9] || 0);\n var S = Number(match[11] || 0);\n\n if(isWorld) {\n // disallow 2-digit years for world calendars\n if(y.length === 2) return BADNUM;\n y = Number(y);\n\n var cDate;\n try {\n var calInstance = Registry.getComponentMethod('calendars', 'getCal')(calendar);\n if(isChinese) {\n var isIntercalary = m.charAt(m.length - 1) === 'i';\n m = parseInt(m, 10);\n cDate = calInstance.newDate(y, calInstance.toMonthIndex(y, m, isIntercalary), d);\n } else {\n cDate = calInstance.newDate(y, Number(m), d);\n }\n } catch(e) { return BADNUM; } // Invalid ... date\n\n if(!cDate) return BADNUM;\n\n return ((cDate.toJD() - EPOCHJD) * ONEDAY) +\n (H * ONEHOUR) + (M * ONEMIN) + (S * ONESEC);\n }\n\n if(y.length === 2) {\n y = (Number(y) + 2000 - YFIRST) % 100 + YFIRST;\n } else y = Number(y);\n\n // new Date uses months from 0; subtract 1 here just so we\n // don't have to do it again during the validity test below\n m -= 1;\n\n // javascript takes new Date(0..99,m,d) to mean 1900-1999, so\n // to support years 0-99 we need to use setFullYear explicitly\n // Note that 2000 is a leap year.\n var date = new Date(Date.UTC(2000, m, d, H, M));\n date.setUTCFullYear(y);\n\n if(date.getUTCMonth() !== m) return BADNUM;\n if(date.getUTCDate() !== d) return BADNUM;\n\n return date.getTime() + S * ONESEC;\n};\n\nMIN_MS = exports.MIN_MS = exports.dateTime2ms('-9999');\nMAX_MS = exports.MAX_MS = exports.dateTime2ms('9999-12-31 23:59:59.9999');\n\n// is string s a date? (see above)\nexports.isDateTime = function(s, calendar) {\n return (exports.dateTime2ms(s, calendar) !== BADNUM);\n};\n\n// pad a number with zeroes, to given # of digits before the decimal point\nfunction lpad(val, digits) {\n return String(val + Math.pow(10, digits)).substr(1);\n}\n\n/**\n * Turn ms into string of the form YYYY-mm-dd HH:MM:SS.ssss\n * Crop any trailing zeros in time, except never stop right after hours\n * (we could choose to crop '-01' from date too but for now we always\n * show the whole date)\n * Optional range r is the data range that applies, also in ms.\n * If rng is big, the later parts of time will be omitted\n */\nvar NINETYDAYS = 90 * ONEDAY;\nvar THREEHOURS = 3 * ONEHOUR;\nvar FIVEMIN = 5 * ONEMIN;\nexports.ms2DateTime = function(ms, r, calendar) {\n if(typeof ms !== 'number' || !(ms >= MIN_MS && ms <= MAX_MS)) return BADNUM;\n\n if(!r) r = 0;\n\n var msecTenths = Math.floor(mod(ms + 0.05, 1) * 10);\n var msRounded = Math.round(ms - msecTenths / 10);\n var dateStr, h, m, s, msec10, d;\n\n if(isWorldCalendar(calendar)) {\n var dateJD = Math.floor(msRounded / ONEDAY) + EPOCHJD;\n var timeMs = Math.floor(mod(ms, ONEDAY));\n try {\n dateStr = Registry.getComponentMethod('calendars', 'getCal')(calendar)\n .fromJD(dateJD).formatDate('yyyy-mm-dd');\n } catch(e) {\n // invalid date in this calendar - fall back to Gyyyy-mm-dd\n dateStr = utcFormat('G%Y-%m-%d')(new Date(msRounded));\n }\n\n // yyyy does NOT guarantee 4-digit years. YYYY mostly does, but does\n // other things for a few calendars, so we can't trust it. Just pad\n // it manually (after the '-' if there is one)\n if(dateStr.charAt(0) === '-') {\n while(dateStr.length < 11) dateStr = '-0' + dateStr.substr(1);\n } else {\n while(dateStr.length < 10) dateStr = '0' + dateStr;\n }\n\n // TODO: if this is faster, we could use this block for extracting\n // the time components of regular gregorian too\n h = (r < NINETYDAYS) ? Math.floor(timeMs / ONEHOUR) : 0;\n m = (r < NINETYDAYS) ? Math.floor((timeMs % ONEHOUR) / ONEMIN) : 0;\n s = (r < THREEHOURS) ? Math.floor((timeMs % ONEMIN) / ONESEC) : 0;\n msec10 = (r < FIVEMIN) ? (timeMs % ONESEC) * 10 + msecTenths : 0;\n } else {\n d = new Date(msRounded);\n\n dateStr = utcFormat('%Y-%m-%d')(d);\n\n // <90 days: add hours and minutes - never *only* add hours\n h = (r < NINETYDAYS) ? d.getUTCHours() : 0;\n m = (r < NINETYDAYS) ? d.getUTCMinutes() : 0;\n // <3 hours: add seconds\n s = (r < THREEHOURS) ? d.getUTCSeconds() : 0;\n // <5 minutes: add ms (plus one extra digit, this is msec*10)\n msec10 = (r < FIVEMIN) ? d.getUTCMilliseconds() * 10 + msecTenths : 0;\n }\n\n return includeTime(dateStr, h, m, s, msec10);\n};\n\n// For converting old-style milliseconds to date strings,\n// we use the local timezone rather than UTC like we use\n// everywhere else, both for backward compatibility and\n// because that's how people mostly use javasript date objects.\n// Clip one extra day off our date range though so we can't get\n// thrown beyond the range by the timezone shift.\nexports.ms2DateTimeLocal = function(ms) {\n if(!(ms >= MIN_MS + ONEDAY && ms <= MAX_MS - ONEDAY)) return BADNUM;\n\n var msecTenths = Math.floor(mod(ms + 0.05, 1) * 10);\n var d = new Date(Math.round(ms - msecTenths / 10));\n var dateStr = d3.time.format('%Y-%m-%d')(d);\n var h = d.getHours();\n var m = d.getMinutes();\n var s = d.getSeconds();\n var msec10 = d.getUTCMilliseconds() * 10 + msecTenths;\n\n return includeTime(dateStr, h, m, s, msec10);\n};\n\nfunction includeTime(dateStr, h, m, s, msec10) {\n // include each part that has nonzero data in or after it\n if(h || m || s || msec10) {\n dateStr += ' ' + lpad(h, 2) + ':' + lpad(m, 2);\n if(s || msec10) {\n dateStr += ':' + lpad(s, 2);\n if(msec10) {\n var digits = 4;\n while(msec10 % 10 === 0) {\n digits -= 1;\n msec10 /= 10;\n }\n dateStr += '.' + lpad(msec10, digits);\n }\n }\n }\n return dateStr;\n}\n\n// normalize date format to date string, in case it starts as\n// a Date object or milliseconds\n// optional dflt is the return value if cleaning fails\nexports.cleanDate = function(v, dflt, calendar) {\n // let us use cleanDate to provide a missing default without an error\n if(v === BADNUM) return dflt;\n if(exports.isJSDate(v) || (typeof v === 'number' && isFinite(v))) {\n // do not allow milliseconds (old) or jsdate objects (inherently\n // described as gregorian dates) with world calendars\n if(isWorldCalendar(calendar)) {\n Loggers.error('JS Dates and milliseconds are incompatible with world calendars', v);\n return dflt;\n }\n\n // NOTE: if someone puts in a year as a number rather than a string,\n // this will mistakenly convert it thinking it's milliseconds from 1970\n // that is: '2012' -> Jan. 1, 2012, but 2012 -> 2012 epoch milliseconds\n v = exports.ms2DateTimeLocal(+v);\n if(!v && dflt !== undefined) return dflt;\n } else if(!exports.isDateTime(v, calendar)) {\n Loggers.error('unrecognized date', v);\n return dflt;\n }\n return v;\n};\n\n/*\n * Date formatting for ticks and hovertext\n */\n\n/*\n * modDateFormat: Support world calendars, and add one item to\n * d3's vocabulary:\n * %{n}f where n is the max number of digits of fractional seconds\n */\nvar fracMatch = /%\\d?f/g;\nfunction modDateFormat(fmt, x, formatter, calendar) {\n fmt = fmt.replace(fracMatch, function(match) {\n var digits = Math.min(+(match.charAt(1)) || 6, 6);\n var fracSecs = ((x / 1000 % 1) + 2)\n .toFixed(digits)\n .substr(2).replace(/0+$/, '') || '0';\n return fracSecs;\n });\n\n var d = new Date(Math.floor(x + 0.05));\n\n if(isWorldCalendar(calendar)) {\n try {\n fmt = Registry.getComponentMethod('calendars', 'worldCalFmt')(fmt, x, calendar);\n } catch(e) {\n return 'Invalid';\n }\n }\n return formatter(fmt)(d);\n}\n\n/*\n * formatTime: create a time string from:\n * x: milliseconds\n * tr: tickround ('M', 'S', or # digits)\n * only supports UTC times (where every day is 24 hours and 0 is at midnight)\n */\nvar MAXSECONDS = [59, 59.9, 59.99, 59.999, 59.9999];\nfunction formatTime(x, tr) {\n var timePart = mod(x + 0.05, ONEDAY);\n\n var timeStr = lpad(Math.floor(timePart / ONEHOUR), 2) + ':' +\n lpad(mod(Math.floor(timePart / ONEMIN), 60), 2);\n\n if(tr !== 'M') {\n if(!isNumeric(tr)) tr = 0; // should only be 'S'\n\n /*\n * this is a weird one - and shouldn't come up unless people\n * monkey with tick0 in weird ways, but we need to do something!\n * IN PARTICULAR we had better not display garbage (see below)\n * for numbers we always round to the nearest increment of the\n * precision we're showing, and this seems like the right way to\n * handle seconds and milliseconds, as they have a decimal point\n * and people will interpret that to mean rounding like numbers.\n * but for larger increments we floor the value: it's always\n * 2013 until the ball drops on the new year. We could argue about\n * which field it is where we start rounding (should 12:08:59\n * round to 12:09 if we're stopping at minutes?) but for now I'll\n * say we round seconds but floor everything else. BUT that means\n * we need to never round up to 60 seconds, ie 23:59:60\n */\n var sec = Math.min(mod(x / ONESEC, 60), MAXSECONDS[tr]);\n\n var secStr = (100 + sec).toFixed(tr).substr(1);\n if(tr > 0) {\n secStr = secStr.replace(/0+$/, '').replace(/[\\.]$/, '');\n }\n\n timeStr += ':' + secStr;\n }\n return timeStr;\n}\n\n/*\n * formatDate: turn a date into tick or hover label text.\n *\n * x: milliseconds, the value to convert\n * fmt: optional, an explicit format string (d3 format, even for world calendars)\n * tr: tickround ('y', 'm', 'd', 'M', 'S', or # digits)\n * used if no explicit fmt is provided\n * formatter: locale-aware d3 date formatter for standard gregorian calendars\n * should be the result of exports.getD3DateFormat(gd)\n * calendar: optional string, the world calendar system to use\n *\n * returns the date/time as a string, potentially with the leading portion\n * on a separate line (after '\\n')\n * Note that this means if you provide an explicit format which includes '\\n'\n * the axis may choose to strip things after it when they don't change from\n * one tick to the next (as it does with automatic formatting)\n */\nexports.formatDate = function(x, fmt, tr, formatter, calendar, extraFormat) {\n calendar = isWorldCalendar(calendar) && calendar;\n\n if(!fmt) {\n if(tr === 'y') fmt = extraFormat.year;\n else if(tr === 'm') fmt = extraFormat.month;\n else if(tr === 'd') {\n fmt = extraFormat.dayMonth + '\\n' + extraFormat.year;\n } else {\n return formatTime(x, tr) + '\\n' + modDateFormat(extraFormat.dayMonthYear, x, formatter, calendar);\n }\n }\n\n return modDateFormat(fmt, x, formatter, calendar);\n};\n\n/*\n * incrementMonth: make a new milliseconds value from the given one,\n * having changed the month\n *\n * special case for world calendars: multiples of 12 are treated as years,\n * even for calendar systems that don't have (always or ever) 12 months/year\n * TODO: perhaps we need a different code for year increments to support this?\n *\n * ms (number): the initial millisecond value\n * dMonth (int): the (signed) number of months to shift\n * calendar (string): the calendar system to use\n *\n * changing month does not (and CANNOT) always preserve day, since\n * months have different lengths. The worst example of this is:\n * d = new Date(1970,0,31); d.setMonth(1) -> Feb 31 turns into Mar 3\n *\n * But we want to be able to iterate over the last day of each month,\n * regardless of what its number is.\n * So shift 3 days forward, THEN set the new month, then unshift:\n * 1/31 -> 2/28 (or 29) -> 3/31 -> 4/30 -> ...\n *\n * Note that odd behavior still exists if you start from the 26th-28th:\n * 1/28 -> 2/28 -> 3/31\n * but at least you can't shift any dates into the wrong month,\n * and ticks on these days incrementing by month would be very unusual\n */\nvar THREEDAYS = 3 * ONEDAY;\nexports.incrementMonth = function(ms, dMonth, calendar) {\n calendar = isWorldCalendar(calendar) && calendar;\n\n // pull time out and operate on pure dates, then add time back at the end\n // this gives maximum precision - not that we *normally* care if we're\n // incrementing by month, but better to be safe!\n var timeMs = mod(ms, ONEDAY);\n ms = Math.round(ms - timeMs);\n\n if(calendar) {\n try {\n var dateJD = Math.round(ms / ONEDAY) + EPOCHJD;\n var calInstance = Registry.getComponentMethod('calendars', 'getCal')(calendar);\n var cDate = calInstance.fromJD(dateJD);\n\n if(dMonth % 12) calInstance.add(cDate, dMonth, 'm');\n else calInstance.add(cDate, dMonth / 12, 'y');\n\n return (cDate.toJD() - EPOCHJD) * ONEDAY + timeMs;\n } catch(e) {\n Loggers.error('invalid ms ' + ms + ' in calendar ' + calendar);\n // then keep going in gregorian even though the result will be 'Invalid'\n }\n }\n\n var y = new Date(ms + THREEDAYS);\n return y.setUTCMonth(y.getUTCMonth() + dMonth) + timeMs - THREEDAYS;\n};\n\n/*\n * findExactDates: what fraction of data is exact days, months, or years?\n *\n * data: array of millisecond values\n * calendar (string) the calendar to test against\n */\nexports.findExactDates = function(data, calendar) {\n var exactYears = 0;\n var exactMonths = 0;\n var exactDays = 0;\n var blankCount = 0;\n var d;\n var di;\n\n var calInstance = (\n isWorldCalendar(calendar) &&\n Registry.getComponentMethod('calendars', 'getCal')(calendar)\n );\n\n for(var i = 0; i < data.length; i++) {\n di = data[i];\n\n // not date data at all\n if(!isNumeric(di)) {\n blankCount ++;\n continue;\n }\n\n // not an exact date\n if(di % ONEDAY) continue;\n\n if(calInstance) {\n try {\n d = calInstance.fromJD(di / ONEDAY + EPOCHJD);\n if(d.day() === 1) {\n if(d.month() === 1) exactYears++;\n else exactMonths++;\n } else exactDays++;\n } catch(e) {\n // invalid date in this calendar - ignore it here.\n }\n } else {\n d = new Date(di);\n if(d.getUTCDate() === 1) {\n if(d.getUTCMonth() === 0) exactYears++;\n else exactMonths++;\n } else exactDays++;\n }\n }\n exactMonths += exactYears;\n exactDays += exactMonths;\n\n var dataCount = data.length - blankCount;\n\n return {\n exactYears: exactYears / dataCount,\n exactMonths: exactMonths / dataCount,\n exactDays: exactDays / dataCount\n };\n};\n\n\n/***/ }),\n\n/***/ \"6626\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"0b4f\");\n\n\n/***/ }),\n\n/***/ \"6649\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar hiddenStore = __webpack_require__(\"b332\");\n\nmodule.exports = createStore;\n\nfunction createStore() {\n var key = {};\n\n return function (obj) {\n if ((typeof obj !== 'object' || obj === null) &&\n typeof obj !== 'function'\n ) {\n throw new Error('Weakmap-shim: Key must be object')\n }\n\n var store = obj.valueOf(key);\n return store && store.identity === key ?\n store : hiddenStore(obj, key);\n };\n}\n\n\n/***/ }),\n\n/***/ \"664d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"9509\");\n\n\n/***/ }),\n\n/***/ \"6657\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar extendFlat = __webpack_require__(\"fc26\").extendFlat;\nvar scatterAttrs = __webpack_require__(\"107c\");\nvar dash = __webpack_require__(\"db54\").dash;\nvar fxAttrs = __webpack_require__(\"a462\");\nvar delta = __webpack_require__(\"b8ce\");\n\nvar INCREASING_COLOR = delta.INCREASING.COLOR;\nvar DECREASING_COLOR = delta.DECREASING.COLOR;\n\nvar lineAttrs = scatterAttrs.line;\n\nfunction directionAttrs(lineColorDefault) {\n return {\n line: {\n color: extendFlat({}, lineAttrs.color, {dflt: lineColorDefault}),\n width: lineAttrs.width,\n dash: dash,\n editType: 'style'\n },\n editType: 'style'\n };\n}\n\nmodule.exports = {\n\n x: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n\n open: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n\n high: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n\n low: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n\n close: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n\n line: {\n width: extendFlat({}, lineAttrs.width, {\n \n }),\n dash: extendFlat({}, dash, {\n \n }),\n editType: 'style'\n },\n\n increasing: directionAttrs(INCREASING_COLOR),\n\n decreasing: directionAttrs(DECREASING_COLOR),\n\n text: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n editType: 'calc',\n \n },\n hovertext: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n editType: 'calc',\n \n },\n\n tickwidth: {\n valType: 'number',\n min: 0,\n max: 0.5,\n dflt: 0.3,\n \n editType: 'calc',\n \n },\n\n hoverlabel: extendFlat({}, fxAttrs.hoverlabel, {\n split: {\n valType: 'boolean',\n \n dflt: false,\n editType: 'style',\n \n }\n }),\n};\n\n\n/***/ }),\n\n/***/ \"6672\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar tinycolor = __webpack_require__(\"66cb\");\n\nvar baseTraceAttrs = __webpack_require__(\"a876\");\nvar colorscales = __webpack_require__(\"4852\");\nvar DESELECTDIM = __webpack_require__(\"72a4\").DESELECTDIM;\n\nvar nestedProperty = __webpack_require__(\"74d6\");\nvar counterRegex = __webpack_require__(\"055a\").counter;\nvar modHalf = __webpack_require__(\"d3dc\").modHalf;\nvar isArrayOrTypedArray = __webpack_require__(\"6af8\").isArrayOrTypedArray;\n\nexports.valObjectMeta = {\n data_array: {\n // You can use *dflt=[] to force said array to exist though.\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n // TODO maybe `v: {type: 'float32', vals: [/* ... */]}` also\n if(isArrayOrTypedArray(v)) propOut.set(v);\n else if(dflt !== undefined) propOut.set(dflt);\n }\n },\n enumerated: {\n \n \n \n coerceFunction: function(v, propOut, dflt, opts) {\n if(opts.coerceNumber) v = +v;\n if(opts.values.indexOf(v) === -1) propOut.set(dflt);\n else propOut.set(v);\n },\n validateFunction: function(v, opts) {\n if(opts.coerceNumber) v = +v;\n\n var values = opts.values;\n for(var i = 0; i < values.length; i++) {\n var k = String(values[i]);\n\n if((k.charAt(0) === '/' && k.charAt(k.length - 1) === '/')) {\n var regex = new RegExp(k.substr(1, k.length - 2));\n if(regex.test(v)) return true;\n } else if(v === values[i]) return true;\n }\n return false;\n }\n },\n 'boolean': {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n if(v === true || v === false) propOut.set(v);\n else propOut.set(dflt);\n }\n },\n number: {\n \n \n \n coerceFunction: function(v, propOut, dflt, opts) {\n if(!isNumeric(v) ||\n (opts.min !== undefined && v < opts.min) ||\n (opts.max !== undefined && v > opts.max)) {\n propOut.set(dflt);\n } else propOut.set(+v);\n }\n },\n integer: {\n \n \n \n coerceFunction: function(v, propOut, dflt, opts) {\n if(v % 1 || !isNumeric(v) ||\n (opts.min !== undefined && v < opts.min) ||\n (opts.max !== undefined && v > opts.max)) {\n propOut.set(dflt);\n } else propOut.set(+v);\n }\n },\n string: {\n \n \n // TODO 'values shouldn't be in there (edge case: 'dash' in Scatter)\n \n coerceFunction: function(v, propOut, dflt, opts) {\n if(typeof v !== 'string') {\n var okToCoerce = (typeof v === 'number');\n\n if(opts.strict === true || !okToCoerce) propOut.set(dflt);\n else propOut.set(String(v));\n } else if(opts.noBlank && !v) propOut.set(dflt);\n else propOut.set(v);\n }\n },\n color: {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n if(tinycolor(v).isValid()) propOut.set(v);\n else propOut.set(dflt);\n }\n },\n colorlist: {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n function isColor(color) {\n return tinycolor(color).isValid();\n }\n if(!Array.isArray(v) || !v.length) propOut.set(dflt);\n else if(v.every(isColor)) propOut.set(v);\n else propOut.set(dflt);\n }\n },\n colorscale: {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n propOut.set(colorscales.get(v, dflt));\n }\n },\n angle: {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n if(v === 'auto') propOut.set('auto');\n else if(!isNumeric(v)) propOut.set(dflt);\n else propOut.set(modHalf(+v, 360));\n }\n },\n subplotid: {\n \n \n \n coerceFunction: function(v, propOut, dflt, opts) {\n var regex = opts.regex || counterRegex(dflt);\n if(typeof v === 'string' && regex.test(v)) {\n propOut.set(v);\n return;\n }\n propOut.set(dflt);\n },\n validateFunction: function(v, opts) {\n var dflt = opts.dflt;\n\n if(v === dflt) return true;\n if(typeof v !== 'string') return false;\n if(counterRegex(dflt).test(v)) return true;\n\n return false;\n }\n },\n flaglist: {\n \n \n \n coerceFunction: function(v, propOut, dflt, opts) {\n if(typeof v !== 'string') {\n propOut.set(dflt);\n return;\n }\n if((opts.extras || []).indexOf(v) !== -1) {\n propOut.set(v);\n return;\n }\n var vParts = v.split('+');\n var i = 0;\n while(i < vParts.length) {\n var vi = vParts[i];\n if(opts.flags.indexOf(vi) === -1 || vParts.indexOf(vi) < i) {\n vParts.splice(i, 1);\n } else i++;\n }\n if(!vParts.length) propOut.set(dflt);\n else propOut.set(vParts.join('+'));\n }\n },\n any: {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n if(v === undefined) propOut.set(dflt);\n else propOut.set(v);\n }\n },\n info_array: {\n \n \n // set `dimensions=2` for a 2D array or '1-2' for either\n // `items` may be a single object instead of an array, in which case\n // `freeLength` must be true.\n // if `dimensions='1-2'` and items is a 1D array, then the value can\n // either be a matching 1D array or an array of such matching 1D arrays\n \n coerceFunction: function(v, propOut, dflt, opts) {\n // simplified coerce function just for array items\n function coercePart(v, opts, dflt) {\n var out;\n var propPart = {set: function(v) { out = v; }};\n\n if(dflt === undefined) dflt = opts.dflt;\n\n exports.valObjectMeta[opts.valType].coerceFunction(v, propPart, dflt, opts);\n\n return out;\n }\n\n var twoD = opts.dimensions === 2 || (opts.dimensions === '1-2' && Array.isArray(v) && Array.isArray(v[0]));\n\n if(!Array.isArray(v)) {\n propOut.set(dflt);\n return;\n }\n\n var items = opts.items;\n var vOut = [];\n var arrayItems = Array.isArray(items);\n var arrayItems2D = arrayItems && twoD && Array.isArray(items[0]);\n var innerItemsOnly = twoD && arrayItems && !arrayItems2D;\n var len = (arrayItems && !innerItemsOnly) ? items.length : v.length;\n\n var i, j, row, item, len2, vNew;\n\n dflt = Array.isArray(dflt) ? dflt : [];\n\n if(twoD) {\n for(i = 0; i < len; i++) {\n vOut[i] = [];\n row = Array.isArray(v[i]) ? v[i] : [];\n if(innerItemsOnly) len2 = items.length;\n else if(arrayItems) len2 = items[i].length;\n else len2 = row.length;\n\n for(j = 0; j < len2; j++) {\n if(innerItemsOnly) item = items[j];\n else if(arrayItems) item = items[i][j];\n else item = items;\n\n vNew = coercePart(row[j], item, (dflt[i] || [])[j]);\n if(vNew !== undefined) vOut[i][j] = vNew;\n }\n }\n } else {\n for(i = 0; i < len; i++) {\n vNew = coercePart(v[i], arrayItems ? items[i] : items, dflt[i]);\n if(vNew !== undefined) vOut[i] = vNew;\n }\n }\n\n propOut.set(vOut);\n },\n validateFunction: function(v, opts) {\n if(!Array.isArray(v)) return false;\n\n var items = opts.items;\n var arrayItems = Array.isArray(items);\n var twoD = opts.dimensions === 2;\n\n // when free length is off, input and declared lengths must match\n if(!opts.freeLength && v.length !== items.length) return false;\n\n // valid when all input items are valid\n for(var i = 0; i < v.length; i++) {\n if(twoD) {\n if(!Array.isArray(v[i]) || (!opts.freeLength && v[i].length !== items[i].length)) {\n return false;\n }\n for(var j = 0; j < v[i].length; j++) {\n if(!validate(v[i][j], arrayItems ? items[i][j] : items)) {\n return false;\n }\n }\n } else if(!validate(v[i], arrayItems ? items[i] : items)) return false;\n }\n\n return true;\n }\n }\n};\n\n/**\n * Ensures that container[attribute] has a valid value.\n *\n * attributes[attribute] is an object with possible keys:\n * - valType: data_array, enumerated, boolean, ... as in valObjectMeta\n * - values: (enumerated only) array of allowed vals\n * - min, max: (number, integer only) inclusive bounds on allowed vals\n * either or both may be omitted\n * - dflt: if attribute is invalid or missing, use this default\n * if dflt is provided as an argument to lib.coerce it takes precedence\n * as a convenience, returns the value it finally set\n */\nexports.coerce = function(containerIn, containerOut, attributes, attribute, dflt) {\n var opts = nestedProperty(attributes, attribute).get();\n var propIn = nestedProperty(containerIn, attribute);\n var propOut = nestedProperty(containerOut, attribute);\n var v = propIn.get();\n\n var template = containerOut._template;\n if(v === undefined && template) {\n v = nestedProperty(template, attribute).get();\n // already used the template value, so short-circuit the second check\n template = 0;\n }\n\n if(dflt === undefined) dflt = opts.dflt;\n\n /**\n * arrayOk: value MAY be an array, then we do no value checking\n * at this point, because it can be more complicated than the\n * individual form (eg. some array vals can be numbers, even if the\n * single values must be color strings)\n */\n if(opts.arrayOk && isArrayOrTypedArray(v)) {\n propOut.set(v);\n return v;\n }\n\n var coerceFunction = exports.valObjectMeta[opts.valType].coerceFunction;\n coerceFunction(v, propOut, dflt, opts);\n\n var out = propOut.get();\n // in case v was provided but invalid, try the template again so it still\n // overrides the regular default\n if(template && out === dflt && !validate(v, opts)) {\n v = nestedProperty(template, attribute).get();\n coerceFunction(v, propOut, dflt, opts);\n out = propOut.get();\n }\n return out;\n};\n\n/**\n * Variation on coerce\n *\n * Uses coerce to get attribute value if user input is valid,\n * returns attribute default if user input it not valid or\n * returns false if there is no user input.\n */\nexports.coerce2 = function(containerIn, containerOut, attributes, attribute, dflt) {\n var propIn = nestedProperty(containerIn, attribute);\n var propOut = exports.coerce(containerIn, containerOut, attributes, attribute, dflt);\n var valIn = propIn.get();\n\n return (valIn !== undefined && valIn !== null) ? propOut : false;\n};\n\n/*\n * Shortcut to coerce the three font attributes\n *\n * 'coerce' is a lib.coerce wrapper with implied first three arguments\n */\nexports.coerceFont = function(coerce, attr, dfltObj) {\n var out = {};\n\n dfltObj = dfltObj || {};\n\n out.family = coerce(attr + '.family', dfltObj.family);\n out.size = coerce(attr + '.size', dfltObj.size);\n out.color = coerce(attr + '.color', dfltObj.color);\n\n return out;\n};\n\n/** Coerce shortcut for 'hoverinfo'\n * handling 1-vs-multi-trace dflt logic\n *\n * @param {object} traceIn : user trace object\n * @param {object} traceOut : full trace object (requires _module ref)\n * @param {object} layoutOut : full layout object (require _dataLength ref)\n * @return {any} : the coerced value\n */\nexports.coerceHoverinfo = function(traceIn, traceOut, layoutOut) {\n var moduleAttrs = traceOut._module.attributes;\n var attrs = moduleAttrs.hoverinfo ? moduleAttrs : baseTraceAttrs;\n\n var valObj = attrs.hoverinfo;\n var dflt;\n\n if(layoutOut._dataLength === 1) {\n var flags = valObj.dflt === 'all' ?\n valObj.flags.slice() :\n valObj.dflt.split('+');\n\n flags.splice(flags.indexOf('name'), 1);\n dflt = flags.join('+');\n }\n\n return exports.coerce(traceIn, traceOut, attrs, 'hoverinfo', dflt);\n};\n\n/** Coerce shortcut for [un]selected.marker.opacity,\n * which has special default logic, to ensure that it corresponds to the\n * default selection behavior while allowing to be overtaken by any other\n * [un]selected attribute.\n *\n * N.B. This must be called *after* coercing all the other [un]selected attrs,\n * to give the intended result.\n *\n * @param {object} traceOut : fullData item\n * @param {function} coerce : lib.coerce wrapper with implied first three arguments\n */\nexports.coerceSelectionMarkerOpacity = function(traceOut, coerce) {\n if(!traceOut.marker) return;\n\n var mo = traceOut.marker.opacity;\n // you can still have a `marker` container with no markers if there's text\n if(mo === undefined) return;\n\n var smoDflt;\n var usmoDflt;\n\n // Don't give [un]selected.marker.opacity a default value if\n // marker.opacity is an array: handle this during style step.\n //\n // Only give [un]selected.marker.opacity a default value if you don't\n // set any other [un]selected attributes.\n if(!isArrayOrTypedArray(mo) && !traceOut.selected && !traceOut.unselected) {\n smoDflt = mo;\n usmoDflt = DESELECTDIM * mo;\n }\n\n coerce('selected.marker.opacity', smoDflt);\n coerce('unselected.marker.opacity', usmoDflt);\n};\n\nfunction validate(value, opts) {\n var valObjectDef = exports.valObjectMeta[opts.valType];\n\n if(opts.arrayOk && isArrayOrTypedArray(value)) return true;\n\n if(valObjectDef.validateFunction) {\n return valObjectDef.validateFunction(value, opts);\n }\n\n var failed = {};\n var out = failed;\n var propMock = { set: function(v) { out = v; } };\n\n // 'failed' just something mutable that won't be === anything else\n\n valObjectDef.coerceFunction(value, propMock, failed, opts);\n return out !== failed;\n}\nexports.validate = validate;\n\n\n/***/ }),\n\n/***/ \"66ac\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bnsub = __webpack_require__(\"9c7c\")\n\nmodule.exports = sub\n\nfunction sub(a, b) {\n var n = a.length\n var r = new Array(n)\n for(var i=0; i= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif ( true && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (true) {\n !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {return tinycolor;}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n}\n// Browser: Expose to window\nelse {}\n\n})(Math);\n\n\n/***/ }),\n\n/***/ \"66db\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar subTypes = __webpack_require__(\"de81\");\nvar handleMarkerDefaults = __webpack_require__(\"5047\");\nvar handleLineDefaults = __webpack_require__(\"59be\");\nvar handleLineShapeDefaults = __webpack_require__(\"eb07\");\nvar handleTextDefaults = __webpack_require__(\"e9f7\");\nvar handleFillColorDefaults = __webpack_require__(\"3802\");\nvar PTS_LINESONLY = __webpack_require__(\"de69\").PTS_LINESONLY;\n\nvar attributes = __webpack_require__(\"8a6e\");\n\nfunction supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var len = handleRThetaDefaults(traceIn, traceOut, layout, coerce);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n coerce('thetaunit');\n coerce('mode', len < PTS_LINESONLY ? 'lines+markers' : 'lines');\n coerce('text');\n coerce('hovertext');\n if(traceOut.hoveron !== 'fills') coerce('hovertemplate');\n\n if(subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce('connectgaps');\n }\n\n if(subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});\n }\n\n if(subTypes.hasText(traceOut)) {\n coerce('texttemplate');\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n\n var dfltHoverOn = [];\n\n if(subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce('cliponaxis');\n coerce('marker.maxdisplayed');\n dfltHoverOn.push('points');\n }\n\n coerce('fill');\n\n if(traceOut.fill !== 'none') {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n\n if(traceOut.fill === 'tonext' || traceOut.fill === 'toself') {\n dfltHoverOn.push('fills');\n }\n coerce('hoveron', dfltHoverOn.join('+') || 'points');\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n}\n\nfunction handleRThetaDefaults(traceIn, traceOut, layout, coerce) {\n var r = coerce('r');\n var theta = coerce('theta');\n var len;\n\n if(r) {\n if(theta) {\n len = Math.min(r.length, theta.length);\n } else {\n len = r.length;\n coerce('theta0');\n coerce('dtheta');\n }\n } else {\n if(!theta) return 0;\n len = traceOut.theta.length;\n coerce('r0');\n coerce('dr');\n }\n\n traceOut._length = len;\n return len;\n}\n\nmodule.exports = {\n handleRThetaDefaults: handleRThetaDefaults,\n supplyDefaults: supplyDefaults\n};\n\n\n/***/ }),\n\n/***/ \"6726\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * @module parenthesis\n */\n\nfunction parse (str, opts) {\n\t// pretend non-string parsed per-se\n\tif (typeof str !== 'string') return [str]\n\n\tvar res = [str]\n\n\tif (typeof opts === 'string' || Array.isArray(opts)) {\n\t\topts = {brackets: opts}\n\t}\n\telse if (!opts) opts = {}\n\n\tvar brackets = opts.brackets ? (Array.isArray(opts.brackets) ? opts.brackets : [opts.brackets]) : ['{}', '[]', '()']\n\n\tvar escape = opts.escape || '___'\n\n\tvar flat = !!opts.flat\n\n\tbrackets.forEach(function (bracket) {\n\t\t// create parenthesis regex\n\t\tvar pRE = new RegExp(['\\\\', bracket[0], '[^\\\\', bracket[0], '\\\\', bracket[1], ']*\\\\', bracket[1]].join(''))\n\n\t\tvar ids = []\n\n\t\tfunction replaceToken(token, idx, str){\n\t\t\t// save token to res\n\t\t\tvar refId = res.push(token.slice(bracket[0].length, -bracket[1].length)) - 1\n\n\t\t\tids.push(refId)\n\n\t\t\treturn escape + refId + escape\n\t\t}\n\n\t\tres.forEach(function (str, i) {\n\t\t\tvar prevStr\n\n\t\t\t// replace paren tokens till there’s none\n\t\t\tvar a = 0\n\t\t\twhile (str != prevStr) {\n\t\t\t\tprevStr = str\n\t\t\t\tstr = str.replace(pRE, replaceToken)\n\t\t\t\tif (a++ > 10e3) throw Error('References have circular dependency. Please, check them.')\n\t\t\t}\n\n\t\t\tres[i] = str\n\t\t})\n\n\t\t// wrap found refs to brackets\n\t\tids = ids.reverse()\n\t\tres = res.map(function (str) {\n\t\t\tids.forEach(function (id) {\n\t\t\t\tstr = str.replace(new RegExp('(\\\\' + escape + id + '\\\\' + escape + ')', 'g'), bracket[0] + '$1' + bracket[1])\n\t\t\t})\n\t\t\treturn str\n\t\t})\n\t})\n\n\tvar re = new RegExp('\\\\' + escape + '([0-9]+)' + '\\\\' + escape)\n\n\t// transform references to tree\n\tfunction nest (str, refs, escape) {\n\t\tvar res = [], match\n\n\t\tvar a = 0\n\t\twhile (match = re.exec(str)) {\n\t\t\tif (a++ > 10e3) throw Error('Circular references in parenthesis')\n\n\t\t\tres.push(str.slice(0, match.index))\n\n\t\t\tres.push(nest(refs[match[1]], refs))\n\n\t\t\tstr = str.slice(match.index + match[0].length)\n\t\t}\n\n\t\tres.push(str)\n\n\t\treturn res\n\t}\n\n\treturn flat ? res : nest(res[0], res)\n}\n\nfunction stringify (arg, opts) {\n\tif (opts && opts.flat) {\n\t\tvar escape = opts && opts.escape || '___'\n\n\t\tvar str = arg[0], prevStr\n\n\t\t// pretend bad string stringified with no parentheses\n\t\tif (!str) return ''\n\n\n\t\tvar re = new RegExp('\\\\' + escape + '([0-9]+)' + '\\\\' + escape)\n\n\t\tvar a = 0\n\t\twhile (str != prevStr) {\n\t\t\tif (a++ > 10e3) throw Error('Circular references in ' + arg)\n\t\t\tprevStr = str\n\t\t\tstr = str.replace(re, replaceRef)\n\t\t}\n\n\t\treturn str\n\t}\n\n\treturn arg.reduce(function f (prev, curr) {\n\t\tif (Array.isArray(curr)) {\n\t\t\tcurr = curr.reduce(f, '')\n\t\t}\n\t\treturn prev + curr\n\t}, '')\n\n\tfunction replaceRef(match, idx){\n\t\tif (arg[idx] == null) throw Error('Reference ' + idx + 'is undefined')\n\t\treturn arg[idx]\n\t}\n}\n\nfunction parenthesis (arg, opts) {\n\tif (Array.isArray(arg)) {\n\t\treturn stringify(arg, opts)\n\t}\n\telse {\n\t\treturn parse(arg, opts)\n\t}\n}\n\nparenthesis.parse = parse\nparenthesis.stringify = stringify\n\nmodule.exports = parenthesis\n\n\n/***/ }),\n\n/***/ \"67c4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar axesAttrs = __webpack_require__(\"d798\");\nvar fontAttrs = __webpack_require__(\"9845\");\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\n\nmodule.exports = overrideAll({\n// TODO: only right is supported currently\n// orient: {\n// valType: 'enumerated',\n// \n// values: ['left', 'right', 'top', 'bottom'],\n// dflt: 'right',\n// \n// },\n thicknessmode: {\n valType: 'enumerated',\n values: ['fraction', 'pixels'],\n \n dflt: 'pixels',\n \n },\n thickness: {\n valType: 'number',\n \n min: 0,\n dflt: 30,\n \n },\n lenmode: {\n valType: 'enumerated',\n values: ['fraction', 'pixels'],\n \n dflt: 'fraction',\n \n },\n len: {\n valType: 'number',\n min: 0,\n dflt: 1,\n \n \n },\n x: {\n valType: 'number',\n dflt: 1.02,\n min: -2,\n max: 3,\n \n \n },\n xanchor: {\n valType: 'enumerated',\n values: ['left', 'center', 'right'],\n dflt: 'left',\n \n \n },\n xpad: {\n valType: 'number',\n \n min: 0,\n dflt: 10,\n \n },\n y: {\n valType: 'number',\n \n dflt: 0.5,\n min: -2,\n max: 3,\n \n },\n yanchor: {\n valType: 'enumerated',\n values: ['top', 'middle', 'bottom'],\n \n dflt: 'middle',\n \n },\n ypad: {\n valType: 'number',\n \n min: 0,\n dflt: 10,\n \n },\n // a possible line around the bar itself\n outlinecolor: axesAttrs.linecolor,\n outlinewidth: axesAttrs.linewidth,\n // Should outlinewidth have {dflt: 0} ?\n // another possible line outside the padding and tick labels\n bordercolor: axesAttrs.linecolor,\n borderwidth: {\n valType: 'number',\n \n min: 0,\n dflt: 0,\n \n },\n bgcolor: {\n valType: 'color',\n \n dflt: 'rgba(0,0,0,0)',\n \n },\n // tick and title properties named and function exactly as in axes\n tickmode: axesAttrs.tickmode,\n nticks: axesAttrs.nticks,\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: extendFlat({}, axesAttrs.ticks, {dflt: ''}),\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n showticklabels: axesAttrs.showticklabels,\n tickfont: fontAttrs({\n \n }),\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n tickprefix: axesAttrs.tickprefix,\n showtickprefix: axesAttrs.showtickprefix,\n ticksuffix: axesAttrs.ticksuffix,\n showticksuffix: axesAttrs.showticksuffix,\n separatethousands: axesAttrs.separatethousands,\n exponentformat: axesAttrs.exponentformat,\n showexponent: axesAttrs.showexponent,\n title: {\n text: {\n valType: 'string',\n \n \n },\n font: fontAttrs({\n \n }),\n side: {\n valType: 'enumerated',\n values: ['right', 'top', 'bottom'],\n \n dflt: 'top',\n \n }\n },\n\n _deprecated: {\n title: {\n valType: 'string',\n \n \n },\n titlefont: fontAttrs({\n \n }),\n titleside: {\n valType: 'enumerated',\n values: ['right', 'top', 'bottom'],\n \n dflt: 'top',\n \n }\n }\n}, 'colorbars', 'from-root');\n\n\n/***/ }),\n\n/***/ \"67f2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar subTypes = __webpack_require__(\"de81\");\nvar handleMarkerDefaults = __webpack_require__(\"5047\");\nvar handleLineDefaults = __webpack_require__(\"59be\");\nvar handleTextDefaults = __webpack_require__(\"e9f7\");\nvar handleFillColorDefaults = __webpack_require__(\"3802\");\nvar attributes = __webpack_require__(\"74b4\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var len = handleLonLatDefaults(traceIn, traceOut, coerce);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n coerce('text');\n coerce('texttemplate');\n coerce('hovertext');\n coerce('hovertemplate');\n coerce('mode');\n coerce('below');\n\n if(subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, {noDash: true});\n coerce('connectgaps');\n }\n\n if(subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {noLine: true});\n\n // array marker.size and marker.color are only supported with circles\n var marker = traceOut.marker;\n if(marker.symbol !== 'circle') {\n if(Lib.isArrayOrTypedArray(marker.size)) marker.size = marker.size[0];\n if(Lib.isArrayOrTypedArray(marker.color)) marker.color = marker.color[0];\n }\n }\n\n if(subTypes.hasText(traceOut)) {\n handleTextDefaults(traceIn, traceOut, layout, coerce, {noSelect: true});\n }\n\n coerce('fill');\n if(traceOut.fill !== 'none') {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n }\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n};\n\nfunction handleLonLatDefaults(traceIn, traceOut, coerce) {\n var lon = coerce('lon') || [];\n var lat = coerce('lat') || [];\n var len = Math.min(lon.length, lat.length);\n traceOut._length = len;\n\n return len;\n}\n\n\n/***/ }),\n\n/***/ \"6833\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar tinycolor = __webpack_require__(\"66cb\");\nvar isArrayOrTypedArray = __webpack_require__(\"fc26\").isArrayOrTypedArray;\n\nexports.coerceString = function(attributeDefinition, value, defaultValue) {\n if(typeof value === 'string') {\n if(value || !attributeDefinition.noBlank) return value;\n } else if(typeof value === 'number' || value === true) {\n if(!attributeDefinition.strict) return String(value);\n }\n\n return (defaultValue !== undefined) ?\n defaultValue :\n attributeDefinition.dflt;\n};\n\nexports.coerceNumber = function(attributeDefinition, value, defaultValue) {\n if(isNumeric(value)) {\n value = +value;\n\n var min = attributeDefinition.min;\n var max = attributeDefinition.max;\n var isOutOfBounds = (min !== undefined && value < min) ||\n (max !== undefined && value > max);\n\n if(!isOutOfBounds) return value;\n }\n\n return (defaultValue !== undefined) ?\n defaultValue :\n attributeDefinition.dflt;\n};\n\nexports.coerceColor = function(attributeDefinition, value, defaultValue) {\n if(tinycolor(value).isValid()) return value;\n\n return (defaultValue !== undefined) ?\n defaultValue :\n attributeDefinition.dflt;\n};\n\nexports.coerceEnumerated = function(attributeDefinition, value, defaultValue) {\n if(attributeDefinition.coerceNumber) value = +value;\n\n if(attributeDefinition.values.indexOf(value) !== -1) return value;\n\n return (defaultValue !== undefined) ?\n defaultValue :\n attributeDefinition.dflt;\n};\n\nexports.getValue = function(arrayOrScalar, index) {\n var value;\n if(!Array.isArray(arrayOrScalar)) value = arrayOrScalar;\n else if(index < arrayOrScalar.length) value = arrayOrScalar[index];\n return value;\n};\n\nexports.getLineWidth = function(trace, di) {\n var w =\n (0 < di.mlw) ? di.mlw :\n !isArrayOrTypedArray(trace.marker.line.width) ? trace.marker.line.width :\n 0;\n\n return w;\n};\n\n\n/***/ }),\n\n/***/ \"6858\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(\"cecf\")(\"forEach\");\n\n\n/***/ }),\n\n/***/ \"68e6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isObject = __webpack_require__(\"2160\");\n\nmodule.exports = function (value) {\n\tif (!isObject(value)) throw new TypeError(value + \" is not an Object\");\n\treturn value;\n};\n\n\n/***/ }),\n\n/***/ \"6921\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar baseAttributes = __webpack_require__(\"a876\");\nvar baseLayoutAttributes = __webpack_require__(\"a685\");\nvar frameAttributes = __webpack_require__(\"a9cb\");\nvar animationAttributes = __webpack_require__(\"5b68\");\nvar configAttributes = __webpack_require__(\"3ff5\").configAttributes;\n\n// polar attributes are not part of the Registry yet\nvar polarAreaAttrs = __webpack_require__(\"fa06\");\nvar polarAxisAttrs = __webpack_require__(\"b7b8\");\n\nvar editTypes = __webpack_require__(\"cb34\");\n\nvar extendFlat = Lib.extendFlat;\nvar extendDeepAll = Lib.extendDeepAll;\nvar isPlainObject = Lib.isPlainObject;\nvar isArrayOrTypedArray = Lib.isArrayOrTypedArray;\nvar nestedProperty = Lib.nestedProperty;\nvar valObjectMeta = Lib.valObjectMeta;\n\nvar IS_SUBPLOT_OBJ = '_isSubplotObj';\nvar IS_LINKED_TO_ARRAY = '_isLinkedToArray';\nvar ARRAY_ATTR_REGEXPS = '_arrayAttrRegexps';\nvar DEPRECATED = '_deprecated';\nvar UNDERSCORE_ATTRS = [IS_SUBPLOT_OBJ, IS_LINKED_TO_ARRAY, ARRAY_ATTR_REGEXPS, DEPRECATED];\n\nexports.IS_SUBPLOT_OBJ = IS_SUBPLOT_OBJ;\nexports.IS_LINKED_TO_ARRAY = IS_LINKED_TO_ARRAY;\nexports.DEPRECATED = DEPRECATED;\nexports.UNDERSCORE_ATTRS = UNDERSCORE_ATTRS;\n\n/** Outputs the full plotly.js plot schema\n *\n * @return {object}\n * - defs\n * - traces\n * - layout\n * - transforms\n * - frames\n * - animations\n * - config\n */\nexports.get = function() {\n var traces = {};\n\n Registry.allTypes.concat('area').forEach(function(type) {\n traces[type] = getTraceAttributes(type);\n });\n\n var transforms = {};\n\n Object.keys(Registry.transformsRegistry).forEach(function(type) {\n transforms[type] = getTransformAttributes(type);\n });\n\n return {\n defs: {\n valObjects: valObjectMeta,\n metaKeys: UNDERSCORE_ATTRS.concat(['description', 'role', 'editType', 'impliedEdits']),\n editType: {\n traces: editTypes.traces,\n layout: editTypes.layout\n },\n impliedEdits: {\n \n }\n },\n\n traces: traces,\n layout: getLayoutAttributes(),\n\n transforms: transforms,\n\n frames: getFramesAttributes(),\n animation: formatAttributes(animationAttributes),\n\n config: formatAttributes(configAttributes)\n };\n};\n\n/**\n * Crawl the attribute tree, recursively calling a callback function\n *\n * @param {object} attrs\n * The node of the attribute tree (e.g. the root) from which recursion originates\n * @param {Function} callback\n * A callback function with the signature:\n * @callback callback\n * @param {object} attr an attribute\n * @param {String} attrName name string\n * @param {object[]} attrs all the attributes\n * @param {Number} level the recursion level, 0 at the root\n * @param {String} fullAttrString full attribute name (ie 'marker.line')\n * @param {Number} [specifiedLevel]\n * The level in the tree, in order to let the callback function detect descend or backtrack,\n * typically unsupplied (implied 0), just used by the self-recursive call.\n * The necessity arises because the tree traversal is not controlled by callback return values.\n * The decision to not use callback return values for controlling tree pruning arose from\n * the goal of keeping the crawler backwards compatible. Observe that one of the pruning conditions\n * precedes the callback call.\n * @param {string} [attrString]\n * the path to the current attribute, as an attribute string (ie 'marker.line')\n * typically unsupplied, but you may supply it if you want to disambiguate which attrs tree you\n * are starting from\n *\n * @return {object} transformOut\n * copy of transformIn that contains attribute defaults\n */\nexports.crawl = function(attrs, callback, specifiedLevel, attrString) {\n var level = specifiedLevel || 0;\n attrString = attrString || '';\n\n Object.keys(attrs).forEach(function(attrName) {\n var attr = attrs[attrName];\n\n if(UNDERSCORE_ATTRS.indexOf(attrName) !== -1) return;\n\n var fullAttrString = (attrString ? attrString + '.' : '') + attrName;\n callback(attr, attrName, attrs, level, fullAttrString);\n\n if(exports.isValObject(attr)) return;\n\n if(isPlainObject(attr) && attrName !== 'impliedEdits') {\n exports.crawl(attr, callback, level + 1, fullAttrString);\n }\n });\n};\n\n/** Is object a value object (or a container object)?\n *\n * @param {object} obj\n * @return {boolean}\n * returns true for a valid value object and\n * false for tree nodes in the attribute hierarchy\n */\nexports.isValObject = function(obj) {\n return obj && obj.valType !== undefined;\n};\n\n/**\n * Find all data array attributes in a given trace object - including\n * `arrayOk` attributes.\n *\n * @param {object} trace\n * full trace object that contains a reference to `_module.attributes`\n *\n * @return {array} arrayAttributes\n * list of array attributes for the given trace\n */\nexports.findArrayAttributes = function(trace) {\n var arrayAttributes = [];\n var stack = [];\n var isArrayStack = [];\n var baseContainer, baseAttrName;\n\n function callback(attr, attrName, attrs, level) {\n stack = stack.slice(0, level).concat([attrName]);\n isArrayStack = isArrayStack.slice(0, level).concat([attr && attr._isLinkedToArray]);\n\n var splittableAttr = (\n attr &&\n (attr.valType === 'data_array' || attr.arrayOk === true) &&\n !(stack[level - 1] === 'colorbar' && (attrName === 'ticktext' || attrName === 'tickvals'))\n );\n\n // Manually exclude 'colorbar.tickvals' and 'colorbar.ticktext' for now\n // which are declared as `valType: 'data_array'` but scale independently of\n // the coordinate arrays.\n //\n // Down the road, we might want to add a schema field (e.g `uncorrelatedArray: true`)\n // to distinguish attributes of the likes.\n\n if(!splittableAttr) return;\n\n crawlIntoTrace(baseContainer, 0, '');\n }\n\n function crawlIntoTrace(container, i, astrPartial) {\n var item = container[stack[i]];\n var newAstrPartial = astrPartial + stack[i];\n if(i === stack.length - 1) {\n if(isArrayOrTypedArray(item)) {\n arrayAttributes.push(baseAttrName + newAstrPartial);\n }\n } else {\n if(isArrayStack[i]) {\n if(Array.isArray(item)) {\n for(var j = 0; j < item.length; j++) {\n if(isPlainObject(item[j])) {\n crawlIntoTrace(item[j], i + 1, newAstrPartial + '[' + j + '].');\n }\n }\n }\n } else if(isPlainObject(item)) {\n crawlIntoTrace(item, i + 1, newAstrPartial + '.');\n }\n }\n }\n\n baseContainer = trace;\n baseAttrName = '';\n exports.crawl(baseAttributes, callback);\n if(trace._module && trace._module.attributes) {\n exports.crawl(trace._module.attributes, callback);\n }\n\n var transforms = trace.transforms;\n if(transforms) {\n for(var i = 0; i < transforms.length; i++) {\n var transform = transforms[i];\n var module = transform._module;\n\n if(module) {\n baseAttrName = 'transforms[' + i + '].';\n baseContainer = transform;\n\n exports.crawl(module.attributes, callback);\n }\n }\n }\n\n return arrayAttributes;\n};\n\n/*\n * Find the valObject for one attribute in an existing trace\n *\n * @param {object} trace\n * full trace object that contains a reference to `_module.attributes`\n * @param {object} parts\n * an array of parts, like ['transforms', 1, 'value']\n * typically from nestedProperty(...).parts\n *\n * @return {object|false}\n * the valObject for this attribute, or the last found parent\n * in some cases the innermost valObject will not exist, for example\n * `valType: 'any'` attributes where we might set a part of the attribute.\n * In that case, stop at the deepest valObject we *do* find.\n */\nexports.getTraceValObject = function(trace, parts) {\n var head = parts[0];\n var i = 1; // index to start recursing from\n var moduleAttrs, valObject;\n\n if(head === 'transforms') {\n if(parts.length === 1) {\n return baseAttributes.transforms;\n }\n var transforms = trace.transforms;\n if(!Array.isArray(transforms) || !transforms.length) return false;\n var tNum = parts[1];\n if(!isIndex(tNum) || tNum >= transforms.length) {\n return false;\n }\n moduleAttrs = (Registry.transformsRegistry[transforms[tNum].type] || {}).attributes;\n valObject = moduleAttrs && moduleAttrs[parts[2]];\n i = 3; // start recursing only inside the transform\n } else if(trace.type === 'area') {\n valObject = polarAreaAttrs[head];\n } else {\n // first look in the module for this trace\n // components have already merged their trace attributes in here\n var _module = trace._module;\n if(!_module) _module = (Registry.modules[trace.type || baseAttributes.type.dflt] || {})._module;\n if(!_module) return false;\n\n moduleAttrs = _module.attributes;\n valObject = moduleAttrs && moduleAttrs[head];\n\n // then look in the subplot attributes\n if(!valObject) {\n var subplotModule = _module.basePlotModule;\n if(subplotModule && subplotModule.attributes) {\n valObject = subplotModule.attributes[head];\n }\n }\n\n // finally look in the global attributes\n if(!valObject) valObject = baseAttributes[head];\n }\n\n return recurseIntoValObject(valObject, parts, i);\n};\n\n/*\n * Find the valObject for one layout attribute\n *\n * @param {array} parts\n * an array of parts, like ['annotations', 1, 'x']\n * typically from nestedProperty(...).parts\n *\n * @return {object|false}\n * the valObject for this attribute, or the last found parent\n * in some cases the innermost valObject will not exist, for example\n * `valType: 'any'` attributes where we might set a part of the attribute.\n * In that case, stop at the deepest valObject we *do* find.\n */\nexports.getLayoutValObject = function(fullLayout, parts) {\n var valObject = layoutHeadAttr(fullLayout, parts[0]);\n\n return recurseIntoValObject(valObject, parts, 1);\n};\n\nfunction layoutHeadAttr(fullLayout, head) {\n var i, key, _module, attributes;\n\n // look for attributes of the subplot types used on the plot\n var basePlotModules = fullLayout._basePlotModules;\n if(basePlotModules) {\n var out;\n for(i = 0; i < basePlotModules.length; i++) {\n _module = basePlotModules[i];\n if(_module.attrRegex && _module.attrRegex.test(head)) {\n // if a module defines overrides, these take precedence\n // initially this is to allow gl2d different editTypes from svg cartesian\n if(_module.layoutAttrOverrides) return _module.layoutAttrOverrides;\n\n // otherwise take the first attributes we find\n if(!out && _module.layoutAttributes) out = _module.layoutAttributes;\n }\n\n // a module can also override the behavior of base (and component) module layout attrs\n // again see gl2d for initial use case\n var baseOverrides = _module.baseLayoutAttrOverrides;\n if(baseOverrides && head in baseOverrides) return baseOverrides[head];\n }\n if(out) return out;\n }\n\n // look for layout attributes contributed by traces on the plot\n var modules = fullLayout._modules;\n if(modules) {\n for(i = 0; i < modules.length; i++) {\n attributes = modules[i].layoutAttributes;\n if(attributes && head in attributes) {\n return attributes[head];\n }\n }\n }\n\n /*\n * Next look in components.\n * Components that define a schema have already merged this into\n * base and subplot attribute defs, so ignore these.\n * Others (older style) all put all their attributes\n * inside a container matching the module `name`\n * eg `attributes` (array) or `legend` (object)\n */\n for(key in Registry.componentsRegistry) {\n _module = Registry.componentsRegistry[key];\n if(_module.name === 'colorscale' && head.indexOf('coloraxis') === 0) {\n return _module.layoutAttributes[head];\n } else if(!_module.schema && (head === _module.name)) {\n return _module.layoutAttributes;\n }\n }\n\n if(head in baseLayoutAttributes) return baseLayoutAttributes[head];\n\n // Polar doesn't populate _modules or _basePlotModules\n // just fall back on these when the others fail\n if(head === 'radialaxis' || head === 'angularaxis') {\n return polarAxisAttrs[head];\n }\n return polarAxisAttrs.layout[head] || false;\n}\n\nfunction recurseIntoValObject(valObject, parts, i) {\n if(!valObject) return false;\n\n if(valObject._isLinkedToArray) {\n // skip array index, abort if we try to dive into an array without an index\n if(isIndex(parts[i])) i++;\n else if(i < parts.length) return false;\n }\n\n // now recurse as far as we can. Occasionally we have an attribute\n // setting an internal part below what's in the schema; just return\n // the innermost schema item we find.\n for(; i < parts.length; i++) {\n var newValObject = valObject[parts[i]];\n if(isPlainObject(newValObject)) valObject = newValObject;\n else break;\n\n if(i === parts.length - 1) break;\n\n if(valObject._isLinkedToArray) {\n i++;\n if(!isIndex(parts[i])) return false;\n } else if(valObject.valType === 'info_array') {\n i++;\n var index = parts[i];\n if(!isIndex(index)) return false;\n\n var items = valObject.items;\n if(Array.isArray(items)) {\n if(index >= items.length) return false;\n if(valObject.dimensions === 2) {\n i++;\n if(parts.length === i) return valObject;\n var index2 = parts[i];\n if(!isIndex(index2)) return false;\n valObject = items[index][index2];\n } else valObject = items[index];\n } else {\n valObject = items;\n }\n }\n }\n\n return valObject;\n}\n\n// note: this is different from Lib.isIndex, this one doesn't accept numeric\n// strings, only actual numbers.\nfunction isIndex(val) {\n return val === Math.round(val) && val >= 0;\n}\n\nfunction getTraceAttributes(type) {\n var _module, basePlotModule;\n\n if(type === 'area') {\n _module = { attributes: polarAreaAttrs };\n basePlotModule = {};\n } else {\n _module = Registry.modules[type]._module,\n basePlotModule = _module.basePlotModule;\n }\n\n var attributes = {};\n\n // make 'type' the first attribute in the object\n attributes.type = null;\n\n var copyBaseAttributes = extendDeepAll({}, baseAttributes);\n var copyModuleAttributes = extendDeepAll({}, _module.attributes);\n\n // prune global-level trace attributes that are already defined in a trace\n exports.crawl(copyModuleAttributes, function(attr, attrName, attrs, level, fullAttrString) {\n nestedProperty(copyBaseAttributes, fullAttrString).set(undefined);\n // Prune undefined attributes\n if(attr === undefined) nestedProperty(copyModuleAttributes, fullAttrString).set(undefined);\n });\n\n // base attributes (same for all trace types)\n extendDeepAll(attributes, copyBaseAttributes);\n\n // prune-out base attributes based on trace module categories\n if(Registry.traceIs(type, 'noOpacity')) {\n delete attributes.opacity;\n }\n if(!Registry.traceIs(type, 'showLegend')) {\n delete attributes.showlegend;\n delete attributes.legendgroup;\n }\n if(Registry.traceIs(type, 'noHover')) {\n delete attributes.hoverinfo;\n delete attributes.hoverlabel;\n }\n if(!_module.selectPoints) {\n delete attributes.selectedpoints;\n }\n\n // module attributes\n extendDeepAll(attributes, copyModuleAttributes);\n\n // subplot attributes\n if(basePlotModule.attributes) {\n extendDeepAll(attributes, basePlotModule.attributes);\n }\n\n // 'type' gets overwritten by baseAttributes; reset it here\n attributes.type = type;\n\n var out = {\n meta: _module.meta || {},\n categories: _module.categories || {},\n animatable: Boolean(_module.animatable),\n type: type,\n attributes: formatAttributes(attributes),\n };\n\n // trace-specific layout attributes\n if(_module.layoutAttributes) {\n var layoutAttributes = {};\n\n extendDeepAll(layoutAttributes, _module.layoutAttributes);\n out.layoutAttributes = formatAttributes(layoutAttributes);\n }\n\n // drop anim:true in non-animatable modules\n if(!_module.animatable) {\n exports.crawl(out, function(attr) {\n if(exports.isValObject(attr) && 'anim' in attr) {\n delete attr.anim;\n }\n });\n }\n\n return out;\n}\n\nfunction getLayoutAttributes() {\n var layoutAttributes = {};\n var key, _module;\n\n // global layout attributes\n extendDeepAll(layoutAttributes, baseLayoutAttributes);\n\n // add base plot module layout attributes\n for(key in Registry.subplotsRegistry) {\n _module = Registry.subplotsRegistry[key];\n\n if(!_module.layoutAttributes) continue;\n\n if(Array.isArray(_module.attr)) {\n for(var i = 0; i < _module.attr.length; i++) {\n handleBasePlotModule(layoutAttributes, _module, _module.attr[i]);\n }\n } else {\n var astr = _module.attr === 'subplot' ? _module.name : _module.attr;\n handleBasePlotModule(layoutAttributes, _module, astr);\n }\n }\n\n // polar layout attributes\n layoutAttributes = assignPolarLayoutAttrs(layoutAttributes);\n\n // add registered components layout attributes\n for(key in Registry.componentsRegistry) {\n _module = Registry.componentsRegistry[key];\n var schema = _module.schema;\n\n if(schema && (schema.subplots || schema.layout)) {\n /*\n * Components with defined schema have already been merged in at register time\n * but a few components define attributes that apply only to xaxis\n * not yaxis (rangeselector, rangeslider) - delete from y schema.\n * Note that the input attributes for xaxis/yaxis are the same object\n * so it's not possible to only add them to xaxis from the start.\n * If we ever have such asymmetry the other way, or anywhere else,\n * we will need to extend both this code and mergeComponentAttrsToSubplot\n * (which will not find yaxis only for example)\n */\n var subplots = schema.subplots;\n if(subplots && subplots.xaxis && !subplots.yaxis) {\n for(var xkey in subplots.xaxis) {\n delete layoutAttributes.yaxis[xkey];\n }\n }\n } else if(_module.name === 'colorscale') {\n extendDeepAll(layoutAttributes, _module.layoutAttributes);\n } else if(_module.layoutAttributes) {\n // older style without schema need to be explicitly merged in now\n insertAttrs(layoutAttributes, _module.layoutAttributes, _module.name);\n }\n }\n\n return {\n layoutAttributes: formatAttributes(layoutAttributes)\n };\n}\n\nfunction getTransformAttributes(type) {\n var _module = Registry.transformsRegistry[type];\n var attributes = extendDeepAll({}, _module.attributes);\n\n // add registered components transform attributes\n Object.keys(Registry.componentsRegistry).forEach(function(k) {\n var _module = Registry.componentsRegistry[k];\n\n if(_module.schema && _module.schema.transforms && _module.schema.transforms[type]) {\n Object.keys(_module.schema.transforms[type]).forEach(function(v) {\n insertAttrs(attributes, _module.schema.transforms[type][v], v);\n });\n }\n });\n\n return {\n attributes: formatAttributes(attributes)\n };\n}\n\nfunction getFramesAttributes() {\n var attrs = {\n frames: extendDeepAll({}, frameAttributes)\n };\n\n formatAttributes(attrs);\n\n return attrs.frames;\n}\n\nfunction formatAttributes(attrs) {\n mergeValTypeAndRole(attrs);\n formatArrayContainers(attrs);\n stringify(attrs);\n\n return attrs;\n}\n\nfunction mergeValTypeAndRole(attrs) {\n function makeSrcAttr(attrName) {\n return {\n valType: 'string',\n \n \n editType: 'none'\n };\n }\n\n function callback(attr, attrName, attrs) {\n if(exports.isValObject(attr)) {\n if(attr.valType === 'data_array') {\n // all 'data_array' attrs have role 'data'\n attr.role = 'data';\n // all 'data_array' attrs have a corresponding 'src' attr\n attrs[attrName + 'src'] = makeSrcAttr(attrName);\n } else if(attr.arrayOk === true) {\n // all 'arrayOk' attrs have a corresponding 'src' attr\n attrs[attrName + 'src'] = makeSrcAttr(attrName);\n }\n } else if(isPlainObject(attr)) {\n // all attrs container objects get role 'object'\n attr.role = 'object';\n }\n }\n\n exports.crawl(attrs, callback);\n}\n\nfunction formatArrayContainers(attrs) {\n function callback(attr, attrName, attrs) {\n if(!attr) return;\n\n var itemName = attr[IS_LINKED_TO_ARRAY];\n\n if(!itemName) return;\n\n delete attr[IS_LINKED_TO_ARRAY];\n\n attrs[attrName] = { items: {} };\n attrs[attrName].items[itemName] = attr;\n attrs[attrName].role = 'object';\n }\n\n exports.crawl(attrs, callback);\n}\n\n// this can take around 10ms and should only be run from PlotSchema.get(),\n// to ensure JSON.stringify(PlotSchema.get()) gives the intended result.\nfunction stringify(attrs) {\n function walk(attr) {\n for(var k in attr) {\n if(isPlainObject(attr[k])) {\n walk(attr[k]);\n } else if(Array.isArray(attr[k])) {\n for(var i = 0; i < attr[k].length; i++) {\n walk(attr[k][i]);\n }\n } else {\n // as JSON.stringify(/test/) // => {}\n if(attr[k] instanceof RegExp) {\n attr[k] = attr[k].toString();\n }\n }\n }\n }\n\n walk(attrs);\n}\n\nfunction assignPolarLayoutAttrs(layoutAttributes) {\n extendFlat(layoutAttributes, {\n radialaxis: polarAxisAttrs.radialaxis,\n angularaxis: polarAxisAttrs.angularaxis\n });\n\n extendFlat(layoutAttributes, polarAxisAttrs.layout);\n\n return layoutAttributes;\n}\n\nfunction handleBasePlotModule(layoutAttributes, _module, astr) {\n var np = nestedProperty(layoutAttributes, astr);\n var attrs = extendDeepAll({}, _module.layoutAttributes);\n\n attrs[IS_SUBPLOT_OBJ] = true;\n np.set(attrs);\n}\n\nfunction insertAttrs(baseAttrs, newAttrs, astr) {\n var np = nestedProperty(baseAttrs, astr);\n\n np.set(extendDeepAll(np.get() || {}, newAttrs));\n}\n\n\n/***/ }),\n\n/***/ \"692b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar objToString = Object.prototype.toString, id = objToString.call(\"\");\n\nmodule.exports = function (value) {\n\treturn (\n\t\ttypeof value === \"string\" ||\n\t\t(value &&\n\t\t\ttypeof value === \"object\" &&\n\t\t\t(value instanceof String || objToString.call(value) === id)) ||\n\t\tfalse\n\t);\n};\n\n\n/***/ }),\n\n/***/ \"6954\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar Colorscale = __webpack_require__(\"c258\");\nvar svgTextUtils = __webpack_require__(\"0379\");\nvar Axes = __webpack_require__(\"0642\");\nvar setConvert = __webpack_require__(\"1a40\");\n\nvar heatmapPlot = __webpack_require__(\"fa8a\");\nvar makeCrossings = __webpack_require__(\"da89\");\nvar findAllPaths = __webpack_require__(\"f50a\");\nvar emptyPathinfo = __webpack_require__(\"3511\");\nvar convertToConstraints = __webpack_require__(\"849d\");\nvar closeBoundaries = __webpack_require__(\"c997\");\nvar constants = __webpack_require__(\"8e43\");\nvar costConstants = constants.LABELOPTIMIZER;\n\nexports.plot = function plot(gd, plotinfo, cdcontours, contourLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n Lib.makeTraceGroups(contourLayer, cdcontours, 'contour').each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n var x = cd0.x;\n var y = cd0.y;\n var contours = trace.contours;\n var pathinfo = emptyPathinfo(contours, plotinfo, cd0);\n\n // use a heatmap to fill - draw it behind the lines\n var heatmapColoringLayer = Lib.ensureSingle(plotGroup, 'g', 'heatmapcoloring');\n var cdheatmaps = [];\n if(contours.coloring === 'heatmap') {\n cdheatmaps = [cd];\n }\n heatmapPlot(gd, plotinfo, cdheatmaps, heatmapColoringLayer);\n\n makeCrossings(pathinfo);\n findAllPaths(pathinfo);\n\n var leftedge = xa.c2p(x[0], true);\n var rightedge = xa.c2p(x[x.length - 1], true);\n var bottomedge = ya.c2p(y[0], true);\n var topedge = ya.c2p(y[y.length - 1], true);\n var perimeter = [\n [leftedge, topedge],\n [rightedge, topedge],\n [rightedge, bottomedge],\n [leftedge, bottomedge]\n ];\n\n var fillPathinfo = pathinfo;\n if(contours.type === 'constraint') {\n // N.B. this also mutates pathinfo\n fillPathinfo = convertToConstraints(pathinfo, contours._operation);\n }\n\n // draw everything\n makeBackground(plotGroup, perimeter, contours);\n makeFills(plotGroup, fillPathinfo, perimeter, contours);\n makeLinesAndLabels(plotGroup, pathinfo, gd, cd0, contours);\n clipGaps(plotGroup, plotinfo, gd, cd0, perimeter);\n });\n};\n\nfunction makeBackground(plotgroup, perimeter, contours) {\n var bggroup = Lib.ensureSingle(plotgroup, 'g', 'contourbg');\n\n var bgfill = bggroup.selectAll('path')\n .data(contours.coloring === 'fill' ? [0] : []);\n bgfill.enter().append('path');\n bgfill.exit().remove();\n bgfill\n .attr('d', 'M' + perimeter.join('L') + 'Z')\n .style('stroke', 'none');\n}\n\nfunction makeFills(plotgroup, pathinfo, perimeter, contours) {\n var hasFills = contours.coloring === 'fill' || (contours.type === 'constraint' && contours._operation !== '=');\n var boundaryPath = 'M' + perimeter.join('L') + 'Z';\n\n // fills prefixBoundary in pathinfo items\n if(hasFills) {\n closeBoundaries(pathinfo, contours);\n }\n\n var fillgroup = Lib.ensureSingle(plotgroup, 'g', 'contourfill');\n\n var fillitems = fillgroup.selectAll('path').data(hasFills ? pathinfo : []);\n fillitems.enter().append('path');\n fillitems.exit().remove();\n fillitems.each(function(pi) {\n // join all paths for this level together into a single path\n // first follow clockwise around the perimeter to close any open paths\n // if the whole perimeter is above this level, start with a path\n // enclosing the whole thing. With all that, the parity should mean\n // that we always fill everything above the contour, nothing below\n var fullpath = (pi.prefixBoundary ? boundaryPath : '') +\n joinAllPaths(pi, perimeter);\n\n if(!fullpath) {\n d3.select(this).remove();\n } else {\n d3.select(this)\n .attr('d', fullpath)\n .style('stroke', 'none');\n }\n });\n}\n\nfunction joinAllPaths(pi, perimeter) {\n var fullpath = '';\n var i = 0;\n var startsleft = pi.edgepaths.map(function(v, i) { return i; });\n var newloop = true;\n var endpt;\n var newendpt;\n var cnt;\n var nexti;\n var possiblei;\n var addpath;\n\n function istop(pt) { return Math.abs(pt[1] - perimeter[0][1]) < 0.01; }\n function isbottom(pt) { return Math.abs(pt[1] - perimeter[2][1]) < 0.01; }\n function isleft(pt) { return Math.abs(pt[0] - perimeter[0][0]) < 0.01; }\n function isright(pt) { return Math.abs(pt[0] - perimeter[2][0]) < 0.01; }\n\n while(startsleft.length) {\n addpath = Drawing.smoothopen(pi.edgepaths[i], pi.smoothing);\n fullpath += newloop ? addpath : addpath.replace(/^M/, 'L');\n startsleft.splice(startsleft.indexOf(i), 1);\n endpt = pi.edgepaths[i][pi.edgepaths[i].length - 1];\n nexti = -1;\n\n // now loop through sides, moving our endpoint until we find a new start\n for(cnt = 0; cnt < 4; cnt++) { // just to prevent infinite loops\n if(!endpt) {\n Lib.log('Missing end?', i, pi);\n break;\n }\n\n if(istop(endpt) && !isright(endpt)) newendpt = perimeter[1]; // right top\n else if(isleft(endpt)) newendpt = perimeter[0]; // left top\n else if(isbottom(endpt)) newendpt = perimeter[3]; // right bottom\n else if(isright(endpt)) newendpt = perimeter[2]; // left bottom\n\n for(possiblei = 0; possiblei < pi.edgepaths.length; possiblei++) {\n var ptNew = pi.edgepaths[possiblei][0];\n // is ptNew on the (horz. or vert.) segment from endpt to newendpt?\n if(Math.abs(endpt[0] - newendpt[0]) < 0.01) {\n if(Math.abs(endpt[0] - ptNew[0]) < 0.01 &&\n (ptNew[1] - endpt[1]) * (newendpt[1] - ptNew[1]) >= 0) {\n newendpt = ptNew;\n nexti = possiblei;\n }\n } else if(Math.abs(endpt[1] - newendpt[1]) < 0.01) {\n if(Math.abs(endpt[1] - ptNew[1]) < 0.01 &&\n (ptNew[0] - endpt[0]) * (newendpt[0] - ptNew[0]) >= 0) {\n newendpt = ptNew;\n nexti = possiblei;\n }\n } else {\n Lib.log('endpt to newendpt is not vert. or horz.',\n endpt, newendpt, ptNew);\n }\n }\n\n endpt = newendpt;\n\n if(nexti >= 0) break;\n fullpath += 'L' + newendpt;\n }\n\n if(nexti === pi.edgepaths.length) {\n Lib.log('unclosed perimeter path');\n break;\n }\n\n i = nexti;\n\n // if we closed back on a loop we already included,\n // close it and start a new loop\n newloop = (startsleft.indexOf(i) === -1);\n if(newloop) {\n i = startsleft[0];\n fullpath += 'Z';\n }\n }\n\n // finally add the interior paths\n for(i = 0; i < pi.paths.length; i++) {\n fullpath += Drawing.smoothclosed(pi.paths[i], pi.smoothing);\n }\n\n return fullpath;\n}\n\nfunction makeLinesAndLabels(plotgroup, pathinfo, gd, cd0, contours) {\n var lineContainer = Lib.ensureSingle(plotgroup, 'g', 'contourlines');\n var showLines = contours.showlines !== false;\n var showLabels = contours.showlabels;\n var clipLinesForLabels = showLines && showLabels;\n\n // Even if we're not going to show lines, we need to create them\n // if we're showing labels, because the fill paths include the perimeter\n // so can't be used to position the labels correctly.\n // In this case we'll remove the lines after making the labels.\n var linegroup = exports.createLines(lineContainer, showLines || showLabels, pathinfo);\n\n var lineClip = exports.createLineClip(lineContainer, clipLinesForLabels, gd, cd0.trace.uid);\n\n var labelGroup = plotgroup.selectAll('g.contourlabels')\n .data(showLabels ? [0] : []);\n\n labelGroup.exit().remove();\n\n labelGroup.enter().append('g')\n .classed('contourlabels', true);\n\n if(showLabels) {\n var labelClipPathData = [];\n var labelData = [];\n\n // invalidate the getTextLocation cache in case paths changed\n Lib.clearLocationCache();\n\n var contourFormat = exports.labelFormatter(gd, cd0);\n\n var dummyText = Drawing.tester.append('text')\n .attr('data-notex', 1)\n .call(Drawing.font, contours.labelfont);\n\n var xa = pathinfo[0].xaxis;\n var ya = pathinfo[0].yaxis;\n var xLen = xa._length;\n var yLen = ya._length;\n var xRng = xa.range;\n var yRng = ya.range;\n var xMin = Lib.aggNums(Math.min, null, cd0.x);\n var xMax = Lib.aggNums(Math.max, null, cd0.x);\n var yMin = Lib.aggNums(Math.min, null, cd0.y);\n var yMax = Lib.aggNums(Math.max, null, cd0.y);\n var x0 = Math.max(xa.c2p(xMin, true), 0);\n var x1 = Math.min(xa.c2p(xMax, true), xLen);\n var y0 = Math.max(ya.c2p(yMax, true), 0);\n var y1 = Math.min(ya.c2p(yMin, true), yLen);\n\n // visible bounds of the contour trace (and the midpoints, to\n // help with cost calculations)\n var bounds = {};\n\n if(xRng[0] < xRng[1]) {\n bounds.left = x0;\n bounds.right = x1;\n } else {\n bounds.left = x1;\n bounds.right = x0;\n }\n\n if(yRng[0] < yRng[1]) {\n bounds.top = y0;\n bounds.bottom = y1;\n } else {\n bounds.top = y1;\n bounds.bottom = y0;\n }\n\n bounds.middle = (bounds.top + bounds.bottom) / 2;\n bounds.center = (bounds.left + bounds.right) / 2;\n\n labelClipPathData.push([\n [bounds.left, bounds.top],\n [bounds.right, bounds.top],\n [bounds.right, bounds.bottom],\n [bounds.left, bounds.bottom]\n ]);\n\n var plotDiagonal = Math.sqrt(xLen * xLen + yLen * yLen);\n\n // the path length to use to scale the number of labels to draw:\n var normLength = constants.LABELDISTANCE * plotDiagonal /\n Math.max(1, pathinfo.length / constants.LABELINCREASE);\n\n linegroup.each(function(d) {\n var textOpts = exports.calcTextOpts(d.level, contourFormat, dummyText, gd);\n\n d3.select(this).selectAll('path').each(function() {\n var path = this;\n var pathBounds = Lib.getVisibleSegment(path, bounds, textOpts.height / 2);\n if(!pathBounds) return;\n\n if(pathBounds.len < (textOpts.width + textOpts.height) * constants.LABELMIN) return;\n\n var maxLabels = Math.min(Math.ceil(pathBounds.len / normLength),\n constants.LABELMAX);\n\n for(var i = 0; i < maxLabels; i++) {\n var loc = exports.findBestTextLocation(path, pathBounds, textOpts,\n labelData, bounds);\n\n if(!loc) break;\n\n exports.addLabelData(loc, textOpts, labelData, labelClipPathData);\n }\n });\n });\n\n dummyText.remove();\n\n exports.drawLabels(labelGroup, labelData, gd, lineClip,\n clipLinesForLabels ? labelClipPathData : null);\n }\n\n if(showLabels && !showLines) linegroup.remove();\n}\n\nexports.createLines = function(lineContainer, makeLines, pathinfo) {\n var smoothing = pathinfo[0].smoothing;\n\n var linegroup = lineContainer.selectAll('g.contourlevel')\n .data(makeLines ? pathinfo : []);\n\n linegroup.exit().remove();\n linegroup.enter().append('g')\n .classed('contourlevel', true);\n\n if(makeLines) {\n // pedgepaths / ppaths are used by contourcarpet, for the paths transformed from a/b to x/y\n // edgepaths / paths are used by contour since it's in x/y from the start\n var opencontourlines = linegroup.selectAll('path.openline')\n .data(function(d) { return d.pedgepaths || d.edgepaths; });\n\n opencontourlines.exit().remove();\n opencontourlines.enter().append('path')\n .classed('openline', true);\n\n opencontourlines\n .attr('d', function(d) {\n return Drawing.smoothopen(d, smoothing);\n })\n .style('stroke-miterlimit', 1)\n .style('vector-effect', 'non-scaling-stroke');\n\n var closedcontourlines = linegroup.selectAll('path.closedline')\n .data(function(d) { return d.ppaths || d.paths; });\n\n closedcontourlines.exit().remove();\n closedcontourlines.enter().append('path')\n .classed('closedline', true);\n\n closedcontourlines\n .attr('d', function(d) {\n return Drawing.smoothclosed(d, smoothing);\n })\n .style('stroke-miterlimit', 1)\n .style('vector-effect', 'non-scaling-stroke');\n }\n\n return linegroup;\n};\n\nexports.createLineClip = function(lineContainer, clipLinesForLabels, gd, uid) {\n var clips = gd._fullLayout._clips;\n var clipId = clipLinesForLabels ? ('clipline' + uid) : null;\n\n var lineClip = clips.selectAll('#' + clipId)\n .data(clipLinesForLabels ? [0] : []);\n lineClip.exit().remove();\n\n lineClip.enter().append('clipPath')\n .classed('contourlineclip', true)\n .attr('id', clipId);\n\n Drawing.setClipUrl(lineContainer, clipId, gd);\n\n return lineClip;\n};\n\nexports.labelFormatter = function(gd, cd0) {\n var fullLayout = gd._fullLayout;\n var trace = cd0.trace;\n var contours = trace.contours;\n\n if(contours.labelformat) {\n return fullLayout._d3locale.numberFormat(contours.labelformat);\n } else {\n var formatAxis;\n var cOpts = Colorscale.extractOpts(trace);\n if(cOpts && cOpts.colorbar && cOpts.colorbar._axis) {\n formatAxis = cOpts.colorbar._axis;\n } else {\n formatAxis = {\n type: 'linear',\n _id: 'ycontour',\n showexponent: 'all',\n exponentformat: 'B'\n };\n\n if(contours.type === 'constraint') {\n var value = contours.value;\n if(Array.isArray(value)) {\n formatAxis.range = [value[0], value[value.length - 1]];\n } else formatAxis.range = [value, value];\n } else {\n formatAxis.range = [contours.start, contours.end];\n formatAxis.nticks = (contours.end - contours.start) / contours.size;\n }\n\n if(formatAxis.range[0] === formatAxis.range[1]) {\n formatAxis.range[1] += formatAxis.range[0] || 1;\n }\n if(!formatAxis.nticks) formatAxis.nticks = 1000;\n\n setConvert(formatAxis, fullLayout);\n Axes.prepTicks(formatAxis);\n formatAxis._tmin = null;\n formatAxis._tmax = null;\n }\n return function(v) {\n return Axes.tickText(formatAxis, v).text;\n };\n }\n};\n\nexports.calcTextOpts = function(level, contourFormat, dummyText, gd) {\n var text = contourFormat(level);\n dummyText.text(text)\n .call(svgTextUtils.convertToTspans, gd);\n var bBox = Drawing.bBox(dummyText.node(), true);\n\n return {\n text: text,\n width: bBox.width,\n height: bBox.height,\n level: level,\n dy: (bBox.top + bBox.bottom) / 2\n };\n};\n\nexports.findBestTextLocation = function(path, pathBounds, textOpts, labelData, plotBounds) {\n var textWidth = textOpts.width;\n\n var p0, dp, pMax, pMin, loc;\n if(pathBounds.isClosed) {\n dp = pathBounds.len / costConstants.INITIALSEARCHPOINTS;\n p0 = pathBounds.min + dp / 2;\n pMax = pathBounds.max;\n } else {\n dp = (pathBounds.len - textWidth) / (costConstants.INITIALSEARCHPOINTS + 1);\n p0 = pathBounds.min + dp + textWidth / 2;\n pMax = pathBounds.max - (dp + textWidth) / 2;\n }\n\n var cost = Infinity;\n for(var j = 0; j < costConstants.ITERATIONS; j++) {\n for(var p = p0; p < pMax; p += dp) {\n var newLocation = Lib.getTextLocation(path, pathBounds.total, p, textWidth);\n var newCost = locationCost(newLocation, textOpts, labelData, plotBounds);\n if(newCost < cost) {\n cost = newCost;\n loc = newLocation;\n pMin = p;\n }\n }\n if(cost > costConstants.MAXCOST * 2) break;\n\n // subsequent iterations just look half steps away from the\n // best we found in the previous iteration\n if(j) dp /= 2;\n p0 = pMin - dp / 2;\n pMax = p0 + dp * 1.5;\n }\n if(cost <= costConstants.MAXCOST) return loc;\n};\n\n/*\n * locationCost: a cost function for label locations\n * composed of three kinds of penalty:\n * - for open paths, being close to the end of the path\n * - the angle away from horizontal\n * - being too close to already placed neighbors\n */\nfunction locationCost(loc, textOpts, labelData, bounds) {\n var halfWidth = textOpts.width / 2;\n var halfHeight = textOpts.height / 2;\n var x = loc.x;\n var y = loc.y;\n var theta = loc.theta;\n var dx = Math.cos(theta) * halfWidth;\n var dy = Math.sin(theta) * halfWidth;\n\n // cost for being near an edge\n var normX = ((x > bounds.center) ? (bounds.right - x) : (x - bounds.left)) /\n (dx + Math.abs(Math.sin(theta) * halfHeight));\n var normY = ((y > bounds.middle) ? (bounds.bottom - y) : (y - bounds.top)) /\n (Math.abs(dy) + Math.cos(theta) * halfHeight);\n if(normX < 1 || normY < 1) return Infinity;\n var cost = costConstants.EDGECOST * (1 / (normX - 1) + 1 / (normY - 1));\n\n // cost for not being horizontal\n cost += costConstants.ANGLECOST * theta * theta;\n\n // cost for being close to other labels\n var x1 = x - dx;\n var y1 = y - dy;\n var x2 = x + dx;\n var y2 = y + dy;\n for(var i = 0; i < labelData.length; i++) {\n var labeli = labelData[i];\n var dxd = Math.cos(labeli.theta) * labeli.width / 2;\n var dyd = Math.sin(labeli.theta) * labeli.width / 2;\n var dist = Lib.segmentDistance(\n x1, y1,\n x2, y2,\n labeli.x - dxd, labeli.y - dyd,\n labeli.x + dxd, labeli.y + dyd\n ) * 2 / (textOpts.height + labeli.height);\n\n var sameLevel = labeli.level === textOpts.level;\n var distOffset = sameLevel ? costConstants.SAMELEVELDISTANCE : 1;\n\n if(dist <= distOffset) return Infinity;\n\n var distFactor = costConstants.NEIGHBORCOST *\n (sameLevel ? costConstants.SAMELEVELFACTOR : 1);\n\n cost += distFactor / (dist - distOffset);\n }\n\n return cost;\n}\n\nexports.addLabelData = function(loc, textOpts, labelData, labelClipPathData) {\n var halfWidth = textOpts.width / 2;\n var halfHeight = textOpts.height / 2;\n\n var x = loc.x;\n var y = loc.y;\n var theta = loc.theta;\n\n var sin = Math.sin(theta);\n var cos = Math.cos(theta);\n var dxw = halfWidth * cos;\n var dxh = halfHeight * sin;\n var dyw = halfWidth * sin;\n var dyh = -halfHeight * cos;\n var bBoxPts = [\n [x - dxw - dxh, y - dyw - dyh],\n [x + dxw - dxh, y + dyw - dyh],\n [x + dxw + dxh, y + dyw + dyh],\n [x - dxw + dxh, y - dyw + dyh],\n ];\n\n labelData.push({\n text: textOpts.text,\n x: x,\n y: y,\n dy: textOpts.dy,\n theta: theta,\n level: textOpts.level,\n width: textOpts.width,\n height: textOpts.height\n });\n\n labelClipPathData.push(bBoxPts);\n};\n\nexports.drawLabels = function(labelGroup, labelData, gd, lineClip, labelClipPathData) {\n var labels = labelGroup.selectAll('text')\n .data(labelData, function(d) {\n return d.text + ',' + d.x + ',' + d.y + ',' + d.theta;\n });\n\n labels.exit().remove();\n\n labels.enter().append('text')\n .attr({\n 'data-notex': 1,\n 'text-anchor': 'middle'\n })\n .each(function(d) {\n var x = d.x + Math.sin(d.theta) * d.dy;\n var y = d.y - Math.cos(d.theta) * d.dy;\n d3.select(this)\n .text(d.text)\n .attr({\n x: x,\n y: y,\n transform: 'rotate(' + (180 * d.theta / Math.PI) + ' ' + x + ' ' + y + ')'\n })\n .call(svgTextUtils.convertToTspans, gd);\n });\n\n if(labelClipPathData) {\n var clipPath = '';\n for(var i = 0; i < labelClipPathData.length; i++) {\n clipPath += 'M' + labelClipPathData[i].join('L') + 'Z';\n }\n\n var lineClipPath = Lib.ensureSingle(lineClip, 'path', '');\n lineClipPath.attr('d', clipPath);\n }\n};\n\nfunction clipGaps(plotGroup, plotinfo, gd, cd0, perimeter) {\n var trace = cd0.trace;\n var clips = gd._fullLayout._clips;\n var clipId = 'clip' + trace.uid;\n\n var clipPath = clips.selectAll('#' + clipId)\n .data(trace.connectgaps ? [] : [0]);\n clipPath.enter().append('clipPath')\n .classed('contourclip', true)\n .attr('id', clipId);\n clipPath.exit().remove();\n\n if(trace.connectgaps === false) {\n var clipPathInfo = {\n // fraction of the way from missing to present point\n // to draw the boundary.\n // if you make this 1 (or 1-epsilon) then a point in\n // a sea of missing data will disappear entirely.\n level: 0.9,\n crossings: {},\n starts: [],\n edgepaths: [],\n paths: [],\n xaxis: plotinfo.xaxis,\n yaxis: plotinfo.yaxis,\n x: cd0.x,\n y: cd0.y,\n // 0 = no data, 1 = data\n z: makeClipMask(cd0),\n smoothing: 0\n };\n\n makeCrossings([clipPathInfo]);\n findAllPaths([clipPathInfo]);\n closeBoundaries([clipPathInfo], {type: 'levels'});\n\n var path = Lib.ensureSingle(clipPath, 'path', '');\n path.attr('d',\n (clipPathInfo.prefixBoundary ? 'M' + perimeter.join('L') + 'Z' : '') +\n joinAllPaths(clipPathInfo, perimeter)\n );\n } else clipId = null;\n\n Drawing.setClipUrl(plotGroup, clipId, gd);\n}\n\nfunction makeClipMask(cd0) {\n var empties = cd0.trace._emptypoints;\n var z = [];\n var m = cd0.z.length;\n var n = cd0.z[0].length;\n var i;\n var row = [];\n var emptyPoint;\n\n for(i = 0; i < n; i++) row.push(1);\n for(i = 0; i < m; i++) z.push(row.slice());\n for(i = 0; i < empties.length; i++) {\n emptyPoint = empties[i];\n z[emptyPoint[0]][emptyPoint[1]] = 0;\n }\n // save this mask to determine whether to show this data in hover\n cd0.zmask = z;\n return z;\n}\n\n\n/***/ }),\n\n/***/ \"6962\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Registry = __webpack_require__(\"371e\");\nvar appendArrayPointValue = __webpack_require__(\"c4c7\").appendArrayPointValue;\nvar Fx = __webpack_require__(\"a5c4\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Events = __webpack_require__(\"8741\");\n\nvar helpers = __webpack_require__(\"fb56\");\nvar pieHelpers = __webpack_require__(\"59e0\");\n\nvar formatValue = pieHelpers.formatPieValue;\n\nmodule.exports = function attachFxHandlers(sliceTop, entry, gd, cd, opts) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n var hierarchy = cd0.hierarchy;\n\n var isSunburst = trace.type === 'sunburst';\n var isTreemap = trace.type === 'treemap';\n\n // hover state vars\n // have we drawn a hover label, so it should be cleared later\n if(!('_hasHoverLabel' in trace)) trace._hasHoverLabel = false;\n // have we emitted a hover event, so later an unhover event should be emitted\n // note that click events do not depend on this - you can still get them\n // with hovermode: false or if you were earlier dragging, then clicked\n // in the same slice that you moused up in\n if(!('_hasHoverEvent' in trace)) trace._hasHoverEvent = false;\n\n var onMouseOver = function(pt) {\n var fullLayoutNow = gd._fullLayout;\n\n if(gd._dragging || fullLayoutNow.hovermode === false) return;\n\n var traceNow = gd._fullData[trace.index];\n var cdi = pt.data.data;\n var ptNumber = cdi.i;\n var isRoot = helpers.isHierarchyRoot(pt);\n var parent = helpers.getParent(hierarchy, pt);\n\n var val = helpers.getValue(pt);\n\n var _cast = function(astr) {\n return Lib.castOption(traceNow, ptNumber, astr);\n };\n\n var hovertemplate = _cast('hovertemplate');\n var hoverinfo = Fx.castHoverinfo(traceNow, fullLayoutNow, ptNumber);\n var separators = fullLayoutNow.separators;\n\n if(hovertemplate || (hoverinfo && hoverinfo !== 'none' && hoverinfo !== 'skip')) {\n var hoverCenterX;\n var hoverCenterY;\n if(isSunburst) {\n hoverCenterX = cd0.cx + pt.pxmid[0] * (1 - pt.rInscribed);\n hoverCenterY = cd0.cy + pt.pxmid[1] * (1 - pt.rInscribed);\n }\n if(isTreemap) {\n hoverCenterX = pt._hoverX;\n hoverCenterY = pt._hoverY;\n }\n\n var hoverPt = {};\n var parts = [];\n var thisText = [];\n var hasFlag = function(flag) { return parts.indexOf(flag) !== -1; };\n\n if(hoverinfo) {\n parts = hoverinfo === 'all' ?\n traceNow._module.attributes.hoverinfo.flags :\n hoverinfo.split('+');\n }\n\n hoverPt.label = cdi.label;\n if(hasFlag('label') && hoverPt.label) thisText.push(hoverPt.label);\n\n if(cdi.hasOwnProperty('v')) {\n hoverPt.value = cdi.v;\n hoverPt.valueLabel = formatValue(hoverPt.value, separators);\n if(hasFlag('value')) thisText.push(hoverPt.valueLabel);\n }\n\n hoverPt.currentPath = pt.currentPath = helpers.getPath(pt.data);\n if(hasFlag('current path') && !isRoot) {\n thisText.push(hoverPt.currentPath);\n }\n\n var tx;\n var allPercents = [];\n var insertPercent = function() {\n if(allPercents.indexOf(tx) === -1) { // no need to add redundant info\n thisText.push(tx);\n allPercents.push(tx);\n }\n };\n\n hoverPt.percentParent = pt.percentParent = val / helpers.getValue(parent);\n hoverPt.parent = pt.parentString = helpers.getPtLabel(parent);\n if(hasFlag('percent parent')) {\n tx = helpers.formatPercent(hoverPt.percentParent, separators) + ' of ' + hoverPt.parent;\n insertPercent();\n }\n\n hoverPt.percentEntry = pt.percentEntry = val / helpers.getValue(entry);\n hoverPt.entry = pt.entry = helpers.getPtLabel(entry);\n if(hasFlag('percent entry') && !isRoot && !pt.onPathbar) {\n tx = helpers.formatPercent(hoverPt.percentEntry, separators) + ' of ' + hoverPt.entry;\n insertPercent();\n }\n\n hoverPt.percentRoot = pt.percentRoot = val / helpers.getValue(hierarchy);\n hoverPt.root = pt.root = helpers.getPtLabel(hierarchy);\n if(hasFlag('percent root') && !isRoot) {\n tx = helpers.formatPercent(hoverPt.percentRoot, separators) + ' of ' + hoverPt.root;\n insertPercent();\n }\n\n hoverPt.text = _cast('hovertext') || _cast('text');\n if(hasFlag('text')) {\n tx = hoverPt.text;\n if(Lib.isValidTextValue(tx)) thisText.push(tx);\n }\n\n var hoverItems = {\n trace: traceNow,\n y: hoverCenterY,\n text: thisText.join('
'),\n name: (hovertemplate || hasFlag('name')) ? traceNow.name : undefined,\n color: _cast('hoverlabel.bgcolor') || cdi.color,\n borderColor: _cast('hoverlabel.bordercolor'),\n fontFamily: _cast('hoverlabel.font.family'),\n fontSize: _cast('hoverlabel.font.size'),\n fontColor: _cast('hoverlabel.font.color'),\n nameLength: _cast('hoverlabel.namelength'),\n textAlign: _cast('hoverlabel.align'),\n hovertemplate: hovertemplate,\n hovertemplateLabels: hoverPt,\n eventData: [makeEventData(pt, traceNow, opts.eventDataKeys)]\n };\n\n if(isSunburst) {\n hoverItems.x0 = hoverCenterX - pt.rInscribed * pt.rpx1;\n hoverItems.x1 = hoverCenterX + pt.rInscribed * pt.rpx1;\n hoverItems.idealAlign = pt.pxmid[0] < 0 ? 'left' : 'right';\n }\n if(isTreemap) {\n hoverItems.x = hoverCenterX;\n hoverItems.idealAlign = hoverCenterX < 0 ? 'left' : 'right';\n }\n\n Fx.loneHover(hoverItems, {\n container: fullLayoutNow._hoverlayer.node(),\n outerContainer: fullLayoutNow._paper.node(),\n gd: gd\n });\n\n trace._hasHoverLabel = true;\n }\n\n if(isTreemap) {\n var slice = sliceTop.select('path.surface');\n opts.styleOne(slice, pt, traceNow, {\n hovered: true\n });\n }\n\n trace._hasHoverEvent = true;\n gd.emit('plotly_hover', {\n points: [makeEventData(pt, traceNow, opts.eventDataKeys)],\n event: d3.event\n });\n };\n\n var onMouseOut = function(evt) {\n var fullLayoutNow = gd._fullLayout;\n var traceNow = gd._fullData[trace.index];\n var pt = d3.select(this).datum();\n\n if(trace._hasHoverEvent) {\n evt.originalEvent = d3.event;\n gd.emit('plotly_unhover', {\n points: [makeEventData(pt, traceNow, opts.eventDataKeys)],\n event: d3.event\n });\n trace._hasHoverEvent = false;\n }\n\n if(trace._hasHoverLabel) {\n Fx.loneUnhover(fullLayoutNow._hoverlayer.node());\n trace._hasHoverLabel = false;\n }\n\n if(isTreemap) {\n var slice = sliceTop.select('path.surface');\n opts.styleOne(slice, pt, traceNow, {\n hovered: false\n });\n }\n };\n\n var onClick = function(pt) {\n // TODO: this does not support right-click. If we want to support it, we\n // would likely need to change pie to use dragElement instead of straight\n // mapbox event binding. Or perhaps better, make a simple wrapper with the\n // right mousedown, mousemove, and mouseup handlers just for a left/right click\n // mapbox would use this too.\n var fullLayoutNow = gd._fullLayout;\n var traceNow = gd._fullData[trace.index];\n\n var noTransition = isSunburst && (helpers.isHierarchyRoot(pt) || helpers.isLeaf(pt));\n\n var id = helpers.getPtId(pt);\n var nextEntry = helpers.isEntry(pt) ?\n helpers.findEntryWithChild(hierarchy, id) :\n helpers.findEntryWithLevel(hierarchy, id);\n var nextLevel = helpers.getPtId(nextEntry);\n\n var typeClickEvtData = {\n points: [makeEventData(pt, traceNow, opts.eventDataKeys)],\n event: d3.event\n };\n if(!noTransition) typeClickEvtData.nextLevel = nextLevel;\n\n var clickVal = Events.triggerHandler(gd, 'plotly_' + trace.type + 'click', typeClickEvtData);\n\n if(clickVal !== false && fullLayoutNow.hovermode) {\n gd._hoverdata = [makeEventData(pt, traceNow, opts.eventDataKeys)];\n Fx.click(gd, d3.event);\n }\n\n // if click does not trigger a transition, we're done!\n if(noTransition) return;\n\n // if custom handler returns false, we're done!\n if(clickVal === false) return;\n\n // skip if triggered from dragging a nearby cartesian subplot\n if(gd._dragging) return;\n\n // skip during transitions, to avoid potential bugs\n // we could remove this check later\n if(gd._transitioning) return;\n\n // store 'old' level in guiEdit stash, so that subsequent Plotly.react\n // calls with the same uirevision can start from the same entry\n Registry.call('_storeDirectGUIEdit', traceNow, fullLayoutNow._tracePreGUI[traceNow.uid], {\n level: traceNow.level\n });\n\n var frame = {\n data: [{level: nextLevel}],\n traces: [trace.index]\n };\n\n var animOpts = {\n frame: {\n redraw: false,\n duration: opts.transitionTime\n },\n transition: {\n duration: opts.transitionTime,\n easing: opts.transitionEasing\n },\n mode: 'immediate',\n fromcurrent: true\n };\n\n Fx.loneUnhover(fullLayoutNow._hoverlayer.node());\n Registry.call('animate', gd, frame, animOpts);\n };\n\n sliceTop.on('mouseover', onMouseOver);\n sliceTop.on('mouseout', onMouseOut);\n sliceTop.on('click', onClick);\n};\n\nfunction makeEventData(pt, trace, keys) {\n var cdi = pt.data.data;\n\n var out = {\n curveNumber: trace.index,\n pointNumber: cdi.i,\n data: trace._input,\n fullData: trace,\n\n // TODO more things like 'children', 'siblings', 'hierarchy?\n };\n\n for(var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if(key in pt) out[key] = pt[key];\n }\n // handle special case of parent\n if('parentString' in pt && !helpers.isHierarchyRoot(pt)) out.parent = pt.parentString;\n\n appendArrayPointValue(out, trace, cdi.i);\n\n return out;\n}\n\n\n/***/ }),\n\n/***/ \"69f1\":\n/***/ (function(module, exports) {\n\n// transliterated from the python snippet here:\n// http://en.wikipedia.org/wiki/Lanczos_approximation\n\nvar g = 7;\nvar p = [\n 0.99999999999980993,\n 676.5203681218851,\n -1259.1392167224028,\n 771.32342877765313,\n -176.61502916214059,\n 12.507343278686905,\n -0.13857109526572012,\n 9.9843695780195716e-6,\n 1.5056327351493116e-7\n];\n\nvar g_ln = 607/128;\nvar p_ln = [\n 0.99999999999999709182,\n 57.156235665862923517,\n -59.597960355475491248,\n 14.136097974741747174,\n -0.49191381609762019978,\n 0.33994649984811888699e-4,\n 0.46523628927048575665e-4,\n -0.98374475304879564677e-4,\n 0.15808870322491248884e-3,\n -0.21026444172410488319e-3,\n 0.21743961811521264320e-3,\n -0.16431810653676389022e-3,\n 0.84418223983852743293e-4,\n -0.26190838401581408670e-4,\n 0.36899182659531622704e-5\n];\n\n// Spouge approximation (suitable for large arguments)\nfunction lngamma(z) {\n\n if(z < 0) return Number('0/0');\n var x = p_ln[0];\n for(var i = p_ln.length - 1; i > 0; --i) x += p_ln[i] / (z + i);\n var t = z + g_ln + 0.5;\n return .5*Math.log(2*Math.PI)+(z+.5)*Math.log(t)-t+Math.log(x)-Math.log(z);\n}\n\nmodule.exports = function gamma (z) {\n if (z < 0.5) {\n return Math.PI / (Math.sin(Math.PI * z) * gamma(1 - z));\n }\n else if(z > 100) return Math.exp(lngamma(z));\n else {\n z -= 1;\n var x = p[0];\n for (var i = 1; i < g + 2; i++) {\n x += p[i] / (z + i);\n }\n var t = z + g + 0.5;\n\n return Math.sqrt(2 * Math.PI)\n * Math.pow(t, z + 0.5)\n * Math.exp(-t)\n * x\n ;\n }\n};\n\nmodule.exports.log = lngamma;\n\n\n/***/ }),\n\n/***/ \"69f3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(\"7f9a\");\nvar global = __webpack_require__(\"da84\");\nvar isObject = __webpack_require__(\"861d\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar objectHas = __webpack_require__(\"5135\");\nvar sharedKey = __webpack_require__(\"f772\");\nvar hiddenKeys = __webpack_require__(\"d012\");\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n\n/***/ \"6a08\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n// Requirements\n// ============\nvar wrap = __webpack_require__(\"0a3e\").wrap;\nvar hasColorscale = __webpack_require__(\"215c\").hasColorscale;\nvar colorscaleCalc = __webpack_require__(\"3aa8\");\nvar filterUnique = __webpack_require__(\"5567\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar Lib = __webpack_require__(\"fc26\");\n\n/**\n * Create a wrapped ParcatsModel object from trace\n *\n * Note: trace defaults have already been applied\n * @param {Object} gd\n * @param {Object} trace\n * @return {Array.}\n */\nmodule.exports = function calc(gd, trace) {\n var visibleDims = Lib.filterVisible(trace.dimensions);\n\n if(visibleDims.length === 0) return [];\n\n var uniqueInfoDims = visibleDims.map(function(dim) {\n var categoryValues;\n if(dim.categoryorder === 'trace') {\n // Use order of first occurrence in trace\n categoryValues = null;\n } else if(dim.categoryorder === 'array') {\n // Use categories specified in `categoryarray` first,\n // then add extra to the end in trace order\n categoryValues = dim.categoryarray;\n } else {\n // Get all categories up front so we can order them\n // Should we check for numbers as sort numerically?\n categoryValues = filterUnique(dim.values).sort();\n if(dim.categoryorder === 'category descending') {\n categoryValues = categoryValues.reverse();\n }\n }\n return getUniqueInfo(dim.values, categoryValues);\n });\n\n var counts,\n count,\n totalCount;\n if(Lib.isArrayOrTypedArray(trace.counts)) {\n counts = trace.counts;\n } else {\n counts = [trace.counts];\n }\n\n validateDimensionDisplayInds(visibleDims);\n\n visibleDims.forEach(function(dim, dimInd) {\n validateCategoryProperties(dim, uniqueInfoDims[dimInd]);\n });\n\n // Handle path colors\n // ------------------\n var line = trace.line;\n var markerColorscale;\n\n // Process colorscale\n if(line) {\n if(hasColorscale(trace, 'line')) {\n colorscaleCalc(gd, trace, {\n vals: trace.line.color,\n containerStr: 'line',\n cLetter: 'c'\n });\n }\n markerColorscale = Drawing.tryColorscale(line);\n } else {\n markerColorscale = Lib.identity;\n }\n\n // Build color generation function\n function getMarkerColorInfo(index) {\n var value, rawColor;\n if(Lib.isArrayOrTypedArray(line.color)) {\n value = line.color[index % line.color.length];\n rawColor = value;\n } else {\n value = line.color;\n }\n\n return {color: markerColorscale(value), rawColor: rawColor};\n }\n\n // Number of values and counts\n // ---------------------------\n var numValues = visibleDims[0].values.length;\n\n // Build path info\n // ---------------\n // Mapping from category inds to PathModel objects\n var pathModels = {};\n\n // Category inds array for each dimension\n var categoryIndsDims = uniqueInfoDims.map(function(di) {return di.inds;});\n\n // Initialize total count\n totalCount = 0;\n var valueInd;\n var d;\n\n for(valueInd = 0; valueInd < numValues; valueInd++) {\n // Category inds for this input value across dimensions\n var categoryIndsPath = [];\n for(d = 0; d < categoryIndsDims.length; d++) {\n categoryIndsPath.push(categoryIndsDims[d][valueInd]);\n }\n\n // Count\n count = counts[valueInd % counts.length];\n\n // Update total count\n totalCount += count;\n\n // Path color\n var pathColorInfo = getMarkerColorInfo(valueInd);\n\n // path key\n var pathKey = categoryIndsPath + '-' + pathColorInfo.rawColor;\n\n // Create / Update PathModel\n if(pathModels[pathKey] === undefined) {\n pathModels[pathKey] = createPathModel(categoryIndsPath,\n pathColorInfo.color,\n pathColorInfo.rawColor);\n }\n updatePathModel(pathModels[pathKey], valueInd, count);\n }\n\n var dimensionModels = visibleDims.map(function(di, i) {\n return createDimensionModel(i, di._index, di._displayindex, di.label, totalCount);\n });\n\n\n for(valueInd = 0; valueInd < numValues; valueInd++) {\n count = counts[valueInd % counts.length];\n\n for(d = 0; d < dimensionModels.length; d++) {\n var containerInd = dimensionModels[d].containerInd;\n var catInd = uniqueInfoDims[d].inds[valueInd];\n var cats = dimensionModels[d].categories;\n\n if(cats[catInd] === undefined) {\n var catValue = trace.dimensions[containerInd]._categoryarray[catInd];\n var catLabel = trace.dimensions[containerInd]._ticktext[catInd];\n cats[catInd] = createCategoryModel(d, catInd, catValue, catLabel);\n }\n\n updateCategoryModel(cats[catInd], valueInd, count);\n }\n }\n\n // Compute unique\n return wrap(createParcatsModel(dimensionModels, pathModels, totalCount));\n};\n\n// Models\n// ======\n\n// Parcats Model\n// -------------\n/**\n * @typedef {Object} ParcatsModel\n * Object containing calculated information about a parcats trace\n *\n * @property {Array.} dimensions\n * Array of dimension models\n * @property {Object.} paths\n * Dictionary from category inds string (e.g. \"1,2,1,1\") to path model\n * @property {Number} maxCats\n * The maximum number of categories of any dimension in the diagram\n * @property {Number} count\n * Total number of input values\n * @property {Object} trace\n */\n\n/**\n * Create and new ParcatsModel object\n * @param {Array.} dimensions\n * @param {Object.} paths\n * @param {Number} count\n * @return {ParcatsModel}\n */\nfunction createParcatsModel(dimensions, paths, count) {\n var maxCats = dimensions\n .map(function(d) {return d.categories.length;})\n .reduce(function(v1, v2) {return Math.max(v1, v2);});\n return {dimensions: dimensions, paths: paths, trace: undefined, maxCats: maxCats, count: count};\n}\n\n// Dimension Model\n// ---------------\n/**\n * @typedef {Object} DimensionModel\n * Object containing calculated information about a single dimension\n *\n * @property {Number} dimensionInd\n * The index of this dimension among the *visible* dimensions\n * @property {Number} containerInd\n * The index of this dimension in the original dimensions container,\n * irrespective of dimension visibility\n * @property {Number} displayInd\n * The display index of this dimension (where 0 is the left most dimension)\n * @property {String} dimensionLabel\n * The label of this dimension\n * @property {Number} count\n * Total number of input values\n * @property {Array.} categories\n * @property {Number|null} dragX\n * The x position of dimension that is currently being dragged. null if not being dragged\n */\n\n/**\n * Create and new DimensionModel object with an empty categories array\n * @param {Number} dimensionInd\n * @param {Number} containerInd\n * @param {Number} displayInd\n * @param {String} dimensionLabel\n * @param {Number} count\n * Total number of input values\n * @return {DimensionModel}\n */\nfunction createDimensionModel(dimensionInd, containerInd, displayInd, dimensionLabel, count) {\n return {\n dimensionInd: dimensionInd,\n containerInd: containerInd,\n displayInd: displayInd,\n dimensionLabel: dimensionLabel,\n count: count,\n categories: [],\n dragX: null\n };\n}\n\n// Category Model\n// --------------\n/**\n * @typedef {Object} CategoryModel\n * Object containing calculated information about a single category.\n *\n * @property {Number} dimensionInd\n * The index of this categories dimension\n * @property {Number} categoryInd\n * The index of this category\n * @property {Number} displayInd\n * The display index of this category (where 0 is the topmost category)\n * @property {String} categoryLabel\n * The name of this category\n * @property categoryValue: Raw value of the category\n * @property {Array} valueInds\n * Array of indices (into the original value array) of all samples in this category\n * @property {Number} count\n * The number of elements from the original array in this path\n * @property {Number|null} dragY\n * The y position of category that is currently being dragged. null if not being dragged\n */\n\n/**\n * Create and return a new CategoryModel object\n * @param {Number} dimensionInd\n * @param {Number} categoryInd\n * The display index of this category (where 0 is the topmost category)\n * @param {String} categoryValue\n * @param {String} categoryLabel\n * @return {CategoryModel}\n */\nfunction createCategoryModel(dimensionInd, categoryInd, categoryValue, categoryLabel) {\n return {\n dimensionInd: dimensionInd,\n categoryInd: categoryInd,\n categoryValue: categoryValue,\n displayInd: categoryInd,\n categoryLabel: categoryLabel,\n valueInds: [],\n count: 0,\n dragY: null\n };\n}\n\n/**\n * Update a CategoryModel object with a new value index\n * Note: The calling parameter is modified in place.\n *\n * @param {CategoryModel} categoryModel\n * @param {Number} valueInd\n * @param {Number} count\n */\nfunction updateCategoryModel(categoryModel, valueInd, count) {\n categoryModel.valueInds.push(valueInd);\n categoryModel.count += count;\n}\n\n\n// Path Model\n// ----------\n/**\n * @typedef {Object} PathModel\n * Object containing calculated information about the samples in a path.\n *\n * @property {Array} categoryInds\n * Array of category indices for each dimension (length `numDimensions`)\n * @param {String} pathColor\n * Color of this path. (Note: Any colorscaling has already taken place)\n * @property {Array} valueInds\n * Array of indices (into the original value array) of all samples in this path\n * @property {Number} count\n * The number of elements from the original array in this path\n * @property {String} color\n * The path's color (ass CSS color string)\n * @property rawColor\n * The raw color value specified by the user. May be a CSS color string or a Number\n */\n\n/**\n * Create and return a new PathModel object\n * @param {Array} categoryInds\n * @param color\n * @param rawColor\n * @return {PathModel}\n */\nfunction createPathModel(categoryInds, color, rawColor) {\n return {\n categoryInds: categoryInds,\n color: color,\n rawColor: rawColor,\n valueInds: [],\n count: 0\n };\n}\n\n/**\n * Update a PathModel object with a new value index\n * Note: The calling parameter is modified in place.\n *\n * @param {PathModel} pathModel\n * @param {Number} valueInd\n * @param {Number} count\n */\nfunction updatePathModel(pathModel, valueInd, count) {\n pathModel.valueInds.push(valueInd);\n pathModel.count += count;\n}\n\n// Unique calculations\n// ===================\n/**\n * @typedef {Object} UniqueInfo\n * Object containing information about the unique values of an input array\n *\n * @property {Array} uniqueValues\n * The unique values in the input array\n * @property {Array} uniqueCounts\n * The number of times each entry in uniqueValues occurs in input array.\n * This has the same length as `uniqueValues`\n * @property {Array} inds\n * Indices into uniqueValues that would reproduce original input array\n */\n\n/**\n * Compute unique value information for an array\n *\n * IMPORTANT: Note that values are considered unique\n * if their string representations are unique.\n *\n * @param {Array} values\n * @param {Array|undefined} uniqueValues\n * Array of expected unique values. The uniqueValues property of the resulting UniqueInfo object will begin with\n * these entries. Entries are included even if there are zero occurrences in the values array. Entries found in\n * the values array that are not present in uniqueValues will be included at the end of the array in the\n * UniqueInfo object.\n * @return {UniqueInfo}\n */\nfunction getUniqueInfo(values, uniqueValues) {\n // Initialize uniqueValues if not specified\n if(uniqueValues === undefined || uniqueValues === null) {\n uniqueValues = [];\n } else {\n // Shallow copy so append below doesn't alter input array\n uniqueValues = uniqueValues.map(function(e) {return e;});\n }\n\n // Initialize Variables\n var uniqueValueCounts = {};\n var uniqueValueInds = {};\n var inds = [];\n\n // Initialize uniqueValueCounts and\n uniqueValues.forEach(function(uniqueVal, valInd) {\n uniqueValueCounts[uniqueVal] = 0;\n uniqueValueInds[uniqueVal] = valInd;\n });\n\n // Compute the necessary unique info in a single pass\n for(var i = 0; i < values.length; i++) {\n var item = values[i];\n var itemInd;\n\n if(uniqueValueCounts[item] === undefined) {\n // This item has a previously unseen value\n uniqueValueCounts[item] = 1;\n itemInd = uniqueValues.push(item) - 1;\n uniqueValueInds[item] = itemInd;\n } else {\n // Increment count for this item\n uniqueValueCounts[item]++;\n itemInd = uniqueValueInds[item];\n }\n inds.push(itemInd);\n }\n\n // Build UniqueInfo\n var uniqueCounts = uniqueValues.map(function(v) { return uniqueValueCounts[v]; });\n\n return {\n uniqueValues: uniqueValues,\n uniqueCounts: uniqueCounts,\n inds: inds\n };\n}\n\n\n/**\n * Validate the requested display order for the dimensions.\n * If the display order is a permutation of 0 through dimensions.length - 1, link to _displayindex\n * Otherwise, replace the display order with the dimension order\n * @param {Object} trace\n */\nfunction validateDimensionDisplayInds(visibleDims) {\n var displayInds = visibleDims.map(function(d) { return d.displayindex; });\n var i;\n\n if(isRangePermutation(displayInds)) {\n for(i = 0; i < visibleDims.length; i++) {\n visibleDims[i]._displayindex = visibleDims[i].displayindex;\n }\n } else {\n for(i = 0; i < visibleDims.length; i++) {\n visibleDims[i]._displayindex = i;\n }\n }\n}\n\n\n/**\n * Update category properties based on the unique values found for this dimension\n * @param {Object} dim\n * @param {UniqueInfo} uniqueInfoDim\n */\nfunction validateCategoryProperties(dim, uniqueInfoDim) {\n // Update categoryarray\n dim._categoryarray = uniqueInfoDim.uniqueValues;\n\n // Handle ticktext\n if(dim.ticktext === null || dim.ticktext === undefined) {\n dim._ticktext = [];\n } else {\n // Shallow copy to avoid modifying input array\n dim._ticktext = dim.ticktext.slice();\n }\n\n // Extend ticktext with elements from uniqueInfoDim.uniqueValues\n for(var i = dim._ticktext.length; i < uniqueInfoDim.uniqueValues.length; i++) {\n dim._ticktext.push(uniqueInfoDim.uniqueValues[i]);\n }\n}\n\n/**\n * Determine whether an array contains a permutation of the integers from 0 to the array's length - 1\n * @param {Array} inds\n * @return {boolean}\n */\nfunction isRangePermutation(inds) {\n var indsSpecified = new Array(inds.length);\n\n for(var i = 0; i < inds.length; i++) {\n // Check for out of bounds\n if(inds[i] < 0 || inds[i] >= inds.length) {\n return false;\n }\n\n // Check for collisions with already specified index\n if(indsSpecified[inds[i]] !== undefined) {\n return false;\n }\n\n indsSpecified[inds[i]] = true;\n }\n\n // Nothing out of bounds and no collisions. We have a permutation\n return true;\n}\n\n\n/***/ }),\n\n/***/ \"6a25\":\n/***/ (function(module, exports) {\n\nmodule.exports = [\r\n '<<='\r\n , '>>='\r\n , '++'\r\n , '--'\r\n , '<<'\r\n , '>>'\r\n , '<='\r\n , '>='\r\n , '=='\r\n , '!='\r\n , '&&'\r\n , '||'\r\n , '+='\r\n , '-='\r\n , '*='\r\n , '/='\r\n , '%='\r\n , '&='\r\n , '^^'\r\n , '^='\r\n , '|='\r\n , '('\r\n , ')'\r\n , '['\r\n , ']'\r\n , '.'\r\n , '!'\r\n , '~'\r\n , '*'\r\n , '/'\r\n , '%'\r\n , '+'\r\n , '-'\r\n , '<'\r\n , '>'\r\n , '&'\r\n , '^'\r\n , '|'\r\n , '?'\r\n , ':'\r\n , '='\r\n , ','\r\n , ';'\r\n , '{'\r\n , '}'\r\n]\r\n\n\n/***/ }),\n\n/***/ \"6a77\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Axes = __webpack_require__(\"0642\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\nvar _ = Lib._;\n\nmodule.exports = function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = Axes.getFromId(gd, trace.xaxis || 'x');\n var ya = Axes.getFromId(gd, trace.yaxis || 'y');\n var cd = [];\n\n // N.B. violin reuses same Box.calc\n var numKey = trace.type === 'violin' ? '_numViolins' : '_numBoxes';\n\n var i, j;\n var valAxis, valLetter;\n var posAxis, posLetter;\n\n if(trace.orientation === 'h') {\n valAxis = xa;\n valLetter = 'x';\n posAxis = ya;\n posLetter = 'y';\n } else {\n valAxis = ya;\n valLetter = 'y';\n posAxis = xa;\n posLetter = 'x';\n }\n\n var posArray = getPos(trace, posLetter, posAxis, fullLayout[numKey]);\n var dv = Lib.distinctVals(posArray);\n var posDistinct = dv.vals;\n var dPos = dv.minDiff / 2;\n\n // item in trace calcdata\n var cdi;\n // array of {v: v, i, i} sample pts\n var pts;\n // values of the `pts` array of objects\n var boxVals;\n // length of sample\n var N;\n // single sample point\n var pt;\n // single sample value\n var v;\n\n // filter function for outlier pts\n // outlier definition based on http://www.physics.csbsju.edu/stats/box2.html\n var ptFilterFn = (trace.boxpoints || trace.points) === 'all' ?\n Lib.identity :\n function(pt) { return (pt.v < cdi.lf || pt.v > cdi.uf); };\n\n if(trace._hasPreCompStats) {\n var valArrayRaw = trace[valLetter];\n var d2c = function(k) { return valAxis.d2c((trace[k] || [])[i]); };\n var minVal = Infinity;\n var maxVal = -Infinity;\n\n for(i = 0; i < trace._length; i++) {\n var posi = posArray[i];\n if(!isNumeric(posi)) continue;\n\n cdi = {};\n cdi.pos = cdi[posLetter] = posi;\n\n cdi.q1 = d2c('q1');\n cdi.med = d2c('median');\n cdi.q3 = d2c('q3');\n\n pts = [];\n if(valArrayRaw && Lib.isArrayOrTypedArray(valArrayRaw[i])) {\n for(j = 0; j < valArrayRaw[i].length; j++) {\n v = valAxis.d2c(valArrayRaw[i][j]);\n if(v !== BADNUM) {\n pt = {v: v, i: [i, j]};\n arraysToCalcdata(pt, trace, [i, j]);\n pts.push(pt);\n }\n }\n }\n cdi.pts = pts.sort(sortByVal);\n boxVals = cdi[valLetter] = pts.map(extractVal);\n N = boxVals.length;\n\n if(cdi.med !== BADNUM && cdi.q1 !== BADNUM && cdi.q3 !== BADNUM &&\n cdi.med >= cdi.q1 && cdi.q3 >= cdi.med\n ) {\n var lf = d2c('lowerfence');\n cdi.lf = (lf !== BADNUM && lf <= cdi.q1) ?\n lf :\n computeLowerFence(cdi, boxVals, N);\n\n var uf = d2c('upperfence');\n cdi.uf = (uf !== BADNUM && uf >= cdi.q3) ?\n uf :\n computeUpperFence(cdi, boxVals, N);\n\n var mean = d2c('mean');\n cdi.mean = (mean !== BADNUM) ?\n mean :\n (N ? Lib.mean(boxVals, N) : (cdi.q1 + cdi.q3) / 2);\n\n var sd = d2c('sd');\n cdi.sd = (mean !== BADNUM && sd >= 0) ?\n sd :\n (N ? Lib.stdev(boxVals, N, cdi.mean) : (cdi.q3 - cdi.q1));\n\n cdi.lo = computeLowerOutlierBound(cdi);\n cdi.uo = computeUpperOutlierBound(cdi);\n\n var ns = d2c('notchspan');\n ns = (ns !== BADNUM && ns > 0) ? ns : computeNotchSpan(cdi, N);\n cdi.ln = cdi.med - ns;\n cdi.un = cdi.med + ns;\n\n var imin = cdi.lf;\n var imax = cdi.uf;\n if(trace.boxpoints && boxVals.length) {\n imin = Math.min(imin, boxVals[0]);\n imax = Math.max(imax, boxVals[N - 1]);\n }\n if(trace.notched) {\n imin = Math.min(imin, cdi.ln);\n imax = Math.max(imax, cdi.un);\n }\n cdi.min = imin;\n cdi.max = imax;\n } else {\n Lib.warn([\n 'Invalid input - make sure that q1 <= median <= q3',\n 'q1 = ' + cdi.q1,\n 'median = ' + cdi.med,\n 'q3 = ' + cdi.q3\n ].join('\\n'));\n\n var v0;\n if(cdi.med !== BADNUM) {\n v0 = cdi.med;\n } else if(cdi.q1 !== BADNUM) {\n if(cdi.q3 !== BADNUM) v0 = (cdi.q1 + cdi.q3) / 2;\n else v0 = cdi.q1;\n } else if(cdi.q3 !== BADNUM) {\n v0 = cdi.q3;\n } else {\n v0 = 0;\n }\n\n // draw box as line segment\n cdi.med = v0;\n cdi.q1 = cdi.q3 = v0;\n cdi.lf = cdi.uf = v0;\n cdi.mean = cdi.sd = v0;\n cdi.ln = cdi.un = v0;\n cdi.min = cdi.max = v0;\n }\n\n minVal = Math.min(minVal, cdi.min);\n maxVal = Math.max(maxVal, cdi.max);\n\n cdi.pts2 = pts.filter(ptFilterFn);\n\n cd.push(cdi);\n }\n\n trace._extremes[valAxis._id] = Axes.findExtremes(valAxis,\n [minVal, maxVal],\n {padded: true}\n );\n } else {\n var valArray = valAxis.makeCalcdata(trace, valLetter);\n var posBins = makeBins(posDistinct, dPos);\n var pLen = posDistinct.length;\n var ptsPerBin = initNestedArray(pLen);\n\n // bin pts info per position bins\n for(i = 0; i < trace._length; i++) {\n v = valArray[i];\n if(!isNumeric(v)) continue;\n\n var n = Lib.findBin(posArray[i], posBins);\n if(n >= 0 && n < pLen) {\n pt = {v: v, i: i};\n arraysToCalcdata(pt, trace, i);\n ptsPerBin[n].push(pt);\n }\n }\n\n var minLowerNotch = Infinity;\n var maxUpperNotch = -Infinity;\n\n var quartilemethod = trace.quartilemethod;\n var usesExclusive = quartilemethod === 'exclusive';\n var usesInclusive = quartilemethod === 'inclusive';\n\n // build calcdata trace items, one item per distinct position\n for(i = 0; i < pLen; i++) {\n if(ptsPerBin[i].length > 0) {\n cdi = {};\n cdi.pos = cdi[posLetter] = posDistinct[i];\n\n pts = cdi.pts = ptsPerBin[i].sort(sortByVal);\n boxVals = cdi[valLetter] = pts.map(extractVal);\n N = boxVals.length;\n\n cdi.min = boxVals[0];\n cdi.max = boxVals[N - 1];\n cdi.mean = Lib.mean(boxVals, N);\n cdi.sd = Lib.stdev(boxVals, N, cdi.mean);\n cdi.med = Lib.interp(boxVals, 0.5);\n\n if((N % 2) && (usesExclusive || usesInclusive)) {\n var lower;\n var upper;\n\n if(usesExclusive) {\n // do NOT include the median in either half\n lower = boxVals.slice(0, N / 2);\n upper = boxVals.slice(N / 2 + 1);\n } else if(usesInclusive) {\n // include the median in either half\n lower = boxVals.slice(0, N / 2 + 1);\n upper = boxVals.slice(N / 2);\n }\n\n cdi.q1 = Lib.interp(lower, 0.5);\n cdi.q3 = Lib.interp(upper, 0.5);\n } else {\n cdi.q1 = Lib.interp(boxVals, 0.25);\n cdi.q3 = Lib.interp(boxVals, 0.75);\n }\n\n // lower and upper fences\n cdi.lf = computeLowerFence(cdi, boxVals, N);\n cdi.uf = computeUpperFence(cdi, boxVals, N);\n\n // lower and upper outliers bounds\n cdi.lo = computeLowerOutlierBound(cdi);\n cdi.uo = computeUpperOutlierBound(cdi);\n\n // lower and upper notches\n var mci = computeNotchSpan(cdi, N);\n cdi.ln = cdi.med - mci;\n cdi.un = cdi.med + mci;\n minLowerNotch = Math.min(minLowerNotch, cdi.ln);\n maxUpperNotch = Math.max(maxUpperNotch, cdi.un);\n\n cdi.pts2 = pts.filter(ptFilterFn);\n\n cd.push(cdi);\n }\n }\n\n trace._extremes[valAxis._id] = Axes.findExtremes(valAxis,\n trace.notched ? valArray.concat([minLowerNotch, maxUpperNotch]) : valArray,\n {padded: true}\n );\n }\n\n calcSelection(cd, trace);\n\n if(cd.length > 0) {\n cd[0].t = {\n num: fullLayout[numKey],\n dPos: dPos,\n posLetter: posLetter,\n valLetter: valLetter,\n labels: {\n med: _(gd, 'median:'),\n min: _(gd, 'min:'),\n q1: _(gd, 'q1:'),\n q3: _(gd, 'q3:'),\n max: _(gd, 'max:'),\n mean: trace.boxmean === 'sd' ? _(gd, 'mean ± σ:') : _(gd, 'mean:'),\n lf: _(gd, 'lower fence:'),\n uf: _(gd, 'upper fence:')\n }\n };\n\n fullLayout[numKey]++;\n return cd;\n } else {\n return [{t: {empty: true}}];\n }\n};\n\n// In vertical (horizontal) box plots:\n// if no x (y) data, use x0 (y0), or name\n// so if you want one box\n// per trace, set x0 (y0) to the x (y) value or category for this trace\n// (or set x (y) to a constant array matching y (x))\nfunction getPos(trace, posLetter, posAxis, num) {\n var hasPosArray = posLetter in trace;\n var hasPos0 = posLetter + '0' in trace;\n var hasPosStep = 'd' + posLetter in trace;\n\n if(hasPosArray || (hasPos0 && hasPosStep)) {\n return posAxis.makeCalcdata(trace, posLetter);\n }\n\n var pos0;\n if(hasPos0) {\n pos0 = trace[posLetter + '0'];\n } else if('name' in trace && (\n posAxis.type === 'category' || (\n isNumeric(trace.name) &&\n ['linear', 'log'].indexOf(posAxis.type) !== -1\n ) || (\n Lib.isDateTime(trace.name) &&\n posAxis.type === 'date'\n )\n )) {\n pos0 = trace.name;\n } else {\n pos0 = num;\n }\n\n var pos0c = posAxis.type === 'multicategory' ?\n posAxis.r2c_just_indices(pos0) :\n posAxis.d2c(pos0, 0, trace[posLetter + 'calendar']);\n\n var len = trace._length;\n var out = new Array(len);\n for(var i = 0; i < len; i++) out[i] = pos0c;\n\n return out;\n}\n\nfunction makeBins(x, dx) {\n var len = x.length;\n var bins = new Array(len + 1);\n\n for(var i = 0; i < len; i++) {\n bins[i] = x[i] - dx;\n }\n bins[len] = x[len - 1] + dx;\n\n return bins;\n}\n\nfunction initNestedArray(len) {\n var arr = new Array(len);\n for(var i = 0; i < len; i++) {\n arr[i] = [];\n }\n return arr;\n}\n\nvar TRACE_TO_CALC = {\n text: 'tx',\n hovertext: 'htx'\n};\n\nfunction arraysToCalcdata(pt, trace, ptNumber) {\n for(var k in TRACE_TO_CALC) {\n if(Lib.isArrayOrTypedArray(trace[k])) {\n if(Array.isArray(ptNumber)) {\n if(Lib.isArrayOrTypedArray(trace[k][ptNumber[0]])) {\n pt[TRACE_TO_CALC[k]] = trace[k][ptNumber[0]][ptNumber[1]];\n }\n } else {\n pt[TRACE_TO_CALC[k]] = trace[k][ptNumber];\n }\n }\n }\n}\n\nfunction calcSelection(cd, trace) {\n if(Lib.isArrayOrTypedArray(trace.selectedpoints)) {\n for(var i = 0; i < cd.length; i++) {\n var pts = cd[i].pts || [];\n var ptNumber2cdIndex = {};\n\n for(var j = 0; j < pts.length; j++) {\n ptNumber2cdIndex[pts[j].i] = j;\n }\n\n Lib.tagSelected(pts, trace, ptNumber2cdIndex);\n }\n }\n}\n\nfunction sortByVal(a, b) { return a.v - b.v; }\n\nfunction extractVal(o) { return o.v; }\n\n// last point below 1.5 * IQR\nfunction computeLowerFence(cdi, boxVals, N) {\n if(N === 0) return cdi.q1;\n return Math.min(\n cdi.q1,\n boxVals[Math.min(\n Lib.findBin(2.5 * cdi.q1 - 1.5 * cdi.q3, boxVals, true) + 1,\n N - 1\n )]\n );\n}\n\n// last point above 1.5 * IQR\nfunction computeUpperFence(cdi, boxVals, N) {\n if(N === 0) return cdi.q3;\n return Math.max(\n cdi.q3,\n boxVals[Math.max(\n Lib.findBin(2.5 * cdi.q3 - 1.5 * cdi.q1, boxVals),\n 0\n )]\n );\n}\n\n// 3 IQR below (don't clip to max/min,\n// this is only for discriminating suspected & far outliers)\nfunction computeLowerOutlierBound(cdi) {\n return 4 * cdi.q1 - 3 * cdi.q3;\n}\n\n// 3 IQR above (don't clip to max/min,\n// this is only for discriminating suspected & far outliers)\nfunction computeUpperOutlierBound(cdi) {\n return 4 * cdi.q3 - 3 * cdi.q1;\n}\n\n// 95% confidence intervals for median\nfunction computeNotchSpan(cdi, N) {\n if(N === 0) return 0;\n return 1.57 * (cdi.q3 - cdi.q1) / Math.sqrt(N);\n}\n\n\n/***/ }),\n\n/***/ \"6aa3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar wrap = __webpack_require__(\"0a3e\").wrap;\n\nmodule.exports = function calc() {\n // we don't actually need to include the trace here, since that will be added\n // by Plots.doCalcdata, and that's all we actually need later.\n return wrap({});\n};\n\n\n/***/ }),\n\n/***/ \"6add\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar id2name = __webpack_require__(\"3c1c\").id2name;\nvar scaleZoom = __webpack_require__(\"9759\");\nvar makePadFn = __webpack_require__(\"ce56\").makePadFn;\nvar concatExtremes = __webpack_require__(\"ce56\").concatExtremes;\n\nvar ALMOST_EQUAL = __webpack_require__(\"e806\").ALMOST_EQUAL;\nvar FROM_BL = __webpack_require__(\"63dc\").FROM_BL;\n\nexports.handleConstraintDefaults = function(containerIn, containerOut, coerce, opts) {\n var allAxisIds = opts.allAxisIds;\n var layoutOut = opts.layoutOut;\n var scaleanchorDflt = opts.scaleanchorDflt;\n var constrainDflt = opts.constrainDflt;\n var constraintGroups = layoutOut._axisConstraintGroups;\n var matchGroups = layoutOut._axisMatchGroups;\n var axId = containerOut._id;\n var axLetter = axId.charAt(0);\n var splomStash = ((layoutOut._splomAxes || {})[axLetter] || {})[axId] || {};\n var thisID = containerOut._id;\n var letter = thisID.charAt(0);\n\n // coerce the constraint mechanics even if this axis has no scaleanchor\n // because it may be the anchor of another axis.\n var constrain = coerce('constrain', constrainDflt);\n Lib.coerce(containerIn, containerOut, {\n constraintoward: {\n valType: 'enumerated',\n values: letter === 'x' ? ['left', 'center', 'right'] : ['bottom', 'middle', 'top'],\n dflt: letter === 'x' ? 'center' : 'middle'\n }\n }, 'constraintoward');\n\n var matches, matchOpts;\n\n if((containerIn.matches || splomStash.matches) && !containerOut.fixedrange) {\n matchOpts = getConstraintOpts(matchGroups, thisID, allAxisIds, layoutOut);\n matches = Lib.coerce(containerIn, containerOut, {\n matches: {\n valType: 'enumerated',\n values: matchOpts.linkableAxes || [],\n dflt: splomStash.matches\n }\n }, 'matches');\n }\n\n // 'matches' wins over 'scaleanchor' (for now)\n var scaleanchor, scaleOpts;\n\n if(!matches &&\n !(containerOut.fixedrange && constrain !== 'domain') &&\n (containerIn.scaleanchor || scaleanchorDflt)\n ) {\n scaleOpts = getConstraintOpts(constraintGroups, thisID, allAxisIds, layoutOut, constrain);\n scaleanchor = Lib.coerce(containerIn, containerOut, {\n scaleanchor: {\n valType: 'enumerated',\n values: scaleOpts.linkableAxes || []\n }\n }, 'scaleanchor', scaleanchorDflt);\n }\n\n if(matches) {\n delete containerOut.constrain;\n updateConstraintGroups(matchGroups, matchOpts.thisGroup, thisID, matches, 1);\n } else if(allAxisIds.indexOf(containerIn.matches) !== -1) {\n Lib.warn('ignored ' + containerOut._name + '.matches: \"' +\n containerIn.matches + '\" to avoid either an infinite loop ' +\n 'or because the target axis has fixed range.');\n }\n\n if(scaleanchor) {\n var scaleratio = coerce('scaleratio');\n\n // TODO: I suppose I could do attribute.min: Number.MIN_VALUE to avoid zero,\n // but that seems hacky. Better way to say \"must be a positive number\"?\n // Of course if you use several super-tiny values you could eventually\n // force a product of these to zero and all hell would break loose...\n // Likewise with super-huge values.\n if(!scaleratio) scaleratio = containerOut.scaleratio = 1;\n\n updateConstraintGroups(constraintGroups, scaleOpts.thisGroup, thisID, scaleanchor, scaleratio);\n } else if(allAxisIds.indexOf(containerIn.scaleanchor) !== -1) {\n Lib.warn('ignored ' + containerOut._name + '.scaleanchor: \"' +\n containerIn.scaleanchor + '\" to avoid either an infinite loop ' +\n 'and possibly inconsistent scaleratios, or because the target ' +\n 'axis has fixed range or this axis declares a *matches* constraint.');\n }\n};\n\n// If this axis is already part of a constraint group, we can't\n// scaleanchor any other axis in that group, or we'd make a loop.\n// Filter allAxisIds to enforce this, also matching axis types.\nfunction getConstraintOpts(groups, thisID, allAxisIds, layoutOut, constrain) {\n var doesNotConstrainRange = constrain !== 'range';\n var thisType = layoutOut[id2name(thisID)].type;\n var i, j, idj, axj;\n\n var linkableAxes = [];\n for(j = 0; j < allAxisIds.length; j++) {\n idj = allAxisIds[j];\n if(idj === thisID) continue;\n\n axj = layoutOut[id2name(idj)];\n if(axj.type === thisType) {\n if(!axj.fixedrange) {\n linkableAxes.push(idj);\n } else if(doesNotConstrainRange && axj.anchor) {\n // allow domain constraints on subplots where\n // BOTH axes have fixedrange:true and constrain:domain\n var counterAxj = layoutOut[id2name(axj.anchor)];\n if(counterAxj.fixedrange) {\n linkableAxes.push(idj);\n }\n }\n }\n }\n\n for(i = 0; i < groups.length; i++) {\n if(groups[i][thisID]) {\n var thisGroup = groups[i];\n\n var linkableAxesNoLoops = [];\n for(j = 0; j < linkableAxes.length; j++) {\n idj = linkableAxes[j];\n if(!thisGroup[idj]) linkableAxesNoLoops.push(idj);\n }\n return {linkableAxes: linkableAxesNoLoops, thisGroup: thisGroup};\n }\n }\n\n return {linkableAxes: linkableAxes, thisGroup: null};\n}\n\n/*\n * Add this axis to the axis constraint groups, which is the collection\n * of axes that are all constrained together on scale.\n *\n * constraintGroups: a list of objects. each object is\n * {axis_id: scale_within_group}, where scale_within_group is\n * only important relative to the rest of the group, and defines\n * the relative scales between all axes in the group\n *\n * thisGroup: the group the current axis is already in\n * thisID: the id if the current axis\n * scaleanchor: the id of the axis to scale it with\n * scaleratio: the ratio of this axis to the scaleanchor axis\n */\nfunction updateConstraintGroups(constraintGroups, thisGroup, thisID, scaleanchor, scaleratio) {\n var i, j, groupi, keyj, thisGroupIndex;\n\n if(thisGroup === null) {\n thisGroup = {};\n thisGroup[thisID] = 1;\n thisGroupIndex = constraintGroups.length;\n constraintGroups.push(thisGroup);\n } else {\n thisGroupIndex = constraintGroups.indexOf(thisGroup);\n }\n\n var thisGroupKeys = Object.keys(thisGroup);\n\n // we know that this axis isn't in any other groups, but we don't know\n // about the scaleanchor axis. If it is, we need to merge the groups.\n for(i = 0; i < constraintGroups.length; i++) {\n groupi = constraintGroups[i];\n if(i !== thisGroupIndex && groupi[scaleanchor]) {\n var baseScale = groupi[scaleanchor];\n for(j = 0; j < thisGroupKeys.length; j++) {\n keyj = thisGroupKeys[j];\n groupi[keyj] = baseScale * scaleratio * thisGroup[keyj];\n }\n constraintGroups.splice(thisGroupIndex, 1);\n return;\n }\n }\n\n // otherwise, we insert the new scaleanchor axis as the base scale (1)\n // in its group, and scale the rest of the group to it\n if(scaleratio !== 1) {\n for(j = 0; j < thisGroupKeys.length; j++) {\n thisGroup[thisGroupKeys[j]] *= scaleratio;\n }\n }\n thisGroup[scaleanchor] = 1;\n}\n\nexports.enforce = function enforce(gd) {\n var fullLayout = gd._fullLayout;\n var constraintGroups = fullLayout._axisConstraintGroups || [];\n\n var i, j, axisID, ax, normScale, mode, factor;\n\n for(i = 0; i < constraintGroups.length; i++) {\n var group = constraintGroups[i];\n var axisIDs = Object.keys(group);\n\n var minScale = Infinity;\n var maxScale = 0;\n // mostly matchScale will be the same as minScale\n // ie we expand axis ranges to encompass *everything*\n // that's currently in any of their ranges, but during\n // autorange of a subset of axes we will ignore other\n // axes for this purpose.\n var matchScale = Infinity;\n var normScales = {};\n var axes = {};\n var hasAnyDomainConstraint = false;\n\n // find the (normalized) scale of each axis in the group\n for(j = 0; j < axisIDs.length; j++) {\n axisID = axisIDs[j];\n axes[axisID] = ax = fullLayout[id2name(axisID)];\n\n if(ax._inputDomain) ax.domain = ax._inputDomain.slice();\n else ax._inputDomain = ax.domain.slice();\n\n if(!ax._inputRange) ax._inputRange = ax.range.slice();\n\n // set axis scale here so we can use _m rather than\n // having to calculate it from length and range\n ax.setScale();\n\n // abs: inverted scales still satisfy the constraint\n normScales[axisID] = normScale = Math.abs(ax._m) / group[axisID];\n minScale = Math.min(minScale, normScale);\n if(ax.constrain === 'domain' || !ax._constraintShrinkable) {\n matchScale = Math.min(matchScale, normScale);\n }\n\n // this has served its purpose, so remove it\n delete ax._constraintShrinkable;\n maxScale = Math.max(maxScale, normScale);\n\n if(ax.constrain === 'domain') hasAnyDomainConstraint = true;\n }\n\n // Do we have a constraint mismatch? Give a small buffer for rounding errors\n if(minScale > ALMOST_EQUAL * maxScale && !hasAnyDomainConstraint) continue;\n\n // now increase any ranges we need to until all normalized scales are equal\n for(j = 0; j < axisIDs.length; j++) {\n axisID = axisIDs[j];\n normScale = normScales[axisID];\n ax = axes[axisID];\n mode = ax.constrain;\n\n // even if the scale didn't change, if we're shrinking domain\n // we need to recalculate in case `constraintoward` changed\n if(normScale !== matchScale || mode === 'domain') {\n factor = normScale / matchScale;\n\n if(mode === 'range') {\n scaleZoom(ax, factor);\n } else {\n // mode === 'domain'\n\n var inputDomain = ax._inputDomain;\n var domainShrunk = (ax.domain[1] - ax.domain[0]) /\n (inputDomain[1] - inputDomain[0]);\n var rangeShrunk = (ax.r2l(ax.range[1]) - ax.r2l(ax.range[0])) /\n (ax.r2l(ax._inputRange[1]) - ax.r2l(ax._inputRange[0]));\n\n factor /= domainShrunk;\n\n if(factor * rangeShrunk < 1) {\n // we've asked to magnify the axis more than we can just by\n // enlarging the domain - so we need to constrict range\n ax.domain = ax._input.domain = inputDomain.slice();\n scaleZoom(ax, factor);\n continue;\n }\n\n if(rangeShrunk < 1) {\n // the range has previously been constricted by ^^, but we've\n // switched to the domain-constricted regime, so reset range\n ax.range = ax._input.range = ax._inputRange.slice();\n factor *= rangeShrunk;\n }\n\n if(ax.autorange) {\n /*\n * range & factor may need to change because range was\n * calculated for the larger scaling, so some pixel\n * paddings may get cut off when we reduce the domain.\n *\n * This is easier than the regular autorange calculation\n * because we already know the scaling `m`, but we still\n * need to cut out impossible constraints (like\n * annotations with super-long arrows). That's what\n * outerMin/Max are for - if the expansion was going to\n * go beyond the original domain, it must be impossible\n */\n var rl0 = ax.r2l(ax.range[0]);\n var rl1 = ax.r2l(ax.range[1]);\n var rangeCenter = (rl0 + rl1) / 2;\n var rangeMin = rangeCenter;\n var rangeMax = rangeCenter;\n var halfRange = Math.abs(rl1 - rangeCenter);\n // extra tiny bit for rounding errors, in case we actually\n // *are* expanding to the full domain\n var outerMin = rangeCenter - halfRange * factor * 1.0001;\n var outerMax = rangeCenter + halfRange * factor * 1.0001;\n var getPad = makePadFn(ax);\n\n updateDomain(ax, factor);\n var m = Math.abs(ax._m);\n var extremes = concatExtremes(gd, ax);\n var minArray = extremes.min;\n var maxArray = extremes.max;\n var newVal;\n var k;\n\n for(k = 0; k < minArray.length; k++) {\n newVal = minArray[k].val - getPad(minArray[k]) / m;\n if(newVal > outerMin && newVal < rangeMin) {\n rangeMin = newVal;\n }\n }\n\n for(k = 0; k < maxArray.length; k++) {\n newVal = maxArray[k].val + getPad(maxArray[k]) / m;\n if(newVal < outerMax && newVal > rangeMax) {\n rangeMax = newVal;\n }\n }\n\n var domainExpand = (rangeMax - rangeMin) / (2 * halfRange);\n factor /= domainExpand;\n\n rangeMin = ax.l2r(rangeMin);\n rangeMax = ax.l2r(rangeMax);\n ax.range = ax._input.range = (rl0 < rl1) ?\n [rangeMin, rangeMax] : [rangeMax, rangeMin];\n }\n\n updateDomain(ax, factor);\n }\n }\n }\n }\n};\n\n// For use before autoranging, check if this axis was previously constrained\n// by domain but no longer is\nexports.clean = function clean(gd, ax) {\n if(ax._inputDomain) {\n var isConstrained = false;\n var axId = ax._id;\n var constraintGroups = gd._fullLayout._axisConstraintGroups;\n for(var j = 0; j < constraintGroups.length; j++) {\n if(constraintGroups[j][axId]) {\n isConstrained = true;\n break;\n }\n }\n if(!isConstrained || ax.constrain !== 'domain') {\n ax._input.domain = ax.domain = ax._inputDomain;\n delete ax._inputDomain;\n }\n }\n};\n\nfunction updateDomain(ax, factor) {\n var inputDomain = ax._inputDomain;\n var centerFraction = FROM_BL[ax.constraintoward];\n var center = inputDomain[0] + (inputDomain[1] - inputDomain[0]) * centerFraction;\n\n ax.domain = ax._input.domain = [\n center + (inputDomain[0] - center) / factor,\n center + (inputDomain[1] - center) / factor\n ];\n ax.setScale();\n}\n\n\n/***/ }),\n\n/***/ \"6af8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isArray = Array.isArray;\n\n// IE9 fallbacks\n\nvar ab = (typeof ArrayBuffer === 'undefined' || !ArrayBuffer.isView) ?\n {isView: function() { return false; }} :\n ArrayBuffer;\n\nvar dv = (typeof DataView === 'undefined') ?\n function() {} :\n DataView;\n\nfunction isTypedArray(a) {\n return ab.isView(a) && !(a instanceof dv);\n}\nexports.isTypedArray = isTypedArray;\n\nfunction isArrayOrTypedArray(a) {\n return isArray(a) || isTypedArray(a);\n}\nexports.isArrayOrTypedArray = isArrayOrTypedArray;\n\n/*\n * Test whether an input object is 1D.\n *\n * Assumes we already know the object is an array.\n *\n * Looks only at the first element, if the dimensionality is\n * not consistent we won't figure that out here.\n */\nfunction isArray1D(a) {\n return !isArrayOrTypedArray(a[0]);\n}\nexports.isArray1D = isArray1D;\n\n/*\n * Ensures an array has the right amount of storage space. If it doesn't\n * exist, it creates an array. If it does exist, it returns it if too\n * short or truncates it in-place.\n *\n * The goal is to just reuse memory to avoid a bit of excessive garbage\n * collection.\n */\nexports.ensureArray = function(out, n) {\n // TODO: typed array support here? This is only used in\n // traces/carpet/compute_control_points\n if(!isArray(out)) out = [];\n\n // If too long, truncate. (If too short, it will grow\n // automatically so we don't care about that case)\n out.length = n;\n\n return out;\n};\n\n/*\n * TypedArray-compatible concatenation of n arrays\n * if all arrays are the same type it will preserve that type,\n * otherwise it falls back on Array.\n * Also tries to avoid copying, in case one array has zero length\n * But never mutates an existing array\n */\nexports.concat = function() {\n var args = [];\n var allArray = true;\n var totalLen = 0;\n\n var _constructor, arg0, i, argi, posi, leni, out, j;\n\n for(i = 0; i < arguments.length; i++) {\n argi = arguments[i];\n leni = argi.length;\n if(leni) {\n if(arg0) args.push(argi);\n else {\n arg0 = argi;\n posi = leni;\n }\n\n if(isArray(argi)) {\n _constructor = false;\n } else {\n allArray = false;\n if(!totalLen) {\n _constructor = argi.constructor;\n } else if(_constructor !== argi.constructor) {\n // TODO: in principle we could upgrade here,\n // ie keep typed array but convert all to Float64Array?\n _constructor = false;\n }\n }\n\n totalLen += leni;\n }\n }\n\n if(!totalLen) return [];\n if(!args.length) return arg0;\n\n if(allArray) return arg0.concat.apply(arg0, args);\n if(_constructor) {\n // matching typed arrays\n out = new _constructor(totalLen);\n out.set(arg0);\n for(i = 0; i < args.length; i++) {\n argi = args[i];\n out.set(argi, posi);\n posi += argi.length;\n }\n return out;\n }\n\n // mismatched types or Array + typed\n out = new Array(totalLen);\n for(j = 0; j < arg0.length; j++) out[j] = arg0[j];\n for(i = 0; i < args.length; i++) {\n argi = args[i];\n for(j = 0; j < argi.length; j++) out[posi + j] = argi[j];\n posi += j;\n }\n return out;\n};\n\nexports.maxRowLength = function(z) {\n return _rowLength(z, Math.max, 0);\n};\n\nexports.minRowLength = function(z) {\n return _rowLength(z, Math.min, Infinity);\n};\n\nfunction _rowLength(z, fn, len0) {\n if(isArrayOrTypedArray(z)) {\n if(isArrayOrTypedArray(z[0])) {\n var len = len0;\n for(var i = 0; i < z.length; i++) {\n len = fn(len, z[i].length);\n }\n return len;\n } else {\n return z.length;\n }\n }\n return 0;\n}\n\n\n/***/ }),\n\n/***/ \"6b10\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Template = __webpack_require__(\"a651\");\nvar axisIds = __webpack_require__(\"3c1c\");\n\nvar attributes = __webpack_require__(\"8f38\");\nvar oppAxisAttrs = __webpack_require__(\"5844\");\n\nmodule.exports = function handleDefaults(layoutIn, layoutOut, axName) {\n var axIn = layoutIn[axName];\n var axOut = layoutOut[axName];\n\n if(!(axIn.rangeslider || layoutOut._requestRangeslider[axOut._id])) return;\n\n // not super proud of this (maybe store _ in axis object instead\n if(!Lib.isPlainObject(axIn.rangeslider)) {\n axIn.rangeslider = {};\n }\n\n var containerIn = axIn.rangeslider;\n var containerOut = Template.newContainer(axOut, 'rangeslider');\n\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);\n }\n\n var rangeContainerIn, rangeContainerOut;\n function coerceRange(attr, dflt) {\n return Lib.coerce(rangeContainerIn, rangeContainerOut, oppAxisAttrs, attr, dflt);\n }\n\n var visible = coerce('visible');\n if(!visible) return;\n\n coerce('bgcolor', layoutOut.plot_bgcolor);\n coerce('bordercolor');\n coerce('borderwidth');\n coerce('thickness');\n\n coerce('autorange', !axOut.isValidRange(containerIn.range));\n coerce('range');\n\n var subplots = layoutOut._subplots;\n if(subplots) {\n var yIds = subplots.cartesian\n .filter(function(subplotId) {\n return subplotId.substr(0, subplotId.indexOf('y')) === axisIds.name2id(axName);\n })\n .map(function(subplotId) {\n return subplotId.substr(subplotId.indexOf('y'), subplotId.length);\n });\n var yNames = Lib.simpleMap(yIds, axisIds.id2name);\n for(var i = 0; i < yNames.length; i++) {\n var yName = yNames[i];\n\n rangeContainerIn = containerIn[yName] || {};\n rangeContainerOut = Template.newContainer(containerOut, yName, 'yaxis');\n\n var yAxOut = layoutOut[yName];\n\n var rangemodeDflt;\n if(rangeContainerIn.range && yAxOut.isValidRange(rangeContainerIn.range)) {\n rangemodeDflt = 'fixed';\n }\n\n var rangeMode = coerceRange('rangemode', rangemodeDflt);\n if(rangeMode !== 'match') {\n coerceRange('range', yAxOut.range.slice());\n }\n }\n }\n\n // to map back range slider (auto) range\n containerOut._input = containerIn;\n};\n\n\n/***/ }),\n\n/***/ \"6b38\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/** @module gl-util/context */\r\n\r\n\r\nvar pick = __webpack_require__(\"b7d1\")\r\n\r\nmodule.exports = function setContext (o) {\r\n\tif (!o) o = {}\r\n\telse if (typeof o === 'string') o = {container: o}\r\n\r\n\t// HTMLCanvasElement\r\n\tif (isCanvas(o)) {\r\n\t\to = {container: o}\r\n\t}\r\n\t// HTMLElement\r\n\telse if (isElement(o)) {\r\n\t\to = {container: o}\r\n\t}\r\n\t// WebGLContext\r\n\telse if (isContext(o)) {\r\n\t\to = {gl: o}\r\n\t}\r\n\t// options object\r\n\telse {\r\n\t\to = pick(o, {\r\n\t\t\tcontainer: 'container target element el canvas holder parent parentNode wrapper use ref root node',\r\n\t\t\tgl: 'gl context webgl glContext',\r\n\t\t\tattrs: 'attributes attrs contextAttributes',\r\n\t\t\tpixelRatio: 'pixelRatio pxRatio px ratio pxratio pixelratio',\r\n\t\t\twidth: 'w width',\r\n\t\t\theight: 'h height'\r\n\t\t}, true)\r\n\t}\r\n\r\n\tif (!o.pixelRatio) o.pixelRatio = global.pixelRatio || 1\r\n\r\n\t// make sure there is container and canvas\r\n\tif (o.gl) {\r\n\t\treturn o.gl\r\n\t}\r\n\tif (o.canvas) {\r\n\t\to.container = o.canvas.parentNode\r\n\t}\r\n\tif (o.container) {\r\n\t\tif (typeof o.container === 'string') {\r\n\t\t\tvar c = document.querySelector(o.container)\r\n\t\t\tif (!c) throw Error('Element ' + o.container + ' is not found')\r\n\t\t\to.container = c\r\n\t\t}\r\n\t\tif (isCanvas(o.container)) {\r\n\t\t\to.canvas = o.container\r\n\t\t\to.container = o.canvas.parentNode\r\n\t\t}\r\n\t\telse if (!o.canvas) {\r\n\t\t\to.canvas = createCanvas()\r\n\t\t\to.container.appendChild(o.canvas)\r\n\t\t\tresize(o)\r\n\t\t}\r\n\t}\r\n\t// blank new canvas\r\n\telse if (!o.canvas) {\r\n\t\tif (typeof document !== 'undefined') {\r\n\t\t\to.container = document.body || document.documentElement\r\n\t\t\to.canvas = createCanvas()\r\n\t\t\to.container.appendChild(o.canvas)\r\n\t\t\tresize(o)\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthrow Error('Not DOM environment. Use headless-gl.')\r\n\t\t}\r\n\t}\r\n\r\n\t// make sure there is context\r\n\tif (!o.gl) {\r\n\t\ttry {\r\n\t\t\to.gl = o.canvas.getContext('webgl', o.attrs)\r\n\t\t} catch (e) {\r\n\t\t\ttry {\r\n\t\t\t\to.gl = o.canvas.getContext('experimental-webgl', o.attrs)\r\n\t\t\t}\r\n\t\t\tcatch (e) {\r\n\t\t\t\to.gl = o.canvas.getContext('webgl-experimental', o.attrs)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn o.gl\r\n}\r\n\r\n\r\nfunction resize (o) {\r\n\tif (o.container) {\r\n\t\tif (o.container == document.body) {\r\n\t\t\tif (!document.body.style.width) o.canvas.width = o.width || (o.pixelRatio * global.innerWidth)\r\n\t\t\tif (!document.body.style.height) o.canvas.height = o.height || (o.pixelRatio * global.innerHeight)\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvar bounds = o.container.getBoundingClientRect()\r\n\t\t\to.canvas.width = o.width || (bounds.right - bounds.left)\r\n\t\t\to.canvas.height = o.height || (bounds.bottom - bounds.top)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction isCanvas (e) {\r\n\treturn typeof e.getContext === 'function'\r\n\t\t&& 'width' in e\r\n\t\t&& 'height' in e\r\n}\r\n\r\nfunction isElement (e) {\r\n\treturn typeof e.nodeName === 'string' &&\r\n\t\ttypeof e.appendChild === 'function' &&\r\n\t\ttypeof e.getBoundingClientRect === 'function'\r\n}\r\n\r\nfunction isContext (e) {\r\n\treturn typeof e.drawArrays === 'function' ||\r\n\t\ttypeof e.drawElements === 'function'\r\n}\r\n\r\nfunction createCanvas () {\r\n\tvar canvas = document.createElement('canvas')\r\n\tcanvas.style.position = 'absolute'\r\n\tcanvas.style.top = 0\r\n\tcanvas.style.left = 0\r\n\r\n\treturn canvas\r\n}\r\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"6b3c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar createShader = __webpack_require__(\"28dd\")\nvar createBuffer = __webpack_require__(\"efce\")\nvar createVAO = __webpack_require__(\"b205\")\nvar createTexture = __webpack_require__(\"1d5b\")\nvar multiply = __webpack_require__(\"1417\")\nvar invert = __webpack_require__(\"9343\")\nvar ndarray = __webpack_require__(\"b5bb\")\nvar colormap = __webpack_require__(\"595c\")\n\nvar IDENTITY = [\n 1,0,0,0,\n 0,1,0,0,\n 0,0,1,0,\n 0,0,0,1]\n\nfunction VectorMesh(gl\n , texture\n , triShader\n , pickShader\n , trianglePositions\n , triangleVectors\n , triangleIds\n , triangleColors\n , triangleUVs\n , triangleVAO\n , traceType) {\n\n this.gl = gl\n this.pixelRatio = 1\n this.cells = []\n this.positions = []\n this.intensity = []\n this.texture = texture\n this.dirty = true\n\n this.triShader = triShader\n this.pickShader = pickShader\n\n this.trianglePositions = trianglePositions\n this.triangleVectors = triangleVectors\n this.triangleColors = triangleColors\n this.triangleUVs = triangleUVs\n this.triangleIds = triangleIds\n this.triangleVAO = triangleVAO\n this.triangleCount = 0\n\n this.pickId = 1\n this.bounds = [\n [ Infinity, Infinity, Infinity],\n [-Infinity,-Infinity,-Infinity] ]\n this.clipBounds = [\n [-Infinity,-Infinity,-Infinity],\n [ Infinity, Infinity, Infinity] ]\n\n this.lightPosition = [1e5, 1e5, 0]\n this.ambientLight = 0.8\n this.diffuseLight = 0.8\n this.specularLight = 2.0\n this.roughness = 0.5\n this.fresnel = 1.5\n\n this.opacity = 1\n\n this.traceType = traceType\n this.tubeScale = 1 // used in streamtube\n this.coneScale = 2 // used in cone\n this.vectorScale = 1 // used in cone\n this.coneOffset = 0.25 // used in cone\n\n this._model = IDENTITY\n this._view = IDENTITY\n this._projection = IDENTITY\n this._resolution = [1,1]\n}\n\nvar proto = VectorMesh.prototype\n\nproto.isOpaque = function() {\n return this.opacity >= 1\n}\n\nproto.isTransparent = function() {\n return this.opacity < 1\n}\n\nproto.pickSlots = 1\n\nproto.setPickBase = function(id) {\n this.pickId = id\n}\n\nfunction genColormap(param) {\n var colors = colormap({\n colormap: param\n , nshades: 256\n , format: 'rgba'\n })\n\n var result = new Uint8Array(256*4)\n for(var i=0; i<256; ++i) {\n var c = colors[i]\n for(var j=0; j<3; ++j) {\n result[4*i+j] = c[j]\n }\n result[4*i+3] = c[3]*255\n }\n\n return ndarray(result, [256,256,4], [4,0,1])\n}\n\nfunction takeZComponent(array) {\n var n = array.length\n var result = new Array(n)\n for(var i=0; i 0) {\n var shader = this.triShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.triangleVAO.bind()\n gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3)\n this.triangleVAO.unbind()\n }\n}\n\nproto.drawPick = function(params) {\n params = params || {}\n\n var gl = this.gl\n\n var model = params.model || IDENTITY\n var view = params.view || IDENTITY\n var projection = params.projection || IDENTITY\n\n var clipBounds = [[-1e6,-1e6,-1e6],[1e6,1e6,1e6]]\n for(var i=0; i<3; ++i) {\n clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i])\n clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i])\n }\n\n //Save camera parameters\n this._model = [].slice.call(model)\n this._view = [].slice.call(view)\n this._projection = [].slice.call(projection)\n this._resolution = [gl.drawingBufferWidth, gl.drawingBufferHeight]\n\n var uniforms = {\n model: model,\n view: view,\n projection: projection,\n clipBounds: clipBounds,\n\n tubeScale: this.tubeScale,\n vectorScale: this.vectorScale,\n coneScale: this.coneScale,\n coneOffset: this.coneOffset,\n\n pickId: this.pickId / 255.0,\n }\n\n var shader = this.pickShader\n shader.bind()\n shader.uniforms = uniforms\n\n if(this.triangleCount > 0) {\n this.triangleVAO.bind()\n gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3)\n this.triangleVAO.unbind()\n }\n}\n\n\nproto.pick = function(pickData) {\n if(!pickData) {\n return null\n }\n if(pickData.id !== this.pickId) {\n return null\n }\n\n var cellId = pickData.value[0] + 256*pickData.value[1] + 65536*pickData.value[2]\n var cell = this.cells[cellId]\n var pos = this.positions[cell[1]].slice(0, 3)\n\n var result = {\n position: pos,\n dataCoordinate: pos,\n index: Math.floor(cell[1] / 48)\n }\n\n\n if(this.traceType === 'cone') {\n result.index = Math.floor(cell[1] / 48)\n } else if(this.traceType === 'streamtube') {\n result.intensity = this.intensity[cell[1]]\n result.velocity = this.vectors[cell[1]].slice(0, 3)\n result.divergence = this.vectors[cell[1]][3]\n result.index = cellId\n }\n\n return result\n}\n\n\nproto.dispose = function() {\n this.texture.dispose()\n\n this.triShader.dispose()\n this.pickShader.dispose()\n\n this.triangleVAO.dispose()\n this.trianglePositions.dispose()\n this.triangleVectors.dispose()\n this.triangleColors.dispose()\n this.triangleUVs.dispose()\n this.triangleIds.dispose()\n}\n\nfunction createMeshShader(gl, shaders) {\n var shader = createShader(gl,\n shaders.meshShader.vertex,\n shaders.meshShader.fragment,\n null,\n shaders.meshShader.attributes\n )\n\n shader.attributes.position.location = 0\n shader.attributes.color.location = 2\n shader.attributes.uv.location = 3\n shader.attributes.vector.location = 4\n return shader\n}\n\n\nfunction createPickShader(gl, shaders) {\n var shader = createShader(gl,\n shaders.pickShader.vertex,\n shaders.pickShader.fragment,\n null,\n shaders.pickShader.attributes\n )\n\n shader.attributes.position.location = 0\n shader.attributes.id.location = 1\n shader.attributes.vector.location = 4\n return shader\n}\n\n\nfunction createVectorMesh(gl, params, opts) {\n var shaders = opts.shaders\n\n if (arguments.length === 1) {\n params = gl\n gl = params.gl\n }\n\n\n var triShader = createMeshShader(gl, shaders)\n var pickShader = createPickShader(gl, shaders)\n var meshTexture = createTexture(gl,\n ndarray(new Uint8Array([255,255,255,255]), [1,1,4]))\n meshTexture.generateMipmap()\n meshTexture.minFilter = gl.LINEAR_MIPMAP_LINEAR\n meshTexture.magFilter = gl.LINEAR\n\n var trianglePositions = createBuffer(gl)\n var triangleVectors = createBuffer(gl)\n var triangleColors = createBuffer(gl)\n var triangleUVs = createBuffer(gl)\n var triangleIds = createBuffer(gl)\n var triangleVAO = createVAO(gl, [\n { buffer: trianglePositions,\n type: gl.FLOAT,\n size: 4\n },\n { buffer: triangleIds,\n type: gl.UNSIGNED_BYTE,\n size: 4,\n normalized: true\n },\n { buffer: triangleColors,\n type: gl.FLOAT,\n size: 4\n },\n { buffer: triangleUVs,\n type: gl.FLOAT,\n size: 2\n },\n { buffer: triangleVectors,\n type: gl.FLOAT,\n size: 4\n }\n ])\n\n var mesh = new VectorMesh(gl\n , meshTexture\n , triShader\n , pickShader\n , trianglePositions\n , triangleVectors\n , triangleIds\n , triangleColors\n , triangleUVs\n , triangleVAO\n , opts.traceType || 'cone'\n )\n\n mesh.update(params)\n\n return mesh\n}\n\nmodule.exports = createVectorMesh\n\n\n/***/ }),\n\n/***/ \"6b50\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar surfaceAttrs = __webpack_require__(\"02ea\");\nvar baseAttrs = __webpack_require__(\"a876\");\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nmodule.exports = extendFlat({\n x: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n y: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n z: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n\n i: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n j: {\n valType: 'data_array',\n editType: 'calc',\n \n\n },\n k: {\n valType: 'data_array',\n editType: 'calc',\n \n\n },\n\n text: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n editType: 'calc',\n \n },\n hovertext: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n editType: 'calc',\n \n },\n hovertemplate: hovertemplateAttrs({editType: 'calc'}),\n\n delaunayaxis: {\n valType: 'enumerated',\n \n values: [ 'x', 'y', 'z' ],\n dflt: 'z',\n editType: 'calc',\n \n },\n\n alphahull: {\n valType: 'number',\n \n dflt: -1,\n editType: 'calc',\n \n },\n\n intensity: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n intensitymode: {\n valType: 'enumerated',\n values: ['vertex', 'cell'],\n dflt: 'vertex',\n editType: 'calc',\n \n \n },\n\n // Color field\n color: {\n valType: 'color',\n \n editType: 'calc',\n \n },\n vertexcolor: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n facecolor: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n transforms: undefined\n},\n\ncolorScaleAttrs('', {\n colorAttr: '`intensity`',\n showScaleDflt: true,\n editTypeOverride: 'calc'\n}), {\n opacity: surfaceAttrs.opacity,\n\n // Flat shaded mode\n flatshading: {\n valType: 'boolean',\n \n dflt: false,\n editType: 'calc',\n \n },\n\n contour: {\n show: extendFlat({}, surfaceAttrs.contours.x.show, {\n \n }),\n color: surfaceAttrs.contours.x.color,\n width: surfaceAttrs.contours.x.width,\n editType: 'calc'\n },\n\n lightposition: {\n x: extendFlat({}, surfaceAttrs.lightposition.x, {dflt: 1e5}),\n y: extendFlat({}, surfaceAttrs.lightposition.y, {dflt: 1e5}),\n z: extendFlat({}, surfaceAttrs.lightposition.z, {dflt: 0}),\n editType: 'calc'\n },\n lighting: extendFlat({\n vertexnormalsepsilon: {\n valType: 'number',\n \n min: 0.00,\n max: 1,\n dflt: 1e-12, // otherwise finely tessellated things eg. the brain will have no specular light reflection\n editType: 'calc',\n \n },\n facenormalsepsilon: {\n valType: 'number',\n \n min: 0.00,\n max: 1,\n dflt: 1e-6, // even the brain model doesn't appear to need finer than this\n editType: 'calc',\n \n },\n editType: 'calc'\n }, surfaceAttrs.lighting),\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {editType: 'calc'}),\n showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})\n});\n\n\n/***/ }),\n\n/***/ \"6b5f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar plots = __webpack_require__(\"bb71\");\n\nexports.name = 'pie';\n\nexports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n};\n\n\n/***/ }),\n\n/***/ \"6b78\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar perStackAttrs = ['orientation', 'groupnorm', 'stackgaps'];\n\nmodule.exports = function handleStackDefaults(traceIn, traceOut, layout, coerce) {\n var stackOpts = layout._scatterStackOpts;\n\n var stackGroup = coerce('stackgroup');\n if(stackGroup) {\n // use independent stacking options per subplot\n var subplot = traceOut.xaxis + traceOut.yaxis;\n var subplotStackOpts = stackOpts[subplot];\n if(!subplotStackOpts) subplotStackOpts = stackOpts[subplot] = {};\n\n var groupOpts = subplotStackOpts[stackGroup];\n var firstTrace = false;\n if(groupOpts) {\n groupOpts.traces.push(traceOut);\n } else {\n groupOpts = subplotStackOpts[stackGroup] = {\n // keep track of trace indices for use during stacking calculations\n // this will be filled in during `calc` and used during `crossTraceCalc`\n // so it's OK if we don't recreate it during a non-calc edit\n traceIndices: [],\n // Hold on to the whole set of prior traces\n // First one is most important, so we can clear defaults\n // there if we find explicit values only in later traces.\n // We're only going to *use* the values stored in groupOpts,\n // but for the editor and validate we want things self-consistent\n // The full set of traces is used only to fix `fill` default if\n // we find `orientation: 'h'` beyond the first trace\n traces: [traceOut]\n };\n firstTrace = true;\n }\n // TODO: how is this going to work with groupby transforms?\n // in principle it should be OK I guess, as long as explicit group styles\n // don't override explicit base-trace styles?\n\n var dflts = {\n orientation: (traceOut.x && !traceOut.y) ? 'h' : 'v'\n };\n\n for(var i = 0; i < perStackAttrs.length; i++) {\n var attr = perStackAttrs[i];\n var attrFound = attr + 'Found';\n if(!groupOpts[attrFound]) {\n var traceHasAttr = traceIn[attr] !== undefined;\n var isOrientation = attr === 'orientation';\n if(traceHasAttr || firstTrace) {\n groupOpts[attr] = coerce(attr, dflts[attr]);\n\n if(isOrientation) {\n groupOpts.fillDflt = groupOpts[attr] === 'h' ?\n 'tonextx' : 'tonexty';\n }\n\n if(traceHasAttr) {\n // Note: this will show a value here even if it's invalid\n // in which case it will revert to default.\n groupOpts[attrFound] = true;\n\n // Note: only one trace in the stack will get a _fullData\n // entry for a given stack-wide attribute. If no traces\n // (or the first trace) specify that attribute, the\n // first trace will get it. If the first trace does NOT\n // specify it but some later trace does, then it gets\n // removed from the first trace and only included in the\n // one that specified it. This is mostly important for\n // editors (that want to see the full values to know\n // what settings are available) and Plotly.react diffing.\n // Editors may want to use fullLayout._scatterStackOpts\n // directly and make these settings available from all\n // traces in the stack... then set the new value into\n // the first trace, and clear all later traces.\n if(!firstTrace) {\n delete groupOpts.traces[0][attr];\n\n // orientation can affect default fill of previous traces\n if(isOrientation) {\n for(var j = 0; j < groupOpts.traces.length - 1; j++) {\n var trace2 = groupOpts.traces[j];\n if(trace2._input.fill !== trace2.fill) {\n trace2.fill = groupOpts.fillDflt;\n }\n }\n }\n }\n }\n }\n }\n }\n return groupOpts;\n }\n};\n\n\n/***/ }),\n\n/***/ \"6bd5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Colorscale = __webpack_require__(\"c258\");\n\nvar heatmapCalc = __webpack_require__(\"0625\");\nvar setContours = __webpack_require__(\"8a7d\");\nvar endPlus = __webpack_require__(\"bc6b\");\n\n// most is the same as heatmap calc, then adjust it\n// though a few things inside heatmap calc still look for\n// contour maps, because the makeBoundArray calls are too entangled\nmodule.exports = function calc(gd, trace) {\n var cd = heatmapCalc(gd, trace);\n\n var zOut = cd[0].z;\n setContours(trace, zOut);\n\n var contours = trace.contours;\n var cOpts = Colorscale.extractOpts(trace);\n var cVals;\n\n if(contours.coloring === 'heatmap' && cOpts.auto && trace.autocontour === false) {\n var start = contours.start;\n var end = endPlus(contours);\n var cs = contours.size || 1;\n var nc = Math.floor((end - start) / cs) + 1;\n\n if(!isFinite(cs)) {\n cs = 1;\n nc = 1;\n }\n\n var min0 = start - cs / 2;\n var max0 = min0 + nc * cs;\n cVals = [min0, max0];\n } else {\n cVals = zOut;\n }\n\n Colorscale.calc(gd, trace, {vals: cVals, cLetter: 'z'});\n\n return cd;\n};\n\n\n/***/ }),\n\n/***/ \"6c5a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\n\n/**\n * Determine the position anchor property of x/y xanchor/yanchor components.\n *\n * - values < 1/3 align the low side at that fraction,\n * - values [1/3, 2/3] align the center at that fraction,\n * - values > 2/3 align the right at that fraction.\n */\n\n\nexports.isLeftAnchor = function isLeftAnchor(opts) {\n return (\n opts.xanchor === 'left' ||\n (opts.xanchor === 'auto' && opts.x <= 1 / 3)\n );\n};\n\nexports.isCenterAnchor = function isCenterAnchor(opts) {\n return (\n opts.xanchor === 'center' ||\n (opts.xanchor === 'auto' && opts.x > 1 / 3 && opts.x < 2 / 3)\n );\n};\n\nexports.isRightAnchor = function isRightAnchor(opts) {\n return (\n opts.xanchor === 'right' ||\n (opts.xanchor === 'auto' && opts.x >= 2 / 3)\n );\n};\n\nexports.isTopAnchor = function isTopAnchor(opts) {\n return (\n opts.yanchor === 'top' ||\n (opts.yanchor === 'auto' && opts.y >= 2 / 3)\n );\n};\n\nexports.isMiddleAnchor = function isMiddleAnchor(opts) {\n return (\n opts.yanchor === 'middle' ||\n (opts.yanchor === 'auto' && opts.y > 1 / 3 && opts.y < 2 / 3)\n );\n};\n\nexports.isBottomAnchor = function isBottomAnchor(opts) {\n return (\n opts.yanchor === 'bottom' ||\n (opts.yanchor === 'auto' && opts.y <= 1 / 3)\n );\n};\n\n\n/***/ }),\n\n/***/ \"6c77\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n COMPARISON_OPS: ['=', '!=', '<', '>=', '>', '<='],\n COMPARISON_OPS2: ['=', '<', '>=', '>', '<='],\n INTERVAL_OPS: ['[]', '()', '[)', '(]', '][', ')(', '](', ')['],\n SET_OPS: ['{}', '}{'],\n CONSTRAINT_REDUCTION: {\n // for contour constraints, open/closed endpoints are equivalent\n '=': '=',\n\n '<': '<',\n '<=': '<',\n\n '>': '>',\n '>=': '>',\n\n '[]': '[]',\n '()': '[]',\n '[)': '[]',\n '(]': '[]',\n\n '][': '][',\n ')(': '][',\n '](': '][',\n ')[': ']['\n }\n};\n\n\n/***/ }),\n\n/***/ \"6ca5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"89ab\");\n\n\n/***/ }),\n\n/***/ \"6ceb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getContext = __webpack_require__(\"fda9\")\n\nmodule.exports = function getWebGLContext (opt) {\n return getContext('webgl', opt)\n}\n\n\n/***/ }),\n\n/***/ \"6d08\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"4362\")))\n\n/***/ }),\n\n/***/ \"6d0a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"c7c2\");\n\n\n/***/ }),\n\n/***/ \"6dcc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\n\nmodule.exports = {\n count: function(n, i, size) {\n size[n]++;\n return 1;\n },\n\n sum: function(n, i, size, counterData) {\n var v = counterData[i];\n if(isNumeric(v)) {\n v = Number(v);\n size[n] += v;\n return v;\n }\n return 0;\n },\n\n avg: function(n, i, size, counterData, counts) {\n var v = counterData[i];\n if(isNumeric(v)) {\n v = Number(v);\n size[n] += v;\n counts[n]++;\n }\n return 0;\n },\n\n min: function(n, i, size, counterData) {\n var v = counterData[i];\n if(isNumeric(v)) {\n v = Number(v);\n if(!isNumeric(size[n])) {\n size[n] = v;\n return v;\n } else if(size[n] > v) {\n var delta = v - size[n];\n size[n] = v;\n return delta;\n }\n }\n return 0;\n },\n\n max: function(n, i, size, counterData) {\n var v = counterData[i];\n if(isNumeric(v)) {\n v = Number(v);\n if(!isNumeric(size[n])) {\n size[n] = v;\n return v;\n } else if(size[n] < v) {\n var delta = v - size[n];\n size[n] = v;\n return delta;\n }\n }\n return 0;\n }\n};\n\n\n/***/ }),\n\n/***/ \"6dd0\":\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"[\\\"caption\\\",\\\"icon\\\",\\\"menu\\\",\\\"message-box\\\",\\\"small-caption\\\",\\\"status-bar\\\"]\");\n\n/***/ }),\n\n/***/ \"6dea\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar colorscaleCalc = __webpack_require__(\"3aa8\");\n\nmodule.exports = function calc(gd, trace) {\n if(trace.intensity) {\n colorscaleCalc(gd, trace, {\n vals: trace.intensity,\n containerStr: '',\n cLetter: 'c'\n });\n }\n};\n\n\n/***/ }),\n\n/***/ \"6e1f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = segmentsIntersect\n\nvar orient = __webpack_require__(\"92ba\")[3]\n\nfunction checkCollinear(a0, a1, b0, b1) {\n\n for(var d=0; d<2; ++d) {\n var x0 = a0[d]\n var y0 = a1[d]\n var l0 = Math.min(x0, y0)\n var h0 = Math.max(x0, y0) \n\n var x1 = b0[d]\n var y1 = b1[d]\n var l1 = Math.min(x1, y1)\n var h1 = Math.max(x1, y1) \n\n if(h1 < l0 || h0 < l1) {\n return false\n }\n }\n\n return true\n}\n\nfunction segmentsIntersect(a0, a1, b0, b1) {\n var x0 = orient(a0, b0, b1)\n var y0 = orient(a1, b0, b1)\n if((x0 > 0 && y0 > 0) || (x0 < 0 && y0 < 0)) {\n return false\n }\n\n var x1 = orient(b0, a0, a1)\n var y1 = orient(b1, a0, a1)\n if((x1 > 0 && y1 > 0) || (x1 < 0 && y1 < 0)) {\n return false\n }\n\n //Check for degenerate collinear case\n if(x0 === 0 && y0 === 0 && x1 === 0 && y1 === 0) {\n return checkCollinear(a0, a1, b0, b1)\n }\n\n return true\n}\n\n/***/ }),\n\n/***/ \"6e40\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar modModule = __webpack_require__(\"d3dc\");\nvar mod = modModule.mod;\nvar modHalf = modModule.modHalf;\n\nvar PI = Math.PI;\nvar twoPI = 2 * PI;\n\nfunction deg2rad(deg) { return deg / 180 * PI; }\n\nfunction rad2deg(rad) { return rad / PI * 180; }\n\n/**\n * is sector a full circle?\n * ... this comes up a lot in SVG path-drawing routines\n *\n * N.B. we consider all sectors that span more that 2pi 'full' circles\n *\n * @param {2-item array} aBnds : angular bounds in *radians*\n * @return {boolean}\n */\nfunction isFullCircle(aBnds) {\n return Math.abs(aBnds[1] - aBnds[0]) > twoPI - 1e-14;\n}\n\n/**\n * angular delta between angle 'a' and 'b'\n * solution taken from: https://stackoverflow.com/a/2007279\n *\n * @param {number} a : first angle in *radians*\n * @param {number} b : second angle in *radians*\n * @return {number} angular delta in *radians*\n */\nfunction angleDelta(a, b) {\n return modHalf(b - a, twoPI);\n}\n\n/**\n * angular distance between angle 'a' and 'b'\n *\n * @param {number} a : first angle in *radians*\n * @param {number} b : second angle in *radians*\n * @return {number} angular distance in *radians*\n */\nfunction angleDist(a, b) {\n return Math.abs(angleDelta(a, b));\n}\n\n/**\n * is angle inside sector?\n *\n * @param {number} a : angle to test in *radians*\n * @param {2-item array} aBnds : sector's angular bounds in *radians*\n * @param {boolean}\n */\nfunction isAngleInsideSector(a, aBnds) {\n if(isFullCircle(aBnds)) return true;\n\n var s0, s1;\n\n if(aBnds[0] < aBnds[1]) {\n s0 = aBnds[0];\n s1 = aBnds[1];\n } else {\n s0 = aBnds[1];\n s1 = aBnds[0];\n }\n\n s0 = mod(s0, twoPI);\n s1 = mod(s1, twoPI);\n if(s0 > s1) s1 += twoPI;\n\n var a0 = mod(a, twoPI);\n var a1 = a0 + twoPI;\n\n return (a0 >= s0 && a0 <= s1) || (a1 >= s0 && a1 <= s1);\n}\n\n/**\n * is pt (r,a) inside sector?\n *\n * @param {number} r : pt's radial coordinate\n * @param {number} a : pt's angular coordinate in *radians*\n * @param {2-item array} rBnds : sector's radial bounds\n * @param {2-item array} aBnds : sector's angular bounds in *radians*\n * @return {boolean}\n */\nfunction isPtInsideSector(r, a, rBnds, aBnds) {\n if(!isAngleInsideSector(a, aBnds)) return false;\n\n var r0, r1;\n\n if(rBnds[0] < rBnds[1]) {\n r0 = rBnds[0];\n r1 = rBnds[1];\n } else {\n r0 = rBnds[1];\n r1 = rBnds[0];\n }\n\n return r >= r0 && r <= r1;\n}\n\n// common to pathArc, pathSector and pathAnnulus\nfunction _path(r0, r1, a0, a1, cx, cy, isClosed) {\n cx = cx || 0;\n cy = cy || 0;\n\n var isCircle = isFullCircle([a0, a1]);\n var aStart, aMid, aEnd;\n var rStart, rEnd;\n\n if(isCircle) {\n aStart = 0;\n aMid = PI;\n aEnd = twoPI;\n } else {\n if(a0 < a1) {\n aStart = a0;\n aEnd = a1;\n } else {\n aStart = a1;\n aEnd = a0;\n }\n }\n\n if(r0 < r1) {\n rStart = r0;\n rEnd = r1;\n } else {\n rStart = r1;\n rEnd = r0;\n }\n\n // N.B. svg coordinates here, where y increases downward\n function pt(r, a) {\n return [r * Math.cos(a) + cx, cy - r * Math.sin(a)];\n }\n\n var largeArc = Math.abs(aEnd - aStart) <= PI ? 0 : 1;\n function arc(r, a, cw) {\n return 'A' + [r, r] + ' ' + [0, largeArc, cw] + ' ' + pt(r, a);\n }\n\n var p;\n\n if(isCircle) {\n if(rStart === null) {\n p = 'M' + pt(rEnd, aStart) +\n arc(rEnd, aMid, 0) +\n arc(rEnd, aEnd, 0) + 'Z';\n } else {\n p = 'M' + pt(rStart, aStart) +\n arc(rStart, aMid, 0) +\n arc(rStart, aEnd, 0) + 'Z' +\n 'M' + pt(rEnd, aStart) +\n arc(rEnd, aMid, 1) +\n arc(rEnd, aEnd, 1) + 'Z';\n }\n } else {\n if(rStart === null) {\n p = 'M' + pt(rEnd, aStart) + arc(rEnd, aEnd, 0);\n if(isClosed) p += 'L0,0Z';\n } else {\n p = 'M' + pt(rStart, aStart) +\n 'L' + pt(rEnd, aStart) +\n arc(rEnd, aEnd, 0) +\n 'L' + pt(rStart, aEnd) +\n arc(rStart, aStart, 1) + 'Z';\n }\n }\n\n return p;\n}\n\n/**\n * path an arc\n *\n * @param {number} r : radius\n * @param {number} a0 : first angular coordinate in *radians*\n * @param {number} a1 : second angular coordinate in *radians*\n * @param {number (optional)} cx : x coordinate of center\n * @param {number (optional)} cy : y coordinate of center\n * @return {string} svg path\n */\nfunction pathArc(r, a0, a1, cx, cy) {\n return _path(null, r, a0, a1, cx, cy, 0);\n}\n\n/**\n * path a sector\n *\n * @param {number} r : radius\n * @param {number} a0 : first angular coordinate in *radians*\n * @param {number} a1 : second angular coordinate in *radians*\n * @param {number (optional)} cx : x coordinate of center\n * @param {number (optional)} cy : y coordinate of center\n * @return {string} svg path\n */\nfunction pathSector(r, a0, a1, cx, cy) {\n return _path(null, r, a0, a1, cx, cy, 1);\n}\n\n/**\n * path an annulus\n *\n * @param {number} r0 : first radial coordinate\n * @param {number} r1 : second radial coordinate\n * @param {number} a0 : first angular coordinate in *radians*\n * @param {number} a1 : second angular coordinate in *radians*\n * @param {number (optional)} cx : x coordinate of center\n * @param {number (optional)} cy : y coordinate of center\n * @return {string} svg path\n */\nfunction pathAnnulus(r0, r1, a0, a1, cx, cy) {\n return _path(r0, r1, a0, a1, cx, cy, 1);\n}\n\nmodule.exports = {\n deg2rad: deg2rad,\n rad2deg: rad2deg,\n angleDelta: angleDelta,\n angleDist: angleDist,\n isFullCircle: isFullCircle,\n isAngleInsideSector: isAngleInsideSector,\n isPtInsideSector: isPtInsideSector,\n pathArc: pathArc,\n pathSector: pathSector,\n pathAnnulus: pathAnnulus\n};\n\n\n/***/ }),\n\n/***/ \"6e58\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;!function() {\n var d3 = {\n version: \"3.5.17\"\n };\n var d3_arraySlice = [].slice, d3_array = function(list) {\n return d3_arraySlice.call(list);\n };\n var d3_document = this.document;\n function d3_documentElement(node) {\n return node && (node.ownerDocument || node.document || node).documentElement;\n }\n function d3_window(node) {\n return node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView);\n }\n if (d3_document) {\n try {\n d3_array(d3_document.documentElement.childNodes)[0].nodeType;\n } catch (e) {\n d3_array = function(list) {\n var i = list.length, array = new Array(i);\n while (i--) array[i] = list[i];\n return array;\n };\n }\n }\n if (!Date.now) Date.now = function() {\n return +new Date();\n };\n if (d3_document) {\n try {\n d3_document.createElement(\"DIV\").style.setProperty(\"opacity\", 0, \"\");\n } catch (error) {\n var d3_element_prototype = this.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = this.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;\n d3_element_prototype.setAttribute = function(name, value) {\n d3_element_setAttribute.call(this, name, value + \"\");\n };\n d3_element_prototype.setAttributeNS = function(space, local, value) {\n d3_element_setAttributeNS.call(this, space, local, value + \"\");\n };\n d3_style_prototype.setProperty = function(name, value, priority) {\n d3_style_setProperty.call(this, name, value + \"\", priority);\n };\n }\n }\n d3.ascending = d3_ascending;\n function d3_ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n }\n d3.descending = function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n };\n d3.min = function(array, f) {\n var i = -1, n = array.length, a, b;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null && a > b) a = b;\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;\n }\n return a;\n };\n d3.max = function(array, f) {\n var i = -1, n = array.length, a, b;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null && b > a) a = b;\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;\n }\n return a;\n };\n d3.extent = function(array, f) {\n var i = -1, n = array.length, a, b, c;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = c = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = c = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n }\n return [ a, c ];\n };\n function d3_number(x) {\n return x === null ? NaN : +x;\n }\n function d3_numeric(x) {\n return !isNaN(x);\n }\n d3.sum = function(array, f) {\n var s = 0, n = array.length, a, i = -1;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = +array[i])) s += a;\n } else {\n while (++i < n) if (d3_numeric(a = +f.call(array, array[i], i))) s += a;\n }\n return s;\n };\n d3.mean = function(array, f) {\n var s = 0, n = array.length, a, i = -1, j = n;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = d3_number(array[i]))) s += a; else --j;\n } else {\n while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) s += a; else --j;\n }\n if (j) return s / j;\n };\n d3.quantile = function(values, p) {\n var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;\n return e ? v + e * (values[h] - v) : v;\n };\n d3.median = function(array, f) {\n var numbers = [], n = array.length, a, i = -1;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = d3_number(array[i]))) numbers.push(a);\n } else {\n while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) numbers.push(a);\n }\n if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), .5);\n };\n d3.variance = function(array, f) {\n var n = array.length, m = 0, a, d, s = 0, i = -1, j = 0;\n if (arguments.length === 1) {\n while (++i < n) {\n if (d3_numeric(a = d3_number(array[i]))) {\n d = a - m;\n m += d / ++j;\n s += d * (a - m);\n }\n }\n } else {\n while (++i < n) {\n if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) {\n d = a - m;\n m += d / ++j;\n s += d * (a - m);\n }\n }\n }\n if (j > 1) return s / (j - 1);\n };\n d3.deviation = function() {\n var v = d3.variance.apply(this, arguments);\n return v ? Math.sqrt(v) : v;\n };\n function d3_bisector(compare) {\n return {\n left: function(a, x, lo, hi) {\n if (arguments.length < 3) lo = 0;\n if (arguments.length < 4) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (arguments.length < 3) lo = 0;\n if (arguments.length < 4) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1;\n }\n return lo;\n }\n };\n }\n var d3_bisect = d3_bisector(d3_ascending);\n d3.bisectLeft = d3_bisect.left;\n d3.bisect = d3.bisectRight = d3_bisect.right;\n d3.bisector = function(f) {\n return d3_bisector(f.length === 1 ? function(d, x) {\n return d3_ascending(f(d), x);\n } : f);\n };\n d3.shuffle = function(array, i0, i1) {\n if ((m = arguments.length) < 3) {\n i1 = array.length;\n if (m < 2) i0 = 0;\n }\n var m = i1 - i0, t, i;\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0], array[m + i0] = array[i + i0], array[i + i0] = t;\n }\n return array;\n };\n d3.permute = function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n };\n d3.pairs = function(array) {\n var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ];\n return pairs;\n };\n d3.transpose = function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = d3.min(matrix, d3_transposeLength), transpose = new Array(m); ++i < m; ) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n; ) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n };\n function d3_transposeLength(d) {\n return d.length;\n }\n d3.zip = function() {\n return d3.transpose(arguments);\n };\n d3.keys = function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n };\n d3.values = function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n };\n d3.entries = function(map) {\n var entries = [];\n for (var key in map) entries.push({\n key: key,\n value: map[key]\n });\n return entries;\n };\n d3.merge = function(arrays) {\n var n = arrays.length, m, i = -1, j = 0, merged, array;\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n return merged;\n };\n var abs = Math.abs;\n d3.range = function(start, stop, step) {\n if (arguments.length < 3) {\n step = 1;\n if (arguments.length < 2) {\n stop = start;\n start = 0;\n }\n }\n if ((stop - start) / step === Infinity) throw new Error(\"infinite range\");\n var range = [], k = d3_range_integerScale(abs(step)), i = -1, j;\n start *= k, stop *= k, step *= k;\n if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);\n return range;\n };\n function d3_range_integerScale(x) {\n var k = 1;\n while (x * k % 1) k *= 10;\n return k;\n }\n function d3_class(ctor, properties) {\n for (var key in properties) {\n Object.defineProperty(ctor.prototype, key, {\n value: properties[key],\n enumerable: false\n });\n }\n }\n d3.map = function(object, f) {\n var map = new d3_Map();\n if (object instanceof d3_Map) {\n object.forEach(function(key, value) {\n map.set(key, value);\n });\n } else if (Array.isArray(object)) {\n var i = -1, n = object.length, o;\n if (arguments.length === 1) while (++i < n) map.set(i, object[i]); else while (++i < n) map.set(f.call(object, o = object[i], i), o);\n } else {\n for (var key in object) map.set(key, object[key]);\n }\n return map;\n };\n function d3_Map() {\n this._ = Object.create(null);\n }\n var d3_map_proto = \"__proto__\", d3_map_zero = \"\\x00\";\n d3_class(d3_Map, {\n has: d3_map_has,\n get: function(key) {\n return this._[d3_map_escape(key)];\n },\n set: function(key, value) {\n return this._[d3_map_escape(key)] = value;\n },\n remove: d3_map_remove,\n keys: d3_map_keys,\n values: function() {\n var values = [];\n for (var key in this._) values.push(this._[key]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var key in this._) entries.push({\n key: d3_map_unescape(key),\n value: this._[key]\n });\n return entries;\n },\n size: d3_map_size,\n empty: d3_map_empty,\n forEach: function(f) {\n for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]);\n }\n });\n function d3_map_escape(key) {\n return (key += \"\") === d3_map_proto || key[0] === d3_map_zero ? d3_map_zero + key : key;\n }\n function d3_map_unescape(key) {\n return (key += \"\")[0] === d3_map_zero ? key.slice(1) : key;\n }\n function d3_map_has(key) {\n return d3_map_escape(key) in this._;\n }\n function d3_map_remove(key) {\n return (key = d3_map_escape(key)) in this._ && delete this._[key];\n }\n function d3_map_keys() {\n var keys = [];\n for (var key in this._) keys.push(d3_map_unescape(key));\n return keys;\n }\n function d3_map_size() {\n var size = 0;\n for (var key in this._) ++size;\n return size;\n }\n function d3_map_empty() {\n for (var key in this._) return false;\n return true;\n }\n d3.nest = function() {\n var nest = {}, keys = [], sortKeys = [], sortValues, rollup;\n function map(mapType, array, depth) {\n if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;\n var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values;\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(object = array[i]))) {\n values.push(object);\n } else {\n valuesByKey.set(keyValue, [ object ]);\n }\n }\n if (mapType) {\n object = mapType();\n setter = function(keyValue, values) {\n object.set(keyValue, map(mapType, values, depth));\n };\n } else {\n object = {};\n setter = function(keyValue, values) {\n object[keyValue] = map(mapType, values, depth);\n };\n }\n valuesByKey.forEach(setter);\n return object;\n }\n function entries(map, depth) {\n if (depth >= keys.length) return map;\n var array = [], sortKey = sortKeys[depth++];\n map.forEach(function(key, keyMap) {\n array.push({\n key: key,\n values: entries(keyMap, depth)\n });\n });\n return sortKey ? array.sort(function(a, b) {\n return sortKey(a.key, b.key);\n }) : array;\n }\n nest.map = function(array, mapType) {\n return map(mapType, array, 0);\n };\n nest.entries = function(array) {\n return entries(map(d3.map, array, 0), 0);\n };\n nest.key = function(d) {\n keys.push(d);\n return nest;\n };\n nest.sortKeys = function(order) {\n sortKeys[keys.length - 1] = order;\n return nest;\n };\n nest.sortValues = function(order) {\n sortValues = order;\n return nest;\n };\n nest.rollup = function(f) {\n rollup = f;\n return nest;\n };\n return nest;\n };\n d3.set = function(array) {\n var set = new d3_Set();\n if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]);\n return set;\n };\n function d3_Set() {\n this._ = Object.create(null);\n }\n d3_class(d3_Set, {\n has: d3_map_has,\n add: function(key) {\n this._[d3_map_escape(key += \"\")] = true;\n return key;\n },\n remove: d3_map_remove,\n values: d3_map_keys,\n size: d3_map_size,\n empty: d3_map_empty,\n forEach: function(f) {\n for (var key in this._) f.call(this, d3_map_unescape(key));\n }\n });\n d3.behavior = {};\n function d3_identity(d) {\n return d;\n }\n d3.rebind = function(target, source) {\n var i = 1, n = arguments.length, method;\n while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);\n return target;\n };\n function d3_rebind(target, source, method) {\n return function() {\n var value = method.apply(source, arguments);\n return value === source ? target : value;\n };\n }\n function d3_vendorSymbol(object, name) {\n if (name in object) return name;\n name = name.charAt(0).toUpperCase() + name.slice(1);\n for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) {\n var prefixName = d3_vendorPrefixes[i] + name;\n if (prefixName in object) return prefixName;\n }\n }\n var d3_vendorPrefixes = [ \"webkit\", \"ms\", \"moz\", \"Moz\", \"o\", \"O\" ];\n function d3_noop() {}\n d3.dispatch = function() {\n var dispatch = new d3_dispatch(), i = -1, n = arguments.length;\n while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);\n return dispatch;\n };\n function d3_dispatch() {}\n d3_dispatch.prototype.on = function(type, listener) {\n var i = type.indexOf(\".\"), name = \"\";\n if (i >= 0) {\n name = type.slice(i + 1);\n type = type.slice(0, i);\n }\n if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);\n if (arguments.length === 2) {\n if (listener == null) for (type in this) {\n if (this.hasOwnProperty(type)) this[type].on(name, null);\n }\n return this;\n }\n };\n function d3_dispatch_event(dispatch) {\n var listeners = [], listenerByName = new d3_Map();\n function event() {\n var z = listeners, i = -1, n = z.length, l;\n while (++i < n) if (l = z[i].on) l.apply(this, arguments);\n return dispatch;\n }\n event.on = function(name, listener) {\n var l = listenerByName.get(name), i;\n if (arguments.length < 2) return l && l.on;\n if (l) {\n l.on = null;\n listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));\n listenerByName.remove(name);\n }\n if (listener) listeners.push(listenerByName.set(name, {\n on: listener\n }));\n return dispatch;\n };\n return event;\n }\n d3.event = null;\n function d3_eventPreventDefault() {\n d3.event.preventDefault();\n }\n function d3_eventSource() {\n var e = d3.event, s;\n while (s = e.sourceEvent) e = s;\n return e;\n }\n function d3_eventDispatch(target) {\n var dispatch = new d3_dispatch(), i = 0, n = arguments.length;\n while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);\n dispatch.of = function(thiz, argumentz) {\n return function(e1) {\n try {\n var e0 = e1.sourceEvent = d3.event;\n e1.target = target;\n d3.event = e1;\n dispatch[e1.type].apply(thiz, argumentz);\n } finally {\n d3.event = e0;\n }\n };\n };\n return dispatch;\n }\n d3.requote = function(s) {\n return s.replace(d3_requote_re, \"\\\\$&\");\n };\n var d3_requote_re = /[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g;\n var d3_subclass = {}.__proto__ ? function(object, prototype) {\n object.__proto__ = prototype;\n } : function(object, prototype) {\n for (var property in prototype) object[property] = prototype[property];\n };\n function d3_selection(groups) {\n d3_subclass(groups, d3_selectionPrototype);\n return groups;\n }\n var d3_select = function(s, n) {\n return n.querySelector(s);\n }, d3_selectAll = function(s, n) {\n return n.querySelectorAll(s);\n }, d3_selectMatches = function(n, s) {\n var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, \"matchesSelector\")];\n d3_selectMatches = function(n, s) {\n return d3_selectMatcher.call(n, s);\n };\n return d3_selectMatches(n, s);\n };\n if (typeof Sizzle === \"function\") {\n d3_select = function(s, n) {\n return Sizzle(s, n)[0] || null;\n };\n d3_selectAll = Sizzle;\n d3_selectMatches = Sizzle.matchesSelector;\n }\n d3.selection = function() {\n return d3.select(d3_document.documentElement);\n };\n var d3_selectionPrototype = d3.selection.prototype = [];\n d3_selectionPrototype.select = function(selector) {\n var subgroups = [], subgroup, subnode, group, node;\n selector = d3_selection_selector(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n subgroup.parentNode = (group = this[j]).parentNode;\n for (var i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroup.push(subnode = selector.call(node, node.__data__, i, j));\n if (subnode && \"__data__\" in node) subnode.__data__ = node.__data__;\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_selector(selector) {\n return typeof selector === \"function\" ? selector : function() {\n return d3_select(selector, this);\n };\n }\n d3_selectionPrototype.selectAll = function(selector) {\n var subgroups = [], subgroup, node;\n selector = d3_selection_selectorAll(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j)));\n subgroup.parentNode = node;\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_selectorAll(selector) {\n return typeof selector === \"function\" ? selector : function() {\n return d3_selectAll(selector, this);\n };\n }\n var d3_nsXhtml = \"http://www.w3.org/1999/xhtml\";\n var d3_nsPrefix = {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: d3_nsXhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n };\n d3.ns = {\n prefix: d3_nsPrefix,\n qualify: function(name) {\n var i = name.indexOf(\":\"), prefix = name;\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return d3_nsPrefix.hasOwnProperty(prefix) ? {\n space: d3_nsPrefix[prefix],\n local: name\n } : name;\n }\n };\n d3_selectionPrototype.attr = function(name, value) {\n if (arguments.length < 2) {\n if (typeof name === \"string\") {\n var node = this.node();\n name = d3.ns.qualify(name);\n return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);\n }\n for (value in name) this.each(d3_selection_attr(value, name[value]));\n return this;\n }\n return this.each(d3_selection_attr(name, value));\n };\n function d3_selection_attr(name, value) {\n name = d3.ns.qualify(name);\n function attrNull() {\n this.removeAttribute(name);\n }\n function attrNullNS() {\n this.removeAttributeNS(name.space, name.local);\n }\n function attrConstant() {\n this.setAttribute(name, value);\n }\n function attrConstantNS() {\n this.setAttributeNS(name.space, name.local, value);\n }\n function attrFunction() {\n var x = value.apply(this, arguments);\n if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);\n }\n function attrFunctionNS() {\n var x = value.apply(this, arguments);\n if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);\n }\n return value == null ? name.local ? attrNullNS : attrNull : typeof value === \"function\" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;\n }\n function d3_collapse(s) {\n return s.trim().replace(/\\s+/g, \" \");\n }\n d3_selectionPrototype.classed = function(name, value) {\n if (arguments.length < 2) {\n if (typeof name === \"string\") {\n var node = this.node(), n = (name = d3_selection_classes(name)).length, i = -1;\n if (value = node.classList) {\n while (++i < n) if (!value.contains(name[i])) return false;\n } else {\n value = node.getAttribute(\"class\");\n while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;\n }\n return true;\n }\n for (value in name) this.each(d3_selection_classed(value, name[value]));\n return this;\n }\n return this.each(d3_selection_classed(name, value));\n };\n function d3_selection_classedRe(name) {\n return new RegExp(\"(?:^|\\\\s+)\" + d3.requote(name) + \"(?:\\\\s+|$)\", \"g\");\n }\n function d3_selection_classes(name) {\n return (name + \"\").trim().split(/^|\\s+/);\n }\n function d3_selection_classed(name, value) {\n name = d3_selection_classes(name).map(d3_selection_classedName);\n var n = name.length;\n function classedConstant() {\n var i = -1;\n while (++i < n) name[i](this, value);\n }\n function classedFunction() {\n var i = -1, x = value.apply(this, arguments);\n while (++i < n) name[i](this, x);\n }\n return typeof value === \"function\" ? classedFunction : classedConstant;\n }\n function d3_selection_classedName(name) {\n var re = d3_selection_classedRe(name);\n return function(node, value) {\n if (c = node.classList) return value ? c.add(name) : c.remove(name);\n var c = node.getAttribute(\"class\") || \"\";\n if (value) {\n re.lastIndex = 0;\n if (!re.test(c)) node.setAttribute(\"class\", d3_collapse(c + \" \" + name));\n } else {\n node.setAttribute(\"class\", d3_collapse(c.replace(re, \" \")));\n }\n };\n }\n d3_selectionPrototype.style = function(name, value, priority) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof name !== \"string\") {\n if (n < 2) value = \"\";\n for (priority in name) this.each(d3_selection_style(priority, name[priority], value));\n return this;\n }\n if (n < 2) {\n var node = this.node();\n return d3_window(node).getComputedStyle(node, null).getPropertyValue(name);\n }\n priority = \"\";\n }\n return this.each(d3_selection_style(name, value, priority));\n };\n function d3_selection_style(name, value, priority) {\n function styleNull() {\n this.style.removeProperty(name);\n }\n function styleConstant() {\n this.style.setProperty(name, value, priority);\n }\n function styleFunction() {\n var x = value.apply(this, arguments);\n if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);\n }\n return value == null ? styleNull : typeof value === \"function\" ? styleFunction : styleConstant;\n }\n d3_selectionPrototype.property = function(name, value) {\n if (arguments.length < 2) {\n if (typeof name === \"string\") return this.node()[name];\n for (value in name) this.each(d3_selection_property(value, name[value]));\n return this;\n }\n return this.each(d3_selection_property(name, value));\n };\n function d3_selection_property(name, value) {\n function propertyNull() {\n delete this[name];\n }\n function propertyConstant() {\n this[name] = value;\n }\n function propertyFunction() {\n var x = value.apply(this, arguments);\n if (x == null) delete this[name]; else this[name] = x;\n }\n return value == null ? propertyNull : typeof value === \"function\" ? propertyFunction : propertyConstant;\n }\n d3_selectionPrototype.text = function(value) {\n return arguments.length ? this.each(typeof value === \"function\" ? function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n } : value == null ? function() {\n this.textContent = \"\";\n } : function() {\n this.textContent = value;\n }) : this.node().textContent;\n };\n d3_selectionPrototype.html = function(value) {\n return arguments.length ? this.each(typeof value === \"function\" ? function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n } : value == null ? function() {\n this.innerHTML = \"\";\n } : function() {\n this.innerHTML = value;\n }) : this.node().innerHTML;\n };\n d3_selectionPrototype.append = function(name) {\n name = d3_selection_creator(name);\n return this.select(function() {\n return this.appendChild(name.apply(this, arguments));\n });\n };\n function d3_selection_creator(name) {\n function create() {\n var document = this.ownerDocument, namespace = this.namespaceURI;\n return namespace === d3_nsXhtml && document.documentElement.namespaceURI === d3_nsXhtml ? document.createElement(name) : document.createElementNS(namespace, name);\n }\n function createNS() {\n return this.ownerDocument.createElementNS(name.space, name.local);\n }\n return typeof name === \"function\" ? name : (name = d3.ns.qualify(name)).local ? createNS : create;\n }\n d3_selectionPrototype.insert = function(name, before) {\n name = d3_selection_creator(name);\n before = d3_selection_selector(before);\n return this.select(function() {\n return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null);\n });\n };\n d3_selectionPrototype.remove = function() {\n return this.each(d3_selectionRemove);\n };\n function d3_selectionRemove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n }\n d3_selectionPrototype.data = function(value, key) {\n var i = -1, n = this.length, group, node;\n if (!arguments.length) {\n value = new Array(n = (group = this[0]).length);\n while (++i < n) {\n if (node = group[i]) {\n value[i] = node.__data__;\n }\n }\n return value;\n }\n function bind(group, groupData) {\n var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;\n if (key) {\n var nodeByKeyValue = new d3_Map(), keyValues = new Array(n), keyValue;\n for (i = -1; ++i < n; ) {\n if (node = group[i]) {\n if (nodeByKeyValue.has(keyValue = key.call(node, node.__data__, i))) {\n exitNodes[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n keyValues[i] = keyValue;\n }\n }\n for (i = -1; ++i < m; ) {\n if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) {\n enterNodes[i] = d3_selection_dataNode(nodeData);\n } else if (node !== true) {\n updateNodes[i] = node;\n node.__data__ = nodeData;\n }\n nodeByKeyValue.set(keyValue, true);\n }\n for (i = -1; ++i < n; ) {\n if (i in keyValues && nodeByKeyValue.get(keyValues[i]) !== true) {\n exitNodes[i] = group[i];\n }\n }\n } else {\n for (i = -1; ++i < n0; ) {\n node = group[i];\n nodeData = groupData[i];\n if (node) {\n node.__data__ = nodeData;\n updateNodes[i] = node;\n } else {\n enterNodes[i] = d3_selection_dataNode(nodeData);\n }\n }\n for (;i < m; ++i) {\n enterNodes[i] = d3_selection_dataNode(groupData[i]);\n }\n for (;i < n; ++i) {\n exitNodes[i] = group[i];\n }\n }\n enterNodes.update = updateNodes;\n enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;\n enter.push(enterNodes);\n update.push(updateNodes);\n exit.push(exitNodes);\n }\n var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);\n if (typeof value === \"function\") {\n while (++i < n) {\n bind(group = this[i], value.call(group, group.parentNode.__data__, i));\n }\n } else {\n while (++i < n) {\n bind(group = this[i], value);\n }\n }\n update.enter = function() {\n return enter;\n };\n update.exit = function() {\n return exit;\n };\n return update;\n };\n function d3_selection_dataNode(data) {\n return {\n __data__: data\n };\n }\n d3_selectionPrototype.datum = function(value) {\n return arguments.length ? this.property(\"__data__\", value) : this.property(\"__data__\");\n };\n d3_selectionPrototype.filter = function(filter) {\n var subgroups = [], subgroup, group, node;\n if (typeof filter !== \"function\") filter = d3_selection_filter(filter);\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n subgroup.parentNode = (group = this[j]).parentNode;\n for (var i = 0, n = group.length; i < n; i++) {\n if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {\n subgroup.push(node);\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_filter(selector) {\n return function() {\n return d3_selectMatches(this, selector);\n };\n }\n d3_selectionPrototype.order = function() {\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {\n if (node = group[i]) {\n if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n return this;\n };\n d3_selectionPrototype.sort = function(comparator) {\n comparator = d3_selection_sortComparator.apply(this, arguments);\n for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);\n return this.order();\n };\n function d3_selection_sortComparator(comparator) {\n if (!arguments.length) comparator = d3_ascending;\n return function(a, b) {\n return a && b ? comparator(a.__data__, b.__data__) : !a - !b;\n };\n }\n d3_selectionPrototype.each = function(callback) {\n return d3_selection_each(this, function(node, i, j) {\n callback.call(node, node.__data__, i, j);\n });\n };\n function d3_selection_each(groups, callback) {\n for (var j = 0, m = groups.length; j < m; j++) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {\n if (node = group[i]) callback(node, i, j);\n }\n }\n return groups;\n }\n d3_selectionPrototype.call = function(callback) {\n var args = d3_array(arguments);\n callback.apply(args[0] = this, args);\n return this;\n };\n d3_selectionPrototype.empty = function() {\n return !this.node();\n };\n d3_selectionPrototype.node = function() {\n for (var j = 0, m = this.length; j < m; j++) {\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n var node = group[i];\n if (node) return node;\n }\n }\n return null;\n };\n d3_selectionPrototype.size = function() {\n var n = 0;\n d3_selection_each(this, function() {\n ++n;\n });\n return n;\n };\n function d3_selection_enter(selection) {\n d3_subclass(selection, d3_selection_enterPrototype);\n return selection;\n }\n var d3_selection_enterPrototype = [];\n d3.selection.enter = d3_selection_enter;\n d3.selection.enter.prototype = d3_selection_enterPrototype;\n d3_selection_enterPrototype.append = d3_selectionPrototype.append;\n d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;\n d3_selection_enterPrototype.node = d3_selectionPrototype.node;\n d3_selection_enterPrototype.call = d3_selectionPrototype.call;\n d3_selection_enterPrototype.size = d3_selectionPrototype.size;\n d3_selection_enterPrototype.select = function(selector) {\n var subgroups = [], subgroup, subnode, upgroup, group, node;\n for (var j = -1, m = this.length; ++j < m; ) {\n upgroup = (group = this[j]).update;\n subgroups.push(subgroup = []);\n subgroup.parentNode = group.parentNode;\n for (var i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j));\n subnode.__data__ = node.__data__;\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_selection(subgroups);\n };\n d3_selection_enterPrototype.insert = function(name, before) {\n if (arguments.length < 2) before = d3_selection_enterInsertBefore(this);\n return d3_selectionPrototype.insert.call(this, name, before);\n };\n function d3_selection_enterInsertBefore(enter) {\n var i0, j0;\n return function(d, i, j) {\n var group = enter[j].update, n = group.length, node;\n if (j != j0) j0 = j, i0 = 0;\n if (i >= i0) i0 = i + 1;\n while (!(node = group[i0]) && ++i0 < n) ;\n return node;\n };\n }\n d3.select = function(node) {\n var group;\n if (typeof node === \"string\") {\n group = [ d3_select(node, d3_document) ];\n group.parentNode = d3_document.documentElement;\n } else {\n group = [ node ];\n group.parentNode = d3_documentElement(node);\n }\n return d3_selection([ group ]);\n };\n d3.selectAll = function(nodes) {\n var group;\n if (typeof nodes === \"string\") {\n group = d3_array(d3_selectAll(nodes, d3_document));\n group.parentNode = d3_document.documentElement;\n } else {\n group = d3_array(nodes);\n group.parentNode = null;\n }\n return d3_selection([ group ]);\n };\n d3_selectionPrototype.on = function(type, listener, capture) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof type !== \"string\") {\n if (n < 2) listener = false;\n for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));\n return this;\n }\n if (n < 2) return (n = this.node()[\"__on\" + type]) && n._;\n capture = false;\n }\n return this.each(d3_selection_on(type, listener, capture));\n };\n function d3_selection_on(type, listener, capture) {\n var name = \"__on\" + type, i = type.indexOf(\".\"), wrap = d3_selection_onListener;\n if (i > 0) type = type.slice(0, i);\n var filter = d3_selection_onFilters.get(type);\n if (filter) type = filter, wrap = d3_selection_onFilter;\n function onRemove() {\n var l = this[name];\n if (l) {\n this.removeEventListener(type, l, l.$);\n delete this[name];\n }\n }\n function onAdd() {\n var l = wrap(listener, d3_array(arguments));\n onRemove.call(this);\n this.addEventListener(type, this[name] = l, l.$ = capture);\n l._ = listener;\n }\n function removeAll() {\n var re = new RegExp(\"^__on([^.]+)\" + d3.requote(type) + \"$\"), match;\n for (var name in this) {\n if (match = name.match(re)) {\n var l = this[name];\n this.removeEventListener(match[1], l, l.$);\n delete this[name];\n }\n }\n }\n return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll;\n }\n var d3_selection_onFilters = d3.map({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\"\n });\n if (d3_document) {\n d3_selection_onFilters.forEach(function(k) {\n if (\"on\" + k in d3_document) d3_selection_onFilters.remove(k);\n });\n }\n function d3_selection_onListener(listener, argumentz) {\n return function(e) {\n var o = d3.event;\n d3.event = e;\n argumentz[0] = this.__data__;\n try {\n listener.apply(this, argumentz);\n } finally {\n d3.event = o;\n }\n };\n }\n function d3_selection_onFilter(listener, argumentz) {\n var l = d3_selection_onListener(listener, argumentz);\n return function(e) {\n var target = this, related = e.relatedTarget;\n if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) {\n l.call(target, e);\n }\n };\n }\n var d3_event_dragSelect, d3_event_dragId = 0;\n function d3_event_dragSuppress(node) {\n var name = \".dragsuppress-\" + ++d3_event_dragId, click = \"click\" + name, w = d3.select(d3_window(node)).on(\"touchmove\" + name, d3_eventPreventDefault).on(\"dragstart\" + name, d3_eventPreventDefault).on(\"selectstart\" + name, d3_eventPreventDefault);\n if (d3_event_dragSelect == null) {\n d3_event_dragSelect = \"onselectstart\" in node ? false : d3_vendorSymbol(node.style, \"userSelect\");\n }\n if (d3_event_dragSelect) {\n var style = d3_documentElement(node).style, select = style[d3_event_dragSelect];\n style[d3_event_dragSelect] = \"none\";\n }\n return function(suppressClick) {\n w.on(name, null);\n if (d3_event_dragSelect) style[d3_event_dragSelect] = select;\n if (suppressClick) {\n var off = function() {\n w.on(click, null);\n };\n w.on(click, function() {\n d3_eventPreventDefault();\n off();\n }, true);\n setTimeout(off, 0);\n }\n };\n }\n d3.mouse = function(container) {\n return d3_mousePoint(container, d3_eventSource());\n };\n var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;\n function d3_mousePoint(container, e) {\n if (e.changedTouches) e = e.changedTouches[0];\n var svg = container.ownerSVGElement || container;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n if (d3_mouse_bug44083 < 0) {\n var window = d3_window(container);\n if (window.scrollX || window.scrollY) {\n svg = d3.select(\"body\").append(\"svg\").style({\n position: \"absolute\",\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n border: \"none\"\n }, \"important\");\n var ctm = svg[0][0].getScreenCTM();\n d3_mouse_bug44083 = !(ctm.f || ctm.e);\n svg.remove();\n }\n }\n if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX, \n point.y = e.clientY;\n point = point.matrixTransform(container.getScreenCTM().inverse());\n return [ point.x, point.y ];\n }\n var rect = container.getBoundingClientRect();\n return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];\n }\n d3.touch = function(container, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches;\n if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return d3_mousePoint(container, touch);\n }\n }\n };\n d3.behavior.drag = function() {\n var event = d3_eventDispatch(drag, \"drag\", \"dragstart\", \"dragend\"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_window, \"mousemove\", \"mouseup\"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_identity, \"touchmove\", \"touchend\");\n function drag() {\n this.on(\"mousedown.drag\", mousedown).on(\"touchstart.drag\", touchstart);\n }\n function dragstart(id, position, subject, move, end) {\n return function() {\n var that = this, target = d3.event.target.correspondingElement || d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = \".drag\" + (dragId == null ? \"\" : \"-\" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId);\n if (origin) {\n dragOffset = origin.apply(that, arguments);\n dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ];\n } else {\n dragOffset = [ 0, 0 ];\n }\n dispatch({\n type: \"dragstart\"\n });\n function moved() {\n var position1 = position(parent, dragId), dx, dy;\n if (!position1) return;\n dx = position1[0] - position0[0];\n dy = position1[1] - position0[1];\n dragged |= dx | dy;\n position0 = position1;\n dispatch({\n type: \"drag\",\n x: position1[0] + dragOffset[0],\n y: position1[1] + dragOffset[1],\n dx: dx,\n dy: dy\n });\n }\n function ended() {\n if (!position(parent, dragId)) return;\n dragSubject.on(move + dragName, null).on(end + dragName, null);\n dragRestore(dragged);\n dispatch({\n type: \"dragend\"\n });\n }\n };\n }\n drag.origin = function(x) {\n if (!arguments.length) return origin;\n origin = x;\n return drag;\n };\n return d3.rebind(drag, event, \"on\");\n };\n function d3_behavior_dragTouchId() {\n return d3.event.changedTouches[0].identifier;\n }\n d3.touches = function(container, touches) {\n if (arguments.length < 2) touches = d3_eventSource().touches;\n return touches ? d3_array(touches).map(function(touch) {\n var point = d3_mousePoint(container, touch);\n point.identifier = touch.identifier;\n return point;\n }) : [];\n };\n var ε = 1e-6, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π;\n function d3_sgn(x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n }\n function d3_cross2d(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n }\n function d3_acos(x) {\n return x > 1 ? 0 : x < -1 ? π : Math.acos(x);\n }\n function d3_asin(x) {\n return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x);\n }\n function d3_sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n }\n function d3_cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n }\n function d3_tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n }\n function d3_haversin(x) {\n return (x = Math.sin(x / 2)) * x;\n }\n var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4;\n d3.interpolateZoom = function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;\n if (d2 < ε2) {\n S = Math.log(w1 / w0) / ρ;\n i = function(t) {\n return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * t * S) ];\n };\n } else {\n var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / ρ;\n i = function(t) {\n var s = t * S, coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0));\n return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ];\n };\n }\n i.duration = S * 1e3;\n return i;\n };\n d3.behavior.zoom = function() {\n var view = {\n x: 0,\n y: 0,\n k: 1\n }, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, duration = 250, zooming = 0, mousedown = \"mousedown.zoom\", mousemove = \"mousemove.zoom\", mouseup = \"mouseup.zoom\", mousewheelTimer, touchstart = \"touchstart.zoom\", touchtime, event = d3_eventDispatch(zoom, \"zoomstart\", \"zoom\", \"zoomend\"), x0, x1, y0, y1;\n if (!d3_behavior_zoomWheel) {\n d3_behavior_zoomWheel = \"onwheel\" in d3_document ? (d3_behavior_zoomDelta = function() {\n return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);\n }, \"wheel\") : \"onmousewheel\" in d3_document ? (d3_behavior_zoomDelta = function() {\n return d3.event.wheelDelta;\n }, \"mousewheel\") : (d3_behavior_zoomDelta = function() {\n return -d3.event.detail;\n }, \"MozMousePixelScroll\");\n }\n function zoom(g) {\n g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + \".zoom\", mousewheeled).on(\"dblclick.zoom\", dblclicked).on(touchstart, touchstarted);\n }\n zoom.event = function(g) {\n g.each(function() {\n var dispatch = event.of(this, arguments), view1 = view;\n if (d3_transitionInheritId) {\n d3.select(this).transition().each(\"start.zoom\", function() {\n view = this.__chart__ || {\n x: 0,\n y: 0,\n k: 1\n };\n zoomstarted(dispatch);\n }).tween(\"zoom:zoom\", function() {\n var dx = size[0], dy = size[1], cx = center0 ? center0[0] : dx / 2, cy = center0 ? center0[1] : dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]);\n return function(t) {\n var l = i(t), k = dx / l[2];\n this.__chart__ = view = {\n x: cx - l[0] * k,\n y: cy - l[1] * k,\n k: k\n };\n zoomed(dispatch);\n };\n }).each(\"interrupt.zoom\", function() {\n zoomended(dispatch);\n }).each(\"end.zoom\", function() {\n zoomended(dispatch);\n });\n } else {\n this.__chart__ = view;\n zoomstarted(dispatch);\n zoomed(dispatch);\n zoomended(dispatch);\n }\n });\n };\n zoom.translate = function(_) {\n if (!arguments.length) return [ view.x, view.y ];\n view = {\n x: +_[0],\n y: +_[1],\n k: view.k\n };\n rescale();\n return zoom;\n };\n zoom.scale = function(_) {\n if (!arguments.length) return view.k;\n view = {\n x: view.x,\n y: view.y,\n k: null\n };\n scaleTo(+_);\n rescale();\n return zoom;\n };\n zoom.scaleExtent = function(_) {\n if (!arguments.length) return scaleExtent;\n scaleExtent = _ == null ? d3_behavior_zoomInfinity : [ +_[0], +_[1] ];\n return zoom;\n };\n zoom.center = function(_) {\n if (!arguments.length) return center;\n center = _ && [ +_[0], +_[1] ];\n return zoom;\n };\n zoom.size = function(_) {\n if (!arguments.length) return size;\n size = _ && [ +_[0], +_[1] ];\n return zoom;\n };\n zoom.duration = function(_) {\n if (!arguments.length) return duration;\n duration = +_;\n return zoom;\n };\n zoom.x = function(z) {\n if (!arguments.length) return x1;\n x1 = z;\n x0 = z.copy();\n view = {\n x: 0,\n y: 0,\n k: 1\n };\n return zoom;\n };\n zoom.y = function(z) {\n if (!arguments.length) return y1;\n y1 = z;\n y0 = z.copy();\n view = {\n x: 0,\n y: 0,\n k: 1\n };\n return zoom;\n };\n function location(p) {\n return [ (p[0] - view.x) / view.k, (p[1] - view.y) / view.k ];\n }\n function point(l) {\n return [ l[0] * view.k + view.x, l[1] * view.k + view.y ];\n }\n function scaleTo(s) {\n view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));\n }\n function translateTo(p, l) {\n l = point(l);\n view.x += p[0] - l[0];\n view.y += p[1] - l[1];\n }\n function zoomTo(that, p, l, k) {\n that.__chart__ = {\n x: view.x,\n y: view.y,\n k: view.k\n };\n scaleTo(Math.pow(2, k));\n translateTo(center0 = p, l);\n that = d3.select(that);\n if (duration > 0) that = that.transition().duration(duration);\n that.call(zoom.event);\n }\n function rescale() {\n if (x1) x1.domain(x0.range().map(function(x) {\n return (x - view.x) / view.k;\n }).map(x0.invert));\n if (y1) y1.domain(y0.range().map(function(y) {\n return (y - view.y) / view.k;\n }).map(y0.invert));\n }\n function zoomstarted(dispatch) {\n if (!zooming++) dispatch({\n type: \"zoomstart\"\n });\n }\n function zoomed(dispatch) {\n rescale();\n dispatch({\n type: \"zoom\",\n scale: view.k,\n translate: [ view.x, view.y ]\n });\n }\n function zoomended(dispatch) {\n if (!--zooming) dispatch({\n type: \"zoomend\"\n }), center0 = null;\n }\n function mousedowned() {\n var that = this, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that);\n d3_selection_interrupt.call(that);\n zoomstarted(dispatch);\n function moved() {\n dragged = 1;\n translateTo(d3.mouse(that), location0);\n zoomed(dispatch);\n }\n function ended() {\n subject.on(mousemove, null).on(mouseup, null);\n dragRestore(dragged);\n zoomended(dispatch);\n }\n }\n function touchstarted() {\n var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = \".zoom-\" + d3.event.changedTouches[0].identifier, touchmove = \"touchmove\" + zoomName, touchend = \"touchend\" + zoomName, targets = [], subject = d3.select(that), dragRestore = d3_event_dragSuppress(that);\n started();\n zoomstarted(dispatch);\n subject.on(mousedown, null).on(touchstart, started);\n function relocate() {\n var touches = d3.touches(that);\n scale0 = view.k;\n touches.forEach(function(t) {\n if (t.identifier in locations0) locations0[t.identifier] = location(t);\n });\n return touches;\n }\n function started() {\n var target = d3.event.target;\n d3.select(target).on(touchmove, moved).on(touchend, ended);\n targets.push(target);\n var changed = d3.event.changedTouches;\n for (var i = 0, n = changed.length; i < n; ++i) {\n locations0[changed[i].identifier] = null;\n }\n var touches = relocate(), now = Date.now();\n if (touches.length === 1) {\n if (now - touchtime < 500) {\n var p = touches[0];\n zoomTo(that, p, locations0[p.identifier], Math.floor(Math.log(view.k) / Math.LN2) + 1);\n d3_eventPreventDefault();\n }\n touchtime = now;\n } else if (touches.length > 1) {\n var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1];\n distance0 = dx * dx + dy * dy;\n }\n }\n function moved() {\n var touches = d3.touches(that), p0, l0, p1, l1;\n d3_selection_interrupt.call(that);\n for (var i = 0, n = touches.length; i < n; ++i, l1 = null) {\n p1 = touches[i];\n if (l1 = locations0[p1.identifier]) {\n if (l0) break;\n p0 = p1, l0 = l1;\n }\n }\n if (l1) {\n var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0);\n p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];\n l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];\n scaleTo(scale1 * scale0);\n }\n touchtime = null;\n translateTo(p0, l0);\n zoomed(dispatch);\n }\n function ended() {\n if (d3.event.touches.length) {\n var changed = d3.event.changedTouches;\n for (var i = 0, n = changed.length; i < n; ++i) {\n delete locations0[changed[i].identifier];\n }\n for (var identifier in locations0) {\n return void relocate();\n }\n }\n d3.selectAll(targets).on(zoomName, null);\n subject.on(mousedown, mousedowned).on(touchstart, touchstarted);\n dragRestore();\n zoomended(dispatch);\n }\n }\n function mousewheeled() {\n var dispatch = event.of(this, arguments);\n if (mousewheelTimer) clearTimeout(mousewheelTimer); else d3_selection_interrupt.call(this), \n translate0 = location(center0 = center || d3.mouse(this)), zoomstarted(dispatch);\n mousewheelTimer = setTimeout(function() {\n mousewheelTimer = null;\n zoomended(dispatch);\n }, 50);\n d3_eventPreventDefault();\n scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k);\n translateTo(center0, translate0);\n zoomed(dispatch);\n }\n function dblclicked() {\n var p = d3.mouse(this), k = Math.log(view.k) / Math.LN2;\n zoomTo(this, p, location(p), d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1);\n }\n return d3.rebind(zoom, event, \"on\");\n };\n var d3_behavior_zoomInfinity = [ 0, Infinity ], d3_behavior_zoomDelta, d3_behavior_zoomWheel;\n d3.color = d3_color;\n function d3_color() {}\n d3_color.prototype.toString = function() {\n return this.rgb() + \"\";\n };\n d3.hsl = d3_hsl;\n function d3_hsl(h, s, l) {\n return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse(\"\" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l);\n }\n var d3_hslPrototype = d3_hsl.prototype = new d3_color();\n d3_hslPrototype.brighter = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n return new d3_hsl(this.h, this.s, this.l / k);\n };\n d3_hslPrototype.darker = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n return new d3_hsl(this.h, this.s, k * this.l);\n };\n d3_hslPrototype.rgb = function() {\n return d3_hsl_rgb(this.h, this.s, this.l);\n };\n function d3_hsl_rgb(h, s, l) {\n var m1, m2;\n h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h;\n s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n m2 = l <= .5 ? l * (1 + s) : l + s - l * s;\n m1 = 2 * l - m2;\n function v(h) {\n if (h > 360) h -= 360; else if (h < 0) h += 360;\n if (h < 60) return m1 + (m2 - m1) * h / 60;\n if (h < 180) return m2;\n if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;\n return m1;\n }\n function vv(h) {\n return Math.round(v(h) * 255);\n }\n return new d3_rgb(vv(h + 120), vv(h), vv(h - 120));\n }\n d3.hcl = d3_hcl;\n function d3_hcl(h, c, l) {\n return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l);\n }\n var d3_hclPrototype = d3_hcl.prototype = new d3_color();\n d3_hclPrototype.brighter = function(k) {\n return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));\n };\n d3_hclPrototype.darker = function(k) {\n return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));\n };\n d3_hclPrototype.rgb = function() {\n return d3_hcl_lab(this.h, this.c, this.l).rgb();\n };\n function d3_hcl_lab(h, c, l) {\n if (isNaN(h)) h = 0;\n if (isNaN(c)) c = 0;\n return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);\n }\n d3.lab = d3_lab;\n function d3_lab(l, a, b) {\n return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.h, l.c, l.l) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b);\n }\n var d3_lab_K = 18;\n var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;\n var d3_labPrototype = d3_lab.prototype = new d3_color();\n d3_labPrototype.brighter = function(k) {\n return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);\n };\n d3_labPrototype.darker = function(k) {\n return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);\n };\n d3_labPrototype.rgb = function() {\n return d3_lab_rgb(this.l, this.a, this.b);\n };\n function d3_lab_rgb(l, a, b) {\n var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;\n x = d3_lab_xyz(x) * d3_lab_X;\n y = d3_lab_xyz(y) * d3_lab_Y;\n z = d3_lab_xyz(z) * d3_lab_Z;\n return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));\n }\n function d3_lab_hcl(l, a, b) {\n return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l);\n }\n function d3_lab_xyz(x) {\n return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;\n }\n function d3_xyz_lab(x) {\n return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;\n }\n function d3_xyz_rgb(r) {\n return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));\n }\n d3.rgb = d3_rgb;\n function d3_rgb(r, g, b) {\n return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse(\"\" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b);\n }\n function d3_rgbNumber(value) {\n return new d3_rgb(value >> 16, value >> 8 & 255, value & 255);\n }\n function d3_rgbString(value) {\n return d3_rgbNumber(value) + \"\";\n }\n var d3_rgbPrototype = d3_rgb.prototype = new d3_color();\n d3_rgbPrototype.brighter = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n var r = this.r, g = this.g, b = this.b, i = 30;\n if (!r && !g && !b) return new d3_rgb(i, i, i);\n if (r && r < i) r = i;\n if (g && g < i) g = i;\n if (b && b < i) b = i;\n return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k));\n };\n d3_rgbPrototype.darker = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n return new d3_rgb(k * this.r, k * this.g, k * this.b);\n };\n d3_rgbPrototype.hsl = function() {\n return d3_rgb_hsl(this.r, this.g, this.b);\n };\n d3_rgbPrototype.toString = function() {\n return \"#\" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);\n };\n function d3_rgb_hex(v) {\n return v < 16 ? \"0\" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);\n }\n function d3_rgb_parse(format, rgb, hsl) {\n var r = 0, g = 0, b = 0, m1, m2, color;\n m1 = /([a-z]+)\\((.*)\\)/.exec(format = format.toLowerCase());\n if (m1) {\n m2 = m1[2].split(\",\");\n switch (m1[1]) {\n case \"hsl\":\n {\n return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);\n }\n\n case \"rgb\":\n {\n return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));\n }\n }\n }\n if (color = d3_rgb_names.get(format)) {\n return rgb(color.r, color.g, color.b);\n }\n if (format != null && format.charAt(0) === \"#\" && !isNaN(color = parseInt(format.slice(1), 16))) {\n if (format.length === 4) {\n r = (color & 3840) >> 4;\n r = r >> 4 | r;\n g = color & 240;\n g = g >> 4 | g;\n b = color & 15;\n b = b << 4 | b;\n } else if (format.length === 7) {\n r = (color & 16711680) >> 16;\n g = (color & 65280) >> 8;\n b = color & 255;\n }\n }\n return rgb(r, g, b);\n }\n function d3_rgb_hsl(r, g, b) {\n var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;\n if (d) {\n s = l < .5 ? d / (max + min) : d / (2 - max - min);\n if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;\n h *= 60;\n } else {\n h = NaN;\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new d3_hsl(h, s, l);\n }\n function d3_rgb_lab(r, g, b) {\n r = d3_rgb_xyz(r);\n g = d3_rgb_xyz(g);\n b = d3_rgb_xyz(b);\n var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);\n return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));\n }\n function d3_rgb_xyz(r) {\n return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);\n }\n function d3_rgb_parseNumber(c) {\n var f = parseFloat(c);\n return c.charAt(c.length - 1) === \"%\" ? Math.round(f * 2.55) : f;\n }\n var d3_rgb_names = d3.map({\n aliceblue: 15792383,\n antiquewhite: 16444375,\n aqua: 65535,\n aquamarine: 8388564,\n azure: 15794175,\n beige: 16119260,\n bisque: 16770244,\n black: 0,\n blanchedalmond: 16772045,\n blue: 255,\n blueviolet: 9055202,\n brown: 10824234,\n burlywood: 14596231,\n cadetblue: 6266528,\n chartreuse: 8388352,\n chocolate: 13789470,\n coral: 16744272,\n cornflowerblue: 6591981,\n cornsilk: 16775388,\n crimson: 14423100,\n cyan: 65535,\n darkblue: 139,\n darkcyan: 35723,\n darkgoldenrod: 12092939,\n darkgray: 11119017,\n darkgreen: 25600,\n darkgrey: 11119017,\n darkkhaki: 12433259,\n darkmagenta: 9109643,\n darkolivegreen: 5597999,\n darkorange: 16747520,\n darkorchid: 10040012,\n darkred: 9109504,\n darksalmon: 15308410,\n darkseagreen: 9419919,\n darkslateblue: 4734347,\n darkslategray: 3100495,\n darkslategrey: 3100495,\n darkturquoise: 52945,\n darkviolet: 9699539,\n deeppink: 16716947,\n deepskyblue: 49151,\n dimgray: 6908265,\n dimgrey: 6908265,\n dodgerblue: 2003199,\n firebrick: 11674146,\n floralwhite: 16775920,\n forestgreen: 2263842,\n fuchsia: 16711935,\n gainsboro: 14474460,\n ghostwhite: 16316671,\n gold: 16766720,\n goldenrod: 14329120,\n gray: 8421504,\n green: 32768,\n greenyellow: 11403055,\n grey: 8421504,\n honeydew: 15794160,\n hotpink: 16738740,\n indianred: 13458524,\n indigo: 4915330,\n ivory: 16777200,\n khaki: 15787660,\n lavender: 15132410,\n lavenderblush: 16773365,\n lawngreen: 8190976,\n lemonchiffon: 16775885,\n lightblue: 11393254,\n lightcoral: 15761536,\n lightcyan: 14745599,\n lightgoldenrodyellow: 16448210,\n lightgray: 13882323,\n lightgreen: 9498256,\n lightgrey: 13882323,\n lightpink: 16758465,\n lightsalmon: 16752762,\n lightseagreen: 2142890,\n lightskyblue: 8900346,\n lightslategray: 7833753,\n lightslategrey: 7833753,\n lightsteelblue: 11584734,\n lightyellow: 16777184,\n lime: 65280,\n limegreen: 3329330,\n linen: 16445670,\n magenta: 16711935,\n maroon: 8388608,\n mediumaquamarine: 6737322,\n mediumblue: 205,\n mediumorchid: 12211667,\n mediumpurple: 9662683,\n mediumseagreen: 3978097,\n mediumslateblue: 8087790,\n mediumspringgreen: 64154,\n mediumturquoise: 4772300,\n mediumvioletred: 13047173,\n midnightblue: 1644912,\n mintcream: 16121850,\n mistyrose: 16770273,\n moccasin: 16770229,\n navajowhite: 16768685,\n navy: 128,\n oldlace: 16643558,\n olive: 8421376,\n olivedrab: 7048739,\n orange: 16753920,\n orangered: 16729344,\n orchid: 14315734,\n palegoldenrod: 15657130,\n palegreen: 10025880,\n paleturquoise: 11529966,\n palevioletred: 14381203,\n papayawhip: 16773077,\n peachpuff: 16767673,\n peru: 13468991,\n pink: 16761035,\n plum: 14524637,\n powderblue: 11591910,\n purple: 8388736,\n rebeccapurple: 6697881,\n red: 16711680,\n rosybrown: 12357519,\n royalblue: 4286945,\n saddlebrown: 9127187,\n salmon: 16416882,\n sandybrown: 16032864,\n seagreen: 3050327,\n seashell: 16774638,\n sienna: 10506797,\n silver: 12632256,\n skyblue: 8900331,\n slateblue: 6970061,\n slategray: 7372944,\n slategrey: 7372944,\n snow: 16775930,\n springgreen: 65407,\n steelblue: 4620980,\n tan: 13808780,\n teal: 32896,\n thistle: 14204888,\n tomato: 16737095,\n turquoise: 4251856,\n violet: 15631086,\n wheat: 16113331,\n white: 16777215,\n whitesmoke: 16119285,\n yellow: 16776960,\n yellowgreen: 10145074\n });\n d3_rgb_names.forEach(function(key, value) {\n d3_rgb_names.set(key, d3_rgbNumber(value));\n });\n function d3_functor(v) {\n return typeof v === \"function\" ? v : function() {\n return v;\n };\n }\n d3.functor = d3_functor;\n d3.xhr = d3_xhrType(d3_identity);\n function d3_xhrType(response) {\n return function(url, mimeType, callback) {\n if (arguments.length === 2 && typeof mimeType === \"function\") callback = mimeType, \n mimeType = null;\n return d3_xhr(url, mimeType, response, callback);\n };\n }\n function d3_xhr(url, mimeType, response, callback) {\n var xhr = {}, dispatch = d3.dispatch(\"beforesend\", \"progress\", \"load\", \"error\"), headers = {}, request = new XMLHttpRequest(), responseType = null;\n if (this.XDomainRequest && !(\"withCredentials\" in request) && /^(http(s)?:)?\\/\\//.test(url)) request = new XDomainRequest();\n \"onload\" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {\n request.readyState > 3 && respond();\n };\n function respond() {\n var status = request.status, result;\n if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) {\n try {\n result = response.call(xhr, request);\n } catch (e) {\n dispatch.error.call(xhr, e);\n return;\n }\n dispatch.load.call(xhr, result);\n } else {\n dispatch.error.call(xhr, request);\n }\n }\n request.onprogress = function(event) {\n var o = d3.event;\n d3.event = event;\n try {\n dispatch.progress.call(xhr, request);\n } finally {\n d3.event = o;\n }\n };\n xhr.header = function(name, value) {\n name = (name + \"\").toLowerCase();\n if (arguments.length < 2) return headers[name];\n if (value == null) delete headers[name]; else headers[name] = value + \"\";\n return xhr;\n };\n xhr.mimeType = function(value) {\n if (!arguments.length) return mimeType;\n mimeType = value == null ? null : value + \"\";\n return xhr;\n };\n xhr.responseType = function(value) {\n if (!arguments.length) return responseType;\n responseType = value;\n return xhr;\n };\n xhr.response = function(value) {\n response = value;\n return xhr;\n };\n [ \"get\", \"post\" ].forEach(function(method) {\n xhr[method] = function() {\n return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments)));\n };\n });\n xhr.send = function(method, data, callback) {\n if (arguments.length === 2 && typeof data === \"function\") callback = data, data = null;\n request.open(method, url, true);\n if (mimeType != null && !(\"accept\" in headers)) headers[\"accept\"] = mimeType + \",*/*\";\n if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);\n if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);\n if (responseType != null) request.responseType = responseType;\n if (callback != null) xhr.on(\"error\", callback).on(\"load\", function(request) {\n callback(null, request);\n });\n dispatch.beforesend.call(xhr, request);\n request.send(data == null ? null : data);\n return xhr;\n };\n xhr.abort = function() {\n request.abort();\n return xhr;\n };\n d3.rebind(xhr, dispatch, \"on\");\n return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));\n }\n function d3_xhr_fixCallback(callback) {\n return callback.length === 1 ? function(error, request) {\n callback(error == null ? request : null);\n } : callback;\n }\n function d3_xhrHasResponse(request) {\n var type = request.responseType;\n return type && type !== \"text\" ? request.response : request.responseText;\n }\n d3.dsv = function(delimiter, mimeType) {\n var reFormat = new RegExp('[\"' + delimiter + \"\\n]\"), delimiterCode = delimiter.charCodeAt(0);\n function dsv(url, row, callback) {\n if (arguments.length < 3) callback = row, row = null;\n var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback);\n xhr.row = function(_) {\n return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row;\n };\n return xhr;\n }\n function response(request) {\n return dsv.parse(request.responseText);\n }\n function typedResponse(f) {\n return function(request) {\n return dsv.parse(request.responseText, f);\n };\n }\n dsv.parse = function(text, f) {\n var o;\n return dsv.parseRows(text, function(row, i) {\n if (o) return o(row, i - 1);\n var a = new Function(\"d\", \"return {\" + row.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"]\";\n }).join(\",\") + \"}\");\n o = f ? function(row, i) {\n return f(a(row), i);\n } : a;\n });\n };\n dsv.parseRows = function(text, f) {\n var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;\n function token() {\n if (I >= N) return EOF;\n if (eol) return eol = false, EOL;\n var j = I;\n if (text.charCodeAt(j) === 34) {\n var i = j;\n while (i++ < N) {\n if (text.charCodeAt(i) === 34) {\n if (text.charCodeAt(i + 1) !== 34) break;\n ++i;\n }\n }\n I = i + 2;\n var c = text.charCodeAt(i + 1);\n if (c === 13) {\n eol = true;\n if (text.charCodeAt(i + 2) === 10) ++I;\n } else if (c === 10) {\n eol = true;\n }\n return text.slice(j + 1, i).replace(/\"\"/g, '\"');\n }\n while (I < N) {\n var c = text.charCodeAt(I++), k = 1;\n if (c === 10) eol = true; else if (c === 13) {\n eol = true;\n if (text.charCodeAt(I) === 10) ++I, ++k;\n } else if (c !== delimiterCode) continue;\n return text.slice(j, I - k);\n }\n return text.slice(j);\n }\n while ((t = token()) !== EOF) {\n var a = [];\n while (t !== EOL && t !== EOF) {\n a.push(t);\n t = token();\n }\n if (f && (a = f(a, n++)) == null) continue;\n rows.push(a);\n }\n return rows;\n };\n dsv.format = function(rows) {\n if (Array.isArray(rows[0])) return dsv.formatRows(rows);\n var fieldSet = new d3_Set(), fields = [];\n rows.forEach(function(row) {\n for (var field in row) {\n if (!fieldSet.has(field)) {\n fields.push(fieldSet.add(field));\n }\n }\n });\n return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) {\n return fields.map(function(field) {\n return formatValue(row[field]);\n }).join(delimiter);\n })).join(\"\\n\");\n };\n dsv.formatRows = function(rows) {\n return rows.map(formatRow).join(\"\\n\");\n };\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n function formatValue(text) {\n return reFormat.test(text) ? '\"' + text.replace(/\\\"/g, '\"\"') + '\"' : text;\n }\n return dsv;\n };\n d3.csv = d3.dsv(\",\", \"text/csv\");\n d3.tsv = d3.dsv(\"\t\", \"text/tab-separated-values\");\n var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_frame = this[d3_vendorSymbol(this, \"requestAnimationFrame\")] || function(callback) {\n setTimeout(callback, 17);\n };\n d3.timer = function() {\n d3_timer.apply(this, arguments);\n };\n function d3_timer(callback, delay, then) {\n var n = arguments.length;\n if (n < 2) delay = 0;\n if (n < 3) then = Date.now();\n var time = then + delay, timer = {\n c: callback,\n t: time,\n n: null\n };\n if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer;\n d3_timer_queueTail = timer;\n if (!d3_timer_interval) {\n d3_timer_timeout = clearTimeout(d3_timer_timeout);\n d3_timer_interval = 1;\n d3_timer_frame(d3_timer_step);\n }\n return timer;\n }\n function d3_timer_step() {\n var now = d3_timer_mark(), delay = d3_timer_sweep() - now;\n if (delay > 24) {\n if (isFinite(delay)) {\n clearTimeout(d3_timer_timeout);\n d3_timer_timeout = setTimeout(d3_timer_step, delay);\n }\n d3_timer_interval = 0;\n } else {\n d3_timer_interval = 1;\n d3_timer_frame(d3_timer_step);\n }\n }\n d3.timer.flush = function() {\n d3_timer_mark();\n d3_timer_sweep();\n };\n function d3_timer_mark() {\n var now = Date.now(), timer = d3_timer_queueHead;\n while (timer) {\n if (now >= timer.t && timer.c(now - timer.t)) timer.c = null;\n timer = timer.n;\n }\n return now;\n }\n function d3_timer_sweep() {\n var t0, t1 = d3_timer_queueHead, time = Infinity;\n while (t1) {\n if (t1.c) {\n if (t1.t < time) time = t1.t;\n t1 = (t0 = t1).n;\n } else {\n t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n;\n }\n }\n d3_timer_queueTail = t0;\n return time;\n }\n function d3_format_precision(x, p) {\n return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1);\n }\n d3.round = function(x, n) {\n return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);\n };\n var d3_formatPrefixes = [ \"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\" ].map(d3_formatPrefix);\n d3.formatPrefix = function(value, precision) {\n var i = 0;\n if (value = +value) {\n if (value < 0) value *= -1;\n if (precision) value = d3.round(value, d3_format_precision(value, precision));\n i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);\n i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3));\n }\n return d3_formatPrefixes[8 + i / 3];\n };\n function d3_formatPrefix(d, i) {\n var k = Math.pow(10, abs(8 - i) * 3);\n return {\n scale: i > 8 ? function(d) {\n return d / k;\n } : function(d) {\n return d * k;\n },\n symbol: d\n };\n }\n function d3_locale_numberFormat(locale) {\n var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping && locale_thousands ? function(value, width) {\n var i = value.length, t = [], j = 0, g = locale_grouping[0], length = 0;\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = locale_grouping[j = (j + 1) % locale_grouping.length];\n }\n return t.reverse().join(locale_thousands);\n } : d3_identity;\n return function(specifier) {\n var match = d3_format_re.exec(specifier), fill = match[1] || \" \", align = match[2] || \">\", sign = match[3] || \"-\", symbol = match[4] || \"\", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = \"\", suffix = \"\", integer = false, exponent = true;\n if (precision) precision = +precision.substring(1);\n if (zfill || fill === \"0\" && align === \"=\") {\n zfill = fill = \"0\";\n align = \"=\";\n }\n switch (type) {\n case \"n\":\n comma = true;\n type = \"g\";\n break;\n\n case \"%\":\n scale = 100;\n suffix = \"%\";\n type = \"f\";\n break;\n\n case \"p\":\n scale = 100;\n suffix = \"%\";\n type = \"r\";\n break;\n\n case \"b\":\n case \"o\":\n case \"x\":\n case \"X\":\n if (symbol === \"#\") prefix = \"0\" + type.toLowerCase();\n\n case \"c\":\n exponent = false;\n\n case \"d\":\n integer = true;\n precision = 0;\n break;\n\n case \"s\":\n scale = -1;\n type = \"r\";\n break;\n }\n if (symbol === \"$\") prefix = locale_currency[0], suffix = locale_currency[1];\n if (type == \"r\" && !precision) type = \"g\";\n if (precision != null) {\n if (type == \"g\") precision = Math.max(1, Math.min(21, precision)); else if (type == \"e\" || type == \"f\") precision = Math.max(0, Math.min(20, precision));\n }\n type = d3_format_types.get(type) || d3_format_typeDefault;\n var zcomma = zfill && comma;\n return function(value) {\n var fullSuffix = suffix;\n if (integer && value % 1) return \"\";\n var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, \"-\") : sign === \"-\" ? \"\" : sign;\n if (scale < 0) {\n var unit = d3.formatPrefix(value, precision);\n value = unit.scale(value);\n fullSuffix = unit.symbol + suffix;\n } else {\n value *= scale;\n }\n value = type(value, precision);\n var i = value.lastIndexOf(\".\"), before, after;\n if (i < 0) {\n var j = exponent ? value.lastIndexOf(\"e\") : -1;\n if (j < 0) before = value, after = \"\"; else before = value.substring(0, j), after = value.substring(j);\n } else {\n before = value.substring(0, i);\n after = locale_decimal + value.substring(i + 1);\n }\n if (!zfill && comma) before = formatGroup(before, Infinity);\n var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : \"\";\n if (zcomma) before = formatGroup(padding + before, padding.length ? width - after.length : Infinity);\n negative += prefix;\n value = before + after;\n return (align === \"<\" ? negative + value + padding : align === \">\" ? padding + negative + value : align === \"^\" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix;\n };\n };\n }\n var d3_format_re = /(?:([^{])?([<>=^]))?([+\\- ])?([$#])?(0)?(\\d+)?(,)?(\\.-?\\d+)?([a-z%])?/i;\n var d3_format_types = d3.map({\n b: function(x) {\n return x.toString(2);\n },\n c: function(x) {\n return String.fromCharCode(x);\n },\n o: function(x) {\n return x.toString(8);\n },\n x: function(x) {\n return x.toString(16);\n },\n X: function(x) {\n return x.toString(16).toUpperCase();\n },\n g: function(x, p) {\n return x.toPrecision(p);\n },\n e: function(x, p) {\n return x.toExponential(p);\n },\n f: function(x, p) {\n return x.toFixed(p);\n },\n r: function(x, p) {\n return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p))));\n }\n });\n function d3_format_typeDefault(x) {\n return x + \"\";\n }\n var d3_time = d3.time = {}, d3_date = Date;\n function d3_date_utc() {\n this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);\n }\n d3_date_utc.prototype = {\n getDate: function() {\n return this._.getUTCDate();\n },\n getDay: function() {\n return this._.getUTCDay();\n },\n getFullYear: function() {\n return this._.getUTCFullYear();\n },\n getHours: function() {\n return this._.getUTCHours();\n },\n getMilliseconds: function() {\n return this._.getUTCMilliseconds();\n },\n getMinutes: function() {\n return this._.getUTCMinutes();\n },\n getMonth: function() {\n return this._.getUTCMonth();\n },\n getSeconds: function() {\n return this._.getUTCSeconds();\n },\n getTime: function() {\n return this._.getTime();\n },\n getTimezoneOffset: function() {\n return 0;\n },\n valueOf: function() {\n return this._.valueOf();\n },\n setDate: function() {\n d3_time_prototype.setUTCDate.apply(this._, arguments);\n },\n setDay: function() {\n d3_time_prototype.setUTCDay.apply(this._, arguments);\n },\n setFullYear: function() {\n d3_time_prototype.setUTCFullYear.apply(this._, arguments);\n },\n setHours: function() {\n d3_time_prototype.setUTCHours.apply(this._, arguments);\n },\n setMilliseconds: function() {\n d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);\n },\n setMinutes: function() {\n d3_time_prototype.setUTCMinutes.apply(this._, arguments);\n },\n setMonth: function() {\n d3_time_prototype.setUTCMonth.apply(this._, arguments);\n },\n setSeconds: function() {\n d3_time_prototype.setUTCSeconds.apply(this._, arguments);\n },\n setTime: function() {\n d3_time_prototype.setTime.apply(this._, arguments);\n }\n };\n var d3_time_prototype = Date.prototype;\n function d3_time_interval(local, step, number) {\n function round(date) {\n var d0 = local(date), d1 = offset(d0, 1);\n return date - d0 < d1 - date ? d0 : d1;\n }\n function ceil(date) {\n step(date = local(new d3_date(date - 1)), 1);\n return date;\n }\n function offset(date, k) {\n step(date = new d3_date(+date), k);\n return date;\n }\n function range(t0, t1, dt) {\n var time = ceil(t0), times = [];\n if (dt > 1) {\n while (time < t1) {\n if (!(number(time) % dt)) times.push(new Date(+time));\n step(time, 1);\n }\n } else {\n while (time < t1) times.push(new Date(+time)), step(time, 1);\n }\n return times;\n }\n function range_utc(t0, t1, dt) {\n try {\n d3_date = d3_date_utc;\n var utc = new d3_date_utc();\n utc._ = t0;\n return range(utc, t1, dt);\n } finally {\n d3_date = Date;\n }\n }\n local.floor = local;\n local.round = round;\n local.ceil = ceil;\n local.offset = offset;\n local.range = range;\n var utc = local.utc = d3_time_interval_utc(local);\n utc.floor = utc;\n utc.round = d3_time_interval_utc(round);\n utc.ceil = d3_time_interval_utc(ceil);\n utc.offset = d3_time_interval_utc(offset);\n utc.range = range_utc;\n return local;\n }\n function d3_time_interval_utc(method) {\n return function(date, k) {\n try {\n d3_date = d3_date_utc;\n var utc = new d3_date_utc();\n utc._ = date;\n return method(utc, k)._;\n } finally {\n d3_date = Date;\n }\n };\n }\n d3_time.year = d3_time_interval(function(date) {\n date = d3_time.day(date);\n date.setMonth(0, 1);\n return date;\n }, function(date, offset) {\n date.setFullYear(date.getFullYear() + offset);\n }, function(date) {\n return date.getFullYear();\n });\n d3_time.years = d3_time.year.range;\n d3_time.years.utc = d3_time.year.utc.range;\n d3_time.day = d3_time_interval(function(date) {\n var day = new d3_date(2e3, 0);\n day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n return day;\n }, function(date, offset) {\n date.setDate(date.getDate() + offset);\n }, function(date) {\n return date.getDate() - 1;\n });\n d3_time.days = d3_time.day.range;\n d3_time.days.utc = d3_time.day.utc.range;\n d3_time.dayOfYear = function(date) {\n var year = d3_time.year(date);\n return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);\n };\n [ \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\" ].forEach(function(day, i) {\n i = 7 - i;\n var interval = d3_time[day] = d3_time_interval(function(date) {\n (date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);\n return date;\n }, function(date, offset) {\n date.setDate(date.getDate() + Math.floor(offset) * 7);\n }, function(date) {\n var day = d3_time.year(date).getDay();\n return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);\n });\n d3_time[day + \"s\"] = interval.range;\n d3_time[day + \"s\"].utc = interval.utc.range;\n d3_time[day + \"OfYear\"] = function(date) {\n var day = d3_time.year(date).getDay();\n return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7);\n };\n });\n d3_time.week = d3_time.sunday;\n d3_time.weeks = d3_time.sunday.range;\n d3_time.weeks.utc = d3_time.sunday.utc.range;\n d3_time.weekOfYear = d3_time.sundayOfYear;\n function d3_locale_timeFormat(locale) {\n var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths;\n function d3_time_format(template) {\n var n = template.length;\n function format(date) {\n var string = [], i = -1, j = 0, c, p, f;\n while (++i < n) {\n if (template.charCodeAt(i) === 37) {\n string.push(template.slice(j, i));\n if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);\n if (f = d3_time_formats[c]) c = f(date, p == null ? c === \"e\" ? \" \" : \"0\" : p);\n string.push(c);\n j = i + 1;\n }\n }\n string.push(template.slice(j, i));\n return string.join(\"\");\n }\n format.parse = function(string) {\n var d = {\n y: 1900,\n m: 0,\n d: 1,\n H: 0,\n M: 0,\n S: 0,\n L: 0,\n Z: null\n }, i = d3_time_parse(d, template, string, 0);\n if (i != string.length) return null;\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)();\n if (\"j\" in d) date.setFullYear(d.y, 0, d.j); else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"W\" in d ? 1 : 0;\n date.setFullYear(d.y, 0, 1);\n date.setFullYear(d.y, 0, \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7);\n } else date.setFullYear(d.y, d.m, d.d);\n date.setHours(d.H + (d.Z / 100 | 0), d.M + d.Z % 100, d.S, d.L);\n return localZ ? date._ : date;\n };\n format.toString = function() {\n return template;\n };\n return format;\n }\n function d3_time_parse(date, template, string, j) {\n var c, p, t, i = 0, n = template.length, m = string.length;\n while (i < n) {\n if (j >= m) return -1;\n c = template.charCodeAt(i++);\n if (c === 37) {\n t = template.charAt(i++);\n p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t];\n if (!p || (j = p(date, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n return j;\n }\n d3_time_format.utc = function(template) {\n var local = d3_time_format(template);\n function format(date) {\n try {\n d3_date = d3_date_utc;\n var utc = new d3_date();\n utc._ = date;\n return local(utc);\n } finally {\n d3_date = Date;\n }\n }\n format.parse = function(string) {\n try {\n d3_date = d3_date_utc;\n var date = local.parse(string);\n return date && date._;\n } finally {\n d3_date = Date;\n }\n };\n format.toString = local.toString;\n return format;\n };\n d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti;\n var d3_time_periodLookup = d3.map(), d3_time_dayRe = d3_time_formatRe(locale_days), d3_time_dayLookup = d3_time_formatLookup(locale_days), d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), d3_time_monthRe = d3_time_formatRe(locale_months), d3_time_monthLookup = d3_time_formatLookup(locale_months), d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths);\n locale_periods.forEach(function(p, i) {\n d3_time_periodLookup.set(p.toLowerCase(), i);\n });\n var d3_time_formats = {\n a: function(d) {\n return locale_shortDays[d.getDay()];\n },\n A: function(d) {\n return locale_days[d.getDay()];\n },\n b: function(d) {\n return locale_shortMonths[d.getMonth()];\n },\n B: function(d) {\n return locale_months[d.getMonth()];\n },\n c: d3_time_format(locale_dateTime),\n d: function(d, p) {\n return d3_time_formatPad(d.getDate(), p, 2);\n },\n e: function(d, p) {\n return d3_time_formatPad(d.getDate(), p, 2);\n },\n H: function(d, p) {\n return d3_time_formatPad(d.getHours(), p, 2);\n },\n I: function(d, p) {\n return d3_time_formatPad(d.getHours() % 12 || 12, p, 2);\n },\n j: function(d, p) {\n return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3);\n },\n L: function(d, p) {\n return d3_time_formatPad(d.getMilliseconds(), p, 3);\n },\n m: function(d, p) {\n return d3_time_formatPad(d.getMonth() + 1, p, 2);\n },\n M: function(d, p) {\n return d3_time_formatPad(d.getMinutes(), p, 2);\n },\n p: function(d) {\n return locale_periods[+(d.getHours() >= 12)];\n },\n S: function(d, p) {\n return d3_time_formatPad(d.getSeconds(), p, 2);\n },\n U: function(d, p) {\n return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2);\n },\n w: function(d) {\n return d.getDay();\n },\n W: function(d, p) {\n return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2);\n },\n x: d3_time_format(locale_date),\n X: d3_time_format(locale_time),\n y: function(d, p) {\n return d3_time_formatPad(d.getFullYear() % 100, p, 2);\n },\n Y: function(d, p) {\n return d3_time_formatPad(d.getFullYear() % 1e4, p, 4);\n },\n Z: d3_time_zone,\n \"%\": function() {\n return \"%\";\n }\n };\n var d3_time_parsers = {\n a: d3_time_parseWeekdayAbbrev,\n A: d3_time_parseWeekday,\n b: d3_time_parseMonthAbbrev,\n B: d3_time_parseMonth,\n c: d3_time_parseLocaleFull,\n d: d3_time_parseDay,\n e: d3_time_parseDay,\n H: d3_time_parseHour24,\n I: d3_time_parseHour24,\n j: d3_time_parseDayOfYear,\n L: d3_time_parseMilliseconds,\n m: d3_time_parseMonthNumber,\n M: d3_time_parseMinutes,\n p: d3_time_parseAmPm,\n S: d3_time_parseSeconds,\n U: d3_time_parseWeekNumberSunday,\n w: d3_time_parseWeekdayNumber,\n W: d3_time_parseWeekNumberMonday,\n x: d3_time_parseLocaleDate,\n X: d3_time_parseLocaleTime,\n y: d3_time_parseYear,\n Y: d3_time_parseFullYear,\n Z: d3_time_parseZone,\n \"%\": d3_time_parseLiteralPercent\n };\n function d3_time_parseWeekdayAbbrev(date, string, i) {\n d3_time_dayAbbrevRe.lastIndex = 0;\n var n = d3_time_dayAbbrevRe.exec(string.slice(i));\n return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseWeekday(date, string, i) {\n d3_time_dayRe.lastIndex = 0;\n var n = d3_time_dayRe.exec(string.slice(i));\n return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseMonthAbbrev(date, string, i) {\n d3_time_monthAbbrevRe.lastIndex = 0;\n var n = d3_time_monthAbbrevRe.exec(string.slice(i));\n return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseMonth(date, string, i) {\n d3_time_monthRe.lastIndex = 0;\n var n = d3_time_monthRe.exec(string.slice(i));\n return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseLocaleFull(date, string, i) {\n return d3_time_parse(date, d3_time_formats.c.toString(), string, i);\n }\n function d3_time_parseLocaleDate(date, string, i) {\n return d3_time_parse(date, d3_time_formats.x.toString(), string, i);\n }\n function d3_time_parseLocaleTime(date, string, i) {\n return d3_time_parse(date, d3_time_formats.X.toString(), string, i);\n }\n function d3_time_parseAmPm(date, string, i) {\n var n = d3_time_periodLookup.get(string.slice(i, i += 2).toLowerCase());\n return n == null ? -1 : (date.p = n, i);\n }\n return d3_time_format;\n }\n var d3_time_formatPads = {\n \"-\": \"\",\n _: \" \",\n \"0\": \"0\"\n }, d3_time_numberRe = /^\\s*\\d+/, d3_time_percentRe = /^%/;\n function d3_time_formatPad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\", string = (sign ? -value : value) + \"\", length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n }\n function d3_time_formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(d3.requote).join(\"|\") + \")\", \"i\");\n }\n function d3_time_formatLookup(names) {\n var map = new d3_Map(), i = -1, n = names.length;\n while (++i < n) map.set(names[i].toLowerCase(), i);\n return map;\n }\n function d3_time_parseWeekdayNumber(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 1));\n return n ? (date.w = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseWeekNumberSunday(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i));\n return n ? (date.U = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseWeekNumberMonday(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i));\n return n ? (date.W = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseFullYear(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 4));\n return n ? (date.y = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseYear(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1;\n }\n function d3_time_parseZone(date, string, i) {\n return /^[+-]\\d{4}$/.test(string = string.slice(i, i + 5)) ? (date.Z = -string, \n i + 5) : -1;\n }\n function d3_time_expandYear(d) {\n return d + (d > 68 ? 1900 : 2e3);\n }\n function d3_time_parseMonthNumber(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.m = n[0] - 1, i + n[0].length) : -1;\n }\n function d3_time_parseDay(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.d = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseDayOfYear(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 3));\n return n ? (date.j = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseHour24(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.H = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseMinutes(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.M = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseSeconds(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.S = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseMilliseconds(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 3));\n return n ? (date.L = +n[0], i + n[0].length) : -1;\n }\n function d3_time_zone(d) {\n var z = d.getTimezoneOffset(), zs = z > 0 ? \"-\" : \"+\", zh = abs(z) / 60 | 0, zm = abs(z) % 60;\n return zs + d3_time_formatPad(zh, \"0\", 2) + d3_time_formatPad(zm, \"0\", 2);\n }\n function d3_time_parseLiteralPercent(date, string, i) {\n d3_time_percentRe.lastIndex = 0;\n var n = d3_time_percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n }\n function d3_time_formatMulti(formats) {\n var n = formats.length, i = -1;\n while (++i < n) formats[i][0] = this(formats[i][0]);\n return function(date) {\n var i = 0, f = formats[i];\n while (!f[1](date)) f = formats[++i];\n return f[0](date);\n };\n }\n d3.locale = function(locale) {\n return {\n numberFormat: d3_locale_numberFormat(locale),\n timeFormat: d3_locale_timeFormat(locale)\n };\n };\n var d3_locale_enUS = d3.locale({\n decimal: \".\",\n thousands: \",\",\n grouping: [ 3 ],\n currency: [ \"$\", \"\" ],\n dateTime: \"%a %b %e %X %Y\",\n date: \"%m/%d/%Y\",\n time: \"%H:%M:%S\",\n periods: [ \"AM\", \"PM\" ],\n days: [ \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\" ],\n shortDays: [ \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\" ],\n months: [ \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\" ],\n shortMonths: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\" ]\n });\n d3.format = d3_locale_enUS.numberFormat;\n d3.geo = {};\n function d3_adder() {}\n d3_adder.prototype = {\n s: 0,\n t: 0,\n add: function(y) {\n d3_adderSum(y, this.t, d3_adderTemp);\n d3_adderSum(d3_adderTemp.s, this.s, this);\n if (this.s) this.t += d3_adderTemp.t; else this.s = d3_adderTemp.t;\n },\n reset: function() {\n this.s = this.t = 0;\n },\n valueOf: function() {\n return this.s;\n }\n };\n var d3_adderTemp = new d3_adder();\n function d3_adderSum(a, b, o) {\n var x = o.s = a + b, bv = x - a, av = x - bv;\n o.t = a - av + (b - bv);\n }\n d3.geo.stream = function(object, listener) {\n if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) {\n d3_geo_streamObjectType[object.type](object, listener);\n } else {\n d3_geo_streamGeometry(object, listener);\n }\n };\n function d3_geo_streamGeometry(geometry, listener) {\n if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {\n d3_geo_streamGeometryType[geometry.type](geometry, listener);\n }\n }\n var d3_geo_streamObjectType = {\n Feature: function(feature, listener) {\n d3_geo_streamGeometry(feature.geometry, listener);\n },\n FeatureCollection: function(object, listener) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);\n }\n };\n var d3_geo_streamGeometryType = {\n Sphere: function(object, listener) {\n listener.sphere();\n },\n Point: function(object, listener) {\n object = object.coordinates;\n listener.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, listener) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]);\n },\n LineString: function(object, listener) {\n d3_geo_streamLine(object.coordinates, listener, 0);\n },\n MultiLineString: function(object, listener) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);\n },\n Polygon: function(object, listener) {\n d3_geo_streamPolygon(object.coordinates, listener);\n },\n MultiPolygon: function(object, listener) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);\n },\n GeometryCollection: function(object, listener) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) d3_geo_streamGeometry(geometries[i], listener);\n }\n };\n function d3_geo_streamLine(coordinates, listener, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n listener.lineStart();\n while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]);\n listener.lineEnd();\n }\n function d3_geo_streamPolygon(coordinates, listener) {\n var i = -1, n = coordinates.length;\n listener.polygonStart();\n while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);\n listener.polygonEnd();\n }\n d3.geo.area = function(object) {\n d3_geo_areaSum = 0;\n d3.geo.stream(object, d3_geo_area);\n return d3_geo_areaSum;\n };\n var d3_geo_areaSum, d3_geo_areaRingSum = new d3_adder();\n var d3_geo_area = {\n sphere: function() {\n d3_geo_areaSum += 4 * π;\n },\n point: d3_noop,\n lineStart: d3_noop,\n lineEnd: d3_noop,\n polygonStart: function() {\n d3_geo_areaRingSum.reset();\n d3_geo_area.lineStart = d3_geo_areaRingStart;\n },\n polygonEnd: function() {\n var area = 2 * d3_geo_areaRingSum;\n d3_geo_areaSum += area < 0 ? 4 * π + area : area;\n d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;\n }\n };\n function d3_geo_areaRingStart() {\n var λ00, φ00, λ0, cosφ0, sinφ0;\n d3_geo_area.point = function(λ, φ) {\n d3_geo_area.point = nextPoint;\n λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), \n sinφ0 = Math.sin(φ);\n };\n function nextPoint(λ, φ) {\n λ *= d3_radians;\n φ = φ * d3_radians / 2 + π / 4;\n var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ);\n d3_geo_areaRingSum.add(Math.atan2(v, u));\n λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;\n }\n d3_geo_area.lineEnd = function() {\n nextPoint(λ00, φ00);\n };\n }\n function d3_geo_cartesian(spherical) {\n var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ);\n return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ];\n }\n function d3_geo_cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n }\n function d3_geo_cartesianCross(a, b) {\n return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ];\n }\n function d3_geo_cartesianAdd(a, b) {\n a[0] += b[0];\n a[1] += b[1];\n a[2] += b[2];\n }\n function d3_geo_cartesianScale(vector, k) {\n return [ vector[0] * k, vector[1] * k, vector[2] * k ];\n }\n function d3_geo_cartesianNormalize(d) {\n var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l;\n d[1] /= l;\n d[2] /= l;\n }\n function d3_geo_spherical(cartesian) {\n return [ Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2]) ];\n }\n function d3_geo_sphericalEqual(a, b) {\n return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε;\n }\n d3.geo.bounds = function() {\n var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range;\n var bound = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n bound.point = ringPoint;\n bound.lineStart = ringStart;\n bound.lineEnd = ringEnd;\n dλSum = 0;\n d3_geo_area.polygonStart();\n },\n polygonEnd: function() {\n d3_geo_area.polygonEnd();\n bound.point = point;\n bound.lineStart = lineStart;\n bound.lineEnd = lineEnd;\n if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90;\n range[0] = λ0, range[1] = λ1;\n }\n };\n function point(λ, φ) {\n ranges.push(range = [ λ0 = λ, λ1 = λ ]);\n if (φ < φ0) φ0 = φ;\n if (φ > φ1) φ1 = φ;\n }\n function linePoint(λ, φ) {\n var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]);\n if (p0) {\n var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal);\n d3_geo_cartesianNormalize(inflection);\n inflection = d3_geo_spherical(inflection);\n var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = abs(dλ) > 180;\n if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) {\n var φi = inflection[1] * d3_degrees;\n if (φi > φ1) φ1 = φi;\n } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) {\n var φi = -inflection[1] * d3_degrees;\n if (φi < φ0) φ0 = φi;\n } else {\n if (φ < φ0) φ0 = φ;\n if (φ > φ1) φ1 = φ;\n }\n if (antimeridian) {\n if (λ < λ_) {\n if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;\n } else {\n if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;\n }\n } else {\n if (λ1 >= λ0) {\n if (λ < λ0) λ0 = λ;\n if (λ > λ1) λ1 = λ;\n } else {\n if (λ > λ_) {\n if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;\n } else {\n if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;\n }\n }\n }\n } else {\n point(λ, φ);\n }\n p0 = p, λ_ = λ;\n }\n function lineStart() {\n bound.point = linePoint;\n }\n function lineEnd() {\n range[0] = λ0, range[1] = λ1;\n bound.point = point;\n p0 = null;\n }\n function ringPoint(λ, φ) {\n if (p0) {\n var dλ = λ - λ_;\n dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ;\n } else λ__ = λ, φ__ = φ;\n d3_geo_area.point(λ, φ);\n linePoint(λ, φ);\n }\n function ringStart() {\n d3_geo_area.lineStart();\n }\n function ringEnd() {\n ringPoint(λ__, φ__);\n d3_geo_area.lineEnd();\n if (abs(dλSum) > ε) λ0 = -(λ1 = 180);\n range[0] = λ0, range[1] = λ1;\n p0 = null;\n }\n function angle(λ0, λ1) {\n return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1;\n }\n function compareRanges(a, b) {\n return a[0] - b[0];\n }\n function withinRange(x, range) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n }\n return function(feature) {\n φ1 = λ1 = -(λ0 = φ0 = Infinity);\n ranges = [];\n d3.geo.stream(feature, bound);\n var n = ranges.length;\n if (n) {\n ranges.sort(compareRanges);\n for (var i = 1, a = ranges[0], b, merged = [ a ]; i < n; ++i) {\n b = ranges[i];\n if (withinRange(b[0], a) || withinRange(b[1], a)) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n }\n var best = -Infinity, dλ;\n for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) {\n b = merged[i];\n if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1];\n }\n }\n ranges = range = null;\n return λ0 === Infinity || φ0 === Infinity ? [ [ NaN, NaN ], [ NaN, NaN ] ] : [ [ λ0, φ0 ], [ λ1, φ1 ] ];\n };\n }();\n d3.geo.centroid = function(object) {\n d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;\n d3.geo.stream(object, d3_geo_centroid);\n var x = d3_geo_centroidX2, y = d3_geo_centroidY2, z = d3_geo_centroidZ2, m = x * x + y * y + z * z;\n if (m < ε2) {\n x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1;\n if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0;\n m = x * x + y * y + z * z;\n if (m < ε2) return [ NaN, NaN ];\n }\n return [ Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees ];\n };\n var d3_geo_centroidW0, d3_geo_centroidW1, d3_geo_centroidX0, d3_geo_centroidY0, d3_geo_centroidZ0, d3_geo_centroidX1, d3_geo_centroidY1, d3_geo_centroidZ1, d3_geo_centroidX2, d3_geo_centroidY2, d3_geo_centroidZ2;\n var d3_geo_centroid = {\n sphere: d3_noop,\n point: d3_geo_centroidPoint,\n lineStart: d3_geo_centroidLineStart,\n lineEnd: d3_geo_centroidLineEnd,\n polygonStart: function() {\n d3_geo_centroid.lineStart = d3_geo_centroidRingStart;\n },\n polygonEnd: function() {\n d3_geo_centroid.lineStart = d3_geo_centroidLineStart;\n }\n };\n function d3_geo_centroidPoint(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians);\n d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ));\n }\n function d3_geo_centroidPointXYZ(x, y, z) {\n ++d3_geo_centroidW0;\n d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0;\n d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0;\n d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0;\n }\n function d3_geo_centroidLineStart() {\n var x0, y0, z0;\n d3_geo_centroid.point = function(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians);\n x0 = cosφ * Math.cos(λ);\n y0 = cosφ * Math.sin(λ);\n z0 = Math.sin(φ);\n d3_geo_centroid.point = nextPoint;\n d3_geo_centroidPointXYZ(x0, y0, z0);\n };\n function nextPoint(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n d3_geo_centroidW1 += w;\n d3_geo_centroidX1 += w * (x0 + (x0 = x));\n d3_geo_centroidY1 += w * (y0 + (y0 = y));\n d3_geo_centroidZ1 += w * (z0 + (z0 = z));\n d3_geo_centroidPointXYZ(x0, y0, z0);\n }\n }\n function d3_geo_centroidLineEnd() {\n d3_geo_centroid.point = d3_geo_centroidPoint;\n }\n function d3_geo_centroidRingStart() {\n var λ00, φ00, x0, y0, z0;\n d3_geo_centroid.point = function(λ, φ) {\n λ00 = λ, φ00 = φ;\n d3_geo_centroid.point = nextPoint;\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians);\n x0 = cosφ * Math.cos(λ);\n y0 = cosφ * Math.sin(λ);\n z0 = Math.sin(φ);\n d3_geo_centroidPointXYZ(x0, y0, z0);\n };\n d3_geo_centroid.lineEnd = function() {\n nextPoint(λ00, φ00);\n d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;\n d3_geo_centroid.point = d3_geo_centroidPoint;\n };\n function nextPoint(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = Math.sqrt(cx * cx + cy * cy + cz * cz), u = x0 * x + y0 * y + z0 * z, v = m && -d3_acos(u) / m, w = Math.atan2(m, u);\n d3_geo_centroidX2 += v * cx;\n d3_geo_centroidY2 += v * cy;\n d3_geo_centroidZ2 += v * cz;\n d3_geo_centroidW1 += w;\n d3_geo_centroidX1 += w * (x0 + (x0 = x));\n d3_geo_centroidY1 += w * (y0 + (y0 = y));\n d3_geo_centroidZ1 += w * (z0 + (z0 = z));\n d3_geo_centroidPointXYZ(x0, y0, z0);\n }\n }\n function d3_geo_compose(a, b) {\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n return compose;\n }\n function d3_true() {\n return true;\n }\n function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) {\n var subject = [], clip = [];\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n];\n if (d3_geo_sphericalEqual(p0, p1)) {\n listener.lineStart();\n for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]);\n listener.lineEnd();\n return;\n }\n var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), b = new d3_geo_clipPolygonIntersection(p0, null, a, false);\n a.o = b;\n subject.push(a);\n clip.push(b);\n a = new d3_geo_clipPolygonIntersection(p1, segment, null, false);\n b = new d3_geo_clipPolygonIntersection(p1, null, a, true);\n a.o = b;\n subject.push(a);\n clip.push(b);\n });\n clip.sort(compare);\n d3_geo_clipPolygonLinkCircular(subject);\n d3_geo_clipPolygonLinkCircular(clip);\n if (!subject.length) return;\n for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) {\n clip[i].e = entry = !entry;\n }\n var start = subject[0], points, point;\n while (1) {\n var current = start, isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n listener.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, listener);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, listener);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n listener.lineEnd();\n }\n }\n function d3_geo_clipPolygonLinkCircular(array) {\n if (!(n = array.length)) return;\n var n, i = 0, a = array[0], b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n }\n function d3_geo_clipPolygonIntersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other;\n this.e = entry;\n this.v = false;\n this.n = this.p = null;\n }\n function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) {\n return function(rotate, listener) {\n var line = clipLine(listener), rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]);\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = d3.merge(segments);\n var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon);\n if (segments.length) {\n if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener);\n } else if (clipStartInside) {\n if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n listener.lineStart();\n interpolate(null, null, 1, listener);\n listener.lineEnd();\n }\n if (polygonStarted) listener.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n listener.polygonStart();\n listener.lineStart();\n interpolate(null, null, 1, listener);\n listener.lineEnd();\n listener.polygonEnd();\n }\n };\n function point(λ, φ) {\n var point = rotate(λ, φ);\n if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ);\n }\n function pointLine(λ, φ) {\n var point = rotate(λ, φ);\n line.point(point[0], point[1]);\n }\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n var segments;\n var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring;\n function pointRing(λ, φ) {\n ring.push([ λ, φ ]);\n var point = rotate(λ, φ);\n ringListener.point(point[0], point[1]);\n }\n function ringStart() {\n ringListener.lineStart();\n ring = [];\n }\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringListener.lineEnd();\n var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length;\n ring.pop();\n polygon.push(ring);\n ring = null;\n if (!n) return;\n if (clean & 1) {\n segment = ringSegments[0];\n var n = segment.length - 1, i = -1, point;\n if (n > 0) {\n if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n listener.lineStart();\n while (++i < n) listener.point((point = segment[i])[0], point[1]);\n listener.lineEnd();\n }\n return;\n }\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));\n }\n return clip;\n };\n }\n function d3_geo_clipSegmentLength1(segment) {\n return segment.length > 1;\n }\n function d3_geo_clipBufferListener() {\n var lines = [], line;\n return {\n lineStart: function() {\n lines.push(line = []);\n },\n point: function(λ, φ) {\n line.push([ λ, φ ]);\n },\n lineEnd: d3_noop,\n buffer: function() {\n var buffer = lines;\n lines = [];\n line = null;\n return buffer;\n },\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n }\n };\n }\n function d3_geo_clipSort(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]);\n }\n var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]);\n function d3_geo_clipAntimeridianLine(listener) {\n var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean;\n return {\n lineStart: function() {\n listener.lineStart();\n clean = 1;\n },\n point: function(λ1, φ1) {\n var sλ1 = λ1 > 0 ? π : -π, dλ = abs(λ1 - λ0);\n if (abs(dλ - π) < ε) {\n listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ);\n listener.point(sλ0, φ0);\n listener.lineEnd();\n listener.lineStart();\n listener.point(sλ1, φ0);\n listener.point(λ1, φ0);\n clean = 0;\n } else if (sλ0 !== sλ1 && dλ >= π) {\n if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;\n if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;\n φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);\n listener.point(sλ0, φ0);\n listener.lineEnd();\n listener.lineStart();\n listener.point(sλ1, φ0);\n clean = 0;\n }\n listener.point(λ0 = λ1, φ0 = φ1);\n sλ0 = sλ1;\n },\n lineEnd: function() {\n listener.lineEnd();\n λ0 = φ0 = NaN;\n },\n clean: function() {\n return 2 - clean;\n }\n };\n }\n function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {\n var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1);\n return abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2;\n }\n function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {\n var φ;\n if (from == null) {\n φ = direction * halfπ;\n listener.point(-π, φ);\n listener.point(0, φ);\n listener.point(π, φ);\n listener.point(π, 0);\n listener.point(π, -φ);\n listener.point(0, -φ);\n listener.point(-π, -φ);\n listener.point(-π, 0);\n listener.point(-π, φ);\n } else if (abs(from[0] - to[0]) > ε) {\n var s = from[0] < to[0] ? π : -π;\n φ = direction * s / 2;\n listener.point(-s, φ);\n listener.point(0, φ);\n listener.point(s, φ);\n } else {\n listener.point(to[0], to[1]);\n }\n }\n function d3_geo_pointInPolygon(point, polygon) {\n var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0;\n d3_geo_areaRingSum.reset();\n for (var i = 0, n = polygon.length; i < n; ++i) {\n var ring = polygon[i], m = ring.length;\n if (!m) continue;\n var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1;\n while (true) {\n if (j === m) j = 0;\n point = ring[j];\n var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ;\n d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ)));\n polarAngle += antimeridian ? dλ + sdλ * τ : dλ;\n if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) {\n var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point));\n d3_geo_cartesianNormalize(arc);\n var intersection = d3_geo_cartesianCross(meridianNormal, arc);\n d3_geo_cartesianNormalize(intersection);\n var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]);\n if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) {\n winding += antimeridian ^ dλ >= 0 ? 1 : -1;\n }\n }\n if (!j++) break;\n λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point;\n }\n }\n return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < -ε) ^ winding & 1;\n }\n function d3_geo_clipCircle(radius) {\n var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians);\n return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]);\n function visible(λ, φ) {\n return Math.cos(λ) * Math.cos(φ) > cr;\n }\n function clipLine(listener) {\n var point0, c0, v0, v00, clean;\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(λ, φ) {\n var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0;\n if (!point0 && (v00 = v0 = v)) listener.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {\n point1[0] += ε;\n point1[1] += ε;\n v = visible(point1[0], point1[1]);\n }\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n listener.lineStart();\n point2 = intersect(point1, point0);\n listener.point(point2[0], point2[1]);\n } else {\n point2 = intersect(point0, point1);\n listener.point(point2[0], point2[1]);\n listener.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n listener.lineStart();\n listener.point(t[0][0], t[0][1]);\n listener.point(t[1][0], t[1][1]);\n listener.lineEnd();\n } else {\n listener.point(t[1][0], t[1][1]);\n listener.lineEnd();\n listener.lineStart();\n listener.point(t[0][0], t[0][1]);\n }\n }\n }\n if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) {\n listener.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) listener.lineEnd();\n point0 = null;\n },\n clean: function() {\n return clean | (v00 && v0) << 1;\n }\n };\n }\n function intersect(a, b, two) {\n var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b);\n var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;\n if (!determinant) return !two && a;\n var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2);\n d3_geo_cartesianAdd(A, B);\n var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1);\n if (t2 < 0) return;\n var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu);\n d3_geo_cartesianAdd(q, A);\n q = d3_geo_spherical(q);\n if (!two) return q;\n var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z;\n if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z;\n var δλ = λ1 - λ0, polar = abs(δλ - π) < ε, meridian = polar || δλ < ε;\n if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z;\n if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) {\n var q1 = d3_geo_cartesianScale(u, (-w + t) / uu);\n d3_geo_cartesianAdd(q1, A);\n return [ q, d3_geo_spherical(q1) ];\n }\n }\n function code(λ, φ) {\n var r = smallRadius ? radius : π - radius, code = 0;\n if (λ < -r) code |= 1; else if (λ > r) code |= 2;\n if (φ < -r) code |= 4; else if (φ > r) code |= 8;\n return code;\n }\n }\n function d3_geom_clipLine(x0, y0, x1, y1) {\n return function(line) {\n var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t0 = 0, t1 = 1, dx = bx - ax, dy = by - ay, r;\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n if (t0 > 0) line.a = {\n x: ax + t0 * dx,\n y: ay + t0 * dy\n };\n if (t1 < 1) line.b = {\n x: ax + t1 * dx,\n y: ay + t1 * dy\n };\n return line;\n };\n }\n var d3_geo_clipExtentMAX = 1e9;\n d3.geo.clipExtent = function() {\n var x0, y0, x1, y1, stream, clip, clipExtent = {\n stream: function(output) {\n if (stream) stream.valid = false;\n stream = clip(output);\n stream.valid = true;\n return stream;\n },\n extent: function(_) {\n if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];\n clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]);\n if (stream) stream.valid = false, stream = null;\n return clipExtent;\n }\n };\n return clipExtent.extent([ [ 0, 0 ], [ 960, 500 ] ]);\n };\n function d3_geo_clipExtent(x0, y0, x1, y1) {\n return function(listener) {\n var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), clipLine = d3_geom_clipLine(x0, y0, x1, y1), segments, polygon, ring;\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n listener = bufferListener;\n segments = [];\n polygon = [];\n clean = true;\n },\n polygonEnd: function() {\n listener = listener_;\n segments = d3.merge(segments);\n var clipStartInside = insidePolygon([ x0, y1 ]), inside = clean && clipStartInside, visible = segments.length;\n if (inside || visible) {\n listener.polygonStart();\n if (inside) {\n listener.lineStart();\n interpolate(null, null, 1, listener);\n listener.lineEnd();\n }\n if (visible) {\n d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener);\n }\n listener.polygonEnd();\n }\n segments = polygon = ring = null;\n }\n };\n function insidePolygon(p) {\n var wn = 0, n = polygon.length, y = p[1];\n for (var i = 0; i < n; ++i) {\n for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) {\n b = v[j];\n if (a[1] <= y) {\n if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn;\n } else {\n if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn;\n }\n a = b;\n }\n }\n return wn !== 0;\n }\n function interpolate(from, to, direction, listener) {\n var a = 0, a1 = 0;\n if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) {\n do {\n listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n } while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n listener.point(to[0], to[1]);\n }\n }\n function pointVisible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n function point(x, y) {\n if (pointVisible(x, y)) listener.point(x, y);\n }\n var x__, y__, v__, x_, y_, v_, first, clean;\n function lineStart() {\n clip.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferListener.rejoin();\n segments.push(bufferListener.buffer());\n }\n clip.point = point;\n if (v_) listener.lineEnd();\n }\n function linePoint(x, y) {\n x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x));\n y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y));\n var v = pointVisible(x, y);\n if (polygon) ring.push([ x, y ]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n listener.lineStart();\n listener.point(x, y);\n }\n } else {\n if (v && v_) listener.point(x, y); else {\n var l = {\n a: {\n x: x_,\n y: y_\n },\n b: {\n x: x,\n y: y\n }\n };\n if (clipLine(l)) {\n if (!v_) {\n listener.lineStart();\n listener.point(l.a.x, l.a.y);\n }\n listener.point(l.b.x, l.b.y);\n if (!v) listener.lineEnd();\n clean = false;\n } else if (v) {\n listener.lineStart();\n listener.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n return clip;\n };\n function corner(p, direction) {\n return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2;\n }\n function compare(a, b) {\n return comparePoints(a.x, b.x);\n }\n function comparePoints(a, b) {\n var ca = corner(a, 1), cb = corner(b, 1);\n return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];\n }\n }\n function d3_geo_conic(projectAt) {\n var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1);\n p.parallels = function(_) {\n if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ];\n return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180);\n };\n return p;\n }\n function d3_geo_conicEqualArea(φ0, φ1) {\n var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n;\n function forward(λ, φ) {\n var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;\n return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ];\n }\n forward.invert = function(x, y) {\n var ρ0_y = ρ0 - y;\n return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ];\n };\n return forward;\n }\n (d3.geo.conicEqualArea = function() {\n return d3_geo_conic(d3_geo_conicEqualArea);\n }).raw = d3_geo_conicEqualArea;\n d3.geo.albers = function() {\n return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070);\n };\n d3.geo.albersUsa = function() {\n var lower48 = d3.geo.albers();\n var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]);\n var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]);\n var point, pointStream = {\n point: function(x, y) {\n point = [ x, y ];\n }\n }, lower48Point, alaskaPoint, hawaiiPoint;\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n point = null;\n (lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y);\n return point;\n }\n albersUsa.invert = function(coordinates) {\n var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k;\n return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates);\n };\n albersUsa.stream = function(stream) {\n var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream);\n return {\n point: function(x, y) {\n lower48Stream.point(x, y);\n alaskaStream.point(x, y);\n hawaiiStream.point(x, y);\n },\n sphere: function() {\n lower48Stream.sphere();\n alaskaStream.sphere();\n hawaiiStream.sphere();\n },\n lineStart: function() {\n lower48Stream.lineStart();\n alaskaStream.lineStart();\n hawaiiStream.lineStart();\n },\n lineEnd: function() {\n lower48Stream.lineEnd();\n alaskaStream.lineEnd();\n hawaiiStream.lineEnd();\n },\n polygonStart: function() {\n lower48Stream.polygonStart();\n alaskaStream.polygonStart();\n hawaiiStream.polygonStart();\n },\n polygonEnd: function() {\n lower48Stream.polygonEnd();\n alaskaStream.polygonEnd();\n hawaiiStream.polygonEnd();\n }\n };\n };\n albersUsa.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_);\n alaska.precision(_);\n hawaii.precision(_);\n return albersUsa;\n };\n albersUsa.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_);\n alaska.scale(_ * .35);\n hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n albersUsa.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point;\n alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;\n hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;\n return albersUsa;\n };\n return albersUsa.scale(1070);\n };\n var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {\n point: d3_noop,\n lineStart: d3_noop,\n lineEnd: d3_noop,\n polygonStart: function() {\n d3_geo_pathAreaPolygon = 0;\n d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;\n },\n polygonEnd: function() {\n d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;\n d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2);\n }\n };\n function d3_geo_pathAreaRingStart() {\n var x00, y00, x0, y0;\n d3_geo_pathArea.point = function(x, y) {\n d3_geo_pathArea.point = nextPoint;\n x00 = x0 = x, y00 = y0 = y;\n };\n function nextPoint(x, y) {\n d3_geo_pathAreaPolygon += y0 * x - x0 * y;\n x0 = x, y0 = y;\n }\n d3_geo_pathArea.lineEnd = function() {\n nextPoint(x00, y00);\n };\n }\n var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1;\n var d3_geo_pathBounds = {\n point: d3_geo_pathBoundsPoint,\n lineStart: d3_noop,\n lineEnd: d3_noop,\n polygonStart: d3_noop,\n polygonEnd: d3_noop\n };\n function d3_geo_pathBoundsPoint(x, y) {\n if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x;\n if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x;\n if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y;\n if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y;\n }\n function d3_geo_pathBuffer() {\n var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = [];\n var stream = {\n point: point,\n lineStart: function() {\n stream.point = pointLineStart;\n },\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.lineEnd = lineEndPolygon;\n },\n polygonEnd: function() {\n stream.lineEnd = lineEnd;\n stream.point = point;\n },\n pointRadius: function(_) {\n pointCircle = d3_geo_pathBufferCircle(_);\n return stream;\n },\n result: function() {\n if (buffer.length) {\n var result = buffer.join(\"\");\n buffer = [];\n return result;\n }\n }\n };\n function point(x, y) {\n buffer.push(\"M\", x, \",\", y, pointCircle);\n }\n function pointLineStart(x, y) {\n buffer.push(\"M\", x, \",\", y);\n stream.point = pointLine;\n }\n function pointLine(x, y) {\n buffer.push(\"L\", x, \",\", y);\n }\n function lineEnd() {\n stream.point = point;\n }\n function lineEndPolygon() {\n buffer.push(\"Z\");\n }\n return stream;\n }\n function d3_geo_pathBufferCircle(radius) {\n return \"m0,\" + radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius + \"z\";\n }\n var d3_geo_pathCentroid = {\n point: d3_geo_pathCentroidPoint,\n lineStart: d3_geo_pathCentroidLineStart,\n lineEnd: d3_geo_pathCentroidLineEnd,\n polygonStart: function() {\n d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;\n },\n polygonEnd: function() {\n d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;\n d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;\n d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;\n }\n };\n function d3_geo_pathCentroidPoint(x, y) {\n d3_geo_centroidX0 += x;\n d3_geo_centroidY0 += y;\n ++d3_geo_centroidZ0;\n }\n function d3_geo_pathCentroidLineStart() {\n var x0, y0;\n d3_geo_pathCentroid.point = function(x, y) {\n d3_geo_pathCentroid.point = nextPoint;\n d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n };\n function nextPoint(x, y) {\n var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);\n d3_geo_centroidX1 += z * (x0 + x) / 2;\n d3_geo_centroidY1 += z * (y0 + y) / 2;\n d3_geo_centroidZ1 += z;\n d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n }\n }\n function d3_geo_pathCentroidLineEnd() {\n d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;\n }\n function d3_geo_pathCentroidRingStart() {\n var x00, y00, x0, y0;\n d3_geo_pathCentroid.point = function(x, y) {\n d3_geo_pathCentroid.point = nextPoint;\n d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y);\n };\n function nextPoint(x, y) {\n var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);\n d3_geo_centroidX1 += z * (x0 + x) / 2;\n d3_geo_centroidY1 += z * (y0 + y) / 2;\n d3_geo_centroidZ1 += z;\n z = y0 * x - x0 * y;\n d3_geo_centroidX2 += z * (x0 + x);\n d3_geo_centroidY2 += z * (y0 + y);\n d3_geo_centroidZ2 += z * 3;\n d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n }\n d3_geo_pathCentroid.lineEnd = function() {\n nextPoint(x00, y00);\n };\n }\n function d3_geo_pathContext(context) {\n var pointRadius = 4.5;\n var stream = {\n point: point,\n lineStart: function() {\n stream.point = pointLineStart;\n },\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.lineEnd = lineEndPolygon;\n },\n polygonEnd: function() {\n stream.lineEnd = lineEnd;\n stream.point = point;\n },\n pointRadius: function(_) {\n pointRadius = _;\n return stream;\n },\n result: d3_noop\n };\n function point(x, y) {\n context.moveTo(x + pointRadius, y);\n context.arc(x, y, pointRadius, 0, τ);\n }\n function pointLineStart(x, y) {\n context.moveTo(x, y);\n stream.point = pointLine;\n }\n function pointLine(x, y) {\n context.lineTo(x, y);\n }\n function lineEnd() {\n stream.point = point;\n }\n function lineEndPolygon() {\n context.closePath();\n }\n return stream;\n }\n function d3_geo_resample(project) {\n var δ2 = .5, cosMinDistance = Math.cos(30 * d3_radians), maxDepth = 16;\n function resample(stream) {\n return (maxDepth ? resampleRecursive : resampleNone)(stream);\n }\n function resampleNone(stream) {\n return d3_geo_transformPoint(stream, function(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n });\n }\n function resampleRecursive(stream) {\n var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0;\n var resample = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.polygonStart();\n resample.lineStart = ringStart;\n },\n polygonEnd: function() {\n stream.polygonEnd();\n resample.lineStart = lineStart;\n }\n };\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n function lineStart() {\n x0 = NaN;\n resample.point = linePoint;\n stream.lineStart();\n }\n function linePoint(λ, φ) {\n var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ);\n resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n function lineEnd() {\n resample.point = point;\n stream.lineEnd();\n }\n function ringStart() {\n lineStart();\n resample.point = ringPoint;\n resample.lineEnd = ringEnd;\n }\n function ringPoint(λ, φ) {\n linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resample.point = linePoint;\n }\n function ringEnd() {\n resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream);\n resample.lineEnd = lineEnd;\n lineEnd();\n }\n return resample;\n }\n function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy;\n if (d2 > 4 * δ2 && depth--) {\n var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > δ2 || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {\n resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream);\n }\n }\n }\n resample.precision = function(_) {\n if (!arguments.length) return Math.sqrt(δ2);\n maxDepth = (δ2 = _ * _) > 0 && 16;\n return resample;\n };\n return resample;\n }\n d3.geo.path = function() {\n var pointRadius = 4.5, projection, context, projectStream, contextStream, cacheStream;\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream);\n d3.geo.stream(object, cacheStream);\n }\n return contextStream.result();\n }\n path.area = function(object) {\n d3_geo_pathAreaSum = 0;\n d3.geo.stream(object, projectStream(d3_geo_pathArea));\n return d3_geo_pathAreaSum;\n };\n path.centroid = function(object) {\n d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;\n d3.geo.stream(object, projectStream(d3_geo_pathCentroid));\n return d3_geo_centroidZ2 ? [ d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2 ] : d3_geo_centroidZ1 ? [ d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1 ] : d3_geo_centroidZ0 ? [ d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0 ] : [ NaN, NaN ];\n };\n path.bounds = function(object) {\n d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity);\n d3.geo.stream(object, projectStream(d3_geo_pathBounds));\n return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ];\n };\n path.projection = function(_) {\n if (!arguments.length) return projection;\n projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;\n return reset();\n };\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return reset();\n };\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n function reset() {\n cacheStream = null;\n return path;\n }\n return path.projection(d3.geo.albersUsa()).context(null);\n };\n function d3_geo_pathProjectStream(project) {\n var resample = d3_geo_resample(function(x, y) {\n return project([ x * d3_degrees, y * d3_degrees ]);\n });\n return function(stream) {\n return d3_geo_projectionRadians(resample(stream));\n };\n }\n d3.geo.transform = function(methods) {\n return {\n stream: function(stream) {\n var transform = new d3_geo_transform(stream);\n for (var k in methods) transform[k] = methods[k];\n return transform;\n }\n };\n };\n function d3_geo_transform(stream) {\n this.stream = stream;\n }\n d3_geo_transform.prototype = {\n point: function(x, y) {\n this.stream.point(x, y);\n },\n sphere: function() {\n this.stream.sphere();\n },\n lineStart: function() {\n this.stream.lineStart();\n },\n lineEnd: function() {\n this.stream.lineEnd();\n },\n polygonStart: function() {\n this.stream.polygonStart();\n },\n polygonEnd: function() {\n this.stream.polygonEnd();\n }\n };\n function d3_geo_transformPoint(stream, point) {\n return {\n point: point,\n sphere: function() {\n stream.sphere();\n },\n lineStart: function() {\n stream.lineStart();\n },\n lineEnd: function() {\n stream.lineEnd();\n },\n polygonStart: function() {\n stream.polygonStart();\n },\n polygonEnd: function() {\n stream.polygonEnd();\n }\n };\n }\n d3.geo.projection = d3_geo_projection;\n d3.geo.projectionMutator = d3_geo_projectionMutator;\n function d3_geo_projection(project) {\n return d3_geo_projectionMutator(function() {\n return project;\n })();\n }\n function d3_geo_projectionMutator(projectAt) {\n var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) {\n x = project(x, y);\n return [ x[0] * k + δx, δy - x[1] * k ];\n }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null, stream;\n function projection(point) {\n point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);\n return [ point[0] * k + δx, δy - point[1] * k ];\n }\n function invert(point) {\n point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k);\n return point && [ point[0] * d3_degrees, point[1] * d3_degrees ];\n }\n projection.stream = function(output) {\n if (stream) stream.valid = false;\n stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output))));\n stream.valid = true;\n return stream;\n };\n projection.clipAngle = function(_) {\n if (!arguments.length) return clipAngle;\n preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians);\n return invalidate();\n };\n projection.clipExtent = function(_) {\n if (!arguments.length) return clipExtent;\n clipExtent = _;\n postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity;\n return invalidate();\n };\n projection.scale = function(_) {\n if (!arguments.length) return k;\n k = +_;\n return reset();\n };\n projection.translate = function(_) {\n if (!arguments.length) return [ x, y ];\n x = +_[0];\n y = +_[1];\n return reset();\n };\n projection.center = function(_) {\n if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ];\n λ = _[0] % 360 * d3_radians;\n φ = _[1] % 360 * d3_radians;\n return reset();\n };\n projection.rotate = function(_) {\n if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ];\n δλ = _[0] % 360 * d3_radians;\n δφ = _[1] % 360 * d3_radians;\n δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0;\n return reset();\n };\n d3.rebind(projection, projectResample, \"precision\");\n function reset() {\n projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project);\n var center = project(λ, φ);\n δx = x - center[0] * k;\n δy = y + center[1] * k;\n return invalidate();\n }\n function invalidate() {\n if (stream) stream.valid = false, stream = null;\n return projection;\n }\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return reset();\n };\n }\n function d3_geo_projectionRadians(stream) {\n return d3_geo_transformPoint(stream, function(x, y) {\n stream.point(x * d3_radians, y * d3_radians);\n });\n }\n function d3_geo_equirectangular(λ, φ) {\n return [ λ, φ ];\n }\n (d3.geo.equirectangular = function() {\n return d3_geo_projection(d3_geo_equirectangular);\n }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;\n d3.geo.rotation = function(rotate) {\n rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0);\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians);\n return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;\n }\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians);\n return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;\n };\n return forward;\n };\n function d3_geo_identityRotation(λ, φ) {\n return [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];\n }\n d3_geo_identityRotation.invert = d3_geo_equirectangular;\n function d3_geo_rotation(δλ, δφ, δγ) {\n return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_identityRotation;\n }\n function d3_geo_forwardRotationλ(δλ) {\n return function(λ, φ) {\n return λ += δλ, [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];\n };\n }\n function d3_geo_rotationλ(δλ) {\n var rotation = d3_geo_forwardRotationλ(δλ);\n rotation.invert = d3_geo_forwardRotationλ(-δλ);\n return rotation;\n }\n function d3_geo_rotationφγ(δφ, δγ) {\n var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ);\n function rotation(λ, φ) {\n var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ;\n return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), d3_asin(k * cosδγ + y * sinδγ) ];\n }\n rotation.invert = function(λ, φ) {\n var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ;\n return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), d3_asin(k * cosδφ - x * sinδφ) ];\n };\n return rotation;\n }\n d3.geo.circle = function() {\n var origin = [ 0, 0 ], angle, precision = 6, interpolate;\n function circle() {\n var center = typeof origin === \"function\" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = [];\n interpolate(null, null, 1, {\n point: function(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= d3_degrees, x[1] *= d3_degrees;\n }\n });\n return {\n type: \"Polygon\",\n coordinates: [ ring ]\n };\n }\n circle.origin = function(x) {\n if (!arguments.length) return origin;\n origin = x;\n return circle;\n };\n circle.angle = function(x) {\n if (!arguments.length) return angle;\n interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);\n return circle;\n };\n circle.precision = function(_) {\n if (!arguments.length) return precision;\n interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);\n return circle;\n };\n return circle.angle(90);\n };\n function d3_geo_circleInterpolate(radius, precision) {\n var cr = Math.cos(radius), sr = Math.sin(radius);\n return function(from, to, direction, listener) {\n var step = direction * precision;\n if (from != null) {\n from = d3_geo_circleAngle(cr, from);\n to = d3_geo_circleAngle(cr, to);\n if (direction > 0 ? from < to : from > to) from += direction * τ;\n } else {\n from = radius + direction * τ;\n to = radius - .5 * step;\n }\n for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) {\n listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]);\n }\n };\n }\n function d3_geo_circleAngle(cr, point) {\n var a = d3_geo_cartesian(point);\n a[0] -= cr;\n d3_geo_cartesianNormalize(a);\n var angle = d3_acos(-a[1]);\n return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI);\n }\n d3.geo.distance = function(a, b) {\n var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t;\n return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ);\n };\n d3.geo.graticule = function() {\n var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5;\n function graticule() {\n return {\n type: \"MultiLineString\",\n coordinates: lines()\n };\n }\n function lines() {\n return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) {\n return abs(x % DX) > ε;\n }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) {\n return abs(y % DY) > ε;\n }).map(y));\n }\n graticule.lines = function() {\n return lines().map(function(coordinates) {\n return {\n type: \"LineString\",\n coordinates: coordinates\n };\n });\n };\n graticule.outline = function() {\n return {\n type: \"Polygon\",\n coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ]\n };\n };\n graticule.extent = function(_) {\n if (!arguments.length) return graticule.minorExtent();\n return graticule.majorExtent(_).minorExtent(_);\n };\n graticule.majorExtent = function(_) {\n if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ];\n X0 = +_[0][0], X1 = +_[1][0];\n Y0 = +_[0][1], Y1 = +_[1][1];\n if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n return graticule.precision(precision);\n };\n graticule.minorExtent = function(_) {\n if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];\n x0 = +_[0][0], x1 = +_[1][0];\n y0 = +_[0][1], y1 = +_[1][1];\n if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n return graticule.precision(precision);\n };\n graticule.step = function(_) {\n if (!arguments.length) return graticule.minorStep();\n return graticule.majorStep(_).minorStep(_);\n };\n graticule.majorStep = function(_) {\n if (!arguments.length) return [ DX, DY ];\n DX = +_[0], DY = +_[1];\n return graticule;\n };\n graticule.minorStep = function(_) {\n if (!arguments.length) return [ dx, dy ];\n dx = +_[0], dy = +_[1];\n return graticule;\n };\n graticule.precision = function(_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = d3_geo_graticuleX(y0, y1, 90);\n y = d3_geo_graticuleY(x0, x1, precision);\n X = d3_geo_graticuleX(Y0, Y1, 90);\n Y = d3_geo_graticuleY(X0, X1, precision);\n return graticule;\n };\n return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]);\n };\n function d3_geo_graticuleX(y0, y1, dy) {\n var y = d3.range(y0, y1 - ε, dy).concat(y1);\n return function(x) {\n return y.map(function(y) {\n return [ x, y ];\n });\n };\n }\n function d3_geo_graticuleY(x0, x1, dx) {\n var x = d3.range(x0, x1 - ε, dx).concat(x1);\n return function(y) {\n return x.map(function(x) {\n return [ x, y ];\n });\n };\n }\n function d3_source(d) {\n return d.source;\n }\n function d3_target(d) {\n return d.target;\n }\n d3.geo.greatArc = function() {\n var source = d3_source, source_, target = d3_target, target_;\n function greatArc() {\n return {\n type: \"LineString\",\n coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ]\n };\n }\n greatArc.distance = function() {\n return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments));\n };\n greatArc.source = function(_) {\n if (!arguments.length) return source;\n source = _, source_ = typeof _ === \"function\" ? null : _;\n return greatArc;\n };\n greatArc.target = function(_) {\n if (!arguments.length) return target;\n target = _, target_ = typeof _ === \"function\" ? null : _;\n return greatArc;\n };\n greatArc.precision = function() {\n return arguments.length ? greatArc : 0;\n };\n return greatArc;\n };\n d3.geo.interpolate = function(source, target) {\n return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians);\n };\n function d3_geo_interpolate(x0, y0, x1, y1) {\n var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d);\n var interpolate = d ? function(t) {\n var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;\n return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ];\n } : function() {\n return [ x0 * d3_degrees, y0 * d3_degrees ];\n };\n interpolate.distance = d;\n return interpolate;\n }\n d3.geo.length = function(object) {\n d3_geo_lengthSum = 0;\n d3.geo.stream(object, d3_geo_length);\n return d3_geo_lengthSum;\n };\n var d3_geo_lengthSum;\n var d3_geo_length = {\n sphere: d3_noop,\n point: d3_noop,\n lineStart: d3_geo_lengthLineStart,\n lineEnd: d3_noop,\n polygonStart: d3_noop,\n polygonEnd: d3_noop\n };\n function d3_geo_lengthLineStart() {\n var λ0, sinφ0, cosφ0;\n d3_geo_length.point = function(λ, φ) {\n λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ);\n d3_geo_length.point = nextPoint;\n };\n d3_geo_length.lineEnd = function() {\n d3_geo_length.point = d3_geo_length.lineEnd = d3_noop;\n };\n function nextPoint(λ, φ) {\n var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t);\n d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ);\n λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ;\n }\n }\n function d3_geo_azimuthal(scale, angle) {\n function azimuthal(λ, φ) {\n var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ);\n return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ];\n }\n azimuthal.invert = function(x, y) {\n var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c);\n return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ];\n };\n return azimuthal;\n }\n var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) {\n return Math.sqrt(2 / (1 + cosλcosφ));\n }, function(ρ) {\n return 2 * Math.asin(ρ / 2);\n });\n (d3.geo.azimuthalEqualArea = function() {\n return d3_geo_projection(d3_geo_azimuthalEqualArea);\n }).raw = d3_geo_azimuthalEqualArea;\n var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) {\n var c = Math.acos(cosλcosφ);\n return c && c / Math.sin(c);\n }, d3_identity);\n (d3.geo.azimuthalEquidistant = function() {\n return d3_geo_projection(d3_geo_azimuthalEquidistant);\n }).raw = d3_geo_azimuthalEquidistant;\n function d3_geo_conicConformal(φ0, φ1) {\n var cosφ0 = Math.cos(φ0), t = function(φ) {\n return Math.tan(π / 4 + φ / 2);\n }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n;\n if (!n) return d3_geo_mercator;\n function forward(λ, φ) {\n if (F > 0) {\n if (φ < -halfπ + ε) φ = -halfπ + ε;\n } else {\n if (φ > halfπ - ε) φ = halfπ - ε;\n }\n var ρ = F / Math.pow(t(φ), n);\n return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ];\n }\n forward.invert = function(x, y) {\n var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y);\n return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ ];\n };\n return forward;\n }\n (d3.geo.conicConformal = function() {\n return d3_geo_conic(d3_geo_conicConformal);\n }).raw = d3_geo_conicConformal;\n function d3_geo_conicEquidistant(φ0, φ1) {\n var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0;\n if (abs(n) < ε) return d3_geo_equirectangular;\n function forward(λ, φ) {\n var ρ = G - φ;\n return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ];\n }\n forward.invert = function(x, y) {\n var ρ0_y = G - y;\n return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ];\n };\n return forward;\n }\n (d3.geo.conicEquidistant = function() {\n return d3_geo_conic(d3_geo_conicEquidistant);\n }).raw = d3_geo_conicEquidistant;\n var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) {\n return 1 / cosλcosφ;\n }, Math.atan);\n (d3.geo.gnomonic = function() {\n return d3_geo_projection(d3_geo_gnomonic);\n }).raw = d3_geo_gnomonic;\n function d3_geo_mercator(λ, φ) {\n return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ];\n }\n d3_geo_mercator.invert = function(x, y) {\n return [ x, 2 * Math.atan(Math.exp(y)) - halfπ ];\n };\n function d3_geo_mercatorProjection(project) {\n var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto;\n m.scale = function() {\n var v = scale.apply(m, arguments);\n return v === m ? clipAuto ? m.clipExtent(null) : m : v;\n };\n m.translate = function() {\n var v = translate.apply(m, arguments);\n return v === m ? clipAuto ? m.clipExtent(null) : m : v;\n };\n m.clipExtent = function(_) {\n var v = clipExtent.apply(m, arguments);\n if (v === m) {\n if (clipAuto = _ == null) {\n var k = π * scale(), t = translate();\n clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]);\n }\n } else if (clipAuto) {\n v = null;\n }\n return v;\n };\n return m.clipExtent(null);\n }\n (d3.geo.mercator = function() {\n return d3_geo_mercatorProjection(d3_geo_mercator);\n }).raw = d3_geo_mercator;\n var d3_geo_orthographic = d3_geo_azimuthal(function() {\n return 1;\n }, Math.asin);\n (d3.geo.orthographic = function() {\n return d3_geo_projection(d3_geo_orthographic);\n }).raw = d3_geo_orthographic;\n var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) {\n return 1 / (1 + cosλcosφ);\n }, function(ρ) {\n return 2 * Math.atan(ρ);\n });\n (d3.geo.stereographic = function() {\n return d3_geo_projection(d3_geo_stereographic);\n }).raw = d3_geo_stereographic;\n function d3_geo_transverseMercator(λ, φ) {\n return [ Math.log(Math.tan(π / 4 + φ / 2)), -λ ];\n }\n d3_geo_transverseMercator.invert = function(x, y) {\n return [ -y, 2 * Math.atan(Math.exp(x)) - halfπ ];\n };\n (d3.geo.transverseMercator = function() {\n var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate;\n projection.center = function(_) {\n return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]);\n };\n projection.rotate = function(_) {\n return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(), \n [ _[0], _[1], _[2] - 90 ]);\n };\n return rotate([ 0, 0, 90 ]);\n }).raw = d3_geo_transverseMercator;\n d3.geom = {};\n function d3_geom_pointX(d) {\n return d[0];\n }\n function d3_geom_pointY(d) {\n return d[1];\n }\n d3.geom.hull = function(vertices) {\n var x = d3_geom_pointX, y = d3_geom_pointY;\n if (arguments.length) return hull(vertices);\n function hull(data) {\n if (data.length < 3) return [];\n var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = [];\n for (i = 0; i < n; i++) {\n points.push([ +fx.call(this, data[i], i), +fy.call(this, data[i], i), i ]);\n }\n points.sort(d3_geom_hullOrder);\n for (i = 0; i < n; i++) flippedPoints.push([ points[i][0], -points[i][1] ]);\n var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints);\n var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = [];\n for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]);\n for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]);\n return polygon;\n }\n hull.x = function(_) {\n return arguments.length ? (x = _, hull) : x;\n };\n hull.y = function(_) {\n return arguments.length ? (y = _, hull) : y;\n };\n return hull;\n };\n function d3_geom_hullUpper(points) {\n var n = points.length, hull = [ 0, 1 ], hs = 2;\n for (var i = 2; i < n; i++) {\n while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs;\n hull[hs++] = i;\n }\n return hull.slice(0, hs);\n }\n function d3_geom_hullOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n }\n d3.geom.polygon = function(coordinates) {\n d3_subclass(coordinates, d3_geom_polygonPrototype);\n return coordinates;\n };\n var d3_geom_polygonPrototype = d3.geom.polygon.prototype = [];\n d3_geom_polygonPrototype.area = function() {\n var i = -1, n = this.length, a, b = this[n - 1], area = 0;\n while (++i < n) {\n a = b;\n b = this[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n return area * .5;\n };\n d3_geom_polygonPrototype.centroid = function(k) {\n var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c;\n if (!arguments.length) k = -1 / (6 * this.area());\n while (++i < n) {\n a = b;\n b = this[i];\n c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n return [ x * k, y * k ];\n };\n d3_geom_polygonPrototype.clip = function(subject) {\n var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d;\n while (++i < n) {\n input = subject.slice();\n subject.length = 0;\n b = this[i];\n c = input[(m = input.length - closed) - 1];\n j = -1;\n while (++j < m) {\n d = input[j];\n if (d3_geom_polygonInside(d, a, b)) {\n if (!d3_geom_polygonInside(c, a, b)) {\n subject.push(d3_geom_polygonIntersect(c, d, a, b));\n }\n subject.push(d);\n } else if (d3_geom_polygonInside(c, a, b)) {\n subject.push(d3_geom_polygonIntersect(c, d, a, b));\n }\n c = d;\n }\n if (closed) subject.push(subject[0]);\n a = b;\n }\n return subject;\n };\n function d3_geom_polygonInside(p, a, b) {\n return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);\n }\n function d3_geom_polygonIntersect(c, d, a, b) {\n var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);\n return [ x1 + ua * x21, y1 + ua * y21 ];\n }\n function d3_geom_polygonClosed(coordinates) {\n var a = coordinates[0], b = coordinates[coordinates.length - 1];\n return !(a[0] - b[0] || a[1] - b[1]);\n }\n var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = [];\n function d3_geom_voronoiBeach() {\n d3_geom_voronoiRedBlackNode(this);\n this.edge = this.site = this.circle = null;\n }\n function d3_geom_voronoiCreateBeach(site) {\n var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach();\n beach.site = site;\n return beach;\n }\n function d3_geom_voronoiDetachBeach(beach) {\n d3_geom_voronoiDetachCircle(beach);\n d3_geom_voronoiBeaches.remove(beach);\n d3_geom_voronoiBeachPool.push(beach);\n d3_geom_voronoiRedBlackNode(beach);\n }\n function d3_geom_voronoiRemoveBeach(beach) {\n var circle = beach.circle, x = circle.x, y = circle.cy, vertex = {\n x: x,\n y: y\n }, previous = beach.P, next = beach.N, disappearing = [ beach ];\n d3_geom_voronoiDetachBeach(beach);\n var lArc = previous;\n while (lArc.circle && abs(x - lArc.circle.x) < ε && abs(y - lArc.circle.cy) < ε) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n d3_geom_voronoiDetachBeach(lArc);\n lArc = previous;\n }\n disappearing.unshift(lArc);\n d3_geom_voronoiDetachCircle(lArc);\n var rArc = next;\n while (rArc.circle && abs(x - rArc.circle.x) < ε && abs(y - rArc.circle.cy) < ε) {\n next = rArc.N;\n disappearing.push(rArc);\n d3_geom_voronoiDetachBeach(rArc);\n rArc = next;\n }\n disappearing.push(rArc);\n d3_geom_voronoiDetachCircle(rArc);\n var nArcs = disappearing.length, iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n }\n function d3_geom_voronoiAddBeach(site) {\n var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._;\n while (node) {\n dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x;\n if (dxl > ε) node = node.L; else {\n dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix);\n if (dxr > ε) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -ε) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -ε) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n var newArc = d3_geom_voronoiCreateBeach(site);\n d3_geom_voronoiBeaches.insert(lArc, newArc);\n if (!lArc && !rArc) return;\n if (lArc === rArc) {\n d3_geom_voronoiDetachCircle(lArc);\n rArc = d3_geom_voronoiCreateBeach(lArc.site);\n d3_geom_voronoiBeaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n return;\n }\n if (!rArc) {\n newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);\n return;\n }\n d3_geom_voronoiDetachCircle(lArc);\n d3_geom_voronoiDetachCircle(rArc);\n var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = {\n x: (cy * hb - by * hc) / d + ax,\n y: (bx * hc - cx * hb) / d + ay\n };\n d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex);\n rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n }\n function d3_geom_voronoiLeftBreakPoint(arc, directrix) {\n var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix;\n if (!pby2) return rfocx;\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n site = lArc.site;\n var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix;\n if (!plby2) return lfocx;\n var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2;\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n return (rfocx + lfocx) / 2;\n }\n function d3_geom_voronoiRightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site.y === directrix ? site.x : Infinity;\n }\n function d3_geom_voronoiCell(site) {\n this.site = site;\n this.edges = [];\n }\n d3_geom_voronoiCell.prototype.prepare = function() {\n var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge;\n while (iHalfEdge--) {\n edge = halfEdges[iHalfEdge].edge;\n if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1);\n }\n halfEdges.sort(d3_geom_voronoiHalfEdgeOrder);\n return halfEdges.length;\n };\n function d3_geom_voronoiCloseCells(extent) {\n var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end;\n while (iCell--) {\n cell = cells[iCell];\n if (!cell || !cell.prepare()) continue;\n halfEdges = cell.edges;\n nHalfEdges = halfEdges.length;\n iHalfEdge = 0;\n while (iHalfEdge < nHalfEdges) {\n end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y;\n start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y;\n if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) {\n halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < ε && y1 - y3 > ε ? {\n x: x0,\n y: abs(x2 - x0) < ε ? y2 : y1\n } : abs(y3 - y1) < ε && x1 - x3 > ε ? {\n x: abs(y2 - y1) < ε ? x2 : x1,\n y: y1\n } : abs(x3 - x1) < ε && y3 - y0 > ε ? {\n x: x1,\n y: abs(x2 - x1) < ε ? y2 : y0\n } : abs(y3 - y0) < ε && x3 - x0 > ε ? {\n x: abs(y2 - y0) < ε ? x2 : x0,\n y: y0\n } : null), cell.site, null));\n ++nHalfEdges;\n }\n }\n }\n }\n function d3_geom_voronoiHalfEdgeOrder(a, b) {\n return b.angle - a.angle;\n }\n function d3_geom_voronoiCircle() {\n d3_geom_voronoiRedBlackNode(this);\n this.x = this.y = this.arc = this.site = this.cy = null;\n }\n function d3_geom_voronoiAttachCircle(arc) {\n var lArc = arc.P, rArc = arc.N;\n if (!lArc || !rArc) return;\n var lSite = lArc.site, cSite = arc.site, rSite = rArc.site;\n if (lSite === rSite) return;\n var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by;\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -ε2) return;\n var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by;\n var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle();\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = cy + Math.sqrt(x * x + y * y);\n circle.cy = cy;\n arc.circle = circle;\n var before = null, node = d3_geom_voronoiCircles._;\n while (node) {\n if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {\n if (node.L) node = node.L; else {\n before = node.P;\n break;\n }\n } else {\n if (node.R) node = node.R; else {\n before = node;\n break;\n }\n }\n }\n d3_geom_voronoiCircles.insert(before, circle);\n if (!before) d3_geom_voronoiFirstCircle = circle;\n }\n function d3_geom_voronoiDetachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) d3_geom_voronoiFirstCircle = circle.N;\n d3_geom_voronoiCircles.remove(circle);\n d3_geom_voronoiCirclePool.push(circle);\n d3_geom_voronoiRedBlackNode(circle);\n arc.circle = null;\n }\n }\n function d3_geom_voronoiClipEdges(extent) {\n var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e;\n while (i--) {\n e = edges[i];\n if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) {\n e.a = e.b = null;\n edges.splice(i, 1);\n }\n }\n }\n function d3_geom_voronoiConnectEdge(edge, extent) {\n var vb = edge.b;\n if (vb) return true;\n var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb;\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!va) va = {\n x: fx,\n y: y0\n }; else if (va.y >= y1) return;\n vb = {\n x: fx,\n y: y1\n };\n } else {\n if (!va) va = {\n x: fx,\n y: y1\n }; else if (va.y < y0) return;\n vb = {\n x: fx,\n y: y0\n };\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!va) va = {\n x: (y0 - fb) / fm,\n y: y0\n }; else if (va.y >= y1) return;\n vb = {\n x: (y1 - fb) / fm,\n y: y1\n };\n } else {\n if (!va) va = {\n x: (y1 - fb) / fm,\n y: y1\n }; else if (va.y < y0) return;\n vb = {\n x: (y0 - fb) / fm,\n y: y0\n };\n }\n } else {\n if (ly < ry) {\n if (!va) va = {\n x: x0,\n y: fm * x0 + fb\n }; else if (va.x >= x1) return;\n vb = {\n x: x1,\n y: fm * x1 + fb\n };\n } else {\n if (!va) va = {\n x: x1,\n y: fm * x1 + fb\n }; else if (va.x < x0) return;\n vb = {\n x: x0,\n y: fm * x0 + fb\n };\n }\n }\n }\n edge.a = va;\n edge.b = vb;\n return true;\n }\n function d3_geom_voronoiEdge(lSite, rSite) {\n this.l = lSite;\n this.r = rSite;\n this.a = this.b = null;\n }\n function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) {\n var edge = new d3_geom_voronoiEdge(lSite, rSite);\n d3_geom_voronoiEdges.push(edge);\n if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va);\n if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb);\n d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite));\n d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite));\n return edge;\n }\n function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) {\n var edge = new d3_geom_voronoiEdge(lSite, null);\n edge.a = va;\n edge.b = vb;\n d3_geom_voronoiEdges.push(edge);\n return edge;\n }\n function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) {\n if (!edge.a && !edge.b) {\n edge.a = vertex;\n edge.l = lSite;\n edge.r = rSite;\n } else if (edge.l === rSite) {\n edge.b = vertex;\n } else {\n edge.a = vertex;\n }\n }\n function d3_geom_voronoiHalfEdge(edge, lSite, rSite) {\n var va = edge.a, vb = edge.b;\n this.edge = edge;\n this.site = lSite;\n this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y);\n }\n d3_geom_voronoiHalfEdge.prototype = {\n start: function() {\n return this.edge.l === this.site ? this.edge.a : this.edge.b;\n },\n end: function() {\n return this.edge.l === this.site ? this.edge.b : this.edge.a;\n }\n };\n function d3_geom_voronoiRedBlackTree() {\n this._ = null;\n }\n function d3_geom_voronoiRedBlackNode(node) {\n node.U = node.C = node.L = node.R = node.P = node.N = null;\n }\n d3_geom_voronoiRedBlackTree.prototype = {\n insert: function(after, node) {\n var parent, grandpa, uncle;\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = d3_geom_voronoiRedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n var parent = node.U, sibling, left = node.L, right = node.R, next, red;\n if (!left) next = right; else if (!right) next = left; else next = d3_geom_voronoiRedBlackFirst(right);\n if (parent) {\n if (parent.L === node) parent.L = next; else parent.R = next;\n } else {\n this._ = next;\n }\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) {\n node.C = false;\n return;\n }\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n if (node) node.C = false;\n }\n };\n function d3_geom_voronoiRedBlackRotateLeft(tree, node) {\n var p = node, q = node.R, parent = p.U;\n if (parent) {\n if (parent.L === p) parent.L = q; else parent.R = q;\n } else {\n tree._ = q;\n }\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n }\n function d3_geom_voronoiRedBlackRotateRight(tree, node) {\n var p = node, q = node.L, parent = p.U;\n if (parent) {\n if (parent.L === p) parent.L = q; else parent.R = q;\n } else {\n tree._ = q;\n }\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n }\n function d3_geom_voronoiRedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n }\n function d3_geom_voronoi(sites, bbox) {\n var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle;\n d3_geom_voronoiEdges = [];\n d3_geom_voronoiCells = new Array(sites.length);\n d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree();\n d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree();\n while (true) {\n circle = d3_geom_voronoiFirstCircle;\n if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) {\n if (site.x !== x0 || site.y !== y0) {\n d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site);\n d3_geom_voronoiAddBeach(site);\n x0 = site.x, y0 = site.y;\n }\n site = sites.pop();\n } else if (circle) {\n d3_geom_voronoiRemoveBeach(circle.arc);\n } else {\n break;\n }\n }\n if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox);\n var diagram = {\n cells: d3_geom_voronoiCells,\n edges: d3_geom_voronoiEdges\n };\n d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null;\n return diagram;\n }\n function d3_geom_voronoiVertexOrder(a, b) {\n return b.y - a.y || b.x - a.x;\n }\n d3.geom.voronoi = function(points) {\n var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent;\n if (points) return voronoi(points);\n function voronoi(data) {\n var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1];\n d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) {\n var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) {\n var s = e.start();\n return [ s.x, s.y ];\n }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [ [ x0, y1 ], [ x1, y1 ], [ x1, y0 ], [ x0, y0 ] ] : [];\n polygon.point = data[i];\n });\n return polygons;\n }\n function sites(data) {\n return data.map(function(d, i) {\n return {\n x: Math.round(fx(d, i) / ε) * ε,\n y: Math.round(fy(d, i) / ε) * ε,\n i: i\n };\n });\n }\n voronoi.links = function(data) {\n return d3_geom_voronoi(sites(data)).edges.filter(function(edge) {\n return edge.l && edge.r;\n }).map(function(edge) {\n return {\n source: data[edge.l.i],\n target: data[edge.r.i]\n };\n });\n };\n voronoi.triangles = function(data) {\n var triangles = [];\n d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) {\n var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l;\n while (++j < m) {\n e0 = e1;\n s0 = s1;\n e1 = edges[j].edge;\n s1 = e1.l === site ? e1.r : e1.l;\n if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) {\n triangles.push([ data[i], data[s0.i], data[s1.i] ]);\n }\n }\n });\n return triangles;\n };\n voronoi.x = function(_) {\n return arguments.length ? (fx = d3_functor(x = _), voronoi) : x;\n };\n voronoi.y = function(_) {\n return arguments.length ? (fy = d3_functor(y = _), voronoi) : y;\n };\n voronoi.clipExtent = function(_) {\n if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent;\n clipExtent = _ == null ? d3_geom_voronoiClipExtent : _;\n return voronoi;\n };\n voronoi.size = function(_) {\n if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1];\n return voronoi.clipExtent(_ && [ [ 0, 0 ], _ ]);\n };\n return voronoi;\n };\n var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ];\n function d3_geom_voronoiTriangleArea(a, b, c) {\n return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y);\n }\n d3.geom.delaunay = function(vertices) {\n return d3.geom.voronoi().triangles(vertices);\n };\n d3.geom.quadtree = function(points, x1, y1, x2, y2) {\n var x = d3_geom_pointX, y = d3_geom_pointY, compat;\n if (compat = arguments.length) {\n x = d3_geom_quadtreeCompatX;\n y = d3_geom_quadtreeCompatY;\n if (compat === 3) {\n y2 = y1;\n x2 = x1;\n y1 = x1 = 0;\n }\n return quadtree(points);\n }\n function quadtree(data) {\n var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_;\n if (x1 != null) {\n x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2;\n } else {\n x2_ = y2_ = -(x1_ = y1_ = Infinity);\n xs = [], ys = [];\n n = data.length;\n if (compat) for (i = 0; i < n; ++i) {\n d = data[i];\n if (d.x < x1_) x1_ = d.x;\n if (d.y < y1_) y1_ = d.y;\n if (d.x > x2_) x2_ = d.x;\n if (d.y > y2_) y2_ = d.y;\n xs.push(d.x);\n ys.push(d.y);\n } else for (i = 0; i < n; ++i) {\n var x_ = +fx(d = data[i], i), y_ = +fy(d, i);\n if (x_ < x1_) x1_ = x_;\n if (y_ < y1_) y1_ = y_;\n if (x_ > x2_) x2_ = x_;\n if (y_ > y2_) y2_ = y_;\n xs.push(x_);\n ys.push(y_);\n }\n }\n var dx = x2_ - x1_, dy = y2_ - y1_;\n if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy;\n function insert(n, d, x, y, x1, y1, x2, y2) {\n if (isNaN(x) || isNaN(y)) return;\n if (n.leaf) {\n var nx = n.x, ny = n.y;\n if (nx != null) {\n if (abs(nx - x) + abs(ny - y) < .01) {\n insertChild(n, d, x, y, x1, y1, x2, y2);\n } else {\n var nPoint = n.point;\n n.x = n.y = n.point = null;\n insertChild(n, nPoint, nx, ny, x1, y1, x2, y2);\n insertChild(n, d, x, y, x1, y1, x2, y2);\n }\n } else {\n n.x = x, n.y = y, n.point = d;\n }\n } else {\n insertChild(n, d, x, y, x1, y1, x2, y2);\n }\n }\n function insertChild(n, d, x, y, x1, y1, x2, y2) {\n var xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym, i = below << 1 | right;\n n.leaf = false;\n n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());\n if (right) x1 = xm; else x2 = xm;\n if (below) y1 = ym; else y2 = ym;\n insert(n, d, x, y, x1, y1, x2, y2);\n }\n var root = d3_geom_quadtreeNode();\n root.add = function(d) {\n insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_);\n };\n root.visit = function(f) {\n d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_);\n };\n root.find = function(point) {\n return d3_geom_quadtreeFind(root, point[0], point[1], x1_, y1_, x2_, y2_);\n };\n i = -1;\n if (x1 == null) {\n while (++i < n) {\n insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_);\n }\n --i;\n } else data.forEach(root.add);\n xs = ys = data = d = null;\n return root;\n }\n quadtree.x = function(_) {\n return arguments.length ? (x = _, quadtree) : x;\n };\n quadtree.y = function(_) {\n return arguments.length ? (y = _, quadtree) : y;\n };\n quadtree.extent = function(_) {\n if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ];\n if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0], \n y2 = +_[1][1];\n return quadtree;\n };\n quadtree.size = function(_) {\n if (!arguments.length) return x1 == null ? null : [ x2 - x1, y2 - y1 ];\n if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = y1 = 0, x2 = +_[0], y2 = +_[1];\n return quadtree;\n };\n return quadtree;\n };\n function d3_geom_quadtreeCompatX(d) {\n return d.x;\n }\n function d3_geom_quadtreeCompatY(d) {\n return d.y;\n }\n function d3_geom_quadtreeNode() {\n return {\n leaf: true,\n nodes: [],\n point: null,\n x: null,\n y: null\n };\n }\n function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {\n if (!f(node, x1, y1, x2, y2)) {\n var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;\n if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);\n if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);\n if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);\n if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);\n }\n }\n function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) {\n var minDistance2 = Infinity, closestPoint;\n (function find(node, x1, y1, x2, y2) {\n if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return;\n if (point = node.point) {\n var point, dx = x - node.x, dy = y - node.y, distance2 = dx * dx + dy * dy;\n if (distance2 < minDistance2) {\n var distance = Math.sqrt(minDistance2 = distance2);\n x0 = x - distance, y0 = y - distance;\n x3 = x + distance, y3 = y + distance;\n closestPoint = point;\n }\n }\n var children = node.nodes, xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym;\n for (var i = below << 1 | right, j = i + 4; i < j; ++i) {\n if (node = children[i & 3]) switch (i & 3) {\n case 0:\n find(node, x1, y1, xm, ym);\n break;\n\n case 1:\n find(node, xm, y1, x2, ym);\n break;\n\n case 2:\n find(node, x1, ym, xm, y2);\n break;\n\n case 3:\n find(node, xm, ym, x2, y2);\n break;\n }\n }\n })(root, x0, y0, x3, y3);\n return closestPoint;\n }\n d3.interpolateRgb = d3_interpolateRgb;\n function d3_interpolateRgb(a, b) {\n a = d3.rgb(a);\n b = d3.rgb(b);\n var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;\n return function(t) {\n return \"#\" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));\n };\n }\n d3.interpolateObject = d3_interpolateObject;\n function d3_interpolateObject(a, b) {\n var i = {}, c = {}, k;\n for (k in a) {\n if (k in b) {\n i[k] = d3_interpolate(a[k], b[k]);\n } else {\n c[k] = a[k];\n }\n }\n for (k in b) {\n if (!(k in a)) {\n c[k] = b[k];\n }\n }\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n }\n d3.interpolateNumber = d3_interpolateNumber;\n function d3_interpolateNumber(a, b) {\n a = +a, b = +b;\n return function(t) {\n return a * (1 - t) + b * t;\n };\n }\n d3.interpolateString = d3_interpolateString;\n function d3_interpolateString(a, b) {\n var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];\n a = a + \"\", b = b + \"\";\n while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) {\n if ((bs = bm.index) > bi) {\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) {\n if (s[i]) s[i] += bm; else s[++i] = bm;\n } else {\n s[++i] = null;\n q.push({\n i: i,\n x: d3_interpolateNumber(am, bm)\n });\n }\n bi = d3_interpolate_numberB.lastIndex;\n }\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; else s[++i] = bs;\n }\n return s.length < 2 ? q[0] ? (b = q[0].x, function(t) {\n return b(t) + \"\";\n }) : function() {\n return b;\n } : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n }\n var d3_interpolate_numberA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, \"g\");\n d3.interpolate = d3_interpolate;\n function d3_interpolate(a, b) {\n var i = d3.interpolators.length, f;\n while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;\n return f;\n }\n d3.interpolators = [ function(a, b) {\n var t = typeof b;\n return (t === \"string\" ? d3_rgb_names.has(b.toLowerCase()) || /^(#|rgb\\(|hsl\\()/i.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === \"object\" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b);\n } ];\n d3.interpolateArray = d3_interpolateArray;\n function d3_interpolateArray(a, b) {\n var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;\n for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i]));\n for (;i < na; ++i) c[i] = a[i];\n for (;i < nb; ++i) c[i] = b[i];\n return function(t) {\n for (i = 0; i < n0; ++i) c[i] = x[i](t);\n return c;\n };\n }\n var d3_ease_default = function() {\n return d3_identity;\n };\n var d3_ease = d3.map({\n linear: d3_ease_default,\n poly: d3_ease_poly,\n quad: function() {\n return d3_ease_quad;\n },\n cubic: function() {\n return d3_ease_cubic;\n },\n sin: function() {\n return d3_ease_sin;\n },\n exp: function() {\n return d3_ease_exp;\n },\n circle: function() {\n return d3_ease_circle;\n },\n elastic: d3_ease_elastic,\n back: d3_ease_back,\n bounce: function() {\n return d3_ease_bounce;\n }\n });\n var d3_ease_mode = d3.map({\n \"in\": d3_identity,\n out: d3_ease_reverse,\n \"in-out\": d3_ease_reflect,\n \"out-in\": function(f) {\n return d3_ease_reflect(d3_ease_reverse(f));\n }\n });\n d3.ease = function(name) {\n var i = name.indexOf(\"-\"), t = i >= 0 ? name.slice(0, i) : name, m = i >= 0 ? name.slice(i + 1) : \"in\";\n t = d3_ease.get(t) || d3_ease_default;\n m = d3_ease_mode.get(m) || d3_identity;\n return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1))));\n };\n function d3_ease_clamp(f) {\n return function(t) {\n return t <= 0 ? 0 : t >= 1 ? 1 : f(t);\n };\n }\n function d3_ease_reverse(f) {\n return function(t) {\n return 1 - f(1 - t);\n };\n }\n function d3_ease_reflect(f) {\n return function(t) {\n return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));\n };\n }\n function d3_ease_quad(t) {\n return t * t;\n }\n function d3_ease_cubic(t) {\n return t * t * t;\n }\n function d3_ease_cubicInOut(t) {\n if (t <= 0) return 0;\n if (t >= 1) return 1;\n var t2 = t * t, t3 = t2 * t;\n return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);\n }\n function d3_ease_poly(e) {\n return function(t) {\n return Math.pow(t, e);\n };\n }\n function d3_ease_sin(t) {\n return 1 - Math.cos(t * halfπ);\n }\n function d3_ease_exp(t) {\n return Math.pow(2, 10 * (t - 1));\n }\n function d3_ease_circle(t) {\n return 1 - Math.sqrt(1 - t * t);\n }\n function d3_ease_elastic(a, p) {\n var s;\n if (arguments.length < 2) p = .45;\n if (arguments.length) s = p / τ * Math.asin(1 / a); else a = 1, s = p / 4;\n return function(t) {\n return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p);\n };\n }\n function d3_ease_back(s) {\n if (!s) s = 1.70158;\n return function(t) {\n return t * t * ((s + 1) * t - s);\n };\n }\n function d3_ease_bounce(t) {\n return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;\n }\n d3.interpolateHcl = d3_interpolateHcl;\n function d3_interpolateHcl(a, b) {\n a = d3.hcl(a);\n b = d3.hcl(b);\n var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;\n if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac;\n if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;\n return function(t) {\n return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + \"\";\n };\n }\n d3.interpolateHsl = d3_interpolateHsl;\n function d3_interpolateHsl(a, b) {\n a = d3.hsl(a);\n b = d3.hsl(b);\n var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al;\n if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as;\n if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;\n return function(t) {\n return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + \"\";\n };\n }\n d3.interpolateLab = d3_interpolateLab;\n function d3_interpolateLab(a, b) {\n a = d3.lab(a);\n b = d3.lab(b);\n var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;\n return function(t) {\n return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + \"\";\n };\n }\n d3.interpolateRound = d3_interpolateRound;\n function d3_interpolateRound(a, b) {\n b -= a;\n return function(t) {\n return Math.round(a + b * t);\n };\n }\n d3.transform = function(string) {\n var g = d3_document.createElementNS(d3.ns.prefix.svg, \"g\");\n return (d3.transform = function(string) {\n if (string != null) {\n g.setAttribute(\"transform\", string);\n var t = g.transform.baseVal.consolidate();\n }\n return new d3_transform(t ? t.matrix : d3_transformIdentity);\n })(string);\n };\n function d3_transform(m) {\n var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;\n if (r0[0] * r1[1] < r1[0] * r0[1]) {\n r0[0] *= -1;\n r0[1] *= -1;\n kx *= -1;\n kz *= -1;\n }\n this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;\n this.translate = [ m.e, m.f ];\n this.scale = [ kx, ky ];\n this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;\n }\n d3_transform.prototype.toString = function() {\n return \"translate(\" + this.translate + \")rotate(\" + this.rotate + \")skewX(\" + this.skew + \")scale(\" + this.scale + \")\";\n };\n function d3_transformDot(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n }\n function d3_transformNormalize(a) {\n var k = Math.sqrt(d3_transformDot(a, a));\n if (k) {\n a[0] /= k;\n a[1] /= k;\n }\n return k;\n }\n function d3_transformCombine(a, b, k) {\n a[0] += k * b[0];\n a[1] += k * b[1];\n return a;\n }\n var d3_transformIdentity = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: 0,\n f: 0\n };\n d3.interpolateTransform = d3_interpolateTransform;\n function d3_interpolateTransformPop(s) {\n return s.length ? s.pop() + \",\" : \"\";\n }\n function d3_interpolateTranslate(ta, tb, s, q) {\n if (ta[0] !== tb[0] || ta[1] !== tb[1]) {\n var i = s.push(\"translate(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: d3_interpolateNumber(ta[0], tb[0])\n }, {\n i: i - 2,\n x: d3_interpolateNumber(ta[1], tb[1])\n });\n } else if (tb[0] || tb[1]) {\n s.push(\"translate(\" + tb + \")\");\n }\n }\n function d3_interpolateRotate(ra, rb, s, q) {\n if (ra !== rb) {\n if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;\n q.push({\n i: s.push(d3_interpolateTransformPop(s) + \"rotate(\", null, \")\") - 2,\n x: d3_interpolateNumber(ra, rb)\n });\n } else if (rb) {\n s.push(d3_interpolateTransformPop(s) + \"rotate(\" + rb + \")\");\n }\n }\n function d3_interpolateSkew(wa, wb, s, q) {\n if (wa !== wb) {\n q.push({\n i: s.push(d3_interpolateTransformPop(s) + \"skewX(\", null, \")\") - 2,\n x: d3_interpolateNumber(wa, wb)\n });\n } else if (wb) {\n s.push(d3_interpolateTransformPop(s) + \"skewX(\" + wb + \")\");\n }\n }\n function d3_interpolateScale(ka, kb, s, q) {\n if (ka[0] !== kb[0] || ka[1] !== kb[1]) {\n var i = s.push(d3_interpolateTransformPop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: d3_interpolateNumber(ka[0], kb[0])\n }, {\n i: i - 2,\n x: d3_interpolateNumber(ka[1], kb[1])\n });\n } else if (kb[0] !== 1 || kb[1] !== 1) {\n s.push(d3_interpolateTransformPop(s) + \"scale(\" + kb + \")\");\n }\n }\n function d3_interpolateTransform(a, b) {\n var s = [], q = [];\n a = d3.transform(a), b = d3.transform(b);\n d3_interpolateTranslate(a.translate, b.translate, s, q);\n d3_interpolateRotate(a.rotate, b.rotate, s, q);\n d3_interpolateSkew(a.skew, b.skew, s, q);\n d3_interpolateScale(a.scale, b.scale, s, q);\n a = b = null;\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n }\n function d3_uninterpolateNumber(a, b) {\n b = (b -= a = +a) || 1 / b;\n return function(x) {\n return (x - a) / b;\n };\n }\n function d3_uninterpolateClamp(a, b) {\n b = (b -= a = +a) || 1 / b;\n return function(x) {\n return Math.max(0, Math.min(1, (x - a) / b));\n };\n }\n d3.layout = {};\n d3.layout.bundle = function() {\n return function(links) {\n var paths = [], i = -1, n = links.length;\n while (++i < n) paths.push(d3_layout_bundlePath(links[i]));\n return paths;\n };\n };\n function d3_layout_bundlePath(link) {\n var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];\n while (start !== lca) {\n start = start.parent;\n points.push(start);\n }\n var k = points.length;\n while (end !== lca) {\n points.splice(k, 0, end);\n end = end.parent;\n }\n return points;\n }\n function d3_layout_bundleAncestors(node) {\n var ancestors = [], parent = node.parent;\n while (parent != null) {\n ancestors.push(node);\n node = parent;\n parent = parent.parent;\n }\n ancestors.push(node);\n return ancestors;\n }\n function d3_layout_bundleLeastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;\n while (aNode === bNode) {\n sharedNode = aNode;\n aNode = aNodes.pop();\n bNode = bNodes.pop();\n }\n return sharedNode;\n }\n d3.layout.chord = function() {\n var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;\n function relayout() {\n var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;\n chords = [];\n groups = [];\n k = 0, i = -1;\n while (++i < n) {\n x = 0, j = -1;\n while (++j < n) {\n x += matrix[i][j];\n }\n groupSums.push(x);\n subgroupIndex.push(d3.range(n));\n k += x;\n }\n if (sortGroups) {\n groupIndex.sort(function(a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n });\n }\n if (sortSubgroups) {\n subgroupIndex.forEach(function(d, i) {\n d.sort(function(a, b) {\n return sortSubgroups(matrix[i][a], matrix[i][b]);\n });\n });\n }\n k = (τ - padding * n) / k;\n x = 0, i = -1;\n while (++i < n) {\n x0 = x, j = -1;\n while (++j < n) {\n var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;\n subgroups[di + \"-\" + dj] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: groupSums[di]\n };\n x += padding;\n }\n i = -1;\n while (++i < n) {\n j = i - 1;\n while (++j < n) {\n var source = subgroups[i + \"-\" + j], target = subgroups[j + \"-\" + i];\n if (source.value || target.value) {\n chords.push(source.value < target.value ? {\n source: target,\n target: source\n } : {\n source: source,\n target: target\n });\n }\n }\n }\n if (sortChords) resort();\n }\n function resort() {\n chords.sort(function(a, b) {\n return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);\n });\n }\n chord.matrix = function(x) {\n if (!arguments.length) return matrix;\n n = (matrix = x) && matrix.length;\n chords = groups = null;\n return chord;\n };\n chord.padding = function(x) {\n if (!arguments.length) return padding;\n padding = x;\n chords = groups = null;\n return chord;\n };\n chord.sortGroups = function(x) {\n if (!arguments.length) return sortGroups;\n sortGroups = x;\n chords = groups = null;\n return chord;\n };\n chord.sortSubgroups = function(x) {\n if (!arguments.length) return sortSubgroups;\n sortSubgroups = x;\n chords = null;\n return chord;\n };\n chord.sortChords = function(x) {\n if (!arguments.length) return sortChords;\n sortChords = x;\n if (chords) resort();\n return chord;\n };\n chord.chords = function() {\n if (!chords) relayout();\n return chords;\n };\n chord.groups = function() {\n if (!groups) relayout();\n return groups;\n };\n return chord;\n };\n d3.layout.force = function() {\n var force = {}, event = d3.dispatch(\"start\", \"tick\", \"end\"), timer, size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges;\n function repulse(node) {\n return function(quad, x1, _, x2) {\n if (quad.point !== node) {\n var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy;\n if (dw * dw / theta2 < dn) {\n if (dn < chargeDistance2) {\n var k = quad.charge / dn;\n node.px -= dx * k;\n node.py -= dy * k;\n }\n return true;\n }\n if (quad.point && dn && dn < chargeDistance2) {\n var k = quad.pointCharge / dn;\n node.px -= dx * k;\n node.py -= dy * k;\n }\n }\n return !quad.charge;\n };\n }\n force.tick = function() {\n if ((alpha *= .99) < .005) {\n timer = null;\n event.end({\n type: \"end\",\n alpha: alpha = 0\n });\n return true;\n }\n var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;\n for (i = 0; i < m; ++i) {\n o = links[i];\n s = o.source;\n t = o.target;\n x = t.x - s.x;\n y = t.y - s.y;\n if (l = x * x + y * y) {\n l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;\n x *= l;\n y *= l;\n t.x -= x * (k = s.weight + t.weight ? s.weight / (s.weight + t.weight) : .5);\n t.y -= y * k;\n s.x += x * (k = 1 - k);\n s.y += y * k;\n }\n }\n if (k = alpha * gravity) {\n x = size[0] / 2;\n y = size[1] / 2;\n i = -1;\n if (k) while (++i < n) {\n o = nodes[i];\n o.x += (x - o.x) * k;\n o.y += (y - o.y) * k;\n }\n }\n if (charge) {\n d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);\n i = -1;\n while (++i < n) {\n if (!(o = nodes[i]).fixed) {\n q.visit(repulse(o));\n }\n }\n }\n i = -1;\n while (++i < n) {\n o = nodes[i];\n if (o.fixed) {\n o.x = o.px;\n o.y = o.py;\n } else {\n o.x -= (o.px - (o.px = o.x)) * friction;\n o.y -= (o.py - (o.py = o.y)) * friction;\n }\n }\n event.tick({\n type: \"tick\",\n alpha: alpha\n });\n };\n force.nodes = function(x) {\n if (!arguments.length) return nodes;\n nodes = x;\n return force;\n };\n force.links = function(x) {\n if (!arguments.length) return links;\n links = x;\n return force;\n };\n force.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return force;\n };\n force.linkDistance = function(x) {\n if (!arguments.length) return linkDistance;\n linkDistance = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.distance = force.linkDistance;\n force.linkStrength = function(x) {\n if (!arguments.length) return linkStrength;\n linkStrength = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.friction = function(x) {\n if (!arguments.length) return friction;\n friction = +x;\n return force;\n };\n force.charge = function(x) {\n if (!arguments.length) return charge;\n charge = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.chargeDistance = function(x) {\n if (!arguments.length) return Math.sqrt(chargeDistance2);\n chargeDistance2 = x * x;\n return force;\n };\n force.gravity = function(x) {\n if (!arguments.length) return gravity;\n gravity = +x;\n return force;\n };\n force.theta = function(x) {\n if (!arguments.length) return Math.sqrt(theta2);\n theta2 = x * x;\n return force;\n };\n force.alpha = function(x) {\n if (!arguments.length) return alpha;\n x = +x;\n if (alpha) {\n if (x > 0) {\n alpha = x;\n } else {\n timer.c = null, timer.t = NaN, timer = null;\n event.end({\n type: \"end\",\n alpha: alpha = 0\n });\n }\n } else if (x > 0) {\n event.start({\n type: \"start\",\n alpha: alpha = x\n });\n timer = d3_timer(force.tick);\n }\n return force;\n };\n force.start = function() {\n var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;\n for (i = 0; i < n; ++i) {\n (o = nodes[i]).index = i;\n o.weight = 0;\n }\n for (i = 0; i < m; ++i) {\n o = links[i];\n if (typeof o.source == \"number\") o.source = nodes[o.source];\n if (typeof o.target == \"number\") o.target = nodes[o.target];\n ++o.source.weight;\n ++o.target.weight;\n }\n for (i = 0; i < n; ++i) {\n o = nodes[i];\n if (isNaN(o.x)) o.x = position(\"x\", w);\n if (isNaN(o.y)) o.y = position(\"y\", h);\n if (isNaN(o.px)) o.px = o.x;\n if (isNaN(o.py)) o.py = o.y;\n }\n distances = [];\n if (typeof linkDistance === \"function\") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance;\n strengths = [];\n if (typeof linkStrength === \"function\") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength;\n charges = [];\n if (typeof charge === \"function\") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge;\n function position(dimension, size) {\n if (!neighbors) {\n neighbors = new Array(n);\n for (j = 0; j < n; ++j) {\n neighbors[j] = [];\n }\n for (j = 0; j < m; ++j) {\n var o = links[j];\n neighbors[o.source.index].push(o.target);\n neighbors[o.target.index].push(o.source);\n }\n }\n var candidates = neighbors[i], j = -1, l = candidates.length, x;\n while (++j < l) if (!isNaN(x = candidates[j][dimension])) return x;\n return Math.random() * size;\n }\n return force.resume();\n };\n force.resume = function() {\n return force.alpha(.1);\n };\n force.stop = function() {\n return force.alpha(0);\n };\n force.drag = function() {\n if (!drag) drag = d3.behavior.drag().origin(d3_identity).on(\"dragstart.force\", d3_layout_forceDragstart).on(\"drag.force\", dragmove).on(\"dragend.force\", d3_layout_forceDragend);\n if (!arguments.length) return drag;\n this.on(\"mouseover.force\", d3_layout_forceMouseover).on(\"mouseout.force\", d3_layout_forceMouseout).call(drag);\n };\n function dragmove(d) {\n d.px = d3.event.x, d.py = d3.event.y;\n force.resume();\n }\n return d3.rebind(force, event, \"on\");\n };\n function d3_layout_forceDragstart(d) {\n d.fixed |= 2;\n }\n function d3_layout_forceDragend(d) {\n d.fixed &= ~6;\n }\n function d3_layout_forceMouseover(d) {\n d.fixed |= 4;\n d.px = d.x, d.py = d.y;\n }\n function d3_layout_forceMouseout(d) {\n d.fixed &= ~4;\n }\n function d3_layout_forceAccumulate(quad, alpha, charges) {\n var cx = 0, cy = 0;\n quad.charge = 0;\n if (!quad.leaf) {\n var nodes = quad.nodes, n = nodes.length, i = -1, c;\n while (++i < n) {\n c = nodes[i];\n if (c == null) continue;\n d3_layout_forceAccumulate(c, alpha, charges);\n quad.charge += c.charge;\n cx += c.charge * c.cx;\n cy += c.charge * c.cy;\n }\n }\n if (quad.point) {\n if (!quad.leaf) {\n quad.point.x += Math.random() - .5;\n quad.point.y += Math.random() - .5;\n }\n var k = alpha * charges[quad.point.index];\n quad.charge += quad.pointCharge = k;\n cx += k * quad.point.x;\n cy += k * quad.point.y;\n }\n quad.cx = cx / quad.charge;\n quad.cy = cy / quad.charge;\n }\n var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity;\n d3.layout.hierarchy = function() {\n var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;\n function hierarchy(root) {\n var stack = [ root ], nodes = [], node;\n root.depth = 0;\n while ((node = stack.pop()) != null) {\n nodes.push(node);\n if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) {\n var n, childs, child;\n while (--n >= 0) {\n stack.push(child = childs[n]);\n child.parent = node;\n child.depth = node.depth + 1;\n }\n if (value) node.value = 0;\n node.children = childs;\n } else {\n if (value) node.value = +value.call(hierarchy, node, node.depth) || 0;\n delete node.children;\n }\n }\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var childs, parent;\n if (sort && (childs = node.children)) childs.sort(sort);\n if (value && (parent = node.parent)) parent.value += node.value;\n });\n return nodes;\n }\n hierarchy.sort = function(x) {\n if (!arguments.length) return sort;\n sort = x;\n return hierarchy;\n };\n hierarchy.children = function(x) {\n if (!arguments.length) return children;\n children = x;\n return hierarchy;\n };\n hierarchy.value = function(x) {\n if (!arguments.length) return value;\n value = x;\n return hierarchy;\n };\n hierarchy.revalue = function(root) {\n if (value) {\n d3_layout_hierarchyVisitBefore(root, function(node) {\n if (node.children) node.value = 0;\n });\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var parent;\n if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0;\n if (parent = node.parent) parent.value += node.value;\n });\n }\n return root;\n };\n return hierarchy;\n };\n function d3_layout_hierarchyRebind(object, hierarchy) {\n d3.rebind(object, hierarchy, \"sort\", \"children\", \"value\");\n object.nodes = object;\n object.links = d3_layout_hierarchyLinks;\n return object;\n }\n function d3_layout_hierarchyVisitBefore(node, callback) {\n var nodes = [ node ];\n while ((node = nodes.pop()) != null) {\n callback(node);\n if ((children = node.children) && (n = children.length)) {\n var n, children;\n while (--n >= 0) nodes.push(children[n]);\n }\n }\n }\n function d3_layout_hierarchyVisitAfter(node, callback) {\n var nodes = [ node ], nodes2 = [];\n while ((node = nodes.pop()) != null) {\n nodes2.push(node);\n if ((children = node.children) && (n = children.length)) {\n var i = -1, n, children;\n while (++i < n) nodes.push(children[i]);\n }\n }\n while ((node = nodes2.pop()) != null) {\n callback(node);\n }\n }\n function d3_layout_hierarchyChildren(d) {\n return d.children;\n }\n function d3_layout_hierarchyValue(d) {\n return d.value;\n }\n function d3_layout_hierarchySort(a, b) {\n return b.value - a.value;\n }\n function d3_layout_hierarchyLinks(nodes) {\n return d3.merge(nodes.map(function(parent) {\n return (parent.children || []).map(function(child) {\n return {\n source: parent,\n target: child\n };\n });\n }));\n }\n d3.layout.partition = function() {\n var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];\n function position(node, x, dx, dy) {\n var children = node.children;\n node.x = x;\n node.y = node.depth * dy;\n node.dx = dx;\n node.dy = dy;\n if (children && (n = children.length)) {\n var i = -1, n, c, d;\n dx = node.value ? dx / node.value : 0;\n while (++i < n) {\n position(c = children[i], x, d = c.value * dx, dy);\n x += d;\n }\n }\n }\n function depth(node) {\n var children = node.children, d = 0;\n if (children && (n = children.length)) {\n var i = -1, n;\n while (++i < n) d = Math.max(d, depth(children[i]));\n }\n return 1 + d;\n }\n function partition(d, i) {\n var nodes = hierarchy.call(this, d, i);\n position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));\n return nodes;\n }\n partition.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return partition;\n };\n return d3_layout_hierarchyRebind(partition, hierarchy);\n };\n d3.layout.pie = function() {\n var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ, padAngle = 0;\n function pie(data) {\n var n = data.length, values = data.map(function(d, i) {\n return +value.call(pie, d, i);\n }), a = +(typeof startAngle === \"function\" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === \"function\" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === \"function\" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), sum = d3.sum(values), k = sum ? (da - n * pa) / sum : 0, index = d3.range(n), arcs = [], v;\n if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {\n return values[j] - values[i];\n } : function(i, j) {\n return sort(data[i], data[j]);\n });\n index.forEach(function(i) {\n arcs[i] = {\n data: data[i],\n value: v = values[i],\n startAngle: a,\n endAngle: a += v * k + pa,\n padAngle: p\n };\n });\n return arcs;\n }\n pie.value = function(_) {\n if (!arguments.length) return value;\n value = _;\n return pie;\n };\n pie.sort = function(_) {\n if (!arguments.length) return sort;\n sort = _;\n return pie;\n };\n pie.startAngle = function(_) {\n if (!arguments.length) return startAngle;\n startAngle = _;\n return pie;\n };\n pie.endAngle = function(_) {\n if (!arguments.length) return endAngle;\n endAngle = _;\n return pie;\n };\n pie.padAngle = function(_) {\n if (!arguments.length) return padAngle;\n padAngle = _;\n return pie;\n };\n return pie;\n };\n var d3_layout_pieSortByValue = {};\n d3.layout.stack = function() {\n var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;\n function stack(data, index) {\n if (!(n = data.length)) return data;\n var series = data.map(function(d, i) {\n return values.call(stack, d, i);\n });\n var points = series.map(function(d) {\n return d.map(function(v, i) {\n return [ x.call(stack, v, i), y.call(stack, v, i) ];\n });\n });\n var orders = order.call(stack, points, index);\n series = d3.permute(series, orders);\n points = d3.permute(points, orders);\n var offsets = offset.call(stack, points, index);\n var m = series[0].length, n, i, j, o;\n for (j = 0; j < m; ++j) {\n out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);\n for (i = 1; i < n; ++i) {\n out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);\n }\n }\n return data;\n }\n stack.values = function(x) {\n if (!arguments.length) return values;\n values = x;\n return stack;\n };\n stack.order = function(x) {\n if (!arguments.length) return order;\n order = typeof x === \"function\" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;\n return stack;\n };\n stack.offset = function(x) {\n if (!arguments.length) return offset;\n offset = typeof x === \"function\" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;\n return stack;\n };\n stack.x = function(z) {\n if (!arguments.length) return x;\n x = z;\n return stack;\n };\n stack.y = function(z) {\n if (!arguments.length) return y;\n y = z;\n return stack;\n };\n stack.out = function(z) {\n if (!arguments.length) return out;\n out = z;\n return stack;\n };\n return stack;\n };\n function d3_layout_stackX(d) {\n return d.x;\n }\n function d3_layout_stackY(d) {\n return d.y;\n }\n function d3_layout_stackOut(d, y0, y) {\n d.y0 = y0;\n d.y = y;\n }\n var d3_layout_stackOrders = d3.map({\n \"inside-out\": function(data) {\n var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {\n return max[a] - max[b];\n }), top = 0, bottom = 0, tops = [], bottoms = [];\n for (i = 0; i < n; ++i) {\n j = index[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n return bottoms.reverse().concat(tops);\n },\n reverse: function(data) {\n return d3.range(data.length).reverse();\n },\n \"default\": d3_layout_stackOrderDefault\n });\n var d3_layout_stackOffsets = d3.map({\n silhouette: function(data) {\n var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];\n for (j = 0; j < m; ++j) {\n for (i = 0, o = 0; i < n; i++) o += data[i][j][1];\n if (o > max) max = o;\n sums.push(o);\n }\n for (j = 0; j < m; ++j) {\n y0[j] = (max - sums[j]) / 2;\n }\n return y0;\n },\n wiggle: function(data) {\n var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];\n y0[0] = o = o0 = 0;\n for (j = 1; j < m; ++j) {\n for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];\n for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {\n for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {\n s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;\n }\n s2 += s3 * data[i][j][1];\n }\n y0[j] = o -= s1 ? s2 / s1 * dx : 0;\n if (o < o0) o0 = o;\n }\n for (j = 0; j < m; ++j) y0[j] -= o0;\n return y0;\n },\n expand: function(data) {\n var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];\n for (j = 0; j < m; ++j) {\n for (i = 0, o = 0; i < n; i++) o += data[i][j][1];\n if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;\n }\n for (j = 0; j < m; ++j) y0[j] = 0;\n return y0;\n },\n zero: d3_layout_stackOffsetZero\n });\n function d3_layout_stackOrderDefault(data) {\n return d3.range(data.length);\n }\n function d3_layout_stackOffsetZero(data) {\n var j = -1, m = data[0].length, y0 = [];\n while (++j < m) y0[j] = 0;\n return y0;\n }\n function d3_layout_stackMaxIndex(array) {\n var i = 1, j = 0, v = array[0][1], k, n = array.length;\n for (;i < n; ++i) {\n if ((k = array[i][1]) > v) {\n j = i;\n v = k;\n }\n }\n return j;\n }\n function d3_layout_stackReduceSum(d) {\n return d.reduce(d3_layout_stackSum, 0);\n }\n function d3_layout_stackSum(p, d) {\n return p + d[1];\n }\n d3.layout.histogram = function() {\n var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;\n function histogram(data, i) {\n var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;\n while (++i < m) {\n bin = bins[i] = [];\n bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);\n bin.y = 0;\n }\n if (m > 0) {\n i = -1;\n while (++i < n) {\n x = values[i];\n if (x >= range[0] && x <= range[1]) {\n bin = bins[d3.bisect(thresholds, x, 1, m) - 1];\n bin.y += k;\n bin.push(data[i]);\n }\n }\n }\n return bins;\n }\n histogram.value = function(x) {\n if (!arguments.length) return valuer;\n valuer = x;\n return histogram;\n };\n histogram.range = function(x) {\n if (!arguments.length) return ranger;\n ranger = d3_functor(x);\n return histogram;\n };\n histogram.bins = function(x) {\n if (!arguments.length) return binner;\n binner = typeof x === \"number\" ? function(range) {\n return d3_layout_histogramBinFixed(range, x);\n } : d3_functor(x);\n return histogram;\n };\n histogram.frequency = function(x) {\n if (!arguments.length) return frequency;\n frequency = !!x;\n return histogram;\n };\n return histogram;\n };\n function d3_layout_histogramBinSturges(range, values) {\n return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));\n }\n function d3_layout_histogramBinFixed(range, n) {\n var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];\n while (++x <= n) f[x] = m * x + b;\n return f;\n }\n function d3_layout_histogramRange(values) {\n return [ d3.min(values), d3.max(values) ];\n }\n d3.layout.pack = function() {\n var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius;\n function pack(d, i) {\n var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === \"function\" ? radius : function() {\n return radius;\n };\n root.x = root.y = 0;\n d3_layout_hierarchyVisitAfter(root, function(d) {\n d.r = +r(d.value);\n });\n d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);\n if (padding) {\n var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2;\n d3_layout_hierarchyVisitAfter(root, function(d) {\n d.r += dr;\n });\n d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);\n d3_layout_hierarchyVisitAfter(root, function(d) {\n d.r -= dr;\n });\n }\n d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h));\n return nodes;\n }\n pack.size = function(_) {\n if (!arguments.length) return size;\n size = _;\n return pack;\n };\n pack.radius = function(_) {\n if (!arguments.length) return radius;\n radius = _ == null || typeof _ === \"function\" ? _ : +_;\n return pack;\n };\n pack.padding = function(_) {\n if (!arguments.length) return padding;\n padding = +_;\n return pack;\n };\n return d3_layout_hierarchyRebind(pack, hierarchy);\n };\n function d3_layout_packSort(a, b) {\n return a.value - b.value;\n }\n function d3_layout_packInsert(a, b) {\n var c = a._pack_next;\n a._pack_next = b;\n b._pack_prev = a;\n b._pack_next = c;\n c._pack_prev = b;\n }\n function d3_layout_packSplice(a, b) {\n a._pack_next = b;\n b._pack_prev = a;\n }\n function d3_layout_packIntersects(a, b) {\n var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;\n return .999 * dr * dr > dx * dx + dy * dy;\n }\n function d3_layout_packSiblings(node) {\n if (!(nodes = node.children) || !(n = nodes.length)) return;\n var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;\n function bound(node) {\n xMin = Math.min(node.x - node.r, xMin);\n xMax = Math.max(node.x + node.r, xMax);\n yMin = Math.min(node.y - node.r, yMin);\n yMax = Math.max(node.y + node.r, yMax);\n }\n nodes.forEach(d3_layout_packLink);\n a = nodes[0];\n a.x = -a.r;\n a.y = 0;\n bound(a);\n if (n > 1) {\n b = nodes[1];\n b.x = b.r;\n b.y = 0;\n bound(b);\n if (n > 2) {\n c = nodes[2];\n d3_layout_packPlace(a, b, c);\n bound(c);\n d3_layout_packInsert(a, c);\n a._pack_prev = c;\n d3_layout_packInsert(c, b);\n b = a._pack_next;\n for (i = 3; i < n; i++) {\n d3_layout_packPlace(a, b, c = nodes[i]);\n var isect = 0, s1 = 1, s2 = 1;\n for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {\n if (d3_layout_packIntersects(j, c)) {\n isect = 1;\n break;\n }\n }\n if (isect == 1) {\n for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {\n if (d3_layout_packIntersects(k, c)) {\n break;\n }\n }\n }\n if (isect) {\n if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);\n i--;\n } else {\n d3_layout_packInsert(a, c);\n b = c;\n bound(c);\n }\n }\n }\n }\n var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;\n for (i = 0; i < n; i++) {\n c = nodes[i];\n c.x -= cx;\n c.y -= cy;\n cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));\n }\n node.r = cr;\n nodes.forEach(d3_layout_packUnlink);\n }\n function d3_layout_packLink(node) {\n node._pack_next = node._pack_prev = node;\n }\n function d3_layout_packUnlink(node) {\n delete node._pack_next;\n delete node._pack_prev;\n }\n function d3_layout_packTransform(node, x, y, k) {\n var children = node.children;\n node.x = x += k * node.x;\n node.y = y += k * node.y;\n node.r *= k;\n if (children) {\n var i = -1, n = children.length;\n while (++i < n) d3_layout_packTransform(children[i], x, y, k);\n }\n }\n function d3_layout_packPlace(a, b, c) {\n var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;\n if (db && (dx || dy)) {\n var da = b.r + c.r, dc = dx * dx + dy * dy;\n da *= da;\n db *= db;\n var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);\n c.x = a.x + x * dx + y * dy;\n c.y = a.y + x * dy - y * dx;\n } else {\n c.x = a.x + db;\n c.y = a.y;\n }\n }\n d3.layout.tree = function() {\n var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null;\n function tree(d, i) {\n var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0);\n d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z;\n d3_layout_hierarchyVisitBefore(root1, secondWalk);\n if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else {\n var left = root0, right = root0, bottom = root0;\n d3_layout_hierarchyVisitBefore(root0, function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1);\n d3_layout_hierarchyVisitBefore(root0, function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n return nodes;\n }\n function wrapTree(root0) {\n var root1 = {\n A: null,\n children: [ root0 ]\n }, queue = [ root1 ], node1;\n while ((node1 = queue.pop()) != null) {\n for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) {\n queue.push((children[i] = child = {\n _: children[i],\n parent: node1,\n children: (child = children[i].children) && child.slice() || [],\n A: null,\n a: null,\n z: 0,\n m: 0,\n c: 0,\n s: 0,\n t: null,\n i: i\n }).a = child);\n }\n }\n return root1.children[0];\n }\n function firstWalk(v) {\n var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null;\n if (children.length) {\n d3_layout_treeShift(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;\n while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {\n vom = d3_layout_treeLeft(vom);\n vop = d3_layout_treeRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !d3_layout_treeRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !d3_layout_treeLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n function sizeNode(node) {\n node.x *= size[0];\n node.y = node.depth * size[1];\n }\n tree.separation = function(x) {\n if (!arguments.length) return separation;\n separation = x;\n return tree;\n };\n tree.size = function(x) {\n if (!arguments.length) return nodeSize ? null : size;\n nodeSize = (size = x) == null ? sizeNode : null;\n return tree;\n };\n tree.nodeSize = function(x) {\n if (!arguments.length) return nodeSize ? size : null;\n nodeSize = (size = x) == null ? null : sizeNode;\n return tree;\n };\n return d3_layout_hierarchyRebind(tree, hierarchy);\n };\n function d3_layout_treeSeparation(a, b) {\n return a.parent == b.parent ? 1 : 2;\n }\n function d3_layout_treeLeft(v) {\n var children = v.children;\n return children.length ? children[0] : v.t;\n }\n function d3_layout_treeRight(v) {\n var children = v.children, n;\n return (n = children.length) ? children[n - 1] : v.t;\n }\n function d3_layout_treeMove(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n }\n function d3_layout_treeShift(v) {\n var shift = 0, change = 0, children = v.children, i = children.length, w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n }\n function d3_layout_treeAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n }\n d3.layout.cluster = function() {\n var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false;\n function cluster(d, i) {\n var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var children = node.children;\n if (children && children.length) {\n node.x = d3_layout_clusterX(children);\n node.y = d3_layout_clusterY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;\n d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) {\n node.x = (node.x - root.x) * size[0];\n node.y = (root.y - node.y) * size[1];\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * size[0];\n node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];\n });\n return nodes;\n }\n cluster.separation = function(x) {\n if (!arguments.length) return separation;\n separation = x;\n return cluster;\n };\n cluster.size = function(x) {\n if (!arguments.length) return nodeSize ? null : size;\n nodeSize = (size = x) == null;\n return cluster;\n };\n cluster.nodeSize = function(x) {\n if (!arguments.length) return nodeSize ? size : null;\n nodeSize = (size = x) != null;\n return cluster;\n };\n return d3_layout_hierarchyRebind(cluster, hierarchy);\n };\n function d3_layout_clusterY(children) {\n return 1 + d3.max(children, function(child) {\n return child.y;\n });\n }\n function d3_layout_clusterX(children) {\n return children.reduce(function(x, child) {\n return x + child.x;\n }, 0) / children.length;\n }\n function d3_layout_clusterLeft(node) {\n var children = node.children;\n return children && children.length ? d3_layout_clusterLeft(children[0]) : node;\n }\n function d3_layout_clusterRight(node) {\n var children = node.children, n;\n return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;\n }\n d3.layout.treemap = function() {\n var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = \"squarify\", ratio = .5 * (1 + Math.sqrt(5));\n function scale(children, k) {\n var i = -1, n = children.length, child, area;\n while (++i < n) {\n area = (child = children[i]).value * (k < 0 ? 0 : k);\n child.area = isNaN(area) || area <= 0 ? 0 : area;\n }\n }\n function squarify(node) {\n var children = node.children;\n if (children && children.length) {\n var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === \"slice\" ? rect.dx : mode === \"dice\" ? rect.dy : mode === \"slice-dice\" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;\n scale(remaining, rect.dx * rect.dy / node.value);\n row.area = 0;\n while ((n = remaining.length) > 0) {\n row.push(child = remaining[n - 1]);\n row.area += child.area;\n if (mode !== \"squarify\" || (score = worst(row, u)) <= best) {\n remaining.pop();\n best = score;\n } else {\n row.area -= row.pop().area;\n position(row, u, rect, false);\n u = Math.min(rect.dx, rect.dy);\n row.length = row.area = 0;\n best = Infinity;\n }\n }\n if (row.length) {\n position(row, u, rect, true);\n row.length = row.area = 0;\n }\n children.forEach(squarify);\n }\n }\n function stickify(node) {\n var children = node.children;\n if (children && children.length) {\n var rect = pad(node), remaining = children.slice(), child, row = [];\n scale(remaining, rect.dx * rect.dy / node.value);\n row.area = 0;\n while (child = remaining.pop()) {\n row.push(child);\n row.area += child.area;\n if (child.z != null) {\n position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);\n row.length = row.area = 0;\n }\n }\n children.forEach(stickify);\n }\n }\n function worst(row, u) {\n var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;\n while (++i < n) {\n if (!(r = row[i].area)) continue;\n if (r < rmin) rmin = r;\n if (r > rmax) rmax = r;\n }\n s *= s;\n u *= u;\n return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;\n }\n function position(row, u, rect, flush) {\n var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;\n if (u == rect.dx) {\n if (flush || v > rect.dy) v = rect.dy;\n while (++i < n) {\n o = row[i];\n o.x = x;\n o.y = y;\n o.dy = v;\n x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);\n }\n o.z = true;\n o.dx += rect.x + rect.dx - x;\n rect.y += v;\n rect.dy -= v;\n } else {\n if (flush || v > rect.dx) v = rect.dx;\n while (++i < n) {\n o = row[i];\n o.x = x;\n o.y = y;\n o.dx = v;\n y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);\n }\n o.z = false;\n o.dy += rect.y + rect.dy - y;\n rect.x += v;\n rect.dx -= v;\n }\n }\n function treemap(d) {\n var nodes = stickies || hierarchy(d), root = nodes[0];\n root.x = root.y = 0;\n if (root.value) root.dx = size[0], root.dy = size[1]; else root.dx = root.dy = 0;\n if (stickies) hierarchy.revalue(root);\n scale([ root ], root.dx * root.dy / root.value);\n (stickies ? stickify : squarify)(root);\n if (sticky) stickies = nodes;\n return nodes;\n }\n treemap.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return treemap;\n };\n treemap.padding = function(x) {\n if (!arguments.length) return padding;\n function padFunction(node) {\n var p = x.call(treemap, node, node.depth);\n return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === \"number\" ? [ p, p, p, p ] : p);\n }\n function padConstant(node) {\n return d3_layout_treemapPad(node, x);\n }\n var type;\n pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === \"function\" ? padFunction : type === \"number\" ? (x = [ x, x, x, x ], \n padConstant) : padConstant;\n return treemap;\n };\n treemap.round = function(x) {\n if (!arguments.length) return round != Number;\n round = x ? Math.round : Number;\n return treemap;\n };\n treemap.sticky = function(x) {\n if (!arguments.length) return sticky;\n sticky = x;\n stickies = null;\n return treemap;\n };\n treemap.ratio = function(x) {\n if (!arguments.length) return ratio;\n ratio = x;\n return treemap;\n };\n treemap.mode = function(x) {\n if (!arguments.length) return mode;\n mode = x + \"\";\n return treemap;\n };\n return d3_layout_hierarchyRebind(treemap, hierarchy);\n };\n function d3_layout_treemapPadNull(node) {\n return {\n x: node.x,\n y: node.y,\n dx: node.dx,\n dy: node.dy\n };\n }\n function d3_layout_treemapPad(node, padding) {\n var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];\n if (dx < 0) {\n x += dx / 2;\n dx = 0;\n }\n if (dy < 0) {\n y += dy / 2;\n dy = 0;\n }\n return {\n x: x,\n y: y,\n dx: dx,\n dy: dy\n };\n }\n d3.random = {\n normal: function(µ, σ) {\n var n = arguments.length;\n if (n < 2) σ = 1;\n if (n < 1) µ = 0;\n return function() {\n var x, y, r;\n do {\n x = Math.random() * 2 - 1;\n y = Math.random() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);\n };\n },\n logNormal: function() {\n var random = d3.random.normal.apply(d3, arguments);\n return function() {\n return Math.exp(random());\n };\n },\n bates: function(m) {\n var random = d3.random.irwinHall(m);\n return function() {\n return random() / m;\n };\n },\n irwinHall: function(m) {\n return function() {\n for (var s = 0, j = 0; j < m; j++) s += Math.random();\n return s;\n };\n }\n };\n d3.scale = {};\n function d3_scaleExtent(domain) {\n var start = domain[0], stop = domain[domain.length - 1];\n return start < stop ? [ start, stop ] : [ stop, start ];\n }\n function d3_scaleRange(scale) {\n return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());\n }\n function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {\n var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);\n return function(x) {\n return i(u(x));\n };\n }\n function d3_scale_nice(domain, nice) {\n var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;\n if (x1 < x0) {\n dx = i0, i0 = i1, i1 = dx;\n dx = x0, x0 = x1, x1 = dx;\n }\n domain[i0] = nice.floor(x0);\n domain[i1] = nice.ceil(x1);\n return domain;\n }\n function d3_scale_niceStep(step) {\n return step ? {\n floor: function(x) {\n return Math.floor(x / step) * step;\n },\n ceil: function(x) {\n return Math.ceil(x / step) * step;\n }\n } : d3_scale_niceIdentity;\n }\n var d3_scale_niceIdentity = {\n floor: d3_identity,\n ceil: d3_identity\n };\n function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {\n var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;\n if (domain[k] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n while (++j <= k) {\n u.push(uninterpolate(domain[j - 1], domain[j]));\n i.push(interpolate(range[j - 1], range[j]));\n }\n return function(x) {\n var j = d3.bisect(domain, x, 1, k) - 1;\n return i[j](u[j](x));\n };\n }\n d3.scale.linear = function() {\n return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false);\n };\n function d3_scale_linear(domain, range, interpolate, clamp) {\n var output, input;\n function rescale() {\n var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;\n output = linear(domain, range, uninterpolate, interpolate);\n input = linear(range, domain, uninterpolate, d3_interpolate);\n return scale;\n }\n function scale(x) {\n return output(x);\n }\n scale.invert = function(y) {\n return input(y);\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(Number);\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.rangeRound = function(x) {\n return scale.range(x).interpolate(d3_interpolateRound);\n };\n scale.clamp = function(x) {\n if (!arguments.length) return clamp;\n clamp = x;\n return rescale();\n };\n scale.interpolate = function(x) {\n if (!arguments.length) return interpolate;\n interpolate = x;\n return rescale();\n };\n scale.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n scale.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n scale.nice = function(m) {\n d3_scale_linearNice(domain, m);\n return rescale();\n };\n scale.copy = function() {\n return d3_scale_linear(domain, range, interpolate, clamp);\n };\n return rescale();\n }\n function d3_scale_linearRebind(scale, linear) {\n return d3.rebind(scale, linear, \"range\", \"rangeRound\", \"interpolate\", \"clamp\");\n }\n function d3_scale_linearNice(domain, m) {\n d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));\n d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));\n return domain;\n }\n function d3_scale_linearTickRange(domain, m) {\n if (m == null) m = 10;\n var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;\n if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;\n extent[0] = Math.ceil(extent[0] / step) * step;\n extent[1] = Math.floor(extent[1] / step) * step + step * .5;\n extent[2] = step;\n return extent;\n }\n function d3_scale_linearTicks(domain, m) {\n return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));\n }\n function d3_scale_linearTickFormat(domain, m, format) {\n var range = d3_scale_linearTickRange(domain, m);\n if (format) {\n var match = d3_format_re.exec(format);\n match.shift();\n if (match[8] === \"s\") {\n var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1])));\n if (!match[7]) match[7] = \".\" + d3_scale_linearPrecision(prefix.scale(range[2]));\n match[8] = \"f\";\n format = d3.format(match.join(\"\"));\n return function(d) {\n return format(prefix.scale(d)) + prefix.symbol;\n };\n }\n if (!match[7]) match[7] = \".\" + d3_scale_linearFormatPrecision(match[8], range);\n format = match.join(\"\");\n } else {\n format = \",.\" + d3_scale_linearPrecision(range[2]) + \"f\";\n }\n return d3.format(format);\n }\n var d3_scale_linearFormatSignificant = {\n s: 1,\n g: 1,\n p: 1,\n r: 1,\n e: 1\n };\n function d3_scale_linearPrecision(value) {\n return -Math.floor(Math.log(value) / Math.LN10 + .01);\n }\n function d3_scale_linearFormatPrecision(type, range) {\n var p = d3_scale_linearPrecision(range[2]);\n return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== \"e\") : p - (type === \"%\") * 2;\n }\n d3.scale.log = function() {\n return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]);\n };\n function d3_scale_log(linear, base, positive, domain) {\n function log(x) {\n return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base);\n }\n function pow(x) {\n return positive ? Math.pow(base, x) : -Math.pow(base, -x);\n }\n function scale(x) {\n return linear(log(x));\n }\n scale.invert = function(x) {\n return pow(linear.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n positive = x[0] >= 0;\n linear.domain((domain = x.map(Number)).map(log));\n return scale;\n };\n scale.base = function(_) {\n if (!arguments.length) return base;\n base = +_;\n linear.domain(domain.map(log));\n return scale;\n };\n scale.nice = function() {\n var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative);\n linear.domain(niced);\n domain = niced.map(pow);\n return scale;\n };\n scale.ticks = function() {\n var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base;\n if (isFinite(j - i)) {\n if (positive) {\n for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k);\n ticks.push(pow(i));\n } else {\n ticks.push(pow(i));\n for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k);\n }\n for (i = 0; ticks[i] < u; i++) {}\n for (j = ticks.length; ticks[j - 1] > v; j--) {}\n ticks = ticks.slice(i, j);\n }\n return ticks;\n };\n scale.tickFormat = function(n, format) {\n if (!arguments.length) return d3_scale_logFormat;\n if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== \"function\") format = d3.format(format);\n var k = Math.max(1, base * n / scale.ticks().length);\n return function(d) {\n var i = d / pow(Math.round(log(d)));\n if (i * base < base - .5) i *= base;\n return i <= k ? format(d) : \"\";\n };\n };\n scale.copy = function() {\n return d3_scale_log(linear.copy(), base, positive, domain);\n };\n return d3_scale_linearRebind(scale, linear);\n }\n var d3_scale_logFormat = d3.format(\".0e\"), d3_scale_logNiceNegative = {\n floor: function(x) {\n return -Math.ceil(-x);\n },\n ceil: function(x) {\n return -Math.floor(-x);\n }\n };\n d3.scale.pow = function() {\n return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]);\n };\n function d3_scale_pow(linear, exponent, domain) {\n var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);\n function scale(x) {\n return linear(powp(x));\n }\n scale.invert = function(x) {\n return powb(linear.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n linear.domain((domain = x.map(Number)).map(powp));\n return scale;\n };\n scale.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n scale.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n scale.nice = function(m) {\n return scale.domain(d3_scale_linearNice(domain, m));\n };\n scale.exponent = function(x) {\n if (!arguments.length) return exponent;\n powp = d3_scale_powPow(exponent = x);\n powb = d3_scale_powPow(1 / exponent);\n linear.domain(domain.map(powp));\n return scale;\n };\n scale.copy = function() {\n return d3_scale_pow(linear.copy(), exponent, domain);\n };\n return d3_scale_linearRebind(scale, linear);\n }\n function d3_scale_powPow(e) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);\n };\n }\n d3.scale.sqrt = function() {\n return d3.scale.pow().exponent(.5);\n };\n d3.scale.ordinal = function() {\n return d3_scale_ordinal([], {\n t: \"range\",\n a: [ [] ]\n });\n };\n function d3_scale_ordinal(domain, ranger) {\n var index, range, rangeBand;\n function scale(x) {\n return range[((index.get(x) || (ranger.t === \"range\" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length];\n }\n function steps(start, step) {\n return d3.range(domain.length).map(function(i) {\n return start + step * i;\n });\n }\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = [];\n index = new d3_Map();\n var i = -1, n = x.length, xi;\n while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));\n return scale[ranger.t].apply(scale, ranger.a);\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n rangeBand = 0;\n ranger = {\n t: \"range\",\n a: arguments\n };\n return scale;\n };\n scale.rangePoints = function(x, padding) {\n if (arguments.length < 2) padding = 0;\n var start = x[0], stop = x[1], step = domain.length < 2 ? (start = (start + stop) / 2, \n 0) : (stop - start) / (domain.length - 1 + padding);\n range = steps(start + step * padding / 2, step);\n rangeBand = 0;\n ranger = {\n t: \"rangePoints\",\n a: arguments\n };\n return scale;\n };\n scale.rangeRoundPoints = function(x, padding) {\n if (arguments.length < 2) padding = 0;\n var start = x[0], stop = x[1], step = domain.length < 2 ? (start = stop = Math.round((start + stop) / 2), \n 0) : (stop - start) / (domain.length - 1 + padding) | 0;\n range = steps(start + Math.round(step * padding / 2 + (stop - start - (domain.length - 1 + padding) * step) / 2), step);\n rangeBand = 0;\n ranger = {\n t: \"rangeRoundPoints\",\n a: arguments\n };\n return scale;\n };\n scale.rangeBands = function(x, padding, outerPadding) {\n if (arguments.length < 2) padding = 0;\n if (arguments.length < 3) outerPadding = padding;\n var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);\n range = steps(start + step * outerPadding, step);\n if (reverse) range.reverse();\n rangeBand = step * (1 - padding);\n ranger = {\n t: \"rangeBands\",\n a: arguments\n };\n return scale;\n };\n scale.rangeRoundBands = function(x, padding, outerPadding) {\n if (arguments.length < 2) padding = 0;\n if (arguments.length < 3) outerPadding = padding;\n var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding));\n range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step);\n if (reverse) range.reverse();\n rangeBand = Math.round(step * (1 - padding));\n ranger = {\n t: \"rangeRoundBands\",\n a: arguments\n };\n return scale;\n };\n scale.rangeBand = function() {\n return rangeBand;\n };\n scale.rangeExtent = function() {\n return d3_scaleExtent(ranger.a[0]);\n };\n scale.copy = function() {\n return d3_scale_ordinal(domain, ranger);\n };\n return scale.domain(domain);\n }\n d3.scale.category10 = function() {\n return d3.scale.ordinal().range(d3_category10);\n };\n d3.scale.category20 = function() {\n return d3.scale.ordinal().range(d3_category20);\n };\n d3.scale.category20b = function() {\n return d3.scale.ordinal().range(d3_category20b);\n };\n d3.scale.category20c = function() {\n return d3.scale.ordinal().range(d3_category20c);\n };\n var d3_category10 = [ 2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175 ].map(d3_rgbString);\n var d3_category20 = [ 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725 ].map(d3_rgbString);\n var d3_category20b = [ 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654 ].map(d3_rgbString);\n var d3_category20c = [ 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081 ].map(d3_rgbString);\n d3.scale.quantile = function() {\n return d3_scale_quantile([], []);\n };\n function d3_scale_quantile(domain, range) {\n var thresholds;\n function rescale() {\n var k = 0, q = range.length;\n thresholds = [];\n while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);\n return scale;\n }\n function scale(x) {\n if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)];\n }\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(d3_number).filter(d3_numeric).sort(d3_ascending);\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.quantiles = function() {\n return thresholds;\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n return y < 0 ? [ NaN, NaN ] : [ y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1] ];\n };\n scale.copy = function() {\n return d3_scale_quantile(domain, range);\n };\n return rescale();\n }\n d3.scale.quantize = function() {\n return d3_scale_quantize(0, 1, [ 0, 1 ]);\n };\n function d3_scale_quantize(x0, x1, range) {\n var kx, i;\n function scale(x) {\n return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];\n }\n function rescale() {\n kx = range.length / (x1 - x0);\n i = range.length - 1;\n return scale;\n }\n scale.domain = function(x) {\n if (!arguments.length) return [ x0, x1 ];\n x0 = +x[0];\n x1 = +x[x.length - 1];\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n y = y < 0 ? NaN : y / kx + x0;\n return [ y, y + 1 / kx ];\n };\n scale.copy = function() {\n return d3_scale_quantize(x0, x1, range);\n };\n return rescale();\n }\n d3.scale.threshold = function() {\n return d3_scale_threshold([ .5 ], [ 0, 1 ]);\n };\n function d3_scale_threshold(domain, range) {\n function scale(x) {\n if (x <= x) return range[d3.bisect(domain, x)];\n }\n scale.domain = function(_) {\n if (!arguments.length) return domain;\n domain = _;\n return scale;\n };\n scale.range = function(_) {\n if (!arguments.length) return range;\n range = _;\n return scale;\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n return [ domain[y - 1], domain[y] ];\n };\n scale.copy = function() {\n return d3_scale_threshold(domain, range);\n };\n return scale;\n }\n d3.scale.identity = function() {\n return d3_scale_identity([ 0, 1 ]);\n };\n function d3_scale_identity(domain) {\n function identity(x) {\n return +x;\n }\n identity.invert = identity;\n identity.domain = identity.range = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(identity);\n return identity;\n };\n identity.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n identity.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n identity.copy = function() {\n return d3_scale_identity(domain);\n };\n return identity;\n }\n d3.svg = {};\n function d3_zero() {\n return 0;\n }\n d3.svg.arc = function() {\n var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, cornerRadius = d3_zero, padRadius = d3_svg_arcAuto, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle, padAngle = d3_svg_arcPadAngle;\n function arc() {\n var r0 = Math.max(0, +innerRadius.apply(this, arguments)), r1 = Math.max(0, +outerRadius.apply(this, arguments)), a0 = startAngle.apply(this, arguments) - halfπ, a1 = endAngle.apply(this, arguments) - halfπ, da = Math.abs(a1 - a0), cw = a0 > a1 ? 0 : 1;\n if (r1 < r0) rc = r1, r1 = r0, r0 = rc;\n if (da >= τε) return circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : \"\") + \"Z\";\n var rc, cr, rp, ap, p0 = 0, p1 = 0, x0, y0, x1, y1, x2, y2, x3, y3, path = [];\n if (ap = (+padAngle.apply(this, arguments) || 0) / 2) {\n rp = padRadius === d3_svg_arcAuto ? Math.sqrt(r0 * r0 + r1 * r1) : +padRadius.apply(this, arguments);\n if (!cw) p1 *= -1;\n if (r1) p1 = d3_asin(rp / r1 * Math.sin(ap));\n if (r0) p0 = d3_asin(rp / r0 * Math.sin(ap));\n }\n if (r1) {\n x0 = r1 * Math.cos(a0 + p1);\n y0 = r1 * Math.sin(a0 + p1);\n x1 = r1 * Math.cos(a1 - p1);\n y1 = r1 * Math.sin(a1 - p1);\n var l1 = Math.abs(a1 - a0 - 2 * p1) <= π ? 0 : 1;\n if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) {\n var h1 = (a0 + a1) / 2;\n x0 = r1 * Math.cos(h1);\n y0 = r1 * Math.sin(h1);\n x1 = y1 = null;\n }\n } else {\n x0 = y0 = 0;\n }\n if (r0) {\n x2 = r0 * Math.cos(a1 - p0);\n y2 = r0 * Math.sin(a1 - p0);\n x3 = r0 * Math.cos(a0 + p0);\n y3 = r0 * Math.sin(a0 + p0);\n var l0 = Math.abs(a0 - a1 + 2 * p0) <= π ? 0 : 1;\n if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw ^ l0) {\n var h0 = (a0 + a1) / 2;\n x2 = r0 * Math.cos(h0);\n y2 = r0 * Math.sin(h0);\n x3 = y3 = null;\n }\n } else {\n x2 = y2 = 0;\n }\n if (da > ε && (rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) {\n cr = r0 < r1 ^ cw ? 0 : 1;\n var rc1 = rc, rc0 = rc;\n if (da < π) {\n var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = Math.min(rc, (r0 - lc) / (kc - 1));\n rc1 = Math.min(rc, (r1 - lc) / (kc + 1));\n }\n if (x1 != null) {\n var t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw);\n if (rc === rc1) {\n path.push(\"M\", t30[0], \"A\", rc1, \",\", rc1, \" 0 0,\", cr, \" \", t30[1], \"A\", r1, \",\", r1, \" 0 \", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), \",\", cw, \" \", t12[1], \"A\", rc1, \",\", rc1, \" 0 0,\", cr, \" \", t12[0]);\n } else {\n path.push(\"M\", t30[0], \"A\", rc1, \",\", rc1, \" 0 1,\", cr, \" \", t12[0]);\n }\n } else {\n path.push(\"M\", x0, \",\", y0);\n }\n if (x3 != null) {\n var t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw);\n if (rc === rc0) {\n path.push(\"L\", t21[0], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t21[1], \"A\", r0, \",\", r0, \" 0 \", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), \",\", 1 - cw, \" \", t03[1], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t03[0]);\n } else {\n path.push(\"L\", t21[0], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t03[0]);\n }\n } else {\n path.push(\"L\", x2, \",\", y2);\n }\n } else {\n path.push(\"M\", x0, \",\", y0);\n if (x1 != null) path.push(\"A\", r1, \",\", r1, \" 0 \", l1, \",\", cw, \" \", x1, \",\", y1);\n path.push(\"L\", x2, \",\", y2);\n if (x3 != null) path.push(\"A\", r0, \",\", r0, \" 0 \", l0, \",\", 1 - cw, \" \", x3, \",\", y3);\n }\n path.push(\"Z\");\n return path.join(\"\");\n }\n function circleSegment(r1, cw) {\n return \"M0,\" + r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,\" + cw + \" 0,\" + -r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,\" + cw + \" 0,\" + r1;\n }\n arc.innerRadius = function(v) {\n if (!arguments.length) return innerRadius;\n innerRadius = d3_functor(v);\n return arc;\n };\n arc.outerRadius = function(v) {\n if (!arguments.length) return outerRadius;\n outerRadius = d3_functor(v);\n return arc;\n };\n arc.cornerRadius = function(v) {\n if (!arguments.length) return cornerRadius;\n cornerRadius = d3_functor(v);\n return arc;\n };\n arc.padRadius = function(v) {\n if (!arguments.length) return padRadius;\n padRadius = v == d3_svg_arcAuto ? d3_svg_arcAuto : d3_functor(v);\n return arc;\n };\n arc.startAngle = function(v) {\n if (!arguments.length) return startAngle;\n startAngle = d3_functor(v);\n return arc;\n };\n arc.endAngle = function(v) {\n if (!arguments.length) return endAngle;\n endAngle = d3_functor(v);\n return arc;\n };\n arc.padAngle = function(v) {\n if (!arguments.length) return padAngle;\n padAngle = d3_functor(v);\n return arc;\n };\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - halfπ;\n return [ Math.cos(a) * r, Math.sin(a) * r ];\n };\n return arc;\n };\n var d3_svg_arcAuto = \"auto\";\n function d3_svg_arcInnerRadius(d) {\n return d.innerRadius;\n }\n function d3_svg_arcOuterRadius(d) {\n return d.outerRadius;\n }\n function d3_svg_arcStartAngle(d) {\n return d.startAngle;\n }\n function d3_svg_arcEndAngle(d) {\n return d.endAngle;\n }\n function d3_svg_arcPadAngle(d) {\n return d && d.padAngle;\n }\n function d3_svg_arcSweep(x0, y0, x1, y1) {\n return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1;\n }\n function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) {\n var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3;\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n return [ [ cx0 - ox, cy0 - oy ], [ cx0 * r1 / r, cy0 * r1 / r ] ];\n }\n function d3_svg_line(projection) {\n var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;\n function line(data) {\n var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);\n function segment() {\n segments.push(\"M\", interpolate(projection(points), tension));\n }\n while (++i < n) {\n if (defined.call(this, d = data[i], i)) {\n points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);\n } else if (points.length) {\n segment();\n points = [];\n }\n }\n if (points.length) segment();\n return segments.length ? segments.join(\"\") : null;\n }\n line.x = function(_) {\n if (!arguments.length) return x;\n x = _;\n return line;\n };\n line.y = function(_) {\n if (!arguments.length) return y;\n y = _;\n return line;\n };\n line.defined = function(_) {\n if (!arguments.length) return defined;\n defined = _;\n return line;\n };\n line.interpolate = function(_) {\n if (!arguments.length) return interpolateKey;\n if (typeof _ === \"function\") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;\n return line;\n };\n line.tension = function(_) {\n if (!arguments.length) return tension;\n tension = _;\n return line;\n };\n return line;\n }\n d3.svg.line = function() {\n return d3_svg_line(d3_identity);\n };\n var d3_svg_lineInterpolators = d3.map({\n linear: d3_svg_lineLinear,\n \"linear-closed\": d3_svg_lineLinearClosed,\n step: d3_svg_lineStep,\n \"step-before\": d3_svg_lineStepBefore,\n \"step-after\": d3_svg_lineStepAfter,\n basis: d3_svg_lineBasis,\n \"basis-open\": d3_svg_lineBasisOpen,\n \"basis-closed\": d3_svg_lineBasisClosed,\n bundle: d3_svg_lineBundle,\n cardinal: d3_svg_lineCardinal,\n \"cardinal-open\": d3_svg_lineCardinalOpen,\n \"cardinal-closed\": d3_svg_lineCardinalClosed,\n monotone: d3_svg_lineMonotone\n });\n d3_svg_lineInterpolators.forEach(function(key, value) {\n value.key = key;\n value.closed = /-closed$/.test(key);\n });\n function d3_svg_lineLinear(points) {\n return points.length > 1 ? points.join(\"L\") : points + \"Z\";\n }\n function d3_svg_lineLinearClosed(points) {\n return points.join(\"L\") + \"Z\";\n }\n function d3_svg_lineStep(points) {\n var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n while (++i < n) path.push(\"H\", (p[0] + (p = points[i])[0]) / 2, \"V\", p[1]);\n if (n > 1) path.push(\"H\", p[0]);\n return path.join(\"\");\n }\n function d3_svg_lineStepBefore(points) {\n var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n while (++i < n) path.push(\"V\", (p = points[i])[1], \"H\", p[0]);\n return path.join(\"\");\n }\n function d3_svg_lineStepAfter(points) {\n var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n while (++i < n) path.push(\"H\", (p = points[i])[0], \"V\", p[1]);\n return path.join(\"\");\n }\n function d3_svg_lineCardinalOpen(points, tension) {\n return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension));\n }\n function d3_svg_lineCardinalClosed(points, tension) {\n return points.length < 3 ? d3_svg_lineLinearClosed(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), \n points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));\n }\n function d3_svg_lineCardinal(points, tension) {\n return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));\n }\n function d3_svg_lineHermite(points, tangents) {\n if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {\n return d3_svg_lineLinear(points);\n }\n var quad = points.length != tangents.length, path = \"\", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;\n if (quad) {\n path += \"Q\" + (p[0] - t0[0] * 2 / 3) + \",\" + (p[1] - t0[1] * 2 / 3) + \",\" + p[0] + \",\" + p[1];\n p0 = points[1];\n pi = 2;\n }\n if (tangents.length > 1) {\n t = tangents[1];\n p = points[pi];\n pi++;\n path += \"C\" + (p0[0] + t0[0]) + \",\" + (p0[1] + t0[1]) + \",\" + (p[0] - t[0]) + \",\" + (p[1] - t[1]) + \",\" + p[0] + \",\" + p[1];\n for (var i = 2; i < tangents.length; i++, pi++) {\n p = points[pi];\n t = tangents[i];\n path += \"S\" + (p[0] - t[0]) + \",\" + (p[1] - t[1]) + \",\" + p[0] + \",\" + p[1];\n }\n }\n if (quad) {\n var lp = points[pi];\n path += \"Q\" + (p[0] + t[0] * 2 / 3) + \",\" + (p[1] + t[1] * 2 / 3) + \",\" + lp[0] + \",\" + lp[1];\n }\n return path;\n }\n function d3_svg_lineCardinalTangents(points, tension) {\n var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;\n while (++i < n) {\n p0 = p1;\n p1 = p2;\n p2 = points[i];\n tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);\n }\n return tangents;\n }\n function d3_svg_lineBasis(points) {\n if (points.length < 3) return d3_svg_lineLinear(points);\n var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, \",\", y0, \"L\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];\n points.push(points[n - 1]);\n while (++i <= n) {\n pi = points[i];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n points.pop();\n path.push(\"L\", pi);\n return path.join(\"\");\n }\n function d3_svg_lineBasisOpen(points) {\n if (points.length < 4) return d3_svg_lineLinear(points);\n var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];\n while (++i < 3) {\n pi = points[i];\n px.push(pi[0]);\n py.push(pi[1]);\n }\n path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + \",\" + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));\n --i;\n while (++i < n) {\n pi = points[i];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n return path.join(\"\");\n }\n function d3_svg_lineBasisClosed(points) {\n var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];\n while (++i < 4) {\n pi = points[i % n];\n px.push(pi[0]);\n py.push(pi[1]);\n }\n path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];\n --i;\n while (++i < m) {\n pi = points[i % n];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n return path.join(\"\");\n }\n function d3_svg_lineBundle(points, tension) {\n var n = points.length - 1;\n if (n) {\n var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;\n while (++i <= n) {\n p = points[i];\n t = i / n;\n p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);\n p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);\n }\n }\n return d3_svg_lineBasis(points);\n }\n function d3_svg_lineDot4(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n }\n var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];\n function d3_svg_lineBasisBezier(path, x, y) {\n path.push(\"C\", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));\n }\n function d3_svg_lineSlope(p0, p1) {\n return (p1[1] - p0[1]) / (p1[0] - p0[0]);\n }\n function d3_svg_lineFiniteDifferences(points) {\n var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);\n while (++i < j) {\n m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;\n }\n m[i] = d;\n return m;\n }\n function d3_svg_lineMonotoneTangents(points) {\n var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;\n while (++i < j) {\n d = d3_svg_lineSlope(points[i], points[i + 1]);\n if (abs(d) < ε) {\n m[i] = m[i + 1] = 0;\n } else {\n a = m[i] / d;\n b = m[i + 1] / d;\n s = a * a + b * b;\n if (s > 9) {\n s = d * 3 / Math.sqrt(s);\n m[i] = s * a;\n m[i + 1] = s * b;\n }\n }\n }\n i = -1;\n while (++i <= j) {\n s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));\n tangents.push([ s || 0, m[i] * s || 0 ]);\n }\n return tangents;\n }\n function d3_svg_lineMonotone(points) {\n return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));\n }\n d3.svg.line.radial = function() {\n var line = d3_svg_line(d3_svg_lineRadial);\n line.radius = line.x, delete line.x;\n line.angle = line.y, delete line.y;\n return line;\n };\n function d3_svg_lineRadial(points) {\n var point, i = -1, n = points.length, r, a;\n while (++i < n) {\n point = points[i];\n r = point[0];\n a = point[1] - halfπ;\n point[0] = r * Math.cos(a);\n point[1] = r * Math.sin(a);\n }\n return points;\n }\n function d3_svg_area(projection) {\n var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = \"L\", tension = .7;\n function area(data) {\n var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {\n return x;\n } : d3_functor(x1), fy1 = y0 === y1 ? function() {\n return y;\n } : d3_functor(y1), x, y;\n function segment() {\n segments.push(\"M\", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), \"Z\");\n }\n while (++i < n) {\n if (defined.call(this, d = data[i], i)) {\n points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);\n points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);\n } else if (points0.length) {\n segment();\n points0 = [];\n points1 = [];\n }\n }\n if (points0.length) segment();\n return segments.length ? segments.join(\"\") : null;\n }\n area.x = function(_) {\n if (!arguments.length) return x1;\n x0 = x1 = _;\n return area;\n };\n area.x0 = function(_) {\n if (!arguments.length) return x0;\n x0 = _;\n return area;\n };\n area.x1 = function(_) {\n if (!arguments.length) return x1;\n x1 = _;\n return area;\n };\n area.y = function(_) {\n if (!arguments.length) return y1;\n y0 = y1 = _;\n return area;\n };\n area.y0 = function(_) {\n if (!arguments.length) return y0;\n y0 = _;\n return area;\n };\n area.y1 = function(_) {\n if (!arguments.length) return y1;\n y1 = _;\n return area;\n };\n area.defined = function(_) {\n if (!arguments.length) return defined;\n defined = _;\n return area;\n };\n area.interpolate = function(_) {\n if (!arguments.length) return interpolateKey;\n if (typeof _ === \"function\") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;\n interpolateReverse = interpolate.reverse || interpolate;\n L = interpolate.closed ? \"M\" : \"L\";\n return area;\n };\n area.tension = function(_) {\n if (!arguments.length) return tension;\n tension = _;\n return area;\n };\n return area;\n }\n d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;\n d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;\n d3.svg.area = function() {\n return d3_svg_area(d3_identity);\n };\n d3.svg.area.radial = function() {\n var area = d3_svg_area(d3_svg_lineRadial);\n area.radius = area.x, delete area.x;\n area.innerRadius = area.x0, delete area.x0;\n area.outerRadius = area.x1, delete area.x1;\n area.angle = area.y, delete area.y;\n area.startAngle = area.y0, delete area.y0;\n area.endAngle = area.y1, delete area.y1;\n return area;\n };\n d3.svg.chord = function() {\n var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;\n function chord(d, i) {\n var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);\n return \"M\" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + \"Z\";\n }\n function subgroup(self, f, d, i) {\n var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) - halfπ, a1 = endAngle.call(self, subgroup, i) - halfπ;\n return {\n r: r,\n a0: a0,\n a1: a1,\n p0: [ r * Math.cos(a0), r * Math.sin(a0) ],\n p1: [ r * Math.cos(a1), r * Math.sin(a1) ]\n };\n }\n function equals(a, b) {\n return a.a0 == b.a0 && a.a1 == b.a1;\n }\n function arc(r, p, a) {\n return \"A\" + r + \",\" + r + \" 0 \" + +(a > π) + \",1 \" + p;\n }\n function curve(r0, p0, r1, p1) {\n return \"Q 0,0 \" + p1;\n }\n chord.radius = function(v) {\n if (!arguments.length) return radius;\n radius = d3_functor(v);\n return chord;\n };\n chord.source = function(v) {\n if (!arguments.length) return source;\n source = d3_functor(v);\n return chord;\n };\n chord.target = function(v) {\n if (!arguments.length) return target;\n target = d3_functor(v);\n return chord;\n };\n chord.startAngle = function(v) {\n if (!arguments.length) return startAngle;\n startAngle = d3_functor(v);\n return chord;\n };\n chord.endAngle = function(v) {\n if (!arguments.length) return endAngle;\n endAngle = d3_functor(v);\n return chord;\n };\n return chord;\n };\n function d3_svg_chordRadius(d) {\n return d.radius;\n }\n d3.svg.diagonal = function() {\n var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;\n function diagonal(d, i) {\n var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {\n x: p0.x,\n y: m\n }, {\n x: p3.x,\n y: m\n }, p3 ];\n p = p.map(projection);\n return \"M\" + p[0] + \"C\" + p[1] + \" \" + p[2] + \" \" + p[3];\n }\n diagonal.source = function(x) {\n if (!arguments.length) return source;\n source = d3_functor(x);\n return diagonal;\n };\n diagonal.target = function(x) {\n if (!arguments.length) return target;\n target = d3_functor(x);\n return diagonal;\n };\n diagonal.projection = function(x) {\n if (!arguments.length) return projection;\n projection = x;\n return diagonal;\n };\n return diagonal;\n };\n function d3_svg_diagonalProjection(d) {\n return [ d.x, d.y ];\n }\n d3.svg.diagonal.radial = function() {\n var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;\n diagonal.projection = function(x) {\n return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;\n };\n return diagonal;\n };\n function d3_svg_diagonalRadialProjection(projection) {\n return function() {\n var d = projection.apply(this, arguments), r = d[0], a = d[1] - halfπ;\n return [ r * Math.cos(a), r * Math.sin(a) ];\n };\n }\n d3.svg.symbol = function() {\n var type = d3_svg_symbolType, size = d3_svg_symbolSize;\n function symbol(d, i) {\n return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));\n }\n symbol.type = function(x) {\n if (!arguments.length) return type;\n type = d3_functor(x);\n return symbol;\n };\n symbol.size = function(x) {\n if (!arguments.length) return size;\n size = d3_functor(x);\n return symbol;\n };\n return symbol;\n };\n function d3_svg_symbolSize() {\n return 64;\n }\n function d3_svg_symbolType() {\n return \"circle\";\n }\n function d3_svg_symbolCircle(size) {\n var r = Math.sqrt(size / π);\n return \"M0,\" + r + \"A\" + r + \",\" + r + \" 0 1,1 0,\" + -r + \"A\" + r + \",\" + r + \" 0 1,1 0,\" + r + \"Z\";\n }\n var d3_svg_symbols = d3.map({\n circle: d3_svg_symbolCircle,\n cross: function(size) {\n var r = Math.sqrt(size / 5) / 2;\n return \"M\" + -3 * r + \",\" + -r + \"H\" + -r + \"V\" + -3 * r + \"H\" + r + \"V\" + -r + \"H\" + 3 * r + \"V\" + r + \"H\" + r + \"V\" + 3 * r + \"H\" + -r + \"V\" + r + \"H\" + -3 * r + \"Z\";\n },\n diamond: function(size) {\n var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;\n return \"M0,\" + -ry + \"L\" + rx + \",0\" + \" 0,\" + ry + \" \" + -rx + \",0\" + \"Z\";\n },\n square: function(size) {\n var r = Math.sqrt(size) / 2;\n return \"M\" + -r + \",\" + -r + \"L\" + r + \",\" + -r + \" \" + r + \",\" + r + \" \" + -r + \",\" + r + \"Z\";\n },\n \"triangle-down\": function(size) {\n var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;\n return \"M0,\" + ry + \"L\" + rx + \",\" + -ry + \" \" + -rx + \",\" + -ry + \"Z\";\n },\n \"triangle-up\": function(size) {\n var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;\n return \"M0,\" + -ry + \"L\" + rx + \",\" + ry + \" \" + -rx + \",\" + ry + \"Z\";\n }\n });\n d3.svg.symbolTypes = d3_svg_symbols.keys();\n var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);\n d3_selectionPrototype.transition = function(name) {\n var id = d3_transitionInheritId || ++d3_transitionId, ns = d3_transitionNamespace(name), subgroups = [], subgroup, node, transition = d3_transitionInherit || {\n time: Date.now(),\n ease: d3_ease_cubicInOut,\n delay: 0,\n duration: 250\n };\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) d3_transitionNode(node, i, ns, id, transition);\n subgroup.push(node);\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_selectionPrototype.interrupt = function(name) {\n return this.each(name == null ? d3_selection_interrupt : d3_selection_interruptNS(d3_transitionNamespace(name)));\n };\n var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace());\n function d3_selection_interruptNS(ns) {\n return function() {\n var lock, activeId, active;\n if ((lock = this[ns]) && (active = lock[activeId = lock.active])) {\n active.timer.c = null;\n active.timer.t = NaN;\n if (--lock.count) delete lock[activeId]; else delete this[ns];\n lock.active += .5;\n active.event && active.event.interrupt.call(this, this.__data__, active.index);\n }\n };\n }\n function d3_transition(groups, ns, id) {\n d3_subclass(groups, d3_transitionPrototype);\n groups.namespace = ns;\n groups.id = id;\n return groups;\n }\n var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit;\n d3_transitionPrototype.call = d3_selectionPrototype.call;\n d3_transitionPrototype.empty = d3_selectionPrototype.empty;\n d3_transitionPrototype.node = d3_selectionPrototype.node;\n d3_transitionPrototype.size = d3_selectionPrototype.size;\n d3.transition = function(selection, name) {\n return selection && selection.transition ? d3_transitionInheritId ? selection.transition(name) : selection : d3.selection().transition(selection);\n };\n d3.transition.prototype = d3_transitionPrototype;\n d3_transitionPrototype.select = function(selector) {\n var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnode, node;\n selector = d3_selection_selector(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n d3_transitionNode(subnode, i, ns, id, node[ns][id]);\n subgroup.push(subnode);\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_transitionPrototype.selectAll = function(selector) {\n var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnodes, node, subnode, transition;\n selector = d3_selection_selectorAll(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n transition = node[ns][id];\n subnodes = selector.call(node, node.__data__, i, j);\n subgroups.push(subgroup = []);\n for (var k = -1, o = subnodes.length; ++k < o; ) {\n if (subnode = subnodes[k]) d3_transitionNode(subnode, k, ns, id, transition);\n subgroup.push(subnode);\n }\n }\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_transitionPrototype.filter = function(filter) {\n var subgroups = [], subgroup, group, node;\n if (typeof filter !== \"function\") filter = d3_selection_filter(filter);\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {\n subgroup.push(node);\n }\n }\n }\n return d3_transition(subgroups, this.namespace, this.id);\n };\n d3_transitionPrototype.tween = function(name, tween) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 2) return this.node()[ns][id].tween.get(name);\n return d3_selection_each(this, tween == null ? function(node) {\n node[ns][id].tween.remove(name);\n } : function(node) {\n node[ns][id].tween.set(name, tween);\n });\n };\n function d3_transition_tween(groups, name, value, tween) {\n var id = groups.id, ns = groups.namespace;\n return d3_selection_each(groups, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].tween.set(name, tween(value.call(node, node.__data__, i, j)));\n } : (value = tween(value), function(node) {\n node[ns][id].tween.set(name, value);\n }));\n }\n d3_transitionPrototype.attr = function(nameNS, value) {\n if (arguments.length < 2) {\n for (value in nameNS) this.attr(value, nameNS[value]);\n return this;\n }\n var interpolate = nameNS == \"transform\" ? d3_interpolateTransform : d3_interpolate, name = d3.ns.qualify(nameNS);\n function attrNull() {\n this.removeAttribute(name);\n }\n function attrNullNS() {\n this.removeAttributeNS(name.space, name.local);\n }\n function attrTween(b) {\n return b == null ? attrNull : (b += \"\", function() {\n var a = this.getAttribute(name), i;\n return a !== b && (i = interpolate(a, b), function(t) {\n this.setAttribute(name, i(t));\n });\n });\n }\n function attrTweenNS(b) {\n return b == null ? attrNullNS : (b += \"\", function() {\n var a = this.getAttributeNS(name.space, name.local), i;\n return a !== b && (i = interpolate(a, b), function(t) {\n this.setAttributeNS(name.space, name.local, i(t));\n });\n });\n }\n return d3_transition_tween(this, \"attr.\" + nameNS, value, name.local ? attrTweenNS : attrTween);\n };\n d3_transitionPrototype.attrTween = function(nameNS, tween) {\n var name = d3.ns.qualify(nameNS);\n function attrTween(d, i) {\n var f = tween.call(this, d, i, this.getAttribute(name));\n return f && function(t) {\n this.setAttribute(name, f(t));\n };\n }\n function attrTweenNS(d, i) {\n var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));\n return f && function(t) {\n this.setAttributeNS(name.space, name.local, f(t));\n };\n }\n return this.tween(\"attr.\" + nameNS, name.local ? attrTweenNS : attrTween);\n };\n d3_transitionPrototype.style = function(name, value, priority) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof name !== \"string\") {\n if (n < 2) value = \"\";\n for (priority in name) this.style(priority, name[priority], value);\n return this;\n }\n priority = \"\";\n }\n function styleNull() {\n this.style.removeProperty(name);\n }\n function styleString(b) {\n return b == null ? styleNull : (b += \"\", function() {\n var a = d3_window(this).getComputedStyle(this, null).getPropertyValue(name), i;\n return a !== b && (i = d3_interpolate(a, b), function(t) {\n this.style.setProperty(name, i(t), priority);\n });\n });\n }\n return d3_transition_tween(this, \"style.\" + name, value, styleString);\n };\n d3_transitionPrototype.styleTween = function(name, tween, priority) {\n if (arguments.length < 3) priority = \"\";\n function styleTween(d, i) {\n var f = tween.call(this, d, i, d3_window(this).getComputedStyle(this, null).getPropertyValue(name));\n return f && function(t) {\n this.style.setProperty(name, f(t), priority);\n };\n }\n return this.tween(\"style.\" + name, styleTween);\n };\n d3_transitionPrototype.text = function(value) {\n return d3_transition_tween(this, \"text\", value, d3_transition_text);\n };\n function d3_transition_text(b) {\n if (b == null) b = \"\";\n return function() {\n this.textContent = b;\n };\n }\n d3_transitionPrototype.remove = function() {\n var ns = this.namespace;\n return this.each(\"end.transition\", function() {\n var p;\n if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this);\n });\n };\n d3_transitionPrototype.ease = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].ease;\n if (typeof value !== \"function\") value = d3.ease.apply(d3, arguments);\n return d3_selection_each(this, function(node) {\n node[ns][id].ease = value;\n });\n };\n d3_transitionPrototype.delay = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].delay;\n return d3_selection_each(this, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].delay = +value.call(node, node.__data__, i, j);\n } : (value = +value, function(node) {\n node[ns][id].delay = value;\n }));\n };\n d3_transitionPrototype.duration = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].duration;\n return d3_selection_each(this, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].duration = Math.max(1, value.call(node, node.__data__, i, j));\n } : (value = Math.max(1, value), function(node) {\n node[ns][id].duration = value;\n }));\n };\n d3_transitionPrototype.each = function(type, listener) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 2) {\n var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;\n try {\n d3_transitionInheritId = id;\n d3_selection_each(this, function(node, i, j) {\n d3_transitionInherit = node[ns][id];\n type.call(node, node.__data__, i, j);\n });\n } finally {\n d3_transitionInherit = inherit;\n d3_transitionInheritId = inheritId;\n }\n } else {\n d3_selection_each(this, function(node) {\n var transition = node[ns][id];\n (transition.event || (transition.event = d3.dispatch(\"start\", \"end\", \"interrupt\"))).on(type, listener);\n });\n }\n return this;\n };\n d3_transitionPrototype.transition = function() {\n var id0 = this.id, id1 = ++d3_transitionId, ns = this.namespace, subgroups = [], subgroup, group, node, transition;\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n if (node = group[i]) {\n transition = node[ns][id0];\n d3_transitionNode(node, i, ns, id1, {\n time: transition.time,\n ease: transition.ease,\n delay: transition.delay + transition.duration,\n duration: transition.duration\n });\n }\n subgroup.push(node);\n }\n }\n return d3_transition(subgroups, ns, id1);\n };\n function d3_transitionNamespace(name) {\n return name == null ? \"__transition__\" : \"__transition_\" + name + \"__\";\n }\n function d3_transitionNode(node, i, ns, id, inherit) {\n var lock = node[ns] || (node[ns] = {\n active: 0,\n count: 0\n }), transition = lock[id], time, timer, duration, ease, tweens;\n function schedule(elapsed) {\n var delay = transition.delay;\n timer.t = delay + time;\n if (delay <= elapsed) return start(elapsed - delay);\n timer.c = start;\n }\n function start(elapsed) {\n var activeId = lock.active, active = lock[activeId];\n if (active) {\n active.timer.c = null;\n active.timer.t = NaN;\n --lock.count;\n delete lock[activeId];\n active.event && active.event.interrupt.call(node, node.__data__, active.index);\n }\n for (var cancelId in lock) {\n if (+cancelId < id) {\n var cancel = lock[cancelId];\n cancel.timer.c = null;\n cancel.timer.t = NaN;\n --lock.count;\n delete lock[cancelId];\n }\n }\n timer.c = tick;\n d3_timer(function() {\n if (timer.c && tick(elapsed || 1)) {\n timer.c = null;\n timer.t = NaN;\n }\n return 1;\n }, 0, time);\n lock.active = id;\n transition.event && transition.event.start.call(node, node.__data__, i);\n tweens = [];\n transition.tween.forEach(function(key, value) {\n if (value = value.call(node, node.__data__, i)) {\n tweens.push(value);\n }\n });\n ease = transition.ease;\n duration = transition.duration;\n }\n function tick(elapsed) {\n var t = elapsed / duration, e = ease(t), n = tweens.length;\n while (n > 0) {\n tweens[--n].call(node, e);\n }\n if (t >= 1) {\n transition.event && transition.event.end.call(node, node.__data__, i);\n if (--lock.count) delete lock[id]; else delete node[ns];\n return 1;\n }\n }\n if (!transition) {\n time = inherit.time;\n timer = d3_timer(schedule, 0, time);\n transition = lock[id] = {\n tween: new d3_Map(),\n time: time,\n timer: timer,\n delay: inherit.delay,\n duration: inherit.duration,\n ease: inherit.ease,\n index: i\n };\n inherit = null;\n ++lock.count;\n }\n }\n d3.svg.axis = function() {\n var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_;\n function axis(g) {\n g.each(function() {\n var g = d3.select(this);\n var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy();\n var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(\".tick\").data(ticks, scale1), tickEnter = tick.enter().insert(\"g\", \".domain\").attr(\"class\", \"tick\").style(\"opacity\", ε), tickExit = d3.transition(tick.exit()).style(\"opacity\", ε).remove(), tickUpdate = d3.transition(tick.order()).style(\"opacity\", 1), tickSpacing = Math.max(innerTickSize, 0) + tickPadding, tickTransform;\n var range = d3_scaleRange(scale1), path = g.selectAll(\".domain\").data([ 0 ]), pathUpdate = (path.enter().append(\"path\").attr(\"class\", \"domain\"), \n d3.transition(path));\n tickEnter.append(\"line\");\n tickEnter.append(\"text\");\n var lineEnter = tickEnter.select(\"line\"), lineUpdate = tickUpdate.select(\"line\"), text = tick.select(\"text\").text(tickFormat), textEnter = tickEnter.select(\"text\"), textUpdate = tickUpdate.select(\"text\"), sign = orient === \"top\" || orient === \"left\" ? -1 : 1, x1, x2, y1, y2;\n if (orient === \"bottom\" || orient === \"top\") {\n tickTransform = d3_svg_axisX, x1 = \"x\", y1 = \"y\", x2 = \"x2\", y2 = \"y2\";\n text.attr(\"dy\", sign < 0 ? \"0em\" : \".71em\").style(\"text-anchor\", \"middle\");\n pathUpdate.attr(\"d\", \"M\" + range[0] + \",\" + sign * outerTickSize + \"V0H\" + range[1] + \"V\" + sign * outerTickSize);\n } else {\n tickTransform = d3_svg_axisY, x1 = \"y\", y1 = \"x\", x2 = \"y2\", y2 = \"x2\";\n text.attr(\"dy\", \".32em\").style(\"text-anchor\", sign < 0 ? \"end\" : \"start\");\n pathUpdate.attr(\"d\", \"M\" + sign * outerTickSize + \",\" + range[0] + \"H0V\" + range[1] + \"H\" + sign * outerTickSize);\n }\n lineEnter.attr(y2, sign * innerTickSize);\n textEnter.attr(y1, sign * tickSpacing);\n lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize);\n textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing);\n if (scale1.rangeBand) {\n var x = scale1, dx = x.rangeBand() / 2;\n scale0 = scale1 = function(d) {\n return x(d) + dx;\n };\n } else if (scale0.rangeBand) {\n scale0 = scale1;\n } else {\n tickExit.call(tickTransform, scale1, scale0);\n }\n tickEnter.call(tickTransform, scale0, scale1);\n tickUpdate.call(tickTransform, scale1, scale1);\n });\n }\n axis.scale = function(x) {\n if (!arguments.length) return scale;\n scale = x;\n return axis;\n };\n axis.orient = function(x) {\n if (!arguments.length) return orient;\n orient = x in d3_svg_axisOrients ? x + \"\" : d3_svg_axisDefaultOrient;\n return axis;\n };\n axis.ticks = function() {\n if (!arguments.length) return tickArguments_;\n tickArguments_ = d3_array(arguments);\n return axis;\n };\n axis.tickValues = function(x) {\n if (!arguments.length) return tickValues;\n tickValues = x;\n return axis;\n };\n axis.tickFormat = function(x) {\n if (!arguments.length) return tickFormat_;\n tickFormat_ = x;\n return axis;\n };\n axis.tickSize = function(x) {\n var n = arguments.length;\n if (!n) return innerTickSize;\n innerTickSize = +x;\n outerTickSize = +arguments[n - 1];\n return axis;\n };\n axis.innerTickSize = function(x) {\n if (!arguments.length) return innerTickSize;\n innerTickSize = +x;\n return axis;\n };\n axis.outerTickSize = function(x) {\n if (!arguments.length) return outerTickSize;\n outerTickSize = +x;\n return axis;\n };\n axis.tickPadding = function(x) {\n if (!arguments.length) return tickPadding;\n tickPadding = +x;\n return axis;\n };\n axis.tickSubdivide = function() {\n return arguments.length && axis;\n };\n return axis;\n };\n var d3_svg_axisDefaultOrient = \"bottom\", d3_svg_axisOrients = {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n };\n function d3_svg_axisX(selection, x0, x1) {\n selection.attr(\"transform\", function(d) {\n var v0 = x0(d);\n return \"translate(\" + (isFinite(v0) ? v0 : x1(d)) + \",0)\";\n });\n }\n function d3_svg_axisY(selection, y0, y1) {\n selection.attr(\"transform\", function(d) {\n var v0 = y0(d);\n return \"translate(0,\" + (isFinite(v0) ? v0 : y1(d)) + \")\";\n });\n }\n d3.svg.brush = function() {\n var event = d3_eventDispatch(brush, \"brushstart\", \"brush\", \"brushend\"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0];\n function brush(g) {\n g.each(function() {\n var g = d3.select(this).style(\"pointer-events\", \"all\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\").on(\"mousedown.brush\", brushstart).on(\"touchstart.brush\", brushstart);\n var background = g.selectAll(\".background\").data([ 0 ]);\n background.enter().append(\"rect\").attr(\"class\", \"background\").style(\"visibility\", \"hidden\").style(\"cursor\", \"crosshair\");\n g.selectAll(\".extent\").data([ 0 ]).enter().append(\"rect\").attr(\"class\", \"extent\").style(\"cursor\", \"move\");\n var resize = g.selectAll(\".resize\").data(resizes, d3_identity);\n resize.exit().remove();\n resize.enter().append(\"g\").attr(\"class\", function(d) {\n return \"resize \" + d;\n }).style(\"cursor\", function(d) {\n return d3_svg_brushCursor[d];\n }).append(\"rect\").attr(\"x\", function(d) {\n return /[ew]$/.test(d) ? -3 : null;\n }).attr(\"y\", function(d) {\n return /^[ns]/.test(d) ? -3 : null;\n }).attr(\"width\", 6).attr(\"height\", 6).style(\"visibility\", \"hidden\");\n resize.style(\"display\", brush.empty() ? \"none\" : null);\n var gUpdate = d3.transition(g), backgroundUpdate = d3.transition(background), range;\n if (x) {\n range = d3_scaleRange(x);\n backgroundUpdate.attr(\"x\", range[0]).attr(\"width\", range[1] - range[0]);\n redrawX(gUpdate);\n }\n if (y) {\n range = d3_scaleRange(y);\n backgroundUpdate.attr(\"y\", range[0]).attr(\"height\", range[1] - range[0]);\n redrawY(gUpdate);\n }\n redraw(gUpdate);\n });\n }\n brush.event = function(g) {\n g.each(function() {\n var event_ = event.of(this, arguments), extent1 = {\n x: xExtent,\n y: yExtent,\n i: xExtentDomain,\n j: yExtentDomain\n }, extent0 = this.__chart__ || extent1;\n this.__chart__ = extent1;\n if (d3_transitionInheritId) {\n d3.select(this).transition().each(\"start.brush\", function() {\n xExtentDomain = extent0.i;\n yExtentDomain = extent0.j;\n xExtent = extent0.x;\n yExtent = extent0.y;\n event_({\n type: \"brushstart\"\n });\n }).tween(\"brush:brush\", function() {\n var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y);\n xExtentDomain = yExtentDomain = null;\n return function(t) {\n xExtent = extent1.x = xi(t);\n yExtent = extent1.y = yi(t);\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n };\n }).each(\"end.brush\", function() {\n xExtentDomain = extent1.i;\n yExtentDomain = extent1.j;\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n event_({\n type: \"brushend\"\n });\n });\n } else {\n event_({\n type: \"brushstart\"\n });\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n event_({\n type: \"brushend\"\n });\n }\n });\n };\n function redraw(g) {\n g.selectAll(\".resize\").attr(\"transform\", function(d) {\n return \"translate(\" + xExtent[+/e$/.test(d)] + \",\" + yExtent[+/^s/.test(d)] + \")\";\n });\n }\n function redrawX(g) {\n g.select(\".extent\").attr(\"x\", xExtent[0]);\n g.selectAll(\".extent,.n>rect,.s>rect\").attr(\"width\", xExtent[1] - xExtent[0]);\n }\n function redrawY(g) {\n g.select(\".extent\").attr(\"y\", yExtent[0]);\n g.selectAll(\".extent,.e>rect,.w>rect\").attr(\"height\", yExtent[1] - yExtent[0]);\n }\n function brushstart() {\n var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed(\"extent\"), dragRestore = d3_event_dragSuppress(target), center, origin = d3.mouse(target), offset;\n var w = d3.select(d3_window(target)).on(\"keydown.brush\", keydown).on(\"keyup.brush\", keyup);\n if (d3.event.changedTouches) {\n w.on(\"touchmove.brush\", brushmove).on(\"touchend.brush\", brushend);\n } else {\n w.on(\"mousemove.brush\", brushmove).on(\"mouseup.brush\", brushend);\n }\n g.interrupt().selectAll(\"*\").interrupt();\n if (dragging) {\n origin[0] = xExtent[0] - origin[0];\n origin[1] = yExtent[0] - origin[1];\n } else if (resizing) {\n var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);\n offset = [ xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1] ];\n origin[0] = xExtent[ex];\n origin[1] = yExtent[ey];\n } else if (d3.event.altKey) center = origin.slice();\n g.style(\"pointer-events\", \"none\").selectAll(\".resize\").style(\"display\", null);\n d3.select(\"body\").style(\"cursor\", eventTarget.style(\"cursor\"));\n event_({\n type: \"brushstart\"\n });\n brushmove();\n function keydown() {\n if (d3.event.keyCode == 32) {\n if (!dragging) {\n center = null;\n origin[0] -= xExtent[1];\n origin[1] -= yExtent[1];\n dragging = 2;\n }\n d3_eventPreventDefault();\n }\n }\n function keyup() {\n if (d3.event.keyCode == 32 && dragging == 2) {\n origin[0] += xExtent[1];\n origin[1] += yExtent[1];\n dragging = 0;\n d3_eventPreventDefault();\n }\n }\n function brushmove() {\n var point = d3.mouse(target), moved = false;\n if (offset) {\n point[0] += offset[0];\n point[1] += offset[1];\n }\n if (!dragging) {\n if (d3.event.altKey) {\n if (!center) center = [ (xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2 ];\n origin[0] = xExtent[+(point[0] < center[0])];\n origin[1] = yExtent[+(point[1] < center[1])];\n } else center = null;\n }\n if (resizingX && move1(point, x, 0)) {\n redrawX(g);\n moved = true;\n }\n if (resizingY && move1(point, y, 1)) {\n redrawY(g);\n moved = true;\n }\n if (moved) {\n redraw(g);\n event_({\n type: \"brush\",\n mode: dragging ? \"move\" : \"resize\"\n });\n }\n }\n function move1(point, scale, i) {\n var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max;\n if (dragging) {\n r0 -= position;\n r1 -= size + position;\n }\n min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i];\n if (dragging) {\n max = (min += position) + size;\n } else {\n if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));\n if (position < min) {\n max = min;\n min = position;\n } else {\n max = position;\n }\n }\n if (extent[0] != min || extent[1] != max) {\n if (i) yExtentDomain = null; else xExtentDomain = null;\n extent[0] = min;\n extent[1] = max;\n return true;\n }\n }\n function brushend() {\n brushmove();\n g.style(\"pointer-events\", \"all\").selectAll(\".resize\").style(\"display\", brush.empty() ? \"none\" : null);\n d3.select(\"body\").style(\"cursor\", null);\n w.on(\"mousemove.brush\", null).on(\"mouseup.brush\", null).on(\"touchmove.brush\", null).on(\"touchend.brush\", null).on(\"keydown.brush\", null).on(\"keyup.brush\", null);\n dragRestore();\n event_({\n type: \"brushend\"\n });\n }\n }\n brush.x = function(z) {\n if (!arguments.length) return x;\n x = z;\n resizes = d3_svg_brushResizes[!x << 1 | !y];\n return brush;\n };\n brush.y = function(z) {\n if (!arguments.length) return y;\n y = z;\n resizes = d3_svg_brushResizes[!x << 1 | !y];\n return brush;\n };\n brush.clamp = function(z) {\n if (!arguments.length) return x && y ? [ xClamp, yClamp ] : x ? xClamp : y ? yClamp : null;\n if (x && y) xClamp = !!z[0], yClamp = !!z[1]; else if (x) xClamp = !!z; else if (y) yClamp = !!z;\n return brush;\n };\n brush.extent = function(z) {\n var x0, x1, y0, y1, t;\n if (!arguments.length) {\n if (x) {\n if (xExtentDomain) {\n x0 = xExtentDomain[0], x1 = xExtentDomain[1];\n } else {\n x0 = xExtent[0], x1 = xExtent[1];\n if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);\n if (x1 < x0) t = x0, x0 = x1, x1 = t;\n }\n }\n if (y) {\n if (yExtentDomain) {\n y0 = yExtentDomain[0], y1 = yExtentDomain[1];\n } else {\n y0 = yExtent[0], y1 = yExtent[1];\n if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);\n if (y1 < y0) t = y0, y0 = y1, y1 = t;\n }\n }\n return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];\n }\n if (x) {\n x0 = z[0], x1 = z[1];\n if (y) x0 = x0[0], x1 = x1[0];\n xExtentDomain = [ x0, x1 ];\n if (x.invert) x0 = x(x0), x1 = x(x1);\n if (x1 < x0) t = x0, x0 = x1, x1 = t;\n if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [ x0, x1 ];\n }\n if (y) {\n y0 = z[0], y1 = z[1];\n if (x) y0 = y0[1], y1 = y1[1];\n yExtentDomain = [ y0, y1 ];\n if (y.invert) y0 = y(y0), y1 = y(y1);\n if (y1 < y0) t = y0, y0 = y1, y1 = t;\n if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [ y0, y1 ];\n }\n return brush;\n };\n brush.clear = function() {\n if (!brush.empty()) {\n xExtent = [ 0, 0 ], yExtent = [ 0, 0 ];\n xExtentDomain = yExtentDomain = null;\n }\n return brush;\n };\n brush.empty = function() {\n return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1];\n };\n return d3.rebind(brush, event, \"on\");\n };\n var d3_svg_brushCursor = {\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n };\n var d3_svg_brushResizes = [ [ \"n\", \"e\", \"s\", \"w\", \"nw\", \"ne\", \"se\", \"sw\" ], [ \"e\", \"w\" ], [ \"n\", \"s\" ], [] ];\n var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat;\n var d3_time_formatUtc = d3_time_format.utc;\n var d3_time_formatIso = d3_time_formatUtc(\"%Y-%m-%dT%H:%M:%S.%LZ\");\n d3_time_format.iso = Date.prototype.toISOString && +new Date(\"2000-01-01T00:00:00.000Z\") ? d3_time_formatIsoNative : d3_time_formatIso;\n function d3_time_formatIsoNative(date) {\n return date.toISOString();\n }\n d3_time_formatIsoNative.parse = function(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n };\n d3_time_formatIsoNative.toString = d3_time_formatIso.toString;\n d3_time.second = d3_time_interval(function(date) {\n return new d3_date(Math.floor(date / 1e3) * 1e3);\n }, function(date, offset) {\n date.setTime(date.getTime() + Math.floor(offset) * 1e3);\n }, function(date) {\n return date.getSeconds();\n });\n d3_time.seconds = d3_time.second.range;\n d3_time.seconds.utc = d3_time.second.utc.range;\n d3_time.minute = d3_time_interval(function(date) {\n return new d3_date(Math.floor(date / 6e4) * 6e4);\n }, function(date, offset) {\n date.setTime(date.getTime() + Math.floor(offset) * 6e4);\n }, function(date) {\n return date.getMinutes();\n });\n d3_time.minutes = d3_time.minute.range;\n d3_time.minutes.utc = d3_time.minute.utc.range;\n d3_time.hour = d3_time_interval(function(date) {\n var timezone = date.getTimezoneOffset() / 60;\n return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);\n }, function(date, offset) {\n date.setTime(date.getTime() + Math.floor(offset) * 36e5);\n }, function(date) {\n return date.getHours();\n });\n d3_time.hours = d3_time.hour.range;\n d3_time.hours.utc = d3_time.hour.utc.range;\n d3_time.month = d3_time_interval(function(date) {\n date = d3_time.day(date);\n date.setDate(1);\n return date;\n }, function(date, offset) {\n date.setMonth(date.getMonth() + offset);\n }, function(date) {\n return date.getMonth();\n });\n d3_time.months = d3_time.month.range;\n d3_time.months.utc = d3_time.month.utc.range;\n function d3_time_scale(linear, methods, format) {\n function scale(x) {\n return linear(x);\n }\n scale.invert = function(x) {\n return d3_time_scaleDate(linear.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return linear.domain().map(d3_time_scaleDate);\n linear.domain(x);\n return scale;\n };\n function tickMethod(extent, count) {\n var span = extent[1] - extent[0], target = span / count, i = d3.bisect(d3_time_scaleSteps, target);\n return i == d3_time_scaleSteps.length ? [ methods.year, d3_scale_linearTickRange(extent.map(function(d) {\n return d / 31536e6;\n }), count)[2] ] : !i ? [ d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2] ] : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i];\n }\n scale.nice = function(interval, skip) {\n var domain = scale.domain(), extent = d3_scaleExtent(domain), method = interval == null ? tickMethod(extent, 10) : typeof interval === \"number\" && tickMethod(extent, interval);\n if (method) interval = method[0], skip = method[1];\n function skipped(date) {\n return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length;\n }\n return scale.domain(d3_scale_nice(domain, skip > 1 ? {\n floor: function(date) {\n while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1);\n return date;\n },\n ceil: function(date) {\n while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1);\n return date;\n }\n } : interval));\n };\n scale.ticks = function(interval, skip) {\n var extent = d3_scaleExtent(scale.domain()), method = interval == null ? tickMethod(extent, 10) : typeof interval === \"number\" ? tickMethod(extent, interval) : !interval.range && [ {\n range: interval\n }, skip ];\n if (method) interval = method[0], skip = method[1];\n return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip);\n };\n scale.tickFormat = function() {\n return format;\n };\n scale.copy = function() {\n return d3_time_scale(linear.copy(), methods, format);\n };\n return d3_scale_linearRebind(scale, linear);\n }\n function d3_time_scaleDate(t) {\n return new Date(t);\n }\n var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];\n var d3_time_scaleLocalMethods = [ [ d3_time.second, 1 ], [ d3_time.second, 5 ], [ d3_time.second, 15 ], [ d3_time.second, 30 ], [ d3_time.minute, 1 ], [ d3_time.minute, 5 ], [ d3_time.minute, 15 ], [ d3_time.minute, 30 ], [ d3_time.hour, 1 ], [ d3_time.hour, 3 ], [ d3_time.hour, 6 ], [ d3_time.hour, 12 ], [ d3_time.day, 1 ], [ d3_time.day, 2 ], [ d3_time.week, 1 ], [ d3_time.month, 1 ], [ d3_time.month, 3 ], [ d3_time.year, 1 ] ];\n var d3_time_scaleLocalFormat = d3_time_format.multi([ [ \".%L\", function(d) {\n return d.getMilliseconds();\n } ], [ \":%S\", function(d) {\n return d.getSeconds();\n } ], [ \"%I:%M\", function(d) {\n return d.getMinutes();\n } ], [ \"%I %p\", function(d) {\n return d.getHours();\n } ], [ \"%a %d\", function(d) {\n return d.getDay() && d.getDate() != 1;\n } ], [ \"%b %d\", function(d) {\n return d.getDate() != 1;\n } ], [ \"%B\", function(d) {\n return d.getMonth();\n } ], [ \"%Y\", d3_true ] ]);\n var d3_time_scaleMilliseconds = {\n range: function(start, stop, step) {\n return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate);\n },\n floor: d3_identity,\n ceil: d3_identity\n };\n d3_time_scaleLocalMethods.year = d3_time.year;\n d3_time.scale = function() {\n return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);\n };\n var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) {\n return [ m[0].utc, m[1] ];\n });\n var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ [ \".%L\", function(d) {\n return d.getUTCMilliseconds();\n } ], [ \":%S\", function(d) {\n return d.getUTCSeconds();\n } ], [ \"%I:%M\", function(d) {\n return d.getUTCMinutes();\n } ], [ \"%I %p\", function(d) {\n return d.getUTCHours();\n } ], [ \"%a %d\", function(d) {\n return d.getUTCDay() && d.getUTCDate() != 1;\n } ], [ \"%b %d\", function(d) {\n return d.getUTCDate() != 1;\n } ], [ \"%B\", function(d) {\n return d.getUTCMonth();\n } ], [ \"%Y\", d3_true ] ]);\n d3_time_scaleUtcMethods.year = d3_time.year.utc;\n d3_time.scale.utc = function() {\n return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat);\n };\n d3.text = d3_xhrType(function(request) {\n return request.responseText;\n });\n d3.json = function(url, callback) {\n return d3_xhr(url, \"application/json\", d3_json, callback);\n };\n function d3_json(request) {\n return JSON.parse(request.responseText);\n }\n d3.html = function(url, callback) {\n return d3_xhr(url, \"text/html\", d3_html, callback);\n };\n function d3_html(request) {\n var range = d3_document.createRange();\n range.selectNode(d3_document.body);\n return range.createContextualFragment(request.responseText);\n }\n d3.xml = d3_xhrType(function(request) {\n return request.responseXML;\n });\n if (true) this.d3 = d3, !(__WEBPACK_AMD_DEFINE_FACTORY__ = (d3),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); else {}\n}();\n\n/***/ }),\n\n/***/ \"6eeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar has = __webpack_require__(\"5135\");\nvar setGlobal = __webpack_require__(\"ce4e\");\nvar inspectSource = __webpack_require__(\"8925\");\nvar InternalStateModule = __webpack_require__(\"69f3\");\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n\n/***/ \"6f04\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// CONCATENATED MODULE: ./node_modules/d3-collection/src/map.js\nvar prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\n/* harmony default export */ var src_map = (map);\n\n// CONCATENATED MODULE: ./node_modules/d3-collection/src/nest.js\n\n\n/* harmony default export */ var src_nest = (function() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = src_map(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n});\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return src_map();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}\n\n// CONCATENATED MODULE: ./node_modules/d3-collection/src/set.js\n\n\nfunction Set() {}\n\nvar proto = src_map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\n/* harmony default export */ var src_set = (set);\n\n// CONCATENATED MODULE: ./node_modules/d3-collection/src/keys.js\n/* harmony default export */ var src_keys = (function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-collection/src/values.js\n/* harmony default export */ var src_values = (function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-collection/src/entries.js\n/* harmony default export */ var src_entries = (function(map) {\n var entries = [];\n for (var key in map) entries.push({key: key, value: map[key]});\n return entries;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-collection/src/index.js\n/* concated harmony reexport nest */__webpack_require__.d(__webpack_exports__, \"b\", function() { return src_nest; });\n/* unused concated harmony import set */\n/* concated harmony reexport map */__webpack_require__.d(__webpack_exports__, \"a\", function() { return src_map; });\n/* unused concated harmony import keys */\n/* unused concated harmony import values */\n/* unused concated harmony import entries */\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ \"6f09\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = function eventData(out, pt, trace, cd, pointNumber) {\n // standard cartesian event data\n out.x = 'xVal' in pt ? pt.xVal : pt.x;\n out.y = 'yVal' in pt ? pt.yVal : pt.y;\n\n // for 2d histograms\n if('zLabelVal' in pt) out.z = pt.zLabelVal;\n\n if(pt.xa) out.xaxis = pt.xa;\n if(pt.ya) out.yaxis = pt.ya;\n\n // specific to histogram - CDFs do not have pts (yet?)\n if(!(trace.cumulative || {}).enabled) {\n var pts = Array.isArray(pointNumber) ?\n cd[0].pts[pointNumber[0]][pointNumber[1]] :\n cd[pointNumber].pts;\n\n out.pointNumbers = pts;\n out.binNumber = out.pointNumber;\n delete out.pointNumber;\n delete out.pointIndex;\n\n var pointIndices;\n if(trace._indexToPoints) {\n pointIndices = [];\n for(var i = 0; i < pts.length; i++) {\n pointIndices = pointIndices.concat(trace._indexToPoints[pts[i]]);\n }\n } else {\n pointIndices = pts;\n }\n\n out.pointIndices = pointIndices;\n }\n\n return out;\n};\n\n\n/***/ }),\n\n/***/ \"6f51\":\n/***/ (function(module, exports) {\n\nmodule.exports = translate;\n\n/**\n * Translate a mat4 by the given vector\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to translate\n * @param {vec3} v vector to translate by\n * @returns {mat4} out\n */\nfunction translate(out, a, v) {\n var x = v[0], y = v[1], z = v[2],\n a00, a01, a02, a03,\n a10, a11, a12, a13,\n a20, a21, a22, a23;\n\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0]; a01 = a[1]; a02 = a[2]; a03 = a[3];\n a10 = a[4]; a11 = a[5]; a12 = a[6]; a13 = a[7];\n a20 = a[8]; a21 = a[9]; a22 = a[10]; a23 = a[11];\n\n out[0] = a00; out[1] = a01; out[2] = a02; out[3] = a03;\n out[4] = a10; out[5] = a11; out[6] = a12; out[7] = a13;\n out[8] = a20; out[9] = a21; out[10] = a22; out[11] = a23;\n\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n\n return out;\n};\n\n/***/ }),\n\n/***/ \"6f96\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = function eventData(out, pt /* , trace, cd, pointNumber */) {\n // standard cartesian event data\n out.x = 'xVal' in pt ? pt.xVal : pt.x;\n out.y = 'yVal' in pt ? pt.yVal : pt.y;\n\n // for funnel\n if('percentInitial' in pt) out.percentInitial = pt.percentInitial;\n if('percentPrevious' in pt) out.percentPrevious = pt.percentPrevious;\n if('percentTotal' in pt) out.percentTotal = pt.percentTotal;\n\n if(pt.xa) out.xaxis = pt.xa;\n if(pt.ya) out.yaxis = pt.ya;\n\n return out;\n};\n\n\n/***/ }),\n\n/***/ \"6fa6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar createMesh = __webpack_require__(\"551a\");\n\nvar parseColorScale = __webpack_require__(\"765f\").parseColorScale;\nvar str2RgbaArray = __webpack_require__(\"f977\");\nvar extractOpts = __webpack_require__(\"c258\").extractOpts;\nvar zip3 = __webpack_require__(\"569b\");\n\nvar findNearestOnAxis = __webpack_require__(\"caf7\").findNearestOnAxis;\nvar generateIsoMeshes = __webpack_require__(\"caf7\").generateIsoMeshes;\n\nfunction VolumeTrace(scene, mesh, uid) {\n this.scene = scene;\n this.uid = uid;\n this.mesh = mesh;\n this.name = '';\n this.data = null;\n this.showContour = false;\n}\n\nvar proto = VolumeTrace.prototype;\n\nproto.handlePick = function(selection) {\n if(selection.object === this.mesh) {\n var rawId = selection.data.index;\n\n var x = this.data._meshX[rawId];\n var y = this.data._meshY[rawId];\n var z = this.data._meshZ[rawId];\n\n var height = this.data._Ys.length;\n var depth = this.data._Zs.length;\n\n var i = findNearestOnAxis(x, this.data._Xs).id;\n var j = findNearestOnAxis(y, this.data._Ys).id;\n var k = findNearestOnAxis(z, this.data._Zs).id;\n\n var selectIndex = selection.index = k + depth * j + depth * height * i;\n\n selection.traceCoordinate = [\n this.data._meshX[selectIndex],\n this.data._meshY[selectIndex],\n this.data._meshZ[selectIndex],\n this.data._value[selectIndex]\n ];\n\n var text = this.data.hovertext || this.data.text;\n if(Array.isArray(text) && text[selectIndex] !== undefined) {\n selection.textLabel = text[selectIndex];\n } else if(text) {\n selection.textLabel = text;\n }\n\n return true;\n }\n};\n\nproto.update = function(data) {\n var scene = this.scene;\n var layout = scene.fullSceneLayout;\n\n this.data = generateIsoMeshes(data);\n\n // Unpack position data\n function toDataCoords(axis, coord, scale, calendar) {\n return coord.map(function(x) {\n return axis.d2l(x, 0, calendar) * scale;\n });\n }\n\n var positions = zip3(\n toDataCoords(layout.xaxis, data._meshX, scene.dataScale[0], data.xcalendar),\n toDataCoords(layout.yaxis, data._meshY, scene.dataScale[1], data.ycalendar),\n toDataCoords(layout.zaxis, data._meshZ, scene.dataScale[2], data.zcalendar));\n\n var cells = zip3(data._meshI, data._meshJ, data._meshK);\n\n var config = {\n positions: positions,\n cells: cells,\n lightPosition: [data.lightposition.x, data.lightposition.y, data.lightposition.z],\n ambient: data.lighting.ambient,\n diffuse: data.lighting.diffuse,\n specular: data.lighting.specular,\n roughness: data.lighting.roughness,\n fresnel: data.lighting.fresnel,\n vertexNormalsEpsilon: data.lighting.vertexnormalsepsilon,\n faceNormalsEpsilon: data.lighting.facenormalsepsilon,\n opacity: data.opacity,\n opacityscale: data.opacityscale,\n contourEnable: data.contour.show,\n contourColor: str2RgbaArray(data.contour.color).slice(0, 3),\n contourWidth: data.contour.width,\n useFacetNormals: data.flatshading\n };\n\n var cOpts = extractOpts(data);\n config.vertexIntensity = data._meshIntensity;\n config.vertexIntensityBounds = [cOpts.min, cOpts.max];\n config.colormap = parseColorScale(data);\n\n // Update mesh\n this.mesh.update(config);\n};\n\nproto.dispose = function() {\n this.scene.glplot.remove(this.mesh);\n this.mesh.dispose();\n};\n\nfunction createVolumeTrace(scene, data) {\n var gl = scene.glplot.gl;\n var mesh = createMesh({gl: gl});\n var result = new VolumeTrace(scene, mesh, data.uid);\n\n mesh._trace = result;\n result.update(data);\n scene.glplot.add(mesh);\n return result;\n}\n\nmodule.exports = createVolumeTrace;\n\n\n/***/ }),\n\n/***/ \"6fc3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n/** Filter out object items with visible !== true\n * insider array container.\n *\n * @param {array of objects} container\n * @return {array of objects} of length <= container\n *\n */\nmodule.exports = function filterVisible(container) {\n var filterFn = isCalcData(container) ? calcDataFilter : baseFilter;\n var out = [];\n\n for(var i = 0; i < container.length; i++) {\n var item = container[i];\n if(filterFn(item)) out.push(item);\n }\n\n return out;\n};\n\nfunction baseFilter(item) {\n return item.visible === true;\n}\n\nfunction calcDataFilter(item) {\n var trace = item[0].trace;\n return trace.visible === true && trace._length !== 0;\n}\n\nfunction isCalcData(cont) {\n return (\n Array.isArray(cont) &&\n Array.isArray(cont[0]) &&\n cont[0][0] &&\n cont[0][0].trace\n );\n}\n\n\n/***/ }),\n\n/***/ \"7000\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var trace = cd[0].trace;\n var isFunnel = (trace.type === 'funnel');\n var isHorizontal = (trace.orientation === 'h');\n var selection = [];\n var i;\n\n if(selectionTester === false) {\n // clear selection\n for(i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for(i = 0; i < cd.length; i++) {\n var di = cd[i];\n var ct = 'ct' in di ? di.ct : getCentroid(di, xa, ya, isHorizontal, isFunnel);\n\n if(selectionTester.contains(ct, false, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n x: xa.c2d(di.x),\n y: ya.c2d(di.y)\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n\n return selection;\n};\n\nfunction getCentroid(d, xa, ya, isHorizontal, isFunnel) {\n var x0 = xa.c2p(isHorizontal ? d.s0 : d.p0, true);\n var x1 = xa.c2p(isHorizontal ? d.s1 : d.p1, true);\n var y0 = ya.c2p(isHorizontal ? d.p0 : d.s0, true);\n var y1 = ya.c2p(isHorizontal ? d.p1 : d.s1, true);\n\n if(isFunnel) {\n return [(x0 + x1) / 2, (y0 + y1) / 2];\n } else {\n if(isHorizontal) {\n return [x1, (y0 + y1) / 2];\n } else {\n return [(x0 + x1) / 2, y1];\n }\n }\n}\n\n\n/***/ }),\n\n/***/ \"7016\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"89e1\");\n\n\n/***/ }),\n\n/***/ \"7045\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar objToString = Object.prototype.toString\n , isFunctionStringTag = RegExp.prototype.test.bind(/^[object [A-Za-z0-9]*Function]$/);\n\nmodule.exports = function (value) {\n\treturn typeof value === \"function\" && isFunctionStringTag(objToString.call(value));\n};\n\n\n/***/ }),\n\n/***/ \"7089\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\n\nmodule.exports = function hasColorbar(container) {\n return Lib.isPlainObject(container.colorbar);\n};\n\n\n/***/ }),\n\n/***/ \"70b4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar Axes = __webpack_require__(\"0642\");\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nvar subTypes = __webpack_require__(\"de81\");\nvar calcColorscale = __webpack_require__(\"09bd\");\nvar arraysToCalcdata = __webpack_require__(\"106b\");\nvar calcSelection = __webpack_require__(\"4136\");\n\nfunction calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = Axes.getFromId(gd, trace.xaxis || 'x');\n var ya = Axes.getFromId(gd, trace.yaxis || 'y');\n var x = xa.makeCalcdata(trace, 'x');\n var y = ya.makeCalcdata(trace, 'y');\n var serieslen = trace._length;\n var cd = new Array(serieslen);\n var ids = trace.ids;\n var stackGroupOpts = getStackOpts(trace, fullLayout, xa, ya);\n var interpolateGaps = false;\n var isV, i, j, k, interpolate, vali;\n\n setFirstScatter(fullLayout, trace);\n\n var xAttr = 'x';\n var yAttr = 'y';\n var posAttr;\n if(stackGroupOpts) {\n Lib.pushUnique(stackGroupOpts.traceIndices, trace._expandedIndex);\n isV = stackGroupOpts.orientation === 'v';\n\n // size, like we use for bar\n if(isV) {\n yAttr = 's';\n posAttr = 'x';\n } else {\n xAttr = 's';\n posAttr = 'y';\n }\n interpolate = stackGroupOpts.stackgaps === 'interpolate';\n } else {\n var ppad = calcMarkerSize(trace, serieslen);\n calcAxisExpansion(gd, trace, xa, ya, x, y, ppad);\n }\n\n for(i = 0; i < serieslen; i++) {\n var cdi = cd[i] = {};\n var xValid = isNumeric(x[i]);\n var yValid = isNumeric(y[i]);\n if(xValid && yValid) {\n cdi[xAttr] = x[i];\n cdi[yAttr] = y[i];\n } else if(stackGroupOpts && (isV ? xValid : yValid)) {\n // if we're stacking we need to hold on to all valid positions\n // even with invalid sizes\n\n cdi[posAttr] = isV ? x[i] : y[i];\n cdi.gap = true;\n if(interpolate) {\n cdi.s = BADNUM;\n interpolateGaps = true;\n } else {\n cdi.s = 0;\n }\n } else {\n cdi[xAttr] = cdi[yAttr] = BADNUM;\n }\n\n if(ids) {\n cdi.id = String(ids[i]);\n }\n }\n\n arraysToCalcdata(cd, trace);\n calcColorscale(gd, trace);\n calcSelection(cd, trace);\n\n if(stackGroupOpts) {\n // remove bad positions and sort\n // note that original indices get added to cd in arraysToCalcdata\n i = 0;\n while(i < cd.length) {\n if(cd[i][posAttr] === BADNUM) {\n cd.splice(i, 1);\n } else i++;\n }\n\n Lib.sort(cd, function(a, b) {\n return (a[posAttr] - b[posAttr]) || (a.i - b.i);\n });\n\n if(interpolateGaps) {\n // first fill the beginning with constant from the first point\n i = 0;\n while(i < cd.length - 1 && cd[i].gap) {\n i++;\n }\n vali = cd[i].s;\n if(!vali) vali = cd[i].s = 0; // in case of no data AT ALL in this trace - use 0\n for(j = 0; j < i; j++) {\n cd[j].s = vali;\n }\n // then fill the end with constant from the last point\n k = cd.length - 1;\n while(k > i && cd[k].gap) {\n k--;\n }\n vali = cd[k].s;\n for(j = cd.length - 1; j > k; j--) {\n cd[j].s = vali;\n }\n // now interpolate internal gaps linearly\n while(i < k) {\n i++;\n if(cd[i].gap) {\n j = i + 1;\n while(cd[j].gap) {\n j++;\n }\n var pos0 = cd[i - 1][posAttr];\n var size0 = cd[i - 1].s;\n var m = (cd[j].s - size0) / (cd[j][posAttr] - pos0);\n while(i < j) {\n cd[i].s = size0 + (cd[i][posAttr] - pos0) * m;\n i++;\n }\n }\n }\n }\n }\n\n return cd;\n}\n\nfunction calcAxisExpansion(gd, trace, xa, ya, x, y, ppad) {\n var serieslen = trace._length;\n var fullLayout = gd._fullLayout;\n var xId = xa._id;\n var yId = ya._id;\n var firstScatter = fullLayout._firstScatter[firstScatterGroup(trace)] === trace.uid;\n var stackOrientation = (getStackOpts(trace, fullLayout, xa, ya) || {}).orientation;\n var fill = trace.fill;\n\n // cancel minimum tick spacings (only applies to bars and boxes)\n xa._minDtick = 0;\n ya._minDtick = 0;\n\n // check whether bounds should be tight, padded, extended to zero...\n // most cases both should be padded on both ends, so start with that.\n var xOptions = {padded: true};\n var yOptions = {padded: true};\n\n if(ppad) {\n xOptions.ppad = yOptions.ppad = ppad;\n }\n\n // TODO: text size\n\n var openEnded = serieslen < 2 || (x[0] !== x[serieslen - 1]) || (y[0] !== y[serieslen - 1]);\n\n if(openEnded && (\n (fill === 'tozerox') ||\n ((fill === 'tonextx') && (firstScatter || stackOrientation === 'h'))\n )) {\n // include zero (tight) and extremes (padded) if fill to zero\n // (unless the shape is closed, then it's just filling the shape regardless)\n\n xOptions.tozero = true;\n } else if(!(trace.error_y || {}).visible && (\n // if no error bars, markers or text, or fill to y=0 remove x padding\n\n (fill === 'tonexty' || fill === 'tozeroy') ||\n (!subTypes.hasMarkers(trace) && !subTypes.hasText(trace))\n )) {\n xOptions.padded = false;\n xOptions.ppad = 0;\n }\n\n if(openEnded && (\n (fill === 'tozeroy') ||\n ((fill === 'tonexty') && (firstScatter || stackOrientation === 'v'))\n )) {\n // now check for y - rather different logic, though still mostly padded both ends\n // include zero (tight) and extremes (padded) if fill to zero\n // (unless the shape is closed, then it's just filling the shape regardless)\n\n yOptions.tozero = true;\n } else if(fill === 'tonextx' || fill === 'tozerox') {\n // tight y: any x fill\n\n yOptions.padded = false;\n }\n\n // N.B. asymmetric splom traces call this with blank {} xa or ya\n if(xId) trace._extremes[xId] = Axes.findExtremes(xa, x, xOptions);\n if(yId) trace._extremes[yId] = Axes.findExtremes(ya, y, yOptions);\n}\n\nfunction calcMarkerSize(trace, serieslen) {\n if(!subTypes.hasMarkers(trace)) return;\n\n // Treat size like x or y arrays --- Run d2c\n // this needs to go before ppad computation\n var marker = trace.marker;\n var sizeref = 1.6 * (trace.marker.sizeref || 1);\n var markerTrans;\n\n if(trace.marker.sizemode === 'area') {\n markerTrans = function(v) {\n return Math.max(Math.sqrt((v || 0) / sizeref), 3);\n };\n } else {\n markerTrans = function(v) {\n return Math.max((v || 0) / sizeref, 3);\n };\n }\n\n if(Lib.isArrayOrTypedArray(marker.size)) {\n // I tried auto-type but category and dates dont make much sense.\n var ax = {type: 'linear'};\n Axes.setConvert(ax);\n\n var s = ax.makeCalcdata(trace.marker, 'size');\n\n var sizeOut = new Array(serieslen);\n for(var i = 0; i < serieslen; i++) {\n sizeOut[i] = markerTrans(s[i]);\n }\n return sizeOut;\n } else {\n return markerTrans(marker.size);\n }\n}\n\n/**\n * mark the first scatter trace for each subplot\n * note that scatter and scattergl each get their own first trace\n * note also that I'm doing this during calc rather than supplyDefaults\n * so I don't need to worry about transforms, but if we ever do\n * per-trace calc this will get confused.\n */\nfunction setFirstScatter(fullLayout, trace) {\n var group = firstScatterGroup(trace);\n var firstScatter = fullLayout._firstScatter;\n if(!firstScatter[group]) firstScatter[group] = trace.uid;\n}\n\nfunction firstScatterGroup(trace) {\n var stackGroup = trace.stackgroup;\n return trace.xaxis + trace.yaxis + trace.type +\n (stackGroup ? '-' + stackGroup : '');\n}\n\nfunction getStackOpts(trace, fullLayout, xa, ya) {\n var stackGroup = trace.stackgroup;\n if(!stackGroup) return;\n var stackOpts = fullLayout._scatterStackOpts[xa._id + ya._id][stackGroup];\n var stackAx = stackOpts.orientation === 'v' ? ya : xa;\n // Allow stacking only on numeric axes\n // calc is a little late to be figuring this out, but during supplyDefaults\n // we don't know the axis type yet\n if(stackAx.type === 'linear' || stackAx.type === 'log') return stackOpts;\n}\n\nmodule.exports = {\n calc: calc,\n calcMarkerSize: calcMarkerSize,\n calcAxisExpansion: calcAxisExpansion,\n setFirstScatter: setFirstScatter,\n getStackOpts: getStackOpts\n};\n\n\n/***/ }),\n\n/***/ \"70f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar drawModule = __webpack_require__(\"2595\");\nvar clickModule = __webpack_require__(\"34f9\");\n\nmodule.exports = {\n moduleType: 'component',\n name: 'annotations',\n\n layoutAttributes: __webpack_require__(\"bb4a\"),\n supplyLayoutDefaults: __webpack_require__(\"bb5b\"),\n includeBasePlot: __webpack_require__(\"37d1\")('annotations'),\n\n calcAutorange: __webpack_require__(\"cd84\"),\n draw: drawModule.draw,\n drawOne: drawModule.drawOne,\n drawRaw: drawModule.drawRaw,\n\n hasClickToShow: clickModule.hasClickToShow,\n onClick: clickModule.onClick,\n\n convertCoords: __webpack_require__(\"351b\")\n};\n\n\n/***/ }),\n\n/***/ \"7118\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar layoutAttributes = __webpack_require__(\"d798\");\nvar handleTickValueDefaults = __webpack_require__(\"d92f\");\nvar handleTickMarkDefaults = __webpack_require__(\"27e3\");\nvar handleTickLabelDefaults = __webpack_require__(\"5008\");\nvar handleCategoryOrderDefaults = __webpack_require__(\"d18b\");\nvar handleLineGridDefaults = __webpack_require__(\"743b\");\nvar setConvert = __webpack_require__(\"1a40\");\n\n/**\n * options: object containing:\n *\n * letter: 'x' or 'y'\n * title: name of the axis (ie 'Colorbar') to go in default title\n * font: the default font to inherit\n * outerTicks: boolean, should ticks default to outside?\n * showGrid: boolean, should gridlines be shown by default?\n * noHover: boolean, this axis doesn't support hover effects?\n * noTickson: boolean, this axis doesn't support 'tickson'\n * data: the plot data, used to manage categories\n * bgColor: the plot background color, to calculate default gridline colors\n * calendar:\n * splomStash:\n * visibleDflt: boolean\n * reverseDflt: boolean\n * automargin: boolean\n */\nmodule.exports = function handleAxisDefaults(containerIn, containerOut, coerce, options, layoutOut) {\n var letter = options.letter;\n var font = options.font || {};\n var splomStash = options.splomStash || {};\n\n var visible = coerce('visible', !options.visibleDflt);\n\n var axType = containerOut.type;\n\n if(axType === 'date') {\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleDefaults');\n handleCalendarDefaults(containerIn, containerOut, 'calendar', options.calendar);\n }\n\n setConvert(containerOut, layoutOut);\n\n var autorangeDflt = !containerOut.isValidRange(containerIn.range);\n if(autorangeDflt && options.reverseDflt) autorangeDflt = 'reversed';\n var autoRange = coerce('autorange', autorangeDflt);\n if(autoRange && (axType === 'linear' || axType === '-')) coerce('rangemode');\n\n coerce('range');\n containerOut.cleanRange();\n\n handleCategoryOrderDefaults(containerIn, containerOut, coerce, options);\n\n if(axType !== 'category' && !options.noHover) coerce('hoverformat');\n\n var dfltColor = coerce('color');\n // if axis.color was provided, use it for fonts too; otherwise,\n // inherit from global font color in case that was provided.\n // Compare to dflt rather than to containerIn, so we can provide color via\n // template too.\n var dfltFontColor = (dfltColor !== layoutAttributes.color.dflt) ? dfltColor : font.color;\n // try to get default title from splom trace, fallback to graph-wide value\n var dfltTitle = splomStash.label || layoutOut._dfltTitle[letter];\n\n handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options, {pass: 1});\n if(!visible) return containerOut;\n\n coerce('title.text', dfltTitle);\n Lib.coerceFont(coerce, 'title.font', {\n family: font.family,\n size: Math.round(font.size * 1.2),\n color: dfltFontColor\n });\n\n handleTickValueDefaults(containerIn, containerOut, coerce, axType);\n handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options, {pass: 2});\n handleTickMarkDefaults(containerIn, containerOut, coerce, options);\n handleLineGridDefaults(containerIn, containerOut, coerce, {\n dfltColor: dfltColor,\n bgColor: options.bgColor,\n showGrid: options.showGrid,\n attributes: layoutAttributes\n });\n\n if(containerOut.showline || containerOut.ticks) coerce('mirror');\n\n if(options.automargin) coerce('automargin');\n\n var isMultiCategory = containerOut.type === 'multicategory';\n\n if(!options.noTickson &&\n (containerOut.type === 'category' || isMultiCategory) &&\n (containerOut.ticks || containerOut.showgrid)\n ) {\n var ticksonDflt;\n if(isMultiCategory) ticksonDflt = 'boundaries';\n coerce('tickson', ticksonDflt);\n }\n\n if(isMultiCategory) {\n var showDividers = coerce('showdividers');\n if(showDividers) {\n coerce('dividercolor');\n coerce('dividerwidth');\n }\n }\n\n return containerOut;\n};\n\n\n/***/ }),\n\n/***/ \"714f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\n// arrayOk attributes, merge them into calcdata array\nmodule.exports = function arraysToCalcdata(cd, trace) {\n for(var i = 0; i < cd.length; i++) cd[i].i = i;\n\n Lib.mergeArray(trace.text, cd, 'tx');\n Lib.mergeArray(trace.hovertext, cd, 'htx');\n\n var marker = trace.marker;\n if(marker) {\n Lib.mergeArray(marker.opacity, cd, 'mo');\n Lib.mergeArray(marker.color, cd, 'mc');\n\n var markerLine = marker.line;\n if(markerLine) {\n Lib.mergeArray(markerLine.color, cd, 'mlc');\n Lib.mergeArrayCastPositive(markerLine.width, cd, 'mlw');\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"716c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar helpers = __webpack_require__(\"feb7\");\n\n/**\n * Callback for coordEach\n *\n * @callback coordEachCallback\n * @param {Array} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()\n *\n * @name coordEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction coordEach(geojson, callback, excludeWrapCoord) {\n // Handles null Geometry -- Skips this GeoJSON\n if (geojson === null) return;\n var j, k, l, geometry, stopG, coords,\n geometryMaybeCollection,\n wrapShrink = 0,\n coordIndex = 0,\n isGeometryCollection,\n type = geojson.type,\n isFeatureCollection = type === 'FeatureCollection',\n isFeature = type === 'Feature',\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (var featureIndex = 0; featureIndex < stop; featureIndex++) {\n geometryMaybeCollection = (isFeatureCollection ? geojson.features[featureIndex].geometry :\n (isFeature ? geojson.geometry : geojson));\n isGeometryCollection = (geometryMaybeCollection) ? geometryMaybeCollection.type === 'GeometryCollection' : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n\n for (var geomIndex = 0; geomIndex < stopG; geomIndex++) {\n var multiFeatureIndex = 0;\n var geometryIndex = 0;\n geometry = isGeometryCollection ?\n geometryMaybeCollection.geometries[geomIndex] : geometryMaybeCollection;\n\n // Handles null Geometry -- Skips this geometry\n if (geometry === null) continue;\n coords = geometry.coordinates;\n var geomType = geometry.type;\n\n wrapShrink = (excludeWrapCoord && (geomType === 'Polygon' || geomType === 'MultiPolygon')) ? 1 : 0;\n\n switch (geomType) {\n case null:\n break;\n case 'Point':\n if (callback(coords, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n multiFeatureIndex++;\n break;\n case 'LineString':\n case 'MultiPoint':\n for (j = 0; j < coords.length; j++) {\n if (callback(coords[j], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n if (geomType === 'MultiPoint') multiFeatureIndex++;\n }\n if (geomType === 'LineString') multiFeatureIndex++;\n break;\n case 'Polygon':\n case 'MultiLineString':\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length - wrapShrink; k++) {\n if (callback(coords[j][k], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n }\n if (geomType === 'MultiLineString') multiFeatureIndex++;\n if (geomType === 'Polygon') geometryIndex++;\n }\n if (geomType === 'Polygon') multiFeatureIndex++;\n break;\n case 'MultiPolygon':\n for (j = 0; j < coords.length; j++) {\n geometryIndex = 0;\n for (k = 0; k < coords[j].length; k++) {\n for (l = 0; l < coords[j][k].length - wrapShrink; l++) {\n if (callback(coords[j][k][l], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n }\n geometryIndex++;\n }\n multiFeatureIndex++;\n }\n break;\n case 'GeometryCollection':\n for (j = 0; j < geometry.geometries.length; j++)\n if (coordEach(geometry.geometries[j], callback, excludeWrapCoord) === false) return false;\n break;\n default:\n throw new Error('Unknown Geometry Type');\n }\n }\n }\n}\n\n/**\n * Callback for coordReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback coordReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Array} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * Starts at index 0, if an initialValue is provided, and at index 1 otherwise.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Reduce coordinates in any GeoJSON object, similar to Array.reduce()\n *\n * @name coordReduce\n * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentCoord;\n * });\n */\nfunction coordReduce(geojson, callback, initialValue, excludeWrapCoord) {\n var previousValue = initialValue;\n coordEach(geojson, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n if (coordIndex === 0 && initialValue === undefined) previousValue = currentCoord;\n else previousValue = callback(previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex);\n }, excludeWrapCoord);\n return previousValue;\n}\n\n/**\n * Callback for propEach\n *\n * @callback propEachCallback\n * @param {Object} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over properties in any GeoJSON object, similar to Array.forEach()\n *\n * @name propEach\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentProperties, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propEach(features, function (currentProperties, featureIndex) {\n * //=currentProperties\n * //=featureIndex\n * });\n */\nfunction propEach(geojson, callback) {\n var i;\n switch (geojson.type) {\n case 'FeatureCollection':\n for (i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i].properties, i) === false) break;\n }\n break;\n case 'Feature':\n callback(geojson.properties, 0);\n break;\n }\n}\n\n\n/**\n * Callback for propReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback propReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {*} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce properties in any GeoJSON object into a single value,\n * similar to how Array.reduce works. However, in this case we lazily run\n * the reduction, so an array of all properties is unnecessary.\n *\n * @name propReduce\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentProperties, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propReduce(features, function (previousValue, currentProperties, featureIndex) {\n * //=previousValue\n * //=currentProperties\n * //=featureIndex\n * return currentProperties\n * });\n */\nfunction propReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n propEach(geojson, function (currentProperties, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentProperties;\n else previousValue = callback(previousValue, currentProperties, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Callback for featureEach\n *\n * @callback featureEachCallback\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name featureEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.featureEach(features, function (currentFeature, featureIndex) {\n * //=currentFeature\n * //=featureIndex\n * });\n */\nfunction featureEach(geojson, callback) {\n if (geojson.type === 'Feature') {\n callback(geojson, 0);\n } else if (geojson.type === 'FeatureCollection') {\n for (var i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i], i) === false) break;\n }\n }\n}\n\n/**\n * Callback for featureReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback featureReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name featureReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.featureReduce(features, function (previousValue, currentFeature, featureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * return currentFeature\n * });\n */\nfunction featureReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n featureEach(geojson, function (currentFeature, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentFeature;\n else previousValue = callback(previousValue, currentFeature, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Get all coordinates from any GeoJSON object.\n *\n * @name coordAll\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @returns {Array>} coordinate position array\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * var coords = turf.coordAll(features);\n * //= [[26, 37], [36, 53]]\n */\nfunction coordAll(geojson) {\n var coords = [];\n coordEach(geojson, function (coord) {\n coords.push(coord);\n });\n return coords;\n}\n\n/**\n * Callback for geomEach\n *\n * @callback geomEachCallback\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Iterate over each geometry in any GeoJSON object, similar to Array.forEach()\n *\n * @name geomEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomEach(features, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * });\n */\nfunction geomEach(geojson, callback) {\n var i, j, g, geometry, stopG,\n geometryMaybeCollection,\n isGeometryCollection,\n featureProperties,\n featureBBox,\n featureId,\n featureIndex = 0,\n isFeatureCollection = geojson.type === 'FeatureCollection',\n isFeature = geojson.type === 'Feature',\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (i = 0; i < stop; i++) {\n\n geometryMaybeCollection = (isFeatureCollection ? geojson.features[i].geometry :\n (isFeature ? geojson.geometry : geojson));\n featureProperties = (isFeatureCollection ? geojson.features[i].properties :\n (isFeature ? geojson.properties : {}));\n featureBBox = (isFeatureCollection ? geojson.features[i].bbox :\n (isFeature ? geojson.bbox : undefined));\n featureId = (isFeatureCollection ? geojson.features[i].id :\n (isFeature ? geojson.id : undefined));\n isGeometryCollection = (geometryMaybeCollection) ? geometryMaybeCollection.type === 'GeometryCollection' : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n\n for (g = 0; g < stopG; g++) {\n geometry = isGeometryCollection ?\n geometryMaybeCollection.geometries[g] : geometryMaybeCollection;\n\n // Handle null Geometry\n if (geometry === null) {\n if (callback(null, featureIndex, featureProperties, featureBBox, featureId) === false) return false;\n continue;\n }\n switch (geometry.type) {\n case 'Point':\n case 'LineString':\n case 'MultiPoint':\n case 'Polygon':\n case 'MultiLineString':\n case 'MultiPolygon': {\n if (callback(geometry, featureIndex, featureProperties, featureBBox, featureId) === false) return false;\n break;\n }\n case 'GeometryCollection': {\n for (j = 0; j < geometry.geometries.length; j++) {\n if (callback(geometry.geometries[j], featureIndex, featureProperties, featureBBox, featureId) === false) return false;\n }\n break;\n }\n default:\n throw new Error('Unknown Geometry Type');\n }\n }\n // Only increase `featureIndex` per each feature\n featureIndex++;\n }\n}\n\n/**\n * Callback for geomReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback geomReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Reduce geometry in any GeoJSON object, similar to Array.reduce().\n *\n * @name geomReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomReduce(features, function (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=previousValue\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * return currentGeometry\n * });\n */\nfunction geomReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n geomEach(geojson, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentGeometry;\n else previousValue = callback(previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId);\n });\n return previousValue;\n}\n\n/**\n * Callback for flattenEach\n *\n * @callback flattenEachCallback\n * @param {Feature} currentFeature The current flattened feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Iterate over flattened features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name flattenEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex, multiFeatureIndex)\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenEach(features, function (currentFeature, featureIndex, multiFeatureIndex) {\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * });\n */\nfunction flattenEach(geojson, callback) {\n geomEach(geojson, function (geometry, featureIndex, properties, bbox, id) {\n // Callback for single geometry\n var type = (geometry === null) ? null : geometry.type;\n switch (type) {\n case null:\n case 'Point':\n case 'LineString':\n case 'Polygon':\n if (callback(helpers.feature(geometry, properties, {bbox: bbox, id: id}), featureIndex, 0) === false) return false;\n return;\n }\n\n var geomType;\n\n // Callback for multi-geometry\n switch (type) {\n case 'MultiPoint':\n geomType = 'Point';\n break;\n case 'MultiLineString':\n geomType = 'LineString';\n break;\n case 'MultiPolygon':\n geomType = 'Polygon';\n break;\n }\n\n for (var multiFeatureIndex = 0; multiFeatureIndex < geometry.coordinates.length; multiFeatureIndex++) {\n var coordinate = geometry.coordinates[multiFeatureIndex];\n var geom = {\n type: geomType,\n coordinates: coordinate\n };\n if (callback(helpers.feature(geom, properties), featureIndex, multiFeatureIndex) === false) return false;\n }\n });\n}\n\n/**\n * Callback for flattenReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback flattenReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Reduce flattened features in any GeoJSON object, similar to Array.reduce().\n *\n * @name flattenReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex, multiFeatureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenReduce(features, function (previousValue, currentFeature, featureIndex, multiFeatureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * return currentFeature\n * });\n */\nfunction flattenReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n flattenEach(geojson, function (currentFeature, featureIndex, multiFeatureIndex) {\n if (featureIndex === 0 && multiFeatureIndex === 0 && initialValue === undefined) previousValue = currentFeature;\n else previousValue = callback(previousValue, currentFeature, featureIndex, multiFeatureIndex);\n });\n return previousValue;\n}\n\n/**\n * Callback for segmentEach\n *\n * @callback segmentEachCallback\n * @param {Feature} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n * @returns {void}\n */\n\n/**\n * Iterate over 2-vertex line segment in any GeoJSON object, similar to Array.forEach()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex)\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentEach(polygon, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //=currentSegment\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * //=segmentIndex\n * });\n *\n * // Calculate the total number of segments\n * var total = 0;\n * turf.segmentEach(polygon, function () {\n * total++;\n * });\n */\nfunction segmentEach(geojson, callback) {\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n var segmentIndex = 0;\n\n // Exclude null Geometries\n if (!feature.geometry) return;\n // (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n var type = feature.geometry.type;\n if (type === 'Point' || type === 'MultiPoint') return;\n\n // Generate 2-vertex line segments\n var previousCoords;\n var previousFeatureIndex = 0;\n var previousMultiIndex = 0;\n var prevGeomIndex = 0;\n if (coordEach(feature, function (currentCoord, coordIndex, featureIndexCoord, multiPartIndexCoord, geometryIndex) {\n // Simulating a meta.coordReduce() since `reduce` operations cannot be stopped by returning `false`\n if (previousCoords === undefined || featureIndex > previousFeatureIndex || multiPartIndexCoord > previousMultiIndex || geometryIndex > prevGeomIndex) {\n previousCoords = currentCoord;\n previousFeatureIndex = featureIndex;\n previousMultiIndex = multiPartIndexCoord;\n prevGeomIndex = geometryIndex;\n segmentIndex = 0;\n return;\n }\n var currentSegment = helpers.lineString([previousCoords, currentCoord], feature.properties);\n if (callback(currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) === false) return false;\n segmentIndex++;\n previousCoords = currentCoord;\n }) === false) return false;\n });\n}\n\n/**\n * Callback for segmentReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback segmentReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n */\n\n/**\n * Reduce 2-vertex line segment in any GeoJSON object, similar to Array.reduce()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (previousValue, currentSegment, currentIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentReduce(polygon, function (previousSegment, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //= previousSegment\n * //= currentSegment\n * //= featureIndex\n * //= multiFeatureIndex\n * //= geometryIndex\n * //= segmentInex\n * return currentSegment\n * });\n *\n * // Calculate the total number of segments\n * var initialValue = 0\n * var total = turf.segmentReduce(polygon, function (previousValue) {\n * previousValue++;\n * return previousValue;\n * }, initialValue);\n */\nfunction segmentReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n var started = false;\n segmentEach(geojson, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n if (started === false && initialValue === undefined) previousValue = currentSegment;\n else previousValue = callback(previousValue, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex);\n started = true;\n });\n return previousValue;\n}\n\n/**\n * Callback for lineEach\n *\n * @callback lineEachCallback\n * @param {Feature} currentLine The current LineString|LinearRing being processed\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Iterate over line or ring coordinates in LineString, Polygon, MultiLineString, MultiPolygon Features or Geometries,\n * similar to Array.forEach.\n *\n * @name lineEach\n * @param {Geometry|Feature} geojson object\n * @param {Function} callback a method that takes (currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @example\n * var multiLine = turf.multiLineString([\n * [[26, 37], [35, 45]],\n * [[36, 53], [38, 50], [41, 55]]\n * ]);\n *\n * turf.lineEach(multiLine, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction lineEach(geojson, callback) {\n // validation\n if (!geojson) throw new Error('geojson is required');\n\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n if (feature.geometry === null) return;\n var type = feature.geometry.type;\n var coords = feature.geometry.coordinates;\n switch (type) {\n case 'LineString':\n if (callback(feature, featureIndex, multiFeatureIndex, 0, 0) === false) return false;\n break;\n case 'Polygon':\n for (var geometryIndex = 0; geometryIndex < coords.length; geometryIndex++) {\n if (callback(helpers.lineString(coords[geometryIndex], feature.properties), featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n }\n break;\n }\n });\n}\n\n/**\n * Callback for lineReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback lineReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentLine The current LineString|LinearRing being processed.\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name lineReduce\n * @param {Geometry|Feature} geojson object\n * @param {Function} callback a method that takes (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var multiPoly = turf.multiPolygon([\n * turf.polygon([[[12,48],[2,41],[24,38],[12,48]], [[9,44],[13,41],[13,45],[9,44]]]),\n * turf.polygon([[[5, 5], [0, 0], [2, 2], [4, 4], [5, 5]]])\n * ]);\n *\n * turf.lineReduce(multiPoly, function (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentLine\n * });\n */\nfunction lineReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n lineEach(geojson, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentLine;\n else previousValue = callback(previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex);\n });\n return previousValue;\n}\n\n/**\n * Finds a particular 2-vertex LineString Segment from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n * Point & MultiPoint will always return null.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.segmentIndex=0] Segment Index\n * @param {Object} [options.properties={}] Translate Properties to output LineString\n * @param {BBox} [options.bbox={}] Translate BBox to output LineString\n * @param {number|string} [options.id={}] Translate Id to output LineString\n * @returns {Feature} 2-vertex GeoJSON Feature LineString\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findSegment(multiLine);\n * // => Feature>\n *\n * // First Segment of 2nd Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: 1});\n * // => Feature>\n *\n * // Last Segment of Last Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: -1, segmentIndex: -1});\n * // => Feature>\n */\nfunction findSegment(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!helpers.isObject(options)) throw new Error('options is invalid');\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var segmentIndex = options.segmentIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case 'FeatureCollection':\n if (featureIndex < 0) featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case 'Feature':\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case 'Point':\n case 'MultiPoint':\n return null;\n case 'LineString':\n case 'Polygon':\n case 'MultiLineString':\n case 'MultiPolygon':\n geometry = geojson;\n break;\n default:\n throw new Error('geojson is invalid');\n }\n\n // Find SegmentIndex\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case 'Point':\n case 'MultiPoint':\n return null;\n case 'LineString':\n if (segmentIndex < 0) segmentIndex = coords.length + segmentIndex - 1;\n return helpers.lineString([coords[segmentIndex], coords[segmentIndex + 1]], properties, options);\n case 'Polygon':\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (segmentIndex < 0) segmentIndex = coords[geometryIndex].length + segmentIndex - 1;\n return helpers.lineString([coords[geometryIndex][segmentIndex], coords[geometryIndex][segmentIndex + 1]], properties, options);\n case 'MultiLineString':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (segmentIndex < 0) segmentIndex = coords[multiFeatureIndex].length + segmentIndex - 1;\n return helpers.lineString([coords[multiFeatureIndex][segmentIndex], coords[multiFeatureIndex][segmentIndex + 1]], properties, options);\n case 'MultiPolygon':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0) geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (segmentIndex < 0) segmentIndex = coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1;\n return helpers.lineString([coords[multiFeatureIndex][geometryIndex][segmentIndex], coords[multiFeatureIndex][geometryIndex][segmentIndex + 1]], properties, options);\n }\n throw new Error('geojson is invalid');\n}\n\n/**\n * Finds a particular Point from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.coordIndex=0] Coord Index\n * @param {Object} [options.properties={}] Translate Properties to output Point\n * @param {BBox} [options.bbox={}] Translate BBox to output Point\n * @param {number|string} [options.id={}] Translate Id to output Point\n * @returns {Feature} 2-vertex GeoJSON Feature Point\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findPoint(multiLine);\n * // => Feature>\n *\n * // First Segment of the 2nd Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: 1});\n * // => Feature>\n *\n * // Last Segment of last Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: -1, coordIndex: -1});\n * // => Feature>\n */\nfunction findPoint(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!helpers.isObject(options)) throw new Error('options is invalid');\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var coordIndex = options.coordIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case 'FeatureCollection':\n if (featureIndex < 0) featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case 'Feature':\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case 'Point':\n case 'MultiPoint':\n return null;\n case 'LineString':\n case 'Polygon':\n case 'MultiLineString':\n case 'MultiPolygon':\n geometry = geojson;\n break;\n default:\n throw new Error('geojson is invalid');\n }\n\n // Find Coord Index\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case 'Point':\n return helpers.point(coords, properties, options);\n case 'MultiPoint':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n return helpers.point(coords[multiFeatureIndex], properties, options);\n case 'LineString':\n if (coordIndex < 0) coordIndex = coords.length + coordIndex;\n return helpers.point(coords[coordIndex], properties, options);\n case 'Polygon':\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (coordIndex < 0) coordIndex = coords[geometryIndex].length + coordIndex;\n return helpers.point(coords[geometryIndex][coordIndex], properties, options);\n case 'MultiLineString':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (coordIndex < 0) coordIndex = coords[multiFeatureIndex].length + coordIndex;\n return helpers.point(coords[multiFeatureIndex][coordIndex], properties, options);\n case 'MultiPolygon':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0) geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (coordIndex < 0) coordIndex = coords[multiFeatureIndex][geometryIndex].length - coordIndex;\n return helpers.point(coords[multiFeatureIndex][geometryIndex][coordIndex], properties, options);\n }\n throw new Error('geojson is invalid');\n}\n\nexports.coordEach = coordEach;\nexports.coordReduce = coordReduce;\nexports.propEach = propEach;\nexports.propReduce = propReduce;\nexports.featureEach = featureEach;\nexports.featureReduce = featureReduce;\nexports.coordAll = coordAll;\nexports.geomEach = geomEach;\nexports.geomReduce = geomReduce;\nexports.flattenEach = flattenEach;\nexports.flattenReduce = flattenReduce;\nexports.segmentEach = segmentEach;\nexports.segmentReduce = segmentReduce;\nexports.lineEach = lineEach;\nexports.lineReduce = lineReduce;\nexports.findSegment = findSegment;\nexports.findPoint = findPoint;\n\n\n/***/ }),\n\n/***/ \"71b1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var i, j;\n\n if(selectionTester === false) {\n for(i = 0; i < cd.length; i++) {\n for(j = 0; j < (cd[i].pts || []).length; j++) {\n // clear selection\n cd[i].pts[j].selected = 0;\n }\n }\n } else {\n for(i = 0; i < cd.length; i++) {\n for(j = 0; j < (cd[i].pts || []).length; j++) {\n var pt = cd[i].pts[j];\n var x = xa.c2p(pt.x);\n var y = ya.c2p(pt.y);\n\n if(selectionTester.contains([x, y], null, pt.i, searchInfo)) {\n selection.push({\n pointNumber: pt.i,\n x: xa.c2d(pt.x),\n y: ya.c2d(pt.y)\n });\n pt.selected = 1;\n } else {\n pt.selected = 0;\n }\n }\n }\n }\n\n return selection;\n};\n\n\n/***/ }),\n\n/***/ \"7210\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar handleArrayContainerDefaults = __webpack_require__(\"e5ac\");\n\nvar attributes = __webpack_require__(\"9c5f\");\nvar constants = __webpack_require__(\"e639\");\n\nvar name = constants.name;\nvar stepAttrs = attributes.steps;\n\n\nmodule.exports = function slidersDefaults(layoutIn, layoutOut) {\n handleArrayContainerDefaults(layoutIn, layoutOut, {\n name: name,\n handleItemDefaults: sliderDefaults\n });\n};\n\nfunction sliderDefaults(sliderIn, sliderOut, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(sliderIn, sliderOut, attributes, attr, dflt);\n }\n\n var steps = handleArrayContainerDefaults(sliderIn, sliderOut, {\n name: 'steps',\n handleItemDefaults: stepDefaults\n });\n\n var stepCount = 0;\n for(var i = 0; i < steps.length; i++) {\n if(steps[i].visible) stepCount++;\n }\n\n var visible;\n // If it has fewer than two options, it's not really a slider\n if(stepCount < 2) visible = sliderOut.visible = false;\n else visible = coerce('visible');\n if(!visible) return;\n\n sliderOut._stepCount = stepCount;\n var visSteps = sliderOut._visibleSteps = Lib.filterVisible(steps);\n\n var active = coerce('active');\n if(!(steps[active] || {}).visible) sliderOut.active = visSteps[0]._index;\n\n coerce('x');\n coerce('y');\n Lib.noneOrAll(sliderIn, sliderOut, ['x', 'y']);\n\n coerce('xanchor');\n coerce('yanchor');\n\n coerce('len');\n coerce('lenmode');\n\n coerce('pad.t');\n coerce('pad.r');\n coerce('pad.b');\n coerce('pad.l');\n\n Lib.coerceFont(coerce, 'font', layoutOut.font);\n\n var currentValueIsVisible = coerce('currentvalue.visible');\n\n if(currentValueIsVisible) {\n coerce('currentvalue.xanchor');\n coerce('currentvalue.prefix');\n coerce('currentvalue.suffix');\n coerce('currentvalue.offset');\n\n Lib.coerceFont(coerce, 'currentvalue.font', sliderOut.font);\n }\n\n coerce('transition.duration');\n coerce('transition.easing');\n\n coerce('bgcolor');\n coerce('activebgcolor');\n coerce('bordercolor');\n coerce('borderwidth');\n coerce('ticklen');\n coerce('tickwidth');\n coerce('tickcolor');\n coerce('minorticklen');\n}\n\nfunction stepDefaults(valueIn, valueOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(valueIn, valueOut, stepAttrs, attr, dflt);\n }\n\n var visible;\n if(valueIn.method !== 'skip' && !Array.isArray(valueIn.args)) {\n visible = valueOut.visible = false;\n } else visible = coerce('visible');\n\n if(visible) {\n coerce('method');\n coerce('args');\n var label = coerce('label', 'step-' + valueOut._index);\n coerce('value', label);\n coerce('execute');\n }\n}\n\n\n/***/ }),\n\n/***/ \"7223\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar db = __webpack_require__(\"abc0\")\nvar ctz = __webpack_require__(\"a48a\").countTrailingZeros\n\nmodule.exports = ctzNumber\n\n//Counts the number of trailing zeros\nfunction ctzNumber(x) {\n var l = ctz(db.lo(x))\n if(l < 32) {\n return l\n }\n var h = ctz(db.hi(x))\n if(h > 20) {\n return 52\n }\n return h + 32\n}\n\n\n/***/ }),\n\n/***/ \"722f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar axisIds = __webpack_require__(\"3c1c\");\n\nvar traceIs = __webpack_require__(\"371e\").traceIs;\nvar handleGroupingDefaults = __webpack_require__(\"1c1c\").handleGroupingDefaults;\n\nvar nestedProperty = Lib.nestedProperty;\nvar getAxisGroup = axisIds.getAxisGroup;\n\nvar BINATTRS = [\n {aStr: {x: 'xbins.start', y: 'ybins.start'}, name: 'start'},\n {aStr: {x: 'xbins.end', y: 'ybins.end'}, name: 'end'},\n {aStr: {x: 'xbins.size', y: 'ybins.size'}, name: 'size'},\n {aStr: {x: 'nbinsx', y: 'nbinsy'}, name: 'nbins'}\n];\n\nvar BINDIRECTIONS = ['x', 'y'];\n\n// handle bin attrs and relink auto-determined values so fullData is complete\nmodule.exports = function crossTraceDefaults(fullData, fullLayout) {\n var allBinOpts = fullLayout._histogramBinOpts = {};\n var histTraces = [];\n var mustMatchTracesLookup = {};\n var otherTracesList = [];\n\n var traceOut, traces, groupName, binDir;\n var i, j, k;\n\n function coerce(attr, dflt) {\n return Lib.coerce(traceOut._input, traceOut, traceOut._module.attributes, attr, dflt);\n }\n\n function orientation2binDir(traceOut) {\n return traceOut.orientation === 'v' ? 'x' : 'y';\n }\n\n function getAxisType(traceOut, binDir) {\n var ax = axisIds.getFromTrace({_fullLayout: fullLayout}, traceOut, binDir);\n return ax.type;\n }\n\n function fillBinOpts(traceOut, groupName, binDir) {\n // N.B. group traces that don't have a bingroup with themselves\n var fallbackGroupName = traceOut.uid + '__' + binDir;\n if(!groupName) groupName = fallbackGroupName;\n\n var axType = getAxisType(traceOut, binDir);\n var calendar = traceOut[binDir + 'calendar'] || '';\n var binOpts = allBinOpts[groupName];\n var needsNewItem = true;\n\n if(binOpts) {\n if(axType === binOpts.axType && calendar === binOpts.calendar) {\n needsNewItem = false;\n binOpts.traces.push(traceOut);\n binOpts.dirs.push(binDir);\n } else {\n groupName = fallbackGroupName;\n\n if(axType !== binOpts.axType) {\n Lib.warn([\n 'Attempted to group the bins of trace', traceOut.index,\n 'set on a', 'type:' + axType, 'axis',\n 'with bins on', 'type:' + binOpts.axType, 'axis.'\n ].join(' '));\n }\n if(calendar !== binOpts.calendar) {\n // prohibit bingroup for traces using different calendar,\n // there's probably a way to make this work, but skip for now\n Lib.warn([\n 'Attempted to group the bins of trace', traceOut.index,\n 'set with a', calendar, 'calendar',\n 'with bins',\n (binOpts.calendar ? 'on a ' + binOpts.calendar + ' calendar' : 'w/o a set calendar')\n ].join(' '));\n }\n }\n }\n\n if(needsNewItem) {\n allBinOpts[groupName] = {\n traces: [traceOut],\n dirs: [binDir],\n axType: axType,\n calendar: traceOut[binDir + 'calendar'] || ''\n };\n }\n traceOut['_' + binDir + 'bingroup'] = groupName;\n }\n\n for(i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n\n if(traceIs(traceOut, 'histogram')) {\n histTraces.push(traceOut);\n\n // TODO: this shouldn't be relinked as it's only used within calc\n // https://github.com/plotly/plotly.js/issues/749\n delete traceOut._xautoBinFinished;\n delete traceOut._yautoBinFinished;\n\n // N.B. need to coerce *alignmentgroup* before *bingroup*, as traces\n // in same alignmentgroup \"have to match\"\n if(!traceIs(traceOut, '2dMap')) {\n handleGroupingDefaults(traceOut._input, traceOut, fullLayout, coerce);\n }\n }\n }\n\n var alignmentOpts = fullLayout._alignmentOpts || {};\n\n // Look for traces that \"have to match\", that is:\n // - 1d histogram traces on the same subplot with same orientation under barmode:stack,\n // - 1d histogram traces on the same subplot with same orientation under barmode:group\n // - 1d histogram traces on the same position axis with the same orientation\n // and the same *alignmentgroup* (coerced under barmode:group)\n // - Once `stackgroup` gets implemented (see https://github.com/plotly/plotly.js/issues/3614),\n // traces within the same stackgroup will also \"have to match\"\n for(i = 0; i < histTraces.length; i++) {\n traceOut = histTraces[i];\n groupName = '';\n\n if(!traceIs(traceOut, '2dMap')) {\n binDir = orientation2binDir(traceOut);\n\n if(fullLayout.barmode === 'group' && traceOut.alignmentgroup) {\n var pa = traceOut[binDir + 'axis'];\n var aGroupId = getAxisGroup(fullLayout, pa) + traceOut.orientation;\n if((alignmentOpts[aGroupId] || {})[traceOut.alignmentgroup]) {\n groupName = aGroupId;\n }\n }\n\n if(!groupName && fullLayout.barmode !== 'overlay') {\n groupName = (\n getAxisGroup(fullLayout, traceOut.xaxis) +\n getAxisGroup(fullLayout, traceOut.yaxis) +\n orientation2binDir(traceOut)\n );\n }\n }\n\n if(groupName) {\n if(!mustMatchTracesLookup[groupName]) {\n mustMatchTracesLookup[groupName] = [];\n }\n mustMatchTracesLookup[groupName].push(traceOut);\n } else {\n otherTracesList.push(traceOut);\n }\n }\n\n // Setup binOpts for traces that have to match,\n // if the traces have a valid bingroup, use that\n // if not use axis+binDir groupName\n for(groupName in mustMatchTracesLookup) {\n traces = mustMatchTracesLookup[groupName];\n\n // no need to 'force' anything when a single\n // trace is detected as \"must match\"\n if(traces.length === 1) {\n otherTracesList.push(traces[0]);\n continue;\n }\n\n var binGroupFound = false;\n for(i = 0; i < traces.length; i++) {\n traceOut = traces[i];\n binGroupFound = coerce('bingroup');\n break;\n }\n\n groupName = binGroupFound || groupName;\n\n for(i = 0; i < traces.length; i++) {\n traceOut = traces[i];\n var bingroupIn = traceOut._input.bingroup;\n if(bingroupIn && bingroupIn !== groupName) {\n Lib.warn([\n 'Trace', traceOut.index, 'must match',\n 'within bingroup', groupName + '.',\n 'Ignoring its bingroup:', bingroupIn, 'setting.'\n ].join(' '));\n }\n traceOut.bingroup = groupName;\n\n // N.B. no need to worry about 2dMap case\n // (where both bin direction are set in each trace)\n // as 2dMap trace never \"have to match\"\n fillBinOpts(traceOut, groupName, orientation2binDir(traceOut));\n }\n }\n\n // setup binOpts for traces that can but don't have to match,\n // notice that these traces can be matched with traces that have to match\n for(i = 0; i < otherTracesList.length; i++) {\n traceOut = otherTracesList[i];\n\n var binGroup = coerce('bingroup');\n\n if(traceIs(traceOut, '2dMap')) {\n for(k = 0; k < 2; k++) {\n binDir = BINDIRECTIONS[k];\n var binGroupInDir = coerce(binDir + 'bingroup',\n binGroup ? binGroup + '__' + binDir : null\n );\n fillBinOpts(traceOut, binGroupInDir, binDir);\n }\n } else {\n fillBinOpts(traceOut, binGroup, orientation2binDir(traceOut));\n }\n }\n\n // coerce bin attrs!\n for(groupName in allBinOpts) {\n var binOpts = allBinOpts[groupName];\n traces = binOpts.traces;\n\n for(j = 0; j < BINATTRS.length; j++) {\n var attrSpec = BINATTRS[j];\n var attr = attrSpec.name;\n var aStr;\n var autoVals;\n\n // nbins(x|y) is moot if we have a size. This depends on\n // nbins coming after size in binAttrs.\n if(attr === 'nbins' && binOpts.sizeFound) continue;\n\n for(i = 0; i < traces.length; i++) {\n traceOut = traces[i];\n binDir = binOpts.dirs[i];\n aStr = attrSpec.aStr[binDir];\n\n if(nestedProperty(traceOut._input, aStr).get() !== undefined) {\n binOpts[attr] = coerce(aStr);\n binOpts[attr + 'Found'] = true;\n break;\n }\n\n autoVals = (traceOut._autoBin || {})[binDir] || {};\n if(autoVals[attr]) {\n // if this is the *first* autoval\n nestedProperty(traceOut, aStr).set(autoVals[attr]);\n }\n }\n\n // start and end we need to coerce anyway, after having collected the\n // first of each into binOpts, in case a trace wants to restrict its\n // data to a certain range\n if(attr === 'start' || attr === 'end') {\n for(; i < traces.length; i++) {\n traceOut = traces[i];\n if(traceOut['_' + binDir + 'bingroup']) {\n autoVals = (traceOut._autoBin || {})[binDir] || {};\n coerce(aStr, autoVals[attr]);\n }\n }\n }\n\n if(attr === 'nbins' && !binOpts.sizeFound && !binOpts.nbinsFound) {\n traceOut = traces[0];\n binOpts[attr] = coerce(aStr);\n }\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"72a4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nmodule.exports = {\n /**\n * Timing information for interactive elements\n */\n SHOW_PLACEHOLDER: 100,\n HIDE_PLACEHOLDER: 1000,\n\n // opacity dimming fraction for points that are not in selection\n DESELECTDIM: 0.2\n};\n\n\n/***/ }),\n\n/***/ \"72e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar styleOne = __webpack_require__(\"a708\");\nvar resizeText = __webpack_require__(\"93a6\").resizeText;\n\nmodule.exports = function style(gd) {\n var s = gd._fullLayout._pielayer.selectAll('.trace');\n resizeText(gd, s, 'pie');\n\n s.each(function(cd) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n var traceSelection = d3.select(this);\n\n traceSelection.style({opacity: trace.opacity});\n\n traceSelection.selectAll('path.surface').each(function(pt) {\n d3.select(this).call(styleOne, pt, trace);\n });\n });\n};\n\n\n/***/ }),\n\n/***/ \"7327\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isBN = __webpack_require__(\"4e7e\")\n\nmodule.exports = isRat\n\nfunction isRat(x) {\n return Array.isArray(x) && x.length === 2 && isBN(x[0]) && isBN(x[1])\n}\n\n\n/***/ }),\n\n/***/ \"7373\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isValue = __webpack_require__(\"62c4\");\n\nvar keys = Object.keys;\n\nmodule.exports = function (object) { return keys(isValue(object) ? Object(object) : object); };\n\n\n/***/ }),\n\n/***/ \"7388\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n create: __webpack_require__(\"2638\"),\n clone: __webpack_require__(\"3c41\"),\n fromValues: __webpack_require__(\"f9f9\"),\n copy: __webpack_require__(\"265e\"),\n set: __webpack_require__(\"204d\"),\n add: __webpack_require__(\"c3a9\"),\n subtract: __webpack_require__(\"56cf\"),\n multiply: __webpack_require__(\"dd86\"),\n divide: __webpack_require__(\"73cf\"),\n min: __webpack_require__(\"5374\"),\n max: __webpack_require__(\"dd05\"),\n scale: __webpack_require__(\"d9c2\"),\n scaleAndAdd: __webpack_require__(\"0970\"),\n distance: __webpack_require__(\"fa11\"),\n squaredDistance: __webpack_require__(\"bf66\"),\n length: __webpack_require__(\"4e89\"),\n squaredLength: __webpack_require__(\"644a\"),\n negate: __webpack_require__(\"b1ca\"),\n inverse: __webpack_require__(\"95c9\"),\n normalize: __webpack_require__(\"5243\"),\n dot: __webpack_require__(\"7bb3\"),\n lerp: __webpack_require__(\"7ae4\"),\n random: __webpack_require__(\"aff3\"),\n transformMat4: __webpack_require__(\"6259\"),\n transformQuat: __webpack_require__(\"d26e\")\n}\n\n\n/***/ }),\n\n/***/ \"738f\":\n/***/ (function(module, exports) {\n\nmodule.exports = scaleAndAdd;\n\n/**\n * Adds two vec3's after scaling the second operand by a scalar value\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec3} out\n */\nfunction scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + (b[0] * scale)\n out[1] = a[1] + (b[1] * scale)\n out[2] = a[2] + (b[2] * scale)\n return out\n}\n\n/***/ }),\n\n/***/ \"739b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Template = __webpack_require__(\"a651\");\n\nvar colorScaleAttrs = __webpack_require__(\"0dd7\");\nvar colorScaleDefaults = __webpack_require__(\"4183\");\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, colorScaleAttrs, attr, dflt);\n }\n\n coerce('colorscale.sequential');\n coerce('colorscale.sequentialminus');\n coerce('colorscale.diverging');\n\n var colorAxes = layoutOut._colorAxes;\n var colorAxIn, colorAxOut;\n\n function coerceAx(attr, dflt) {\n return Lib.coerce(colorAxIn, colorAxOut, colorScaleAttrs.coloraxis, attr, dflt);\n }\n\n for(var k in colorAxes) {\n var stash = colorAxes[k];\n\n if(stash[0]) {\n colorAxIn = layoutIn[k] || {};\n colorAxOut = Template.newContainer(layoutOut, k, 'coloraxis');\n colorAxOut._name = k;\n colorScaleDefaults(colorAxIn, colorAxOut, layoutOut, coerceAx, {prefix: '', cLetter: 'c'});\n } else {\n // re-coerce colorscale attributes w/o coloraxis\n for(var i = 0; i < stash[2].length; i++) {\n stash[2][i]();\n }\n delete layoutOut._colorAxes[k];\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"73c9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\n\nexports.xmlns = 'http://www.w3.org/2000/xmlns/';\nexports.svg = 'http://www.w3.org/2000/svg';\nexports.xlink = 'http://www.w3.org/1999/xlink';\n\n// the 'old' d3 quirk got fix in v3.5.7\n// https://github.com/mbostock/d3/commit/a6f66e9dd37f764403fc7c1f26be09ab4af24fed\nexports.svgAttrs = {\n xmlns: exports.svg,\n 'xmlns:xlink': exports.xlink\n};\n\n\n/***/ }),\n\n/***/ \"73cf\":\n/***/ (function(module, exports) {\n\nmodule.exports = divide\n\n/**\n * Divides two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {vec4} out\n */\nfunction divide (out, a, b) {\n out[0] = a[0] / b[0]\n out[1] = a[1] / b[1]\n out[2] = a[2] / b[2]\n out[3] = a[3] / b[3]\n return out\n}\n\n\n/***/ }),\n\n/***/ \"7418\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"743b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar colorMix = __webpack_require__(\"66cb\").mix;\nvar lightFraction = __webpack_require__(\"dfb3\").lightFraction;\nvar Lib = __webpack_require__(\"fc26\");\n\n/**\n * @param {object} opts :\n * - dfltColor {string} : default axis color\n * - bgColor {string} : combined subplot bg color\n * - blend {number, optional} : blend percentage (to compute dflt grid color)\n * - showLine {boolean} : show line by default\n * - showGrid {boolean} : show grid by default\n * - noZeroLine {boolean} : don't coerce zeroline* attributes\n * - attributes {object} : attribute object associated with input containers\n */\nmodule.exports = function handleLineGridDefaults(containerIn, containerOut, coerce, opts) {\n opts = opts || {};\n\n var dfltColor = opts.dfltColor;\n\n function coerce2(attr, dflt) {\n return Lib.coerce2(containerIn, containerOut, opts.attributes, attr, dflt);\n }\n\n var lineColor = coerce2('linecolor', dfltColor);\n var lineWidth = coerce2('linewidth');\n var showLine = coerce('showline', opts.showLine || !!lineColor || !!lineWidth);\n\n if(!showLine) {\n delete containerOut.linecolor;\n delete containerOut.linewidth;\n }\n\n var gridColorDflt = colorMix(dfltColor, opts.bgColor, opts.blend || lightFraction).toRgbString();\n var gridColor = coerce2('gridcolor', gridColorDflt);\n var gridWidth = coerce2('gridwidth');\n var showGridLines = coerce('showgrid', opts.showGrid || !!gridColor || !!gridWidth);\n\n if(!showGridLines) {\n delete containerOut.gridcolor;\n delete containerOut.gridwidth;\n }\n\n if(!opts.noZeroLine) {\n var zeroLineColor = coerce2('zerolinecolor', dfltColor);\n var zeroLineWidth = coerce2('zerolinewidth');\n var showZeroLine = coerce('zeroline', opts.showGrid || !!zeroLineColor || !!zeroLineWidth);\n\n if(!showZeroLine) {\n delete containerOut.zerolinecolor;\n delete containerOut.zerolinewidth;\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"746f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = __webpack_require__(\"428f\");\nvar has = __webpack_require__(\"5135\");\nvar wrappedWellKnownSymbolModule = __webpack_require__(\"e538\");\nvar defineProperty = __webpack_require__(\"9bf2\").f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n\n\n/***/ }),\n\n/***/ \"74b4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar texttemplateAttrs = __webpack_require__(\"94d5\").texttemplateAttrs;\nvar scatterGeoAttrs = __webpack_require__(\"56f3\");\nvar scatterAttrs = __webpack_require__(\"107c\");\nvar mapboxAttrs = __webpack_require__(\"f7e9\");\nvar baseAttrs = __webpack_require__(\"a876\");\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\nvar lineAttrs = scatterGeoAttrs.line;\nvar markerAttrs = scatterGeoAttrs.marker;\n\nmodule.exports = overrideAll({\n lon: scatterGeoAttrs.lon,\n lat: scatterGeoAttrs.lat,\n\n // locations\n // locationmode\n\n mode: extendFlat({}, scatterAttrs.mode, {\n dflt: 'markers',\n \n }),\n\n text: extendFlat({}, scatterAttrs.text, {\n \n }),\n texttemplate: texttemplateAttrs({editType: 'plot'}, {\n keys: ['lat', 'lon', 'text']\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {\n \n }),\n\n line: {\n color: lineAttrs.color,\n width: lineAttrs.width\n\n // TODO\n // dash: dash\n },\n\n connectgaps: scatterAttrs.connectgaps,\n\n marker: extendFlat({\n symbol: {\n valType: 'string',\n dflt: 'circle',\n \n arrayOk: true,\n \n },\n opacity: markerAttrs.opacity,\n size: markerAttrs.size,\n sizeref: markerAttrs.sizeref,\n sizemin: markerAttrs.sizemin,\n sizemode: markerAttrs.sizemode\n },\n colorScaleAttrs('marker')\n // line\n ),\n\n fill: scatterGeoAttrs.fill,\n fillcolor: scatterAttrs.fillcolor,\n\n textfont: mapboxAttrs.layers.symbol.textfont,\n textposition: mapboxAttrs.layers.symbol.textposition,\n\n below: {\n valType: 'string',\n \n \n },\n\n selected: {\n marker: scatterAttrs.selected.marker\n },\n unselected: {\n marker: scatterAttrs.unselected.marker\n },\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: ['lon', 'lat', 'text', 'name']\n }),\n hovertemplate: hovertemplateAttrs(),\n}, 'calc', 'nested');\n\n\n/***/ }),\n\n/***/ \"74d6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar isArrayOrTypedArray = __webpack_require__(\"6af8\").isArrayOrTypedArray;\n\n/**\n * convert a string s (such as 'xaxis.range[0]')\n * representing a property of nested object into set and get methods\n * also return the string and object so we don't have to keep track of them\n * allows [-1] for an array index, to set a property inside all elements\n * of an array\n * eg if obj = {arr: [{a: 1}, {a: 2}]}\n * you can do p = nestedProperty(obj, 'arr[-1].a')\n * but you cannot set the array itself this way, to do that\n * just set the whole array.\n * eg if obj = {arr: [1, 2, 3]}\n * you can't do nestedProperty(obj, 'arr[-1]').set(5)\n * but you can do nestedProperty(obj, 'arr').set([5, 5, 5])\n */\nmodule.exports = function nestedProperty(container, propStr) {\n if(isNumeric(propStr)) propStr = String(propStr);\n else if(typeof propStr !== 'string' ||\n propStr.substr(propStr.length - 4) === '[-1]') {\n throw 'bad property string';\n }\n\n var j = 0;\n var propParts = propStr.split('.');\n var indexed;\n var indices;\n var i;\n\n // check for parts of the nesting hierarchy that are numbers (ie array elements)\n while(j < propParts.length) {\n // look for non-bracket chars, then any number of [##] blocks\n indexed = String(propParts[j]).match(/^([^\\[\\]]*)((\\[\\-?[0-9]*\\])+)$/);\n if(indexed) {\n if(indexed[1]) propParts[j] = indexed[1];\n // allow propStr to start with bracketed array indices\n else if(j === 0) propParts.splice(0, 1);\n else throw 'bad property string';\n\n indices = indexed[2]\n .substr(1, indexed[2].length - 2)\n .split('][');\n\n for(i = 0; i < indices.length; i++) {\n j++;\n propParts.splice(j, 0, Number(indices[i]));\n }\n }\n j++;\n }\n\n if(typeof container !== 'object') {\n return badContainer(container, propStr, propParts);\n }\n\n return {\n set: npSet(container, propParts, propStr),\n get: npGet(container, propParts),\n astr: propStr,\n parts: propParts,\n obj: container\n };\n};\n\nfunction npGet(cont, parts) {\n return function() {\n var curCont = cont;\n var curPart;\n var allSame;\n var out;\n var i;\n var j;\n\n for(i = 0; i < parts.length - 1; i++) {\n curPart = parts[i];\n if(curPart === -1) {\n allSame = true;\n out = [];\n for(j = 0; j < curCont.length; j++) {\n out[j] = npGet(curCont[j], parts.slice(i + 1))();\n if(out[j] !== out[0]) allSame = false;\n }\n return allSame ? out[0] : out;\n }\n if(typeof curPart === 'number' && !isArrayOrTypedArray(curCont)) {\n return undefined;\n }\n curCont = curCont[curPart];\n if(typeof curCont !== 'object' || curCont === null) {\n return undefined;\n }\n }\n\n // only hit this if parts.length === 1\n if(typeof curCont !== 'object' || curCont === null) return undefined;\n\n out = curCont[parts[i]];\n if(out === null) return undefined;\n return out;\n };\n}\n\n/*\n * Can this value be deleted? We can delete `undefined`, and `null` except INSIDE an\n * *args* array.\n *\n * Previously we also deleted some `{}` and `[]`, in order to try and make set/unset\n * a net noop; but this causes far more complication than it's worth, and still had\n * lots of exceptions. See https://github.com/plotly/plotly.js/issues/1410\n *\n * *args* arrays get passed directly to API methods and we should respect null if\n * the user put it there, but otherwise null is deleted as we use it as code\n * in restyle/relayout/update for \"delete this value\" whereas undefined means\n * \"ignore this edit\"\n */\nvar ARGS_PATTERN = /(^|\\.)args\\[/;\nfunction isDeletable(val, propStr) {\n return (val === undefined) || (val === null && !propStr.match(ARGS_PATTERN));\n}\n\nfunction npSet(cont, parts, propStr) {\n return function(val) {\n var curCont = cont;\n var propPart = '';\n var containerLevels = [[cont, propPart]];\n var toDelete = isDeletable(val, propStr);\n var curPart;\n var i;\n\n for(i = 0; i < parts.length - 1; i++) {\n curPart = parts[i];\n\n if(typeof curPart === 'number' && !isArrayOrTypedArray(curCont)) {\n throw 'array index but container is not an array';\n }\n\n // handle special -1 array index\n if(curPart === -1) {\n toDelete = !setArrayAll(curCont, parts.slice(i + 1), val, propStr);\n if(toDelete) break;\n else return;\n }\n\n if(!checkNewContainer(curCont, curPart, parts[i + 1], toDelete)) {\n break;\n }\n\n curCont = curCont[curPart];\n\n if(typeof curCont !== 'object' || curCont === null) {\n throw 'container is not an object';\n }\n\n propPart = joinPropStr(propPart, curPart);\n\n containerLevels.push([curCont, propPart]);\n }\n\n if(toDelete) {\n if(i === parts.length - 1) {\n delete curCont[parts[i]];\n\n // The one bit of pruning we still do: drop `undefined` from the end of arrays.\n // In case someone has already unset previous items, continue until we hit a\n // non-undefined value.\n if(Array.isArray(curCont) && +parts[i] === curCont.length - 1) {\n while(curCont.length && curCont[curCont.length - 1] === undefined) {\n curCont.pop();\n }\n }\n }\n } else curCont[parts[i]] = val;\n };\n}\n\nfunction joinPropStr(propStr, newPart) {\n var toAdd = newPart;\n if(isNumeric(newPart)) toAdd = '[' + newPart + ']';\n else if(propStr) toAdd = '.' + newPart;\n\n return propStr + toAdd;\n}\n\n// handle special -1 array index\nfunction setArrayAll(containerArray, innerParts, val, propStr) {\n var arrayVal = isArrayOrTypedArray(val);\n var allSet = true;\n var thisVal = val;\n var thisPropStr = propStr.replace('-1', 0);\n var deleteThis = arrayVal ? false : isDeletable(val, thisPropStr);\n var firstPart = innerParts[0];\n var i;\n\n for(i = 0; i < containerArray.length; i++) {\n thisPropStr = propStr.replace('-1', i);\n if(arrayVal) {\n thisVal = val[i % val.length];\n deleteThis = isDeletable(thisVal, thisPropStr);\n }\n if(deleteThis) allSet = false;\n if(!checkNewContainer(containerArray, i, firstPart, deleteThis)) {\n continue;\n }\n npSet(containerArray[i], innerParts, propStr.replace('-1', i))(thisVal);\n }\n return allSet;\n}\n\n/**\n * make new sub-container as needed.\n * returns false if there's no container and none is needed\n * because we're only deleting an attribute\n */\nfunction checkNewContainer(container, part, nextPart, toDelete) {\n if(container[part] === undefined) {\n if(toDelete) return false;\n\n if(typeof nextPart === 'number') container[part] = [];\n else container[part] = {};\n }\n return true;\n}\n\nfunction badContainer(container, propStr, propParts) {\n return {\n set: function() { throw 'bad container'; },\n get: function() {},\n astr: propStr,\n parts: propParts,\n obj: container\n };\n}\n\n\n/***/ }),\n\n/***/ \"7559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n 'undo': {\n 'width': 857.1,\n 'height': 1000,\n 'path': 'm857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'home': {\n 'width': 928.6,\n 'height': 1000,\n 'path': 'm786 296v-267q0-15-11-26t-25-10h-214v214h-143v-214h-214q-15 0-25 10t-11 26v267q0 1 0 2t0 2l321 264 321-264q1-1 1-4z m124 39l-34-41q-5-5-12-6h-2q-7 0-12 3l-386 322-386-322q-7-4-13-4-7 2-12 7l-35 41q-4 5-3 13t6 12l401 334q18 15 42 15t43-15l136-114v109q0 8 5 13t13 5h107q8 0 13-5t5-13v-227l122-102q5-5 6-12t-4-13z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'camera-retro': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm518 386q0 8-5 13t-13 5q-37 0-63-27t-26-63q0-8 5-13t13-5 12 5 5 13q0 23 16 38t38 16q8 0 13 5t5 13z m125-73q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m-572-320h858v71h-858v-71z m643 320q0 89-62 152t-152 62-151-62-63-152 63-151 151-63 152 63 62 151z m-571 358h214v72h-214v-72z m-72-107h858v143h-462l-36-71h-360v-72z m929 143v-714q0-30-21-51t-50-21h-858q-29 0-50 21t-21 51v714q0 30 21 51t50 21h858q29 0 50-21t21-51z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'zoombox': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm1000-25l-250 251c40 63 63 138 63 218 0 224-182 406-407 406-224 0-406-182-406-406s183-406 407-406c80 0 155 22 218 62l250-250 125 125z m-812 250l0 438 437 0 0-438-437 0z m62 375l313 0 0-312-313 0 0 312z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'pan': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm1000 350l-187 188 0-125-250 0 0 250 125 0-188 187-187-187 125 0 0-250-250 0 0 125-188-188 186-187 0 125 252 0 0-250-125 0 187-188 188 188-125 0 0 250 250 0 0-126 187 188z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'zoom_plus': {\n 'width': 875,\n 'height': 1000,\n 'path': 'm1 787l0-875 875 0 0 875-875 0z m687-500l-187 0 0-187-125 0 0 187-188 0 0 125 188 0 0 187 125 0 0-187 187 0 0-125z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'zoom_minus': {\n 'width': 875,\n 'height': 1000,\n 'path': 'm0 788l0-876 875 0 0 876-875 0z m688-500l-500 0 0 125 500 0 0-125z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'autoscale': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm250 850l-187 0-63 0 0-62 0-188 63 0 0 188 187 0 0 62z m688 0l-188 0 0-62 188 0 0-188 62 0 0 188 0 62-62 0z m-875-938l0 188-63 0 0-188 0-62 63 0 187 0 0 62-187 0z m875 188l0-188-188 0 0-62 188 0 62 0 0 62 0 188-62 0z m-125 188l-1 0-93-94-156 156 156 156 92-93 2 0 0 250-250 0 0-2 93-92-156-156-156 156 94 92 0 2-250 0 0-250 0 0 93 93 157-156-157-156-93 94 0 0 0-250 250 0 0 0-94 93 156 157 156-157-93-93 0 0 250 0 0 250z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'tooltip_basic': {\n 'width': 1500,\n 'height': 1000,\n 'path': 'm375 725l0 0-375-375 375-374 0-1 1125 0 0 750-1125 0z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'tooltip_compare': {\n 'width': 1125,\n 'height': 1000,\n 'path': 'm187 786l0 2-187-188 188-187 0 0 937 0 0 373-938 0z m0-499l0 1-187-188 188-188 0 0 937 0 0 376-938-1z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'plotlylogo': {\n 'width': 1542,\n 'height': 1000,\n 'path': 'm0-10h182v-140h-182v140z m228 146h183v-286h-183v286z m225 714h182v-1000h-182v1000z m225-285h182v-715h-182v715z m225 142h183v-857h-183v857z m231-428h182v-429h-182v429z m225-291h183v-138h-183v138z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'z-axis': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm833 5l-17 108v41l-130-65 130-66c0 0 0 38 0 39 0-1 36-14 39-25 4-15-6-22-16-30-15-12-39-16-56-20-90-22-187-23-279-23-261 0-341 34-353 59 3 60 228 110 228 110-140-8-351-35-351-116 0-120 293-142 474-142 155 0 477 22 477 142 0 50-74 79-163 96z m-374 94c-58-5-99-21-99-40 0-24 65-43 144-43 79 0 143 19 143 43 0 19-42 34-98 40v216h87l-132 135-133-135h88v-216z m167 515h-136v1c16 16 31 34 46 52l84 109v54h-230v-71h124v-1c-16-17-28-32-44-51l-89-114v-51h245v72z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n '3d_rotate': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm922 660c-5 4-9 7-14 11-359 263-580-31-580-31l-102 28 58-400c0 1 1 1 2 2 118 108 351 249 351 249s-62 27-100 42c88 83 222 183 347 122 16-8 30-17 44-27-2 1-4 2-6 4z m36-329c0 0 64 229-88 296-62 27-124 14-175-11 157-78 225-208 249-266 8-19 11-31 11-31 2 5 6 15 11 32-5-13-8-20-8-20z m-775-239c70-31 117-50 198-32-121 80-199 346-199 346l-96-15-58-12c0 0 55-226 155-287z m603 133l-317-139c0 0 4-4 19-14 7-5 24-15 24-15s-177-147-389 4c235-287 536-112 536-112l31-22 100 299-4-1z m-298-153c6-4 14-9 24-15 0 0-17 10-24 15z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'camera': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm500 450c-83 0-150-67-150-150 0-83 67-150 150-150 83 0 150 67 150 150 0 83-67 150-150 150z m400 150h-120c-16 0-34 13-39 29l-31 93c-6 15-23 28-40 28h-340c-16 0-34-13-39-28l-31-94c-6-15-23-28-40-28h-120c-55 0-100-45-100-100v-450c0-55 45-100 100-100h800c55 0 100 45 100 100v450c0 55-45 100-100 100z m-400-550c-138 0-250 112-250 250 0 138 112 250 250 250 138 0 250-112 250-250 0-138-112-250-250-250z m365 380c-19 0-35 16-35 35 0 19 16 35 35 35 19 0 35-16 35-35 0-19-16-35-35-35z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'movie': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm938 413l-188-125c0 37-17 71-44 94 64 38 107 107 107 187 0 121-98 219-219 219-121 0-219-98-219-219 0-61 25-117 66-156h-115c30 33 49 76 49 125 0 103-84 187-187 187s-188-84-188-187c0-57 26-107 65-141-38-22-65-62-65-109v-250c0-70 56-126 125-126h500c69 0 125 56 125 126l188-126c34 0 62 28 62 63v375c0 35-28 63-62 63z m-750 0c-69 0-125 56-125 125s56 125 125 125 125-56 125-125-56-125-125-125z m406-1c-87 0-157 70-157 157 0 86 70 156 157 156s156-70 156-156-70-157-156-157z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'question': {\n 'width': 857.1,\n 'height': 1000,\n 'path': 'm500 82v107q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h107q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-9-14 4-24l74-55q4-4 10-4 9 0 14 7 30 38 48 51 19 14 48 14 27 0 48-15t21-33q0-21-11-34t-38-25q-35-16-65-48t-29-70v-20q0-8 5-13t13-5h107q8 0 13 5t5 13q0 10 12 27t30 28q18 10 28 16t25 19 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'disk': {\n 'width': 857.1,\n 'height': 1000,\n 'path': 'm214-7h429v214h-429v-214z m500 0h72v500q0 8-6 21t-11 20l-157 156q-5 6-19 12t-22 5v-232q0-22-15-38t-38-16h-322q-22 0-37 16t-16 38v232h-72v-714h72v232q0 22 16 38t37 16h465q22 0 38-16t15-38v-232z m-214 518v178q0 8-5 13t-13 5h-107q-7 0-13-5t-5-13v-178q0-8 5-13t13-5h107q7 0 13 5t5 13z m357-18v-518q0-22-15-38t-38-16h-750q-23 0-38 16t-16 38v750q0 22 16 38t38 16h517q23 0 50-12t42-26l156-157q16-15 27-42t11-49z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'lasso': {\n 'width': 1031,\n 'height': 1000,\n 'path': 'm1018 538c-36 207-290 336-568 286-277-48-473-256-436-463 10-57 36-108 76-151-13-66 11-137 68-183 34-28 75-41 114-42l-55-70 0 0c-2-1-3-2-4-3-10-14-8-34 5-45 14-11 34-8 45 4 1 1 2 3 2 5l0 0 113 140c16 11 31 24 45 40 4 3 6 7 8 11 48-3 100 0 151 9 278 48 473 255 436 462z m-624-379c-80 14-149 48-197 96 42 42 109 47 156 9 33-26 47-66 41-105z m-187-74c-19 16-33 37-39 60 50-32 109-55 174-68-42-25-95-24-135 8z m360 75c-34-7-69-9-102-8 8 62-16 128-68 170-73 59-175 54-244-5-9 20-16 40-20 61-28 159 121 317 333 354s407-60 434-217c28-159-121-318-333-355z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'selectbox': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm0 850l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-285l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'spikeline': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'M512 409c0-57-46-104-103-104-57 0-104 47-104 104 0 57 47 103 104 103 57 0 103-46 103-103z m-327-39l92 0 0 92-92 0z m-185 0l92 0 0 92-92 0z m370-186l92 0 0 93-92 0z m0-184l92 0 0 92-92 0z',\n 'transform': 'matrix(1.5 0 0 -1.5 0 850)'\n },\n 'pencil': {\n 'width': 1792,\n 'height': 1792,\n 'path': 'M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z',\n 'transform': 'matrix(1 0 0 1 0 1)'\n },\n 'newplotlylogo': {\n 'name': 'newplotlylogo',\n 'svg': 'plotly-logomark'\n }\n};\n\n\n/***/ }),\n\n/***/ \"7594\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Color = __webpack_require__(\"d115\");\nvar Lib = __webpack_require__(\"fc26\");\nvar resizeText = __webpack_require__(\"93a6\").resizeText;\n\nfunction style(gd) {\n var s = gd._fullLayout._sunburstlayer.selectAll('.trace');\n resizeText(gd, s, 'sunburst');\n\n s.each(function(cd) {\n var gTrace = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n\n gTrace.style('opacity', trace.opacity);\n\n gTrace.selectAll('path.surface').each(function(pt) {\n d3.select(this).call(styleOne, pt, trace);\n });\n });\n}\n\nfunction styleOne(s, pt, trace) {\n var cdi = pt.data.data;\n var isLeaf = !pt.children;\n var ptNumber = cdi.i;\n var lineColor = Lib.castOption(trace, ptNumber, 'marker.line.color') || Color.defaultLine;\n var lineWidth = Lib.castOption(trace, ptNumber, 'marker.line.width') || 0;\n\n s.style('stroke-width', lineWidth)\n .call(Color.fill, cdi.color)\n .call(Color.stroke, lineColor)\n .style('opacity', isLeaf ? trace.leaf.opacity : null);\n}\n\nmodule.exports = {\n style: style,\n styleOne: styleOne\n};\n\n\n/***/ }),\n\n/***/ \"75ac\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"8761\");\n\n\n/***/ }),\n\n/***/ \"765f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar tinycolor = __webpack_require__(\"66cb\");\nvar rgba = __webpack_require__(\"0103\");\n\nvar Colorscale = __webpack_require__(\"c258\");\nvar colorDflt = __webpack_require__(\"dfb3\").defaultLine;\nvar isArrayOrTypedArray = __webpack_require__(\"6af8\").isArrayOrTypedArray;\n\nvar colorDfltRgba = rgba(colorDflt);\nvar opacityDflt = 1;\n\nfunction calculateColor(colorIn, opacityIn) {\n var colorOut = colorIn;\n colorOut[3] *= opacityIn;\n return colorOut;\n}\n\nfunction validateColor(colorIn) {\n if(isNumeric(colorIn)) return colorDfltRgba;\n\n var colorOut = rgba(colorIn);\n\n return colorOut.length ? colorOut : colorDfltRgba;\n}\n\nfunction validateOpacity(opacityIn) {\n return isNumeric(opacityIn) ? opacityIn : opacityDflt;\n}\n\nfunction formatColor(containerIn, opacityIn, len) {\n var colorIn = containerIn.color;\n var isArrayColorIn = isArrayOrTypedArray(colorIn);\n var isArrayOpacityIn = isArrayOrTypedArray(opacityIn);\n var cOpts = Colorscale.extractOpts(containerIn);\n var colorOut = [];\n\n var sclFunc, getColor, getOpacity, colori, opacityi;\n\n if(cOpts.colorscale !== undefined) {\n sclFunc = Colorscale.makeColorScaleFuncFromTrace(containerIn);\n } else {\n sclFunc = validateColor;\n }\n\n if(isArrayColorIn) {\n getColor = function(c, i) {\n // FIXME: there is double work, considering that sclFunc does the opposite\n return c[i] === undefined ? colorDfltRgba : rgba(sclFunc(c[i]));\n };\n } else getColor = validateColor;\n\n if(isArrayOpacityIn) {\n getOpacity = function(o, i) {\n return o[i] === undefined ? opacityDflt : validateOpacity(o[i]);\n };\n } else getOpacity = validateOpacity;\n\n if(isArrayColorIn || isArrayOpacityIn) {\n for(var i = 0; i < len; i++) {\n colori = getColor(colorIn, i);\n opacityi = getOpacity(opacityIn, i);\n colorOut[i] = calculateColor(colori, opacityi);\n }\n } else colorOut = calculateColor(rgba(colorIn), opacityIn);\n\n return colorOut;\n}\n\nfunction parseColorScale(cont, alpha) {\n if(alpha === undefined) alpha = 1;\n\n var cOpts = Colorscale.extractOpts(cont);\n\n var colorscale = cOpts.reversescale ?\n Colorscale.flipScale(cOpts.colorscale) :\n cOpts.colorscale;\n\n return colorscale.map(function(elem) {\n var index = elem[0];\n var color = tinycolor(elem[1]);\n var rgb = color.toRgb();\n return {\n index: index,\n rgb: [rgb.r, rgb.g, rgb.b, alpha]\n };\n });\n}\n\nmodule.exports = {\n formatColor: formatColor,\n parseColorScale: parseColorScale\n};\n\n\n/***/ }),\n\n/***/ \"7678\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n funnelmode: {\n valType: 'enumerated',\n values: ['stack', 'group', 'overlay'],\n dflt: 'stack',\n \n editType: 'calc',\n \n },\n funnelgap: {\n valType: 'number',\n min: 0,\n max: 1,\n \n editType: 'calc',\n \n },\n funnelgroupgap: {\n valType: 'number',\n min: 0,\n max: 1,\n dflt: 0,\n \n editType: 'calc',\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"76b2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n/* global MathJax:false */\n\nmodule.exports = function() {\n if(typeof MathJax !== 'undefined') {\n var globalConfig = (window.PlotlyConfig || {}).MathJaxConfig !== 'local';\n\n if(globalConfig) {\n MathJax.Hub.Config({\n messageStyle: 'none',\n skipStartupTypeset: true,\n displayAlign: 'left',\n tex2jax: {\n inlineMath: [['$', '$'], ['\\\\(', '\\\\)']]\n }\n });\n MathJax.Hub.Configured();\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"76fe\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar str2RgbaArray = __webpack_require__(\"f977\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar AXES_NAMES = ['xaxis', 'yaxis', 'zaxis'];\n\nfunction AxesOptions() {\n this.bounds = [\n [-10, -10, -10],\n [10, 10, 10]\n ];\n\n this.ticks = [ [], [], [] ];\n this.tickEnable = [ true, true, true ];\n this.tickFont = [ 'sans-serif', 'sans-serif', 'sans-serif' ];\n this.tickSize = [ 12, 12, 12 ];\n this.tickAngle = [ 0, 0, 0 ];\n this.tickColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n this.tickPad = [ 18, 18, 18 ];\n\n this.labels = [ 'x', 'y', 'z' ];\n this.labelEnable = [ true, true, true ];\n this.labelFont = ['Open Sans', 'Open Sans', 'Open Sans'];\n this.labelSize = [ 20, 20, 20 ];\n this.labelColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n this.labelPad = [ 30, 30, 30 ];\n\n this.lineEnable = [ true, true, true ];\n this.lineMirror = [ false, false, false ];\n this.lineWidth = [ 1, 1, 1 ];\n this.lineColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n\n this.lineTickEnable = [ true, true, true ];\n this.lineTickMirror = [ false, false, false ];\n this.lineTickLength = [ 10, 10, 10 ];\n this.lineTickWidth = [ 1, 1, 1 ];\n this.lineTickColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n\n this.gridEnable = [ true, true, true ];\n this.gridWidth = [ 1, 1, 1 ];\n this.gridColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n\n this.zeroEnable = [ true, true, true ];\n this.zeroLineColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n this.zeroLineWidth = [ 2, 2, 2 ];\n\n this.backgroundEnable = [ true, true, true ];\n this.backgroundColor = [ [0.8, 0.8, 0.8, 0.5],\n [0.8, 0.8, 0.8, 0.5],\n [0.8, 0.8, 0.8, 0.5] ];\n\n // some default values are stored for applying model transforms\n this._defaultTickPad = this.tickPad.slice();\n this._defaultLabelPad = this.labelPad.slice();\n this._defaultLineTickLength = this.lineTickLength.slice();\n}\n\nvar proto = AxesOptions.prototype;\n\nproto.merge = function(fullLayout, sceneLayout) {\n var opts = this;\n for(var i = 0; i < 3; ++i) {\n var axes = sceneLayout[AXES_NAMES[i]];\n\n if(!axes.visible) {\n opts.tickEnable[i] = false;\n opts.labelEnable[i] = false;\n opts.lineEnable[i] = false;\n opts.lineTickEnable[i] = false;\n opts.gridEnable[i] = false;\n opts.zeroEnable[i] = false;\n opts.backgroundEnable[i] = false;\n continue;\n }\n\n // Axes labels\n opts.labels[i] = fullLayout._meta ?\n Lib.templateString(axes.title.text, fullLayout._meta) :\n axes.title.text;\n\n if('font' in axes.title) {\n if(axes.title.font.color) opts.labelColor[i] = str2RgbaArray(axes.title.font.color);\n if(axes.title.font.family) opts.labelFont[i] = axes.title.font.family;\n if(axes.title.font.size) opts.labelSize[i] = axes.title.font.size;\n }\n\n // Lines\n if('showline' in axes) opts.lineEnable[i] = axes.showline;\n if('linecolor' in axes) opts.lineColor[i] = str2RgbaArray(axes.linecolor);\n if('linewidth' in axes) opts.lineWidth[i] = axes.linewidth;\n\n if('showgrid' in axes) opts.gridEnable[i] = axes.showgrid;\n if('gridcolor' in axes) opts.gridColor[i] = str2RgbaArray(axes.gridcolor);\n if('gridwidth' in axes) opts.gridWidth[i] = axes.gridwidth;\n\n // Remove zeroline if axis type is log\n // otherwise the zeroline is incorrectly drawn at 1 on log axes\n if(axes.type === 'log') opts.zeroEnable[i] = false;\n else if('zeroline' in axes) opts.zeroEnable[i] = axes.zeroline;\n if('zerolinecolor' in axes) opts.zeroLineColor[i] = str2RgbaArray(axes.zerolinecolor);\n if('zerolinewidth' in axes) opts.zeroLineWidth[i] = axes.zerolinewidth;\n\n // tick lines\n if('ticks' in axes && !!axes.ticks) opts.lineTickEnable[i] = true;\n else opts.lineTickEnable[i] = false;\n\n if('ticklen' in axes) {\n opts.lineTickLength[i] = opts._defaultLineTickLength[i] = axes.ticklen;\n }\n if('tickcolor' in axes) opts.lineTickColor[i] = str2RgbaArray(axes.tickcolor);\n if('tickwidth' in axes) opts.lineTickWidth[i] = axes.tickwidth;\n if('tickangle' in axes) {\n opts.tickAngle[i] = (axes.tickangle === 'auto') ?\n -3600 : // i.e. special number to set auto option\n Math.PI * -axes.tickangle / 180;\n }\n\n // tick labels\n if('showticklabels' in axes) opts.tickEnable[i] = axes.showticklabels;\n if('tickfont' in axes) {\n if(axes.tickfont.color) opts.tickColor[i] = str2RgbaArray(axes.tickfont.color);\n if(axes.tickfont.family) opts.tickFont[i] = axes.tickfont.family;\n if(axes.tickfont.size) opts.tickSize[i] = axes.tickfont.size;\n }\n\n if('mirror' in axes) {\n if(['ticks', 'all', 'allticks'].indexOf(axes.mirror) !== -1) {\n opts.lineTickMirror[i] = true;\n opts.lineMirror[i] = true;\n } else if(axes.mirror === true) {\n opts.lineTickMirror[i] = false;\n opts.lineMirror[i] = true;\n } else {\n opts.lineTickMirror[i] = false;\n opts.lineMirror[i] = false;\n }\n } else opts.lineMirror[i] = false;\n\n // grid background\n if('showbackground' in axes && axes.showbackground !== false) {\n opts.backgroundEnable[i] = true;\n opts.backgroundColor[i] = str2RgbaArray(axes.backgroundcolor);\n } else opts.backgroundEnable[i] = false;\n }\n};\n\n\nfunction createAxesOptions(fullLayout, sceneLayout) {\n var result = new AxesOptions();\n result.merge(fullLayout, sceneLayout);\n return result;\n}\n\nmodule.exports = createAxesOptions;\n\n\n/***/ }),\n\n/***/ \"7797\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n \"use restrict\";\n\nmodule.exports = UnionFind;\n\nfunction UnionFind(count) {\n this.roots = new Array(count);\n this.ranks = new Array(count);\n \n for(var i=0; i ]/) ? '_keybuster_' + Math.random() : '';\n return {\n // keyWithinBlock: /*fromTo[0] + */i, // optimized future version - no busting\n // keyWithinBlock: fromTo[0] + i, // initial always-unoptimized version - janky scrolling with 5+ columns\n keyWithinBlock: i + buster, // current compromise: regular content is very fast; async content is possible\n key: fromTo[0] + i,\n column: d,\n calcdata: d.calcdata,\n page: d.page,\n rowBlocks: d.rowBlocks,\n value: v\n };\n });\n};\n\nfunction rowFromTo(d) {\n var rowBlock = d.rowBlocks[d.page];\n // fixme rowBlock truthiness check is due to ugly hack of placing 2nd panel as d.page = -1\n var rowFrom = rowBlock ? rowBlock.rows[0].rowIndex : 0;\n var rowTo = rowBlock ? rowFrom + rowBlock.rows.length : 0;\n return [rowFrom, rowTo];\n}\n\n\n/***/ }),\n\n/***/ \"7831\":\n/***/ (function(module, exports) {\n\nmodule.exports = function(dtype) {\n switch (dtype) {\n case 'int8':\n return Int8Array\n case 'int16':\n return Int16Array\n case 'int32':\n return Int32Array\n case 'uint8':\n return Uint8Array\n case 'uint16':\n return Uint16Array\n case 'uint32':\n return Uint32Array\n case 'float32':\n return Float32Array\n case 'float64':\n return Float64Array\n case 'array':\n return Array\n case 'uint8_clamped':\n return Uint8ClampedArray\n }\n}\n\n\n/***/ }),\n\n/***/ \"7839\":\n/***/ (function(module, exports) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n\n/***/ \"7899\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = affineHull\n\nvar orient = __webpack_require__(\"92ba\")\n\nfunction linearlyIndependent(points, d) {\n var nhull = new Array(d+1)\n for(var i=0; i 0;\n}\n\nmodule.exports = function plot(gd, cdModule, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = gd._fullLayout;\n var onComplete;\n\n if(hasTransition(transitionOpts)) {\n if(makeOnCompleteCallback) {\n // If it was passed a callback to register completion, make a callback. If\n // this is created, then it must be executed on completion, otherwise the\n // pos-transition redraw will not execute:\n onComplete = makeOnCompleteCallback();\n }\n }\n\n Lib.makeTraceGroups(fullLayout._indicatorlayer, cdModule, 'trace').each(function(cd) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n\n var plotGroup = d3.select(this);\n\n // Elements in trace\n var hasGauge = trace._hasGauge;\n var isAngular = trace._isAngular;\n var isBullet = trace._isBullet;\n\n // Domain size\n var domain = trace.domain;\n var size = {\n w: fullLayout._size.w * (domain.x[1] - domain.x[0]),\n h: fullLayout._size.h * (domain.y[1] - domain.y[0]),\n l: fullLayout._size.l + fullLayout._size.w * domain.x[0],\n r: fullLayout._size.r + fullLayout._size.w * (1 - domain.x[1]),\n t: fullLayout._size.t + fullLayout._size.h * (1 - domain.y[1]),\n b: fullLayout._size.b + fullLayout._size.h * (domain.y[0])\n };\n var centerX = size.l + size.w / 2;\n var centerY = size.t + size.h / 2;\n\n // Angular gauge size\n var radius = Math.min(size.w / 2, size.h); // fill domain\n var innerRadius = cn.innerRadius * radius;\n\n // Position numbers based on mode and set the scaling logic\n var numbersX, numbersY, numbersScaler;\n var numbersAlign = trace.align || 'center';\n\n numbersY = centerY;\n if(!hasGauge) {\n numbersX = size.l + position[numbersAlign] * size.w;\n numbersScaler = function(el) {\n return fitTextInsideBox(el, size.w, size.h);\n };\n } else {\n if(isAngular) {\n numbersX = centerX;\n numbersY = centerY + radius / 2;\n numbersScaler = function(el) {\n return fitTextInsideCircle(el, 0.9 * innerRadius);\n };\n }\n if(isBullet) {\n var padding = cn.bulletPadding;\n var p = (1 - cn.bulletNumberDomainSize) + padding;\n numbersX = size.l + (p + (1 - p) * position[numbersAlign]) * size.w;\n numbersScaler = function(el) {\n return fitTextInsideBox(el, (cn.bulletNumberDomainSize - padding) * size.w, size.h);\n };\n }\n }\n\n // Draw numbers\n drawNumbers(gd, plotGroup, cd, {\n numbersX: numbersX,\n numbersY: numbersY,\n numbersScaler: numbersScaler,\n transitionOpts: transitionOpts,\n onComplete: onComplete\n });\n\n // Reexpress our gauge background attributes for drawing\n var gaugeBg, gaugeOutline;\n if(hasGauge) {\n gaugeBg = {\n range: trace.gauge.axis.range,\n color: trace.gauge.bgcolor,\n line: {\n color: trace.gauge.bordercolor,\n width: 0\n },\n thickness: 1\n };\n\n gaugeOutline = {\n range: trace.gauge.axis.range,\n color: 'rgba(0, 0, 0, 0)',\n line: {\n color: trace.gauge.bordercolor,\n width: trace.gauge.borderwidth\n },\n thickness: 1\n };\n }\n\n // Prepare angular gauge layers\n var angularGauge = plotGroup.selectAll('g.angular').data(isAngular ? cd : []);\n angularGauge.exit().remove();\n var angularaxisLayer = plotGroup.selectAll('g.angularaxis').data(isAngular ? cd : []);\n angularaxisLayer.exit().remove();\n\n if(isAngular) {\n drawAngularGauge(gd, plotGroup, cd, {\n radius: radius,\n innerRadius: innerRadius,\n\n gauge: angularGauge,\n layer: angularaxisLayer,\n size: size,\n gaugeBg: gaugeBg,\n gaugeOutline: gaugeOutline,\n transitionOpts: transitionOpts,\n onComplete: onComplete\n });\n }\n\n // Prepare bullet layers\n var bulletGauge = plotGroup.selectAll('g.bullet').data(isBullet ? cd : []);\n bulletGauge.exit().remove();\n var bulletaxisLayer = plotGroup.selectAll('g.bulletaxis').data(isBullet ? cd : []);\n bulletaxisLayer.exit().remove();\n\n if(isBullet) {\n drawBulletGauge(gd, plotGroup, cd, {\n gauge: bulletGauge,\n layer: bulletaxisLayer,\n size: size,\n gaugeBg: gaugeBg,\n gaugeOutline: gaugeOutline,\n transitionOpts: transitionOpts,\n onComplete: onComplete\n });\n }\n\n // title\n var title = plotGroup.selectAll('text.title').data(cd);\n title.exit().remove();\n title.enter().append('text').classed('title', true);\n title\n .attr('text-anchor', function() {\n return isBullet ? anchor.right : anchor[trace.title.align];\n })\n .text(trace.title.text)\n .call(Drawing.font, trace.title.font)\n .call(svgTextUtils.convertToTspans, gd);\n\n // Position title\n title.attr('transform', function() {\n var titleX = size.l + size.w * position[trace.title.align];\n var titleY;\n var titlePadding = cn.titlePadding;\n var titlebBox = Drawing.bBox(title.node());\n if(hasGauge) {\n if(isAngular) {\n // position above axis ticks/labels\n if(trace.gauge.axis.visible) {\n var bBox = Drawing.bBox(angularaxisLayer.node());\n titleY = (bBox.top - titlePadding) - titlebBox.bottom;\n } else {\n titleY = size.t + size.h / 2 - radius / 2 - titlebBox.bottom - titlePadding;\n }\n }\n if(isBullet) {\n // position outside domain\n titleY = numbersY - (titlebBox.top + titlebBox.bottom) / 2;\n titleX = size.l - cn.bulletPadding * size.w; // Outside domain, on the left\n }\n } else {\n // position above numbers\n titleY = (trace._numbersTop - titlePadding) - titlebBox.bottom;\n }\n return strTranslate(titleX, titleY);\n });\n });\n};\n\nfunction drawBulletGauge(gd, plotGroup, cd, opts) {\n var trace = cd[0].trace;\n\n var bullet = opts.gauge;\n var axisLayer = opts.layer;\n var gaugeBg = opts.gaugeBg;\n var gaugeOutline = opts.gaugeOutline;\n var size = opts.size;\n var domain = trace.domain;\n\n var transitionOpts = opts.transitionOpts;\n var onComplete = opts.onComplete;\n\n // preparing axis\n var ax, vals, transFn, tickSign, shift;\n\n // Enter bullet, axis\n bullet.enter().append('g').classed('bullet', true);\n bullet.attr('transform', 'translate(' + size.l + ', ' + size.t + ')');\n\n axisLayer.enter().append('g')\n .classed('bulletaxis', true)\n .classed('crisp', true);\n axisLayer.selectAll('g.' + 'xbulletaxis' + 'tick,path,text').remove();\n\n // Draw bullet\n var bulletHeight = size.h; // use all vertical domain\n var innerBulletHeight = trace.gauge.bar.thickness * bulletHeight;\n var bulletLeft = domain.x[0];\n var bulletRight = domain.x[0] + (domain.x[1] - domain.x[0]) * ((trace._hasNumber || trace._hasDelta) ? (1 - cn.bulletNumberDomainSize) : 1);\n\n ax = mockAxis(gd, trace.gauge.axis);\n ax._id = 'xbulletaxis';\n ax.domain = [bulletLeft, bulletRight];\n ax.setScale();\n\n vals = Axes.calcTicks(ax);\n transFn = Axes.makeTransFn(ax);\n tickSign = Axes.getTickSigns(ax)[2];\n\n shift = size.t + size.h;\n if(ax.visible) {\n Axes.drawTicks(gd, ax, {\n vals: ax.ticks === 'inside' ? Axes.clipEnds(ax, vals) : vals,\n layer: axisLayer,\n path: Axes.makeTickPath(ax, shift, tickSign),\n transFn: transFn\n });\n\n Axes.drawLabels(gd, ax, {\n vals: vals,\n layer: axisLayer,\n transFn: transFn,\n labelFns: Axes.makeLabelFns(ax, shift)\n });\n }\n\n function drawRect(s) {\n s\n .attr('width', function(d) { return Math.max(0, ax.c2p(d.range[1]) - ax.c2p(d.range[0]));})\n .attr('x', function(d) { return ax.c2p(d.range[0]);})\n .attr('y', function(d) { return 0.5 * (1 - d.thickness) * bulletHeight;})\n .attr('height', function(d) { return d.thickness * bulletHeight; });\n }\n\n // Draw bullet background, steps\n var boxes = [gaugeBg].concat(trace.gauge.steps);\n var bgBullet = bullet.selectAll('g.bg-bullet').data(boxes);\n bgBullet.enter().append('g').classed('bg-bullet', true).append('rect');\n bgBullet.select('rect')\n .call(drawRect)\n .call(styleShape);\n bgBullet.exit().remove();\n\n // Draw value bar with transitions\n var fgBullet = bullet.selectAll('g.value-bullet').data([trace.gauge.bar]);\n fgBullet.enter().append('g').classed('value-bullet', true).append('rect');\n fgBullet.select('rect')\n .attr('height', innerBulletHeight)\n .attr('y', (bulletHeight - innerBulletHeight) / 2)\n .call(styleShape);\n if(hasTransition(transitionOpts)) {\n fgBullet.select('rect')\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing)\n .each('end', function() { onComplete && onComplete(); })\n .each('interrupt', function() { onComplete && onComplete(); })\n .attr('width', Math.max(0, ax.c2p(Math.min(trace.gauge.axis.range[1], cd[0].y))));\n } else {\n fgBullet.select('rect')\n .attr('width', typeof cd[0].y === 'number' ?\n Math.max(0, ax.c2p(Math.min(trace.gauge.axis.range[1], cd[0].y))) :\n 0);\n }\n fgBullet.exit().remove();\n\n var data = cd.filter(function() {return trace.gauge.threshold.value;});\n var threshold = bullet.selectAll('g.threshold-bullet').data(data);\n threshold.enter().append('g').classed('threshold-bullet', true).append('line');\n threshold.select('line')\n .attr('x1', ax.c2p(trace.gauge.threshold.value))\n .attr('x2', ax.c2p(trace.gauge.threshold.value))\n .attr('y1', (1 - trace.gauge.threshold.thickness) / 2 * bulletHeight)\n .attr('y2', (1 - (1 - trace.gauge.threshold.thickness) / 2) * bulletHeight)\n .call(Color.stroke, trace.gauge.threshold.line.color)\n .style('stroke-width', trace.gauge.threshold.line.width);\n threshold.exit().remove();\n\n var bulletOutline = bullet.selectAll('g.gauge-outline').data([gaugeOutline]);\n bulletOutline.enter().append('g').classed('gauge-outline', true).append('rect');\n bulletOutline.select('rect')\n .call(drawRect)\n .call(styleShape);\n bulletOutline.exit().remove();\n}\n\nfunction drawAngularGauge(gd, plotGroup, cd, opts) {\n var trace = cd[0].trace;\n\n var size = opts.size;\n var radius = opts.radius;\n var innerRadius = opts.innerRadius;\n var gaugeBg = opts.gaugeBg;\n var gaugeOutline = opts.gaugeOutline;\n var gaugePosition = [size.l + size.w / 2, size.t + size.h / 2 + radius / 2];\n var gauge = opts.gauge;\n var axisLayer = opts.layer;\n\n var transitionOpts = opts.transitionOpts;\n var onComplete = opts.onComplete;\n\n // circular gauge\n var theta = Math.PI / 2;\n function valueToAngle(v) {\n var min = trace.gauge.axis.range[0];\n var max = trace.gauge.axis.range[1];\n var angle = (v - min) / (max - min) * Math.PI - theta;\n if(angle < -theta) return -theta;\n if(angle > theta) return theta;\n return angle;\n }\n\n function arcPathGenerator(size) {\n return d3.svg.arc()\n .innerRadius((innerRadius + radius) / 2 - size / 2 * (radius - innerRadius))\n .outerRadius((innerRadius + radius) / 2 + size / 2 * (radius - innerRadius))\n .startAngle(-theta);\n }\n\n function drawArc(p) {\n p\n .attr('d', function(d) {\n return arcPathGenerator(d.thickness)\n .startAngle(valueToAngle(d.range[0]))\n .endAngle(valueToAngle(d.range[1]))();\n });\n }\n\n // preparing axis\n var ax, vals, transFn, tickSign;\n\n // Enter gauge and axis\n gauge.enter().append('g').classed('angular', true);\n gauge.attr('transform', strTranslate(gaugePosition[0], gaugePosition[1]));\n\n axisLayer.enter().append('g')\n .classed('angularaxis', true)\n .classed('crisp', true);\n axisLayer.selectAll('g.' + 'xangularaxis' + 'tick,path,text').remove();\n\n ax = mockAxis(gd, trace.gauge.axis);\n ax.type = 'linear';\n ax.range = trace.gauge.axis.range;\n ax._id = 'xangularaxis'; // or 'y', but I don't think this makes a difference here\n ax.setScale();\n\n // 't'ick to 'g'eometric radians is used all over the place here\n var t2g = function(d) {\n return (ax.range[0] - d.x) / (ax.range[1] - ax.range[0]) * Math.PI + Math.PI;\n };\n\n var labelFns = {};\n var out = Axes.makeLabelFns(ax, 0);\n var labelStandoff = out.labelStandoff;\n labelFns.xFn = function(d) {\n var rad = t2g(d);\n return Math.cos(rad) * labelStandoff;\n };\n labelFns.yFn = function(d) {\n var rad = t2g(d);\n var ff = Math.sin(rad) > 0 ? 0.2 : 1;\n return -Math.sin(rad) * (labelStandoff + d.fontSize * ff) +\n Math.abs(Math.cos(rad)) * (d.fontSize * MID_SHIFT);\n };\n labelFns.anchorFn = function(d) {\n var rad = t2g(d);\n var cos = Math.cos(rad);\n return Math.abs(cos) < 0.1 ?\n 'middle' :\n (cos > 0 ? 'start' : 'end');\n };\n labelFns.heightFn = function(d, a, h) {\n var rad = t2g(d);\n return -0.5 * (1 + Math.sin(rad)) * h;\n };\n var _transFn = function(rad) {\n return strTranslate(\n gaugePosition[0] + radius * Math.cos(rad),\n gaugePosition[1] - radius * Math.sin(rad)\n );\n };\n transFn = function(d) {\n return _transFn(t2g(d));\n };\n var transFn2 = function(d) {\n var rad = t2g(d);\n return _transFn(rad) + 'rotate(' + -rad2deg(rad) + ')';\n };\n vals = Axes.calcTicks(ax);\n tickSign = Axes.getTickSigns(ax)[2];\n if(ax.visible) {\n tickSign = ax.ticks === 'inside' ? -1 : 1;\n var pad = (ax.linewidth || 1) / 2;\n Axes.drawTicks(gd, ax, {\n vals: vals,\n layer: axisLayer,\n path: 'M' + (tickSign * pad) + ',0h' + (tickSign * ax.ticklen),\n transFn: transFn2\n });\n Axes.drawLabels(gd, ax, {\n vals: vals,\n layer: axisLayer,\n transFn: transFn,\n labelFns: labelFns\n });\n }\n\n // Draw background + steps\n var arcs = [gaugeBg].concat(trace.gauge.steps);\n var bgArc = gauge.selectAll('g.bg-arc').data(arcs);\n bgArc.enter().append('g').classed('bg-arc', true).append('path');\n bgArc.select('path').call(drawArc).call(styleShape);\n bgArc.exit().remove();\n\n // Draw foreground with transition\n var valueArcPathGenerator = arcPathGenerator(trace.gauge.bar.thickness);\n var valueArc = gauge.selectAll('g.value-arc').data([trace.gauge.bar]);\n valueArc.enter().append('g').classed('value-arc', true).append('path');\n var valueArcPath = valueArc.select('path');\n if(hasTransition(transitionOpts)) {\n valueArcPath\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing)\n .each('end', function() { onComplete && onComplete(); })\n .each('interrupt', function() { onComplete && onComplete(); })\n .attrTween('d', arcTween(valueArcPathGenerator, valueToAngle(cd[0].lastY), valueToAngle(cd[0].y)));\n trace._lastValue = cd[0].y;\n } else {\n valueArcPath.attr('d', typeof cd[0].y === 'number' ?\n valueArcPathGenerator.endAngle(valueToAngle(cd[0].y)) :\n 'M0,0Z');\n }\n valueArcPath.call(styleShape);\n valueArc.exit().remove();\n\n // Draw threshold\n arcs = [];\n var v = trace.gauge.threshold.value;\n if(v) {\n arcs.push({\n range: [v, v],\n color: trace.gauge.threshold.color,\n line: {\n color: trace.gauge.threshold.line.color,\n width: trace.gauge.threshold.line.width\n },\n thickness: trace.gauge.threshold.thickness\n });\n }\n var thresholdArc = gauge.selectAll('g.threshold-arc').data(arcs);\n thresholdArc.enter().append('g').classed('threshold-arc', true).append('path');\n thresholdArc.select('path').call(drawArc).call(styleShape);\n thresholdArc.exit().remove();\n\n // Draw border last\n var gaugeBorder = gauge.selectAll('g.gauge-outline').data([gaugeOutline]);\n gaugeBorder.enter().append('g').classed('gauge-outline', true).append('path');\n gaugeBorder.select('path').call(drawArc).call(styleShape);\n gaugeBorder.exit().remove();\n}\n\nfunction drawNumbers(gd, plotGroup, cd, opts) {\n var trace = cd[0].trace;\n\n var numbersX = opts.numbersX;\n var numbersY = opts.numbersY;\n var numbersAlign = trace.align || 'center';\n var numbersAnchor = anchor[numbersAlign];\n\n var transitionOpts = opts.transitionOpts;\n var onComplete = opts.onComplete;\n\n var numbers = Lib.ensureSingle(plotGroup, 'g', 'numbers');\n var bignumberbBox, deltabBox;\n var numbersbBox;\n\n var data = [];\n if(trace._hasNumber) data.push('number');\n if(trace._hasDelta) {\n data.push('delta');\n if(trace.delta.position === 'left') data.reverse();\n }\n var sel = numbers.selectAll('text').data(data);\n sel.enter().append('text');\n sel\n .attr('text-anchor', function() {return numbersAnchor;})\n .attr('class', function(d) { return d;})\n .attr('x', null)\n .attr('y', null)\n .attr('dx', null)\n .attr('dy', null);\n sel.exit().remove();\n\n // Function to override the number formatting used during transitions\n function transitionFormat(valueformat, fmt, from, to) {\n // For now, do not display SI prefix if start and end value do not have any\n if(valueformat.match('s') && // If using SI prefix\n (from >= 0 !== to >= 0) && // If sign change\n (!fmt(from).slice(-1).match(SI_PREFIX) && !fmt(to).slice(-1).match(SI_PREFIX)) // Has no SI prefix\n ) {\n var transitionValueFormat = valueformat.slice().replace('s', 'f').replace(/\\d+/, function(m) { return parseInt(m) - 1;});\n var transitionAx = mockAxis(gd, {tickformat: transitionValueFormat});\n return function(v) {\n // Switch to fixed precision if number is smaller than one\n if(Math.abs(v) < 1) return Axes.tickText(transitionAx, v).text;\n return fmt(v);\n };\n } else {\n return fmt;\n }\n }\n\n function drawBignumber() {\n var bignumberAx = mockAxis(gd, {tickformat: trace.number.valueformat}, trace._range);\n bignumberAx.setScale();\n Axes.prepTicks(bignumberAx);\n\n var fmt = function(v) { return Axes.tickText(bignumberAx, v).text;};\n var bignumberSuffix = trace.number.suffix;\n var bignumberPrefix = trace.number.prefix;\n\n var number = numbers.select('text.number');\n\n function writeNumber() {\n var txt = typeof cd[0].y === 'number' ?\n bignumberPrefix + fmt(cd[0].y) + bignumberSuffix :\n '-';\n number.text(txt)\n .call(Drawing.font, trace.number.font)\n .call(svgTextUtils.convertToTspans, gd);\n }\n\n if(hasTransition(transitionOpts)) {\n number\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing)\n .each('end', function() { writeNumber(); onComplete && onComplete(); })\n .each('interrupt', function() { writeNumber(); onComplete && onComplete(); })\n .attrTween('text', function() {\n var that = d3.select(this);\n var interpolator = d3.interpolateNumber(cd[0].lastY, cd[0].y);\n trace._lastValue = cd[0].y;\n\n var transitionFmt = transitionFormat(trace.number.valueformat, fmt, cd[0].lastY, cd[0].y);\n return function(t) {\n that.text(bignumberPrefix + transitionFmt(interpolator(t)) + bignumberSuffix);\n };\n });\n } else {\n writeNumber();\n }\n\n bignumberbBox = measureText(bignumberPrefix + fmt(cd[0].y) + bignumberSuffix, trace.number.font, numbersAnchor, gd);\n return number;\n }\n\n function drawDelta() {\n var deltaAx = mockAxis(gd, {tickformat: trace.delta.valueformat}, trace._range);\n deltaAx.setScale();\n Axes.prepTicks(deltaAx);\n\n var deltaFmt = function(v) { return Axes.tickText(deltaAx, v).text;};\n var deltaValue = function(d) {\n var value = trace.delta.relative ? d.relativeDelta : d.delta;\n return value;\n };\n var deltaFormatText = function(value, numberFmt) {\n if(value === 0 || typeof value !== 'number' || isNaN(value)) return '-';\n return (value > 0 ? trace.delta.increasing.symbol : trace.delta.decreasing.symbol) + numberFmt(value);\n };\n var deltaFill = function(d) {\n return d.delta >= 0 ? trace.delta.increasing.color : trace.delta.decreasing.color;\n };\n if(trace._deltaLastValue === undefined) {\n trace._deltaLastValue = deltaValue(cd[0]);\n }\n var delta = numbers.select('text.delta');\n delta\n .call(Drawing.font, trace.delta.font)\n .call(Color.fill, deltaFill({delta: trace._deltaLastValue}));\n\n function writeDelta() {\n delta.text(deltaFormatText(deltaValue(cd[0]), deltaFmt))\n .call(Color.fill, deltaFill(cd[0]))\n .call(svgTextUtils.convertToTspans, gd);\n }\n\n if(hasTransition(transitionOpts)) {\n delta\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing)\n .tween('text', function() {\n var that = d3.select(this);\n var to = deltaValue(cd[0]);\n var from = trace._deltaLastValue;\n var transitionFmt = transitionFormat(trace.delta.valueformat, deltaFmt, from, to);\n var interpolator = d3.interpolateNumber(from, to);\n trace._deltaLastValue = to;\n return function(t) {\n that.text(deltaFormatText(interpolator(t), transitionFmt));\n that.call(Color.fill, deltaFill({delta: interpolator(t)}));\n };\n })\n .each('end', function() { writeDelta(); onComplete && onComplete(); })\n .each('interrupt', function() { writeDelta(); onComplete && onComplete(); });\n } else {\n writeDelta();\n }\n\n deltabBox = measureText(deltaFormatText(deltaValue(cd[0]), deltaFmt), trace.delta.font, numbersAnchor, gd);\n return delta;\n }\n\n var key = trace.mode + trace.align;\n var delta;\n if(trace._hasDelta) {\n delta = drawDelta();\n key += trace.delta.position + trace.delta.font.size + trace.delta.font.family + trace.delta.valueformat;\n key += trace.delta.increasing.symbol + trace.delta.decreasing.symbol;\n numbersbBox = deltabBox;\n }\n if(trace._hasNumber) {\n drawBignumber();\n key += trace.number.font.size + trace.number.font.family + trace.number.valueformat + trace.number.suffix + trace.number.prefix;\n numbersbBox = bignumberbBox;\n }\n\n // Position delta relative to bignumber\n if(trace._hasDelta && trace._hasNumber) {\n var bignumberCenter = [\n (bignumberbBox.left + bignumberbBox.right) / 2,\n (bignumberbBox.top + bignumberbBox.bottom) / 2\n ];\n var deltaCenter = [\n (deltabBox.left + deltabBox.right) / 2,\n (deltabBox.top + deltabBox.bottom) / 2\n ];\n\n var dx, dy;\n var padding = 0.75 * trace.delta.font.size;\n if(trace.delta.position === 'left') {\n dx = cache(trace, 'deltaPos', 0, -1 * (bignumberbBox.width * (position[trace.align]) + deltabBox.width * (1 - position[trace.align]) + padding), key, Math.min);\n dy = bignumberCenter[1] - deltaCenter[1];\n\n numbersbBox = {\n width: bignumberbBox.width + deltabBox.width + padding,\n height: Math.max(bignumberbBox.height, deltabBox.height),\n left: deltabBox.left + dx,\n right: bignumberbBox.right,\n top: Math.min(bignumberbBox.top, deltabBox.top + dy),\n bottom: Math.max(bignumberbBox.bottom, deltabBox.bottom + dy)\n };\n }\n if(trace.delta.position === 'right') {\n dx = cache(trace, 'deltaPos', 0, bignumberbBox.width * (1 - position[trace.align]) + deltabBox.width * position[trace.align] + padding, key, Math.max);\n dy = bignumberCenter[1] - deltaCenter[1];\n\n numbersbBox = {\n width: bignumberbBox.width + deltabBox.width + padding,\n height: Math.max(bignumberbBox.height, deltabBox.height),\n left: bignumberbBox.left,\n right: deltabBox.right + dx,\n top: Math.min(bignumberbBox.top, deltabBox.top + dy),\n bottom: Math.max(bignumberbBox.bottom, deltabBox.bottom + dy)\n };\n }\n if(trace.delta.position === 'bottom') {\n dx = null;\n dy = deltabBox.height;\n\n numbersbBox = {\n width: Math.max(bignumberbBox.width, deltabBox.width),\n height: bignumberbBox.height + deltabBox.height,\n left: Math.min(bignumberbBox.left, deltabBox.left),\n right: Math.max(bignumberbBox.right, deltabBox.right),\n top: bignumberbBox.bottom - bignumberbBox.height,\n bottom: bignumberbBox.bottom + deltabBox.height\n };\n }\n if(trace.delta.position === 'top') {\n dx = null;\n dy = bignumberbBox.top;\n\n numbersbBox = {\n width: Math.max(bignumberbBox.width, deltabBox.width),\n height: bignumberbBox.height + deltabBox.height,\n left: Math.min(bignumberbBox.left, deltabBox.left),\n right: Math.max(bignumberbBox.right, deltabBox.right),\n top: bignumberbBox.bottom - bignumberbBox.height - deltabBox.height,\n bottom: bignumberbBox.bottom\n };\n }\n\n delta.attr({dx: dx, dy: dy});\n }\n\n // Resize numbers to fit within space and position\n if(trace._hasNumber || trace._hasDelta) {\n numbers.attr('transform', function() {\n var m = opts.numbersScaler(numbersbBox);\n key += m[2];\n var scaleRatio = cache(trace, 'numbersScale', 1, m[0], key, Math.min);\n var translateY;\n if(!trace._scaleNumbers) scaleRatio = 1;\n if(trace._isAngular) {\n // align vertically to bottom\n translateY = numbersY - scaleRatio * numbersbBox.bottom;\n } else {\n // align vertically to center\n translateY = numbersY - scaleRatio * (numbersbBox.top + numbersbBox.bottom) / 2;\n }\n\n // Stash the top position of numbersbBox for title positioning\n trace._numbersTop = scaleRatio * (numbersbBox.top) + translateY;\n\n var ref = numbersbBox[numbersAlign];\n if(numbersAlign === 'center') ref = (numbersbBox.left + numbersbBox.right) / 2;\n var translateX = numbersX - scaleRatio * ref;\n\n // Stash translateX\n translateX = cache(trace, 'numbersTranslate', 0, translateX, key, Math.max);\n return strTranslate(translateX, translateY) + ' scale(' + scaleRatio + ')';\n });\n }\n}\n\n// Apply fill, stroke, stroke-width to SVG shape\nfunction styleShape(p) {\n p\n .each(function(d) { Color.stroke(d3.select(this), d.line.color);})\n .each(function(d) { Color.fill(d3.select(this), d.color);})\n .style('stroke-width', function(d) { return d.line.width;});\n}\n\n// Returns a tween for a transition’s \"d\" attribute, transitioning any selected\n// arcs from their current angle to the specified new angle.\nfunction arcTween(arc, endAngle, newAngle) {\n return function() {\n var interpolate = d3.interpolate(endAngle, newAngle);\n return function(t) {\n return arc.endAngle(interpolate(t))();\n };\n };\n}\n\n// mocks our axis\nfunction mockAxis(gd, opts, zrange) {\n var fullLayout = gd._fullLayout;\n\n var axisIn = Lib.extendFlat({\n type: 'linear',\n ticks: 'outside',\n range: zrange,\n showline: true\n }, opts);\n\n var axisOut = {\n type: 'linear',\n _id: 'x' + opts._id\n };\n\n var axisOptions = {\n letter: 'x',\n font: fullLayout.font,\n noHover: true,\n noTickson: true\n };\n\n function coerce(attr, dflt) {\n return Lib.coerce(axisIn, axisOut, axisLayoutAttrs, attr, dflt);\n }\n\n handleAxisDefaults(axisIn, axisOut, coerce, axisOptions, fullLayout);\n handleAxisPositionDefaults(axisIn, axisOut, coerce, axisOptions);\n\n return axisOut;\n}\n\nfunction strTranslate(x, y) {\n return 'translate(' + x + ',' + y + ')';\n}\n\nfunction fitTextInsideBox(textBB, width, height) {\n // compute scaling ratio to have text fit within specified width and height\n var ratio = Math.min(width / textBB.width, height / textBB.height);\n return [ratio, textBB, width + 'x' + height];\n}\n\nfunction fitTextInsideCircle(textBB, radius) {\n // compute scaling ratio to have text fit within specified radius\n var elRadius = Math.sqrt((textBB.width / 2) * (textBB.width / 2) + textBB.height * textBB.height);\n var ratio = radius / elRadius;\n return [ratio, textBB, radius];\n}\n\nfunction measureText(txt, font, textAnchor, gd) {\n var element = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n var sel = d3.select(element);\n sel.text(txt)\n .attr('x', 0)\n .attr('y', 0)\n .attr('text-anchor', textAnchor)\n .attr('data-unformatted', txt)\n .call(svgTextUtils.convertToTspans, gd)\n .call(Drawing.font, font);\n return Drawing.bBox(sel.node());\n}\n\nfunction cache(trace, name, initialValue, value, key, fn) {\n var objName = '_cache' + name;\n if(!(trace[objName] && trace[objName].key === key)) {\n trace[objName] = {key: key, value: initialValue};\n }\n var v = Lib.aggNums(fn, null, [trace[objName].value, value], 2);\n trace[objName].value = v;\n\n return v;\n}\n\n\n/***/ }),\n\n/***/ \"792f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar scatterPolarAttrs = __webpack_require__(\"8a6e\");\nvar barAttrs = __webpack_require__(\"fb5a\");\n\nmodule.exports = {\n r: scatterPolarAttrs.r,\n theta: scatterPolarAttrs.theta,\n r0: scatterPolarAttrs.r0,\n dr: scatterPolarAttrs.dr,\n theta0: scatterPolarAttrs.theta0,\n dtheta: scatterPolarAttrs.dtheta,\n thetaunit: scatterPolarAttrs.thetaunit,\n\n // orientation: {\n // valType: 'enumerated',\n // \n // values: ['radial', 'angular'],\n // editType: 'calc+clearAxisTypes',\n // \n // },\n\n base: extendFlat({}, barAttrs.base, {\n \n }),\n offset: extendFlat({}, barAttrs.offset, {\n \n }),\n width: extendFlat({}, barAttrs.width, {\n \n }),\n\n text: extendFlat({}, barAttrs.text, {\n \n }),\n hovertext: extendFlat({}, barAttrs.hovertext, {\n \n }),\n\n // textposition: {},\n // textfont: {},\n // insidetextfont: {},\n // outsidetextfont: {},\n // constraintext: {},\n // cliponaxis: extendFlat({}, barAttrs.cliponaxis, {dflt: false}),\n\n marker: barAttrs.marker,\n\n hoverinfo: scatterPolarAttrs.hoverinfo,\n hovertemplate: hovertemplateAttrs(),\n\n selected: barAttrs.selected,\n unselected: barAttrs.unselected\n\n // error_x (error_r, error_theta)\n // error_y\n};\n\n\n/***/ }),\n\n/***/ \"794e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar createBuffer = __webpack_require__(\"efce\")\nvar createVAO = __webpack_require__(\"b205\")\nvar createShader = __webpack_require__(\"e4eb\")\n\nmodule.exports = createSpikes\n\nvar identity = [1,0,0,0,\n 0,1,0,0,\n 0,0,1,0,\n 0,0,0,1]\n\nfunction AxisSpikes(gl, buffer, vao, shader) {\n this.gl = gl\n this.buffer = buffer\n this.vao = vao\n this.shader = shader\n this.pixelRatio = 1\n this.bounds = [[-1000,-1000,-1000], [1000,1000,1000]]\n this.position = [0,0,0]\n this.lineWidth = [2,2,2]\n this.colors = [[0,0,0,1], [0,0,0,1], [0,0,0,1]]\n this.enabled = [true,true,true]\n this.drawSides = [true,true,true]\n this.axes = null\n}\n\nvar proto = AxisSpikes.prototype\n\nvar OUTER_FACE = [0,0,0]\nvar INNER_FACE = [0,0,0]\n\nvar SHAPE = [0,0]\n\nproto.isTransparent = function() {\n return false\n}\n\nproto.drawTransparent = function(camera) {}\n\nproto.draw = function(camera) {\n var gl = this.gl\n var vao = this.vao\n var shader = this.shader\n\n vao.bind()\n shader.bind()\n\n var model = camera.model || identity\n var view = camera.view || identity\n var projection = camera.projection || identity\n\n var axis\n if(this.axes) {\n axis = this.axes.lastCubeProps.axis\n }\n\n var outerFace = OUTER_FACE\n var innerFace = INNER_FACE\n for(var i=0; i<3; ++i) {\n if(axis && axis[i] < 0) {\n outerFace[i] = this.bounds[0][i]\n innerFace[i] = this.bounds[1][i]\n } else {\n outerFace[i] = this.bounds[1][i]\n innerFace[i] = this.bounds[0][i]\n }\n }\n\n SHAPE[0] = gl.drawingBufferWidth\n SHAPE[1] = gl.drawingBufferHeight\n\n shader.uniforms.model = model\n shader.uniforms.view = view\n shader.uniforms.projection = projection\n shader.uniforms.coordinates = [this.position, outerFace, innerFace]\n shader.uniforms.colors = this.colors\n shader.uniforms.screenShape = SHAPE\n\n for(var i=0; i<3; ++i) {\n shader.uniforms.lineWidth = this.lineWidth[i] * this.pixelRatio\n if(this.enabled[i]) {\n vao.draw(gl.TRIANGLES, 6, 6*i)\n if(this.drawSides[i]) {\n vao.draw(gl.TRIANGLES, 12, 18+12*i)\n }\n }\n }\n\n vao.unbind()\n}\n\nproto.update = function(options) {\n if(!options) {\n return\n }\n if(\"bounds\" in options) {\n this.bounds = options.bounds\n }\n if(\"position\" in options) {\n this.position = options.position\n }\n if(\"lineWidth\" in options) {\n this.lineWidth = options.lineWidth\n }\n if(\"colors\" in options) {\n this.colors = options.colors\n }\n if(\"enabled\" in options) {\n this.enabled = options.enabled\n }\n if(\"drawSides\" in options) {\n this.drawSides = options.drawSides\n }\n}\n\nproto.dispose = function() {\n this.vao.dispose()\n this.buffer.dispose()\n this.shader.dispose()\n}\n\n\n\nfunction createSpikes(gl, options) {\n //Create buffers\n var data = [ ]\n\n function line(x,y,z,i,l,h) {\n var row = [x,y,z, 0,0,0, 1]\n row[i+3] = 1\n row[i] = l\n data.push.apply(data, row)\n row[6] = -1\n data.push.apply(data, row)\n row[i] = h\n data.push.apply(data, row)\n data.push.apply(data, row)\n row[6] = 1\n data.push.apply(data, row)\n row[i] = l\n data.push.apply(data, row)\n }\n\n line(0,0,0, 0, 0, 1)\n line(0,0,0, 1, 0, 1)\n line(0,0,0, 2, 0, 1)\n\n line(1,0,0, 1, -1,1)\n line(1,0,0, 2, -1,1)\n\n line(0,1,0, 0, -1,1)\n line(0,1,0, 2, -1,1)\n\n line(0,0,1, 0, -1,1)\n line(0,0,1, 1, -1,1)\n\n var buffer = createBuffer(gl, data)\n var vao = createVAO(gl, [{\n type: gl.FLOAT,\n buffer: buffer,\n size: 3,\n offset: 0,\n stride: 28\n }, {\n type: gl.FLOAT,\n buffer: buffer,\n size: 3,\n offset: 12,\n stride: 28\n }, {\n type: gl.FLOAT,\n buffer: buffer,\n size: 1,\n offset: 24,\n stride: 28\n }])\n\n //Create shader\n var shader = createShader(gl)\n shader.attributes.position.location = 0\n shader.attributes.color.location = 1\n shader.attributes.weight.location = 2\n\n //Create spike object\n var spikes = new AxisSpikes(gl, buffer, vao, shader)\n\n //Set parameters\n spikes.update(options)\n\n //Return resulting object\n return spikes\n}\n\n\n/***/ }),\n\n/***/ \"7974\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar counterRegex = __webpack_require__(\"055a\").counter;\nvar domainAttrs = __webpack_require__(\"81f0\").attributes;\nvar cartesianIdRegex = __webpack_require__(\"d301\").idRegex;\nvar Template = __webpack_require__(\"a651\");\n\nvar gridAttrs = {\n rows: {\n valType: 'integer',\n min: 1,\n \n editType: 'plot',\n \n },\n roworder: {\n valType: 'enumerated',\n values: ['top to bottom', 'bottom to top'],\n dflt: 'top to bottom',\n \n editType: 'plot',\n \n },\n columns: {\n valType: 'integer',\n min: 1,\n \n editType: 'plot',\n \n },\n subplots: {\n valType: 'info_array',\n freeLength: true,\n dimensions: 2,\n items: {valType: 'enumerated', values: [counterRegex('xy').toString(), ''], editType: 'plot'},\n \n editType: 'plot',\n \n },\n xaxes: {\n valType: 'info_array',\n freeLength: true,\n items: {valType: 'enumerated', values: [cartesianIdRegex.x.toString(), ''], editType: 'plot'},\n \n editType: 'plot',\n \n },\n yaxes: {\n valType: 'info_array',\n freeLength: true,\n items: {valType: 'enumerated', values: [cartesianIdRegex.y.toString(), ''], editType: 'plot'},\n \n editType: 'plot',\n \n },\n pattern: {\n valType: 'enumerated',\n values: ['independent', 'coupled'],\n dflt: 'coupled',\n \n editType: 'plot',\n \n },\n xgap: {\n valType: 'number',\n min: 0,\n max: 1,\n \n editType: 'plot',\n \n },\n ygap: {\n valType: 'number',\n min: 0,\n max: 1,\n \n editType: 'plot',\n \n },\n domain: domainAttrs({name: 'grid', editType: 'plot', noGridCell: true}, {\n \n }),\n xside: {\n valType: 'enumerated',\n values: ['bottom', 'bottom plot', 'top plot', 'top'],\n dflt: 'bottom plot',\n \n editType: 'plot',\n \n },\n yside: {\n valType: 'enumerated',\n values: ['left', 'left plot', 'right plot', 'right'],\n dflt: 'left plot',\n \n editType: 'plot',\n \n },\n editType: 'plot'\n};\n\nfunction getAxes(layout, grid, axLetter) {\n var gridVal = grid[axLetter + 'axes'];\n var splomVal = Object.keys((layout._splomAxes || {})[axLetter] || {});\n\n if(Array.isArray(gridVal)) return gridVal;\n if(splomVal.length) return splomVal;\n}\n\n// the shape of the grid - this needs to be done BEFORE supplyDataDefaults\n// so that non-subplot traces can place themselves in the grid\nfunction sizeDefaults(layoutIn, layoutOut) {\n var gridIn = layoutIn.grid || {};\n var xAxes = getAxes(layoutOut, gridIn, 'x');\n var yAxes = getAxes(layoutOut, gridIn, 'y');\n\n if(!layoutIn.grid && !xAxes && !yAxes) return;\n\n var hasSubplotGrid = Array.isArray(gridIn.subplots) && Array.isArray(gridIn.subplots[0]);\n var hasXaxes = Array.isArray(xAxes);\n var hasYaxes = Array.isArray(yAxes);\n var isSplomGenerated = (\n hasXaxes && xAxes !== gridIn.xaxes &&\n hasYaxes && yAxes !== gridIn.yaxes\n );\n\n var dfltRows, dfltColumns;\n\n if(hasSubplotGrid) {\n dfltRows = gridIn.subplots.length;\n dfltColumns = gridIn.subplots[0].length;\n } else {\n if(hasYaxes) dfltRows = yAxes.length;\n if(hasXaxes) dfltColumns = xAxes.length;\n }\n\n var gridOut = Template.newContainer(layoutOut, 'grid');\n\n function coerce(attr, dflt) {\n return Lib.coerce(gridIn, gridOut, gridAttrs, attr, dflt);\n }\n\n var rows = coerce('rows', dfltRows);\n var columns = coerce('columns', dfltColumns);\n\n if(!(rows * columns > 1)) {\n delete layoutOut.grid;\n return;\n }\n\n if(!hasSubplotGrid && !hasXaxes && !hasYaxes) {\n var useDefaultSubplots = coerce('pattern') === 'independent';\n if(useDefaultSubplots) hasSubplotGrid = true;\n }\n gridOut._hasSubplotGrid = hasSubplotGrid;\n\n var rowOrder = coerce('roworder');\n var reversed = rowOrder === 'top to bottom';\n\n var dfltGapX = hasSubplotGrid ? 0.2 : 0.1;\n var dfltGapY = hasSubplotGrid ? 0.3 : 0.1;\n\n var dfltSideX, dfltSideY;\n if(isSplomGenerated && layoutOut._splomGridDflt) {\n dfltSideX = layoutOut._splomGridDflt.xside;\n dfltSideY = layoutOut._splomGridDflt.yside;\n }\n\n gridOut._domains = {\n x: fillGridPositions('x', coerce, dfltGapX, dfltSideX, columns),\n y: fillGridPositions('y', coerce, dfltGapY, dfltSideY, rows, reversed)\n };\n}\n\n// coerce x or y sizing attributes and return an array of domains for this direction\nfunction fillGridPositions(axLetter, coerce, dfltGap, dfltSide, len, reversed) {\n var dirGap = coerce(axLetter + 'gap', dfltGap);\n var domain = coerce('domain.' + axLetter);\n coerce(axLetter + 'side', dfltSide);\n\n var out = new Array(len);\n var start = domain[0];\n var step = (domain[1] - start) / (len - dirGap);\n var cellDomain = step * (1 - dirGap);\n for(var i = 0; i < len; i++) {\n var cellStart = start + step * i;\n out[reversed ? (len - 1 - i) : i] = [cellStart, cellStart + cellDomain];\n }\n return out;\n}\n\n// the (cartesian) contents of the grid - this needs to happen AFTER supplyDataDefaults\n// so that we know what cartesian subplots are available\nfunction contentDefaults(layoutIn, layoutOut) {\n var gridOut = layoutOut.grid;\n // make sure we got to the end of handleGridSizing\n if(!gridOut || !gridOut._domains) return;\n\n var gridIn = layoutIn.grid || {};\n var subplots = layoutOut._subplots;\n var hasSubplotGrid = gridOut._hasSubplotGrid;\n var rows = gridOut.rows;\n var columns = gridOut.columns;\n var useDefaultSubplots = gridOut.pattern === 'independent';\n\n var i, j, xId, yId, subplotId, subplotsOut, yPos;\n\n var axisMap = gridOut._axisMap = {};\n\n if(hasSubplotGrid) {\n var subplotsIn = gridIn.subplots || [];\n subplotsOut = gridOut.subplots = new Array(rows);\n var index = 1;\n\n for(i = 0; i < rows; i++) {\n var rowOut = subplotsOut[i] = new Array(columns);\n var rowIn = subplotsIn[i] || [];\n for(j = 0; j < columns; j++) {\n if(useDefaultSubplots) {\n subplotId = (index === 1) ? 'xy' : ('x' + index + 'y' + index);\n index++;\n } else subplotId = rowIn[j];\n\n rowOut[j] = '';\n\n if(subplots.cartesian.indexOf(subplotId) !== -1) {\n yPos = subplotId.indexOf('y');\n xId = subplotId.slice(0, yPos);\n yId = subplotId.slice(yPos);\n if((axisMap[xId] !== undefined && axisMap[xId] !== j) ||\n (axisMap[yId] !== undefined && axisMap[yId] !== i)\n ) {\n continue;\n }\n\n rowOut[j] = subplotId;\n axisMap[xId] = j;\n axisMap[yId] = i;\n }\n }\n }\n } else {\n var xAxes = getAxes(layoutOut, gridIn, 'x');\n var yAxes = getAxes(layoutOut, gridIn, 'y');\n gridOut.xaxes = fillGridAxes(xAxes, subplots.xaxis, columns, axisMap, 'x');\n gridOut.yaxes = fillGridAxes(yAxes, subplots.yaxis, rows, axisMap, 'y');\n }\n\n var anchors = gridOut._anchors = {};\n var reversed = gridOut.roworder === 'top to bottom';\n\n for(var axisId in axisMap) {\n var axLetter = axisId.charAt(0);\n var side = gridOut[axLetter + 'side'];\n\n var i0, inc, iFinal;\n\n if(side.length < 8) {\n // grid edge - ie not \"* plot\" - make these as free axes\n // since we're not guaranteed to have a subplot there at all\n anchors[axisId] = 'free';\n } else if(axLetter === 'x') {\n if((side.charAt(0) === 't') === reversed) {\n i0 = 0;\n inc = 1;\n iFinal = rows;\n } else {\n i0 = rows - 1;\n inc = -1;\n iFinal = -1;\n }\n if(hasSubplotGrid) {\n var column = axisMap[axisId];\n for(i = i0; i !== iFinal; i += inc) {\n subplotId = subplotsOut[i][column];\n if(!subplotId) continue;\n yPos = subplotId.indexOf('y');\n if(subplotId.slice(0, yPos) === axisId) {\n anchors[axisId] = subplotId.slice(yPos);\n break;\n }\n }\n } else {\n for(i = i0; i !== iFinal; i += inc) {\n yId = gridOut.yaxes[i];\n if(subplots.cartesian.indexOf(axisId + yId) !== -1) {\n anchors[axisId] = yId;\n break;\n }\n }\n }\n } else {\n if((side.charAt(0) === 'l')) {\n i0 = 0;\n inc = 1;\n iFinal = columns;\n } else {\n i0 = columns - 1;\n inc = -1;\n iFinal = -1;\n }\n if(hasSubplotGrid) {\n var row = axisMap[axisId];\n for(i = i0; i !== iFinal; i += inc) {\n subplotId = subplotsOut[row][i];\n if(!subplotId) continue;\n yPos = subplotId.indexOf('y');\n if(subplotId.slice(yPos) === axisId) {\n anchors[axisId] = subplotId.slice(0, yPos);\n break;\n }\n }\n } else {\n for(i = i0; i !== iFinal; i += inc) {\n xId = gridOut.xaxes[i];\n if(subplots.cartesian.indexOf(xId + axisId) !== -1) {\n anchors[axisId] = xId;\n break;\n }\n }\n }\n }\n }\n}\n\nfunction fillGridAxes(axesIn, axesAllowed, len, axisMap, axLetter) {\n var out = new Array(len);\n var i;\n\n function fillOneAxis(i, axisId) {\n if(axesAllowed.indexOf(axisId) !== -1 && axisMap[axisId] === undefined) {\n out[i] = axisId;\n axisMap[axisId] = i;\n } else out[i] = '';\n }\n\n if(Array.isArray(axesIn)) {\n for(i = 0; i < len; i++) {\n fillOneAxis(i, axesIn[i]);\n }\n } else {\n // default axis list is the first `len` axis ids\n fillOneAxis(0, axLetter);\n for(i = 1; i < len; i++) {\n fillOneAxis(i, axLetter + (i + 1));\n }\n }\n\n return out;\n}\n\nmodule.exports = {\n moduleType: 'component',\n name: 'grid',\n\n schema: {\n layout: {grid: gridAttrs}\n },\n\n layoutAttributes: gridAttrs,\n sizeDefaults: sizeDefaults,\n contentDefaults: contentDefaults\n};\n\n\n/***/ }),\n\n/***/ \"7988\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar parcoords = __webpack_require__(\"baec\");\nvar prepareRegl = __webpack_require__(\"cf42\");\nvar isVisible = __webpack_require__(\"2ee6\").isVisible;\n\nfunction newIndex(visibleIndices, orig, dim) {\n var origIndex = orig.indexOf(dim);\n var currentIndex = visibleIndices.indexOf(origIndex);\n if(currentIndex === -1) {\n // invisible dimensions initially go to the end\n currentIndex += orig.length;\n }\n return currentIndex;\n}\n\nfunction sorter(visibleIndices, orig) {\n return function sorter(d1, d2) {\n return (\n newIndex(visibleIndices, orig, d1) -\n newIndex(visibleIndices, orig, d2)\n );\n };\n}\n\nmodule.exports = function plot(gd, cdModule) {\n var fullLayout = gd._fullLayout;\n\n var success = prepareRegl(gd);\n if(!success) return;\n\n var currentDims = {};\n var initialDims = {};\n var fullIndices = {};\n var inputIndices = {};\n\n var size = fullLayout._size;\n\n cdModule.forEach(function(d, i) {\n var trace = d[0].trace;\n fullIndices[i] = trace.index;\n var iIn = inputIndices[i] = trace._fullInput.index;\n currentDims[i] = gd.data[iIn].dimensions;\n initialDims[i] = gd.data[iIn].dimensions.slice();\n });\n\n var filterChanged = function(i, initialDimIndex, newRanges) {\n // Have updated `constraintrange` data on `gd.data` and raise `Plotly.restyle` event\n // without having to incur heavy UI blocking due to an actual `Plotly.restyle` call\n\n var dim = initialDims[i][initialDimIndex];\n var newConstraints = newRanges.map(function(r) { return r.slice(); });\n\n // Store constraint range in preGUI\n // This one doesn't work if it's stored in pieces in _storeDirectGUIEdit\n // because it's an array of variable dimensionality. So store the whole\n // thing at once manually.\n var aStr = 'dimensions[' + initialDimIndex + '].constraintrange';\n var preGUI = fullLayout._tracePreGUI[gd._fullData[fullIndices[i]]._fullInput.uid];\n if(preGUI[aStr] === undefined) {\n var initialVal = dim.constraintrange;\n preGUI[aStr] = initialVal || null;\n }\n\n var fullDimension = gd._fullData[fullIndices[i]].dimensions[initialDimIndex];\n\n if(!newConstraints.length) {\n delete dim.constraintrange;\n delete fullDimension.constraintrange;\n newConstraints = null;\n } else {\n if(newConstraints.length === 1) newConstraints = newConstraints[0];\n dim.constraintrange = newConstraints;\n fullDimension.constraintrange = newConstraints.slice();\n // wrap in another array for restyle event data\n newConstraints = [newConstraints];\n }\n\n var restyleData = {};\n restyleData[aStr] = newConstraints;\n gd.emit('plotly_restyle', [restyleData, [inputIndices[i]]]);\n };\n\n var hover = function(eventData) {\n gd.emit('plotly_hover', eventData);\n };\n\n var unhover = function(eventData) {\n gd.emit('plotly_unhover', eventData);\n };\n\n var axesMoved = function(i, visibleIndices) {\n // Have updated order data on `gd.data` and raise `Plotly.restyle` event\n // without having to incur heavy UI blocking due to an actual `Plotly.restyle` call\n\n // drag&drop sorting of the visible dimensions\n var orig = sorter(visibleIndices, initialDims[i].filter(isVisible));\n currentDims[i].sort(orig);\n\n // invisible dimensions are not interpreted in the context of drag&drop sorting as an invisible dimension\n // cannot be dragged; they're interspersed into their original positions by this subsequent merging step\n initialDims[i].filter(function(d) {return !isVisible(d);})\n .sort(function(d) {\n // subsequent splicing to be done left to right, otherwise indices may be incorrect\n return initialDims[i].indexOf(d);\n })\n .forEach(function(d) {\n currentDims[i].splice(currentDims[i].indexOf(d), 1); // remove from the end\n currentDims[i].splice(initialDims[i].indexOf(d), 0, d); // insert at original index\n });\n\n // TODO: we can't really store this part of the interaction state\n // directly as below, since it incudes data arrays. If we want to\n // persist column order we may have to do something special for this\n // case to just store the order itself.\n // Registry.call('_storeDirectGUIEdit',\n // gd.data[inputIndices[i]],\n // fullLayout._tracePreGUI[gd._fullData[fullIndices[i]]._fullInput.uid],\n // {dimensions: currentDims[i]}\n // );\n\n gd.emit('plotly_restyle', [{dimensions: [currentDims[i]]}, [inputIndices[i]]]);\n };\n\n parcoords(\n gd,\n cdModule,\n { // layout\n width: size.w,\n height: size.h,\n margin: {\n t: size.t,\n r: size.r,\n b: size.b,\n l: size.l\n }\n },\n { // callbacks\n filterChanged: filterChanged,\n hover: hover,\n unhover: unhover,\n axesMoved: axesMoved\n }\n );\n};\n\n\n/***/ }),\n\n/***/ \"79d9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function signum(x) {\n if(x < 0) { return -1 }\n if(x > 0) { return 1 }\n return 0.0\n}\n\n/***/ }),\n\n/***/ \"79f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nexports.isGrouped = function isGrouped(legendLayout) {\n return (legendLayout.traceorder || '').indexOf('grouped') !== -1;\n};\n\nexports.isVertical = function isVertical(legendLayout) {\n return legendLayout.orientation !== 'h';\n};\n\nexports.isReversed = function isReversed(legendLayout) {\n return (legendLayout.traceorder || '').indexOf('reversed') !== -1;\n};\n\n\n/***/ }),\n\n/***/ \"7a18\":\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"[\\\"normal\\\",\\\"bold\\\",\\\"bolder\\\",\\\"lighter\\\",\\\"100\\\",\\\"200\\\",\\\"300\\\",\\\"400\\\",\\\"500\\\",\\\"600\\\",\\\"700\\\",\\\"800\\\",\\\"900\\\"]\");\n\n/***/ }),\n\n/***/ \"7a4a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar isArrayOrTypedArray = __webpack_require__(\"fc26\").isArrayOrTypedArray;\n\nmodule.exports = function(a) {\n return minMax(a, 0);\n};\n\nfunction minMax(a, depth) {\n // Limit to ten dimensional datasets. This seems *exceedingly* unlikely to\n // ever cause problems or even be a concern. It's include strictly so that\n // circular arrays could never cause this to loop.\n if(!isArrayOrTypedArray(a) || depth >= 10) {\n return null;\n }\n\n var min = Infinity;\n var max = -Infinity;\n var n = a.length;\n for(var i = 0; i < n; i++) {\n var datum = a[i];\n\n if(isArrayOrTypedArray(datum)) {\n var result = minMax(datum, depth + 1);\n\n if(result) {\n min = Math.min(result[0], min);\n max = Math.max(result[1], max);\n }\n } else {\n min = Math.min(datum, min);\n max = Math.max(datum, max);\n }\n }\n\n return [min, max];\n}\n\n\n/***/ }),\n\n/***/ \"7a52\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar setConvertCartesian = __webpack_require__(\"1a40\");\n\nvar deg2rad = Lib.deg2rad;\nvar rad2deg = Lib.rad2deg;\n\n/**\n * setConvert for polar axes!\n *\n * @param {object} ax\n * axis in question (works for both radial and angular axes)\n * @param {object} polarLayout\n * full polar layout of the subplot associated with 'ax'\n * @param {object} fullLayout\n * full layout\n *\n * Here, reuse some of the Cartesian setConvert logic,\n * but we must extend some of it, as both radial and angular axes\n * don't have domains and angular axes don't have _true_ ranges.\n *\n * Moreover, we introduce two new coordinate systems:\n * - 'g' for geometric coordinates and\n * - 't' for angular ticks\n *\n * Radial axis coordinate systems:\n * - d, c and l: same as for cartesian axes\n * - g: like calcdata but translated about `radialaxis.range[0]` & `polar.hole`\n *\n * Angular axis coordinate systems:\n * - d: data, in whatever form it's provided\n * - c: calcdata, turned into radians (for linear axes)\n * or category indices (category axes)\n * - t: tick calcdata, just like 'c' but in degrees for linear axes\n * - g: geometric calcdata, radians coordinates that take into account\n * axis rotation and direction\n *\n * Then, 'g'eometric data is ready to be converted to (x,y).\n */\nmodule.exports = function setConvert(ax, polarLayout, fullLayout) {\n setConvertCartesian(ax, fullLayout);\n\n switch(ax._id) {\n case 'x':\n case 'radialaxis':\n setConvertRadial(ax, polarLayout);\n break;\n case 'angularaxis':\n setConvertAngular(ax, polarLayout);\n break;\n }\n};\n\nfunction setConvertRadial(ax, polarLayout) {\n var subplot = polarLayout._subplot;\n\n ax.setGeometry = function() {\n var rl0 = ax._rl[0];\n var rl1 = ax._rl[1];\n\n var b = subplot.innerRadius;\n var m = (subplot.radius - b) / (rl1 - rl0);\n var b2 = b / m;\n\n var rFilter = rl0 > rl1 ?\n function(v) { return v <= 0; } :\n function(v) { return v >= 0; };\n\n ax.c2g = function(v) {\n var r = ax.c2l(v) - rl0;\n return (rFilter(r) ? r : 0) + b2;\n };\n\n ax.g2c = function(v) {\n return ax.l2c(v + rl0 - b2);\n };\n\n ax.g2p = function(v) { return v * m; };\n ax.c2p = function(v) { return ax.g2p(ax.c2g(v)); };\n };\n}\n\nfunction toRadians(v, unit) {\n return unit === 'degrees' ? deg2rad(v) : v;\n}\n\nfunction fromRadians(v, unit) {\n return unit === 'degrees' ? rad2deg(v) : v;\n}\n\nfunction setConvertAngular(ax, polarLayout) {\n var axType = ax.type;\n\n if(axType === 'linear') {\n var _d2c = ax.d2c;\n var _c2d = ax.c2d;\n\n ax.d2c = function(v, unit) { return toRadians(_d2c(v), unit); };\n ax.c2d = function(v, unit) { return _c2d(fromRadians(v, unit)); };\n }\n\n // override makeCalcdata to handle thetaunit and special theta0/dtheta logic\n ax.makeCalcdata = function(trace, coord) {\n var arrayIn = trace[coord];\n var len = trace._length;\n var arrayOut, i;\n\n var _d2c = function(v) { return ax.d2c(v, trace.thetaunit); };\n\n if(arrayIn) {\n if(Lib.isTypedArray(arrayIn) && axType === 'linear') {\n if(len === arrayIn.length) {\n return arrayIn;\n } else if(arrayIn.subarray) {\n return arrayIn.subarray(0, len);\n }\n }\n\n arrayOut = new Array(len);\n for(i = 0; i < len; i++) {\n arrayOut[i] = _d2c(arrayIn[i]);\n }\n } else {\n var coord0 = coord + '0';\n var dcoord = 'd' + coord;\n var v0 = (coord0 in trace) ? _d2c(trace[coord0]) : 0;\n var dv = (trace[dcoord]) ? _d2c(trace[dcoord]) : (ax.period || 2 * Math.PI) / len;\n\n arrayOut = new Array(len);\n for(i = 0; i < len; i++) {\n arrayOut[i] = v0 + i * dv;\n }\n }\n\n return arrayOut;\n };\n\n // N.B. we mock the axis 'range' here\n ax.setGeometry = function() {\n var sector = polarLayout.sector;\n var sectorInRad = sector.map(deg2rad);\n var dir = {clockwise: -1, counterclockwise: 1}[ax.direction];\n var rot = deg2rad(ax.rotation);\n\n var rad2g = function(v) { return dir * v + rot; };\n var g2rad = function(v) { return (v - rot) / dir; };\n\n var rad2c, c2rad;\n var rad2t, t2rad;\n\n switch(axType) {\n case 'linear':\n c2rad = rad2c = Lib.identity;\n t2rad = deg2rad;\n rad2t = rad2deg;\n\n // Set the angular range in degrees to make auto-tick computation cleaner,\n // changing rotation/direction should not affect the angular tick value.\n ax.range = Lib.isFullCircle(sectorInRad) ?\n [sector[0], sector[0] + 360] :\n sectorInRad.map(g2rad).map(rad2deg);\n break;\n\n case 'category':\n var catLen = ax._categories.length;\n var _period = ax.period ? Math.max(ax.period, catLen) : catLen;\n\n // fallback in case all categories have been filtered out\n if(_period === 0) _period = 1;\n\n c2rad = t2rad = function(v) { return v * 2 * Math.PI / _period; };\n rad2c = rad2t = function(v) { return v * _period / Math.PI / 2; };\n\n ax.range = [0, _period];\n break;\n }\n\n ax.c2g = function(v) { return rad2g(c2rad(v)); };\n ax.g2c = function(v) { return rad2c(g2rad(v)); };\n\n ax.t2g = function(v) { return rad2g(t2rad(v)); };\n ax.g2t = function(v) { return rad2t(g2rad(v)); };\n };\n}\n\n\n/***/ }),\n\n/***/ \"7a5f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n moduleType: 'trace',\n name: 'indicator',\n basePlotModule: __webpack_require__(\"643c\"),\n categories: ['svg', 'noOpacity', 'noHover'],\n animatable: true,\n\n attributes: __webpack_require__(\"1c82\"),\n supplyDefaults: __webpack_require__(\"18bb\").supplyDefaults,\n\n calc: __webpack_require__(\"5ad1\").calc,\n\n plot: __webpack_require__(\"78ee\"),\n\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"7a71\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n\r\nmodule.exports = measure\r\n\r\nmeasure.canvas = document.createElement('canvas')\r\nmeasure.cache = {}\r\n\r\nfunction measure (font, o) {\r\n\tif (!o) o = {}\r\n\r\n\tif (typeof font === 'string' || Array.isArray(font)) {\r\n\t\to.family = font\r\n\t}\r\n\r\n\tvar family = Array.isArray(o.family) ? o.family.join(', ') : o.family\r\n\tif (!family) throw Error('`family` must be defined')\r\n\r\n\tvar fs = o.size || o.fontSize || o.em || 48\r\n\tvar weight = o.weight || o.fontWeight || ''\r\n\tvar style = o.style || o.fontStyle || ''\r\n\tvar font = [style, weight, fs].join(' ') + 'px ' + family\r\n\tvar origin = o.origin || 'top'\r\n\r\n\tif (measure.cache[family]) {\r\n\t\t// return more precise values if cache has them\r\n\t\tif (fs <= measure.cache[family].em) {\r\n\t\t\treturn applyOrigin(measure.cache[family], origin)\r\n\t\t}\r\n\t}\r\n\r\n\tvar canvas = o.canvas || measure.canvas\r\n\tvar ctx = canvas.getContext('2d')\r\n\tvar chars = {\r\n\t\tupper: o.upper !== undefined ? o.upper : 'H',\r\n\t\tlower: o.lower !== undefined ? o.lower : 'x',\r\n\t\tdescent: o.descent !== undefined ? o.descent : 'p',\r\n\t\tascent: o.ascent !== undefined ? o.ascent : 'h',\r\n\t\ttittle: o.tittle !== undefined ? o.tittle : 'i',\r\n\t\tovershoot: o.overshoot !== undefined ? o.overshoot : 'O'\r\n\t}\r\n\tvar l = Math.ceil(fs * 1.5)\r\n\tcanvas.height = l\r\n\tcanvas.width = l * .5\r\n\tctx.font = font\r\n\r\n\tvar char = 'H'\r\n\tvar result = {\r\n\t\ttop: 0\r\n\t}\r\n\r\n\t// measure line-height\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'top'\r\n\tctx.fillStyle = 'black'\r\n\tctx.fillText(char, 0, 0)\r\n\tvar topPx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'bottom'\r\n\tctx.fillText(char, 0, l)\r\n\tvar bottomPx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tresult.lineHeight =\r\n\tresult.bottom = l - bottomPx + topPx\r\n\r\n\t// measure baseline\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'alphabetic'\r\n\tctx.fillText(char, 0, l)\r\n\tvar baselinePx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tvar baseline = l - baselinePx - 1 + topPx\r\n\tresult.baseline =\r\n\tresult.alphabetic = baseline\r\n\r\n\t// measure median\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'middle'\r\n\tctx.fillText(char, 0, l * .5)\r\n\tvar medianPx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tresult.median =\r\n\tresult.middle = l - medianPx - 1 + topPx - l * .5\r\n\r\n\t// measure hanging\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'hanging'\r\n\tctx.fillText(char, 0, l * .5)\r\n\tvar hangingPx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tresult.hanging = l - hangingPx - 1 + topPx - l * .5\r\n\r\n\t// measure ideographic\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'ideographic'\r\n\tctx.fillText(char, 0, l)\r\n\tvar ideographicPx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tresult.ideographic = l - ideographicPx - 1 + topPx\r\n\r\n\t// measure cap\r\n\tif (chars.upper) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.upper, 0, 0)\r\n\t\tresult.upper = firstTop(ctx.getImageData(0, 0, l, l))\r\n\t\tresult.capHeight = (result.baseline - result.upper)\r\n\t}\r\n\r\n\t// measure x\r\n\tif (chars.lower) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.lower, 0, 0)\r\n\t\tresult.lower = firstTop(ctx.getImageData(0, 0, l, l))\r\n\t\tresult.xHeight = (result.baseline - result.lower)\r\n\t}\r\n\r\n\t// measure tittle\r\n\tif (chars.tittle) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.tittle, 0, 0)\r\n\t\tresult.tittle = firstTop(ctx.getImageData(0, 0, l, l))\r\n\t}\r\n\r\n\t// measure ascent\r\n\tif (chars.ascent) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.ascent, 0, 0)\r\n\t\tresult.ascent = firstTop(ctx.getImageData(0, 0, l, l))\r\n\t}\r\n\r\n\t// measure descent\r\n\tif (chars.descent) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.descent, 0, 0)\r\n\t\tresult.descent = firstBottom(ctx.getImageData(0, 0, l, l))\r\n\t}\r\n\r\n\t// measure overshoot\r\n\tif (chars.overshoot) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.overshoot, 0, 0)\r\n\t\tvar overshootPx = firstBottom(ctx.getImageData(0, 0, l, l))\r\n\t\tresult.overshoot = overshootPx - baseline\r\n\t}\r\n\r\n\t// normalize result\r\n\tfor (var name in result) {\r\n\t\tresult[name] /= fs\r\n\t}\r\n\r\n\tresult.em = fs\r\n\tmeasure.cache[family] = result\r\n\r\n\treturn applyOrigin(result, origin)\r\n}\r\n\r\nfunction applyOrigin(obj, origin) {\r\n\tvar res = {}\r\n\tif (typeof origin === 'string') origin = obj[origin]\r\n\tfor (var name in obj) {\r\n\t\tif (name === 'em') continue\r\n\t\tres[name] = obj[name] - origin\r\n\t}\r\n\treturn res\r\n}\r\n\r\nfunction firstTop(iData) {\r\n\tvar l = iData.height\r\n\tvar data = iData.data\r\n\tfor (var i = 3; i < data.length; i+=4) {\r\n\t\tif (data[i] !== 0) {\r\n\t\t\treturn Math.floor((i - 3) *.25 / l)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction firstBottom(iData) {\r\n\tvar l = iData.height\r\n\tvar data = iData.data\r\n\tfor (var i = data.length - 1; i > 0; i -= 4) {\r\n\t\tif (data[i] !== 0) {\r\n\t\t\treturn Math.floor((i - 3) *.25 / l)\r\n\t\t}\r\n\t}\r\n}\r\n\n\n/***/ }),\n\n/***/ \"7a7d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n attributes: __webpack_require__(\"8bd8\"),\n supplyDefaults: __webpack_require__(\"f552\"),\n colorbar: __webpack_require__(\"fcb3\"),\n calc: __webpack_require__(\"d0ad\"),\n calcGeoJSON: __webpack_require__(\"538c\").calcGeoJSON,\n plot: __webpack_require__(\"538c\").plot,\n style: __webpack_require__(\"e7ab\").style,\n styleOnSelect: __webpack_require__(\"e7ab\").styleOnSelect,\n hoverPoints: __webpack_require__(\"038d\"),\n eventData: __webpack_require__(\"a9eb\"),\n selectPoints: __webpack_require__(\"ef6e\"),\n\n moduleType: 'trace',\n name: 'choropleth',\n basePlotModule: __webpack_require__(\"9e9a\"),\n categories: ['geo', 'noOpacity', 'showLegend'],\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"7abc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/* http://keith-wood.name/calendars.html\n UmmAlQura calendar for jQuery v2.0.2.\n Written by Amro Osama March 2013.\n Modified by Binnooh.com & www.elm.sa - 2014 - Added dates back to 1276 Hijri year.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar main = __webpack_require__(\"0230\");\nvar assign = __webpack_require__(\"320c\");\n\n\n/** Implementation of the UmmAlQura or 'saudi' calendar.\n See also http://en.wikipedia.org/wiki/Islamic_calendar#Saudi_Arabia.27s_Umm_al-Qura_calendar.\n http://www.ummulqura.org.sa/About.aspx\n http://www.staff.science.uu.nl/~gent0113/islam/ummalqura.htm\n @class UmmAlQuraCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction UmmAlQuraCalendar(language) {\n this.local = this.regionalOptions[language || ''] || this.regionalOptions[''];\n}\n\nUmmAlQuraCalendar.prototype = new main.baseCalendar;\n\nassign(UmmAlQuraCalendar.prototype, {\n /** The calendar name.\n @memberof UmmAlQuraCalendar */\n name: 'UmmAlQura',\n //jdEpoch: 1948440, // Julian date of start of UmmAlQura epoch: 14 March 1937 CE\n //daysPerMonth: // Days per month in a common year, replaced by a method.\n /** true if has a year zero, false if not.\n @memberof UmmAlQuraCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof UmmAlQuraCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof UmmAlQuraCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof UmmAlQuraCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof UmmAlQuraCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Umm al-Qura',\n epochs: ['BH', 'AH'],\n monthNames: ['Al-Muharram', 'Safar', 'Rabi\\' al-awwal', 'Rabi\\' Al-Thani', 'Jumada Al-Awwal', 'Jumada Al-Thani',\n 'Rajab', 'Sha\\'aban', 'Ramadan', 'Shawwal', 'Dhu al-Qi\\'dah', 'Dhu al-Hijjah'],\n monthNamesShort: ['Muh', 'Saf', 'Rab1', 'Rab2', 'Jum1', 'Jum2', 'Raj', 'Sha\\'', 'Ram', 'Shaw', 'DhuQ', 'DhuH'],\n dayNames: ['Yawm al-Ahad', 'Yawm al-Ithnain', 'Yawm al-Thalāthā’', 'Yawm al-Arba‘ā’', 'Yawm al-Khamīs', 'Yawm al-Jum‘a', 'Yawm al-Sabt'],\n dayNamesMin: ['Ah', 'Ith', 'Th', 'Ar', 'Kh', 'Ju', 'Sa'],\n digits: null,\n dateFormat: 'yyyy/mm/dd',\n firstDay: 6,\n isRTL: true\n }\n },\n\n /** Determine whether this date is in a leap year.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function (year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return (this.daysInYear(date.year()) === 355);\n },\n\n /** Determine the week of the year for a date.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function (year, month, day) {\n // Find Sunday of this week starting on Sunday\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), 'd');\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n\n /** Retrieve the number of days in a year.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function (year) {\n var daysCount = 0;\n for (var i = 1; i <= 12; i++) {\n daysCount += this.daysInMonth(year, i);\n }\n return daysCount;\n },\n\n /** Retrieve the number of days in a month.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function (year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n var mcjdn = date.toJD() - 2400000 + 0.5; // Modified Chronological Julian Day Number (MCJDN)\n // the MCJDN's of the start of the lunations in the Umm al-Qura calendar are stored in the 'ummalqura_dat' array\n var index = 0;\n for (var i = 0; i < ummalqura_dat.length; i++) {\n if (ummalqura_dat[i] > mcjdn) {\n return (ummalqura_dat[index] - ummalqura_dat[index - 1]);\n }\n index++;\n }\n return 30; // Unknown outside\n },\n\n /** Determine whether this date is a week day.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function (year, month, day) {\n return this.dayOfWeek(year, month, day) !== 5;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function (year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var index = (12 * (date.year() - 1)) + date.month() - 15292;\n var mcjdn = date.day() + ummalqura_dat[index - 1] - 1;\n return mcjdn + 2400000 - 0.5; // Modified Chronological Julian Day Number (MCJDN)\n },\n\n /** Create a new date from a Julian date.\n @memberof UmmAlQuraCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function (jd) {\n var mcjdn = jd - 2400000 + 0.5; // Modified Chronological Julian Day Number (MCJDN)\n // the MCJDN's of the start of the lunations in the Umm al-Qura calendar \n // are stored in the 'ummalqura_dat' array\n var index = 0;\n for (var i = 0; i < ummalqura_dat.length; i++) {\n if (ummalqura_dat[i] > mcjdn) break;\n index++;\n }\n var lunation = index + 15292; //UmmAlQura Lunation Number\n var ii = Math.floor((lunation - 1) / 12);\n var year = ii + 1;\n var month = lunation - 12 * ii;\n var day = mcjdn - ummalqura_dat[index - 1] + 1;\n return this.newDate(year, month, day);\n },\n\n /** Determine whether a date is valid for this calendar.\n @memberof UmmAlQuraCalendar\n @param year {number} The year to examine.\n @param month {number} The month to examine.\n @param day {number} The day to examine.\n @return {boolean} true if a valid date, false if not. */\n isValid: function(year, month, day) {\n var valid = main.baseCalendar.prototype.isValid.apply(this, arguments);\n if (valid) {\n year = (year.year != null ? year.year : year);\n valid = (year >= 1276 && year <= 1500);\n }\n return valid;\n },\n\n /** Check that a candidate date is from the same calendar and is valid.\n @memberof UmmAlQuraCalendar\n @private\n @param year {CDate|number} The date to validate or the year to validate.\n @param month {number} The month to validate.\n @param day {number} The day to validate.\n @param error {string} Error message if invalid.\n @throws Error if different calendars used or invalid date. */\n _validate: function(year, month, day, error) {\n var date = main.baseCalendar.prototype._validate.apply(this, arguments);\n if (date.year < 1276 || date.year > 1500) {\n throw error.replace(/\\{0\\}/, this.local.name);\n }\n return date;\n }\n});\n\n// UmmAlQura calendar implementation\nmain.calendars.ummalqura = UmmAlQuraCalendar;\n\nvar ummalqura_dat = [\n 20, 50, 79, 109, 138, 168, 197, 227, 256, 286, 315, 345, 374, 404, 433, 463, 492, 522, 551, 581, \n 611, 641, 670, 700, 729, 759, 788, 818, 847, 877, 906, 936, 965, 995, 1024, 1054, 1083, 1113, 1142, 1172,\n 1201, 1231, 1260, 1290, 1320, 1350, 1379, 1409, 1438, 1468, 1497, 1527, 1556, 1586, 1615, 1645, 1674, 1704, 1733, 1763,\n 1792, 1822, 1851, 1881, 1910, 1940, 1969, 1999, 2028, 2058, 2087, 2117, 2146, 2176, 2205, 2235, 2264, 2294, 2323, 2353,\n 2383, 2413, 2442, 2472, 2501, 2531, 2560, 2590, 2619, 2649, 2678, 2708, 2737, 2767, 2796, 2826, 2855, 2885, 2914, 2944,\n 2973, 3003, 3032, 3062, 3091, 3121, 3150, 3180, 3209, 3239, 3268, 3298, 3327, 3357, 3386, 3416, 3446, 3476, 3505, 3535,\n 3564, 3594, 3623, 3653, 3682, 3712, 3741, 3771, 3800, 3830, 3859, 3889, 3918, 3948, 3977, 4007, 4036, 4066, 4095, 4125,\n 4155, 4185, 4214, 4244, 4273, 4303, 4332, 4362, 4391, 4421, 4450, 4480, 4509, 4539, 4568, 4598, 4627, 4657, 4686, 4716,\n 4745, 4775, 4804, 4834, 4863, 4893, 4922, 4952, 4981, 5011, 5040, 5070, 5099, 5129, 5158, 5188, 5218, 5248, 5277, 5307,\n 5336, 5366, 5395, 5425, 5454, 5484, 5513, 5543, 5572, 5602, 5631, 5661, 5690, 5720, 5749, 5779, 5808, 5838, 5867, 5897,\n 5926, 5956, 5985, 6015, 6044, 6074, 6103, 6133, 6162, 6192, 6221, 6251, 6281, 6311, 6340, 6370, 6399, 6429, 6458, 6488,\n 6517, 6547, 6576, 6606, 6635, 6665, 6694, 6724, 6753, 6783, 6812, 6842, 6871, 6901, 6930, 6960, 6989, 7019, 7048, 7078,\n 7107, 7137, 7166, 7196, 7225, 7255, 7284, 7314, 7344, 7374, 7403, 7433, 7462, 7492, 7521, 7551, 7580, 7610, 7639, 7669,\n 7698, 7728, 7757, 7787, 7816, 7846, 7875, 7905, 7934, 7964, 7993, 8023, 8053, 8083, 8112, 8142, 8171, 8201, 8230, 8260,\n 8289, 8319, 8348, 8378, 8407, 8437, 8466, 8496, 8525, 8555, 8584, 8614, 8643, 8673, 8702, 8732, 8761, 8791, 8821, 8850,\n 8880, 8909, 8938, 8968, 8997, 9027, 9056, 9086, 9115, 9145, 9175, 9205, 9234, 9264, 9293, 9322, 9352, 9381, 9410, 9440,\n 9470, 9499, 9529, 9559, 9589, 9618, 9648, 9677, 9706, 9736, 9765, 9794, 9824, 9853, 9883, 9913, 9943, 9972, 10002, 10032,\n 10061, 10090, 10120, 10149, 10178, 10208, 10237, 10267, 10297, 10326, 10356, 10386, 10415, 10445, 10474, 10504, 10533, 10562, 10592, 10621,\n 10651, 10680, 10710, 10740, 10770, 10799, 10829, 10858, 10888, 10917, 10947, 10976, 11005, 11035, 11064, 11094, 11124, 11153, 11183, 11213,\n 11242, 11272, 11301, 11331, 11360, 11389, 11419, 11448, 11478, 11507, 11537, 11567, 11596, 11626, 11655, 11685, 11715, 11744, 11774, 11803,\n 11832, 11862, 11891, 11921, 11950, 11980, 12010, 12039, 12069, 12099, 12128, 12158, 12187, 12216, 12246, 12275, 12304, 12334, 12364, 12393,\n 12423, 12453, 12483, 12512, 12542, 12571, 12600, 12630, 12659, 12688, 12718, 12747, 12777, 12807, 12837, 12866, 12896, 12926, 12955, 12984,\n 13014, 13043, 13072, 13102, 13131, 13161, 13191, 13220, 13250, 13280, 13310, 13339, 13368, 13398, 13427, 13456, 13486, 13515, 13545, 13574,\n 13604, 13634, 13664, 13693, 13723, 13752, 13782, 13811, 13840, 13870, 13899, 13929, 13958, 13988, 14018, 14047, 14077, 14107, 14136, 14166,\n 14195, 14224, 14254, 14283, 14313, 14342, 14372, 14401, 14431, 14461, 14490, 14520, 14550, 14579, 14609, 14638, 14667, 14697, 14726, 14756,\n 14785, 14815, 14844, 14874, 14904, 14933, 14963, 14993, 15021, 15051, 15081, 15110, 15140, 15169, 15199, 15228, 15258, 15287, 15317, 15347,\n 15377, 15406, 15436, 15465, 15494, 15524, 15553, 15582, 15612, 15641, 15671, 15701, 15731, 15760, 15790, 15820, 15849, 15878, 15908, 15937,\n 15966, 15996, 16025, 16055, 16085, 16114, 16144, 16174, 16204, 16233, 16262, 16292, 16321, 16350, 16380, 16409, 16439, 16468, 16498, 16528,\n 16558, 16587, 16617, 16646, 16676, 16705, 16734, 16764, 16793, 16823, 16852, 16882, 16912, 16941, 16971, 17001, 17030, 17060, 17089, 17118,\n 17148, 17177, 17207, 17236, 17266, 17295, 17325, 17355, 17384, 17414, 17444, 17473, 17502, 17532, 17561, 17591, 17620, 17650, 17679, 17709,\n 17738, 17768, 17798, 17827, 17857, 17886, 17916, 17945, 17975, 18004, 18034, 18063, 18093, 18122, 18152, 18181, 18211, 18241, 18270, 18300,\n 18330, 18359, 18388, 18418, 18447, 18476, 18506, 18535, 18565, 18595, 18625, 18654, 18684, 18714, 18743, 18772, 18802, 18831, 18860, 18890,\n 18919, 18949, 18979, 19008, 19038, 19068, 19098, 19127, 19156, 19186, 19215, 19244, 19274, 19303, 19333, 19362, 19392, 19422, 19452, 19481,\n 19511, 19540, 19570, 19599, 19628, 19658, 19687, 19717, 19746, 19776, 19806, 19836, 19865, 19895, 19924, 19954, 19983, 20012, 20042, 20071,\n 20101, 20130, 20160, 20190, 20219, 20249, 20279, 20308, 20338, 20367, 20396, 20426, 20455, 20485, 20514, 20544, 20573, 20603, 20633, 20662,\n 20692, 20721, 20751, 20780, 20810, 20839, 20869, 20898, 20928, 20957, 20987, 21016, 21046, 21076, 21105, 21135, 21164, 21194, 21223, 21253,\n 21282, 21312, 21341, 21371, 21400, 21430, 21459, 21489, 21519, 21548, 21578, 21607, 21637, 21666, 21696, 21725, 21754, 21784, 21813, 21843,\n 21873, 21902, 21932, 21962, 21991, 22021, 22050, 22080, 22109, 22138, 22168, 22197, 22227, 22256, 22286, 22316, 22346, 22375, 22405, 22434,\n 22464, 22493, 22522, 22552, 22581, 22611, 22640, 22670, 22700, 22730, 22759, 22789, 22818, 22848, 22877, 22906, 22936, 22965, 22994, 23024,\n 23054, 23083, 23113, 23143, 23173, 23202, 23232, 23261, 23290, 23320, 23349, 23379, 23408, 23438, 23467, 23497, 23527, 23556, 23586, 23616,\n 23645, 23674, 23704, 23733, 23763, 23792, 23822, 23851, 23881, 23910, 23940, 23970, 23999, 24029, 24058, 24088, 24117, 24147, 24176, 24206,\n 24235, 24265, 24294, 24324, 24353, 24383, 24413, 24442, 24472, 24501, 24531, 24560, 24590, 24619, 24648, 24678, 24707, 24737, 24767, 24796,\n 24826, 24856, 24885, 24915, 24944, 24974, 25003, 25032, 25062, 25091, 25121, 25150, 25180, 25210, 25240, 25269, 25299, 25328, 25358, 25387,\n 25416, 25446, 25475, 25505, 25534, 25564, 25594, 25624, 25653, 25683, 25712, 25742, 25771, 25800, 25830, 25859, 25888, 25918, 25948, 25977,\n 26007, 26037, 26067, 26096, 26126, 26155, 26184, 26214, 26243, 26272, 26302, 26332, 26361, 26391, 26421, 26451, 26480, 26510, 26539, 26568,\n 26598, 26627, 26656, 26686, 26715, 26745, 26775, 26805, 26834, 26864, 26893, 26923, 26952, 26982, 27011, 27041, 27070, 27099, 27129, 27159,\n 27188, 27218, 27248, 27277, 27307, 27336, 27366, 27395, 27425, 27454, 27484, 27513, 27542, 27572, 27602, 27631, 27661, 27691, 27720, 27750,\n 27779, 27809, 27838, 27868, 27897, 27926, 27956, 27985, 28015, 28045, 28074, 28104, 28134, 28163, 28193, 28222, 28252, 28281, 28310, 28340,\n 28369, 28399, 28428, 28458, 28488, 28517, 28547, 28577,\n // From 1356\n 28607, 28636, 28665, 28695, 28724, 28754, 28783, 28813, 28843, 28872, 28901, 28931, 28960, 28990, 29019, 29049, 29078, 29108, 29137, 29167,\n 29196, 29226, 29255, 29285, 29315, 29345, 29375, 29404, 29434, 29463, 29492, 29522, 29551, 29580, 29610, 29640, 29669, 29699, 29729, 29759,\n 29788, 29818, 29847, 29876, 29906, 29935, 29964, 29994, 30023, 30053, 30082, 30112, 30141, 30171, 30200, 30230, 30259, 30289, 30318, 30348,\n 30378, 30408, 30437, 30467, 30496, 30526, 30555, 30585, 30614, 30644, 30673, 30703, 30732, 30762, 30791, 30821, 30850, 30880, 30909, 30939,\n 30968, 30998, 31027, 31057, 31086, 31116, 31145, 31175, 31204, 31234, 31263, 31293, 31322, 31352, 31381, 31411, 31441, 31471, 31500, 31530,\n 31559, 31589, 31618, 31648, 31676, 31706, 31736, 31766, 31795, 31825, 31854, 31884, 31913, 31943, 31972, 32002, 32031, 32061, 32090, 32120,\n 32150, 32180, 32209, 32239, 32268, 32298, 32327, 32357, 32386, 32416, 32445, 32475, 32504, 32534, 32563, 32593, 32622, 32652, 32681, 32711,\n 32740, 32770, 32799, 32829, 32858, 32888, 32917, 32947, 32976, 33006, 33035, 33065, 33094, 33124, 33153, 33183, 33213, 33243, 33272, 33302,\n 33331, 33361, 33390, 33420, 33450, 33479, 33509, 33539, 33568, 33598, 33627, 33657, 33686, 33716, 33745, 33775, 33804, 33834, 33863, 33893,\n 33922, 33952, 33981, 34011, 34040, 34069, 34099, 34128, 34158, 34187, 34217, 34247, 34277, 34306, 34336, 34365, 34395, 34424, 34454, 34483,\n 34512, 34542, 34571, 34601, 34631, 34660, 34690, 34719, 34749, 34778, 34808, 34837, 34867, 34896, 34926, 34955, 34985, 35015, 35044, 35074,\n 35103, 35133, 35162, 35192, 35222, 35251, 35280, 35310, 35340, 35370, 35399, 35429, 35458, 35488, 35517, 35547, 35576, 35605, 35635, 35665,\n 35694, 35723, 35753, 35782, 35811, 35841, 35871, 35901, 35930, 35960, 35989, 36019, 36048, 36078, 36107, 36136, 36166, 36195, 36225, 36254,\n 36284, 36314, 36343, 36373, 36403, 36433, 36462, 36492, 36521, 36551, 36580, 36610, 36639, 36669, 36698, 36728, 36757, 36786, 36816, 36845,\n 36875, 36904, 36934, 36963, 36993, 37022, 37052, 37081, 37111, 37141, 37170, 37200, 37229, 37259, 37288, 37318, 37347, 37377, 37406, 37436,\n 37465, 37495, 37524, 37554, 37584, 37613, 37643, 37672, 37701, 37731, 37760, 37790, 37819, 37849, 37878, 37908, 37938, 37967, 37997, 38027,\n 38056, 38085, 38115, 38144, 38174, 38203, 38233, 38262, 38292, 38322, 38351, 38381, 38410, 38440, 38469, 38499, 38528, 38558, 38587, 38617,\n 38646, 38676, 38705, 38735, 38764, 38794, 38823, 38853, 38882, 38912, 38941, 38971, 39001, 39030, 39059, 39089, 39118, 39148, 39178, 39208,\n 39237, 39267, 39297, 39326, 39355, 39385, 39414, 39444, 39473, 39503, 39532, 39562, 39592, 39621, 39650, 39680, 39709, 39739, 39768, 39798,\n 39827, 39857, 39886, 39916, 39946, 39975, 40005, 40035, 40064, 40094, 40123, 40153, 40182, 40212, 40241, 40271, 40300, 40330, 40359, 40389,\n 40418, 40448, 40477, 40507, 40536, 40566, 40595, 40625, 40655, 40685, 40714, 40744, 40773, 40803, 40832, 40862, 40892, 40921, 40951, 40980,\n 41009, 41039, 41068, 41098, 41127, 41157, 41186, 41216, 41245, 41275, 41304, 41334, 41364, 41393, 41422, 41452, 41481, 41511, 41540, 41570,\n 41599, 41629, 41658, 41688, 41718, 41748, 41777, 41807, 41836, 41865, 41894, 41924, 41953, 41983, 42012, 42042, 42072, 42102, 42131, 42161,\n 42190, 42220, 42249, 42279, 42308, 42337, 42367, 42397, 42426, 42456, 42485, 42515, 42545, 42574, 42604, 42633, 42662, 42692, 42721, 42751,\n 42780, 42810, 42839, 42869, 42899, 42929, 42958, 42988, 43017, 43046, 43076, 43105, 43135, 43164, 43194, 43223, 43253, 43283, 43312, 43342,\n 43371, 43401, 43430, 43460, 43489, 43519, 43548, 43578, 43607, 43637, 43666, 43696, 43726, 43755, 43785, 43814, 43844, 43873, 43903, 43932,\n 43962, 43991, 44021, 44050, 44080, 44109, 44139, 44169, 44198, 44228, 44258, 44287, 44317, 44346, 44375, 44405, 44434, 44464, 44493, 44523,\n 44553, 44582, 44612, 44641, 44671, 44700, 44730, 44759, 44788, 44818, 44847, 44877, 44906, 44936, 44966, 44996, 45025, 45055, 45084, 45114,\n 45143, 45172, 45202, 45231, 45261, 45290, 45320, 45350, 45380, 45409, 45439, 45468, 45498, 45527, 45556, 45586, 45615, 45644, 45674, 45704,\n 45733, 45763, 45793, 45823, 45852, 45882, 45911, 45940, 45970, 45999, 46028, 46058, 46088, 46117, 46147, 46177, 46206, 46236, 46265, 46295,\n 46324, 46354, 46383, 46413, 46442, 46472, 46501, 46531, 46560, 46590, 46620, 46649, 46679, 46708, 46738, 46767, 46797, 46826, 46856, 46885,\n 46915, 46944, 46974, 47003, 47033, 47063, 47092, 47122, 47151, 47181, 47210, 47240, 47269, 47298, 47328, 47357, 47387, 47417, 47446, 47476,\n 47506, 47535, 47565, 47594, 47624, 47653, 47682, 47712, 47741, 47771, 47800, 47830, 47860, 47890, 47919, 47949, 47978, 48008, 48037, 48066,\n 48096, 48125, 48155, 48184, 48214, 48244, 48273, 48303, 48333, 48362, 48392, 48421, 48450, 48480, 48509, 48538, 48568, 48598, 48627, 48657,\n 48687, 48717, 48746, 48776, 48805, 48834, 48864, 48893, 48922, 48952, 48982, 49011, 49041, 49071, 49100, 49130, 49160, 49189, 49218, 49248,\n 49277, 49306, 49336, 49365, 49395, 49425, 49455, 49484, 49514, 49543, 49573, 49602, 49632, 49661, 49690, 49720, 49749, 49779, 49809, 49838,\n 49868, 49898, 49927, 49957, 49986, 50016, 50045, 50075, 50104, 50133, 50163, 50192, 50222, 50252, 50281, 50311, 50340, 50370, 50400, 50429,\n 50459, 50488, 50518, 50547, 50576, 50606, 50635, 50665, 50694, 50724, 50754, 50784, 50813, 50843, 50872, 50902, 50931, 50960, 50990, 51019,\n 51049, 51078, 51108, 51138, 51167, 51197, 51227, 51256, 51286, 51315, 51345, 51374, 51403, 51433, 51462, 51492, 51522, 51552, 51582, 51611,\n 51641, 51670, 51699, 51729, 51758, 51787, 51816, 51846, 51876, 51906, 51936, 51965, 51995, 52025, 52054, 52083, 52113, 52142, 52171, 52200,\n 52230, 52260, 52290, 52319, 52349, 52379, 52408, 52438, 52467, 52497, 52526, 52555, 52585, 52614, 52644, 52673, 52703, 52733, 52762, 52792,\n 52822, 52851, 52881, 52910, 52939, 52969, 52998, 53028, 53057, 53087, 53116, 53146, 53176, 53205, 53235, 53264, 53294, 53324, 53353, 53383,\n 53412, 53441, 53471, 53500, 53530, 53559, 53589, 53619, 53648, 53678, 53708, 53737, 53767, 53796, 53825, 53855, 53884, 53913, 53943, 53973,\n 54003, 54032, 54062, 54092, 54121, 54151, 54180, 54209, 54239, 54268, 54297, 54327, 54357, 54387, 54416, 54446, 54476, 54505, 54535, 54564,\n 54593, 54623, 54652, 54681, 54711, 54741, 54770, 54800, 54830, 54859, 54889, 54919, 54948, 54977, 55007, 55036, 55066, 55095, 55125, 55154,\n 55184, 55213, 55243, 55273, 55302, 55332, 55361, 55391, 55420, 55450, 55479, 55508, 55538, 55567, 55597, 55627, 55657, 55686, 55716, 55745,\n 55775, 55804, 55834, 55863, 55892, 55922, 55951, 55981, 56011, 56040, 56070, 56100, 56129, 56159, 56188, 56218, 56247, 56276, 56306, 56335,\n 56365, 56394, 56424, 56454, 56483, 56513, 56543, 56572, 56601, 56631, 56660, 56690, 56719, 56749, 56778, 56808, 56837, 56867, 56897, 56926,\n 56956, 56985, 57015, 57044, 57074, 57103, 57133, 57162, 57192, 57221, 57251, 57280, 57310, 57340, 57369, 57399, 57429, 57458, 57487, 57517,\n 57546, 57576, 57605, 57634, 57664, 57694, 57723, 57753, 57783, 57813, 57842, 57871, 57901, 57930, 57959, 57989, 58018, 58048, 58077, 58107,\n 58137, 58167, 58196, 58226, 58255, 58285, 58314, 58343, 58373, 58402, 58432, 58461, 58491, 58521, 58551, 58580, 58610, 58639, 58669, 58698,\n 58727, 58757, 58786, 58816, 58845, 58875, 58905, 58934, 58964, 58994, 59023, 59053, 59082, 59111, 59141, 59170, 59200, 59229, 59259, 59288,\n 59318, 59348, 59377, 59407, 59436, 59466, 59495, 59525, 59554, 59584, 59613, 59643, 59672, 59702, 59731, 59761, 59791, 59820, 59850, 59879,\n 59909, 59939, 59968, 59997, 60027, 60056, 60086, 60115, 60145, 60174, 60204, 60234, 60264, 60293, 60323, 60352, 60381, 60411, 60440, 60469,\n 60499, 60528, 60558, 60588, 60618, 60648, 60677, 60707, 60736, 60765, 60795, 60824, 60853, 60883, 60912, 60942, 60972, 61002, 61031, 61061,\n 61090, 61120, 61149, 61179, 61208, 61237, 61267, 61296, 61326, 61356, 61385, 61415, 61445, 61474, 61504, 61533, 61563, 61592, 61621, 61651,\n 61680, 61710, 61739, 61769, 61799, 61828, 61858, 61888, 61917, 61947, 61976, 62006, 62035, 62064, 62094, 62123, 62153, 62182, 62212, 62242,\n 62271, 62301, 62331, 62360, 62390, 62419, 62448, 62478, 62507, 62537, 62566, 62596, 62625, 62655, 62685, 62715, 62744, 62774, 62803, 62832,\n 62862, 62891, 62921, 62950, 62980, 63009, 63039, 63069, 63099, 63128, 63157, 63187, 63216, 63246, 63275, 63305, 63334, 63363, 63393, 63423,\n 63453, 63482, 63512, 63541, 63571, 63600, 63630, 63659, 63689, 63718, 63747, 63777, 63807, 63836, 63866, 63895, 63925, 63955, 63984, 64014,\n 64043, 64073, 64102, 64131, 64161, 64190, 64220, 64249, 64279, 64309, 64339, 64368, 64398, 64427, 64457, 64486, 64515, 64545, 64574, 64603,\n 64633, 64663, 64692, 64722, 64752, 64782, 64811, 64841, 64870, 64899, 64929, 64958, 64987, 65017, 65047, 65076, 65106, 65136, 65166, 65195,\n 65225, 65254, 65283, 65313, 65342, 65371, 65401, 65431, 65460, 65490, 65520, 65549, 65579, 65608, 65638, 65667, 65697, 65726, 65755, 65785,\n 65815, 65844, 65874, 65903, 65933, 65963, 65992, 66022, 66051, 66081, 66110, 66140, 66169, 66199, 66228, 66258, 66287, 66317, 66346, 66376,\n 66405, 66435, 66465, 66494, 66524, 66553, 66583, 66612, 66641, 66671, 66700, 66730, 66760, 66789, 66819, 66849, 66878, 66908, 66937, 66967,\n 66996, 67025, 67055, 67084, 67114, 67143, 67173, 67203, 67233, 67262, 67292, 67321, 67351, 67380, 67409, 67439, 67468, 67497, 67527, 67557,\n 67587, 67617, 67646, 67676, 67705, 67735, 67764, 67793, 67823, 67852, 67882, 67911, 67941, 67971, 68000, 68030, 68060, 68089, 68119, 68148,\n 68177, 68207, 68236, 68266, 68295, 68325, 68354, 68384, 68414, 68443, 68473, 68502, 68532, 68561, 68591, 68620, 68650, 68679, 68708, 68738,\n 68768, 68797, 68827, 68857, 68886, 68916, 68946, 68975, 69004, 69034, 69063, 69092, 69122, 69152, 69181, 69211, 69240, 69270, 69300, 69330,\n 69359, 69388, 69418, 69447, 69476, 69506, 69535, 69565, 69595, 69624, 69654, 69684, 69713, 69743, 69772, 69802, 69831, 69861, 69890, 69919,\n 69949, 69978, 70008, 70038, 70067, 70097, 70126, 70156, 70186, 70215, 70245, 70274, 70303, 70333, 70362, 70392, 70421, 70451, 70481, 70510,\n 70540, 70570, 70599, 70629, 70658, 70687, 70717, 70746, 70776, 70805, 70835, 70864, 70894, 70924, 70954, 70983, 71013, 71042, 71071, 71101,\n 71130, 71159, 71189, 71218, 71248, 71278, 71308, 71337, 71367, 71397, 71426, 71455, 71485, 71514, 71543, 71573, 71602, 71632, 71662, 71691,\n 71721, 71751, 71781, 71810, 71839, 71869, 71898, 71927, 71957, 71986, 72016, 72046, 72075, 72105, 72135, 72164, 72194, 72223, 72253, 72282,\n 72311, 72341, 72370, 72400, 72429, 72459, 72489, 72518, 72548, 72577, 72607, 72637, 72666, 72695, 72725, 72754, 72784, 72813, 72843, 72872,\n 72902, 72931, 72961, 72991, 73020, 73050, 73080, 73109, 73139, 73168, 73197, 73227, 73256, 73286, 73315, 73345, 73375, 73404, 73434, 73464,\n 73493, 73523, 73552, 73581, 73611, 73640, 73669, 73699, 73729, 73758, 73788, 73818, 73848, 73877, 73907, 73936, 73965, 73995, 74024, 74053,\n 74083, 74113, 74142, 74172, 74202, 74231, 74261, 74291, 74320, 74349, 74379, 74408, 74437, 74467, 74497, 74526, 74556, 74586, 74615, 74645,\n 74675, 74704, 74733, 74763, 74792, 74822, 74851, 74881, 74910, 74940, 74969, 74999, 75029, 75058, 75088, 75117, 75147, 75176, 75206, 75235,\n 75264, 75294, 75323, 75353, 75383, 75412, 75442, 75472, 75501, 75531, 75560, 75590, 75619, 75648, 75678, 75707, 75737, 75766, 75796, 75826,\n 75856, 75885, 75915, 75944, 75974, 76003, 76032, 76062, 76091, 76121, 76150, 76180, 76210, 76239, 76269, 76299, 76328, 76358, 76387, 76416,\n 76446, 76475, 76505, 76534, 76564, 76593, 76623, 76653, 76682, 76712, 76741, 76771, 76801, 76830, 76859, 76889, 76918, 76948, 76977, 77007,\n 77036, 77066, 77096, 77125, 77155, 77185, 77214, 77243, 77273, 77302, 77332, 77361, 77390, 77420, 77450, 77479, 77509, 77539, 77569, 77598,\n 77627, 77657, 77686, 77715, 77745, 77774, 77804, 77833, 77863, 77893, 77923, 77952, 77982, 78011, 78041, 78070, 78099, 78129, 78158, 78188,\n 78217, 78247, 78277, 78307, 78336, 78366, 78395, 78425, 78454, 78483, 78513, 78542, 78572, 78601, 78631, 78661, 78690, 78720, 78750, 78779,\n 78808, 78838, 78867, 78897, 78926, 78956, 78985, 79015, 79044, 79074, 79104, 79133, 79163, 79192, 79222, 79251, 79281, 79310, 79340, 79369,\n 79399, 79428, 79458, 79487, 79517, 79546, 79576, 79606, 79635, 79665, 79695, 79724, 79753, 79783, 79812, 79841, 79871, 79900, 79930, 79960,\n 79990];\n\n\n\n/***/ }),\n\n/***/ \"7ad0\":\n/***/ (function(module, exports) {\n\nmodule.exports = perspective;\n\n/**\n * Generates a perspective projection matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\nfunction perspective(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf = 1 / (near - far);\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = (2 * far * near) * nf;\n out[15] = 0;\n return out;\n};\n\n/***/ }),\n\n/***/ \"7ae4\":\n/***/ (function(module, exports) {\n\nmodule.exports = lerp\n\n/**\n * Performs a linear interpolation between two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {vec4} out\n */\nfunction lerp (out, a, b, t) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3]\n out[0] = ax + t * (b[0] - ax)\n out[1] = ay + t * (b[1] - ay)\n out[2] = az + t * (b[2] - az)\n out[3] = aw + t * (b[3] - aw)\n return out\n}\n\n\n/***/ }),\n\n/***/ \"7b0b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n\n/***/ \"7b1c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\r\n * @module update-diff\r\n */\r\n\r\n\r\n\r\nmodule.exports = function updateDiff (obj, diff, mappers) {\r\n\tif (!Array.isArray(mappers)) mappers = [].slice.call(arguments, 2)\r\n\r\n\tfor (var i = 0, l = mappers.length; i < l; i++) {\r\n\t\tvar dict = mappers[i]\r\n\t\tfor (var prop in dict) {\r\n\t\t\tif (diff[prop] !== undefined && !Array.isArray(diff[prop]) && obj[prop] === diff[prop]) continue\r\n\r\n\t\t\tif (prop in diff) {\r\n\t\t\t\tvar result\r\n\r\n\t\t\t\tif (dict[prop] === true) result = diff[prop]\r\n\t\t\t\telse if (dict[prop] === false) continue\r\n\t\t\t\telse if (typeof dict[prop] === 'function') {\r\n\t\t\t\t\tresult = dict[prop](diff[prop], obj, diff)\r\n\t\t\t\t\tif (result === undefined) continue\r\n\t\t\t\t}\r\n\r\n\t\t\t\tobj[prop] = result\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn obj\r\n}\r\n\n\n/***/ }),\n\n/***/ \"7ba3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n sunburstcolorway: {\n valType: 'colorlist',\n \n editType: 'calc',\n \n },\n extendsunburstcolors: {\n valType: 'boolean',\n dflt: true,\n \n editType: 'calc',\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"7bb3\":\n/***/ (function(module, exports) {\n\nmodule.exports = dot\n\n/**\n * Calculates the dot product of two vec4's\n *\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {Number} dot product of a and b\n */\nfunction dot (a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]\n}\n\n\n/***/ }),\n\n/***/ \"7bbc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = alphaComplex\n\nvar delaunay = __webpack_require__(\"2357\")\nvar circumradius = __webpack_require__(\"8662\")\n\nfunction alphaComplex(alpha, points) {\n return delaunay(points).filter(function(cell) {\n var simplex = new Array(cell.length)\n for(var i=0; i 0.999) h = 0.999; // TODO: may handle this case separately\n var h2 = Math.pow(h, 2);\n\n var v1 = cd0.vTotal;\n var v0 = v1 * h2 / (1 - h2);\n\n var totalValues = v1;\n var sumSteps = v0 / v1;\n\n function calcPos() {\n var q = Math.sqrt(sumSteps);\n return {\n x: q,\n y: -q\n };\n }\n\n function getPoint() {\n var pos = calcPos();\n return [pos.x, pos.y];\n }\n\n var p;\n var allPoints = [];\n allPoints.push(getPoint());\n\n var i, cdi;\n for(i = cd.length - 1; i > -1; i--) {\n cdi = cd[i];\n if(cdi.hidden) continue;\n\n var step = cdi.v / totalValues;\n sumSteps += step;\n\n allPoints.push(getPoint());\n }\n\n var minY = Infinity;\n var maxY = -Infinity;\n for(i = 0; i < allPoints.length; i++) {\n p = allPoints[i];\n minY = Math.min(minY, p[1]);\n maxY = Math.max(maxY, p[1]);\n }\n\n // center the shape\n for(i = 0; i < allPoints.length; i++) {\n allPoints[i][1] -= (maxY + minY) / 2;\n }\n\n var lastX = allPoints[allPoints.length - 1][0];\n\n // get pie r\n var r = cd0.r;\n\n var rY = (maxY - minY) / 2;\n var scaleX = r / lastX;\n var scaleY = r / rY * aspectratio;\n\n // set funnelarea r\n cd0.r = scaleY * rY;\n\n // scale the shape\n for(i = 0; i < allPoints.length; i++) {\n allPoints[i][0] *= scaleX;\n allPoints[i][1] *= scaleY;\n }\n\n // record first position\n p = allPoints[0];\n var prevLeft = [-p[0], p[1]];\n var prevRight = [p[0], p[1]];\n\n var n = 0; // note we skip the very first point.\n for(i = cd.length - 1; i > -1; i--) {\n cdi = cd[i];\n if(cdi.hidden) continue;\n\n n += 1;\n var x = allPoints[n][0];\n var y = allPoints[n][1];\n\n cdi.TL = [-x, y];\n cdi.TR = [x, y];\n\n cdi.BL = prevLeft;\n cdi.BR = prevRight;\n\n cdi.pxmid = getBetween(cdi.TR, cdi.BR);\n\n prevLeft = cdi.TL;\n prevRight = cdi.TR;\n }\n}\n\n\n/***/ }),\n\n/***/ \"7c4a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(\"ff55\")() ? globalThis : __webpack_require__(\"c2c0\");\n\n\n/***/ }),\n\n/***/ \"7c67\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = permutationSign\n\nvar BRUTE_FORCE_CUTOFF = 32\n\nvar pool = __webpack_require__(\"cea5\")\n\nfunction permutationSign(p) {\n var n = p.length\n if(n < BRUTE_FORCE_CUTOFF) {\n //Use quadratic algorithm for small n\n var sgn = 1\n for(var i=0; i 7) {\n\t\t\t\t\tresult.push(seg.splice(0, 7))\n\t\t\t\t\tseg.unshift('C')\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'S':\n\t\t\t\t// default control point\n\t\t\t\tvar cx = x\n\t\t\t\tvar cy = y\n\t\t\t\tif (prev == 'C' || prev == 'S') {\n\t\t\t\t\tcx += cx - bezierX // reflect the previous command's control\n\t\t\t\t\tcy += cy - bezierY // point relative to the current point\n\t\t\t\t}\n\t\t\t\tseg = ['C', cx, cy, seg[1], seg[2], seg[3], seg[4]]\n\t\t\t\tbreak\n\t\t\tcase 'T':\n\t\t\t\tif (prev == 'Q' || prev == 'T') {\n\t\t\t\t\tquadX = x * 2 - quadX // as with 'S' reflect previous control point\n\t\t\t\t\tquadY = y * 2 - quadY\n\t\t\t\t} else {\n\t\t\t\t\tquadX = x\n\t\t\t\t\tquadY = y\n\t\t\t\t}\n\t\t\t\tseg = quadratic(x, y, quadX, quadY, seg[1], seg[2])\n\t\t\t\tbreak\n\t\t\tcase 'Q':\n\t\t\t\tquadX = seg[1]\n\t\t\t\tquadY = seg[2]\n\t\t\t\tseg = quadratic(x, y, seg[1], seg[2], seg[3], seg[4])\n\t\t\t\tbreak\n\t\t\tcase 'L':\n\t\t\t\tseg = line(x, y, seg[1], seg[2])\n\t\t\t\tbreak\n\t\t\tcase 'H':\n\t\t\t\tseg = line(x, y, seg[1], y)\n\t\t\t\tbreak\n\t\t\tcase 'V':\n\t\t\t\tseg = line(x, y, x, seg[1])\n\t\t\t\tbreak\n\t\t\tcase 'Z':\n\t\t\t\tseg = line(x, y, startX, startY)\n\t\t\t\tbreak\n\t\t}\n\n\t\t// update state\n\t\tprev = command\n\t\tx = seg[seg.length - 2]\n\t\ty = seg[seg.length - 1]\n\t\tif (seg.length > 4) {\n\t\t\tbezierX = seg[seg.length - 4]\n\t\t\tbezierY = seg[seg.length - 3]\n\t\t} else {\n\t\t\tbezierX = x\n\t\t\tbezierY = y\n\t\t}\n\t\tresult.push(seg)\n\t}\n\n\treturn result\n}\n\nfunction line(x1, y1, x2, y2){\n\treturn ['C', x1, y1, x2, y2, x2, y2]\n}\n\nfunction quadratic(x1, y1, cx, cy, x2, y2){\n\treturn [\n\t\t'C',\n\t\tx1/3 + (2/3) * cx,\n\t\ty1/3 + (2/3) * cy,\n\t\tx2/3 + (2/3) * cx,\n\t\ty2/3 + (2/3) * cy,\n\t\tx2,\n\t\ty2\n\t]\n}\n\n// This function is ripped from \n// github.com/DmitryBaranovskiy/raphael/blob/4d97d4/raphael.js#L2216-L2304 \n// which references w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n// TODO: make it human readable\n\nfunction arc(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\n\tif (!recursive) {\n\t\tvar xy = rotate(x1, y1, -angle)\n\t\tx1 = xy.x\n\t\ty1 = xy.y\n\t\txy = rotate(x2, y2, -angle)\n\t\tx2 = xy.x\n\t\ty2 = xy.y\n\t\tvar x = (x1 - x2) / 2\n\t\tvar y = (y1 - y2) / 2\n\t\tvar h = (x * x) / (rx * rx) + (y * y) / (ry * ry)\n\t\tif (h > 1) {\n\t\t\th = Math.sqrt(h)\n\t\t\trx = h * rx\n\t\t\try = h * ry\n\t\t}\n\t\tvar rx2 = rx * rx\n\t\tvar ry2 = ry * ry\n\t\tvar k = (large_arc_flag == sweep_flag ? -1 : 1)\n\t\t\t* Math.sqrt(Math.abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x)))\n\t\tif (k == Infinity) k = 1 // neutralize\n\t\tvar cx = k * rx * y / ry + (x1 + x2) / 2\n\t\tvar cy = k * -ry * x / rx + (y1 + y2) / 2\n\t\tvar f1 = Math.asin(((y1 - cy) / ry).toFixed(9))\n\t\tvar f2 = Math.asin(((y2 - cy) / ry).toFixed(9))\n\n\t\tf1 = x1 < cx ? π - f1 : f1\n\t\tf2 = x2 < cx ? π - f2 : f2\n\t\tif (f1 < 0) f1 = π * 2 + f1\n\t\tif (f2 < 0) f2 = π * 2 + f2\n\t\tif (sweep_flag && f1 > f2) f1 = f1 - π * 2\n\t\tif (!sweep_flag && f2 > f1) f2 = f2 - π * 2\n\t} else {\n\t\tf1 = recursive[0]\n\t\tf2 = recursive[1]\n\t\tcx = recursive[2]\n\t\tcy = recursive[3]\n\t}\n\t// greater than 120 degrees requires multiple segments\n\tif (Math.abs(f2 - f1) > _120) {\n\t\tvar f2old = f2\n\t\tvar x2old = x2\n\t\tvar y2old = y2\n\t\tf2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1)\n\t\tx2 = cx + rx * Math.cos(f2)\n\t\ty2 = cy + ry * Math.sin(f2)\n\t\tvar res = arc(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy])\n\t}\n\tvar t = Math.tan((f2 - f1) / 4)\n\tvar hx = 4 / 3 * rx * t\n\tvar hy = 4 / 3 * ry * t\n\tvar curve = [\n\t\t2 * x1 - (x1 + hx * Math.sin(f1)),\n\t\t2 * y1 - (y1 - hy * Math.cos(f1)),\n\t\tx2 + hx * Math.sin(f2),\n\t\ty2 - hy * Math.cos(f2),\n\t\tx2,\n\t\ty2\n\t]\n\tif (recursive) return curve\n\tif (res) curve = curve.concat(res)\n\tfor (var i = 0; i < curve.length;) {\n\t\tvar rot = rotate(curve[i], curve[i+1], angle)\n\t\tcurve[i++] = rot.x\n\t\tcurve[i++] = rot.y\n\t}\n\treturn curve\n}\n\nfunction rotate(x, y, rad){\n\treturn {\n\t\tx: x * Math.cos(rad) - y * Math.sin(rad),\n\t\ty: x * Math.sin(rad) + y * Math.cos(rad)\n\t}\n}\n\nfunction radians(degress){\n\treturn degress * (π / 180)\n}\n\n\n/***/ }),\n\n/***/ \"7c73\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"825a\");\nvar defineProperties = __webpack_require__(\"37e8\");\nvar enumBugKeys = __webpack_require__(\"7839\");\nvar hiddenKeys = __webpack_require__(\"d012\");\nvar html = __webpack_require__(\"1be4\");\nvar documentCreateElement = __webpack_require__(\"cc12\");\nvar sharedKey = __webpack_require__(\"f772\");\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"7c9f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n moduleType: 'component',\n name: 'images',\n\n layoutAttributes: __webpack_require__(\"d72e\"),\n supplyLayoutDefaults: __webpack_require__(\"4b6a\"),\n includeBasePlot: __webpack_require__(\"37d1\")('images'),\n\n draw: __webpack_require__(\"ff49\"),\n\n convertCoords: __webpack_require__(\"6174\")\n};\n\n\n/***/ }),\n\n/***/ \"7d72\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// Exports true if environment provides native `WeakMap` implementation, whatever that is.\n\n\n\nmodule.exports = (function () {\n\tif (typeof WeakMap !== \"function\") return false;\n\treturn Object.prototype.toString.call(new WeakMap()) === \"[object WeakMap]\";\n}());\n\n\n/***/ }),\n\n/***/ \"7d88\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar safeToString = __webpack_require__(\"1e0a\");\n\nvar reNewLine = /[\\n\\r\\u2028\\u2029]/g;\n\nmodule.exports = function (value) {\n\tvar string = safeToString(value);\n\tif (string === null) return \"\";\n\t// Trim if too long\n\tif (string.length > 100) string = string.slice(0, 99) + \"…\";\n\t// Replace eventual new lines\n\tstring = string.replace(reNewLine, function (char) {\n\t\tswitch (char) {\n\t\t\tcase \"\\n\":\n\t\t\t\treturn \"\\\\n\";\n\t\t\tcase \"\\r\":\n\t\t\t\treturn \"\\\\r\";\n\t\t\tcase \"\\u2028\":\n\t\t\t\treturn \"\\\\u2028\";\n\t\t\tcase \"\\u2029\":\n\t\t\t\treturn \"\\\\u2029\";\n\t\t\t/* istanbul ignore next */\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"Unexpected character\");\n\t\t}\n\t});\n\treturn string;\n};\n\n\n/***/ }),\n\n/***/ \"7dbb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n(function(aa,ia){ true?module.exports=ia():undefined})(this,function(){function aa(a,b){this.id=Ab++;this.type=a;this.data=b}function ia(a){if(0===a.length)return[];var b=a.charAt(0),c=a.charAt(a.length-1);if(1>>=b;c=(255>>=c;b|=c;c=(15>>=c;b|=c;c=(3>>c>>1}function cb(){function a(a){a:{for(var b=16;268435456>=b;b*=16)if(a<=b){a=b;break a}a=0}b=c[bb(a)>>2];return 0>2].push(a)}var c=J(8,function(){return[]});return{alloc:a,free:b,allocType:function(b,c){var d=null;switch(b){case 5120:d=new Int8Array(a(c),0,c);break;case 5121:d=new Uint8Array(a(c),0,c);break;case 5122:d=new Int16Array(a(2*c),0,c);break;case 5123:d=new Uint16Array(a(2*c),0,c);break;case 5124:d=new Int32Array(a(4*c),0,c);break;case 5125:d=new Uint32Array(a(4*c),0,c);break;case 5126:d=new Float32Array(a(4*c),0,c);break;default:return null}return d.length!==\nc?d.subarray(0,c):d},freeType:function(a){b(a.buffer)}}}function ma(a){return!!a&&\"object\"===typeof a&&Array.isArray(a.shape)&&Array.isArray(a.stride)&&\"number\"===typeof a.offset&&a.shape.length===a.stride.length&&(Array.isArray(a.data)||M(a.data))}function db(a,b,c,e,g,d){for(var p=0;pd&&(d=e.buffer.byteLength,5123===f?d>>=1:5125===f&&(d>>=2));e.vertCount=d;d=h;0>h&&(d=4,h=e.buffer.dimension,1===h&&(d=0),2===h&&(d=1),3===h&&(d=4));e.primType=d}function p(a){e.elementsCount--;delete f[a.id];a.buffer.destroy();a.buffer=null}var f={},r=0,q={uint8:5121,\nuint16:5123};b.oes_element_index_uint&&(q.uint32=5125);g.prototype.bind=function(){this.buffer.bind()};var t=[];return{create:function(a,b){function k(a){if(a)if(\"number\"===typeof a)h(a),l.primType=4,l.vertCount=a|0,l.type=5121;else{var b=null,c=35044,e=-1,g=-1,f=0,m=0;if(Array.isArray(a)||M(a)||ma(a))b=a;else if(\"data\"in a&&(b=a.data),\"usage\"in a&&(c=jb[a.usage]),\"primitive\"in a&&(e=Sa[a.primitive]),\"count\"in a&&(g=a.count|0),\"type\"in a&&(m=q[a.type]),\"length\"in a)f=a.length|0;else if(f=g,5123===\nm||5122===m)f*=2;else if(5125===m||5124===m)f*=4;d(l,b,c,e,g,f,m)}else h(),l.primType=4,l.vertCount=0,l.type=5121;return k}var h=c.create(null,34963,!0),l=new g(h._buffer);e.elementsCount++;k(a);k._reglType=\"elements\";k._elements=l;k.subdata=function(a,b){h.subdata(a,b);return k};k.destroy=function(){p(l)};return k},createStream:function(a){var b=t.pop();b||(b=new g(c.create(null,34963,!0,!1)._buffer));d(b,a,35040,-1,-1,0,0);return b},destroyStream:function(a){t.push(a)},getElements:function(a){return\"function\"===\ntypeof a&&a._elements instanceof g?a._elements:null},clear:function(){S(f).forEach(p)}}}function kb(a){for(var b=x.allocType(5123,a.length),c=0;c>>31<<15,d=(e<<1>>>24)-127,e=e>>13&1023;b[c]=-24>d?g:-14>d?g+(e+1024>>-14-d):15>=e,c.height>>=e,C(c,d[e]),a.mipmask|=1<b;++b)a.images[b]=null;return a}function ib(a){for(var b=a.images,c=0;cb){for(var c=0;c=--this.refCount&&A(this)}});p.profile&&(d.getTotalTextureSize=function(){var a=0;Object.keys(X).forEach(function(b){a+=X[b].stats.size});return a});return{create2D:function(b,c){function e(a,b){var c=f.texInfo;z.call(c);var d=D();\"number\"===typeof a?\"number\"===typeof b?\nv(d,a|0,b|0):v(d,a|0,a|0):a?(O(c,a),N(d,a)):v(d,1,1);c.genMipmaps&&(d.mipmask=(d.width<<1)-1);f.mipmask=d.mipmask;r(f,d);f.internalformat=d.internalformat;e.width=d.width;e.height=d.height;T(f);B(d,3553);R(c,3553);Aa();ib(d);p.profile&&(f.stats.size=Ja(f.internalformat,f.type,d.width,d.height,c.genMipmaps,!1));e.format=J[f.internalformat];e.type=da[f.type];e.mag=oa[c.magFilter];e.min=za[c.minFilter];e.wrapS=ka[c.wrapS];e.wrapT=ka[c.wrapT];return e}var f=new F(3553);X[f.id]=f;d.textureCount++;e(b,\nc);e.subimage=function(a,b,c,d){b|=0;c|=0;d|=0;var n=h();r(n,f);n.width=0;n.height=0;C(n,a);n.width=n.width||(f.width>>d)-b;n.height=n.height||(f.height>>d)-c;T(f);k(n,3553,b,c,d);Aa();l(n);return e};e.resize=function(b,c){var d=b|0,h=c|0||d;if(d===f.width&&h===f.height)return e;e.width=f.width=d;e.height=f.height=h;T(f);for(var n,w=f.channels,y=f.type,I=0;f.mipmask>>I;++I){var fa=d>>I,ga=h>>I;if(!fa||!ga)break;n=x.zero.allocType(y,fa*ga*w);a.texImage2D(3553,I,f.format,fa,ga,0,f.format,f.type,n);\nn&&x.zero.freeType(n)}Aa();p.profile&&(f.stats.size=Ja(f.internalformat,f.type,d,h,!1,!1));return e};e._reglType=\"texture2d\";e._texture=f;p.profile&&(e.stats=f.stats);e.destroy=function(){f.decRef()};return e},createCube:function(b,c,e,f,g,ua){function A(a,b,c,d,e,f){var H,Y=m.texInfo;z.call(Y);for(H=0;6>H;++H)n[H]=D();if(\"number\"===typeof a||!a)for(a=a|0||1,H=0;6>H;++H)v(n[H],a,a);else if(\"object\"===typeof a)if(b)N(n[0],a),N(n[1],b),N(n[2],c),N(n[3],d),N(n[4],e),N(n[5],f);else if(O(Y,a),q(m,a),\"faces\"in\na)for(a=a.faces,H=0;6>H;++H)r(n[H],m),N(n[H],a[H]);else for(H=0;6>H;++H)N(n[H],a);r(m,n[0]);m.mipmask=Y.genMipmaps?(n[0].width<<1)-1:n[0].mipmask;m.internalformat=n[0].internalformat;A.width=n[0].width;A.height=n[0].height;T(m);for(H=0;6>H;++H)B(n[H],34069+H);R(Y,34067);Aa();p.profile&&(m.stats.size=Ja(m.internalformat,m.type,A.width,A.height,Y.genMipmaps,!0));A.format=J[m.internalformat];A.type=da[m.type];A.mag=oa[Y.magFilter];A.min=za[Y.minFilter];A.wrapS=ka[Y.wrapS];A.wrapT=ka[Y.wrapT];for(H=0;6>\nH;++H)ib(n[H]);return A}var m=new F(34067);X[m.id]=m;d.cubeCount++;var n=Array(6);A(b,c,e,f,g,ua);A.subimage=function(a,b,c,n,d){c|=0;n|=0;d|=0;var e=h();r(e,m);e.width=0;e.height=0;C(e,b);e.width=e.width||(m.width>>d)-c;e.height=e.height||(m.height>>d)-n;T(m);k(e,34069+a,c,n,d);Aa();l(e);return A};A.resize=function(b){b|=0;if(b!==m.width){A.width=m.width=b;A.height=m.height=b;T(m);for(var c=0;6>c;++c)for(var n=0;m.mipmask>>n;++n)a.texImage2D(34069+c,n,m.format,b>>n,b>>n,0,m.format,m.type,null);Aa();\np.profile&&(m.stats.size=Ja(m.internalformat,m.type,A.width,A.height,!1,!0));return A}};A._reglType=\"textureCube\";A._texture=m;p.profile&&(A.stats=m.stats);A.destroy=function(){m.decRef()};return A},clear:function(){for(var b=0;bc;++c)if(0!==(b.mipmask&1<>c,b.height>>c,0,b.internalformat,b.type,null);else for(var d=0;6>d;++d)a.texImage2D(34069+d,c,b.internalformat,b.width>>c,b.height>>c,0,b.internalformat,b.type,null);R(b.texInfo,b.target)})}}}function Ob(a,b,c,e,g,d){function p(a,b,c){this.target=a;this.texture=b;this.renderbuffer=c;var d=a=0;b?(a=b.width,d=b.height):c&&(a=c.width,d=c.height);\nthis.width=a;this.height=d}function f(a){a&&(a.texture&&a.texture._texture.decRef(),a.renderbuffer&&a.renderbuffer._renderbuffer.decRef())}function r(a,b,c){a&&(a.texture?a.texture._texture.refCount+=1:a.renderbuffer._renderbuffer.refCount+=1)}function q(b,c){c&&(c.texture?a.framebufferTexture2D(36160,b,c.target,c.texture._texture.texture,0):a.framebufferRenderbuffer(36160,b,36161,c.renderbuffer._renderbuffer.renderbuffer))}function t(a){var b=3553,c=null,d=null,e=a;\"object\"===typeof a&&(e=a.data,\n\"target\"in a&&(b=a.target|0));a=e._reglType;\"texture2d\"===a?c=e:\"textureCube\"===a?c=e:\"renderbuffer\"===a&&(d=e,b=36161);return new p(b,c,d)}function m(a,b,c,d,f){if(c)return a=e.create2D({width:a,height:b,format:d,type:f}),a._texture.refCount=0,new p(3553,a,null);a=g.create({width:a,height:b,format:d});a._renderbuffer.refCount=0;return new p(36161,null,a)}function C(a){return a&&(a.texture||a.renderbuffer)}function k(a,b,c){a&&(a.texture?a.texture.resize(b,c):a.renderbuffer&&a.renderbuffer.resize(b,\nc),a.width=b,a.height=c)}function h(){this.id=O++;R[this.id]=this;this.framebuffer=a.createFramebuffer();this.height=this.width=0;this.colorAttachments=[];this.depthStencilAttachment=this.stencilAttachment=this.depthAttachment=null}function l(a){a.colorAttachments.forEach(f);f(a.depthAttachment);f(a.stencilAttachment);f(a.depthStencilAttachment)}function u(b){a.deleteFramebuffer(b.framebuffer);b.framebuffer=null;d.framebufferCount--;delete R[b.id]}function v(b){var d;a.bindFramebuffer(36160,b.framebuffer);\nvar e=b.colorAttachments;for(d=0;dd;++d){for(m=0;ma;++a)c[a].resize(d);b.width=b.height=d;return b},_reglType:\"framebufferCube\",destroy:function(){c.forEach(function(a){a.destroy()})}})},\nclear:function(){S(R).forEach(u)},restore:function(){B.cur=null;B.next=null;B.dirty=!0;S(R).forEach(function(b){b.framebuffer=a.createFramebuffer();v(b)})}})}function ub(){this.w=this.z=this.y=this.x=this.state=0;this.buffer=null;this.size=0;this.normalized=!1;this.type=5126;this.divisor=this.stride=this.offset=0}function Pb(a,b,c,e){a=c.maxAttributes;b=Array(a);for(c=0;ca&&(a=b.stats.uniformsCount)});return a},c.getMaxAttributesCount=function(){var a=0;C.forEach(function(b){b.stats.attributesCount>a&&(a=b.stats.attributesCount)});return a});return{clear:function(){var b=a.deleteShader.bind(a);S(q).forEach(b);q={};S(t).forEach(b);t={};C.forEach(function(b){a.deleteProgram(b.program)});\nC.length=0;m={};c.shaderCount=0},program:function(a,b,d){var e=m[b];e||(e=m[b]={});var g=e[a];g||(g=new f(b,a),c.shaderCount++,r(g,d),e[a]=g,C.push(g));return g},restore:function(){q={};t={};for(var a=0;a\"+b+\"?\"+e+\".constant[\"+b+\"]:0;\"}).join(\"\"),\"}}else{\",\"if(\",g,\"(\",e,\".buffer)){\",y,\"=\",n,\".createStream(\",34962,\",\",e,\".buffer);\",\"}else{\",y,\"=\",n,\".getBuffer(\",e,\".buffer);\",\"}\",k,'=\"type\" in ',e,\"?\",f.glTypes,\"[\",e,\".type]:\",y,\".dtype;\",\nw.normalized,\"=!!\",e,\".normalized;\");d(\"size\");d(\"offset\");d(\"stride\");d(\"divisor\");c(\"}}\");c.exit(\"if(\",w.isStream,\"){\",n,\".destroyStream(\",y,\");\",\"}\");return w})});return f}function M(a){var b=a[\"static\"],c=a.dynamic,d={};Object.keys(b).forEach(function(a){var c=b[a];d[a]=D(function(a,b){return\"number\"===typeof c||\"boolean\"===typeof c?\"\"+c:a.link(c)})});Object.keys(c).forEach(function(a){var b=c[a];d[a]=P(b,function(a,c){return a.invoke(c,b)})});return d}function A(a,b,c,d,e){var f=z(a,e),g=x(a,\nf,e),h=O(a,e),k=R(a,e),m=E(a,e),ba=g.viewport;ba&&(k.viewport=ba);ba=l(\"scissor.box\");(g=g[ba])&&(k[ba]=g);g=0>1)\",v],\");\")}function b(){c(u,\".drawArraysInstancedANGLE(\",[q,r,t,v],\");\")}p?da?a():(c(\"if(\",p,\"){\"),a(),c(\"}else{\"),b(),c(\"}\")):b()}function g(){function a(){c(k+\".drawElements(\"+[q,t,C,r+\"<<((\"+C+\"-5121)>>1)\"]+\");\")}function b(){c(k+\".drawArrays(\"+[q,r,t]+\");\")}p?da?a():(c(\"if(\",p,\"){\"),a(),c(\"}else{\"),b(),c(\"}\")):b()}var h=a.shared,k=h.gl,m=h.draw,l=d.draw,p=function(){var e=l.elements,f=b;if(e){if(e.contextDep&&d.contextDynamic||e.propDep)f=c;e=e.append(a,f)}else e=f.def(m,\n\".\",\"elements\");e&&f(\"if(\"+e+\")\"+k+\".bindBuffer(34963,\"+e+\".buffer.buffer);\");return e}(),q=e(\"primitive\"),r=e(\"offset\"),t=function(){var e=l.count,f=b;if(e){if(e.contextDep&&d.contextDynamic||e.propDep)f=c;e=e.append(a,f)}else e=f.def(m,\".\",\"count\");return e}();if(\"number\"===typeof t){if(0===t)return}else c(\"if(\",t,\"){\"),c.exit(\"}\");var v,u;ea&&(v=e(\"instances\"),u=a.instancing);var C=p+\".type\",da=l.elements&&va(l.elements);ea&&(\"number\"!==typeof v||0<=v)?\"string\"===typeof v?(c(\"if(\",v,\">0){\"),f(),\nc(\"}else if(\",v,\"<0){\"),g(),c(\"}\")):f():g()}function ca(a,b,c,d,e){b=N();e=b.proc(\"body\",e);ea&&(b.instancing=e.def(b.shared.extensions,\".angle_instanced_arrays\"));a(b,e,c,d);return b.compile().body}function L(a,b,c,d){wa(a,b);U(a,b,c,d.attributes,function(){return!0});W(a,b,c,d.uniforms,function(){return!0});S(a,b,b,c)}function da(a,b){var c=a.proc(\"draw\",1);wa(a,c);ua(a,c,b.context);K(a,c,b.framebuffer);V(a,c,b);Q(a,c,b.state);G(a,c,b,!1,!0);var d=b.shader.progVar.append(a,c);c(a.shared.gl,\".useProgram(\",\nd,\".program);\");if(b.shader.program)L(a,c,b,b.shader.program);else{var e=a.global.def(\"{}\"),f=c.def(d,\".id\"),g=c.def(e,\"[\",f,\"]\");c(a.cond(g).then(g,\".call(this,a0);\")[\"else\"](g,\"=\",e,\"[\",f,\"]=\",a.link(function(c){return ca(L,a,b,c,1)}),\"(\",d,\");\",g,\".call(this,a0);\"))}0=--this.refCount&&p(this)};g.profile&&(e.getTotalRenderbufferSize=function(){var a=0;Object.keys(t).forEach(function(b){a+=t[b].stats.size});return a});return{create:function(b,c){function k(b,c){var d=0,e=0,m=32854;\"object\"===typeof b&&b?(\"shape\"in b?(e=b.shape,d=e[0]|0,e=e[1]|0):(\"radius\"in b&&(d=e=b.radius|0),\"width\"in b&&(d=b.width|0),\"height\"in b&&(e=b.height|0)),\"format\"in b&&(m=f[b.format])):\"number\"===\ntypeof b?(d=b|0,e=\"number\"===typeof c?c|0:d):b||(d=e=1);if(d!==h.width||e!==h.height||m!==h.format)return k.width=h.width=d,k.height=h.height=e,h.format=m,a.bindRenderbuffer(36161,h.renderbuffer),a.renderbufferStorage(36161,m,d,e),g.profile&&(h.stats.size=Q[h.format]*h.width*h.height),k.format=r[h.format],k}var h=new d(a.createRenderbuffer());t[h.id]=h;e.renderbufferCount++;k(b,c);k.resize=function(b,c){var d=b|0,e=c|0||d;if(d===h.width&&e===h.height)return k;k.width=h.width=d;k.height=h.height=e;\na.bindRenderbuffer(36161,h.renderbuffer);a.renderbufferStorage(36161,h.format,d,e);g.profile&&(h.stats.size=Q[h.format]*h.width*h.height);return k};k._reglType=\"renderbuffer\";k._renderbuffer=h;g.profile&&(k.stats=h.stats);k.destroy=function(){h.decRef()};return k},clear:function(){S(t).forEach(p)},restore:function(){S(t).forEach(function(b){b.renderbuffer=a.createRenderbuffer();a.bindRenderbuffer(36161,b.renderbuffer);a.renderbufferStorage(36161,b.format,b.width,b.height)});a.bindRenderbuffer(36161,\nnull)}}},Wa=[];Wa[6408]=4;Wa[6407]=3;var Na=[];Na[5121]=1;Na[5126]=4;Na[36193]=2;var Da=[\"x\",\"y\",\"z\",\"w\"],Ub=\"blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset\".split(\" \"),Ga={0:0,1:1,zero:0,one:1,\"src color\":768,\"one minus src color\":769,\"src alpha\":770,\"one minus src alpha\":771,\"dst color\":774,\"one minus dst color\":775,\"dst alpha\":772,\"one minus dst alpha\":773,\"constant color\":32769,\"one minus constant color\":32770,\"constant alpha\":32771,\n\"one minus constant alpha\":32772,\"src alpha saturate\":776},Xa={never:512,less:513,\"<\":513,equal:514,\"=\":514,\"==\":514,\"===\":514,lequal:515,\"<=\":515,greater:516,\">\":516,notequal:517,\"!=\":517,\"!==\":517,gequal:518,\">=\":518,always:519},Pa={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,\"increment wrap\":34055,\"decrement wrap\":34056,invert:5386},wb={cw:2304,ccw:2305},xb=new Z(!1,!1,!1,function(){}),Xb=function(a,b){function c(){this.endQueryIndex=this.startQueryIndex=-1;this.sum=0;this.stats=\nnull}function e(a,b,d){var e=p.pop()||new c;e.startQueryIndex=a;e.endQueryIndex=b;e.sum=0;e.stats=d;f.push(e)}if(!b.ext_disjoint_timer_query)return null;var g=[],d=[],p=[],f=[],r=[],q=[];return{beginQuery:function(a){var c=g.pop()||b.ext_disjoint_timer_query.createQueryEXT();b.ext_disjoint_timer_query.beginQueryEXT(35007,c);d.push(c);e(d.length-1,d.length,a)},endQuery:function(){b.ext_disjoint_timer_query.endQueryEXT(35007)},pushScopeStats:e,update:function(){var a,c;a=d.length;if(0!==a){q.length=\nMath.max(q.length,a+1);r.length=Math.max(r.length,a+1);r[0]=0;var e=q[0]=0;for(c=a=0;c=G.length&&e()}var c=yb(G,a);G[c]=b}}}function q(){var a=S.viewport,b=S.scissor_box;a[0]=a[1]=b[0]=b[1]=0;O.viewportWidth=O.framebufferWidth=O.drawingBufferWidth=a[2]=b[2]=k.drawingBufferWidth;O.viewportHeight=O.framebufferHeight=O.drawingBufferHeight=a[3]=b[3]=k.drawingBufferHeight}function t(){O.tick+=1;O.time=z();\nq();V.procs.poll()}function m(){q();V.procs.refresh();B&&B.update()}function z(){return(zb()-D)/1E3}a=Eb(a);if(!a)return null;var k=a.gl,h=k.getContextAttributes();k.isContextLost();var l=Fb(k,a);if(!l)return null;var u=Bb(),v={bufferCount:0,elementsCount:0,framebufferCount:0,shaderCount:0,textureCount:0,cubeCount:0,renderbufferCount:0,maxTextureUnits:0},x=l.extensions,B=Xb(k,x),D=zb(),J=k.drawingBufferWidth,P=k.drawingBufferHeight,O={tick:0,time:0,viewportWidth:J,viewportHeight:P,framebufferWidth:J,\nframebufferHeight:P,drawingBufferWidth:J,drawingBufferHeight:P,pixelRatio:a.pixelRatio},R=Vb(k,x),J=Pb(k,x,R,u),F=Gb(k,v,a,J),T=Hb(k,x,F,v),Q=Qb(k,u,v,a),A=Kb(k,x,R,function(){V.procs.poll()},O,v,a),M=Wb(k,x,R,v,a),K=Ob(k,x,R,A,M,v),V=Tb(k,u,x,R,F,T,A,K,{},J,Q,{elements:null,primitive:4,count:-1,offset:0,instances:-1},O,B,a),u=Rb(k,K,V.procs.poll,O,h,x,R),S=V.next,L=k.canvas,G=[],U=[],W=[],Z=[a.onDestroy],ca=null;L&&(L.addEventListener(\"webglcontextlost\",g,!1),L.addEventListener(\"webglcontextrestored\",\nd,!1));var aa=K.setFBO=p({framebuffer:la.define.call(null,1,\"framebuffer\")});m();h=E(p,{clear:function(a){if(\"framebuffer\"in a)if(a.framebuffer&&\"framebufferCube\"===a.framebuffer_reglType)for(var b=0;6>b;++b)aa(E({framebuffer:a.framebuffer.faces[b]},a),f);else aa(a,f);else f(null,a)},prop:la.define.bind(null,1),context:la.define.bind(null,2),\"this\":la.define.bind(null,3),draw:p({}),buffer:function(a){return F.create(a,34962,!1,!1)},elements:function(a){return T.create(a,!1)},texture:A.create2D,cube:A.createCube,\nrenderbuffer:M.create,framebuffer:K.create,framebufferCube:K.createCube,attributes:h,frame:r,on:function(a,b){var c;switch(a){case \"frame\":return r(b);case \"lost\":c=U;break;case \"restore\":c=W;break;case \"destroy\":c=Z}c.push(b);return{cancel:function(){for(var a=0;a cache.ts + minInterval) {\n exec();\n return;\n }\n\n cache.timer = setTimeout(function() {\n exec();\n cache.timer = null;\n }, minInterval);\n};\n\nexports.done = function(id) {\n var cache = timerCache[id];\n if(!cache || !cache.timer) return Promise.resolve();\n\n return new Promise(function(resolve) {\n var previousOnDone = cache.onDone;\n cache.onDone = function onDone() {\n if(previousOnDone) previousOnDone();\n resolve();\n cache.onDone = null;\n };\n });\n};\n\n/**\n * Clear the throttle cache for one or all timers\n * @param {optional string} id:\n * if provided, clear just this timer\n * if omitted, clear all timers (mainly useful for testing)\n */\nexports.clear = function(id) {\n if(id) {\n _clearTimeout(timerCache[id]);\n delete timerCache[id];\n } else {\n for(var idi in timerCache) exports.clear(idi);\n }\n};\n\nfunction _clearTimeout(cache) {\n if(cache && cache.timer !== null) {\n clearTimeout(cache.timer);\n cache.timer = null;\n }\n}\n\n\n/***/ }),\n\n/***/ \"7e25\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\n\n/***/ }),\n\n/***/ \"7e55\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar tarjan = __webpack_require__(\"53cc\");\n\nmodule.exports = function findCircuits(edges) {\n var circuits = []; // Output\n\n var stack = [];\n var blocked = [];\n var B = {};\n var Ak = [];\n var s;\n\n function unblock(u) {\n blocked[u] = false;\n if(B.hasOwnProperty(u)) {\n Object.keys(B[u]).forEach(function(w) {\n delete B[u][w];\n if(blocked[w]) {unblock(w);}\n });\n }\n }\n\n function circuit(v) {\n var found = false;\n\n stack.push(v);\n blocked[v] = true;\n\n // L1\n var i;\n var w;\n for(i = 0; i < Ak[v].length; i++) {\n w = Ak[v][i];\n if(w === s) {\n output(s, stack);\n found = true;\n } else if(!blocked[w]) {\n found = circuit(w);\n }\n }\n\n // L2\n if(found) {\n unblock(v);\n } else {\n for(i = 0; i < Ak[v].length; i++) {\n w = Ak[v][i];\n var entry = B[w];\n\n if(!entry) {\n entry = {};\n B[w] = entry;\n }\n\n entry[w] = true;\n }\n }\n stack.pop();\n return found;\n }\n\n function output(start, stack) {\n var cycle = [].concat(stack).concat(start);\n circuits.push(cycle);\n }\n\n function subgraph(minId) {\n // Remove edges with indice smaller than minId\n for(var i = 0; i < edges.length; i++) {\n if(i < minId) edges[i] = [];\n edges[i] = edges[i].filter(function(i) {\n return i >= minId;\n });\n }\n }\n\n function adjacencyStructureSCC(from) {\n // Make subgraph starting from vertex minId\n subgraph(from);\n var g = edges;\n\n // Find strongly connected components using Tarjan algorithm\n var sccs = tarjan(g);\n\n // Filter out trivial connected components (ie. made of one node)\n var ccs = sccs.components.filter(function(scc) {\n return scc.length > 1;\n });\n\n // Find least vertex\n var leastVertex = Infinity;\n var leastVertexComponent;\n for(var i = 0; i < ccs.length; i++) {\n for(var j = 0; j < ccs[i].length; j++) {\n if(ccs[i][j] < leastVertex) {\n leastVertex = ccs[i][j];\n leastVertexComponent = i;\n }\n }\n }\n\n var cc = ccs[leastVertexComponent];\n\n if(!cc) return false;\n\n // Return the adjacency list of first component\n var adjList = edges.map(function(l, index) {\n if(cc.indexOf(index) === -1) return [];\n return l.filter(function(i) {\n return cc.indexOf(i) !== -1;\n });\n });\n\n return {\n leastVertex: leastVertex,\n adjList: adjList\n };\n }\n\n s = 0;\n var n = edges.length;\n while(s < n) {\n // find strong component with least vertex in\n // subgraph starting from vertex `s`\n var p = adjacencyStructureSCC(s);\n\n // Its least vertex\n s = p.leastVertex;\n // Its adjacency list\n Ak = p.adjList;\n\n if(Ak) {\n for(var i = 0; i < Ak.length; i++) {\n for(var j = 0; j < Ak[i].length; j++) {\n var vertexId = Ak[i][j];\n blocked[+vertexId] = false;\n B[vertexId] = {};\n }\n }\n circuit(s);\n s = s + 1;\n } else {\n s = n;\n }\n\n }\n\n return circuits;\n};\n\n\n/***/ }),\n\n/***/ \"7e91\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createAttributeWrapper\n\nvar GLError = __webpack_require__(\"a3fd\")\n\nfunction ShaderAttribute(\n gl\n , wrapper\n , index\n , locations\n , dimension\n , constFunc) {\n this._gl = gl\n this._wrapper = wrapper\n this._index = index\n this._locations = locations\n this._dimension = dimension\n this._constFunc = constFunc\n}\n\nvar proto = ShaderAttribute.prototype\n\nproto.pointer = function setAttribPointer(\n type\n , normalized\n , stride\n , offset) {\n\n var self = this\n var gl = self._gl\n var location = self._locations[self._index]\n\n gl.vertexAttribPointer(\n location\n , self._dimension\n , type || gl.FLOAT\n , !!normalized\n , stride || 0\n , offset || 0)\n gl.enableVertexAttribArray(location)\n}\n\nproto.set = function(x0, x1, x2, x3) {\n return this._constFunc(this._locations[this._index], x0, x1, x2, x3)\n}\n\nObject.defineProperty(proto, 'location', {\n get: function() {\n return this._locations[this._index]\n }\n , set: function(v) {\n if(v !== this._locations[this._index]) {\n this._locations[this._index] = v|0\n this._wrapper.program = null\n }\n return v|0\n }\n})\n\n//Adds a vector attribute to obj\nfunction addVectorAttribute(\n gl\n , wrapper\n , index\n , locations\n , dimension\n , obj\n , name) {\n\n //Construct constant function\n var constFuncArgs = [ 'gl', 'v' ]\n var varNames = []\n for(var i=0; i= 0) {\n var d = type.charCodeAt(type.length-1) - 48\n if(d < 2 || d > 4) {\n throw new GLError('', 'Invalid data type for attribute ' + name + ': ' + type)\n }\n addVectorAttribute(\n gl\n , wrapper\n , locs[0]\n , locations\n , d\n , obj\n , name)\n } else if(type.indexOf('mat') >= 0) {\n var d = type.charCodeAt(type.length-1) - 48\n if(d < 2 || d > 4) {\n throw new GLError('', 'Invalid data type for attribute ' + name + ': ' + type)\n }\n addMatrixAttribute(\n gl\n , wrapper\n , locs\n , locations\n , d\n , obj\n , name)\n } else {\n throw new GLError('', 'Unknown data type for attribute ' + name + ': ' + type)\n }\n break\n }\n }\n return obj\n}\n\n\n/***/ }),\n\n/***/ \"7e96\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Axes = __webpack_require__(\"0642\");\n\nmodule.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n\n var mockGd = {_fullLayout: fullLayout};\n var xa = Axes.getFromTrace(mockGd, trace, 'x');\n var ya = Axes.getFromTrace(mockGd, trace, 'y');\n\n labels.xLabel = Axes.tickText(xa, cdi.x, true).text;\n labels.yLabel = Axes.tickText(ya, cdi.y, true).text;\n\n return labels;\n};\n\n\n/***/ }),\n\n/***/ \"7eee\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\nvar attributes = __webpack_require__(\"8c2d\");\n\nvar xyAttrs = {\n error_x: Lib.extendFlat({}, attributes),\n error_y: Lib.extendFlat({}, attributes)\n};\ndelete xyAttrs.error_x.copy_zstyle;\ndelete xyAttrs.error_y.copy_zstyle;\ndelete xyAttrs.error_y.copy_ystyle;\n\nvar xyzAttrs = {\n error_x: Lib.extendFlat({}, attributes),\n error_y: Lib.extendFlat({}, attributes),\n error_z: Lib.extendFlat({}, attributes)\n};\ndelete xyzAttrs.error_x.copy_ystyle;\ndelete xyzAttrs.error_y.copy_ystyle;\ndelete xyzAttrs.error_z.copy_ystyle;\ndelete xyzAttrs.error_z.copy_zstyle;\n\nmodule.exports = {\n moduleType: 'component',\n name: 'errorbars',\n\n schema: {\n traces: {\n scatter: xyAttrs,\n bar: xyAttrs,\n histogram: xyAttrs,\n scatter3d: overrideAll(xyzAttrs, 'calc', 'nested'),\n scattergl: overrideAll(xyAttrs, 'calc', 'nested')\n }\n },\n\n supplyDefaults: __webpack_require__(\"2015\"),\n\n calc: __webpack_require__(\"db3f\"),\n makeComputeError: __webpack_require__(\"3c31\"),\n\n plot: __webpack_require__(\"553a\"),\n style: __webpack_require__(\"afdd\"),\n hoverInfo: hoverInfo\n};\n\nfunction hoverInfo(calcPoint, trace, hoverPoint) {\n if((trace.error_y || {}).visible) {\n hoverPoint.yerr = calcPoint.yh - calcPoint.y;\n if(!trace.error_y.symmetric) hoverPoint.yerrneg = calcPoint.y - calcPoint.ys;\n }\n if((trace.error_x || {}).visible) {\n hoverPoint.xerr = calcPoint.xh - calcPoint.x;\n if(!trace.error_x.symmetric) hoverPoint.xerrneg = calcPoint.x - calcPoint.xs;\n }\n}\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/** @module color-rgba */\n\n\n\nvar parse = __webpack_require__(\"e7cb\")\nvar hsl = __webpack_require__(\"13c3\")\nvar clamp = __webpack_require__(\"53a5\")\n\nmodule.exports = function rgba (color) {\n\tvar values, i, l\n\n\t//attempt to parse non-array arguments\n\tvar parsed = parse(color)\n\n\tif (!parsed.space) return []\n\n\tvalues = Array(3)\n\tvalues[0] = clamp(parsed.values[0], 0, 255)\n\tvalues[1] = clamp(parsed.values[1], 0, 255)\n\tvalues[2] = clamp(parsed.values[2], 0, 255)\n\n\tif (parsed.space[0] === 'h') {\n\t\tvalues = hsl.rgb(values)\n\t}\n\n\tvalues.push(clamp(parsed.alpha, 0, 1))\n\n\treturn values\n}\n\n\n/***/ }),\n\n/***/ \"7f6b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ndarray = __webpack_require__(\"b5bb\")\nvar do_convert = __webpack_require__(\"c808\")\n\nmodule.exports = function convert(arr, result) {\n var shape = [], c = arr, sz = 1\n while(Array.isArray(c)) {\n shape.push(c.length)\n sz *= c.length\n c = c[0]\n }\n if(shape.length === 0) {\n return ndarray()\n }\n if(!result) {\n result = ndarray(new Float64Array(sz), shape)\n }\n do_convert(result, arr)\n return result\n}\n\n\n/***/ }),\n\n/***/ \"7f9a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar inspectSource = __webpack_require__(\"8925\");\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n\n/***/ \"7f9b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar createShaderWrapper = __webpack_require__(\"28dd\")\nvar glslify = __webpack_require__(\"e98f\")\n\nvar perspectiveVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform vec4 highlightId;\\nuniform float highlightScale;\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float scale = 1.0;\\n if(distance(highlightId, id) < 0.0001) {\\n scale = highlightScale;\\n }\\n\\n vec4 worldPosition = model * vec4(position, 1);\\n vec4 viewPosition = view * worldPosition;\\n viewPosition = viewPosition / viewPosition.w;\\n vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0));\\n\\n gl_Position = clipPosition;\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = position;\\n }\\n}\"])\nvar orthographicVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform vec2 screenSize;\\nuniform vec3 clipBounds[2];\\nuniform float highlightScale, pixelRatio;\\nuniform vec4 highlightId;\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float scale = pixelRatio;\\n if(distance(highlightId.bgr, id.bgr) < 0.001) {\\n scale *= highlightScale;\\n }\\n\\n vec4 worldPosition = model * vec4(position, 1.0);\\n vec4 viewPosition = view * worldPosition;\\n vec4 clipPosition = projection * viewPosition;\\n clipPosition /= clipPosition.w;\\n\\n gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0);\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = position;\\n }\\n}\"])\nvar projectionVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform float highlightScale;\\nuniform vec4 highlightId;\\nuniform vec3 axes[2];\\nuniform mat4 model, view, projection;\\nuniform vec2 screenSize;\\nuniform vec3 clipBounds[2];\\nuniform float scale, pixelRatio;\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float lscale = pixelRatio * scale;\\n if(distance(highlightId, id) < 0.0001) {\\n lscale *= highlightScale;\\n }\\n\\n vec4 clipCenter = projection * view * model * vec4(position, 1);\\n vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y;\\n vec4 clipPosition = projection * view * model * vec4(dataPosition, 1);\\n\\n gl_Position = clipPosition;\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = dataPosition;\\n }\\n}\\n\"])\nvar drawFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 fragClipBounds[2];\\nuniform float opacity;\\n\\nvarying vec4 interpColor;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (\\n outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate) ||\\n interpColor.a * opacity == 0.\\n ) discard;\\n gl_FragColor = interpColor * opacity;\\n}\\n\"])\nvar pickFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 fragClipBounds[2];\\nuniform float pickGroup;\\n\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;\\n\\n gl_FragColor = vec4(pickGroup, pickId.bgr);\\n}\"])\n\nvar ATTRIBUTES = [\n {name: 'position', type: 'vec3'},\n {name: 'color', type: 'vec4'},\n {name: 'glyph', type: 'vec2'},\n {name: 'id', type: 'vec4'}\n]\n\nvar perspective = {\n vertex: perspectiveVertSrc,\n fragment: drawFragSrc,\n attributes: ATTRIBUTES\n },\n ortho = {\n vertex: orthographicVertSrc,\n fragment: drawFragSrc,\n attributes: ATTRIBUTES\n },\n project = {\n vertex: projectionVertSrc,\n fragment: drawFragSrc,\n attributes: ATTRIBUTES\n },\n pickPerspective = {\n vertex: perspectiveVertSrc,\n fragment: pickFragSrc,\n attributes: ATTRIBUTES\n },\n pickOrtho = {\n vertex: orthographicVertSrc,\n fragment: pickFragSrc,\n attributes: ATTRIBUTES\n },\n pickProject = {\n vertex: projectionVertSrc,\n fragment: pickFragSrc,\n attributes: ATTRIBUTES\n }\n\nfunction createShader(gl, src) {\n var shader = createShaderWrapper(gl, src)\n var attr = shader.attributes\n attr.position.location = 0\n attr.color.location = 1\n attr.glyph.location = 2\n attr.id.location = 3\n return shader\n}\n\nexports.createPerspective = function(gl) {\n return createShader(gl, perspective)\n}\nexports.createOrtho = function(gl) {\n return createShader(gl, ortho)\n}\nexports.createProject = function(gl) {\n return createShader(gl, project)\n}\nexports.createPickPerspective = function(gl) {\n return createShader(gl, pickPerspective)\n}\nexports.createPickOrtho = function(gl) {\n return createShader(gl, pickOrtho)\n}\nexports.createPickProject = function(gl) {\n return createShader(gl, pickProject)\n}\n\n\n/***/ }),\n\n/***/ \"7f9e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Axes = __webpack_require__(\"0642\");\n\nvar binFunctions = __webpack_require__(\"6dcc\");\nvar normFunctions = __webpack_require__(\"c005\");\nvar doAvg = __webpack_require__(\"9547\");\nvar getBinSpanLabelRound = __webpack_require__(\"5913\");\nvar calcAllAutoBins = __webpack_require__(\"0c39\").calcAllAutoBins;\n\nmodule.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis);\n var ya = Axes.getFromId(gd, trace.yaxis);\n\n var xcalendar = trace.xcalendar;\n var ycalendar = trace.ycalendar;\n var xr2c = function(v) { return xa.r2c(v, 0, xcalendar); };\n var yr2c = function(v) { return ya.r2c(v, 0, ycalendar); };\n var xc2r = function(v) { return xa.c2r(v, 0, xcalendar); };\n var yc2r = function(v) { return ya.c2r(v, 0, ycalendar); };\n\n var i, j, n, m;\n\n // calculate the bins\n var xBinsAndPos = calcAllAutoBins(gd, trace, xa, 'x');\n var xBinSpec = xBinsAndPos[0];\n var xPos0 = xBinsAndPos[1];\n var yBinsAndPos = calcAllAutoBins(gd, trace, ya, 'y');\n var yBinSpec = yBinsAndPos[0];\n var yPos0 = yBinsAndPos[1];\n\n var serieslen = trace._length;\n if(xPos0.length > serieslen) xPos0.splice(serieslen, xPos0.length - serieslen);\n if(yPos0.length > serieslen) yPos0.splice(serieslen, yPos0.length - serieslen);\n\n // make the empty bin array & scale the map\n var z = [];\n var onecol = [];\n var zerocol = [];\n var nonuniformBinsX = typeof xBinSpec.size === 'string';\n var nonuniformBinsY = typeof yBinSpec.size === 'string';\n var xEdges = [];\n var yEdges = [];\n var xbins = nonuniformBinsX ? xEdges : xBinSpec;\n var ybins = nonuniformBinsY ? yEdges : yBinSpec;\n var total = 0;\n var counts = [];\n var inputPoints = [];\n var norm = trace.histnorm;\n var func = trace.histfunc;\n var densitynorm = norm.indexOf('density') !== -1;\n var extremefunc = func === 'max' || func === 'min';\n var sizeinit = extremefunc ? null : 0;\n var binfunc = binFunctions.count;\n var normfunc = normFunctions[norm];\n var doavg = false;\n var xinc = [];\n var yinc = [];\n\n // set a binning function other than count?\n // for binning functions: check first for 'z',\n // then 'mc' in case we had a colored scatter plot\n // and want to transfer these colors to the 2D histo\n // TODO: axe this, make it the responsibility of the app changing type? or an impliedEdit?\n var rawCounterData = ('z' in trace) ?\n trace.z :\n (('marker' in trace && Array.isArray(trace.marker.color)) ?\n trace.marker.color : '');\n if(rawCounterData && func !== 'count') {\n doavg = func === 'avg';\n binfunc = binFunctions[func];\n }\n\n // decrease end a little in case of rounding errors\n var xBinSize = xBinSpec.size;\n var xBinStart = xr2c(xBinSpec.start);\n var xBinEnd = xr2c(xBinSpec.end) +\n (xBinStart - Axes.tickIncrement(xBinStart, xBinSize, false, xcalendar)) / 1e6;\n\n for(i = xBinStart; i < xBinEnd; i = Axes.tickIncrement(i, xBinSize, false, xcalendar)) {\n onecol.push(sizeinit);\n xEdges.push(i);\n if(doavg) zerocol.push(0);\n }\n xEdges.push(i);\n\n var nx = onecol.length;\n var dx = (i - xBinStart) / nx;\n var x0 = xc2r(xBinStart + dx / 2);\n\n var yBinSize = yBinSpec.size;\n var yBinStart = yr2c(yBinSpec.start);\n var yBinEnd = yr2c(yBinSpec.end) +\n (yBinStart - Axes.tickIncrement(yBinStart, yBinSize, false, ycalendar)) / 1e6;\n\n for(i = yBinStart; i < yBinEnd; i = Axes.tickIncrement(i, yBinSize, false, ycalendar)) {\n z.push(onecol.slice());\n yEdges.push(i);\n var ipCol = new Array(nx);\n for(j = 0; j < nx; j++) ipCol[j] = [];\n inputPoints.push(ipCol);\n if(doavg) counts.push(zerocol.slice());\n }\n yEdges.push(i);\n\n var ny = z.length;\n var dy = (i - yBinStart) / ny;\n var y0 = yc2r(yBinStart + dy / 2);\n\n if(densitynorm) {\n xinc = makeIncrements(onecol.length, xbins, dx, nonuniformBinsX);\n yinc = makeIncrements(z.length, ybins, dy, nonuniformBinsY);\n }\n\n // for date axes we need bin bounds to be calcdata. For nonuniform bins\n // we already have this, but uniform with start/end/size they're still strings.\n if(!nonuniformBinsX && xa.type === 'date') xbins = binsToCalc(xr2c, xbins);\n if(!nonuniformBinsY && ya.type === 'date') ybins = binsToCalc(yr2c, ybins);\n\n // put data into bins\n var uniqueValsPerX = true;\n var uniqueValsPerY = true;\n var xVals = new Array(nx);\n var yVals = new Array(ny);\n var xGapLow = Infinity;\n var xGapHigh = Infinity;\n var yGapLow = Infinity;\n var yGapHigh = Infinity;\n for(i = 0; i < serieslen; i++) {\n var xi = xPos0[i];\n var yi = yPos0[i];\n n = Lib.findBin(xi, xbins);\n m = Lib.findBin(yi, ybins);\n if(n >= 0 && n < nx && m >= 0 && m < ny) {\n total += binfunc(n, i, z[m], rawCounterData, counts[m]);\n inputPoints[m][n].push(i);\n\n if(uniqueValsPerX) {\n if(xVals[n] === undefined) xVals[n] = xi;\n else if(xVals[n] !== xi) uniqueValsPerX = false;\n }\n if(uniqueValsPerY) {\n if(yVals[m] === undefined) yVals[m] = yi;\n else if(yVals[m] !== yi) uniqueValsPerY = false;\n }\n\n xGapLow = Math.min(xGapLow, xi - xEdges[n]);\n xGapHigh = Math.min(xGapHigh, xEdges[n + 1] - xi);\n yGapLow = Math.min(yGapLow, yi - yEdges[m]);\n yGapHigh = Math.min(yGapHigh, yEdges[m + 1] - yi);\n }\n }\n // normalize, if needed\n if(doavg) {\n for(m = 0; m < ny; m++) total += doAvg(z[m], counts[m]);\n }\n if(normfunc) {\n for(m = 0; m < ny; m++) normfunc(z[m], total, xinc, yinc[m]);\n }\n\n return {\n x: xPos0,\n xRanges: getRanges(xEdges, uniqueValsPerX && xVals, xGapLow, xGapHigh, xa, xcalendar),\n x0: x0,\n dx: dx,\n y: yPos0,\n yRanges: getRanges(yEdges, uniqueValsPerY && yVals, yGapLow, yGapHigh, ya, ycalendar),\n y0: y0,\n dy: dy,\n z: z,\n pts: inputPoints\n };\n};\n\nfunction makeIncrements(len, bins, dv, nonuniform) {\n var out = new Array(len);\n var i;\n if(nonuniform) {\n for(i = 0; i < len; i++) out[i] = 1 / (bins[i + 1] - bins[i]);\n } else {\n var inc = 1 / dv;\n for(i = 0; i < len; i++) out[i] = inc;\n }\n return out;\n}\n\nfunction binsToCalc(r2c, bins) {\n return {\n start: r2c(bins.start),\n end: r2c(bins.end),\n size: bins.size\n };\n}\n\nfunction getRanges(edges, uniqueVals, gapLow, gapHigh, ax, calendar) {\n var i;\n var len = edges.length - 1;\n var out = new Array(len);\n var roundFn = getBinSpanLabelRound(gapLow, gapHigh, edges, ax, calendar);\n\n for(i = 0; i < len; i++) {\n var v = (uniqueVals || [])[i];\n out[i] = v === undefined ?\n [roundFn(edges[i]), roundFn(edges[i + 1], true)] :\n [v, v];\n }\n return out;\n}\n\n\n/***/ }),\n\n/***/ \"7fb7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n // hover labels for multiple horizontal bars get tilted by this angle\n YANGLE: 60,\n\n // size and display constants for hover text\n\n // pixel size of hover arrows\n HOVERARROWSIZE: 6,\n // pixels padding around text\n HOVERTEXTPAD: 3,\n // hover font\n HOVERFONTSIZE: 13,\n HOVERFONT: 'Arial, sans-serif',\n\n // minimum time (msec) between hover calls\n HOVERMINTIME: 50,\n\n // ID suffix (with fullLayout._uid) for hover events in the throttle cache\n HOVERID: '-hover'\n};\n\n\n/***/ }),\n\n/***/ \"7fbb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Axes = __webpack_require__(\"0642\");\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nmodule.exports = function calcGridlines(trace, axisLetter, crossAxisLetter) {\n var i, j, j0;\n var eps, bounds, n1, n2, n, value, v;\n var j1, v0, v1, d;\n\n var data = trace['_' + axisLetter];\n var axis = trace[axisLetter + 'axis'];\n\n var gridlines = axis._gridlines = [];\n var minorgridlines = axis._minorgridlines = [];\n var boundarylines = axis._boundarylines = [];\n\n var crossData = trace['_' + crossAxisLetter];\n var crossAxis = trace[crossAxisLetter + 'axis'];\n\n if(axis.tickmode === 'array') {\n axis.tickvals = data.slice();\n }\n\n var xcp = trace._xctrl;\n var ycp = trace._yctrl;\n var nea = xcp[0].length;\n var neb = xcp.length;\n var na = trace._a.length;\n var nb = trace._b.length;\n\n Axes.prepTicks(axis);\n\n // don't leave tickvals in axis looking like an attribute\n if(axis.tickmode === 'array') delete axis.tickvals;\n\n // The default is an empty array that will cause the join to remove the gridline if\n // it's just disappeared:\n // axis._startline = axis._endline = [];\n\n // If the cross axis uses bicubic interpolation, then the grid\n // lines fall once every three expanded grid row/cols:\n var stride = axis.smoothing ? 3 : 1;\n\n function constructValueGridline(value) {\n var i, j, j0, tj, pxy, i0, ti, xy, dxydi0, dxydi1, dxydj0, dxydj1;\n var xpoints = [];\n var ypoints = [];\n var ret = {};\n // Search for the fractional grid index giving this line:\n if(axisLetter === 'b') {\n // For the position we use just the i-j coordinates:\n j = trace.b2j(value);\n\n // The derivatives for catmull-rom splines are discontinuous across cell\n // boundaries though, so we need to provide both the cell and the position\n // within the cell separately:\n j0 = Math.floor(Math.max(0, Math.min(nb - 2, j)));\n tj = j - j0;\n\n ret.length = nb;\n ret.crossLength = na;\n\n ret.xy = function(i) {\n return trace.evalxy([], i, j);\n };\n\n ret.dxy = function(i0, ti) {\n return trace.dxydi([], i0, j0, ti, tj);\n };\n\n for(i = 0; i < na; i++) {\n i0 = Math.min(na - 2, i);\n ti = i - i0;\n xy = trace.evalxy([], i, j);\n\n if(crossAxis.smoothing && i > 0) {\n // First control point:\n dxydi0 = trace.dxydi([], i - 1, j0, 0, tj);\n xpoints.push(pxy[0] + dxydi0[0] / 3);\n ypoints.push(pxy[1] + dxydi0[1] / 3);\n\n // Second control point:\n dxydi1 = trace.dxydi([], i - 1, j0, 1, tj);\n xpoints.push(xy[0] - dxydi1[0] / 3);\n ypoints.push(xy[1] - dxydi1[1] / 3);\n }\n\n xpoints.push(xy[0]);\n ypoints.push(xy[1]);\n\n pxy = xy;\n }\n } else {\n i = trace.a2i(value);\n i0 = Math.floor(Math.max(0, Math.min(na - 2, i)));\n ti = i - i0;\n\n ret.length = na;\n ret.crossLength = nb;\n\n ret.xy = function(j) {\n return trace.evalxy([], i, j);\n };\n\n ret.dxy = function(j0, tj) {\n return trace.dxydj([], i0, j0, ti, tj);\n };\n\n for(j = 0; j < nb; j++) {\n j0 = Math.min(nb - 2, j);\n tj = j - j0;\n xy = trace.evalxy([], i, j);\n\n if(crossAxis.smoothing && j > 0) {\n // First control point:\n dxydj0 = trace.dxydj([], i0, j - 1, ti, 0);\n xpoints.push(pxy[0] + dxydj0[0] / 3);\n ypoints.push(pxy[1] + dxydj0[1] / 3);\n\n // Second control point:\n dxydj1 = trace.dxydj([], i0, j - 1, ti, 1);\n xpoints.push(xy[0] - dxydj1[0] / 3);\n ypoints.push(xy[1] - dxydj1[1] / 3);\n }\n\n xpoints.push(xy[0]);\n ypoints.push(xy[1]);\n\n pxy = xy;\n }\n }\n\n ret.axisLetter = axisLetter;\n ret.axis = axis;\n ret.crossAxis = crossAxis;\n ret.value = value;\n ret.constvar = crossAxisLetter;\n ret.index = n;\n ret.x = xpoints;\n ret.y = ypoints;\n ret.smoothing = crossAxis.smoothing;\n\n return ret;\n }\n\n function constructArrayGridline(idx) {\n var j, i0, j0, ti, tj;\n var xpoints = [];\n var ypoints = [];\n var ret = {};\n ret.length = data.length;\n ret.crossLength = crossData.length;\n\n if(axisLetter === 'b') {\n j0 = Math.max(0, Math.min(nb - 2, idx));\n tj = Math.min(1, Math.max(0, idx - j0));\n\n ret.xy = function(i) {\n return trace.evalxy([], i, idx);\n };\n\n ret.dxy = function(i0, ti) {\n return trace.dxydi([], i0, j0, ti, tj);\n };\n\n // In the tickmode: array case, this operation is a simple\n // transfer of data:\n for(j = 0; j < nea; j++) {\n xpoints[j] = xcp[idx * stride][j];\n ypoints[j] = ycp[idx * stride][j];\n }\n } else {\n i0 = Math.max(0, Math.min(na - 2, idx));\n ti = Math.min(1, Math.max(0, idx - i0));\n\n ret.xy = function(j) {\n return trace.evalxy([], idx, j);\n };\n\n ret.dxy = function(j0, tj) {\n return trace.dxydj([], i0, j0, ti, tj);\n };\n\n // In the tickmode: array case, this operation is a simple\n // transfer of data:\n for(j = 0; j < neb; j++) {\n xpoints[j] = xcp[j][idx * stride];\n ypoints[j] = ycp[j][idx * stride];\n }\n }\n\n ret.axisLetter = axisLetter;\n ret.axis = axis;\n ret.crossAxis = crossAxis;\n ret.value = data[idx];\n ret.constvar = crossAxisLetter;\n ret.index = idx;\n ret.x = xpoints;\n ret.y = ypoints;\n ret.smoothing = crossAxis.smoothing;\n\n return ret;\n }\n\n if(axis.tickmode === 'array') {\n // var j0 = axis.startline ? 1 : 0;\n // var j1 = data.length - (axis.endline ? 1 : 0);\n\n eps = 5e-15;\n bounds = [\n Math.floor(((data.length - 1) - axis.arraytick0) / axis.arraydtick * (1 + eps)),\n Math.ceil((- axis.arraytick0) / axis.arraydtick / (1 + eps))\n ].sort(function(a, b) {return a - b;});\n\n // Unpack sorted values so we can be sure to avoid infinite loops if something\n // is backwards:\n n1 = bounds[0] - 1;\n n2 = bounds[1] + 1;\n\n // If the axes fall along array lines, then this is a much simpler process since\n // we already have all the control points we need\n for(n = n1; n < n2; n++) {\n j = axis.arraytick0 + axis.arraydtick * n;\n if(j < 0 || j > data.length - 1) continue;\n gridlines.push(extendFlat(constructArrayGridline(j), {\n color: axis.gridcolor,\n width: axis.gridwidth\n }));\n }\n\n for(n = n1; n < n2; n++) {\n j0 = axis.arraytick0 + axis.arraydtick * n;\n j1 = Math.min(j0 + axis.arraydtick, data.length - 1);\n\n // TODO: fix the bounds computation so we don't have to do a large range and then throw\n // out unneeded numbers\n if(j0 < 0 || j0 > data.length - 1) continue;\n if(j1 < 0 || j1 > data.length - 1) continue;\n\n v0 = data[j0];\n v1 = data[j1];\n\n for(i = 0; i < axis.minorgridcount; i++) {\n d = j1 - j0;\n\n // TODO: fix the bounds computation so we don't have to do a large range and then throw\n // out unneeded numbers\n if(d <= 0) continue;\n\n // XXX: This calculation isn't quite right. Off by one somewhere?\n v = v0 + (v1 - v0) * (i + 1) / (axis.minorgridcount + 1) * (axis.arraydtick / d);\n\n // TODO: fix the bounds computation so we don't have to do a large range and then throw\n // out unneeded numbers\n if(v < data[0] || v > data[data.length - 1]) continue;\n minorgridlines.push(extendFlat(constructValueGridline(v), {\n color: axis.minorgridcolor,\n width: axis.minorgridwidth\n }));\n }\n }\n\n if(axis.startline) {\n boundarylines.push(extendFlat(constructArrayGridline(0), {\n color: axis.startlinecolor,\n width: axis.startlinewidth\n }));\n }\n\n if(axis.endline) {\n boundarylines.push(extendFlat(constructArrayGridline(data.length - 1), {\n color: axis.endlinecolor,\n width: axis.endlinewidth\n }));\n }\n } else {\n // If the lines do not fall along the axes, then we have to interpolate\n // the contro points and so some math to figure out where the lines are\n // in the first place.\n\n // Compute the integer boudns of tick0 + n * dtick that fall within the range\n // (roughly speaking):\n // Give this a nice generous epsilon. We use at as * (1 + eps) in order to make\n // inequalities a little tolerant in a more or less correct manner:\n eps = 5e-15;\n bounds = [\n Math.floor((data[data.length - 1] - axis.tick0) / axis.dtick * (1 + eps)),\n Math.ceil((data[0] - axis.tick0) / axis.dtick / (1 + eps))\n ].sort(function(a, b) {return a - b;});\n\n // Unpack sorted values so we can be sure to avoid infinite loops if something\n // is backwards:\n n1 = bounds[0];\n n2 = bounds[1];\n\n for(n = n1; n <= n2; n++) {\n value = axis.tick0 + axis.dtick * n;\n\n gridlines.push(extendFlat(constructValueGridline(value), {\n color: axis.gridcolor,\n width: axis.gridwidth\n }));\n }\n\n for(n = n1 - 1; n < n2 + 1; n++) {\n value = axis.tick0 + axis.dtick * n;\n\n for(i = 0; i < axis.minorgridcount; i++) {\n v = value + axis.dtick * (i + 1) / (axis.minorgridcount + 1);\n if(v < data[0] || v > data[data.length - 1]) continue;\n minorgridlines.push(extendFlat(constructValueGridline(v), {\n color: axis.minorgridcolor,\n width: axis.minorgridwidth\n }));\n }\n }\n\n if(axis.startline) {\n boundarylines.push(extendFlat(constructValueGridline(data[0]), {\n color: axis.startlinecolor,\n width: axis.startlinewidth\n }));\n }\n\n if(axis.endline) {\n boundarylines.push(extendFlat(constructValueGridline(data[data.length - 1]), {\n color: axis.endlinecolor,\n width: axis.endlinewidth\n }));\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"7fc3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Registry = __webpack_require__(\"371e\");\nvar hover = __webpack_require__(\"e812\").hover;\n\nmodule.exports = function click(gd, evt, subplot) {\n var annotationsDone = Registry.getComponentMethod('annotations', 'onClick')(gd, gd._hoverdata);\n\n // fallback to fail-safe in case the plot type's hover method doesn't pass the subplot.\n // Ternary, for example, didn't, but it was caught because tested.\n if(subplot !== undefined) {\n // The true flag at the end causes it to re-run the hover computation to figure out *which*\n // point is being clicked. Without this, clicking is somewhat unreliable.\n hover(gd, evt, subplot, true);\n }\n\n function emitClick() { gd.emit('plotly_click', {points: gd._hoverdata, event: evt}); }\n\n if(gd._hoverdata && evt && evt.target) {\n if(annotationsDone && annotationsDone.then) {\n annotationsDone.then(emitClick);\n } else emitClick();\n\n // why do we get a double event without this???\n if(evt.stopImmediatePropagation) evt.stopImmediatePropagation();\n }\n};\n\n\n/***/ }),\n\n/***/ \"7fcc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction compileSearch(funcName, predicate, reversed, extraArgs, useNdarray, earlyOut) {\n var code = [\n \"function \", funcName, \"(a,l,h,\", extraArgs.join(\",\"), \"){\",\nearlyOut ? \"\" : \"var i=\", (reversed ? \"l-1\" : \"h+1\"),\n\";while(l<=h){\\\nvar m=(l+h)>>>1,x=a\", useNdarray ? \".get(m)\" : \"[m]\"]\n if(earlyOut) {\n if(predicate.indexOf(\"c\") < 0) {\n code.push(\";if(x===y){return m}else if(x<=y){\")\n } else {\n code.push(\";var p=c(x,y);if(p===0){return m}else if(p<=0){\")\n }\n } else {\n code.push(\";if(\", predicate, \"){i=m;\")\n }\n if(reversed) {\n code.push(\"l=m+1}else{h=m-1}\")\n } else {\n code.push(\"h=m-1}else{l=m+1}\")\n }\n code.push(\"}\")\n if(earlyOut) {\n code.push(\"return -1};\")\n } else {\n code.push(\"return i};\")\n }\n return code.join(\"\")\n}\n\nfunction compileBoundsSearch(predicate, reversed, suffix, earlyOut) {\n var result = new Function([\n compileSearch(\"A\", \"x\" + predicate + \"y\", reversed, [\"y\"], false, earlyOut),\n compileSearch(\"B\", \"x\" + predicate + \"y\", reversed, [\"y\"], true, earlyOut),\n compileSearch(\"P\", \"c(x,y)\" + predicate + \"0\", reversed, [\"y\", \"c\"], false, earlyOut),\n compileSearch(\"Q\", \"c(x,y)\" + predicate + \"0\", reversed, [\"y\", \"c\"], true, earlyOut),\n\"function dispatchBsearch\", suffix, \"(a,y,c,l,h){\\\nif(a.shape){\\\nif(typeof(c)==='function'){\\\nreturn Q(a,(l===undefined)?0:l|0,(h===undefined)?a.shape[0]-1:h|0,y,c)\\\n}else{\\\nreturn B(a,(c===undefined)?0:c|0,(l===undefined)?a.shape[0]-1:l|0,y)\\\n}}else{\\\nif(typeof(c)==='function'){\\\nreturn P(a,(l===undefined)?0:l|0,(h===undefined)?a.length-1:h|0,y,c)\\\n}else{\\\nreturn A(a,(c===undefined)?0:c|0,(l===undefined)?a.length-1:l|0,y)\\\n}}}\\\nreturn dispatchBsearch\", suffix].join(\"\"))\n return result()\n}\n\nmodule.exports = {\n ge: compileBoundsSearch(\">=\", false, \"GE\"),\n gt: compileBoundsSearch(\">\", false, \"GT\"),\n lt: compileBoundsSearch(\"<\", true, \"LT\"),\n le: compileBoundsSearch(\"<=\", true, \"LE\"),\n eq: compileBoundsSearch(\"-\", true, \"EQ\", true)\n}\n\n\n/***/ }),\n\n/***/ \"7fda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Axes = __webpack_require__(\"0642\");\nvar mergeArray = __webpack_require__(\"fc26\").mergeArray;\nvar calcSelection = __webpack_require__(\"4136\");\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nfunction isAbsolute(a) {\n return (a === 'a' || a === 'absolute');\n}\n\nfunction isTotal(a) {\n return (a === 't' || a === 'total');\n}\n\nmodule.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis || 'x');\n var ya = Axes.getFromId(gd, trace.yaxis || 'y');\n var size, pos;\n\n if(trace.orientation === 'h') {\n size = xa.makeCalcdata(trace, 'x');\n pos = ya.makeCalcdata(trace, 'y');\n } else {\n size = ya.makeCalcdata(trace, 'y');\n pos = xa.makeCalcdata(trace, 'x');\n }\n\n // create the \"calculated data\" to plot\n var serieslen = Math.min(pos.length, size.length);\n var cd = new Array(serieslen);\n\n // set position and size (as well as for waterfall total size)\n var previousSum = 0;\n var newSize;\n // trace-wide flags\n var hasTotals = false;\n\n for(var i = 0; i < serieslen; i++) {\n var amount = size[i] || 0;\n\n var connectToNext = false;\n if(size[i] !== BADNUM || isTotal(trace.measure[i]) || isAbsolute(trace.measure[i])) {\n if(i + 1 < serieslen && (size[i + 1] !== BADNUM || isTotal(trace.measure[i + 1]) || isAbsolute(trace.measure[i + 1]))) {\n connectToNext = true;\n }\n }\n\n var cdi = cd[i] = {\n i: i,\n p: pos[i],\n s: amount,\n rawS: amount,\n cNext: connectToNext\n };\n\n if(isAbsolute(trace.measure[i])) {\n previousSum = cdi.s;\n\n cdi.isSum = true;\n cdi.dir = 'totals';\n cdi.s = previousSum;\n } else if(isTotal(trace.measure[i])) {\n cdi.isSum = true;\n cdi.dir = 'totals';\n cdi.s = previousSum;\n } else {\n // default: relative\n cdi.isSum = false;\n cdi.dir = cdi.rawS < 0 ? 'decreasing' : 'increasing';\n newSize = cdi.s;\n cdi.s = previousSum + newSize;\n previousSum += newSize;\n }\n\n if(cdi.dir === 'totals') {\n hasTotals = true;\n }\n\n if(trace.ids) {\n cdi.id = String(trace.ids[i]);\n }\n\n cdi.v = (trace.base || 0) + previousSum;\n }\n\n if(cd.length) cd[0].hasTotals = hasTotals;\n\n mergeArray(trace.text, cd, 'tx');\n mergeArray(trace.hovertext, cd, 'htx');\n calcSelection(cd, trace);\n\n return cd;\n};\n\n\n/***/ }),\n\n/***/ \"8062\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar Drawing = __webpack_require__(\"83d1\");\nvar Color = __webpack_require__(\"d115\");\nvar DESELECTDIM = __webpack_require__(\"72a4\").DESELECTDIM;\nvar barStyle = __webpack_require__(\"2df3\");\nvar resizeText = __webpack_require__(\"93a6\").resizeText;\nvar styleTextPoints = barStyle.styleTextPoints;\n\nfunction style(gd, cd, sel) {\n var s = sel ? sel : d3.select(gd).selectAll('g.funnellayer').selectAll('g.trace');\n resizeText(gd, s, 'funnel');\n\n s.style('opacity', function(d) { return d[0].trace.opacity; });\n\n s.each(function(d) {\n var gTrace = d3.select(this);\n var trace = d[0].trace;\n\n gTrace.selectAll('.point > path').each(function(di) {\n if(!di.isBlank) {\n var cont = trace.marker;\n\n d3.select(this)\n .call(Color.fill, di.mc || cont.color)\n .call(Color.stroke, di.mlc || cont.line.color)\n .call(Drawing.dashLine, cont.line.dash, di.mlw || cont.line.width)\n .style('opacity', trace.selectedpoints && !di.selected ? DESELECTDIM : 1);\n }\n });\n\n styleTextPoints(gTrace, trace, gd);\n\n gTrace.selectAll('.regions').each(function() {\n d3.select(this).selectAll('path').style('stroke-width', 0).call(Color.fill, trace.connector.fillcolor);\n });\n\n gTrace.selectAll('.lines').each(function() {\n var cont = trace.connector.line;\n\n Drawing.lineGroupStyle(\n d3.select(this).selectAll('path'),\n cont.width,\n cont.color,\n cont.dash\n );\n });\n });\n}\n\nmodule.exports = {\n style: style\n};\n\n\n/***/ }),\n\n/***/ \"806e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar subTypes = __webpack_require__(\"de81\");\nvar helpers = __webpack_require__(\"2969f\");\n\nmodule.exports = function select(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var trace = cd[0].trace;\n var stash = cd[0].t;\n var scene = searchInfo.scene;\n var cdata = scene.matrixOptions.cdata;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n\n if(!scene) return selection;\n\n var hasOnlyLines = (!subTypes.hasMarkers(trace) && !subTypes.hasText(trace));\n if(trace.visible !== true || hasOnlyLines) return selection;\n\n var xi = helpers.getDimIndex(trace, xa);\n var yi = helpers.getDimIndex(trace, ya);\n if(xi === false || yi === false) return selection;\n\n var xpx = stash.xpx[xi];\n var ypx = stash.ypx[yi];\n var x = cdata[xi];\n var y = cdata[yi];\n var els = [];\n var unels = [];\n\n // degenerate polygon does not enable selection\n // filter out points by visible scatter ones\n if(selectionTester !== false && !selectionTester.degenerate) {\n for(var i = 0; i < x.length; i++) {\n if(selectionTester.contains([xpx[i], ypx[i]], null, i, searchInfo)) {\n els.push(i);\n selection.push({\n pointNumber: i,\n x: x[i],\n y: y[i]\n });\n } else {\n unels.push(i);\n }\n }\n }\n\n var matrixOpts = scene.matrixOptions;\n\n if(!els.length && !unels.length) {\n scene.matrix.update(matrixOpts, null);\n } else if(!scene.selectBatch.length && !scene.unselectBatch.length) {\n scene.matrix.update(\n scene.unselectedOptions,\n Lib.extendFlat({}, matrixOpts, scene.selectedOptions, scene.viewOpts)\n );\n }\n\n scene.selectBatch = els;\n scene.unselectBatch = unels;\n\n return selection;\n};\n\n\n/***/ }),\n\n/***/ \"8173\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\n\nmodule.exports = function handleSampleDefaults(traceIn, traceOut, coerce, layout) {\n var x = coerce('x');\n var y = coerce('y');\n var xlen = Lib.minRowLength(x);\n var ylen = Lib.minRowLength(y);\n\n // we could try to accept x0 and dx, etc...\n // but that's a pretty weird use case.\n // for now require both x and y explicitly specified.\n if(!xlen || !ylen) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._length = Math.min(xlen, ylen);\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x', 'y'], layout);\n\n // if marker.color is an array, we can use it in aggregation instead of z\n var hasAggregationData = coerce('z') || coerce('marker.color');\n\n if(hasAggregationData) coerce('histfunc');\n coerce('histnorm');\n\n // Note: bin defaults are now handled in Histogram2D.crossTraceDefaults\n // autobin(x|y) are only included here to appease Plotly.validate\n coerce('autobinx');\n coerce('autobiny');\n};\n\n\n/***/ }),\n\n/***/ \"81f0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\n/**\n * Make a xy domain attribute group\n *\n * @param {object} opts\n * @param {string}\n * opts.name: name to be inserted in the default description\n * @param {boolean}\n * opts.trace: set to true for trace containers\n * @param {string}\n * opts.editType: editType for all pieces\n * @param {boolean}\n * opts.noGridCell: set to true to omit `row` and `column`\n *\n * @param {object} extra\n * @param {string}\n * extra.description: extra description. N.B we use\n * a separate extra container to make it compatible with\n * the compress_attributes transform.\n *\n * @return {object} attributes object containing {x,y} as specified\n */\nexports.attributes = function(opts, extra) {\n opts = opts || {};\n extra = extra || {};\n\n var base = {\n valType: 'info_array',\n \n editType: opts.editType,\n items: [\n {valType: 'number', min: 0, max: 1, editType: opts.editType},\n {valType: 'number', min: 0, max: 1, editType: opts.editType}\n ],\n dflt: [0, 1]\n };\n\n var namePart = opts.name ? opts.name + ' ' : '';\n var contPart = opts.trace ? 'trace ' : 'subplot ';\n var descPart = extra.description ? ' ' + extra.description : '';\n\n var out = {\n x: extendFlat({}, base, {\n \n }),\n y: extendFlat({}, base, {\n \n }),\n editType: opts.editType\n };\n\n if(!opts.noGridCell) {\n out.row = {\n valType: 'integer',\n min: 0,\n dflt: 0,\n \n editType: opts.editType,\n \n };\n out.column = {\n valType: 'integer',\n min: 0,\n dflt: 0,\n \n editType: opts.editType,\n \n };\n }\n\n return out;\n};\n\nexports.defaults = function(containerOut, layout, coerce, dfltDomains) {\n var dfltX = (dfltDomains && dfltDomains.x) || [0, 1];\n var dfltY = (dfltDomains && dfltDomains.y) || [0, 1];\n\n var grid = layout.grid;\n if(grid) {\n var column = coerce('domain.column');\n if(column !== undefined) {\n if(column < grid.columns) dfltX = grid._domains.x[column];\n else delete containerOut.domain.column;\n }\n\n var row = coerce('domain.row');\n if(row !== undefined) {\n if(row < grid.rows) dfltY = grid._domains.y[row];\n else delete containerOut.domain.row;\n }\n }\n\n var x = coerce('domain.x', dfltX);\n var y = coerce('domain.y', dfltY);\n\n // don't accept bad input data\n if(!(x[0] < x[1])) containerOut.domain.x = dfltX.slice();\n if(!(y[0] < y[1])) containerOut.domain.y = dfltY.slice();\n};\n\n\n/***/ }),\n\n/***/ \"821b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n/**\n * Clear gl frame (if any). This is a common pattern as\n * we usually set `preserveDrawingBuffer: true` during\n * gl context creation (e.g. via `reglUtils.prepare`).\n *\n * @param {DOM node or object} gd : graph div object\n */\nmodule.exports = function clearGlCanvases(gd) {\n var fullLayout = gd._fullLayout;\n\n if(fullLayout._glcanvas && fullLayout._glcanvas.size()) {\n fullLayout._glcanvas.each(function(d) {\n if(d.regl) d.regl.clear({color: true, depth: true});\n });\n }\n};\n\n\n/***/ }),\n\n/***/ \"824b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nvar calcMarkerColorscale = __webpack_require__(\"09bd\");\nvar arraysToCalcdata = __webpack_require__(\"106b\");\nvar calcSelection = __webpack_require__(\"4136\");\n\nvar _ = __webpack_require__(\"fc26\")._;\n\nfunction isNonBlankString(v) {\n return v && typeof v === 'string';\n}\n\nmodule.exports = function calc(gd, trace) {\n var hasLocationData = Array.isArray(trace.locations);\n var len = hasLocationData ? trace.locations.length : trace._length;\n var calcTrace = new Array(len);\n\n var isValidLoc;\n if(trace.geojson) {\n isValidLoc = function(v) { return isNonBlankString(v) || isNumeric(v); };\n } else {\n isValidLoc = isNonBlankString;\n }\n\n for(var i = 0; i < len; i++) {\n var calcPt = calcTrace[i] = {};\n\n if(hasLocationData) {\n var loc = trace.locations[i];\n calcPt.loc = isValidLoc(loc) ? loc : null;\n } else {\n var lon = trace.lon[i];\n var lat = trace.lat[i];\n\n if(isNumeric(lon) && isNumeric(lat)) calcPt.lonlat = [+lon, +lat];\n else calcPt.lonlat = [BADNUM, BADNUM];\n }\n }\n\n arraysToCalcdata(calcTrace, trace);\n calcMarkerColorscale(gd, trace);\n calcSelection(calcTrace, trace);\n\n if(len) {\n calcTrace[0].t = {\n labels: {\n lat: _(gd, 'lat:') + ' ',\n lon: _(gd, 'lon:') + ' '\n }\n };\n }\n\n return calcTrace;\n};\n\n\n/***/ }),\n\n/***/ \"825a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"8260\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar scatterPlot = __webpack_require__(\"f118\");\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nmodule.exports = function plot(gd, subplot, moduleCalcData) {\n var mlayer = subplot.layers.frontplot.select('g.scatterlayer');\n\n var plotinfo = {\n xaxis: subplot.xaxis,\n yaxis: subplot.yaxis,\n plot: subplot.framework,\n layerClipId: subplot._hasClipOnAxisFalse ? subplot.clipIds.forTraces : null\n };\n\n var radialAxis = subplot.radialAxis;\n var angularAxis = subplot.angularAxis;\n\n // convert:\n // 'c' (r,theta) -> 'geometric' (r,theta) -> (x,y)\n for(var i = 0; i < moduleCalcData.length; i++) {\n var cdi = moduleCalcData[i];\n\n for(var j = 0; j < cdi.length; j++) {\n var cd = cdi[j];\n var r = cd.r;\n\n if(r === BADNUM) {\n cd.x = cd.y = BADNUM;\n } else {\n var rg = radialAxis.c2g(r);\n var thetag = angularAxis.c2g(cd.theta);\n cd.x = rg * Math.cos(thetag);\n cd.y = rg * Math.sin(thetag);\n }\n }\n }\n\n scatterPlot(gd, plotinfo, moduleCalcData, mlayer);\n};\n\n\n/***/ }),\n\n/***/ \"8298\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Drawing = __webpack_require__(\"83d1\");\n\nvar boxPlot = __webpack_require__(\"d34f\");\nvar linePoints = __webpack_require__(\"9cf1\");\nvar helpers = __webpack_require__(\"0681\");\n\nmodule.exports = function plot(gd, plotinfo, cdViolins, violinLayer) {\n var fullLayout = gd._fullLayout;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n function makePath(pts) {\n var segments = linePoints(pts, {\n xaxis: xa,\n yaxis: ya,\n connectGaps: true,\n baseTolerance: 0.75,\n shape: 'spline',\n simplify: true,\n linearized: true\n });\n return Drawing.smoothopen(segments[0], 1);\n }\n\n Lib.makeTraceGroups(violinLayer, cdViolins, 'trace violins').each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var t = cd0.t;\n var trace = cd0.trace;\n\n if(trace.visible !== true || t.empty) {\n plotGroup.remove();\n return;\n }\n\n var bPos = t.bPos;\n var bdPos = t.bdPos;\n var valAxis = plotinfo[t.valLetter + 'axis'];\n var posAxis = plotinfo[t.posLetter + 'axis'];\n var hasBothSides = trace.side === 'both';\n var hasPositiveSide = hasBothSides || trace.side === 'positive';\n var hasNegativeSide = hasBothSides || trace.side === 'negative';\n\n var violins = plotGroup.selectAll('path.violin').data(Lib.identity);\n\n violins.enter().append('path')\n .style('vector-effect', 'non-scaling-stroke')\n .attr('class', 'violin');\n\n violins.exit().remove();\n\n violins.each(function(d) {\n var pathSel = d3.select(this);\n var density = d.density;\n var len = density.length;\n var posCenter = posAxis.c2l(d.pos + bPos, true);\n var posCenterPx = posAxis.l2p(posCenter);\n\n var scale;\n if(trace.width) {\n scale = t.maxKDE / bdPos;\n } else {\n var groupStats = fullLayout._violinScaleGroupStats[trace.scalegroup];\n scale = trace.scalemode === 'count' ?\n (groupStats.maxKDE / bdPos) * (groupStats.maxCount / d.pts.length) :\n groupStats.maxKDE / bdPos;\n }\n\n var pathPos, pathNeg, path;\n var i, k, pts, pt;\n\n if(hasPositiveSide) {\n pts = new Array(len);\n for(i = 0; i < len; i++) {\n pt = pts[i] = {};\n pt[t.posLetter] = posCenter + (density[i].v / scale);\n pt[t.valLetter] = valAxis.c2l(density[i].t, true);\n }\n pathPos = makePath(pts);\n }\n\n if(hasNegativeSide) {\n pts = new Array(len);\n for(k = 0, i = len - 1; k < len; k++, i--) {\n pt = pts[k] = {};\n pt[t.posLetter] = posCenter - (density[i].v / scale);\n pt[t.valLetter] = valAxis.c2l(density[i].t, true);\n }\n pathNeg = makePath(pts);\n }\n\n if(hasBothSides) {\n path = pathPos + 'L' + pathNeg.substr(1) + 'Z';\n } else {\n var startPt = [posCenterPx, valAxis.c2p(density[0].t)];\n var endPt = [posCenterPx, valAxis.c2p(density[len - 1].t)];\n\n if(trace.orientation === 'h') {\n startPt.reverse();\n endPt.reverse();\n }\n\n if(hasPositiveSide) {\n path = 'M' + startPt + 'L' + pathPos.substr(1) + 'L' + endPt;\n } else {\n path = 'M' + endPt + 'L' + pathNeg.substr(1) + 'L' + startPt;\n }\n }\n pathSel.attr('d', path);\n\n // save a few things used in getPositionOnKdePath, getKdeValue\n // on hover and for meanline draw block below\n d.posCenterPx = posCenterPx;\n d.posDensityScale = scale * bdPos;\n d.path = pathSel.node();\n d.pathLength = d.path.getTotalLength() / (hasBothSides ? 2 : 1);\n });\n\n var boxAttrs = trace.box;\n var boxWidth = boxAttrs.width;\n var boxLineWidth = (boxAttrs.line || {}).width;\n var bdPosScaled;\n var bPosPxOffset;\n\n if(hasBothSides) {\n bdPosScaled = bdPos * boxWidth;\n bPosPxOffset = 0;\n } else if(hasPositiveSide) {\n bdPosScaled = [0, bdPos * boxWidth / 2];\n bPosPxOffset = boxLineWidth * {x: 1, y: -1}[t.posLetter];\n } else {\n bdPosScaled = [bdPos * boxWidth / 2, 0];\n bPosPxOffset = boxLineWidth * {x: -1, y: 1}[t.posLetter];\n }\n\n // inner box\n boxPlot.plotBoxAndWhiskers(plotGroup, {pos: posAxis, val: valAxis}, trace, {\n bPos: bPos,\n bdPos: bdPosScaled,\n bPosPxOffset: bPosPxOffset\n });\n\n // meanline insider box\n boxPlot.plotBoxMean(plotGroup, {pos: posAxis, val: valAxis}, trace, {\n bPos: bPos,\n bdPos: bdPosScaled,\n bPosPxOffset: bPosPxOffset\n });\n\n var fn;\n if(!trace.box.visible && trace.meanline.visible) {\n fn = Lib.identity;\n }\n\n // N.B. use different class name than boxPlot.plotBoxMean,\n // to avoid selectAll conflict\n var meanPaths = plotGroup.selectAll('path.meanline').data(fn || []);\n meanPaths.enter().append('path')\n .attr('class', 'meanline')\n .style('fill', 'none')\n .style('vector-effect', 'non-scaling-stroke');\n meanPaths.exit().remove();\n meanPaths.each(function(d) {\n var v = valAxis.c2p(d.mean, true);\n var p = helpers.getPositionOnKdePath(d, trace, v);\n\n d3.select(this).attr('d',\n trace.orientation === 'h' ?\n 'M' + v + ',' + p[0] + 'V' + p[1] :\n 'M' + p[0] + ',' + v + 'H' + p[1]\n );\n });\n\n boxPlot.plotPoints(plotGroup, {x: xa, y: ya}, trace, t);\n });\n};\n\n\n/***/ }),\n\n/***/ \"82a5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Registry = __webpack_require__(\"371e\");\n\nmodule.exports = function calc(gd) {\n var calcdata = gd.calcdata;\n var fullLayout = gd._fullLayout;\n\n function makeCoerceHoverInfo(trace) {\n return function(val) {\n return Lib.coerceHoverinfo({hoverinfo: val}, {_module: trace._module}, fullLayout);\n };\n }\n\n for(var i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var trace = cd[0].trace;\n\n // don't include hover calc fields for pie traces\n // as calcdata items might be sorted by value and\n // won't match the data array order.\n if(Registry.traceIs(trace, 'pie-like')) continue;\n\n var fillFn = Registry.traceIs(trace, '2dMap') ? paste : Lib.fillArray;\n\n fillFn(trace.hoverinfo, cd, 'hi', makeCoerceHoverInfo(trace));\n\n if(trace.hovertemplate) fillFn(trace.hovertemplate, cd, 'ht');\n\n if(!trace.hoverlabel) continue;\n\n fillFn(trace.hoverlabel.bgcolor, cd, 'hbg');\n fillFn(trace.hoverlabel.bordercolor, cd, 'hbc');\n fillFn(trace.hoverlabel.font.size, cd, 'hts');\n fillFn(trace.hoverlabel.font.color, cd, 'htc');\n fillFn(trace.hoverlabel.font.family, cd, 'htf');\n fillFn(trace.hoverlabel.namelength, cd, 'hnl');\n fillFn(trace.hoverlabel.align, cd, 'hta');\n }\n};\n\nfunction paste(traceAttr, cd, cdAttr, fn) {\n fn = fn || Lib.identity;\n\n if(Array.isArray(traceAttr)) {\n cd[0][cdAttr] = fn(traceAttr);\n }\n}\n\n\n/***/ }),\n\n/***/ \"82b5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n/**\n * Creates a set of padding attributes.\n *\n * @param {object} opts\n * @param {string} editType:\n * the editType for all pieces of this padding definition\n *\n * @return {object} attributes object containing {t, r, b, l} as specified\n */\nmodule.exports = function(opts) {\n var editType = opts.editType;\n return {\n t: {\n valType: 'number',\n dflt: 0,\n \n editType: editType,\n \n },\n r: {\n valType: 'number',\n dflt: 0,\n \n editType: editType,\n \n },\n b: {\n valType: 'number',\n dflt: 0,\n \n editType: editType,\n \n },\n l: {\n valType: 'number',\n dflt: 0,\n \n editType: editType,\n \n },\n editType: editType\n };\n};\n\n\n/***/ }),\n\n/***/ \"82d4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar colorscaleDefaults = __webpack_require__(\"4183\");\nvar attributes = __webpack_require__(\"be2a\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var u = coerce('u');\n var v = coerce('v');\n var w = coerce('w');\n\n var x = coerce('x');\n var y = coerce('y');\n var z = coerce('z');\n\n if(\n !u || !u.length || !v || !v.length || !w || !w.length ||\n !x || !x.length || !y || !y.length || !z || !z.length\n ) {\n traceOut.visible = false;\n return;\n }\n\n coerce('starts.x');\n coerce('starts.y');\n coerce('starts.z');\n\n coerce('maxdisplayed');\n coerce('sizeref');\n\n coerce('lighting.ambient');\n coerce('lighting.diffuse');\n coerce('lighting.specular');\n coerce('lighting.roughness');\n coerce('lighting.fresnel');\n coerce('lightposition.x');\n coerce('lightposition.y');\n coerce('lightposition.z');\n\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'});\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n // disable 1D transforms (for now)\n // x/y/z and u/v/w have matching lengths,\n // but they don't have to match with starts.(x|y|z)\n traceOut._length = null;\n};\n\n\n/***/ }),\n\n/***/ \"82d7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar fontAttrs = __webpack_require__(\"9845\");\nvar baseAttrs = __webpack_require__(\"a876\");\nvar colorAttrs = __webpack_require__(\"dfb3\");\nvar fxAttrs = __webpack_require__(\"a462\");\nvar domainAttrs = __webpack_require__(\"81f0\").attributes;\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar colorAttributes = __webpack_require__(\"f4e9\");\nvar templatedArray = __webpack_require__(\"a651\").templatedArray;\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\nvar FORMAT_LINK = __webpack_require__(\"78df\").FORMAT_LINK;\n\nvar attrs = module.exports = overrideAll({\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [],\n arrayOk: false,\n \n }),\n hoverlabel: fxAttrs.hoverlabel,\n domain: domainAttrs({name: 'sankey', trace: true}),\n\n orientation: {\n valType: 'enumerated',\n values: ['v', 'h'],\n dflt: 'h',\n \n \n },\n\n valueformat: {\n valType: 'string',\n dflt: '.3s',\n \n \n },\n\n valuesuffix: {\n valType: 'string',\n dflt: '',\n \n \n },\n\n arrangement: {\n valType: 'enumerated',\n values: ['snap', 'perpendicular', 'freeform', 'fixed'],\n dflt: 'snap',\n \n \n },\n\n textfont: fontAttrs({\n \n }),\n\n node: {\n label: {\n valType: 'data_array',\n dflt: [],\n \n \n },\n groups: {\n valType: 'info_array',\n impliedEdits: {'x': [], 'y': []},\n dimensions: 2,\n freeLength: true,\n dflt: [],\n items: {valType: 'number', editType: 'calc'},\n \n \n },\n x: {\n valType: 'data_array',\n dflt: [],\n \n \n },\n y: {\n valType: 'data_array',\n dflt: [],\n \n \n },\n color: {\n valType: 'color',\n \n arrayOk: true,\n \n },\n line: {\n color: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n arrayOk: true,\n \n },\n width: {\n valType: 'number',\n \n min: 0,\n dflt: 0.5,\n arrayOk: true,\n \n }\n },\n pad: {\n valType: 'number',\n arrayOk: false,\n min: 0,\n dflt: 20,\n \n \n },\n thickness: {\n valType: 'number',\n arrayOk: false,\n min: 1,\n dflt: 20,\n \n \n },\n hoverinfo: {\n valType: 'enumerated',\n values: ['all', 'none', 'skip'],\n dflt: 'all',\n \n \n },\n hoverlabel: fxAttrs.hoverlabel, // needs editType override,\n hovertemplate: hovertemplateAttrs({}, {\n \n keys: ['value', 'label']\n }),\n \n },\n\n link: {\n label: {\n valType: 'data_array',\n dflt: [],\n \n \n },\n color: {\n valType: 'color',\n \n arrayOk: true,\n \n },\n line: {\n color: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n arrayOk: true,\n \n },\n width: {\n valType: 'number',\n \n min: 0,\n dflt: 0,\n arrayOk: true,\n \n }\n },\n source: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n target: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n value: {\n valType: 'data_array',\n dflt: [],\n \n \n },\n hoverinfo: {\n valType: 'enumerated',\n values: ['all', 'none', 'skip'],\n dflt: 'all',\n \n \n },\n hoverlabel: fxAttrs.hoverlabel, // needs editType override,\n hovertemplate: hovertemplateAttrs({}, {\n \n keys: ['value', 'label']\n }),\n colorscales: templatedArray('concentrationscales', {\n editType: 'calc',\n label: {\n valType: 'string',\n \n editType: 'calc',\n \n dflt: ''\n },\n cmax: {\n valType: 'number',\n \n editType: 'calc',\n dflt: 1,\n \n },\n cmin: {\n valType: 'number',\n \n editType: 'calc',\n dflt: 0,\n \n },\n colorscale: extendFlat(colorAttributes().colorscale, {dflt: [[0, 'white'], [1, 'black']]})\n }),\n \n \n }\n}, 'calc', 'nested');\nattrs.transforms = undefined;\n\n\n/***/ }),\n\n/***/ \"82e4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"f90d\");\n\n\n/***/ }),\n\n/***/ \"831f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = __webpack_require__(\"0382\");\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Color = __webpack_require__(\"d115\");\nvar Template = __webpack_require__(\"a651\");\nvar basePlotLayoutAttributes = __webpack_require__(\"a685\");\n\nvar layoutAttributes = __webpack_require__(\"d798\");\nvar handleTypeDefaults = __webpack_require__(\"b5e2\");\nvar handleAxisDefaults = __webpack_require__(\"7118\");\nvar handleConstraintDefaults = __webpack_require__(\"6add\").handleConstraintDefaults;\nvar handlePositionDefaults = __webpack_require__(\"f3a2\");\n\nvar axisIds = __webpack_require__(\"3c1c\");\nvar id2name = axisIds.id2name;\nvar name2id = axisIds.name2id;\n\nvar Registry = __webpack_require__(\"371e\");\nvar traceIs = Registry.traceIs;\nvar getComponentMethod = Registry.getComponentMethod;\n\nfunction appendList(cont, k, item) {\n if(Array.isArray(cont[k])) cont[k].push(item);\n else cont[k] = [item];\n}\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n var ax2traces = {};\n var xaMayHide = {};\n var yaMayHide = {};\n var xaMustDisplay = {};\n var yaMustDisplay = {};\n var yaMustNotReverse = {};\n var yaMayReverse = {};\n var axHasImage = {};\n var outerTicks = {};\n var noGrids = {};\n var i, j;\n\n // look for axes in the data\n for(i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if(!traceIs(trace, 'cartesian') && !traceIs(trace, 'gl2d')) continue;\n\n var xaName;\n if(trace.xaxis) {\n xaName = id2name(trace.xaxis);\n appendList(ax2traces, xaName, trace);\n } else if(trace.xaxes) {\n for(j = 0; j < trace.xaxes.length; j++) {\n appendList(ax2traces, id2name(trace.xaxes[j]), trace);\n }\n }\n\n var yaName;\n if(trace.yaxis) {\n yaName = id2name(trace.yaxis);\n appendList(ax2traces, yaName, trace);\n } else if(trace.yaxes) {\n for(j = 0; j < trace.yaxes.length; j++) {\n appendList(ax2traces, id2name(trace.yaxes[j]), trace);\n }\n }\n\n // logic for funnels\n if(trace.type === 'funnel') {\n if(trace.orientation === 'h') {\n if(xaName) xaMayHide[xaName] = true;\n if(yaName) yaMayReverse[yaName] = true;\n } else {\n if(yaName) yaMayHide[yaName] = true;\n }\n } else if(trace.type === 'image') {\n if(yaName) axHasImage[yaName] = true;\n if(xaName) axHasImage[xaName] = true;\n } else {\n if(yaName) {\n yaMustDisplay[yaName] = true;\n yaMustNotReverse[yaName] = true;\n }\n\n if(!traceIs(trace, 'carpet') || (trace.type === 'carpet' && !trace._cheater)) {\n if(xaName) xaMustDisplay[xaName] = true;\n }\n }\n\n // Two things trigger axis visibility:\n // 1. is not carpet\n // 2. carpet that's not cheater\n\n // The above check for definitely-not-cheater is not adequate. This\n // second list tracks which axes *could* be a cheater so that the\n // full condition triggering hiding is:\n // *could* be a cheater and *is not definitely visible*\n if(trace.type === 'carpet' && trace._cheater) {\n if(xaName) xaMayHide[xaName] = true;\n }\n\n // check for default formatting tweaks\n if(traceIs(trace, '2dMap')) {\n outerTicks[xaName] = true;\n outerTicks[yaName] = true;\n }\n\n if(traceIs(trace, 'oriented')) {\n var positionAxis = trace.orientation === 'h' ? yaName : xaName;\n noGrids[positionAxis] = true;\n }\n }\n\n var subplots = layoutOut._subplots;\n var xIds = subplots.xaxis;\n var yIds = subplots.yaxis;\n var xNames = Lib.simpleMap(xIds, id2name);\n var yNames = Lib.simpleMap(yIds, id2name);\n var axNames = xNames.concat(yNames);\n\n // plot_bgcolor only makes sense if there's a (2D) plot!\n // TODO: bgcolor for each subplot, to inherit from the main one\n var plotBgColor = Color.background;\n if(xIds.length && yIds.length) {\n plotBgColor = Lib.coerce(layoutIn, layoutOut, basePlotLayoutAttributes, 'plot_bgcolor');\n }\n\n var bgColor = Color.combine(plotBgColor, layoutOut.paper_bgcolor);\n\n var axName, axLetter, axLayoutIn, axLayoutOut;\n\n function coerce(attr, dflt) {\n return Lib.coerce(axLayoutIn, axLayoutOut, layoutAttributes, attr, dflt);\n }\n\n function coerce2(attr, dflt) {\n return Lib.coerce2(axLayoutIn, axLayoutOut, layoutAttributes, attr, dflt);\n }\n\n function getCounterAxes(axLetter) {\n return (axLetter === 'x') ? yIds : xIds;\n }\n\n var counterAxes = {x: getCounterAxes('x'), y: getCounterAxes('y')};\n var allAxisIds = counterAxes.x.concat(counterAxes.y);\n\n function getOverlayableAxes(axLetter, axName) {\n var list = (axLetter === 'x') ? xNames : yNames;\n var out = [];\n\n for(var j = 0; j < list.length; j++) {\n var axName2 = list[j];\n\n if(axName2 !== axName && !(layoutIn[axName2] || {}).overlaying) {\n out.push(name2id(axName2));\n }\n }\n\n return out;\n }\n\n // first pass creates the containers, determines types, and handles most of the settings\n for(i = 0; i < axNames.length; i++) {\n axName = axNames[i];\n axLetter = axName.charAt(0);\n\n if(!Lib.isPlainObject(layoutIn[axName])) {\n layoutIn[axName] = {};\n }\n\n axLayoutIn = layoutIn[axName];\n axLayoutOut = Template.newContainer(layoutOut, axName, axLetter + 'axis');\n\n var traces = ax2traces[axName] || [];\n axLayoutOut._traceIndices = traces.map(function(t) { return t._expandedIndex; });\n axLayoutOut._annIndices = [];\n axLayoutOut._shapeIndices = [];\n axLayoutOut._imgIndices = [];\n axLayoutOut._subplotsWith = [];\n axLayoutOut._counterAxes = [];\n\n // set up some private properties\n axLayoutOut._name = axLayoutOut._attr = axName;\n var id = axLayoutOut._id = name2id(axName);\n\n var overlayableAxes = getOverlayableAxes(axLetter, axName);\n\n var visibleDflt =\n (axLetter === 'x' && !xaMustDisplay[axName] && xaMayHide[axName]) ||\n (axLetter === 'y' && !yaMustDisplay[axName] && yaMayHide[axName]);\n\n var reverseDflt =\n (axLetter === 'y' &&\n (\n (!yaMustNotReverse[axName] && yaMayReverse[axName]) ||\n axHasImage[axName]\n ));\n\n var defaultOptions = {\n letter: axLetter,\n font: layoutOut.font,\n outerTicks: outerTicks[axName],\n showGrid: !noGrids[axName],\n data: traces,\n bgColor: bgColor,\n calendar: layoutOut.calendar,\n automargin: true,\n visibleDflt: visibleDflt,\n reverseDflt: reverseDflt,\n splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[id]\n };\n\n coerce('uirevision', layoutOut.uirevision);\n\n handleTypeDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions);\n handleAxisDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions, layoutOut);\n\n var spikecolor = coerce2('spikecolor');\n var spikethickness = coerce2('spikethickness');\n var spikedash = coerce2('spikedash');\n var spikemode = coerce2('spikemode');\n var spikesnap = coerce2('spikesnap');\n var showSpikes = coerce('showspikes', !!spikecolor || !!spikethickness || !!spikedash || !!spikemode || !!spikesnap);\n\n if(!showSpikes) {\n delete axLayoutOut.spikecolor;\n delete axLayoutOut.spikethickness;\n delete axLayoutOut.spikedash;\n delete axLayoutOut.spikemode;\n delete axLayoutOut.spikesnap;\n }\n\n handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {\n letter: axLetter,\n counterAxes: counterAxes[axLetter],\n overlayableAxes: overlayableAxes,\n grid: layoutOut.grid\n });\n\n coerce('title.standoff');\n\n axLayoutOut._input = axLayoutIn;\n }\n\n // quick second pass for range slider and selector defaults\n var rangeSliderDefaults = getComponentMethod('rangeslider', 'handleDefaults');\n var rangeSelectorDefaults = getComponentMethod('rangeselector', 'handleDefaults');\n\n for(i = 0; i < xNames.length; i++) {\n axName = xNames[i];\n axLayoutIn = layoutIn[axName];\n axLayoutOut = layoutOut[axName];\n\n rangeSliderDefaults(layoutIn, layoutOut, axName);\n\n if(axLayoutOut.type === 'date') {\n rangeSelectorDefaults(\n axLayoutIn,\n axLayoutOut,\n layoutOut,\n yNames,\n axLayoutOut.calendar\n );\n }\n\n coerce('fixedrange');\n }\n\n for(i = 0; i < yNames.length; i++) {\n axName = yNames[i];\n axLayoutIn = layoutIn[axName];\n axLayoutOut = layoutOut[axName];\n\n var anchoredAxis = layoutOut[id2name(axLayoutOut.anchor)];\n\n var fixedRangeDflt = getComponentMethod('rangeslider', 'isVisible')(anchoredAxis);\n\n coerce('fixedrange', fixedRangeDflt);\n }\n\n // Finally, handle scale constraints and matching axes.\n //\n // We need to do this after all axes have coerced both `type`\n // (so we link only axes of the same type) and\n // `fixedrange` (so we can avoid linking from OR TO a fixed axis).\n\n // sets of axes linked by `scaleanchor` along with the scaleratios compounded\n // together, populated in handleConstraintDefaults\n var constraintGroups = layoutOut._axisConstraintGroups = [];\n // similar to _axisConstraintGroups, but for matching axes\n var matchGroups = layoutOut._axisMatchGroups = [];\n\n for(i = 0; i < axNames.length; i++) {\n axName = axNames[i];\n axLetter = axName.charAt(0);\n axLayoutIn = layoutIn[axName];\n axLayoutOut = layoutOut[axName];\n\n var scaleanchorDflt;\n if(axLetter === 'y' && !axLayoutIn.hasOwnProperty('scaleanchor') && axHasImage[axName]) {\n scaleanchorDflt = axLayoutOut.anchor;\n } else {scaleanchorDflt = undefined;}\n\n var constrainDflt;\n if(!axLayoutIn.hasOwnProperty('constrain') && axHasImage[axName]) {\n constrainDflt = 'domain';\n } else {constrainDflt = undefined;}\n\n handleConstraintDefaults(axLayoutIn, axLayoutOut, coerce, {\n allAxisIds: allAxisIds,\n layoutOut: layoutOut,\n scaleanchorDflt: scaleanchorDflt,\n constrainDflt: constrainDflt\n });\n }\n\n for(i = 0; i < matchGroups.length; i++) {\n var group = matchGroups[i];\n var rng = null;\n var autorange = null;\n var axId;\n\n // find 'matching' range attrs\n for(axId in group) {\n axLayoutOut = layoutOut[id2name(axId)];\n if(!axLayoutOut.matches) {\n rng = axLayoutOut.range;\n autorange = axLayoutOut.autorange;\n }\n }\n // if `ax.matches` values are reciprocal,\n // pick values of first axis in group\n if(rng === null || autorange === null) {\n for(axId in group) {\n axLayoutOut = layoutOut[id2name(axId)];\n rng = axLayoutOut.range;\n autorange = axLayoutOut.autorange;\n break;\n }\n }\n // apply matching range attrs\n for(axId in group) {\n axLayoutOut = layoutOut[id2name(axId)];\n if(axLayoutOut.matches) {\n axLayoutOut.range = rng.slice();\n axLayoutOut.autorange = autorange;\n }\n axLayoutOut._matchGroup = group;\n }\n\n // remove matching axis from scaleanchor constraint groups (for now)\n if(constraintGroups.length) {\n for(axId in group) {\n for(j = 0; j < constraintGroups.length; j++) {\n var group2 = constraintGroups[j];\n for(var axId2 in group2) {\n if(axId === axId2) {\n Lib.warn('Axis ' + axId2 + ' is set with both ' +\n 'a *scaleanchor* and *matches* constraint; ' +\n 'ignoring the scale constraint.');\n\n delete group2[axId2];\n if(Object.keys(group2).length < 2) {\n constraintGroups.splice(j, 1);\n }\n }\n }\n }\n }\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"838d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = {\n attributes: __webpack_require__(\"1590\"),\n supplyDefaults: __webpack_require__(\"2513\"),\n crossTraceDefaults: __webpack_require__(\"722f\"),\n calc: __webpack_require__(\"0625\"),\n plot: __webpack_require__(\"fa8a\"),\n layerName: 'heatmaplayer',\n colorbar: __webpack_require__(\"fcb3\"),\n style: __webpack_require__(\"c437\"),\n hoverPoints: __webpack_require__(\"9236\"),\n eventData: __webpack_require__(\"6f09\"),\n\n moduleType: 'trace',\n name: 'histogram2d',\n basePlotModule: __webpack_require__(\"91cd\"),\n categories: ['cartesian', 'svg', '2dMap', 'histogram', 'showLegend'],\n meta: {\n \n \n }\n};\n\n\n/***/ }),\n\n/***/ \"83ab\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n\n/***/ \"83c1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar Fx = __webpack_require__(\"a5c4\");\nvar Lib = __webpack_require__(\"fc26\");\nvar getTraceColor = __webpack_require__(\"feed\");\nvar fillText = Lib.fillText;\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nmodule.exports = function hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var subplot = pointData.subplot;\n\n // compute winding number about [-180, 180] globe\n var winding = (xval >= 0) ?\n Math.floor((xval + 180) / 360) :\n Math.ceil((xval - 180) / 360);\n\n // shift longitude to [-180, 180] to determine closest point\n var lonShift = winding * 360;\n var xval2 = xval - lonShift;\n\n function distFn(d) {\n var lonlat = d.lonlat;\n if(lonlat[0] === BADNUM) return Infinity;\n\n var lon = Lib.modHalf(lonlat[0], 360);\n var lat = lonlat[1];\n var pt = subplot.project([lon, lat]);\n var dx = pt.x - xa.c2p([xval2, lat]);\n var dy = pt.y - ya.c2p([lon, yval]);\n var rad = Math.max(3, d.mrc || 0);\n\n return Math.max(Math.sqrt(dx * dx + dy * dy) - rad, 1 - 3 / rad);\n }\n\n Fx.getClosest(cd, distFn, pointData);\n\n // skip the rest (for this trace) if we didn't find a close point\n if(pointData.index === false) return;\n\n var di = cd[pointData.index];\n var lonlat = di.lonlat;\n var lonlatShifted = [Lib.modHalf(lonlat[0], 360) + lonShift, lonlat[1]];\n\n // shift labels back to original winded globe\n var xc = xa.c2p(lonlatShifted);\n var yc = ya.c2p(lonlatShifted);\n var rad = di.mrc || 1;\n\n pointData.x0 = xc - rad;\n pointData.x1 = xc + rad;\n pointData.y0 = yc - rad;\n pointData.y1 = yc + rad;\n\n var fullLayout = {};\n fullLayout[trace.subplot] = {_subplot: subplot};\n var labels = trace._module.formatLabels(di, trace, fullLayout);\n pointData.lonLabel = labels.lonLabel;\n pointData.latLabel = labels.latLabel;\n\n pointData.color = getTraceColor(trace, di);\n pointData.extraText = getExtraText(trace, di, cd[0].t.labels);\n pointData.hovertemplate = trace.hovertemplate;\n\n return [pointData];\n};\n\nfunction getExtraText(trace, di, labels) {\n if(trace.hovertemplate) return;\n\n var hoverinfo = di.hi || trace.hoverinfo;\n var parts = hoverinfo.split('+');\n var isAll = parts.indexOf('all') !== -1;\n var hasLon = parts.indexOf('lon') !== -1;\n var hasLat = parts.indexOf('lat') !== -1;\n var lonlat = di.lonlat;\n var text = [];\n\n // TODO should we use a mock axis to format hover?\n // If so, we'll need to make precision be zoom-level dependent\n function format(v) {\n return v + '\\u00B0';\n }\n\n if(isAll || (hasLon && hasLat)) {\n text.push('(' + format(lonlat[0]) + ', ' + format(lonlat[1]) + ')');\n } else if(hasLon) {\n text.push(labels.lon + format(lonlat[0]));\n } else if(hasLat) {\n text.push(labels.lat + format(lonlat[1]));\n }\n\n if(isAll || parts.indexOf('text') !== -1) {\n fillText(di, trace, text);\n }\n\n return text.join('
');\n}\n\n\n/***/ }),\n\n/***/ \"83d1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar isNumeric = __webpack_require__(\"19b2\");\nvar tinycolor = __webpack_require__(\"66cb\");\n\nvar Registry = __webpack_require__(\"371e\");\nvar Color = __webpack_require__(\"d115\");\nvar Colorscale = __webpack_require__(\"c258\");\nvar Lib = __webpack_require__(\"fc26\");\nvar svgTextUtils = __webpack_require__(\"0379\");\n\nvar xmlnsNamespaces = __webpack_require__(\"73c9\");\nvar alignment = __webpack_require__(\"63dc\");\nvar LINE_SPACING = alignment.LINE_SPACING;\nvar DESELECTDIM = __webpack_require__(\"72a4\").DESELECTDIM;\n\nvar subTypes = __webpack_require__(\"de81\");\nvar makeBubbleSizeFn = __webpack_require__(\"1978\");\nvar appendArrayPointValue = __webpack_require__(\"c4c7\").appendArrayPointValue;\n\nvar drawing = module.exports = {};\n\n// -----------------------------------------------------\n// styling functions for plot elements\n// -----------------------------------------------------\n\ndrawing.font = function(s, family, size, color) {\n // also allow the form font(s, {family, size, color})\n if(Lib.isPlainObject(family)) {\n color = family.color;\n size = family.size;\n family = family.family;\n }\n if(family) s.style('font-family', family);\n if(size + 1) s.style('font-size', size + 'px');\n if(color) s.call(Color.fill, color);\n};\n\n/*\n * Positioning helpers\n * Note: do not use `setPosition` with nodes modified by\n * `svgTextUtils.convertToTspans`. Use `svgTextUtils.positionText`\n * instead, so that elements get updated to match.\n */\ndrawing.setPosition = function(s, x, y) { s.attr('x', x).attr('y', y); };\ndrawing.setSize = function(s, w, h) { s.attr('width', w).attr('height', h); };\ndrawing.setRect = function(s, x, y, w, h) {\n s.call(drawing.setPosition, x, y).call(drawing.setSize, w, h);\n};\n\n/** Translate node\n *\n * @param {object} d : calcdata point item\n * @param {sel} sel : d3 selction of node to translate\n * @param {object} xa : corresponding full xaxis object\n * @param {object} ya : corresponding full yaxis object\n *\n * @return {boolean} :\n * true if selection got translated\n * false if selection could not get translated\n */\ndrawing.translatePoint = function(d, sel, xa, ya) {\n var x = xa.c2p(d.x);\n var y = ya.c2p(d.y);\n\n if(isNumeric(x) && isNumeric(y) && sel.node()) {\n // for multiline text this works better\n if(sel.node().nodeName === 'text') {\n sel.attr('x', x).attr('y', y);\n } else {\n sel.attr('transform', 'translate(' + x + ',' + y + ')');\n }\n } else {\n return false;\n }\n\n return true;\n};\n\ndrawing.translatePoints = function(s, xa, ya) {\n s.each(function(d) {\n var sel = d3.select(this);\n drawing.translatePoint(d, sel, xa, ya);\n });\n};\n\ndrawing.hideOutsideRangePoint = function(d, sel, xa, ya, xcalendar, ycalendar) {\n sel.attr(\n 'display',\n (xa.isPtWithinRange(d, xcalendar) && ya.isPtWithinRange(d, ycalendar)) ? null : 'none'\n );\n};\n\ndrawing.hideOutsideRangePoints = function(traceGroups, subplot) {\n if(!subplot._hasClipOnAxisFalse) return;\n\n var xa = subplot.xaxis;\n var ya = subplot.yaxis;\n\n traceGroups.each(function(d) {\n var trace = d[0].trace;\n var xcalendar = trace.xcalendar;\n var ycalendar = trace.ycalendar;\n var selector = Registry.traceIs(trace, 'bar-like') ? '.bartext' : '.point,.textpoint';\n\n traceGroups.selectAll(selector).each(function(d) {\n drawing.hideOutsideRangePoint(d, d3.select(this), xa, ya, xcalendar, ycalendar);\n });\n });\n};\n\ndrawing.crispRound = function(gd, lineWidth, dflt) {\n // for lines that disable antialiasing we want to\n // make sure the width is an integer, and at least 1 if it's nonzero\n\n if(!lineWidth || !isNumeric(lineWidth)) return dflt || 0;\n\n // but not for static plots - these don't get antialiased anyway.\n if(gd._context.staticPlot) return lineWidth;\n\n if(lineWidth < 1) return 1;\n return Math.round(lineWidth);\n};\n\ndrawing.singleLineStyle = function(d, s, lw, lc, ld) {\n s.style('fill', 'none');\n var line = (((d || [])[0] || {}).trace || {}).line || {};\n var lw1 = lw || line.width || 0;\n var dash = ld || line.dash || '';\n\n Color.stroke(s, lc || line.color);\n drawing.dashLine(s, dash, lw1);\n};\n\ndrawing.lineGroupStyle = function(s, lw, lc, ld) {\n s.style('fill', 'none')\n .each(function(d) {\n var line = (((d || [])[0] || {}).trace || {}).line || {};\n var lw1 = lw || line.width || 0;\n var dash = ld || line.dash || '';\n\n d3.select(this)\n .call(Color.stroke, lc || line.color)\n .call(drawing.dashLine, dash, lw1);\n });\n};\n\ndrawing.dashLine = function(s, dash, lineWidth) {\n lineWidth = +lineWidth || 0;\n\n dash = drawing.dashStyle(dash, lineWidth);\n\n s.style({\n 'stroke-dasharray': dash,\n 'stroke-width': lineWidth + 'px'\n });\n};\n\ndrawing.dashStyle = function(dash, lineWidth) {\n lineWidth = +lineWidth || 1;\n var dlw = Math.max(lineWidth, 3);\n\n if(dash === 'solid') dash = '';\n else if(dash === 'dot') dash = dlw + 'px,' + dlw + 'px';\n else if(dash === 'dash') dash = (3 * dlw) + 'px,' + (3 * dlw) + 'px';\n else if(dash === 'longdash') dash = (5 * dlw) + 'px,' + (5 * dlw) + 'px';\n else if(dash === 'dashdot') {\n dash = (3 * dlw) + 'px,' + dlw + 'px,' + dlw + 'px,' + dlw + 'px';\n } else if(dash === 'longdashdot') {\n dash = (5 * dlw) + 'px,' + (2 * dlw) + 'px,' + dlw + 'px,' + (2 * dlw) + 'px';\n }\n // otherwise user wrote the dasharray themselves - leave it be\n\n return dash;\n};\n\n// Same as fillGroupStyle, except in this case the selection may be a transition\ndrawing.singleFillStyle = function(sel) {\n var node = d3.select(sel.node());\n var data = node.data();\n var fillcolor = (((data[0] || [])[0] || {}).trace || {}).fillcolor;\n if(fillcolor) {\n sel.call(Color.fill, fillcolor);\n }\n};\n\ndrawing.fillGroupStyle = function(s) {\n s.style('stroke-width', 0)\n .each(function(d) {\n var shape = d3.select(this);\n // N.B. 'd' won't be a calcdata item when\n // fill !== 'none' on a segment-less and marker-less trace\n if(d[0].trace) {\n shape.call(Color.fill, d[0].trace.fillcolor);\n }\n });\n};\n\nvar SYMBOLDEFS = __webpack_require__(\"3350\");\n\ndrawing.symbolNames = [];\ndrawing.symbolFuncs = [];\ndrawing.symbolNeedLines = {};\ndrawing.symbolNoDot = {};\ndrawing.symbolNoFill = {};\ndrawing.symbolList = [];\n\nObject.keys(SYMBOLDEFS).forEach(function(k) {\n var symDef = SYMBOLDEFS[k];\n var n = symDef.n;\n drawing.symbolList.push(\n n,\n k,\n n + 100,\n k + '-open'\n );\n drawing.symbolNames[n] = k;\n drawing.symbolFuncs[n] = symDef.f;\n\n if(symDef.needLine) {\n drawing.symbolNeedLines[n] = true;\n }\n if(symDef.noDot) {\n drawing.symbolNoDot[n] = true;\n } else {\n drawing.symbolList.push(\n n + 200,\n k + '-dot',\n n + 300,\n k + '-open-dot'\n );\n }\n if(symDef.noFill) {\n drawing.symbolNoFill[n] = true;\n }\n});\n\nvar MAXSYMBOL = drawing.symbolNames.length;\n// add a dot in the middle of the symbol\nvar DOTPATH = 'M0,0.5L0.5,0L0,-0.5L-0.5,0Z';\n\ndrawing.symbolNumber = function(v) {\n if(typeof v === 'string') {\n var vbase = 0;\n if(v.indexOf('-open') > 0) {\n vbase = 100;\n v = v.replace('-open', '');\n }\n if(v.indexOf('-dot') > 0) {\n vbase += 200;\n v = v.replace('-dot', '');\n }\n v = drawing.symbolNames.indexOf(v);\n if(v >= 0) { v += vbase; }\n }\n\n return (v % 100 >= MAXSYMBOL || v >= 400) ?\n 0 : Math.floor(Math.max(v, 0));\n};\n\nfunction makePointPath(symbolNumber, r) {\n var base = symbolNumber % 100;\n return drawing.symbolFuncs[base](r) + (symbolNumber >= 200 ? DOTPATH : '');\n}\n\nvar HORZGRADIENT = {x1: 1, x2: 0, y1: 0, y2: 0};\nvar VERTGRADIENT = {x1: 0, x2: 0, y1: 1, y2: 0};\nvar stopFormatter = d3.format('~.1f');\nvar gradientInfo = {\n radial: {node: 'radialGradient'},\n radialreversed: {node: 'radialGradient', reversed: true},\n horizontal: {node: 'linearGradient', attrs: HORZGRADIENT},\n horizontalreversed: {node: 'linearGradient', attrs: HORZGRADIENT, reversed: true},\n vertical: {node: 'linearGradient', attrs: VERTGRADIENT},\n verticalreversed: {node: 'linearGradient', attrs: VERTGRADIENT, reversed: true}\n};\n\n/**\n * gradient: create and apply a gradient fill\n *\n * @param {object} sel: d3 selection to apply this gradient to\n * You can use `selection.call(Drawing.gradient, ...)`\n * @param {DOM element} gd: the graph div `sel` is part of\n * @param {string} gradientID: a unique (within this plot) identifier\n * for this gradient, so that we don't create unnecessary definitions\n * @param {string} type: 'radial', 'horizontal', or 'vertical', optionally with\n * 'reversed' at the end. Normally radial goes center to edge,\n * horizontal goes right to left, and vertical goes bottom to top\n * @param {array} colorscale: as in attribute values, [[fraction, color], ...]\n * @param {string} prop: the property to apply to, 'fill' or 'stroke'\n */\ndrawing.gradient = function(sel, gd, gradientID, type, colorscale, prop) {\n var len = colorscale.length;\n var info = gradientInfo[type];\n var colorStops = new Array(len);\n for(var i = 0; i < len; i++) {\n if(info.reversed) {\n colorStops[len - 1 - i] = [stopFormatter((1 - colorscale[i][0]) * 100), colorscale[i][1]];\n } else {\n colorStops[i] = [stopFormatter(colorscale[i][0] * 100), colorscale[i][1]];\n }\n }\n\n var fullLayout = gd._fullLayout;\n var fullID = 'g' + fullLayout._uid + '-' + gradientID;\n\n var gradient = fullLayout._defs.select('.gradients')\n .selectAll('#' + fullID)\n .data([type + colorStops.join(';')], Lib.identity);\n\n gradient.exit().remove();\n\n gradient.enter()\n .append(info.node)\n .each(function() {\n var el = d3.select(this);\n if(info.attrs) el.attr(info.attrs);\n\n el.attr('id', fullID);\n\n var stops = el.selectAll('stop')\n .data(colorStops);\n stops.exit().remove();\n stops.enter().append('stop');\n\n stops.each(function(d) {\n var tc = tinycolor(d[1]);\n d3.select(this).attr({\n offset: d[0] + '%',\n 'stop-color': Color.tinyRGB(tc),\n 'stop-opacity': tc.getAlpha()\n });\n });\n });\n\n sel.style(prop, getFullUrl(fullID, gd))\n .style(prop + '-opacity', null);\n\n var className2query = function(s) {\n return '.' + s.attr('class').replace(/\\s/g, '.');\n };\n var k = className2query(d3.select(sel.node().parentNode)) +\n '>' + className2query(sel);\n fullLayout._gradientUrlQueryParts[k] = 1;\n};\n\n/*\n * Make the gradients container and clear out any previous gradients.\n * We never collect all the gradients we need in one place,\n * so we can't ever remove gradients that have stopped being useful,\n * except all at once before a full redraw.\n * The upside of this is arbitrary points can share gradient defs\n */\ndrawing.initGradients = function(gd) {\n var fullLayout = gd._fullLayout;\n\n var gradientsGroup = Lib.ensureSingle(fullLayout._defs, 'g', 'gradients');\n gradientsGroup.selectAll('linearGradient,radialGradient').remove();\n\n // initialize stash of query parts filled in Drawing.gradient,\n // used to fix URL strings during image exports\n fullLayout._gradientUrlQueryParts = {};\n};\n\n\ndrawing.pointStyle = function(s, trace, gd) {\n if(!s.size()) return;\n\n var fns = drawing.makePointStyleFns(trace);\n\n s.each(function(d) {\n drawing.singlePointStyle(d, d3.select(this), trace, fns, gd);\n });\n};\n\ndrawing.singlePointStyle = function(d, sel, trace, fns, gd) {\n var marker = trace.marker;\n var markerLine = marker.line;\n\n sel.style('opacity',\n fns.selectedOpacityFn ? fns.selectedOpacityFn(d) :\n (d.mo === undefined ? marker.opacity : d.mo)\n );\n\n if(fns.ms2mrc) {\n var r;\n\n // handle multi-trace graph edit case\n if(d.ms === 'various' || marker.size === 'various') {\n r = 3;\n } else {\n r = fns.ms2mrc(d.ms);\n }\n\n // store the calculated size so hover can use it\n d.mrc = r;\n\n if(fns.selectedSizeFn) {\n r = d.mrc = fns.selectedSizeFn(d);\n }\n\n // turn the symbol into a sanitized number\n var x = drawing.symbolNumber(d.mx || marker.symbol) || 0;\n\n // save if this marker is open\n // because that impacts how to handle colors\n d.om = x % 200 >= 100;\n\n sel.attr('d', makePointPath(x, r));\n }\n\n var perPointGradient = false;\n var fillColor, lineColor, lineWidth;\n\n // 'so' is suspected outliers, for box plots\n if(d.so) {\n lineWidth = markerLine.outlierwidth;\n lineColor = markerLine.outliercolor;\n fillColor = marker.outliercolor;\n } else {\n var markerLineWidth = (markerLine || {}).width;\n\n lineWidth = (\n d.mlw + 1 ||\n markerLineWidth + 1 ||\n // TODO: we need the latter for legends... can we get rid of it?\n (d.trace ? (d.trace.marker.line || {}).width : 0) + 1\n ) - 1 || 0;\n\n if('mlc' in d) lineColor = d.mlcc = fns.lineScale(d.mlc);\n // weird case: array wasn't long enough to apply to every point\n else if(Lib.isArrayOrTypedArray(markerLine.color)) lineColor = Color.defaultLine;\n else lineColor = markerLine.color;\n\n if(Lib.isArrayOrTypedArray(marker.color)) {\n fillColor = Color.defaultLine;\n perPointGradient = true;\n }\n\n if('mc' in d) {\n fillColor = d.mcc = fns.markerScale(d.mc);\n } else {\n fillColor = marker.color || 'rgba(0,0,0,0)';\n }\n\n if(fns.selectedColorFn) {\n fillColor = fns.selectedColorFn(d);\n }\n }\n\n if(d.om) {\n // open markers can't have zero linewidth, default to 1px,\n // and use fill color as stroke color\n sel.call(Color.stroke, fillColor)\n .style({\n 'stroke-width': (lineWidth || 1) + 'px',\n fill: 'none'\n });\n } else {\n sel.style('stroke-width', (d.isBlank ? 0 : lineWidth) + 'px');\n\n var markerGradient = marker.gradient;\n\n var gradientType = d.mgt;\n if(gradientType) perPointGradient = true;\n else gradientType = markerGradient && markerGradient.type;\n\n // for legend - arrays will propagate through here, but we don't need\n // to treat it as per-point.\n if(Array.isArray(gradientType)) {\n gradientType = gradientType[0];\n if(!gradientInfo[gradientType]) gradientType = 0;\n }\n\n if(gradientType && gradientType !== 'none') {\n var gradientColor = d.mgc;\n if(gradientColor) perPointGradient = true;\n else gradientColor = markerGradient.color;\n\n var gradientID = trace.uid;\n if(perPointGradient) gradientID += '-' + d.i;\n\n drawing.gradient(sel, gd, gradientID, gradientType,\n [[0, gradientColor], [1, fillColor]], 'fill');\n } else {\n Color.fill(sel, fillColor);\n }\n\n if(lineWidth) {\n Color.stroke(sel, lineColor);\n }\n }\n};\n\ndrawing.makePointStyleFns = function(trace) {\n var out = {};\n var marker = trace.marker;\n\n // allow array marker and marker line colors to be\n // scaled by given max and min to colorscales\n out.markerScale = drawing.tryColorscale(marker, '');\n out.lineScale = drawing.tryColorscale(marker, 'line');\n\n if(Registry.traceIs(trace, 'symbols')) {\n out.ms2mrc = subTypes.isBubble(trace) ?\n makeBubbleSizeFn(trace) :\n function() { return (marker.size || 6) / 2; };\n }\n\n if(trace.selectedpoints) {\n Lib.extendFlat(out, drawing.makeSelectedPointStyleFns(trace));\n }\n\n return out;\n};\n\ndrawing.makeSelectedPointStyleFns = function(trace) {\n var out = {};\n\n var selectedAttrs = trace.selected || {};\n var unselectedAttrs = trace.unselected || {};\n\n var marker = trace.marker || {};\n var selectedMarker = selectedAttrs.marker || {};\n var unselectedMarker = unselectedAttrs.marker || {};\n\n var mo = marker.opacity;\n var smo = selectedMarker.opacity;\n var usmo = unselectedMarker.opacity;\n var smoIsDefined = smo !== undefined;\n var usmoIsDefined = usmo !== undefined;\n\n if(Lib.isArrayOrTypedArray(mo) || smoIsDefined || usmoIsDefined) {\n out.selectedOpacityFn = function(d) {\n var base = d.mo === undefined ? marker.opacity : d.mo;\n\n if(d.selected) {\n return smoIsDefined ? smo : base;\n } else {\n return usmoIsDefined ? usmo : DESELECTDIM * base;\n }\n };\n }\n\n var mc = marker.color;\n var smc = selectedMarker.color;\n var usmc = unselectedMarker.color;\n\n if(smc || usmc) {\n out.selectedColorFn = function(d) {\n var base = d.mcc || mc;\n\n if(d.selected) {\n return smc || base;\n } else {\n return usmc || base;\n }\n };\n }\n\n var ms = marker.size;\n var sms = selectedMarker.size;\n var usms = unselectedMarker.size;\n var smsIsDefined = sms !== undefined;\n var usmsIsDefined = usms !== undefined;\n\n if(Registry.traceIs(trace, 'symbols') && (smsIsDefined || usmsIsDefined)) {\n out.selectedSizeFn = function(d) {\n var base = d.mrc || ms / 2;\n\n if(d.selected) {\n return smsIsDefined ? sms / 2 : base;\n } else {\n return usmsIsDefined ? usms / 2 : base;\n }\n };\n }\n\n return out;\n};\n\ndrawing.makeSelectedTextStyleFns = function(trace) {\n var out = {};\n\n var selectedAttrs = trace.selected || {};\n var unselectedAttrs = trace.unselected || {};\n\n var textFont = trace.textfont || {};\n var selectedTextFont = selectedAttrs.textfont || {};\n var unselectedTextFont = unselectedAttrs.textfont || {};\n\n var tc = textFont.color;\n var stc = selectedTextFont.color;\n var utc = unselectedTextFont.color;\n\n out.selectedTextColorFn = function(d) {\n var base = d.tc || tc;\n\n if(d.selected) {\n return stc || base;\n } else {\n if(utc) return utc;\n else return stc ? base : Color.addOpacity(base, DESELECTDIM);\n }\n };\n\n return out;\n};\n\ndrawing.selectedPointStyle = function(s, trace) {\n if(!s.size() || !trace.selectedpoints) return;\n\n var fns = drawing.makeSelectedPointStyleFns(trace);\n var marker = trace.marker || {};\n var seq = [];\n\n if(fns.selectedOpacityFn) {\n seq.push(function(pt, d) {\n pt.style('opacity', fns.selectedOpacityFn(d));\n });\n }\n\n if(fns.selectedColorFn) {\n seq.push(function(pt, d) {\n Color.fill(pt, fns.selectedColorFn(d));\n });\n }\n\n if(fns.selectedSizeFn) {\n seq.push(function(pt, d) {\n var mx = d.mx || marker.symbol || 0;\n var mrc2 = fns.selectedSizeFn(d);\n\n pt.attr('d', makePointPath(drawing.symbolNumber(mx), mrc2));\n\n // save for Drawing.selectedTextStyle\n d.mrc2 = mrc2;\n });\n }\n\n if(seq.length) {\n s.each(function(d) {\n var pt = d3.select(this);\n for(var i = 0; i < seq.length; i++) {\n seq[i](pt, d);\n }\n });\n }\n};\n\ndrawing.tryColorscale = function(marker, prefix) {\n var cont = prefix ? Lib.nestedProperty(marker, prefix).get() : marker;\n\n if(cont) {\n var colorArray = cont.color;\n if((cont.colorscale || cont._colorAx) && Lib.isArrayOrTypedArray(colorArray)) {\n return Colorscale.makeColorScaleFuncFromTrace(cont);\n }\n }\n return Lib.identity;\n};\n\nvar TEXTOFFSETSIGN = {\n start: 1, end: -1, middle: 0, bottom: 1, top: -1\n};\n\nfunction textPointPosition(s, textPosition, fontSize, markerRadius) {\n var group = d3.select(s.node().parentNode);\n\n var v = textPosition.indexOf('top') !== -1 ?\n 'top' :\n textPosition.indexOf('bottom') !== -1 ? 'bottom' : 'middle';\n var h = textPosition.indexOf('left') !== -1 ?\n 'end' :\n textPosition.indexOf('right') !== -1 ? 'start' : 'middle';\n\n // if markers are shown, offset a little more than\n // the nominal marker size\n // ie 2/1.6 * nominal, bcs some markers are a bit bigger\n var r = markerRadius ? markerRadius / 0.8 + 1 : 0;\n\n var numLines = (svgTextUtils.lineCount(s) - 1) * LINE_SPACING + 1;\n var dx = TEXTOFFSETSIGN[h] * r;\n var dy = fontSize * 0.75 + TEXTOFFSETSIGN[v] * r +\n (TEXTOFFSETSIGN[v] - 1) * numLines * fontSize / 2;\n\n // fix the overall text group position\n s.attr('text-anchor', h);\n group.attr('transform', 'translate(' + dx + ',' + dy + ')');\n}\n\nfunction extracTextFontSize(d, trace) {\n var fontSize = d.ts || trace.textfont.size;\n return (isNumeric(fontSize) && fontSize > 0) ? fontSize : 0;\n}\n\n// draw text at points\ndrawing.textPointStyle = function(s, trace, gd) {\n if(!s.size()) return;\n\n var selectedTextColorFn;\n if(trace.selectedpoints) {\n var fns = drawing.makeSelectedTextStyleFns(trace);\n selectedTextColorFn = fns.selectedTextColorFn;\n }\n\n var texttemplate = trace.texttemplate;\n var fullLayout = gd._fullLayout;\n\n s.each(function(d) {\n var p = d3.select(this);\n\n var text = texttemplate ?\n Lib.extractOption(d, trace, 'txt', 'texttemplate') :\n Lib.extractOption(d, trace, 'tx', 'text');\n\n if(!text && text !== 0) {\n p.remove();\n return;\n }\n\n if(texttemplate) {\n var labels = trace._module.formatLabels ? trace._module.formatLabels(d, trace, fullLayout) : {};\n var pointValues = {};\n appendArrayPointValue(pointValues, trace, d.i);\n var meta = trace._meta || {};\n text = Lib.texttemplateString(text, labels, fullLayout._d3locale, pointValues, d, meta);\n }\n\n var pos = d.tp || trace.textposition;\n var fontSize = extracTextFontSize(d, trace);\n var fontColor = selectedTextColorFn ?\n selectedTextColorFn(d) :\n (d.tc || trace.textfont.color);\n\n p.call(drawing.font,\n d.tf || trace.textfont.family,\n fontSize,\n fontColor)\n .text(text)\n .call(svgTextUtils.convertToTspans, gd)\n .call(textPointPosition, pos, fontSize, d.mrc);\n });\n};\n\ndrawing.selectedTextStyle = function(s, trace) {\n if(!s.size() || !trace.selectedpoints) return;\n\n var fns = drawing.makeSelectedTextStyleFns(trace);\n\n s.each(function(d) {\n var tx = d3.select(this);\n var tc = fns.selectedTextColorFn(d);\n var tp = d.tp || trace.textposition;\n var fontSize = extracTextFontSize(d, trace);\n\n Color.fill(tx, tc);\n textPointPosition(tx, tp, fontSize, d.mrc2 || d.mrc);\n });\n};\n\n// generalized Catmull-Rom splines, per\n// http://www.cemyuksel.com/research/catmullrom_param/catmullrom.pdf\nvar CatmullRomExp = 0.5;\ndrawing.smoothopen = function(pts, smoothness) {\n if(pts.length < 3) { return 'M' + pts.join('L');}\n var path = 'M' + pts[0];\n var tangents = [];\n var i;\n for(i = 1; i < pts.length - 1; i++) {\n tangents.push(makeTangent(pts[i - 1], pts[i], pts[i + 1], smoothness));\n }\n path += 'Q' + tangents[0][0] + ' ' + pts[1];\n for(i = 2; i < pts.length - 1; i++) {\n path += 'C' + tangents[i - 2][1] + ' ' + tangents[i - 1][0] + ' ' + pts[i];\n }\n path += 'Q' + tangents[pts.length - 3][1] + ' ' + pts[pts.length - 1];\n return path;\n};\n\ndrawing.smoothclosed = function(pts, smoothness) {\n if(pts.length < 3) { return 'M' + pts.join('L') + 'Z'; }\n var path = 'M' + pts[0];\n var pLast = pts.length - 1;\n var tangents = [makeTangent(pts[pLast], pts[0], pts[1], smoothness)];\n var i;\n for(i = 1; i < pLast; i++) {\n tangents.push(makeTangent(pts[i - 1], pts[i], pts[i + 1], smoothness));\n }\n tangents.push(\n makeTangent(pts[pLast - 1], pts[pLast], pts[0], smoothness)\n );\n\n for(i = 1; i <= pLast; i++) {\n path += 'C' + tangents[i - 1][1] + ' ' + tangents[i][0] + ' ' + pts[i];\n }\n path += 'C' + tangents[pLast][1] + ' ' + tangents[0][0] + ' ' + pts[0] + 'Z';\n return path;\n};\n\nfunction makeTangent(prevpt, thispt, nextpt, smoothness) {\n var d1x = prevpt[0] - thispt[0];\n var d1y = prevpt[1] - thispt[1];\n var d2x = nextpt[0] - thispt[0];\n var d2y = nextpt[1] - thispt[1];\n var d1a = Math.pow(d1x * d1x + d1y * d1y, CatmullRomExp / 2);\n var d2a = Math.pow(d2x * d2x + d2y * d2y, CatmullRomExp / 2);\n var numx = (d2a * d2a * d1x - d1a * d1a * d2x) * smoothness;\n var numy = (d2a * d2a * d1y - d1a * d1a * d2y) * smoothness;\n var denom1 = 3 * d2a * (d1a + d2a);\n var denom2 = 3 * d1a * (d1a + d2a);\n return [\n [\n d3.round(thispt[0] + (denom1 && numx / denom1), 2),\n d3.round(thispt[1] + (denom1 && numy / denom1), 2)\n ], [\n d3.round(thispt[0] - (denom2 && numx / denom2), 2),\n d3.round(thispt[1] - (denom2 && numy / denom2), 2)\n ]\n ];\n}\n\n// step paths - returns a generator function for paths\n// with the given step shape\nvar STEPPATH = {\n hv: function(p0, p1) {\n return 'H' + d3.round(p1[0], 2) + 'V' + d3.round(p1[1], 2);\n },\n vh: function(p0, p1) {\n return 'V' + d3.round(p1[1], 2) + 'H' + d3.round(p1[0], 2);\n },\n hvh: function(p0, p1) {\n return 'H' + d3.round((p0[0] + p1[0]) / 2, 2) + 'V' +\n d3.round(p1[1], 2) + 'H' + d3.round(p1[0], 2);\n },\n vhv: function(p0, p1) {\n return 'V' + d3.round((p0[1] + p1[1]) / 2, 2) + 'H' +\n d3.round(p1[0], 2) + 'V' + d3.round(p1[1], 2);\n }\n};\nvar STEPLINEAR = function(p0, p1) {\n return 'L' + d3.round(p1[0], 2) + ',' + d3.round(p1[1], 2);\n};\ndrawing.steps = function(shape) {\n var onestep = STEPPATH[shape] || STEPLINEAR;\n return function(pts) {\n var path = 'M' + d3.round(pts[0][0], 2) + ',' + d3.round(pts[0][1], 2);\n for(var i = 1; i < pts.length; i++) {\n path += onestep(pts[i - 1], pts[i]);\n }\n return path;\n };\n};\n\n// off-screen svg render testing element, shared by the whole page\n// uses the id 'js-plotly-tester' and stores it in drawing.tester\ndrawing.makeTester = function() {\n var tester = Lib.ensureSingleById(d3.select('body'), 'svg', 'js-plotly-tester', function(s) {\n s.attr(xmlnsNamespaces.svgAttrs)\n .style({\n position: 'absolute',\n left: '-10000px',\n top: '-10000px',\n width: '9000px',\n height: '9000px',\n 'z-index': '1'\n });\n });\n\n // browsers differ on how they describe the bounding rect of\n // the svg if its contents spill over... so make a 1x1px\n // reference point we can measure off of.\n var testref = Lib.ensureSingle(tester, 'path', 'js-reference-point', function(s) {\n s.attr('d', 'M0,0H1V1H0Z')\n .style({\n 'stroke-width': 0,\n fill: 'black'\n });\n });\n\n drawing.tester = tester;\n drawing.testref = testref;\n};\n\n/*\n * use our offscreen tester to get a clientRect for an element,\n * in a reference frame where it isn't translated (or transformed) and\n * its anchor point is at (0,0)\n * always returns a copy of the bbox, so the caller can modify it safely\n *\n * @param {SVGElement} node: the element to measure. If possible this should be\n * a or MathJax element that's already passed through\n * `convertToTspans` because in that case we can cache the results, but it's\n * possible to pass in any svg element.\n *\n * @param {boolean} inTester: is this element already in `drawing.tester`?\n * If you are measuring a dummy element, rather than one you really intend\n * to use on the plot, making it in `drawing.tester` in the first place\n * allows us to test faster because it cuts out cloning and appending it.\n *\n * @param {string} hash: for internal use only, if we already know the cache key\n * for this element beforehand.\n *\n * @return {object}: a plain object containing the width, height, left, right,\n * top, and bottom of `node`\n */\ndrawing.savedBBoxes = {};\nvar savedBBoxesCount = 0;\nvar maxSavedBBoxes = 10000;\n\ndrawing.bBox = function(node, inTester, hash) {\n /*\n * Cache elements we've already measured so we don't have to\n * remeasure the same thing many times\n * We have a few bBox callers though who pass a node larger than\n * a or a MathJax , such as an axis group containing many labels.\n * These will not generate a hash (unless we figure out an appropriate\n * hash key for them) and thus we will not hash them.\n */\n if(!hash) hash = nodeHash(node);\n var out;\n if(hash) {\n out = drawing.savedBBoxes[hash];\n if(out) return Lib.extendFlat({}, out);\n } else if(node.childNodes.length === 1) {\n /*\n * If we have only one child element, which is itself hashable, make\n * a new hash from this element plus its x,y,transform\n * These bounding boxes *include* x,y,transform - mostly for use by\n * callers trying to avoid overlaps (ie titles)\n */\n var innerNode = node.childNodes[0];\n\n hash = nodeHash(innerNode);\n if(hash) {\n var x = +innerNode.getAttribute('x') || 0;\n var y = +innerNode.getAttribute('y') || 0;\n var transform = innerNode.getAttribute('transform');\n\n if(!transform) {\n // in this case, just varying x and y, don't bother caching\n // the final bBox because the alteration is quick.\n var innerBB = drawing.bBox(innerNode, false, hash);\n if(x) {\n innerBB.left += x;\n innerBB.right += x;\n }\n if(y) {\n innerBB.top += y;\n innerBB.bottom += y;\n }\n return innerBB;\n }\n /*\n * else we have a transform - rather than make a complicated\n * (and error-prone and probably slow) transform parser/calculator,\n * just continue on calculating the boundingClientRect of the group\n * and use the new composite hash to cache it.\n * That said, `innerNode.transform.baseVal` is an array of\n * `SVGTransform` objects, that *do* seem to have a nice matrix\n * multiplication interface that we could use to avoid making\n * another getBoundingClientRect call...\n */\n hash += '~' + x + '~' + y + '~' + transform;\n\n out = drawing.savedBBoxes[hash];\n if(out) return Lib.extendFlat({}, out);\n }\n }\n var testNode, tester;\n if(inTester) {\n testNode = node;\n } else {\n tester = drawing.tester.node();\n\n // copy the node to test into the tester\n testNode = node.cloneNode(true);\n tester.appendChild(testNode);\n }\n\n // standardize its position (and newline tspans if any)\n d3.select(testNode)\n .attr('transform', null)\n .call(svgTextUtils.positionText, 0, 0);\n\n var testRect = testNode.getBoundingClientRect();\n var refRect = drawing.testref\n .node()\n .getBoundingClientRect();\n\n if(!inTester) tester.removeChild(testNode);\n\n var bb = {\n height: testRect.height,\n width: testRect.width,\n left: testRect.left - refRect.left,\n top: testRect.top - refRect.top,\n right: testRect.right - refRect.left,\n bottom: testRect.bottom - refRect.top\n };\n\n // make sure we don't have too many saved boxes,\n // or a long session could overload on memory\n // by saving boxes for long-gone elements\n if(savedBBoxesCount >= maxSavedBBoxes) {\n drawing.savedBBoxes = {};\n savedBBoxesCount = 0;\n }\n\n // cache this bbox\n if(hash) drawing.savedBBoxes[hash] = bb;\n savedBBoxesCount++;\n\n return Lib.extendFlat({}, bb);\n};\n\n// capture everything about a node (at least in our usage) that\n// impacts its bounding box, given that bBox clears x, y, and transform\nfunction nodeHash(node) {\n var inputText = node.getAttribute('data-unformatted');\n if(inputText === null) return;\n return inputText +\n node.getAttribute('data-math') +\n node.getAttribute('text-anchor') +\n node.getAttribute('style');\n}\n\n/**\n * Set clipPath URL in a way that work for all situations.\n *\n * In details, graphs on pages with HTML tags need to prepend\n * the clip path ids with the page's base url EXCEPT during toImage exports.\n *\n * @param {d3 selection} s : node to add clip-path attribute\n * @param {string} localId : local clip-path (w/o base url) id\n * @param {DOM element || object} gd\n * - context._baseUrl {string}\n * - context._exportedPlot {boolean}\n */\ndrawing.setClipUrl = function(s, localId, gd) {\n s.attr('clip-path', getFullUrl(localId, gd));\n};\n\nfunction getFullUrl(localId, gd) {\n if(!localId) return null;\n\n var context = gd._context;\n var baseUrl = context._exportedPlot ? '' : (context._baseUrl || '');\n return 'url(\\'' + baseUrl + '#' + localId + '\\')';\n}\n\ndrawing.getTranslate = function(element) {\n // Note the separator [^\\d] between x and y in this regex\n // We generally use ',' but IE will convert it to ' '\n var re = /.*\\btranslate\\((-?\\d*\\.?\\d*)[^-\\d]*(-?\\d*\\.?\\d*)[^\\d].*/;\n var getter = element.attr ? 'attr' : 'getAttribute';\n var transform = element[getter]('transform') || '';\n\n var translate = transform.replace(re, function(match, p1, p2) {\n return [p1, p2].join(' ');\n })\n .split(' ');\n\n return {\n x: +translate[0] || 0,\n y: +translate[1] || 0\n };\n};\n\ndrawing.setTranslate = function(element, x, y) {\n var re = /(\\btranslate\\(.*?\\);?)/;\n var getter = element.attr ? 'attr' : 'getAttribute';\n var setter = element.attr ? 'attr' : 'setAttribute';\n var transform = element[getter]('transform') || '';\n\n x = x || 0;\n y = y || 0;\n\n transform = transform.replace(re, '').trim();\n transform += ' translate(' + x + ', ' + y + ')';\n transform = transform.trim();\n\n element[setter]('transform', transform);\n\n return transform;\n};\n\ndrawing.getScale = function(element) {\n var re = /.*\\bscale\\((\\d*\\.?\\d*)[^\\d]*(\\d*\\.?\\d*)[^\\d].*/;\n var getter = element.attr ? 'attr' : 'getAttribute';\n var transform = element[getter]('transform') || '';\n\n var translate = transform.replace(re, function(match, p1, p2) {\n return [p1, p2].join(' ');\n })\n .split(' ');\n\n return {\n x: +translate[0] || 1,\n y: +translate[1] || 1\n };\n};\n\ndrawing.setScale = function(element, x, y) {\n var re = /(\\bscale\\(.*?\\);?)/;\n var getter = element.attr ? 'attr' : 'getAttribute';\n var setter = element.attr ? 'attr' : 'setAttribute';\n var transform = element[getter]('transform') || '';\n\n x = x || 1;\n y = y || 1;\n\n transform = transform.replace(re, '').trim();\n transform += ' scale(' + x + ', ' + y + ')';\n transform = transform.trim();\n\n element[setter]('transform', transform);\n\n return transform;\n};\n\nvar SCALE_RE = /\\s*sc.*/;\n\ndrawing.setPointGroupScale = function(selection, xScale, yScale) {\n xScale = xScale || 1;\n yScale = yScale || 1;\n\n if(!selection) return;\n\n // The same scale transform for every point:\n var scale = (xScale === 1 && yScale === 1) ?\n '' :\n ' scale(' + xScale + ',' + yScale + ')';\n\n selection.each(function() {\n var t = (this.getAttribute('transform') || '').replace(SCALE_RE, '');\n t += scale;\n t = t.trim();\n this.setAttribute('transform', t);\n });\n};\n\nvar TEXT_POINT_LAST_TRANSLATION_RE = /translate\\([^)]*\\)\\s*$/;\n\ndrawing.setTextPointsScale = function(selection, xScale, yScale) {\n if(!selection) return;\n\n selection.each(function() {\n var transforms;\n var el = d3.select(this);\n var text = el.select('text');\n\n if(!text.node()) return;\n\n var x = parseFloat(text.attr('x') || 0);\n var y = parseFloat(text.attr('y') || 0);\n\n var existingTransform = (el.attr('transform') || '').match(TEXT_POINT_LAST_TRANSLATION_RE);\n\n if(xScale === 1 && yScale === 1) {\n transforms = [];\n } else {\n transforms = [\n 'translate(' + x + ',' + y + ')',\n 'scale(' + xScale + ',' + yScale + ')',\n 'translate(' + (-x) + ',' + (-y) + ')',\n ];\n }\n\n if(existingTransform) {\n transforms.push(existingTransform);\n }\n\n el.attr('transform', transforms.join(' '));\n });\n};\n\n\n/***/ }),\n\n/***/ \"8418\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPrimitive = __webpack_require__(\"c04e\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n\n\n/***/ }),\n\n/***/ \"849d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\n// The contour extraction is great, except it totally fails for constraints because we\n// need weird range loops and flipped contours instead of the usual format. This function\n// does some weird manipulation of the extracted pathinfo data such that it magically\n// draws contours correctly *as* constraints.\n//\n// ** I do not know which \"weird range loops\" the comment above is referring to.\nmodule.exports = function(pathinfo, operation) {\n var i, pi0, pi1;\n\n var op0 = function(arr) { return arr.reverse(); };\n var op1 = function(arr) { return arr; };\n\n switch(operation) {\n case '=':\n case '<':\n return pathinfo;\n case '>':\n if(pathinfo.length !== 1) {\n Lib.warn('Contour data invalid for the specified inequality operation.');\n }\n\n // In this case there should be exactly one contour levels in pathinfo.\n // We flip all of the data. This will draw the contour as closed.\n pi0 = pathinfo[0];\n\n for(i = 0; i < pi0.edgepaths.length; i++) {\n pi0.edgepaths[i] = op0(pi0.edgepaths[i]);\n }\n for(i = 0; i < pi0.paths.length; i++) {\n pi0.paths[i] = op0(pi0.paths[i]);\n }\n for(i = 0; i < pi0.starts.length; i++) {\n pi0.starts[i] = op0(pi0.starts[i]);\n }\n\n return pathinfo;\n case '][':\n var tmp = op0;\n op0 = op1;\n op1 = tmp;\n // It's a nice rule, except this definitely *is* what's intended here.\n /* eslint-disable: no-fallthrough */\n case '[]':\n /* eslint-enable: no-fallthrough */\n if(pathinfo.length !== 2) {\n Lib.warn('Contour data invalid for the specified inequality range operation.');\n }\n\n // In this case there should be exactly two contour levels in pathinfo.\n // - We concatenate the info into one pathinfo.\n // - We must also flip all of the data in the `[]` case.\n // This will draw the contours as closed.\n pi0 = copyPathinfo(pathinfo[0]);\n pi1 = copyPathinfo(pathinfo[1]);\n\n for(i = 0; i < pi0.edgepaths.length; i++) {\n pi0.edgepaths[i] = op0(pi0.edgepaths[i]);\n }\n for(i = 0; i < pi0.paths.length; i++) {\n pi0.paths[i] = op0(pi0.paths[i]);\n }\n for(i = 0; i < pi0.starts.length; i++) {\n pi0.starts[i] = op0(pi0.starts[i]);\n }\n\n while(pi1.edgepaths.length) {\n pi0.edgepaths.push(op1(pi1.edgepaths.shift()));\n }\n while(pi1.paths.length) {\n pi0.paths.push(op1(pi1.paths.shift()));\n }\n while(pi1.starts.length) {\n pi0.starts.push(op1(pi1.starts.shift()));\n }\n\n return [pi0];\n }\n};\n\nfunction copyPathinfo(pi) {\n return Lib.extendFlat({}, pi, {\n edgepaths: Lib.extendDeep([], pi.edgepaths),\n paths: Lib.extendDeep([], pi.paths),\n starts: Lib.extendDeep([], pi.starts)\n });\n}\n\n\n/***/ }),\n\n/***/ \"84a1\":\n/***/ (function(module, exports) {\n\nmodule.exports = function () {\n for (var i = 0; i < arguments.length; i++) {\n if (arguments[i] !== undefined) return arguments[i];\n }\n};\n\n\n/***/ }),\n\n/***/ \"84af\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction dupe_array(count, value, i) {\n var c = count[i]|0\n if(c <= 0) {\n return []\n }\n var result = new Array(c), j\n if(i === count.length-1) {\n for(j=0; j 0) {\n return dupe_number(count|0, value)\n }\n break\n case \"object\":\n if(typeof (count.length) === \"number\") {\n return dupe_array(count, value, 0)\n }\n break\n }\n return []\n}\n\nmodule.exports = dupe\n\n/***/ }),\n\n/***/ \"84d3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isValue = __webpack_require__(\"936a\")\n , isObject = __webpack_require__(\"5edd\")\n , stringCoerce = __webpack_require__(\"eae0\")\n , toShortString = __webpack_require__(\"7d88\");\n\nvar resolveMessage = function (message, value) {\n\treturn message.replace(\"%v\", toShortString(value));\n};\n\nmodule.exports = function (value, defaultMessage, inputOptions) {\n\tif (!isObject(inputOptions)) throw new TypeError(resolveMessage(defaultMessage, value));\n\tif (!isValue(value)) {\n\t\tif (\"default\" in inputOptions) return inputOptions[\"default\"];\n\t\tif (inputOptions.isOptional) return null;\n\t}\n\tvar errorMessage = stringCoerce(inputOptions.errorMessage);\n\tif (!isValue(errorMessage)) errorMessage = defaultMessage;\n\tthrow new TypeError(resolveMessage(errorMessage, value));\n};\n\n\n/***/ }),\n\n/***/ \"84df\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Registry = __webpack_require__(\"371e\");\n\nvar SHOWISOLATETIP = true;\n\nmodule.exports = function handleClick(g, gd, numClicks) {\n var fullLayout = gd._fullLayout;\n\n if(gd._dragged || gd._editing) return;\n\n var itemClick = fullLayout.legend.itemclick;\n var itemDoubleClick = fullLayout.legend.itemdoubleclick;\n\n if(numClicks === 1 && itemClick === 'toggle' && itemDoubleClick === 'toggleothers' &&\n SHOWISOLATETIP && gd.data && gd._context.showTips\n ) {\n Lib.notifier(Lib._(gd, 'Double-click on legend to isolate one trace'), 'long');\n SHOWISOLATETIP = false;\n } else {\n SHOWISOLATETIP = false;\n }\n\n var mode;\n if(numClicks === 1) mode = itemClick;\n else if(numClicks === 2) mode = itemDoubleClick;\n if(!mode) return;\n\n var hiddenSlices = fullLayout.hiddenlabels ?\n fullLayout.hiddenlabels.slice() :\n [];\n\n var legendItem = g.data()[0][0];\n var fullData = gd._fullData;\n var fullTrace = legendItem.trace;\n var legendgroup = fullTrace.legendgroup;\n\n var i, j, kcont, key, keys, val;\n var attrUpdate = {};\n var attrIndices = [];\n var carrs = [];\n var carrIdx = [];\n\n function insertUpdate(traceIndex, key, value) {\n var attrIndex = attrIndices.indexOf(traceIndex);\n var valueArray = attrUpdate[key];\n if(!valueArray) {\n valueArray = attrUpdate[key] = [];\n }\n\n if(attrIndices.indexOf(traceIndex) === -1) {\n attrIndices.push(traceIndex);\n attrIndex = attrIndices.length - 1;\n }\n\n valueArray[attrIndex] = value;\n\n return attrIndex;\n }\n\n function setVisibility(fullTrace, visibility) {\n var fullInput = fullTrace._fullInput;\n if(Registry.hasTransform(fullInput, 'groupby')) {\n var kcont = carrs[fullInput.index];\n if(!kcont) {\n var groupbyIndices = Registry.getTransformIndices(fullInput, 'groupby');\n var lastGroupbyIndex = groupbyIndices[groupbyIndices.length - 1];\n kcont = Lib.keyedContainer(fullInput, 'transforms[' + lastGroupbyIndex + '].styles', 'target', 'value.visible');\n carrs[fullInput.index] = kcont;\n }\n\n var curState = kcont.get(fullTrace._group);\n\n // If not specified, assume visible. This happens if there are other style\n // properties set for a group but not the visibility. There are many similar\n // ways to do this (e.g. why not just `curState = fullTrace.visible`??? The\n // answer is: because it breaks other things like groupby trace names in\n // subtle ways.)\n if(curState === undefined) {\n curState = true;\n }\n\n if(curState !== false) {\n // true -> legendonly. All others toggle to true:\n kcont.set(fullTrace._group, visibility);\n }\n carrIdx[fullInput.index] = insertUpdate(fullInput.index, 'visible', fullInput.visible === false ? false : true);\n } else {\n // false -> false (not possible since will not be visible in legend)\n // true -> legendonly\n // legendonly -> true\n var nextVisibility = fullInput.visible === false ? false : visibility;\n\n insertUpdate(fullInput.index, 'visible', nextVisibility);\n }\n }\n\n if(Registry.traceIs(fullTrace, 'pie-like')) {\n var thisLabel = legendItem.label;\n var thisLabelIndex = hiddenSlices.indexOf(thisLabel);\n\n if(mode === 'toggle') {\n if(thisLabelIndex === -1) hiddenSlices.push(thisLabel);\n else hiddenSlices.splice(thisLabelIndex, 1);\n } else if(mode === 'toggleothers') {\n hiddenSlices = [];\n gd.calcdata[0].forEach(function(d) {\n if(thisLabel !== d.label) {\n hiddenSlices.push(d.label);\n }\n });\n if(gd._fullLayout.hiddenlabels && gd._fullLayout.hiddenlabels.length === hiddenSlices.length && thisLabelIndex === -1) {\n hiddenSlices = [];\n }\n }\n\n Registry.call('_guiRelayout', gd, 'hiddenlabels', hiddenSlices);\n } else {\n var hasLegendgroup = legendgroup && legendgroup.length;\n var traceIndicesInGroup = [];\n var tracei;\n if(hasLegendgroup) {\n for(i = 0; i < fullData.length; i++) {\n tracei = fullData[i];\n if(!tracei.visible) continue;\n if(tracei.legendgroup === legendgroup) {\n traceIndicesInGroup.push(i);\n }\n }\n }\n\n if(mode === 'toggle') {\n var nextVisibility;\n\n switch(fullTrace.visible) {\n case true:\n nextVisibility = 'legendonly';\n break;\n case false:\n nextVisibility = false;\n break;\n case 'legendonly':\n nextVisibility = true;\n break;\n }\n\n if(hasLegendgroup) {\n for(i = 0; i < fullData.length; i++) {\n if(fullData[i].visible !== false && fullData[i].legendgroup === legendgroup) {\n setVisibility(fullData[i], nextVisibility);\n }\n }\n } else {\n setVisibility(fullTrace, nextVisibility);\n }\n } else if(mode === 'toggleothers') {\n // Compute the clicked index. expandedIndex does what we want for expanded traces\n // but also culls hidden traces. That means we have some work to do.\n var isClicked, isInGroup, notInLegend, otherState;\n var isIsolated = true;\n for(i = 0; i < fullData.length; i++) {\n isClicked = fullData[i] === fullTrace;\n notInLegend = fullData[i].showlegend !== true;\n if(isClicked || notInLegend) continue;\n\n isInGroup = (hasLegendgroup && fullData[i].legendgroup === legendgroup);\n\n if(!isInGroup && fullData[i].visible === true && !Registry.traceIs(fullData[i], 'notLegendIsolatable')) {\n isIsolated = false;\n break;\n }\n }\n\n for(i = 0; i < fullData.length; i++) {\n // False is sticky; we don't change it.\n if(fullData[i].visible === false) continue;\n\n if(Registry.traceIs(fullData[i], 'notLegendIsolatable')) {\n continue;\n }\n\n switch(fullTrace.visible) {\n case 'legendonly':\n setVisibility(fullData[i], true);\n break;\n case true:\n otherState = isIsolated ? true : 'legendonly';\n isClicked = fullData[i] === fullTrace;\n // N.B. consider traces that have a set legendgroup as toggleable\n notInLegend = (fullData[i].showlegend !== true && !fullData[i].legendgroup);\n isInGroup = isClicked || (hasLegendgroup && fullData[i].legendgroup === legendgroup);\n setVisibility(fullData[i], (isInGroup || notInLegend) ? true : otherState);\n break;\n }\n }\n }\n\n for(i = 0; i < carrs.length; i++) {\n kcont = carrs[i];\n if(!kcont) continue;\n var update = kcont.constructUpdate();\n\n var updateKeys = Object.keys(update);\n for(j = 0; j < updateKeys.length; j++) {\n key = updateKeys[j];\n val = attrUpdate[key] = attrUpdate[key] || [];\n val[carrIdx[i]] = update[key];\n }\n }\n\n // The length of the value arrays should be equal and any unspecified\n // values should be explicitly undefined for them to get properly culled\n // as updates and not accidentally reset to the default value. This fills\n // out sparse arrays with the required number of undefined values:\n keys = Object.keys(attrUpdate);\n for(i = 0; i < keys.length; i++) {\n key = keys[i];\n for(j = 0; j < attrIndices.length; j++) {\n // Use hasOwnPropety to protect against falsey values:\n if(!attrUpdate[key].hasOwnProperty(j)) {\n attrUpdate[key][j] = undefined;\n }\n }\n }\n\n Registry.call('_guiRestyle', gd, attrUpdate, attrIndices);\n }\n};\n\n\n/***/ }),\n\n/***/ \"850f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nmodule.exports = function eventData(out, pt) {\n out.lon = pt.lon;\n out.lat = pt.lat;\n out.z = pt.z;\n return out;\n};\n\n\n/***/ }),\n\n/***/ \"855b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Events = __webpack_require__(\"8741\");\nvar throttle = __webpack_require__(\"7df2\");\nvar getGraphDiv = __webpack_require__(\"1b88\").getGraphDiv;\n\nvar hoverConstants = __webpack_require__(\"7fb7\");\n\nvar unhover = module.exports = {};\n\nunhover.wrapped = function(gd, evt, subplot) {\n gd = getGraphDiv(gd);\n\n // Important, clear any queued hovers\n if(gd._fullLayout) {\n throttle.clear(gd._fullLayout._uid + hoverConstants.HOVERID);\n }\n\n unhover.raw(gd, evt, subplot);\n};\n\n\n// remove hover effects on mouse out, and emit unhover event\nunhover.raw = function raw(gd, evt) {\n var fullLayout = gd._fullLayout;\n var oldhoverdata = gd._hoverdata;\n\n if(!evt) evt = {};\n if(evt.target &&\n Events.triggerHandler(gd, 'plotly_beforehover', evt) === false) {\n return;\n }\n\n fullLayout._hoverlayer.selectAll('g').remove();\n fullLayout._hoverlayer.selectAll('line').remove();\n fullLayout._hoverlayer.selectAll('circle').remove();\n gd._hoverdata = undefined;\n\n if(evt.target && oldhoverdata) {\n gd.emit('plotly_unhover', {\n event: evt,\n points: oldhoverdata\n });\n }\n};\n\n\n/***/ }),\n\n/***/ \"8568\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Axes = __webpack_require__(\"0642\");\n\nvar calcCommon = __webpack_require__(\"bb14\").calcCommon;\n\nmodule.exports = function(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = Axes.getFromId(gd, trace.xaxis);\n var ya = Axes.getFromId(gd, trace.yaxis);\n\n var x = xa.makeCalcdata(trace, 'x');\n\n var cd = calcCommon(gd, trace, x, ya, ptFunc);\n\n if(cd.length) {\n Lib.extendFlat(cd[0].t, {\n num: fullLayout._numBoxes,\n dPos: Lib.distinctVals(x).minDiff / 2,\n posLetter: 'x',\n valLetter: 'y',\n });\n\n fullLayout._numBoxes++;\n return cd;\n } else {\n return [{t: {empty: true}}];\n }\n};\n\nfunction ptFunc(o, h, l, c) {\n return {\n min: l,\n q1: Math.min(o, c),\n med: c,\n q3: Math.max(o, c),\n max: h,\n };\n}\n\n\n/***/ }),\n\n/***/ \"8586\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = tokenize\r\n\r\nvar literals100 = __webpack_require__(\"1936\")\r\n , operators = __webpack_require__(\"6a25\")\r\n , builtins100 = __webpack_require__(\"5ecd\")\r\n , literals300es = __webpack_require__(\"f5f2\")\r\n , builtins300es = __webpack_require__(\"0648\")\r\n\r\nvar NORMAL = 999 // <-- never emitted\r\n , TOKEN = 9999 // <-- never emitted\r\n , BLOCK_COMMENT = 0\r\n , LINE_COMMENT = 1\r\n , PREPROCESSOR = 2\r\n , OPERATOR = 3\r\n , INTEGER = 4\r\n , FLOAT = 5\r\n , IDENT = 6\r\n , BUILTIN = 7\r\n , KEYWORD = 8\r\n , WHITESPACE = 9\r\n , EOF = 10\r\n , HEX = 11\r\n\r\nvar map = [\r\n 'block-comment'\r\n , 'line-comment'\r\n , 'preprocessor'\r\n , 'operator'\r\n , 'integer'\r\n , 'float'\r\n , 'ident'\r\n , 'builtin'\r\n , 'keyword'\r\n , 'whitespace'\r\n , 'eof'\r\n , 'integer'\r\n]\r\n\r\nfunction tokenize(opt) {\r\n var i = 0\r\n , total = 0\r\n , mode = NORMAL\r\n , c\r\n , last\r\n , content = []\r\n , tokens = []\r\n , token_idx = 0\r\n , token_offs = 0\r\n , line = 1\r\n , col = 0\r\n , start = 0\r\n , isnum = false\r\n , isoperator = false\r\n , input = ''\r\n , len\r\n\r\n opt = opt || {}\r\n var allBuiltins = builtins100\r\n var allLiterals = literals100\r\n if (opt.version === '300 es') {\r\n allBuiltins = builtins300es\r\n allLiterals = literals300es\r\n }\r\n\r\n // cache by name\r\n var builtinsDict = {}, literalsDict = {}\r\n for (var i = 0; i < allBuiltins.length; i++) {\r\n builtinsDict[allBuiltins[i]] = true\r\n }\r\n for (var i = 0; i < allLiterals.length; i++) {\r\n literalsDict[allLiterals[i]] = true\r\n }\r\n\r\n return function(data) {\r\n tokens = []\r\n if (data !== null) return write(data)\r\n return end()\r\n }\r\n\r\n function token(data) {\r\n if (data.length) {\r\n tokens.push({\r\n type: map[mode]\r\n , data: data\r\n , position: start\r\n , line: line\r\n , column: col\r\n })\r\n }\r\n }\r\n\r\n function write(chunk) {\r\n i = 0\r\n\r\n if (chunk.toString) chunk = chunk.toString()\r\n\r\n input += chunk.replace(/\\r\\n/g, '\\n')\r\n len = input.length\r\n\r\n\r\n var last\r\n\r\n while(c = input[i], i < len) {\r\n last = i\r\n\r\n switch(mode) {\r\n case BLOCK_COMMENT: i = block_comment(); break\r\n case LINE_COMMENT: i = line_comment(); break\r\n case PREPROCESSOR: i = preprocessor(); break\r\n case OPERATOR: i = operator(); break\r\n case INTEGER: i = integer(); break\r\n case HEX: i = hex(); break\r\n case FLOAT: i = decimal(); break\r\n case TOKEN: i = readtoken(); break\r\n case WHITESPACE: i = whitespace(); break\r\n case NORMAL: i = normal(); break\r\n }\r\n\r\n if(last !== i) {\r\n switch(input[last]) {\r\n case '\\n': col = 0; ++line; break\r\n default: ++col; break\r\n }\r\n }\r\n }\r\n\r\n total += i\r\n input = input.slice(i)\r\n return tokens\r\n }\r\n\r\n function end(chunk) {\r\n if(content.length) {\r\n token(content.join(''))\r\n }\r\n\r\n mode = EOF\r\n token('(eof)')\r\n return tokens\r\n }\r\n\r\n function normal() {\r\n content = content.length ? [] : content\r\n\r\n if(last === '/' && c === '*') {\r\n start = total + i - 1\r\n mode = BLOCK_COMMENT\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(last === '/' && c === '/') {\r\n start = total + i - 1\r\n mode = LINE_COMMENT\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(c === '#') {\r\n mode = PREPROCESSOR\r\n start = total + i\r\n return i\r\n }\r\n\r\n if(/\\s/.test(c)) {\r\n mode = WHITESPACE\r\n start = total + i\r\n return i\r\n }\r\n\r\n isnum = /\\d/.test(c)\r\n isoperator = /[^\\w_]/.test(c)\r\n\r\n start = total + i\r\n mode = isnum ? INTEGER : isoperator ? OPERATOR : TOKEN\r\n return i\r\n }\r\n\r\n function whitespace() {\r\n if(/[^\\s]/g.test(c)) {\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function preprocessor() {\r\n if((c === '\\r' || c === '\\n') && last !== '\\\\') {\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function line_comment() {\r\n return preprocessor()\r\n }\r\n\r\n function block_comment() {\r\n if(c === '/' && last === '*') {\r\n content.push(c)\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i + 1\r\n }\r\n\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function operator() {\r\n if(last === '.' && /\\d/.test(c)) {\r\n mode = FLOAT\r\n return i\r\n }\r\n\r\n if(last === '/' && c === '*') {\r\n mode = BLOCK_COMMENT\r\n return i\r\n }\r\n\r\n if(last === '/' && c === '/') {\r\n mode = LINE_COMMENT\r\n return i\r\n }\r\n\r\n if(c === '.' && content.length) {\r\n while(determine_operator(content));\r\n\r\n mode = FLOAT\r\n return i\r\n }\r\n\r\n if(c === ';' || c === ')' || c === '(') {\r\n if(content.length) while(determine_operator(content));\r\n token(c)\r\n mode = NORMAL\r\n return i + 1\r\n }\r\n\r\n var is_composite_operator = content.length === 2 && c !== '='\r\n if(/[\\w_\\d\\s]/.test(c) || is_composite_operator) {\r\n while(determine_operator(content));\r\n mode = NORMAL\r\n return i\r\n }\r\n\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function determine_operator(buf) {\r\n var j = 0\r\n , idx\r\n , res\r\n\r\n do {\r\n idx = operators.indexOf(buf.slice(0, buf.length + j).join(''))\r\n res = operators[idx]\r\n\r\n if(idx === -1) {\r\n if(j-- + buf.length > 0) continue\r\n res = buf.slice(0, 1).join('')\r\n }\r\n\r\n token(res)\r\n\r\n start += res.length\r\n content = content.slice(res.length)\r\n return content.length\r\n } while(1)\r\n }\r\n\r\n function hex() {\r\n if(/[^a-fA-F0-9]/.test(c)) {\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function integer() {\r\n if(c === '.') {\r\n content.push(c)\r\n mode = FLOAT\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(/[eE]/.test(c)) {\r\n content.push(c)\r\n mode = FLOAT\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(c === 'x' && content.length === 1 && content[0] === '0') {\r\n mode = HEX\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(/[^\\d]/.test(c)) {\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function decimal() {\r\n if(c === 'f') {\r\n content.push(c)\r\n last = c\r\n i += 1\r\n }\r\n\r\n if(/[eE]/.test(c)) {\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if ((c === '-' || c === '+') && /[eE]/.test(last)) {\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(/[^\\d]/.test(c)) {\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function readtoken() {\r\n if(/[^\\d\\w_]/.test(c)) {\r\n var contentstr = content.join('')\r\n if(literalsDict[contentstr]) {\r\n mode = KEYWORD\r\n } else if(builtinsDict[contentstr]) {\r\n mode = BUILTIN\r\n } else {\r\n mode = IDENT\r\n }\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"860b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar mapboxgl = __webpack_require__(\"e192\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar getSubplotCalcData = __webpack_require__(\"ad62\").getSubplotCalcData;\nvar xmlnsNamespaces = __webpack_require__(\"73c9\");\nvar d3 = __webpack_require__(\"6e58\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar svgTextUtils = __webpack_require__(\"0379\");\n\nvar Mapbox = __webpack_require__(\"3fca\");\n\nvar MAPBOX = 'mapbox';\n\nvar constants = exports.constants = __webpack_require__(\"b5e4\");\n\nexports.name = MAPBOX;\n\nexports.attr = 'subplot';\n\nexports.idRoot = MAPBOX;\n\nexports.idRegex = exports.attrRegex = Lib.counterRegex(MAPBOX);\n\nexports.attributes = {\n subplot: {\n valType: 'subplotid',\n \n dflt: 'mapbox',\n editType: 'calc',\n \n }\n};\n\nexports.layoutAttributes = __webpack_require__(\"f7e9\");\n\nexports.supplyLayoutDefaults = __webpack_require__(\"f518\");\n\nexports.plot = function plot(gd) {\n var fullLayout = gd._fullLayout;\n var calcData = gd.calcdata;\n var mapboxIds = fullLayout._subplots[MAPBOX];\n\n if(mapboxgl.version !== constants.requiredVersion) {\n throw new Error(constants.wrongVersionErrorMsg);\n }\n\n var accessToken = findAccessToken(gd, mapboxIds);\n mapboxgl.accessToken = accessToken;\n\n for(var i = 0; i < mapboxIds.length; i++) {\n var id = mapboxIds[i];\n var subplotCalcData = getSubplotCalcData(calcData, MAPBOX, id);\n var opts = fullLayout[id];\n var mapbox = opts._subplot;\n\n if(!mapbox) {\n mapbox = new Mapbox(gd, id);\n fullLayout[id]._subplot = mapbox;\n }\n\n if(!mapbox.viewInitial) {\n mapbox.viewInitial = {\n center: Lib.extendFlat({}, opts.center),\n zoom: opts.zoom,\n bearing: opts.bearing,\n pitch: opts.pitch\n };\n }\n\n mapbox.plot(subplotCalcData, fullLayout, gd._promises);\n }\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldMapboxKeys = oldFullLayout._subplots[MAPBOX] || [];\n\n for(var i = 0; i < oldMapboxKeys.length; i++) {\n var oldMapboxKey = oldMapboxKeys[i];\n\n if(!newFullLayout[oldMapboxKey] && !!oldFullLayout[oldMapboxKey]._subplot) {\n oldFullLayout[oldMapboxKey]._subplot.destroy();\n }\n }\n};\n\nexports.toSVG = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[MAPBOX];\n var size = fullLayout._size;\n\n for(var i = 0; i < subplotIds.length; i++) {\n var opts = fullLayout[subplotIds[i]];\n var domain = opts.domain;\n var mapbox = opts._subplot;\n\n var imageData = mapbox.toImage('png');\n var image = fullLayout._glimages.append('svg:image');\n\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n 'xlink:href': imageData,\n x: size.l + size.w * domain.x[0],\n y: size.t + size.h * (1 - domain.y[1]),\n width: size.w * (domain.x[1] - domain.x[0]),\n height: size.h * (domain.y[1] - domain.y[0]),\n preserveAspectRatio: 'none'\n });\n\n var subplotDiv = d3.select(opts._subplot.div);\n\n // Append logo if visible\n var hidden = subplotDiv.select('.mapboxgl-ctrl-logo').node().offsetParent === null;\n if(!hidden) {\n var logo = fullLayout._glimages.append('g');\n logo.attr('transform', 'translate(' + (size.l + size.w * domain.x[0] + 10) + ', ' + (size.t + size.h * (1 - domain.y[0]) - 31) + ')');\n logo.append('path')\n .attr('d', constants.mapboxLogo.path0)\n .style({\n opacity: 0.9,\n fill: '#ffffff',\n 'enable-background': 'new'\n });\n\n logo.append('path')\n .attr('d', constants.mapboxLogo.path1)\n .style('opacity', 0.35)\n .style('enable-background', 'new');\n\n logo.append('path')\n .attr('d', constants.mapboxLogo.path2)\n .style('opacity', 0.35)\n .style('enable-background', 'new');\n\n logo.append('polygon')\n .attr('points', constants.mapboxLogo.polygon)\n .style({\n opacity: 0.9,\n fill: '#ffffff',\n 'enable-background': 'new'\n });\n }\n\n // Add attributions\n var attributions = subplotDiv\n .select('.mapboxgl-ctrl-attrib').text()\n .replace('Improve this map', '');\n\n var attributionGroup = fullLayout._glimages.append('g');\n\n var attributionText = attributionGroup.append('text');\n attributionText\n .text(attributions)\n .classed('static-attribution', true)\n .attr({\n 'font-size': 12,\n 'font-family': 'Arial',\n 'color': 'rgba(0, 0, 0, 0.75)',\n 'text-anchor': 'end',\n 'data-unformatted': attributions\n });\n\n var bBox = Drawing.bBox(attributionText.node());\n\n // Break into multiple lines twice larger than domain\n var maxWidth = size.w * (domain.x[1] - domain.x[0]);\n if((bBox.width > maxWidth / 2)) {\n var multilineAttributions = attributions.split('|').join('
');\n attributionText\n .text(multilineAttributions)\n .attr('data-unformatted', multilineAttributions)\n .call(svgTextUtils.convertToTspans, gd);\n\n bBox = Drawing.bBox(attributionText.node());\n }\n attributionText.attr('transform', 'translate(-3, ' + (-bBox.height + 8) + ')');\n\n // Draw white rectangle behind text\n attributionGroup\n .insert('rect', '.static-attribution')\n .attr({\n x: -bBox.width - 6,\n y: -bBox.height - 3,\n width: bBox.width + 6,\n height: bBox.height + 3,\n fill: 'rgba(255, 255, 255, 0.75)'\n });\n\n // Scale down if larger than domain\n var scaleRatio = 1;\n if((bBox.width + 6) > maxWidth) scaleRatio = maxWidth / (bBox.width + 6);\n\n var offset = [(size.l + size.w * domain.x[1]), (size.t + size.h * (1 - domain.y[0]))];\n attributionGroup.attr('transform', 'translate(' + offset[0] + ',' + offset[1] + ') scale(' + scaleRatio + ')');\n }\n};\n\n// N.B. mapbox-gl only allows one accessToken to be set per page:\n// https://github.com/mapbox/mapbox-gl-js/issues/6331\nfunction findAccessToken(gd, mapboxIds) {\n var fullLayout = gd._fullLayout;\n var context = gd._context;\n\n // special case for Mapbox Atlas users\n if(context.mapboxAccessToken === '') return '';\n\n var tokensUseful = [];\n var tokensListed = [];\n var hasOneSetMapboxStyle = false;\n var wontWork = false;\n\n // Take the first token we find in a mapbox subplot.\n // These default to the context value but may be overridden.\n for(var i = 0; i < mapboxIds.length; i++) {\n var opts = fullLayout[mapboxIds[i]];\n var token = opts.accesstoken;\n\n if(isMapboxStyle(opts.style)) {\n if(token) {\n Lib.pushUnique(tokensUseful, token);\n } else {\n if(isMapboxStyle(opts._input.style)) {\n Lib.error('Uses Mapbox map style, but did not set an access token.');\n hasOneSetMapboxStyle = true;\n }\n wontWork = true;\n }\n }\n\n if(token) {\n Lib.pushUnique(tokensListed, token);\n }\n }\n\n if(wontWork) {\n var msg = hasOneSetMapboxStyle ?\n constants.noAccessTokenErrorMsg :\n constants.missingStyleErrorMsg;\n Lib.error(msg);\n throw new Error(msg);\n }\n\n if(tokensUseful.length) {\n if(tokensUseful.length > 1) {\n Lib.warn(constants.multipleTokensErrorMsg);\n }\n return tokensUseful[0];\n } else {\n if(tokensListed.length) {\n Lib.log([\n 'Listed mapbox access token(s)', tokensListed.join(','),\n 'but did not use a Mapbox map style, ignoring token(s).'\n ].join(' '));\n }\n return '';\n }\n}\n\nfunction isMapboxStyle(s) {\n return typeof s === 'string' && (\n constants.styleValuesMapbox.indexOf(s) !== -1 ||\n s.indexOf('mapbox://') === 0\n );\n}\n\nexports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[MAPBOX];\n\n for(var i = 0; i < subplotIds.length; i++) {\n var subplotObj = fullLayout[subplotIds[i]]._subplot;\n subplotObj.updateFx(fullLayout);\n }\n};\n\n\n/***/ }),\n\n/***/ \"861d\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"865d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\n*\n* This source code is licensed under the MIT license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\n\n\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\nvar getModuleCalcData = __webpack_require__(\"ad62\").getModuleCalcData;\nvar plot = __webpack_require__(\"c9ce\");\nvar fxAttrs = __webpack_require__(\"927d\");\n\nvar setCursor = __webpack_require__(\"0f37\");\nvar dragElement = __webpack_require__(\"4efe\");\nvar prepSelect = __webpack_require__(\"1876\").prepSelect;\nvar Lib = __webpack_require__(\"fc26\");\nvar Registry = __webpack_require__(\"371e\");\n\nvar SANKEY = 'sankey';\n\nexports.name = SANKEY;\n\nexports.baseLayoutAttrOverrides = overrideAll({\n hoverlabel: fxAttrs.hoverlabel\n}, 'plot', 'nested');\n\nexports.plot = function(gd) {\n var calcData = getModuleCalcData(gd.calcdata, SANKEY)[0];\n plot(gd, calcData);\n exports.updateFx(gd);\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadPlot = (oldFullLayout._has && oldFullLayout._has(SANKEY));\n var hasPlot = (newFullLayout._has && newFullLayout._has(SANKEY));\n\n if(hadPlot && !hasPlot) {\n oldFullLayout._paperdiv.selectAll('.sankey').remove();\n oldFullLayout._paperdiv.selectAll('.bgsankey').remove();\n }\n};\n\nexports.updateFx = function(gd) {\n for(var i = 0; i < gd._fullData.length; i++) {\n subplotUpdateFx(gd, i);\n }\n};\n\nfunction subplotUpdateFx(gd, index) {\n var trace = gd._fullData[index];\n var fullLayout = gd._fullLayout;\n\n var dragMode = fullLayout.dragmode;\n var cursor = fullLayout.dragmode === 'pan' ? 'move' : 'crosshair';\n var bgRect = trace._bgRect;\n\n if(dragMode === 'pan' || dragMode === 'zoom') return;\n\n setCursor(bgRect, cursor);\n\n var xaxis = {\n _id: 'x',\n c2p: Lib.identity,\n _offset: trace._sankey.translateX,\n _length: trace._sankey.width\n };\n var yaxis = {\n _id: 'y',\n c2p: Lib.identity,\n _offset: trace._sankey.translateY,\n _length: trace._sankey.height\n };\n\n // Note: dragOptions is needed to be declared for all dragmodes because\n // it's the object that holds persistent selection state.\n var dragOptions = {\n gd: gd,\n element: bgRect.node(),\n plotinfo: {\n id: index,\n xaxis: xaxis,\n yaxis: yaxis,\n fillRangeItems: Lib.noop\n },\n subplot: index,\n // create mock x/y axes for hover routine\n xaxes: [xaxis],\n yaxes: [yaxis],\n doneFnCompleted: function(selection) {\n var traceNow = gd._fullData[index];\n var newGroups;\n var oldGroups = traceNow.node.groups.slice();\n var newGroup = [];\n\n function findNode(pt) {\n var nodes = traceNow._sankey.graph.nodes;\n for(var i = 0; i < nodes.length; i++) {\n if(nodes[i].pointNumber === pt) return nodes[i];\n }\n }\n\n for(var j = 0; j < selection.length; j++) {\n var node = findNode(selection[j].pointNumber);\n if(!node) continue;\n\n // If the node represents a group\n if(node.group) {\n // Add all its children to the current selection\n for(var k = 0; k < node.childrenNodes.length; k++) {\n newGroup.push(node.childrenNodes[k].pointNumber);\n }\n // Flag group for removal from existing list of groups\n oldGroups[node.pointNumber - traceNow.node._count] = false;\n } else {\n newGroup.push(node.pointNumber);\n }\n }\n\n newGroups = oldGroups\n .filter(Boolean)\n .concat([newGroup]);\n\n Registry.call('_guiRestyle', gd, {\n 'node.groups': [ newGroups ]\n }, index);\n }\n };\n\n dragOptions.prepFn = function(e, startX, startY) {\n prepSelect(e, startX, startY, dragOptions, dragMode);\n };\n\n dragElement.init(dragOptions);\n}\n\n\n/***/ }),\n\n/***/ \"8662\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = circumradius\n\nvar circumcenter = __webpack_require__(\"fe94\")\n\nfunction circumradius(points) {\n var center = circumcenter(points)\n var avgDist = 0.0\n for(var i=0; i