diff --git a/001c4541.c5f5acfe.js b/001c4541.c5f5acfe.js new file mode 100644 index 000000000..24e569653 --- /dev/null +++ b/001c4541.c5f5acfe.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{153:function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return f}));var r=n(0),a=n.n(r);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=a.a.createContext({}),u=function(e){var t=a.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},b=function(e){var t=u(e.components);return a.a.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},d=a.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),b=u(n),d=r,f=b["".concat(i,".").concat(d)]||b[d]||p[d]||o;return n?a.a.createElement(f,c(c({ref:t},s),{},{components:n})):a.a.createElement(f,c({ref:t},s))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var s=2;s=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=r.a.createContext({}),O=function(e){var t=r.a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=O(e.components);return r.a.createElement(l.Provider,{value:t},e.children)},j={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},d=r.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,c=e.originalType,b=e.parentName,l=o(e,["components","mdxType","originalType","parentName"]),p=O(n),d=a,m=p["".concat(b,".").concat(d)]||p[d]||j[d]||c;return n?r.a.createElement(m,i(i({ref:t},l),{},{components:n})):r.a.createElement(m,i({ref:t},l))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var c=n.length,b=new Array(c);b[0]=d;var i={};for(var o in t)hasOwnProperty.call(t,o)&&(i[o]=t[o]);i.originalType=e,i.mdxType="string"==typeof e?e:a,b[1]=i;for(var l=2;lr?1:-1})).map((function(e){var n=e[0],r=e[1];return t.a.createElement("div",{key:n},t.a.createElement("h3",null,n),r.map((function(e){return t.a.createElement(s.a,{className:"padding-right--md",href:a[e].permalink,key:e},a[e].name," (",a[e].count,")")})),t.a.createElement("hr",null))})).filter((function(e){return null!=e}));return t.a.createElement(c.a,{title:"Tags",description:"Blog Tags"},t.a.createElement("div",{className:"container margin-vert--lg"},t.a.createElement("div",{className:"row"},t.a.createElement("main",{className:"col col--8 col--offset-2"},t.a.createElement("h1",null,"Tags"),t.a.createElement("div",{className:"margin-vert--lg"},r)))))}}}]); \ No newline at end of file diff --git a/0222f66d.426684e2.js b/0222f66d.426684e2.js new file mode 100644 index 000000000..7eab24b25 --- /dev/null +++ b/0222f66d.426684e2.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{153:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return O}));var a=n(0),r=n.n(a);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var b=r.a.createContext({}),s=function(e){var t=r.a.useContext(b),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=s(e.components);return r.a.createElement(b.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},d=r.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,c=e.parentName,b=l(e,["components","mdxType","originalType","parentName"]),u=s(n),d=a,O=u["".concat(c,".").concat(d)]||u[d]||p[d]||i;return n?r.a.createElement(O,o(o({ref:t},b),{},{components:n})):r.a.createElement(O,o({ref:t},b))}));function O(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,c=new Array(i);c[0]=d;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:a,c[1]=o;for(var b=2;b console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(o.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/integrations/api/resources'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/integrations/api/resources'\n")))),Object(i.b)("h4",{id:"response"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "message": "SUCCESS",\n "summaries": [\n {\n "provider": "JohnDeere",\n "leafUserId": "UUID",\n "growers": 12,\n "farms": 12,\n "fields": 100,\n "syncReferenceTime": "2023-08-30T18:39:33.230612Z"\n },\n {\n "provider": "ClimateFieldView",\n "leafUserId": "UUID",\n "farms": 12,\n "fields": 100,\n "syncReferenceTime": "2023-08-30T18:39:33.230612Z"\n },\n ....\n ]\n}\n')),Object(i.b)("div",{className:"admonition admonition-tip alert alert--success"},Object(i.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(i.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})))),"FMIS Structure Warning")),Object(i.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"Each provider has its own implementation of the FMIS structure which you can check on the table below."))),Object(i.b)("h4",{id:"fmis-structure-table"},"FMIS Structure Table"),Object(i.b)("p",null,"This table contains the FMIS properties available for the Integrations Resources responses."),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Provider"),Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Grower"),Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Farm"),Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Field"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"JohnDeere")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"ClimateFieldView")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2716\ufe0f"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"CNHI")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"Trimble")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"Stara")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2716\ufe0f"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2716\ufe0f"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"Raven")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"AgVance")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"\u2705")))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/04b6fe29.ff7c24e5.js b/04b6fe29.ff7c24e5.js new file mode 100644 index 000000000..277efa129 --- /dev/null +++ b/04b6fe29.ff7c24e5.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{153:function(e,a,t){"use strict";t.d(a,"a",(function(){return d})),t.d(a,"b",(function(){return O}));var n=t(0),r=t.n(n);function i(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function b(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,n)}return t}function s(e){for(var a=1;a=0||(r[t]=e[t]);return r}(e,a);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var c=r.a.createContext({}),o=function(e){var a=r.a.useContext(c),t=a;return e&&(t="function"==typeof e?e(a):s(s({},a),e)),t},d=function(e){var a=o(e.components);return r.a.createElement(c.Provider,{value:a},e.children)},p={inlineCode:"code",wrapper:function(e){var a=e.children;return r.a.createElement(r.a.Fragment,{},a)}},m=r.a.forwardRef((function(e,a){var t=e.components,n=e.mdxType,i=e.originalType,b=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),d=o(t),m=n,O=d["".concat(b,".").concat(m)]||d[m]||p[m]||i;return t?r.a.createElement(O,s(s({ref:a},c),{},{components:t})):r.a.createElement(O,s({ref:a},c))}));function O(e,a){var t=arguments,n=a&&a.mdxType;if("string"==typeof e||n){var i=t.length,b=new Array(i);b[0]=m;var s={};for(var l in a)hasOwnProperty.call(a,l)&&(s[l]=a[l]);s.originalType=e,s.mdxType="string"==typeof e?e:n,b[1]=s;for(var c=2;c Assets Endpoints",description:"Beta - Assets Endpoints",sidebar_label:"Endpoints"}),c={unversionedId:"beta_assets_endpoints",id:"beta_assets_endpoints",isDocsHomePage:!1,title:"Beta > Assets Endpoints",description:"Beta - Assets Endpoints",source:"@site/docs/beta_assets_endpoints.md",permalink:"/docs/docs/beta_assets_endpoints",editUrl:"https://github.com/Leaf-Agriculture/docs/tree/master/docs/beta_assets_endpoints.md",sidebar_label:"Endpoints",sidebar:"docs",previous:{title:"Beta > Input Endpoints",permalink:"/docs/docs/beta_input_endpoints"},next:{title:"Beta > Prescriptions Endpoints",permalink:"/docs/docs/beta_prescriptions_endpoints"}},o=[{value:"About",id:"about",children:[]},{value:"Assets (BETA)",id:"assets-beta",children:[{value:"Get all machines",id:"get-all-machines",children:[]},{value:"Get a machine",id:"get-a-machine",children:[]},{value:"Get machine files",id:"get-machine-files",children:[]},{value:"Create a machine",id:"create-a-machine",children:[]},{value:"Update a machine",id:"update-a-machine",children:[]},{value:"Delete a machine",id:"delete-a-machine",children:[]},{value:"Get all implements",id:"get-all-implements",children:[]},{value:"Get an implement",id:"get-an-implement",children:[]},{value:"Get all operators",id:"get-all-operators",children:[]},{value:"Get an operator",id:"get-an-operator",children:[]}]}],d={rightToc:o};function p(e){var a=e.components,t=Object(r.a)(e,["components"]);return Object(i.b)("wrapper",Object(n.a)({},d,t,{components:a,mdxType:"MDXLayout"}),Object(i.b)("h2",{id:"about"},"About"),Object(i.b)("p",null,"All HTTP methods should be prepended by this service's endpoint:"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{}),"https://api.withleaf.io/services/beta/api\n")),Object(i.b)("p",null,"See below the REST resources and their endpoints available in this service."),Object(i.b)("h2",{id:"assets-beta"},"Assets (BETA)"),Object(i.b)("p",null,"This feature has the following endpoints available:"),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-machines"}),"Get all machines")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/machines"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#get-a-machine"}),"Get a machine")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/machines/{machineId}"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#get-machine-files"}),"Get machine files")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/machines/{machineId}/files"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#create-a-machine"}),"Create a machine")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--warning"},"POST")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/machines"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#update-a-machine"}),"Update a machine")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--warning"},"PATCH")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/machines/{machineId}"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#delete-a-machine"}),"Delete a machine")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/machines/{machineId}"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-implements"}),"Get all implements")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/implements"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#get-an-implement"}),"Get an implement")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/implements/{implementId}"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-operators"}),"Get all operators")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/operators"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#get-an-operator"}),"Get an operator")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/operators/{operatorId}"))))),Object(i.b)("h3",{id:"get-all-machines"},"Get all machines"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/machines")),Object(i.b)("p",null,"Get the list of machines that are related to a given LeafUserId. Some fields can be sent as query parameters to filter the machines, such as:"),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Values"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"name")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"machine name")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"provider")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"JohnDeere"),", ",Object(i.b)("inlineCode",{parentName:"td"},"Stara")," and ",Object(i.b)("inlineCode",{parentName:"td"},"CNHI"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"providerOrganizationId")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"provider side organization id")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"serialNumber")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"machine serial number")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"originType")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"specify the origin of the machine, must be either USER_CREATED, FILE_POOLED or PROVIDER_POOLED")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"createdTime")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"must match exactly the time of the record creation, ISO 8601 without timezone")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"beforeCreatedTime")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"filters for records created before the datetime, ISO 8601 without timezone")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"afterCreatedTime")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"filters for records created after the datetime, ISO 8601 without timezone")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"vin")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"filters machines by Vehicle Identification Number")))),Object(i.b)("p",null,"You can also pass some parameters used exclusively for paging through results.\nThey are:"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"page"),", an integer specifying the page being fetched (default is 0)"),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"size"),", an integer specifying the size of the page (max is 100)"),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"sort"),", the sorting order of the results; can be multi-value, where the first value to be passed will have preference in ordering over the next ones; you can also specify the order as ",Object(i.b)("inlineCode",{parentName:"li"},"asc")," or ",Object(i.b)("inlineCode",{parentName:"li"},"desc")," with ",Object(i.b)("inlineCode",{parentName:"li"},"asc")," being the default. Example: id, desc",Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"Valid values for sorting are: id, leafUserId, name, provider, providerOrganizationId, providerMachineId, serialNumber, vin, model, make, category and modelYear")))),Object(i.b)("div",{className:"admonition admonition-info alert alert--info"},Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(i.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"the default value for page size is 20")),Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"If the parameters page and size are not set, the endpoint will return 20 results."))),Object(i.b)("h4",{id:"request-examples"},"Request examples"),Object(i.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines'\n")))),Object(i.b)("h4",{id:"response"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "e89b1861-bdbb-49b9-8e11-74840f7e1ea8",\n "leafUserId": "faa6691a-7bf7-49c2-8934-b5b4c823aef8",\n "name": "TestName",\n "provider": "Leaf",\n "providerMachineId": "08790ae9-d451-4158-9920-09d1ab1ba5e6",\n "providerOrganizationId": "123456",\n "originType": "PROVIDER_POOLED",\n "createdTime": "2022-02-22T20:06:25.411Z",\n "serialNumber": "123456",\n "vin": "1234567890ABC",\n "model": "ModelName",\n "make": "MakerOfMachine",\n "category": "Sprayer",\n "modelYear": 2000\n },\n {\n "id": "82725746-3150-490d-9f3f-a47151ac0669",\n "leafUserId": "325f5ac0-6c57-4b4a-bdea-490ccddb06c4",\n "name": "nameTest",\n "provider": "Leaf",\n "providerMachineId": "75f362b4-8f61-46f9-905b-a357fb239930",\n "providerOrganizationId": "654321",\n "originType": "FILE_POOLED",\n "createdTime": "2022-02-22T20:06:25.411Z",\n "serialNumber": "123456",\n "vin": "1234567890ABC",\n "model": "ModelName",\n "make": "MakerOfMachine",\n "category": "Harvester",\n "modelYear": 2020\n },\n ....\n]\n')),Object(i.b)("h3",{id:"get-a-machine"},"Get a machine"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/api/users/{leafUserId}/machines/{machineId}")),Object(i.b)("p",null,"Get the details of a given machine by its id."),Object(i.b)("h4",{id:"request-examples-1"},"Request examples"),Object(i.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\nconst endpoint ='https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nendpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}'\n")))),Object(i.b)("h4",{id:"response-1"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "UUID",\n "leafUserId": "UUID",\n "name": "str",\n "provider": null,\n "providerMachineId": null,\n "providerOrganizationId": null,\n "originType": "PROVIDER_POOLED",\n "createdTime": "2022-02-22T20:06:25.411Z",\n "serialNumber": "123456",\n "vin": "1234567890ABC",\n "model": "ModelName",\n "make": "MakerOfMachine",\n "category": "Sprayer",\n "modelYear": 2000\n}\n')),Object(i.b)("h3",{id:"get-machine-files"},"Get machine files"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/api/users/{leafUserId}/machines/{machineId}/files")),Object(i.b)("p",null,"Get the details of machine operations files given a machine id. Some fields can be sent as query parameters to filter the machine files, such as:"),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Values"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"leafFileId")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"UUID")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"originType")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"specify the origin of the machine, must be either USER_CREATED, FILE_POOLED or PROVIDER_POOLED")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"createdTime")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"an ISO 8601 without timezone specifying the operation exact created time")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"beforeCreatedTime")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"filters for records created before the datetime, ISO 8601 without timezone")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"afterCreatedTime")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"filters for records created after the datetime, ISO 8601 without timezone")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"startTime")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"must match exactly the time of the start of the operation, ISO 8601 without timezone")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"endTime")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"must match exactly the time of the end of the operation, ISO 8601 without timezone")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"beforeStartTime")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"an ISO 8601 without timezone, returns all operations that started before the specified time")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"afterStartTime")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"an ISO 8601 without timezone, returns all operations that started after the specified time")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"beforeEndTime")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"an ISO 8601 without timezone, returns all operations that ended before the specified time")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"afterEndTime")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"an ISO 8601 without timezone, returns all operations that ended after the specified time")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"distanceValue")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"a double value for the distance")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"greaterThanDistanceValue")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"a double value for the distance, returns all operations that have a distance value greater than the specified distance")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"lessThanDistanceValue")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"a double value for the distance, returns all operations that have a distance value lesser than the specified distance")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"distanceUnit")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),'must be "Mile", "mile", "Feet" or "ft"')))),Object(i.b)("p",null,"You can also pass some parameters used exclusively for paging through results.\nThey are:"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"page"),", an integer specifying the page being fetched (default is 0)"),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"size"),", an integer specifying the size of the page (max is 100)"),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"sort"),", the sorting order of the results; can be multi-value, where the first value to be passed will have preference in ordering over the next ones; you can also specify the order as ",Object(i.b)("inlineCode",{parentName:"li"},"asc")," or ",Object(i.b)("inlineCode",{parentName:"li"},"desc")," with ",Object(i.b)("inlineCode",{parentName:"li"},"asc")," being the default. Example: id, desc",Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"Valid values for sorting are: id, leafUserId, machineId, startTime, endTime, createdTime, leafFileId")))),Object(i.b)("h4",{id:"request-examples-2"},"Request examples"),Object(i.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\nconst endpoint ='https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}/files'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nendpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}/files'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}/files'\n")))),Object(i.b)("h4",{id:"response-2"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "e7916d05-97ae-404a-a467-e2512c202a2f",\n "leafFileId": "e0e18a6f-4f88-4801-96e2-f39143f260e1",\n "machineId": "98b244fc-7b2d-4acf-a51a-58d20ae27355",\n "startTime": "2022-02-22T20:06:25.411Z",\n "endTime": "2022-02-22T20:07:25.411Z",\n "distance": {\n "value": 4152.255,\n "unit": "ft"\n },\n "fuelConsumption": {\n "value": 28.89,\n "unit": "US gal"\n }\n },\n {\n "id": "UUID",\n "leafFileId": "UUID",\n "machineId": "UUID",\n "startTime": "YYYY-mm-ddThh:mm:ssZ",\n "endTime": "YYYY-mm-ddThh:mm:ssZ",\n "distance": {\n "value": 5075.145,\n "unit": "ft"\n },\n "fuelConsumption": {\n "value": 25.55,\n "unit": "US gal"\n }\n }\n]\n')),Object(i.b)("h3",{id:"create-a-machine"},"Create a machine"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"POST")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/machines")),Object(i.b)("p",null,"Creates a machine for a specific LeafUser."),Object(i.b)("h4",{id:"request-body"},"Request body"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "name": "nameTest",\n "serialNumber": "123456",\n "vin": "1234567890ABC",\n "model": "ModelName",\n "make": "MakerOfMachine",\n "category": "Harvester",\n "modelYear": 2020\n}\n')),Object(i.b)("h4",{id:"request-examples-3"},"Request examples"),Object(i.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\nconst endpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n name: \"str\"\n}\n\naxios.post(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nendpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'name': 'str\"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -d '{ \"name\": \"str\"}' \\\n 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines'\n")))),Object(i.b)("h4",{id:"response-3"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "d5efe8a1-98be-40db-b2b2-2da332e8f69c",\n "name": "nameTest",\n "provider": "Leaf",\n "providerMachineId": "24de86ff-e6f0-4f8f-b429-0571c30a7ddf",\n "providerOrganizationId": "654321",\n "leafUserId": "9e081c9d-6185-49e1-8df7-7788d6aa1211",\n "originType": "USER_CREATED",\n "createdTime": "2023-06-12T17:38:09.148568906Z",\n "createdAt": "2023-06-12T17:38:09.148568906Z",\n "serialNumber": "123456",\n "vin": "1234567890ABC",\n "model": "ModelName",\n "make": "MakerOfMachine",\n "category": "Harvester",\n "modelYear": 2020\n}\n')),Object(i.b)("h3",{id:"update-a-machine"},"Update a machine"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--warning"},"PATCH")," ",Object(i.b)("inlineCode",{parentName:"p"},"/api/users/{leafUserId}/machines/{machineId}")),Object(i.b)("p",null,"Update a machine for a specific LeafUser. "),Object(i.b)("div",{className:"admonition admonition-info alert alert--info"},Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(i.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Only machines created by the user can be updated")),Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"Machine data obtained from providers cannot be updated"))),Object(i.b)("h4",{id:"request-body-1"},"Request body"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "name": "updatedName",\n "serialNumber": "000123",\n "vin": "1234567890EFR",\n "model": "ModelNameUpdated",\n "make": "MakerOfMachineUpdated",\n "category": "Planted",\n "modelYear": 2021\n}\n')),Object(i.b)("h4",{id:"request-examples-4"},"Request examples"),Object(i.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\nconst endpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n name: \"str\"\n}\n\naxios.patch(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nendpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'name': 'str\"\n}\n\nresponse = requests.patch(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X PATCH \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -d '{ \"name\": \"str\"}' \\\n 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}'\n")))),Object(i.b)("h4",{id:"response-4"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "d5efe8a1-98be-40db-b2b2-2da332e8f69c",\n "name": "updatedName",\n "provider": "Leaf",\n "providerMachineId": "24de86ff-e6f0-4f8f-b429-0571c30a7ddf",\n "providerOrganizationId": "654321",\n "leafUserId": "9e081c9d-6185-49e1-8df7-7788d6aa1211",\n "originType": "USER_CREATED",\n "createdTime": "2023-06-12T17:38:09.148568906Z",\n "createdAt": "2023-06-12T17:38:09.148568906Z",\n "serialNumber": "updatedName",\n "vin": "1234567890EFR",\n "model": "ModelNameUpdated",\n "make": "MakerOfMachineUpdated",\n "category": "Planted",\n "modelYear": 2021\n}\n')),Object(i.b)("h3",{id:"delete-a-machine"},"Delete a machine"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(i.b)("inlineCode",{parentName:"p"},"/api/users/{leafUserId}/machines/{machineId}")),Object(i.b)("p",null,"Delete a machine data"),Object(i.b)("div",{className:"admonition admonition-info alert alert--info"},Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(i.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Only machines created by the user can be Deleted")),Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"Machine data obtained from providers cannot be deleted"))),Object(i.b)("h4",{id:"request-examples-5"},"Request examples"),Object(i.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\nconst endpoint ='https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nendpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}'\n")))),Object(i.b)("h3",{id:"get-all-implements"},"Get all implements"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/api/users/{leafUserId}/implements")),Object(i.b)("p",null,"Get all the implements information based on your ",Object(i.b)("inlineCode",{parentName:"p"},"leafUserId"),". Currently, John Deere and Trimble implements are listed."),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Values"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"leafUserId")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"uuid of one of your users")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"provider")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"JohnDeere")," or ",Object(i.b)("inlineCode",{parentName:"td"},"Trimble"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"providerImplementId")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"provider side implement id")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"providerOrganizationId")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"provider side organization id")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"createdTime")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ISO 8601 date. Returns operations from the createdTime onward")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"updatedTime")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ISO 8601 date. Returns operations from the updatedTime onward")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"name")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"implement name")))),Object(i.b)("p",null,"You can also pass some parameters used exclusively for paging through results.\nThey are:"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"page"),", an integer specifying the page being fetched (default is 0)"),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"size"),", an integer specifying the size of the page (max is 100)"),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"sort"),", the sorting order of the results; can be multi-value, where the first value to be passed will have preference in ordering over the next ones; you can also specify the order as ",Object(i.b)("inlineCode",{parentName:"li"},"asc")," or ",Object(i.b)("inlineCode",{parentName:"li"},"desc")," with ",Object(i.b)("inlineCode",{parentName:"li"},"asc")," being the default. Example: id, desc",Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"Valid values for sorting are: id, leafUserId, name, provider, providerOrganizationId, providerImplementId, serialNumber, model, make, category.")))),Object(i.b)("div",{className:"admonition admonition-info alert alert--info"},Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(i.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"the default value for page size is 20")),Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"If the parameters page and size are not set, the endpoint will return 20 results."))),Object(i.b)("h4",{id:"request-examples-6"},"Request examples"),Object(i.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\nconst endpoint ='https://api.withleaf.io/services/beta/api/users/{leafUserId}/implements'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nendpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/implements'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/implements'\n")))),Object(i.b)("h4",{id:"response-5"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "38d313fc-e4ce-442b-9147-f469b30aedab",\n "name": "c3po_implement",\n "provider": "JohnDeere",\n "providerImplementId": "110237",\n "providerOrganizationId": "296264",\n "leafUserId": "mbba54fb-3710-4f7d-9aaf-703107930193",\n "originType": "PROVIDER_POOLED",\n "serialNumber": "00000",\n "model": "StMax150",\n "make": "JOHN DEERE",\n "category": "Cotton Harvester Implement"\n },\n ...\n]\n')),Object(i.b)("h3",{id:"get-an-implement"},"Get an implement"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/implements/{implementId}")),Object(i.b)("p",null,"Get the details of a given implement by its id."),Object(i.b)("h4",{id:"request-examples-7"},"Request examples"),Object(i.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\nconst endpoint ='https://api.withleaf.io/services/beta/api/users/{leafUserId}/implements/{implementId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nendpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/implements/{implementId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/implements/{implementId}'\n")))),Object(i.b)("h4",{id:"response-6"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),' {\n "id": "38d313fc-e4ce-442b-9147-f469b30aedab",\n "name": "c3po_implement",\n "provider": "JohnDeere",\n "providerImplementId": "110237",\n "providerOrganizationId": "296264",\n "leafUserId": "mbba54fb-3710-4f7d-9aaf-703107930193",\n "originType": "PROVIDER_POOLED",\n "serialNumber": "00000",\n "model": "StMax150",\n "make": "JOHN DEERE",\n "category": "Cotton Harvester Implement"\n }\n')),Object(i.b)("h3",{id:"get-all-operators"},"Get all operators"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/api/users/{leafUserId}/operators")),Object(i.b)("p",null,"Get all the operators information based on your ",Object(i.b)("inlineCode",{parentName:"p"},"leafUserId"),". Currently, John Deere operators are listed."),Object(i.b)("p",null,"You can also pass some parameters used exclusively for paging through results.\nThey are:"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"page"),", an integer specifying the page being fetched (default is 0)"),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"size"),", an integer specifying the size of the page (max is 100)")),Object(i.b)("div",{className:"admonition admonition-info alert alert--info"},Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(i.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"the default value for page size is 20")),Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"If the parameters page and size are not set, the endpoint will return 20 results."))),Object(i.b)("h4",{id:"request-examples-8"},"Request examples"),Object(i.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\nconst endpoint ='https://api.withleaf.io/services/beta/api/users/{leafUserId}/operators'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nendpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/operators'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/operators'\n")))),Object(i.b)("h4",{id:"response-7"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "aa8c917bc-7e9b-47bc-99b8-4a0df818ab07",\n "name": "Brian O.",\n "provider": "JohnDeere",\n "providerOperatorId": "bbd3a3e8-5ac3-4ab8-4619-d582da4568cc",\n "providerOrganizationId": "9999",\n "originType": "PROVIDER_POOLED",\n "license": null,\n "updatedTime": "2023-10-10T10:10:10.000Z",\n "status": "ACTIVE"\n },\n ...\n]\n')),Object(i.b)("h3",{id:"get-an-operator"},"Get an operator"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/operators/{operatorId}")),Object(i.b)("p",null,"Get the details of a given operator by its id."),Object(i.b)("h4",{id:"request-examples-9"},"Request examples"),Object(i.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\nconst endpoint ='https://api.withleaf.io/services/beta/api/users/{leafUserId}/operators/{operatorId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nendpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/operators/{operatorId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/operators/{operatorId}'\n")))),Object(i.b)("h4",{id:"response-8"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),' {\n "id": "aa8c917bc-7e9b-47bc-99b8-4a0df818ab07",\n "name": "Brian O.",\n "provider": "JohnDeere",\n "providerOperatorId": "bbd3a3e8-5ac3-4ab8-4619-d582da4568cc",\n "providerOrganizationId": "9999",\n "originType": "PROVIDER_POOLED",\n "license": null,\n "updatedTime": "2023-10-10T10:10:10.000Z",\n "status": "ACTIVE"\n }\n')))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/07d09fc8.7dde20ed.js b/07d09fc8.7dde20ed.js new file mode 100644 index 000000000..8d6b8d6fc --- /dev/null +++ b/07d09fc8.7dde20ed.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{153:function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return m}));var a=n(0),r=n.n(a);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function c(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=r.a.createContext({}),d=function(e){var t=r.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},b=function(e){var t=d(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},p=r.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,i=e.parentName,o=l(e,["components","mdxType","originalType","parentName"]),b=d(n),p=a,m=b["".concat(i,".").concat(p)]||b[p]||u[p]||s;return n?r.a.createElement(m,c(c({ref:t},o),{},{components:n})):r.a.createElement(m,c({ref:t},o))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,i=new Array(s);i[0]=p;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var o=2;o console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(c.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/climate-field-view-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/climate-field-view-credentials'\n")))),Object(s.b)("h4",{id:"response"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "tokenMetadata": {"scopes": ["str"]},\n "clientId": "str",\n "clientSecret": "str",\n "apiKey": "str",\n "refreshToken": "str",\n "accessToken": "str"\n}\n')),Object(s.b)("h3",{id:"create-a-climate-fieldview-credentials"},"Create a Climate Fieldview credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/climate-field-view-credentials")),Object(s.b)("p",null,"Create a Climate FieldView credentials for the Leaf User."),Object(s.b)("h4",{id:"request-body"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "clientId": "str",\n "clientSecret": "str",\n "apiKey": "str",\n "refreshToken": "str"\n}\n')),Object(s.b)("h4",{id:"request-examples-1"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(c.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/climate-field-view-credentials\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "clientId": "str",\n "clientSecret": "str",\n "apiKey": "str",\n "refreshToken": "str"\n}\n\naxios.post(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(s.b)(c.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/climate-field-view-credentials\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n\ndata = {\n "clientId": "str",\n "clientSecret": "str",\n "apiKey": "str",\n "refreshToken": "str"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(s.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{"clientId": "str","clientSecret": "str","apiKey": "str","refreshToken": "str"}\' \\\n \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/climate-field-view-credentials\'\n')))),Object(s.b)("h4",{id:"response-1"},"Response"),Object(s.b)("p",null,"A Climate FieldView credentials with status."),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "tokenMetadata": {"scopes": ["str"]},\n "clientId": "str",\n "clientSecret": "str",\n "apiKey": "str",\n "refreshToken": "str",\n "accessToken": "str"\n }\n')),Object(s.b)("h3",{id:"delete-climate-fieldview-credentials"},"Delete Climate Fieldview credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/climate-field-view-credentials")," "),Object(s.b)("p",null,"Delete Leaf User's Climate FieldView credentials."),Object(s.b)("h4",{id:"request-examples-2"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(c.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/climate-field-view-credentials'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(c.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/climate-field-view-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/climate-field-view-credentials'\n")))),Object(s.b)("h2",{id:"troubleshooting"},"Troubleshooting"),Object(s.b)("p",null,"With these endpoints, you can do some troubleshooting to see your credential's health."),Object(s.b)("h3",{id:"events"},"Events"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/climate-field-view-credentials/events")),Object(s.b)("p",null,"Get the logs of the provider credential based on the LeafUserId sent."),Object(s.b)("h4",{id:"request-examples-3"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(c.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/climate-field-view-credentials/events'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(c.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/climate-field-view-credentials/events'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}\n /climate-field-view-credentials/events'\n")))),Object(s.b)("h4",{id:"response-2"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "body": "string",\n "createdDate": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "headers": "string",\n "id": "string",\n "statusCode": "int"\n }\n]\n')),Object(s.b)("div",{className:"admonition admonition-warning alert alert--danger"},Object(s.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(s.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})))),"warning")),Object(s.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available."))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/0acb23d9.da436df9.js b/0acb23d9.da436df9.js new file mode 100644 index 000000000..b560b09e2 --- /dev/null +++ b/0acb23d9.da436df9.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{153:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return b}));var a=n(0),o=n.n(a);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=o.a.createContext({}),d=function(e){var t=o.a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=d(e.components);return o.a.createElement(c.Provider,{value:t},e.children)},h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},u=o.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=d(n),u=a,b=p["".concat(i,".").concat(u)]||p[u]||h[u]||r;return n?o.a.createElement(b,s(s({ref:t},c),{},{components:n})):o.a.createElement(b,s({ref:t},c))}));function b(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var c=2;c {\n await ngrok.authtoken("YOUR NGROK AUTHTOKEN");\n url = await ngrok.connect(THE LOCALHOST PORT YOU WANT TO DISPOSE TO THE OPEN INTERNET);\n return url;\n };\n')),Object(r.b)("p",null,"Now you will need to define some routes that your server will use, in this example, we define the follow routes:"),Object(r.b)("h3",{id:"routes"},"Routes"),Object(r.b)("h4",{id:"route-main"},"Route '/main'"),Object(r.b)("p",null,"This route will be responsible to render our main page, in the route: '/main'."),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'app.get("/main", (req, res) => {\n res.render(__dirname + "/views/ejs/map.ejs");\n});\n')),Object(r.b)("h4",{id:"route-webhook"},"Route '/webhook'"),Object(r.b)("p",null,"This route will be the route that we will use in the process of creating our webhook in the Leaf API,\nwith this route we will receive the alerts from the Leaf API, and save the files id to use\nit in the future. In this example, we just get 2 types of response from the Leaf API, the types:"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},"uploadedFileProcessingFailed"),Object(r.b)("li",{parentName:"ul"},"uploadedFileProcessingFinished")),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),' app.post("/webhook", (req, res) => {\n if (req.body.message === "confirmation of webhook upon registration") {\n console.log("Just checking if webhook url is alive");\n }\n if (req.body.type === "uploadedFileProcessingFailed") {\n console.log("Processing failed to the file: " + req.body.fileId);\n } else if (req.body.type === "uploadedFileProcessingFinished") {\n console.log("Processing ok to the file: " + req.body.fileId);\n let content = req.body.fileId + "\\n";\n fs.appendFile("./files/all.txt", content, (error) => {\n if (error) {\n console.error(error);\n }\n });\n }\n res.status(200).send("Ok");\n }); \n')),Object(r.b)("p",null,Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"/docs/alerts_overview"}),"Here")," you can see the Alerts Documentation."),Object(r.b)("h4",{id:"route-create_token"},"Route '/create_token'"),Object(r.b)("p",null,"In this route, we will create the user token to use in the next steps. In the data object,\nwe need the attributes ",Object(r.b)("inlineCode",{parentName:"p"},"username")," and ",Object(r.b)("inlineCode",{parentName:"p"},"password")," that comes from a form in the front-end,\nand the attribute ",Object(r.b)("inlineCode",{parentName:"p"},"rememberMe")," is optional.\nWe make a ",Object(r.b)("inlineCode",{parentName:"p"},"POST")," request with AXIOS to the Leaf API endpoint that is responsible to create our token,\nif everything is ok, it will return an status code ",Object(r.b)("inlineCode",{parentName:"p"},"200"),", and the token will be saved in the ",Object(r.b)("inlineCode",{parentName:"p"},"token"),"\nvariable, if anything is wrong, it will be catched by the ",Object(r.b)("inlineCode",{parentName:"p"},".catch()")," function."),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'app.post("/create_token", (req, res) => {\n let email = req.body.email.trim();\n let passwd = req.body.password.trim();\n let endpoint = "https://api.withleaf.io/api/authenticate";\n\n let data = {\n username: email,\n password: passwd,\n rememberMe: "true"\n };\n\n axios\n .post(endpoint, data)\n .then(function (response) {\n token = response.data["id_token"];\n res.json("Congrats! Login done!");\n })\n .catch((error) => {\n if (error.response.data.status === 400) {\n res.json("Oops! Login failed!");\n } else if (error.response.data.status === 401) {\n res.json("Oops! Invalid credentials!")\n }\n });\n});\n')),Object(r.b)("p",null,Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"//authentication"}),"Here")," you can see the Authentication Documentation."),Object(r.b)("h4",{id:"route-create_webhook"},"Route '/create_webhook'"),Object(r.b)("p",null,"In this route, we will receive data from a form in the front-end, put them in a object named data and\nthen make a post request with AXIOS to the Leaf API endpoint that is responsible for creating\nwebhooks. The attributes name and events comes from the form, the attribute secret you will need\nto generate, and the parameter url is created when the server start using the\nfunction ",Object(r.b)("inlineCode",{parentName:"p"},"startTunnel();")," and we add the '/webhook' that is the route we defined early."),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'app.post("/create_webhook", (req, res) => {\n let name = req.body.nome;\n let data = {\n events: [req.body.type.trim()],\n name: name,\n secret: "YOUR SECRET",\n url: url + "/webhook"\n };\n\n let headers = { Authorization: `Bearer ` + token };\n let endpoint = "https://api.withleaf.io/services/alerts/api/alerts/webhooks";\n\n axios\n .post(endpoint, data, { headers })\n .then((response) => {\n res.json(\'Webhook successfully created\')\n })\n .catch((error) => {\n if (error.response.data.status === 400) {\n res.json("This event is already created at some webhook url.");\n }\n });\n});\n')),Object(r.b)("p",null,Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"//alerts_endpoints#create-a-webhook"}),"Here")," you can see the Webhook Documentation."),Object(r.b)("h4",{id:"route-list_webhook"},"Route '/list_webhook'"),Object(r.b)("p",null,"In this route, we will use our token to list all our created webhooks. We need to do a ",Object(r.b)("inlineCode",{parentName:"p"},"GET")," request\nwith AXIOS to the Leaf API endpoint responsible to give us all our webhooks. And all will be\ndone just if our token is not undefined, in other case, it will give us the error\n",Object(r.b)("inlineCode",{parentName:"p"},"'Invalid token btw, generate one first!'"),"."),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'app.get("/list_webhook", (req, res) => {\n if (token != undefined) {\n let headers = { Authorization: `Bearer ` + token };\n let endpoint = "https://api.withleaf.io/services/alerts/api/alerts/webhooks";\n axios\n .get(endpoint, { headers })\n .then(function (response) {\n res.json(JSON.stringify(response.data));\n })\n .catch(console.error);\n } else {\n res.json("Invalid token btw, generate one first!");\n }\n});\n')),Object(r.b)("p",null,Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"//alerts_endpoints#get-all-webhooks"}),"Here")," you can see the Webhook Documentation."),Object(r.b)("h4",{id:"route-delete_webhookid"},"Route '/delete_webhook/:id'"),Object(r.b)("p",null,"In this route, we will be able to delete a webhook that we created. The id comes from the\nparameter id in the url, and we will use this parameter in the ",Object(r.b)("inlineCode",{parentName:"p"},"DELETE")," request that we make\nwith AXIOS, we also need to set our token in the header, and if everything is ok,\nwe will receive an status code ",Object(r.b)("inlineCode",{parentName:"p"},"204")),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'app.get("/delete_webhook/:id", (req, res) => {\n let webhook_id = req.params.id;\n const headers = { Authorization: `Bearer ` + token };\n const id = webhook_id;\n const endpoint = \'https://api.withleaf.io/services/alerts/api/alerts/webhooks/\' + id;\n\n axios\n .delete(endpoint, { headers })\n .then((response) => console.log(response.status))\n .catch(console.error);\n\n res.redirect("/");\n});\n')),Object(r.b)("p",null,Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"//alerts_endpoints#delete-a-webhook"}),"Here")," you can see the Webhook Documentation."),Object(r.b)("h4",{id:"route-save_file"},"Route '/save_file'"),Object(r.b)("p",null,"In this route, we will receive a file that was uploaded from the front-end, we will save it,\nupload to Leaf API and then delete it. If the user token is already generated, it will follow the process, if it is undefined, it will send\nback the message ",Object(r.b)("inlineCode",{parentName:"p"},"'Not a valid token, create one first'"),"."),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'app.post("/save_file", (req, res) => {\n if (token === undefined) {\n res.json(\'Not a valid token, create one first\');\n } else {\n //Here we save the provider and the file that is comming from the front end,\n // we also save the file name and create a path in the server to the file.\n\n let provider = req.body.provider;\n let files = req.files;\n let filename = files.upload.name;\n let file_path = path.resolve(`./${files.upload.name}`);\n\n // Here we save the file in the path that we created, if something went wrong,\n // it will send back the error.\n\n files.upload.mv(file_path, (err) => {\n if (err) return res.status(500).send(err);\n });\n\n // Here we make a get request with axios to retrieve our Leaf User Id, that is\n // necessary for the next step.\n\n let endpoint = "https://api.withleaf.io/services/usermanagement/api/users/";\n let headers = { Authorization: `Bearer ` + token };\n\n axios\n .get(endpoint, { headers })\n .then(function (response) {\n leaf_user_id = response.data[0]["id"];\n endpoint = "https://api.withleaf.io/services/operations/api/batch";\n\n let headers = {\n Authorization: `Bearer ` + token,\n "Content-Type": "multipart/form-data"\n };\n\n // Once the Leaf User Id is set, we add it to the param object, that\n // we will use to post the file to Leaf API endpoint.\n\n let params = {\n provider: provider,\n leafUserId: leaf_user_id\n };\n\n // Create a form so we can put the file received from the front-end\n // in the request to the Leaf API endpoint.\n\n let form = new FormData();\n form.append("file", fs.createReadStream(file_path));\n\n axios\n .post(endpoint, form, { headers, params })\n .then(function (response) {\n // Delete the file received\n fs.unlink(file_path, (erro) => {\n if (erro) console.log(erro);\n });\n // Send a json to the front-end that the file\n // was uploaded to Leaf API endpoint.\n res.json("File uploaded, wait for it to be processed!");\n })\n .catch(function () {\n // If an error ocurred, send the error to the front-end.\n res.json(\'Error ocurred during file upload, try again with a valid file\')\n }\n );\n })\n .catch(function () {\n res.json(\'Couldnt retrieve your token, generate one first.\')\n });\n }\n});\n')),Object(r.b)("p",null,Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"/docs/machine_file_conversion_endpoints"}),"Here")," you can see the Files Documentation."),Object(r.b)("h4",{id:"route-verify_files"},"Route '/verify_files'"),Object(r.b)("p",null,"In this route, we can verify if any files that we uploaded were processed succefully. If the token is already generated it will proceed to verifying the ",Object(r.b)("inlineCode",{parentName:"p"},"all.txt")," file, where the files id are saved when we receive an alert in the ",Object(r.b)("inlineCode",{parentName:"p"},"'/webhook'")," route. If are any files id in the file, the route will return the files id in the JSON options."),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'app.get("/verify_files", (req, res) => {\n if (token === undefined) {\n res.json(`Invalid token btw, generate one first!`);\n } else {\n fs.readFile("./files/all.txt", "utf-8", (err, data) => {\n if (err) {\n console.error(err);\n }\n if (data.length > 0) {\n let options = [];\n fs.readFile("./files/all.txt", "utf-8", (err, data) => {\n if (err) {\n console.error(err);\n }\n data.split(/\\r?\\n/).forEach((line) => {\n options.push(line);\n });\n res.json(JSON.stringify(options));\n });\n } else {\n res.json(\n \'No file processed yet!\'\n );\n }\n });\n }\n});\n')),Object(r.b)("h4",{id:"route-detail_fileid"},"Route '/detail_file/:id'"),Object(r.b)("p",null,"In this route, we will receive and id in the url, and we will use this id to make a ",Object(r.b)("inlineCode",{parentName:"p"},"GET")," request with\nAXIOS in the Leaf API endpoint that is responsible to give us the content of uploaded files.\nThe API endpoint will give us an JSON with the information, and we will send it back to the\nfront-end."),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'app.get("/detail_file/:id", (req, res) => {\n let file_id = req.params.id;\n let endpoint = "https://api.withleaf.io/services/operations/api/files/" + file_id;\n let headers = { Authorization: `Bearer ` + token };\n\n axios\n .get(endpoint, { headers })\n .then(function (response) {\n let data = response.data;\n res.json({ data });\n })\n .catch(console.error);\n});\n')),Object(r.b)("p",null,Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"/docs/machine_file_conversion_endpoints/"}),"Here")," you can see the Files Documentation."),Object(r.b)("h4",{id:"route-file_imagesid"},"Route '/file_images/:id'"),Object(r.b)("p",null,"In this route, we will be able to get the images from the Leaf API endpoint. The file id is received\nfrom the form, in the parameter ",Object(r.b)("inlineCode",{parentName:"p"},"id")," and we put it in the endpoint url. When we make a ",Object(r.b)("inlineCode",{parentName:"p"},"GET")," request\nwith AXIOS, the endpoint will return an JSON with the images url and informations related to\nthat file id that we send in the url."),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'app.get("/file_images/:id", (req, res) => {\n let file_id = req.params.id;\n let endpoint = "https://api.withleaf.io/services/operations/api/files/" +\n file_id +\n "/images";\n let headers = { Authorization: `Bearer ` + token };\n\n axios\n .get(endpoint, { headers })\n .then(function (response) {\n let data = response.data;\n res.json({ data });\n })\n .catch(console.error);\n});\n')),Object(r.b)("p",null,Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"/docs/machine_file_conversion_endpoints/#get-a-files-images"}),"Here")," is the File Images Documentation."),Object(r.b)("h4",{id:"route-image_coordinates"},"Route '/image_coordinates'"),Object(r.b)("p",null,"In this route, we will receive a list of images url, and we will work with it."),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'app.post("/image_coordinates", async (req, res) => {\n let received = req.body;\n received = JSON.parse(received.dados);\n\n //For each link received, we will use the Probe library to get the size of an image \n //from a url, and we will save it because we need to use it in the future to\n //get the real coordinates.\n\n for await (const link of received) {\n let result = await probe(link.url);\n link.width = result.width;\n link.height = result.height;\n }\n\n //Here we define a function getCoordintes() that will receive an array, filled with \n //the images and its sizes, and an callback function that will be called when all \n //the Promises are resolved.\n\n function getCoordinates(arr, callback) {\n var results = [];\n var expecting = arr.length;\n\n //For each link in the array, we will get an extra .xml file from the Leaf API\n //that contains the information that we need to calculate the real world coordinates.\n\n arr.forEach((e) => {\n // Get the .xml file using the https library.\n let req2 = https.get(e.url + ".aux.xml", function (res2) {\n let data = "";\n res2.on("data", function (stream) {\n data += stream;\n });\n res2.on("end", function () {\n // Parse the information from xml to json using the library xml2js\n // parser is from xml2js = new xml2js.Parser({ attrkey: "ATTR" });\n parser.parseString(data, function (error, result) {\n if (error === null) {\n // Get the necessary information from inside the JSON\n let resultado =\n result["PAMDataset"]["GeoTransform"][0].split(",");\n // This is the top left point of the image:\n let TLX = parseFloat(resultado[0].trim());\n let TLY = parseFloat(resultado[3].trim());\n //This is the bottom right point of the image:\n let BRX =\n parseFloat(resultado[0].trim()) +\n parseInt(e.width) * parseFloat(resultado[1].trim()) +\n parseInt(e.height) * resultado[2];\n let BRY =\n parseFloat(resultado[3].trim()) +\n parseInt(e.width) * parseFloat(resultado[4].trim()) +\n parseInt(e.height) * resultado[5];\n /*See image1.*/\n let x0 = (TLX * (180 / Math.PI)) / 6378137.0;\n let y0 =\n ((Math.PI * 0.5 - 2.0 * Math.atan(Math.exp(-TLY / 6378137.0))) *\n 180) /\n Math.PI;\n let x1 = (BRX * (180 / Math.PI)) / 6378137.0;\n let y1 =\n ((Math.PI * 0.5 - 2.0 * Math.atan(Math.exp(-BRY / 6378137.0))) *\n 180) /\n Math.PI;\n /*See image2.*/\n let obj = {\n 1: x0 + ", " + y0,\n 2: x1 + ", " + y0,\n 3: x1 + ", " + y1,\n 4: x0 + ", " + y1,\n 5: e.url,\n 6: e.type,\n };\n /*See image3.*/\n results.push(obj);\n //This part does \'expeting - 1\' every forEach, and when it hits 0\n //(all the array processed) it calls the callback function.\n if (--expecting === 0) {\n callback(results);\n }\n } else {\n console.log(error);\n }\n });\n });\n });\n });\n }\n //Here we call the function, sending the array that we created with the image links\n //and sizes, and we define the function that will be called when everything is finishid,\n //in this case,the function just respond the request with an JSON containing all the data\n //needed to plot the images in the front end.\n getCoordinates(received, function (results) {\n res.json(JSON.stringify(results));\n });\n});\n')),Object(r.b)("p",{align:"center"},Object(r.b)("img",{alt:"Image1",width:"256px",src:Object(i.a)("img/usecase_upload_twosides.png")}),Object(r.b)("img",{alt:"Image2",width:"256px",src:Object(i.a)("img/usecase_upload_x_y.png")}),Object(r.b)("img",{alt:"Image3",width:"256px",src:Object(i.a)("img/usecase_upload_4sides.png")}),Object(r.b)("span",null,"Image 1 - Image 2 - Image 3")),Object(r.b)("h3",{id:"start-the-server"},"Start the server"),Object(r.b)("p",null,"For the last part, we need to start our server, and make the front-end!"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"app.listen(3000, async () => {\n //Clear the all.txt file\n fs.writeFileSync('./files/all.txt', '');\n // Get the ngrok url to the open internet\n url = await startTunnel();\n console.log(url);\n console.log(\"Server started!\");\n});\n")),Object(r.b)("h2",{id:"frontend"},"Frontend"),Object(r.b)("p",null,"In the frontend, we will need to use just one page! We define the page in the path: ",Object(r.b)("inlineCode",{parentName:"p"},"/views/ejs/map.ejs"),".",Object(r.b)("br",{parentName:"p"}),"\n","In this part of the documentation, it will be show some functions that are used in the ",Object(r.b)("inlineCode",{parentName:"p"},"map.ejs")," file, all this functions will be called via ",Object(r.b)("inlineCode",{parentName:"p"},"onClick()")," method from form buttons. It's important to say that we will use the ",Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"https://docs.mapbox.com/mapbox-gl-js/api/"}),"Mapbox API")," to display the map and images on it."),Object(r.b)("h3",{id:"login"},"Login"),Object(r.b)("p",null,"This function is called by our button that is responsible for doing the login. It will get the data from the form, and do a ",Object(r.b)("inlineCode",{parentName:"p"},"POST")," request with AXIOS to our backend. That will return ",Object(r.b)("inlineCode",{parentName:"p"},"'Congrats! Login done!'")," if the credentials are right, and another message depending on what happened wrong."),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'function loginClick() {\n let email = $("#email").val();\n let password = $("#password").val();\n $.ajax({\n type: "POST",\n url: \'/create_token\',\n data: {\n password: password,\n email: email\n },\n success: function(response) {\n if (response === \'Congrats! Login done!\') {\n //Here you need to disable this element and\n //show the next one, in the case, the div responsible\n //for creating the webhook.\n } else {\n //Show some message saying that the login failed.\n }\n }\n });\n}\n')),Object(r.b)("h3",{id:"create-webhook"},"Create Webhook"),Object(r.b)("p",null,"With this function, we will get the parameters from the form about the webhook, and do a ",Object(r.b)("inlineCode",{parentName:"p"},"POST")," request with AXIOS to our backend resonsible for creating the webhook in the Leaf API."),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"function webhookCreateClick() {\n if ($('YOUR FORM INPUT ID').val() != false) {\n let name = $(\"YOUR FORM INPUT ID\").val();\n let type = $(\"YOUR SELECT INPUT SELECTED\").val();\n $('#webhook_response').text('');\n $.ajax({\n type: \"POST\",\n url: '/create_webhook',\n data: {\n name: name,\n type: type\n },\n success: function(response) {\n if (response === 'Webhook successfully created') {\n //Here you need to disable this element and\n //show the next one, in the case, the div responsible\n //for list the webhook.\n listWebhooks();\n } else {\n //Show some message saying that the webhook creation failed.\n }\n }\n });\n }\n}\n")),Object(r.b)("h3",{id:"list-webhooks"},"List webhooks"),Object(r.b)("p",null,"In this function, we will be able to list all the webhooks that our Leaf Account have. We will list them to the user just to see if the webhook that he needs is created or not."),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"function listWebhooks() {\n let start = '

'\n let end = '

'\n $.ajax({\n type: \"GET\",\n url: '/list_webhook',\n success: function(response) {\n // Here, we get the response from our backend and build a div with \n //

inside of it containing the type of the webhooks.\n // Then, we call the next element, the uploadFile();\n response = JSON.parse(response);\n if (response.length > 0) {\n response.forEach((e) => {\n e.events.forEach((p) => {\n $('YOUR DIV ID').append(start + p + end);\n })\n })\n }\n uploadFile();\n },\n error: function(response) {\n console.log(response);\n }\n });\n};\n")),Object(r.b)("h3",{id:"upload-a-file"},"Upload a file"),Object(r.b)("p",null,"In this function, we will handle the upload file process. We need to intercept the form submit action and then make a ",Object(r.b)("inlineCode",{parentName:"p"},"POST")," with AXIOS to our backend."),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"function uploadFile() {\n // Intercept the submit form action\n $(\"YOUR FORM ID\").submit(function() {\n // Create a new formData, passing the real formData file to it.\n var formData = new FormData(this);\n $.ajax({\n url: '/save_file',\n type: 'POST',\n processData: false,\n contentType: false,\n cache: false,\n data: formData,\n success: function(response) {\n if (response === 'File uploaded, wait for it to be processed!') {\n // Here you will make what you want to happen when the file \n // was received in the backend and everything was ok with it.\n } else {\n // Here you need to display some message to the user if the file \n // that he uploaded was not in the correct format or size.\n }\n },\n error: function(response) {\n console.log(response);\n },\n });\n });\n};\n")),Object(r.b)("h3",{id:"check-uploaded-files"},"Check uploaded files"),Object(r.b)("p",null,"With this function, we will be able to check if the Leaf API already processed any files that we uploaded to our backend. We will build a div with links inside of it, linking to another function: ",Object(r.b)("inlineCode",{parentName:"p"},"get_json()"),", that will retrieve all the data we need."),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"function checkFiles() {\n // Define the string we will build\n let start = ``;\n let end = `\"`\n $.ajax({\n type: \"GET\",\n url: '/verify_files',\n success: function(response) {\n if (response == 'No file processed yet!') {\n // Display a message to your user saying that no files\n // were processed yet\n } else if (response == 'Invalid token btw, generate one first!') {\n // Display a message to your user saying that he needs \n // to generate a token first\n } else {\n // See the response from the backend and build an div\n // containing the links to check files content.\n response = JSON.parse(response);\n response.forEach((e) => {\n $('YOUR DIV ID').append(`

` + e + ``);\n });\n }\n },\n error: function(response) {\n // Display any error that cant occur during the response from backend.\n console.log(response);\n }\n });\n};\n")),Object(r.b)("h3",{id:"get-json-data-from-files"},"Get JSON data from files"),Object(r.b)("p",null,"With this function, we will receive an id from parameter, and we will send it to our backend, so the backend will send us the follow informations:"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},"File details"),Object(r.b)("li",{parentName:"ul"},"File images"),Object(r.b)("li",{parentName:"ul"},"Images coordinates")),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"function get_json(id) {\n let file_id = id;\n var allImages = new Array();\n // With this GET request, we will send to the backend one file_id,\n // and it will return the images linked to it.\n $.ajax({\n url: \"/file_images/\" + file_id,\n type: 'GET',\n async: false,\n dataType: 'json',\n success: function(res) {\n // In this response, we will get all the images that\n // are linked to the file_id, and we will save\n // this images url in the allImages array.\n res.dados.forEach((e) => {\n allImages.push({\n 'url': e.url,\n 'type': e.property\n });\n });\n }\n });\n\n // With this POST request, we will send to our backend all images url,\n // the operation type of that images, and with the response we will\n // build map layers.\n $.ajax({\n url: \"/image_coordinates\",\n type: 'POST',\n async: false,\n dataType: 'json',\n data: {\n dados: JSON.stringify(allImages)\n },\n success: function(res) {\n points = JSON.parse(res);\n // Clear the actual options of layers\n if (optionsShow.length > 0) {\n optionsShow.forEach((e) => {\n map.removeLayer(`'` + e + `'`);\n map.removeSource(`'` + e + `'`);\n })\n }\n optionsShow = [];\n // Creating a list of avaible images so the user can click it and\n // display the image on the map.\n points.forEach((e) => {\n $('YOUR DIV TO LIST THE IMAGES TYPE').append(`

` + e[6] + ``)\n // Save the type of the image so the user can choose what to see\n optionsShow.push(e[6]);\n // Create the 4 points (x,y) real coordinates\n // of the image, getting the points\n // from the server response\n let a = parseFloat(e[1].split(',')[0]);\n let a1 = parseFloat(e[1].split(',')[1]);\n let b = parseFloat(e[2].split(',')[0]);\n let b1 = parseFloat(e[2].split(',')[1]);\n let c = parseFloat(e[3].split(',')[0]);\n let c1 = parseFloat(e[3].split(',')[1]);\n let d = parseFloat(e[4].split(',')[0]);\n let d1 = parseFloat(e[4].split(',')[1]);\n // Make the map fly to the right coordinate of the images\n map.flyTo({\n center: [a, a1],\n zoom: 17\n });\n // Add a source to the map, so we can add a layer to it\n // e[6] has the type of the image\n map.addSource(`'` + e[6] + `'`, {\n 'type': 'image',\n // e[5] has the url of the image\n 'url': e[5],\n 'coordinates': [\n [a, a1],\n [b, b1],\n [c, c1],\n [d, d1]\n ]\n });\n // Add a layer to the map, so we can show and hide it in the future.\n // e[6] has the type of the image\n map.addLayer({\n 'id': `'` + e[6] + `'`,\n 'type': 'raster',\n 'source': `'` + e[6] + `'`,\n 'paint': {\n 'raster-fade-duration': 0\n }\n });\n // set the layer visibility to none\n map.setLayoutProperty(`'` + e[6] + `'`, 'visibility', 'none');\n });\n },\n error: function(res) {\n console.log(res);\n }\n });\n\n // With this GET request, we will send an file id to the backend,\n // and it will return the data about that file. e.g summary information\n $.ajax({\n url: \"/file_details/\" + file_id,\n type: 'GET',\n async: false,\n dataType: 'json',\n success: function(res) {\n // Here you can define one function to show this data\n // in some div of your page.\n }\n })\n};\n")),Object(r.b)("h3",{id:"show-and-hide-map-layers"},"Show and hide map layers"),Object(r.b)("p",null,"With this function, we will receive an id from the parameter, and display that image if it's hidden, and hide it if it's show."),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"function showImage(id) {\n let visiviel = map.getLayoutProperty(`'` + id + `'`, 'visibility');\n if (visiviel === 'visible') {\n map.setLayoutProperty(`'` + id + `'`, 'visibility', 'none');\n } else {\n map.setLayoutProperty(`'` + id + `'`, 'visibility', 'visible');\n }\n}\n")),Object(r.b)("h3",{id:"extra"},"Extra"),Object(r.b)("p",null,"Don't forget to create an Map, a div for it and replace the ",Object(r.b)("inlineCode",{parentName:"p"},"YOUR MAPBOX TOKEN"),", otherwise, the map will not work!"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"mapboxgl.accessToken = 'YOUR MAPBOX TOKEN';\nconst map = new mapboxgl.Map({\n container: 'map',\n maxZoom: 20,\n minZoom: 1,\n zoom: 0,\n center: [0, 0],\n style: 'mapbox://styles/mapbox/satellite-v9'\n});\n\nmap.on('load', () => {});\n")),Object(r.b)("p",null,Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"https://docs.mapbox.com/"}),"See here")," more informations about Mapbox!"),Object(r.b)("div",{className:"admonition admonition-tip alert alert--success"},Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(r.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})))),"tip")),Object(r.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"Here you can run a live use case demo!"),Object(r.b)("p",{parentName:"div"},Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"https://codesandbox.io/s/webhook-leaf-api-o72lv8?fontsize=14&hidenavigation=1&theme=dark"}),Object(r.b)("img",Object(a.a)({parentName:"a"},{src:"https://codesandbox.io/img/play-codesandbox.svg",alt:"Edit webhook-leaf-api"})))))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/0f2ebb41.47bc0d25.js b/0f2ebb41.47bc0d25.js new file mode 100644 index 000000000..5d5d77dd6 --- /dev/null +++ b/0f2ebb41.47bc0d25.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{153:function(e,t,n){"use strict";n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return b}));var r=n(0),a=n.n(r);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=a.a.createContext({}),l=function(e){var t=a.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},f=function(e){var t=l(e.components);return a.a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},v=a.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),f=l(n),v=r,b=f["".concat(i,".").concat(v)]||f[v]||d[v]||o;return n?a.a.createElement(b,c(c({ref:t},s),{},{components:n})):a.a.createElement(b,c({ref:t},s))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=v;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var s=2;s0)&&(l.unobserve(e),l.disconnect(),n())}))}))).observe(e))},to:T},d&&{activeClassName:v}))}},163:function(t,e,n){"use strict";n.r(e);var r=n(13);n.d(e,"MemoryRouter",(function(){return r.d})),n.d(e,"Prompt",(function(){return r.f})),n.d(e,"Redirect",(function(){return r.g})),n.d(e,"Route",(function(){return r.h})),n.d(e,"Router",(function(){return r.i})),n.d(e,"StaticRouter",(function(){return r.j})),n.d(e,"Switch",(function(){return r.k})),n.d(e,"generatePath",(function(){return r.l})),n.d(e,"matchPath",(function(){return r.m})),n.d(e,"useHistory",(function(){return r.n})),n.d(e,"useLocation",(function(){return r.o})),n.d(e,"useParams",(function(){return r.p})),n.d(e,"useRouteMatch",(function(){return r.q})),n.d(e,"withRouter",(function(){return r.r})),n.d(e,"BrowserRouter",(function(){return r.a})),n.d(e,"HashRouter",(function(){return r.b})),n.d(e,"Link",(function(){return r.c})),n.d(e,"NavLink",(function(){return r.e}))},171:function(t,e,n){"use strict";var r=n(0),o=n.n(r),i=n(189);e.a=function(t){return o.a.createElement(i.a,Object.assign({},t))}},175:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.useDocVersionSuggestions=e.useActiveDocContext=e.useActiveVersion=e.useLatestVersion=e.useVersions=e.useActivePlugin=void 0;var r=n(163),o=n(196),i=n(197),a=function(t){return o.usePluginData("docusaurus-plugin-content-docs",t)};e.useActivePlugin=function(){var t=o.useAllPluginInstancesData("docusaurus-plugin-content-docs"),e=r.useLocation().pathname;return i.getActivePlugin(t,e)},e.useVersions=function(t){return a(t).versions},e.useLatestVersion=function(t){var e=a(t);return i.getLatestVersion(e)},e.useActiveVersion=function(t){var e=a(t),n=r.useLocation().pathname;return i.getActiveVersion(e,n)},e.useActiveDocContext=function(t){var e=a(t),n=r.useLocation().pathname;return i.getActiveDocContext(e,n)},e.useDocVersionSuggestions=function(t){var e=a(t),n=r.useLocation().pathname;return i.getDocVersionSuggestions(e,n)}},189:function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return vt}));var r,o,i,a,u=n(7),c=n.n(u),s=n(190),f=n.n(s),l=n(191),d=n.n(l),p=n(0),h=n.n(p),v=n(22),y=n.n(v),b="bodyAttributes",g="htmlAttributes",m="titleAttributes",w={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title"},T=(Object.keys(w).map((function(t){return w[t]})),"charset"),O="cssText",A="href",C="http-equiv",S="innerHTML",E="itemprop",j="name",P="property",L="rel",k="src",x="target",I={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},D="defaultTitle",R="defer",N="encodeSpecialCharacters",M="onChangeClientState",V="titleTemplate",_=Object.keys(I).reduce((function(t,e){return t[I[e]]=e,t}),{}),B=[w.NOSCRIPT,w.SCRIPT,w.STYLE],H="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},U=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},q=function(){function t(t,e){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n},W=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},z=function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return!1===e?String(t):String(t).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},K=function(t){var e=X(t,w.TITLE),n=X(t,V);if(n&&e)return n.replace(/%s/g,(function(){return Array.isArray(e)?e.join(""):e}));var r=X(t,D);return e||r||void 0},J=function(t){return X(t,M)||function(){}},$=function(t,e){return e.filter((function(e){return void 0!==e[t]})).map((function(e){return e[t]})).reduce((function(t,e){return Y({},t,e)}),{})},G=function(t,e){return e.filter((function(t){return void 0!==t[w.BASE]})).map((function(t){return t[w.BASE]})).reverse().reduce((function(e,n){if(!e.length)for(var r=Object.keys(n),o=0;o=0;n--){var r=t[n];if(r.hasOwnProperty(e))return r[e]}return null},Z=(r=Date.now(),function(t){var e=Date.now();e-r>16?(r=e,t(e)):setTimeout((function(){Z(t)}),0)}),tt=function(t){return clearTimeout(t)},et="undefined"!=typeof window?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||Z:t.requestAnimationFrame||Z,nt="undefined"!=typeof window?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||tt:t.cancelAnimationFrame||tt,rt=function(t){return console&&"function"==typeof console.warn&&console.warn(t)},ot=null,it=function(t,e){var n=t.baseTag,r=t.bodyAttributes,o=t.htmlAttributes,i=t.linkTags,a=t.metaTags,u=t.noscriptTags,c=t.onChangeClientState,s=t.scriptTags,f=t.styleTags,l=t.title,d=t.titleAttributes;ct(w.BODY,r),ct(w.HTML,o),ut(l,d);var p={baseTag:st(w.BASE,n),linkTags:st(w.LINK,i),metaTags:st(w.META,a),noscriptTags:st(w.NOSCRIPT,u),scriptTags:st(w.SCRIPT,s),styleTags:st(w.STYLE,f)},h={},v={};Object.keys(p).forEach((function(t){var e=p[t],n=e.newTags,r=e.oldTags;n.length&&(h[t]=n),r.length&&(v[t]=p[t].oldTags)})),e&&e(),c(t,h,v)},at=function(t){return Array.isArray(t)?t.join(""):t},ut=function(t,e){void 0!==t&&document.title!==t&&(document.title=at(t)),ct(w.TITLE,e)},ct=function(t,e){var n=document.getElementsByTagName(t)[0];if(n){for(var r=n.getAttribute("data-react-helmet"),o=r?r.split(","):[],i=[].concat(o),a=Object.keys(e),u=0;u=0;l--)n.removeAttribute(i[l]);o.length===i.length?n.removeAttribute("data-react-helmet"):n.getAttribute("data-react-helmet")!==a.join(",")&&n.setAttribute("data-react-helmet",a.join(","))}},st=function(t,e){var n=document.head||document.querySelector(w.HEAD),r=n.querySelectorAll(t+"[data-react-helmet]"),o=Array.prototype.slice.call(r),i=[],a=void 0;return e&&e.length&&e.forEach((function(e){var n=document.createElement(t);for(var r in e)if(e.hasOwnProperty(r))if(r===S)n.innerHTML=e.innerHTML;else if(r===O)n.styleSheet?n.styleSheet.cssText=e.cssText:n.appendChild(document.createTextNode(e.cssText));else{var u=void 0===e[r]?"":e[r];n.setAttribute(r,u)}n.setAttribute("data-react-helmet","true"),o.some((function(t,e){return a=e,n.isEqualNode(t)}))?o.splice(a,1):i.push(n)})),o.forEach((function(t){return t.parentNode.removeChild(t)})),i.forEach((function(t){return n.appendChild(t)})),{oldTags:o,newTags:i}},ft=function(t){return Object.keys(t).reduce((function(e,n){var r=void 0!==t[n]?n+'="'+t[n]+'"':""+n;return e?e+" "+r:r}),"")},lt=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(t).reduce((function(e,n){return e[I[n]||n]=t[n],e}),e)},dt=function(t,e,n){switch(t){case w.TITLE:return{toComponent:function(){return t=e.title,n=e.titleAttributes,(r={key:t})["data-react-helmet"]=!0,o=lt(n,r),[h.a.createElement(w.TITLE,o,t)];var t,n,r,o},toString:function(){return function(t,e,n,r){var o=ft(n),i=at(e);return o?"<"+t+' data-react-helmet="true" '+o+">"+z(i,r)+"":"<"+t+' data-react-helmet="true">'+z(i,r)+""}(t,e.title,e.titleAttributes,n)}};case b:case g:return{toComponent:function(){return lt(e)},toString:function(){return ft(e)}};default:return{toComponent:function(){return function(t,e){return e.map((function(e,n){var r,o=((r={key:n})["data-react-helmet"]=!0,r);return Object.keys(e).forEach((function(t){var n=I[t]||t;if(n===S||n===O){var r=e.innerHTML||e.cssText;o.dangerouslySetInnerHTML={__html:r}}else o[n]=e[t]})),h.a.createElement(t,o)}))}(t,e)},toString:function(){return function(t,e,n){return e.reduce((function(e,r){var o=Object.keys(r).filter((function(t){return!(t===S||t===O)})).reduce((function(t,e){var o=void 0===r[e]?e:e+'="'+z(r[e],n)+'"';return t?t+" "+o:o}),""),i=r.innerHTML||r.cssText||"",a=-1===B.indexOf(t);return e+"<"+t+' data-react-helmet="true" '+o+(a?"/>":">"+i+"")}),"")}(t,e,n)}}}},pt=function(t){var e=t.baseTag,n=t.bodyAttributes,r=t.encode,o=t.htmlAttributes,i=t.linkTags,a=t.metaTags,u=t.noscriptTags,c=t.scriptTags,s=t.styleTags,f=t.title,l=void 0===f?"":f,d=t.titleAttributes;return{base:dt(w.BASE,e,r),bodyAttributes:dt(b,n,r),htmlAttributes:dt(g,o,r),link:dt(w.LINK,i,r),meta:dt(w.META,a,r),noscript:dt(w.NOSCRIPT,u,r),script:dt(w.SCRIPT,c,r),style:dt(w.STYLE,s,r),title:dt(w.TITLE,{title:l,titleAttributes:d},r)}},ht=f()((function(t){return{baseTag:G([A,x],t),bodyAttributes:$(b,t),defer:X(t,R),encode:X(t,N),htmlAttributes:$(g,t),linkTags:Q(w.LINK,[L,A],t),metaTags:Q(w.META,[j,T,C,P,E],t),noscriptTags:Q(w.NOSCRIPT,[S],t),onChangeClientState:J(t),scriptTags:Q(w.SCRIPT,[k,S],t),styleTags:Q(w.STYLE,[O],t),title:K(t),titleAttributes:$(m,t)}}),(function(t){ot&&nt(ot),t.defer?ot=et((function(){it(t,(function(){ot=null}))})):(it(t),ot=null)}),pt)((function(){return null})),vt=(o=ht,a=i=function(t){function e(){return U(this,e),W(this,t.apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.shouldComponentUpdate=function(t){return!d()(this.props,t)},e.prototype.mapNestedChildrenToProps=function(t,e){if(!e)return null;switch(t.type){case w.SCRIPT:case w.NOSCRIPT:return{innerHTML:e};case w.STYLE:return{cssText:e}}throw new Error("<"+t.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},e.prototype.flattenArrayTypeChildren=function(t){var e,n=t.child,r=t.arrayTypeChildren,o=t.newChildProps,i=t.nestedChildren;return Y({},r,((e={})[n.type]=[].concat(r[n.type]||[],[Y({},o,this.mapNestedChildrenToProps(n,i))]),e))},e.prototype.mapObjectTypeChildren=function(t){var e,n,r=t.child,o=t.newProps,i=t.newChildProps,a=t.nestedChildren;switch(r.type){case w.TITLE:return Y({},o,((e={})[r.type]=a,e.titleAttributes=Y({},i),e));case w.BODY:return Y({},o,{bodyAttributes:Y({},i)});case w.HTML:return Y({},o,{htmlAttributes:Y({},i)})}return Y({},o,((n={})[r.type]=Y({},i),n))},e.prototype.mapArrayTypeChildrenToProps=function(t,e){var n=Y({},e);return Object.keys(t).forEach((function(e){var r;n=Y({},n,((r={})[e]=t[e],r))})),n},e.prototype.warnOnInvalidChildren=function(t,e){return!0},e.prototype.mapChildrenToProps=function(t,e){var n=this,r={};return h.a.Children.forEach(t,(function(t){if(t&&t.props){var o=t.props,i=o.children,a=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(t).reduce((function(e,n){return e[_[n]||n]=t[n],e}),e)}(F(o,["children"]));switch(n.warnOnInvalidChildren(t,i),t.type){case w.LINK:case w.META:case w.NOSCRIPT:case w.SCRIPT:case w.STYLE:r=n.flattenArrayTypeChildren({child:t,arrayTypeChildren:r,newChildProps:a,nestedChildren:i});break;default:e=n.mapObjectTypeChildren({child:t,newProps:e,newChildProps:a,nestedChildren:i})}}})),e=this.mapArrayTypeChildrenToProps(r,e)},e.prototype.render=function(){var t=this.props,e=t.children,n=F(t,["children"]),r=Y({},n);return e&&(r=this.mapChildrenToProps(e,r)),h.a.createElement(o,r)},q(e,null,[{key:"canUseDOM",set:function(t){o.canUseDOM=t}}]),e}(h.a.Component),i.propTypes={base:c.a.object,bodyAttributes:c.a.object,children:c.a.oneOfType([c.a.arrayOf(c.a.node),c.a.node]),defaultTitle:c.a.string,defer:c.a.bool,encodeSpecialCharacters:c.a.bool,htmlAttributes:c.a.object,link:c.a.arrayOf(c.a.object),meta:c.a.arrayOf(c.a.object),noscript:c.a.arrayOf(c.a.object),onChangeClientState:c.a.func,script:c.a.arrayOf(c.a.object),style:c.a.arrayOf(c.a.object),title:c.a.string,titleAttributes:c.a.object,titleTemplate:c.a.string},i.defaultProps={defer:!0,encodeSpecialCharacters:!0},i.peek=o.peek,i.rewind=function(){var t=o.rewind();return t||(t=pt({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),t},a);vt.renderStatic=vt.rewind}).call(this,n(29))},190:function(t,e,n){"use strict";var r,o=n(0),i=(r=o)&&"object"==typeof r&&"default"in r?r.default:r;function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var u=!("undefined"==typeof window||!window.document||!window.document.createElement);t.exports=function(t,e,n){if("function"!=typeof t)throw new Error("Expected reducePropsToState to be a function.");if("function"!=typeof e)throw new Error("Expected handleStateChangeOnClient to be a function.");if(void 0!==n&&"function"!=typeof n)throw new Error("Expected mapStateOnServer to either be undefined or a function.");return function(r){if("function"!=typeof r)throw new Error("Expected WrappedComponent to be a React component.");var c,s=[];function f(){c=t(s.map((function(t){return t.props}))),l.canUseDOM?e(c):n&&(c=n(c))}var l=function(t){var e,n;function o(){return t.apply(this,arguments)||this}n=t,(e=o).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n,o.peek=function(){return c},o.rewind=function(){if(o.canUseDOM)throw new Error("You may only call rewind() on the server. Call peek() to read the current state.");var t=c;return c=void 0,s=[],t};var a=o.prototype;return a.UNSAFE_componentWillMount=function(){s.push(this),f()},a.componentDidUpdate=function(){f()},a.componentWillUnmount=function(){var t=s.indexOf(this);s.splice(t,1),f()},a.render=function(){return i.createElement(r,this.props)},o}(o.PureComponent);return a(l,"displayName","SideEffect("+function(t){return t.displayName||t.name||"Component"}(r)+")"),a(l,"canUseDOM",u),l}}},191:function(t,e){var n="undefined"!=typeof Element,r="function"==typeof Map,o="function"==typeof Set,i="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;t.exports=function(t,e){try{return function t(e,a){if(e===a)return!0;if(e&&a&&"object"==typeof e&&"object"==typeof a){if(e.constructor!==a.constructor)return!1;var u,c,s,f;if(Array.isArray(e)){if((u=e.length)!=a.length)return!1;for(c=u;0!=c--;)if(!t(e[c],a[c]))return!1;return!0}if(r&&e instanceof Map&&a instanceof Map){if(e.size!==a.size)return!1;for(f=e.entries();!(c=f.next()).done;)if(!a.has(c.value[0]))return!1;for(f=e.entries();!(c=f.next()).done;)if(!t(c.value[1],a.get(c.value[0])))return!1;return!0}if(o&&e instanceof Set&&a instanceof Set){if(e.size!==a.size)return!1;for(f=e.entries();!(c=f.next()).done;)if(!a.has(c.value[0]))return!1;return!0}if(i&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(a)){if((u=e.length)!=a.length)return!1;for(c=u;0!=c--;)if(e[c]!==a[c])return!1;return!0}if(e.constructor===RegExp)return e.source===a.source&&e.flags===a.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===a.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===a.toString();if((u=(s=Object.keys(e)).length)!==Object.keys(a).length)return!1;for(c=u;0!=c--;)if(!Object.prototype.hasOwnProperty.call(a,s[c]))return!1;if(n&&e instanceof Element)return!1;for(c=u;0!=c--;)if(("_owner"!==s[c]&&"__v"!==s[c]&&"__o"!==s[c]||!e.$$typeof)&&!t(e[s[c]],a[s[c]]))return!1;return!0}return e!=e&&a!=a}(t,e)}catch(a){if((a.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw a}}},196:function(t,e,n){"use strict";n.r(e),n.d(e,"default",(function(){return o})),n.d(e,"useAllPluginInstancesData",(function(){return i})),n.d(e,"usePluginData",(function(){return a}));var r=n(154);function o(){var t=Object(r.a)().globalData;if(!t)throw new Error("Docusaurus global data not found");return t}function i(t){var e=o()[t];if(!e)throw new Error("Docusaurus plugin global data not found for pluginName="+t);return e}function a(t,e){void 0===e&&(e="default");var n=i(t)[e];if(!n)throw new Error("Docusaurus plugin global data not found for pluginName="+t+" and pluginId="+e);return n}},197:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getDocVersionSuggestions=e.getActiveDocContext=e.getActiveVersion=e.getLatestVersion=e.getActivePlugin=void 0;var r=n(163);e.getActivePlugin=function(t,e){var n=Object.entries(t).find((function(t){t[0];var n=t[1];return!!r.matchPath(e,{path:n.path,exact:!1,strict:!1})}));return n?{pluginId:n[0],pluginData:n[1]}:void 0},e.getLatestVersion=function(t){return t.versions.find((function(e){return e.name===t.latestVersionName}))},e.getActiveVersion=function(t,n){var o=e.getLatestVersion(t);return[].concat(t.versions.filter((function(t){return t!==o})),[o]).find((function(t){return!!r.matchPath(n,{path:t.path,exact:!1,strict:!1})}))},e.getActiveDocContext=function(t,n){var o,i,a=e.getActiveVersion(t,n),u=null==a?void 0:a.docs.find((function(t){return!!r.matchPath(n,{path:t.path,exact:!0,strict:!1})}));return{activeVersion:a,activeDoc:u,alternateDocVersions:u?(o=u.id,i={},t.versions.forEach((function(t){t.docs.forEach((function(e){e.id===o&&(i[t.name]=e)}))})),i):{}}},e.getDocVersionSuggestions=function(t,n){var r=e.getLatestVersion(t),o=e.getActiveDocContext(t,n),i=o.activeVersion!==r;return{latestDocSuggestion:i?null==o?void 0:o.alternateDocVersions[r.name]:void 0,latestVersionSuggestion:i?r:void 0}}}}]); \ No newline at end of file diff --git a/11a48954.2502dd93.js b/11a48954.2502dd93.js new file mode 100644 index 000000000..f5b9752c7 --- /dev/null +++ b/11a48954.2502dd93.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{153:function(e,t,n){"use strict";n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return p}));var r=n(0),o=n.n(r);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=o.a.createContext({}),l=function(e){var t=o.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},f=function(e){var t=l(e.components);return o.a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},v=o.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,i=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),f=l(n),v=r,p=f["".concat(i,".").concat(v)]||f[v]||d[v]||a;return n?o.a.createElement(p,c(c({ref:t},s),{},{components:n})):o.a.createElement(p,c({ref:t},s))}));function p(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=v;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var s=2;s=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=r.a.createContext({}),d=function(e){var t=r.a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},b=function(e){var t=d(e.components);return r.a.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},p=r.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,c=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),b=d(n),p=a,h=b["".concat(c,".").concat(p)]||b[p]||u[p]||s;return n?r.a.createElement(h,o(o({ref:t},l),{},{components:n})):r.a.createElement(h,o({ref:t},l))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,c=new Array(s);c[0]=p;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o.mdxType="string"==typeof e?e:a,c[1]=o;for(var l=2;l console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(o.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/john-deere-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/john-deere-credentials'\n")))),Object(s.b)("h4",{id:"response"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "tokenMetadata": {"scopes": ["str"]},\n "clientKey": "str",\n "clientSecret": "str",\n "accessToken": "str",\n "refreshToken": "str",\n "clientEnvironment": "STAGE or PRODUCTION"\n}\n')),Object(s.b)("h3",{id:"create-a-john-deere-credentials"},"Create a John Deere credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/john-deere-credentials")),Object(s.b)("p",null,"Create a John Deere credentials for the Leaf User."),Object(s.b)("h4",{id:"request-body"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "clientKey": "str",\n "clientSecret": "str",\n "refreshToken": "str",\n "clientEnvironment": "STAGE or PRODUCTION"\n}\n')),Object(s.b)("h4",{id:"request-examples-1"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(o.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/john-deere-credentials\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "clientKey": "str",\n "clientSecret": "str",\n "refreshToken": "str",\n "clientEnvironment": "STAGE or PRODUCTION"\n}\n\naxios.post(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(s.b)(o.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/john-deere-credentials\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n\ndata = {\n "clientKey": "str",\n "clientSecret": "str",\n "refreshToken": "str",\n "clientEnvironment": "STAGE or PRODUCTION"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(s.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{"clientKey": "str","clientSecret": "str","refreshToken": "str","clientEnvironment": "STAGE or PRODUCTION"}\' \\\n \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/john-deere-credentials\'\n')))),Object(s.b)("h4",{id:"response-1"},"Response"),Object(s.b)("p",null,"A John Deere credentials with status."),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "tokenMetadata": {"scopes": ["str"]},\n "clientKey": "str",\n "clientSecret": "str",\n "accessToken": "str",\n "refreshToken": "str",\n "clientEnvironment": "STAGE or PRODUCTION"\n}\n')),Object(s.b)("h3",{id:"delete-john-deere-credentials"},"Delete John Deere credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/john-deere-credentials")),Object(s.b)("p",null,"Delete Leaf User's John Deere credentials."),Object(s.b)("h4",{id:"request-examples-2"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(o.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/john-deere-credentials'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(o.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/john-deere-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/john-deere-credentials'\n")))),Object(s.b)("h2",{id:"troubleshooting"},"Troubleshooting"),Object(s.b)("p",null,"With these endpoints, you can do some troubleshooting to see your credential's health."),Object(s.b)("h3",{id:"events"},"Events"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/john-deere-credentials/events")),Object(s.b)("p",null,"Get the logs of the provider credential based on the LeafUserId sent."),Object(s.b)("h4",{id:"request-examples-3"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(o.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/john-deere-credentials/events'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(o.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/john-deere-credentials/events'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}\n /john-deere-credentials/events'\n")))),Object(s.b)("h4",{id:"response-2"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "body": "string",\n "createdDate": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "headers": "string",\n "id": "string",\n "statusCode": "int"\n }\n]\n')),Object(s.b)("div",{className:"admonition admonition-warning alert alert--danger"},Object(s.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(s.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})))),"warning")),Object(s.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available."))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/17896441.e3fd7c18.js b/17896441.e3fd7c18.js new file mode 100644 index 000000000..a2a20382d --- /dev/null +++ b/17896441.e3fd7c18.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{149:function(e,t,a){"use strict";a.r(t);var n=a(0),l=a.n(n),r=a(171),i=a(154),c=a(155),o=a(162);var m=function(e){var t=e.metadata;return l.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog list page navigation"},l.a.createElement("div",{className:"pagination-nav__item"},t.previous&&l.a.createElement(o.a,{className:"pagination-nav__link",to:t.previous.permalink},l.a.createElement("div",{className:"pagination-nav__sublabel"},"Previous"),l.a.createElement("div",{className:"pagination-nav__label"},"\xab ",t.previous.title))),l.a.createElement("div",{className:"pagination-nav__item pagination-nav__item--next"},t.next&&l.a.createElement(o.a,{className:"pagination-nav__link",to:t.next.permalink},l.a.createElement("div",{className:"pagination-nav__sublabel"},"Next"),l.a.createElement("div",{className:"pagination-nav__label"},t.next.title," \xbb"))))};var s=function(e,t,a){var l=Object(n.useState)(void 0),r=l[0],i=l[1];Object(n.useEffect)((function(){var n,l;function c(){var c=function(){var e=0,t=null;for(n=document.getElementsByClassName("anchor");e=0&&r<=a&&(t=l),e+=1}return t}();if(c){var o=0,m=!1;for(l=document.getElementsByClassName(e);o=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var l=r.a.createContext({}),b=function(e){var n=r.a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):s(s({},n),e)),t},u=function(e){var n=b(e.components);return r.a.createElement(l.Provider,{value:n},e.children)},p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.a.createElement(r.a.Fragment,{},n)}},d=r.a.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=b(t),d=a,f=u["".concat(i,".").concat(d)]||u[d]||p[d]||o;return t?r.a.createElement(f,s(s({ref:n},l),{},{components:t})):r.a.createElement(f,s({ref:n},l))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=d;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var l=2;l console.log(res.data))\n .catch(console.error);\n'))),Object(o.b)(s.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/config/api/configs'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),'TOKEN=YOUR_TOKEN\n\ncurl -X GET \\\n -H "Authorization: Bearer ${TOKEN}" \\\n "https://api.withleaf.io/services/config/api/configs"\n')))),Object(o.b)("h4",{id:"response"},"Response"),Object(o.b)("p",null,"A JSON containing the configuration of the API Owner."),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "apiOwnerUsername": "api-owner",\n "leafUserId": "",\n "operationsImageCreation": true,\n "geoimagesResolution": 0.00001,\n "geoimagesShape": "SQUARE",\n "geoimagesProjection": "EPSG:3857",\n "geoimagesColorRamp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0]\n },\n "fieldsAutoSync": true,\n "fieldsMergeIntersection": 0.01,\n "fieldsAttachIntersection": 0.01\n}\n')),Object(o.b)("h3",{id:"get-leaf-users-configuration"},"Get Leaf User's Configuration"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--success"},"GET")," ",Object(o.b)("inlineCode",{parentName:"p"},"configs/{leafUserId}")),Object(o.b)("p",null,"Gets the configuration of a Leaf User."),Object(o.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(s.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'const axios = require("axios");\nconst TOKEN = "YOUR_TOKEN";\nconst LEAF_USER_ID = "00000000-0000-0000-0000-000000000000";\n\nconst endpoint = `https://api.withleaf.io/services/config/api/configs/${LEAF_USER_ID}`;\nconst headers = { Authorization: `Bearer ${TOKEN}` };\n\naxios\n .get(endpoint, { headers })\n .then((res) => console.log(res.data))\n .catch(console.error);\n'))),Object(o.b)(s.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nLEAF_USER_ID = '00000000-0000-0000-0000-000000000000'\n\nendpoint = f'https://api.withleaf.io/services/config/api/configs/{LEAF_USER_ID}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),'TOKEN=YOUR_TOKEN\nLEAF_USER_ID=00000000-0000-0000-0000-000000000000\n\ncurl -X GET \\\n -H "Authorization: Bearer ${TOKEN}" \\\n "https://api.withleaf.io/services/config/api/configs/${LEAF_USER_ID}"\n')))),Object(o.b)("h4",{id:"response-1"},"Response"),Object(o.b)("p",null,"A JSON containing the configuration of the Leaf User."),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "apiOwnerUsername": "api-owner",\n "leafUserId": "00000000-0000-0000-0000-000000000000",\n "operationsImageCreation": true,\n "geoimagesResolution": 0.00001,\n "geoimagesShape": "SQUARE",\n "geoimagesProjection": "EPSG:3857",\n "geoimagesColorRamp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0]\n },\n "fieldsAutoSync": true,\n "fieldsMergeIntersection": 0.01,\n "fieldsAttachIntersection": 0.01,\n "fieldsAutoMerge": true\n}\n')),Object(o.b)("h3",{id:"create-leaf-users-configuration"},"Create Leaf User's Configuration"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--warning"},"POST")," ",Object(o.b)("inlineCode",{parentName:"p"},"/configs/{leafUserId}")),Object(o.b)("p",null,"Creates the Configuration for the Leaf User ",Object(o.b)("inlineCode",{parentName:"p"},"leafUserId"),". A request body must be provided\ncontaining the configurations to be set. All entries are optional, any missing configuration will be inherited from the API Owner's Configuration."),Object(o.b)("p",null,"Request body example:"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "operationsImageCreation": true,\n "fieldsAutoSync": true\n}\n')),Object(o.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(s.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'const axios = require("axios");\nconst TOKEN = "YOUR_TOKEN";\nconst LEAF_USER_ID = "00000000-0000-0000-0000-000000000000";\n\nconst endpoint = `https://api.withleaf.io/services/config/api/configs/${LEAF_USER_ID}`;\nconst headers = { Authorization: `Bearer ${TOKEN}` };\n\nconst data = {\n operationsImageCreation: true,\n fieldsAutoSync: true,\n};\n\naxios\n .post(endpoint, data, { headers })\n .then((res) => console.log(res.data))\n .catch(console.error);\n'))),Object(o.b)(s.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nLEAF_USER_ID = '00000000-0000-0000-0000-000000000000'\n\nendpoint = f'https://api.withleaf.io/services/config/api/configs/{LEAF_USER_ID}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'operationsImageCreation': True,\n 'fieldsAutoSync': True\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(o.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),'TOKEN=YOUR_TOKEN\nLEAF_USER_ID=00000000-0000-0000-0000-000000000000\n\ncurl -X POST \\\n -H "Authorization: Bearer ${TOKEN}" \\\n -H "Content-Type: application/json" \\\n -d \'{ "operationsImageCreation": true, "fieldsAutoSync": true }\' \\\n "https://api.withleaf.io/services/config/api/configs/${LEAF_USER_ID}"\n')))),Object(o.b)("h4",{id:"response-2"},"Response"),Object(o.b)("p",null,"A JSON containing the configuration of the Leaf User."),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "apiOwnerUsername": "api-owner",\n "leafUserId": "00000000-0000-0000-0000-000000000000",\n "operationsImageCreation": true,\n "geoimagesResolution": 0.00001,\n "geoimagesShape": "SQUARE",\n "geoimagesProjection": "EPSG:3857",\n "geoimagesColorRamp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0]\n },\n "fieldsAutoSync": true,\n "fieldsMergeIntersection": 0.01,\n "fieldsAttachIntersection": 0.01,\n "fieldsAutoMerge": true\n}\n')),Object(o.b)("h3",{id:"update-api-owners-configuration"},"Update API Owner's Configuration"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--warning"},"PATCH")," ",Object(o.b)("inlineCode",{parentName:"p"},"/configs")),Object(o.b)("p",null,"Updates the specified fields of Configuration for the API Owner. A resquest body must be provided\ncontaining the configurations to be set. All entries are optional."),Object(o.b)("p",null,"Request body example:"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "operationsImageCreation": true,\n "fieldsAutoSync": true\n}\n')),Object(o.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(s.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'const axios = require("axios");\nconst TOKEN = "YOUR_TOKEN";\n\nconst endpoint = "https://api.withleaf.io/services/config/api/configs";\nconst headers = { Authorization: `Bearer ${TOKEN}` };\n\nconst data = {\n operationsImageCreation: true,\n fieldsAutoSync: true,\n};\n\naxios\n .patch(endpoint, data, { headers })\n .then((res) => console.log(res.data))\n .catch(console.error);\n'))),Object(o.b)(s.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/config/api/configs'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'operationsImageCreation': True,\n 'fieldsAutoSync': True\n}\n\nresponse = requests.patch(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(o.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),'TOKEN = \'YOUR_TOKEN\'\n\ncurl -X PATCH \\\n -H "Authorization: Bearer ${TOKEN}" \\\n -H "Content-Type: application/json" \\\n -d \'{ "operationsImageCreation": true, "fieldsAutoSync": true }\' \\\n \'https://api.withleaf.io/services/config/api/configs\'\n')))),Object(o.b)("h4",{id:"response-3"},"Response"),Object(o.b)("p",null,"A JSON containing the configuration of the API Owner."),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "apiOwnerUsername": "api-owner",\n "leafUserId": "",\n "operationsImageCreation": true,\n "geoimagesResolution": 0.00001,\n "geoimagesShape": "SQUARE",\n "geoimagesProjection": "EPSG:3857",\n "geoimagesColorRamp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0]\n },\n "fieldsAutoSync": true,\n "fieldsMergeIntersection": 0.01,\n "fieldsAttachIntersection": 0.01,\n "fieldsAutoMerge": true\n}\n')),Object(o.b)("h3",{id:"update-leaf-users-configuration"},"Update Leaf User's Configuration"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--warning"},"PATCH")," ",Object(o.b)("inlineCode",{parentName:"p"},"/configs/{leafUserId}")),Object(o.b)("p",null,"Updates the specified fields of Configuration for the Leaf User ",Object(o.b)("inlineCode",{parentName:"p"},"leafUserId"),". A resquest body must be provided containing the configurations to be set. All entries are optional."),Object(o.b)("p",null,"Request body example:"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "operationsImageCreation": true,\n "fieldsAutoSync": true\n}\n')),Object(o.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(s.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'const axios = require("axios");\nconst TOKEN = "YOUR_TOKEN";\nconst LEAF_USER_ID = "00000000-0000-0000-0000-000000000000";\n\nconst endpoint = `https://api.withleaf.io/services/config/api/configs/${LEAF_USER_ID}`;\nconst headers = { Authorization: `Bearer ${TOKEN}` };\n\nconst data = {\n operationsImageCreation: true,\n fieldsAutoSync: true,\n};\n\naxios\n .patch(endpoint, data, { headers })\n .then((res) => console.log(res.data))\n .catch(console.error);\n'))),Object(o.b)(s.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nLEAF_USER_ID = '00000000-0000-0000-0000-000000000000'\n\nendpoint = f'https://api.withleaf.io/services/config/api/configs/{LEAF_USER_ID}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'operationsImageCreation': True,\n 'fieldsAutoSync': True\n}\n\nresponse = requests.patch(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(o.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),'TOKEN=YOUR_TOKEN\nLEAF_USER_ID=00000000-0000-0000-0000-000000000000\n\ncurl -X PATCH \\\n -H "Authorization: Bearer ${TOKEN}" \\\n -H "Content-Type: application/json" \\\n -d \'{ "operationsImageCreation": true, "fieldsAutoSync": true }\' \\\n "https://api.withleaf.io/services/config/api/configs/${LEAF_USER_ID}"\n')))),Object(o.b)("h4",{id:"response-4"},"Response"),Object(o.b)("p",null,"A JSON containing the configuration of the Leaf User."),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "apiOwnerUsername": "api-owner",\n "leafUserId": "00000000-0000-0000-0000-000000000000",\n "operationsImageCreation": true,\n "geoimagesResolution": 0.00001,\n "geoimagesShape": "SQUARE",\n "geoimagesProjection": "EPSG:3857",\n "geoimagesColorRamp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0]\n },\n "fieldsAutoSync": true,\n "fieldsMergeIntersection": 0.01,\n "fieldsAttachIntersection": 0.01,\n "fieldsAutoMerge": true\n}\n')),Object(o.b)("h3",{id:"delete-leaf-users-configuration"},"Delete Leaf User's Configuration"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(o.b)("inlineCode",{parentName:"p"},"/configs/{leafUserId}")),Object(o.b)("p",null,"Deletes the Configuration from the Leaf User ",Object(o.b)("inlineCode",{parentName:"p"},"leafUserId"),". Until a new Configuration is created, the Leaf User will inherit all configurations from the API Owner."),Object(o.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(s.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'const axios = require("axios");\nconst TOKEN = "YOUR_TOKEN";\nconst LEAF_USER_ID = "00000000-0000-0000-0000-000000000000";\n\nconst endpoint = `https://api.withleaf.io/services/config/api/configs/${LEAF_USER_ID}`;\nconst headers = { Authorization: `Bearer ${TOKEN}` };\n\naxios\n .delete(endpoint, { headers })\n .then((res) => console.log(res.data))\n .catch(console.error);\n'))),Object(o.b)(s.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nLEAF_USER_ID = '00000000-0000-0000-0000-000000000000'\n\nendpoint = f'https://api.withleaf.io/services/config/api/configs/{LEAF_USER_ID}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.status_code)\n"))),Object(o.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),'TOKEN=YOUR_TOKEN\nLEAF_USER_ID=00000000-0000-0000-0000-000000000000\n\ncurl -X DELETE \\\n -H "Authorization: Bearer ${TOKEN}" \\\n "https://api.withleaf.io/services/config/api/configs/${LEAF_USER_ID}"\n')))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/1be78505.f9975dfd.js b/1be78505.f9975dfd.js new file mode 100644 index 000000000..820631e09 --- /dev/null +++ b/1be78505.f9975dfd.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[16,98],{150:function(e,a,t){"use strict";t.r(a);var n=t(0),c=t.n(n),r=t(153),l=t(154),i=t(23),o=t(166),s=t(2),u=t(6),m=t(156),d=t(159),b=t(182),h=t(183),f=t(184),p=t(181),v=t(162),E=t(157),k=t(67),j=t.n(k);var O=function e(a,t){return"link"===a.type?(n=a.href,c=t,(r=function(e){return e.endsWith("/")?e:e+"/"})(n)===r(c)):"category"===a.type&&a.items.some((function(a){return e(a,t)}));var n,c,r};function _(e){var a,t,r,l=e.item,i=e.onItemClick,o=e.collapsible,d=e.activePath,b=Object(u.a)(e,["item","onItemClick","collapsible","activePath"]),h=l.items,f=l.label,p=O(l,d),v=(t=p,r=Object(n.useRef)(t),Object(n.useEffect)((function(){r.current=t}),[t]),r.current),E=Object(n.useState)((function(){return!!o&&(!p&&l.collapsed)})),k=E[0],_=E[1];Object(n.useEffect)((function(){p&&!v&&k&&_(!1)}),[p,v,k]);var g=Object(n.useCallback)((function(e){e.preventDefault(),_((function(e){return!e}))}),[_]);return 0===h.length?null:c.a.createElement("li",{className:Object(m.a)("menu__list-item",{"menu__list-item--collapsed":k}),key:f},c.a.createElement("a",Object(s.a)({className:Object(m.a)("menu__link",(a={"menu__link--sublist":o,"menu__link--active":o&&p},a[j.a.menuLinkText]=!o,a)),onClick:o?g:void 0,href:o?"#!":void 0},b),f),c.a.createElement("ul",{className:"menu__list"},h.map((function(e){return c.a.createElement(C,{tabIndex:k?"-1":"0",key:e.label,item:e,onItemClick:i,collapsible:o,activePath:d})}))))}function g(e){var a=e.item,t=e.onItemClick,n=e.activePath,r=(e.collapsible,Object(u.a)(e,["item","onItemClick","activePath","collapsible"])),l=a.href,i=a.label,o=O(a,n);return c.a.createElement("li",{className:"menu__list-item",key:i},c.a.createElement(v.a,Object(s.a)({className:Object(m.a)("menu__link",{"menu__link--active":o}),to:l},Object(E.a)(l)?{isNavLink:!0,exact:!0,onClick:t}:{target:"_blank",rel:"noreferrer noopener"},r),i))}function C(e){switch(e.item.type){case"category":return c.a.createElement(_,e);case"link":default:return c.a.createElement(g,e)}}var N=function(e){var a,t,r=e.path,i=e.sidebar,o=e.sidebarCollapsible,u=void 0===o||o,E=Object(n.useState)(!1),k=E[0],O=E[1],_=Object(l.a)(),g=_.siteConfig,N=(g=void 0===g?{}:g).themeConfig,w=(N=void 0===N?{}:N).navbar,y=(w=void 0===w?{}:w).title,x=void 0===y?"":y,M=w.hideOnScroll,S=void 0!==M&&M,I=_.isClient,P=Object(f.a)(),B=P.logoLink,L=P.logoLinkProps,R=P.logoImageUrl,D=P.logoAlt,W=Object(d.a)().isAnnouncementBarClosed,A=Object(p.a)().scrollY;Object(b.a)(k);var F=Object(h.a)();return Object(n.useEffect)((function(){F===h.b.desktop&&O(!1)}),[F]),c.a.createElement("div",{className:Object(m.a)(j.a.sidebar,(a={},a[j.a.sidebarWithHideableNavbar]=S,a))},S&&c.a.createElement(v.a,Object(s.a)({tabIndex:"-1",className:j.a.sidebarLogo,to:B},L),null!=R&&c.a.createElement("img",{key:I,src:R,alt:D}),null!=x&&c.a.createElement("strong",null,x)),c.a.createElement("div",{className:Object(m.a)("menu","menu--responsive",j.a.menu,(t={"menu--show":k},t[j.a.menuWithAnnouncementBar]=!W&&0===A,t))},c.a.createElement("button",{"aria-label":k?"Close Menu":"Open Menu","aria-haspopup":"true",className:"button button--secondary button--sm menu__button",type:"button",onClick:function(){O(!k)}},k?c.a.createElement("span",{className:Object(m.a)(j.a.sidebarMenuIcon,j.a.sidebarMenuCloseIcon)},"\xd7"):c.a.createElement("svg",{"aria-label":"Menu",className:j.a.sidebarMenuIcon,xmlns:"http://www.w3.org/2000/svg",height:24,width:24,viewBox:"0 0 32 32",role:"img",focusable:"false"},c.a.createElement("title",null,"Menu"),c.a.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))),c.a.createElement("ul",{className:"menu__list"},i.map((function(e){return c.a.createElement(C,{key:e.label,item:e,onItemClick:function(e){e.target.blur(),O(!1)},collapsible:u,activePath:r})})))))},w=t(173),y=t(179),x=t(163),M=t(72),S=t.n(M);function I(e){var a,t,n=e.currentDocRoute,i=e.docsMetadata,s=e.children,u=Object(l.a)(),m=u.siteConfig,d=u.isClient,b=i.permalinkToSidebar,h=i.docsSidebars,f=i.version,p=h[b[n.path]];return c.a.createElement(o.a,{version:f,key:d},c.a.createElement("div",{className:S.a.docPage},p&&c.a.createElement("div",{className:S.a.docSidebarContainer,role:"complementary"},c.a.createElement(N,{sidebar:p,path:n.path,sidebarCollapsible:null===(a=null===(t=m.themeConfig)||void 0===t?void 0:t.sidebarCollapsible)||void 0===a||a})),c.a.createElement("main",{className:S.a.docMainContainer},c.a.createElement(r.a,{components:w.a},s))))}a.default=function(e){var a=e.route.routes,t=e.docsMetadata,n=e.location,r=a.find((function(e){return Object(x.matchPath)(n.pathname,e)}));return r?c.a.createElement(I,{currentDocRoute:r,docsMetadata:t},Object(i.a)(a)):c.a.createElement(y.default,e)}},167:function(e,a,t){"use strict";var n=t(0),c=t.n(n),r=t(164),l=t.n(r),i=t(163),o=t(154);a.a=function(e){var a=Object(n.useRef)(!1),r=Object(n.useRef)(null),s=Object(i.useHistory)(),u=Object(o.a)().siteConfig,m=(void 0===u?{}:u).baseUrl,d=function(){a.current||(Promise.all([fetch(m+"search-doc.json").then((function(e){return e.json()})),fetch(m+"lunr-index.json").then((function(e){return e.json()})),Promise.all([t.e(97),t.e(99)]).then(t.bind(null,169)),t.e(62).then(t.t.bind(null,168,7))]).then((function(e){!function(e,a,t){new t({searchDocs:e,searchIndex:a,inputSelector:"#search_input_react",handleSelected:function(e,a,t){var n=m+t.url;document.createElement("a").href=n,s.push(n)}})}(e[0],e[1],e[2].default)})),a.current=!0)},b=Object(n.useCallback)((function(a){r.current.contains(a.target)||r.current.focus(),e.handleSearchBarToggle(!e.isSearchBarExpanded)}),[e.isSearchBarExpanded]);return c.a.createElement("div",{className:"navbar__search",key:"search-box"},c.a.createElement("span",{"aria-label":"expand searchbar",role:"button",className:l()("search-icon",{"search-icon-hidden":e.isSearchBarExpanded}),onClick:b,onKeyDown:b,tabIndex:0}),c.a.createElement("input",{id:"search_input_react",type:"search",placeholder:"Search","aria-label":"Search",className:l()("navbar__search-input",{"search-bar-expanded":e.isSearchBarExpanded},{"search-bar":!e.isSearchBarExpanded}),onClick:d,onMouseOver:d,onFocus:b,onBlur:b,ref:r}))}},179:function(e,a,t){"use strict";t.r(a);var n=t(0),c=t.n(n),r=t(166);a.default=function(){return c.a.createElement(r.a,{title:"Page Not Found"},c.a.createElement("div",{className:"container margin-vert--xl"},c.a.createElement("div",{className:"row"},c.a.createElement("div",{className:"col col--6 col--offset-3"},c.a.createElement("h1",{className:"hero__title"},"Page Not Found"),c.a.createElement("p",null,"We could not find what you were looking for."),c.a.createElement("p",null,"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))}}}]); \ No newline at end of file diff --git a/1d70fac3.6f4d1f4d.js b/1d70fac3.6f4d1f4d.js new file mode 100644 index 000000000..2ef3199ad --- /dev/null +++ b/1d70fac3.6f4d1f4d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{153:function(e,a,t){"use strict";t.d(a,"a",(function(){return o})),t.d(a,"b",(function(){return O}));var n=t(0),r=t.n(n);function p(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function i(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,n)}return t}function s(e){for(var a=1;a=0||(r[t]=e[t]);return r}(e,a);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var b=r.a.createContext({}),c=function(e){var a=r.a.useContext(b),t=a;return e&&(t="function"==typeof e?e(a):s(s({},a),e)),t},o=function(e){var a=c(e.components);return r.a.createElement(b.Provider,{value:a},e.children)},d={inlineCode:"code",wrapper:function(e){var a=e.children;return r.a.createElement(r.a.Fragment,{},a)}},m=r.a.forwardRef((function(e,a){var t=e.components,n=e.mdxType,p=e.originalType,i=e.parentName,b=l(e,["components","mdxType","originalType","parentName"]),o=c(t),m=n,O=o["".concat(i,".").concat(m)]||o[m]||d[m]||p;return t?r.a.createElement(O,s(s({ref:a},b),{},{components:t})):r.a.createElement(O,s({ref:a},b))}));function O(e,a){var t=arguments,n=a&&a.mdxType;if("string"==typeof e||n){var p=t.length,i=new Array(p);i[0]=m;var s={};for(var l in a)hasOwnProperty.call(a,l)&&(s[l]=a[l]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var b=2;b Endpoints",description:"Leaf Link > Endpoints",sidebar_label:"Endpoints"}),b={unversionedId:"Link_endpoints",id:"Link_endpoints",isDocsHomePage:!1,title:"Leaf Link > Endpoints",description:"Leaf Link > Endpoints",source:"@site/docs/Link_endpoints.md",permalink:"/docs/docs/Link_endpoints",editUrl:"https://github.com/Leaf-Agriculture/docs/tree/master/docs/Link_endpoints.md",sidebar_label:"Endpoints",sidebar:"docs",previous:{title:"Leaf File Upload Link",permalink:"/docs/docs/Link_file_upload"},next:{title:"Magic Link Overview",permalink:"/docs/docs/Magic_link_overview"}},c=[{value:"About",id:"about",children:[]},{value:"API key",id:"api-key",children:[{value:"Get all Leaf user API keys",id:"get-all-leaf-user-api-keys",children:[]},{value:"Create a Leaf user API key",id:"create-a-leaf-user-api-key",children:[]},{value:"Revoke a Leaf user API key",id:"revoke-a-leaf-user-api-key",children:[]}]},{value:"Providers application info",id:"providers-application-info",children:[{value:"AgLeader",id:"agleader",children:[]},{value:"Climate FieldView",id:"climate-fieldview",children:[]},{value:"CNHI",id:"cnhi",children:[]},{value:"John Deere",id:"john-deere",children:[]},{value:"Trimble",id:"trimble",children:[]}]}],o={rightToc:c};function d(e){var a=e.components,t=Object(r.a)(e,["components"]);return Object(p.b)("wrapper",Object(n.a)({},o,t,{components:a,mdxType:"MDXLayout"}),Object(p.b)("h2",{id:"about"},"About"),Object(p.b)("p",null,"All HTTP methods should be prepended by this service's endpoint:"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{}),"https://api.withleaf.io/services/usermanagement/api\n")),Object(p.b)("p",null,"See below the REST resources and their endpoints available in this service."),Object(p.b)("h2",{id:"api-key"},"API key"),Object(p.b)("p",null,"The API keys are the required authentication info for the Leaf widgets. It is created at a Leaf user level."),Object(p.b)("p",null,Object(p.b)("strong",{parentName:"p"}," Endpoints ")),Object(p.b)("table",null,Object(p.b)("thead",{parentName:"table"},Object(p.b)("tr",{parentName:"thead"},Object(p.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(p.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(p.b)("tbody",{parentName:"table"},Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-leaf-user-api-keys"}),"Get all Leaf user API keys")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"td"},"/api-keys"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#create-a-leaf-user-api-key"}),"Create a Leaf user API key")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--warning"},"POST")," ",Object(p.b)("inlineCode",{parentName:"td"},"/api-keys"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#revoke-a-leaf-user-api-key"}),"Revoke a Leaf user API key")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(p.b)("inlineCode",{parentName:"td"},"/api-keys"))))),Object(p.b)("h3",{id:"get-all-leaf-user-api-keys"},"Get all Leaf user API keys"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"p"},"/api-keys")),Object(p.b)("p",null,"Get all API keys from a Leaf user."),Object(p.b)("h4",{id:"request-examples"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/api-keys?leafUserId={leafUserId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/api-keys?leafUserId={leafUserId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/api-keys?leafUserId={leafUserId}'\n")))),Object(p.b)("h5",{id:"response"},"Response"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "uuid",\n "key": "xxxx...xxxx",\n "leafUserId": "uuid",\n "expiresAt": "2024-04-25T18:32:25.530259",\n "description": "test",\n "valid": true\n },\n {\n "id": "uuid",\n "key": "xxxx...xxxx",\n "leafUserId": "uuid",\n "expiresAt": "2024-04-25T18:36:37.965906",\n "description": "test",\n "revokedAt": "2023-04-26T21:27:55.674731",\n "valid": false\n }\n]\n')),Object(p.b)("h3",{id:"create-a-leaf-user-api-key"},"Create a Leaf user API key"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--warning"},"POST")," ",Object(p.b)("inlineCode",{parentName:"p"},"/api-keys")),Object(p.b)("p",null,"Creates a Leaf user API key."),Object(p.b)("h4",{id:"request-body"},"Request body"),Object(p.b)("p",null,"It is requires few properties:"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "leafUserId": "string",\n "expiresIn": int,\n "description": "string"\n}\n')),Object(p.b)("ul",null,Object(p.b)("li",{parentName:"ul"},Object(p.b)("inlineCode",{parentName:"li"},"leafUserId"),": leaf user Id"),Object(p.b)("li",{parentName:"ul"},Object(p.b)("inlineCode",{parentName:"li"},"expiresIn"),": time to expiration, in seconds. The minimum allowed value is ",Object(p.b)("inlineCode",{parentName:"li"},"900")," (15 minutes). The default value is one year."),Object(p.b)("li",{parentName:"ul"},Object(p.b)("inlineCode",{parentName:"li"},"description"),": description to identify the API Key")),Object(p.b)("h4",{id:"request-examples-1"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/api-keys'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n leafUserId: \"string\",\n expiresIn: 900,\n description: \"string\"\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/api-keys'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n leafUserId: \"string\",\n expiresIn: 900,\n description: \"string\"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X GET \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "leafUserId": "string", "expiresIn": 900, "description": "string" }\'\n \'https://api.withleaf.io/services/usermanagement/api/api-keys\'\n')))),Object(p.b)("h5",{id:"response-1"},"Response"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "key": "xxxxxxx",\n "expiresAt": "2024-04-25T18:36:37.965906",\n "valid": true\n}\n')),Object(p.b)("h3",{id:"revoke-a-leaf-user-api-key"},"Revoke a Leaf user API key"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(p.b)("inlineCode",{parentName:"p"},"/api-keys")),Object(p.b)("p",null,"Revokes a Leaf user API key."),Object(p.b)("h4",{id:"request-examples-2"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/api-keys/{apiKeyId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/api-keys/{apiKeyId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/api-keys/{apiKeyId}'\n")))),Object(p.b)("h2",{id:"providers-application-info"},"Providers application info"),Object(p.b)("p",null,"This section is about your application information from the provider, basically related to the required properties for each one, like the client ID, keys, and secrets."),Object(p.b)("div",{className:"admonition admonition-tip alert alert--success"},Object(p.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(p.b)("h5",{parentName:"div"},Object(p.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(p.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(p.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})))),"Provider setup")),Object(p.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(p.b)("p",{parentName:"div"},"Setting up the provider application information is mandatory to use the provider in the authentication widgets/links from Leaf Link."))),Object(p.b)("h3",{id:"agleader"},"AgLeader"),Object(p.b)("p",null,"To enable AgLeader as a provider in the widget you need to have your application already registered with AgLeader. You can find more info on how to create a developer account ",Object(p.b)("a",Object(n.a)({parentName:"p"},{href:"https://withleaf.io/en/whats-new/agleader-authentication-with-leaf/"}),"here"),"."),Object(p.b)("p",null,Object(p.b)("strong",{parentName:"p"}," Endpoints ")),Object(p.b)("table",null,Object(p.b)("thead",{parentName:"table"},Object(p.b)("tr",{parentName:"thead"},Object(p.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(p.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(p.b)("tbody",{parentName:"table"},Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-agleader-app-information"}),"Get all AgLeader app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/AgLeader"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#get-an-agleader-app-information"}),"Get an AgLeader app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/AgLeader/{appName}"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#create-an-agleader-app-information"}),"Create an AgLeader app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--warning"},"POST")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/AgLeader/{appName}"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#update-an-agleader-app-information"}),"Update an AgLeader app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/AgLeader/{appName} "))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#delete-an-agleader-app-information"}),"Delete an AgLeader app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/AgLeader/{appName}"))))),Object(p.b)("h4",{id:"get-all-agleader-app-information"},"Get all AgLeader app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/AgLeader")),Object(p.b)("p",null,"Get all AgLeader app information from the API Owner."),Object(p.b)("h5",{id:"request-examples-3"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader'\n")))),Object(p.b)("h5",{id:"response-2"},"Response"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "provider": "providerName",\n "appName": "yourAppName",\n "clientEnvironment": "PRODUCTION"\n },\n {\n "provider": "providerName",\n "appName": "yourAppName",\n "clientEnvironment": "PRODUCTION"\n }\n]\n')),Object(p.b)("h4",{id:"get-an-agleader-app-information"},"Get an AgLeader app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/AgLeader/{appName}")),Object(p.b)("p",null,"Get an AgLeader app information from the API Owner."),Object(p.b)("h5",{id:"request-examples-4"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}'\n")))),Object(p.b)("h5",{id:"response-3"},"Response"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "provider": "providerName",\n "appName": "yourAppName",\n "clientEnvironment": "PRODUCTION"\n}\n')),Object(p.b)("h4",{id:"create-an-agleader-app-information"},"Create an AgLeader app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--warning"},"POST")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/AgLeader/{appName}")),Object(p.b)("p",null,"Create an AgLeader app information."),Object(p.b)("h5",{id:"request-body-1"},"Request body"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "privateKey": "string",\n "publicKey": "string"\n}\n')),Object(p.b)("h5",{id:"request-examples-5"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n \"privateKey\": \"string\",\n \"publicKey\": \"string\"\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n \ndata = {\n \"privateKey\": \"string\",\n \"publicKey\": \"string\"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "privateKey": "string", "publicKey": "string" }\'\n \'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}\'\n')))),Object(p.b)("h4",{id:"update-an-agleader-app-information"},"Update an AgLeader app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/AgLeader/{appName}")),Object(p.b)("p",null,"Update an AgLeader app information."),Object(p.b)("h5",{id:"request-body-2"},"Request body"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "privateKey": "string",\n "publicKey": "string"\n}\n')),Object(p.b)("h5",{id:"request-examples-6"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n \"privateKey\": \"string\",\n \"publicKey\": \"string\"\n}\n\naxios.put(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n \ndata = {\n \"privateKey\": \"string\",\n \"publicKey\": \"string\"\n}\n\nresponse = requests.put(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X PUT \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "privateKey": "string", "publicKey": "string" }\'\n \'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}\'\n')))),Object(p.b)("h4",{id:"delete-an-agleader-app-information"},"Delete an AgLeader app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/AgLeader/{appName}")),Object(p.b)("p",null,"Delete an AgLeader app information."),Object(p.b)("h5",{id:"request-examples-7"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}'\n")))),Object(p.b)("h3",{id:"climate-fieldview"},"Climate FieldView"),Object(p.b)("p",null,"To enable Climate FieldView as a provider in the widget you need to have your application already registered with Climate FieldView. You can find more info on how to create a developer account ",Object(p.b)("a",Object(n.a)({parentName:"p"},{href:"https://withleaf.io/en/whats-new/climate-fieldview-authentication-with-leaf/"}),"here"),"."),Object(p.b)("p",null,Object(p.b)("strong",{parentName:"p"}," Endpoints ")),Object(p.b)("table",null,Object(p.b)("thead",{parentName:"table"},Object(p.b)("tr",{parentName:"thead"},Object(p.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(p.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(p.b)("tbody",{parentName:"table"},Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-climate-fieldview-app-information"}),"Get all Climate FieldView app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/ClimateFieldView"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#get-a-climate-fieldview-app-information"}),"Get a Climate FieldView app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/ClimateFieldView/{appName}"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#create-a-climate-fieldview-app-information"}),"Create a Climate FieldView app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--warning"},"POST")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/ClimateFieldView/{appName}"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#update-a-climate-fieldview-app-information"}),"Update a Climate FieldView app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/ClimateFieldView/{appName} "))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#delete-a-climate-fieldview-app-information"}),"Delete a Climate FieldView app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/ClimateFieldView/{appName}"))))),Object(p.b)("h4",{id:"get-all-climate-fieldview-app-information"},"Get all Climate FieldView app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/ClimateFieldView")),Object(p.b)("p",null,"Get all Climate FieldView app information from the API Owner."),Object(p.b)("h5",{id:"request-examples-8"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView'\n")))),Object(p.b)("h5",{id:"response-4"},"Response"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "provider": "providerName",\n "appName": "yourAppName",\n "clientEnvironment": "PRODUCTION"\n },\n {\n "provider": "providerName",\n "appName": "yourAppName",\n "clientEnvironment": "PRODUCTION"\n }\n]\n')),Object(p.b)("h4",{id:"get-a-climate-fieldview-app-information"},"Get a Climate FieldView app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/ClimateFieldView/{appName}")),Object(p.b)("p",null,"Get a Climate FieldView app information from the API Owner."),Object(p.b)("h5",{id:"request-examples-9"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}'\n")))),Object(p.b)("h5",{id:"response-5"},"Response"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "provider": "providerName",\n "appName": "yourAppName",\n "clientEnvironment": "PRODUCTION"\n}\n')),Object(p.b)("h4",{id:"create-a-climate-fieldview-app-information"},"Create a Climate FieldView app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--warning"},"POST")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/ClimateFieldView/{appName}")),Object(p.b)("p",null,"Create a Climate FieldView app information."),Object(p.b)("h5",{id:"request-body-3"},"Request body"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "apiKey": "string",\n "clientId": "string",\n "clientSecret": "string"\n}\n')),Object(p.b)("h5",{id:"request-examples-10"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "apiKey": "string",\n "clientId": "string",\n "clientSecret": "string"\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n \ndata = {\n "apiKey": "string",\n "clientId": "string",\n "clientSecret": "string"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "apiKey": "string", "clientId": "string", "clientSecret": "string" }\'\n \'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}\'\n')))),Object(p.b)("h4",{id:"update-a-climate-fieldview-app-information"},"Update a Climate FieldView app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/ClimateFieldView/{appName}")),Object(p.b)("p",null,"Update a Climate FieldView app information."),Object(p.b)("h5",{id:"request-body-4"},"Request body"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "apiKey": "string",\n "clientId": "string",\n "clientSecret": "string"\n}\n')),Object(p.b)("h5",{id:"request-examples-11"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "apiKey": "string",\n "clientId": "string",\n "clientSecret": "string"\n}\n\naxios.put(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n \ndata = {\n "apiKey": "string",\n "clientId": "string",\n "clientSecret": "string"\n}\n\nresponse = requests.put(endpoint, headers=headers)\nprint(response.json())\n'))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X PUT \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "apiKey": "string", "clientId": "string", "clientSecret": "string" }\'\n \'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}\'\n')))),Object(p.b)("h4",{id:"delete-a-climate-fieldview-app-information"},"Delete a Climate FieldView app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/ClimateFieldView/{appName}")),Object(p.b)("p",null,"Delete a Climate FieldView app information."),Object(p.b)("h5",{id:"request-examples-12"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}'\n")))),Object(p.b)("h3",{id:"cnhi"},"CNHI"),Object(p.b)("p",null,"To enable CNHI as a provider in the widget you need to have your application already registered with CNHI. You can find more info on how to create a developer account ",Object(p.b)("a",Object(n.a)({parentName:"p"},{href:"https://withleaf.io/en/whats-new/cnhi-authentication-with-leaf/"}),"here"),"."),Object(p.b)("p",null,Object(p.b)("strong",{parentName:"p"},"Integration requirements")),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-markup"}),"https://widget.withleaf.io\n")),Object(p.b)("p",null,'The Leaf widget URL must be registered as a valid "App OAuth Callback URL(s)" in your CNHi application. Check ',Object(p.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/Link_provider_connection#oauth-callback-url"}),"this section")," for more information."),Object(p.b)("p",null,Object(p.b)("strong",{parentName:"p"}," Endpoints ")),Object(p.b)("table",null,Object(p.b)("thead",{parentName:"table"},Object(p.b)("tr",{parentName:"thead"},Object(p.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(p.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(p.b)("tbody",{parentName:"table"},Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-cnhi-app-information"}),"Get all CNHI app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/CNHI"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#get-a-cnhi-app-information"}),"Get a CNHI app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/CNHI/{appName}/{clientEnvironment}"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#create-a-cnhi-app-information"}),"Create a CNHI app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--warning"},"POST")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/CNHI/{appName}/{clientEnvironment}"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#update-a-cnhi-app-information"}),"Update a CNHI app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/CNHI/{appName}/{clientEnvironment}"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#delete-a-cnhi-app-information"}),"Delete a CNHI app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/CNHI/{appName}/{clientEnvironment}"))))),Object(p.b)("h4",{id:"get-all-cnhi-app-information"},"Get all CNHI app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/CNHI")),Object(p.b)("p",null,"Get all CNHI app information from the API Owner."),Object(p.b)("h5",{id:"request-examples-13"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI'\n")))),Object(p.b)("h5",{id:"response-6"},"Response"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "provider": "providerName",\n "appName": "yourAppName",\n "clientEnvironment": "STAGE or PRODUCTION"\n },\n {\n "provider": "providerName",\n "appName": "yourAppName",\n "clientEnvironment": "STAGE or PRODUCTION"\n }\n]\n')),Object(p.b)("h4",{id:"get-a-cnhi-app-information"},"Get a CNHI app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/CNHI/{appName}/{clientEnvironment}")),Object(p.b)("p",null,"Get a CNHI app information from the API Owner."),Object(p.b)("h5",{id:"request-examples-14"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}'\n")))),Object(p.b)("h5",{id:"response-7"},"Response"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "provider": "providerName",\n "appName": "yourAppName",\n "clientEnvironment": "STAGE or PRODUCTION"\n}\n')),Object(p.b)("h4",{id:"create-a-cnhi-app-information"},"Create a CNHI app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--warning"},"POST")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/CNHI/{appName}/{clientEnvironment}")),Object(p.b)("p",null,"Create a CNHI app information."),Object(p.b)("h5",{id:"request-body-5"},"Request body"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "clientId": "string",\n "clientSecret": "string",\n "subscriptionKey": "string"\n}\n')),Object(p.b)("h5",{id:"request-examples-15"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "clientId": "string",\n "clientSecret": "string",\n "subscriptionKey": "string"\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n \ndata = {\n "clientId": "string",\n "clientSecret": "string",\n "subscriptionKey": "string"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "clientId": "string", "clientSecret": "string", "subscriptionKey": "string" }\'\n \'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}\'\n')))),Object(p.b)("h4",{id:"update-a-cnhi-app-information"},"Update a CNHI app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/CNHI/{appName}/{clientEnvironment}")),Object(p.b)("p",null,"Update a CNHI app information."),Object(p.b)("h5",{id:"request-body-6"},"Request body"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "clientId": "string",\n "clientSecret": "string",\n "subscriptionKey": "string"\n}\n')),Object(p.b)("h5",{id:"request-examples-16"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "clientId": "string",\n "clientSecret": "string",\n "subscriptionKey": "string"\n}\n\naxios.put(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n \ndata = {\n "clientId": "string",\n "clientSecret": "string",\n "subscriptionKey": "string"\n}\n\nresponse = requests.put(endpoint, headers=headers)\nprint(response.json())\n'))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X PUT \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "clientId": "string", "clientSecret": "string", "subscriptionKey": "string" }\'\n \'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}\'\n')))),Object(p.b)("h4",{id:"delete-a-cnhi-app-information"},"Delete a CNHI app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/CNHI/{appName}/{clientEnvironment}")),Object(p.b)("p",null,"Delete a CNHI app information."),Object(p.b)("h5",{id:"request-examples-17"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}'\n")))),Object(p.b)("h3",{id:"john-deere"},"John Deere"),Object(p.b)("p",null,"To enable John Deere as a provider in the widget you need to have your application already registered with John Deere. You can find more info on how to create a developer account ",Object(p.b)("a",Object(n.a)({parentName:"p"},{href:"https://withleaf.io/en/whats-new/john-deere-authentication-with-leaf/"}),"here"),"."),Object(p.b)("p",null,Object(p.b)("strong",{parentName:"p"},"Integration requirements")),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-markup"}),"https://widget.withleaf.io\n")),Object(p.b)("p",null,'The Leaf widget URL must be registered as a valid "Redirect URI" in your John Deere application. Check ',Object(p.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/Link_provider_connection#redirect-uri"}),"this section")," for more information."),Object(p.b)("p",null,Object(p.b)("strong",{parentName:"p"}," Endpoints ")),Object(p.b)("table",null,Object(p.b)("thead",{parentName:"table"},Object(p.b)("tr",{parentName:"thead"},Object(p.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(p.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(p.b)("tbody",{parentName:"table"},Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-john-deere-app-information"}),"Get all John Deere app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/JohnDeere"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#get-a-john-deere-app-information"}),"Get a John Deere app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/JohnDeere/{appName}/{clientEnvironment}"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#create-a-john-deere-app-information"}),"Create a John Deere app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--warning"},"POST")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/JohnDeere/{appName}/{clientEnvironment}"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#update-a-john-deere-app-information"}),"Update a John Deere app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/JohnDeere/{appName}/{clientEnvironment}"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#delete-a-john-deere-app-information"}),"Delete a John Deere app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/JohnDeere/{appName}/{clientEnvironment}"))))),Object(p.b)("h4",{id:"get-all-john-deere-app-information"},"Get all John Deere app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/JohnDeere")),Object(p.b)("p",null,"Get all John Deere app information from the API Owner."),Object(p.b)("h5",{id:"request-examples-18"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere'\n")))),Object(p.b)("h5",{id:"response-8"},"Response"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "provider": "providerName",\n "appName": "yourAppName",\n "clientEnvironment": "STAGE or PRODUCTION"\n },\n {\n "provider": "providerName",\n "appName": "yourAppName",\n "clientEnvironment": "STAGE or PRODUCTION"\n }\n]\n')),Object(p.b)("h4",{id:"get-a-john-deere-app-information"},"Get a John Deere app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/JohnDeere/{appName}/{clientEnvironment}")),Object(p.b)("p",null,"Get a John Deere app information from the API Owner."),Object(p.b)("h5",{id:"request-examples-19"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}'\n")))),Object(p.b)("h5",{id:"response-9"},"Response"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "provider": "providerName",\n "appName": "yourAppName",\n "clientEnvironment": "STAGE or PRODUCTION"\n}\n')),Object(p.b)("h4",{id:"create-a-john-deere-app-information"},"Create a John Deere app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--warning"},"POST")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/JohnDeere/{appName}/{clientEnvironment}")),Object(p.b)("p",null,"Create a John Deere app information."),Object(p.b)("h5",{id:"request-body-7"},"Request body"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "clientKey": "string",\n "clientSecret": "string"\n}\n')),Object(p.b)("h5",{id:"request-examples-20"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n \"clientKey\": \"string\",\n \"clientSecret\": \"string\"\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n \ndata = {\n \"clientKey\": \"string\",\n \"clientSecret\": \"string\"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "clientKey": "string", "clientSecret": "string" }\'\n \'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}\'\n')))),Object(p.b)("h4",{id:"update-a-john-deere-app-information"},"Update a John Deere app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/JohnDeere/{appName}/{clientEnvironment}")),Object(p.b)("p",null,"Update a John Deere app information."),Object(p.b)("h5",{id:"request-body-8"},"Request body"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "clientKey": "string",\n "clientSecret": "string"\n}\n')),Object(p.b)("h5",{id:"request-examples-21"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n \"clientKey\": \"string\",\n \"clientSecret\": \"string\"\n}\n\naxios.put(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n \ndata = {\n \"clientKey\": \"string\",\n \"clientSecret\": \"string\"\n}\n\nresponse = requests.put(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X PUT \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "clientKey": "string", "clientSecret": "string" }\'\n \'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}\'\n')))),Object(p.b)("h4",{id:"delete-a-john-deere-app-information"},"Delete a John Deere app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/JohnDeere/{appName}/{clientEnvironment}")),Object(p.b)("p",null,"Delete a John Deere app information."),Object(p.b)("h5",{id:"request-examples-22"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}'\n")))),Object(p.b)("h3",{id:"trimble"},"Trimble"),Object(p.b)("p",null,"To enable Trimble as a provider in the widget you need to have your application already registered with Trimble. You can find more info on how to create a developer account ",Object(p.b)("a",Object(n.a)({parentName:"p"},{href:"https://withleaf.io/en/whats-new/trimble-authentication-with-leaf/"}),"here"),"."),Object(p.b)("p",null,Object(p.b)("strong",{parentName:"p"},"Integration requirements")),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-markup"}),"https://widget.withleaf.io\n")),Object(p.b)("p",null,'The Leaf widget URL must be registered as a valid "Authentication Callback URL" in your Trimble application. Check ',Object(p.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/Link_provider_connection#authentication-callback-url"}),"this section")," for more information."),Object(p.b)("p",null,Object(p.b)("strong",{parentName:"p"}," Endpoints ")),Object(p.b)("table",null,Object(p.b)("thead",{parentName:"table"},Object(p.b)("tr",{parentName:"thead"},Object(p.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(p.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(p.b)("tbody",{parentName:"table"},Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-trimble-app-information"}),"Get all Trimble app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/Trimble"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#get-a-trimble-app-information"}),"Get a Trimble app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/Trimble/{appName}"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#create-a-trimble-app-information"}),"Create a Trimble app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--warning"},"POST")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/Trimble/{appName}"))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#update-a-trimble-app-information"}),"Update a Trimble app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/Trimble/{appName} "))),Object(p.b)("tr",{parentName:"tbody"},Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("a",Object(n.a)({parentName:"td"},{href:"#delete-a-trimble-app-information"}),"Delete a Trimble app information")),Object(p.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(p.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(p.b)("inlineCode",{parentName:"td"},"/app-keys/Trimble/{appName}"))))),Object(p.b)("h4",{id:"get-all-trimble-app-information"},"Get all Trimble app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/Trimble")),Object(p.b)("p",null,"Get all Trimble app information from the API Owner."),Object(p.b)("h5",{id:"request-examples-23"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble'\n")))),Object(p.b)("h5",{id:"response-10"},"Response"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "provider": "providerName",\n "appName": "yourAppName",\n "clientEnvironment": "PRODUCTION"\n },\n {\n "provider": "providerName",\n "appName": "yourAppName",\n "clientEnvironment": "PRODUCTION"\n }\n]\n')),Object(p.b)("h4",{id:"get-a-trimble-app-information"},"Get a Trimble app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--success"},"GET")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/Trimble/{appName}")),Object(p.b)("p",null,"Get a Trimble app information from the API Owner."),Object(p.b)("h5",{id:"request-examples-24"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}'\n")))),Object(p.b)("h5",{id:"response-11"},"Response"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "provider": "providerName",\n "appName": "yourAppName",\n "clientEnvironment": "PRODUCTION"\n}\n')),Object(p.b)("h4",{id:"create-a-trimble-app-information"},"Create a Trimble app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--warning"},"POST")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/Trimble/{appName}")),Object(p.b)("p",null,"Create a Trimble app information."),Object(p.b)("h5",{id:"request-body-9"},"Request body"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "applicationName": "string",\n "clientId": "string",\n "clientSecret": "string"\n}\n')),Object(p.b)("h5",{id:"request-examples-25"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "applicationName": "string",\n "clientId": "string",\n "clientSecret": "string"\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n \ndata = {\n "applicationName": "string",\n "clientId": "string",\n "clientSecret": "string"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "applicationName": "string", "clientId": "string", "clientSecret": "string" }\'\n \'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}\'\n')))),Object(p.b)("h4",{id:"update-a-trimble-app-information"},"Update a Trimble app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/Trimble/{appName}")),Object(p.b)("p",null,"Update a Trimble app information."),Object(p.b)("h5",{id:"request-body-10"},"Request body"),Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "applicationName": "string",\n "clientId": "string",\n "clientSecret": "string"\n}\n')),Object(p.b)("h5",{id:"request-examples-26"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "applicationName": "string",\n "clientId": "string",\n "clientSecret": "string"\n}\n\naxios.put(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n \ndata = {\n "applicationName": "string",\n "clientId": "string",\n "clientSecret": "string"\n}\n\nresponse = requests.put(endpoint, headers=headers)\nprint(response.json())\n'))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X PUT \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "applicationName": "string", "clientId": "string", "clientSecret": "string" }\'\n \'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}\'\n')))),Object(p.b)("h4",{id:"delete-a-trimble-app-information"},"Delete a Trimble app information"),Object(p.b)("p",null,"\xa0",Object(p.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(p.b)("inlineCode",{parentName:"p"},"/app-keys/Trimble/{appName}")),Object(p.b)("p",null,"Delete a Trimble app information."),Object(p.b)("h5",{id:"request-examples-27"},"Request examples"),Object(p.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(p.b)(s.a,{value:"js",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(p.b)(s.a,{value:"py",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(p.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(p.b)("pre",null,Object(p.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}'\n")))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/1e1e6f64.8ae6d74b.js b/1e1e6f64.8ae6d74b.js new file mode 100644 index 000000000..246f49b7d --- /dev/null +++ b/1e1e6f64.8ae6d74b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{153:function(e,t,a){"use strict";a.d(t,"a",(function(){return d})),a.d(t,"b",(function(){return O}));var n=a(0),r=a.n(n);function s(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function c(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=r.a.createContext({}),b=function(e){var t=r.a.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=b(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},p=r.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,o=l(e,["components","mdxType","originalType","parentName"]),d=b(a),p=n,O=d["".concat(c,".").concat(p)]||d[p]||u[p]||s;return a?r.a.createElement(O,i(i({ref:t},o),{},{components:a})):r.a.createElement(O,i({ref:t},o))}));function O(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=a.length,c=new Array(s);c[0]=p;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:n,c[1]=i;for(var o=2;o console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/stara-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/stara-credentials'\n")))),Object(s.b)("h4",{id:"response"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "accessTokenClient": "str",\n "refreshToken": "str",\n "accessToken": "str",\n "apiKey": "str"\n}\n')),Object(s.b)("h3",{id:"create-a-stara-credentials"},"Create a Stara credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/stara-credentials")," "),Object(s.b)("p",null,"Create a Stara credentials for the Leaf User."),Object(s.b)("h4",{id:"request-body"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "apiKey": "str",\n "accessToken": "str",\n "accessTokenClient": "str",\n "refreshToken": "str"\n}\n')),Object(s.b)("h4",{id:"request-examples-1"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/stara-credentials\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "apiKey": "str",\n "accessToken": "str",\n "accessTokenClient": "str",\n "refreshToken": "str"\n}\n\naxios.post(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/stara-credentials\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n\ndata = {\n "apiKey": "str",\n "accessToken": "str",\n "accessTokenClient": "str",\n "refreshToken": "str"\n }\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -H \'Content-Type: application/json\' \\\n -d \'{"apiKey": "str", "accessToken": "str", "accessTokenClient": "str", "refreshToken": "str"}\' \\\n \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/stara-credentials\'\n')))),Object(s.b)("h4",{id:"response-1"},"Response"),Object(s.b)("p",null,"A Stara Credentials with status."),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "accessTokenClient": "str",\n "refreshToken": "str",\n "accessToken": "str",\n "apiKey": "str"\n}\n')),Object(s.b)("h3",{id:"delete-stara-credentials"},"Delete Stara credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/stara-credentials")," "),Object(s.b)("p",null,"Delete Leaf User's Stara credentials."),Object(s.b)("h4",{id:"request-examples-2"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/stara-credentials'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/stara-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/stara-credentials'\n")))),Object(s.b)("h2",{id:"troubleshooting"},"Troubleshooting"),Object(s.b)("p",null,"With these endpoints, you can do some troubleshooting to see your credential's health."),Object(s.b)("h3",{id:"events"},"Events"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/stara-credentials/events")),Object(s.b)("p",null,"Get the logs of the provider credential based on the LeafUserId sent."),Object(s.b)("h4",{id:"request-examples-3"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/stara-credentials/events'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/stara-credentials/events'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}\n /stara-credentials/events'\n")))),Object(s.b)("h4",{id:"response-2"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "body": "string",\n "createdDate": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "headers": "string",\n "id": "string",\n "statusCode": "int"\n }\n]\n')),Object(s.b)("div",{className:"admonition admonition-warning alert alert--danger"},Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(s.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})))),"warning")),Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available."))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/2.5741a8b9.js b/2.5741a8b9.js new file mode 100644 index 000000000..d5b9b4625 --- /dev/null +++ b/2.5741a8b9.js @@ -0,0 +1,2 @@ +/*! For license information please see 2.5741a8b9.js.LICENSE.txt */ +(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{158:function(e,t,a){"use strict";var n=a(0),r=Object(n.createContext)(void 0);t.a=r},159:function(e,t,a){"use strict";var n=a(0),r=a(158);t.a=function(){var e=Object(n.useContext)(r.a);if(null==e)throw new Error("`useUserPreferencesContext` is used outside of `Layout` Component.");return e}},164:function(e,t,a){var n;!function(){"use strict";var a={}.hasOwnProperty;function r(){for(var e=[],t=0;t=s?r(!1):a+o0&&r.a.createElement("div",{className:"row footer__links"},s.map((function(e,t){return r.a.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.a.createElement("h4",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.a.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.a.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.a.createElement("li",{key:e.href||e.to,className:"footer__item"},r.a.createElement(oe,e))}))):null)}))),(d||o)&&r.a.createElement("div",{className:"text--center"},d&&d.src&&r.a.createElement("div",{className:"margin-bottom--sm"},d.href?r.a.createElement("a",{href:d.href,target:"_blank",rel:"noopener noreferrer",className:re.a.footerLogoLink},r.a.createElement(ce,{alt:d.alt,url:m})):r.a.createElement(ce,{alt:d.alt,url:m})),r.a.createElement("div",{dangerouslySetInnerHTML:{__html:o}})))):null};a(54);function le(e){var t=e.children;return r.a.createElement(b,null,r.a.createElement(E,null,t))}t.a=function(e){var t=Object(c.a)().siteConfig,a=void 0===t?{}:t,n=a.favicon,l=a.title,s=a.themeConfig.image,u=a.url,d=e.children,m=e.title,f=e.noFooter,h=e.description,v=e.image,b=e.keywords,g=e.permalink,p=e.version,k=m?m+" | "+l:l,E=v||s,O=Object(i.a)(E,{absolute:!0}),j=Object(i.a)(n);return r.a.createElement(le,null,r.a.createElement(o.a,null,r.a.createElement("html",{lang:"en"}),k&&r.a.createElement("title",null,k),k&&r.a.createElement("meta",{property:"og:title",content:k}),n&&r.a.createElement("link",{rel:"shortcut icon",href:j}),h&&r.a.createElement("meta",{name:"description",content:h}),h&&r.a.createElement("meta",{property:"og:description",content:h}),p&&r.a.createElement("meta",{name:"docsearch:version",content:p}),b&&b.length&&r.a.createElement("meta",{name:"keywords",content:b.join(",")}),E&&r.a.createElement("meta",{property:"og:image",content:O}),E&&r.a.createElement("meta",{property:"twitter:image",content:O}),E&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+k}),g&&r.a.createElement("meta",{property:"og:url",content:u+g}),g&&r.a.createElement("link",{rel:"canonical",href:u+g}),r.a.createElement("meta",{name:"twitter:card",content:"summary_large_image"})),r.a.createElement(_,null),r.a.createElement(ae,null),r.a.createElement("div",{className:"main-wrapper"},d),!f&&r.a.createElement(ie,null))}},174:function(e,t,a){"use strict";var n=a(0),r=a(180);t.a=function(){var e=Object(n.useContext)(r.a);if(null==e)throw new Error("`useThemeContext` is used outside of `Layout` Component. See https://v2.docusaurus.io/docs/theme-classic#usethemecontext.");return e}},180:function(e,t,a){"use strict";var n=a(0),r=a.n(n).a.createContext(void 0);t.a=r},181:function(e,t,a){"use strict";var n=a(0),r=a(8),o=function(){return{scrollX:r.a.canUseDOM?window.pageXOffset:0,scrollY:r.a.canUseDOM?window.pageYOffset:0}};t.a=function(e,t){void 0===t&&(t=[]);var a=Object(n.useState)(o()),r=a[0],c=a[1],i=function(){var t=o();c(t),e&&e(t)};return Object(n.useEffect)((function(){return window.addEventListener("scroll",i),function(){return window.removeEventListener("scroll",i,{passive:!0})}}),t),r}},182:function(e,t,a){"use strict";var n=a(0);t.a=function(e){void 0===e&&(e=!0),Object(n.useEffect)((function(){return document.body.style.overflow=e?"hidden":"visible",function(){document.body.style.overflow="visible"}}),[e])}},183:function(e,t,a){"use strict";a.d(t,"b",(function(){return r}));var n=a(0),r={desktop:"desktop",mobile:"mobile"};t.a=function(){var e="undefined"!=typeof window;function t(){if(e)return window.innerWidth>996?r.desktop:r.mobile}var a=Object(n.useState)(t),o=a[0],c=a[1];return Object(n.useEffect)((function(){if(e)return window.addEventListener("resize",a),function(){return window.removeEventListener("resize",a)};function a(){c(t())}}),[]),o}},184:function(e,t,a){"use strict";var n=a(154),r=a(174),o=a(155),c=a(157);t.a=function(){var e=Object(n.a)().siteConfig,t=(e=void 0===e?{}:e).themeConfig,a=(t=void 0===t?{}:t).navbar,i=(a=void 0===a?{}:a).logo,l=void 0===i?{}:i,s=Object(r.a)().isDarkTheme,u=Object(o.a)(l.href||"/"),d={};l.target?d={target:l.target}:Object(c.a)(u)||(d={rel:"noopener noreferrer",target:"_blank"});var m=l.srcDark&&s?l.srcDark:l.src;return{logoLink:u,logoLinkProps:d,logoImageUrl:Object(o.a)(m),logoAlt:l.alt}}},192:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;tthis.startX&&(this.setState({checked:!0}),this.startX=t,this.activated=ta?this.previouslyChecked!==this.state.checked&&(this.setState({checked:!1}),this.previouslyChecked=this.state.checked,t.click()):this.startX-4=0||Object.prototype.hasOwnProperty.call(e,n)&&(a[n]=e[n]);return a}(t,["className","icons"])),o=(0,i.default)("react-toggle",{"react-toggle--checked":this.state.checked,"react-toggle--focus":this.state.hasFocus,"react-toggle--disabled":this.props.disabled},a);return c.default.createElement("div",{className:o,onClick:this.handleClick,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd},c.default.createElement("div",{className:"react-toggle-track"},c.default.createElement("div",{className:"react-toggle-track-check"},this.getIcon("checked")),c.default.createElement("div",{className:"react-toggle-track-x"},this.getIcon("unchecked"))),c.default.createElement("div",{className:"react-toggle-thumb"}),c.default.createElement("input",n({},r,{ref:function(t){e.input=t},onFocus:this.handleFocus,onBlur:this.handleBlur,className:"react-toggle-screenreader-only",type:"checkbox"})))}}]),t}(o.PureComponent);t.default=f,f.displayName="Toggle",f.defaultProps={icons:{checked:c.default.createElement(s.default,null),unchecked:c.default.createElement(u.default,null)}},f.propTypes={checked:l.default.bool,disabled:l.default.bool,defaultChecked:l.default.bool,onChange:l.default.func,onFocus:l.default.func,onBlur:l.default.func,className:l.default.string,name:l.default.string,value:l.default.string,id:l.default.string,"aria-labelledby":l.default.string,"aria-label":l.default.string,icons:l.default.oneOfType([l.default.bool,l.default.shape({checked:l.default.node,unchecked:l.default.node})])}},193:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=a(0),o=(n=r)&&n.__esModule?n:{default:n};t.default=function(){return o.default.createElement("svg",{width:"14",height:"11",viewBox:"0 0 14 11"},o.default.createElement("title",null,"switch-check"),o.default.createElement("path",{d:"M11.264 0L5.26 6.004 2.103 2.847 0 4.95l5.26 5.26 8.108-8.107L11.264 0",fill:"#fff",fillRule:"evenodd"}))}},194:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=a(0),o=(n=r)&&n.__esModule?n:{default:n};t.default=function(){return o.default.createElement("svg",{width:"10",height:"10",viewBox:"0 0 10 10"},o.default.createElement("title",null,"switch-x"),o.default.createElement("path",{d:"M9.9 2.12L7.78 0 4.95 2.828 2.12 0 0 2.12l2.83 2.83L0 7.776 2.123 9.9 4.95 7.07 7.78 9.9 9.9 7.776 7.072 4.95 9.9 2.12",fill:"#fff",fillRule:"evenodd"}))}},195:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.pointerCoord=function(e){if(e){var t=e.changedTouches;if(t&&t.length>0){var a=t[0];return{x:a.clientX,y:a.clientY}}var n=e.pageX;if(void 0!==n)return{x:n,y:e.pageY}}return{x:0,y:0}}}}]); \ No newline at end of file diff --git a/2.5741a8b9.js.LICENSE.txt b/2.5741a8b9.js.LICENSE.txt new file mode 100644 index 000000000..0c20a875d --- /dev/null +++ b/2.5741a8b9.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ diff --git a/20ec0c56.76971a69.js b/20ec0c56.76971a69.js new file mode 100644 index 000000000..a11035ca0 --- /dev/null +++ b/20ec0c56.76971a69.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{153:function(e,t,n){"use strict";n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return v}));var r=n(0),a=n.n(r);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=a.a.createContext({}),l=function(e){var t=a.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},f=function(e){var t=l(e.components);return a.a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},p=a.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),f=l(n),p=r,v=f["".concat(i,".").concat(p)]||f[p]||d[p]||o;return n?a.a.createElement(v,c(c({ref:t},s),{},{components:n})):a.a.createElement(v,c({ref:t},s))}));function v(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=p;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var s=2;s=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=o.a.createContext({}),l=function(e){var t=o.a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},f=function(e){var t=l(e.components);return o.a.createElement(u.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},p=o.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,i=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),f=l(n),p=r,b=f["".concat(i,".").concat(p)]||f[p]||d[p]||a;return n?o.a.createElement(b,c(c({ref:t},u),{},{components:n})):o.a.createElement(b,c({ref:t},u))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=p;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var u=2;u=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=a.a.createContext({}),u=function(e){var n=a.a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):c(c({},n),e)),t},b=function(e){var n=u(e.components);return a.a.createElement(l.Provider,{value:n},e.children)},d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.a.createElement(a.a.Fragment,{},n)}},p=a.a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),b=u(t),p=r,f=b["".concat(o,".").concat(p)]||b[p]||d[p]||i;return t?a.a.createElement(f,c(c({ref:n},l),{},{components:t})):a.a.createElement(f,c({ref:n},l))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,o=new Array(i);o[0]=p;var c={};for(var s in n)hasOwnProperty.call(n,s)&&(c[s]=n[s]);c.originalType=e,c.mdxType="string"==typeof e?e:r,o[1]=c;for(var l=2;l console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(c.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(r.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/organizations/{provider}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(r.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/organizations/{provider}'\n")))),Object(i.b)("h4",{id:"response"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(r.a)({parentName:"pre"},{className:"language-json"}),'{\n "connectedOrganizations": [\n {\n "id": "organization_id_1",\n "name": "Organization Name 1",\n "managementUri": "https://connections.deere.com/connections/clientKey/connections-dialog?orgId=organization_id_1"\n }\n ],\n "notConnectedOrganizations": [\n {\n "id": "organization_id_2",\n "name": "Organization Name 2",\n "managementUri": "https://connections.deere.com/connections/clientKey/connections-dialog?orgId=organization_id_2"\n }\n ]\n}\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/2cb670c2.c99d393f.js b/2cb670c2.c99d393f.js new file mode 100644 index 000000000..9e7541f68 --- /dev/null +++ b/2cb670c2.c99d393f.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{153:function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return p}));var a=n(0),r=n.n(a);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=r.a.createContext({}),u=function(e){var t=r.a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},d=function(e){var t=u(e.components);return r.a.createElement(l.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},m=r.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),d=u(n),m=a,p=d["".concat(i,".").concat(m)]||d[m]||f[m]||o;return n?r.a.createElement(p,s(s({ref:t},l),{},{components:n})):r.a.createElement(p,s({ref:t},l))}));function p(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var l=2;l=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=a.a.createContext({}),l=function(e){var n=a.a.useContext(c),r=n;return e&&(r="function"==typeof e?e(n):p(p({},n),e)),r},i=function(e){var n=l(e.components);return a.a.createElement(c.Provider,{value:n},e.children)},m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.a.createElement(a.a.Fragment,{},n)}},g=a.a.forwardRef((function(e,n){var r=e.components,t=e.mdxType,o=e.originalType,b=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),i=l(r),g=t,y=i["".concat(b,".").concat(g)]||i[g]||m[g]||o;return r?a.a.createElement(y,p(p({ref:n},c),{},{components:r})):a.a.createElement(y,p({ref:n},c))}));function y(e,n){var r=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var o=r.length,b=new Array(o);b[0]=g;var p={};for(var u in n)hasOwnProperty.call(n,u)&&(p[u]=n[u]);p.originalType=e,p.mdxType="string"==typeof e?e:t,b[1]=p;for(var c=2;c=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=n.a.createContext({}),p=function(e){var t=n.a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.a.createElement(l.Provider,{value:t},e.children)},b={inlineCode:"code",wrapper:function(e){var t=e.children;return n.a.createElement(n.a.Fragment,{},t)}},d=n.a.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,o=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=p(r),d=a,m=u["".concat(o,".").concat(d)]||u[d]||b[d]||i;return r?n.a.createElement(m,c(c({ref:t},l),{},{components:r})):n.a.createElement(m,c({ref:t},l))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=d;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:a,o[1]=c;for(var l=2;l Input Endpoints",permalink:"/docs/docs/beta_input_endpoints"}},s=[{value:"Machines",id:"machines",children:[]},{value:"Prescriptions",id:"prescriptions",children:[]},{value:"Layers",id:"layers",children:[]},{value:"Input",id:"input",children:[]}],l={rightToc:s};function p(e){var t=e.components,r=Object(n.a)(e,["components"]);return Object(i.b)("wrapper",Object(a.a)({},l,r,{components:t,mdxType:"MDXLayout"}),Object(i.b)("p",null,"The beta features contain experimental features that we are working on but can be used by Leaf customers.\nThe services available in this section may be updated as we release improvements."),Object(i.b)("p",null,"Currently, we are working in the following features:"),Object(i.b)("h2",{id:"machines"},"Machines"),Object(i.b)("p",null,"This product fetches and stores machine data such as serial number, fuel consumption and start/stop time from providers."),Object(i.b)("p",null,"Currently, we are obtaining data from the following providers:"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"CNHI"),Object(i.b)("li",{parentName:"ul"},"JohnDeere"),Object(i.b)("li",{parentName:"ul"},"Stara")),Object(i.b)("div",{className:"admonition admonition-info alert alert--info"},Object(i.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(i.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Implement Data")),Object(i.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("pre",{parentName:"div"},Object(i.b)("code",Object(a.a)({parentName:"pre"},{}),"Implement Data is only available for customers with John Deere credentials \n")))),Object(i.b)("h2",{id:"prescriptions"},"Prescriptions"),Object(i.b)("p",null,"What are prescriptions in agriculture? Prescriptions are usually used to apply inputs at variable rates across a field, applying only the amount needed for each area. For example, a prescription could be based on soil sample results or crop monitoring data, and instructs a machine where to best distribute lime, potassium or other products that can improve soil quality or crop health."),Object(i.b)("p",null,"Leaf helps organize the data flow for prescriptions. "),Object(i.b)("p",null,"Our supported providers are:"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"ClimateFieldView"),Object(i.b)("li",{parentName:"ul"},"John Deere"),Object(i.b)("li",{parentName:"ul"},"Raven Slingshot"),Object(i.b)("li",{parentName:"ul"},"CNHI")),Object(i.b)("p",null,"Note: The prescription should be included as a zip file containing a valid shapefile with least ",Object(i.b)("strong",{parentName:"p"},"three")," file extentions (",Object(i.b)("strong",{parentName:"p"},"shp"),", ",Object(i.b)("strong",{parentName:"p"},"dbf")," and ",Object(i.b)("strong",{parentName:"p"},"shx"),") with the same naming."),Object(i.b)("h2",{id:"layers"},"Layers"),Object(i.b)("p",null,"You can now get layers (e.g. tassel count, stand count, NVDI, and RGB) via Leaf\u2019s Sentera integration. Layers are used to display crop monitoring information geospatially on a farm map so that any variance in a crop can be visualized, usually at a field level. "),Object(i.b)("p",null,"Our supported providers are:"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Sentera")),Object(i.b)("h2",{id:"input"},"Input"),Object(i.b)("p",null,"This resource will search, in the operation's files, varieties of harvested/planted crops and applied products and\nstore this data. For products, data from Agrian and CDMS will also be made available globally, so that all customers can access it."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/3.ec14083e.js b/3.ec14083e.js new file mode 100644 index 000000000..70f0ade58 --- /dev/null +++ b/3.ec14083e.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{153:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return f}));var r=n(0),a=n.n(r);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=a.a.createContext({}),u=function(e){var t=a.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=u(e.components);return a.a.createElement(s.Provider,{value:t},e.children)},y={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},d=a.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=u(n),d=r,f=p["".concat(c,".").concat(d)]||p[d]||y[d]||o;return n?a.a.createElement(f,l(l({ref:t},s),{},{components:n})):a.a.createElement(f,l({ref:t},s))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,c=new Array(o);c[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l.mdxType="string"==typeof e?e:r,c[1]=l;for(var s=2;s0&&e[n-1]===t?e:e.concat(t)},h=function(e,t){var n=e.plain,r=Object.create(null),a=e.styles.reduce((function(e,n){var r=n.languages,a=n.style;return r&&!r.includes(t)||n.types.forEach((function(t){var n=p({},e[t],a);e[t]=n})),e}),r);return a.root=n,a.plain=p({},n,{backgroundColor:null}),a};function g(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===t.indexOf(r)&&(n[r]=e[r]);return n}var m=function(e){function t(){for(var t=this,n=[],r=arguments.length;r--;)n[r]=arguments[r];e.apply(this,n),u(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?h(e.theme,e.language):void 0;return t.themeDict=n})),u(this,"getLineProps",(function(e){var n=e.key,r=e.className,a=e.style,o=p({},g(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),c=t.getThemeDict(t.props);return void 0!==c&&(o.style=c.plain),void 0!==a&&(o.style=void 0!==o.style?p({},o.style,a):a),void 0!==n&&(o.key=n),r&&(o.className+=" "+r),o})),u(this,"getStyleForToken",(function(e){var n=e.types,r=e.empty,a=n.length,o=t.getThemeDict(t.props);if(void 0!==o){if(1===a&&"plain"===n[0])return r?{display:"inline-block"}:void 0;if(1===a&&!r)return o[n[0]];var c=r?{display:"inline-block"}:{},l=n.map((function(e){return o[e]}));return Object.assign.apply(Object,[c].concat(l))}})),u(this,"getTokenProps",(function(e){var n=e.key,r=e.className,a=e.style,o=e.token,c=p({},g(e,["key","className","style","token"]),{className:"token "+o.types.join(" "),children:o.content,style:t.getStyleForToken(o),key:void 0});return void 0!==a&&(c.style=void 0!==c.style?p({},c.style,a):a),void 0!==n&&(c.key=n),r&&(c.className+=" "+r),c}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,r=e.code,a=e.children,o=this.getThemeDict(this.props),c=t.languages[n];return a({tokens:function(e){for(var t=[[]],n=[e],r=[0],a=[e.length],o=0,c=0,l=[],i=[l];c>-1;){for(;(o=r[c]++)0?u:["plain"],s=p):(u=f(u,p.type),p.alias&&(u=f(u,p.alias)),s=p.content),"string"==typeof s){var h=s.split(y),g=h.length;l.push({types:u,content:h[0]});for(var m=1;m0}))}c&&S.test(c)&&(E=c.match(S)[0].split("title=")[1].replace(/"+/g,""));var D=n&&n.replace(/language-/,"");!D&&u.defaultLanguage&&(D=u.defaultLanguage);var B=t.replace(/\n$/,"");if(0===j.length&&void 0!==D){for(var A,L="",I=function(e){switch(e){case"js":case"javascript":case"ts":case"typescript":return C(["js","jsBlock"]);case"jsx":case"tsx":return C(["js","jsBlock","jsx"]);case"html":return C(["js","jsBlock","html"]);case"python":case"py":return C(["python"]);default:return C()}}(D),R=t.replace(/\n$/,"").split("\n"),F=0;F{const n=document.createElement("textarea"),r=document.activeElement;n.value=e,n.setAttribute("readonly",""),n.style.contain="strict",n.style.position="absolute",n.style.left="-9999px",n.style.fontSize="12pt";const a=document.getSelection();let o=!1;a.rangeCount>0&&(o=a.getRangeAt(0)),t.append(n),n.select(),n.selectionStart=0,n.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch(l){}return n.remove(),o&&(a.removeAllRanges(),a.addRange(o)),r&&r.focus(),c};e.exports=r,e.exports.default=r},199:function(e,t){e.exports.parse=function(e){var t=e.split(",").map((function(e){return function(e){if(/^-?\d+$/.test(e))return parseInt(e,10);var t;if(t=e.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){var n=t[1],r=t[2],a=t[3];if(n&&a){var o=[],c=(n=parseInt(n))<(a=parseInt(a))?1:-1;"-"!=r&&".."!=r&&"\u2025"!=r||(a+=c);for(var l=n;l!=a;l+=c)o.push(l);return o}}return[]}(e)}));return 0===t.length?[]:1===t.length?Array.isArray(t[0])?t[0]:t:t.reduce((function(e,t){return Array.isArray(e)||(e=[e]),Array.isArray(t)||(t=[t]),e.concat(t)}))}}}]); \ No newline at end of file diff --git a/301cc83b.034f9ca9.js b/301cc83b.034f9ca9.js new file mode 100644 index 000000000..eec3dceb0 --- /dev/null +++ b/301cc83b.034f9ca9.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{153:function(e,t,n){"use strict";n.d(t,"a",(function(){return p})),n.d(t,"b",(function(){return h}));var i=n(0),a=n.n(i);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function d(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=a.a.createContext({}),c=function(e){var t=a.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):d(d({},t),e)),n},p=function(e){var t=c(e.components);return a.a.createElement(o.Provider,{value:t},e.children)},b={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},f=a.a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,o=s(e,["components","mdxType","originalType","parentName"]),p=c(n),f=i,h=p["".concat(l,".").concat(f)]||p[f]||b[f]||r;return n?a.a.createElement(h,d(d({ref:t},o),{},{components:n})):a.a.createElement(h,d({ref:t},o))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,l=new Array(r);l[0]=f;var d={};for(var s in t)hasOwnProperty.call(t,s)&&(d[s]=t[s]);d.originalType=e,d.mdxType="string"==typeof e?e:i,l[1]=d;for(var o=2;o=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=o.a.createContext({}),l=function(e){var t=o.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},f=function(e){var t=l(e.components);return o.a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},p=o.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,i=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),f=l(n),p=r,b=f["".concat(i,".").concat(p)]||f[p]||d[p]||a;return n?o.a.createElement(b,c(c({ref:t},s),{},{components:n})):o.a.createElement(b,c({ref:t},s))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=p;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var s=2;s=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=r.a.createContext({}),o=function(e){var t=r.a.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):c(c({},t),e)),a},d=function(e){var t=o(e.components);return r.a.createElement(p.Provider,{value:t},e.children)},O={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},j=r.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,b=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=o(a),j=n,u=d["".concat(l,".").concat(j)]||d[j]||O[j]||b;return a?r.a.createElement(u,c(c({ref:t},p),{},{components:a})):r.a.createElement(u,c({ref:t},p))}));function u(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var b=a.length,l=new Array(b);l[0]=j;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c.mdxType="string"==typeof e?e:n,l[1]=c;for(var p=2;p + + + + + + + +Page Not Found | Leaf + + + + + +

+

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+ + + + + \ No newline at end of file diff --git a/43187bfa.aa81678a.js b/43187bfa.aa81678a.js new file mode 100644 index 000000000..8f3e537b9 --- /dev/null +++ b/43187bfa.aa81678a.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{153:function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return f}));var r=n(0),o=n.n(r);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=o.a.createContext({}),l=function(e){var t=o.a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},d=function(e){var t=l(e.components);return o.a.createElement(p.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},b=o.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,i=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),b=r,f=d["".concat(i,".").concat(b)]||d[b]||u[b]||a;return n?o.a.createElement(f,c(c({ref:t},p),{},{components:n})):o.a.createElement(f,c({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var p=2;p=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=r.a.createContext({}),b=function(e){var t=r.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=b(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},p=r.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,c=e.parentName,o=l(e,["components","mdxType","originalType","parentName"]),d=b(n),p=a,O=d["".concat(c,".").concat(p)]||d[p]||u[p]||s;return n?r.a.createElement(O,i(i({ref:t},o),{},{components:n})):r.a.createElement(O,i({ref:t},o))}));function O(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,c=new Array(s);c[0]=p;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:a,c[1]=i;for(var o=2;o console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/cnhi-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/cnhi-credentials'\n")))),Object(s.b)("h4",{id:"response"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "clientId": "str",\n "clientSecret": "str",\n "refreshToken": "str",\n "clientEnvironment": "STAGE or PRODUCTION",\n "subscriptionKey": "str"\n}\n')),Object(s.b)("h3",{id:"create-a-cnhi-credentials"},"Create a CNHI credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/cnhi-credentials")," "),Object(s.b)("p",null,"Create a CNHI credentials for the Leaf User."),Object(s.b)("h4",{id:"request-body"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "clientId": "str",\n "clientSecret": "str",\n "subscriptionKey": "str",\n "refreshToken": "str",\n "clientEnvironment": "STAGE or PRODUCTION"\n}\n')),Object(s.b)("h4",{id:"request-examples-1"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/cnhi-credentials\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "clientId": "str",\n "clientSecret": "str",\n "subscriptionKey": "str",\n "refreshToken": "str",\n "clientEnvironment": "STAGE or PRODUCTION"\n}\n\naxios.post(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/cnhi-credentials\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n\ndata = {\n "clientId": "str",\n "clientSecret": "str",\n "subscriptionKey": "str",\n "refreshToken": "str",\n "clientEnvironment": "STAGE or PRODUCTION"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -H \'Content-Type: application/json\' \\\n -d \'{"clientId": "str", "clientSecret": "str", "subscriptionKey": "str", "refreshToken": "str", "clientEnvironment": "STAGE or PRODUCTION"}\' \\\n \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/cnhi-credentials\'\n')))),Object(s.b)("h4",{id:"response-1"},"Response"),Object(s.b)("p",null,"A CNHI credentials with status."),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "clientId": "str",\n "clientSecret": "str",\n "refreshToken": "str",\n "clientEnvironment": "STAGE or PRODUCTION",\n "subscriptionKey": "str"\n}\n')),Object(s.b)("h3",{id:"delete-cnhi-credentials"},"Delete CNHI credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/cnhi-credentials")),Object(s.b)("p",null,"Delete Leaf User's CNHI credentials."),Object(s.b)("h4",{id:"request-examples-2"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/cnhi-credentials'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/cnhi-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/cnhi-credentials'\n")))),Object(s.b)("h2",{id:"troubleshooting"},"Troubleshooting"),Object(s.b)("p",null,"With these endpoints, you can do some troubleshooting to see your credential's health."),Object(s.b)("h3",{id:"events"},"Events"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/cnhi-credentials/events")),Object(s.b)("p",null,"Get the logs of the provider credential based on the LeafUserId sent."),Object(s.b)("h4",{id:"request-examples-3"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/cnhi-credentials/events'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/cnhi-credentials/events'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}\n /cnhi-credentials/events'\n")))),Object(s.b)("h4",{id:"response-2"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "body": "string",\n "createdDate": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "headers": "string",\n "id": "string",\n "statusCode": "int"\n }\n]\n')),Object(s.b)("div",{className:"admonition admonition-warning alert alert--danger"},Object(s.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(s.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})))),"warning")),Object(s.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available."))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/54f8a06c.285d7779.js b/54f8a06c.285d7779.js new file mode 100644 index 000000000..3ffdf4ceb --- /dev/null +++ b/54f8a06c.285d7779.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{153:function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return b}));var r=n(0),a=n.n(r);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=a.a.createContext({}),l=function(e){var t=a.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},d=function(e){var t=l(e.components);return a.a.createElement(s.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},p=a.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),d=l(n),p=r,b=d["".concat(i,".").concat(p)]||d[p]||f[p]||o;return n?a.a.createElement(b,c(c({ref:t},s),{},{components:n})):a.a.createElement(b,c({ref:t},s))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=p;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var s=2;s=0||(s[a]=e[a]);return s}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(s[a]=e[a])}return s}var c=s.a.createContext({}),b=function(e){var t=s.a.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=b(e.components);return s.a.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return s.a.createElement(s.a.Fragment,{},t)}},u=s.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,i=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=b(a),u=n,O=p["".concat(i,".").concat(u)]||p[u]||d[u]||r;return a?s.a.createElement(O,l(l({ref:t},c),{},{components:a})):s.a.createElement(O,l({ref:t},c))}));function O(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,i=new Array(r);i[0]=u;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l.mdxType="string"==typeof e?e:n,i[1]=l;for(var c=2;c console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(l.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/files'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(r.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/files'\n")))),Object(r.b)("h4",{id:"response"},"Response"),Object(r.b)("p",null,'The response is a JSON with the key "operations" referring to a list of files.\n',Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/machine_file_conversion_sample_output#machine-file-sample"}),"Here's a link with sample responses"),' for "planted", "applied", "harvested" and "tillage" operation files.'),Object(r.b)("h3",{id:"get-a-file"},"Get a file"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"p"},"/files/{id}")),Object(r.b)("p",null,"Gets a single file by its id."),Object(r.b)("h4",{id:"request-examples-1"},"Request examples"),Object(r.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(l.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/files/{id}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(l.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/files/{id}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(r.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/files/{id}'\n")))),Object(r.b)("h4",{id:"response-1"},"Response"),Object(r.b)("p",null,Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/machine_file_conversion_sample_output#machine-file-sample"}),"Here's a link with sample responses"),' for "planted", "applied", "harvested" and "tillage" operation files.'),Object(r.b)("h3",{id:"get-a-file-summary"},"Get a file summary"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"p"},"/files/{id}/summary")),Object(r.b)("p",null,"Gets the summary, if available, for the file id."),Object(r.b)("h4",{id:"request-examples-2"},"Request examples"),Object(r.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(l.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/files/{id}/summary'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(l.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/files/{id}/summary'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(r.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/files/{id}/summary'\n")))),Object(r.b)("h4",{id:"response-2"},"Response"),Object(r.b)("p",null,Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/machine_file_conversion_sample_output#summary-response-sample"}),"Here's a link with sample responses"),' for "planted", "applied", "harvested" and "tillage" operation files.'),Object(r.b)("h3",{id:"get-a-files-images"},"Get a file's images"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"p"},"/files/{id}/images")),Object(r.b)("p",null,"Gets a list of PNG images generated from the operation's file properties."),Object(r.b)("h4",{id:"request-examples-3"},"Request examples"),Object(r.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(l.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/files/{id}/images'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(l.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/files/{id}/images'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(r.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/files/{id}/images'\n")))),Object(r.b)("h4",{id:"response-3"},"Response"),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "property": "elevation",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [ 0, 230, 0],\n "75%": [ 0, 190, 0],\n "100%": [ 0, 130, 0],\n "nv": [ 0, 0, 0, 0]\n },\n "url": "URL",\n "downloadUrl": "URL"\n },\n ....\n]\n')),Object(r.b)("p",null,"The ",Object(r.b)("inlineCode",{parentName:"p"},"property")," refers to the property extracted from files' data to generate the\nimage. In the example above, the image would represent the elevation."),Object(r.b)("p",null,"The ",Object(r.b)("inlineCode",{parentName:"p"},"ramp")," is the color ramp used to generate the image. The percentages\ncorrespond to the minimum (0%) and maximum (100%) values in the image. The\nlisted values correspond to RGB values used. The ",Object(r.b)("inlineCode",{parentName:"p"},"nv")," refers to ",Object(r.b)("inlineCode",{parentName:"p"},"no value"),". It\nis used internally to make the image transparent on places without data.\nCurrently, this ramp is the same in all images processed."),Object(r.b)("p",null,"We also generate an auxiliary ",Object(r.b)("inlineCode",{parentName:"p"},"xml")," with geographic information to handle this\nimage on GIS environments. You just need to append the ",Object(r.b)("inlineCode",{parentName:"p"},'".aux.xml"')," string to the png url."),Object(r.b)("h3",{id:"get-a-files-units"},"Get a file's units"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"p"},"/files/{id}/units")),Object(r.b)("p",null,"Gets the file's properties and their units."),Object(r.b)("h4",{id:"request-examples-4"},"Request examples"),Object(r.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(l.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/files/{id}/units'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(l.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/files/{id}/units'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(r.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/files/{id}/units'\n")))),Object(r.b)("h4",{id:"response-4"},"Response"),Object(r.b)("p",null,Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/machine_file_conversion_sample_output#machine-files-units"}),"Here's a link with sample responses"),' for "planted", "applied", "harvested" and "tillage" operation files.'),Object(r.b)("p",null,"These properties vary depending on the operationType, but you can expect the same,\nstandardized keys, across different providers."),Object(r.b)("p",null,"Units usually don't change for the same Leaf User, since the providers units\nconfiguration is based on their location. But keep in mind that it's best to\nalways take the units into consideration, just to be sure."),Object(r.b)("h3",{id:"get-a-file-status"},"Get a file status"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"p"},"/files/{id}/status")),Object(r.b)("p",null,"Get status by file processing step by id."),Object(r.b)("h4",{id:"request-examples-5"},"Request examples"),Object(r.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(l.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/operations/api/files/{id}/status'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(l.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/files/{id}/status'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(r.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/files/{id}/status'\n")))),Object(r.b)("h4",{id:"response-5"},"Response"),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "rawGeojson": {\n "status": "processed",\n "message": "ok"\n },\n "normalizedGeojson": {\n "status": "processed",\n "message": "ok"\n },\n "standardGeojson": {\n "status": "processed",\n "message": "ok"\n },\n "propertiesPNGs": {\n "status": "processed",\n "message": "ok"\n },\n "areaAndYield": {\n "status": "processed",\n "message": "ok"\n },\n "summary": {\n "status": "processed",\n "message": "ok"\n },\n "units": {\n "status": "processed",\n "message": "ok"\n },\n "originalFile": {\n "status": "processed",\n "message": "ok"\n },\n "cleanupGeojson": {\n "status": "processed",\n "message": "ok"\n }\n}\n')),Object(r.b)("h3",{id:"get-uncovered-files"},"Get uncovered files"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"p"},"/files/uncoveredFiles?leafUserId={leafUserId}")),Object(r.b)("p",null,"Get a list of files that did not generate ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/operations_overview"}),"Field Operations"),", as they do not intersect with any field.\nThe returned IDs can be consulted in the ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"#get-a-file"}),"Get a file")," endpoint."),Object(r.b)("p",null,"This endpoint requires the ",Object(r.b)("inlineCode",{parentName:"p"},"leafUserId")," filter."),Object(r.b)("h4",{id:"request-examples-6"},"Request examples"),Object(r.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(l.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/operations/api/files/uncoveredFiles?leafUserId={leafUserId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(l.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/files/uncoveredFiles?leafUserId={leafUserId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(r.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/files/uncoveredFiles?leafUserId={leafUserId}'\n")))),Object(r.b)("h4",{id:"response-6"},"Response"),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "files": [\n "c3ad6c7b-19b8-4cd7-580a-dfab82043465",\n "c3ad6c7b-c472-49e9-aab2-7ad222843465",\n "9aa68735-5a04-42ef-0983-dbdd2bcdfa16"\n ]\n}\n')),Object(r.b)("h3",{id:"merge-files"},"Merge files"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"p"},"/files/merge")),Object(r.b)("p",null,"Posts a merge operation to our server."),Object(r.b)("p",null,"A merge operation is performed asynchronously. This call will return immediately\nwith the newly created file entry, but at this point, the file is not already\nprocessed and available. You will need to make a new ",Object(r.b)("inlineCode",{parentName:"p"},"GET /files")," request for the\nnew id and check the status. A status value of ",Object(r.b)("inlineCode",{parentName:"p"},"processed")," means the file is\ndone merging."),Object(r.b)("p",null,"A merge process has some validations, the files passed must belong to\nthe same ",Object(r.b)("inlineCode",{parentName:"p"},"leafUserId"),", be of the same operation type and have the status as ",Object(r.b)("inlineCode",{parentName:"p"},"processed"),".\nIf any of those filters fail, the endpoint will result in HTTP 400 error."),Object(r.b)("p",null,"It receives a single JSON object with the ",Object(r.b)("inlineCode",{parentName:"p"},"ids")," entry."),Object(r.b)("h4",{id:"request-body"},"Request body"),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "ids": [ "id1", "id2", "so on" ]\n}\n')),Object(r.b)("h4",{id:"request-examples-7"},"Request examples"),Object(r.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(l.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/files/merge'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = { ids: [ 'id1', 'id2' ] }\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(l.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/files/merge'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {'ids': ['id1', 'id2']}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(r.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -d '{ \"ids\": [ \"id1\", \"id2\" ] }'\n 'https://api.withleaf.io/services/operations/api/files/merge'\n")))),Object(r.b)("h4",{id:"response-7"},"Response"),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "id",\n "status": "SENT_TO_MERGE"\n}\n')),Object(r.b)("p",null,"After a few minutes, you can consult the result of Leaf processing over this file by\nperforming GET consults in this."),Object(r.b)("h2",{id:"alerts"},"Alerts"),Object(r.b)("p",null,"With Alerts you can be notified when something happens or changes instead of needing to repeatedly query for changes.\nLeaf Alerts support events that happen within Leaf and events that happen within supported 3rd party software. "),Object(r.b)("h3",{id:"list-of-operations-events"},"List of Operations Events"),Object(r.b)("p",null,"Leaf Operations Service can Alert you on these events: ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/alerts_events#operation-events"}),"list of Operations Events")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/59b50206.239ae4a1.js b/59b50206.239ae4a1.js new file mode 100644 index 000000000..e26fe9240 --- /dev/null +++ b/59b50206.239ae4a1.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{153:function(e,t,r){"use strict";r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return d}));var n=r(0),o=r.n(n);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=o.a.createContext({}),l=function(e){var t=o.a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=l(e.components);return o.a.createElement(s.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},b=o.a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),u=l(r),b=n,d=u["".concat(c,".").concat(b)]||u[b]||f[b]||a;return r?o.a.createElement(d,i(i({ref:t},s),{},{components:r})):o.a.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i.mdxType="string"==typeof e?e:n,c[1]=i;for(var s=2;s=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=o.a.createContext({}),l=function(e){var t=o.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},f=function(e){var t=l(e.components);return o.a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},v=o.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,i=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),f=l(n),v=r,p=f["".concat(i,".").concat(v)]||f[v]||d[v]||a;return n?o.a.createElement(p,c(c({ref:t},s),{},{components:n})):o.a.createElement(p,c({ref:t},s))}));function p(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=v;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var s=2;s=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=r.a.createContext({}),b=function(e){var t=r.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=b(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},p=r.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,c=e.parentName,o=l(e,["components","mdxType","originalType","parentName"]),d=b(n),p=a,O=d["".concat(c,".").concat(p)]||d[p]||u[p]||s;return n?r.a.createElement(O,i(i({ref:t},o),{},{components:n})):r.a.createElement(O,i({ref:t},o))}));function O(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,c=new Array(s);c[0]=p;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:a,c[1]=i;for(var o=2;o console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-credentials'\n")))),Object(s.b)("h4",{id:"response"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "tokenMetadata": {"scopes": ["str"]},\n "clientId": "str",\n "clientSecret": "str",\n "refreshToken": "str",\n "accessToken": "str"\n}\n')),Object(s.b)("h3",{id:"create-a-raven-credentials"},"Create a Raven credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/raven-credentials")," "),Object(s.b)("p",null,"Create a Raven credentials for the Leaf User."),Object(s.b)("h4",{id:"request-body"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "clientId": "str",\n "clientSecret": "str",\n "refreshToken": "str"\n}\n')),Object(s.b)("h4",{id:"request-examples-1"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-credentials\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "clientId": "str",\n "clientSecret": "str",\n "refreshToken": "str"\n}\n\naxios.post(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-credentials\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n\ndata = {\n "clientId": "str",\n "clientSecret": "str",\n "refreshToken": "str"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n-H \'Authorization: Bearer YOUR_TOKEN\' \\\n-H \'Content-Type: application/json\' \\\n-d \'{ "clientId": "str","clientSecret": "str","refreshToken":"str"}\' \\\n\'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-credentials\'\n')))),Object(s.b)("h4",{id:"response-1"},"Response"),Object(s.b)("p",null,"A Raven Credentials with status."),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "tokenMetadata": {"scopes": ["str"]},\n "clientId": "str",\n "clientSecret": "str",\n "refreshToken": "str",\n "accessToken": "str"\n}\n')),Object(s.b)("h3",{id:"delete-raven-credentials"},"Delete Raven credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/raven-credentials")," "),Object(s.b)("p",null,"Delete Leaf User's Raven credentials."),Object(s.b)("h4",{id:"request-examples-2"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-credentials'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-credentials'\n")))),Object(s.b)("h2",{id:"troubleshooting"},"Troubleshooting"),Object(s.b)("p",null,"With these endpoints, you can do some troubleshooting to see your credential's health."),Object(s.b)("h3",{id:"events"},"Events"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/raven-credentials/events")),Object(s.b)("p",null,"Get the logs of the provider credential based on the LeafUserId sent."),Object(s.b)("h4",{id:"request-examples-3"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-credentials/events'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-credentials/events'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}\n /raven-credentials/events'\n")))),Object(s.b)("h4",{id:"response-2"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "body": "string",\n "createdDate": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "headers": "string",\n "id": "string",\n "statusCode": "int"\n }\n]\n')),Object(s.b)("div",{className:"admonition admonition-warning alert alert--danger"},Object(s.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(s.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})))),"warning")),Object(s.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available."))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/5c9efad4.1ae929c0.js b/5c9efad4.1ae929c0.js new file mode 100644 index 000000000..27c563e75 --- /dev/null +++ b/5c9efad4.1ae929c0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{153:function(e,a,n){"use strict";n.d(a,"a",(function(){return p})),n.d(a,"b",(function(){return u}));var t=n(0),i=n.n(t);function r(e,a,n){return a in e?Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[a]=n,e}function l(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),n.push.apply(n,t)}return n}function o(e){for(var a=1;a=0||(i[n]=e[n]);return i}(e,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=i.a.createContext({}),b=function(e){var a=i.a.useContext(s),n=a;return e&&(n="function"==typeof e?e(a):o(o({},a),e)),n},p=function(e){var a=b(e.components);return i.a.createElement(s.Provider,{value:a},e.children)},d={inlineCode:"code",wrapper:function(e){var a=e.children;return i.a.createElement(i.a.Fragment,{},a)}},m=i.a.forwardRef((function(e,a){var n=e.components,t=e.mdxType,r=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),p=b(n),m=t,u=p["".concat(l,".").concat(m)]||p[m]||d[m]||r;return n?i.a.createElement(u,o(o({ref:a},s),{},{components:n})):i.a.createElement(u,o({ref:a},s))}));function u(e,a){var n=arguments,t=a&&a.mdxType;if("string"==typeof e||t){var r=n.length,l=new Array(r);l[0]=m;var o={};for(var c in a)hasOwnProperty.call(a,c)&&(o[c]=a[c]);o.originalType=e,o.mdxType="string"==typeof e?e:t,l[1]=o;for(var s=2;s Magic Link",sidebar_label:"Endpoints"},b={unversionedId:"Magic_link_endpoints",id:"Magic_link_endpoints",isDocsHomePage:!1,title:"Magic Link Endpoints",description:"Leaf Link > Magic Link",source:"@site/docs/Magic_link_endpoints.md",permalink:"/docs/docs/Magic_link_endpoints",editUrl:"https://github.com/Leaf-Agriculture/docs/tree/master/docs/Magic_link_endpoints.md",sidebar_label:"Endpoints",sidebar:"docs",previous:{title:"Magic Link Overview",permalink:"/docs/docs/Magic_link_overview"}},p=[{value:"About",id:"about",children:[]},{value:"Magic Link",id:"magic-link",children:[{value:"Provider",id:"provider",children:[]},{value:"Authentication",id:"authentication",children:[]},{value:"File upload",id:"file-upload",children:[]}]},{value:"Magic Link with Leaf User Creation",id:"magic-link-with-leaf-user-creation",children:[{value:"Create a Provider Magic Link",id:"create-a-provider-magic-link-1",children:[]},{value:"Create an Authentication Magic Link",id:"create-an-authentication-magic-link-1",children:[]},{value:"Create a File Upload Magic Link",id:"create-a-file-upload-magic-link-1",children:[]}]},{value:"Link customization",id:"link-customization",children:[]}],d={rightToc:p};function m(e){var a=e.components,n=Object(i.a)(e,["components"]);return Object(r.b)("wrapper",Object(t.a)({},d,n,{components:a,mdxType:"MDXLayout"}),Object(r.b)("h2",{id:"about"},"About"),Object(r.b)("p",null,"All HTTP methods should be prepended by this service's endpoint:"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{}),"https://api.withleaf.io/services/widgets/api\n")),Object(r.b)("h2",{id:"magic-link"},"Magic Link"),Object(r.b)("h3",{id:"provider"},"Provider"),Object(r.b)("p",null,"This is a link to authenticate with multiple providers."),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"}," Endpoints ")),Object(r.b)("table",null,Object(r.b)("thead",{parentName:"table"},Object(r.b)("tr",{parentName:"thead"},Object(r.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Description"),Object(r.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(r.b)("tbody",{parentName:"table"},Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(t.a)({parentName:"td"},{href:"#get-all-provider-magic-links"}),"Get all provider Magic Links")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"td"},"/magic-link/provider"))),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(t.a)({parentName:"td"},{href:"#get-a-provider-magic-link"}),"Get a provider Magic Link")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"td"},"/magic-link/provider/{magicLinkId}"))),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(t.a)({parentName:"td"},{href:"#create-a-provider-magic-link"}),"Create a provider Magic Link")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"td"},"/magic-link/users/{leafUserId}/provider"))),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(t.a)({parentName:"td"},{href:"#delete-a-provider-magic-link"}),"Delete a provider Magic Link")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(r.b)("inlineCode",{parentName:"td"},"/magic-link/provider/{magicLinkId}"))))),Object(r.b)("h4",{id:"get-all-provider-magic-link"},"Get all provider Magic Link"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"p"},"/magic-link/provider")),Object(r.b)("p",null,"Get all created links for authentication across multiple providers."),Object(r.b)("h5",{id:"request-examples"},"Request examples"),Object(r.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(o.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/provider'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(o.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/provider'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(r.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/widgets/api/magic-link/provider'\n")))),Object(r.b)("h5",{id:"response"},"Response"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "magicLinkId",\n "link": "https://magic-link.withleaf.io/{magicLinkId}",\n "createdAt": "2023-11-02T19:17:16.494Z",\n "expiresAt": "2024-10-26T14:23:56.584Z",\n "lastAccessedAt": "2023-11-02T19:17:18.906Z",\n "leafUserId": "UUID",\n "maxUsage": 3,\n "usageCount": 0,\n "widget": "PROVIDER",\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n },\n "allowedProviders": [\n "Other"\n ]\n },\n ....\n]\n')),Object(r.b)("h4",{id:"get-a-provider-magic-link"},"Get a provider Magic Link"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"p"},"/magic-link/provider/{magicLinkId}")),Object(r.b)("p",null,"Get a created link for authentication across multiple providers."),Object(r.b)("h5",{id:"request-examples-1"},"Request examples"),Object(r.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(o.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/provider/{magicLinkId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(o.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/provider/{magicLinkId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(r.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/widgets/api/magic-link/provider/{magicLinkId}'\n")))),Object(r.b)("h5",{id:"response-1"},"Response"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "magicLinkId",\n "link": "https://magic-link.withleaf.io/{magicLinkId}",\n "createdAt": "2023-11-02T19:17:16.494Z",\n "expiresAt": "2024-10-26T14:23:56.584Z",\n "lastAccessedAt": "2023-11-02T19:17:18.906Z",\n "leafUserId": "UUID",\n "maxUsage": 3,\n "usageCount": 0,\n "widget": "PROVIDER",\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n },\n "allowedProviders": [\n "Other"\n ]\n}\n')),Object(r.b)("h4",{id:"create-a-provider-magic-link"},"Create a provider Magic Link"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"p"},"/magic-link/users/{leafUserId}/provider")),Object(r.b)("div",{className:"admonition admonition-info alert alert--info"},Object(r.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(t.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(t.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(r.b)("path",Object(t.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Provider application info")),Object(r.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"Make sure you set up your provider application first. More info ",Object(r.b)("a",Object(t.a)({parentName:"p"},{href:"/docs/Link_provider_connection#set-up"}),"here"),"."))),Object(r.b)("p",null,"Creates a link for authentication across multiple providers."),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"allowedProviders"),": the list of providers allowed in the authentication process. It can be one or more of the following: ",Object(r.b)("inlineCode",{parentName:"li"},"JohnDeere"),", ",Object(r.b)("inlineCode",{parentName:"li"},"ClimateFieldView"),", ",Object(r.b)("inlineCode",{parentName:"li"},"CNHI"),", ",Object(r.b)("inlineCode",{parentName:"li"},"AgLeader"),", and ",Object(r.b)("inlineCode",{parentName:"li"},"Trimble"),"."),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"expiresIn"),": an integer number for the expiration time, in seconds. This parameter is optional and the default value is ",Object(r.b)("inlineCode",{parentName:"li"},"900")," (minimum) and the maximum is the equivalent to 1 year.")),Object(r.b)("h5",{id:"request-body"},"Request body"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "expiresIn": int,\n "allowedProviders": [\n "providerName"\n ]\n}\n')),Object(r.b)("h5",{id:"request-examples-2"},"Request examples"),Object(r.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(o.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/provider\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "expiresIn": int,\n "allowedProviders": ["providerName"],\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n }\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(r.b)(o.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/provider\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n \ndata = {\n "expiresIn": int,\n "allowedProviders": ["providerName"],\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n }\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(r.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "expiresIn": int, "allowedProviders": ["providerName"], "settings": { "backgroundColor": "codeColor", "headerImage": "URL", "companyLogo": "URL", "companyName": "companyName", "showLeafUserName": "boolean", "disconnectEnabled": "boolean" } }\'\n \'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/provider\'\n')))),Object(r.b)("h5",{id:"response-2"},"Response"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "magicLinkId",\n "leafUserId": "UUID",\n "link": "https://magic-link.withleaf.io/{magicLinkId}",\n "expiresAt": "2010-10-10T10:10:10.000000000Z"\n}\n')),Object(r.b)("h4",{id:"delete-a-provider-magic-link"},"Delete a provider Magic Link"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(r.b)("inlineCode",{parentName:"p"},"/magic-link/provider/{magicLinkId}")),Object(r.b)("p",null,"Delete a link for authentication across multiple providers."),Object(r.b)("h5",{id:"request-examples-3"},"Request examples"),Object(r.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(o.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/provider/{magicLinkId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(o.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/provider/{magicLinkId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(r.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/widgets/api/magic-link/provider/{magicLinkId}'\n")))),Object(r.b)("h3",{id:"authentication"},"Authentication"),Object(r.b)("p",null,"This is a link to authenticate with a single provider."),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"}," Endpoints ")),Object(r.b)("table",null,Object(r.b)("thead",{parentName:"table"},Object(r.b)("tr",{parentName:"thead"},Object(r.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Description"),Object(r.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(r.b)("tbody",{parentName:"table"},Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(t.a)({parentName:"td"},{href:"#get-all-authentication-magic-links"}),"Get all authentication Magic Links")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"td"},"/magic-link/authentication"))),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(t.a)({parentName:"td"},{href:"#get-an-authentication-magic-link"}),"Get an authentication Magic Link")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"td"},"/magic-link/authentication/{magicLinkId}"))),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(t.a)({parentName:"td"},{href:"#create-an-authentication-magic-link"}),"Create an authentication Magic Link")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"td"},"/magic-link/users/{leafUserId}/authentication"))),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(t.a)({parentName:"td"},{href:"#delete-an-authentication-magic-link"}),"Delete an authentication Magic Link")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(r.b)("inlineCode",{parentName:"td"},"/magic-link/authentication/{magicLinkId}"))))),Object(r.b)("h4",{id:"get-all-authentication-magic-links"},"Get all authentication Magic Links"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"p"},"/magic-link/authentication")),Object(r.b)("p",null,"Get all created links for authentication with a single provider."),Object(r.b)("h5",{id:"request-examples-4"},"Request examples"),Object(r.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(o.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/authentication'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(o.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/authentication'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(r.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/widgets/api/magic-link/authentication'\n")))),Object(r.b)("h5",{id:"response-3"},"Response"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "magicLinkId",\n "link": "https://magic-link.withleaf.io/{magicLinkId}",\n "createdAt": "2023-11-02T19:17:16.494Z",\n "expiresAt": "2024-10-26T14:23:56.584Z",\n "lastAccessedAt": "2023-11-02T19:17:18.906Z",\n "leafUserId": "UUID",\n "maxUsage": 3,\n "usageCount": 0,\n "widget": "AUTHENTICATION",\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n },\n "provider": "providerName"\n },\n ....\n]\n')),Object(r.b)("h4",{id:"get-an-authentication-magic-link"},"Get an authentication Magic Link"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"p"},"/magic-link/authentication/{magicLinkId}")),Object(r.b)("p",null,"Get a created link for authentication with a single provider."),Object(r.b)("h5",{id:"request-examples-5"},"Request examples"),Object(r.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(o.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/authentication/{magicLinkId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(o.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/authentication/{magicLinkId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(r.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/widgets/api/magic-link/authentication/{magicLinkId}'\n")))),Object(r.b)("h5",{id:"response-4"},"Response"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "magicLinkId",\n "link": "https://magic-link.withleaf.io/{magicLinkId}",\n "createdAt": "2023-11-02T19:17:16.494Z",\n "expiresAt": "2024-10-26T14:23:56.584Z",\n "lastAccessedAt": "2023-11-02T19:17:18.906Z",\n "leafUserId": "UUID",\n "maxUsage": 3,\n "usageCount": 0,\n "widget": "AUTHENTICATION",\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n },\n "provider": "providerName"\n}\n')),Object(r.b)("h4",{id:"create-an-authentication-magic-link"},"Create an authentication Magic Link"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"p"},"/magic-link/users/{leafUserId}/authentication")),Object(r.b)("div",{className:"admonition admonition-info alert alert--info"},Object(r.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(t.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(t.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(r.b)("path",Object(t.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Provider application info")),Object(r.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"Make sure you set up your provider application first. More info ",Object(r.b)("a",Object(t.a)({parentName:"p"},{href:"/docs/Link_provider_connection#set-up"}),"here"),"."))),Object(r.b)("p",null,"Creates a link for authentication with a single provider."),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"provider"),": the provider to be used in the authentication process. It can be: ",Object(r.b)("inlineCode",{parentName:"li"},"JohnDeere"),", ",Object(r.b)("inlineCode",{parentName:"li"},"ClimateFieldView"),", ",Object(r.b)("inlineCode",{parentName:"li"},"CNHI"),", ",Object(r.b)("inlineCode",{parentName:"li"},"AgLeader")," or ",Object(r.b)("inlineCode",{parentName:"li"},"Trimble"),"."),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"expiresIn"),": an integer number for the expiration time, in seconds. This parameter is optional and the default value is ",Object(r.b)("inlineCode",{parentName:"li"},"900")," (minimum) and the maximum is the equivalent to 1 year.")),Object(r.b)("h5",{id:"request-body-1"},"Request body"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "expiresIn": int,\n "provider": "providerName"\n}\n')),Object(r.b)("h5",{id:"request-examples-6"},"Request examples"),Object(r.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(o.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/authentication\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "expiresIn": int,\n "provider": "providerName",\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n }\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(r.b)(o.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/authentication\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n \ndata = {\n "expiresIn": int,\n "provider": "providerName",\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n }\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(r.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "expiresIn": int, "provider": "providerName", "settings": { "backgroundColor": "codeColor", "headerImage": "URL", "companyLogo": "URL", "companyName": "companyName", "showLeafUserName": "boolean", "disconnectEnabled": "boolean" } }\'\n \'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/authentication\'\n')))),Object(r.b)("h5",{id:"response-5"},"Response"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "magicLinkId",\n "leafUserId": "UUID",\n "link": "https://magic-link.withleaf.io/{magicLinkId}",\n "expiresAt": "2010-10-10T10:10:10.000000000Z"\n}\n')),Object(r.b)("h4",{id:"delete-an-authentication-magic-link"},"Delete an authentication Magic Link"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(r.b)("inlineCode",{parentName:"p"},"/magic-link/authentication/{magicLinkId}")),Object(r.b)("p",null,"Delete a link for authentication with a single provider."),Object(r.b)("h5",{id:"request-examples-7"},"Request examples"),Object(r.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(o.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/authentication/{magicLinkId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(o.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/authentication/{magicLinkId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(r.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/widgets/api/magic-link/authentication/{magicLinkId}'\n")))),Object(r.b)("h3",{id:"file-upload"},"File upload"),Object(r.b)("p",null,"This is a link to upload machine files."),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"}," Endpoints ")),Object(r.b)("table",null,Object(r.b)("thead",{parentName:"table"},Object(r.b)("tr",{parentName:"thead"},Object(r.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Description"),Object(r.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(r.b)("tbody",{parentName:"table"},Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(t.a)({parentName:"td"},{href:"#get-all-file-upload-magic-links"}),"Get all file upload Magic Links")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"td"},"/magic-link/file-upload"))),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(t.a)({parentName:"td"},{href:"#get-a-file-upload-magic-link"}),"Get a file upload Magic Link")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"td"},"/magic-link/file-upload/{magicLinkId}"))),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(t.a)({parentName:"td"},{href:"#create-a-file-upload-magic-link"}),"Create a file upload Magic Link")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"td"},"/magic-link/users/{leafUserId}/file-upload"))),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(t.a)({parentName:"td"},{href:"#delete-a-file-upload-magic-link"}),"Delete a file upload Magic Link")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(r.b)("inlineCode",{parentName:"td"},"/magic-link/file-upload/{magicLinkId}"))))),Object(r.b)("h4",{id:"get-all-file-upload-magic-links"},"Get all file upload Magic Links"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"p"},"/magic-link/file-upload")),Object(r.b)("p",null,"Get all file upload created links."),Object(r.b)("h5",{id:"request-examples-8"},"Request examples"),Object(r.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(o.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/file-upload'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(o.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/file-upload'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(r.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/widgets/api/magic-link/file-upload'\n")))),Object(r.b)("h5",{id:"response-6"},"Response"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "magicLinkId",\n "link": "https://magic-link.withleaf.io/{magicLinkId}",\n "createdAt": "2023-10-30T20:47:22.630Z",\n "expiresAt": "2023-10-30T21:02:22.729Z",\n "lastAccessedAt": "2023-10-30T20:47:28.209Z",\n "leafUserId": "UUID",\n "maxUsage": 3,\n "usageCount": 0,\n "widget": "FILEUPLOAD",\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n }\n },\n ....\n]\n')),Object(r.b)("h4",{id:"get-a-file-upload-magic-link"},"Get a file upload Magic Link"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--success"},"GET")," ",Object(r.b)("inlineCode",{parentName:"p"},"/magic-link/file-upload/{magicLinkId}")),Object(r.b)("p",null,"Get a file upload created link."),Object(r.b)("h5",{id:"request-examples-9"},"Request examples"),Object(r.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(o.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/file-upload/{magicLinkId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(o.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/file-upload/{magicLinkId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(r.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/widgets/api/magic-link/file-upload/{magicLinkId}'\n")))),Object(r.b)("h5",{id:"response-7"},"Response"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "magicLinkId",\n "link": "https://magic-link.withleaf.io/{magicLinkId}",\n "createdAt": "2023-10-30T20:47:22.630Z",\n "expiresAt": "2023-10-30T21:02:22.729Z",\n "lastAccessedAt": "2023-10-30T20:47:28.209Z",\n "leafUserId": "UUID",\n "maxUsage": 3,\n "usageCount": 0,\n "widget": "FILEUPLOAD",\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n }\n}\n')),Object(r.b)("h4",{id:"create-a-file-upload-magic-link"},"Create a file upload Magic Link"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"p"},"/magic-link/users/{leafUserId}/file-upload")),Object(r.b)("p",null,"Creates a file upload link."),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"expiresIn"),": an integer number for the expiration time, in seconds. This parameter is optional and the default value is ",Object(r.b)("inlineCode",{parentName:"li"},"900")," (minimum) and the maximum is the equivalent to 1 year.")),Object(r.b)("h5",{id:"request-body-2"},"Request body"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{ \n "expiresIn": int\n}\n')),Object(r.b)("h5",{id:"request-examples-10"},"Request examples"),Object(r.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(o.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/file-upload\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}`}\n\nconst data = {\n "expiresIn": int,\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n }\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(r.b)(o.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/file-upload\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n\ndata = {\n "expiresIn": int,\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n }\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(r.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "expiresIn": int, "settings": { "backgroundColor": "codeColor", "headerImage": "URL", "companyLogo": "URL", "companyName": "companyName", "showLeafUserName": "boolean", "disconnectEnabled": "boolean" } }\'\n \'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/file-upload\'\n')))),Object(r.b)("h5",{id:"response-8"},"Response"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "magicLinkId",\n "leafUserId": "UUID",\n "link": "https://magic-link.withleaf.io/{magicLinkId}",\n "expiresAt": "2010-10-10T10:10:10.000000000Z"\n}\n')),Object(r.b)("h4",{id:"delete-a-file-upload-magic-link"},"Delete a file upload Magic Link"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(r.b)("inlineCode",{parentName:"p"},"/magic-link/file-upload/{magicLinkId}")),Object(r.b)("p",null,"Delete a file upload link."),Object(r.b)("h5",{id:"request-examples-11"},"Request examples"),Object(r.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(o.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/file-upload/{magicLinkId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(o.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/widgets/api/magic-link/file-upload/{magicLinkId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(r.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/widgets/api/magic-link/file-upload/{magicLinkId}'\n")))),Object(r.b)("h2",{id:"magic-link-with-leaf-user-creation"},"Magic Link with Leaf User Creation"),Object(r.b)("p",null,"This option enables the creation of Leaf users automatically during the Magic Link creation process. The uniqueness of leaf users can be achieved using a mandatory external identifier, the ",Object(r.b)("inlineCode",{parentName:"p"},"externalId"),", which can be an ID already used in your application."),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"}," Endpoints ")),Object(r.b)("table",null,Object(r.b)("thead",{parentName:"table"},Object(r.b)("tr",{parentName:"thead"},Object(r.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Description"),Object(r.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(r.b)("tbody",{parentName:"table"},Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(t.a)({parentName:"td"},{href:"#create-a-provider-magic-link"}),"Create a Provider Magic Link")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"td"},"/magic-link/provider"))),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(t.a)({parentName:"td"},{href:"#create-a-provider-magic-link"}),"Create an Authentication Magic Link")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"td"},"/magic-link/authentication"))),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(t.a)({parentName:"td"},{href:"#create-a-provider-magic-link"}),"Create a File Upload Magic Link")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"td"},"/magic-link/file-upload"))))),Object(r.b)("h3",{id:"create-a-provider-magic-link-1"},"Create a Provider Magic Link"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"p"},"/magic-link/provider")),Object(r.b)("div",{className:"admonition admonition-info alert alert--info"},Object(r.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(t.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(t.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(r.b)("path",Object(t.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Provider application info")),Object(r.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"Make sure you set up your provider application first. More info ",Object(r.b)("a",Object(t.a)({parentName:"p"},{href:"/docs/Link_provider_connection#set-up"}),"here"),"."))),Object(r.b)("p",null,"Creates a link for authentication across multiple providers. The leaf user will be created during this process based on the ",Object(r.b)("inlineCode",{parentName:"p"},"externalId"),"."),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"provider"),": the provider to be used in the authentication process. It can be: ",Object(r.b)("inlineCode",{parentName:"li"},"JohnDeere"),", ",Object(r.b)("inlineCode",{parentName:"li"},"ClimateFieldView"),", ",Object(r.b)("inlineCode",{parentName:"li"},"CNHI"),", ",Object(r.b)("inlineCode",{parentName:"li"},"AgLeader")," or ",Object(r.b)("inlineCode",{parentName:"li"},"Trimble"),"."),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"expiresIn"),": an integer number for the expiration time, in seconds. This parameter is optional and the default value is ",Object(r.b)("inlineCode",{parentName:"li"},"900")," (minimum) and the maximum is the equivalent to 1 year."),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"externalId"),": the client side user unique ID"),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"name"),": it will be the name of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints."),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"email"),": it will be the email of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints.")),Object(r.b)("div",{className:"admonition admonition-info alert alert--info"},Object(r.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(t.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(t.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(r.b)("path",Object(t.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"info")),Object(r.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"The ",Object(r.b)("inlineCode",{parentName:"p"},"name")," and ",Object(r.b)("inlineCode",{parentName:"p"},"email")," parameters are optional, they will fill in the leaf user information that we will create, when they are not informed, we will fill in the name and email with the ",Object(r.b)("inlineCode",{parentName:"p"},"externalId")," information."))),Object(r.b)("h5",{id:"request-body-3"},"Request body"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "name": "user_name",\n "email": "user_email",\n "externalId": "external_id",\n "expiresIn": 900,\n "allowedProviders": [\n "provider_name"\n ]\n}\n')),Object(r.b)("h5",{id:"request-examples-12"},"Request examples"),Object(r.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(o.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/widgets/api/magic-link/provider\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "name": "user_name",\n "email": "user_email",\n "externalId": "external_id",\n "expiresIn": int,\n "allowedProviders": ["providerName"],\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n }\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(r.b)(o.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/widgets/api/magic-link/provider\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n \ndata = {\n "name": "user_name",\n "email": "user_email",\n "externalId": "external_id",\n "expiresIn": int,\n "allowedProviders": ["providerName"],\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n }\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(r.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "name": "user_name", "email": "user_email", "externalId": "external_id", "expiresIn": int, "allowedProviders": ["providerName"], "settings": { "backgroundColor": "codeColor", "headerImage": "URL", "companyLogo": "URL", "companyName": "companyName", "showLeafUserName": "boolean", "disconnectEnabled": "boolean" } }\'\n \'https://api.withleaf.io/services/widgets/api/magic-link/provider\'\n')))),Object(r.b)("h5",{id:"response-9"},"Response"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "magicLinkId",\n "leafUserId": "UUID",\n "link": "https://magic-link.withleaf.io/{magicLinkId}",\n "expiresAt": "2010-10-10T10:10:10.000000000Z"\n}\n')),Object(r.b)("h3",{id:"create-an-authentication-magic-link-1"},"Create an Authentication Magic Link"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"p"},"/magic-link/authentication")),Object(r.b)("div",{className:"admonition admonition-info alert alert--info"},Object(r.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(t.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(t.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(r.b)("path",Object(t.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Provider application info")),Object(r.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"Make sure you set up your provider application first. More info ",Object(r.b)("a",Object(t.a)({parentName:"p"},{href:"/docs/Link_provider_connection#set-up"}),"here"),"."))),Object(r.b)("p",null,"Creates a link for authentication with a single provider. The leaf user will be created during this process based on the ",Object(r.b)("inlineCode",{parentName:"p"},"externalId"),"."),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"provider"),": the provider to be used in the authentication process. It can be: ",Object(r.b)("inlineCode",{parentName:"li"},"JohnDeere"),", ",Object(r.b)("inlineCode",{parentName:"li"},"ClimateFieldView"),", ",Object(r.b)("inlineCode",{parentName:"li"},"CNHI"),", ",Object(r.b)("inlineCode",{parentName:"li"},"AgLeader")," or ",Object(r.b)("inlineCode",{parentName:"li"},"Trimble"),"."),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"expiresIn"),": an integer number for the expiration time, in seconds. This parameter is optional and the default value is ",Object(r.b)("inlineCode",{parentName:"li"},"900")," (minimum) and the maximum is the equivalent to 1 year."),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"externalId"),": the client side user unique ID"),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"name"),": it will be the name of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints."),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"email"),": it will be the email of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints.")),Object(r.b)("div",{className:"admonition admonition-info alert alert--info"},Object(r.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(t.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(t.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(r.b)("path",Object(t.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"info")),Object(r.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"The ",Object(r.b)("inlineCode",{parentName:"p"},"name")," and ",Object(r.b)("inlineCode",{parentName:"p"},"email")," parameters are optional, they will fill in the leaf user information that we will create, when they are not informed, we will fill in the name and email with the ",Object(r.b)("inlineCode",{parentName:"p"},"externalId")," information."))),Object(r.b)("h5",{id:"request-body-4"},"Request body"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "name": "user_name",\n "email": "user_email",\n "externalId": "external_id",\n "expiresIn": 900,\n "provider": "provider_name"\n}\n')),Object(r.b)("h5",{id:"request-examples-13"},"Request examples"),Object(r.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(o.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/widgets/api/magic-link/authentication\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "name": "user_name",\n "email": "user_email",\n "externalId": "external_id",\n "expiresIn": int,\n "provider": "provider_name",\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n }\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(r.b)(o.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/widgets/api/magic-link/authentication\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n \ndata = {\n "name": "user_name",\n "email": "user_email",\n "externalId": "external_id",\n "expiresIn": int,\n "provider": "provider_name",\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n }\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(r.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "name": "user_name", "email": "user_email", "externalId": "external_id", "expiresIn": int, "provider": "provider_name", "settings": { "backgroundColor": "codeColor", "headerImage": "URL", "companyLogo": "URL", "companyName": "companyName", "showLeafUserName": "boolean", "disconnectEnabled": "boolean" } }\'\n \'https://api.withleaf.io/services/widgets/api/magic-link/authentication\'\n')))),Object(r.b)("h5",{id:"response-10"},"Response"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "magicLinkId",\n "leafUserId": "UUID",\n "link": "https://magic-link.withleaf.io/{magicLinkId}",\n "expiresAt": "2010-10-10T10:10:10.000000000Z"\n}\n')),Object(r.b)("h3",{id:"create-a-file-upload-magic-link-1"},"Create a File Upload Magic Link"),Object(r.b)("p",null,"\xa0",Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"p"},"/magic-link/file-upload")),Object(r.b)("p",null,"Create a file upload link. The leaf user will be created during this process based on the ",Object(r.b)("inlineCode",{parentName:"p"},"externalId"),"."),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"expiresIn"),": an integer number for the expiration time, in seconds. This parameter is optional and the default value is ",Object(r.b)("inlineCode",{parentName:"li"},"900")," (minimum) and the maximum is the equivalent to 1 year."),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"externalId"),": the client side user unique ID"),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"name"),": it will be the name of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints."),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"email"),": it will be the email of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints.")),Object(r.b)("div",{className:"admonition admonition-info alert alert--info"},Object(r.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(t.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(t.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(r.b)("path",Object(t.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"info")),Object(r.b)("div",Object(t.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"The ",Object(r.b)("inlineCode",{parentName:"p"},"name")," and ",Object(r.b)("inlineCode",{parentName:"p"},"email")," parameters are optional, they will fill in the leaf user information that we will create, when they are not informed, we will fill in the name and email with the ",Object(r.b)("inlineCode",{parentName:"p"},"externalId")," information."))),Object(r.b)("h5",{id:"request-body-5"},"Request body"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "name": "user_name",\n "email": "user_email",\n "externalId": "external_id",\n "expiresIn": 900\n}\n')),Object(r.b)("h5",{id:"request-examples-14"},"Request examples"),Object(r.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(o.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/widgets/api/magic-link/file-upload\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "name": "user_name",\n "email": "user_email",\n "externalId": "external_id",\n "expiresIn": int,\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n }\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(r.b)(o.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/widgets/api/magic-link/file-upload\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n \ndata = {\n "name": "user_name",\n "email": "user_email",\n "externalId": "external_id",\n "expiresIn": int,\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n }\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(r.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "name": "user_name", "email": "user_email", "externalId": "external_id", "expiresIn": int, "settings": { "backgroundColor": "codeColor", "headerImage": "URL", "companyLogo": "URL", "companyName": "companyName", "showLeafUserName": "boolean", "disconnectEnabled": "boolean" } }\'\n \'https://api.withleaf.io/services/widgets/api/magic-link/file-upload\'\n')))),Object(r.b)("h5",{id:"response-11"},"Response"),Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "magicLinkId",\n "leafUserId": "UUID",\n "link": "https://magic-link.withleaf.io/{magicLinkId}",\n "expiresAt": "2010-10-10T10:10:10.000000000Z"\n}\n')),Object(r.b)("h2",{id:"link-customization"},"Link customization"),Object(r.b)("p",null,"The links can be customized using some properties described below.\nSimply fill in the ",Object(r.b)("inlineCode",{parentName:"p"},"settings")," property when creating the link."),Object(r.b)("p",{align:"center"},Object(r.b)("img",{alt:"Customization",src:Object(c.a)("img/leaf-magic-link-customization.png")})),Object(r.b)("table",null,Object(r.b)("thead",{parentName:"table"},Object(r.b)("tr",{parentName:"thead"},Object(r.b)("th",Object(t.a)({parentName:"tr"},{align:null})),Object(r.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Property"),Object(r.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Type"),Object(r.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Description"))),Object(r.b)("tbody",{parentName:"table"},Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"1"),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"backgroundColor"),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("inlineCode",{parentName:"td"},"string")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"The application's background color in hexadecimal format, for example: ",Object(r.b)("inlineCode",{parentName:"td"},'"#c0392b"')," or ",Object(r.b)("inlineCode",{parentName:"td"},'"#27ae60"'),". The default is ",Object(r.b)("inlineCode",{parentName:"td"},"#F5F5F5"),".")),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"2"),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"companyLogo"),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("inlineCode",{parentName:"td"},"string")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"URL for the company logo.")),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"3"),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"companyName"),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("inlineCode",{parentName:"td"},"string")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"The company name.")),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"4"),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"headerImage"),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("inlineCode",{parentName:"td"},"string")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"URL to an image that will be used as a header in the application.")),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"5"),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"showLeafUserName"),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("inlineCode",{parentName:"td"},"boolean")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"Indicates whether the Leaf user name will be displayed or not. It can be ",Object(r.b)("inlineCode",{parentName:"td"},"true")," or ",Object(r.b)("inlineCode",{parentName:"td"},"false"),". The default is ",Object(r.b)("inlineCode",{parentName:"td"},"false"),".")),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"6"),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"disconnectedEnabled"),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("inlineCode",{parentName:"td"},"boolean")),Object(r.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(r.b)("strong",{parentName:"td"},"Only enabled for provider and authentication Magic Link"),". Enables the option for the user to choose to disconnect from the provider at the end of the authentication process. It can be ",Object(r.b)("inlineCode",{parentName:"td"},"true")," or ",Object(r.b)("inlineCode",{parentName:"td"},"false"),". The default is ",Object(r.b)("inlineCode",{parentName:"td"},"false"),".")))),Object(r.b)("h4",{id:"request-examples-15"},"Request examples"),Object(r.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(o.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/provider\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "expiresIn": int,\n "allowedProviders": ["Other"],\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n }\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(r.b)(o.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/provider\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n \ndata = {\n "expiresIn": int,\n "allowedProviders": ["Other"],\n "settings": {\n "backgroundColor": "codeColor",\n "headerImage": "URL",\n "companyLogo": "URL",\n "companyName": "companyName",\n "showLeafUserName": "boolean",\n "disconnectEnabled": "boolean"\n }\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(r.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "expiresIn": int, "allowedProviders": ["Other"], "settings": { "backgroundColor": "codeColor", "headerImage": "URL", "companyLogo": "URL", "companyName": "companyName", "showLeafUserName": "boolean", "disconnectEnabled": "boolean" } }\'\n \'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/provider\'\n')))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/5ce478cd.68dd9400.js b/5ce478cd.68dd9400.js new file mode 100644 index 000000000..46e3c3f39 --- /dev/null +++ b/5ce478cd.68dd9400.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{153:function(e,t,a){"use strict";a.d(t,"a",(function(){return p})),a.d(t,"b",(function(){return u}));var n=a(0),i=a.n(n);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=i.a.createContext({}),b=function(e){var t=i.a.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},p=function(e){var t=b(e.components);return i.a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},m=i.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,r=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=b(a),m=n,u=p["".concat(r,".").concat(m)]||p[m]||d[m]||o;return a?i.a.createElement(u,s(s({ref:t},l),{},{components:a})):i.a.createElement(u,s({ref:t},l))}));function u(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,r=new Array(o);r[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,r[1]=s;for(var l=2;l=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(b=0;b=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var j=r.a.createContext({}),p=function(t){var e=r.a.useContext(j),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},d=function(t){var e=p(t.components);return r.a.createElement(j.Provider,{value:e},t.children)},m={inlineCode:"code",wrapper:function(t){var e=t.children;return r.a.createElement(r.a.Fragment,{},e)}},o=r.a.forwardRef((function(t,e){var a=t.components,b=t.mdxType,n=t.originalType,c=t.parentName,j=O(t,["components","mdxType","originalType","parentName"]),d=p(a),o=b,N=d["".concat(c,".").concat(o)]||d[o]||m[o]||n;return a?r.a.createElement(N,l(l({ref:e},j),{},{components:a})):r.a.createElement(N,l({ref:e},j))}));function N(t,e){var a=arguments,b=e&&e.mdxType;if("string"==typeof t||b){var n=a.length,c=new Array(n);c[0]=o;var l={};for(var O in e)hasOwnProperty.call(e,O)&&(l[O]=e[O]);l.originalType=t,l.mdxType="string"==typeof t?t:b,c[1]=l;for(var j=2;j=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=a.a.createContext({}),l=function(e){var t=a.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return a.a.createElement(s.Provider,{value:t},e.children)},b={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},f=a.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),p=l(n),f=r,m=p["".concat(c,".").concat(f)]||p[f]||b[f]||o;return n?a.a.createElement(m,i(i({ref:t},s),{},{components:n})):a.a.createElement(m,i({ref:t},s))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,c=new Array(o);c[0]=f;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i.mdxType="string"==typeof e?e:r,c[1]=i;for(var s=2;s console.log(res.data))\n .catch(console.error)\n"))),Object(o.b)(i.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(r.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nurl = \"https://api.withleaf.io/api/authenticate\"\n\ndata = {'username':'your email', 'password':'your password', 'rememberMe':'true'}\n\nheaders = {'Content-Type': 'application/json'}\n\nresponse = requests.request(\"POST\", url, headers=headers, json=data)\n"))),Object(o.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(r.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Content-Type: application/json\' \\\n -d \'{ "username":"username", "password":"password", "rememberMe":"true" }\' \\\n \'https://api.withleaf.io/api/authenticate\'\n')))),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"Response")),Object(o.b)("p",null,"This request will return your access token to Leaf's API:"),Object(o.b)("pre",null,Object(o.b)("code",Object(r.a)({parentName:"pre"},{className:"language-json"}),'{\n "id_token" : "YOUR_LEAF_TOKEN"\n}\n')),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"All set!")," Include this token in your API calls and you will have access to\nLeaf's API."),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"Note:")," "),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},'Your Leaf Token lasts for 30 days with "rememberMe": "true" in the\njson. If you want it to last only 24 hours, set "rememberMe" to "false".'),Object(o.b)("li",{parentName:"ul"},"After expiration, just make the same request to the same endpoint and you will\nget a new access token. ")))}b.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/64f9f2ab.f9026e24.js b/64f9f2ab.f9026e24.js new file mode 100644 index 000000000..d8aeca94a --- /dev/null +++ b/64f9f2ab.f9026e24.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{96:function(e){e.exports=JSON.parse('{"docsSidebars":{"docs":[{"type":"link","label":"Welcome","href":"/docs/docs/"},{"type":"link","label":"Quickstart","href":"/docs/docs/quickstart"},{"type":"link","label":"Release notes","href":"/docs/docs/release_notes"},{"type":"link","label":"Glossary","href":"/docs/docs/glossary"},{"collapsed":false,"type":"category","label":"API Reference","items":[{"type":"link","label":"Introduction","href":"/docs/docs/introduction"},{"type":"link","label":"Authentication","href":"/docs/docs/authentication"},{"type":"link","label":"General Setup Information","href":"/docs/docs/setup_information"},{"collapsed":true,"type":"category","label":"Configurations","items":[{"type":"link","label":"Overview","href":"/docs/docs/configurations_overview"},{"type":"link","label":"Endpoints","href":"/docs/docs/configurations_endpoints"}]},{"collapsed":true,"type":"category","label":"Alerts","items":[{"type":"link","label":"Overview","href":"/docs/docs/alerts_overview"},{"type":"link","label":"Endpoints","href":"/docs/docs/alerts_endpoints"},{"type":"link","label":"List of Events","href":"/docs/docs/alerts_events"},{"type":"link","label":"Authentication","href":"/docs/docs/alerts_authentication"}]},{"collapsed":true,"type":"category","label":"Leaf User","items":[{"type":"link","label":"Overview","href":"/docs/docs/user_management_overview"},{"type":"link","label":"Endpoints","href":"/docs/docs/user_management_endpoints"}]},{"collapsed":true,"type":"category","label":"Provider Authentication","items":[{"type":"link","label":"Overview","href":"/docs/docs/provider-authentication-overview"},{"collapsed":true,"type":"category","label":"Providers credentials","items":[{"type":"link","label":"John Deere Credentials","href":"/docs/docs/credentials_john_deere"},{"type":"link","label":"Climate FieldView Credentials","href":"/docs/docs/credentials_cfv"},{"type":"link","label":"CNHI Credentials","href":"/docs/docs/credentials_cnhi"},{"type":"link","label":"Trimble Credentials","href":"/docs/docs/credentials_trimble"},{"type":"link","label":"Raven Credentials","href":"/docs/docs/credentials_raven"},{"type":"link","label":"Raven Slingshot Credentials","href":"/docs/docs/credentials_raven_slingshot"},{"type":"link","label":"AgLeader Credentials","href":"/docs/docs/credentials_agleader"},{"type":"link","label":"Stara Credentials","href":"/docs/docs/credentials_stara"},{"type":"link","label":"Sentera Credentials","href":"/docs/docs/credentials_sentera"},{"type":"link","label":"Agvance Credentials","href":"/docs/docs/credentials_agvance"},{"type":"link","label":"Provider Integrations","href":"/docs/docs/integrations_endpoints"},{"type":"link","label":"Provider Organizations","href":"/docs/docs/provider_organizations"}]}]},{"collapsed":true,"type":"category","label":"Field Boundary Management","items":[{"type":"link","label":"Overview","href":"/docs/docs/field_boundary_management_overview"},{"type":"link","label":"Endpoints","href":"/docs/docs/field_boundary_management_endpoints"}]},{"collapsed":true,"type":"category","label":"Manual File Upload","items":[{"type":"link","label":"Overview","href":"/docs/docs/converters_overview"},{"type":"link","label":"Endpoints","href":"/docs/docs/converters_endpoints"}]},{"collapsed":true,"type":"category","label":"Machine File Conversion","items":[{"type":"link","label":"Overview","href":"/docs/docs/machine_file_conversion_overview"},{"type":"link","label":"Endpoints","href":"/docs/docs/machine_file_conversion_endpoints"},{"type":"link","label":"Sample Responses","href":"/docs/docs/machine_file_conversion_sample_output"},{"type":"link","label":"Units of Measurement","href":"/docs/docs/machine_file_conversion_units"},{"type":"link","label":"Crops Table","href":"/docs/docs/machine_file_conversion_crops_table"}]},{"collapsed":true,"type":"category","label":"Field Operations","items":[{"type":"link","label":"Overview","href":"/docs/docs/operations_overview"},{"type":"link","label":"Endpoints","href":"/docs/docs/operations_endpoints"},{"type":"link","label":"Sample responses","href":"/docs/docs/operations_sample_output"}]},{"collapsed":true,"type":"category","label":"Crop Monitoring","items":[{"type":"link","label":"Overview","href":"/docs/docs/crop_monitoring_overview"},{"type":"link","label":"Sentinel Overview","href":"/docs/docs/crop_monitoring_sentinel_overview"},{"type":"link","label":"Planet Overview","href":"/docs/docs/crop_monitoring_planet_overview"},{"type":"link","label":"Endpoints","href":"/docs/docs/crop_monitoring_endpoints"}]},{"collapsed":true,"type":"category","label":"Weather","items":[{"type":"link","label":"Overview","href":"/docs/docs/weather_overview"},{"type":"link","label":"Endpoints","href":"/docs/docs/weather_endpoints"}]},{"collapsed":true,"type":"category","label":"Leaf Connect","items":[{"type":"link","label":"Leaf Connect","href":"/docs/docs/connect"}]},{"collapsed":true,"type":"category","label":"Beta","items":[{"type":"link","label":"Overview","href":"/docs/docs/beta_features_overview"},{"collapsed":true,"type":"category","label":"Input Database","items":[{"type":"link","label":"Endpoints","href":"/docs/docs/beta_input_endpoints"}]},{"collapsed":true,"type":"category","label":"Assets","items":[{"type":"link","label":"Endpoints","href":"/docs/docs/beta_assets_endpoints"}]},{"collapsed":true,"type":"category","label":"Prescriptions","items":[{"type":"link","label":"Endpoints","href":"/docs/docs/beta_prescriptions_endpoints"}]},{"collapsed":true,"type":"category","label":"Layers","items":[{"type":"link","label":"Endpoints","href":"/docs/docs/beta_layers_endpoints"}]},{"collapsed":true,"type":"category","label":"Leaf Link","items":[{"type":"link","label":"Leaf Provider Connection / Authentication Link","href":"/docs/docs/Link_provider_connection"},{"type":"link","label":"Leaf File Upload Link","href":"/docs/docs/Link_file_upload"},{"type":"link","label":"Endpoints","href":"/docs/docs/Link_endpoints"}]},{"collapsed":true,"type":"category","label":"Magic Link","items":[{"type":"link","label":"Overview","href":"/docs/docs/Magic_link_overview"},{"type":"link","label":"Endpoints","href":"/docs/docs/Magic_link_endpoints"}]}]}]}]},"permalinkToSidebar":{"/docs/docs/":"docs","/docs/docs/Link_endpoints":"docs","/docs/docs/Link_file_upload":"docs","/docs/docs/Link_provider_connection":"docs","/docs/docs/Magic_link_endpoints":"docs","/docs/docs/Magic_link_overview":"docs","/docs/docs/alerts_authentication":"docs","/docs/docs/alerts_endpoints":"docs","/docs/docs/alerts_events":"docs","/docs/docs/alerts_overview":"docs","/docs/docs/authentication":"docs","/docs/docs/beta_assets_endpoints":"docs","/docs/docs/beta_features_overview":"docs","/docs/docs/beta_input_endpoints":"docs","/docs/docs/beta_layers_endpoints":"docs","/docs/docs/beta_prescriptions_endpoints":"docs","/docs/docs/configurations_endpoints":"docs","/docs/docs/configurations_overview":"docs","/docs/docs/connect":"docs","/docs/docs/converters_endpoints":"docs","/docs/docs/converters_overview":"docs","/docs/docs/credentials_agleader":"docs","/docs/docs/credentials_agvance":"docs","/docs/docs/credentials_cfv":"docs","/docs/docs/credentials_cnhi":"docs","/docs/docs/credentials_john_deere":"docs","/docs/docs/credentials_raven":"docs","/docs/docs/credentials_raven_slingshot":"docs","/docs/docs/credentials_sentera":"docs","/docs/docs/credentials_stara":"docs","/docs/docs/credentials_trimble":"docs","/docs/docs/crop_monitoring_endpoints":"docs","/docs/docs/crop_monitoring_overview":"docs","/docs/docs/crop_monitoring_planet_overview":"docs","/docs/docs/crop_monitoring_sentinel_overview":"docs","/docs/docs/field_boundary_management_endpoints":"docs","/docs/docs/field_boundary_management_overview":"docs","/docs/docs/glossary":"docs","/docs/docs/integrations_endpoints":"docs","/docs/docs/introduction":"docs","/docs/docs/machine_file_conversion_crops_table":"docs","/docs/docs/machine_file_conversion_endpoints":"docs","/docs/docs/machine_file_conversion_overview":"docs","/docs/docs/machine_file_conversion_sample_output":"docs","/docs/docs/machine_file_conversion_units":"docs","/docs/docs/operations_endpoints":"docs","/docs/docs/operations_overview":"docs","/docs/docs/operations_sample_output":"docs","/docs/docs/provider-authentication-overview":"docs","/docs/docs/provider_organizations":"docs","/docs/docs/quickstart":"docs","/docs/docs/release_notes":"docs","/docs/docs/setup_information":"docs","/docs/docs/user_management_endpoints":"docs","/docs/docs/user_management_overview":"docs","/docs/docs/weather_endpoints":"docs","/docs/docs/weather_overview":"docs"},"version":null}')}}]); \ No newline at end of file diff --git a/6875c492.aeafad51.js b/6875c492.aeafad51.js new file mode 100644 index 000000000..994e9c28c --- /dev/null +++ b/6875c492.aeafad51.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{167:function(e,a,t){"use strict";var r=t(0),n=t.n(r),l=t(164),c=t.n(l),o=t(163),m=t(154);a.a=function(e){var a=Object(r.useRef)(!1),l=Object(r.useRef)(null),s=Object(o.useHistory)(),i=Object(m.a)().siteConfig,u=(void 0===i?{}:i).baseUrl,d=function(){a.current||(Promise.all([fetch(u+"search-doc.json").then((function(e){return e.json()})),fetch(u+"lunr-index.json").then((function(e){return e.json()})),Promise.all([t.e(97),t.e(99)]).then(t.bind(null,169)),t.e(62).then(t.t.bind(null,168,7))]).then((function(e){!function(e,a,t){new t({searchDocs:e,searchIndex:a,inputSelector:"#search_input_react",handleSelected:function(e,a,t){var r=u+t.url;document.createElement("a").href=r,s.push(r)}})}(e[0],e[1],e[2].default)})),a.current=!0)},h=Object(r.useCallback)((function(a){l.current.contains(a.target)||l.current.focus(),e.handleSearchBarToggle(!e.isSearchBarExpanded)}),[e.isSearchBarExpanded]);return n.a.createElement("div",{className:"navbar__search",key:"search-box"},n.a.createElement("span",{"aria-label":"expand searchbar",role:"button",className:c()("search-icon",{"search-icon-hidden":e.isSearchBarExpanded}),onClick:h,onKeyDown:h,tabIndex:0}),n.a.createElement("input",{id:"search_input_react",type:"search",placeholder:"Search","aria-label":"Search",className:c()("navbar__search-input",{"search-bar-expanded":e.isSearchBarExpanded},{"search-bar":!e.isSearchBarExpanded}),onClick:d,onMouseOver:d,onFocus:h,onBlur:h,ref:l}))}},172:function(e,a,t){"use strict";var r=t(0),n=t.n(r),l=t(156),c=t(153),o=t(171),m=t(162),s=t(173),i=t(155),u=t(49),d=t.n(u),h=["January","February","March","April","May","June","July","August","September","October","November","December"];a.a=function(e){var a,t,r,u,g,E=e.children,p=e.frontMatter,b=e.metadata,f=e.truncated,v=e.isBlogPostPage,_=void 0!==v&&v,N=b.date,k=b.permalink,w=b.tags,x=b.readingTime,y=p.author,j=p.title,S=p.image,B=p.keywords,O=p.author_url||p.authorURL,T=p.author_title||p.authorTitle,M=p.author_image_url||p.authorImageURL,P=Object(i.a)(S,{absolute:!0});return n.a.createElement(n.a.Fragment,null,n.a.createElement(o.a,null,B&&B.length&&n.a.createElement("meta",{name:"keywords",content:B.join(",")}),S&&n.a.createElement("meta",{property:"og:image",content:P}),S&&n.a.createElement("meta",{property:"twitter:image",content:P}),S&&n.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+j})),n.a.createElement("article",{className:_?void 0:"margin-bottom--xl"},(a=_?"h1":"h2",t=N.substring(0,10).split("-"),r=t[0],u=h[parseInt(t[1],10)-1],g=parseInt(t[2],10),n.a.createElement("header",null,n.a.createElement(a,{className:Object(l.a)("margin-bottom--sm",d.a.blogPostTitle)},_?j:n.a.createElement(m.a,{to:k},j)),n.a.createElement("div",{className:"margin-vert--md"},n.a.createElement("time",{dateTime:N,className:d.a.blogPostDate},u," ",g,", ",r," ",x&&n.a.createElement(n.a.Fragment,null," \xb7 ",Math.ceil(x)," min read"))),n.a.createElement("div",{className:"avatar margin-vert--md"},M&&n.a.createElement("a",{className:"avatar__photo-link avatar__photo",href:O,target:"_blank",rel:"noreferrer noopener"},n.a.createElement("img",{src:M,alt:y})),n.a.createElement("div",{className:"avatar__intro"},y&&n.a.createElement(n.a.Fragment,null,n.a.createElement("h4",{className:"avatar__name"},n.a.createElement("a",{href:O,target:"_blank",rel:"noreferrer noopener"},y)),n.a.createElement("small",{className:"avatar__subtitle"},T)))))),n.a.createElement("section",{className:"markdown"},n.a.createElement(c.a,{components:s.a},E)),(w.length>0||f)&&n.a.createElement("footer",{className:"row margin-vert--lg"},w.length>0&&n.a.createElement("div",{className:"col"},n.a.createElement("strong",null,"Tags:"),w.map((function(e){var a=e.label,t=e.permalink;return n.a.createElement(m.a,{key:t,className:"margin-horiz--sm",to:t},a)}))),f&&n.a.createElement("div",{className:"col text--right"},n.a.createElement(m.a,{to:b.permalink,"aria-label":"Read more about "+j},n.a.createElement("strong",null,"Read More"))))))}},97:function(e,a,t){"use strict";t.r(a);var r=t(0),n=t.n(r),l=t(166),c=t(172),o=t(162);a.default=function(e){var a=e.metadata,t=e.items,r=a.allTagsPath,m=a.name,s=a.count;return n.a.createElement(l.a,{title:'Posts tagged "'+m+'"',description:'Blog | Tagged "'+m+'"'},n.a.createElement("div",{className:"container margin-vert--lg"},n.a.createElement("div",{className:"row"},n.a.createElement("main",{className:"col col--8 col--offset-2"},n.a.createElement("h1",null,s," ",function(e,a){return e>1?a+"s":a}(s,"post"),' tagged with "',m,'"'),n.a.createElement(o.a,{href:r},"View All Tags"),n.a.createElement("div",{className:"margin-vert--xl"},t.map((function(e){var a=e.content;return n.a.createElement(c.a,{key:a.metadata.permalink,frontMatter:a.frontMatter,metadata:a.metadata,truncated:!0},n.a.createElement(a,null))})))))))}}}]); \ No newline at end of file diff --git a/69aa77ae.286f198b.js b/69aa77ae.286f198b.js new file mode 100644 index 000000000..dc25cb24b --- /dev/null +++ b/69aa77ae.286f198b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{153:function(e,t,r){"use strict";r.d(t,"a",(function(){return b})),r.d(t,"b",(function(){return O}));var n=r(0),a=r.n(n);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=a.a.createContext({}),p=function(e){var t=a.a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},b=function(e){var t=p(e.components);return a.a.createElement(u.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},d=a.a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),b=p(r),d=n,O=b["".concat(c,".").concat(d)]||b[d]||s[d]||o;return r?a.a.createElement(O,l(l({ref:t},u),{},{components:r})):a.a.createElement(O,l({ref:t},u))}));function O(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,c=new Array(o);c[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l.mdxType="string"==typeof e?e:n,c[1]=l;for(var u=2;u=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=a.a.createContext({}),s=function(e){var t=a.a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},d=function(e){var t=s(e.components);return a.a.createElement(l.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},b=a.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,l=u(e,["components","mdxType","originalType","parentName"]),d=s(n),b=r,p=d["".concat(i,".").concat(b)]||d[b]||f[b]||o;return n?a.a.createElement(p,c(c({ref:t},l),{},{components:n})):a.a.createElement(p,c({ref:t},l))}));function p(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=b;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var l=2;l console.log(res.data))\n .catch(console.error)\n"))),Object(b.b)(c.a,{value:"py",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/batch'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nfiles = {'file': open('shapefile.zip', 'rb')}\nparams = {\n 'provider': 'JohnDeere',\n 'leafUserId': 'id'\n}\n\nresponse = requests.post(endpoint, headers=headers, files=files, params=params)\nprint(response.json())\n"))),Object(b.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -F 'file=shapefile.zip' \\\n 'https://api.withleaf.io/services/operations/api/batch' \\\n 'provider=JohnDeere&leafUserId=id'\n")))),Object(b.b)("h4",{id:"response"},"Response"),Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "996aea67-52bc-4d4b-9b77-028756dc0ee9",\n "leafUserId": "ede8f781-1d55-4b2d-83a1-6785ddab6e1d",\n "fileName": "Climate.zip",\n "size": 8652951,\n "provider": "Other",\n "status": "RECEIVED",\n "uploadTimestamp": "2021-03-12T19:50:55.567755Z"\n}\n')),Object(b.b)("p",null,"This id can then be queried to retrieve on ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"#get-batch-upload"}),"Get batch")," to get the individual file ID's.\nThen you can query each of the files individually with\n",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/machine_file_conversion_endpoints#get-a-file"}),"Get a File")," or all of them, filtering by ",Object(b.b)("inlineCode",{parentName:"p"},"batchId"),", on\n",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/machine_file_conversion_endpoints#get-all-files"}),"Get all Files"),"."),Object(b.b)("h4",{id:"batch-status"},"Batch status"),Object(b.b)("p",null,"The ",Object(b.b)("em",{parentName:"p"},"status")," key will evolve accordingly to the following states:"),Object(b.b)("table",null,Object(b.b)("thead",{parentName:"table"},Object(b.b)("tr",{parentName:"thead"},Object(b.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Status"),Object(b.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"))),Object(b.b)("tbody",{parentName:"table"},Object(b.b)("tr",{parentName:"tbody"},Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"RECEIVED"),Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Is the default state for every batch created")),Object(b.b)("tr",{parentName:"tbody"},Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"PROCESSED"),Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"When all the files included in the batch were processed, and at least one file have status SUCCESS")),Object(b.b)("tr",{parentName:"tbody"},Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"FAILED"),Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"The batch did not generated any leaf files with status SUCCESS")))),Object(b.b)("p",null,"The messages with FAILED status have the key ",Object(b.b)("em",{parentName:"p"},"statusDetails"),". The `statusDetails`` is just informative and should not be used programatically."),Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "c21e6495-3e39-4c5f-b35c-d33fa06c25d8",\n "leafUserId": "fc7c52ad-d228-4332-9e18-de979a293457",\n "fileName": "Climate.zip",\n "size": 8652951,\n "provider": "Other",\n "status": "FAILED",\n "statusDetails": "No operation found. Check file format before re-trying or contact support. Check file format before re-trying or contact support", \n "uploadTimestamp": "2021-03-12T19:50:55.567755Z"\n}\n')),Object(b.b)("p",null,"The following status can be present on ",Object(b.b)("em",{parentName:"p"},"statusDetails"),":"),Object(b.b)("table",null,Object(b.b)("thead",{parentName:"table"},Object(b.b)("tr",{parentName:"thead"},Object(b.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Status"),Object(b.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"))),Object(b.b)("tbody",{parentName:"table"},Object(b.b)("tr",{parentName:"tbody"},Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"No valid files found"),Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Unable to find a valid file based on supported extensions and expected file structure")),Object(b.b)("tr",{parentName:"tbody"},Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Leaf internal error. Please contact Support"),Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Internal error that need to be reported")),Object(b.b)("tr",{parentName:"tbody"},Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Files found but unable to read. Please check file format before re-trying or contact Support"),Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"A valid file was found but could not be converted")))),Object(b.b)("h3",{id:"get-batch-upload"},"Get Batch upload"),Object(b.b)("p",null,"\xa0",Object(b.b)("span",{class:"badge badge--success"},"GET")," ",Object(b.b)("inlineCode",{parentName:"p"},"/batch/{batch_id}")),Object(b.b)("p",null,"Once you've uploaded files, you can then query these files individually, merge the files, or query for them\nvia ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/machine_file_conversion_endpoints#get-all-files"}),"Get all Files"),".\nYou can also query the batch upload ID to see a list of files generated in the upload and a status of the upload with this endpoint."),Object(b.b)("h4",{id:"request-examples-1"},"Request examples"),Object(b.b)(l.a,{defaultValue:"py",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(b.b)(c.a,{value:"js",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/operations/api/batch/{batch_id}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(b.b)(c.a,{value:"py",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/batch/{batch_id}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(b.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/batch/{batch_id}'\n")))),Object(b.b)("h4",{id:"response-1"},"Response"),Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "9b561906-efac-43a3-9378-641e3698da5d",\n "leafUserId": "1481bc9b-cdc7-45c1-9f0e-592da6306dfe",\n "provider": "Other",\n "status": "PROCESSED",\n "leafFiles": [\n "f14203df-4144-43b7-a383-2ed321f395ce",\n "810b1475-cb49-437b-8658-d29038ce2fa4"\n ]\n}\n')),Object(b.b)("h3",{id:"get-all-batches"},"Get all Batches"),Object(b.b)("p",null,"\xa0",Object(b.b)("span",{class:"badge badge--success"},"GET")," ",Object(b.b)("inlineCode",{parentName:"p"},"/batch")),Object(b.b)("p",null,"Once you've uploaded files, you can then query these files individually, merge the files, or query for them\nvia ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/machine_file_conversion_endpoints#get-all-files"}),"Get all Files"),".\nYou can also query the batch upload ID to see a list of files generated in the upload and a status of the upload with this endpoint."),Object(b.b)("h4",{id:"request-examples-2"},"Request examples"),Object(b.b)(l.a,{defaultValue:"py",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(b.b)(c.a,{value:"js",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/operations/api/batch'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.put(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(b.b)(c.a,{value:"py",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/batch'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.put(endpoint, headers=headers)\nprint(response.json())\n"))),Object(b.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X PUT \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/batch'\n")))),Object(b.b)("h4",{id:"response-2"},"Response"),Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "9e47ae29-6a84-4a9c-9e5f-01802f6dceea",\n "leafUserId": "5ded9409-c99f-4379-9173-c01b1631f274",\n "provider": "Other",\n "status": "PROCESSED",\n "leafFiles": [\n "74d5aeb6-9a0e-43c6-986c-a5f17eecbddc",\n "475fcad3-b534-409d-8c8b-cec4dabd1b8b"\n ]\n }\n]\n')),Object(b.b)("h3",{id:"retry-a-batch"},"Retry a batch"),Object(b.b)("p",null,"\xa0",Object(b.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(b.b)("inlineCode",{parentName:"p"},"/batch/{id}/retry")),Object(b.b)("p",null,"If a batch upload does not complete as expected, this endpoint allows you to try again. This action will reprocess the fragments of uploaded data that didn't succeed processing before, keeping existing converted files unaffected."),Object(b.b)("h4",{id:"request-examples-3"},"Request examples"),Object(b.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(b.b)(c.a,{value:"js",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/operations/api/batch/{id}/retry'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.put(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(b.b)(c.a,{value:"py",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/batch/{id}/retry'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.put(endpoint, headers=headers)\nprint(response.json())\n"))),Object(b.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X PUT \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/batch/{id}/retry'\n")))),Object(b.b)("h4",{id:"response-3"},"Response"),Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "36d8551f-409d-41f2-94b4-04c9fe16289b",\n "leafUserId": "089bb77b-2415-43df-a246-6c0a5937c774",\n "fileName": "filename.zip",\n "size": 8652951,\n "provider": "Other",\n "status": "RECEIVED",\n "uploadTimestamp": "2021-03-12T19:50:55.567755Z"\n}\n')),Object(b.b)("div",{className:"admonition admonition-info alert alert--info"},Object(b.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(b.b)("h5",{parentName:"div"},Object(b.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(b.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(b.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Please note")),Object(b.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(b.b)("p",{parentName:"div"},"Once you have finished setting up manual file upload, refer to ",Object(b.b)("strong",{parentName:"p"},Object(b.b)("a",Object(n.a)({parentName:"strong"},{href:"https://docs.withleaf.io/docs/machine_file_conversion_overview"}),"machine file conversion")),"\nnext"))))}d.isMDXComponent=!0},153:function(e,t,a){"use strict";a.d(t,"a",(function(){return p})),a.d(t,"b",(function(){return O}));var n=a(0),r=a.n(n);function b(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function c(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=r.a.createContext({}),o=function(e){var t=r.a.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):c(c({},t),e)),a},p=function(e){var t=o(e.components);return r.a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},u=r.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,b=e.originalType,l=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=o(a),u=n,O=p["".concat(l,".").concat(u)]||p[u]||d[u]||b;return a?r.a.createElement(O,c(c({ref:t},s),{},{components:a})):r.a.createElement(O,c({ref:t},s))}));function O(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var b=a.length,l=new Array(b);l[0]=u;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c.mdxType="string"==typeof e?e:n,l[1]=c;for(var s=2;s=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var p=i.a.createContext({}),c=function(e){var n=i.a.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=c(e.components);return i.a.createElement(p.Provider,{value:n},e.children)},d={inlineCode:"code",wrapper:function(e){var n=e.children;return i.a.createElement(i.a.Fragment,{},n)}},b=i.a.forwardRef((function(e,n){var t=e.components,a=e.mdxType,r=e.originalType,o=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(t),b=a,m=u["".concat(o,".").concat(b)]||u[b]||d[b]||r;return t?i.a.createElement(m,l(l({ref:n},p),{},{components:t})):i.a.createElement(m,l({ref:n},p))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var r=t.length,o=new Array(r);o[0]=b;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,o[1]=l;for(var p=2;p=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=a.a.createContext({}),l=function(e){var t=a.a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},d=function(e){var t=l(e.components);return a.a.createElement(u.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},b=a.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=l(n),b=r,p=d["".concat(i,".").concat(b)]||d[b]||f[b]||o;return n?a.a.createElement(p,c(c({ref:t},u),{},{components:n})):a.a.createElement(p,c({ref:t},u))}));function p(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var u=2;u console.log(res.data))\n .catch(console.error)\n"))),Object(o.b)(i.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/operations'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/operations'\n")))),Object(o.b)("h4",{id:"response"},"Response"),Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "5c8fdb34-4dc4-4b96-bfd5-53e6206ce971",\n "apiOwnerUsername": "test",\n "leafUserId": "7494c90e-28b8-4bb2-9ede-95c1cc894349",\n "startTime": "2015-04-18T19:31:27Z",\n "endTime": "2015-04-18T19:58:50Z",\n "updatedTime": "2021-08-24T16:00:15.062Z",\n "type": "planted",\n "files": [\n "a10b85c2-ac2e-4b0f-8e65-74edbd2ca53e",\n "759e1b62-dc69-4332-b618-6449a37470fa"\n ],\n "fields": [\n {\n "id": "0071484f-4a75-4190-9fd0-f5995d241c2c"\n }\n ],\n "providers": [\n "providerName"\n ]\n },\n ....\n]\n')),Object(o.b)("h3",{id:"get-an-operation"},"Get an operation"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--success"},"GET")," ",Object(o.b)("inlineCode",{parentName:"p"},"/operations/{id}")),Object(o.b)("p",null,"Gets a single operation by its id."),Object(o.b)("h4",{id:"request-examples-1"},"Request examples"),Object(o.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(i.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/operations/{id}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(o.b)(i.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/operations/{id}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/operations/{id}'\n")))),Object(o.b)("h4",{id:"response-1"},"Response"),Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "5c8fdb34-4dc4-4b96-bfd5-53e6206ce971",\n "apiOwnerUsername": "test",\n "leafUserId": "7494c90e-28b8-4bb2-9ede-95c1cc894349",\n "startTime": "2015-04-18T19:31:27Z",\n "endTime": "2015-04-18T19:58:50Z",\n "updatedTime": "2021-08-24T16:00:15.062Z",\n "type": "planted",\n "files": [\n "a10b85c2-ac2e-4b0f-8e65-74edbd2ca53e",\n "759e1b62-dc69-4332-b618-6449a37470fa"\n ],\n "fields": [\n {\n "id": "0071484f-4a75-4190-9fd0-f5995d241c2c"\n }\n ],\n "providers": [\n "providerName"\n ]\n}\n')),Object(o.b)("h3",{id:"get-the-operations-summary"},"Get the operation's summary"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--success"},"GET")," ",Object(o.b)("inlineCode",{parentName:"p"},"/operations/{id}/summary")),Object(o.b)("p",null,"Gets the summary, if available, for the operation id."),Object(o.b)("h4",{id:"request-examples-2"},"Request examples"),Object(o.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(i.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/operations/{id}/summary'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(o.b)(i.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/operations/{id}/summary'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/operations/{id}/summary'\n")))),Object(o.b)("h4",{id:"response-2"},"Response"),Object(o.b)("p",null,Object(o.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/operations_sample_output#field-operations-summary"}),"Here's a link with sample responses"),' for "planted", "applied", "harvested" and "tillage" operations.'),Object(o.b)("h3",{id:"get-the-operations-standardgeojson"},"Get the operation's standardGeojson"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--success"},"GET")," ",Object(o.b)("inlineCode",{parentName:"p"},"/operations/{id}/standardGeojson")),Object(o.b)("p",null,"Get the standardGeojson file URL relative to the operation."),Object(o.b)("h4",{id:"request-examples-3"},"Request examples"),Object(o.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(i.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/operations/{id}/standardGeojson'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(o.b)(i.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/operations/{id}/standardGeojson'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/operations/{id}/standardGeojson'\n")))),Object(o.b)("h4",{id:"response-3"},"Response"),Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "standardGeojson": "URL",\n "downloadStandardGeojson": "URL"\n}\n')),Object(o.b)("h3",{id:"get-the-operations-filteredgeojson"},"Get the operation's filteredGeojson"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--success"},"GET")," ",Object(o.b)("inlineCode",{parentName:"p"},"/operations/{id}/filteredGeojson")),Object(o.b)("p",null,"Get the filteredGeojson file URL relative to the operation."),Object(o.b)("div",{className:"admonition admonition-tip alert alert--success"},Object(o.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(o.b)("h5",{parentName:"div"},Object(o.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(o.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(o.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})))),"tip")),Object(o.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(o.b)("p",{parentName:"div"},"To use this option, the ",Object(o.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/configurations_overview/#operationsfilteredgeojson"}),"operationsFilteredGeojson")," configuration must be enabled."))),Object(o.b)("h4",{id:"request-examples-4"},"Request examples"),Object(o.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(i.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/operations/{id}/filteredGeojson'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(o.b)(i.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/operations/{id}/filteredGeojson'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/operations/{id}/filteredGeojson'\n")))),Object(o.b)("h4",{id:"response-4"},"Response"),Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "filteredGeojson": "URL",\n "downloadFilteredGeojson": "URL"\n}\n')),Object(o.b)("h3",{id:"get-operations-images"},"Get operation's images"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--success"},"GET")," ",Object(o.b)("inlineCode",{parentName:"p"},"/operations/{id}/images")),Object(o.b)("p",null,"Gets a list of PNG images generated from the operation's properties."),Object(o.b)("h4",{id:"request-examples-5"},"Request examples"),Object(o.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(i.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/operations/{id}/images'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(o.b)(i.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/operations/{id}/images'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/operations/{id}/images'\n")))),Object(o.b)("h4",{id:"response-5"},"Response"),Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "property": "elevation",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [ 0, 230, 0],\n "75%": [ 0, 190, 0],\n "100%": [ 0, 130, 0],\n "nv": [ 0, 0, 0, 0]\n },\n "url": "URL",\n "downloadUrl": "URL"\n },\n ....\n]\n')),Object(o.b)("p",null,"The ",Object(o.b)("inlineCode",{parentName:"p"},"property")," refers to the property extracted from operations' data to generate the\nimage. In the example above, the image would represent the elevation."),Object(o.b)("p",null,"The ",Object(o.b)("inlineCode",{parentName:"p"},"ramp")," is the color ramp used to generate the image. The percentages\ncorrespond to the minimum (0%) and maximum (100%) values in the image. The\nlisted values correspond to RGB values used. The ",Object(o.b)("inlineCode",{parentName:"p"},"nv")," refers to ",Object(o.b)("inlineCode",{parentName:"p"},"no value"),". It\nis used internally to make the image transparent on places without data.\nCurrently, this ramp is the same in all images processed."),Object(o.b)("p",null,"We also generate an auxiliary ",Object(o.b)("inlineCode",{parentName:"p"},"xml")," with geographic information to handle this\nimage on GIS environments. You just need to append the ",Object(o.b)("inlineCode",{parentName:"p"},'".aux.xml"')," string to the png url."),Object(o.b)("h3",{id:"get-operations-images-v2"},"Get operation's images V2"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--success"},"GET")," ",Object(o.b)("inlineCode",{parentName:"p"},"/operations/{id}/imagesV2")),Object(o.b)("p",null,"Gets a list of PNG images generated from the operation's properties with improvements in the generation process. These images are based on the ",Object(o.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/operations_sample_output/#field-operations-filtered-geojson"}),"filteredGeojson"),"."),Object(o.b)("h4",{id:"request-examples-6"},"Request examples"),Object(o.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(i.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/operations/{id}/imagesV2'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(o.b)(i.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/operations/{id}/imagesV2'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/operations/{id}/imagesV2'\n")))),Object(o.b)("h4",{id:"response-6"},"Response"),Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "property": "string",\n "legend": {\n "ranges": [\n {\n "colorCode": "#C80000",\n "max": 20,\n "min": 0\n },\n {\n "colorCode": "#FF2800",\n "max": 50,\n "min": 20\n },\n {\n "colorCode": "#FF9600",\n "max": 100,\n "min": 50\n },\n {\n "colorCode": "#FFF000",\n "max": 250,\n "min": 100\n },\n {\n "colorCode": "#00E600",\n "max": 340,\n "min": 250\n },\n {\n "colorCode": "#00BE00",\n "max": 480,\n "min": 340\n },\n {\n "colorCode": "#008200",\n "max": 570,\n "min": 480\n }\n ]\n },\n "extent": {\n "xmin": 0,\n "xmax": 0,\n "ymin": 0,\n "ymax": 0\n },\n "url": "URL",\n "downloadUrl": "URL"\n }\n]\n')),Object(o.b)("p",null,"The ",Object(o.b)("inlineCode",{parentName:"p"},"property")," refers to the property extracted from operations' data to generate the\nimage."),Object(o.b)("p",null,"The ",Object(o.b)("inlineCode",{parentName:"p"},"legend")," represents the values distributed in 7 classes, classified by the quantile and symbolized by the standard color ramp."),Object(o.b)("p",null,"The ",Object(o.b)("inlineCode",{parentName:"p"},"extent")," is the coordinates of the image, mainly used for plotting images in map applications."),Object(o.b)("p",null,"More information ",Object(o.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/operations_sample_output/#field-operations-images-v2"}),"here"),"."),Object(o.b)("h3",{id:"get-operations-geotiff-images"},"Get operation's geotiff images"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--success"},"GET")," ",Object(o.b)("inlineCode",{parentName:"p"},"/operations/{id}/geotiffImages")),Object(o.b)("p",null,"Gets a list of TIFF images generated from the operation's properties with improvements in the generation process. These images are based on the ",Object(o.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/operations_sample_output/#field-operations-filtered-geojson"}),"filteredGeojson"),"."),Object(o.b)("h4",{id:"request-examples-7"},"Request examples"),Object(o.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(i.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/operations/{id}/geotiffImages'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(o.b)(i.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/operations/{id}/geotiffImages'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/operations/{id}/geotiffImages'\n")))),Object(o.b)("h4",{id:"response-7"},"Response"),Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "property": "distance",\n "url": "URL",\n "downloadUrl": "URL"\n },\n {\n "property": "wetVolumePerArea",\n "url": "URL",\n "downloadUrl": "URL"\n },\n {\n "property": "dryMassPerArea",\n "url": "URL",\n "downloadUrl": "URL"\n },\n {\n "property": "dryVolumePerArea",\n "url": "URL",\n "downloadUrl": "URL"\n }\n]\n')),Object(o.b)("h3",{id:"get-the-operations-units"},"Get the operation's units"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--success"},"GET")," ",Object(o.b)("inlineCode",{parentName:"p"},"/operations/{id}/units")),Object(o.b)("p",null,"Gets the operations's properties and their units."),Object(o.b)("h4",{id:"request-examples-8"},"Request examples"),Object(o.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(i.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/operations/{id}/units'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(o.b)(i.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/operations/{id}/units'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/operations/{id}/units'\n")))),Object(o.b)("h4",{id:"response-8"},"Response"),Object(o.b)("p",null,Object(o.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/operations_sample_output#field-operations-units"}),"Here's a link with sample responses"),' for "planted", "applied", "harvested" and "tillage" operations.'),Object(o.b)("p",null,"These properties vary depending on the operationType, but you can expect the same,\nstandardized keys, across different providers."),Object(o.b)("p",null,"Units usually don't change for the same Leaf User, since the providers units\nconfiguration is based on their location. But keep in mind that it's best to\nalways take the units into consideration, just to be sure."),Object(o.b)("h3",{id:"crop-operation-by-field"},"Crop operation by field"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--warning"},"POST")," ",Object(o.b)("inlineCode",{parentName:"p"},"/operations/cropOperationByField")),Object(o.b)("p",null,"This endpoint can be used to remove points from the operation standardGeojson that are outside of the field geometry."),Object(o.b)("h4",{id:"request-examples-9"},"Request examples"),Object(o.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(i.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/operations/cropOperationByField'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\nconst data = { 'id': 'operationId' }\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(o.b)(i.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/operations/cropOperationByField'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {'id': 'operationId'}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(o.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -d '{ \"id\": \"operationId\"}' \\\n 'https://api.withleaf.io/services/operations/api/operations/cropOperationByField'\n")))),Object(o.b)("h4",{id:"response-9"},"Response"),Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "1162a1c6-9872-4d7f-9833-5d48add8eed4",\n "message": "Sent operation to be processed.",\n "leafFileId": "33020f03-5889-4c0f-b465-7a7e2c03a91d"\n}\n')),Object(o.b)("p",null,"You could monitor the processing status using the ",Object(o.b)("inlineCode",{parentName:"p"},"leafFileId")," by our ",Object(o.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/alerts_overview/"}),"Alerts Service"),"."),Object(o.b)("h3",{id:"get-files-from-an-operation"},"Get files from an operation"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--warning"},"POST")," ",Object(o.b)("inlineCode",{parentName:"p"},"/operations/{id}/files")),Object(o.b)("p",null,"Allow the user to fetch all files resources that were aggregated to generate an Field Operation."),Object(o.b)("h4",{id:"request-examples-10"},"Request examples"),Object(o.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(i.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/operations/{id}/files'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.post(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(o.b)(i.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/operations/{id}/files'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.post(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/operations/{id}/files'\n")))),Object(o.b)("h4",{id:"response-10"},"Response"),Object(o.b)("p",null,"Check our ",Object(o.b)("a",Object(n.a)({parentName:"p"},{href:"files_sample"}),"sample response")," to have complete represention on the expected output."),Object(o.b)("h3",{id:"reprocess-an-operation"},"Reprocess an operation"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--warning"},"POST")," ",Object(o.b)("inlineCode",{parentName:"p"},"/operations/{id}/reprocess")),Object(o.b)("p",null,"Allows reprocessing an operation already created, starting from the merge step. The ",Object(o.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/operations_sample_output/#field-operations-standard-geojson"}),"standardGeoJSON"),", ",Object(o.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/operations_sample_output/#field-operations-filtered-geojson"}),"filteredGeoJSON"),", ",Object(o.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/operations_sample_output/#field-operations-summary"}),"summary")," and ",Object(o.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/operations_sample_output/#field-operations-images"}),"images")," will be updated."),Object(o.b)("h4",{id:"request-examples-11"},"Request examples"),Object(o.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(i.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/operations/{id}/reprocess'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.post(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(o.b)(i.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/operations/{id}/reprocess'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.post(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/operations/{id}/reprocess'\n")))),Object(o.b)("p",null,"You could monitor the processing status by our ",Object(o.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/alerts_overview/"}),"Alerts Service"),"."),Object(o.b)("h2",{id:"alerts"},"Alerts"),Object(o.b)("p",null,"With Alerts you can be notified when something happens or changes instead of needing to repeatedly query for changes.\nLeaf Alerts support events that happen within Leaf and events that happen within supported 3rd party software. "),Object(o.b)("h3",{id:"list-of-operations-events"},"List of Operations Events"),Object(o.b)("p",null,"Leaf Operations Service can Alert you on these events: ",Object(o.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/alerts_events/#operation-events"}),"list of Operations Events")))}d.isMDXComponent=!0},153:function(e,t,a){"use strict";a.d(t,"a",(function(){return c})),a.d(t,"b",(function(){return O}));var n=a(0),r=a.n(n);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var l=r.a.createContext({}),b=function(e){var t=r.a.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=b(e.components);return r.a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},u=r.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,l=p(e,["components","mdxType","originalType","parentName"]),c=b(a),u=n,O=c["".concat(s,".").concat(u)]||c[u]||d[u]||o;return a?r.a.createElement(O,i(i({ref:t},l),{},{components:a})):r.a.createElement(O,i({ref:t},l))}));function O(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,s=new Array(o);s[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i.mdxType="string"==typeof e?e:n,s[1]=i;for(var l=2;l 0.0")),Object(b.b)("tr",{parentName:"tbody"},Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"wetMassPerArea"),Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"> 0.0")),Object(b.b)("tr",{parentName:"tbody"},Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"wetVolume"),Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"> 0.0")),Object(b.b)("tr",{parentName:"tbody"},Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"wetVolumePerArea"),Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"> 0.0")),Object(b.b)("tr",{parentName:"tbody"},Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"harvestMoisture"),Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"> 0.0 and <100.0")),Object(b.b)("tr",{parentName:"tbody"},Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"appliedRate"),Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"> 0.0")),Object(b.b)("tr",{parentName:"tbody"},Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"seedRate"),Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"> 0.0")),Object(b.b)("tr",{parentName:"tbody"},Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"tillageDepthActual"),Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"> 0.0")),Object(b.b)("tr",{parentName:"tbody"},Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"recordingStatus"),Object(b.b)("td",Object(n.a)({parentName:"tr"},{align:null}),'= "On"')))),Object(b.b)("p",null,"The API will automatically clean the invalid points when the ",Object(b.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/configurations_overview#cleanupstandardgeojson"}),Object(b.b)("inlineCode",{parentName:"a"},"cleanupStandardGeojson"))," configuration is enabled."),Object(b.b)("h3",{id:"images"},"Images"),Object(b.b)("p",null,"Also, Leaf displays all the numerical properties across all operation types via a png file. Here's a sample response from a Leaf harvested file."),Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "property": "area",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0 ]\n },\n "url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"\n },\n {\n "property": "wetMass",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0 ]\n },\n "url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"\n },\n {\n "property": "wetVolume",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0 ]\n },\n "url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"\n },\n {\n "property": "distance",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0 ]\n },\n "url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"\n },\n {\n "property": "wetVolumePerArea",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0 ]\n },\n "url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"\n },\n {\n "property": "equipmentWidth",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0 ]\n },\n "url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"\n },\n {\n "property": "wetMassPerArea",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0 ]\n },\n "url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"\n },\n {\n "property": "sectionId",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0 ]\n },\n "url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"\n },\n {\n "property": "elevation",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0 ]\n },\n "url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"\n },\n {\n "property": "harvestMoisture",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0 ]\n },\n "url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"\n },\n {\n "property": "heading",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0 ]\n },\n "url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"\n },\n {\n "property": "dryMass",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0 ]\n },\n "url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"\n },\n {\n "property": "dryMassPerArea",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0 ]\n },\n "url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"\n },\n {\n "property": "dryVolume",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0 ]\n },\n "url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"\n },\n {\n "property": "dryVolumePerArea",\n "ramp": {\n "0%": [200, 0, 0],\n "35%": [255, 40, 0],\n "45%": [255, 150, 0],\n "55%": [255, 240, 0],\n "65%": [0, 230, 0],\n "75%": [0, 190, 0],\n "100%": [0, 130, 0],\n "nv": [0, 0, 0, 0 ]\n },\n "url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"\n }\n]\n')),Object(b.b)("h3",{id:"machine-files-units"},"Machine Files Units"),Object(b.b)("p",null,"Here is an example of Units from the numerical properties of the Machine Files."),Object(b.b)(r.a,{defaultValue:"harvested",values:[{label:"Planted",value:"planted"},{label:"Harvested",value:"harvested"},{label:"Applied",value:"applied"},{label:"Tillage",value:"tillage"}],mdxType:"Tabs"},Object(b.b)(c.a,{value:"applied",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "distance": "ft",\n "heading": "arcdeg",\n "speed": "mi/hr",\n "area": "m2",\n "appliedRate": "gal/ac",\n "appliedRateTarget": "gal/ac",\n "equipmentWidth": "ft",\n "elevation": "m"\n}\n'))),Object(b.b)(c.a,{value:"harvested",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "elevation": "ft",\n "area": "m2",\n "harvestMoisture": "percentage",\n "dryVolumePerArea": "bu/ac",\n "distance": "ft",\n "heading": "arcdeg",\n "dryVolume": "bu",\n "wetVolume": "bu",\n "wetVolumePerArea": "bu/ac",\n "dryMassPerArea": "lb/ac",\n "wetMassPerArea": "lb/ac",\n "speed": "mi/hr",\n "equipmentWidth": "ft",\n "dryMass": "lb",\n "wetMass": "lb"\n}\n'))),Object(b.b)(c.a,{value:"planted",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "speed": "mi/hr",\n "distance": "ft",\n "heading": "arcdeg",\n "elevation": "ft",\n "seedRateTarget": "seeds/ac",\n "seedRate": "seeds/ac",\n "downForce": "lb",\n "singulation": "prcnt",\n "equipmentWidth": "ft",\n "area": "m2"\n}\n'))),Object(b.b)(c.a,{value:"tillage",mdxType:"TabItem"},Object(b.b)("pre",null,Object(b.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "distance": "ft",\n "equipmentWidth": "ft",\n "tillageDepthActual": "in",\n "tillageDepthTarget": "in",\n "elevation": "ft",\n "area": "m2"\n}\n')))))}d.isMDXComponent=!0},153:function(t,e,a){"use strict";a.d(e,"a",(function(){return j})),a.d(e,"b",(function(){return o}));var n=a(0),l=a.n(n);function b(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function r(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function c(t){for(var e=1;e=0||(l[a]=t[a]);return l}(t,e);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(l[a]=t[a])}return l}var p=l.a.createContext({}),O=function(t){var e=l.a.useContext(p),a=e;return t&&(a="function"==typeof t?t(e):c(c({},e),t)),a},j=function(t){var e=O(t.components);return l.a.createElement(p.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return l.a.createElement(l.a.Fragment,{},e)}},m=l.a.forwardRef((function(t,e){var a=t.components,n=t.mdxType,b=t.originalType,r=t.parentName,p=i(t,["components","mdxType","originalType","parentName"]),j=O(a),m=n,o=j["".concat(r,".").concat(m)]||j[m]||d[m]||b;return a?l.a.createElement(o,c(c({ref:e},p),{},{components:a})):l.a.createElement(o,c({ref:e},p))}));function o(t,e){var a=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var b=a.length,r=new Array(b);r[0]=m;var c={};for(var i in e)hasOwnProperty.call(e,i)&&(c[i]=e[i]);c.originalType=t,c.mdxType="string"==typeof t?t:n,r[1]=c;for(var p=2;p console.log(res.data))\n .catch(console.error)\n")))),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},'note: Your Leaf Token lasts for 30 days with "rememberMe": "true" in the\njson. If you want it to last only 24h, feel free to set "rememberMe" to "false".'),Object(i.b)("br",{parentName:"p"}),"\n",Object(i.b)("em",{parentName:"p"},"After expiration, just make the same request to the same endpoint and you will\nget a new access token. ")),Object(i.b)("h2",{id:"get-sample-field-with-attached-operations"},"Get sample Field with attached operations"),Object(i.b)("p",null,"Inside your account, we've created a sample LeafUser and populated it with data.\nLet's take a look at the fields endpoint to see the sample field:"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"}],mdxType:"Tabs"},Object(i.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\\n 'https://api.withleaf.io/services/fields/api/fields'\n"))),Object(i.b)(l.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nurl = \"https://api.withleaf.io/services/fields/api/fields\"\nheaders = {'Authorization': 'Bearer YOUR_LEAF_TOKEN'}\n\nresponse = requests.request(\"GET\", url, headers=headers)\n")))),Object(i.b)("p",null,"It returns a JSON object representing the Fields and you can see that there are\noperations ids attached. Next section will explain how to get the operations by\nthose ids."),Object(i.b)("h2",{id:"get-all-sample-operation-files"},"Get all sample operation files"),Object(i.b)("p",null,"Next, let's look at operations data. 'Operations' refers to the data collected\nwhen a machine and any implements performed an operation on a farm. This command\nwill list operations files available across your whole account:"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"}],mdxType:"Tabs"},Object(i.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/files'\n"))),Object(i.b)(l.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nurl = \"https://api.withleaf.io/services/operations/api/files\"\n\nheaders = {\n 'Content-Type': 'application/json',\n 'Authorization': 'Bearer YOUR_LEAF_TOKEN'\n}\n\nresponse = requests.request(\"GET\", url, headers=headers)\n")))),Object(i.b)("h2",{id:"get-specific-sample-operation-file"},"Get specific sample operation file"),Object(i.b)("p",null,"Now that you have a file ID, you can query for the operations data itself and a\nsummary as well."),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"}],mdxType:"Tabs"},Object(i.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/files/{id}'\n"))),Object(i.b)(l.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nurl = \"https://api.withleaf.io/services/operations/api/files/{file_id}\"\n\nheaders = {\n 'Content-Type': 'application/json',\n 'Authorization': 'Bearer YOUR_LEAF_TOKEN'\n}\n\nresponse = requests.request(\"GET\", url, headers=headers)\n")))),Object(i.b)("h2",{id:"get-sample-operation-file-summary"},"Get sample operation file summary"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"}],mdxType:"Tabs"},Object(i.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/files/{id}/summary'\n"))),Object(i.b)(l.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nurl = \"https://api.withleaf.io/services/operations/api/files/{file_id}/summary\"\n\nheaders = {\n 'Content-Type': 'application/json',\n 'Authorization': 'Bearer YOUR_LEAF_TOKEN'\n}\n\nresponse = requests.request(\"GET\", url, headers=headers)\n")))),Object(i.b)("h2",{id:"get-sample-operation-file-image"},"Get sample operation file image"),Object(i.b)("p",null,"You may have already noticed that we're seeing a lot of operations files for\nthis one field and the timestamps span just a few days. This is because we're\nlooking at multiple files output from a machine that effectively represent one\nlarge operation - a harvest. Before we talk about merging these pieces into a\nsingle operation, let's look at an image from one of the pieces:"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"}],mdxType:"Tabs"},Object(i.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/files/{id}/images'\n"))),Object(i.b)(l.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nurl = \"https://api.withleaf.io/services/operations/api/files/{file_id}/images\"\n\nheaders = {\n 'Content-Type': 'application/json',\n 'Authorization': 'Bearer YOUR_LEAF_TOKEN'\n}\n\nresponse = requests.request(\"GET\", url, headers=headers)\n")))),Object(i.b)("h2",{id:"get-sample-merged-operation-file"},"Get sample merged operation file"),Object(i.b)("p",null,"A single strip appears in that image which is no mistake. It's also not as\nuseful as seeing the whole operation across the whole field! To solve this, we\nallow you to request a merge of operations data and produce images for data of\nthe same type and timeframe. The sample data already includes a merged file."),Object(i.b)("p",null,"Let's take a look at that merged harvesting image which is colored to indicate\nthe range of wet mass collected. First, let's find the merged file by simply\nadding a parameter to filter to origin=merged"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"}],mdxType:"Tabs"},Object(i.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/files?origin=merged'\n"))),Object(i.b)(l.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nurl = \"https://api.withleaf.io/services/operations/api/files?origin=merged\"\n\npayload = {}\nheaders = {\n 'Content-Type': 'application/json',\n 'Authorization': 'Bearer YOUR_LEAF_TOKEN'\n}\n\nresponse = requests.request(\"GET\", url, headers=headers, data = payload)\n")))),Object(i.b)("p",null,"And finally, use that file ID to retrieve a list of images, one for each\noperation property. From this response, you can load one of the sample images:"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"}],mdxType:"Tabs"},Object(i.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/files/{id}/images'\n"))),Object(i.b)(l.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nurl = \"https://api.withleaf.io/services/operations/api/files/{file_id}/images\"\n\nheaders = {\n 'Content-Type': 'application/json',\n 'Authorization': 'Bearer YOUR_LEAF_TOKEN'\n}\n\nresponse = requests.request(\"GET\", url, headers=headers)\n")))),Object(i.b)("h2",{id:"get-sample-satellite-imagery"},"Get sample satellite imagery"),Object(i.b)("p",null,"Finally, let's take a look at some satellite imagery. Using data from Sentinel-2,\nwe produce NDVI images for fields you define to be monitored. First we'll list\nthe fields being monitored from the satellite service:"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"}],mdxType:"Tabs"},Object(i.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\\n 'https://api.withleaf.io/services/satellite/api/fields/'\n"))),Object(i.b)(l.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nurl = \"https://api.withleaf.io/services/satellite/api/fields\"\n\nheaders = {\n 'Content-Type': 'application/json',\n 'Authorization': 'Bearer YOUR_LEAF_TOKEN'\n}\n\nresponse = requests.request(\"GET\", url, headers=headers)\n")))),Object(i.b)("p",null,"And then we can pull up the sample NDVI image of the sample field like this:"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"}],mdxType:"Tabs"},Object(i.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\\n 'https://api.withleaf.io/services/satellite/api/fields/{field_id}/processes'\n"))),Object(i.b)(l.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nurl = \"https://api.withleaf.io/services/satellite/api/fields/{field_id}/processes\"\n\nheaders = {\n 'Content-Type': 'application/json',\n 'Authorization': 'Bearer YOUR_LEAF_TOKEN'\n}\n\nresponse = requests.request(\"GET\", url, headers=headers)\n")))))}b.isMDXComponent=!0},153:function(e,t,a){"use strict";a.d(t,"a",(function(){return u})),a.d(t,"b",(function(){return m}));var n=a(0),r=a.n(n);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=r.a.createContext({}),p=function(e){var t=r.a.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},u=function(e){var t=p(e.components);return r.a.createElement(c.Provider,{value:t},e.children)},b={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},d=r.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),u=p(a),d=n,m=u["".concat(s,".").concat(d)]||u[d]||b[d]||i;return a?r.a.createElement(m,l(l({ref:t},c),{},{components:a})):r.a.createElement(m,l({ref:t},c))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,s=new Array(i);s[0]=d;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l.mdxType="string"==typeof e?e:n,s[1]=l;for(var c=2;c=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=o.a.createContext({}),l=function(e){var t=o.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},f=function(e){var t=l(e.components);return o.a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},p=o.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,i=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),f=l(n),p=r,b=f["".concat(i,".").concat(p)]||f[p]||d[p]||a;return n?o.a.createElement(b,c(c({ref:t},s),{},{components:n})):o.a.createElement(b,c({ref:t},s))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=p;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var s=2;s=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=o.a.createContext({}),p=function(e){var t=o.a.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},f=function(e){var t=p(e.components);return o.a.createElement(l.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},m=o.a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,l=u(e,["components","mdxType","originalType","parentName"]),f=p(r),m=n,b=f["".concat(c,".").concat(m)]||f[m]||s[m]||a;return r?o.a.createElement(b,i(i({ref:t},l),{},{components:r})):o.a.createElement(b,i({ref:t},l))}));function b(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,c=new Array(a);c[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i.mdxType="string"==typeof e?e:n,c[1]=i;for(var l=2;l Magic Link",sidebar_label:"Overview"},u={unversionedId:"Magic_link_overview",id:"Magic_link_overview",isDocsHomePage:!1,title:"Magic Link Overview",description:"Leaf Link > Magic Link",source:"@site/docs/Magic_link_overview.md",permalink:"/docs/docs/Magic_link_overview",editUrl:"https://github.com/Leaf-Agriculture/docs/tree/master/docs/Magic_link_overview.md",sidebar_label:"Overview",sidebar:"docs",previous:{title:"Leaf Link > Endpoints",permalink:"/docs/docs/Link_endpoints"},next:{title:"Magic Link Endpoints",permalink:"/docs/docs/Magic_link_endpoints"}},l=[{value:"Authenticate with Magic Link",id:"authenticate-with-magic-link",children:[{value:"Provider",id:"provider",children:[]},{value:"Authentication",id:"authentication",children:[]}]},{value:"Upload file with Magic Link",id:"upload-file-with-magic-link",children:[{value:"File upload",id:"file-upload",children:[]}]}],s={rightToc:l};function f(e){var t=e.components,n=Object(i.a)(e,["components"]);return Object(a.b)("wrapper",Object(r.a)({},s,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("p",null,"The Magic Link is the easiest way to connect your customer data with Leaf API. It offers a low-code solution to enable them to connect to data providers or upload files. The link generated in this solution controls all the steps for each functionality and its appearance can be customized too."),Object(a.b)("h2",{id:"authenticate-with-magic-link"},"Authenticate with Magic Link"),Object(a.b)("p",{align:"center"},Object(a.b)("img",{alt:"authentication",src:Object(o.a)("img/flow_authentication.png")})),Object(a.b)("h3",{id:"provider"},"Provider"),Object(a.b)("p",null,"The Magic Link Provider is a feature that allows the user to authenticate with several providers using a single link. It is necessary to have previously created the respective ",Object(a.b)("a",Object(r.a)({parentName:"p"},{href:"/docs/Link_provider_connection#set-up"}),"application info")," for these providers."),Object(a.b)("h3",{id:"authentication"},"Authentication"),Object(a.b)("p",null,"The Magic Link Authentication is a feature to authenticate with only one provider at a time. It is necessary to have previously created the ",Object(a.b)("a",Object(r.a)({parentName:"p"},{href:"/docs/Link_provider_connection#set-up"}),"application info")," for this provider."),Object(a.b)("h2",{id:"upload-file-with-magic-link"},"Upload file with Magic Link"),Object(a.b)("p",{align:"center"},Object(a.b)("img",{alt:"file-upload",src:Object(o.a)("img/flow_file_upload.png")})),Object(a.b)("h3",{id:"file-upload"},"File upload"),Object(a.b)("p",null,"The Magic Link File upload is a feature that allows the user to upload machine files to the Leaf API."))}f.isMDXComponent=!0},153:function(e,t,n){"use strict";n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return b}));var r=n(0),i=n.n(r);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=i.a.createContext({}),s=function(e){var t=i.a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},f=function(e){var t=s(e.components);return i.a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},p=i.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,o=e.parentName,l=u(e,["components","mdxType","originalType","parentName"]),f=s(n),p=r,b=f["".concat(o,".").concat(p)]||f[p]||d[p]||a;return n?i.a.createElement(b,c(c({ref:t},l),{},{components:n})):i.a.createElement(b,c({ref:t},l))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,o=new Array(a);o[0]=p;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:r,o[1]=c;for(var l=2;l Layers Endpoints",description:"Beta - Layers Endpoints",sidebar_label:"Endpoints"}),c={unversionedId:"beta_layers_endpoints",id:"beta_layers_endpoints",isDocsHomePage:!1,title:"Beta > Layers Endpoints",description:"Beta - Layers Endpoints",source:"@site/docs/beta_layers_endpoints.md",permalink:"/docs/docs/beta_layers_endpoints",editUrl:"https://github.com/Leaf-Agriculture/docs/tree/master/docs/beta_layers_endpoints.md",sidebar_label:"Endpoints",sidebar:"docs",previous:{title:"Beta > Prescriptions Endpoints",permalink:"/docs/docs/beta_prescriptions_endpoints"},next:{title:"Leaf Provider Connection / Authentication Link",permalink:"/docs/docs/Link_provider_connection"}},b=[{value:"About",id:"about",children:[]},{value:"Layers (BETA)",id:"layers-beta",children:[{value:"Get all the layers for a Leaf User",id:"get-all-the-layers-for-a-leaf-user",children:[]},{value:"Upload a layer to Climate FieldView",id:"upload-a-layer-to-climate-fieldview",children:[]}]}],d={rightToc:b};function p(e){var t=e.components,a=Object(r.a)(e,["components"]);return Object(i.b)("wrapper",Object(n.a)({},d,a,{components:t,mdxType:"MDXLayout"}),Object(i.b)("h2",{id:"about"},"About"),Object(i.b)("p",null,"You can now get layers (tassel count, stand count, NVDI, and RGB) through the Sentera integration. Please make sure to follow the ",Object(i.b)("a",Object(n.a)({parentName:"p"},{href:"https://withleaf.io/en/whats-new/sentera-integration-with-leaf/"}),"Sentera integratation steps")," before getting layers."),Object(i.b)("p",null,"All HTTP methods should be prepended by this service's endpoint:"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{}),"https://api.withleaf.io/services/beta/api\n")),Object(i.b)("p",null,"See below the REST resources and their endpoints available in this service."),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-the-layers-for-a-leaf-user"}),"Get all the layers for a Leaf User")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/layers"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#upload-a-layer-to-climate-fieldview"}),"Upload a layer to Climate FieldView")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--warning"},"POST")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/layers/climateFieldView"))))),Object(i.b)("h2",{id:"layers-beta"},"Layers (BETA)"),Object(i.b)("h3",{id:"get-all-the-layers-for-a-leaf-user"},"Get all the layers for a Leaf User"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/layers")),Object(i.b)("p",null,"Gets a paged list of layers that belong for a Leaf User."),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Values"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"type")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"TASSEL_COUNT"),", ",Object(i.b)("inlineCode",{parentName:"td"},"STAND_COUNT"),", ",Object(i.b)("inlineCode",{parentName:"td"},"NVDI"),", and ",Object(i.b)("inlineCode",{parentName:"td"},"RGB"))))),Object(i.b)("p",null,"You can also pass some parameters used exclusively for paging through results.\nThey are:"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"page"),", an integer specifying the page being fetched (default is 0)"),Object(i.b)("li",{parentName:"ul"},Object(i.b)("inlineCode",{parentName:"li"},"size"),", an integer specifying the size of the page (max is 100)")),Object(i.b)("div",{className:"admonition admonition-info alert alert--info"},Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(i.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"the default value for page size is 20")),Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"If the parameters page and size are not set, the endpoint will return 20 results."))),Object(i.b)("h4",{id:"request-examples"},"Request examples"),Object(i.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(o.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\nconst endpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/layers'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(o.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nendpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/layers'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(i.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/layers'\n")))),Object(i.b)("h4",{id:"response"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "96a098e0-f1d0-47e8-968d-9d55d54da114",\n "leafUserId": "055c4d61-b1e2-4fa9-873c-23433a11c271",\n "apiOwnerUsername": "fabyan",\n "type": "RGB",\n "origin": "PROVIDER_POOLED",\n "provider": "Sentera",\n "providerLayerId": "vnoyi6a_FI_edovSouthernM_CV_prod_82f9b3d6_211018_151052",\n "providerFieldId": "ycof8zg_AS_edovSouthernM_CV_prod_a025df2d_211015_200456",\n "name": "QuickTile RGB",\n "size": 159135298,\n "md5": "7ff746c6f5f06fc25b46420328402bed",\n "contentS3": "URL",\n "downloadContentS3": "URL",\n "createdTime": "2022-02-16T21:40:20.257Z",\n "leafFieldIds": [\n "f43ca7cc-c73a-43b9-8685-070b03876475",\n "edcf7b8b-913e-4e53-a0b5-91aa16699dfc"\n ]\n },\n {\n "id": "4d9b0139-f528-43ab-8bc9-a31043fa87d2",\n "leafUserId": "055c4d61-b1e2-4fa9-873c-23433a11c271",\n "apiOwnerUsername": "fabyan",\n "type": "RGB",\n "origin": "PROVIDER_POOLED",\n "provider": "Sentera",\n "providerLayerId": "",\n "providerFieldId": "",\n "name": "QuickTile RGB",\n "size": 121910506,\n "md5": "759d1f68962e30ea78f40025c8b64972",\n "contentS3": "URL",\n "downloadContentS3": "URL",\n "createdTime": "2022-02-16T21:40:35.341Z",\n "leafFieldIds": [\n "f43ca7cc-c73a-43b9-8685-070b03876475",\n "edcf7b8b-913e-4e53-a0b5-91aa16699dfc"\n ]\n },\n ....\n]\n')),Object(i.b)("h3",{id:"upload-a-layer-to-climate-fieldview"},"Upload a layer to Climate FieldView"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--warning"},"POST")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/layers/climateFieldView")),Object(i.b)("p",null,"Send a layer file to Climate FieldView."),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Parameter"),Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Values"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"uploadType")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"RGB"))))),Object(i.b)("p",null,"Currently, only true color image (RGB) files are supported and must meet the following criteria required by Climate:"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"The image needs to be a multi band GeoTIFF with 24-bit composite values (must contain 3 bands in the order Red, Green, Blue)"),Object(i.b)("li",{parentName:"ul"},"The Coordinate Reference System (CRS) must be UTM with WGS84 datum"),Object(i.b)("li",{parentName:"ul"},"The following metadata ",Object(i.b)("a",Object(n.a)({parentName:"li"},{href:"https://www.awaresystems.be/imaging/tiff/tifftags/geo_metadata.html"}),"(GDAL_METADATA tag)")," entries are required to be embedded in the GeoTIFF:",Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"acquisitionStartDate - ISO8601 date"),Object(i.b)("li",{parentName:"ul"},"acquisitionEndDate - ISO8601 date"),Object(i.b)("li",{parentName:"ul"},"isCalibrated - boolean")))),Object(i.b)("p",null,"Although Climate FieldView supports files up to 500MB, at this time, we only accept files up to 5MB."),Object(i.b)("h4",{id:"request-examples-1"},"Request examples"),Object(i.b)(l.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(o.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/api/users/{leafUserId}/layers/climateFieldView'\n\nconst headers = {\n 'Authorization': `Bearer ${TOKEN}`\n 'Content-Type': 'multipart/form-data'\n}\n\nconst params = {\n uploadType: 'RGB'\n}\n\nconst form = new FormData()\nform.append('file', 'rgb.tif')\n\naxios.post(endpoint, form, { headers, params })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(o.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/layers/climateFieldView'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nfiles = {'file': open('rgb.tif', 'rb')}\nparams = {\n 'uploadType': 'RGB'\n}\n\nresponse = requests.post(endpoint, headers=headers, files=files, params=params)\nprint(response.json())\n"))),Object(i.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -F 'file=rgb.tif' \\\n 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/layers/climateFieldView?' \\\n 'uploadType=RGB'\n")))),Object(i.b)("h4",{id:"response-1"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "86fb8bea-1670-48ea-a85d-fbdf6feefb35",\n "name": "LayerName"\n}\n')),Object(i.b)("div",{className:"admonition admonition-info alert alert--info"},Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(i.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"info")),Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"Uploaded layers are not stored on Leaf side and are only available for use directly in Climate FieldView"))))}p.isMDXComponent=!0},153:function(e,t,a){"use strict";a.d(t,"a",(function(){return d})),a.d(t,"b",(function(){return m}));var n=a(0),r=a.n(n);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=r.a.createContext({}),b=function(e){var t=r.a.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},d=function(e){var t=b(e.components);return r.a.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},u=r.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),d=b(a),u=n,m=d["".concat(l,".").concat(u)]||d[u]||p[u]||i;return a?r.a.createElement(m,o(o({ref:t},c),{},{components:a})):r.a.createElement(m,o({ref:t},c))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,l=new Array(i);l[0]=u;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o.mdxType="string"==typeof e?e:n,l[1]=o;for(var c=2;c=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var m=r.a.createContext({}),O=function(e){var t=r.a.useContext(m),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=O(e.components);return r.a.createElement(m.Provider,{value:t},e.children)},j={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},p=r.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,b=e.originalType,l=e.parentName,m=c(e,["components","mdxType","originalType","parentName"]),d=O(a),p=n,o=d["".concat(l,".").concat(p)]||d[p]||j[p]||b;return a?r.a.createElement(o,i(i({ref:t},m),{},{components:a})):r.a.createElement(o,i({ref:t},m))}));function o(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var b=a.length,l=new Array(b);l[0]=p;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:n,l[1]=i;for(var m=2;m";var i=document.createElement("div");i.appendChild(document.createTextNode(t)),n=n||"";var r=document.createElement("div");r.appendChild(document.createTextNode(n));var o=document.createElement("div");return o.appendChild(document.createTextNode(e)),o.innerHTML.replace(RegExp(s(i.innerHTML),"g"),t).replace(RegExp(s(r.innerHTML),"g"),n)}}},170:function(e,t,n){"use strict";e.exports={element:null}},176:function(e,t){var n;n=window,e.exports=function(e){var t,n,i=function(){var t,n,i,r,s,o=[],a=o.concat,u=o.filter,c=o.slice,l=e.document,h={},p={},f={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},d=/^\s*<(\w+|!)[^>]*>/,m=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,g=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,y=/^(?:body|html)$/i,v=/([A-Z])/g,x=["val","css","html","text","data","width","height","offset"],w=l.createElement("table"),b=l.createElement("tr"),S={tr:l.createElement("tbody"),tbody:w,thead:w,tfoot:w,td:b,th:b,"*":l.createElement("div")},C=/complete|loaded|interactive/,E=/^[\w-]*$/,k={},T=k.toString,_={},O=l.createElement("div"),A={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},P=Array.isArray||function(e){return e instanceof Array};function L(e){return null==e?String(e):k[T.call(e)]||"object"}function Q(e){return"function"==L(e)}function I(e){return null!=e&&e==e.window}function N(e){return null!=e&&e.nodeType==e.DOCUMENT_NODE}function $(e){return"object"==L(e)}function D(e){return $(e)&&!I(e)&&Object.getPrototypeOf(e)==Object.prototype}function R(e){var t=!!e&&"length"in e&&e.length,i=n.type(e);return"function"!=i&&!I(e)&&("array"==i||0===t||"number"==typeof t&&t>0&&t-1 in e)}function F(e){return e.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function j(e){return e in p?p[e]:p[e]=new RegExp("(^|\\s)"+e+"(\\s|$)")}function M(e,t){return"number"!=typeof t||f[F(e)]?t:t+"px"}function V(e){return"children"in e?c.call(e.children):n.map(e.childNodes,(function(e){if(1==e.nodeType)return e}))}function B(e,t){var n,i=e?e.length:0;for(n=0;n")),void 0===t&&(t=d.test(e)&&RegExp.$1),t in S||(t="*"),(o=S[t]).innerHTML=""+e,r=n.each(c.call(o.childNodes),(function(){o.removeChild(this)}))),D(i)&&(s=n(r),n.each(i,(function(e,t){x.indexOf(e)>-1?s[e](t):s.attr(e,t)}))),r},_.Z=function(e,t){return new B(e,t)},_.isZ=function(e){return e instanceof _.Z},_.init=function(e,t){var i,r;if(!e)return _.Z();if("string"==typeof e)if("<"==(e=e.trim())[0]&&d.test(e))i=_.fragment(e,RegExp.$1,t),e=null;else{if(void 0!==t)return n(t).find(e);i=_.qsa(l,e)}else{if(Q(e))return n(l).ready(e);if(_.isZ(e))return e;if(P(e))r=e,i=u.call(r,(function(e){return null!=e}));else if($(e))i=[e],e=null;else if(d.test(e))i=_.fragment(e.trim(),RegExp.$1,t),e=null;else{if(void 0!==t)return n(t).find(e);i=_.qsa(l,e)}}return _.Z(i,e)},(n=function(e,t){return _.init(e,t)}).extend=function(e){var t,n=c.call(arguments,1);return"boolean"==typeof e&&(t=e,e=n.shift()),n.forEach((function(n){q(e,n,t)})),e},_.qsa=function(e,t){var n,i="#"==t[0],r=!i&&"."==t[0],s=i||r?t.slice(1):t,o=E.test(s);return e.getElementById&&o&&i?(n=e.getElementById(s))?[n]:[]:1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType?[]:c.call(o&&!i&&e.getElementsByClassName?r?e.getElementsByClassName(s):e.getElementsByTagName(t):e.querySelectorAll(t))},n.contains=l.documentElement.contains?function(e,t){return e!==t&&e.contains(t)}:function(e,t){for(;t&&(t=t.parentNode);)if(t===e)return!0;return!1},n.type=L,n.isFunction=Q,n.isWindow=I,n.isArray=P,n.isPlainObject=D,n.isEmptyObject=function(e){var t;for(t in e)return!1;return!0},n.isNumeric=function(e){var t=Number(e),n=typeof e;return null!=e&&"boolean"!=n&&("string"!=n||e.length)&&!isNaN(t)&&isFinite(t)||!1},n.inArray=function(e,t,n){return o.indexOf.call(t,e,n)},n.camelCase=r,n.trim=function(e){return null==e?"":String.prototype.trim.call(e)},n.uuid=0,n.support={},n.expr={},n.noop=function(){},n.map=function(e,t){var i,r,s,o,a=[];if(R(e))for(r=0;r0?n.fn.concat.apply([],o):o},n.each=function(e,t){var n,i;if(R(e)){for(n=0;n=0?e:e+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each((function(){null!=this.parentNode&&this.parentNode.removeChild(this)}))},each:function(e){return o.every.call(this,(function(t,n){return!1!==e.call(t,n,t)})),this},filter:function(e){return Q(e)?this.not(this.not(e)):n(u.call(this,(function(t){return _.matches(t,e)})))},add:function(e,t){return n(s(this.concat(n(e,t))))},is:function(e){return this.length>0&&_.matches(this[0],e)},not:function(e){var t=[];if(Q(e)&&void 0!==e.call)this.each((function(n){e.call(this,n)||t.push(this)}));else{var i="string"==typeof e?this.filter(e):R(e)&&Q(e.item)?c.call(e):n(e);this.forEach((function(e){i.indexOf(e)<0&&t.push(e)}))}return n(t)},has:function(e){return this.filter((function(){return $(e)?n.contains(this,e):n(this).find(e).size()}))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){var e=this[0];return e&&!$(e)?e:n(e)},last:function(){var e=this[this.length-1];return e&&!$(e)?e:n(e)},find:function(e){var t=this;return e?"object"==typeof e?n(e).filter((function(){var e=this;return o.some.call(t,(function(t){return n.contains(t,e)}))})):1==this.length?n(_.qsa(this[0],e)):this.map((function(){return _.qsa(this,e)})):n()},closest:function(e,t){var i=[],r="object"==typeof e&&n(e);return this.each((function(n,s){for(;s&&!(r?r.indexOf(s)>=0:_.matches(s,e));)s=s!==t&&!N(s)&&s.parentNode;s&&i.indexOf(s)<0&&i.push(s)})),n(i)},parents:function(e){for(var t=[],i=this;i.length>0;)i=n.map(i,(function(e){if((e=e.parentNode)&&!N(e)&&t.indexOf(e)<0)return t.push(e),e}));return z(t,e)},parent:function(e){return z(s(this.pluck("parentNode")),e)},children:function(e){return z(this.map((function(){return V(this)})),e)},contents:function(){return this.map((function(){return this.contentDocument||c.call(this.childNodes)}))},siblings:function(e){return z(this.map((function(e,t){return u.call(V(t.parentNode),(function(e){return e!==t}))})),e)},empty:function(){return this.each((function(){this.innerHTML=""}))},pluck:function(e){return n.map(this,(function(t){return t[e]}))},show:function(){return this.each((function(){var e,t,n;"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=(e=this.nodeName,h[e]||(t=l.createElement(e),l.body.appendChild(t),n=getComputedStyle(t,"").getPropertyValue("display"),t.parentNode.removeChild(t),"none"==n&&(n="block"),h[e]=n),h[e]))}))},replaceWith:function(e){return this.before(e).remove()},wrap:function(e){var t=Q(e);if(this[0]&&!t)var i=n(e).get(0),r=i.parentNode||this.length>1;return this.each((function(s){n(this).wrapAll(t?e.call(this,s):r?i.cloneNode(!0):i)}))},wrapAll:function(e){if(this[0]){var t;for(n(this[0]).before(e=n(e));(t=e.children()).length;)e=t.first();n(e).append(this)}return this},wrapInner:function(e){var t=Q(e);return this.each((function(i){var r=n(this),s=r.contents(),o=t?e.call(this,i):e;s.length?s.wrapAll(o):r.append(o)}))},unwrap:function(){return this.parent().each((function(){n(this).replaceWith(n(this).children())})),this},clone:function(){return this.map((function(){return this.cloneNode(!0)}))},hide:function(){return this.css("display","none")},toggle:function(e){return this.each((function(){var t=n(this);(void 0===e?"none"==t.css("display"):e)?t.show():t.hide()}))},prev:function(e){return n(this.pluck("previousElementSibling")).filter(e||"*")},next:function(e){return n(this.pluck("nextElementSibling")).filter(e||"*")},html:function(e){return 0 in arguments?this.each((function(t){var i=this.innerHTML;n(this).empty().append(H(this,e,t,i))})):0 in this?this[0].innerHTML:null},text:function(e){return 0 in arguments?this.each((function(t){var n=H(this,e,t,this.textContent);this.textContent=null==n?"":""+n})):0 in this?this.pluck("textContent").join(""):null},attr:function(e,n){var i;return"string"!=typeof e||1 in arguments?this.each((function(i){if(1===this.nodeType)if($(e))for(t in e)K(this,t,e[t]);else K(this,e,H(this,n,i,this.getAttribute(e)))})):0 in this&&1==this[0].nodeType&&null!=(i=this[0].getAttribute(e))?i:void 0},removeAttr:function(e){return this.each((function(){1===this.nodeType&&e.split(" ").forEach((function(e){K(this,e)}),this)}))},prop:function(e,t){return e=A[e]||e,1 in arguments?this.each((function(n){this[e]=H(this,t,n,this[e])})):this[0]&&this[0][e]},removeProp:function(e){return e=A[e]||e,this.each((function(){delete this[e]}))},data:function(e,t){var n="data-"+e.replace(v,"-$1").toLowerCase(),i=1 in arguments?this.attr(n,t):this.attr(n);return null!==i?U(i):void 0},val:function(e){return 0 in arguments?(null==e&&(e=""),this.each((function(t){this.value=H(this,e,t,this.value)}))):this[0]&&(this[0].multiple?n(this[0]).find("option").filter((function(){return this.selected})).pluck("value"):this[0].value)},offset:function(t){if(t)return this.each((function(e){var i=n(this),r=H(this,t,e,i.offset()),s=i.offsetParent().offset(),o={top:r.top-s.top,left:r.left-s.left};"static"==i.css("position")&&(o.position="relative"),i.css(o)}));if(!this.length)return null;if(l.documentElement!==this[0]&&!n.contains(l.documentElement,this[0]))return{top:0,left:0};var i=this[0].getBoundingClientRect();return{left:i.left+e.pageXOffset,top:i.top+e.pageYOffset,width:Math.round(i.width),height:Math.round(i.height)}},css:function(e,i){if(arguments.length<2){var s=this[0];if("string"==typeof e){if(!s)return;return s.style[r(e)]||getComputedStyle(s,"").getPropertyValue(e)}if(P(e)){if(!s)return;var o={},a=getComputedStyle(s,"");return n.each(e,(function(e,t){o[t]=s.style[r(t)]||a.getPropertyValue(t)})),o}}var u="";if("string"==L(e))i||0===i?u=F(e)+":"+M(e,i):this.each((function(){this.style.removeProperty(F(e))}));else for(t in e)e[t]||0===e[t]?u+=F(t)+":"+M(t,e[t])+";":this.each((function(){this.style.removeProperty(F(t))}));return this.each((function(){this.style.cssText+=";"+u}))},index:function(e){return e?this.indexOf(n(e)[0]):this.parent().children().indexOf(this[0])},hasClass:function(e){return!!e&&o.some.call(this,(function(e){return this.test(W(e))}),j(e))},addClass:function(e){return e?this.each((function(t){if("className"in this){i=[];var r=W(this);H(this,e,t,r).split(/\s+/g).forEach((function(e){n(this).hasClass(e)||i.push(e)}),this),i.length&&W(this,r+(r?" ":"")+i.join(" "))}})):this},removeClass:function(e){return this.each((function(t){if("className"in this){if(void 0===e)return W(this,"");i=W(this),H(this,e,t,i).split(/\s+/g).forEach((function(e){i=i.replace(j(e)," ")})),W(this,i.trim())}}))},toggleClass:function(e,t){return e?this.each((function(i){var r=n(this);H(this,e,i,W(this)).split(/\s+/g).forEach((function(e){(void 0===t?!r.hasClass(e):t)?r.addClass(e):r.removeClass(e)}))})):this},scrollTop:function(e){if(this.length){var t="scrollTop"in this[0];return void 0===e?t?this[0].scrollTop:this[0].pageYOffset:this.each(t?function(){this.scrollTop=e}:function(){this.scrollTo(this.scrollX,e)})}},scrollLeft:function(e){if(this.length){var t="scrollLeft"in this[0];return void 0===e?t?this[0].scrollLeft:this[0].pageXOffset:this.each(t?function(){this.scrollLeft=e}:function(){this.scrollTo(e,this.scrollY)})}},position:function(){if(this.length){var e=this[0],t=this.offsetParent(),i=this.offset(),r=y.test(t[0].nodeName)?{top:0,left:0}:t.offset();return i.top-=parseFloat(n(e).css("margin-top"))||0,i.left-=parseFloat(n(e).css("margin-left"))||0,r.top+=parseFloat(n(t[0]).css("border-top-width"))||0,r.left+=parseFloat(n(t[0]).css("border-left-width"))||0,{top:i.top-r.top,left:i.left-r.left}}},offsetParent:function(){return this.map((function(){for(var e=this.offsetParent||l.body;e&&!y.test(e.nodeName)&&"static"==n(e).css("position");)e=e.offsetParent;return e}))}},n.fn.detach=n.fn.remove,["width","height"].forEach((function(e){var t=e.replace(/./,(function(e){return e[0].toUpperCase()}));n.fn[e]=function(i){var r,s=this[0];return void 0===i?I(s)?s["inner"+t]:N(s)?s.documentElement["scroll"+t]:(r=this.offset())&&r[e]:this.each((function(t){(s=n(this)).css(e,H(this,i,t,s[e]()))}))}})),["after","prepend","before","append"].forEach((function(t,i){var r=i%2;n.fn[t]=function(){var t,s,o=n.map(arguments,(function(e){var i=[];return"array"==(t=L(e))?(e.forEach((function(e){return void 0!==e.nodeType?i.push(e):n.zepto.isZ(e)?i=i.concat(e.get()):void(i=i.concat(_.fragment(e)))})),i):"object"==t||null==e?e:_.fragment(e)})),a=this.length>1;return o.length<1?this:this.each((function(t,u){s=r?u:u.parentNode,u=0==i?u.nextSibling:1==i?u.firstChild:2==i?u:null;var c=n.contains(l.documentElement,s);o.forEach((function(t){if(a)t=t.cloneNode(!0);else if(!s)return n(t).remove();s.insertBefore(t,u),c&&G(t,(function(t){if(!(null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src)){var n=t.ownerDocument?t.ownerDocument.defaultView:e;n.eval.call(n,t.innerHTML)}}))}))}))},n.fn[r?t+"To":"insert"+(i?"Before":"After")]=function(e){return n(e)[t](this),this}})),_.Z.prototype=B.prototype=n.fn,_.uniq=s,_.deserializeValue=U,n.zepto=_,n}();return function(t){var n=1,i=Array.prototype.slice,r=t.isFunction,s=function(e){return"string"==typeof e},o={},a={},u="onfocusin"in e,c={focus:"focusin",blur:"focusout"},l={mouseenter:"mouseover",mouseleave:"mouseout"};function h(e){return e._zid||(e._zid=n++)}function p(e,t,n,i){if((t=f(t)).ns)var r=(s=t.ns,new RegExp("(?:^| )"+s.replace(" "," .* ?")+"(?: |$)"));var s;return(o[h(e)]||[]).filter((function(e){return e&&(!t.e||e.e==t.e)&&(!t.ns||r.test(e.ns))&&(!n||h(e.fn)===h(n))&&(!i||e.sel==i)}))}function f(e){var t=(""+e).split(".");return{e:t[0],ns:t.slice(1).sort().join(" ")}}function d(e,t){return e.del&&!u&&e.e in c||!!t}function m(e){return l[e]||u&&c[e]||e}function g(e,n,i,r,s,a,u){var c=h(e),p=o[c]||(o[c]=[]);n.split(/\s/).forEach((function(n){if("ready"==n)return t(document).ready(i);var o=f(n);o.fn=i,o.sel=s,o.e in l&&(i=function(e){var n=e.relatedTarget;if(!n||n!==this&&!t.contains(this,n))return o.fn.apply(this,arguments)}),o.del=a;var c=a||i;o.proxy=function(t){if(!(t=S(t)).isImmediatePropagationStopped()){try{var n=Object.getOwnPropertyDescriptor(t,"data");n&&!n.writable||(t.data=r)}catch(t){}var i=c.apply(e,null==t._args?[t]:[t].concat(t._args));return!1===i&&(t.preventDefault(),t.stopPropagation()),i}},o.i=p.length,p.push(o),"addEventListener"in e&&e.addEventListener(m(o.e),o.proxy,d(o,u))}))}function y(e,t,n,i,r){var s=h(e);(t||"").split(/\s/).forEach((function(t){p(e,t,n,i).forEach((function(t){delete o[s][t.i],"removeEventListener"in e&&e.removeEventListener(m(t.e),t.proxy,d(t,r))}))}))}a.click=a.mousedown=a.mouseup=a.mousemove="MouseEvents",t.event={add:g,remove:y},t.proxy=function(e,n){var o=2 in arguments&&i.call(arguments,2);if(r(e)){var a=function(){return e.apply(n,o?o.concat(i.call(arguments)):arguments)};return a._zid=h(e),a}if(s(n))return o?(o.unshift(e[n],e),t.proxy.apply(null,o)):t.proxy(e[n],e);throw new TypeError("expected function")},t.fn.bind=function(e,t,n){return this.on(e,t,n)},t.fn.unbind=function(e,t){return this.off(e,t)},t.fn.one=function(e,t,n,i){return this.on(e,t,n,i,1)};var v=function(){return!0},x=function(){return!1},w=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,b={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};function S(e,n){if(n||!e.isDefaultPrevented){n||(n=e),t.each(b,(function(t,i){var r=n[t];e[t]=function(){return this[i]=v,r&&r.apply(n,arguments)},e[i]=x}));try{e.timeStamp||(e.timeStamp=Date.now())}catch(i){}(void 0!==n.defaultPrevented?n.defaultPrevented:"returnValue"in n?!1===n.returnValue:n.getPreventDefault&&n.getPreventDefault())&&(e.isDefaultPrevented=v)}return e}function C(e){var t,n={originalEvent:e};for(t in e)w.test(t)||void 0===e[t]||(n[t]=e[t]);return S(n,e)}t.fn.delegate=function(e,t,n){return this.on(t,e,n)},t.fn.undelegate=function(e,t,n){return this.off(t,e,n)},t.fn.live=function(e,n){return t(document.body).delegate(this.selector,e,n),this},t.fn.die=function(e,n){return t(document.body).undelegate(this.selector,e,n),this},t.fn.on=function(e,n,o,a,u){var c,l,h=this;return e&&!s(e)?(t.each(e,(function(e,t){h.on(e,n,o,t,u)})),h):(s(n)||r(a)||!1===a||(a=o,o=n,n=void 0),void 0!==a&&!1!==o||(a=o,o=void 0),!1===a&&(a=x),h.each((function(r,s){u&&(c=function(e){return y(s,e.type,a),a.apply(this,arguments)}),n&&(l=function(e){var r,o=t(e.target).closest(n,s).get(0);if(o&&o!==s)return r=t.extend(C(e),{currentTarget:o,liveFired:s}),(c||a).apply(o,[r].concat(i.call(arguments,1)))}),g(s,e,a,o,n,l||c)})))},t.fn.off=function(e,n,i){var o=this;return e&&!s(e)?(t.each(e,(function(e,t){o.off(e,n,t)})),o):(s(n)||r(i)||!1===i||(i=n,n=void 0),!1===i&&(i=x),o.each((function(){y(this,e,i,n)})))},t.fn.trigger=function(e,n){return(e=s(e)||t.isPlainObject(e)?t.Event(e):S(e))._args=n,this.each((function(){e.type in c&&"function"==typeof this[e.type]?this[e.type]():"dispatchEvent"in this?this.dispatchEvent(e):t(this).triggerHandler(e,n)}))},t.fn.triggerHandler=function(e,n){var i,r;return this.each((function(o,a){(i=C(s(e)?t.Event(e):e))._args=n,i.target=a,t.each(p(a,e.type||e),(function(e,t){if(r=t.proxy(i),i.isImmediatePropagationStopped())return!1}))})),r},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach((function(e){t.fn[e]=function(t){return 0 in arguments?this.bind(e,t):this.trigger(e)}})),t.Event=function(e,t){s(e)||(e=(t=e).type);var n=document.createEvent(a[e]||"Events"),i=!0;if(t)for(var r in t)"bubbles"==r?i=!!t[r]:n[r]=t[r];return n.initEvent(e,i,!0),S(n)}}(i),n=[],i.fn.remove=function(){return this.each((function(){this.parentNode&&("IMG"===this.tagName&&(n.push(this),this.src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",t&&clearTimeout(t),t=setTimeout((function(){n=[]}),6e4)),this.parentNode.removeChild(this))}))},function(e){var t={},n=e.fn.data,i=e.camelCase,r=e.expando="Zepto"+ +new Date,s=[];function o(n,o,a){var u=n[r]||(n[r]=++e.uuid),c=t[u]||(t[u]=function(t){var n={};return e.each(t.attributes||s,(function(t,r){0==r.name.indexOf("data-")&&(n[i(r.name.replace("data-",""))]=e.zepto.deserializeValue(r.value))})),n}(n));return void 0!==o&&(c[i(o)]=a),c}e.fn.data=function(s,a){return void 0===a?e.isPlainObject(s)?this.each((function(t,n){e.each(s,(function(e,t){o(n,e,t)}))})):0 in this?function(s,a){var u=s[r],c=u&&t[u];if(void 0===a)return c||o(s);if(c){if(a in c)return c[a];var l=i(a);if(l in c)return c[l]}return n.call(e(s),a)}(this[0],s):void 0:this.each((function(){o(this,s,a)}))},e.data=function(t,n,i){return e(t).data(n,i)},e.hasData=function(n){var i=n[r],s=i&&t[i];return!!s&&!e.isEmptyObject(s)},e.fn.removeData=function(n){return"string"==typeof n&&(n=n.split(/\s+/)),this.each((function(){var s=this[r],o=s&&t[s];o&&e.each(n||o,(function(e){delete o[n?i(this):e]}))}))},["remove","empty"].forEach((function(t){var n=e.fn[t];e.fn[t]=function(){var e=this.find("*");return"remove"===t&&(e=e.add(this)),e.removeData(),n.call(this)}}))}(i),i}(n)},177:function(e,t,n){"use strict";var i=n(208),r=/\s+/;function s(e,t,n,i){var s;if(!n)return this;for(t=t.split(r),n=i?function(e,t){return e.bind?e.bind(t):function(){e.apply(t,[].slice.call(arguments,0))}}(n,i):n,this._callbacks=this._callbacks||{};s=t.shift();)this._callbacks[s]=this._callbacks[s]||{sync:[],async:[]},this._callbacks[s][e].push(n);return this}function o(e,t,n){return function(){for(var i,r=0,s=e.length;!i&&r',dropdown:'',dataset:'
',suggestions:'',suggestion:'
'}},187:function(e,t){e.exports="0.37.1"},188:function(e,t,n){"use strict";e.exports=function(e){var t=e.match(/Algolia for JavaScript \((\d+\.)(\d+\.)(\d+)\)/)||e.match(/Algolia for vanilla JavaScript (\d+\.)(\d+\.)(\d+)/);if(t)return[t[1],t[2],t[3]]}},200:function(e,t,n){var i=n(201);i.Template=n(202).Template,i.template=i.Template,e.exports=i},201:function(e,t,n){!function(e){var t=/\S/,n=/\"/g,i=/\n/g,r=/\r/g,s=/\\/g,o=/\u2028/,a=/\u2029/;function u(e){"}"===e.n.substr(e.n.length-1)&&(e.n=e.n.substring(0,e.n.length-1))}function c(e){return e.trim?e.trim():e.replace(/^\s*|\s*$/g,"")}function l(e,t,n){if(t.charAt(n)!=e.charAt(0))return!1;for(var i=1,r=e.length;i":7,"=":8,_v:9,"{":10,"&":11,_t:12},e.scan=function(n,i){var r=n.length,s=0,o=null,a=null,h="",p=[],f=!1,d=0,m=0,g="{{",y="}}";function v(){h.length>0&&(p.push({tag:"_t",text:new String(h)}),h="")}function x(n,i){if(v(),n&&function(){for(var n=!0,i=m;i"==r.tag&&(r.indent=p[s].text.toString()),p.splice(s,1));else i||p.push({tag:"\n"});f=!1,m=p.length}function w(e,t){var n="="+y,i=e.indexOf(n,t),r=c(e.substring(e.indexOf("=",t)+1,i)).split(" ");return g=r[0],y=r[r.length-1],i+n.length-1}for(i&&(i=i.split(" "),g=i[0],y=i[1]),d=0;d":v,"<":function(t,n){var i={partials:{},code:"",subs:{},inPartial:!0};e.walk(t.nodes,i);var r=n.partials[v(t,n)];r.subs=i.subs,r.partials=i.partials},$:function(t,n){var i={subs:{},code:"",partials:n.partials,prefix:t.n};e.walk(t.nodes,i),n.subs[t.n]=i.code,n.inPartial||(n.code+='t.sub("'+g(t.n)+'",c,p,i);')},"\n":function(e,t){t.code+=w('"\\n"'+(e.last?"":" + i"))},_v:function(e,t){t.code+="t.b(t.v(t."+y(e.n)+'("'+g(e.n)+'",c,p,0)));'},_t:function(e,t){t.code+=w('"'+g(e.text)+'"')},"{":x,"&":x},e.walk=function(t,n){for(var i,r=0,s=t.length;r0;){if(c=n.shift(),o&&"<"==o.tag&&!(c.tag in h))throw new Error("Illegal content in < super tag.");if(e.tags[c.tag]<=e.tags.$||p(c,s))r.push(c),c.nodes=t(n,c.tag,r,s);else{if("/"==c.tag){if(0===r.length)throw new Error("Closing tag without opener: /"+c.n);if(u=r.pop(),c.n!=u.n&&!f(c.n,u.n,s))throw new Error("Nesting error: "+u.n+" vs. "+c.n);return u.end=c.i,a}"\n"==c.tag&&(c.last=0==n.length||"\n"==n[0].tag)}a.push(c)}if(r.length>0)throw new Error("missing closing tag: "+r.pop().n);return a}(t,0,[],(i=i||{}).sectionTags||[])},e.cache={},e.cacheKey=function(e,t){return[e,!!t.asString,!!t.disableLambda,t.delimiters,!!t.modelGet].join("||")},e.compile=function(t,n){n=n||{};var i=e.cacheKey(t,n),r=this.cache[i];if(r){var s=r.partials;for(var o in s)delete s[o].instance;return r}return r=this.generate(this.parse(this.scan(t,n.delimiters),t,n),t,n),this.cache[i]=r}}(t)},202:function(e,t,n){!function(e){function t(e,t,n){var i;return t&&"object"==typeof t&&(void 0!==t[e]?i=t[e]:n&&t.get&&"function"==typeof t.get&&(i=t.get(e))),i}e.Template=function(e,t,n,i){e=e||{},this.r=e.code||this.r,this.c=n,this.options=i||{},this.text=t||"",this.partials=e.partials||{},this.subs=e.subs||{},this.buf=""},e.Template.prototype={r:function(e,t,n){return""},v:function(e){return e=u(e),a.test(e)?e.replace(n,"&").replace(i,"<").replace(r,">").replace(s,"'").replace(o,"""):e},t:u,render:function(e,t,n){return this.ri([e],t||{},n)},ri:function(e,t,n){return this.r(e,t,n)},ep:function(e,t){var n=this.partials[e],i=t[n.name];if(n.instance&&n.base==i)return n.instance;if("string"==typeof i){if(!this.c)throw new Error("No compiler available.");i=this.c.compile(i,this.options)}if(!i)return null;if(this.partials[e].base=i,n.subs){for(key in t.stackText||(t.stackText={}),n.subs)t.stackText[key]||(t.stackText[key]=void 0!==this.activeSub&&t.stackText[this.activeSub]?t.stackText[this.activeSub]:this.text);i=function(e,t,n,i,r,s){function o(){}function a(){}var u;o.prototype=e,a.prototype=e.subs;var c=new o;for(u in c.subs=new a,c.subsText={},c.buf="",i=i||{},c.stackSubs=i,c.subsText=s,t)i[u]||(i[u]=t[u]);for(u in i)c.subs[u]=i[u];for(u in r=r||{},c.stackPartials=r,n)r[u]||(r[u]=n[u]);for(u in r)c.partials[u]=r[u];return c}(i,n.subs,n.partials,this.stackSubs,this.stackPartials,t.stackText)}return this.partials[e].instance=i,i},rp:function(e,t,n,i){var r=this.ep(e,n);return r?r.ri(t,n,i):""},rs:function(e,t,n){var i=e[e.length-1];if(c(i))for(var r=0;r=0;u--)if(void 0!==(s=t(e,n[u],a))){o=!0;break}return o?(r||"function"!=typeof s||(s=this.mv(s,n,i)),s):!r&&""},ls:function(e,t,n,i,r){var s=this.options.delimiters;return this.options.delimiters=r,this.b(this.ct(u(e.call(t,i)),t,n)),this.options.delimiters=s,!1},ct:function(e,t,n){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(e,this.options).render(t,n)},b:function(e){this.buf+=e},fl:function(){var e=this.buf;return this.buf="",e},ms:function(e,t,n,i,r,s,o){var a,u=t[t.length-1],c=e.call(u);return"function"==typeof c?!!i||(a=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,u,n,a.substring(r,s),o)):c},mv:function(e,t,n){var i=t[t.length-1],r=e.call(i);return"function"==typeof r?this.ct(u(r.call(i)),i,n):r},sub:function(e,t,n,i){var r=this.subs[e];r&&(this.activeSub=e,r(t,n,this,i),this.activeSub=!1)}};var n=/&/g,i=//g,s=/\'/g,o=/\"/g,a=/[&<>\"\']/;function u(e){return String(null==e?"":e)}var c=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}}(t)},203:function(e,t,n){var i,r;!function(){var s,o,a,u,c,l,h,p,f,d,m,g,y,v,x,w,b,S,C,E,k,T,_,O,A,P,L=function(e){var t=new L.Builder;return t.pipeline.add(L.trimmer,L.stopWordFilter,L.stemmer),t.searchPipeline.add(L.stemmer),e.call(t,t),t.build()};L.version="2.3.9",L.utils={},L.utils.warn=(s=this,function(e){s.console&&console.warn&&console.warn(e)}),L.utils.asString=function(e){return null==e?"":e.toString()},L.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),i=0;i0){var u=L.utils.clone(t)||{};u.position=[o,a],u.index=r.length,r.push(new L.Token(n.slice(o,s),u))}o=s+1}}return r},L.tokenizer.separator=/[\s\-]+/,L.Pipeline=function(){this._stack=[]},L.Pipeline.registeredFunctions=Object.create(null),L.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&L.utils.warn("Overwriting existing registered function: "+t),e.label=t,L.Pipeline.registeredFunctions[e.label]=e},L.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||L.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},L.Pipeline.load=function(e){var t=new L.Pipeline;return e.forEach((function(e){var n=L.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},L.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){L.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},L.Pipeline.prototype.after=function(e,t){L.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},L.Pipeline.prototype.before=function(e,t){L.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},L.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},L.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(se&&(n=r),s!=e);)i=n-t,r=t+Math.floor(i/2),s=this.elements[2*r];return s==e||s>e?2*r:sa?c+=2:o==a&&(t+=n[u+1]*i[c+1],u+=2,c+=2);return t},L.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},L.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var s,o=r.str.charAt(0);o in r.node.edges?s=r.node.edges[o]:(s=new L.TokenSet,r.node.edges[o]=s),1==r.str.length&&(s.final=!0),i.push({node:s,editsRemaining:r.editsRemaining,str:r.str.slice(1)})}if(0!=r.editsRemaining){if("*"in r.node.edges)var a=r.node.edges["*"];else{a=new L.TokenSet;r.node.edges["*"]=a}if(0==r.str.length&&(a.final=!0),i.push({node:a,editsRemaining:r.editsRemaining-1,str:r.str}),r.str.length>1&&i.push({node:r.node,editsRemaining:r.editsRemaining-1,str:r.str.slice(1)}),1==r.str.length&&(r.node.final=!0),r.str.length>=1){if("*"in r.node.edges)var u=r.node.edges["*"];else{u=new L.TokenSet;r.node.edges["*"]=u}1==r.str.length&&(u.final=!0),i.push({node:u,editsRemaining:r.editsRemaining-1,str:r.str.slice(1)})}if(r.str.length>1){var c,l=r.str.charAt(0),h=r.str.charAt(1);h in r.node.edges?c=r.node.edges[h]:(c=new L.TokenSet,r.node.edges[h]=c),1==r.str.length&&(c.final=!0),i.push({node:c,editsRemaining:r.editsRemaining-1,str:l+r.str.slice(2)})}}}return n},L.TokenSet.fromString=function(e){for(var t=new L.TokenSet,n=t,i=0,r=e.length;i=e;t--){var n=this.uncheckedNodes[t],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}},L.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},L.Index.prototype.search=function(e){return this.query((function(t){new L.QueryParser(e,t).parse()}))},L.Index.prototype.query=function(e){for(var t=new L.Query(this.fields),n=Object.create(null),i=Object.create(null),r=Object.create(null),s=Object.create(null),o=Object.create(null),a=0;a1?1:e},L.Builder.prototype.k1=function(e){this._k1=e},L.Builder.prototype.add=function(e,t){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var r=0;r=this.length)return L.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},L.QueryLexer.prototype.width=function(){return this.pos-this.start},L.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},L.QueryLexer.prototype.backup=function(){this.pos-=1},L.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=L.QueryLexer.EOS&&this.backup()},L.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(L.QueryLexer.TERM)),e.ignore(),e.more())return L.QueryLexer.lexText},L.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(L.QueryLexer.EDIT_DISTANCE),L.QueryLexer.lexText},L.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(L.QueryLexer.BOOST),L.QueryLexer.lexText},L.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(L.QueryLexer.TERM)},L.QueryLexer.termSeparator=L.tokenizer.separator,L.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==L.QueryLexer.EOS)return L.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return L.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(L.QueryLexer.TERM),L.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(L.QueryLexer.TERM),L.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(L.QueryLexer.PRESENCE),L.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(L.QueryLexer.PRESENCE),L.QueryLexer.lexText;if(t.match(L.QueryLexer.termSeparator))return L.QueryLexer.lexTerm}else e.escapeCharacter()}},L.QueryParser=function(e,t){this.lexer=new L.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},L.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=L.QueryParser.parseClause;e;)e=e(this);return this.query},L.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},L.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},L.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},L.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case L.QueryLexer.PRESENCE:return L.QueryParser.parsePresence;case L.QueryLexer.FIELD:return L.QueryParser.parseField;case L.QueryLexer.TERM:return L.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new L.QueryParseError(n,t.start,t.end)}},L.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=L.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=L.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new L.QueryParseError(n,t.start,t.end)}var i=e.peekLexeme();if(null==i){n="expecting term or field, found nothing";throw new L.QueryParseError(n,t.start,t.end)}switch(i.type){case L.QueryLexer.FIELD:return L.QueryParser.parseField;case L.QueryLexer.TERM:return L.QueryParser.parseTerm;default:n="expecting term or field, found '"+i.type+"'";throw new L.QueryParseError(n,i.start,i.end)}}},L.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),i="unrecognised field '"+t.str+"', possible fields: "+n;throw new L.QueryParseError(i,t.start,t.end)}e.currentClause.fields=[t.str];var r=e.peekLexeme();if(null==r){i="expecting term, found nothing";throw new L.QueryParseError(i,t.start,t.end)}switch(r.type){case L.QueryLexer.TERM:return L.QueryParser.parseTerm;default:i="expecting term, found '"+r.type+"'";throw new L.QueryParseError(i,r.start,r.end)}}},L.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case L.QueryLexer.TERM:return e.nextClause(),L.QueryParser.parseTerm;case L.QueryLexer.FIELD:return e.nextClause(),L.QueryParser.parseField;case L.QueryLexer.EDIT_DISTANCE:return L.QueryParser.parseEditDistance;case L.QueryLexer.BOOST:return L.QueryParser.parseBoost;case L.QueryLexer.PRESENCE:return e.nextClause(),L.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+n.type+"'";throw new L.QueryParseError(i,n.start,n.end)}else e.nextClause()}},L.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new L.QueryParseError(i,t.start,t.end)}e.currentClause.editDistance=n;var r=e.peekLexeme();if(null!=r)switch(r.type){case L.QueryLexer.TERM:return e.nextClause(),L.QueryParser.parseTerm;case L.QueryLexer.FIELD:return e.nextClause(),L.QueryParser.parseField;case L.QueryLexer.EDIT_DISTANCE:return L.QueryParser.parseEditDistance;case L.QueryLexer.BOOST:return L.QueryParser.parseBoost;case L.QueryLexer.PRESENCE:return e.nextClause(),L.QueryParser.parsePresence;default:i="Unexpected lexeme type '"+r.type+"'";throw new L.QueryParseError(i,r.start,r.end)}else e.nextClause()}},L.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var i="boost must be numeric";throw new L.QueryParseError(i,t.start,t.end)}e.currentClause.boost=n;var r=e.peekLexeme();if(null!=r)switch(r.type){case L.QueryLexer.TERM:return e.nextClause(),L.QueryParser.parseTerm;case L.QueryLexer.FIELD:return e.nextClause(),L.QueryParser.parseField;case L.QueryLexer.EDIT_DISTANCE:return L.QueryParser.parseEditDistance;case L.QueryLexer.BOOST:return L.QueryParser.parseBoost;case L.QueryLexer.PRESENCE:return e.nextClause(),L.QueryParser.parsePresence;default:i="Unexpected lexeme type '"+r.type+"'";throw new L.QueryParseError(i,r.start,r.end)}else e.nextClause()}},void 0===(r="function"==typeof(i=function(){return L})?i.call(t,n,t,e):i)||(e.exports=r)}()},204:function(e,t,n){"use strict";e.exports=n(205)},205:function(e,t,n){"use strict";var i=n(176);n(170).element=i;var r=n(165);r.isArray=i.isArray,r.isFunction=i.isFunction,r.isObject=i.isPlainObject,r.bind=i.proxy,r.each=function(e,t){i.each(e,(function(e,n){return t(n,e)}))},r.map=i.map,r.mixin=i.extend,r.Event=i.Event;var s=n(206),o=n(185);function a(e,t,n,a){n=r.isArray(n)?n:[].slice.call(arguments,2);var u=i(e).each((function(e,r){var u=i(r),c=new o({el:u}),l=a||new s({input:u,eventBus:c,dropdownMenuContainer:t.dropdownMenuContainer,hint:void 0===t.hint||!!t.hint,minLength:t.minLength,autoselect:t.autoselect,autoselectOnBlur:t.autoselectOnBlur,tabAutocomplete:t.tabAutocomplete,openOnFocus:t.openOnFocus,templates:t.templates,debug:t.debug,clearOnSelected:t.clearOnSelected,cssClasses:t.cssClasses,datasets:n,keyboardShortcuts:t.keyboardShortcuts,appendTo:t.appendTo,autoWidth:t.autoWidth,ariaLabel:t.ariaLabel||r.getAttribute("aria-label")});u.data("aaAutocomplete",l)}));return u.autocomplete={},r.each(["open","close","getVal","setVal","destroy","getWrapper"],(function(e){u.autocomplete[e]=function(){var t,n=arguments;return u.each((function(r,s){var o=i(s).data("aaAutocomplete");t=o[e].apply(o,n)})),t}})),u}a.sources=s.sources,a.escapeHighlightedString=r.escapeHighlightedString;var u="autocomplete"in window,c=window.autocomplete;a.noConflict=function(){return u?window.autocomplete=c:delete window.autocomplete,a},e.exports=a},206:function(e,t,n){"use strict";var i=n(165),r=n(170),s=n(185),o=n(207),a=n(215),u=n(186),c=n(178);function l(e){var t,n;if((e=e||{}).input||i.error("missing input"),this.isActivated=!1,this.debug=!!e.debug,this.autoselect=!!e.autoselect,this.autoselectOnBlur=!!e.autoselectOnBlur,this.openOnFocus=!!e.openOnFocus,this.minLength=i.isNumber(e.minLength)?e.minLength:1,this.autoWidth=void 0===e.autoWidth||!!e.autoWidth,this.clearOnSelected=!!e.clearOnSelected,this.tabAutocomplete=void 0===e.tabAutocomplete||!!e.tabAutocomplete,e.hint=!!e.hint,e.hint&&e.appendTo)throw new Error("[autocomplete.js] hint and appendTo options can't be used at the same time");this.css=e.css=i.mixin({},c,e.appendTo?c.appendTo:{}),this.cssClasses=e.cssClasses=i.mixin({},c.defaultClasses,e.cssClasses||{}),this.cssClasses.prefix=e.cssClasses.formattedPrefix=i.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),this.listboxId=e.listboxId=[this.cssClasses.root,"listbox",i.getUniqueId()].join("-");var o=function(e){var t,n,s,o;t=r.element(e.input),n=r.element(u.wrapper.replace("%ROOT%",e.cssClasses.root)).css(e.css.wrapper),e.appendTo||"block"!==t.css("display")||"table"!==t.parent().css("display")||n.css("display","table-cell");var a=u.dropdown.replace("%PREFIX%",e.cssClasses.prefix).replace("%DROPDOWN_MENU%",e.cssClasses.dropdownMenu);s=r.element(a).css(e.css.dropdown).attr({role:"listbox",id:e.listboxId}),e.templates&&e.templates.dropdownMenu&&s.html(i.templatify(e.templates.dropdownMenu)());(o=t.clone().css(e.css.hint).css(function(e){return{backgroundAttachment:e.css("background-attachment"),backgroundClip:e.css("background-clip"),backgroundColor:e.css("background-color"),backgroundImage:e.css("background-image"),backgroundOrigin:e.css("background-origin"),backgroundPosition:e.css("background-position"),backgroundRepeat:e.css("background-repeat"),backgroundSize:e.css("background-size")}}(t))).val("").addClass(i.className(e.cssClasses.prefix,e.cssClasses.hint,!0)).removeAttr("id name placeholder required").prop("readonly",!0).attr({"aria-hidden":"true",autocomplete:"off",spellcheck:"false",tabindex:-1}),o.removeData&&o.removeData();t.data("aaAttrs",{"aria-autocomplete":t.attr("aria-autocomplete"),"aria-expanded":t.attr("aria-expanded"),"aria-owns":t.attr("aria-owns"),autocomplete:t.attr("autocomplete"),dir:t.attr("dir"),role:t.attr("role"),spellcheck:t.attr("spellcheck"),style:t.attr("style"),type:t.attr("type")}),t.addClass(i.className(e.cssClasses.prefix,e.cssClasses.input,!0)).attr({autocomplete:"off",spellcheck:!1,role:"combobox","aria-autocomplete":e.datasets&&e.datasets[0]&&e.datasets[0].displayKey?"both":"list","aria-expanded":"false","aria-label":e.ariaLabel,"aria-owns":e.listboxId}).css(e.hint?e.css.input:e.css.inputWithNoHint);try{t.attr("dir")||t.attr("dir","auto")}catch(c){}return(n=e.appendTo?n.appendTo(r.element(e.appendTo).eq(0)).eq(0):t.wrap(n).parent()).prepend(e.hint?o:null).append(s),{wrapper:n,input:t,hint:o,menu:s}}(e);this.$node=o.wrapper;var a=this.$input=o.input;t=o.menu,n=o.hint,e.dropdownMenuContainer&&r.element(e.dropdownMenuContainer).css("position","relative").append(t.css("top","0")),a.on("blur.aa",(function(e){var n=document.activeElement;i.isMsie()&&(t[0]===n||t[0].contains(n))&&(e.preventDefault(),e.stopImmediatePropagation(),i.defer((function(){a.focus()})))})),t.on("mousedown.aa",(function(e){e.preventDefault()})),this.eventBus=e.eventBus||new s({el:a}),this.dropdown=new l.Dropdown({appendTo:e.appendTo,wrapper:this.$node,menu:t,datasets:e.datasets,templates:e.templates,cssClasses:e.cssClasses,minLength:this.minLength}).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onSync("shown",this._onShown,this).onSync("empty",this._onEmpty,this).onSync("redrawn",this._onRedrawn,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=new l.Input({input:a,hint:n}).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._bindKeyboardShortcuts(e),this._setLanguageDirection()}i.mixin(l.prototype,{_bindKeyboardShortcuts:function(e){if(e.keyboardShortcuts){var t=this.$input,n=[];i.each(e.keyboardShortcuts,(function(e){"string"==typeof e&&(e=e.toUpperCase().charCodeAt(0)),n.push(e)})),r.element(document).keydown((function(e){var i=e.target||e.srcElement,r=i.tagName;if(!i.isContentEditable&&"INPUT"!==r&&"SELECT"!==r&&"TEXTAREA"!==r){var s=e.which||e.keyCode;-1!==n.indexOf(s)&&(t.focus(),e.stopPropagation(),e.preventDefault())}}))}},_onSuggestionClicked:function(e,t){var n;(n=this.dropdown.getDatumForSuggestion(t))&&this._select(n,{selectionMethod:"click"})},_onCursorMoved:function(e,t){var n=this.dropdown.getDatumForCursor(),i=this.dropdown.getCurrentCursor().attr("id");this.input.setActiveDescendant(i),n&&(t&&this.input.setInputValue(n.value,!0),this.eventBus.trigger("cursorchanged",n.raw,n.datasetName))},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint(),this.eventBus.trigger("cursorremoved")},_onDatasetRendered:function(){this._updateHint(),this.eventBus.trigger("updated")},_onOpened:function(){this._updateHint(),this.input.expand(),this.eventBus.trigger("opened")},_onEmpty:function(){this.eventBus.trigger("empty")},_onRedrawn:function(){this.$node.css("top","0px"),this.$node.css("left","0px");var e=this.$input[0].getBoundingClientRect();this.autoWidth&&this.$node.css("width",e.width+"px");var t=this.$node[0].getBoundingClientRect(),n=e.bottom-t.top;this.$node.css("top",n+"px");var i=e.left-t.left;this.$node.css("left",i+"px"),this.eventBus.trigger("redrawn")},_onShown:function(){this.eventBus.trigger("shown"),this.autoselect&&this.dropdown.cursorTopSuggestion()},_onClosed:function(){this.input.clearHint(),this.input.removeActiveDescendant(),this.input.collapse(),this.eventBus.trigger("closed")},_onFocused:function(){if(this.isActivated=!0,this.openOnFocus){var e=this.input.getQuery();e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty(),this.dropdown.open()}},_onBlurred:function(){var e,t;e=this.dropdown.getDatumForCursor(),t=this.dropdown.getDatumForTopSuggestion();var n={selectionMethod:"blur"};this.debug||(this.autoselectOnBlur&&e?this._select(e,n):this.autoselectOnBlur&&t?this._select(t,n):(this.isActivated=!1,this.dropdown.empty(),this.dropdown.close()))},_onEnterKeyed:function(e,t){var n,i;n=this.dropdown.getDatumForCursor(),i=this.dropdown.getDatumForTopSuggestion();var r={selectionMethod:"enterKey"};n?(this._select(n,r),t.preventDefault()):this.autoselect&&i&&(this._select(i,r),t.preventDefault())},_onTabKeyed:function(e,t){if(this.tabAutocomplete){var n;(n=this.dropdown.getDatumForCursor())?(this._select(n,{selectionMethod:"tabKey"}),t.preventDefault()):this._autocomplete(!0)}else this.dropdown.close()},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var e=this.input.getQuery();this.dropdown.isEmpty&&e.length>=this.minLength?this.dropdown.update(e):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var e=this.input.getQuery();this.dropdown.isEmpty&&e.length>=this.minLength?this.dropdown.update(e):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){"rtl"===this.dir&&this._autocomplete()},_onRightKeyed:function(){"ltr"===this.dir&&this._autocomplete()},_onQueryChanged:function(e,t){this.input.clearHintIfInvalid(),t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var e=this.input.getLanguageDirection();this.dir!==e&&(this.dir=e,this.$node.css("direction",e),this.dropdown.setLanguageDirection(e))},_updateHint:function(){var e,t,n,r,s;(e=this.dropdown.getDatumForTopSuggestion())&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(t=this.input.getInputValue(),n=o.normalizeQuery(t),r=i.escapeRegExChars(n),(s=new RegExp("^(?:"+r+")(.+$)","i").exec(e.value))?this.input.setHint(t+s[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(e){var t,n,i,r;t=this.input.getHint(),n=this.input.getQuery(),i=e||this.input.isCursorAtEnd(),t&&n!==t&&i&&((r=this.dropdown.getDatumForTopSuggestion())&&this.input.setInputValue(r.value),this.eventBus.trigger("autocompleted",r.raw,r.datasetName))},_select:function(e,t){void 0!==e.value&&this.input.setQuery(e.value),this.clearOnSelected?this.setVal(""):this.input.setInputValue(e.value,!0),this._setLanguageDirection(),!1===this.eventBus.trigger("selected",e.raw,e.datasetName,t).isDefaultPrevented()&&(this.dropdown.close(),i.defer(i.bind(this.dropdown.empty,this.dropdown)))},open:function(){if(!this.isActivated){var e=this.input.getInputValue();e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty()}this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(e){e=i.toStr(e),this.isActivated?this.input.setInputValue(e):(this.input.setQuery(e),this.input.setInputValue(e,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){this.input.destroy(),this.dropdown.destroy(),function(e,t){var n=e.find(i.className(t.prefix,t.input));i.each(n.data("aaAttrs"),(function(e,t){void 0===e?n.removeAttr(t):n.attr(t,e)})),n.detach().removeClass(i.className(t.prefix,t.input,!0)).insertAfter(e),n.removeData&&n.removeData("aaAttrs");e.remove()}(this.$node,this.cssClasses),this.$node=null},getWrapper:function(){return this.dropdown.$container[0]}}),l.Dropdown=a,l.Input=o,l.sources=n(217),e.exports=l},207:function(e,t,n){"use strict";var i;i={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"};var r=n(165),s=n(170),o=n(177);function a(e){var t,n,o,a,u,c=this;(e=e||{}).input||r.error("input is missing"),t=r.bind(this._onBlur,this),n=r.bind(this._onFocus,this),o=r.bind(this._onKeydown,this),a=r.bind(this._onInput,this),this.$hint=s.element(e.hint),this.$input=s.element(e.input).on("blur.aa",t).on("focus.aa",n).on("keydown.aa",o),0===this.$hint.length&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=r.noop),r.isMsie()?this.$input.on("keydown.aa keypress.aa cut.aa paste.aa",(function(e){i[e.which||e.keyCode]||r.defer(r.bind(c._onInput,c,e))})):this.$input.on("input.aa",a),this.query=this.$input.val(),this.$overflowHelper=(u=this.$input,s.element('').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:u.css("font-family"),fontSize:u.css("font-size"),fontStyle:u.css("font-style"),fontVariant:u.css("font-variant"),fontWeight:u.css("font-weight"),wordSpacing:u.css("word-spacing"),letterSpacing:u.css("letter-spacing"),textIndent:u.css("text-indent"),textRendering:u.css("text-rendering"),textTransform:u.css("text-transform")}).insertAfter(u))}function u(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}a.normalizeQuery=function(e){return(e||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},r.mixin(a.prototype,o,{_onBlur:function(){this.resetInputValue(),this.$input.removeAttr("aria-activedescendant"),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(e){var t=i[e.which||e.keyCode];this._managePreventDefault(t,e),t&&this._shouldTrigger(t,e)&&this.trigger(t+"Keyed",e)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(e,t){var n,i,r;switch(e){case"tab":i=this.getHint(),r=this.getInputValue(),n=i&&i!==r&&!u(t);break;case"up":case"down":n=!u(t);break;default:n=!1}n&&t.preventDefault()},_shouldTrigger:function(e,t){var n;switch(e){case"tab":n=!u(t);break;default:n=!0}return n},_checkInputValue:function(){var e,t,n,i,r;e=this.getInputValue(),i=e,r=this.query,n=!(!(t=a.normalizeQuery(i)===a.normalizeQuery(r))||!this.query)&&this.query.length!==e.length,this.query=e,t?n&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(e){this.query=e},getInputValue:function(){return this.$input.val()},setInputValue:function(e,t){void 0===e&&(e=this.query),this.$input.val(e),t?this.clearHint():this._checkInputValue()},expand:function(){this.$input.attr("aria-expanded","true")},collapse:function(){this.$input.attr("aria-expanded","false")},setActiveDescendant:function(e){this.$input.attr("aria-activedescendant",e)},removeActiveDescendant:function(){this.$input.removeAttr("aria-activedescendant")},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(e){this.$hint.val(e)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var e,t,n;n=(e=this.getInputValue())!==(t=this.getHint())&&0===t.indexOf(e),""!==e&&n&&!this.hasOverflow()||this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var e=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=e},isCursorAtEnd:function(){var e,t,n;return e=this.$input.val().length,t=this.$input[0].selectionStart,r.isNumber(t)?t===e:!document.selection||((n=document.selection.createRange()).moveStart("character",-e),e===n.text.length)},destroy:function(){this.$hint.off(".aa"),this.$input.off(".aa"),this.$hint=this.$input=this.$overflowHelper=null}}),e.exports=a},208:function(e,t,n){"use strict";var i,r,s,o=[n(209),n(210),n(211),n(212),n(213),n(214)],a=-1,u=[],c=!1;function l(){i&&r&&(i=!1,r.length?u=r.concat(u):a=-1,u.length&&h())}function h(){if(!i){c=!1,i=!0;for(var e=u.length,t=setTimeout(l);e;){for(r=u,u=[];r&&++a1)for(var n=1;n'),this.$menu.append(this.$empty),this.$empty.hide()),this.datasets=i.map(e.datasets,(function(t){return function(e,t,n){return new u.Dataset(i.mixin({$menu:e,cssClasses:n},t))}(o.$menu,t,e.cssClasses)})),i.each(this.datasets,(function(e){var t=e.getRoot();t&&0===t.parent().length&&o.$menu.append(t),e.onSync("rendered",o._onRendered,o)})),e.templates&&e.templates.footer&&(this.templates.footer=i.templatify(e.templates.footer),this.$menu.append(this.templates.footer()));var l=this;r.element(window).resize((function(){l._redraw()}))}i.mixin(u.prototype,s,{_onSuggestionClick:function(e){this.trigger("suggestionClicked",r.element(e.currentTarget))},_onSuggestionMouseEnter:function(e){var t=r.element(e.currentTarget);if(!t.hasClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0))){this._removeCursor();var n=this;setTimeout((function(){n._setCursor(t,!1)}),0)}},_onSuggestionMouseLeave:function(e){if(e.relatedTarget&&r.element(e.relatedTarget).closest("."+i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).length>0)return;this._removeCursor(),this.trigger("cursorRemoved")},_onRendered:function(e,t){if(this.isEmpty=i.every(this.datasets,(function(e){return e.isEmpty()})),this.isEmpty)if(t.length>=this.minLength&&this.trigger("empty"),this.$empty)if(t.length=this.minLength?this._show():this._hide());this.trigger("datasetRendered")},_hide:function(){this.$container.hide()},_show:function(){this.$container.css("display","block"),this._redraw(),this.trigger("shown")},_redraw:function(){this.isOpen&&this.appendTo&&this.trigger("redrawn")},_getSuggestions:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.suggestion))},_getCursor:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.cursor)).first()},_setCursor:function(e,t){e.first().addClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).attr("aria-selected","true"),this.trigger("cursorMoved",t)},_removeCursor:function(){this._getCursor().removeClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).removeAttr("aria-selected")},_moveCursor:function(e){var t,n,i,r;this.isOpen&&(n=this._getCursor(),t=this._getSuggestions(),this._removeCursor(),-1!==(i=((i=t.index(n)+e)+1)%(t.length+1)-1)?(i<-1&&(i=t.length-1),this._setCursor(r=t.eq(i),!0),this._ensureVisible(r)):this.trigger("cursorRemoved"))},_ensureVisible:function(e){var t,n,i,r;n=(t=e.position().top)+e.height()+parseInt(e.css("margin-top"),10)+parseInt(e.css("margin-bottom"),10),i=this.$menu.scrollTop(),r=this.$menu.height()+parseInt(this.$menu.css("padding-top"),10)+parseInt(this.$menu.css("padding-bottom"),10),t<0?this.$menu.scrollTop(i+t):r"+u(e)+"

"}}),this.css=i.mixin({},o,e.appendTo?o.appendTo:{}),this.cssClasses=e.cssClasses=i.mixin({},o.defaultClasses,e.cssClasses||{}),this.cssClasses.prefix=e.cssClasses.formattedPrefix||i.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix);var c=i.className(this.cssClasses.prefix,this.cssClasses.dataset);this.$el=e.$menu&&e.$menu.find(c+"-"+this.name).length>0?r.element(e.$menu.find(c+"-"+this.name)[0]):r.element(s.dataset.replace("%CLASS%",this.name).replace("%PREFIX%",this.cssClasses.prefix).replace("%DATASET%",this.cssClasses.dataset)),this.$menu=e.$menu,this.clearCachedSuggestions()}u.extractDatasetName=function(e){return r.element(e).data("aaDataset")},u.extractValue=function(e){return r.element(e).data("aaValue")},u.extractDatum=function(e){var t=r.element(e).data("aaDatum");return"string"==typeof t&&(t=JSON.parse(t)),t},i.mixin(u.prototype,a,{_render:function(e,t){if(this.$el){var n,o=this,a=[].slice.call(arguments,2);if(this.$el.empty(),n=t&&t.length,this._isEmpty=!n,!n&&this.templates.empty)this.$el.html(u.apply(this,a)).prepend(o.templates.header?l.apply(this,a):null).append(o.templates.footer?h.apply(this,a):null);else if(n)this.$el.html(c.apply(this,a)).prepend(o.templates.header?l.apply(this,a):null).append(o.templates.footer?h.apply(this,a):null);else if(t&&!Array.isArray(t))throw new TypeError("suggestions must be an array");this.$menu&&this.$menu.addClass(this.cssClasses.prefix+(n?"with":"without")+"-"+this.name).removeClass(this.cssClasses.prefix+(n?"without":"with")+"-"+this.name),this.trigger("rendered",e)}function u(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!0}].concat(t),o.templates.empty.apply(this,t)}function c(){var e,n,a=[].slice.call(arguments,0),u=this,c=s.suggestions.replace("%PREFIX%",this.cssClasses.prefix).replace("%SUGGESTIONS%",this.cssClasses.suggestions);return e=r.element(c).css(this.css.suggestions),n=i.map(t,l),e.append.apply(e,n),e;function l(e){var t,n=s.suggestion.replace("%PREFIX%",u.cssClasses.prefix).replace("%SUGGESTION%",u.cssClasses.suggestion);return(t=r.element(n).attr({role:"option",id:["option",Math.floor(1e8*Math.random())].join("-")}).append(o.templates.suggestion.apply(this,[e].concat(a)))).data("aaDataset",o.name),t.data("aaValue",o.displayFn(e)||void 0),t.data("aaDatum",JSON.stringify(e)),t.children().each((function(){r.element(this).css(u.css.suggestionChild)})),t}}function l(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!n}].concat(t),o.templates.header.apply(this,t)}function h(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!n}].concat(t),o.templates.footer.apply(this,t)}},getRoot:function(){return this.$el},update:function(e){function t(t){if(!this.canceled&&e===this.query){var n=[].slice.call(arguments,1);this.cacheSuggestions(e,t,n),this._render.apply(this,[e,t].concat(n))}}if(this.query=e,this.canceled=!1,this.shouldFetchFromCache(e))t.apply(this,[this.cachedSuggestions].concat(this.cachedRenderExtraArgs));else{var n=this,i=function(){n.canceled||n.source(e,t.bind(n))};if(this.debounce){clearTimeout(this.debounceTimeout),this.debounceTimeout=setTimeout((function(){n.debounceTimeout=null,i()}),this.debounce)}else i()}},cacheSuggestions:function(e,t,n){this.cachedQuery=e,this.cachedSuggestions=t,this.cachedRenderExtraArgs=n},shouldFetchFromCache:function(e){return this.cache&&this.cachedQuery===e&&this.cachedSuggestions&&this.cachedSuggestions.length},clearCachedSuggestions:function(){delete this.cachedQuery,delete this.cachedSuggestions,delete this.cachedRenderExtraArgs},cancel:function(){this.canceled=!0},clear:function(){this.$el&&(this.cancel(),this.$el.empty(),this.trigger("rendered",""))},isEmpty:function(){return this._isEmpty},destroy:function(){this.clearCachedSuggestions(),this.$el=null}}),e.exports=u},217:function(e,t,n){"use strict";e.exports={hits:n(218),popularIn:n(219)}},218:function(e,t,n){"use strict";var i=n(165),r=n(187),s=n(188);e.exports=function(e,t){var n=s(e.as._ua);return n&&n[0]>=3&&n[1]>20&&((t=t||{}).additionalUA="autocomplete.js "+r),function(n,r){e.search(n,t,(function(e,t){e?i.error(e.message):r(t.hits,t)}))}}},219:function(e,t,n){"use strict";var i=n(165),r=n(187),s=n(188);e.exports=function(e,t,n,o){var a=s(e.as._ua);if(a&&a[0]>=3&&a[1]>20&&((t=t||{}).additionalUA="autocomplete.js "+r),!n.source)return i.error("Missing 'source' key");var u=i.isFunction(n.source)?n.source:function(e){return e[n.source]};if(!n.index)return i.error("Missing 'index' key");var c=n.index;return o=o||{},function(a,l){e.search(a,t,(function(e,a){if(e)i.error(e.message);else{if(a.hits.length>0){var h=a.hits[0],p=i.mixin({hitsPerPage:0},n);delete p.source,delete p.index;var f=s(c.as._ua);return f&&f[0]>=3&&f[1]>20&&(t.additionalUA="autocomplete.js "+r),void c.search(u(h),p,(function(e,t){if(e)i.error(e.message);else{var n=[];if(o.includeAll){var r=o.allTitle||"All departments";n.push(i.mixin({facet:{value:r,count:t.nbHits}},i.cloneDeep(h)))}i.each(t.facets,(function(e,t){i.each(e,(function(e,r){n.push(i.mixin({facet:{facet:t,value:r,count:e}},i.cloneDeep(h)))}))}));for(var s=1;s'+e.title.substring(i,a)+""+e.title.substring(a,e.title.length);return this.getHit(e,s)},t.getKeywordHit=function(e,t,n){var i=t[0],a=t[0]+n,s=e.title+"
Keywords: "+e.keywords.substring(0,i)+''+e.keywords.substring(i,a)+""+e.keywords.substring(a,e.keywords.length)+"";return this.getHit(e,s)},t.getContentHit=function(e,t){for(var n=t[0],i=t[0]+t[1],a=n,s=i,r=!0,l=!0,o=0;o<3;o++){var u=e.content.lastIndexOf(" ",a-2),c=e.content.lastIndexOf(".",a-2);if(c>0&&c>u){a=c+1,r=!1;break}if(u<0){a=0,r=!1;break}a=u+1}for(var h=0;h<10;h++){var g=e.content.indexOf(" ",s+1),d=e.content.indexOf(".",s+1);if(d>0&&d",p+=e.content.substring(i,s),l&&(p+=" ..."),this.getHit(e,null,p)},t.search=function(e){var t=this;return new Promise((function(n,i){var a=t.getLunrResult(e),s=[];a.length>5&&(a.length=5),t.titleHitsRes=[],t.contentHitsRes=[],a.forEach((function(n){var i=t.searchDocs[n.ref],a=n.matchData.metadata;for(var r in a)if(a[r].title){if(!t.titleHitsRes.includes(n.ref)){var l=a[r].title.position[0];s.push(t.getTitleHit(i,l,e.length)),t.titleHitsRes.push(n.ref)}}else if(a[r].content){var o=a[r].content.position[0];s.push(t.getContentHit(i,o))}else if(a[r].keywords){var u=a[r].keywords.position[0];s.push(t.getKeywordHit(i,u,e.length)),t.titleHitsRes.push(n.ref)}})),s.length>5&&(s.length=5),n(s)}))},e}(),l=n(204),o=n.n(l),u="algolia-docsearch-suggestion",c={suggestion:'\n \n
\n {{{category}}}\n
\n
\n
\n {{{subcategory}}}\n
\n {{#isTextOrSubcategoryNonEmpty}}\n
\n
{{{subcategory}}}
\n
{{{title}}}
\n {{#text}}
{{{text}}}
{{/text}}\n
\n {{/isTextOrSubcategoryNonEmpty}}\n
\n
\n ',suggestionSimple:'\n
\n
\n {{^isLvl0}}\n {{{category}}}\n {{^isLvl1}}\n {{^isLvl1EmptyOrDuplicate}}\n \n {{{subcategory}}}\n \n {{/isLvl1EmptyOrDuplicate}}\n {{/isLvl1}}\n {{/isLvl0}}\n
\n {{#isLvl2}}\n {{{title}}}\n {{/isLvl2}}\n {{#isLvl1}}\n {{{subcategory}}}\n {{/isLvl1}}\n {{#isLvl0}}\n {{{category}}}\n {{/isLvl0}}\n
\n
\n
\n {{#text}}\n
\n
{{{text}}}
\n
\n {{/text}}\n
\n
\n ',footer:'\n \n ',empty:'\n
\n
\n
\n
\n
\n No results found for query "{{query}}"\n
\n
\n
\n
\n
\n ',searchBox:'\n \n\n\n '},h=n(176),g=n.n(h),d={mergeKeyWithParent:function(e,t){if(void 0===e[t])return e;if("object"!=typeof e[t])return e;var n=g.a.extend({},e,e[t]);return delete n[t],n},groupBy:function(e,t){var n={};return g.a.each(e,(function(e,i){if(void 0===i[t])throw new Error("[groupBy]: Object has no key "+t);var a=i[t];"string"==typeof a&&(a=a.toLowerCase()),Object.prototype.hasOwnProperty.call(n,a)||(n[a]=[]),n[a].push(i)})),n},values:function(e){return Object.keys(e).map((function(t){return e[t]}))},flatten:function(e){var t=[];return e.forEach((function(e){Array.isArray(e)?e.forEach((function(e){t.push(e)})):t.push(e)})),t},flattenAndFlagFirst:function(e,t){var n=this.values(e).map((function(e){return e.map((function(e,n){return e[t]=0===n,e}))}));return this.flatten(n)},compact:function(e){var t=[];return e.forEach((function(e){e&&t.push(e)})),t},getHighlightedValue:function(e,t){return e._highlightResult&&e._highlightResult.hierarchy_camel&&e._highlightResult.hierarchy_camel[t]&&e._highlightResult.hierarchy_camel[t].matchLevel&&"none"!==e._highlightResult.hierarchy_camel[t].matchLevel&&e._highlightResult.hierarchy_camel[t].value?e._highlightResult.hierarchy_camel[t].value:e._highlightResult&&e._highlightResult&&e._highlightResult[t]&&e._highlightResult[t].value?e._highlightResult[t].value:e[t]},getSnippetedValue:function(e,t){if(!e._snippetResult||!e._snippetResult[t]||!e._snippetResult[t].value)return e[t];var n=e._snippetResult[t].value;return n[0]!==n[0].toUpperCase()&&(n="\u2026"+n),-1===[".","!","?"].indexOf(n[n.length-1])&&(n+="\u2026"),n},deepClone:function(e){return JSON.parse(JSON.stringify(e))}},p=function(){function e(t){var n=t.searchDocs,i=t.searchIndex,a=t.inputSelector,s=t.debug,l=void 0!==s&&s,u=t.queryDataCallback,h=void 0===u?null:u,d=t.autocompleteOptions,p=void 0===d?{debug:!1,hint:!1,autoselect:!0}:d,v=t.transformData,f=void 0!==v&&v,y=t.queryHook,m=void 0!==y&&y,b=t.handleSelected,x=void 0!==b&&b,w=t.enhancedSearchInput,_=void 0!==w&&w,S=t.layout,H=void 0===S?"collumns":S;this.input=e.getInputFromSelector(a),this.queryDataCallback=h||null;var L=!(!p||!p.debug)&&p.debug;p.debug=l||L,this.autocompleteOptions=p,this.autocompleteOptions.cssClasses=this.autocompleteOptions.cssClasses||{},this.autocompleteOptions.cssClasses.prefix=this.autocompleteOptions.cssClasses.prefix||"ds";var C=this.input&&"function"==typeof this.input.attr&&this.input.attr("aria-label");this.autocompleteOptions.ariaLabel=this.autocompleteOptions.ariaLabel||C||"search input",this.isSimpleLayout="simple"===H,this.client=new r(n,i),_&&(this.input=e.injectSearchBox(this.input)),this.autocomplete=o()(this.input,p,[{source:this.getAutocompleteSource(f,m),templates:{suggestion:e.getSuggestionTemplate(this.isSimpleLayout),footer:c.footer,empty:e.getEmptyTemplate()}}]);var k=x;this.handleSelected=k||this.handleSelected,k&&g()(".algolia-autocomplete").on("click",".ds-suggestions a",(function(e){e.preventDefault()})),this.autocomplete.on("autocomplete:selected",this.handleSelected.bind(null,this.autocomplete.autocomplete)),this.autocomplete.on("autocomplete:shown",this.handleShown.bind(null,this.input)),_&&e.bindSearchBoxEvent()}e.injectSearchBox=function(e){e.before(c.searchBox);var t=e.prev().prev().find("input");return e.remove(),t},e.bindSearchBoxEvent=function(){g()('.searchbox [type="reset"]').on("click",(function(){g()("input#docsearch").focus(),g()(this).addClass("hide"),o.a.autocomplete.setVal("")})),g()("input#docsearch").on("keyup",(function(){var e=document.querySelector("input#docsearch"),t=document.querySelector('.searchbox [type="reset"]');t.className="searchbox__reset",0===e.value.length&&(t.className+=" hide")}))},e.getInputFromSelector=function(e){var t=g()(e).filter("input");return t.length?g()(t[0]):null};var t=e.prototype;return t.getAutocompleteSource=function(t,n){var i=this;return function(a,s){n&&(a=n(a)||a),i.client.search(a).then((function(n){i.queryDataCallback&&"function"==typeof i.queryDataCallback&&i.queryDataCallback(n),t&&(n=t(n)||n),s(e.formatHits(n))}))}},e.formatHits=function(t){var n=d.deepClone(t).map((function(e){return e._highlightResult&&(e._highlightResult=d.mergeKeyWithParent(e._highlightResult,"hierarchy")),d.mergeKeyWithParent(e,"hierarchy")})),i=d.groupBy(n,"lvl0");return g.a.each(i,(function(e,t){var n=d.groupBy(t,"lvl1"),a=d.flattenAndFlagFirst(n,"isSubCategoryHeader");i[e]=a})),(i=d.flattenAndFlagFirst(i,"isCategoryHeader")).map((function(t){var n=e.formatURL(t),i=d.getHighlightedValue(t,"lvl0"),a=d.getHighlightedValue(t,"lvl1")||i,s=d.compact([d.getHighlightedValue(t,"lvl2")||a,d.getHighlightedValue(t,"lvl3"),d.getHighlightedValue(t,"lvl4"),d.getHighlightedValue(t,"lvl5"),d.getHighlightedValue(t,"lvl6")]).join(''),r=d.getSnippetedValue(t,"content"),l=a&&""!==a||s&&""!==s,o=s&&""!==s&&s!==a,u=!o&&a&&""!==a&&a!==i;return{isLvl0:!u&&!o,isLvl1:u,isLvl2:o,isLvl1EmptyOrDuplicate:!a||""===a||a===i,isCategoryHeader:t.isCategoryHeader,isSubCategoryHeader:t.isSubCategoryHeader,isTextOrSubcategoryNonEmpty:l,category:i,subcategory:a,title:s,text:r,url:n}}))},e.formatURL=function(e){var t=e.url,n=e.anchor;return t?-1!==t.indexOf("#")?t:n?e.url+"#"+e.anchor:t:n?"#"+e.anchor:(console.warn("no anchor nor url for : ",JSON.stringify(e)),null)},e.getEmptyTemplate=function(){return function(e){return a.a.compile(c.empty).render(e)}},e.getSuggestionTemplate=function(e){var t=e?c.suggestionSimple:c.suggestion,n=a.a.compile(t);return function(e){return n.render(e)}},t.handleSelected=function(e,t,n,i,a){void 0===a&&(a={}),"click"!==a.selectionMethod&&(e.setVal(""),window.location.assign(n.url))},t.handleShown=function(e){var t=e.offset().left+e.width()/2,n=g()(document).width()/2;isNaN(n)&&(n=900);var i=t-n>=0?"algolia-autocomplete-right":"algolia-autocomplete-left",a=t-n<0?"algolia-autocomplete-right":"algolia-autocomplete-left",s=g()(".algolia-autocomplete");s.hasClass(i)||s.addClass(i),s.hasClass(a)&&s.removeClass(a)},e}();t.default=p},209:function(e,t){}}]); \ No newline at end of file diff --git a/9a2cec18.9d5c815b.js b/9a2cec18.9d5c815b.js new file mode 100644 index 000000000..fff0b816f --- /dev/null +++ b/9a2cec18.9d5c815b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{112:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return b})),n.d(t,"rightToc",(function(){return o})),n.d(t,"default",(function(){return p}));var a=n(2),r=n(6),i=(n(0),n(153)),l=(n(155),{title:"Release notes",description:"Release Notes"}),b={unversionedId:"release_notes",id:"release_notes",isDocsHomePage:!1,title:"Release notes",description:"Release Notes",source:"@site/docs/release_notes.md",permalink:"/docs/docs/release_notes",editUrl:"https://github.com/Leaf-Agriculture/docs/tree/master/docs/release_notes.md",sidebar:"docs",previous:{title:"Quickstart",permalink:"/docs/docs/quickstart"},next:{title:"Glossary",permalink:"/docs/docs/glossary"}},o=[{value:"2.115.0",id:"21150",children:[]},{value:"2.113.0",id:"21130",children:[]},{value:"2.110.0",id:"21100",children:[]},{value:"2.106.0",id:"21060",children:[]},{value:"2.105.0",id:"21050",children:[]},{value:"2.100.0",id:"21000",children:[]},{value:"2.98.0",id:"2980",children:[]},{value:"2.92.0",id:"2920",children:[]},{value:"2.91.0",id:"2910",children:[]},{value:"2.89.0",id:"2890",children:[]},{value:"2.88.0",id:"2880",children:[]},{value:"2.87.0",id:"2870",children:[]},{value:"2.86.0",id:"2860",children:[]},{value:"2.85.0",id:"2850",children:[]},{value:"2.84.0",id:"2840",children:[]},{value:"2.83.0",id:"2830",children:[]},{value:"2.82.0",id:"2820",children:[]},{value:"2.81.0",id:"2810",children:[]}],c={rightToc:o};function p(e){var t=e.components,n=Object(r.a)(e,["components"]);return Object(i.b)("wrapper",Object(a.a)({},c,n,{components:t,mdxType:"MDXLayout"}),Object(i.b)("p",null,"We\u2019re moving to monthly release notes, you\u2019ll find them in our blog\u2019s \u2018What\u2019s New\u2019 section ",Object(i.b)("a",Object(a.a)({parentName:"p"},{href:"https://withleaf.io/en/whats-new"}),"here"),". If you'd like to stay up to date with news from Leaf, make sure to follow us on social media!"),Object(i.b)("h3",{id:"21150"},"2.115.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2023-02-16")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Agvance integration"),"\nNew integration available. Agvance Grower, Farm, Field, and boundaries will be available in our Field Boundary Management service."),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Crop monitoring")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"The satellite image bands are now grouped into a single tif file ",Object(i.b)("inlineCode",{parentName:"li"},"multiband.tif"),", available for all providers.")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Field operations")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Fixed the unit of measure for cotton operation files (John Deere), now calculated based on bales.")),Object(i.b)("h3",{id:"21130"},"2.113.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2023-01-19")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Stara integration"),"\nNew integrations available for Stara. Machine Files, Field Operations, Field Boundaries and Machines are services available for this provider."),Object(i.b)("h3",{id:"21100"},"2.110.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2022-12-08")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Additional planting properties")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"New properties available for planted operations.\nThe ",Object(i.b)("inlineCode",{parentName:"li"},"downForce")," and ",Object(i.b)("inlineCode",{parentName:"li"},"singulation")," properties, when available, will be present in the standardGeojson, summary and images of operations.")),Object(i.b)("h3",{id:"21060"},"2.106.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2022-10-13")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Yield cleaning")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"There is now a ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"/docs/configurations_overview#operationsfilteredgeojson"}),"configuration")," to enable the use of ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"/docs/operations_sample_output#field-operations-filtered-geojson"}),"new cleanup step"),".")),Object(i.b)("h3",{id:"21050"},"2.105.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2022-10-05")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Yield cleaning")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Harvest data can now go through a new cleanup step based on the removal of outliers. More info ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"/docs/operations_sample_output#field-operations-filtered-geojson"}),"here"),"."),Object(i.b)("li",{parentName:"ul"},"We also improved the operations images. More info ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"/docs/operations_sample_output#field-operations-images-v2"}),"here"),".")),Object(i.b)("h3",{id:"21000"},"2.100.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2022-08-31")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Beta")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Layers upload",Object(i.b)("br",{parentName:"li"}),"There is now an option to upload layer files directly to Climate FieldView via Leaf API. Currently, only RGB GeoTIFF files are supported. More info ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"/docs/beta_layers_endpoints#"}),"here"),".")),Object(i.b)("h3",{id:"2980"},"2.98.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2022-08-16")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Machine file conversion")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"New properties ",Object(i.b)("inlineCode",{parentName:"li"},"dryMass")," ",Object(i.b)("inlineCode",{parentName:"li"},"dryMassPerArea")," ",Object(i.b)("inlineCode",{parentName:"li"},"dryVolume")," and ",Object(i.b)("inlineCode",{parentName:"li"},"dryVolumePerArea")," for dry Yield are available in the operation ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"/docs/machine_file_conversion_sample_output#operation-summary"}),"summary")," and in the ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"/docs/machine_file_conversion_sample_output#standard-geojson"}),"standard")," GeoJSON. ")),Object(i.b)("h3",{id:"2920"},"2.92.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2022-07-05")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Crop Monitoring")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Usable Data Mask 2.0 (UDM2) is now available for Planet",Object(i.b)("br",{parentName:"li"}),"The mask images are available through the Planet ",Object(i.b)("inlineCode",{parentName:"li"},"udm2")," asset type. More info ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"/docs/planet_overview#udm2"}),"here"),".")),Object(i.b)("h3",{id:"2910"},"2.91.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2022-06-29")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Crop Monitoring")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"NDRE images\nNormalized difference red edge (NDRE) index is now available for Sentinel and Planet. ")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Machine file conversion")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Added support for Avoirdupois ounce unit of measure. ")),Object(i.b)("h3",{id:"2890"},"2.89.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2022-06-14")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Machine file conversion")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("strong",{parentName:"li"},"[beta]")," Added support for 20|20 files from Precision Planting ")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Fields")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"New filter available in the fields and farms GET endpoints\nIt is now possible to filter fields by farm and farms by grower. ")),Object(i.b)("h3",{id:"2880"},"2.88.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2022-06-07")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Beta")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Machines",Object(i.b)("br",{parentName:"li"}),"Deprecated property ",Object(i.b)("inlineCode",{parentName:"li"},"createdAt")," in ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"/docs/beta_assets_endpoints"}),"Machines"),". Use ",Object(i.b)("inlineCode",{parentName:"li"},"createdTime")," to obtain the creation time instead.")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Fields")," "),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Fixing alerts related to creating and updating field boundaries",Object(i.b)("br",{parentName:"li"}),"There was an issue interpreting updates from a provider. More information about alerts ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"/docs/alerts_events/#field-boundary-events"}),"here"),".")),Object(i.b)("h3",{id:"2870"},"2.87.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2022-05-24")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Machine file conversion")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Added support for ISOXML files")),Object(i.b)("h3",{id:"2860"},"2.86.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2022-05-24")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Machine file conversion")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"New properties on the Standard GeoJSON",Object(i.b)("br",{parentName:"li"}),"Optional properties: ",Object(i.b)("inlineCode",{parentName:"li"},"cropFlow"),", ",Object(i.b)("inlineCode",{parentName:"li"},"productIndex"),", ",Object(i.b)("inlineCode",{parentName:"li"},"proteinPercentage"),", ",Object(i.b)("inlineCode",{parentName:"li"},"samplingInterval"),", ",Object(i.b)("inlineCode",{parentName:"li"},"xOffset")," and ",Object(i.b)("inlineCode",{parentName:"li"},"yOffset"),".",Object(i.b)("br",{parentName:"li"}),"More information ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"/docs/machine_file_conversion_sample_output#standard-geojson"}),"here"),".")),Object(i.b)("h3",{id:"2850"},"2.85.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2022-05-17")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Machine file conversion")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Machine list available in the operation files",Object(i.b)("br",{parentName:"li"}),"The new property ",Object(i.b)("inlineCode",{parentName:"li"},"machine")," list all machine ids under the files entity (not to be confused with ",Object(i.b)("inlineCode",{parentName:"li"},"machinery")," property available in the summary).\nMore information ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"/docs/machine_file_conversion_sample_output#operation-summary"}),"here"),".")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Beta")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Machines",Object(i.b)("br",{parentName:"li"}),"The properties ",Object(i.b)("inlineCode",{parentName:"li"},"vin"),", ",Object(i.b)("inlineCode",{parentName:"li"},"model"),", ",Object(i.b)("inlineCode",{parentName:"li"},"make"),", ",Object(i.b)("inlineCode",{parentName:"li"},"category")," and ",Object(i.b)("inlineCode",{parentName:"li"},"modelYear")," are now also available in the ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"/docs/beta_assets_endpoints#create-a-machine"}),"Machine POST endpoint"),".")),Object(i.b)("h3",{id:"2840"},"2.84.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2022-05-11")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Machine file conversion")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"New config available: ",Object(i.b)("inlineCode",{parentName:"li"},"splitOperationsByField"),Object(i.b)("br",{parentName:"li"}),"If set to ",Object(i.b)("inlineCode",{parentName:"li"},"true"),", Leaf will split your Field Operations based on the intersection of each Leaf Field Boundary. The default value is ",Object(i.b)("inlineCode",{parentName:"li"},"false"),".\nCheck all the configurations available ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"/docs/configurations_overview"}),"here"),".")),Object(i.b)("h3",{id:"2830"},"2.83.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2022-05-03")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Beta")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Machines",Object(i.b)("br",{parentName:"li"}),"New machine properties available: ",Object(i.b)("inlineCode",{parentName:"li"},"vin"),", ",Object(i.b)("inlineCode",{parentName:"li"},"model"),", ",Object(i.b)("inlineCode",{parentName:"li"},"make"),", ",Object(i.b)("inlineCode",{parentName:"li"},"category")," and ",Object(i.b)("inlineCode",{parentName:"li"},"modelYear"),".\nThe ",Object(i.b)("inlineCode",{parentName:"li"},"vin")," property can be used to query.")),Object(i.b)("h3",{id:"2820"},"2.82.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2022-04-26")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Machine file conversion")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("p",{parentName:"li"},"Sugar cane",Object(i.b)("br",{parentName:"p"}),"\n","Leaf API now also support sugar cane files. Be aware that volume measurements will not be available for this crop type.")),Object(i.b)("li",{parentName:"ul"},Object(i.b)("p",{parentName:"li"},"New config available: ",Object(i.b)("inlineCode",{parentName:"p"},"operationsAutoSync"),Object(i.b)("br",{parentName:"p"}),"\n","If set to ",Object(i.b)("inlineCode",{parentName:"p"},"true")," (default), Leaf will automatically synchronize provider's operations.",Object(i.b)("br",{parentName:"p"}),"\n","Check all the configurations available ",Object(i.b)("a",Object(a.a)({parentName:"p"},{href:"/docs/configurations_overview"}),"here"),"."))),Object(i.b)("h3",{id:"2810"},"2.81.0"),Object(i.b)("p",null,Object(i.b)("em",{parentName:"p"},"2022-04-20")),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Machine file conversion")),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("p",{parentName:"li"},"New config available: ",Object(i.b)("inlineCode",{parentName:"p"},"cleanupStandardGeojson"),Object(i.b)("br",{parentName:"p"}),"\n","If set to ",Object(i.b)("inlineCode",{parentName:"p"},"true")," (default), Leaf will automatically remove ",Object(i.b)("a",Object(a.a)({parentName:"p"},{href:"/docs/machine_file_conversion_sample_output#valid-points"}),"invalid points")," from the standardGeoJSON file for operations.",Object(i.b)("br",{parentName:"p"}),"\n","Check all the configurations available ",Object(i.b)("a",Object(a.a)({parentName:"p"},{href:"/docs/configurations_overview"}),"here"),".")),Object(i.b)("li",{parentName:"ul"},Object(i.b)("p",{parentName:"li"},Object(i.b)("inlineCode",{parentName:"p"},"(0,0)")," point removed",Object(i.b)("br",{parentName:"p"}),"\n","All ",Object(i.b)("inlineCode",{parentName:"p"},"(0,0)")," points are now automatically removed in our converters.\n"))),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Crop monitoring")," "),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Planet: new asset type available",Object(i.b)("br",{parentName:"li"}),"Leaf API now also supports PlanetScope's ",Object(i.b)("inlineCode",{parentName:"li"},"analytics_5b")," asset type which has 5 bands: Red, Green, Blue, Red-Edge and Near infrared.",Object(i.b)("br",{parentName:"li"}),"You can check our ",Object(i.b)("a",Object(a.a)({parentName:"li"},{href:"/docs/crop_monitoring_endpoints#create-a-satellite-field"}),"documentation")," for how to filter images by different asset types.")))}p.isMDXComponent=!0},153:function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return O}));var a=n(0),r=n.n(a);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function b(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=r.a.createContext({}),p=function(e){var t=r.a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):b(b({},t),e)),n},s=function(e){var t=p(e.components);return r.a.createElement(c.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},d=r.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),s=p(n),d=a,O=s["".concat(l,".").concat(d)]||s[d]||u[d]||i;return n?r.a.createElement(O,b(b({ref:t},c),{},{components:n})):r.a.createElement(O,b({ref:t},c))}));function O(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=d;var b={};for(var o in t)hasOwnProperty.call(t,o)&&(b[o]=t[o]);b.originalType=e,b.mdxType="string"==typeof e?e:a,l[1]=b;for(var c=2;c console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(l.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/ag-leader-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n")))),Object(s.b)("h4",{id:"response"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "accessToken": "str",\n "refreshToken": "str",\n "publicKey": "str",\n "privateKey": "str"\n}\n')),Object(s.b)("h3",{id:"create-a-agleader-credentials"},"Create a AgLeader credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/ag-leader-credentials")," "),Object(s.b)("p",null,"Create a AgLeader credentials for the Leaf User."),Object(s.b)("h4",{id:"request-body"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "accessToken": "str",\n "refreshToken": "str",\n "publicKey": "str",\n "privateKey": "str"\n}\n')),Object(s.b)("h4",{id:"request-examples-1"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(l.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/ag-leader-credentials\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "accessToken": "str", \n "refreshToken": "str", \n "publicKey": "str", \n "privateKey": "str"\n}\n\naxios.post(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(s.b)(l.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/ag-leader-credentials\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n\ndata = {\n "accessToken": "str", \n "refreshToken": "str", \n "publicKey": "str", \n "privateKey": "str"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(s.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n-H \'Authorization: Bearer YOUR_TOKEN\' \\\n-H \'Content-Type: application/json\' \\\n-d \'{ "accessToken": "str","refreshToken": "str","publicKey":"str", "privateKey":"str"}\' \\\n\'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/ag-leader-credentials\'\n')))),Object(s.b)("h4",{id:"response-1"},"Response"),Object(s.b)("p",null,"A AgLeader Credentials with status."),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "accessToken": "str",\n "refreshToken": "str",\n "publicKey": "str",\n "privateKey": "str"\n}\n')),Object(s.b)("h3",{id:"delete-agleader-credentials"},"Delete AgLeader credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/ag-leader-credentials")),Object(s.b)("p",null,"Delete Leaf User's AgLeader credentials."),Object(s.b)("h4",{id:"request-examples-2"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"JavaScript",value:"js"},{label:"Python",value:"py"}],mdxType:"Tabs"},Object(s.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/ag-leader-credentials'\n"))),Object(s.b)(l.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/ag-leader-credentials'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(l.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/ag-leader-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n")))),Object(s.b)("h2",{id:"troubleshooting"},"Troubleshooting"),Object(s.b)("p",null,"With these endpoints, you can do some troubleshooting to see your credential's health."),Object(s.b)("h3",{id:"events"},"Events"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/ag-leader-credentials/events")),Object(s.b)("p",null,"Get the logs of the provider credential based on the LeafUserId sent."),Object(s.b)("h4",{id:"request-examples-3"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(l.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/ag-leader-credentials/events'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(l.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/ag-leader-credentials/events'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}\n /ag-leader-credentials/events'\n")))),Object(s.b)("h4",{id:"response-2"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "body": "string",\n "createdDate": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "headers": "string",\n "id": "string",\n "statusCode": "int"\n }\n]\n')),Object(s.b)("div",{className:"admonition admonition-warning alert alert--danger"},Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(s.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})))),"warning")),Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available."))))}u.isMDXComponent=!0},153:function(e,t,a){"use strict";a.d(t,"a",(function(){return b})),a.d(t,"b",(function(){return O}));var n=a(0),r=a.n(n);function s(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function c(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=r.a.createContext({}),d=function(e){var t=r.a.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},b=function(e){var t=d(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},p=r.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,s=e.originalType,c=e.parentName,o=i(e,["components","mdxType","originalType","parentName"]),b=d(a),p=n,O=b["".concat(c,".").concat(p)]||b[p]||u[p]||s;return a?r.a.createElement(O,l(l({ref:t},o),{},{components:a})):r.a.createElement(O,l({ref:t},o))}));function O(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=a.length,c=new Array(s);c[0]=p;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l.mdxType="string"==typeof e?e:n,c[1]=l;for(var o=2;o console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(o.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver'\n")))),Object(s.b)("h4",{id:"response"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "senderApiOwner": "{senderApiOwner}",\n "receiverApiOwner": "{receiverApiOwner}",\n "status": "ALLOWED"\n }\n]\n')),Object(s.b)("h3",{id:"get-api-owner-sharing-relation-status"},"Get API Owner sharing relation status"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/usermanagement/api/api-owners/sharing-relation/{RelationRole}/{targetApiOwner}/status")),Object(s.b)("p",null,"Get the relation status based in the relation role (",Object(s.b)("inlineCode",{parentName:"p"},"SENDER")," or ",Object(s.b)("inlineCode",{parentName:"p"},"RECEIVER"),")."),Object(s.b)("h4",{id:"request-examples-1"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(o.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/status'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(o.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/status'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/status'\n")))),Object(s.b)("h4",{id:"response-1"},"Response"),Object(s.b)("p",null,"A string with one of the following values: ",Object(s.b)("inlineCode",{parentName:"p"},"PENDING"),", ",Object(s.b)("inlineCode",{parentName:"p"},"ALLOWED")," or ",Object(s.b)("inlineCode",{parentName:"p"},"BLOCKED"),"."),Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'"PENDING"\n')),Object(s.b)("h3",{id:"create-an-api-owner-sharing-relation"},"Create an API Owner sharing relation"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/usermanagement/api/api-owners/sharing-relation/receiver")),Object(s.b)("p",null,"Create a sharing relation between the API Owners."),Object(s.b)("h4",{id:"request-examples-2"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(o.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n receiverApiOwner: \"{ReceiverApiOwner}\"\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(o.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'receiverApiOwner': \"{ReceiverApiOwner}\"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(s.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -d '{ \"receiverApiOwner\": \"{ReceiverApiOwner}\" }'\n 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver'\n")))),Object(s.b)("h4",{id:"response-2"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "senderApiOwner": "{senderApiOwner}",\n "receiverApiOwner": "{receiverApiOwner}",\n "status": "PENDING"\n}\n')),Object(s.b)("h3",{id:"update-an-api-owner-sharing-relation-status"},"Update an API Owner sharing relation status"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"PATCH")," ",Object(s.b)("inlineCode",{parentName:"p"},"/usermanagement/api/api-owners/sharing-relation/{RelationRole}/{targetApiOwner}")),Object(s.b)("p",null,"Update the sharing relation status. The values available are ",Object(s.b)("inlineCode",{parentName:"p"},"ALLOWED")," or ",Object(s.b)("inlineCode",{parentName:"p"},"BLOCKED"),"."),Object(s.b)("p",null,"After the sender creates a relationship, the recevier must approve it by changing the status from ",Object(s.b)("inlineCode",{parentName:"p"},"PENDING")," to ",Object(s.b)("inlineCode",{parentName:"p"},"ALLOWED"),".\nBoth API Owners can block the relation, but once locked by the sender, there is no way for the receiver to change it again."),Object(s.b)("h4",{id:"request-examples-3"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(o.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\nconst data = { 'status': 'ALLOWED or BLOCKED}\n\naxios.patch(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(o.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'status': 'ALLOWED or BLOCKED'\n}\n\nresponse = requests.patch(endpoint, json=data, headers=headers)\nprint(response.json())\n"))),Object(s.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),"curl -X PATCH \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -d '{ \"status\": \"ALLOWED or BLOCKED\" }' \n 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}'\n")))),Object(s.b)("h4",{id:"response-3"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "senderApiOwner": "{senderApiOwner}",\n "receiverApiOwner": "{receiverApiOwner}",\n "status": "ALLOWED"\n}\n')),Object(s.b)("h3",{id:"get-leafuser-permissions"},"Get LeafUser permissions"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/usermanagement/api/api-owners/sharing-relation/{RelationRole}/{TargetApiOwner}/users-permissions/{leafUserId}")),Object(s.b)("p",null,"Get all permissions granted to a receiver API Owner for a Leaf user."),Object(s.b)("h4",{id:"request-examples-4"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(o.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(o.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}'\n")))),Object(s.b)("h4",{id:"response-4"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "permissions": {\n "FIELDS": {\n "actions": [\n "READ"\n ]\n }\n }\n}\n')),Object(s.b)("h3",{id:"create-a-leafuser-permissions"},"Create a LeafUser permissions"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}")),Object(s.b)("p",null,"Grants permission to a receiver for a given Leaf user resource."),Object(s.b)("p",null,Object(s.b)("em",{parentName:"p"},"Note: shared Leaf users (from other API Owner) are not available for grant permissions")),Object(s.b)("h4",{id:"request-examples-5"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(o.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint =\'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "permissions": {\n "FIELDS": {\n "actions": [\n "READ"\n ]\n },\n "OPERATIONS": {\n "actions": [\n "READ"\n ],\n "types": [\n "PLANTED"\n ]\n }\n }\n }\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(s.b)(o.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n\ndata = {\n "permissions": {\n "FIELDS": {\n "actions": [\n "READ"\n ]\n },\n "OPERATIONS": {\n "actions": [\n "READ"\n ],\n "types": [\n "PLANTED"\n ]\n }\n }\n }\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(s.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{"permissions":{"FIELDS":{"actions":["READ"]},"OPERATIONS":{"actions":["READ"],"types":["PLANTED"]}}}\'\n \'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}\'\n')))),Object(s.b)("h4",{id:"response-5"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "leafUserId": "{leafUserId}",\n "permissions": {\n "FIELDS": {\n "actions": [\n "READ"\n ]\n },\n "OPERATIONS": {\n "actions": [\n "READ"\n ],\n "types": [\n "PLANTED"\n ]\n }\n }\n}\n')),Object(s.b)("h4",{id:"availability"},"Availability"),Object(s.b)("table",null,Object(s.b)("thead",{parentName:"table"},Object(s.b)("tr",{parentName:"thead"},Object(s.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Resource"),Object(s.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Actions"),Object(s.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Types"))),Object(s.b)("tbody",{parentName:"table"},Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(s.b)("inlineCode",{parentName:"td"},"FIELD")),Object(s.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(s.b)("inlineCode",{parentName:"td"},"READ")),Object(s.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"-")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(s.b)("inlineCode",{parentName:"td"},"OPERATIONS")),Object(s.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(s.b)("inlineCode",{parentName:"td"},"READ")),Object(s.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(s.b)("inlineCode",{parentName:"td"},"APPLIED"),", ",Object(s.b)("inlineCode",{parentName:"td"},"HARVESTED"),", ",Object(s.b)("inlineCode",{parentName:"td"},"PLANTED"))))),Object(s.b)("h3",{id:"update-leafuser-permissions"},"Update LeafUser permissions"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"PATCH")," ",Object(s.b)("inlineCode",{parentName:"p"},"/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}/{RESOURCE}")),Object(s.b)("p",null,"Update the permissions granted to the receiver API Owner."),Object(s.b)("h4",{id:"request-examples-6"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(o.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}/OPERATIONS\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "actions": [\n "READ"\n ],\n "types": [\n "PLANTED", "HARVESTED"\n ]\n}\n\naxios.patch(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(s.b)(o.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}/OPERATIONS\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n\ndata = {\n "actions": [\n "READ"\n ],\n "types": [\n "PLANTED", "HARVESTED"\n ]\n}\n\nresponse = requests.patch(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(s.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),'curl -X PATCH \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{"actions":["READ"],"types":["PLANTED", "HARVESTED"]}\' \\\n \'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}/OPERATIONS\'\n')))),Object(s.b)("h4",{id:"response-6"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-json"}),'{\n "leafUserId": "{leafUserId}",\n "permissions": {\n "FIELDS": {\n "actions": [\n "READ"\n ]\n },\n "OPERATIONS": {\n "actions": [\n "READ"\n ],\n "types": [\n "PLANTED", "HARVESTED"\n ]\n }\n }\n}\n')),Object(s.b)("h4",{id:"availability-1"},"Availability"),Object(s.b)("table",null,Object(s.b)("thead",{parentName:"table"},Object(s.b)("tr",{parentName:"thead"},Object(s.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Resource"),Object(s.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Actions"),Object(s.b)("th",Object(t.a)({parentName:"tr"},{align:null}),"Types"))),Object(s.b)("tbody",{parentName:"table"},Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(s.b)("inlineCode",{parentName:"td"},"FIELD")),Object(s.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(s.b)("inlineCode",{parentName:"td"},"READ")),Object(s.b)("td",Object(t.a)({parentName:"tr"},{align:null}),"-")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(s.b)("inlineCode",{parentName:"td"},"OPERATIONS")),Object(s.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(s.b)("inlineCode",{parentName:"td"},"READ")),Object(s.b)("td",Object(t.a)({parentName:"tr"},{align:null}),Object(s.b)("inlineCode",{parentName:"td"},"APPLIED"),", ",Object(s.b)("inlineCode",{parentName:"td"},"HARVESTED"),", ",Object(s.b)("inlineCode",{parentName:"td"},"PLANTED"))))),Object(s.b)("h3",{id:"invalidate-receivers-tokens"},"Invalidate receiver's tokens"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/usermanagement/api/api-owners/sharing-relation/{RelationRole}/{TargetApiOwner}/invalidate-tokens")),Object(s.b)("p",null,"Invalidate the receiver's tokens created before the ",Object(s.b)("strong",{parentName:"p"},"current")," date and time."),Object(s.b)("h4",{id:"request-examples-7"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(o.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/{TargetApiOwner}/invalidate-tokens'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.POST(endpoint, { headers})\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(o.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/{TargetApiOwner}/invalidate-tokens'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.post(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),"curl -X PATCH \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/{TargetApiOwner}/invalidate-tokens'\n")))),Object(s.b)("h3",{id:"delete-leafuser-sharing-permissions"},"Delete LeafUser sharing permissions"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(s.b)("inlineCode",{parentName:"p"},"/usermanagement/api/api-owners/sharing-relation/{RelationRole}/users-permissions/{leafUserId}")),Object(s.b)("p",null,"Deletes a permission."),Object(s.b)("h4",{id:"request-examples-8"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(o.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers})\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(o.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(t.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}'\n")))))}O.isMDXComponent=!0},153:function(e,a,n){"use strict";n.d(a,"a",(function(){return p})),n.d(a,"b",(function(){return d}));var t=n(0),r=n.n(t);function s(e,a,n){return a in e?Object.defineProperty(e,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[a]=n,e}function i(e,a){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),n.push.apply(n,t)}return n}function o(e){for(var a=1;a=0||(r[n]=e[n]);return r}(e,a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=r.a.createContext({}),b=function(e){var a=r.a.useContext(l),n=a;return e&&(n="function"==typeof e?e(a):o(o({},a),e)),n},p=function(e){var a=b(e.components);return r.a.createElement(l.Provider,{value:a},e.children)},O={inlineCode:"code",wrapper:function(e){var a=e.children;return r.a.createElement(r.a.Fragment,{},a)}},u=r.a.forwardRef((function(e,a){var n=e.components,t=e.mdxType,s=e.originalType,i=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=b(n),u=t,d=p["".concat(i,".").concat(u)]||p[u]||O[u]||s;return n?r.a.createElement(d,o(o({ref:a},l),{},{components:n})):r.a.createElement(d,o({ref:a},l))}));function d(e,a){var n=arguments,t=a&&a.mdxType;if("string"==typeof e||t){var s=n.length,i=new Array(s);i[0]=u;var o={};for(var c in a)hasOwnProperty.call(a,c)&&(o[c]=a[c]);o.originalType=e,o.mdxType="string"==typeof e?e:t,i[1]=o;for(var l=2;l=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=a.a.createContext({}),p=function(e){var t=a.a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=p(e.components);return a.a.createElement(u.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},m=a.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),l=p(n),m=r,b=l["".concat(c,".").concat(m)]||l[m]||d[m]||o;return n?a.a.createElement(b,i(i({ref:t},u),{},{components:n})):a.a.createElement(b,i({ref:t},u))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,c=new Array(o);c[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:r,c[1]=i;for(var u=2;u console.log(res.data))\n .catch(console.error)\n"))),Object(l.b)(s.a,{value:"py",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/satellite/api/fields'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(l.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/satellite/api/fields'\n")))),Object(l.b)("h4",{id:"response"},"Response"),Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "externalId": "your field id",\n "geometry": {\n "type": "MultiPolygon",\n "coordinates": [...]\n }\n "providers": [\n "sentinel", \n "planet"\n ]\n },\n ....\n]\n')),Object(l.b)("h3",{id:"get-a-satellite-field"},"Get a satellite field"),Object(l.b)("p",null,"\xa0",Object(l.b)("span",{class:"badge badge--success"},"GET")," ",Object(l.b)("inlineCode",{parentName:"p"},"/fields/{id}")),Object(l.b)("p",null,"Fetches a field entry based on its external id."),Object(l.b)("ul",null,Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"id"),": external ID used in the field's registration"),Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"geometry"),": a valid ",Object(l.b)("a",Object(n.a)({parentName:"li"},{href:"https://tools.ietf.org/html/rfc7946#section-3.1.7"}),"MultiPolygon")," GeoJSON object with the geometry of the field")),Object(l.b)("h4",{id:"request-examples-1"},"Request examples"),Object(l.b)(r.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(l.b)(s.a,{value:"js",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/satellite/api/fields/{id}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(l.b)(s.a,{value:"py",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/satellite/api/fields/{id}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(l.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/satellite/api/fields/{id}'\n")))),Object(l.b)("h4",{id:"response-1"},"Response"),Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "externalId": "your field id",\n "geometry": {\n "type": "MultiPolygon",\n "coordinates": [...]\n },\n "providers": [\n "sentinel", \n "planet"\n ],\n "extent": {\n "xmin": 0.0,\n "xmax": 0.0,\n "ymin": 0.0,\n "ymax": 0.0\n }\n}\n')),Object(l.b)("h3",{id:"get-images-of-satellite-field"},"Get images of satellite field"),Object(l.b)("p",null,"\xa0",Object(l.b)("span",{class:"badge badge--success"},"GET")," ",Object(l.b)("inlineCode",{parentName:"p"},"/fields/{id}/processes")),Object(l.b)("p",null,"Returns images for a given field ",Object(l.b)("inlineCode",{parentName:"p"},"id"),"."),Object(l.b)("p",null,"We return the following images (tifs are EPSG:4326, pngs are EPSG:3857):"),Object(l.b)("ul",null,Object(l.b)("li",{parentName:"ul"},"RGB as tiff and as png"),Object(l.b)("li",{parentName:"ul"},"Colorized NDVI as tiff and as png"),Object(l.b)("li",{parentName:"ul"},"Raw NDVI as tiff"),Object(l.b)("li",{parentName:"ul"},"All bands as tiff.")),Object(l.b)("p",null,Object(l.b)("em",{parentName:"p"},"Check the ",Object(l.b)("a",Object(n.a)({parentName:"em"},{href:"https://docs.withleaf.io/docs/crop_monitoring_overview#providers"}),"comparison page")," to identify the resolution and bands available for each provider.")),Object(l.b)("p",null,"It is possible to filter the results by a number of different parameters:"),Object(l.b)("table",null,Object(l.b)("thead",{parentName:"table"},Object(l.b)("tr",{parentName:"thead"},Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Parameter"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Type"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(l.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Default"))),Object(l.b)("tbody",{parentName:"table"},Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"startDate"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ISO 8601 datetime format"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"retrieve images taken after this day"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"-")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"endDate"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ISO 8601 datetime format"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"retrieve images taken until this day"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"-")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"startProcessedTimestamp"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ISO 8601 datetime format"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"retrieve images processed by Leaf after this day"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"-")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"endProcessedTimestamp"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ISO 8601 datetime format"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"retrieve images processed by Leaf until this day"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"-")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"maxClouds"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"double between 0.0 and 100.0"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"filter processes with clouds less than or equal to this percentage"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"100")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"minCoverage"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"double between 0.0 and 100.0"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"filter processes with coverage greater than or equal to this percentage"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"0.0")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"status"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),'string "SUCCESS", "FAILED" or "STARTED"'),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"retrieve images with selected status"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"SUCCESS")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"page"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"integer"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"page being fetched"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"0")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"size"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"integer"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"how many processes (sets of all images) to return per page"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"20")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"provider"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"array of string"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"sentinel or/and planet"),Object(l.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"If none is defined, it will created with ",Object(l.b)("em",{parentName:"td"},"sentinel")," only")))),Object(l.b)("div",{className:"admonition admonition-info alert alert--info"},Object(l.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(l.b)("h5",{parentName:"div"},Object(l.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(l.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(l.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Important")),Object(l.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(l.b)("p",{parentName:"div"},"If you have just created the satellite field, it may take a moment time for the images to become available."))),Object(l.b)("h4",{id:"request-examples-2"},"Request examples"),Object(l.b)(r.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(l.b)(s.a,{value:"js",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nlet endpoint = 'https://api.withleaf.io/services/satellite/api' +\n '/fields/{id}/processes'\n\nconst params = { startDate: '2020-06-03', endDate: '2020-06-10' }\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers, params })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(l.b)(s.a,{value:"py",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = ('https://api.withleaf.io/services/satellite/api'\n '/fields/{id}/processes')\n\nparams = {'startDate': '2020-06-03', 'endDate': '2020-06-10'}\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers, params=params)\nprint(response.json())\n"))),Object(l.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n --header 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/satellite/api/fields/{id}/processes?startDate=2020-06-03&endDate=2020-06-10'\n")))),Object(l.b)("h4",{id:"response-2"},"Response"),Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": 0,\n "date": "2020-06-03T19:03:57.882Z",\n "clouds": 0, \n "provider": "sentinel",\n "bucketName": "sentinel-s2-l2a",\n "bucketKey": "tiles/10/S/FH/2020/6/3/0",\n "bucketRegion": "eu-central-1",\n "status": "SUCCESS",\n "coverage": 100,\n "images": [\n {\n "url": "URL",\n "downloadUrl": "URL",\n "type": "tif",\n "resolution": 20\n },\n ....\n ],\n "processedTimestamp": "2020-06-03T19:03:58.881731Z"\n },\n ....\n]\n')),Object(l.b)("ul",null,Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"date"),": the date of the satellite image"),Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"clouds"),": cloud coverage percentage of the field, from 0 to 100"),Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"provider"),": the satellite provider (sentinel or planet) from where this process was created."),Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"bucketName"),": name of satellite image bucket where the original tile is. Usually\n",Object(l.b)("inlineCode",{parentName:"li"},"sentinel-s2-l2a")," or ",Object(l.b)("inlineCode",{parentName:"li"},"leaf-planet-images-prd")),Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"bucketRegion"),": AWS region of original image's bucket. Usually ",Object(l.b)("inlineCode",{parentName:"li"},"eu-central-1")),Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"bucketKey"),": base path of original satellite image"),Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"status"),": status of the process. It will be either ",Object(l.b)("inlineCode",{parentName:"li"},"SUCCESS")," or ",Object(l.b)("inlineCode",{parentName:"li"},"FAILURE")),Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"coverage"),": data coverage percentage of the field, from 0 to 100"),Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"images"),": each image in this list will have the following data:",Object(l.b)("ul",{parentName:"li"},Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"url"),": URL of the image"),Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"downloadUrl"),": URL of the image"),Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"type"),": the type of the image. One of ",Object(l.b)("inlineCode",{parentName:"li"},"tif"),", ",Object(l.b)("inlineCode",{parentName:"li"},"ndvi"),", ",Object(l.b)("inlineCode",{parentName:"li"},"png")," and\n",Object(l.b)("inlineCode",{parentName:"li"},"tif_colorized")),Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"resolution"),": resolution, in meters, of the image. See table below"))),Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"processedTimestamp"),": the timestamp of when the process was processed")),Object(l.b)("h3",{id:"get-an-image-of-satellite-field"},"Get an image of satellite field"),Object(l.b)("p",null,"\xa0",Object(l.b)("span",{class:"badge badge--success"},"GET")," ",Object(l.b)("inlineCode",{parentName:"p"},"/fields/{id}/processes/{id}")),Object(l.b)("p",null,"Returns a single process for the field."),Object(l.b)("h4",{id:"request-examples-3"},"Request examples"),Object(l.b)(r.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(l.b)(s.a,{value:"js",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nlet endpoint = 'https://api.withleaf.io/services/satellite/api/fields/{id}/processes/{id}'\n\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(l.b)(s.a,{value:"py",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = ('https://api.withleaf.io/services/satellite/api/fields/{id}/processes/{id}')\n\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(l.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n --header 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/satellite/api/fields/{id}/processes/{id}'\n")))),Object(l.b)("h4",{id:"response-3"},"Response"),Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": 0,\n "date": "2020-06-03T19:03:57.882Z",\n "clouds": 0,\n "provider": "sentinel",\n "bucketName": "sentinel-s2-l2a",\n "bucketKey": "tiles/10/S/FH/2020/6/3/0",\n "bucketRegion": "eu-central-1",\n "status": "SUCCESS",\n "coverage": 100,\n "images": [\n {\n "url": "URL",\n "downloadUrl": "URL",\n "type": "tif",\n "resolution": 20\n },\n # etc...\n ],\n "processedTimestamp": "2020-06-03T19:03:58.881731Z"\n}\n')),Object(l.b)("h3",{id:"create-a-satellite-field"},"Create a satellite field"),Object(l.b)("p",null,"\xa0",Object(l.b)("span",{class:"badge badge--warning"},"POST")," ",Object(l.b)("inlineCode",{parentName:"p"},"/fields")),Object(l.b)("p",null,"Creates a new field."),Object(l.b)("p",null,"It will be continuously monitored forever, and new images will arrive based on the ",Object(l.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/crop_monitoring_overview#providers"}),"provider selected"),",\nbecause each one of them has a different temporal resolution (time it takes for the satellite to go over the same field when orbiting\nthe Earth). If you don't need the field anymore, you can\n",Object(l.b)("a",Object(n.a)({parentName:"p"},{href:"/docs/crop_monitoring_endpoints#delete-fieldsid"}),"delete the field.")),Object(l.b)("div",{className:"admonition admonition-success alert alert--success"},Object(l.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(l.b)("h5",{parentName:"div"},Object(l.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(l.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(l.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})))),"Note")),Object(l.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(l.b)("p",{parentName:"div"},"By default, Leaf will return images for your field from the last\n30 days (from the moment you create the field)."),Object(l.b)("p",{parentName:"div"},'You can change that by including a "startDate" or a "daysBefore" to the body'))),Object(l.b)("p",null,"There are two ways you can do that:"),Object(l.b)("ol",null,Object(l.b)("li",{parentName:"ol"},"set a ",Object(l.b)("inlineCode",{parentName:"li"},"startDate"),' (ISO, "yyyy-mm-dd") meaning Leaf will\nreturn all images for your field since this date. '),Object(l.b)("li",{parentName:"ol"},"set how many ",Object(l.b)("inlineCode",{parentName:"li"},"daysBefore")," (an integer greater than or equal to 0) you\nwant to get images from.")),Object(l.b)("p",null,"Note that they are both ",Object(l.b)("em",{parentName:"p"},"optional"),", but you can ",Object(l.b)("strong",{parentName:"p"},"not")," specify both."),Object(l.b)("p",null,"Now let's see the Payload"),Object(l.b)("h4",{id:"request-body"},"Request body"),Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "externalId": "yourSatelliteFieldId",\n "startDate": "2019-01-01", \n "providers": [\n "planet"\n ],\n "assetTypes": [\n "ortho_analytic_8b_sr"\n ],\n "geometry": {\n "type": "MultiPolygon",\n "coordinates": [...]\n }\n}\n')),Object(l.b)("ul",null,Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"externalId"),": external ID used in the field's registration."),Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"geometry"),": a valid ",Object(l.b)("a",Object(n.a)({parentName:"li"},{href:"https://tools.ietf.org/html/rfc7946#section-3.1.7"}),"MultiPolygon")," GeoJSON object with the geometry of the field."),Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"providers"),": Specify the satellite imagery source, if none is specified, Sentinel images will be retrived by default."),Object(l.b)("li",{parentName:"ul"},Object(l.b)("inlineCode",{parentName:"li"},"assetTypes"),": If the ",Object(l.b)("inlineCode",{parentName:"li"},"providers")," property contains ",Object(l.b)("inlineCode",{parentName:"li"},"planet")," you can select which ",Object(l.b)("inlineCode",{parentName:"li"},"assetType")," will be retrived, which can be ",Object(l.b)("strong",{parentName:"li"},"more than one"),". The available values are ",Object(l.b)("inlineCode",{parentName:"li"},"ortho_analytic_8b_sr"),", ",Object(l.b)("inlineCode",{parentName:"li"},"ortho_analytic_8b"),", ",Object(l.b)("inlineCode",{parentName:"li"},"ortho_analytic_8b_xml"),", and ",Object(l.b)("inlineCode",{parentName:"li"},"ortho_udm2"),". The default value is ",Object(l.b)("inlineCode",{parentName:"li"},"ortho_analytic_8b_sr"),".")),Object(l.b)("h4",{id:"request-examples-4"},"Request examples"),Object(l.b)(r.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(l.b)(s.a,{value:"js",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nlet endpoint = 'https://api.withleaf.io/services/satellite/api/fields'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = { /* Your payload */ }\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(l.b)(s.a,{value:"py",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/satellite/api/fields'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\npayload = {...} # Payload\n\nresponse = requests.post(endpoint, headers=headers, json=payload)\nprint(response.json())\n"))),Object(l.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Content-Type: application/json' \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -d '{ your payload }' \\\n 'https://api.withleaf.io/services/satellite/api/fields'\n")))),Object(l.b)("div",{className:"admonition admonition-info alert alert--info"},Object(l.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(l.b)("h5",{parentName:"div"},Object(l.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(l.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(l.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"field size limit")),Object(l.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(l.b)("ul",{parentName:"div"},Object(l.b)("li",{parentName:"ul"},"the field cannot be larger than 50k hectares (123k acres) and"),Object(l.b)("li",{parentName:"ul"},"cannot have a perimeter bigger than 300km (180 miles).")))),Object(l.b)("h4",{id:"sample-geometry"},"Sample geometry"),Object(l.b)("p",null,"If you are looking for a geometry for testing purposes you can use this one."),Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),'{\n "geometry": {\n "type": "MultiPolygon",\n "coordinates": [\n [[[ -48.95275447, -22.49608],\n [ -48.95379286, -22.49675703],\n [ -48.9591836, -22.50310243],\n [ -48.96225525, -22.5067235],\n [ -48.94852019, -22.50648371],\n [ -48.94780839, -22.49693998],\n [ -48.95275447, -22.49608]\n ]]]\n }\n}\n')),Object(l.b)("h3",{id:"delete-a-satellite-field"},"Delete a satellite field"),Object(l.b)("p",null,"\xa0",Object(l.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(l.b)("inlineCode",{parentName:"p"},"/fields/{id}")),Object(l.b)("p",null,"Deletes the field from our database."),Object(l.b)("div",{className:"admonition admonition-warning alert alert--danger"},Object(l.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(l.b)("h5",{parentName:"div"},Object(l.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(l.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(l.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})))),"warning")),Object(l.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(l.b)("p",{parentName:"div"},"Note that the field deletion is irreversible and all images will be lost."))),Object(l.b)("p",null,Object(l.b)("em",{parentName:"p"},"(But you can always create a new field and get images from the past, as far\nas you want).")),Object(l.b)("h4",{id:"request-examples-5"},"Request examples"),Object(l.b)(r.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(l.b)(s.a,{value:"js",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\n\nconst TOKEN = 'YOUR_TOKEN'\n\nconst client = axios.create({\n baseURL: 'https://api.withleaf.io',\n headers: {'Authorization': `Bearer ${TOKEN}`}\n})\n\nclient.delete('/fields/{id}')\n .then(res => console.log(res.statusCode))\n .catch(console.error)\n"))),Object(l.b)(s.a,{value:"py",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/satellite/api/fields/{id}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response)\n"))),Object(l.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/satellite/api/fields/{id}'\n")))),Object(l.b)("h3",{id:"get-subscription-for-planet"},"Get subscription for Planet"),Object(l.b)("p",null,"\xa0"," ",Object(l.b)("span",{class:"badge badge--success"},"GET")," ",Object(l.b)("inlineCode",{parentName:"p"},"/fields/{id}/subscription")),Object(l.b)("p",null,"Get the subscription from Planet. It returns the assetTypes, itemTypes and startDate for a field."),Object(l.b)("h4",{id:"request-examples-6"},"Request examples"),Object(l.b)(r.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(l.b)(s.a,{value:"js",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nlet endpoint = 'https://api.withleaf.io/services/satellite/api/fields/{id}/subscription'\n\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(l.b)(s.a,{value:"py",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = ('https://api.withleaf.io/services/satellite/api/fields/{id}/subscription')\n\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(l.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n --header 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/satellite/api/fields/{id}/subscription'\n")))),Object(l.b)("h4",{id:"response-4"},"Response"),Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "planetAssetTypes": [\n "ortho_analytic_8b_sr",\n "ortho_udm2"\n ],\n "planetItemTypes": [\n "PSScene"\n ],\n "startDate": "2023-04-09T00:00:00Z"\n}\n')),Object(l.b)("h3",{id:"reprocess-satellite-images"},"Reprocess satellite images"),Object(l.b)("p",null,"\xa0",Object(l.b)("span",{class:"badge badge--warning"},"POST")," ",Object(l.b)("inlineCode",{parentName:"p"},"/fields/{id}/process/{id}/reprocess")),Object(l.b)("p",null,"Allows reprocessing the satellite images based on a ",Object(l.b)("inlineCode",{parentName:"p"},"processId"),"."),Object(l.b)("h4",{id:"request-examples-7"},"Request examples"),Object(l.b)(r.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(l.b)(s.a,{value:"js",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/fields/{id}/process/{id}/reprocess'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.post(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(l.b)(s.a,{value:"py",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/fields/{id}/process/{id}/reprocess'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.post(endpoint, headers=headers)\nprint(response.json())\n"))),Object(l.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(l.b)("pre",null,Object(l.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/fields/{id}/process/{id}/reprocess'\n")))),Object(l.b)("h2",{id:"alerts"},"Alerts"),Object(l.b)("p",null,"With Alerts you can be notified when something happens or changes instead of needing to repeatedly query for changes.\nLeaf Alerts support events that happen within Leaf and events that happen within supported 3rd party software. "),Object(l.b)("h3",{id:"list-of-crop-monitoring-events"},"List of Crop Monitoring Events"),Object(l.b)("p",null,"Leaf Crop Monitoring Service can Alert you on these events: ",Object(l.b)("a",Object(n.a)({parentName:"p"},{href:"/docs/alerts_events#satellite-events"}),"list of Crop Monitoring Events")))}d.isMDXComponent=!0},153:function(e,t,a){"use strict";a.d(t,"a",(function(){return p})),a.d(t,"b",(function(){return O}));var n=a(0),i=a.n(n);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var c=i.a.createContext({}),o=function(e){var t=i.a.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},p=function(e){var t=o(e.components);return i.a.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},u=i.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,r=e.parentName,c=b(e,["components","mdxType","originalType","parentName"]),p=o(a),u=n,O=p["".concat(r,".").concat(u)]||p[u]||d[u]||l;return a?i.a.createElement(O,s(s({ref:t},c),{},{components:a})):i.a.createElement(O,s({ref:t},c))}));function O(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,r=new Array(l);r[0]=u;var s={};for(var b in t)hasOwnProperty.call(t,b)&&(s[b]=t[b]);s.originalType=e,s.mdxType="string"==typeof e?e:n,r[1]=s;for(var c=2;c0||b)&&r.a.createElement("footer",{className:"row margin-vert--lg"},w.length>0&&r.a.createElement("div",{className:"col"},r.a.createElement("strong",null,"Tags:"),w.map((function(e){var a=e.label,t=e.permalink;return r.a.createElement(o.a,{key:t,className:"margin-horiz--sm",to:t},a)}))),b&&r.a.createElement("div",{className:"col text--right"},r.a.createElement(o.a,{to:v.permalink,"aria-label":"Read more about "+j},r.a.createElement("strong",null,"Read More"))))))}}}]); \ No newline at end of file diff --git a/algolia.727ee415.js b/algolia.727ee415.js new file mode 100644 index 000000000..575016384 --- /dev/null +++ b/algolia.727ee415.js @@ -0,0 +1,11 @@ +exports.ids = [0]; +exports.modules = { + +/***/ 402: +/***/ (function(module, exports) { + + + +/***/ }) + +};; \ No newline at end of file diff --git a/algolia.8bc702d5.js b/algolia.8bc702d5.js new file mode 100644 index 000000000..76d615092 --- /dev/null +++ b/algolia.8bc702d5.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{168:function(n,w,o){}}]); \ No newline at end of file diff --git a/algolia.f375e564.css b/algolia.f375e564.css new file mode 100644 index 000000000..1e5b31f20 --- /dev/null +++ b/algolia.f375e564.css @@ -0,0 +1 @@ +.algolia-docsearch-suggestion{border-bottom-color:#3a3dd1}.algolia-docsearch-suggestion--category-header{background-color:#4b54de}.algolia-docsearch-suggestion--highlight{color:#3a33d1}.algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight{background-color:#4d47d5}.aa-cursor .algolia-docsearch-suggestion--content{color:#272296}.aa-cursor .algolia-docsearch-suggestion{background:#ebebfb}@media (min-width:768px){.algolia-docsearch-suggestion{border-bottom-color:#7671df}.algolia-docsearch-suggestion--subcategory-column{border-right-color:#7671df;color:#4e4726}}.searchbox{display:inline-block;position:relative;width:200px;height:32px!important;white-space:nowrap;box-sizing:border-box;visibility:visible!important}.searchbox .algolia-autocomplete{display:block;width:100%;height:100%}.searchbox__wrapper{width:100%;height:100%;z-index:999;position:relative}.searchbox__input{display:inline-block;box-sizing:border-box;transition:box-shadow .4s ease,background .4s ease;border:0;border-radius:16px;box-shadow:inset 0 0 0 1px #ccc;background:#fff!important;padding:0 26px 0 32px;width:100%;height:100%;vertical-align:middle;white-space:normal;font-size:12px;-webkit-appearance:none;appearance:none}.searchbox__input::-webkit-search-cancel-button,.searchbox__input::-webkit-search-decoration,.searchbox__input::-webkit-search-results-button,.searchbox__input::-webkit-search-results-decoration{display:none}.searchbox__input:hover{box-shadow:inset 0 0 0 1px #b3b3b3}.searchbox__input:active,.searchbox__input:focus{outline:0;box-shadow:inset 0 0 0 1px #aaa;background:#fff}.searchbox__input::-webkit-input-placeholder{color:#aaa}.searchbox__input:-ms-input-placeholder{color:#aaa}.searchbox__input::placeholder{color:#aaa}.searchbox__submit{position:absolute;top:0;margin:0;border:0;border-radius:16px 0 0 16px;background-color:rgba(69,142,225,0);padding:0;width:32px;height:100%;vertical-align:middle;text-align:center;font-size:inherit;-webkit-user-select:none;-ms-user-select:none;user-select:none;right:inherit;left:0}.searchbox__submit:before{display:inline-block;margin-right:-4px;height:100%;vertical-align:middle;content:""}.searchbox__submit:active,.searchbox__submit:hover{cursor:pointer}.searchbox__submit:focus{outline:0}.searchbox__submit svg{width:14px;height:14px;vertical-align:middle;fill:#6d7e96}.searchbox__reset{display:block;position:absolute;top:8px;right:8px;margin:0;border:0;background:none;cursor:pointer;padding:0;font-size:inherit;-webkit-user-select:none;-ms-user-select:none;user-select:none;fill:rgba(0,0,0,.5)}.searchbox__reset.hide{display:none}.searchbox__reset:focus{outline:0}.searchbox__reset svg{display:block;margin:4px;width:8px;height:8px}.searchbox__input:valid~.searchbox__reset{display:block;-webkit-animation-name:sbx-reset-in;animation-name:sbx-reset-in;-webkit-animation-duration:.15s;animation-duration:.15s}@-webkit-keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}.algolia-autocomplete .ds-dropdown-menu:before{display:block;position:absolute;content:"";width:14px;height:14px;background:#373940;z-index:1000;top:-7px;border-top:1px solid #373940;border-right:1px solid #373940;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);border-radius:2px}.algolia-autocomplete .ds-dropdown-menu{box-shadow:0 1px 0 0 rgba(0,0,0,.2),0 2px 3px 0 rgba(0,0,0,.1)}@media (min-width:601px){.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu{right:0!important;left:inherit!important}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before{right:48px}.algolia-autocomplete .ds-dropdown-menu{top:-6px;border-radius:4px;margin:6px 0 0;padding:0;text-align:left;height:auto;position:relative;background:transparent;border:none;z-index:999;max-width:600px;min-width:500px}}@media (max-width:600px){.algolia-autocomplete .ds-dropdown-menu{z-index:100;position:fixed!important;top:50px!important;left:auto!important;right:1rem!important;width:600px;max-width:calc(100% - 2rem);max-height:calc(100% - 5rem);display:block}.algolia-autocomplete .ds-dropdown-menu:before{right:6rem}}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{position:relative;z-index:1000}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion{cursor:pointer}.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{position:relative;border-radius:4px;overflow:auto;padding:0;background:#fff}.algolia-autocomplete .ds-dropdown-menu *{box-sizing:border-box}.algolia-autocomplete .algolia-docsearch-suggestion{display:block;position:relative;padding:0;overflow:hidden;text-decoration:none}.algolia-autocomplete .ds-cursor .algolia-docsearch-suggestion--wrapper{background:#f1f1f1;box-shadow:inset -2px 0 0 #61dafb}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{background:#ffe564;padding:.1em .05em}.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight{color:inherit;background:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{padding:0 0 1px;background:inherit;box-shadow:inset 0 -2px 0 0 rgba(69,142,225,.8);color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--content{display:block;float:right;width:70%;position:relative;padding:5.33333px 0 5.33333px 10.66667px;cursor:pointer}.algolia-autocomplete .algolia-docsearch-suggestion--content:before{content:"";position:absolute;display:block;top:0;height:100%;width:1px;background:#ececec;left:-1px}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{position:relative;display:none;font-size:14px;letter-spacing:.08em;font-weight:700;background-color:#373940;text-transform:uppercase;color:#fff;margin:0;padding:5px 8px}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{background-color:#fff;width:100%;float:left;padding:8px 0 0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:left;width:30%;display:none;text-align:right;position:relative;padding:5.33333px 10.66667px;color:#777;font-size:.9em;word-wrap:break-word}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before{content:"";position:absolute;display:block;top:0;height:100%;width:1px;background:#ececec;right:0}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header,.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary{display:block}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column .algolia-docsearch-suggestion--highlight{background-color:inherit;color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:none}.algolia-autocomplete .algolia-docsearch-suggestion--title{margin-bottom:4px;color:#02060c;font-size:.9em;font-weight:700}.algolia-autocomplete .algolia-docsearch-suggestion--text{display:block;line-height:1.2em;font-size:.85em;color:#63676d;padding-right:2px}.algolia-autocomplete .algolia-docsearch-suggestion--no-results{width:100%;padding:8px 0;text-align:center;font-size:1.2em;background-color:#373940;margin-top:-8px}.algolia-autocomplete .algolia-docsearch-suggestion--no-results .algolia-docsearch-suggestion--text{color:#fff;margin-top:4px}.algolia-autocomplete .algolia-docsearch-suggestion--no-results:before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion code{padding:1px 5px;font-size:90%;border:none;color:#222;background-color:#ebebeb;border-radius:3px;font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.algolia-autocomplete .algolia-docsearch-suggestion code .algolia-docsearch-suggestion--highlight{background:none}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header{color:#fff;display:block}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary .algolia-docsearch-suggestion--subcategory-column{display:block}.algolia-autocomplete .algolia-docsearch-footer{background-color:#fff;width:100%;height:30px;z-index:2000;float:right;font-size:0;line-height:0}.algolia-autocomplete .algolia-docsearch-footer--logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 130 18'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath fill='url(%2523a)' d='M59.4.02h13.3a2.37 2.37 0 012.38 2.37V15.6a2.37 2.37 0 01-2.38 2.36H59.4a2.37 2.37 0 01-2.38-2.36V2.38A2.37 2.37 0 0159.4.02z'/%3E%3Cpath fill='%2523FFF' d='M66.26 4.56c-2.82 0-5.1 2.27-5.1 5.08 0 2.8 2.28 5.07 5.1 5.07 2.8 0 5.1-2.26 5.1-5.07 0-2.8-2.28-5.07-5.1-5.07zm0 8.65c-2 0-3.6-1.6-3.6-3.56 0-1.97 1.6-3.58 3.6-3.58 1.98 0 3.6 1.6 3.6 3.58a3.58 3.58 0 01-3.6 3.57zm0-6.4v2.66c0 .07.08.13.15.1l2.4-1.24c.04-.02.06-.1.03-.14a2.96 2.96 0 00-2.46-1.5.1.1 0 00-.1.1zm-3.33-1.96l-.3-.3a.78.78 0 00-1.12 0l-.36.36a.77.77 0 000 1.1l.3.3c.05.05.13.04.17 0 .2-.25.4-.5.6-.7.23-.23.46-.43.7-.6.07-.04.07-.1.03-.16zm5-.8V3.4a.78.78 0 00-.78-.78h-1.83a.78.78 0 00-.78.78v.63c0 .07.06.12.14.1a5.74 5.74 0 011.58-.22c.52 0 1.04.07 1.54.2a.1.1 0 00.13-.1z'/%3E%3Cpath fill='%2523182359' d='M102.16 13.76c0 1.46-.37 2.52-1.12 3.2-.75.67-1.9 1-3.44 1-.56 0-1.74-.1-2.67-.3l.34-1.7c.78.17 1.82.2 2.36.2.86 0 1.48-.16 1.84-.5.37-.36.55-.88.55-1.57v-.35a6.37 6.37 0 01-.84.3 4.15 4.15 0 01-1.2.17 4.5 4.5 0 01-1.6-.28 3.38 3.38 0 01-1.26-.82 3.74 3.74 0 01-.8-1.35c-.2-.54-.3-1.5-.3-2.2 0-.67.1-1.5.3-2.06a3.92 3.92 0 01.9-1.43 4.12 4.12 0 011.45-.92 5.3 5.3 0 011.94-.37c.7 0 1.35.1 1.97.2a15.86 15.86 0 011.6.33v8.46zm-5.95-4.2c0 .9.2 1.88.6 2.3.4.4.9.62 1.53.62.34 0 .66-.05.96-.15a2.75 2.75 0 00.73-.33V6.7a8.53 8.53 0 00-1.42-.17c-.76-.02-1.36.3-1.77.8-.4.5-.62 1.4-.62 2.23zm16.13 0c0 .72-.1 1.26-.32 1.85a4.4 4.4 0 01-.9 1.53c-.38.42-.85.75-1.4.98-.54.24-1.4.37-1.8.37-.43 0-1.27-.13-1.8-.36a4.1 4.1 0 01-1.4-.97 4.5 4.5 0 01-.92-1.52 5.04 5.04 0 01-.33-1.84c0-.72.1-1.4.32-2 .22-.6.53-1.1.92-1.5.4-.43.86-.75 1.4-.98a4.55 4.55 0 011.78-.34 4.7 4.7 0 011.8.34c.54.23 1 .55 1.4.97.38.42.68.92.9 1.5.23.6.35 1.3.35 2zm-2.2 0c0-.92-.2-1.7-.6-2.22-.38-.54-.94-.8-1.64-.8-.72 0-1.27.26-1.67.8-.4.54-.58 1.3-.58 2.22 0 .93.2 1.56.6 2.1.38.54.94.8 1.64.8s1.25-.26 1.65-.8c.4-.55.6-1.17.6-2.1zm6.97 4.7c-3.5.02-3.5-2.8-3.5-3.27L113.57.92l2.15-.34v10c0 .25 0 1.87 1.37 1.88v1.8zm3.77 0h-2.15v-9.2l2.15-.33v9.54zM119.8 3.74c.7 0 1.3-.58 1.3-1.3 0-.7-.58-1.3-1.3-1.3-.73 0-1.3.6-1.3 1.3 0 .72.58 1.3 1.3 1.3zm6.43 1c.7 0 1.3.1 1.78.27.5.18.88.42 1.17.73.28.3.5.74.6 1.18.13.46.2.95.2 1.5v5.47a25.24 25.24 0 01-1.5.25c-.67.1-1.42.15-2.25.15a6.83 6.83 0 01-1.52-.16 3.2 3.2 0 01-1.18-.5 2.46 2.46 0 01-.76-.9c-.18-.37-.27-.9-.27-1.44 0-.52.1-.85.3-1.2.2-.37.48-.67.83-.9a3.6 3.6 0 011.23-.5 7.07 7.07 0 012.2-.1l.83.16V8.4c0-.25-.03-.48-.1-.7a1.5 1.5 0 00-.3-.58c-.15-.18-.34-.3-.58-.4a2.54 2.54 0 00-.92-.17c-.5 0-.94.06-1.35.13-.4.08-.75.16-1 .25l-.27-1.74c.27-.1.67-.18 1.2-.28a9.34 9.34 0 011.65-.14zm.18 7.74c.66 0 1.15-.04 1.5-.1V10.2a5.1 5.1 0 00-2-.1c-.23.03-.45.1-.64.2a1.17 1.17 0 00-.47.38c-.13.17-.18.26-.18.52 0 .5.17.8.5.98.32.2.74.3 1.3.3zM84.1 4.8c.72 0 1.3.08 1.8.26.48.17.87.42 1.15.73.3.3.5.72.6 1.17.14.45.2.94.2 1.47v5.48a25.24 25.24 0 01-1.5.26c-.67.1-1.42.14-2.25.14a6.83 6.83 0 01-1.52-.16 3.2 3.2 0 01-1.18-.5 2.46 2.46 0 01-.76-.9c-.18-.38-.27-.9-.27-1.44 0-.53.1-.86.3-1.22.2-.36.5-.65.84-.88a3.6 3.6 0 011.24-.5 7.07 7.07 0 012.2-.1c.26.03.54.08.84.15v-.35c0-.24-.03-.48-.1-.7a1.5 1.5 0 00-.3-.58c-.15-.17-.34-.3-.58-.4a2.54 2.54 0 00-.9-.15c-.5 0-.96.05-1.37.12-.4.07-.75.15-1 .24l-.26-1.75c.27-.08.67-.17 1.18-.26a8.9 8.9 0 011.66-.15zm.2 7.73c.65 0 1.14-.04 1.48-.1v-2.17a5.1 5.1 0 00-1.98-.1c-.24.03-.46.1-.65.18a1.17 1.17 0 00-.47.4c-.12.17-.17.26-.17.52 0 .5.18.8.5.98.32.2.75.3 1.3.3zm8.68 1.74c-3.5 0-3.5-2.82-3.5-3.28L89.45.92 91.6.6v10c0 .25 0 1.87 1.38 1.88v1.8z'/%3E%3Cpath fill='%25231D3657' d='M5.03 11.03c0 .7-.26 1.24-.76 1.64-.5.4-1.2.6-2.1.6-.88 0-1.6-.14-2.17-.42v-1.2c.36.16.74.3 1.14.38.4.1.78.15 1.13.15.5 0 .88-.1 1.12-.3a.94.94 0 00.35-.77.98.98 0 00-.33-.74c-.22-.2-.68-.44-1.37-.72-.72-.3-1.22-.62-1.52-1C.23 8.27.1 7.82.1 7.3c0-.65.22-1.17.7-1.55.46-.37 1.08-.56 1.86-.56.76 0 1.5.16 2.25.48l-.4 1.05c-.7-.3-1.32-.44-1.87-.44-.4 0-.73.08-.94.26a.9.9 0 00-.33.72c0 .2.04.38.12.52.08.15.22.3.42.4.2.14.55.3 1.06.52.58.24 1 .47 1.27.67.27.2.47.44.6.7.12.26.18.57.18.92zM9 13.27c-.92 0-1.64-.27-2.16-.8-.52-.55-.78-1.3-.78-2.24 0-.97.24-1.73.72-2.3.5-.54 1.15-.82 2-.82.78 0 1.4.25 1.85.72.46.48.7 1.14.7 1.97v.67H7.35c0 .58.17 1.02.46 1.33.3.3.7.47 1.24.47.36 0 .68-.04.98-.1a5.1 5.1 0 00.98-.33v1.02a3.87 3.87 0 01-.94.32 5.72 5.72 0 01-1.08.1zm-.22-5.2c-.4 0-.73.12-.97.38s-.37.62-.42 1.1h2.7c0-.48-.13-.85-.36-1.1-.23-.26-.54-.38-.94-.38zm7.7 5.1l-.26-.84h-.05c-.28.36-.57.6-.86.74-.28.13-.65.2-1.1.2-.6 0-1.05-.16-1.38-.48-.32-.32-.5-.77-.5-1.34 0-.62.24-1.08.7-1.4.45-.3 1.14-.47 2.07-.5l1.02-.03V9.2c0-.37-.1-.65-.27-.84-.17-.2-.45-.28-.82-.28-.3 0-.6.04-.88.13a6.68 6.68 0 00-.8.33l-.4-.9a4.4 4.4 0 011.05-.4 4.86 4.86 0 011.08-.12c.76 0 1.33.18 1.7.5.4.33.6.85.6 1.56v4h-.9zm-1.9-.87c.47 0 .83-.13 1.1-.38.3-.26.43-.62.43-1.08v-.52l-.76.03c-.6.03-1.02.13-1.3.3s-.4.45-.4.82c0 .26.08.47.24.6.16.16.4.23.7.23zm7.57-5.2c.25 0 .46.03.62.06l-.12 1.18a2.38 2.38 0 00-.56-.06c-.5 0-.92.16-1.24.5-.3.32-.47.75-.47 1.27v3.1h-1.27V7.23h1l.16 1.05h.05c.2-.36.45-.64.77-.85a1.83 1.83 0 011.02-.3zm4.12 6.17c-.9 0-1.58-.27-2.05-.8-.47-.52-.7-1.27-.7-2.25 0-1 .24-1.77.73-2.3.5-.54 1.2-.8 2.12-.8.63 0 1.2.1 1.7.34l-.4 1c-.52-.2-.96-.3-1.3-.3-1.04 0-1.55.68-1.55 2.05 0 .67.13 1.17.38 1.5.26.34.64.5 1.13.5a3.23 3.23 0 001.6-.4v1.1a2.53 2.53 0 01-.73.28 4.36 4.36 0 01-.93.08zm8.28-.1h-1.27V9.5c0-.45-.1-.8-.28-1.02-.18-.23-.47-.34-.88-.34-.53 0-.9.16-1.16.48-.25.3-.38.85-.38 1.6v2.94h-1.26V4.8h1.26v2.12c0 .34-.02.7-.06 1.1h.08a1.76 1.76 0 01.72-.67c.3-.16.66-.24 1.07-.24 1.43 0 2.15.74 2.15 2.2v3.86zM42.2 7.1c.74 0 1.32.28 1.73.82.4.53.62 1.3.62 2.26 0 .97-.2 1.73-.63 2.27-.42.54-1 .82-1.75.82s-1.33-.27-1.75-.8h-.08l-.23.7h-.94V4.8h1.26v2l-.02.64-.03.56h.05c.4-.6 1-.9 1.78-.9zm-.33 1.04c-.5 0-.88.15-1.1.45-.22.3-.34.8-.35 1.5v.08c0 .72.12 1.24.35 1.57.23.32.6.48 1.12.48.44 0 .78-.17 1-.53.24-.35.36-.87.36-1.53 0-1.35-.47-2.03-1.4-2.03zm3.24-.92h1.4l1.2 3.37c.18.47.3.92.36 1.34h.04l.18-.72 1.37-4H51l-2.53 6.73c-.46 1.23-1.23 1.85-2.3 1.85-.3 0-.56-.03-.83-.1v-1c.2.05.4.08.65.08.6 0 1.03-.36 1.28-1.06l.22-.56-2.4-5.94z'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-position:50%;background-size:100%;overflow:hidden;text-indent:-9000px;width:110px;height:100%;display:block;margin-left:auto;margin-right:5px} \ No newline at end of file diff --git a/b040a816.1aa1828d.js b/b040a816.1aa1828d.js new file mode 100644 index 000000000..162d41404 --- /dev/null +++ b/b040a816.1aa1828d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{117:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return i})),n.d(t,"metadata",(function(){return c})),n.d(t,"rightToc",(function(){return u})),n.d(t,"default",(function(){return l}));var r=n(2),a=n(6),o=(n(0),n(153)),i=(n(160),n(161),n(155),{title:"Beta > Machines Endpoints",description:"Beta - Machines Endpoints"}),c={unversionedId:"beta_machines_endpoints",id:"beta_machines_endpoints",isDocsHomePage:!1,title:"Beta > Machines Endpoints",description:"Beta - Machines Endpoints",source:"@site/docs/beta_machines_endpoints.md",permalink:"/docs/docs/beta_machines_endpoints",editUrl:"https://github.com/Leaf-Agriculture/docs/tree/master/docs/beta_machines_endpoints.md"},u=[],s={rightToc:u};function l(e){var t=e.components,n=Object(a.a)(e,["components"]);return Object(o.b)("wrapper",Object(r.a)({},s,n,{components:t,mdxType:"MDXLayout"}),Object(o.b)("div",{className:"admonition admonition-caution alert alert--warning"},Object(o.b)("div",Object(r.a)({parentName:"div"},{className:"admonition-heading"}),Object(o.b)("h5",{parentName:"div"},Object(o.b)("span",Object(r.a)({parentName:"h5"},{className:"admonition-icon"}),Object(o.b)("svg",Object(r.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16"}),Object(o.b)("path",Object(r.a)({parentName:"svg"},{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})))),"Documentation update!")),Object(o.b)("div",Object(r.a)({parentName:"div"},{className:"admonition-content"}),Object(o.b)("p",{parentName:"div"},"We are updating our documentation and this page was moved to ",Object(o.b)("a",Object(r.a)({parentName:"p"},{href:"/docs/beta_assets_endpoints"}),"here"),"."))))}l.isMDXComponent=!0},153:function(e,t,n){"use strict";n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return b}));var r=n(0),a=n.n(r);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=a.a.createContext({}),l=function(e){var t=a.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},f=function(e){var t=l(e.components);return a.a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},p=a.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),f=l(n),p=r,b=f["".concat(i,".").concat(p)]||f[p]||d[p]||o;return n?a.a.createElement(b,c(c({ref:t},s),{},{components:n})):a.a.createElement(b,c({ref:t},s))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=p;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var s=2;s console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(l.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials'\n")))),Object(s.b)("h4",{id:"response"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "tokenMetadata": {"scopes": ["str"]},\n "clientId": "str",\n "clientSecret": "str",\n "accessToken": "str",\n "refreshToken": "str"\n}\n')),Object(s.b)("h3",{id:"create-a-trimble-credentials"},"Create a Trimble credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/trimble-credentials")),Object(s.b)("p",null,"Create a Trimble credentials for the Leaf User."),Object(s.b)("h4",{id:"request-body"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "clientId": "str",\n "clientSecret": "str",\n "refreshToken": "str"\n}\n')),Object(s.b)("h4",{id:"request-examples-1"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(l.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "clientId": "str",\n "clientSecret": "str",\n "refreshToken": "str"\n}\n\naxios.post(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(s.b)(l.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n\ndata = {\n "clientId": "str",\n "clientSecret": "str",\n "refreshToken": "str"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(s.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{"clientId": "str","clientSecret": "str","refreshToken": "str"}\'\n \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials\'\n')))),Object(s.b)("h4",{id:"response-1"},"Response"),Object(s.b)("p",null,"A Trimble credentials with status."),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "tokenMetadata": {"scopes": ["str"]},\n "clientKey": "str",\n "clientSecret": "str",\n "accessToken": "str",\n "refreshToken": "str",\n "clientEnvironment": "STAGE or PRODUCTION"\n}\n')),Object(s.b)("h3",{id:"delete-trimble-credentials"},"Delete Trimble credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/trimble-credentials")," "),Object(s.b)("p",null,"Delete Leaf User's Trimble credentials."),Object(s.b)("h4",{id:"request-examples-2"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(l.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(l.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials'\n")))),Object(s.b)("h2",{id:"troubleshooting"},"Troubleshooting"),Object(s.b)("p",null,"With these endpoints, you can do some troubleshooting to see your credential's health."),Object(s.b)("h3",{id:"events"},"Events"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/trimble-credentials/events")),Object(s.b)("p",null,"Get the logs of the provider credential based on the LeafUserId sent."),Object(s.b)("h4",{id:"request-examples-3"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(l.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials/events'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(l.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials/events'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}\n /trimble-credentials/events'\n")))),Object(s.b)("h4",{id:"response-2"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "body": "str",\n "createdDate": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "headers": "str",\n "id": "str",\n "statusCode": "int"\n }\n]\n')),Object(s.b)("div",{className:"admonition admonition-warning alert alert--danger"},Object(s.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(s.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})))),"warning")),Object(s.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available."))))}u.isMDXComponent=!0},153:function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return m}));var a=n(0),r=n.n(a);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=r.a.createContext({}),b=function(e){var t=r.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=b(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},p=r.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,i=e.parentName,o=c(e,["components","mdxType","originalType","parentName"]),d=b(n),p=a,m=d["".concat(i,".").concat(p)]||d[p]||u[p]||s;return n?r.a.createElement(m,l(l({ref:t},o),{},{components:n})):r.a.createElement(m,l({ref:t},o))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,i=new Array(s);i[0]=p;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var o=2;o {\n // Comes from the frontend form\n let email = req.body.email.trim();\n let passwd = req.body.password.trim();\n\n // Leaf API endpoint\n let endpoint = "https://api.withleaf.io/api/authenticate";\n\n // Data to post to endpoint\n let data = {\n username: email,\n password: passwd,\n rememberMe: "true"\n };\n\n axios\n .post(endpoint, data)\n .then(function (response) {\n // Save the token in the token variable\n token = response.data["id_token"];\n // Return ok and the token to the frontend request\n res.json({ message: "Congrats! Login done!", token: token });\n })\n .catch((error) => {\n if (error.response.data.status === 400) {\n // If something wrong happens, returns login failed.\n res.json({ message: "Oops! Login failed!", token: "" });\n } else if (error.response.data.status === 401) {\n // If the credentials are wrong, returns that.\n res.json({ message: "Oops! Invalid credentials!", token: "" });\n }\n });\n});\n')),Object(o.b)("p",null,Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"//authentication"}),"Here")," you can see the Authentication documentation."),Object(o.b)("h4",{id:"route-monitored_fields"},"Route '/monitored_fields'"),Object(o.b)("p",null,"In this route, we will be able to retrieve all our satellite monitored fields. First we verify if the front-end request is sending a token in the Authorization header, if yes, we do a ",Object(o.b)("inlineCode",{parentName:"p"},"GET")," request with AXIOS to the Leaf API endpoint responsible to give us that information and then we return it to the frontend."),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'app.get("/monitored_fields", (req, res) => {\n if (!req.header("authorization")) {\n res.json("Invalid token, generate one first!");\n } else {\n let token = req.header("authorization");\n let endpoint = "https://api.withleaf.io/services/satellite/api/fields";\n let headers = { Authorization: `Bearer ` + token };\n\n axios\n .get(endpoint, { headers })\n .then(function (response) {\n res.json(response.data);\n })\n .catch(function (error) {\n res.json("Something wrong happend during the request!");\n });\n }\n});\n')),Object(o.b)("h4",{id:"route-field_images"},"Route '/field_images'"),Object(o.b)("p",null,"In this route, we will retrieve all the images from one satellite monitored field. In the first step, we will do a ",Object(o.b)("inlineCode",{parentName:"p"},"GET")," request with AXIOS to the Leaf API endpoint that will return to us the information about the field selected, with this endpoint, we can get the field coordinates and send to the frontend, so we can plot the images in the right point of the map. In the second step, we will do a ",Object(o.b)("inlineCode",{parentName:"p"},"GET")," request with AXIOS to the Leaf API endpoint that is responsible to return the images about the field selected, after receiving the images, we will sort them by the date, and we will save in another array just the images that are of the type ",Object(o.b)("inlineCode",{parentName:"p"},"NDVI_RELATIVE")," or ",Object(o.b)("inlineCode",{parentName:"p"},"RGB"),", that are the ones we are interested now."),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'app.post("/field_images", (req, res) => {\n if (!req.header("authorization")) {\n res.json("Invalid token, generate one first!");\n } else {\n // This comes from the frontend form.\n let field_id = req.body.id;\n let startDate = req.body.startDate;\n let endDate = req.body.endDate;\n\n let endpoint =\n "https://api.withleaf.io/services/satellite/api/fields/" + field_id;\n let headers = { Authorization: `Bearer ` + token };\n\n let field_geometry;\n\n // First step\n axios\n .get(endpoint, { headers })\n .then(function (response) {\n if (response.data <= 0) {\n res.json("No images were found for the time and field selected");\n } else {\n // Get the field coordinates\n field_geometry = response.data.geometry.coordinates;\n\n endpoint =\n "https://api.withleaf.io/services/satellite/api" +\n "/fields/" +\n field_id +\n "/processes";\n\n let params = { startDate: startDate, endDate: endDate };\n headers = { Authorization: `Bearer ` + token };\n\n // Second step\n axios\n .get(endpoint, { headers, params })\n .then(async function (response) {\n let data_obj = [];\n data_obj = response.data;\n if (data_obj.length > 0) {\n // Here we are creating an Date Object with the date string that comes\n // from the API return, so we can sort the days by the date.\n data_obj.forEach((e) => {\n e.date = new Date(e.date);\n });\n\n // Sorting the days by the dates.\n let sorted_days = data_obj.sort(\n (objA, objB) => Number(objB.date) - Number(objA.date)\n );\n\n // This is the variable that we will fill and return in the request.\n let providerPNG = [];\n\n sorted_days.forEach((e) => {\n // Checking if the clouds coverage of that image is less than 80%.\n if (e.clouds < 80) {\n let day = {\n id: e.id,\n date: e.date,\n clouds: e.clouds,\n coverage: e.coverage,\n provider: e.provider,\n images: [],\n };\n // For each image of each day, we will check if the image is of\n // the type \'NDVI_RELATIVE\' or \'RGB\', if yes, we push it to the\n // providerPNG array.\n e.images.forEach((f) => {\n if (\n f.type === "png" &&\n (f.url.includes("NDVI_relative.png") ||\n f.url.includes("RGB.png"))\n ) {\n day.images.push(f);\n }\n });\n providerPNG.push(day);\n }\n });\n\n // Checking if the length of providerPNG is greater then 0, if yes,\n // return the images and the field geometry.\n if (providerPNG.length > 0) {\n res.json({ geometry: field_geometry, images: providerPNG });\n } else {\n res.json(\n "No images were found for the time and field selected"\n );\n }\n } else {\n res.json(\n "No images were found for the time and field selected"\n );\n }\n })\n .catch(console.error);\n }\n })\n .catch(console.error);\n }\n});\n')),Object(o.b)("p",null,Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"/docs/crop_monitoring_endpoints#get-images-of-satellite-field"}),"Here")," you can see the Satellite documentation."),Object(o.b)("h4",{id:"route-create_field"},"Route '/create_field'"),Object(o.b)("p",null,"In this route, we will receive data from the frontend and make a ",Object(o.b)("inlineCode",{parentName:"p"},"POST")," request with AXIOS to the Leaf API endpoint responsible for creating satellite monitored fields. Before trying to reach the Leaf API endpoint, we need to verify if the GEOJSON that comes from the frontend is valid, so we will not make irregular post requests to the endpoint.\nYou can check ",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://geojson.org/"}),"here")," more info about GEOJSON."),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'app.post("/create_field", (req, res) => {\n if (!req.header("authorization")) {\n res.json("You have to login first!");\n } else {\n // This comes from the frontend form.\n let field_name = req.body.field_name;\n let boundery_type = req.body.boundery_type;\n let field_boundery = req.body.field_boundery;\n let days_before = req.body.days_before;\n\n // A function to try to parse the form geojson data to a object.\n function isJsonString(str) {\n try {\n field_boundery = JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n }\n\n if (!isJsonString(field_boundery)) {\n res.json(\n "Error during compiling your geojson, try again with valid data."\n );\n } else {\n let endpoint = "https://api.withleaf.io/services/satellite/api/fields";\n let headers = { Authorization: `Bearer ` + token };\n\n // Define the DATA object that we will send in the POST request to\n // Leaf API endpoint.\n const data = {\n externalId: field_name,\n daysBefore: days_before,\n providers: [],\n geometry: {\n type: boundery_type,\n coordinates: [field_boundery],\n },\n };\n\n // Here is the AXIOS post, we will return \'Field created\' if everything\n // was ok with the data and the field was created. If something is wrong\n // we return the message \'Something wrong happened, verify your data and\n // try again!\'\n axios\n .post(endpoint, data, { headers })\n .then(function (response) {\n res.json("Field created");\n })\n .catch(function (error) {\n console.log(error);\n res.json("Something wrong happened, verify your data and try again!");\n });\n }\n }\n});\n')),Object(o.b)("p",null,Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"/docs/crop_monitoring_endpoints#create-a-satellite-field"}),"Here")," you can see the Satellite documentation."),Object(o.b)("h3",{id:"start-the-server"},"Start the server"),Object(o.b)("p",null,"For the last part, we need to start our server, and make the front-end!"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'app.listen(3000, async () => {\n console.log("Server started!");\n});\n')),Object(o.b)("h2",{id:"frontend"},"Frontend"),Object(o.b)("p",null,"In the frontend, we will use the Angular Framework!\nIt's important to say that we will use the ",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://leafletjs.com/"}),"LeafletJS")," to display the map and images on it."),Object(o.b)("h3",{id:"creating-the-project"},"Creating the project"),Object(o.b)("p",null,"To create our project, we can use this command from angular ",Object(o.b)("inlineCode",{parentName:"p"},"ng new "),". This command will ask some questions about the project and them create all the files and folder structure to our project."),Object(o.b)("h3",{id:"creating-the-component"},"Creating the component"),Object(o.b)("p",null,"After doing this step, we will need to create our ",Object(o.b)("inlineCode",{parentName:"p"},"Map Component"),", to do this you can use also this command from angular: ",Object(o.b)("inlineCode",{parentName:"p"},"ng generate component "),", this will generate 3 files for your component: The CSS File for your component, the HTML file, and the TS file, where the logic will be."),Object(o.b)("p",null,"In our HTML we will have three simple forms to get the information that we need, and with that information we will proccess and send to our service, that will communicate with our API, e will have one ",Object(o.b)("inlineCode",{parentName:"p"},"
")," that will contain our map, and our sidebar."),Object(o.b)("h3",{id:"creating-the-service"},"Creating the service"),Object(o.b)("p",null,"To create our service that will communicate with our API, we will use the command ",Object(o.b)("inlineCode",{parentName:"p"},"ng generate service "),", this will generate the file responsible."),Object(o.b)("p",null,"In the next steps, it will be demonstrated how to do every step until we show the images in the map."),Object(o.b)("h3",{id:"main-functions"},"Main functions"),Object(o.b)("h4",{id:"initializing-the-forms-and-the-map"},"Initializing the forms and the map"),Object(o.b)("p",null,"This is our function that will be called automatically by angular when the page is started, it initializes the map with the sidebar in the function ",Object(o.b)("inlineCode",{parentName:"p"},"initMap()")," and also initialize the forms that we need. Don't forget that you need to set the GETTERS and SETTERS for each attribute defined below, so you can retrieve and change the value."),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"ngOnInit(): void {\n this.initMap();\n localStorage.removeItem('token');\n this.loginForm = new FormGroup({\n email: new FormControl(''),\n password: new FormControl(''),\n });\n this.searchImagesForm = new FormGroup({\n fieldId: new FormControl(''),\n startDate: new FormControl(''),\n endDate: new FormControl(''),\n });\n this.createFieldForm = new FormGroup({\n fieldId: new FormControl(''),\n daysBefore: new FormControl(''),\n bounderyType: new FormControl(''),\n fieldBoundery: new FormControl(''),\n provider: new FormControl(''),\n });\n }\n")),Object(o.b)("h4",{id:"login"},"Login"),Object(o.b)("p",null,"This function will be called by our button in the form, we need to retrieve the information from the form using the getters and then send it to our service, that will add our token to the header and send to the back-end."),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"doLogin() {\n this.isLoading = true;\n // Using the email and password getters:\n let email = this.getEmail().value;\n let password = this.getPassword().value;\n // You could also do this way:\n // this.loginForm.get('email')!.value\n if (email === '' || password === '') {\n this.isLoading = false;\n // You can do some validations here\n } else {\n // Calling a function from our appService, sending the email and password\n // that will be redirected to the back-end.\n this.appService.login(email, password).subscribe((data) => {\n this.isLoading = false;\n this.loginMessage = data.message;\n if (data.message === 'Congrats! Login done!') {\n // Saving our token that the back-end send back to us\n // for the next steps\n this.isLogged = true;\n localStorage.setItem('token', data.token);\n } else {\n this.isLogged = false;\n }\n });\n }\n }\n")),Object(o.b)("p",null,"In our service, we will define the function login()"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"login(email: string, password: string): Observable {\n return this.http.post(this.apiUrl + 'create_token', {\n email: email,\n password: password,\n });\n }\n")),Object(o.b)("h4",{id:"load-satellite-monitored-fields"},"Load satellite monitored fields"),Object(o.b)("p",null,"This function is responsible to reach our backend and give us back the list of the available satellite monitored fields. After receiving them you can show it to the user to choose which one he wants to see images."),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"loadCreatedFields() {\n this.isLoading = true;\n // Sending our token that we retrieved in the first step.\n this.appService\n .loadFields(localStorage.getItem('token')!)\n .subscribe((data) => {\n this.isLoading = false;\n this.fields = data;\n });\n }\n")),Object(o.b)("p",null,"In our service, we will define the function loadFields()"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"loadFields(token: string): Observable {\n // Setting our token in the Authorization header so we\n // can send it to the back-end\n let headers = new HttpHeaders().set('Authorization', token);\n return this.http.get(this.apiUrl + 'monitored_fields', { headers });\n }\n")),Object(o.b)("h4",{id:"load-the-images-for-a-specific-field"},"Load the images for a specific field"),Object(o.b)("p",null,"This function is reponsible for getting the form information and send to our back-end that will return the satellite images for a specific field. After our backend return to us the list of the images, we need to retrieve the coordinates of that field from the backend response, and also the images. With the geometry, we can create a GEOJSON layer, to display the bounds of the field, and with the images we can plot them in the map."),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"loadFieldImages() {\n this.isLoading = true;\n this.images = [];\n let fieldId = this.getFieldId()!.value;\n let startDate = this.getStartDate()!.value;\n let endDate = this.getEndDate()!.value;\n if (fieldId === '' || startDate === '' || endDate === '') {\n this.loadImagesMessage = 'You need to fill all the inputs.';\n this.isLoading = false;\n } else {\n this.appService\n .loadImages(fieldId, startDate, endDate, localStorage.getItem('token')!)\n .subscribe((data) => {\n this.isLoading = false;\n this.loadImagesMessage = '';\n if (\n data === 'No images were found for the time and field selected' ||\n data === 'Request failed with status code 404'\n ) {\n // Here you can show something to the user if no images were found\n this.images = [];\n this.loadImagesMessage = data;\n } else {\n this.images = [];\n this.images = data.images;\n\n // Save the field geometry from the response.\n let geometry = data.geometry[0][0];\n\n // Create a object containing the field coordinates to create a Leaflet Layer.\n let json = {\n type: 'Feature' as GeoJsonTypes,\n geometry: {\n type: 'Polygon',\n coordinates: [geometry],\n },\n };\n\n // Create a object that will define the style of the polygon\n let polygonStyle = {\n weight: 2,\n opacity: 1,\n fill: false,\n 'fill-opacity': 0,\n } as L.GeoJSONOptions;\n\n // Clear all the bounds created in the bounds group layer\n this.bounds.clearLayers();\n // Clear all the images created in the imagens group layer\n this.imagens.clearLayers();\n\n // Create the geoJson layer of LeafletJS.\n let geoJsonLayer = L.geoJson(json, polygonStyle).addTo(this.bounds);\n\n // Saving the bounds of the field from the geoJsonLayer\n let geoBounds = geoJsonLayer.getBounds();\n\n // Make the map fly to the right coordintes of the field.\n this.map.flyTo(geoJsonLayer.getBounds().getCenter(), 15);\n\n // Checking if are any avaiable images and for each image\n // save the url of the image and the bound of the field in\n // the images array\n this.images.forEach((e: any) => {\n e.images.forEach((f: any) => {\n f.bounds = geoBounds;\n f.date = e.date.substring(11, 23);\n if (e.provider === 'sentinel') {\n f.imgtype = f.url.split('/0/')[1].split('.')[0].split('_')[0];\n } else if (e.provider === 'planet') {\n f.imgtype = f.url\n .split('_SR.tif/')[1]\n .split('.')[0]\n .split('_')[0];\n } else {\n f.imgtype = 'not supported';\n }\n });\n e.date = e.date.substring(0, 10);\n });\n }\n });\n }\n }\n")),Object(o.b)("p",null,"In our service, we will define the function loadImages()"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"loadImages(fieldId: any, startDate: any, endDate: any, token: string): Observable {\n let headers = new HttpHeaders().set('Authorization', token);\n return this.http.post(\n this.apiUrl + 'field_images',\n {\n id: fieldId,\n startDate: startDate,\n endDate: endDate,\n },\n { headers }\n );\n }\n")),Object(o.b)("h4",{id:"show-and-hide-map-layers"},"Show and hide map layers"),Object(o.b)("p",null,"With this function, we will receive an url from the parameter when the user clicks in the image he wants to see, and then we will display that image."),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"function showImage(url) {\n // Clear all the images from the imagens group layer, so only one\n // image will be displayed.\n imagens.clearLayers();\n\n // If you remember, in the images array, we saved all the\n // images url, and the bounds of the fields. So when we receive\n // one url in the parameter, we will search the url in the array\n // and if it is a valid url, we will retrieve the bounds and then\n // display the image in the map.\n this.images.forEach((e: any) => {\n e.images.forEach((f: any) => {\n if (f.url === url) {\n L.imageOverlay(f.url, f.bounds).addTo(this.imagens);\n }\n });\n });\n}\n")),Object(o.b)("h3",{id:"extra"},"Extra"),Object(o.b)("p",null,"In this case, we are using the LeafletJS library, so we need to create our map, and add the base layers we want. We will add a layer for the ",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://www.openstreetmap.org/"}),"OpenStreetMap")," basemap, and one for the ",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://www.mapbox.com/"}),"Mapbox")," basemap. To use the MapBox basemap without creating an map variable to it, we need to setup our MapBox token in one variable and then reach the mapbox url passing our token."),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"private initMap(): void {\n // Create the Map variable.\n this.map = L.map('map', {\n center: [39.8282, -98.5795],\n zoom: 3,\n });\n\n // OpenStreetMap Layer.\n const osm = L.tileLayer(\n 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',\n {\n maxZoom: 18,\n minZoom: 3,\n attribution:\n '© OpenStreetMap',\n }\n );\n\n let token = \"YOUR MAPBOX TOKEN\";\n\n // MapBox Layer.\n const mapBox = L.tileLayer(\n 'https://api.mapbox.com/styles/v1/mapbox/satellite-v9/tiles/{z}/{x}/{y}?access_token=' +\n token,\n {\n maxZoom: 21,\n tileSize: 512,\n zoomOffset: -1,\n attribution:\n '\xa9 Mapbox \xa9 OpenStreetMap',\n }\n );\n\n osm.addTo(this.map);\n mapBox.addTo(this.map);\n\n // The base maps.\n const baseMaps = {\n OpenStreetMap: osm,\n MapBox: mapBox,\n };\n\n //Group layers for the images and the bounds.\n this.imagens = L.layerGroup().addTo(this.map);\n this.bounds = L.layerGroup().addTo(this.map);\n\n // Create the base maps control in the map\n const layerControl = L.control.layers(baseMaps).addTo(this.map);\n\n // The sidebar options\n var options: L.SidebarOptions = {\n container: 'sidebar',\n position: 'left',\n };\n\n // Creating the sidebar\n var sidebar = L.control.sidebar(options);\n\n // Adding the sidebar to the map\n this.map.addControl(sidebar);\n }\n")),Object(o.b)("p",null,"See ",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://docs.mapbox.com/"}),"here")," more informations about Mapbox!",Object(o.b)("br",{parentName:"p"}),"\n","See ",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://leafletjs.com/"}),"here")," more informations about LeafletJS!"),Object(o.b)("div",{className:"admonition admonition-tip alert alert--success"},Object(o.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(o.b)("h5",{parentName:"div"},Object(o.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(o.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(o.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})))),"tip")),Object(o.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(o.b)("p",{parentName:"div"},Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://stackblitz.com/edit/node-m3hnvp?file=README.md"}),"Here")," you can run a live use case demo!"))))}c.isMDXComponent=!0},153:function(e,t,n){"use strict";n.d(t,"a",(function(){return h})),n.d(t,"b",(function(){return b}));var a=n(0),r=n.n(a);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var d=r.a.createContext({}),c=function(e){var t=r.a.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},h=function(e){var t=c(e.components);return r.a.createElement(d.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},u=r.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),h=c(n),u=a,b=h["".concat(i,".").concat(u)]||h[u]||p[u]||o;return n?r.a.createElement(b,s(s({ref:t},d),{},{components:n})):r.a.createElement(b,s({ref:t},d))}));function b(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var d=2;d=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=o.a.createContext({}),l=function(e){var t=o.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},f=function(e){var t=l(e.components);return o.a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},v=o.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,i=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),f=l(n),v=r,p=f["".concat(i,".").concat(v)]||f[v]||d[v]||a;return n?o.a.createElement(p,c(c({ref:t},s),{},{components:n})):o.a.createElement(p,c({ref:t},s))}));function p(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=v;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var s=2;s Layers Endpoints",permalink:"/docs/docs/beta_layers_endpoints"},next:{title:"Leaf File Upload Link",permalink:"/docs/docs/Link_file_upload"}},s=[{value:"Overview",id:"overview",children:[]},{value:"Get started",id:"get-started",children:[{value:"1. Sign in with a Leaf account",id:"1-sign-in-with-a-leaf-account",children:[]},{value:"2. Get to know the Leaf user entity",id:"2-get-to-know-the-leaf-user-entity",children:[]},{value:"3. Create the user application tokens",id:"3-create-the-user-application-tokens",children:[]}]},{value:"Set up",id:"set-up",children:[{value:"John Deere",id:"john-deere",children:[]},{value:"Climate FieldView",id:"climate-fieldview",children:[]},{value:"CNHi",id:"cnhi",children:[]},{value:"AgLeader",id:"agleader",children:[]},{value:"Trimble",id:"trimble",children:[]}]},{value:"Tutorial",id:"tutorial",children:[{value:"Angular",id:"angular",children:[]},{value:"React",id:"react",children:[]}]},{value:"Reference",id:"reference",children:[{value:"Property Overview",id:"property-overview",children:[]},{value:"Hooks Overview",id:"hooks-overview",children:[]}]}],d={rightToc:s};function u(e){var t=e.components,a=Object(i.a)(e,["components"]);return Object(r.b)("wrapper",Object(n.a)({},d,a,{components:t,mdxType:"MDXLayout"}),Object(r.b)("h2",{id:"overview"},"Overview"),Object(r.b)("p",null,"Leaf's Provider Connection / Authentication Link is a widget that you can install with minimal setup and a few lines of code. This widget enables your customers to connect their existing provider accounts, which associates it with their Leaf User."),Object(r.b)("p",{align:"center"},Object(r.b)("img",{alt:"File upload widget",width:"75%",src:Object(l.a)("img/leaf-provider-connection.png")})),Object(r.b)("div",{className:"admonition admonition-caution alert alert--warning"},Object(r.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16"}),Object(r.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})))),"Beta")),Object(r.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},"This is a beta feature."))),Object(r.b)("h2",{id:"get-started"},"Get started"),Object(r.b)("h3",{id:"1-sign-in-with-a-leaf-account"},"1. Sign in with a Leaf account"),Object(r.b)("p",null,"You will need a Leaf account. If you don't have one yet, you can create it ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://withleaf.io/account/quickstart"}),"here"),"."),Object(r.b)("h3",{id:"2-get-to-know-the-leaf-user-entity"},"2. Get to know the Leaf user entity"),Object(r.b)("p",null,"All control of connected providers is done at the Leaf user level (usually it represents the user of your application), so it's important to know more about it ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"/docs/user_management_overview"}),"here"),"."),Object(r.b)("h3",{id:"3-create-the-user-application-tokens"},"3. Create the user application tokens"),Object(r.b)("p",null,"Since the connection is at Leaf user level, the widget uses a different authentication method.\nWe will required to create an API key for each Leaf user. This will ensure that the Leaf user only accesses its own resources."),Object(r.b)("p",null,"The endpoints to manage those application tokens are ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/Link_endpoints#api-key"}),"here"),"."),Object(r.b)("h2",{id:"set-up"},"Set up"),Object(r.b)("p",null,"To use the widget you will need to enable the providers. Don't worry, you only need to set it up once."),Object(r.b)("h3",{id:"john-deere"},"John Deere"),Object(r.b)("p",null,"To enable John Deere as a provider in the widget you need your application already registed with John Deere. You can find more info on how to create a developer account ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://withleaf.io/en/whats-new/john-deere-authentication-with-leaf/"}),"here"),"."),Object(r.b)("h4",{id:"redirect-uri"},"Redirect URI"),Object(r.b)("p",null,'The first step is to add our widget URL in the "Redirect URI" section:'),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-markup"}),"https://widget.withleaf.io\n")),Object(r.b)("p",null,"In the ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://developer.deere.com/#/applications"}),"My applications")," page, select your application and edit it to add the URL here"),Object(r.b)("p",{align:"center"},Object(r.b)("img",{alt:"File upload widget",width:"50%",src:Object(l.a)("img/leaf-provider-connection-jd-redirect-uri.png")})),Object(r.b)("h4",{id:"application-info"},"Application info"),Object(r.b)("p",null,"To allow the users to authenticate with John Deere, you will need to send your application info to this endpoint\n","\xa0",Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"p"},"/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}")),Object(r.b)("p",null,"For John Deere, it is necessary to inform the:"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"clientKey")," (Application Id)"),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"clientSecret")," (Secret)")),Object(r.b)("p",null,"You can set the ",Object(r.b)("inlineCode",{parentName:"p"},"appName")," and the ",Object(r.b)("inlineCode",{parentName:"p"},"clientEnvironment"),"as the environment your application is enabled on John Deere: ",Object(r.b)("inlineCode",{parentName:"p"},"STAGE")," or ",Object(r.b)("inlineCode",{parentName:"p"},"PRODUCTION"),"."),Object(r.b)("p",null,"Here is a request example:"),Object(r.b)(o.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(c.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/LeafWidget/PRODUCTION'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n clientKey: \"string\",\n clientSecret: \"string\"\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(c.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/LeafWidget/PRODUCTION'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n clientKey: \"string\",\n clientSecret: \"string\"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(r.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "clientKey": "string", "clientSecret": "string" }\'\n \'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/LeafWidget/PRODUCTION\'\n')))),Object(r.b)("h3",{id:"climate-fieldview"},"Climate FieldView"),Object(r.b)("p",null,"To enable Climate FieldView as a provider in the widget you need your application credentials from Climate. You can find more info on how to create a developer account ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://withleaf.io/en/whats-new/climate-fieldview-authentication-with-leaf/"}),"here"),"."),Object(r.b)("h4",{id:"application-info-1"},"Application info"),Object(r.b)("p",null,"To allow the users to authenticate with Climate FieldView, you will need to send your application info to this endpoint\n","\xa0",Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"p"},"/usermanagement/api/app-keys/ClimateFieldView/{appName}")),Object(r.b)("p",null,"For Climate FieldView, it is necessary to inform the:"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"apiKey")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"clientId")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"clientSecret"))),Object(r.b)("p",null,"You can set the ",Object(r.b)("inlineCode",{parentName:"p"},"appName"),"."),Object(r.b)("p",null,"Here is a request example:"),Object(r.b)(o.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(c.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/LeafWidget'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n apiKey: \"string\",\n clientId: \"string\",\n clientSecret: \"string\"\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(c.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/LeafWidget'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n apiKey: \"string\",\n clientId: \"string\",\n clientSecret: \"string\"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(r.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "apiKey": "string", "clientId": "string", "clientSecret": "string" }\'\n \'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/LeafWidget\'\n')))),Object(r.b)("h3",{id:"cnhi"},"CNHi"),Object(r.b)("p",null,"To enable CNHi as a provider in the widget you need your application credentials from CNHi. You can find more info on how to create a developer account ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://withleaf.io/en/whats-new/cnhi-authentication-with-leaf/"}),"here"),"."),Object(r.b)("h4",{id:"oauth-callback-url"},"OAuth Callback URL"),Object(r.b)("p",null,'The first step is to add our widget URL in the "App OAuth Callback URL(s)" section:'),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-markup"}),"https://widget.withleaf.io\n")),Object(r.b)("p",null,"In the ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://www.developer.cnhindustrial.com/dashboard/"}),"Developer Dashboard")," page, select your application and edit it to add the URL here"),Object(r.b)("p",{align:"center"},Object(r.b)("img",{alt:"File upload widget",width:"50%",src:Object(l.a)("img/leaf-provider-connection-cnhi-callback-url.png")})),Object(r.b)("h4",{id:"application-info-2"},"Application info"),Object(r.b)("p",null,"To allow the users to authenticate with CNHi, you will need to send your application info to this endpoint\n","\xa0",Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"p"},"/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}")),Object(r.b)("p",null,"For CNHi, it is necessary to inform the:"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"clientId")," (Client Id)"),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"clientSecret")," (Client Secret)"),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"subscriptionKey")," (Primary SubscriptionKey)")),Object(r.b)("p",null,"You can set the ",Object(r.b)("inlineCode",{parentName:"p"},"appName")," and the ",Object(r.b)("inlineCode",{parentName:"p"},"clientEnvironment")," as the environment your application is enabled on CNHi: ",Object(r.b)("inlineCode",{parentName:"p"},"STAGE")," or ",Object(r.b)("inlineCode",{parentName:"p"},"PRODUCTION"),"."),Object(r.b)("p",null,"Here is a request example:"),Object(r.b)(o.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(c.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/LeafWidget/PRODUCTION'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n clientId: \"string\",\n clientSecret: \"string\",\n subscriptionKey: \"string\"\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(c.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/LeafWidget/PRODUCTION'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n clientId: \"string\",\n clientSecret: \"string\",\n subscriptionKey: \"string\"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(r.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "clientId": "string", "clientSecret": "string", "subscriptionKey": "string" }\'\n \'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/LeafWidget/PRODUCTION\'\n')))),Object(r.b)("h3",{id:"agleader"},"AgLeader"),Object(r.b)("p",null,"To enable AgLeader as a provider in the widget you need your application credentials from AgLeader. You can find more info on how to create a developer account ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://withleaf.io/en/whats-new/agleader-authentication-with-leaf/"}),"here"),"."),Object(r.b)("h4",{id:"redirection-url"},"Redirection URL"),Object(r.b)("p",null,'The first step is to add our widget URL in the "Redirection URL" property:'),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-markup"}),"https://widget.withleaf.io\n")),Object(r.b)("p",null,"In the ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://developer.deere.com/#/applications"}),"Consumer Keys"),' page, select your application and click in the "Edit Consumer Key Profile" option to edit it add the URL here'),Object(r.b)("p",{align:"center"},Object(r.b)("img",{alt:"File upload widget",width:"50%",src:Object(l.a)("img/leaf-provider-connection-agleader-redirection-url.png")})),Object(r.b)("h4",{id:"application-info-3"},"Application info"),Object(r.b)("p",null,"To allow the users to authenticate with AgLeader, you will need to send your application info to this endpoint\n","\xa0",Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"p"},"/usermanagement/api/app-keys/AgLeader/{appName}")),Object(r.b)("p",null,"For AgLeader, it is necessary to inform the:"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"privateKey")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"publicKey"))),Object(r.b)("p",null,"You can set the ",Object(r.b)("inlineCode",{parentName:"p"},"appName"),"."),Object(r.b)("p",null,"Here is a request example:"),Object(r.b)(o.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(c.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/LeafWidget'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n privateKey: \"string\",\n publicKey: \"string\"\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(c.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/LeafWidget'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n privateKey: \"string\",\n publicKey: \"string\"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(r.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "privateKey": "string", "publicKey": "string" }\'\n \'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/LeafWidget\'\n')))),Object(r.b)("h3",{id:"trimble"},"Trimble"),Object(r.b)("p",null,"To enable Trimble as a provider in the widget you need your application credentials from Trimble. You can find more info on how to create a developer account ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://withleaf.io/en/whats-new/trimble-authentication-with-leaf/"}),"here"),"."),Object(r.b)("h4",{id:"authentication-callback-url"},"Authentication Callback URL"),Object(r.b)("p",null,'The first step is make sure our widget URL is registered in the "Authentication Callback URLs" section. It may be necessary to contact Trimble to request the change.'),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-markup"}),"https://widget.withleaf.io\n")),Object(r.b)("h4",{id:"application-info-4"},"Application info"),Object(r.b)("p",null,"To allow the users to authenticate with Trimble, you will need to send your application info to this endpoint\n","\xa0",Object(r.b)("span",{class:"badge badge--warning"},"POST")," ",Object(r.b)("inlineCode",{parentName:"p"},"/usermanagement/api/app-keys/Trimble/{appName}")),Object(r.b)("p",null,"For Trimble, it is necessary to inform the:"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"applicationName")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"clientId")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"clientSecret"))),Object(r.b)("p",null,"You can set the ",Object(r.b)("inlineCode",{parentName:"p"},"appName"),"."),Object(r.b)("p",null,"Here is a request example:"),Object(r.b)(o.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(r.b)(c.a,{value:"js",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/LeafWidget'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n applicationName: \"string\",\n clientId: \"string\",\n clientSecret: \"string\"\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(r.b)(c.a,{value:"py",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/LeafWidget'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n applicationName: \"string\",\n clientId: \"string\",\n clientSecret: \"string\"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(r.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "applicationName": "string", "clientId": "string", "clientSecret": "string" }\'\n \'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/LeafWidget\'\n')))),Object(r.b)("h2",{id:"tutorial"},"Tutorial"),Object(r.b)("h3",{id:"angular"},"Angular"),Object(r.b)("div",{className:"admonition admonition-tip alert alert--success"},Object(r.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(r.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})))),"tip")),Object(r.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://codesandbox.io/p/sandbox/leaf-link-angular-providers-l7rcjc"}),"Here")," you can run a live use case demo!\nIt will only be necessary to replace your information in the .html component."))),Object(r.b)("p",null,"To add this Leaf widget in an Angular application, you can use the ",Object(r.b)("inlineCode",{parentName:"p"},"@withleaf/leaf-link-angular")," library, which is a JavaScript library that provides all Leaf UI Widgets.\nHere are the general steps to get started:"),Object(r.b)("ol",null,Object(r.b)("li",{parentName:"ol"},"Install the @withleaf/leaf-link-angular package using ",Object(r.b)("inlineCode",{parentName:"li"},"npm"),":")),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"npm i @withleaf/leaf-link-angular\n")),Object(r.b)("ol",{start:2},Object(r.b)("li",{parentName:"ol"},"Import the library in your component or module file:")),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"import { ProvidersModule } from '@withleaf/leaf-link-angular';\n")),Object(r.b)("ol",{start:3},Object(r.b)("li",{parentName:"ol"},"Add the component to the HTML. Make sure you already created the Leaf user ",Object(r.b)("a",Object(n.a)({parentName:"li"},{href:"https://docs.withleaf.io/docs/Link_endpoints#api-key"}),"API key")," (",Object(r.b)("inlineCode",{parentName:"li"},"apiKey"),"); you need to specify both the Leaf User API Key and the Leaf User ID (",Object(r.b)("inlineCode",{parentName:"li"},"leafUser"),") in the required properties in the HTML component.\nCheck all the properties available on the reference ",Object(r.b)("a",Object(n.a)({parentName:"li"},{href:"#reference"}),"here"),".")),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'
\n \n
\n')),Object(r.b)("h3",{id:"react"},"React"),Object(r.b)("div",{className:"admonition admonition-tip alert alert--success"},Object(r.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(r.b)("h5",{parentName:"div"},Object(r.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(r.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(r.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})))),"tip")),Object(r.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(r.b)("p",{parentName:"div"},Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://codesandbox.io/s/leaf-link-react-providers-dy5ntd"}),"Here")," you can run a live use case demo!\nIt will only be necessary to replace your information in the App.tsx file."))),Object(r.b)("p",null,"To add this Leaf widget in a React application, you can use the ",Object(r.b)("inlineCode",{parentName:"p"},"@withleaf/leaf-link-react")," library, which is a JavaScript library that provides all Leaf UI Widgets.\nHere are the general steps to get started:"),Object(r.b)("ol",null,Object(r.b)("li",{parentName:"ol"},"Install the @withleaf/leaf-link-react package using ",Object(r.b)("inlineCode",{parentName:"li"},"npm"),":")),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"npm i @withleaf/leaf-link-react\n")),Object(r.b)("ol",{start:2},Object(r.b)("li",{parentName:"ol"},"Import the component in your ",Object(r.b)("inlineCode",{parentName:"li"},"*.tsx")," file:")),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"import { Providers } from '@withleaf/leaf-link-react';\n")),Object(r.b)("ol",{start:3},Object(r.b)("li",{parentName:"ol"},"Add the component to the ",Object(r.b)("inlineCode",{parentName:"li"},"*.tsx")," file. Make sure you already created the Leaf user ",Object(r.b)("a",Object(n.a)({parentName:"li"},{href:"https://docs.withleaf.io/docs/Link_endpoints#api-key"}),"API key")," (",Object(r.b)("inlineCode",{parentName:"li"},"apiKey"),"); you need to specify both the Leaf User API Key and the Leaf User ID (",Object(r.b)("inlineCode",{parentName:"li"},"leafUser"),") in the required properties in the tsx component.\nCheck all the properties available on the reference ",Object(r.b)("a",Object(n.a)({parentName:"li"},{href:"#reference"}),"here"),".")),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"function App() {\n return (\n \n );\n}\n")),Object(r.b)("h2",{id:"reference"},"Reference"),Object(r.b)("h3",{id:"property-overview"},"Property Overview"),Object(r.b)("table",null,Object(r.b)("thead",{parentName:"table"},Object(r.b)("tr",{parentName:"thead"},Object(r.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Name"),Object(r.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Type"),Object(r.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Summary"))),Object(r.b)("tbody",{parentName:"table"},Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(n.a)({parentName:"td"},{href:"#apikey"}),"apiKey")),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"String"),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"The authentication API Key")),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(n.a)({parentName:"td"},{href:"#companylogourl"}),"companyLogoUrl")),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"String"),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Customization: a link to the company logo")),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(n.a)({parentName:"td"},{href:"#companyname"}),"companyName")),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"String"),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Customization: the name of the company")),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(n.a)({parentName:"td"},{href:"#isdarkmode"}),"isDarkMode")),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Boolean"),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Enable/disable the dark mode")),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(n.a)({parentName:"td"},{href:"#leafuser"}),"leafUser")),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"String"),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"The Leaf User ID")),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(n.a)({parentName:"td"},{href:"#showsearchbar"}),"showSearchbar")),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"String"),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Show/hide the search bar")),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(n.a)({parentName:"td"},{href:"#title"}),"title")),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"String"),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"The title of the widget")))),Object(r.b)("h4",{id:"property-details"},"Property Details"),Object(r.b)("h4",{id:"apikey"},"apiKey"),Object(r.b)("p",null,"The ",Object(r.b)("inlineCode",{parentName:"p"},"apiKey")," is the authentication key that will allow the use of the widget.\nIt can be created and managed ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/Link_endpoints#api-key"}),"here"),"."),Object(r.b)("h4",{id:"companylogourl"},"companyLogoUrl"),Object(r.b)("p",null,"The URL to the company logo. It will be displayed in the landing screen. It can be a ",Object(r.b)("inlineCode",{parentName:"p"},"PNG"),", ",Object(r.b)("inlineCode",{parentName:"p"},"JPEG")," or ",Object(r.b)("inlineCode",{parentName:"p"},"SVG"),"."),Object(r.b)("h4",{id:"companyname"},"companyName"),Object(r.b)("p",null,"The company name. It will be displayed in the landing screen and in each reference about the customer."),Object(r.b)("h4",{id:"isdarkmode"},"isDarkMode"),Object(r.b)("p",null,"Toggles dark mode on and off. The default value is ",Object(r.b)("inlineCode",{parentName:"p"},"false"),"."),Object(r.b)("h4",{id:"leafuser"},"leafUser"),Object(r.b)("p",null,"The Leaf User ID. Check ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"/docs/user_management_overview"}),"this page")," for more info about the Leaf User."),Object(r.b)("h4",{id:"showsearchbar"},"showSearchbar"),Object(r.b)("p",null,"Shows/hides the search bar for providers available for integration. The default is ",Object(r.b)("inlineCode",{parentName:"p"},"true"),", so the search bar will be displayed."),Object(r.b)("h4",{id:"title"},"title"),Object(r.b)("p",null,'The title displayed in the widget. The default is "Select your integration".',Object(r.b)("br",{parentName:"p"}),"\n","Customized texts will not be automatically translated."),Object(r.b)("h3",{id:"hooks-overview"},"Hooks Overview"),Object(r.b)("p",null,"Leaf Link also have hooks that can improve the developer experience when using the widgets."),Object(r.b)("table",null,Object(r.b)("thead",{parentName:"table"},Object(r.b)("tr",{parentName:"thead"},Object(r.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Name"),Object(r.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Type"),Object(r.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"))),Object(r.b)("tbody",{parentName:"table"},Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(n.a)({parentName:"td"},{href:"#providersconnected"}),"providersConnected")),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(r.b)("inlineCode",{parentName:"td"},"Array<{ provider: string; createdTime: string }>")),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Provide the array of the provider connected and also the createdTime - available after finish the connection process")),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(r.b)("a",Object(n.a)({parentName:"td"},{href:"#providerwidgetstatus"}),"providerWidgetStatus")),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(r.b)("inlineCode",{parentName:"td"},"{ code: number; message: string }")),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Provide the status code and the message from the current widget Status")))),Object(r.b)("h4",{id:"hooks-details"},"Hooks Details"),Object(r.b)("h5",{id:"providersconnected"},"providersConnected"),Object(r.b)("p",null,"Provides the array of the providers connected with the ",Object(r.b)("inlineCode",{parentName:"p"},"createdTime"),". It will be available after finish the connection process."),Object(r.b)("h5",{id:"providerwidgetstatus"},"providerWidgetStatus"),Object(r.b)("p",null,"Provides the status code and the message from the current widget status:"),Object(r.b)("h6",{id:"status-codes"},"Status Codes"),Object(r.b)("table",null,Object(r.b)("thead",{parentName:"table"},Object(r.b)("tr",{parentName:"thead"},Object(r.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Code"),Object(r.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Message"))),Object(r.b)("tbody",{parentName:"table"},Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"-1"),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Error")),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"0"),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Started")),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"1"),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Done")))),Object(r.b)("h4",{id:"how-to-use-it"},"How to use it"),Object(r.b)("h5",{id:"angular-1"},"Angular"),Object(r.b)("p",null,"Use the ",Object(r.b)("inlineCode",{parentName:"p"},"getWidgetStatus")," property to reference a function in your component."),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-html"}),'
\n \n \n
\n')),Object(r.b)("p",null,"From the component, you can get the ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"#providerwidgetstatus"}),"status")," and the ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"#providersconnected"}),"providers connected")," in the referenced function."),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"})," import { Component } from '@angular/core';\n\n @Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n })\n export class AppComponent {\n apiKey: string = 'apiKey';\n leafUser: string = 'leafUserId';\n companyName: string = 'companyName';\n companyLogo: string = 'companyLogo';\n\n yourFunctionNameHere(value: any) {\n console.log(value.providersConnected);\n console.log(value.providerWidgetStatus);\n }\n }\n")),Object(r.b)("h5",{id:"react-1"},"React"),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"import { Leaf } from '@withleaf/leaf-link-react';\n")),Object(r.b)("p",null,Object(r.b)("inlineCode",{parentName:"p"},"{ Leaf }")," import is the context that handle with the providers data."),Object(r.b)("p",null,"Considering you have a custom component that need to handle or just receive the data updates from Provider Widget:"),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"\nimport { useLeaf } from '@withleaf/leaf-link-react';\n\nexport const MyComponent = () => {\n // Import the states from the hook\n const { providerWidgetStatus, providersConnected } = useLeaf();\n\n return (\n <>\n
\n

\n {' '}\n Hook State Example\n

\n

\n \n Status Code:\n {' '}\n {providerWidgetStatus.code} |{' '}\n \n Status Message:\n {' '}\n {providerWidgetStatus.message}\n

\n
\n
\n
\n {providersConnected.length === 0 ? (\n

Providers List is empty

\n ) : (\n <>\n {providersConnected.map((provider, index) => (\n <>\n

\n {' '}\n Provider: {provider.provider}\n

\n

\n {' '}\n Created Time: {provider.createdTime}\n

\n \n ))}\n \n )}\n
\n \n );\n};\n")),Object(r.b)("p",null,"Then, wrap your component in the hook as a children"),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"import { Leaf, Providers } from '@withleaf/leaf-link-react'\n\nconst Example = () => {\n return (\n \n \n \n \n );\n};\n")),Object(r.b)("p",null,"From your top-level component can pass the current data to all components below, no matter how deep."),Object(r.b)("p",null,"This variables will be updated every time the Provider update the steps i.e move from one step to other. "),Object(r.b)("h6",{id:"tips"},"Tips"),Object(r.b)("p",null,"The way that the developer get the updated value from the hook can be different depending the of the application, personal preferences or the way it is architected. We suggest the following with ",Object(r.b)("inlineCode",{parentName:"p"},"useMemo")," but it can be also implemented with ",Object(r.b)("inlineCode",{parentName:"p"},"useEffect"),".\n",Object(r.b)("inlineCode",{parentName:"p"},"useMemo")," runs the function and caches its result, which will only be recomputed if any value in the dependency array changes. It helps optimize performance by avoiding unnecessary recalculations."),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"},"Example")),Object(r.b)("pre",null,Object(r.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"useMemo(() => {\n //Something you want to update, as a state from the component.\n}, [providerConnected, providerWidgetStatus])\n")))}u.isMDXComponent=!0},153:function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"b",(function(){return m}));var n=a(0),i=a.n(n);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function c(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var b=i.a.createContext({}),p=function(e){var t=i.a.useContext(b),a=t;return e&&(a="function"==typeof e?e(t):c(c({},t),e)),a},s=function(e){var t=p(e.components);return i.a.createElement(b.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},u=i.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,o=e.parentName,b=l(e,["components","mdxType","originalType","parentName"]),s=p(a),u=n,m=s["".concat(o,".").concat(u)]||s[u]||d[u]||r;return a?i.a.createElement(m,c(c({ref:t},b),{},{components:a})):i.a.createElement(m,c({ref:t},b))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,o=new Array(r);o[0]=u;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:n,o[1]=c;for(var b=2;b console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/agvance-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/agvance-credentials'\n")))),Object(s.b)("h4",{id:"response"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "clientEnvironment": "STAGE or PRODUCTION",\n "username": "str",\n "password": "str",\n "databaseId": "str",\n "sessionId": "str",\n "apiKey": "str"\n}\n')),Object(s.b)("h3",{id:"create-a-agvance-credentials"},"Create a Agvance credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/agvance-credentials")),Object(s.b)("p",null,"Create a Agvance credentials for the Leaf User."),Object(s.b)("h4",{id:"request-body"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "apiKey": "str",\n "clientEnvironment": "STAGE or PRODUCTION",\n "databaseId": "str",\n "password": "str",\n "username": "str"\n}\n')),Object(s.b)("h4",{id:"request-examples-1"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/agvance-credentials\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "apiKey": "str",\n "clientEnvironment": "STAGE or PRODUCTION",\n "databaseId": "str",\n "password": "str",\n "username": "str"\n}\n\naxios.post(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/agvance-credentials\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n\ndata = {\n "apiKey": "str",\n "clientEnvironment": "STAGE or PRODUCTION",\n "databaseId": "str",\n "password": "str",\n "username": "str"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{"apiKey": "str", "clientEnvironment": "STAGE or PRODUCTION", "databaseId": "str", "password": "str", "username": "str"}\' \\\n \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/agvance-credentials\'\n')))),Object(s.b)("h4",{id:"response-1"},"Response"),Object(s.b)("p",null,"A Agvance Credentials with status."),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "clientEnvironment": "STAGE or PRODUCTION",\n "username": "str",\n "password": "str",\n "databaseId": "str",\n "sessionId": "str",\n "apiKey": "str"\n}\n')),Object(s.b)("h3",{id:"delete-agvance-credentials"},"Delete Agvance credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--danger"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/agvance-credentials")),Object(s.b)("p",null,"Delete Leaf User's Agvance credentials."),Object(s.b)("h4",{id:"request-examples-2"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/agvance-credentials'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/agvance-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/agvance-credentials'\n")))),Object(s.b)("h2",{id:"troubleshooting"},"Troubleshooting"),Object(s.b)("p",null,"With these endpoints, you can do some troubleshooting to see your credential's health."),Object(s.b)("h3",{id:"events"},"Events"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/agvance-credentials/events")),Object(s.b)("p",null,"Get the logs of the provider credential based on the LeafUserId sent."),Object(s.b)("h4",{id:"request-examples-3"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/agvance-credentials/events'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/agvance-credentials/events'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}\n /agvance-credentials/events'\n")))),Object(s.b)("h4",{id:"response-2"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "body": "string",\n "createdDate": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "headers": "string",\n "id": "string",\n "statusCode": "int"\n }\n]\n')),Object(s.b)("div",{className:"admonition admonition-warning alert alert--danger"},Object(s.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(s.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})))),"warning")),Object(s.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available."))))}u.isMDXComponent=!0},153:function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return O}));var a=n(0),r=n.n(a);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=r.a.createContext({}),b=function(e){var t=r.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=b(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},p=r.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,c=e.parentName,o=l(e,["components","mdxType","originalType","parentName"]),d=b(n),p=a,O=d["".concat(c,".").concat(p)]||d[p]||u[p]||s;return n?r.a.createElement(O,i(i({ref:t},o),{},{components:n})):r.a.createElement(O,i({ref:t},o))}));function O(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,c=new Array(s);c[0]=p;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:a,c[1]=i;for(var o=2;o=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var l=r.a.createContext({}),d=function(e){var t=r.a.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=d(e.components);return r.a.createElement(l.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},O=r.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,c=e.originalType,b=e.parentName,l=o(e,["components","mdxType","originalType","parentName"]),p=d(a),O=n,m=p["".concat(b,".").concat(O)]||p[O]||s[O]||c;return a?r.a.createElement(m,i(i({ref:t},l),{},{components:a})):r.a.createElement(m,i({ref:t},l))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var c=a.length,b=new Array(c);b[0]=O;var i={};for(var o in t)hasOwnProperty.call(t,o)&&(i[o]=t[o]);i.originalType=e,i.mdxType="string"==typeof e?e:n,b[1]=i;for(var l=2;l + + + + + + + +Never Gonna Give You Up | Leaf + + + + + + + + + + +
+

Never Gonna Give You Up

We're no strangers to love
+You know the rules and so do I
+A full commitment's what I'm thinking of
+You wouldn't get this from any other guy

I just wanna tell you how I'm feeling
+Gotta make you understand

Never gonna give you up
+Never gonna let you down
+Never gonna run around and desert you
+Never gonna make you cry
+Never gonna say goodbye
+Never gonna tell a lie and hurt you

We've known each other for so long
+Your heart's been aching but you're too shy to say it
+Inside we both know what's been going on
+We know the game and we're gonna play it

And if you ask me how I'm feeling
+Don't tell me you're too blind to see

Never gonna give you up
+Never gonna let you down
+Never gonna run around and desert you
+Never gonna make you cry
+Never gonna say goodbye
+Never gonna tell a lie and hurt you
+Never gonna give you up
+Never gonna let you down
+Never gonna run around and desert you
+Never gonna make you cry
+Never gonna say goodbye
+Never gonna tell a lie and hurt you

(Ooh, give you up)
+(Ooh, give you up)
+(Ooh) Never gonna give, never gonna give (Give you up)
+(Ooh) Never gonna give, never gonna give (Give you up)

We've known each other for so long
+Your heart's been aching but you're too shy to say it
+Inside we both know what's been going on
+We know the game and we're gonna play it

I just wanna tell you how I'm feeling
+Gotta make you understand

Never gonna give you up
+Never gonna let you down
+Never gonna run around and desert you
+Never gonna make you cry
+Never gonna say goodbye
+Never gonna tell a lie and hurt you
+Never gonna give you up
+Never gonna let you down
+Never gonna run around and desert you
+Never gonna make you cry
+Never gonna say goodbye
+Never gonna tell a lie and hurt you
+Never gonna give you up
+Never gonna let you down
+Never gonna run around and desert you
+Never gonna make you cry
+Never gonna say goodbye
+Never gonna tell a lie and hurt you

+ + + + + + + + + + \ No newline at end of file diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 000000000..d82324b51 --- /dev/null +++ b/blog/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Blog | Leaf + + + + + + + + + + + +
+

Never Gonna Give You Up

We're no strangers to love
+You know the rules and so do I
+A full commitment's what I'm thinking of
+You wouldn't get this from any other guy

I just wanna tell you how I'm feeling
+Gotta make you understand

+ + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/index.html b/blog/tags/index.html new file mode 100644 index 000000000..e042c53fa --- /dev/null +++ b/blog/tags/index.html @@ -0,0 +1,29 @@ + + + + + + + + +Tags | Leaf + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/tags/rick-roll/index.html b/blog/tags/rick-roll/index.html new file mode 100644 index 000000000..26959cccd --- /dev/null +++ b/blog/tags/rick-roll/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Posts tagged "rick roll" | Leaf + + + + + + + + + + + +
+

1 post tagged with "rick roll"

View All Tags

Never Gonna Give You Up

We're no strangers to love
+You know the rules and so do I
+A full commitment's what I'm thinking of
+You wouldn't get this from any other guy

I just wanna tell you how I'm feeling
+Gotta make you understand

+ + + + + + + + + + + \ No newline at end of file diff --git a/c21ad4a8.264c6c7b.js b/c21ad4a8.264c6c7b.js new file mode 100644 index 000000000..eaa2a9547 --- /dev/null +++ b/c21ad4a8.264c6c7b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{124:function(e,t,r){"use strict";r.r(t),r.d(t,"frontMatter",(function(){return c})),r.d(t,"metadata",(function(){return u})),r.d(t,"rightToc",(function(){return s})),r.d(t,"default",(function(){return f}));var n=r(2),a=r(6),i=(r(0),r(153)),o=r(155),c={title:"Leaf User Overview",description:"Leaf User - Overview",sidebar_label:"Overview"},u={unversionedId:"user_management_overview",id:"user_management_overview",isDocsHomePage:!1,title:"Leaf User Overview",description:"Leaf User - Overview",source:"@site/docs/user_management_overview.md",permalink:"/docs/docs/user_management_overview",editUrl:"https://github.com/Leaf-Agriculture/docs/tree/master/docs/user_management_overview.md",sidebar_label:"Overview",sidebar:"docs",previous:{title:"Authentication Alerts",permalink:"/docs/docs/alerts_authentication"},next:{title:"Leaf User Endpoints",permalink:"/docs/docs/user_management_endpoints"}},s=[{value:"About",id:"about",children:[]},{value:"What is a Leaf user?",id:"what-is-a-leaf-user",children:[]},{value:"Where to next?",id:"where-to-next",children:[{value:"If integrating a provider via Leaf\u2019s API",id:"if-integrating-a-provider-via-leafs-api",children:[]},{value:"If implementing manual file upload",id:"if-implementing-manual-file-upload",children:[]}]}],l={rightToc:s};function f(e){var t=e.components,r=Object(a.a)(e,["components"]);return Object(i.b)("wrapper",Object(n.a)({},l,r,{components:t,mdxType:"MDXLayout"}),Object(i.b)("h2",{id:"about"},"About"),Object(i.b)("p",null,"For Leaf to be able to access, process and return standardized files from providers, you first need to create a \u2018Leaf User\u2019, which you\u2019ll later connect to your customers\u2019 preferred data provider(s). "),Object(i.b)("h2",{id:"what-is-a-leaf-user"},"What is a Leaf user?"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"A Leaf User provides a way to keep your customers' data organized under your API owner. You'll attach 3rd party credentials to these entities."),Object(i.b)("li",{parentName:"ul"},"A Leaf User is equivalent to a customer/grower account. "),Object(i.b)("li",{parentName:"ul"},"The same Leaf User/grower can integrate with multiple providers via a user-authentication process for each provider. ")),Object(i.b)("img",{alt:"Leaf user",src:Object(o.a)("img/leafuser.png")}),Object(i.b)("h2",{id:"where-to-next"},"Where to next?"),Object(i.b)("h3",{id:"if-integrating-a-provider-via-leafs-api"},"If integrating a provider via Leaf\u2019s API"),Object(i.b)("p",null,"Once you\u2019ve created a Leaf User (after setting up configurations and alerts), proceed to provider authentication. There we will show you how to integrate a provider and attach the provider credentials to your Leaf User so you can start receiving standardized data via Leaf. "),Object(i.b)("h3",{id:"if-implementing-manual-file-upload"},"If implementing manual file upload"),Object(i.b)("p",null,"If you\u2019re looking to implement manual file upload functionality for thumb drive data, click ",Object(i.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/converters_overview"}),"here")," next."),Object(i.b)("p",null,"Need more guidance? Contact us at ",Object(i.b)("a",Object(n.a)({parentName:"p"},{href:"mailto:help@withleaf.io"}),"help@withleaf.io"),"."))}f.isMDXComponent=!0},153:function(e,t,r){"use strict";r.d(t,"a",(function(){return f})),r.d(t,"b",(function(){return v}));var n=r(0),a=r.n(n);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=a.a.createContext({}),l=function(e){var t=a.a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},f=function(e){var t=l(e.components);return a.a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},p=a.a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,o=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),f=l(r),p=n,v=f["".concat(o,".").concat(p)]||f[p]||d[p]||i;return r?a.a.createElement(v,c(c({ref:t},s),{},{components:r})):a.a.createElement(v,c({ref:t},s))}));function v(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=p;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:n,o[1]=c;for(var s=2;s console.log(response.data))\n .catch(console.error)\n"))),Object(o.b)(l.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\nendpoint = 'https://api.withleaf.io/services/alerts/api/alerts/webhooks'\n\npayload = {...} # Your payload as specified above\n\nresponse = requests.post(endpoint, headers=headers, json=payload)\nprint(response.json())\n"))),Object(o.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Content-Type: application/json' \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -d 'Your paylaod as specified above'\n 'https://api.withleaf.io/services/alerts/api/alerts/webhooks'\n")))),Object(o.b)("h4",{id:"response"},"Response"),Object(o.b)("p",null,"It returns a JSON containing information about the webhook created."),Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "UUID",\n "events": [\n "newSatelliteImage"\n ],\n "name": "Satellite images listener",\n "secret": "mRyT257XpFWX",\n "url": "https://agtech.com/leaf/satellite"\n}\n')),Object(o.b)("p",null,"If you need to test your endpoint, here is a request example so you can simulate the validation Leaf will do."),Object(o.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(l.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\n\nconst headers = {'Content-Type': 'application/json', 'accept': '*/*'}\nconst endpoint = 'your-webhook-url'\n\nconst data = {\"message\" : \"confirmation of webhook upon registration\"}\n\naxios.post(endpoint, {headers, data})\n .then(response => console.log(response.data))\n .catch(console.error)\n"))),Object(o.b)(l.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nheaders = {'Content-Type': 'application/json', 'accept': '*/*'}\nendpoint = 'your-webhook-url'\n\npayload = {\"message\" : \"confirmation of webhook upon registration\"}\n\nresponse = requests.post(endpoint, headers=headers, json=payload)\nprint(response.json())\n"))),Object(o.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Content-Type: application/json' \\\n -H 'accept: */*' \\\n -d '{\"message\" : \"confirmation of webhook upon registration\"}'\n 'your-webhook-url'\n")))),Object(o.b)("h3",{id:"get-a-webhook"},"Get a webhook"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--success"},"GET")," ",Object(o.b)("inlineCode",{parentName:"p"},"/webhooks/{id}")),Object(o.b)("p",null,"Retrieve a specific webhook resource by its id."),Object(o.b)("h4",{id:"request-example-1"},"Request example"),Object(o.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(l.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\n\nconst TOKEN = 'YOUR_TOKEN'\nconst headers = {'Authorization': `Bearer ${TOKEN}`}\nconst id = 'webhook uuid'\nconst endpoint = `https://api.withleaf.io/services/alerts/api/alerts/webhooks/${id}`\n\naxios.get(endpoint, {headers})\n .then(response => console.log(response.data))\n .catch(console.error)\n"))),Object(o.b)(l.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\nid = 'webhook uuid'\nendpoint = f'https://api.withleaf.io/services/alerts/api/alerts/webhooks/{id}'\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/alerts/api/alerts/webhooks/{id}'\n")))),Object(o.b)("h4",{id:"response-1"},"Response"),Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "UUID",\n "events": [\n "newSatelliteImage"\n ],\n "secret": "mRyT257XpFWX",\n "name": "Satellite images listener",\n "url": "https://agtech.com/leaf/satellite"\n}\n')),Object(o.b)("h3",{id:"get-all-webhooks"},"Get all webhooks"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--success"},"GET")," ",Object(o.b)("inlineCode",{parentName:"p"},"/webhooks")),Object(o.b)("p",null,"Retrieve all Webhooks."),Object(o.b)("h4",{id:"request-example-2"},"Request example"),Object(o.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(l.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\n\nconst TOKEN = 'YOUR_TOKEN'\nconst headers = {'Authorization': `Bearer ${TOKEN}`}\nconst endpoint = 'https://api.withleaf.io/services/alerts/api/alerts/webhooks'\n\naxios.get(endpoint, {headers})\n .then(response => console.log(response.data))\n .catch(console.error)\n"))),Object(o.b)(l.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\nendpoint = 'https://api.withleaf.io/services/alerts/api/alerts/webhooks'\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/alerts/api/alerts/webhooks'\n")))),Object(o.b)("h4",{id:"response-2"},"Response"),Object(o.b)("p",null,"It returns a list of JSON objects."),Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[{\n "id": "UUID",\n "events": [\n "newSatelliteImage"\n ],\n "secret": "mRyT257XpFWX",\n "name": "Satellite images listener",\n "url": "https://agtech.com/leaf/satellite"\n}]\n')),Object(o.b)("h3",{id:"get-failed-calls-for-webhooks"},"Get failed calls for webhooks"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--success"},"GET")," ",Object(o.b)("inlineCode",{parentName:"p"},"/webhooks/failed-calls")),Object(o.b)("p",null,"Retrieve all failed calls for webhooks."),Object(o.b)("h4",{id:"request-example-3"},"Request example"),Object(o.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(l.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\n\nconst TOKEN = 'YOUR_TOKEN'\nconst headers = {'Authorization': `Bearer ${TOKEN}`}\nconst endpoint = 'https://api.withleaf.io/services/alerts/api/alerts/webhooks/failed-calls'\n\naxios.get(endpoint, {headers})\n .then(response => console.log(response.data))\n .catch(console.error)\n"))),Object(o.b)(l.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\nendpoint = 'https://api.withleaf.io/services/alerts/api/alerts/webhooks/failed-calls'\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/alerts/api/alerts/webhooks/failed-calls'\n")))),Object(o.b)("h4",{id:"response-3"},"Response"),Object(o.b)("p",null,"It returns a list of JSON objects."),Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "items": [\n {\n "apiOwner": "yourApiOwner",\n "createdAt": "2023-04-21T12:16:30Z",\n "url": "https://webhook.site/{{uuid}}",\n "status": 502,\n "response": "\\r\\n502 Bad Gateway\\r\\n\\r\\n

502 Bad Gateway

\\r\\n
nginx
\\r\\n\\r\\n\\r\\n",\n "requestBody": "{\\"leafUserId\\": \\"uuid\\", \\"fileId\\": \\"uuid\\", \\"type\\": \\"automergedFileProcessingFinished\\", \\"timestamp\\": \\"2023-04-21T12:16:27.997586Z\\"}"\n },\n {\n "apiOwner": "yourApiOwner",\n "createdAt": "2023-04-24T18:35:53Z",\n "url": "https://webhook.site/{{uuid}}",\n "status": 502,\n "response": "\\r\\n502 Bad Gateway\\r\\n\\r\\n

502 Bad Gateway

\\r\\n
nginx
\\r\\n\\r\\n\\r\\n",\n "requestBody": "{\\"leafUserId\\": \\"uuid\\", \\"fileId\\": \\"uuid\\", \\"type\\": \\"automergedFileProcessingFinished\\", \\"timestamp\\": \\"2023-04-24T18:35:52.187785Z\\"}"\n },\n {\n "apiOwner": "yourApiOwner",\n "createdAt": "2023-04-24T18:35:53Z",\n "url": "https://flamboyant-flower-64651.pktriot.net/",\n "requestBody": "{\\"source\\": \\"SYNC\\", \\"leafUserId\\": \\"ff044168-45aa-00d8-8b7e-8632d5c23616\\", \\"fieldId\\": \\"ed080ca3-69fe-365c-972f-a0d000fe7c0e\\", \\"type\\": \\"fieldCreated\\", \\"timestamp\\": \\"2023-04-24T18:35:53Z\\"}",\n "connectionError": "ConnectionError: HTTPSConnectionPool(host=\'flamboyant-flower-64651.pktriot.net\', port=443): Max retries exceeded with url: / (Caused by ProtocolError(\'Connection aborted.\', RemoteDisconnected(\'Remote end closed connection without response\')))"\n }\n ]\n}\n')),Object(o.b)("h3",{id:"delete-a-webhook"},"Delete a webhook"),Object(o.b)("p",null,"\xa0",Object(o.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(o.b)("inlineCode",{parentName:"p"},"/webhooks/{id}")),Object(o.b)("p",null,"Delete a specific Webhook resource by its id. Returns 204 status code if the\ndelete succeeded."),Object(o.b)("div",{className:"admonition admonition-info alert alert--info"},Object(o.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(o.b)("h5",{parentName:"div"},Object(o.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(o.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(o.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Warning")),Object(o.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(o.b)("p",{parentName:"div"},"If you delete a Webhook resource, we no longer will send you the events the\nwebhook listens to."))),Object(o.b)("h4",{id:"request-example-4"},"Request example"),Object(o.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(l.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\n\nconst TOKEN = 'YOUR_TOKEN'\nconst headers = {'Authorization': `Bearer ${TOKEN}`}\nconst id = 'webhook uuid'\nconst endpoint = `https://api.withleaf.io/services/alerts/api/alerts/webhooks/${id}`\n\naxios.delete(endpoint, {headers})\n .then(response => console.log(response.data))\n .catch(console.error)\n"))),Object(o.b)(l.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\nid = 'webhook uuid'\nendpoint = f'https://api.withleaf.io/services/alerts/api/alerts/webhooks/{id}'\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(l.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/alerts/api/alerts/webhooks/{id}'\n")))))}d.isMDXComponent=!0},153:function(e,t,a){"use strict";a.d(t,"a",(function(){return p})),a.d(t,"b",(function(){return O}));var n=a(0),r=a.n(n);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var c=r.a.createContext({}),b=function(e){var t=r.a.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=b(e.components);return r.a.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},u=r.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=b(a),u=n,O=p["".concat(s,".").concat(u)]||p[u]||d[u]||o;return a?r.a.createElement(O,l(l({ref:t},c),{},{components:a})):r.a.createElement(O,l({ref:t},c))}));function O(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,s=new Array(o);s[0]=u;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l.mdxType="string"==typeof e?e:n,s[1]=l;for(var c=2;c"},c.a.createElement("header",{className:i()("hero hero--primary",h.a.heroBanner)},c.a.createElement("div",{className:"container"},c.a.createElement("h1",{className:"hero__title"},a.title),c.a.createElement("p",{className:"hero__subtitle"},a.tagline),c.a.createElement("div",{className:h.a.buttons},c.a.createElement(o.a,{className:i()("button button--outline button--secondary button--lg",h.a.getStarted),to:Object(u.a)("docs/")},"Documentation")))),c.a.createElement("main",null,p&&p.length>0&&c.a.createElement("section",{className:h.a.features},c.a.createElement("div",{className:"container"},c.a.createElement("div",{className:"row"},p.map((function(e,a){return c.a.createElement(g,Object(n.a)({key:a},e))})))))))}},167:function(e,a,t){"use strict";var n=t(0),r=t.n(n),c=t(164),l=t.n(c),i=t(163),s=t(154);a.a=function(e){var a=Object(n.useRef)(!1),c=Object(n.useRef)(null),o=Object(i.useHistory)(),m=Object(s.a)().siteConfig,u=(void 0===m?{}:m).baseUrl,d=function(){a.current||(Promise.all([fetch(u+"search-doc.json").then((function(e){return e.json()})),fetch(u+"lunr-index.json").then((function(e){return e.json()})),Promise.all([t.e(97),t.e(99)]).then(t.bind(null,169)),t.e(62).then(t.t.bind(null,168,7))]).then((function(e){!function(e,a,t){new t({searchDocs:e,searchIndex:a,inputSelector:"#search_input_react",handleSelected:function(e,a,t){var n=u+t.url;document.createElement("a").href=n,o.push(n)}})}(e[0],e[1],e[2].default)})),a.current=!0)},h=Object(n.useCallback)((function(a){c.current.contains(a.target)||c.current.focus(),e.handleSearchBarToggle(!e.isSearchBarExpanded)}),[e.isSearchBarExpanded]);return r.a.createElement("div",{className:"navbar__search",key:"search-box"},r.a.createElement("span",{"aria-label":"expand searchbar",role:"button",className:l()("search-icon",{"search-icon-hidden":e.isSearchBarExpanded}),onClick:h,onKeyDown:h,tabIndex:0}),r.a.createElement("input",{id:"search_input_react",type:"search",placeholder:"Search","aria-label":"Search",className:l()("navbar__search-input",{"search-bar-expanded":e.isSearchBarExpanded},{"search-bar":!e.isSearchBarExpanded}),onClick:d,onMouseOver:d,onFocus:h,onBlur:h,ref:c}))}}}]); \ No newline at end of file diff --git a/ccc49370.edf5372d.js b/ccc49370.edf5372d.js new file mode 100644 index 000000000..2520acad9 --- /dev/null +++ b/ccc49370.edf5372d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{152:function(e,a,t){"use strict";t.r(a);var n=t(0),r=t.n(n),l=t(166),c=t(172),i=t(162);var m=function(e){var a=e.nextItem,t=e.prevItem;return r.a.createElement("nav",{className:"pagination-nav","aria-label":"Blog post page navigation"},r.a.createElement("div",{className:"pagination-nav__item"},t&&r.a.createElement(i.a,{className:"pagination-nav__link",to:t.permalink},r.a.createElement("div",{className:"pagination-nav__sublabel"},"Newer Post"),r.a.createElement("div",{className:"pagination-nav__label"},"\xab ",t.title))),r.a.createElement("div",{className:"pagination-nav__item pagination-nav__item--next"},a&&r.a.createElement(i.a,{className:"pagination-nav__link",to:a.permalink},r.a.createElement("div",{className:"pagination-nav__sublabel"},"Older Post"),r.a.createElement("div",{className:"pagination-nav__label"},a.title," \xbb"))))};a.default=function(e){var a=e.content,t=a.frontMatter,n=a.metadata,i=n.title,o=n.description,s=n.nextItem,u=n.prevItem,d=n.editUrl;return r.a.createElement(l.a,{title:i,description:o},a&&r.a.createElement("div",{className:"container margin-vert--lg"},r.a.createElement("div",{className:"row"},r.a.createElement("div",{className:"col col--8 col--offset-2"},r.a.createElement(c.a,{frontMatter:t,metadata:n,isBlogPostPage:!0},r.a.createElement(a,null)),r.a.createElement("div",null,d&&r.a.createElement("a",{href:d,target:"_blank",rel:"noreferrer noopener"},r.a.createElement("svg",{fill:"currentColor",height:"1.2em",width:"1.2em",preserveAspectRatio:"xMidYMid meet",viewBox:"0 0 40 40",style:{marginRight:"0.3em",verticalAlign:"sub"}},r.a.createElement("g",null,r.a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"}))),"Edit this page")),(s||u)&&r.a.createElement("div",{className:"margin-vert--xl"},r.a.createElement(m,{nextItem:s,prevItem:u}))))))}},167:function(e,a,t){"use strict";var n=t(0),r=t.n(n),l=t(164),c=t.n(l),i=t(163),m=t(154);a.a=function(e){var a=Object(n.useRef)(!1),l=Object(n.useRef)(null),o=Object(i.useHistory)(),s=Object(m.a)().siteConfig,u=(void 0===s?{}:s).baseUrl,d=function(){a.current||(Promise.all([fetch(u+"search-doc.json").then((function(e){return e.json()})),fetch(u+"lunr-index.json").then((function(e){return e.json()})),Promise.all([t.e(97),t.e(99)]).then(t.bind(null,169)),t.e(62).then(t.t.bind(null,168,7))]).then((function(e){!function(e,a,t){new t({searchDocs:e,searchIndex:a,inputSelector:"#search_input_react",handleSelected:function(e,a,t){var n=u+t.url;document.createElement("a").href=n,o.push(n)}})}(e[0],e[1],e[2].default)})),a.current=!0)},h=Object(n.useCallback)((function(a){l.current.contains(a.target)||l.current.focus(),e.handleSearchBarToggle(!e.isSearchBarExpanded)}),[e.isSearchBarExpanded]);return r.a.createElement("div",{className:"navbar__search",key:"search-box"},r.a.createElement("span",{"aria-label":"expand searchbar",role:"button",className:c()("search-icon",{"search-icon-hidden":e.isSearchBarExpanded}),onClick:h,onKeyDown:h,tabIndex:0}),r.a.createElement("input",{id:"search_input_react",type:"search",placeholder:"Search","aria-label":"Search",className:c()("navbar__search-input",{"search-bar-expanded":e.isSearchBarExpanded},{"search-bar":!e.isSearchBarExpanded}),onClick:d,onMouseOver:d,onFocus:h,onBlur:h,ref:l}))}},172:function(e,a,t){"use strict";var n=t(0),r=t.n(n),l=t(156),c=t(153),i=t(171),m=t(162),o=t(173),s=t(155),u=t(49),d=t.n(u),h=["January","February","March","April","May","June","July","August","September","October","November","December"];a.a=function(e){var a,t,n,u,g,v=e.children,p=e.frontMatter,E=e.metadata,b=e.truncated,_=e.isBlogPostPage,f=void 0!==_&&_,N=E.date,k=E.permalink,x=E.tags,w=E.readingTime,y=p.author,j=p.title,I=p.image,B=p.keywords,S=p.author_url||p.authorURL,M=p.author_title||p.authorTitle,O=p.author_image_url||p.authorImageURL,P=Object(s.a)(I,{absolute:!0});return r.a.createElement(r.a.Fragment,null,r.a.createElement(i.a,null,B&&B.length&&r.a.createElement("meta",{name:"keywords",content:B.join(",")}),I&&r.a.createElement("meta",{property:"og:image",content:P}),I&&r.a.createElement("meta",{property:"twitter:image",content:P}),I&&r.a.createElement("meta",{name:"twitter:image:alt",content:"Image for "+j})),r.a.createElement("article",{className:f?void 0:"margin-bottom--xl"},(a=f?"h1":"h2",t=N.substring(0,10).split("-"),n=t[0],u=h[parseInt(t[1],10)-1],g=parseInt(t[2],10),r.a.createElement("header",null,r.a.createElement(a,{className:Object(l.a)("margin-bottom--sm",d.a.blogPostTitle)},f?j:r.a.createElement(m.a,{to:k},j)),r.a.createElement("div",{className:"margin-vert--md"},r.a.createElement("time",{dateTime:N,className:d.a.blogPostDate},u," ",g,", ",n," ",w&&r.a.createElement(r.a.Fragment,null," \xb7 ",Math.ceil(w)," min read"))),r.a.createElement("div",{className:"avatar margin-vert--md"},O&&r.a.createElement("a",{className:"avatar__photo-link avatar__photo",href:S,target:"_blank",rel:"noreferrer noopener"},r.a.createElement("img",{src:O,alt:y})),r.a.createElement("div",{className:"avatar__intro"},y&&r.a.createElement(r.a.Fragment,null,r.a.createElement("h4",{className:"avatar__name"},r.a.createElement("a",{href:S,target:"_blank",rel:"noreferrer noopener"},y)),r.a.createElement("small",{className:"avatar__subtitle"},M)))))),r.a.createElement("section",{className:"markdown"},r.a.createElement(c.a,{components:o.a},v)),(x.length>0||b)&&r.a.createElement("footer",{className:"row margin-vert--lg"},x.length>0&&r.a.createElement("div",{className:"col"},r.a.createElement("strong",null,"Tags:"),x.map((function(e){var a=e.label,t=e.permalink;return r.a.createElement(m.a,{key:t,className:"margin-horiz--sm",to:t},a)}))),b&&r.a.createElement("div",{className:"col text--right"},r.a.createElement(m.a,{to:E.permalink,"aria-label":"Read more about "+j},r.a.createElement("strong",null,"Read More"))))))}}}]); \ No newline at end of file diff --git a/ce17bea9.35e7cd94.js b/ce17bea9.35e7cd94.js new file mode 100644 index 000000000..510f7e51f --- /dev/null +++ b/ce17bea9.35e7cd94.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[74],{128:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return o})),n.d(t,"rightToc",(function(){return b})),n.d(t,"default",(function(){return u}));var a=n(2),r=n(6),s=(n(0),n(153)),i=n(160),c=n(161),l=(n(155),{title:"Raven Slingshot Credentials",description:"Credentials - Raven Slingshot"}),o={unversionedId:"credentials_raven_slingshot",id:"credentials_raven_slingshot",isDocsHomePage:!1,title:"Raven Slingshot Credentials",description:"Credentials - Raven Slingshot",source:"@site/docs/credentials_raven_slingshot.md",permalink:"/docs/docs/credentials_raven_slingshot",editUrl:"https://github.com/Leaf-Agriculture/docs/tree/master/docs/credentials_raven_slingshot.md",sidebar:"docs",previous:{title:"Raven Credentials",permalink:"/docs/docs/credentials_raven"},next:{title:"AgLeader Credentials",permalink:"/docs/docs/credentials_agleader"}},b=[{value:"Raven Slingshot Credentials Endpoints",id:"raven-slingshot-credentials-endpoints",children:[{value:"Get the Raven Slingshot credentials",id:"get-the-raven-slingshot-credentials",children:[]},{value:"Create a Raven Slingshot credentials",id:"create-a-raven-slingshot-credentials",children:[]},{value:"Delete Raven Slingshot credentials",id:"delete-raven-slingshot-credentials",children:[]}]},{value:"Troubleshooting",id:"troubleshooting",children:[{value:"Events",id:"events",children:[]}]}],d={rightToc:b};function u(e){var t=e.components,n=Object(r.a)(e,["components"]);return Object(s.b)("wrapper",Object(a.a)({},d,n,{components:t,mdxType:"MDXLayout"}),Object(s.b)("p",null,"Form of a Raven Slingshot Credentials resource:"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "apiKey": "str",\n "accessKey": "str",\n "sharedSecret": "str"\n}\n')),Object(s.b)("p",null,"All HTTP methods should be prepended by this service's endpoint:"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{}),"https://api.withleaf.io/services/usermanagement/api\n")),Object(s.b)("p",null,"See below the REST resources and their endpoints available in this service."),Object(s.b)("p",null,Object(s.b)("strong",{parentName:"p"},"Endpoints")),Object(s.b)("table",null,Object(s.b)("thead",{parentName:"table"},Object(s.b)("tr",{parentName:"thead"},Object(s.b)("th",Object(a.a)({parentName:"tr"},{align:"center"}),"Description"),Object(s.b)("th",Object(a.a)({parentName:"tr"},{align:"center"}),"Endpoints"))),Object(s.b)("tbody",{parentName:"table"},Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(a.a)({parentName:"tr"},{align:"center"}),Object(s.b)("a",Object(a.a)({parentName:"td"},{href:"#get-the-raven-slingshot-credentials"}),"Get the Raven Slingshot credentials")),Object(s.b)("td",Object(a.a)({parentName:"tr"},{align:"center"}),Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/raven-slingshot-credentials"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(a.a)({parentName:"tr"},{align:"center"}),Object(s.b)("a",Object(a.a)({parentName:"td"},{href:"#create-a-raven-slingshot-credentials"}),"Create a Raven Slingshot credentials")),Object(s.b)("td",Object(a.a)({parentName:"tr"},{align:"center"}),Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/raven-slingshot-credentials"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(a.a)({parentName:"tr"},{align:"center"}),Object(s.b)("a",Object(a.a)({parentName:"td"},{href:"#delete-raven-slingshot-credentials"}),"Delete Raven Slingshot credentials")),Object(s.b)("td",Object(a.a)({parentName:"tr"},{align:"center"}),Object(s.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/raven-slingshot-credentials"))))),Object(s.b)("h2",{id:"raven-slingshot-credentials-endpoints"},"Raven Slingshot Credentials Endpoints"),Object(s.b)("h3",{id:"get-the-raven-slingshot-credentials"},"Get the Raven Slingshot credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/raven-slingshot-credentials")," "),Object(s.b)("p",{align:"justify"},Object(s.b)("p",null,"Get the Raven Slingshot credentials of the Leaf User based on its id and returns a JSON with the credentials. If during\nbackground processing we detect that this credential is no longer valid, the value of the status will be changed.")),Object(s.b)("h4",{id:"request-examples"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(c.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(c.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials'\n")))),Object(s.b)("h4",{id:"response"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "apiKey": "str",\n "accessKey": "str",\n "sharedSecret": "str"\n}\n')),Object(s.b)("h3",{id:"create-a-raven-slingshot-credentials"},"Create a Raven Slingshot credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/raven-slingshot-credentials")," "),Object(s.b)("p",null,"Create a Raven Slingshot credentials for the Leaf User. "),Object(s.b)("h4",{id:"request-body"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "apiKey": "str",\n "accessKey": "str",\n "sharedSecret": "str"\n}\n')),Object(s.b)("h4",{id:"request-examples-1"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(c.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "apiKey": "str",\n "accessKey": "str",\n "sharedSecret": "str"\n}\n\naxios.post(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(s.b)(c.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n\ndata = {\n "apiKey": "str",\n "accessKey": "str",\n "sharedSecret": "str"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(s.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n-H \'Authorization: Bearer YOUR_TOKEN\' \\\n-H \'Content-Type: application/json\' \\\n-d \'{ "apiKey": "str", "accessKey": "str", "sharedSecret": "str" }\' \\\n\'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials\'\n')))),Object(s.b)("h4",{id:"response-1"},"Response"),Object(s.b)("p",null,"A Raven Slingshot Credentials with status."),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "apiKey": "str",\n "accessKey": "str",\n "sharedSecret": "str"\n}\n')),Object(s.b)("h3",{id:"delete-raven-slingshot-credentials"},"Delete Raven Slingshot credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/raven-slingshot-credentials")," "),Object(s.b)("p",null,"Delete Leaf User's Raven Slingshot credentials."),Object(s.b)("h4",{id:"request-examples-2"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(c.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(c.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials'\n")))),Object(s.b)("h2",{id:"troubleshooting"},"Troubleshooting"),Object(s.b)("p",null,"With these endpoints, you can do some troubleshooting to see your credential's health."),Object(s.b)("h3",{id:"events"},"Events"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/raven-slingshot-credentials/events")),Object(s.b)("p",null,"Get the logs of the provider credential based on the LeafUserId sent."),Object(s.b)("h4",{id:"request-examples-3"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(c.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials/events'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(c.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials/events'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}\n /raven-slingshot-credentials/events'\n")))),Object(s.b)("h4",{id:"response-2"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "body": "string",\n "createdDate": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "headers": "string",\n "id": "string",\n "statusCode": "int"\n }\n]\n')),Object(s.b)("div",{className:"admonition admonition-warning alert alert--danger"},Object(s.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(s.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})))),"warning")),Object(s.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available."))))}u.isMDXComponent=!0},153:function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return h}));var a=n(0),r=n.n(a);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function c(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=r.a.createContext({}),b=function(e){var t=r.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},d=function(e){var t=b(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},p=r.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,i=e.parentName,o=l(e,["components","mdxType","originalType","parentName"]),d=b(n),p=a,h=d["".concat(i,".").concat(p)]||d[p]||u[p]||s;return n?r.a.createElement(h,c(c({ref:t},o),{},{components:n})):r.a.createElement(h,c({ref:t},o))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,i=new Array(s);i[0]=p;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var o=2;o + + + + + + + +Hello | Leaf + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/d3cdf188.5edfe6c0.js b/d3cdf188.5edfe6c0.js new file mode 100644 index 000000000..97b2c0774 --- /dev/null +++ b/d3cdf188.5edfe6c0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{129:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return o})),n.d(t,"rightToc",(function(){return c})),n.d(t,"default",(function(){return d}));var a=n(2),i=n(6),r=(n(0),n(153)),l={title:"Overview",description:"Files - Overview"},o={unversionedId:"files_postman",id:"files_postman",isDocsHomePage:!1,title:"Overview",description:"Files - Overview",source:"@site/docs/files_postman.md",permalink:"/docs/docs/files_postman",editUrl:"https://github.com/Leaf-Agriculture/docs/tree/master/docs/files_postman.md"},c=[{value:"Overview",id:"overview",children:[{value:"Roadmap",id:"roadmap",children:[]},{value:"John Deere",id:"john-deere",children:[]},{value:"Climate FieldView",id:"climate-fieldview",children:[]},{value:"Leaf User",id:"leaf-user",children:[]},{value:"Query Operations by Field",id:"query-operations-by-field",children:[]},{value:"Merge Operation Files",id:"merge-operation-files",children:[]}]}],s={rightToc:c};function d(e){var t=e.components,n=Object(i.a)(e,["components"]);return Object(r.b)("wrapper",Object(a.a)({},s,n,{components:t,mdxType:"MDXLayout"}),Object(r.b)("h2",{id:"overview"},"Overview"),Object(r.b)("p",null,"Leaf's Operation Data API returns aggregated, cleaned, and standardized data\nfrom all major machine data brands in a simple JSON response. This tutorial will\nwalk through how to create a Leaf user, securely authenticate with their chosen\nplatforms, and receive auto-updating data from all of them with a single request."),Object(r.b)("p",null,"We also provide a ",Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"https://github.com/Leaf-Agriculture/Leaf-quickstart-Postman-collection"}),"quickstart")," Postman collection so you can follow\nalong easily."),Object(r.b)("p",null,"To make calls to Leaf's API, you will need a Leaf account. If you don't have one\nyet, please create your Leaf account and get your token."),Object(r.b)("p",null,"You can integrate with many different companies, and you only have to do it once\nfor each user. To connect, you just choose the company you wish to connect to\nand follow these 3 steps:"),Object(r.b)("ol",null,Object(r.b)("li",{parentName:"ol"},"Get the authentication URL of company you want to connect to"),Object(r.b)("li",{parentName:"ol"},"Get yours and your user's tokens"),Object(r.b)("li",{parentName:"ol"},"Add credentials to Leaf")),Object(r.b)("p",null,"Now you can opt to connect to more companies or Create a Leaf User and attach\nthese credentials, so that Leaf can represent your user internally and you can\nquery specifically for them and their data."),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"},"All set!")),Object(r.b)("p",null,'Leaf automatically detects and starts processing new files. You can access in\n"Get Operation Files".'),Object(r.b)("h3",{id:"roadmap"},"Roadmap"),Object(r.b)("p",null,"Today, you can to connect to these companies:"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},"John Deere (",Object(r.b)("a",Object(a.a)({parentName:"li"},{href:"https://medium.com/leaf-agriculture/how-to-use-leafs-api-to-retrieve-machinery-data-from-john-deere-fb1ba331d089"}),"Medium"),")"),Object(r.b)("li",{parentName:"ul"},"Climate FieldView (",Object(r.b)("a",Object(a.a)({parentName:"li"},{href:"https://medium.com/leaf-agriculture/how-to-use-leafs-api-to-retrieve-machinery-data-from-climate-fieldview-dda921f40291"}),"Medium"),")"),Object(r.b)("li",{parentName:"ul"},"CNHi"),Object(r.b)("li",{parentName:"ul"},"Trimble")),Object(r.b)("p",null,"Coming in the third quarter of 2020:"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},"Raven"),Object(r.b)("li",{parentName:"ul"},"AGCO")),Object(r.b)("p",null,"Coming in the fourth quarter of 2020:"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},"AgLeader"),Object(r.b)("li",{parentName:"ul"},"Stara")),Object(r.b)("h3",{id:"john-deere"},"John Deere"),Object(r.b)("p",null,"This section will show you how you can integrate Leaf's API with you John Deere\naccount and start using our operations service. Grab our ",Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"https://github.com/Leaf-Agriculture/Leaf-quickstart-Postman-collection"}),"quickstart"),"\nPostman collection and follow along!"),Object(r.b)("h4",{id:"1-get-john-deere-auth-url"},"1. Get John Deere auth URL"),Object(r.b)("p",null,"In Step 1 we will be generating tokens from John Deere. The goal In step 2 is we\nwill get our John Deere ",Object(r.b)("inlineCode",{parentName:"p"},"token_id")," and ",Object(r.b)("inlineCode",{parentName:"p"},"token_secret"),"."),Object(r.b)("h5",{id:"token-verifier"},"Token Verifier"),Object(r.b)("p",null,'In step 1 we will get a temporary "token verifier" from John Deere that confirms\nan user\u2019s authentication of your application to access their John Deere data and\ngenerate credentials. We get that verifier by going through their authentication\nflow (',Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"https://www.oauth.com/"}),"OAuth2"),"). Before generating the authentication URL, please:"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},"Update current value of ",Object(r.b)("inlineCode",{parentName:"li"},"jd_client_key")," to your app's client key on John Deere"),Object(r.b)("li",{parentName:"ul"},"Update current value of ",Object(r.b)("inlineCode",{parentName:"li"},"jd_client_secret")," to your app's client secret on John\nDeere"),Object(r.b)("li",{parentName:"ul"},"Update current value of ",Object(r.b)("inlineCode",{parentName:"li"},"jd_callback_url")," to your app's callback_url on John\nDeere")),Object(r.b)("p",null,"Then, to generate the authentication URL your application will send to your user\nso they can authorize access to their account files you can use the included\nstep 2 in the Postman Collection. Change ",Object(r.b)("inlineCode",{parentName:"p"},"client_key")," and ",Object(r.b)("inlineCode",{parentName:"p"},"client_ secret"),"\nvariables to yours received from John Deere when you created an app on your\ndeveloper account with them and ",Object(r.b)("inlineCode",{parentName:"p"},"redirect_uri"),' to a uri the "token verifier"\nwill be sent after the user authorizes your application. Hit ',Object(r.b)("em",{parentName:"p"},"Send"),"."),Object(r.b)("p",null,"Redirect your user to the url included in the response."),Object(r.b)("p",null,"They will authenticate and be redirected to the ",Object(r.b)("inlineCode",{parentName:"p"},"redirect_url"),"."),Object(r.b)("p",null,"Copy the entire url you were redirected to. It looks like:"),Object(r.b)("pre",null,Object(r.b)("code",Object(a.a)({parentName:"pre"},{}),"https://withleaf.io/?oauth_token=TOKEN&oauth_verifier=CODE\n")),Object(r.b)("p",null,"Paste it in the environment variable ",Object(r.b)("inlineCode",{parentName:"p"},"jd_response_url"),"."),Object(r.b)("h4",{id:"2-get-john-deere-tokens"},"2. Get John Deere Tokens"),Object(r.b)("p",null,"After updating the ",Object(r.b)("inlineCode",{parentName:"p"},"jd_response_url")," in Postman you can submit your credentials\nand receive your tokens."),Object(r.b)("p",null,"Hit ",Object(r.b)("em",{parentName:"p"},"Send")),Object(r.b)("p",null,Object(r.b)("inlineCode",{parentName:"p"},"token_id")," and ",Object(r.b)("inlineCode",{parentName:"p"},"token_secret_key")," will be automatically transferred to\n",Object(r.b)("inlineCode",{parentName:"p"},"jd_token_id")," and ",Object(r.b)("inlineCode",{parentName:"p"},"jd_token_secret")," environment variables and will be used in\nthe next step."),Object(r.b)("h4",{id:"3-add-john-deere-credentials"},"3. Add John Deere credentials"),Object(r.b)("p",null,"Now we can create a Developer-User pair credentials ID that will allow you to\naccess your user\u2019s John Deere data. We first add the John Deere credentials to\nLeaf API."),Object(r.b)("p",null,"Hit ",Object(r.b)("em",{parentName:"p"},"Send")),Object(r.b)("p",null,"All the info needed has already been filled automatically in Step 2."),Object(r.b)("p",null,"An ",Object(r.b)("inlineCode",{parentName:"p"},"id")," for the credentials you just created will be returned. This ",Object(r.b)("inlineCode",{parentName:"p"},"id")," will\nbe automatically transferred to the value of ",Object(r.b)("inlineCode",{parentName:"p"},"jd_credentials_id")," to be used in\nthe next step."),Object(r.b)("h3",{id:"climate-fieldview"},"Climate FieldView"),Object(r.b)("p",null,"Grab our ",Object(r.b)("a",Object(a.a)({parentName:"p"},{href:"https://github.com/Leaf-Agriculture/Leaf-quickstart-Postman-collection"}),"quickstart")," Postman collection and follow along!"),Object(r.b)("h4",{id:"1-get-climate-fieldview-auth-url"},"1. Get Climate FieldView auth URL"),Object(r.b)("p",null,"We will be generating a url to redirect your user to authenticate with Climate."),Object(r.b)("p",null,"Update environment variables ",Object(r.b)("inlineCode",{parentName:"p"},"cfv_client_id")," and ",Object(r.b)("inlineCode",{parentName:"p"},"cfv_client_secret")," to your\nClimate FieldView developer account credentials."),Object(r.b)("p",null,"Update environment variable ",Object(r.b)("inlineCode",{parentName:"p"},"cfv_redirect_url")," to your application's backend"),Object(r.b)("p",null,"Redirect your user to the script's output url."),Object(r.b)("p",null,"They will authenticate and be redirected to the ",Object(r.b)("inlineCode",{parentName:"p"},"redirect_uri"),"."),Object(r.b)("p",null,"A code will be sent to that ",Object(r.b)("inlineCode",{parentName:"p"},"cfv_redirect_url"),". We will need this code Step 2."),Object(r.b)("p",null,"Copy the code value."),Object(r.b)("p",null,"note: this code expires after 1 minute."),Object(r.b)("p",null,"Paste code value to environment variable ",Object(r.b)("inlineCode",{parentName:"p"},"cfv_code")),Object(r.b)("h4",{id:"2-get-climate-fieldview-tokens"},"2. Get Climate FieldView tokens"),Object(r.b)("p",null,'Hit "Send"'),Object(r.b)("p",null,"A lot of information will be returned. The important ones are ",Object(r.b)("inlineCode",{parentName:"p"},"access_token"),"\nand ",Object(r.b)("inlineCode",{parentName:"p"},"refresh_token"),". These will be automatically transferred to\n",Object(r.b)("inlineCode",{parentName:"p"},"cfv_access_token")," and ",Object(r.b)("inlineCode",{parentName:"p"},"cfv_refresh_token")," environment variables and will be\nused in the next step."),Object(r.b)("h4",{id:"3-add-climate-fieldview-credentials"},"3. Add Climate FieldView credentials"),Object(r.b)("p",null,'Now we can create a Developer-User pair credentials ID that will allow you to\naccess your user\u2019s Climate data. We first add the Climate credentials to Leaf\nAPI, to do that: Hit "Send"'),Object(r.b)("p",null,"An ",Object(r.b)("inlineCode",{parentName:"p"},"id")," for the credentials you just created will be returned. This ",Object(r.b)("inlineCode",{parentName:"p"},"id")," will\nbe automatically transferred to the value of ",Object(r.b)("inlineCode",{parentName:"p"},"cfv_credentials_id")," to be used in\nthe next step."),Object(r.b)("h3",{id:"leaf-user"},"Leaf User"),Object(r.b)("h4",{id:"create-leaf-user"},"Create Leaf User"),Object(r.b)("p",null,"Now we have to attach credentials to a Leaf User. To do so, we can create a\nLeaf user and attach our John Deere and/or Climate FieldView credentials via\nthe credentials id. We can also attach credentials from other companies to this\nsame user to query all available data by Grower/Farm/Field regardless of brand."),Object(r.b)("p",null,'Update (optional) fields "address", "email", "name" and "phone" with your\nuser\'s information.'),Object(r.b)("p",null,"We have automatically included our ",Object(r.b)("inlineCode",{parentName:"p"},"jd_credentials_id")," to this call and\nattached it to this user."),Object(r.b)("p",null,'Hit "Send"'),Object(r.b)("p",null,'Along with other information returned, there is an "id". This "id" is the\n',Object(r.b)("inlineCode",{parentName:"p"},"leaf_user_id")," that will be used in the next (final) Step to query and access\nfiles."),Object(r.b)("h4",{id:"update-leaf-user"},"Update Leaf User"),Object(r.b)("p",null,"To update a Leaf User, let's say to add another provider credentials or change\nthe user's address, we can use this PUT request. Since this method overwrites,\nremember to send all the user's information along with the information you want\nto add or update. For example, if you want to add John Deere credentials to a\nuser that already has ClimateFieldView credentials, remember to specify both\ncredentials ids."),Object(r.b)("h4",{id:"get-specific-leaf-user"},"Get specific Leaf User"),Object(r.b)("p",null,"Get specific Leaf User With this endpoint you can query all information on a\nspecific Leaf User, such as their address, email, credentials, etc. To do so,\nupdate the value of the environment variable ",Object(r.b)("inlineCode",{parentName:"p"},"leaf_user_id")," to the Leaf User id\nyou want to query."),Object(r.b)("h4",{id:"gel-all-leaf-users"},"Gel all Leaf Users"),Object(r.b)("p",null,"Get all Leaf Users With this endpoint you can query all information on all your\nLeaf Users, such as their address, email, credentials, etc. Just hit 'send'."),Object(r.b)("h3",{id:"query-operations-by-field"},"Query Operations by Field"),Object(r.b)("p",null,"To query all operations that happened in a specific field (step 2), we first\nneed to create that field (step 1). Then, Leaf will automatically detect\noperations of that field based on the operations' and on the field's\ncoordinates. This process usually takes about 30 minutes."),Object(r.b)("h4",{id:"1-create-field"},"1. Create Field"),Object(r.b)("p",null,"Here we need to specify a leafUserId (that will be the Leaf User owner of that\nfield), a externalId (that will be the name we give to the field) and the\ngeojson geometry of the field (location). After creating the field we can query\nit (step 2)"),Object(r.b)("h4",{id:"2-get-operations-ids-by-field"},"2. Get operations' ids by Field"),Object(r.b)("p",null,"To query all operations that happened in a specific field, just update the\nenvironment variable ",Object(r.b)("inlineCode",{parentName:"p"},"field_external_id")," to the field id you want to query\nfiles."),Object(r.b)("h3",{id:"merge-operation-files"},"Merge Operation Files"),Object(r.b)("h4",{id:"1-merge-files"},"1. Merge files"),Object(r.b)("p",null,"Merging files with Leaf is a very simple process. You just have to list, in the\nrequest json body, the ids of the files you want to merge. Make sure the\noperations are of the same type (",Object(r.b)("inlineCode",{parentName:"p"},"APPLIED")," or ",Object(r.b)("inlineCode",{parentName:"p"},"HARVESTED")," or ",Object(r.b)("inlineCode",{parentName:"p"},"PLANTED"),"), so the\nresults are consistent."),Object(r.b)("p",null,'After that, just hit "send" and an id for that merged file will be returned.\nYou can query that file as any other. It will be listed when you query for all\nfiles and can also be queried specifically by its id'),Object(r.b)("h4",{id:"2-query--access-specific-file"},"2. Query & access specific file"),Object(r.b)("p",null,'You can query a merged file as any other. It will be listed when you query for\nall files and can also be queried specifically by its id. So this request is\nthe same as seen on "Get Operation Files". You just have to update the\nenvironment variable "id" to the id of the merged file.'),Object(r.b)("p",null,"Keep in mind that merging files is processing-heavy and may take about 20\nminutes to finish."))}d.isMDXComponent=!0},153:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return h}));var a=n(0),i=n.n(a);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=i.a.createContext({}),d=function(e){var t=i.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=d(e.components);return i.a.createElement(s.Provider,{value:t},e.children)},b={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},p=i.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=d(n),p=a,h=u["".concat(l,".").concat(p)]||u[p]||b[p]||r;return n?i.a.createElement(h,o(o({ref:t},s),{},{components:n})):i.a.createElement(h,o({ref:t},s))}));function h(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,l=new Array(r);l[0]=p;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o.mdxType="string"==typeof e?e:a,l[1]=o;for(var s=2;s=0||(b[a]=t[a]);return b}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(b[a]=t[a])}return b}var i=b.a.createContext({}),l=function(t){var e=b.a.useContext(i),a=e;return t&&(a="function"==typeof t?t(e):O(O({},e),t)),a},g=function(t){var e=l(t.components);return b.a.createElement(i.Provider,{value:e},t.children)},p={inlineCode:"code",wrapper:function(t){var e=t.children;return b.a.createElement(b.a.Fragment,{},e)}},d=b.a.forwardRef((function(t,e){var a=t.components,r=t.mdxType,n=t.originalType,c=t.parentName,i=j(t,["components","mdxType","originalType","parentName"]),g=l(a),d=r,m=g["".concat(c,".").concat(d)]||g[d]||p[d]||n;return a?b.a.createElement(m,O(O({ref:e},i),{},{components:a})):b.a.createElement(m,O({ref:e},i))}));function m(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var n=a.length,c=new Array(n);c[0]=d;var O={};for(var j in e)hasOwnProperty.call(e,j)&&(O[j]=e[j]);O.originalType=t,O.mdxType="string"==typeof t?t:r,c[1]=O;for(var i=2;i Input Endpoints",description:"Beta - Input Endpoints",sidebar_label:"Endpoints"}),i={unversionedId:"beta_input_endpoints",id:"beta_input_endpoints",isDocsHomePage:!1,title:"Beta > Input Endpoints",description:"Beta - Input Endpoints",source:"@site/docs/beta_input_endpoints.md",permalink:"/docs/docs/beta_input_endpoints",editUrl:"https://github.com/Leaf-Agriculture/docs/tree/master/docs/beta_input_endpoints.md",sidebar_label:"Endpoints",sidebar:"docs",previous:{title:"Beta Features Overview",permalink:"/docs/docs/beta_features_overview"},next:{title:"Beta > Assets Endpoints",permalink:"/docs/docs/beta_assets_endpoints"}},o=[{value:"About",id:"about",children:[]},{value:"Products",id:"products",children:[{value:"Get all products",id:"get-all-products",children:[]},{value:"Get summarized products",id:"get-summarized-products",children:[]},{value:"Search for products",id:"search-for-products",children:[]},{value:"Get a product",id:"get-a-product",children:[]},{value:"Get matching products from an operation",id:"get-matching-products-from-an-operation",children:[]},{value:"Updated product matches",id:"updated-product-matches",children:[]},{value:"Get product matches historical",id:"get-product-matches-historical",children:[]}]},{value:"Varieties",id:"varieties",children:[{value:"Get all varieties",id:"get-all-varieties",children:[]},{value:"Get summarized varieties",id:"get-summarized-varieties",children:[]},{value:"Search for varieties",id:"search-for-varieties",children:[]}]},{value:"Tank Mixes",id:"tank-mixes",children:[{value:"Get all tank mixes",id:"get-all-tank-mixes",children:[]},{value:"Search for tank mixes",id:"search-for-tank-mixes",children:[]}]}],d={rightToc:o};function p(e){var t=e.components,a=Object(r.a)(e,["components"]);return Object(c.b)("wrapper",Object(n.a)({},d,a,{components:t,mdxType:"MDXLayout"}),Object(c.b)("h2",{id:"about"},"About"),Object(c.b)("p",null,"All HTTP methods should be prepended by this service's endpoint:"),Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{}),"https://api.withleaf.io/services/beta/api\n")),Object(c.b)("p",null,"See below the REST resources and their endpoints available in this service."),Object(c.b)("h2",{id:"products"},"Products"),Object(c.b)("p",null,Object(c.b)("strong",{parentName:"p"},"Endpoints")),Object(c.b)("table",null,Object(c.b)("thead",{parentName:"table"},Object(c.b)("tr",{parentName:"thead"},Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(c.b)("tbody",{parentName:"table"},Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-products"}),"Get all products")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"td"},"/products"))),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("a",Object(n.a)({parentName:"td"},{href:"#get-summarized-products"}),"Get summarized products")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/products/summary"))),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("a",Object(n.a)({parentName:"td"},{href:"#search-for-products"}),"Search for products")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"td"},"/products/search"))),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("a",Object(n.a)({parentName:"td"},{href:"#get-a-product"}),"Get a product")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"td"},"/products/{id}"))),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("a",Object(n.a)({parentName:"td"},{href:"#get-matching-products-from-an-operation"}),"Get matching products from an operation")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/products/matching/operations/{operationId}"))),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("a",Object(n.a)({parentName:"td"},{href:"#updated-product-matches"}),"Updated product matches")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(c.b)("inlineCode",{parentName:"td"},"/products/matching/operations/{operationId}/matches/{matchId}"))),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("a",Object(n.a)({parentName:"td"},{href:"#get-product-matches-historical"}),"Get product matches historical")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"td"},"/products/matching/operations/{operationId}/matches/{matchId}/historical"))))),Object(c.b)("h3",{id:"get-all-products"},"Get all products"),Object(c.b)("p",null,"\xa0",Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"p"},"/products")),Object(c.b)("p",null,"List of products from providers (for now only for John Deere) in a Leaf User level. This way, on this endpoint the user can search for all products that are available from traditional providers (e.g. John Deere), so here we do ",Object(c.b)("strong",{parentName:"p"},"not include")," specific providers such as Agrian and CDMS."),Object(c.b)("table",null,Object(c.b)("thead",{parentName:"table"},Object(c.b)("tr",{parentName:"thead"},Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Values"))),Object(c.b)("tbody",{parentName:"table"},Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"leafUserId")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"uuid of one of your users")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"provider")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"JohnDeere"))),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"size")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"an integer specifying the size of the page (max is 100)")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"page")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"an integer specifying the page being fetched (default is 0)")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"sort")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"the sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as ",Object(c.b)("inlineCode",{parentName:"td"},"asc")," or ",Object(c.b)("inlineCode",{parentName:"td"},"desc")," with ",Object(c.b)("inlineCode",{parentName:"td"},"asc")," being the default. Example: id, desc")))),Object(c.b)("h4",{id:"request-examples"},"Request examples"),Object(c.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(c.b)(s.a,{value:"js",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/api/products'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(c.b)(s.a,{value:"py",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/api/products'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(c.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/products'\n")))),Object(c.b)("h4",{id:"response"},"Response"),Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "07b3f270-8af8-11ee-b9d1-0242ac120002",\n "name": "Propiconazole",\n "registrant": "Tide International USA,Inc.",\n "productType": "Chemical",\n "labelProvider": "JohnDeere",\n "providerId": "020c55f6-8af8-11ee-b9d1-0242ac120002",\n "formulationType": "DRY",\n "leafUserId": "fb6fcda4-8af7-11ee-b9d1-0242ac120002",\n "registration": "0084229-00011-AA-0000000",\n "status": "ACTIVE",\n "carrier": true\n },\n ....\n]\n')),Object(c.b)("h3",{id:"get-summarized-products"},"Get summarized products"),Object(c.b)("p",null,"\xa0",Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/products/summary")),Object(c.b)("p",null,"List of products extracted from machine file."),Object(c.b)("table",null,Object(c.b)("thead",{parentName:"table"},Object(c.b)("tr",{parentName:"thead"},Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Values"))),Object(c.b)("tbody",{parentName:"table"},Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"name")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"part of the product name")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"page")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"an integer specifying the page being fetched (default is 0)")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"size")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"an integer specifying the size of the page (max is 100)")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"sort")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"the sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as ",Object(c.b)("inlineCode",{parentName:"td"},"asc")," or ",Object(c.b)("inlineCode",{parentName:"td"},"desc")," with ",Object(c.b)("inlineCode",{parentName:"td"},"asc")," being the default. Example: id, desc")))),Object(c.b)("h4",{id:"request-examples-1"},"Request examples"),Object(c.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(c.b)(s.a,{value:"js",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/api/users/{leafUserId}/products/summary'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(c.b)(s.a,{value:"py",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/products/summary'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(c.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/products/summary'\n")))),Object(c.b)("h4",{id:"response-1"},"Response"),Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "name": "Produto padr\xe3o",\n "leafUserId": "8bbe50a0-992c-11ee-b9d1-0242ac120002"\n },\n ....\n]\n')),Object(c.b)("h3",{id:"search-for-products"},"Search for products"),Object(c.b)("p",null,"\xa0",Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"p"},"/products/search")),Object(c.b)("p",null,"Search for products by name, partial values are supported. Agrian and CDMS products are currently available to everyone, and John Deere products from the Operation Center at the Leaf User level. "),Object(c.b)("table",null,Object(c.b)("thead",{parentName:"table"},Object(c.b)("tr",{parentName:"thead"},Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Values"))),Object(c.b)("tbody",{parentName:"table"},Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"name")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"part of the product name to be searched ",Object(c.b)("strong",{parentName:"td"},"(required)"))),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"maxResults")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"the number of results that should be returned (max value is 20). The default is 10")))),Object(c.b)("h4",{id:"request-examples-2"},"Request examples"),Object(c.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(c.b)(s.a,{value:"js",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/api/products/search'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(c.b)(s.a,{value:"py",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/api/products/search'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(c.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/products/search'\n")))),Object(c.b)("h4",{id:"response-2"},"Response"),Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "7d85c556-0ac5-4f0b-b7cc-b35ac559af8f",\n "name": "CompostX",\n "registration": "00000-00-00000",\n "registrant": "Leaf Company, LLC",\n "productType": "Dry",\n "formulationType": "Dry Flowable",\n "labelProvider": "CDMS",\n "productPageUrl": "https://www.cdms.net/ldat/",\n "labels": [\n {\n "name": "meE2000.pdf",\n "url": "https://www.cdms.net/ldat/meE2000.pdf"\n },\n ....\n ],\n "activeIngredient": [\n "Urea",\n "Calcium",\n ....\n ]\n },\n {\n "id": "81ffe756-1fd0-4d97-b2ec-e33b5232f507",\n "name": "CompostY",\n "registration": "00000-000",\n "registrant": "Agriscience",\n "productType": "Dry",\n "formulationType": "Dry Flowable",\n "labelProvider": "AGRIAN",\n "productPageUrl": "https://www.agrian.com/searchcenter/demonstration=00000",\n "labels": [\n {\n "name": "Label - 00-R000",\n "url": "https://www.agrian.com/pdfs/new/00000.pdf"\n },\n ....\n ],\n "activeIngredient": [\n "Roundup",\n "Glyphosate",\n ....\n ]\n },\n ....\n]\n')),Object(c.b)("h3",{id:"get-a-product"},"Get a product"),Object(c.b)("p",null,"\xa0",Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"p"},"/products/{id}")),Object(c.b)("p",null,"Get a product by its id. The data is obtained from different product databases."),Object(c.b)("h4",{id:"request-examples-3"},"Request examples"),Object(c.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(c.b)(s.a,{value:"js",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/api/products/{id}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(c.b)(s.a,{value:"py",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/api/products/{id}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(c.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/products/{id}'\n")))),Object(c.b)("h4",{id:"response-3"},"Response"),Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "81ffe756-1fd0-4d97-b2ec-e33b5232f507",\n "name": "GameOn",\n "registration": "62719-724",\n "registrant": "Corteva Agriscience",\n "productType": "Dry",\n "formulationType": "Dry Flowable",\n "labelProvider": "AGRIAN",\n "productPageUrl": "https://www.agrian.com/labelcenter/results.cfm?d=21666",\n "labels": [\n {\n "name": " Label - 03-R0718 ",\n "url": "https://www.agrian.com/pdfs/current/Badge_X2_FungicideBactericide_Label1p.pdf"\n },\n ....\n ]\n}\n')),Object(c.b)("h3",{id:"get-matching-products-from-an-operation"},"Get matching products from an operation"),Object(c.b)("p",null,"\xa0",Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"p"},"/products/matching/operations/{operationId}")),Object(c.b)("p",null,"This endpoint can be used as the input validator, getting the standard products that best match the products from a Field Operation. Information such as the registration number and labels can be obtained from ",Object(c.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/beta_input_endpoints#get-a-product"}),"this endpoint")," using the ",Object(c.b)("inlineCode",{parentName:"p"},"id"),"."),Object(c.b)("h4",{id:"request-examples-4"},"Request examples"),Object(c.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(c.b)(s.a,{value:"js",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/api/products/matching/operations/{operationId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(c.b)(s.a,{value:"py",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/api/products/matching/operations/{operationId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(c.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/products/matching/operations/{operationId}'\n")))),Object(c.b)("h4",{id:"response-4"},"Response"),Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "37159c45-4c1f-48e4-aa87-90b34cc6e789",\n "name": "ams",\n "productId": "e5b91778-0714-4e1f-850c-b458d1bdc7ed",\n "matchDetails": {\n "status": "PREDICTED",\n "score": 14.354036\n }\n },\n {\n "id": "7fb70242-498b-42c1-92c3-a7d2361d2125",\n "name": "counter",\n "productId": "a85c1d0d-b673-46aa-a3a3-31cb65f57598",\n "matchDetails": {\n "status": "VALIDATED"\n }\n },\n ....\n]\n')),Object(c.b)("h3",{id:"updated-product-matches"},"Updated product matches"),Object(c.b)("p",null,"\xa0",Object(c.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(c.b)("inlineCode",{parentName:"p"},"/products/matching/operations/{id}/matches/{matchId}")," "),Object(c.b)("p",null,"Updated Leaf predictions or approves them."),Object(c.b)("h4",{id:"request-body"},"Request body"),Object(c.b)("p",null,"To approve Leaf prediction:"),Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "status": "VALIDATED"\n}\n')),Object(c.b)("p",null,"Or, to change prediction:"),Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "productId": "expectedProductID"\n}\n')),Object(c.b)("h4",{id:"request-examples-5"},"Request examples"),Object(c.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(c.b)(s.a,{value:"js",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/beta/api/products/matching/operations/{operationId}/matches/{matchId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n status: \"VALIDATED\"\n}\n\naxios.get(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(c.b)(s.a,{value:"py",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/api/products/matching/operations/{operationId}/matches/{matchId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n status: \"VALIDATED\"\n}\n\nresponse = requests.get(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(c.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -d '{ \"status\": \"VALIDATED\" }' \\\n 'https://api.withleaf.io/services/beta/api/products/matching/operations/{operationId}/matches/{matchId}'\n")))),Object(c.b)("h4",{id:"response-5"},"Response"),Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "uidd-match-0001",\n "name": "Ta35",\n "productId": "uidd-prd-1001",\n "matchDetails": {\n "score": 91,\n "status": "PREDICTED"\n }\n },\n {\n "id": "uidd-match-0002",\n "name": "Talisman",\n "productId": "uidd-prd-1003",\n "matchDetails": {\n "status": "VALIDATED"\n }\n }\n]\n')),Object(c.b)("h3",{id:"get-product-matches-historical"},"Get product matches historical"),Object(c.b)("p",null,"\xa0",Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"p"},"/products/matching/operations/{operationId}/matches/{matchId}/historical")),Object(c.b)("p",null,"Get a product's change history."),Object(c.b)("h4",{id:"request-examples-6"},"Request examples"),Object(c.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(c.b)(s.a,{value:"js",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/api/products/matching/operations/{operationId}/matches/{matchId}/historical'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(c.b)(s.a,{value:"py",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/api/products/matching/operations/{operationId}/matches/{matchId}/historical'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(c.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/products/matching/operations/{operationId}/matches/{matchId}/historical'\n")))),Object(c.b)("h4",{id:"response-6"},"Response"),Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "matchId": "uidd-match-0002",\n "name": "Talisman",\n "productId": "uidd-prd-1003",\n "matchDetails": {\n "status": "PREDICTED",\n "score": 8.225217\n },\n "historicalTime": "2023-12-19T13:18:44.709Z"\n }\n]\n')),Object(c.b)("h2",{id:"varieties"},"Varieties"),Object(c.b)("table",null,Object(c.b)("thead",{parentName:"table"},Object(c.b)("tr",{parentName:"thead"},Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(c.b)("tbody",{parentName:"table"},Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-varieties"}),"Get all varieties")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"td"},"/varieties"))),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("a",Object(n.a)({parentName:"td"},{href:"#get-summarized-varieties"}),"Get summarized varieties")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/varieties/summary"))),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("a",Object(n.a)({parentName:"td"},{href:"#search-for-varieties"}),"Search for varieties")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"td"},"/varieties/search"))))),Object(c.b)("h3",{id:"get-all-varieties"},"Get all varieties"),Object(c.b)("p",null,"\xa0",Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"p"},"/varieties")),Object(c.b)("p",null,"List of varieties available from providers (for now only for John Deere)."),Object(c.b)("table",null,Object(c.b)("thead",{parentName:"table"},Object(c.b)("tr",{parentName:"thead"},Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Values"))),Object(c.b)("tbody",{parentName:"table"},Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"leafUserId")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"uuid of one of your users")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"provider")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"JohnDeere"))),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"size")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"an integer specifying the size of the page (max is 100)")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"page")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"an integer specifying the page being fetched (default is 0)")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"sort")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"the sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as ",Object(c.b)("inlineCode",{parentName:"td"},"asc")," or ",Object(c.b)("inlineCode",{parentName:"td"},"desc")," with ",Object(c.b)("inlineCode",{parentName:"td"},"asc")," being the default. Example: id, desc")))),Object(c.b)("h4",{id:"request-examples-7"},"Request examples"),Object(c.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(c.b)(s.a,{value:"js",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/api/varieties'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(c.b)(s.a,{value:"py",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/api/varieties'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(c.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/varieties'\n")))),Object(c.b)("h4",{id:"response-7"},"Response"),Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "crops": [\n "ALFALFA"\n ],\n "name": "Master Piece",\n "companyName": "Simplot",\n "status": "ACTIVE",\n "leafUserId": "028c30fa-6d2a-11ee-b962-0242ac120002",\n "provider": "JohnDeere",\n "providerId": "8e1e0920-1265-4066-8067-8ce2ce5012b2"\n },\n ....\n]\n')),Object(c.b)("h3",{id:"get-summarized-varieties"},"Get summarized varieties"),Object(c.b)("p",null,"\xa0",Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/varieties/summary")),Object(c.b)("p",null,"List of varieties extracted from machine file."),Object(c.b)("table",null,Object(c.b)("thead",{parentName:"table"},Object(c.b)("tr",{parentName:"thead"},Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Values"))),Object(c.b)("tbody",{parentName:"table"},Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"name")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"part of the product name")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"crops")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"desired crop name")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"page")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"an integer specifying the page being fetched (default is 0)")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"size")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"an integer specifying the size of the page (max is 100)")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"sort")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"the sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as ",Object(c.b)("inlineCode",{parentName:"td"},"asc")," or ",Object(c.b)("inlineCode",{parentName:"td"},"desc")," with ",Object(c.b)("inlineCode",{parentName:"td"},"asc")," being the default. Example: id, desc")))),Object(c.b)("h4",{id:"request-examples-8"},"Request examples"),Object(c.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(c.b)(s.a,{value:"js",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/api/users/{leafUserId}/varieties/summary'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(c.b)(s.a,{value:"py",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/varieties/summary'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(c.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/varieties/summary'\n")))),Object(c.b)("h4",{id:"response-8"},"Response"),Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "680ff073-18d0-4951-ba69-b2ca0b098bc3",\n "name": "corn variety 2",\n "leafUserId": "028c30fa-6d2a-11ee-b962-0242ac120002",\n "crops": [\n "corn"\n ]\n },\n {\n "id": "1544de06-682d-4549-92a3-a06b2ccdc96d",\n "name": "corn variety 2 (1)",\n "leafUserId": "8e1e0920-1265-4066-8067-8ce2ce5012b2",\n "crops": [\n "corn"\n ]\n },\n ....\n]\n')),Object(c.b)("h3",{id:"search-for-varieties"},"Search for varieties"),Object(c.b)("p",null,"\xa0",Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"p"},"/varieties/search")),Object(c.b)("p",null,"Search for varieties by name, partial values are supported. Varieties from John Deere Operation Center are available at the Leaf User level. "),Object(c.b)("table",null,Object(c.b)("thead",{parentName:"table"},Object(c.b)("tr",{parentName:"thead"},Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Values"))),Object(c.b)("tbody",{parentName:"table"},Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"name")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"part of the variety name to be searched ",Object(c.b)("strong",{parentName:"td"},"(required)"))),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"maxResults")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"the number of results that should be returned (max value is 20). The default is 10")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"crop")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"the name of the crop of the varieties of interest")))),Object(c.b)("h4",{id:"request-examples-9"},"Request examples"),Object(c.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(c.b)(s.a,{value:"js",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/api/varieties/search'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(c.b)(s.a,{value:"py",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/api/varieties/search'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(c.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/varieties/search'\n")))),Object(c.b)("h4",{id:"response-9"},"Response"),Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",\n "crops": [\n "ALFALFA"\n ],\n "name": "Master Piece",\n "companyName": "Simplot",\n "status": "ACTIVE",\n "leafUserId": "028c30fa-6d2a-11ee-b962-0242ac120002",\n "provider": "JohnDeere",\n "providerId": "8e1e0920-1265-4066-8067-8ce2ce5012b2"\n },\n ....\n]\n')),Object(c.b)("h2",{id:"tank-mixes"},"Tank Mixes"),Object(c.b)("table",null,Object(c.b)("thead",{parentName:"table"},Object(c.b)("tr",{parentName:"thead"},Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(c.b)("tbody",{parentName:"table"},Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-varieties"}),"Get all tank mixes")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"td"},"/tankMixes"))),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("a",Object(n.a)({parentName:"td"},{href:"#search-for-varieties"}),"Search for tank mixes")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"td"},"/tankMixes/search"))))),Object(c.b)("h3",{id:"get-all-tank-mixes"},"Get all tank mixes"),Object(c.b)("p",null,"\xa0",Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"p"},"/tankMixes")),Object(c.b)("p",null,"List of tank mixes available from providers (for now only for John Deere)."),Object(c.b)("table",null,Object(c.b)("thead",{parentName:"table"},Object(c.b)("tr",{parentName:"thead"},Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Values"))),Object(c.b)("tbody",{parentName:"table"},Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"leafUserId")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"uuid of one of your users")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"provider")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"JohnDeere"))),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"size")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"an integer specifying the size of the page (max is 100)")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"page")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"an integer specifying the page being fetched (default is 0)")),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"sort")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"the sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as ",Object(c.b)("inlineCode",{parentName:"td"},"asc")," or ",Object(c.b)("inlineCode",{parentName:"td"},"desc")," with ",Object(c.b)("inlineCode",{parentName:"td"},"asc")," being the default. Example: id, desc")))),Object(c.b)("h4",{id:"request-examples-10"},"Request examples"),Object(c.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(c.b)(s.a,{value:"js",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/api/tankMixes'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(c.b)(s.a,{value:"py",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/api/tankMixes'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(c.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/tankMixes'\n")))),Object(c.b)("h4",{id:"response-10"},"Response"),Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "abc59ca6-937c-11ee-b9d1-0242ac120002",\n "name": "TankTest1",\n "providerId": "b74878dc-937c-11ee-b9d1-0242ac120002",\n "notes": null,\n "solutionRate": {\n "valueAsDouble": 5,\n "unit": "gal1ac-1",\n "vrDomainId": "vrSolutionRateLiquid"\n },\n "formulationType": "LIQUID",\n "targetCrops": [\n "PINEAPPLE"\n ],\n "carrier": {\n "id": "c0cb84d0-937c-11ee-b9d1-0242ac120002",\n "name": "Water",\n "labelProvider": "JohnDeere",\n "registrant": "GENERIC",\n "registration": null,\n "distributor": null,\n "productType": "ADDITIVE",\n "formulationType": "LIQUID",\n "productPageUrl": null,\n "labels": null,\n "activeIngredient": null,\n "carrier": true,\n "status": "ACTIVE",\n "providerId": "e0daf77e-937c-11ee-b9d1-0242ac120002",\n "leafUserId": "cd06377c-937c-11ee-b9d1-0242ac120002"\n },\n "components": [\n {\n "id": "d1fb3aac-937c-11ee-b9d1-0242ac120002",\n "name": "Brandt Big Foot SS",\n "labelProvider": "JohnDeere",\n "registrant": "Brandt Consolidated, Inc.",\n "registration": null,\n "distributor": null,\n "productType": "ADDITIVE",\n "formulationType": "DRY",\n "productPageUrl": null,\n "labels": null,\n "activeIngredient": null,\n "carrier": false,\n "status": "ACTIVE",\n "providerId": "06da2738-937d-11ee-b9d1-0242ac120002",\n "leafUserId": "cd06377c-937c-11ee-b9d1-0242ac120002"\n },\n {\n "id": "eaee0878-937c-11ee-b9d1-0242ac120002",\n "name": "Ferti-Phos Mg 0-25-0",\n "labelProvider": "JohnDeere",\n "registrant": "Fertilizer Company of Arizona, Inc.",\n "registration": null,\n "distributor": null,\n "productType": "FERTILIZER",\n "formulationType": "LIQUID",\n "productPageUrl": null,\n "labels": null,\n "activeIngredient": null,\n "carrier": true,\n "status": "ACTIVE",\n "providerId": "0e0f1c66-937d-11ee-b9d1-0242ac120002",\n "leafUserId": "cd06377c-937c-11ee-b9d1-0242ac120002"\n }\n ],\n "status": "ACTIVE",\n "provider": "JohnDeere",\n "leafUserId": "cd06377c-937c-11ee-b9d1-0242ac120002"\n },\n ....\n]\n')),Object(c.b)("h3",{id:"search-for-tank-mixes"},"Search for tank mixes"),Object(c.b)("p",null,"\xa0",Object(c.b)("span",{class:"badge badge--success"},"GET")," ",Object(c.b)("inlineCode",{parentName:"p"},"/tankMixes/search")),Object(c.b)("p",null,"Search for tank mixes by name, partial values are supported. Tank mix from John Deere Operation Center are available at the Leaf User level. "),Object(c.b)("table",null,Object(c.b)("thead",{parentName:"table"},Object(c.b)("tr",{parentName:"thead"},Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(c.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Values"))),Object(c.b)("tbody",{parentName:"table"},Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"name")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"part of the tank mix name to be searched ",Object(c.b)("strong",{parentName:"td"},"(required)"))),Object(c.b)("tr",{parentName:"tbody"},Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(c.b)("inlineCode",{parentName:"td"},"maxResults")),Object(c.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"the number of results that should be returned (max value is 20). The default is 10")))),Object(c.b)("h4",{id:"request-examples-11"},"Request examples"),Object(c.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(c.b)(s.a,{value:"js",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/api/tankMixes/search'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(c.b)(s.a,{value:"py",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/api/tankMixes/search'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(c.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/api/tankMixes/search'\n")))),Object(c.b)("h4",{id:"response-11"},"Response"),Object(c.b)("pre",null,Object(c.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "abc59ca6-937c-11ee-b9d1-0242ac120002",\n "name": "TankTest1",\n "providerId": "b74878dc-937c-11ee-b9d1-0242ac120002",\n "notes": null,\n "solutionRate": {\n "valueAsDouble": 5,\n "unit": "gal1ac-1",\n "vrDomainId": "vrSolutionRateLiquid"\n },\n "formulationType": "LIQUID",\n "targetCrops": [\n "PINEAPPLE"\n ],\n "carrier": {\n "id": "c0cb84d0-937c-11ee-b9d1-0242ac120002",\n "name": "Water",\n "labelProvider": "JohnDeere",\n "registrant": "GENERIC",\n "registration": null,\n "distributor": null,\n "productType": "ADDITIVE",\n "formulationType": "LIQUID",\n "productPageUrl": null,\n "labels": null,\n "activeIngredient": null,\n "carrier": true,\n "status": "ACTIVE",\n "providerId": "e0daf77e-937c-11ee-b9d1-0242ac120002",\n "leafUserId": "cd06377c-937c-11ee-b9d1-0242ac120002"\n },\n "components": [\n {\n "id": "d1fb3aac-937c-11ee-b9d1-0242ac120002",\n "name": "Brandt Big Foot SS",\n "labelProvider": "JohnDeere",\n "registrant": "Brandt Consolidated, Inc.",\n "registration": null,\n "distributor": null,\n "productType": "ADDITIVE",\n "formulationType": "DRY",\n "productPageUrl": null,\n "labels": null,\n "activeIngredient": null,\n "carrier": false,\n "status": "ACTIVE",\n "providerId": "06da2738-937d-11ee-b9d1-0242ac120002",\n "leafUserId": "cd06377c-937c-11ee-b9d1-0242ac120002"\n },\n {\n "id": "eaee0878-937c-11ee-b9d1-0242ac120002",\n "name": "Ferti-Phos Mg 0-25-0",\n "labelProvider": "JohnDeere",\n "registrant": "Fertilizer Company of Arizona, Inc.",\n "registration": null,\n "distributor": null,\n "productType": "FERTILIZER",\n "formulationType": "LIQUID",\n "productPageUrl": null,\n "labels": null,\n "activeIngredient": null,\n "carrier": true,\n "status": "ACTIVE",\n "providerId": "0e0f1c66-937d-11ee-b9d1-0242ac120002",\n "leafUserId": "cd06377c-937c-11ee-b9d1-0242ac120002"\n }\n ],\n "status": "ACTIVE",\n "provider": "JohnDeere",\n "leafUserId": "cd06377c-937c-11ee-b9d1-0242ac120002"\n },\n ....\n]\n')))}p.isMDXComponent=!0},153:function(e,t,a){"use strict";a.d(t,"a",(function(){return d})),a.d(t,"b",(function(){return O}));var n=a(0),r=a.n(n);function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function b(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var i=r.a.createContext({}),o=function(e){var t=r.a.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},d=function(e){var t=o(e.components);return r.a.createElement(i.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},u=r.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,c=e.originalType,b=e.parentName,i=l(e,["components","mdxType","originalType","parentName"]),d=o(a),u=n,O=d["".concat(b,".").concat(u)]||d[u]||p[u]||c;return a?r.a.createElement(O,s(s({ref:t},i),{},{components:a})):r.a.createElement(O,s({ref:t},i))}));function O(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var c=a.length,b=new Array(c);b[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:n,b[1]=s;for(var i=2;i + + + + + + + +Leaf Link > Endpoints | Leaf + + + + + + + + + + + + + +
+

Leaf Link > Endpoints

About

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/usermanagement/api

See below the REST resources and their endpoints available in this service.

API key

The API keys are the required authentication info for the Leaf widgets. It is created at a Leaf user level.

Endpoints

DescriptionEndpoints
Get all Leaf user API keysGET /api-keys
Create a Leaf user API keyPOST /api-keys
Revoke a Leaf user API keyDELETE /api-keys

Get all Leaf user API keys

 GET /api-keys

Get all API keys from a Leaf user.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/api-keys?leafUserId={leafUserId}'
Response
[
{
"id": "uuid",
"key": "xxxx...xxxx",
"leafUserId": "uuid",
"expiresAt": "2024-04-25T18:32:25.530259",
"description": "test",
"valid": true
},
{
"id": "uuid",
"key": "xxxx...xxxx",
"leafUserId": "uuid",
"expiresAt": "2024-04-25T18:36:37.965906",
"description": "test",
"revokedAt": "2023-04-26T21:27:55.674731",
"valid": false
}
]

Create a Leaf user API key

 POST /api-keys

Creates a Leaf user API key.

Request body

It is requires few properties:

{
"leafUserId": "string",
"expiresIn": int,
"description": "string"
}
  • leafUserId: leaf user Id
  • expiresIn: time to expiration, in seconds. The minimum allowed value is 900 (15 minutes). The default value is one year.
  • description: description to identify the API Key

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "leafUserId": "string", "expiresIn": 900, "description": "string" }'
'https://api.withleaf.io/services/usermanagement/api/api-keys'
Response
{
"key": "xxxxxxx",
"expiresAt": "2024-04-25T18:36:37.965906",
"valid": true
}

Revoke a Leaf user API key

 DELETE /api-keys

Revokes a Leaf user API key.

Request examples

curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/api-keys/{apiKeyId}'

Providers application info

This section is about your application information from the provider, basically related to the required properties for each one, like the client ID, keys, and secrets.

Provider setup

Setting up the provider application information is mandatory to use the provider in the authentication widgets/links from Leaf Link.

AgLeader

To enable AgLeader as a provider in the widget you need to have your application already registered with AgLeader. You can find more info on how to create a developer account here.

Endpoints

DescriptionEndpoints
Get all AgLeader app informationGET /app-keys/AgLeader
Get an AgLeader app informationGET /app-keys/AgLeader/{appName}
Create an AgLeader app informationPOST /app-keys/AgLeader/{appName}
Update an AgLeader app informationPUT /app-keys/AgLeader/{appName}
Delete an AgLeader app informationDELETE /app-keys/AgLeader/{appName}

Get all AgLeader app information

 GET /app-keys/AgLeader

Get all AgLeader app information from the API Owner.

Request examples
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader'
Response
[
{
"provider": "providerName",
"appName": "yourAppName",
"clientEnvironment": "PRODUCTION"
},
{
"provider": "providerName",
"appName": "yourAppName",
"clientEnvironment": "PRODUCTION"
}
]

Get an AgLeader app information

 GET /app-keys/AgLeader/{appName}

Get an AgLeader app information from the API Owner.

Request examples
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}'
Response
{
"provider": "providerName",
"appName": "yourAppName",
"clientEnvironment": "PRODUCTION"
}

Create an AgLeader app information

 POST /app-keys/AgLeader/{appName}

Create an AgLeader app information.

Request body
{
"privateKey": "string",
"publicKey": "string"
}
Request examples
curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "privateKey": "string", "publicKey": "string" }'
'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}'

Update an AgLeader app information

 PUT /app-keys/AgLeader/{appName}

Update an AgLeader app information.

Request body
{
"privateKey": "string",
"publicKey": "string"
}
Request examples
curl -X PUT \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "privateKey": "string", "publicKey": "string" }'
'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}'

Delete an AgLeader app information

 DELETE /app-keys/AgLeader/{appName}

Delete an AgLeader app information.

Request examples
curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}'

Climate FieldView

To enable Climate FieldView as a provider in the widget you need to have your application already registered with Climate FieldView. You can find more info on how to create a developer account here.

Endpoints

DescriptionEndpoints
Get all Climate FieldView app informationGET /app-keys/ClimateFieldView
Get a Climate FieldView app informationGET /app-keys/ClimateFieldView/{appName}
Create a Climate FieldView app informationPOST /app-keys/ClimateFieldView/{appName}
Update a Climate FieldView app informationPUT /app-keys/ClimateFieldView/{appName}
Delete a Climate FieldView app informationDELETE /app-keys/ClimateFieldView/{appName}

Get all Climate FieldView app information

 GET /app-keys/ClimateFieldView

Get all Climate FieldView app information from the API Owner.

Request examples
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView'
Response
[
{
"provider": "providerName",
"appName": "yourAppName",
"clientEnvironment": "PRODUCTION"
},
{
"provider": "providerName",
"appName": "yourAppName",
"clientEnvironment": "PRODUCTION"
}
]

Get a Climate FieldView app information

 GET /app-keys/ClimateFieldView/{appName}

Get a Climate FieldView app information from the API Owner.

Request examples
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}'
Response
{
"provider": "providerName",
"appName": "yourAppName",
"clientEnvironment": "PRODUCTION"
}

Create a Climate FieldView app information

 POST /app-keys/ClimateFieldView/{appName}

Create a Climate FieldView app information.

Request body
{
"apiKey": "string",
"clientId": "string",
"clientSecret": "string"
}
Request examples
curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "apiKey": "string", "clientId": "string", "clientSecret": "string" }'
'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}'

Update a Climate FieldView app information

 PUT /app-keys/ClimateFieldView/{appName}

Update a Climate FieldView app information.

Request body
{
"apiKey": "string",
"clientId": "string",
"clientSecret": "string"
}
Request examples
curl -X PUT \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "apiKey": "string", "clientId": "string", "clientSecret": "string" }'
'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}'

Delete a Climate FieldView app information

 DELETE /app-keys/ClimateFieldView/{appName}

Delete a Climate FieldView app information.

Request examples
curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}'

CNHI

To enable CNHI as a provider in the widget you need to have your application already registered with CNHI. You can find more info on how to create a developer account here.

Integration requirements

https://widget.withleaf.io

The Leaf widget URL must be registered as a valid "App OAuth Callback URL(s)" in your CNHi application. Check this section for more information.

Endpoints

DescriptionEndpoints
Get all CNHI app informationGET /app-keys/CNHI
Get a CNHI app informationGET /app-keys/CNHI/{appName}/{clientEnvironment}
Create a CNHI app informationPOST /app-keys/CNHI/{appName}/{clientEnvironment}
Update a CNHI app informationPUT /app-keys/CNHI/{appName}/{clientEnvironment}
Delete a CNHI app informationDELETE /app-keys/CNHI/{appName}/{clientEnvironment}

Get all CNHI app information

 GET /app-keys/CNHI

Get all CNHI app information from the API Owner.

Request examples
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI'
Response
[
{
"provider": "providerName",
"appName": "yourAppName",
"clientEnvironment": "STAGE or PRODUCTION"
},
{
"provider": "providerName",
"appName": "yourAppName",
"clientEnvironment": "STAGE or PRODUCTION"
}
]

Get a CNHI app information

 GET /app-keys/CNHI/{appName}/{clientEnvironment}

Get a CNHI app information from the API Owner.

Request examples
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}'
Response
{
"provider": "providerName",
"appName": "yourAppName",
"clientEnvironment": "STAGE or PRODUCTION"
}

Create a CNHI app information

 POST /app-keys/CNHI/{appName}/{clientEnvironment}

Create a CNHI app information.

Request body
{
"clientId": "string",
"clientSecret": "string",
"subscriptionKey": "string"
}
Request examples
curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "clientId": "string", "clientSecret": "string", "subscriptionKey": "string" }'
'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}'

Update a CNHI app information

 PUT /app-keys/CNHI/{appName}/{clientEnvironment}

Update a CNHI app information.

Request body
{
"clientId": "string",
"clientSecret": "string",
"subscriptionKey": "string"
}
Request examples
curl -X PUT \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "clientId": "string", "clientSecret": "string", "subscriptionKey": "string" }'
'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}'

Delete a CNHI app information

 DELETE /app-keys/CNHI/{appName}/{clientEnvironment}

Delete a CNHI app information.

Request examples
curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}'

John Deere

To enable John Deere as a provider in the widget you need to have your application already registered with John Deere. You can find more info on how to create a developer account here.

Integration requirements

https://widget.withleaf.io

The Leaf widget URL must be registered as a valid "Redirect URI" in your John Deere application. Check this section for more information.

Endpoints

DescriptionEndpoints
Get all John Deere app informationGET /app-keys/JohnDeere
Get a John Deere app informationGET /app-keys/JohnDeere/{appName}/{clientEnvironment}
Create a John Deere app informationPOST /app-keys/JohnDeere/{appName}/{clientEnvironment}
Update a John Deere app informationPUT /app-keys/JohnDeere/{appName}/{clientEnvironment}
Delete a John Deere app informationDELETE /app-keys/JohnDeere/{appName}/{clientEnvironment}

Get all John Deere app information

 GET /app-keys/JohnDeere

Get all John Deere app information from the API Owner.

Request examples
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere'
Response
[
{
"provider": "providerName",
"appName": "yourAppName",
"clientEnvironment": "STAGE or PRODUCTION"
},
{
"provider": "providerName",
"appName": "yourAppName",
"clientEnvironment": "STAGE or PRODUCTION"
}
]

Get a John Deere app information

 GET /app-keys/JohnDeere/{appName}/{clientEnvironment}

Get a John Deere app information from the API Owner.

Request examples
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}'
Response
{
"provider": "providerName",
"appName": "yourAppName",
"clientEnvironment": "STAGE or PRODUCTION"
}

Create a John Deere app information

 POST /app-keys/JohnDeere/{appName}/{clientEnvironment}

Create a John Deere app information.

Request body
{
"clientKey": "string",
"clientSecret": "string"
}
Request examples
curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "clientKey": "string", "clientSecret": "string" }'
'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}'

Update a John Deere app information

 PUT /app-keys/JohnDeere/{appName}/{clientEnvironment}

Update a John Deere app information.

Request body
{
"clientKey": "string",
"clientSecret": "string"
}
Request examples
curl -X PUT \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "clientKey": "string", "clientSecret": "string" }'
'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}'

Delete a John Deere app information

 DELETE /app-keys/JohnDeere/{appName}/{clientEnvironment}

Delete a John Deere app information.

Request examples
curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}'

Trimble

To enable Trimble as a provider in the widget you need to have your application already registered with Trimble. You can find more info on how to create a developer account here.

Integration requirements

https://widget.withleaf.io

The Leaf widget URL must be registered as a valid "Authentication Callback URL" in your Trimble application. Check this section for more information.

Endpoints

DescriptionEndpoints
Get all Trimble app informationGET /app-keys/Trimble
Get a Trimble app informationGET /app-keys/Trimble/{appName}
Create a Trimble app informationPOST /app-keys/Trimble/{appName}
Update a Trimble app informationPUT /app-keys/Trimble/{appName}
Delete a Trimble app informationDELETE /app-keys/Trimble/{appName}

Get all Trimble app information

 GET /app-keys/Trimble

Get all Trimble app information from the API Owner.

Request examples
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble'
Response
[
{
"provider": "providerName",
"appName": "yourAppName",
"clientEnvironment": "PRODUCTION"
},
{
"provider": "providerName",
"appName": "yourAppName",
"clientEnvironment": "PRODUCTION"
}
]

Get a Trimble app information

 GET /app-keys/Trimble/{appName}

Get a Trimble app information from the API Owner.

Request examples
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}'
Response
{
"provider": "providerName",
"appName": "yourAppName",
"clientEnvironment": "PRODUCTION"
}

Create a Trimble app information

 POST /app-keys/Trimble/{appName}

Create a Trimble app information.

Request body
{
"applicationName": "string",
"clientId": "string",
"clientSecret": "string"
}
Request examples
curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "applicationName": "string", "clientId": "string", "clientSecret": "string" }'
'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}'

Update a Trimble app information

 PUT /app-keys/Trimble/{appName}

Update a Trimble app information.

Request body
{
"applicationName": "string",
"clientId": "string",
"clientSecret": "string"
}
Request examples
curl -X PUT \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "applicationName": "string", "clientId": "string", "clientSecret": "string" }'
'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}'

Delete a Trimble app information

 DELETE /app-keys/Trimble/{appName}

Delete a Trimble app information.

Request examples
curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}'
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/Link_file_upload/index.html b/docs/Link_file_upload/index.html new file mode 100644 index 000000000..4dc72eaca --- /dev/null +++ b/docs/Link_file_upload/index.html @@ -0,0 +1,48 @@ + + + + + + + + +Leaf File Upload Link | Leaf + + + + + + + + + + + + + +
+

Leaf File Upload Link

Overview

Leaf's File Upload Link is a widget that allows your customers to upload different machine file formats. These files will then get converted into a consistent output using the Leaf API.

File upload widget

Beta

This is a beta feature.

How it works

The user can add files using the file picker from the Browse button or drop files in the Drag & drop zone. Your files must be in a zip file.

During the upload, the users can see the progress of the upload and they are able to cancel the upload process for the pending files.

Requirements

In addition to being authenticated, you must have at least one Leaf user created. Learn more here.

Get started

1. Sign in with a Leaf account

You will need a Leaf account. If you don't have one yet, you can create it here.

2. Get an access token

To use the widget you will need a Leaf token. Use our authentication guide to know how it works.

Tutorial

Angular

tip

Here you can run a live use case demo! +It will only be necessary to replace your information in the .html component.

To add this Leaf widget in an Angular application, you can use the @withleaf/leaf-link-angular library, which is a JavaScript library that provides all Leaf UI Widgets. +Here are the general steps to get started:

  1. Install the @withleaf/leaf-link-angular package using npm:
npm i @withleaf/leaf-link-angular
  1. Import the library in your component or module file:
import { FileUploadModule } from '@withleaf/leaf-link-angular';
  1. Add the component to the HTML. Make sure you already created the Leaf user API key (apiKey); you need to specify both the Leaf User API Key and the Leaf User ID (leafUser) in the required properties in the HTML component. +Check all the properties available on the reference here.
<div class="content" role="main">
<file-upload
apiKey="Your_API_Key"
leafUser="Your_Leaf_User"
title="Your_Title"
[filesTimeRange]="30"
companyName="Your_Company_Name"
companyLogo="assets/leafLogo.svg"
></file-upload>
</div>

React

tip

Here you can run a live use case demo! +It will only be necessary to replace your information in the App.tsx file.

To add this Leaf widget in a React application, you can use the @withleaf/leaf-link-react library, which is a JavaScript library that provides all Leaf UI Widgets. +Here are the general steps to get started:

  1. Install the @withleaf.io/leaf-link-react package using npm:
npm i @withleaf/leaf-link-react
  1. Import the component in your *.tsx file:
import { FileUpload } from '@withleaf/leaf-link-react'
  1. Add the component to the *.tsx file. Make sure you already created the Leaf user API key (apiKey); you need to specify both the Leaf User API Key and the Leaf User ID (leafUser) in the required properties in the tsx component. +Check all the properties available on the reference here.
function App() {
const IS_DARK_MODE: boolean = true;
const LEAF_USER: string = "Your_Leaf_User";
const API_KEY: string = "Your_API_Key";
const COMPANY_NAME: string = "Your_Company";
const COMPANY_LOGO: string = "Your_Company_Logo";
const FILES_TIME_RANGE: number = 30;
+
return (
<FileUpload
isDarkMode={IS_DARK_MODE}
companyName={COMPANY_NAME}
companyLogo={COMPANY_LOGO}
filesTimeRange={FILES_TIME_RANGE}
leafUser={LEAF_USER}
apiKey={API_KEY}
/>
);
}

Reference

It is valid only for the React version.

Property Overview

NameTypeSummary
apiKeyStringThe authentication API Key
companyLogoUrlStringCustomization: a link to the company logo
companyNameStringCustomization: the name of the company
filesTimeRangeNumberTime to get the historical of uploaded files
isDarkModeBooleanEnables/disables the dark mode
leafUserStringThe Leaf User ID
titleStringCustomization: a link to the company logo

Property Details

apiKey

The apiKey is the authentication key that will allow the use of the widget. +It can be created and managed here.

companyLogoUrl

The URL to the company logo. It will be displayed in the landing screen. It can be a PNG, JPEG or SVG.

companyName

The company name. It will be displayed in the landing screen and in each reference about the customer.

filesTimeRange

It sets the interval in days to display files already processed in the past. For example, if set to 30, it will display the list of files sent and processed in the last 30 days.

isDarkMode

If set to true, it will enable the widget dark mode.

Dark mode

leafUser

The Leaf User ID. Check this page for more info about the Leaf User.

title

The text to display on the top of the widget.

Hooks Overview

Leaf Link also have hooks that can improve the developer experience when using the widgets.

NameTypeDescription
leafBatchIdsArray<{ batchId: string }>Provide the array with the batchId of the uploaded files

Hooks Details

leafBatchIds

Provides the array with the batchId for each uploaded file. A new ID is added after each successful upload.

How to use it

Angular

Use the getLeafBatchData property to reference a function in your component.

<div>
<file-upload
[apiKey]="apiKey"
[leafUser]="leafUser"
[title]="Your_Title"
[filesTimeRange]="30"
[companyName]="companyName"
[companyLogo]="companyLogo"
(getLeafBatchData)="yourFunctionNameHere($event)">
</file-upload>
</div>

From the component, you can get the leafBatchIds array in the referenced function.

import { Component } from '@angular/core';
+
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
apiKey: string = 'apiKey';
leafUser: string = 'leafUserId';
companyName: string = 'companyName';
companyLogo: string = 'companyLogo';
+
yourFunctionNameHere(leafBatchIds: any) {
console.log(leafBatchIds);
}
}
React

In the index.tsx will be necessary import the component Leaf.

import { Leaf } from '@withleaf/leaf-link-react';

And this component should be organized like this:

<React.StrictMode>
<Leaf>
<App />
</Leaf>
</React.StrictMode>

Additionally, you will need to import the useLeaf function as well:

import { FileUpload, useLeaf } from "@withleaf/leaf-link-react";

So will be necessary adjust the function in the App.tsx file:

function App() {
const IS_DARK_MODE: boolean = true;
const COMPANY_NAME: string = "Your_Company";
const LEAF_USER: string = "Your_Leaf_User_Id";
const API_KEY: string = "Your_API_Key";
const COMPANY_LOGO: string = YourCompanyLogo;
const FILES_TIME_RANGE: number = 30;
const { leafBatchIds } = useLeaf();
+
useMemo(() => {
console.log(leafBatchIds);
}, [leafBatchIds]);

In this example we use the useMemo but you can use another hooks.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/Link_provider_connection/index.html b/docs/Link_provider_connection/index.html new file mode 100644 index 000000000..6fc0ae8c0 --- /dev/null +++ b/docs/Link_provider_connection/index.html @@ -0,0 +1,58 @@ + + + + + + + + +Leaf Provider Connection / Authentication Link | Leaf + + + + + + + + + + + + + +
+

Leaf Provider Connection / Authentication Link

Overview

Leaf's Provider Connection / Authentication Link is a widget that you can install with minimal setup and a few lines of code. This widget enables your customers to connect their existing provider accounts, which associates it with their Leaf User.

File upload widget

Beta

This is a beta feature.

Get started

1. Sign in with a Leaf account

You will need a Leaf account. If you don't have one yet, you can create it here.

2. Get to know the Leaf user entity

All control of connected providers is done at the Leaf user level (usually it represents the user of your application), so it's important to know more about it here.

3. Create the user application tokens

Since the connection is at Leaf user level, the widget uses a different authentication method. +We will required to create an API key for each Leaf user. This will ensure that the Leaf user only accesses its own resources.

The endpoints to manage those application tokens are here.

Set up

To use the widget you will need to enable the providers. Don't worry, you only need to set it up once.

John Deere

To enable John Deere as a provider in the widget you need your application already registed with John Deere. You can find more info on how to create a developer account here.

Redirect URI

The first step is to add our widget URL in the "Redirect URI" section:

https://widget.withleaf.io

In the My applications page, select your application and edit it to add the URL here

File upload widget

Application info

To allow the users to authenticate with John Deere, you will need to send your application info to this endpoint + POST /usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}

For John Deere, it is necessary to inform the:

  • clientKey (Application Id)
  • clientSecret (Secret)

You can set the appName and the clientEnvironmentas the environment your application is enabled on John Deere: STAGE or PRODUCTION.

Here is a request example:

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "clientKey": "string", "clientSecret": "string" }'
'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/LeafWidget/PRODUCTION'

Climate FieldView

To enable Climate FieldView as a provider in the widget you need your application credentials from Climate. You can find more info on how to create a developer account here.

Application info

To allow the users to authenticate with Climate FieldView, you will need to send your application info to this endpoint + POST /usermanagement/api/app-keys/ClimateFieldView/{appName}

For Climate FieldView, it is necessary to inform the:

  • apiKey
  • clientId
  • clientSecret

You can set the appName.

Here is a request example:

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "apiKey": "string", "clientId": "string", "clientSecret": "string" }'
'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/LeafWidget'

CNHi

To enable CNHi as a provider in the widget you need your application credentials from CNHi. You can find more info on how to create a developer account here.

OAuth Callback URL

The first step is to add our widget URL in the "App OAuth Callback URL(s)" section:

https://widget.withleaf.io

In the Developer Dashboard page, select your application and edit it to add the URL here

File upload widget

Application info

To allow the users to authenticate with CNHi, you will need to send your application info to this endpoint + POST /usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}

For CNHi, it is necessary to inform the:

  • clientId (Client Id)
  • clientSecret (Client Secret)
  • subscriptionKey (Primary SubscriptionKey)

You can set the appName and the clientEnvironment as the environment your application is enabled on CNHi: STAGE or PRODUCTION.

Here is a request example:

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "clientId": "string", "clientSecret": "string", "subscriptionKey": "string" }'
'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/LeafWidget/PRODUCTION'

AgLeader

To enable AgLeader as a provider in the widget you need your application credentials from AgLeader. You can find more info on how to create a developer account here.

Redirection URL

The first step is to add our widget URL in the "Redirection URL" property:

https://widget.withleaf.io

In the Consumer Keys page, select your application and click in the "Edit Consumer Key Profile" option to edit it add the URL here

File upload widget

Application info

To allow the users to authenticate with AgLeader, you will need to send your application info to this endpoint + POST /usermanagement/api/app-keys/AgLeader/{appName}

For AgLeader, it is necessary to inform the:

  • privateKey
  • publicKey

You can set the appName.

Here is a request example:

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "privateKey": "string", "publicKey": "string" }'
'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/LeafWidget'

Trimble

To enable Trimble as a provider in the widget you need your application credentials from Trimble. You can find more info on how to create a developer account here.

Authentication Callback URL

The first step is make sure our widget URL is registered in the "Authentication Callback URLs" section. It may be necessary to contact Trimble to request the change.

https://widget.withleaf.io

Application info

To allow the users to authenticate with Trimble, you will need to send your application info to this endpoint + POST /usermanagement/api/app-keys/Trimble/{appName}

For Trimble, it is necessary to inform the:

  • applicationName
  • clientId
  • clientSecret

You can set the appName.

Here is a request example:

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "applicationName": "string", "clientId": "string", "clientSecret": "string" }'
'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/LeafWidget'

Tutorial

Angular

tip

Here you can run a live use case demo! +It will only be necessary to replace your information in the .html component.

To add this Leaf widget in an Angular application, you can use the @withleaf/leaf-link-angular library, which is a JavaScript library that provides all Leaf UI Widgets. +Here are the general steps to get started:

  1. Install the @withleaf/leaf-link-angular package using npm:
npm i @withleaf/leaf-link-angular
  1. Import the library in your component or module file:
import { ProvidersModule } from '@withleaf/leaf-link-angular';
  1. Add the component to the HTML. Make sure you already created the Leaf user API key (apiKey); you need to specify both the Leaf User API Key and the Leaf User ID (leafUser) in the required properties in the HTML component. +Check all the properties available on the reference here.
<div class="content" role="main">
<providers
apiKey="Your_API_Key"
leafUser="Your_Leaf_User"
title="Your_Title"
companyName="Your_Company_Name"
companyLogo="Your_Company_Logo"
></providers>
</div>

React

tip

Here you can run a live use case demo! +It will only be necessary to replace your information in the App.tsx file.

To add this Leaf widget in a React application, you can use the @withleaf/leaf-link-react library, which is a JavaScript library that provides all Leaf UI Widgets. +Here are the general steps to get started:

  1. Install the @withleaf/leaf-link-react package using npm:
npm i @withleaf/leaf-link-react
  1. Import the component in your *.tsx file:
import { Providers } from '@withleaf/leaf-link-react';
  1. Add the component to the *.tsx file. Make sure you already created the Leaf user API key (apiKey); you need to specify both the Leaf User API Key and the Leaf User ID (leafUser) in the required properties in the tsx component. +Check all the properties available on the reference here.
function App() {
return (
<Providers
isDarkMode={true/false}
companyName={companyName}
companyLogo={companyLogoUrl}
leafUser={leafUserId}
apiKey={apiKey}
/>
);
}

Reference

Property Overview

NameTypeSummary
apiKeyStringThe authentication API Key
companyLogoUrlStringCustomization: a link to the company logo
companyNameStringCustomization: the name of the company
isDarkModeBooleanEnable/disable the dark mode
leafUserStringThe Leaf User ID
showSearchbarStringShow/hide the search bar
titleStringThe title of the widget

Property Details

apiKey

The apiKey is the authentication key that will allow the use of the widget. +It can be created and managed here.

companyLogoUrl

The URL to the company logo. It will be displayed in the landing screen. It can be a PNG, JPEG or SVG.

companyName

The company name. It will be displayed in the landing screen and in each reference about the customer.

isDarkMode

Toggles dark mode on and off. The default value is false.

leafUser

The Leaf User ID. Check this page for more info about the Leaf User.

showSearchbar

Shows/hides the search bar for providers available for integration. The default is true, so the search bar will be displayed.

title

The title displayed in the widget. The default is "Select your integration".
+Customized texts will not be automatically translated.

Hooks Overview

Leaf Link also have hooks that can improve the developer experience when using the widgets.

NameTypeDescription
providersConnectedArray<{ provider: string; createdTime: string }>Provide the array of the provider connected and also the createdTime - available after finish the connection process
providerWidgetStatus{ code: number; message: string }Provide the status code and the message from the current widget Status

Hooks Details

providersConnected

Provides the array of the providers connected with the createdTime. It will be available after finish the connection process.

providerWidgetStatus

Provides the status code and the message from the current widget status:

Status Codes
CodeMessage
-1Error
0Started
1Done

How to use it

Angular

Use the getWidgetStatus property to reference a function in your component.

<div>
<providers
[apiKey]="apiKey"
[leafUser]="leafUser"
[companyName]="companyName"
[companyLogo]="companyLogo"
(getWidgetStatus)="yourFunctionNameHere($event)">
</providers>
</div>

From the component, you can get the status and the providers connected in the referenced function.

import { Component } from '@angular/core';
+
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
apiKey: string = 'apiKey';
leafUser: string = 'leafUserId';
companyName: string = 'companyName';
companyLogo: string = 'companyLogo';
+
yourFunctionNameHere(value: any) {
console.log(value.providersConnected);
console.log(value.providerWidgetStatus);
}
}
React
import { Leaf } from '@withleaf/leaf-link-react';

{ Leaf } import is the context that handle with the providers data.

Considering you have a custom component that need to handle or just receive the data updates from Provider Widget:

+
import { useLeaf } from '@withleaf/leaf-link-react';
+
export const MyComponent = () => {
// Import the states from the hook
const { providerWidgetStatus, providersConnected } = useLeaf();
+
return (
<>
<div>
<p data-testid='hook-title' style={{fontSize: '22px',}}>
{' '}
Hook State Example
</p>
<p data-testid='status'>
<span style={{fontWeight: 'bold', }} >
Status Code:
</span>{' '}
{providerWidgetStatus.code} |{' '}
<span style={{ fontWeight: 'bold', }} >
Status Message:
</span>{' '}
{providerWidgetStatus.message}
</p>
</div>
<hr />
<div>
{providersConnected.length === 0 ? (
<p>Providers List is empty</p>
) : (
<>
{providersConnected.map((provider, index) => (
<>
<p data-testid={`${provider.provider}-testid`}>
{' '}
Provider: <span>{provider.provider}</span>
</p>
<p>
{' '}
Created Time: <span>{provider.createdTime}</span>
</p>
</>
))}
</>
)}
</div>
</>
);
};

Then, wrap your component in the hook as a children

import { Leaf, Providers } from '@withleaf/leaf-link-react'
+
const Example = () => {
return (
<Leaf>
<MyComponent />
<Providers
isDarkMode={true}
companyName={'My Company Name'}
companyLogo={'url'}
leafUser={'myLeafUser'}
apiKey={'myApiKey'}
locale={'locale'}
/>
</Leaf>
);
};

From your top-level component can pass the current data to all components below, no matter how deep.

This variables will be updated every time the Provider update the steps i.e move from one step to other.

Tips

The way that the developer get the updated value from the hook can be different depending the of the application, personal preferences or the way it is architected. We suggest the following with useMemo but it can be also implemented with useEffect. +useMemo runs the function and caches its result, which will only be recomputed if any value in the dependency array changes. It helps optimize performance by avoiding unnecessary recalculations.

Example

useMemo(() => {
//Something you want to update, as a state from the component.
}, [providerConnected, providerWidgetStatus])
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/Magic_link_endpoints/index.html b/docs/Magic_link_endpoints/index.html new file mode 100644 index 000000000..91c3b96ed --- /dev/null +++ b/docs/Magic_link_endpoints/index.html @@ -0,0 +1,38 @@ + + + + + + + + +Magic Link Endpoints | Leaf + + + + + + + + + + + + + +
+

Magic Link Endpoints

About

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/widgets/api

Magic Link

Provider

This is a link to authenticate with multiple providers.

Endpoints

DescriptionEndpoints
Get all provider Magic LinksGET /magic-link/provider
Get a provider Magic LinkGET /magic-link/provider/{magicLinkId}
Create a provider Magic LinkPOST /magic-link/users/{leafUserId}/provider
Delete a provider Magic LinkDELETE /magic-link/provider/{magicLinkId}

Get all provider Magic Link

 GET /magic-link/provider

Get all created links for authentication across multiple providers.

Request examples
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/widgets/api/magic-link/provider'
Response
[
{
"id": "magicLinkId",
"link": "https://magic-link.withleaf.io/{magicLinkId}",
"createdAt": "2023-11-02T19:17:16.494Z",
"expiresAt": "2024-10-26T14:23:56.584Z",
"lastAccessedAt": "2023-11-02T19:17:18.906Z",
"leafUserId": "UUID",
"maxUsage": 3,
"usageCount": 0,
"widget": "PROVIDER",
"settings": {
"backgroundColor": "codeColor",
"headerImage": "URL",
"companyLogo": "URL",
"companyName": "companyName",
"showLeafUserName": "boolean",
"disconnectEnabled": "boolean"
},
"allowedProviders": [
"Other"
]
},
....
]

Get a provider Magic Link

 GET /magic-link/provider/{magicLinkId}

Get a created link for authentication across multiple providers.

Request examples
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/widgets/api/magic-link/provider/{magicLinkId}'
Response
{
"id": "magicLinkId",
"link": "https://magic-link.withleaf.io/{magicLinkId}",
"createdAt": "2023-11-02T19:17:16.494Z",
"expiresAt": "2024-10-26T14:23:56.584Z",
"lastAccessedAt": "2023-11-02T19:17:18.906Z",
"leafUserId": "UUID",
"maxUsage": 3,
"usageCount": 0,
"widget": "PROVIDER",
"settings": {
"backgroundColor": "codeColor",
"headerImage": "URL",
"companyLogo": "URL",
"companyName": "companyName",
"showLeafUserName": "boolean",
"disconnectEnabled": "boolean"
},
"allowedProviders": [
"Other"
]
}

Create a provider Magic Link

 POST /magic-link/users/{leafUserId}/provider

Provider application info

Make sure you set up your provider application first. More info here.

Creates a link for authentication across multiple providers.

  • allowedProviders: the list of providers allowed in the authentication process. It can be one or more of the following: JohnDeere, ClimateFieldView, CNHI, AgLeader, and Trimble.
  • expiresIn: an integer number for the expiration time, in seconds. This parameter is optional and the default value is 900 (minimum) and the maximum is the equivalent to 1 year.
Request body
{
"expiresIn": int,
"allowedProviders": [
"providerName"
]
}
Request examples
curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "expiresIn": int, "allowedProviders": ["providerName"], "settings": { "backgroundColor": "codeColor", "headerImage": "URL", "companyLogo": "URL", "companyName": "companyName", "showLeafUserName": "boolean", "disconnectEnabled": "boolean" } }'
'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/provider'
Response
{
"id": "magicLinkId",
"leafUserId": "UUID",
"link": "https://magic-link.withleaf.io/{magicLinkId}",
"expiresAt": "2010-10-10T10:10:10.000000000Z"
}

Delete a provider Magic Link

 DELETE /magic-link/provider/{magicLinkId}

Delete a link for authentication across multiple providers.

Request examples
curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/widgets/api/magic-link/provider/{magicLinkId}'

Authentication

This is a link to authenticate with a single provider.

Endpoints

DescriptionEndpoints
Get all authentication Magic LinksGET /magic-link/authentication
Get an authentication Magic LinkGET /magic-link/authentication/{magicLinkId}
Create an authentication Magic LinkPOST /magic-link/users/{leafUserId}/authentication
Delete an authentication Magic LinkDELETE /magic-link/authentication/{magicLinkId}

Get all authentication Magic Links

 GET /magic-link/authentication

Get all created links for authentication with a single provider.

Request examples
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/widgets/api/magic-link/authentication'
Response
[
{
"id": "magicLinkId",
"link": "https://magic-link.withleaf.io/{magicLinkId}",
"createdAt": "2023-11-02T19:17:16.494Z",
"expiresAt": "2024-10-26T14:23:56.584Z",
"lastAccessedAt": "2023-11-02T19:17:18.906Z",
"leafUserId": "UUID",
"maxUsage": 3,
"usageCount": 0,
"widget": "AUTHENTICATION",
"settings": {
"backgroundColor": "codeColor",
"headerImage": "URL",
"companyLogo": "URL",
"companyName": "companyName",
"showLeafUserName": "boolean",
"disconnectEnabled": "boolean"
},
"provider": "providerName"
},
....
]

Get an authentication Magic Link

 GET /magic-link/authentication/{magicLinkId}

Get a created link for authentication with a single provider.

Request examples
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/widgets/api/magic-link/authentication/{magicLinkId}'
Response
{
"id": "magicLinkId",
"link": "https://magic-link.withleaf.io/{magicLinkId}",
"createdAt": "2023-11-02T19:17:16.494Z",
"expiresAt": "2024-10-26T14:23:56.584Z",
"lastAccessedAt": "2023-11-02T19:17:18.906Z",
"leafUserId": "UUID",
"maxUsage": 3,
"usageCount": 0,
"widget": "AUTHENTICATION",
"settings": {
"backgroundColor": "codeColor",
"headerImage": "URL",
"companyLogo": "URL",
"companyName": "companyName",
"showLeafUserName": "boolean",
"disconnectEnabled": "boolean"
},
"provider": "providerName"
}

Create an authentication Magic Link

 POST /magic-link/users/{leafUserId}/authentication

Provider application info

Make sure you set up your provider application first. More info here.

Creates a link for authentication with a single provider.

  • provider: the provider to be used in the authentication process. It can be: JohnDeere, ClimateFieldView, CNHI, AgLeader or Trimble.
  • expiresIn: an integer number for the expiration time, in seconds. This parameter is optional and the default value is 900 (minimum) and the maximum is the equivalent to 1 year.
Request body
{
"expiresIn": int,
"provider": "providerName"
}
Request examples
curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "expiresIn": int, "provider": "providerName", "settings": { "backgroundColor": "codeColor", "headerImage": "URL", "companyLogo": "URL", "companyName": "companyName", "showLeafUserName": "boolean", "disconnectEnabled": "boolean" } }'
'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/authentication'
Response
{
"id": "magicLinkId",
"leafUserId": "UUID",
"link": "https://magic-link.withleaf.io/{magicLinkId}",
"expiresAt": "2010-10-10T10:10:10.000000000Z"
}

Delete an authentication Magic Link

 DELETE /magic-link/authentication/{magicLinkId}

Delete a link for authentication with a single provider.

Request examples
curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/widgets/api/magic-link/authentication/{magicLinkId}'

File upload

This is a link to upload machine files.

Endpoints

DescriptionEndpoints
Get all file upload Magic LinksGET /magic-link/file-upload
Get a file upload Magic LinkGET /magic-link/file-upload/{magicLinkId}
Create a file upload Magic LinkPOST /magic-link/users/{leafUserId}/file-upload
Delete a file upload Magic LinkDELETE /magic-link/file-upload/{magicLinkId}

Get all file upload Magic Links

 GET /magic-link/file-upload

Get all file upload created links.

Request examples
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/widgets/api/magic-link/file-upload'
Response
[
{
"id": "magicLinkId",
"link": "https://magic-link.withleaf.io/{magicLinkId}",
"createdAt": "2023-10-30T20:47:22.630Z",
"expiresAt": "2023-10-30T21:02:22.729Z",
"lastAccessedAt": "2023-10-30T20:47:28.209Z",
"leafUserId": "UUID",
"maxUsage": 3,
"usageCount": 0,
"widget": "FILEUPLOAD",
"settings": {
"backgroundColor": "codeColor",
"headerImage": "URL",
"companyLogo": "URL",
"companyName": "companyName",
"showLeafUserName": "boolean",
"disconnectEnabled": "boolean"
}
},
....
]

Get a file upload Magic Link

 GET /magic-link/file-upload/{magicLinkId}

Get a file upload created link.

Request examples
curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/widgets/api/magic-link/file-upload/{magicLinkId}'
Response
{
"id": "magicLinkId",
"link": "https://magic-link.withleaf.io/{magicLinkId}",
"createdAt": "2023-10-30T20:47:22.630Z",
"expiresAt": "2023-10-30T21:02:22.729Z",
"lastAccessedAt": "2023-10-30T20:47:28.209Z",
"leafUserId": "UUID",
"maxUsage": 3,
"usageCount": 0,
"widget": "FILEUPLOAD",
"settings": {
"backgroundColor": "codeColor",
"headerImage": "URL",
"companyLogo": "URL",
"companyName": "companyName",
"showLeafUserName": "boolean",
"disconnectEnabled": "boolean"
}
}

Create a file upload Magic Link

 POST /magic-link/users/{leafUserId}/file-upload

Creates a file upload link.

  • expiresIn: an integer number for the expiration time, in seconds. This parameter is optional and the default value is 900 (minimum) and the maximum is the equivalent to 1 year.
Request body
{
"expiresIn": int
}
Request examples
curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "expiresIn": int, "settings": { "backgroundColor": "codeColor", "headerImage": "URL", "companyLogo": "URL", "companyName": "companyName", "showLeafUserName": "boolean", "disconnectEnabled": "boolean" } }'
'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/file-upload'
Response
{
"id": "magicLinkId",
"leafUserId": "UUID",
"link": "https://magic-link.withleaf.io/{magicLinkId}",
"expiresAt": "2010-10-10T10:10:10.000000000Z"
}

Delete a file upload Magic Link

 DELETE /magic-link/file-upload/{magicLinkId}

Delete a file upload link.

Request examples
curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/widgets/api/magic-link/file-upload/{magicLinkId}'

Magic Link with Leaf User Creation

This option enables the creation of Leaf users automatically during the Magic Link creation process. The uniqueness of leaf users can be achieved using a mandatory external identifier, the externalId, which can be an ID already used in your application.

Endpoints

DescriptionEndpoints
Create a Provider Magic LinkPOST /magic-link/provider
Create an Authentication Magic LinkPOST /magic-link/authentication
Create a File Upload Magic LinkPOST /magic-link/file-upload

Create a Provider Magic Link

 POST /magic-link/provider

Provider application info

Make sure you set up your provider application first. More info here.

Creates a link for authentication across multiple providers. The leaf user will be created during this process based on the externalId.

  • provider: the provider to be used in the authentication process. It can be: JohnDeere, ClimateFieldView, CNHI, AgLeader or Trimble.
  • expiresIn: an integer number for the expiration time, in seconds. This parameter is optional and the default value is 900 (minimum) and the maximum is the equivalent to 1 year.
  • externalId: the client side user unique ID
  • name: it will be the name of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints.
  • email: it will be the email of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints.
info

The name and email parameters are optional, they will fill in the leaf user information that we will create, when they are not informed, we will fill in the name and email with the externalId information.

Request body
{
"name": "user_name",
"email": "user_email",
"externalId": "external_id",
"expiresIn": 900,
"allowedProviders": [
"provider_name"
]
}
Request examples
curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "name": "user_name", "email": "user_email", "externalId": "external_id", "expiresIn": int, "allowedProviders": ["providerName"], "settings": { "backgroundColor": "codeColor", "headerImage": "URL", "companyLogo": "URL", "companyName": "companyName", "showLeafUserName": "boolean", "disconnectEnabled": "boolean" } }'
'https://api.withleaf.io/services/widgets/api/magic-link/provider'
Response
{
"id": "magicLinkId",
"leafUserId": "UUID",
"link": "https://magic-link.withleaf.io/{magicLinkId}",
"expiresAt": "2010-10-10T10:10:10.000000000Z"
}

Create an Authentication Magic Link

 POST /magic-link/authentication

Provider application info

Make sure you set up your provider application first. More info here.

Creates a link for authentication with a single provider. The leaf user will be created during this process based on the externalId.

  • provider: the provider to be used in the authentication process. It can be: JohnDeere, ClimateFieldView, CNHI, AgLeader or Trimble.
  • expiresIn: an integer number for the expiration time, in seconds. This parameter is optional and the default value is 900 (minimum) and the maximum is the equivalent to 1 year.
  • externalId: the client side user unique ID
  • name: it will be the name of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints.
  • email: it will be the email of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints.
info

The name and email parameters are optional, they will fill in the leaf user information that we will create, when they are not informed, we will fill in the name and email with the externalId information.

Request body
{
"name": "user_name",
"email": "user_email",
"externalId": "external_id",
"expiresIn": 900,
"provider": "provider_name"
}
Request examples
curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "name": "user_name", "email": "user_email", "externalId": "external_id", "expiresIn": int, "provider": "provider_name", "settings": { "backgroundColor": "codeColor", "headerImage": "URL", "companyLogo": "URL", "companyName": "companyName", "showLeafUserName": "boolean", "disconnectEnabled": "boolean" } }'
'https://api.withleaf.io/services/widgets/api/magic-link/authentication'
Response
{
"id": "magicLinkId",
"leafUserId": "UUID",
"link": "https://magic-link.withleaf.io/{magicLinkId}",
"expiresAt": "2010-10-10T10:10:10.000000000Z"
}

Create a File Upload Magic Link

 POST /magic-link/file-upload

Create a file upload link. The leaf user will be created during this process based on the externalId.

  • expiresIn: an integer number for the expiration time, in seconds. This parameter is optional and the default value is 900 (minimum) and the maximum is the equivalent to 1 year.
  • externalId: the client side user unique ID
  • name: it will be the name of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints.
  • email: it will be the email of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints.
info

The name and email parameters are optional, they will fill in the leaf user information that we will create, when they are not informed, we will fill in the name and email with the externalId information.

Request body
{
"name": "user_name",
"email": "user_email",
"externalId": "external_id",
"expiresIn": 900
}
Request examples
curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "name": "user_name", "email": "user_email", "externalId": "external_id", "expiresIn": int, "settings": { "backgroundColor": "codeColor", "headerImage": "URL", "companyLogo": "URL", "companyName": "companyName", "showLeafUserName": "boolean", "disconnectEnabled": "boolean" } }'
'https://api.withleaf.io/services/widgets/api/magic-link/file-upload'
Response
{
"id": "magicLinkId",
"leafUserId": "UUID",
"link": "https://magic-link.withleaf.io/{magicLinkId}",
"expiresAt": "2010-10-10T10:10:10.000000000Z"
}

Link customization

The links can be customized using some properties described below. +Simply fill in the settings property when creating the link.

Customization

PropertyTypeDescription
1backgroundColorstringThe application's background color in hexadecimal format, for example: "#c0392b" or "#27ae60". The default is #F5F5F5.
2companyLogostringURL for the company logo.
3companyNamestringThe company name.
4headerImagestringURL to an image that will be used as a header in the application.
5showLeafUserNamebooleanIndicates whether the Leaf user name will be displayed or not. It can be true or false. The default is false.
6disconnectedEnabledbooleanOnly enabled for provider and authentication Magic Link. Enables the option for the user to choose to disconnect from the provider at the end of the authentication process. It can be true or false. The default is false.

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "expiresIn": int, "allowedProviders": ["Other"], "settings": { "backgroundColor": "codeColor", "headerImage": "URL", "companyLogo": "URL", "companyName": "companyName", "showLeafUserName": "boolean", "disconnectEnabled": "boolean" } }'
'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/provider'
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/Magic_link_overview/index.html b/docs/Magic_link_overview/index.html new file mode 100644 index 000000000..b541ca76a --- /dev/null +++ b/docs/Magic_link_overview/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Magic Link Overview | Leaf + + + + + + + + + + + + + +
+

Magic Link Overview

The Magic Link is the easiest way to connect your customer data with Leaf API. It offers a low-code solution to enable them to connect to data providers or upload files. The link generated in this solution controls all the steps for each functionality and its appearance can be customized too.

Authenticate with Magic Link

authentication

Provider

The Magic Link Provider is a feature that allows the user to authenticate with several providers using a single link. It is necessary to have previously created the respective application info for these providers.

Authentication

The Magic Link Authentication is a feature to authenticate with only one provider at a time. It is necessary to have previously created the application info for this provider.

Upload file with Magic Link

file-upload

File upload

The Magic Link File upload is a feature that allows the user to upload machine files to the Leaf API.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/alerts_authentication/index.html b/docs/alerts_authentication/index.html new file mode 100644 index 000000000..1bc81f015 --- /dev/null +++ b/docs/alerts_authentication/index.html @@ -0,0 +1,44 @@ + + + + + + + + +Authentication Alerts | Leaf + + + + + + + + + + + + + +
+

Authentication Alerts

It’s very important to confirm that requests received on your webhook are sent from Leaf, to avoid IP spoofing attacks. +To this end, you should verify webhook signatures.

Leaf generates signatures using a hash-based message authentication code (HMAC) with SHA-256, and +the secret specified when you created the alerts' configuration as the HMAC key. +Be careful with deserialization of the request body when using it to verify the signature. It's recommended that you get the request body as bytes. The signed content has no line breaks, it's a string of the raw JSON with white-spaces after “:” and “,”.

The digest is added to the X-Leaf-Signature header encoded in base 64.

Here is an example on how to verify the request in your webhook:

import hmac
import base64
+
+
# Sign the request body received with your secret
expected_sig = hmac.digest(msg=request_body_bytes,
key=bytes('your secret', 'utf-8'),
digest='sha256')
+
# Decode the X-Leaf-Signature header that is encoded in base 64
request_sig = base64.b64decode(sig_header)
+
# Compare both
hmac.compare_digest(expected_sig, request_sig)
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/alerts_endpoints/index.html b/docs/alerts_endpoints/index.html new file mode 100644 index 000000000..fecc1c6b7 --- /dev/null +++ b/docs/alerts_endpoints/index.html @@ -0,0 +1,47 @@ + + + + + + + + +Alerts Endpoints | Leaf + + + + + + + + + + + + + +
+

Alerts Endpoints

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/alerts/api/alerts

This service has the following endpoints available:

DescriptionEndpoints
Create a webhookPOST /webhooks
Get a webhookGET /webhooks/{id}
Get all webhooksGET /webhooks
Get failed calls for webhooksGET /webhooks/failed-calls
Delete a webhookDELETE /webhooks/{id}

Note that currently it's not possible to update a Webhook with a single +request. If you want to update an existing Webhook resource, you have to delete +it first and then recreate it. In doing so, be aware that if the update changes +the Webhook URL, it's recommended that you keep the previous URL up and running +until you get the response from the recreation request (POST).

For easy testing of these endpoints, we recommend using our Postman collection.

To understand how to verify if an incoming request comes from Leaf, see the Authentication section.


Create a webhook

 POST /webhooks

Creates a webhook resource, specifying which events you want to be notified about and +where (server URL). The webhook will begin receiving +events immediately after it is created.

It's not possible to create different webhooks that listen to the same events. For example, +if you have already registered a webhook listening for newSatelliteImages +and try to register another one, you'll get a 400 response with error eventRegisteredTwice.

Request body

ParameterTypeDescription
eventsenum name of the event typeThey are defined in the "Events" section of the services chapters (e.g. newSatelliteImage)
namestringThe name of your webhook
secretstringThe secret used for HMAC authentication. We sign payload with this secret. See more here
urla valid HTTP URL stringThe address of your webhook server

The allowed keys to be filled in events are:

  • credentialsLimitedPermission, credentialsUnauthenticated, fieldCreated, fieldBoundaryCreated, fieldBoundaryUpdated, uploadedFileProcessingFinished, uploadedFileProcessingFailed, providerFileProcessingFinished, providerFileProcessingFailed, mergedFileProcessingFinished, mergedFileProcessingFailed, automergedFileProcessingFinished, automergedFileProcessingFailed, operationCreated, operationUpdated, operationProcessingFinished, newSatelliteImage, machineCreated, machineUpdated, machineDeleted

To see the detailed description of each of these events, click here.

Example in JSON:

{
"events": [
"newSatelliteImage"
],
"name": "Satellite images listener",
"secret": "mRyT257XpFWX",
"url": "https://yourwebhook.com/leaf/satellite"
}

Request example

curl -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d 'Your paylaod as specified above'
'https://api.withleaf.io/services/alerts/api/alerts/webhooks'

Response

It returns a JSON containing information about the webhook created.

{
"id": "UUID",
"events": [
"newSatelliteImage"
],
"name": "Satellite images listener",
"secret": "mRyT257XpFWX",
"url": "https://agtech.com/leaf/satellite"
}

If you need to test your endpoint, here is a request example so you can simulate the validation Leaf will do.

curl -X POST \
-H 'Content-Type: application/json' \
-H 'accept: */*' \
-d '{"message" : "confirmation of webhook upon registration"}'
'your-webhook-url'

Get a webhook

 GET /webhooks/{id}

Retrieve a specific webhook resource by its id.

Request example

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/alerts/api/alerts/webhooks/{id}'

Response

{
"id": "UUID",
"events": [
"newSatelliteImage"
],
"secret": "mRyT257XpFWX",
"name": "Satellite images listener",
"url": "https://agtech.com/leaf/satellite"
}

Get all webhooks

 GET /webhooks

Retrieve all Webhooks.

Request example

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/alerts/api/alerts/webhooks'

Response

It returns a list of JSON objects.

[{
"id": "UUID",
"events": [
"newSatelliteImage"
],
"secret": "mRyT257XpFWX",
"name": "Satellite images listener",
"url": "https://agtech.com/leaf/satellite"
}]

Get failed calls for webhooks

 GET /webhooks/failed-calls

Retrieve all failed calls for webhooks.

Request example

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/alerts/api/alerts/webhooks/failed-calls'

Response

It returns a list of JSON objects.

{
"items": [
{
"apiOwner": "yourApiOwner",
"createdAt": "2023-04-21T12:16:30Z",
"url": "https://webhook.site/{{uuid}}",
"status": 502,
"response": "<html>\r\n<head><title>502 Bad Gateway</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>502 Bad Gateway</h1></center>\r\n<hr><center>nginx</center>\r\n</body>\r\n</html>\r\n",
"requestBody": "{\"leafUserId\": \"uuid\", \"fileId\": \"uuid\", \"type\": \"automergedFileProcessingFinished\", \"timestamp\": \"2023-04-21T12:16:27.997586Z\"}"
},
{
"apiOwner": "yourApiOwner",
"createdAt": "2023-04-24T18:35:53Z",
"url": "https://webhook.site/{{uuid}}",
"status": 502,
"response": "<html>\r\n<head><title>502 Bad Gateway</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>502 Bad Gateway</h1></center>\r\n<hr><center>nginx</center>\r\n</body>\r\n</html>\r\n",
"requestBody": "{\"leafUserId\": \"uuid\", \"fileId\": \"uuid\", \"type\": \"automergedFileProcessingFinished\", \"timestamp\": \"2023-04-24T18:35:52.187785Z\"}"
},
{
"apiOwner": "yourApiOwner",
"createdAt": "2023-04-24T18:35:53Z",
"url": "https://flamboyant-flower-64651.pktriot.net/",
"requestBody": "{\"source\": \"SYNC\", \"leafUserId\": \"ff044168-45aa-00d8-8b7e-8632d5c23616\", \"fieldId\": \"ed080ca3-69fe-365c-972f-a0d000fe7c0e\", \"type\": \"fieldCreated\", \"timestamp\": \"2023-04-24T18:35:53Z\"}",
"connectionError": "ConnectionError: HTTPSConnectionPool(host='flamboyant-flower-64651.pktriot.net', port=443): Max retries exceeded with url: / (Caused by ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')))"
}
]
}

Delete a webhook

 DELETE /webhooks/{id}

Delete a specific Webhook resource by its id. Returns 204 status code if the +delete succeeded.

Warning

If you delete a Webhook resource, we no longer will send you the events the +webhook listens to.

Request example

curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/alerts/api/alerts/webhooks/{id}'
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/alerts_events/index.html b/docs/alerts_events/index.html new file mode 100644 index 000000000..75b281dbc --- /dev/null +++ b/docs/alerts_events/index.html @@ -0,0 +1,58 @@ + + + + + + + + +List of Events | Leaf + + + + + + + + + + + + + +
+

List of Events

About

This section describes all types of events generated by Leaf and their respective formats. The types of events are grouped by the services that produce it. Below is a summary:

ServiceAvailable Events
Alert EventsWebhook registered
Credentials AlertsCredentials missing permission, credentials unauthenticated
Field EventsNew field, New Merged Field, Merged field updated
Field Boundary EventsField boundary created, field boundary updated
Manual File Upload EventsUploaded file processing finished, uploaded file processing failed
Machine File Conversion EventsProvider file processing finished, provider file processing failed
Operation EventsMerged file processing finished, merged file processing failed, automerged file processing finished, automerged file processing failed, operation created, operation updated, operation processing finished.
Crop Monitoring EventsNew satellite image
Assets (Beta) EventsNew machine, deleted machine, updated machine, new implement, updated implement

Alert Events

Webhook registered

When a new webhook is registered you will receive a one time success message in the below format:

{
"message": "confirmation of webhook upon registration"
}

Credentials Alerts

Credentials Missing Permission

Event for when the provided credentials don't have enough permissions to do the actions you are trying to.

Alerts for this event are in the following format:

{
"credential": "the client identification",
"provider": "the provider from the credential",
"credentialId": "the credential id",
"message": "message from the alert",
"status": "the new status of the credential",
"type": "credentialsLimitedPermission",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'"
}

Credentials Unauthenticated

Event for when the credentials are no longer valid.

Alerts for this event are in the following format:

{
"credential": "the client identification",
"provider": "the provider from the credential",
"credentialId": "the credential id",
"message": "message from the alert",
"status": "the new status of the credential",
"type": "credentialsUnauthenticated",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'"
}

Field Events

New Field

Event for when a new field is created either in a connected provider account or directly within Leaf.

Alerts for this event are in the following format:

{
"source": "SYNC",
"leafUserId": "the id of the file owner",
"fieldId": "the id of the created field",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"type": "fieldCreated"
}

New Merged Field

Event for when a new merged field is created. The creation of a merged field depends of the fieldsAutoSync and fieldsMergeIntersection configurations.

Alerts for this event are in the following format:

{
"source": "REST",
"leafUserId": "the id of the file owner",
"fieldId": "the id of the created field",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"type": "mergedFieldCreated"
}

Merged Field updated

Event for when a merged field is updated due to the geometry update of one of the fields used to create the merged field.

Alerts for this event are in the following format:

{
"source": "REST",
"leafUserId": "the id of the file owner",
"fieldId": "the id of the created field",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"type": "mergedFieldUpdated"
}

Field Boundary Events

Field Boundary Created

Event for when a fieldBoundary is created.

Alerts for this event are in the following format:

{
"boundaryId": "the id of the created field boundary",
"leafUserId": "the id of the file owner",
"fieldId": "the field related to the created field boundary",
"type": "fieldBoundaryCreated",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'"
}

Field Boundary Updated

Event for when a fieldBoundary is updated.

Alerts for this event are in the following format:

{
"boundaryId": "the id of the updated field boundary",
"leafUserId": "the id of the file owner",
"fieldId": "the field related to the updated field boundary",
"type": "fieldBoundaryUpdated",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'"
}

Manual File Upload Events

Uploaded File Processing Finished

Event for when all steps of the processing of a machine operations file that was uploaded +to Leaf are finished. This event can be useful to trigger a procedure that fetches the file from the API. +This event can be used to activate a procedure that fetches the file from the api, +since processing the file may take some time.

Alerts for this event are in the following format:

{
"fileId": "the id of the uploaded file",
"leafUserId": "the id of the file owner",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"type": "uploadedFileProcessingFinished"
}

Uploaded File Processing Failed

Event for when the processing of an operations file that was uploaded to Leaf is finished +but failed in one or more of the processing steps. This event can be useful for identifying +files that have failed and are no longer being processed.

Alerts for this event are in the following format:

{
"fileId": "the id of the uploaded file",
"leafUserId": "the id of the file owner",
"message": "details of what happened. May be empty",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"type": "uploadedFileProcessingFailed"
}

Machine File Conversion Events

Provider File Processing Finished

Event for when the processing of an operations file from a provider +(either uploaded to provider manually or via Wireless Data Transfer) has successfully finished +processing. This event can be useful for identifying new files when they are available.

Alerts for this event are in the following format:

{
"fileId": "the id of the uploaded file",
"leafUserId": "the id of the file owner",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"type": "providerFileProcessingFinished"
}

Provider File Processing Failed

Event for when the processing of an operations file from a provider +(either uploaded to provider manually or via Wireless Data Transfer) is finished +processing but failed in one or more of the processing steps. This event can be useful for identifying +files that have failed and are no longer being processed.

Alerts for this event are in the following format:

{
"fileId": "the id of the uploaded file",
"leafUserId": "the id of the file owner",
"message": "details of what happened. May be empty",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"type": "providerFileProcessingFailed"
}

Operation Events

Merged File Processing Finished

Event for when the processing of a merged operation file has successfully finished +processing. This event can be useful for identifying new merged files when they are available.

Alerts for this event are in the following format:

{
"fileId": "the id of the uploaded file",
"leafUserId": "the id of the file owner",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"type": "mergedFileProcessingFinished"
}

Merged File Processing Failed

Event for when the processing of a merged operation file is finished +processing but failed in one or more of the processing steps. This event can be useful for identifying +merged files that have failed and are no longer being processed.

Alerts for this event are in the following format:

{
"fileId": "the id of the uploaded file",
"leafUserId": "the id of the file owner",
"message": "details of what happened. May be empty",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"type": "mergedFileProcessingFailed"
}

Automerged File Processing Finished

Event for when the processing of an automerged operation file has successfully finished +processing. This event can be useful for identifying new automerged files when they are available.

Alerts for this event are in the following format:

{
"fileId": "the id of the uploaded file",
"leafUserId": "the id of the file owner",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"type": "automergedFileProcessingFinished"
}

Automerged File Processing Failed

Event for when the processing of an automerged operation file is finished +processing but failed in one or more of the processing steps. This event can be useful for identifying +automerged files that have failed and are no longer being processed.

Alerts for this event are in the following format:

{
"fileId": "the id of the uploaded file",
"leafUserId": "the id of the file owner",
"message": "details of what happened. May be empty",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"type": "automergedFileProcessingFailed"
}

Operation created

Event for when an operation is successfully created. +This event can be useful for identifying new operations when they are available. +When sending this event, operation resources such as summary, images and units will probably not be complete.

Alerts for this event are in the following format:

{
"operationId": "the id of the operation created",
"leafUserId": "the id of the file owner",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"type": "operationCreated"
}

Operation updated

Event for when an operation has updated. +This event can be useful for identifying changes to operations.

Alerts for this event are in the following format:

{
"operationId": "the id of the operation uploaded",
"leafUserId": "the id of the file owner",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"type": "operationUpdated"
}

Operation Processing Finished

Event when a Field Operation has successfully finished. +This event could be useful for fetching the resources of an operation such as images, summary and units.

Alerts for this event are in the following format:

{
"operationId": "the id of the operation uploaded",
"leafUserId": "the id of the file owner",
"type": "operationProcessingFinished",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'"
}

Crop Monitoring Events

New Satellite Image

This event happens when we finish processing a new satellite image for a monitored field. +It can be useful for searching only the new and latest images available in our API.

Alerts for this event are in the following format:

{
"externalId": "the external id of the monitored field",
"processId": "the id of the process containing new images",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"type": "newSatelliteImage"
}

Assets (Beta) Events

New Machine

This event happens when a new machine is created, either from operations files, or from provider data sync, or created by the user.

Alerts for this event are in the following format:

{
"type": "machineCreated",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"machineId": "the id of the new machine",
"leafUserId": "the id of the file owner"
}

Updated Machine

This event happens when a machine is updated, either from operations files, or from provider data sync, or by the user.

Alerts for this event are in the following format:

{
"type": "machineUpdated",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"machineId": "the id of the machine uploaded",
"leafUserId": "the id of the file owner"
}

Deleted Machine

This event happens when a machine is deleted by the user.

Alerts for this event are in the following format:

{
"type": "machineDeleted",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"machineId": "the id of the machine deleted",
"leafUserId": "the id of the file owner"
}

New Implement

This event happens when a new implement is created from provider data sync.

Alerts for this event are in the following format:

{
"type": "implementCreated",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"implementId": "the id of the new implement",
"leafUserId": "the id of the leaf user owner"
}

Updated Implement

This event happens when a implement is updated from provider data sync.

Alerts for this event are in the following format:

{
"type": "implementUpdated",
"timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"implementId": "the id of the implement uploaded",
"leafUserId": "the id of the leaf user owner"
}
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/alerts_overview/index.html b/docs/alerts_overview/index.html new file mode 100644 index 000000000..17a3928e9 --- /dev/null +++ b/docs/alerts_overview/index.html @@ -0,0 +1,46 @@ + + + + + + + + +Alerts Overview | Leaf + + + + + + + + + + + + + +
+

Alerts Overview

About

With Alerts you can be notified when something happens or changes instead of needing to repeatedly query for changes. +Leaf Alerts support events that happen within Leaf and events that happen within supported 3rd party software.

Webhooks are user-defined HTTP callbacks. You send us a server URL (the address of +the callback) specifying what things you want to know about so when they do happen, +we tell you on that URL, by means of a HTTP request.

Those things are called "events", for example: "there's a new satellite image", +"the processing of an operations file finished", or "these credentials expired".

The following image shows how events are sent to your webhook. On the left, its +the representation of a webhook registration. On the right, a satellite image +is processed at any time, then the webhooks system sends a POST request to the +registered webhook.

Field example

Check the "Overview" page of a specific service, section "Events", to know what +events from that service are available to webhooks.

See the Alerts API Reference for information on how to +register, get and delete webhooks.

To understand how to verify if an incoming request comes from Leaf, see the Authentication section.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/authentication/index.html b/docs/authentication/index.html new file mode 100644 index 000000000..a5993ec12 --- /dev/null +++ b/docs/authentication/index.html @@ -0,0 +1,41 @@ + + + + + + + + +Authentication | Leaf + + + + + + + + + + + + + +
+

Authentication

To access our API, you first have to register using this link.

After confirming your email, you will be able to request a token (JWT) through +this endpoint:

https://api.withleaf.io/api/authenticate

Request examples

curl -X POST \
-H 'Content-Type: application/json' \
-d '{ "username":"username", "password":"password", "rememberMe":"true" }' \
'https://api.withleaf.io/api/authenticate'

Response

This request will return your access token to Leaf's API:

{
"id_token" : "YOUR_LEAF_TOKEN"
}

All set! Include this token in your API calls and you will have access to +Leaf's API.

Note:

  • Your Leaf Token lasts for 30 days with "rememberMe": "true" in the +json. If you want it to last only 24 hours, set "rememberMe" to "false".
  • After expiration, just make the same request to the same endpoint and you will +get a new access token.
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/beta_assets_endpoints/index.html b/docs/beta_assets_endpoints/index.html new file mode 100644 index 000000000..1a476f2de --- /dev/null +++ b/docs/beta_assets_endpoints/index.html @@ -0,0 +1,41 @@ + + + + + + + + +Beta > Assets Endpoints | Leaf + + + + + + + + + + + + + +
+

Beta > Assets Endpoints

About

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/beta/api

See below the REST resources and their endpoints available in this service.

Assets (BETA)

This feature has the following endpoints available:

DescriptionEndpoints
Get all machinesGET /users/{leafUserId}/machines
Get a machineGET /users/{leafUserId}/machines/{machineId}
Get machine filesGET /users/{leafUserId}/machines/{machineId}/files
Create a machinePOST /users/{leafUserId}/machines
Update a machinePATCH /users/{leafUserId}/machines/{machineId}
Delete a machineDELETE /users/{leafUserId}/machines/{machineId}
Get all implementsGET /users/{leafUserId}/implements
Get an implementGET /users/{leafUserId}/implements/{implementId}
Get all operatorsGET /users/{leafUserId}/operators
Get an operatorGET /users/{leafUserId}/operators/{operatorId}

Get all machines

 GET /users/{leafUserId}/machines

Get the list of machines that are related to a given LeafUserId. Some fields can be sent as query parameters to filter the machines, such as:

Parameter (to filter by)Values
namemachine name
providerJohnDeere, Stara and CNHI
providerOrganizationIdprovider side organization id
serialNumbermachine serial number
originTypespecify the origin of the machine, must be either USER_CREATED, FILE_POOLED or PROVIDER_POOLED
createdTimemust match exactly the time of the record creation, ISO 8601 without timezone
beforeCreatedTimefilters for records created before the datetime, ISO 8601 without timezone
afterCreatedTimefilters for records created after the datetime, ISO 8601 without timezone
vinfilters machines by Vehicle Identification Number

You can also pass some parameters used exclusively for paging through results. +They are:

  • page, an integer specifying the page being fetched (default is 0)
  • size, an integer specifying the size of the page (max is 100)
  • sort, the sorting order of the results; can be multi-value, where the first value to be passed will have preference in ordering over the next ones; you can also specify the order as asc or desc with asc being the default. Example: id, desc
    • Valid values for sorting are: id, leafUserId, name, provider, providerOrganizationId, providerMachineId, serialNumber, vin, model, make, category and modelYear
the default value for page size is 20

If the parameters page and size are not set, the endpoint will return 20 results.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines'

Response

[
{
"id": "e89b1861-bdbb-49b9-8e11-74840f7e1ea8",
"leafUserId": "faa6691a-7bf7-49c2-8934-b5b4c823aef8",
"name": "TestName",
"provider": "Leaf",
"providerMachineId": "08790ae9-d451-4158-9920-09d1ab1ba5e6",
"providerOrganizationId": "123456",
"originType": "PROVIDER_POOLED",
"createdTime": "2022-02-22T20:06:25.411Z",
"serialNumber": "123456",
"vin": "1234567890ABC",
"model": "ModelName",
"make": "MakerOfMachine",
"category": "Sprayer",
"modelYear": 2000
},
{
"id": "82725746-3150-490d-9f3f-a47151ac0669",
"leafUserId": "325f5ac0-6c57-4b4a-bdea-490ccddb06c4",
"name": "nameTest",
"provider": "Leaf",
"providerMachineId": "75f362b4-8f61-46f9-905b-a357fb239930",
"providerOrganizationId": "654321",
"originType": "FILE_POOLED",
"createdTime": "2022-02-22T20:06:25.411Z",
"serialNumber": "123456",
"vin": "1234567890ABC",
"model": "ModelName",
"make": "MakerOfMachine",
"category": "Harvester",
"modelYear": 2020
},
....
]

Get a machine

 GET /api/users/{leafUserId}/machines/{machineId}

Get the details of a given machine by its id.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}'

Response

{
"id": "UUID",
"leafUserId": "UUID",
"name": "str",
"provider": null,
"providerMachineId": null,
"providerOrganizationId": null,
"originType": "PROVIDER_POOLED",
"createdTime": "2022-02-22T20:06:25.411Z",
"serialNumber": "123456",
"vin": "1234567890ABC",
"model": "ModelName",
"make": "MakerOfMachine",
"category": "Sprayer",
"modelYear": 2000
}

Get machine files

 GET /api/users/{leafUserId}/machines/{machineId}/files

Get the details of machine operations files given a machine id. Some fields can be sent as query parameters to filter the machine files, such as:

Parameter (to filter by)Values
leafFileIdUUID
originTypespecify the origin of the machine, must be either USER_CREATED, FILE_POOLED or PROVIDER_POOLED
createdTimean ISO 8601 without timezone specifying the operation exact created time
beforeCreatedTimefilters for records created before the datetime, ISO 8601 without timezone
afterCreatedTimefilters for records created after the datetime, ISO 8601 without timezone
startTimemust match exactly the time of the start of the operation, ISO 8601 without timezone
endTimemust match exactly the time of the end of the operation, ISO 8601 without timezone
beforeStartTimean ISO 8601 without timezone, returns all operations that started before the specified time
afterStartTimean ISO 8601 without timezone, returns all operations that started after the specified time
beforeEndTimean ISO 8601 without timezone, returns all operations that ended before the specified time
afterEndTimean ISO 8601 without timezone, returns all operations that ended after the specified time
distanceValuea double value for the distance
greaterThanDistanceValuea double value for the distance, returns all operations that have a distance value greater than the specified distance
lessThanDistanceValuea double value for the distance, returns all operations that have a distance value lesser than the specified distance
distanceUnitmust be "Mile", "mile", "Feet" or "ft"

You can also pass some parameters used exclusively for paging through results. +They are:

  • page, an integer specifying the page being fetched (default is 0)
  • size, an integer specifying the size of the page (max is 100)
  • sort, the sorting order of the results; can be multi-value, where the first value to be passed will have preference in ordering over the next ones; you can also specify the order as asc or desc with asc being the default. Example: id, desc
    • Valid values for sorting are: id, leafUserId, machineId, startTime, endTime, createdTime, leafFileId

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}/files'

Response

[
{
"id": "e7916d05-97ae-404a-a467-e2512c202a2f",
"leafFileId": "e0e18a6f-4f88-4801-96e2-f39143f260e1",
"machineId": "98b244fc-7b2d-4acf-a51a-58d20ae27355",
"startTime": "2022-02-22T20:06:25.411Z",
"endTime": "2022-02-22T20:07:25.411Z",
"distance": {
"value": 4152.255,
"unit": "ft"
},
"fuelConsumption": {
"value": 28.89,
"unit": "US gal"
}
},
{
"id": "UUID",
"leafFileId": "UUID",
"machineId": "UUID",
"startTime": "YYYY-mm-ddThh:mm:ssZ",
"endTime": "YYYY-mm-ddThh:mm:ssZ",
"distance": {
"value": 5075.145,
"unit": "ft"
},
"fuelConsumption": {
"value": 25.55,
"unit": "US gal"
}
}
]

Create a machine

 POST /users/{leafUserId}/machines

Creates a machine for a specific LeafUser.

Request body

{
"name": "nameTest",
"serialNumber": "123456",
"vin": "1234567890ABC",
"model": "ModelName",
"make": "MakerOfMachine",
"category": "Harvester",
"modelYear": 2020
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "name": "str"}' \
'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines'

Response

{
"id": "d5efe8a1-98be-40db-b2b2-2da332e8f69c",
"name": "nameTest",
"provider": "Leaf",
"providerMachineId": "24de86ff-e6f0-4f8f-b429-0571c30a7ddf",
"providerOrganizationId": "654321",
"leafUserId": "9e081c9d-6185-49e1-8df7-7788d6aa1211",
"originType": "USER_CREATED",
"createdTime": "2023-06-12T17:38:09.148568906Z",
"createdAt": "2023-06-12T17:38:09.148568906Z",
"serialNumber": "123456",
"vin": "1234567890ABC",
"model": "ModelName",
"make": "MakerOfMachine",
"category": "Harvester",
"modelYear": 2020
}

Update a machine

 PATCH /api/users/{leafUserId}/machines/{machineId}

Update a machine for a specific LeafUser.

Only machines created by the user can be updated

Machine data obtained from providers cannot be updated

Request body

{
"name": "updatedName",
"serialNumber": "000123",
"vin": "1234567890EFR",
"model": "ModelNameUpdated",
"make": "MakerOfMachineUpdated",
"category": "Planted",
"modelYear": 2021
}

Request examples

curl -X PATCH \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "name": "str"}' \
'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}'

Response

{
"id": "d5efe8a1-98be-40db-b2b2-2da332e8f69c",
"name": "updatedName",
"provider": "Leaf",
"providerMachineId": "24de86ff-e6f0-4f8f-b429-0571c30a7ddf",
"providerOrganizationId": "654321",
"leafUserId": "9e081c9d-6185-49e1-8df7-7788d6aa1211",
"originType": "USER_CREATED",
"createdTime": "2023-06-12T17:38:09.148568906Z",
"createdAt": "2023-06-12T17:38:09.148568906Z",
"serialNumber": "updatedName",
"vin": "1234567890EFR",
"model": "ModelNameUpdated",
"make": "MakerOfMachineUpdated",
"category": "Planted",
"modelYear": 2021
}

Delete a machine

 DELETE /api/users/{leafUserId}/machines/{machineId}

Delete a machine data

Only machines created by the user can be Deleted

Machine data obtained from providers cannot be deleted

Request examples

curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}'

Get all implements

 GET /api/users/{leafUserId}/implements

Get all the implements information based on your leafUserId. Currently, John Deere and Trimble implements are listed.

Parameter (to filter by)Values
leafUserIduuid of one of your users
providerJohnDeere or Trimble
providerImplementIdprovider side implement id
providerOrganizationIdprovider side organization id
createdTimeISO 8601 date. Returns operations from the createdTime onward
updatedTimeISO 8601 date. Returns operations from the updatedTime onward
nameimplement name

You can also pass some parameters used exclusively for paging through results. +They are:

  • page, an integer specifying the page being fetched (default is 0)
  • size, an integer specifying the size of the page (max is 100)
  • sort, the sorting order of the results; can be multi-value, where the first value to be passed will have preference in ordering over the next ones; you can also specify the order as asc or desc with asc being the default. Example: id, desc
    • Valid values for sorting are: id, leafUserId, name, provider, providerOrganizationId, providerImplementId, serialNumber, model, make, category.
the default value for page size is 20

If the parameters page and size are not set, the endpoint will return 20 results.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/users/{leafUserId}/implements'

Response

[
{
"id": "38d313fc-e4ce-442b-9147-f469b30aedab",
"name": "c3po_implement",
"provider": "JohnDeere",
"providerImplementId": "110237",
"providerOrganizationId": "296264",
"leafUserId": "mbba54fb-3710-4f7d-9aaf-703107930193",
"originType": "PROVIDER_POOLED",
"serialNumber": "00000",
"model": "StMax150",
"make": "JOHN DEERE",
"category": "Cotton Harvester Implement"
},
...
]

Get an implement

 GET /users/{leafUserId}/implements/{implementId}

Get the details of a given implement by its id.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/users/{leafUserId}/implements/{implementId}'

Response

{
"id": "38d313fc-e4ce-442b-9147-f469b30aedab",
"name": "c3po_implement",
"provider": "JohnDeere",
"providerImplementId": "110237",
"providerOrganizationId": "296264",
"leafUserId": "mbba54fb-3710-4f7d-9aaf-703107930193",
"originType": "PROVIDER_POOLED",
"serialNumber": "00000",
"model": "StMax150",
"make": "JOHN DEERE",
"category": "Cotton Harvester Implement"
}

Get all operators

 GET /api/users/{leafUserId}/operators

Get all the operators information based on your leafUserId. Currently, John Deere operators are listed.

You can also pass some parameters used exclusively for paging through results. +They are:

  • page, an integer specifying the page being fetched (default is 0)
  • size, an integer specifying the size of the page (max is 100)
the default value for page size is 20

If the parameters page and size are not set, the endpoint will return 20 results.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/users/{leafUserId}/operators'

Response

[
{
"id": "aa8c917bc-7e9b-47bc-99b8-4a0df818ab07",
"name": "Brian O.",
"provider": "JohnDeere",
"providerOperatorId": "bbd3a3e8-5ac3-4ab8-4619-d582da4568cc",
"providerOrganizationId": "9999",
"originType": "PROVIDER_POOLED",
"license": null,
"updatedTime": "2023-10-10T10:10:10.000Z",
"status": "ACTIVE"
},
...
]

Get an operator

 GET /users/{leafUserId}/operators/{operatorId}

Get the details of a given operator by its id.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/users/{leafUserId}/operators/{operatorId}'

Response

{
"id": "aa8c917bc-7e9b-47bc-99b8-4a0df818ab07",
"name": "Brian O.",
"provider": "JohnDeere",
"providerOperatorId": "bbd3a3e8-5ac3-4ab8-4619-d582da4568cc",
"providerOrganizationId": "9999",
"originType": "PROVIDER_POOLED",
"license": null,
"updatedTime": "2023-10-10T10:10:10.000Z",
"status": "ACTIVE"
}
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/beta_features_overview/index.html b/docs/beta_features_overview/index.html new file mode 100644 index 000000000..c63e0e433 --- /dev/null +++ b/docs/beta_features_overview/index.html @@ -0,0 +1,39 @@ + + + + + + + + +Beta Features Overview | Leaf + + + + + + + + + + + + + +
+

Beta Features Overview

The beta features contain experimental features that we are working on but can be used by Leaf customers. +The services available in this section may be updated as we release improvements.

Currently, we are working in the following features:

Machines

This product fetches and stores machine data such as serial number, fuel consumption and start/stop time from providers.

Currently, we are obtaining data from the following providers:

  • CNHI
  • JohnDeere
  • Stara
Implement Data
Implement Data is only available for customers with John Deere credentials

Prescriptions

What are prescriptions in agriculture? Prescriptions are usually used to apply inputs at variable rates across a field, applying only the amount needed for each area. For example, a prescription could be based on soil sample results or crop monitoring data, and instructs a machine where to best distribute lime, potassium or other products that can improve soil quality or crop health.

Leaf helps organize the data flow for prescriptions.

Our supported providers are:

  • ClimateFieldView
  • John Deere
  • Raven Slingshot
  • CNHI

Note: The prescription should be included as a zip file containing a valid shapefile with least three file extentions (shp, dbf and shx) with the same naming.

Layers

You can now get layers (e.g. tassel count, stand count, NVDI, and RGB) via Leaf’s Sentera integration. Layers are used to display crop monitoring information geospatially on a farm map so that any variance in a crop can be visualized, usually at a field level.

Our supported providers are:

  • Sentera

Input

This resource will search, in the operation's files, varieties of harvested/planted crops and applied products and +store this data. For products, data from Agrian and CDMS will also be made available globally, so that all customers can access it.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/beta_input_endpoints/index.html b/docs/beta_input_endpoints/index.html new file mode 100644 index 000000000..b52fec6c4 --- /dev/null +++ b/docs/beta_input_endpoints/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Beta > Input Endpoints | Leaf + + + + + + + + + + + + + +
+

Beta > Input Endpoints

About

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/beta/api

See below the REST resources and their endpoints available in this service.

Products

Endpoints

DescriptionEndpoints
Get all productsGET /products
Get summarized productsGET /users/{leafUserId}/products/summary
Search for productsGET /products/search
Get a productGET /products/{id}
Get matching products from an operationGET /users/{leafUserId}/products/matching/operations/{operationId}
Updated product matchesPUT /products/matching/operations/{operationId}/matches/{matchId}
Get product matches historicalGET /products/matching/operations/{operationId}/matches/{matchId}/historical

Get all products

 GET /products

List of products from providers (for now only for John Deere) in a Leaf User level. This way, on this endpoint the user can search for all products that are available from traditional providers (e.g. John Deere), so here we do not include specific providers such as Agrian and CDMS.

Parameter (to filter by)Values
leafUserIduuid of one of your users
providerJohnDeere
sizean integer specifying the size of the page (max is 100)
pagean integer specifying the page being fetched (default is 0)
sortthe sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as asc or desc with asc being the default. Example: id, desc

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/products'

Response

[
{
"id": "07b3f270-8af8-11ee-b9d1-0242ac120002",
"name": "Propiconazole",
"registrant": "Tide International USA,Inc.",
"productType": "Chemical",
"labelProvider": "JohnDeere",
"providerId": "020c55f6-8af8-11ee-b9d1-0242ac120002",
"formulationType": "DRY",
"leafUserId": "fb6fcda4-8af7-11ee-b9d1-0242ac120002",
"registration": "0084229-00011-AA-0000000",
"status": "ACTIVE",
"carrier": true
},
....
]

Get summarized products

 GET /users/{leafUserId}/products/summary

List of products extracted from machine file.

Parameter (to filter by)Values
namepart of the product name
pagean integer specifying the page being fetched (default is 0)
sizean integer specifying the size of the page (max is 100)
sortthe sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as asc or desc with asc being the default. Example: id, desc

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/users/{leafUserId}/products/summary'

Response

[
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "Produto padrão",
"leafUserId": "8bbe50a0-992c-11ee-b9d1-0242ac120002"
},
....
]

Search for products

 GET /products/search

Search for products by name, partial values are supported. Agrian and CDMS products are currently available to everyone, and John Deere products from the Operation Center at the Leaf User level.

Parameter (to filter by)Values
namepart of the product name to be searched (required)
maxResultsthe number of results that should be returned (max value is 20). The default is 10

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/products/search'

Response

[
{
"id": "7d85c556-0ac5-4f0b-b7cc-b35ac559af8f",
"name": "CompostX",
"registration": "00000-00-00000",
"registrant": "Leaf Company, LLC",
"productType": "Dry",
"formulationType": "Dry Flowable",
"labelProvider": "CDMS",
"productPageUrl": "https://www.cdms.net/ldat/",
"labels": [
{
"name": "meE2000.pdf",
"url": "https://www.cdms.net/ldat/meE2000.pdf"
},
....
],
"activeIngredient": [
"Urea",
"Calcium",
....
]
},
{
"id": "81ffe756-1fd0-4d97-b2ec-e33b5232f507",
"name": "CompostY",
"registration": "00000-000",
"registrant": "Agriscience",
"productType": "Dry",
"formulationType": "Dry Flowable",
"labelProvider": "AGRIAN",
"productPageUrl": "https://www.agrian.com/searchcenter/demonstration=00000",
"labels": [
{
"name": "Label - 00-R000",
"url": "https://www.agrian.com/pdfs/new/00000.pdf"
},
....
],
"activeIngredient": [
"Roundup",
"Glyphosate",
....
]
},
....
]

Get a product

 GET /products/{id}

Get a product by its id. The data is obtained from different product databases.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/products/{id}'

Response

{
"id": "81ffe756-1fd0-4d97-b2ec-e33b5232f507",
"name": "GameOn",
"registration": "62719-724",
"registrant": "Corteva Agriscience",
"productType": "Dry",
"formulationType": "Dry Flowable",
"labelProvider": "AGRIAN",
"productPageUrl": "https://www.agrian.com/labelcenter/results.cfm?d=21666",
"labels": [
{
"name": " Label - 03-R0718 ",
"url": "https://www.agrian.com/pdfs/current/Badge_X2_FungicideBactericide_Label1p.pdf"
},
....
]
}

Get matching products from an operation

 GET /products/matching/operations/{operationId}

This endpoint can be used as the input validator, getting the standard products that best match the products from a Field Operation. Information such as the registration number and labels can be obtained from this endpoint using the id.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/products/matching/operations/{operationId}'

Response

[
{
"id": "37159c45-4c1f-48e4-aa87-90b34cc6e789",
"name": "ams",
"productId": "e5b91778-0714-4e1f-850c-b458d1bdc7ed",
"matchDetails": {
"status": "PREDICTED",
"score": 14.354036
}
},
{
"id": "7fb70242-498b-42c1-92c3-a7d2361d2125",
"name": "counter",
"productId": "a85c1d0d-b673-46aa-a3a3-31cb65f57598",
"matchDetails": {
"status": "VALIDATED"
}
},
....
]

Updated product matches

 PUT /products/matching/operations/{id}/matches/{matchId}

Updated Leaf predictions or approves them.

Request body

To approve Leaf prediction:

{
"status": "VALIDATED"
}

Or, to change prediction:

{
"productId": "expectedProductID"
}

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "status": "VALIDATED" }' \
'https://api.withleaf.io/services/beta/api/products/matching/operations/{operationId}/matches/{matchId}'

Response

[
{
"id": "uidd-match-0001",
"name": "Ta35",
"productId": "uidd-prd-1001",
"matchDetails": {
"score": 91,
"status": "PREDICTED"
}
},
{
"id": "uidd-match-0002",
"name": "Talisman",
"productId": "uidd-prd-1003",
"matchDetails": {
"status": "VALIDATED"
}
}
]

Get product matches historical

 GET /products/matching/operations/{operationId}/matches/{matchId}/historical

Get a product's change history.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/products/matching/operations/{operationId}/matches/{matchId}/historical'

Response

[
{
"matchId": "uidd-match-0002",
"name": "Talisman",
"productId": "uidd-prd-1003",
"matchDetails": {
"status": "PREDICTED",
"score": 8.225217
},
"historicalTime": "2023-12-19T13:18:44.709Z"
}
]

Varieties

DescriptionEndpoints
Get all varietiesGET /varieties
Get summarized varietiesGET /users/{leafUserId}/varieties/summary
Search for varietiesGET /varieties/search

Get all varieties

 GET /varieties

List of varieties available from providers (for now only for John Deere).

Parameter (to filter by)Values
leafUserIduuid of one of your users
providerJohnDeere
sizean integer specifying the size of the page (max is 100)
pagean integer specifying the page being fetched (default is 0)
sortthe sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as asc or desc with asc being the default. Example: id, desc

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/varieties'

Response

[
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"crops": [
"ALFALFA"
],
"name": "Master Piece",
"companyName": "Simplot",
"status": "ACTIVE",
"leafUserId": "028c30fa-6d2a-11ee-b962-0242ac120002",
"provider": "JohnDeere",
"providerId": "8e1e0920-1265-4066-8067-8ce2ce5012b2"
},
....
]

Get summarized varieties

 GET /users/{leafUserId}/varieties/summary

List of varieties extracted from machine file.

Parameter (to filter by)Values
namepart of the product name
cropsdesired crop name
pagean integer specifying the page being fetched (default is 0)
sizean integer specifying the size of the page (max is 100)
sortthe sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as asc or desc with asc being the default. Example: id, desc

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/users/{leafUserId}/varieties/summary'

Response

[
{
"id": "680ff073-18d0-4951-ba69-b2ca0b098bc3",
"name": "corn variety 2",
"leafUserId": "028c30fa-6d2a-11ee-b962-0242ac120002",
"crops": [
"corn"
]
},
{
"id": "1544de06-682d-4549-92a3-a06b2ccdc96d",
"name": "corn variety 2 (1)",
"leafUserId": "8e1e0920-1265-4066-8067-8ce2ce5012b2",
"crops": [
"corn"
]
},
....
]

Search for varieties

 GET /varieties/search

Search for varieties by name, partial values are supported. Varieties from John Deere Operation Center are available at the Leaf User level.

Parameter (to filter by)Values
namepart of the variety name to be searched (required)
maxResultsthe number of results that should be returned (max value is 20). The default is 10
cropthe name of the crop of the varieties of interest

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/varieties/search'

Response

[
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"crops": [
"ALFALFA"
],
"name": "Master Piece",
"companyName": "Simplot",
"status": "ACTIVE",
"leafUserId": "028c30fa-6d2a-11ee-b962-0242ac120002",
"provider": "JohnDeere",
"providerId": "8e1e0920-1265-4066-8067-8ce2ce5012b2"
},
....
]

Tank Mixes

DescriptionEndpoints
Get all tank mixesGET /tankMixes
Search for tank mixesGET /tankMixes/search

Get all tank mixes

 GET /tankMixes

List of tank mixes available from providers (for now only for John Deere).

Parameter (to filter by)Values
leafUserIduuid of one of your users
providerJohnDeere
sizean integer specifying the size of the page (max is 100)
pagean integer specifying the page being fetched (default is 0)
sortthe sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as asc or desc with asc being the default. Example: id, desc

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/tankMixes'

Response

[
{
"id": "abc59ca6-937c-11ee-b9d1-0242ac120002",
"name": "TankTest1",
"providerId": "b74878dc-937c-11ee-b9d1-0242ac120002",
"notes": null,
"solutionRate": {
"valueAsDouble": 5,
"unit": "gal1ac-1",
"vrDomainId": "vrSolutionRateLiquid"
},
"formulationType": "LIQUID",
"targetCrops": [
"PINEAPPLE"
],
"carrier": {
"id": "c0cb84d0-937c-11ee-b9d1-0242ac120002",
"name": "Water",
"labelProvider": "JohnDeere",
"registrant": "GENERIC",
"registration": null,
"distributor": null,
"productType": "ADDITIVE",
"formulationType": "LIQUID",
"productPageUrl": null,
"labels": null,
"activeIngredient": null,
"carrier": true,
"status": "ACTIVE",
"providerId": "e0daf77e-937c-11ee-b9d1-0242ac120002",
"leafUserId": "cd06377c-937c-11ee-b9d1-0242ac120002"
},
"components": [
{
"id": "d1fb3aac-937c-11ee-b9d1-0242ac120002",
"name": "Brandt Big Foot SS",
"labelProvider": "JohnDeere",
"registrant": "Brandt Consolidated, Inc.",
"registration": null,
"distributor": null,
"productType": "ADDITIVE",
"formulationType": "DRY",
"productPageUrl": null,
"labels": null,
"activeIngredient": null,
"carrier": false,
"status": "ACTIVE",
"providerId": "06da2738-937d-11ee-b9d1-0242ac120002",
"leafUserId": "cd06377c-937c-11ee-b9d1-0242ac120002"
},
{
"id": "eaee0878-937c-11ee-b9d1-0242ac120002",
"name": "Ferti-Phos Mg 0-25-0",
"labelProvider": "JohnDeere",
"registrant": "Fertilizer Company of Arizona, Inc.",
"registration": null,
"distributor": null,
"productType": "FERTILIZER",
"formulationType": "LIQUID",
"productPageUrl": null,
"labels": null,
"activeIngredient": null,
"carrier": true,
"status": "ACTIVE",
"providerId": "0e0f1c66-937d-11ee-b9d1-0242ac120002",
"leafUserId": "cd06377c-937c-11ee-b9d1-0242ac120002"
}
],
"status": "ACTIVE",
"provider": "JohnDeere",
"leafUserId": "cd06377c-937c-11ee-b9d1-0242ac120002"
},
....
]

Search for tank mixes

 GET /tankMixes/search

Search for tank mixes by name, partial values are supported. Tank mix from John Deere Operation Center are available at the Leaf User level.

Parameter (to filter by)Values
namepart of the tank mix name to be searched (required)
maxResultsthe number of results that should be returned (max value is 20). The default is 10

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/tankMixes/search'

Response

[
{
"id": "abc59ca6-937c-11ee-b9d1-0242ac120002",
"name": "TankTest1",
"providerId": "b74878dc-937c-11ee-b9d1-0242ac120002",
"notes": null,
"solutionRate": {
"valueAsDouble": 5,
"unit": "gal1ac-1",
"vrDomainId": "vrSolutionRateLiquid"
},
"formulationType": "LIQUID",
"targetCrops": [
"PINEAPPLE"
],
"carrier": {
"id": "c0cb84d0-937c-11ee-b9d1-0242ac120002",
"name": "Water",
"labelProvider": "JohnDeere",
"registrant": "GENERIC",
"registration": null,
"distributor": null,
"productType": "ADDITIVE",
"formulationType": "LIQUID",
"productPageUrl": null,
"labels": null,
"activeIngredient": null,
"carrier": true,
"status": "ACTIVE",
"providerId": "e0daf77e-937c-11ee-b9d1-0242ac120002",
"leafUserId": "cd06377c-937c-11ee-b9d1-0242ac120002"
},
"components": [
{
"id": "d1fb3aac-937c-11ee-b9d1-0242ac120002",
"name": "Brandt Big Foot SS",
"labelProvider": "JohnDeere",
"registrant": "Brandt Consolidated, Inc.",
"registration": null,
"distributor": null,
"productType": "ADDITIVE",
"formulationType": "DRY",
"productPageUrl": null,
"labels": null,
"activeIngredient": null,
"carrier": false,
"status": "ACTIVE",
"providerId": "06da2738-937d-11ee-b9d1-0242ac120002",
"leafUserId": "cd06377c-937c-11ee-b9d1-0242ac120002"
},
{
"id": "eaee0878-937c-11ee-b9d1-0242ac120002",
"name": "Ferti-Phos Mg 0-25-0",
"labelProvider": "JohnDeere",
"registrant": "Fertilizer Company of Arizona, Inc.",
"registration": null,
"distributor": null,
"productType": "FERTILIZER",
"formulationType": "LIQUID",
"productPageUrl": null,
"labels": null,
"activeIngredient": null,
"carrier": true,
"status": "ACTIVE",
"providerId": "0e0f1c66-937d-11ee-b9d1-0242ac120002",
"leafUserId": "cd06377c-937c-11ee-b9d1-0242ac120002"
}
],
"status": "ACTIVE",
"provider": "JohnDeere",
"leafUserId": "cd06377c-937c-11ee-b9d1-0242ac120002"
},
....
]
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/beta_layers_endpoints/index.html b/docs/beta_layers_endpoints/index.html new file mode 100644 index 000000000..1c8afdb3c --- /dev/null +++ b/docs/beta_layers_endpoints/index.html @@ -0,0 +1,38 @@ + + + + + + + + +Beta > Layers Endpoints | Leaf + + + + + + + + + + + + + +
+

Beta > Layers Endpoints

About

You can now get layers (tassel count, stand count, NVDI, and RGB) through the Sentera integration. Please make sure to follow the Sentera integratation steps before getting layers.

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/beta/api

See below the REST resources and their endpoints available in this service.

DescriptionEndpoints
Get all the layers for a Leaf UserGET /users/{leafUserId}/layers
Upload a layer to Climate FieldViewPOST /users/{leafUserId}/layers/climateFieldView

Layers (BETA)

Get all the layers for a Leaf User

 GET /users/{leafUserId}/layers

Gets a paged list of layers that belong for a Leaf User.

Parameter (to filter by)Values
typeTASSEL_COUNT, STAND_COUNT, NVDI, and RGB

You can also pass some parameters used exclusively for paging through results. +They are:

  • page, an integer specifying the page being fetched (default is 0)
  • size, an integer specifying the size of the page (max is 100)
the default value for page size is 20

If the parameters page and size are not set, the endpoint will return 20 results.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/api/users/{leafUserId}/layers'

Response

[
{
"id": "96a098e0-f1d0-47e8-968d-9d55d54da114",
"leafUserId": "055c4d61-b1e2-4fa9-873c-23433a11c271",
"apiOwnerUsername": "fabyan",
"type": "RGB",
"origin": "PROVIDER_POOLED",
"provider": "Sentera",
"providerLayerId": "vnoyi6a_FI_edovSouthernM_CV_prod_82f9b3d6_211018_151052",
"providerFieldId": "ycof8zg_AS_edovSouthernM_CV_prod_a025df2d_211015_200456",
"name": "QuickTile RGB",
"size": 159135298,
"md5": "7ff746c6f5f06fc25b46420328402bed",
"contentS3": "URL",
"downloadContentS3": "URL",
"createdTime": "2022-02-16T21:40:20.257Z",
"leafFieldIds": [
"f43ca7cc-c73a-43b9-8685-070b03876475",
"edcf7b8b-913e-4e53-a0b5-91aa16699dfc"
]
},
{
"id": "4d9b0139-f528-43ab-8bc9-a31043fa87d2",
"leafUserId": "055c4d61-b1e2-4fa9-873c-23433a11c271",
"apiOwnerUsername": "fabyan",
"type": "RGB",
"origin": "PROVIDER_POOLED",
"provider": "Sentera",
"providerLayerId": "<UUID defined by the provider>",
"providerFieldId": "<UUID defined by the provider>",
"name": "QuickTile RGB",
"size": 121910506,
"md5": "759d1f68962e30ea78f40025c8b64972",
"contentS3": "URL",
"downloadContentS3": "URL",
"createdTime": "2022-02-16T21:40:35.341Z",
"leafFieldIds": [
"f43ca7cc-c73a-43b9-8685-070b03876475",
"edcf7b8b-913e-4e53-a0b5-91aa16699dfc"
]
},
....
]

Upload a layer to Climate FieldView

 POST /users/{leafUserId}/layers/climateFieldView

Send a layer file to Climate FieldView.

ParameterValues
uploadTypeRGB

Currently, only true color image (RGB) files are supported and must meet the following criteria required by Climate:

  • The image needs to be a multi band GeoTIFF with 24-bit composite values (must contain 3 bands in the order Red, Green, Blue)
  • The Coordinate Reference System (CRS) must be UTM with WGS84 datum
  • The following metadata (GDAL_METADATA tag) entries are required to be embedded in the GeoTIFF:
    • acquisitionStartDate - ISO8601 date
    • acquisitionEndDate - ISO8601 date
    • isCalibrated - boolean

Although Climate FieldView supports files up to 500MB, at this time, we only accept files up to 5MB.

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-F 'file=rgb.tif' \
'https://api.withleaf.io/services/beta/api/users/{leafUserId}/layers/climateFieldView?' \
'uploadType=RGB'

Response

{
"id": "86fb8bea-1670-48ea-a85d-fbdf6feefb35",
"name": "LayerName"
}
info

Uploaded layers are not stored on Leaf side and are only available for use directly in Climate FieldView

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/beta_machines_endpoints/index.html b/docs/beta_machines_endpoints/index.html new file mode 100644 index 000000000..031933a16 --- /dev/null +++ b/docs/beta_machines_endpoints/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Beta > Machines Endpoints | Leaf + + + + + + + + + + + + + +
+

Beta > Machines Endpoints

Documentation update!

We are updating our documentation and this page was moved to here.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/beta_prescriptions_endpoints/index.html b/docs/beta_prescriptions_endpoints/index.html new file mode 100644 index 000000000..2d8eaac7d --- /dev/null +++ b/docs/beta_prescriptions_endpoints/index.html @@ -0,0 +1,41 @@ + + + + + + + + +Beta > Prescriptions Endpoints | Leaf + + + + + + + + + + + + + +
+

Beta > Prescriptions Endpoints

About

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/beta/prescription/api

See below the REST resources and their endpoints available in this service.

Prescription (BETA)

This feature has the following endpoints available:

DescriptionEndpoints
Upload prescription to Raven SlingshotPOST /users/{leafUserId}/ravenSlingshot
List prescriptions from Raven SlingshotGET /users/{leafUserId}/ravenSlingshot
Lists prescriptions from John DeereGET /users/{leafUserId}/johnDeere
Upload prescription to John DeerePOST /users/{leafUserId}/johnDeere
Download prescription from John DeereGET /users/{leafUserId}/johnDeere/download
Upload prescription to CNHiPOST /users/{leafUserId}/cnhi
List prescriptions from CNHiGET /users/{leafUserId}/cnhi
Upload prescription to Climate FieldViewPOST /users/{leafUserId}/climateFieldView
Upload prescription to TrimblePOST /users/{leafUserId}/trimble

Upload prescription to Raven Slingshot

 POST /users/{leafUserId}/ravenSlingshot

Upload a prescription using the Raven Slingshot credentials of the LeafUserId.

The file to be uploaded needs to be .zip and contain one of each of the following file extension: shp, dbf, shx; and all files must have the same name. The zip file cannot contain subfolders.

Example:

A zip file named “prescription_rx_map”, containing the following files:

  • prescription_rx_map.shp
  • prescription_rx_map.dbf
  • prescription_rx_map.shx

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-F 'file=prescription_rx_map.zip' \
'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/ravenSlingshot'

Response

{
"id": "str",
"name": "str"
}

List prescriptions from Raven Slingshot

 GET /users/{leafUserId}/ravenSlingshot

List the existing prescriptions available in the provider.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/ravenSlingshot'

Response

[
{
"id": "str",
"name": "str"
},
{
"id": "str",
"name": "str"
}
]

Upload prescription to John Deere

 POST /users/{leafUserId}/johnDeere

Upload a prescription using the John Deere credentials of the LeafUserId.

There is a required request parameter called organizationId for this endpoint to work. +This property should be the id of the organization at JohnDeere.

The file to be uploaded needs to be .zip and have a folder called "Rx" containing one of each of the following file extension: shp, dbf, shx; and all files must have the same name. The zip file cannot contain subfolders.

Example:

A .zip file named “prescription_rx_map”, having a parent folder called "Rx", containing the following files:

  • Rx/
    • prescription_rx_map.shp
    • prescription_rx_map.dbf
    • prescription_rx_map.shx

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-F 'file=prescription_rx_map.zip' \
'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/johnDeere?organizationId={organizationId}'

Response

{
"id": "str",
"name": "str"
}

List prescriptions from John Deere

 GET /users/{leafUserId}/johnDeere

List the existing prescriptions available in the provider.

There is a required request parameter called organizationId for this endpoint to work. +This property should be the id of the organization at JohnDeere.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/johnDeere?organizationId={organizationId}'

Response

[
{
"id": "str",
"name": "str"
},
{
"id": "str",
"name": "str"
}
]

Download prescription from John Deere

 GET /users/{leafUserId}/johnDeere/download

Download a prescription related to a file ID using the LeafUserId's John Deere credentials. This file ID is relative +to the one available from the John Deere side.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/johnDeere/download?fileId={fileId}'

Response

{
"fileUrl": "url_to_download"
}

Upload prescription to CNHi

 POST /users/{leafUserId}/cnhi

Upload a prescription using the CNHi credentials of the LeafUserId.

You can get the company Id from the grower endpoints using the property providerOrganizationId.

The file to be uploaded must be a .zip and contain each of the following file extension: shp, dbf and shx. +All files must have the same name. The zip file cannot contain subfolders.

Example:

A .zip file named “prescription_map” containing the following files:

  • prescription_map.shp
  • prescription_map.dbf
  • prescription_map.shx

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-F 'file=prescription_map.zip' \
'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/cnhi?companyId={companyId}'

Response

{
"id": "str",
"name": "str"
}

List prescriptions from CNHi

 GET /users/{leafUserId}/cnhi

List the existing prescriptions available in the provider.

You can get the company Id from the grower endpoints using the property providerOrganizationId.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/cnhi?companyId={companyId}'

Response

[
{
"id": "str",
"name": "str"
},
{
"id": "str",
"name": "str"
}
]

Upload prescription to Climate FieldView

 POST /users/{leafUserId}/climateFieldView

Upload a prescription using the Climate FieldView credentials of the LeafUserId.

The file to be uploaded needs to be .zip and contain one of each of the following file extension: shp, dbf, shx; and all files must have the same name. The zip file cannot contain subfolders.

Example:

A zip file named “prescription_rx_map”, containing the following files:

  • prescription_rx_map.shp
  • prescription_rx_map.dbf
  • prescription_rx_map.shx

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-F 'file=prescription_rx_map.zip' \
'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/climateFieldView'

Response

{
"id": "str",
"name": "str"
}

Upload prescription to Trimble

 POST /users/{leafUserId}/trimble

Upload a prescription using the Trimble credentials of the LeafUserId.

The file to be uploaded needs to be .zip and contain one of each of the following file extension: shp, dbf, shx; and all files must have the same name. The zip file cannot contain subfolders.

Also, in Raven's case the user must fill the rateAttribute and rateUnit as required parameters within the URL. An optional parameter is the fileName.

The rateAttribute must contain the name of the column from the Shapefile.

The rateUnit must contain one the values in the table below

rateUnit
gal/ac
l/ha
lbs/ac
ton/ac
kg/ha
t/ha
kS/ac
kS/ha
lbs(N)/ac
kg(N)/ha
S/ha
S/ha

Example:

A zip file named “prescription_rx_map”, containing the following files:

  • prescription_rx_map.shp
  • prescription_rx_map.dbf
  • prescription_rx_map.shx

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-F 'file=prescription_rx_map.zip' \
'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/trimble?rateAttribute={}&rateUnit={}'

Response

{
"id": "str",
"name": "str"
}
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/configurations_endpoints/index.html b/docs/configurations_endpoints/index.html new file mode 100644 index 000000000..c9ed89d7c --- /dev/null +++ b/docs/configurations_endpoints/index.html @@ -0,0 +1,45 @@ + + + + + + + + +Configurations Endpoints | Leaf + + + + + + + + + + + + + +
+

Configurations Endpoints

About

Here we list all the available endpoints from Leaf's Configuration API. To call them easily, we recommend using Leaf's Postman collection.

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/config/api

This service has the following endpoints available:

DescriptionEndpoints
Get API Owner's ConfigurationGET /configs
Get Leaf User's ConfigurationGET /configs/{leafUserId}
Create Leaf User's ConfigurationPOST /configs/{leafUserId}
Update API Owner's ConfigurationPATCH /configs
Update Leaf User's ConfigurationPATCH /configs/{leafUserId}
Delete Leaf User's ConfigurationDELETE /configs/{leafUserId}

Endpoints

Get API Owner's Configuration

 GET /configs

Gets the configuration of the API Owner.

TOKEN=YOUR_TOKEN
+
curl -X GET \
-H "Authorization: Bearer ${TOKEN}" \
"https://api.withleaf.io/services/config/api/configs"

Response

A JSON containing the configuration of the API Owner.

{
"apiOwnerUsername": "api-owner",
"leafUserId": "",
"operationsImageCreation": true,
"geoimagesResolution": 0.00001,
"geoimagesShape": "SQUARE",
"geoimagesProjection": "EPSG:3857",
"geoimagesColorRamp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0]
},
"fieldsAutoSync": true,
"fieldsMergeIntersection": 0.01,
"fieldsAttachIntersection": 0.01
}

Get Leaf User's Configuration

 GET configs/{leafUserId}

Gets the configuration of a Leaf User.

TOKEN=YOUR_TOKEN
LEAF_USER_ID=00000000-0000-0000-0000-000000000000
+
curl -X GET \
-H "Authorization: Bearer ${TOKEN}" \
"https://api.withleaf.io/services/config/api/configs/${LEAF_USER_ID}"

Response

A JSON containing the configuration of the Leaf User.

{
"apiOwnerUsername": "api-owner",
"leafUserId": "00000000-0000-0000-0000-000000000000",
"operationsImageCreation": true,
"geoimagesResolution": 0.00001,
"geoimagesShape": "SQUARE",
"geoimagesProjection": "EPSG:3857",
"geoimagesColorRamp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0]
},
"fieldsAutoSync": true,
"fieldsMergeIntersection": 0.01,
"fieldsAttachIntersection": 0.01,
"fieldsAutoMerge": true
}

Create Leaf User's Configuration

 POST /configs/{leafUserId}

Creates the Configuration for the Leaf User leafUserId. A request body must be provided +containing the configurations to be set. All entries are optional, any missing configuration will be inherited from the API Owner's Configuration.

Request body example:

{
"operationsImageCreation": true,
"fieldsAutoSync": true
}
TOKEN=YOUR_TOKEN
LEAF_USER_ID=00000000-0000-0000-0000-000000000000
+
curl -X POST \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{ "operationsImageCreation": true, "fieldsAutoSync": true }' \
"https://api.withleaf.io/services/config/api/configs/${LEAF_USER_ID}"

Response

A JSON containing the configuration of the Leaf User.

{
"apiOwnerUsername": "api-owner",
"leafUserId": "00000000-0000-0000-0000-000000000000",
"operationsImageCreation": true,
"geoimagesResolution": 0.00001,
"geoimagesShape": "SQUARE",
"geoimagesProjection": "EPSG:3857",
"geoimagesColorRamp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0]
},
"fieldsAutoSync": true,
"fieldsMergeIntersection": 0.01,
"fieldsAttachIntersection": 0.01,
"fieldsAutoMerge": true
}

Update API Owner's Configuration

 PATCH /configs

Updates the specified fields of Configuration for the API Owner. A resquest body must be provided +containing the configurations to be set. All entries are optional.

Request body example:

{
"operationsImageCreation": true,
"fieldsAutoSync": true
}
TOKEN = 'YOUR_TOKEN'
+
curl -X PATCH \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{ "operationsImageCreation": true, "fieldsAutoSync": true }' \
'https://api.withleaf.io/services/config/api/configs'

Response

A JSON containing the configuration of the API Owner.

{
"apiOwnerUsername": "api-owner",
"leafUserId": "",
"operationsImageCreation": true,
"geoimagesResolution": 0.00001,
"geoimagesShape": "SQUARE",
"geoimagesProjection": "EPSG:3857",
"geoimagesColorRamp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0]
},
"fieldsAutoSync": true,
"fieldsMergeIntersection": 0.01,
"fieldsAttachIntersection": 0.01,
"fieldsAutoMerge": true
}

Update Leaf User's Configuration

 PATCH /configs/{leafUserId}

Updates the specified fields of Configuration for the Leaf User leafUserId. A resquest body must be provided containing the configurations to be set. All entries are optional.

Request body example:

{
"operationsImageCreation": true,
"fieldsAutoSync": true
}
TOKEN=YOUR_TOKEN
LEAF_USER_ID=00000000-0000-0000-0000-000000000000
+
curl -X PATCH \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{ "operationsImageCreation": true, "fieldsAutoSync": true }' \
"https://api.withleaf.io/services/config/api/configs/${LEAF_USER_ID}"

Response

A JSON containing the configuration of the Leaf User.

{
"apiOwnerUsername": "api-owner",
"leafUserId": "00000000-0000-0000-0000-000000000000",
"operationsImageCreation": true,
"geoimagesResolution": 0.00001,
"geoimagesShape": "SQUARE",
"geoimagesProjection": "EPSG:3857",
"geoimagesColorRamp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0]
},
"fieldsAutoSync": true,
"fieldsMergeIntersection": 0.01,
"fieldsAttachIntersection": 0.01,
"fieldsAutoMerge": true
}

Delete Leaf User's Configuration

 DELETE /configs/{leafUserId}

Deletes the Configuration from the Leaf User leafUserId. Until a new Configuration is created, the Leaf User will inherit all configurations from the API Owner.

TOKEN=YOUR_TOKEN
LEAF_USER_ID=00000000-0000-0000-0000-000000000000
+
curl -X DELETE \
-H "Authorization: Bearer ${TOKEN}" \
"https://api.withleaf.io/services/config/api/configs/${LEAF_USER_ID}"
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/configurations_overview/index.html b/docs/configurations_overview/index.html new file mode 100644 index 000000000..0fa8074f8 --- /dev/null +++ b/docs/configurations_overview/index.html @@ -0,0 +1,43 @@ + + + + + + + + +Configurations Overview | Leaf + + + + + + + + + + + + + +
+

Configurations Overview

Leaf's system can be customized to present different behaviors across services and Leaf Users. This is done using Configurations.

All API Owners start with a default configuration set. These configurations can be changed, but they can not be deleted or set to null.

Custom configurations can be set for individual Leaf Users. Configurations set for a Leaf User won't be changed if the API Owner's configurations change. However, if individual Leaf User configurations are not set, they will automatically inherit the API Owner's configurations.

Currently, configurations are available for the following services:

ServiceAvailable configurations
Field Boundary ManagementautomaticFixBoundary, customDataSync, fieldsAttachIntersection, fieldsAutoMerge, fieldsAutoSync, fieldsMergeIntersection
Machine File Conversion cleanupStandardGeojson, generateProviderImages, geoimagesColorRamp, geoimagesProjection, geoimagesResolution, geoimagesShape, originalOperationData, unitMeasurement
Field Operations cleanupStandardGeojson, fieldOperationCreation, operationsAutoSync, operationsFilteredGeojson, operationsImageAsGeoTiff, operationsRemoveOutliers, operationsOutliersLimit, operationsMergeRange, operationsMergeRangeHarvested, operationsProcessingRange, splitOperationsByField, splitOperationsByProvider, operationsImageCreation, geoimagesColorRamp, geoimagesProjection, geoimagesResolution, geoimagesShape, summarizeByProductEntry, summaryGeometry, unitMeasurement

Field Boundary Management

automaticFixBoundary

If set to true, this configuration will attempt to correct invalid geometries obtained from providers. The default value is false. More information here.

customDataSync

If set to true, the field boundaries will be partially obtained in PREVIEW mode. This prevents all provider fields from being fetched, allowing later selection of fields that will be fetched completely. For some providers, it will also affect the operation files associated with those fields. The default value is false.

fieldsAttachIntersection

Minimum intersection percentage between a field and an operation. An intersection proportion higher than this value will make the operation to be linked to the given field. This property supports a floating point between 0 and 100 percent. The default value is 0.01, which is the smallest number possible of overlap between the fields. Example: Setting this to 1 = 1%, setting this to 0.01 = 0.01%.

fieldsAutoSync

If set to true, Leaf will automatically synchronize provider's fields. If set to false, synchronizations must be manually requested via endpoint. The default value is true.

fieldsAutoMerge

Feature automatically merges fields that passes through the intersection parameter. Default value is true. The merge intersection can be controlled by the fieldsMergeIntersection configuration.

fieldsMergeIntersection

Minimum intersection between two fields to merge them. A new field of type MERGED will be created based in the intersection of the fields, while the original fields will be kept for historical purposes but remain inactive. This property supports a floating point between 0 and 100. The default value is 0.01, which is the smallest number possible of overlap between the fields.

Machine File Conversion

cleanupStandardGeojson

If set to true, Leaf will automatically remove invalid points from the standardGeoJSON file. The default value is true.

generateProviderImages

If set to true, Leaf will generate property images for files fetched from providers. Uploaded files are not affected by this change. The default value is false.
+Not to be confused with operationsImageCreation, which is specifically for Field Operations.

note

All geoimage configurations are for V1 images only. We recommend using V2 for the best quality.

geoimagesColorRamp

The color ramp to be used when generating images of operations. It's a map from a percentage value to a list containing a color in RGB or RGBA. The last entry in the map must contain a value for the nv key, mapping to the color for null values. The default value is

{
"0%" : [200, 0, 0],
"35%" : [255, 40, 0],
"45%" : [255, 150, 0],
"55%" : [255, 240, 0],
"65%" : [ 0, 230, 0],
"75%" : [ 0, 190, 0],
"100%": [ 0, 130, 0],
"nv" : [ 0, 0, 0, 0]
}
note

This configuration has no effect over the Field Operations Images V2 output.

geoimagesProjection

Projection to be used when generating images of operations. It can assume the values EPSG:3857 and EPSG:4326. The default value is EPSG:3857.

note

This configuration has no effect over the Field Operations Images V2 output.

geoimagesResolution

Resolution of the generated images of operations. The default value is 0.00001 degrees.

note

This configuration has no effect over the Field Operations Images V2 output.

geoimagesShape

Shape of points to be used when generating images of operations. It can assume the values ROUND and SQUARE. The default value is SQUARE.

note

This configuration has no effect over the Field Operations Images V2 output.

originalOperationData

If set to true, it will add some non Leaf-standard properties to the File summary, such as the field name and the type of the operation, as described originally by the provider. It is not applicable to the standard GeoJSON file or the Field Operation summary.
+The default value is false.

"originalOperationData": {
"originalOperationFarm": "Farm Green",
"originalOperationField": "Field A",
"originalOperationGrower": "Grower",
"originalOperationType": "SowingAndPlanting"
}

unitMeasurement

Defines the unit of measurement of the summary, standardGeoJSON, and filteredGeoJSON for the Machine Files and Field Operations services. It supports METRIC, IMPERIAL, and DEFAULT - that not standardize the units and keep them as available in the files/provider (this is the default value).

The units for each option available can be found on the Units of Measurement page.

Field Operations

These configurations can be enabled with the use of Leaf Field Operations. This requires an active boundary to be present so Leaf can merge the machine files and create a Field Operation.

cleanupStandardGeojson

See this section for more information

summarizeByProductEntry

If set to true, Leaf will aggregate products with the same name and display only one entry per product in the summary. +area and totalApplied will be aggregated by the sum and the rate by the average. This config is only for applied data. The default value is false.

summaryGeometry

The values to be defined are BUFFER and CONVEX_HULL, that refer to the geometry calculation algorithm in the summary of the machine files. +Buffer See the image below to understand the model of each calculation.

Geometries algorithm

fieldOperationCreation

Enables the creation of Field Operations. The default is true.

operationsAutoSync

If set to true, Leaf will automatically synchronize provider's operations. The default value is true.

operationsFilteredGeojson

Enables the option to clear Field Operations data based on some filter options. Also enables the use of operations images V2. +The default is false.

operationsImageAsGeoTiff

If set to true, Leaf will generate the images of operations in the GeoTIFF format too. The data can be accessed in this endpoint. The default value is false.

note

This configuration has effect only in the Field Operations Images V2 output.

operationsRemoveOutliers

If enabled, it will remove points in the filteredGeojson based on harvest values so it is only applied to harvest type operations. The outliers will be defined based on the operationsOutliersLimit configuration. The default value is true.

More info here.

tip

To use this option, operationsFilteredGeojson must be enabled.

operationsOutliersLimit

Sets the threshold for removing outliers when the operationsRemoveOutliers configuration is enabled. The defined value will be considered to measure how many standard deviations will be considered as outliers. The default value is 3 which means that all points with harvested volume values ​​that are more than 3 standard deviations away from the mean will be removed.

More info here.

operationsMergeRange

Range used to consider if files are part of the same operation. Default value is 5 days.

operationsMergeRangeHarvested

Range used to consider if harvest files are part of the same operation. Default value is 21 days.

operationsProcessingRange

The retroactive time period (in months) to fetch file operations from providers. The default is 12 so only operations that occurred 12 months ago to present will be processed by Leaf.

splitOperationsByField

If set to true, Leaf will split your Field Operations based on the intersection of each Leaf Field Boundary. The default value is false.

splitOperationsByProvider

If set to true, files will be filtered by provider in addition to the field, operation type, crop and date interval +to create operations. If set to false, operations will be created regardless of the source provider. The default value is false.

operationsImageCreation

If set to true, Leaf will generate images of operations when processing them. If set to false, Leaf won't create the images. The default value is false.

note

This configuration has no effect over the Field Operations Images V2 output.

geoimagesColorRamp

See this section for more information

geoimagesProjection

See this section for more information

geoimagesResolution

See this section for more information

geoimagesShape

See this section for more information

unitMeasurement

See this section for more information

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/connect/index.html b/docs/connect/index.html new file mode 100644 index 000000000..e52d129b4 --- /dev/null +++ b/docs/connect/index.html @@ -0,0 +1,39 @@ + + + + + + + + +Leaf Connect | Leaf + + + + + + + + + + + + + +
+

Leaf Connect

About

The Leaf API allows an API Owner to grant permission to access Field Boundaries, Field Operations and Machine Data Files to other API Owners. The access is controlled at the Leaf user level by the API account that owns the data.

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/usermanagement/api
+

How it works

Scenario

API Owner A wants to grant permission to API Owner B to read their fields.

1 - Sharing Relation

The first step is to create a relationship between the API Owners, from who owns the data - the sender (API Owner A) to the receiver (API Owner B). Check the endpoint Create an API Owner sharing relation.

The receiver API Owner (API Owner B) must confirm the relationship changing the relation status to ALLOWED.

This relationship status can be changed in the future by both sides, but once the sender blocks the relationship, the receiver will not be able to access the data, nor to reactivate the sharing relation status.

This step is only necessary once, that is, it is not necessary to repeat this step for new integrations with the same receiver.

2 - Permissions

In this step, permissions are granted for the resources of each Leaf user. More info here.

Note: This permission is READ only and FIELDS and OPERATIONS resources are available.

Company

Company-level sharing is not supported, but the permission can be granted or revoked at the same time the Leaf user is added or removed from the company.

3 - Access

At the end of these steps, API Owner B will be able to visualize the fields, operations and/or machine data files from the shared Leaf user, using the existing field/operations/machine data files endpoints, like this one.

Endpoints

This service has the following endpoints available:

DescriptionEndpoints
Get API Owner sharing relationGET /usermanagement/api/api-owners/sharing-relation/{RelationRole}
Get API Owner sharing relation statusGET /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{targetApiOwner}/status
Create an API Owner sharing relationPOST /usermanagement/api/api-owners/sharing-relation/receiver
Update an API Owner sharing relation statusPATCH /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{targetApiOwner}
Get LeafUser permissionsGET /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{TargetApiOwner}/users-permissions/{leafUserId}
Create a LeafUser permissionsPOST /usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}
Update LeafUser permissionsPATCH /usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}/{RESOURCE}
Invalidate receiver's tokensPOST /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{TargetApiOwner}/invalidate-tokens
Delete LeafUser sharing permissionsDELETE /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{ReceiverApiOwner}/users-permissions/{leafUserId}

Get API Owner sharing relation

 GET /usermanagement/api/api-owners/sharing-relation/{RelationRole}

Get all API Owners relation based on the relation role: SENDER or RECEIVER.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver'

Response

[
{
"senderApiOwner": "{senderApiOwner}",
"receiverApiOwner": "{receiverApiOwner}",
"status": "ALLOWED"
}
]

Get API Owner sharing relation status

 GET /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{targetApiOwner}/status

Get the relation status based in the relation role (SENDER or RECEIVER).

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/status'

Response

A string with one of the following values: PENDING, ALLOWED or BLOCKED.

"PENDING"

Create an API Owner sharing relation

 POST /usermanagement/api/api-owners/sharing-relation/receiver

Create a sharing relation between the API Owners.

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "receiverApiOwner": "{ReceiverApiOwner}" }'
'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver'

Response

{
"senderApiOwner": "{senderApiOwner}",
"receiverApiOwner": "{receiverApiOwner}",
"status": "PENDING"
}

Update an API Owner sharing relation status

 PATCH /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{targetApiOwner}

Update the sharing relation status. The values available are ALLOWED or BLOCKED.

After the sender creates a relationship, the recevier must approve it by changing the status from PENDING to ALLOWED. +Both API Owners can block the relation, but once locked by the sender, there is no way for the receiver to change it again.

Request examples

curl -X PATCH \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "status": "ALLOWED or BLOCKED" }'
'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}'

Response

{
"senderApiOwner": "{senderApiOwner}",
"receiverApiOwner": "{receiverApiOwner}",
"status": "ALLOWED"
}

Get LeafUser permissions

 GET /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{TargetApiOwner}/users-permissions/{leafUserId}

Get all permissions granted to a receiver API Owner for a Leaf user.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}'

Response

{
"permissions": {
"FIELDS": {
"actions": [
"READ"
]
}
}
}

Create a LeafUser permissions

 POST /usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}

Grants permission to a receiver for a given Leaf user resource.

Note: shared Leaf users (from other API Owner) are not available for grant permissions

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{"permissions":{"FIELDS":{"actions":["READ"]},"OPERATIONS":{"actions":["READ"],"types":["PLANTED"]}}}'
'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}'

Response

{
"leafUserId": "{leafUserId}",
"permissions": {
"FIELDS": {
"actions": [
"READ"
]
},
"OPERATIONS": {
"actions": [
"READ"
],
"types": [
"PLANTED"
]
}
}
}

Availability

ResourceActionsTypes
FIELDREAD-
OPERATIONSREADAPPLIED, HARVESTED, PLANTED

Update LeafUser permissions

 PATCH /usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}/{RESOURCE}

Update the permissions granted to the receiver API Owner.

Request examples

curl -X PATCH \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{"actions":["READ"],"types":["PLANTED", "HARVESTED"]}' \
'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}/OPERATIONS'

Response

{
"leafUserId": "{leafUserId}",
"permissions": {
"FIELDS": {
"actions": [
"READ"
]
},
"OPERATIONS": {
"actions": [
"READ"
],
"types": [
"PLANTED", "HARVESTED"
]
}
}
}

Availability

ResourceActionsTypes
FIELDREAD-
OPERATIONSREADAPPLIED, HARVESTED, PLANTED

Invalidate receiver's tokens

 POST /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{TargetApiOwner}/invalidate-tokens

Invalidate the receiver's tokens created before the current date and time.

Request examples

curl -X PATCH \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/{TargetApiOwner}/invalidate-tokens'

Delete LeafUser sharing permissions

 DELETE /usermanagement/api/api-owners/sharing-relation/{RelationRole}/users-permissions/{leafUserId}

Deletes a permission.

Request examples

curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}'
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/converters_endpoints/index.html b/docs/converters_endpoints/index.html new file mode 100644 index 000000000..21e8fbe3a --- /dev/null +++ b/docs/converters_endpoints/index.html @@ -0,0 +1,54 @@ + + + + + + + + +Manual File Upload Endpoints | Leaf + + + + + + + + + + + + + +
+

Manual File Upload Endpoints

About

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/operations/api

This service has the following endpoints available:

DescriptionEndpoints
Upload a filePOST /batch
Get a batchGET /batch/{id}
Get all batchesGET /batch
Retry a batchPUT /batch/{id}/retry

To easily test these endpoints, we recommend using our Postman collection.

requires Leaf User

You will need a Leaf User to manually upload files. If you don't have a Leaf User, see the Leaf user overview

Upload a file

 POST /batch

Creates a new file in Leaf. The file must be sent as a zip.

This endpoint accepts a .zip of operation files, detects which files are in the +.zip, and returns the ID of the process, which can in turn be used to retrieve +the ID's of the files being processed.

File size limit of 3 GB

Currently, our upload endpoints accepts files with the maximum size limited to 3 gigabytes.

This endpoint receives two required URL parameters, a leafUserId and provider

A provider can be set as one of the following:

Other
Leaf
ClimateFieldView
CNHI
JohnDeere
Trimble
AgLeader
Farmobile
PrecisionPlanting

If provider is set to "Other", Leaf will detect which files are +present in the .zip file and process them accordingly.

Leaf will detect files present in the uploaded .zip and create file ids for the files that are detected in the uploaded .zip. These files can then be accessed individually by their file ID, batch ID, or their associated field boundary.

Expected file structures from each provider are listed below. Very often these default file structures are edited by users. In these cases Leaf attempts to automatically repair the file structure and find all necessary files within any uploaded .zip.

The following file formats from each provider are supported:

JohnDeere

File FormatMonitor ModelDetails
GS3GreenStar 3 – 2630/GS3_2630/profile/RCD/EIC/global.ver
Gen4Gen 4 - 4600/4630/JD-Data/log/user defined name/*.jdl
ShapefileExported from MyJohnDeereShapefile with extra metadata in a .json file
Expected file structure

GreenStar 4 (4600+)

jd-data
└── log
└── *.jdl

GreenStar 3 (2630)

GS3_2630
└── RCD
└── EIC
└── global.ver
└── documentation
└── ...
├── *.fdd
└── *.fdl

Green Star 2 (2600)

...
└── RCD
├── *.fdd
└── *.fdl

Climate FieldView

File FormatMonitor ModelDetails
datAll files from Climate FieldViewA zip with .dat files
Expected file structure

20|20 SeedSense Generation 1 and Generation 2

...
├── harvest_*.dat – Harvest data
├── field_map_*.dat – Planting data
└── liquid_map_*.dat - AsApplied spraying data

20|20 SeedSense Generation 3

...
└── *.2020

CNHI

File FormatMonitor ModelDetails
CN1CaseIH monitors or exported from CNH Connects/file.cn1/index.vy1
Expected file structure

Voyager 2

*.cn1
└── ...
└── *.vy1

AgLeader

File FormatMonitor ModelDetails
yldYM2000, PFAdvantage & other OEM systemsA zip with .yld files
ilfINTEGRA / Insight / EdgeA zip with .ilf files
agdataINTEGRA / VERSA / COMPASSA zip with .agdata files
Expected file structure

AgLeader Integra (versions 3.5+), Versa

...
├── *.agdata
└── *.agsetup

AgLeader Edge, Insight, and Integra (version 3.4)

...
└── *.ilf

AgLeader PF Advantage, PF 3000, PF 3000 Pro, YM2000

...
└── *.yld

Trimble

File FormatMonitor ModelDetails
AgDataFMX and CFX monitors/AgData/
AgGPSTMX and GFX monitors/AgGPS/
Expected file structure

GFX-750, TMX-2050

Agdata
├── Fields
└── *.agf
├── implements
└── *.agi
├── prescriptions
└── *.agm
├── Tasks
└── *.agt
├── Users
└── *.agu
└── vehicles
└── *.agv

CFX-750, FMX

AgGPS
└── Data
└── "Grower"
└── Farm
└── field
└── "Task"
├── *.cpg
├── *.dbf
├── *.shp
└── *.shx

Precision Planting (beta)

File FormatMonitor ModelDetails
PP202020|20A zip with .2020 files.
Expected file structure

20|20 SeedSense Generation 1 and Generation 2

...
├── harvest_*.dat – Harvest data
├── field_map_*.dat – Planting data
└── liquid_map_*.dat - AsApplied spraying data

20|20 SeedSense Generation 3

...
└── *.2020

ISOXML

Expected file structure
TASKDATA
├── *.XML
└── *.bin

CLAAS

Expected file structure
TASKDATA
├── *.XML
└── *.bin

Kuhn

Expected file structure
TASKDATA
├── *.XML
└── *.bin

Kverneland Group

Expected file structure
TASKDATA
├── *.XML
└── *.bin

Müller-Elektronik

Expected file structure
TASKDATA
├── *.XML
└── *.bin

Teknomika

Expected file structure
TASKDATA
├── *.XML
└── *.bin

Topcon Precision Agriculture

Expected file structure
TASKDATA
├── *.XML
└── *.bin

Farmobile

File FormatDetails
GeoJSONGeoJSON files exported from Farmobile. Since GeoJSON files do not contain information on the units used, we assume the default units from Farmobile are being used.

Other

File FormatDetails
ShapefileShapefiles exported from SMS and Raven. Since Shapefiles do not contain information on the units used, we assume the default units from the provider will be used.

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-F 'file=shapefile.zip' \
'https://api.withleaf.io/services/operations/api/batch' \
'provider=JohnDeere&leafUserId=id'

Response

{
"id": "996aea67-52bc-4d4b-9b77-028756dc0ee9",
"leafUserId": "ede8f781-1d55-4b2d-83a1-6785ddab6e1d",
"fileName": "Climate.zip",
"size": 8652951,
"provider": "Other",
"status": "RECEIVED",
"uploadTimestamp": "2021-03-12T19:50:55.567755Z"
}

This id can then be queried to retrieve on Get batch to get the individual file ID's. +Then you can query each of the files individually with +Get a File or all of them, filtering by batchId, on +Get all Files.

Batch status

The status key will evolve accordingly to the following states:

StatusDescription
RECEIVEDIs the default state for every batch created
PROCESSEDWhen all the files included in the batch were processed, and at least one file have status SUCCESS
FAILEDThe batch did not generated any leaf files with status SUCCESS

The messages with FAILED status have the key statusDetails. The `statusDetails`` is just informative and should not be used programatically.

{
"id": "c21e6495-3e39-4c5f-b35c-d33fa06c25d8",
"leafUserId": "fc7c52ad-d228-4332-9e18-de979a293457",
"fileName": "Climate.zip",
"size": 8652951,
"provider": "Other",
"status": "FAILED",
"statusDetails": "No operation found. Check file format before re-trying or contact support. Check file format before re-trying or contact support",
"uploadTimestamp": "2021-03-12T19:50:55.567755Z"
}

The following status can be present on statusDetails:

StatusDescription
No valid files foundUnable to find a valid file based on supported extensions and expected file structure
Leaf internal error. Please contact SupportInternal error that need to be reported
Files found but unable to read. Please check file format before re-trying or contact SupportA valid file was found but could not be converted

Get Batch upload

 GET /batch/{batch_id}

Once you've uploaded files, you can then query these files individually, merge the files, or query for them +via Get all Files. +You can also query the batch upload ID to see a list of files generated in the upload and a status of the upload with this endpoint.

Request examples

import requests
+
TOKEN = 'YOUR_TOKEN'
+
endpoint = 'https://api.withleaf.io/services/operations/api/batch/{batch_id}'
headers = {'Authorization': f'Bearer {TOKEN}'}
+
response = requests.get(endpoint, headers=headers)
print(response.json())

Response

{
"id": "9b561906-efac-43a3-9378-641e3698da5d",
"leafUserId": "1481bc9b-cdc7-45c1-9f0e-592da6306dfe",
"provider": "Other",
"status": "PROCESSED",
"leafFiles": [
"f14203df-4144-43b7-a383-2ed321f395ce",
"810b1475-cb49-437b-8658-d29038ce2fa4"
]
}

Get all Batches

 GET /batch

Once you've uploaded files, you can then query these files individually, merge the files, or query for them +via Get all Files. +You can also query the batch upload ID to see a list of files generated in the upload and a status of the upload with this endpoint.

Request examples

import requests
+
TOKEN = 'YOUR_TOKEN'
+
endpoint = 'https://api.withleaf.io/services/operations/api/batch'
headers = {'Authorization': f'Bearer {TOKEN}'}
+
response = requests.put(endpoint, headers=headers)
print(response.json())

Response

[
{
"id": "9e47ae29-6a84-4a9c-9e5f-01802f6dceea",
"leafUserId": "5ded9409-c99f-4379-9173-c01b1631f274",
"provider": "Other",
"status": "PROCESSED",
"leafFiles": [
"74d5aeb6-9a0e-43c6-986c-a5f17eecbddc",
"475fcad3-b534-409d-8c8b-cec4dabd1b8b"
]
}
]

Retry a batch

 PUT /batch/{id}/retry

If a batch upload does not complete as expected, this endpoint allows you to try again. This action will reprocess the fragments of uploaded data that didn't succeed processing before, keeping existing converted files unaffected.

Request examples

curl -X PUT \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/batch/{id}/retry'

Response

{
"id": "36d8551f-409d-41f2-94b4-04c9fe16289b",
"leafUserId": "089bb77b-2415-43df-a246-6c0a5937c774",
"fileName": "filename.zip",
"size": 8652951,
"provider": "Other",
"status": "RECEIVED",
"uploadTimestamp": "2021-03-12T19:50:55.567755Z"
}
Please note

Once you have finished setting up manual file upload, refer to machine file conversion +next

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/converters_overview/index.html b/docs/converters_overview/index.html new file mode 100644 index 000000000..cb17161d5 --- /dev/null +++ b/docs/converters_overview/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Manual File Upload Overview | Leaf + + + + + + + + + + + + + +
+

Manual File Upload Overview

About

There are two ways machine files can be imported via Leaf: provider integration and manual file upload. Manual file upload is useful for your customers that are not wirelessly connected to a provider.

Leaf helps with the manual file upload process by:

  1. Detecting a range of file formats being uploaded
  2. Converting proprietary formats into a standardized format
  3. Merging and processing files into the desired output

In this section, you will find more information on the Leaf Link pre-built file upload widget, manual file upload endpoints and supported file types.

Please refer to machine file conversion for more relevant information on file conversion after you've set up manual file upload. Or skip straight there if you'd rather import the files via provider authentication.

Leaf Link - Upload Widget

Leaf Link provides a pre-built file upload widget that requires minimal code to implement. The file upload widget allows your end users to upload various machine file formats for translation using Leaf’s API. You can find more information on how to use Leaf Link here.

Endpoints and supported file formats

Head to the next page for the details on endpoints and supported file formats.

Note: When manually uploading fieldops data (in a zip file), you can select which provider the files inside the zip came from. If you are unsure or you know that there are files from more than one provider, Leaf can automatically detect, split and process each file format.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/credentials_agleader/index.html b/docs/credentials_agleader/index.html new file mode 100644 index 000000000..b0af71efe --- /dev/null +++ b/docs/credentials_agleader/index.html @@ -0,0 +1,38 @@ + + + + + + + + +AgLeader Credentials | Leaf + + + + + + + + + + + + + +
+

AgLeader Credentials

Form of an AgLeader Credentials resource:

{
"accessToken": "str",
"refreshToken": "str",
"publicKey": "str",
"privateKey": "str"
}

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/usermanagement/api

See below the REST resources and their endpoints available in this service.

Endpoints

DescriptionEndpoints
Get the AgLeader credentialsGET /users/{leafUserId}/ag-leader-credentials
Create a AgLeader credentialsPOST /users/{leafUserId}/ag-leader-credentials
Delete AgLeader credentialsDELETE /users/{leafUserId}/ag-leader-credentials

AgLeader Credentials Endpoints

Get the AgLeader credentials

 GET /users/{leafUserId}/ag-leader-credentials

Get the AgLeader credentials of the Leaf User based on its id and returns a JSON with the credentials. If during +background processing we detect that this credential is no longer valid, the value of the status will be changed.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/ag-leader-credentials'

Response

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"accessToken": "str",
"refreshToken": "str",
"publicKey": "str",
"privateKey": "str"
}

Create a AgLeader credentials

 POST /users/{leafUserId}/ag-leader-credentials

Create a AgLeader credentials for the Leaf User.

Request body

{
"accessToken": "str",
"refreshToken": "str",
"publicKey": "str",
"privateKey": "str"
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{ "accessToken": "str","refreshToken": "str","publicKey":"str", "privateKey":"str"}' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/ag-leader-credentials'

Response

A AgLeader Credentials with status.

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"accessToken": "str",
"refreshToken": "str",
"publicKey": "str",
"privateKey": "str"
}

Delete AgLeader credentials

 DELETE /users/{leafUserId}/ag-leader-credentials

Delete Leaf User's AgLeader credentials.

Request examples

curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/ag-leader-credentials'

Troubleshooting

With these endpoints, you can do some troubleshooting to see your credential's health.

Events

 GET /users/{leafUserId}/ag-leader-credentials/events

Get the logs of the provider credential based on the LeafUserId sent.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}
/ag-leader-credentials/events'

Response

[
{
"body": "string",
"createdDate": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"headers": "string",
"id": "string",
"statusCode": "int"
}
]
warning

The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/credentials_agvance/index.html b/docs/credentials_agvance/index.html new file mode 100644 index 000000000..e71f8f4cd --- /dev/null +++ b/docs/credentials_agvance/index.html @@ -0,0 +1,38 @@ + + + + + + + + +Agvance Credentials | Leaf + + + + + + + + + + + + + +
+

Agvance Credentials

Form of a Agvance Credentials resource:

{
"apiKey": "str",
"clientEnvironment": "STAGE or PRODUCTION",
"databaseId": "str",
"password": "str",
"username": "str"
}

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/usermanagement/api

See below the REST resources and their endpoints available in this service.

Endpoints

DescriptionEndpoints
Get the Agvance credentialsGET /users/{leafUserId}/agvance-credentials
Create a Agvance credentialsPOST /users/{leafUserId}/agvance-credentials
Delete Agvance credentialsDELETE /users/{leafUserId}/agvance-credentials

Agvance Credentials Endpoints

Get the Agvance credentials

 GET /users/{leafUserId}/agvance-credentials

Get the Agvance credentials of the Leaf User based on its id and returns a JSON with the credentials. If during +background processing we detect that this credential is no longer valid, the value of the status will be changed.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/agvance-credentials'

Response

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"clientEnvironment": "STAGE or PRODUCTION",
"username": "str",
"password": "str",
"databaseId": "str",
"sessionId": "str",
"apiKey": "str"
}

Create a Agvance credentials

 POST /users/{leafUserId}/agvance-credentials

Create a Agvance credentials for the Leaf User.

Request body

{
"apiKey": "str",
"clientEnvironment": "STAGE or PRODUCTION",
"databaseId": "str",
"password": "str",
"username": "str"
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{"apiKey": "str", "clientEnvironment": "STAGE or PRODUCTION", "databaseId": "str", "password": "str", "username": "str"}' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/agvance-credentials'

Response

A Agvance Credentials with status.

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"clientEnvironment": "STAGE or PRODUCTION",
"username": "str",
"password": "str",
"databaseId": "str",
"sessionId": "str",
"apiKey": "str"
}

Delete Agvance credentials

 POST /users/{leafUserId}/agvance-credentials

Delete Leaf User's Agvance credentials.

Request examples

curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/agvance-credentials'

Troubleshooting

With these endpoints, you can do some troubleshooting to see your credential's health.

Events

 GET /users/{leafUserId}/agvance-credentials/events

Get the logs of the provider credential based on the LeafUserId sent.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}
/agvance-credentials/events'

Response

[
{
"body": "string",
"createdDate": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"headers": "string",
"id": "string",
"statusCode": "int"
}
]
warning

The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/credentials_cfv/index.html b/docs/credentials_cfv/index.html new file mode 100644 index 000000000..1b1c327e4 --- /dev/null +++ b/docs/credentials_cfv/index.html @@ -0,0 +1,38 @@ + + + + + + + + +Climate FieldView Credentials | Leaf + + + + + + + + + + + + + +
+

Climate FieldView Credentials

Form of a Climate FieldView Credentials resource:

{
"clientId": "str",
"clientSecret": "str",
"apiKey": "str",
"refreshToken": "str",
"accessToken": "str"
}

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/usermanagement/api

See below the REST resources and their endpoints available in this service.

Endpoints

DescriptionEndpoints
Get the Climate Fieldview credentialsGET /users/{leafUserId}/climate-field-view-credentials
Create a Climate Fieldview credentialsPOST /users/{leafUserId}/climate-field-view-credentials
Delete Climate Fieldview credentialsDELETE /users/{leafUserId}/climate-field-view-credentials

Climate FieldView Credentials Endpoints

Get the Climate Fieldview credentials

 GET /users/{leafUserId}/climate-field-view-credentials

Get the Climate FieldView credentials of the Leaf User based on its id and returns a JSON with the credentials. If +during background processing we detect that this credential is no longer valid, the value of the status will be changed.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/climate-field-view-credentials'

Response

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"tokenMetadata": {"scopes": ["str"]},
"clientId": "str",
"clientSecret": "str",
"apiKey": "str",
"refreshToken": "str",
"accessToken": "str"
}

Create a Climate Fieldview credentials

 POST /users/{leafUserId}/climate-field-view-credentials

Create a Climate FieldView credentials for the Leaf User.

Request body

{
"clientId": "str",
"clientSecret": "str",
"apiKey": "str",
"refreshToken": "str"
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{"clientId": "str","clientSecret": "str","apiKey": "str","refreshToken": "str"}' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/climate-field-view-credentials'

Response

A Climate FieldView credentials with status.

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"tokenMetadata": {"scopes": ["str"]},
"clientId": "str",
"clientSecret": "str",
"apiKey": "str",
"refreshToken": "str",
"accessToken": "str"
}

Delete Climate Fieldview credentials

 DELETE /users/{leafUserId}/climate-field-view-credentials

Delete Leaf User's Climate FieldView credentials.

Request examples

curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/climate-field-view-credentials'

Troubleshooting

With these endpoints, you can do some troubleshooting to see your credential's health.

Events

 GET /users/{leafUserId}/climate-field-view-credentials/events

Get the logs of the provider credential based on the LeafUserId sent.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}
/climate-field-view-credentials/events'

Response

[
{
"body": "string",
"createdDate": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"headers": "string",
"id": "string",
"statusCode": "int"
}
]
warning

The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/credentials_cnhi/index.html b/docs/credentials_cnhi/index.html new file mode 100644 index 000000000..5f26adaf3 --- /dev/null +++ b/docs/credentials_cnhi/index.html @@ -0,0 +1,38 @@ + + + + + + + + +CNHI Credentials | Leaf + + + + + + + + + + + + + +
+

CNHI Credentials

Form of a CNHI Credentials resource:

{
"clientId": "str",
"clientSecret": "str",
"subscriptionKey": "str",
"refreshToken": "str",
"clientEnvironment": "STAGE or PRODUCTION"
}

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/usermanagement/api

See below the REST resources and their endpoints available in this service.

Endpoints

DescriptionEndpoints
Get the CNHI credentialsGET /users/{leafUserId}/cnhi-credentials
Create a CNHI credentialsPOST /users/{leafUserId}/cnhi-credentials
Delete CNHI credentialsDELETE /users/{leafUserId}/cnhi-credentials

CNHI Credentials Endpoints

Get the CNHI credentials

 GET /users/{leafUserId}/cnhi-credentials

Get the CNHI credentials of the Leaf User based on its id and returns a JSON with the credentials. If during +background processing we detect that this credential is no longer valid, the value of the status will be changed.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/cnhi-credentials'

Response

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"clientId": "str",
"clientSecret": "str",
"refreshToken": "str",
"clientEnvironment": "STAGE or PRODUCTION",
"subscriptionKey": "str"
}

Create a CNHI credentials

 POST /users/{leafUserId}/cnhi-credentials

Create a CNHI credentials for the Leaf User.

Request body

{
"clientId": "str",
"clientSecret": "str",
"subscriptionKey": "str",
"refreshToken": "str",
"clientEnvironment": "STAGE or PRODUCTION"
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"clientId": "str", "clientSecret": "str", "subscriptionKey": "str", "refreshToken": "str", "clientEnvironment": "STAGE or PRODUCTION"}' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/cnhi-credentials'

Response

A CNHI credentials with status.

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"clientId": "str",
"clientSecret": "str",
"refreshToken": "str",
"clientEnvironment": "STAGE or PRODUCTION",
"subscriptionKey": "str"
}

Delete CNHI credentials

 DELETE /users/{leafUserId}/cnhi-credentials

Delete Leaf User's CNHI credentials.

Request examples

curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/cnhi-credentials'

Troubleshooting

With these endpoints, you can do some troubleshooting to see your credential's health.

Events

 GET /users/{leafUserId}/cnhi-credentials/events

Get the logs of the provider credential based on the LeafUserId sent.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}
/cnhi-credentials/events'

Response

[
{
"body": "string",
"createdDate": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"headers": "string",
"id": "string",
"statusCode": "int"
}
]
warning

The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/credentials_john_deere/index.html b/docs/credentials_john_deere/index.html new file mode 100644 index 000000000..5aaf9c321 --- /dev/null +++ b/docs/credentials_john_deere/index.html @@ -0,0 +1,38 @@ + + + + + + + + +John Deere Credentials | Leaf + + + + + + + + + + + + + +
+

John Deere Credentials

Form of a John Deere Credentials resource:

{
"clientKey": "str",
"clientSecret": "str",
"tokenId": "str",
"tokenSecretKey": "str",
"accessToken": "str",
"refreshToken": "str"
}

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/usermanagement/api

See below the REST resources and their endpoints available in this service.

Endpoints

DescriptionEndpoints
Get the John Deere credentialsGET /users/{leafUserId}/john-deere-credentials
Create a John Deere credentialsPOST /users/{leafUserId}/john-deere-credentials
Delete John Deere credentialsDELETE /users/{leafUserId}/john-deere-credentials

John Deere Credentials Endpoints

Get the John Deere credentials

 GET /users/{leafUserId}/john-deere-credentials

Get the John Deere credentials of the Leaf User based on its id and returns a JSON with the credentials. If during +background processing we detect that this credential is no longer valid, the value of the status will be changed.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/john-deere-credentials'

Response

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"tokenMetadata": {"scopes": ["str"]},
"clientKey": "str",
"clientSecret": "str",
"accessToken": "str",
"refreshToken": "str",
"clientEnvironment": "STAGE or PRODUCTION"
}

Create a John Deere credentials

 POST /users/{leafUserId}/john-deere-credentials

Create a John Deere credentials for the Leaf User.

Request body

{
"clientKey": "str",
"clientSecret": "str",
"refreshToken": "str",
"clientEnvironment": "STAGE or PRODUCTION"
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{"clientKey": "str","clientSecret": "str","refreshToken": "str","clientEnvironment": "STAGE or PRODUCTION"}' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/john-deere-credentials'

Response

A John Deere credentials with status.

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"tokenMetadata": {"scopes": ["str"]},
"clientKey": "str",
"clientSecret": "str",
"accessToken": "str",
"refreshToken": "str",
"clientEnvironment": "STAGE or PRODUCTION"
}

Delete John Deere credentials

 DELETE /users/{leafUserId}/john-deere-credentials

Delete Leaf User's John Deere credentials.

Request examples

curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/john-deere-credentials'

Troubleshooting

With these endpoints, you can do some troubleshooting to see your credential's health.

Events

 GET /users/{leafUserId}/john-deere-credentials/events

Get the logs of the provider credential based on the LeafUserId sent.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}
/john-deere-credentials/events'

Response

[
{
"body": "string",
"createdDate": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"headers": "string",
"id": "string",
"statusCode": "int"
}
]
warning

The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/credentials_raven/index.html b/docs/credentials_raven/index.html new file mode 100644 index 000000000..026c0f152 --- /dev/null +++ b/docs/credentials_raven/index.html @@ -0,0 +1,38 @@ + + + + + + + + +Raven Credentials | Leaf + + + + + + + + + + + + + +
+

Raven Credentials

Form of a Raven Credentials resource:

{
"clientId": "str",
"clientSecret": "str",
"refreshToken": "str",
"accessToken": "str"
}

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/usermanagement/api

See below the REST resources and their endpoints available in this service.

Endpoints

DescriptionEndpoints
Get the Raven credentialsGET /users/{leafUserId}/raven-credentials
Create a Raven credentialsPOST /users/{leafUserId}/raven-credentials
Delete Raven credentialsDELETE /users/{leafUserId}/raven-credentials

Raven Credentials Endpoints

Get the Raven credentials

 GET /users/{leafUserId}/raven-credentials

Get the Raven credentials of the Leaf User based on its id and returns a JSON with the credentials. If during +background processing we detect that this credential is no longer valid, the value of the status will be changed.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-credentials'

Response

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"tokenMetadata": {"scopes": ["str"]},
"clientId": "str",
"clientSecret": "str",
"refreshToken": "str",
"accessToken": "str"
}

Create a Raven credentials

 POST /users/{leafUserId}/raven-credentials

Create a Raven credentials for the Leaf User.

Request body

{
"clientId": "str",
"clientSecret": "str",
"refreshToken": "str"
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{ "clientId": "str","clientSecret": "str","refreshToken":"str"}' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-credentials'

Response

A Raven Credentials with status.

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"tokenMetadata": {"scopes": ["str"]},
"clientId": "str",
"clientSecret": "str",
"refreshToken": "str",
"accessToken": "str"
}

Delete Raven credentials

 DELETE /users/{leafUserId}/raven-credentials

Delete Leaf User's Raven credentials.

Request examples

curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-credentials'

Troubleshooting

With these endpoints, you can do some troubleshooting to see your credential's health.

Events

 GET /users/{leafUserId}/raven-credentials/events

Get the logs of the provider credential based on the LeafUserId sent.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}
/raven-credentials/events'

Response

[
{
"body": "string",
"createdDate": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"headers": "string",
"id": "string",
"statusCode": "int"
}
]
warning

The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/credentials_raven_slingshot/index.html b/docs/credentials_raven_slingshot/index.html new file mode 100644 index 000000000..7084a07b8 --- /dev/null +++ b/docs/credentials_raven_slingshot/index.html @@ -0,0 +1,38 @@ + + + + + + + + +Raven Slingshot Credentials | Leaf + + + + + + + + + + + + + +
+

Raven Slingshot Credentials

Form of a Raven Slingshot Credentials resource:

{
"apiKey": "str",
"accessKey": "str",
"sharedSecret": "str"
}

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/usermanagement/api

See below the REST resources and their endpoints available in this service.

Endpoints

DescriptionEndpoints
Get the Raven Slingshot credentialsGET /users/{leafUserId}/raven-slingshot-credentials
Create a Raven Slingshot credentialsPOST /users/{leafUserId}/raven-slingshot-credentials
Delete Raven Slingshot credentialsDELETE /users/{leafUserId}/raven-slingshot-credentials

Raven Slingshot Credentials Endpoints

Get the Raven Slingshot credentials

 GET /users/{leafUserId}/raven-slingshot-credentials

Get the Raven Slingshot credentials of the Leaf User based on its id and returns a JSON with the credentials. If during +background processing we detect that this credential is no longer valid, the value of the status will be changed.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials'

Response

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"apiKey": "str",
"accessKey": "str",
"sharedSecret": "str"
}

Create a Raven Slingshot credentials

 POST /users/{leafUserId}/raven-slingshot-credentials

Create a Raven Slingshot credentials for the Leaf User.

Request body

{
"apiKey": "str",
"accessKey": "str",
"sharedSecret": "str"
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{ "apiKey": "str", "accessKey": "str", "sharedSecret": "str" }' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials'

Response

A Raven Slingshot Credentials with status.

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"apiKey": "str",
"accessKey": "str",
"sharedSecret": "str"
}

Delete Raven Slingshot credentials

 DELETE /users/{leafUserId}/raven-slingshot-credentials

Delete Leaf User's Raven Slingshot credentials.

Request examples

curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials'

Troubleshooting

With these endpoints, you can do some troubleshooting to see your credential's health.

Events

 GET /users/{leafUserId}/raven-slingshot-credentials/events

Get the logs of the provider credential based on the LeafUserId sent.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}
/raven-slingshot-credentials/events'

Response

[
{
"body": "string",
"createdDate": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"headers": "string",
"id": "string",
"statusCode": "int"
}
]
warning

The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/credentials_sentera/index.html b/docs/credentials_sentera/index.html new file mode 100644 index 000000000..f6a25db65 --- /dev/null +++ b/docs/credentials_sentera/index.html @@ -0,0 +1,38 @@ + + + + + + + + +Sentera Credentials | Leaf + + + + + + + + + + + + + +
+

Sentera Credentials

Form of an Sentera Credentials resource:

{
"username": "str",
"password": "str",
"organizationName": "str"
}

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/usermanagement/api

See below the REST resources and their endpoints available in this service.

Endpoints

DescriptionEndpoints
Get the Sentera credentialsGET /users/{leafUserId}/sentera-credentials
Create a Sentera credentialsPOST /users/{leafUserId}/sentera-credentials
Delete Sentera credentialsDELETE /users/{leafUserId}/sentera-credentials

Sentera Credentials Endpoints

Get the Sentera credentials

 GET /users/{leafUserId}/sentera-credentials

Get the Sentera credentials of the Leaf User based on its id and returns a JSON with the credentials. If during +background processing we detect that this credential is no longer valid, the value of the status will be changed.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/sentera-credentials'

Response

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"username": "str",
"authToken": "str",
"organizationId": "str",
"organizationName": "str"
}

Create a Sentera credentials

 POST /users/{leafUserId}/sentera-credentials

Create a Sentera credentials for the Leaf User.

Request body

{
"username": "str",
"password": "str",
"organizationName":"str"
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{ "username": "str", "password": "str", "organizationName": "str"}' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/sentera-credentials'

Response

A Sentera Credentials with status.

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"username": "str",
"authToken": "str",
"organizationId": "str",
"organizationName": "str"
}

Delete Sentera credentials

 DELETE /users/{leafUserId}/sentera-credentials

Delete Leaf User's Sentera credentials.

Request examples

curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/sentera-credentials'

Troubleshooting

With these endpoints, you can do some troubleshooting to see your credential's health.

Events

 GET /users/{leafUserId}/sentera-credentials/events

Get the logs of the provider credential based on the LeafUserId sent.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}
/sentera-credentials/events'

Response

[
{
"body": "string",
"createdDate": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"headers": "string",
"id": "string",
"statusCode": "int"
}
]
warning

The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/credentials_stara/index.html b/docs/credentials_stara/index.html new file mode 100644 index 000000000..548cd95f9 --- /dev/null +++ b/docs/credentials_stara/index.html @@ -0,0 +1,38 @@ + + + + + + + + +Stara Credentials | Leaf + + + + + + + + + + + + + +
+

Stara Credentials

Form of a Stara Credentials resource:

{
"apiKey": "str",
"accessToken": "str",
"accessTokenClient": "str",
"refreshToken": "str"
}

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/usermanagement/api

See below the REST resources and their endpoints available in this service.

Endpoints

DescriptionEndpoints
Get the Stara credentialsGET /users/{leafUserId}/stara-credentials
Create a Stara credentialsPOST /users/{leafUserId}/stara-credentials
Delete Stara credentialsDELETE /users/{leafUserId}/stara-credentials

Stara Credentials Endpoints

Get the Stara credentials

 GET /users/{leafUserId}/stara-credentials

Get the Stara credentials of the Leaf User based on its id and returns a JSON with the credentials. If during +background processing we detect that this credential is no longer valid, the value of the status will be changed.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/stara-credentials'

Response

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"accessTokenClient": "str",
"refreshToken": "str",
"accessToken": "str",
"apiKey": "str"
}

Create a Stara credentials

 POST /users/{leafUserId}/stara-credentials

Create a Stara credentials for the Leaf User.

Request body

{
"apiKey": "str",
"accessToken": "str",
"accessTokenClient": "str",
"refreshToken": "str"
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"apiKey": "str", "accessToken": "str", "accessTokenClient": "str", "refreshToken": "str"}' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/stara-credentials'

Response

A Stara Credentials with status.

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"accessTokenClient": "str",
"refreshToken": "str",
"accessToken": "str",
"apiKey": "str"
}

Delete Stara credentials

 DELETE /users/{leafUserId}/stara-credentials

Delete Leaf User's Stara credentials.

Request examples

curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/stara-credentials'

Troubleshooting

With these endpoints, you can do some troubleshooting to see your credential's health.

Events

 GET /users/{leafUserId}/stara-credentials/events

Get the logs of the provider credential based on the LeafUserId sent.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}
/stara-credentials/events'

Response

[
{
"body": "string",
"createdDate": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"headers": "string",
"id": "string",
"statusCode": "int"
}
]
warning

The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/credentials_trimble/index.html b/docs/credentials_trimble/index.html new file mode 100644 index 000000000..d497b76a5 --- /dev/null +++ b/docs/credentials_trimble/index.html @@ -0,0 +1,38 @@ + + + + + + + + +Trimble Credentials | Leaf + + + + + + + + + + + + + +
+

Trimble Credentials

Form of a Trimble Credentials resource:

{
"clientId": "str",
"clientSecret": "str",
"accessToken": "str",
"refreshToken": "str"
}

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/usermanagement/api

See below the REST resources and their endpoints available in this service.

Endpoints

DescriptionEndpoints
Get the Trimble credentialsGET /users/{leafUserId}/trimble-credentials
Create a Trimble credentialsPOST /users/{leafUserId}/trimble-credentials
Delete Trimble credentialsDELETE /users/{leafUserId}/trimble-credentials

Trimble Credentials Endpoints

Get the Trimble credentials

 GET /users/{leafUserId}/trimble-credentials

Get the Trimble credentials of the Leaf User based on its id and returns a JSON with the credentials. If during +background processing we detect that this credential is no longer valid, the value of the status will be changed.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials'

Response

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"tokenMetadata": {"scopes": ["str"]},
"clientId": "str",
"clientSecret": "str",
"accessToken": "str",
"refreshToken": "str"
}

Create a Trimble credentials

 POST /users/{leafUserId}/trimble-credentials

Create a Trimble credentials for the Leaf User.

Request body

{
"clientId": "str",
"clientSecret": "str",
"refreshToken": "str"
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{"clientId": "str","clientSecret": "str","refreshToken": "str"}'
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials'

Response

A Trimble credentials with status.

{
"id": "str",
"status": "str",
"createdTime": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"tokenMetadata": {"scopes": ["str"]},
"clientKey": "str",
"clientSecret": "str",
"accessToken": "str",
"refreshToken": "str",
"clientEnvironment": "STAGE or PRODUCTION"
}

Delete Trimble credentials

 DELETE /users/{leafUserId}/trimble-credentials

Delete Leaf User's Trimble credentials.

Request examples

curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials'

Troubleshooting

With these endpoints, you can do some troubleshooting to see your credential's health.

Events

 GET /users/{leafUserId}/trimble-credentials/events

Get the logs of the provider credential based on the LeafUserId sent.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}
/trimble-credentials/events'

Response

[
{
"body": "str",
"createdDate": "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'",
"headers": "str",
"id": "str",
"statusCode": "int"
}
]
warning

The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/crop_monitoring_endpoints/index.html b/docs/crop_monitoring_endpoints/index.html new file mode 100644 index 000000000..66dc60975 --- /dev/null +++ b/docs/crop_monitoring_endpoints/index.html @@ -0,0 +1,47 @@ + + + + + + + + +Crop Monitoring Endpoints | Leaf + + + + + + + + + + + + + +
+

Crop Monitoring Endpoints

PLANET

If you wish to test our Planet Imagery service, you will be required to use THIS GEOMETRY for your testing purposes. If you need to use a different geometry for testing purposes, you will be billed for this usage. Please contact our team on sales@withleaf.io to discuss your options should you require different testing geometry.

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/satellite/api

This service has the following endpoints available:

DescriptionEndpoints
Get all satellite fieldsGET /fields
Get a satellite fieldGET /fields/{id}
Get images of satellite fieldGET /fields/{id}/processes
Get an image of satellite fieldGET /fields/{id}/processes/{id}
Create a satellite fieldPOST /fields
Delete a satellite fieldDELETE /fields/{id}
Get subscription for PlanetGET /fields/{id}/subscription
Reprocess satelite imagesPOST /fields/{id}/process/{id}/reprocess

Endpoints

Get all satellite fields

 GET /fields

Returns paged results for all satellite fields registered.

  • externalId: external ID used in the field's registration
  • geometry: a valid MultiPolygon GeoJSON object with the geometry of the field
  • sort, the sorting order of the results; can be multi-value, where the first value to be passed will have preference in ordering over the next ones; you can also specify the order as asc or desc with asc being the default. Example: id, desc
    • Valid values for sorting are: createdAt, providers and externalId

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/satellite/api/fields'

Response

[
{
"externalId": "your field id",
"geometry": {
"type": "MultiPolygon",
"coordinates": [...]
}
"providers": [
"sentinel",
"planet"
]
},
....
]

Get a satellite field

 GET /fields/{id}

Fetches a field entry based on its external id.

  • id: external ID used in the field's registration
  • geometry: a valid MultiPolygon GeoJSON object with the geometry of the field

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/satellite/api/fields/{id}'

Response

{
"externalId": "your field id",
"geometry": {
"type": "MultiPolygon",
"coordinates": [...]
},
"providers": [
"sentinel",
"planet"
],
"extent": {
"xmin": 0.0,
"xmax": 0.0,
"ymin": 0.0,
"ymax": 0.0
}
}

Get images of satellite field

 GET /fields/{id}/processes

Returns images for a given field id.

We return the following images (tifs are EPSG:4326, pngs are EPSG:3857):

  • RGB as tiff and as png
  • Colorized NDVI as tiff and as png
  • Raw NDVI as tiff
  • All bands as tiff.

Check the comparison page to identify the resolution and bands available for each provider.

It is possible to filter the results by a number of different parameters:

ParameterTypeDescriptionDefault
startDateISO 8601 datetime formatretrieve images taken after this day-
endDateISO 8601 datetime formatretrieve images taken until this day-
startProcessedTimestampISO 8601 datetime formatretrieve images processed by Leaf after this day-
endProcessedTimestampISO 8601 datetime formatretrieve images processed by Leaf until this day-
maxCloudsdouble between 0.0 and 100.0filter processes with clouds less than or equal to this percentage100
minCoveragedouble between 0.0 and 100.0filter processes with coverage greater than or equal to this percentage0.0
statusstring "SUCCESS", "FAILED" or "STARTED"retrieve images with selected statusSUCCESS
pageintegerpage being fetched0
sizeintegerhow many processes (sets of all images) to return per page20
providerarray of stringsentinel or/and planetIf none is defined, it will created with sentinel only
Important

If you have just created the satellite field, it may take a moment time for the images to become available.

Request examples

curl -X GET \
--header 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/satellite/api/fields/{id}/processes?startDate=2020-06-03&endDate=2020-06-10'

Response

[
{
"id": 0,
"date": "2020-06-03T19:03:57.882Z",
"clouds": 0,
"provider": "sentinel",
"bucketName": "sentinel-s2-l2a",
"bucketKey": "tiles/10/S/FH/2020/6/3/0",
"bucketRegion": "eu-central-1",
"status": "SUCCESS",
"coverage": 100,
"images": [
{
"url": "URL",
"downloadUrl": "URL",
"type": "tif",
"resolution": 20
},
....
],
"processedTimestamp": "2020-06-03T19:03:58.881731Z"
},
....
]
  • date: the date of the satellite image
  • clouds: cloud coverage percentage of the field, from 0 to 100
  • provider: the satellite provider (sentinel or planet) from where this process was created.
  • bucketName: name of satellite image bucket where the original tile is. Usually +sentinel-s2-l2a or leaf-planet-images-prd
  • bucketRegion: AWS region of original image's bucket. Usually eu-central-1
  • bucketKey: base path of original satellite image
  • status: status of the process. It will be either SUCCESS or FAILURE
  • coverage: data coverage percentage of the field, from 0 to 100
  • images: each image in this list will have the following data:
    • url: URL of the image
    • downloadUrl: URL of the image
    • type: the type of the image. One of tif, ndvi, png and +tif_colorized
    • resolution: resolution, in meters, of the image. See table below
  • processedTimestamp: the timestamp of when the process was processed

Get an image of satellite field

 GET /fields/{id}/processes/{id}

Returns a single process for the field.

Request examples

curl -X GET \
--header 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/satellite/api/fields/{id}/processes/{id}'

Response

{
"id": 0,
"date": "2020-06-03T19:03:57.882Z",
"clouds": 0,
"provider": "sentinel",
"bucketName": "sentinel-s2-l2a",
"bucketKey": "tiles/10/S/FH/2020/6/3/0",
"bucketRegion": "eu-central-1",
"status": "SUCCESS",
"coverage": 100,
"images": [
{
"url": "URL",
"downloadUrl": "URL",
"type": "tif",
"resolution": 20
},
# etc...
],
"processedTimestamp": "2020-06-03T19:03:58.881731Z"
}

Create a satellite field

 POST /fields

Creates a new field.

It will be continuously monitored forever, and new images will arrive based on the provider selected, +because each one of them has a different temporal resolution (time it takes for the satellite to go over the same field when orbiting +the Earth). If you don't need the field anymore, you can +delete the field.

Note

By default, Leaf will return images for your field from the last +30 days (from the moment you create the field).

You can change that by including a "startDate" or a "daysBefore" to the body

There are two ways you can do that:

  1. set a startDate (ISO, "yyyy-mm-dd") meaning Leaf will +return all images for your field since this date.
  2. set how many daysBefore (an integer greater than or equal to 0) you +want to get images from.

Note that they are both optional, but you can not specify both.

Now let's see the Payload

Request body

{
"externalId": "yourSatelliteFieldId",
"startDate": "2019-01-01",
"providers": [
"planet"
],
"assetTypes": [
"ortho_analytic_8b_sr"
],
"geometry": {
"type": "MultiPolygon",
"coordinates": [...]
}
}
  • externalId: external ID used in the field's registration.
  • geometry: a valid MultiPolygon GeoJSON object with the geometry of the field.
  • providers: Specify the satellite imagery source, if none is specified, Sentinel images will be retrived by default.
  • assetTypes: If the providers property contains planet you can select which assetType will be retrived, which can be more than one. The available values are ortho_analytic_8b_sr, ortho_analytic_8b, ortho_analytic_8b_xml, and ortho_udm2. The default value is ortho_analytic_8b_sr.

Request examples

curl -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ your payload }' \
'https://api.withleaf.io/services/satellite/api/fields'
field size limit
  • the field cannot be larger than 50k hectares (123k acres) and
  • cannot have a perimeter bigger than 300km (180 miles).

Sample geometry

If you are looking for a geometry for testing purposes you can use this one.

{
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[[[ -48.95275447, -22.49608],
[ -48.95379286, -22.49675703],
[ -48.9591836, -22.50310243],
[ -48.96225525, -22.5067235],
[ -48.94852019, -22.50648371],
[ -48.94780839, -22.49693998],
[ -48.95275447, -22.49608]
]]]
}
}

Delete a satellite field

 DELETE /fields/{id}

Deletes the field from our database.

warning

Note that the field deletion is irreversible and all images will be lost.

(But you can always create a new field and get images from the past, as far +as you want).

Request examples

curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/satellite/api/fields/{id}'

Get subscription for Planet

  GET /fields/{id}/subscription

Get the subscription from Planet. It returns the assetTypes, itemTypes and startDate for a field.

Request examples

curl -X GET \
--header 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/satellite/api/fields/{id}/subscription'

Response

{
"planetAssetTypes": [
"ortho_analytic_8b_sr",
"ortho_udm2"
],
"planetItemTypes": [
"PSScene"
],
"startDate": "2023-04-09T00:00:00Z"
}

Reprocess satellite images

 POST /fields/{id}/process/{id}/reprocess

Allows reprocessing the satellite images based on a processId.

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/fields/{id}/process/{id}/reprocess'

Alerts

With Alerts you can be notified when something happens or changes instead of needing to repeatedly query for changes. +Leaf Alerts support events that happen within Leaf and events that happen within supported 3rd party software.

List of Crop Monitoring Events

Leaf Crop Monitoring Service can Alert you on these events: list of Crop Monitoring Events

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/crop_monitoring_overview/index.html b/docs/crop_monitoring_overview/index.html new file mode 100644 index 000000000..827f2ec40 --- /dev/null +++ b/docs/crop_monitoring_overview/index.html @@ -0,0 +1,45 @@ + + + + + + + + +Crop Monitoring Overview | Leaf + + + + + + + + + + + + + +
+

Crop Monitoring Overview

About

Using Leaf's Crop Monitoring service you will be able to easily implement a satellite +imagery application and compare the field health evolution over time.

You can get historical images with Leaf.

By default, Leaf retrieves images from 30 days prior to the creation of your +field. But you can increase that to as far back in time as you want. +Here's how

Field example

This API accepts field boundary polygons and returns processed, clipped, and +color-corrected RGB, NDVI, and NDRE images every time there is a new image available. +We also provide information like percent cloud coverage of the field, the data +coverage percentage, and the tile source for each image as well.

Currently, our Crop Monitoring service runs without a relationship between our Field Services, and the User Management Services. +However, we are working to integrate it into the leafUser hierarchy, and the Fields Service.

See the Satellite API Reference for more information.

Providers

Leaf currently offers access to Sentinel-2 and PlanetScope images through its API. +Here is a summary comparison between the providers:

Sentinel-2PlanetScope
Spatial resolution10 m - 60 m3 m
Temporal resolution3 - 5 days1 day
Spectral resolution12 bands4 - 5* bands

* the number of bands will depend on the asset type requested

For all providers, in addition to the images of the isolated bands, the RGB, NDVI, and NDRE composition are available:

sentinel x planet rgb
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/crop_monitoring_planet_overview/index.html b/docs/crop_monitoring_planet_overview/index.html new file mode 100644 index 000000000..646ebf535 --- /dev/null +++ b/docs/crop_monitoring_planet_overview/index.html @@ -0,0 +1,44 @@ + + + + + + + + +Planet Overview | Leaf + + + + + + + + + + + + + +
+

Planet Overview

Leaf provides an integration with Planet, fetching PlanetScope images from a back-fill and forward-fill specified by +the user. PlanetScope provides numerus categories of products from different satellite sensors +called itemTypes and for each one, we have different assetType.

For now, we support PSScene with their respective assets ortho_analytic_8b_sr (13 images), ortho_analytic_8b (13 images), ortho_udm2 and ortho_analytic_8b_xml. +For more information on those assets check the +documentation.

Note

Planet will continue to publish imagery to the PSOrthoTile item types until June 20, 2023. This way, +this option will remain available in Leaf until the same referenced date. +For more information: PSOrthoTile deprecation

Also, Leaf handles all the subscription process internally, in order to bring foward-filled images as area +available from Planet.

See the Crop Monitoring API Reference for more information.

Available asset types

ortho_analytic_8b_sr

PlanetScope atmospherically corrected surface reflectance product.

FileBand name
Band 1Coastal Blue
Band 2Blue
Band 3Green I
Band 4Green
Band 5Yellow
Band 6Red
Band 7Red Edge
Band 8Near-infrared

ortho_analytic_8b

Radiometrically-calibrated analytic image stored as 16-bit scaled radiance.

FileBand name
Band 1Coastal Blue
Band 2Blue
Band 3Green I
Band 4Green
Band 5Yellow
Band 6Red
Band 7Red Edge
Band 8Near-infrared

ortho_analytic_8b_xml

Radiometrically-calibrated analytic image metadata.

ortho_udm2

Usable data mask (Cloud 2.0).

FileDescription
Band 1Clear map
Band 2Snow map
Band 3Shadow map
Band 4Light haze map
Band 5Heavy haze map
Band 6Cloud map
Band 7Confidence map
Band 8Unusable pixels

PSScene

More info at Planet documentation.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/crop_monitoring_sentinel_overview/index.html b/docs/crop_monitoring_sentinel_overview/index.html new file mode 100644 index 000000000..5a2a40ab3 --- /dev/null +++ b/docs/crop_monitoring_sentinel_overview/index.html @@ -0,0 +1,49 @@ + + + + + + + + +Sentinel Overview | Leaf + + + + + + + + + + + + + +
+

Sentinel Overview

Leaf's service uses Sentinel-2 data which has the highest resolution publicly available +and revisits each field every 3 to 5 days.

We generate a total of 25 images for each intersected field: a GeoTiff for each +band from Sentinel and processed RGB, NDVI, NDRE and Multiband images.

The following table shows all the images with its resolutions and types: +(TIFs are EPSG:4326, PNGs are EPSG:3857).

NameResolutionTypeProjection
NDVI.pngNULLpng NDVIEPSG:3857
NDRE.pngNULLpng NDREEPSG:3857
RGB.pngNULLpng RGBEPSG:3857
multi_band.tif10multi bandEPSG:4326
NDVI.tif10tif raw NDVI valuesEPSG:4326
NDVI_color.tif10tif colored NDVIEPSG:4326
NDRE.tif10tif raw NDRE valuesEPSG:4326
NDRE_color.tif10tif colored NDREEPSG:4326
RGB.tif10tif RGBEPSG:4326
B01.tif60 meterssingle bandEPSG:4326
B02.tif10single bandEPSG:4326
B03.tif10single bandEPSG:4326
B04.tif10single bandEPSG:4326
B05.tif20single bandEPSG:4326
B06.tif20single bandEPSG:4326
B07.tif20single bandEPSG:4326
B08.tif10single bandEPSG:4326
B8A.tif20single bandEPSG:4326
B09.tif60single bandEPSG:4326
B11.tif20single bandEPSG:4326
B12.tif20single bandEPSG:4326
NDVI_relative.pngNULLpng relative NDVIEPSG:3857
NDVI_absolute.pngNULLpng absolute NDVIEPSG:3857
NDRE_relative.pngNULLpng relative NDREEPSG:3857
NDRE_absolute.pngNULLpng absolute NDREEPSG:3857

PNG files do not have resolution because they are scaled up by 800%.

We generate a colorized NDVI_color.tif and NDRE_color.tif using a custom-built color ramp. See +the image below. If you prefer to use your own ramp, we recommend using NDVI.tif or NDRE.tif, +which is a pre calculated index file. You can import it into any GIS software, +like QGis, and use it as you please.

In addition, you will get the NDVI (i.e., we call them at Leaf as NDVI_relative.png, NDVI_absolute.png +and NDVI.png) cut for your area of interest. The NDVI relative uses the minimum and maximum of the image of that +date and, therefore, you would have a color scale to better visualize the differences of your harvest for that +specific moment, whereas, the NDVI absolute and NDVI, whose range goes from -1 to 1, you can make comparisons +on different dates, the difference between these files are the color ramp applied (i.e., in the NDVI all the values +below 0 are bright red while in the NDVI absolute the color ramp begins at -1 as the bright red and the value 1 +as the bright green inteporlated in between). Same for NDRE.

NDVI example: Left - NDVI relative, Center - NDVI absolute, Right - NDVI
Left - NDVI relative. Center - NDVI absolute. Right - NDVI.

We recommend using the option on the right (just ndvi.png).

Clouds

We use the cloud mask provided by Sentinel-2 to calculate the clouds coverage percentage.

See the Crop Monitoring API Reference for more information.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/crops/index.html b/docs/crops/index.html new file mode 100644 index 000000000..b2bdbbd71 --- /dev/null +++ b/docs/crops/index.html @@ -0,0 +1,38 @@ + + + + + + + + +Crops | Leaf + + + + + + + + + + + + + +
+

Crops

Here is a list of all the crops we currently support. The most common are "corn" +and "soybeans".

Crop String
"none"
"alfalfa"
"barley"
"edible beans"
"navy beans"
"canola"
"flax"
"grass seeds"
"lentils"
"millet"
"mustard"
"oats"
"black eyed peas"
"field peas"
"yellow popcorn"
"white popcorn"
"rapeseed"
"rice long"
"rice medium"
"rye"
"safflower"
"sorghum"
"sunflower oil"
"sunflower stripe"
"durum wheat"
"hard red spring wheat"
"hard red winter wheat"
"soft red winter wheat"
"white wheat"
"chickpeas"
"lupins"
"european spring barley"
"european winter barley"
"european barley 6"
"european corn"
"european oats"
"european peas"
"european popcorn"
"rapeseed e ind"
"european rye"
"sunflower e ind"
"sunflower e oil"
"european triticale"
"european wheat feed"
"european wheat wtr"
"rapeseed e oil"
"asparagus"
"balm"
"beets"
"belgian endive"
"broad beans"
"broccoli"
"brussels sprouts"
"buckwheat"
"cabbage lettuce"
"caraway seed"
"carrots"
"castor beans"
"cauliflower"
"celery"
"chervil"
"chicory"
"chinese cabbage"
"clover"
"corn silage"
"corn cob mix"
"corn salad"
"crambe"
"cucumber"
"digitalis lanate"
"dill"
"elephant grass"
"endives"
"english rye grass"
"evening primrose"
"field meadow grass"
"fodder beet"
"french beans"
"gherkin"
"ginseng"
"grain maize"
"grass forage"
"grassland"
"green cabbage"
"green peas"
"hard fescue grass"
"haricot beans"
"headed cabbage"
"hemp"
"hops"
"hypericum"
"iceberg salad"
"italian rye grass"
"jerusalem artichoke"
"kale"
"leek"
"lettuce"
"lucerne"
"lupine"
"marowfat peas"
"melon"
"mushrooms"
"onions"
"oregano"
"parsley"
"peanuts"
"picklers"
"poppy seed"
"sweet potatoes"
"potatoes for chips"
"potatoes for retail"
"potatoes for starch"
"pumpkins"
"radicchio"
"raddice"
"red beet"
"red cabbage"
"red fescue grass"
"red kidney beans"
"rettich"
"rhubarb"
"salad"
"savoy cabbage"
"scorzonera"
"seed potatoes"
"sesame"
"shallots"
"silver onions"
"spear grass"
"spinach"
"strawberries"
"stubbel tuber"
"sugarbeet"
"sugar cane"
"sugar corn"
"tankard turnip"
"tick beans"
"tobacco"
"tomatoes"
"tuber fennel"
"turnip cabbage"
"turnip rooted celery"
"vetch"
"white beans"
"white cabbage"
"wood carrot"
"set aside"
"hyracinth"
"tulip"
"narcissus"
"gladiolus"
"crocus"
"lily"
"iris"
"dahlia"
"apples"
"pears"
"peaches"
"apricots"
"melons tree"
"oranges"
"lemons"
"almonds"
"vines"
"olives"
"jalapeno"
"cantaloupe"
"honeydew"
"squash"
"green beans"
"lima beans"
"sweet corn"
"canary seed"
"corn"
"soybeans"
"cotton"
"boot stage wcs"
"energy cane"
"mung bean"
"sudangrass"
"canola polish"
"mustard gisilba"
"lentil crimson"
"lentil eston"
"lentil chilean"
"lentil laird"
"pea trapper"
"unspecified crop"
"garlic"
"rutabaga"
"macadamia"
"pecan"
"walnut"
"blueberry"
"cranberry"
"raspberry"
"watermelon"
"orchardgrass"
"downy bromegrass"
"smooth bromegrass"
"reed canary grass"
"tall fescue"
"timothy grass"
"bermuda grass"
"festulolium"
"grass clover"
"grass alfalfa"
"forage mix"
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/field_boundaries_endpoints/index.html b/docs/field_boundaries_endpoints/index.html new file mode 100644 index 000000000..7ac7febde --- /dev/null +++ b/docs/field_boundaries_endpoints/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Field Boundary Management Endpoints | Leaf + + + + + + + + + + + + + +
+

Field Boundary Management Endpoints

Documentation update!

We are updating our documentation and this page was moved to here.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/field_boundaries_overview/index.html b/docs/field_boundaries_overview/index.html new file mode 100644 index 000000000..d5dce7239 --- /dev/null +++ b/docs/field_boundaries_overview/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Field Boundary Management Overview | Leaf + + + + + + + + + + + + + +
+

Field Boundary Management Overview

Documentation update!

We are updating our documentation and this page was moved to here.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/field_boundary_management_endpoints/index.html b/docs/field_boundary_management_endpoints/index.html new file mode 100644 index 000000000..4623bf0f3 --- /dev/null +++ b/docs/field_boundary_management_endpoints/index.html @@ -0,0 +1,60 @@ + + + + + + + + +Field Boundary Management Endpoints | Leaf + + + + + + + + + + + + + +
+

Field Boundary Management Endpoints

About

Here we list all the available endpoints from Leaf's Fields API. To call them easily, we recommend using Leaf's Postman collection.

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/fields/api

There is a REST resources section if you want to check it out.

This service has the following endpoints available:

DescriptionEndpoints
Get all fieldsGET /fields
Get a fieldGET /users/{id}/fields/{id}
Create a fieldPOST /users/{id}/fields
Update a fieldPATCH /users/{id}/fields/{id}
Get all operation files of a fieldGET /users/{leafUserId}/fields/{fieldId}/operations/files
Get an operation file of a fieldGET /users/{leafUserId}/fields/{fieldId}/operations/files/{fileId}
Get fields by geometryPOST /users/{leafUserId}/fields/intersects
Get intersection of fieldsPOST /users/{id}/fields/intersect
Sync fields manuallyPOST /users/{id}/fields/sync
Upload a Field to ProviderPOST /users/{leaf_user_id}/fields/{field_id}/integration/{provider_name}
Delete a fieldDELETE /users/{id}/fields/{id}
Get all boundaries from fieldGET users/{leafUserId}/fields/{fieldId}/boundaries
Get a boundary from fieldGET users/{leafUserId}/fields/{fieldId}/boundaries/{boundaryId}
Get active boundary from fieldGET users/{leafUserId}/fields/{fieldId}/boundary
Update active boundary from fieldPUT users/{leafUserId}/fields/{fieldId}/boundary
Get all farmsGET /farms
Get a farmGET /users/{id}/farms/{id}
Create a farmPOST /users/{leafUserId}/farms
Update a farmPUT /users/{leafUserId}/farms/{id}
Get all growersGET /growers
Get a growerGET /users/{leafUserId}/growers/{id}
Create a growerPOST /users/{leafUserId}/growers
Update a growerPUT /users/{leafUserId}/growers/{id}

Fields

Get all fields

 GET /fields

Gets a paged list of Fields. It is possible to filter the results by passing +some query parameters.

  • type, only matches fields with this type (string).
  • farmId, only matches fields from this farmId (integer).
  • provider, only matches fields from this provider (string).
  • leafUserId, only matches fields from this user (string).
  • page, an integer specifying the page being fetched.
  • size, an integer specifying the size of the page (defaults to 20).

These last two parameters are used exclusively for paging through results.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/fields/api/fields'

Response

[
{
"id": "1a952614-3673-4d1e-b677-1f7224339ec6",
"leafUserId": "58800d61-91ac-4922-8e2a-f0216b9f052a",
"boundaries": [
"279b52d5-ec6d-4459-a06a-4f47ffab0659"
],
"providerName": "JohnDeere",
"providerId": 2,
"providerFieldId": "b96ed268-728f-489e-b928-9d3e70082be4",
"providerBoundaryId": "125fc49f-7e75-43fe-89f2-af976addb392",
"providerFieldName": "The_Field_field",
"organizationId": "428214",
"type": "ORIGINAL",
"createdTime": "2021-10-20T21:21:24.732030Z",
"updatedTime": "2021-11-03T01:34:15.154051Z",
"farmId": 3746117,
"mergedFieldId": "f97c5bbc-2dbf-4400-8d59-39eba37f8847",
"sources": []
},
{
"id": "68c354f2-eb20-4512-816f-2edea4b6fca4",
"leafUserId": "9ffc7b1c-617b-46cb-a8ef-927b26285b7f",
"boundaries": [
"39d171d7-9ec3-4201-81bf-9d57473b2a67"
],
"type": "ORIGINAL",
"createdTime": "2023-06-14T18:31:01.702615Z",
"updatedTime": "2023-06-14T18:31:01.702615Z",
"sources": []
},
....
]

Get a field

 GET /users/{leafUserId}/fields/{id}

Gets a single Field by Leaf User.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{id}'

Response

A single Field as a JSON object.

Create a field

 POST /users/{leafUserId}/fields

Creates a Field for the user leafUserId. A request body must be provided +containing the entry "geometry" object which need to have the properties "type" and "coordinates". +The geometry represents the boundaries of the Field being created as a GeoJSON geometry +("type" property must be a "MultiPolygon").

Consider that you can also set the id and name properties (both of them optional) in the request body. If no id is provided +an UUID will be generated and this property can not be updated.

Request body

{
"id": "idTest", // optional
"name": "nameTest", // optional
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[-93.48821327980518, 41.77137549568163],
[-93.48817333680519, 41.77143534378164],
[-93.48821327390516, 41.76068857977987],
[-93.48821327980518, 41.77137549568163]
]
]
]
}
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "geometry": { "type: "MultiPolygon", "coordinates": [...] } }'
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields'

Response

{
"id": "idTest",
"leafUserId": "95eb7d79-b93d-4fc2-877a-3f2b366f8beb",
"area": {
"value": float,
"unit": "ha"
},
"boundaries": [
"d0245010-157d-4988-96a2-5f3637098475"
],
"geometry": {
"type": "MultiPolygon",
"coordinates": [...]
},
"type": "ORIGINAL",
"name": "nameTest",
"createdTime": "2023-06-07T19:48:51.017280Z",
"updatedTime": "2023-06-07T19:48:51.017280Z",
"files": [
"2762a5f2-ed53-4999-afac-f2d4b136dc1f"
]
}

Update a Field

 PATCH /users/{leafUserId}/fields/{id}

tip

This is for manually created fields only. Provider created fields need to be updated via the Provider platform.

Update the Field by "id" for the user "leafUserId". The request body accepts updatable field properties like "name" to update the field name, "farmId" to update the related Farm of the Field and "geometry", which represents the boundaries of the +Field as a GeoJSON geometry (it must be a "MultiPolygon").

Request body

{
"name": "updatedName",
"farmId": 1,
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[-93.48821327980518, 41.77137549568163],
[-93.48817333680519, 41.77143534378164],
[-93.48821327390516, 41.76068857977987],
[-93.48821327980518, 41.77137549568163]
]
]
]
}
}

Request examples

curl -X PATCH \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "name": "updatedName", "farmId": 1, "geometry": { "type: "MultiPolygon", "coordinates": [...] } }'
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{id}'

Response

A Field as a JSON object.

Get all operation files of a field

 GET /users/{leafUserId}/fields/{fieldId}/operations/files

Gets a paged list of all operation files of the Field and Leaf User specified in +the URL.

It is possible to filter the results by passing some query +parameters. They are listed below.

Parameter (to filter by)TypeDescription
operationTypeString "harvested", "planted", "applied" or "other"retrieve operations of given type
providerString "CNHI", "JohnDeere", "Trimble" or "ClimateFieldView"retrieve operations of given provider
originString "provider", "automerged", "merged" or "uploaded"retrieve operations of given origin
cropString name of the crop, like "corn" or "soybeans". Entire crop list available hereretrieve operations with this crop.
startTimeISO 8601 datetime formatretrieve operations that started after this date
endTimeISO 8601 datetime formatretrieve operations that ended before this date

You can also pass some parameters used exclusively for paging through results. +They are:

  • page, an integer specifying the page being fetched (default is 0)
  • size, an integer specifying the size of the page (default is 20, max is 100)

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/operations/files'

Response

[
{
"id": "abbac24d-7f13-414a-989a-ee5dc9de624b",
"operationType": "harvested",
"origin": "automerged",
"startTime": "2017-10-27T08:59:58Z",
"endTime": "2017-10-27T09:40:33Z",
"crops": [
"corn"
],
"varieties": [
"Corn"
],
"providerFileId": "cacde0d5-55b9-4bff-bf2c-05ec1def1c95",
"provider": "Leaf",
"leafUserId": "dcb6fd16-b6f4-40bc-805e-659c7f7350d6"
},
....
]

Get an operation file of a field

 GET /users/{leafUserId}/fields/{fieldId}/operations/files/{fileId}

Gets a single Operation File of a field by its id.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/operations/files/{id}'

Response

{
"id": "75127023-190a-4579-b76c-ccbcfcf00d3c",
"operationType": "harvested",
"origin": "automerged",
"startTime": "2017-10-27T08:59:58Z",
"endTime": "2017-10-27T09:40:33Z",
"crops": [
"corn"
],
"varieties": [
"Corn"
],
"providerFileId": "a3602817-57e4-4056-bdef-4fb687ba4c2e",
"provider": "Leaf",
"leafUserId": "01a17a22-e6fa-4d83-b343-ea23eddbd936"
}

Get Fields by geometry

 POST /users/{leafUserId}/fields/intersects

Gets a list of fields that intersect with the GeoJSON geometry ("type" property must be a "MultiPolygon") sent in +the request body. The minimum intersection percentage is given by +intersectionThreshold and can range from 0.01% to 100%, its default value is 0.01.

How it works

The intersectionThreshold can be compared with the "intersection by field" ratio or the "intersection by geometry" ratio. Whichever is satisfied first.

Here we have a sample for a field with 100 area unit and a geometry with 10 area unit:

How it works

So, in this case, if the intersectionThreshold were 3, then the condition would be satisfied and the field would be returned, but if the value was greater than 50, then it would not satisfy the condition, as 50% is the highest intersection value:

intersectionThreshold (%)satisfied
3
5
37
50
75
100

Request body

{
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[-93.48821327980518, 41.77137549568163],
[-93.48817333680519, 41.77143534378164],
[-93.48821327390516, 41.76068857977987],
[-93.48821327980518, 41.77137549568163]
]
]
]
},
"intersectionThreshold": 3
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "geometry": { "type": "MultiPolygon", "coordinates": [[[[-93.48821327980518, 41.77137549568163], [-93.48817333680519, 41.77143534378164], [-93.48821327390516, 41.76068857977987], [-93.48821327980518, 41.77137549568163]]]]}, "intersectionThreshold": 3 }'
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/intersects'

Response

[
{
"id": "7740ce52-ae37-45e8-b6ed-5d55eea1dc09",
"leafUserId": "04526587-21eb-42a0-8de5-59964340db4d",
"area": {
"value": 16.71391976284981,
"unit": "ha"
},
"boundaries": [
"f748db67-1885-4936-bc93-a3fbaf249957"
],
"geometry": {
"type": "MultiPolygon",
"coordinates": [...]
},
"providerName": "ClimateFieldView",
"providerId": 4,
"providerFieldId": "62cf2326-8525-4c40-9e37-23fd1c76eeba",
"providerBoundaryId": "bac50a8c-a3bc-4a90-9c4b-df7ea5f5d28b",
"providerFieldName": "behav_test_field",
"type": "ORIGINAL",
"createdTime": "2023-06-06T09:35:07.676376Z",
"updatedTime": "2023-06-06T09:35:07.965139Z",
"sources": []
},
{
{
"id": "8bfe22fa-af4a-41ad-a167-fa792c3faa5f",
"leafUserId": "04526587-21eb-42a0-8de5-59964340db4d",
"area": {
"value": 0.19710594050867244,
"unit": "ha"
},
"boundaries": [
"c329f54f-f979-47f1-96f6-bcf95a771be8"
],
"geometry": {
"type": "MultiPolygon",
"coordinates": [...]
},
"type": "ORIGINAL",
"name": "nameTest",
"createdTime": "2023-06-07T13:55:04.028129Z",
"updatedTime": "2023-06-07T14:08:13.101100Z",
"sources": []
},
....
]

Get intersection of fields

 POST /users/{id}/fields/intersect

Gets a GeoJSON geometry ("type" property must be a "MultiPolygon") corresponding to the intersection of the Fields +specified by the given id's. Such Field id's goes in a list, in the request body.

Request body

[
"id1",
"id2"
]

Request examples

curl --location --request \
POST 'https://api.withleaf.io/services/fields/api/users/{id}/fields/intersect' \
--header 'Authorization: Bearer YOUR_LEAF_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '["id1", "id2"]'

Response

{
"type": "MultiPolygon",
"coordinates": [
[
[
[-89.84388470649719,39.71943436012731],
[-89.84392762184143,39.72439389620628],
[-89.83936786651611,39.725392361998416],
[-89.83928203582764,39.71951688444436],
[-89.84388470649719,39.71943436012731]
]
]
]
}

Sync fields manually

 POST /users/{leafUserId}/fields/sync

tip

This endpoint should be used to fetch data when one of the configurations is enabled: customDataSync or fieldsAutoSync.

Schedules a synchronization to fetch Field Boundaries data from the providers.

Request body

If the customSync configuration is enabled, only the fields sent in the body will be synchronized. For the fieldsAutoSync leave the body empty will sync all the fields available in the provider.

{
"fields": ["UUID"]
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "fields": ["1a952614-3673-4d1e-b677-1f7224339ec6"] }'
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/sync'

Upload a Field to Provider

 POST /users/{leaf_user_id}/fields/{field_id}/integration/{provider_name}

Upload a field boundary a provider. The field must be available on the Leaf API first (manually created or fetched from a provider).

  • provider_name: the name of the provider that will receive the field boundary. The supported providers are JohnDeere or ClimateFieldView.
  • if the provider_name is JohnDeere it will be necessary to add the organizationId as a parameter: ?organizationId={organization_value}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/fields/api/users/{leaf_user_id}/fields/{field_id}/integration/{provider_name}'

Response

[
{
"ba518264-7f2a-11ee-b962-0242ac120002": {
"ClimateFieldView": {
"id": "uuid",
"status": "PENDING",
"updatedAt": "2023-11-09T18:02:17.834Z"
}
}
}
]
Warning

To avoid recursive synchronizations, it is not possible to send a field to the same provider from which it was fetched.

Delete a field

 DELETE /users/{id}/fields/{id}

Deletes the field with the given id.

tip

Fields created by a provider cannot be deleted on Leaf side.

Boundaries

Get all boundaries from field

 GET /users/{leafUserId}/fields/{fieldId}/boundaries

Gets a list of boundaries from a field.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{id}/boundaries'

Response

A list of Boundary as a JSON object.

Get a boundary from field

 GET /users/{leafUserId}/fields/{fieldId}/boundaries/{boundaryId}

Gets a single Boundary from a field by its id.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/boundaries/{boundaryId}'

Response

A single Boundary as a JSON object.

Request examples

Get active boundary from field

 GET /users/{leafUserId}/fields/{fieldId}/boundary

Gets the active Boundary from a field.

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/boundary'

Response

A single Boundary as a JSON object.

Update active boundary from field

 PUT /users/{leafUserId}/fields/{fieldId}/boundary

Updates the active boundary of field fieldId. The previous active boundary is not deleted, but set as inactive.

Request body

{
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[-93.48821327980518, 41.77137549568163],
[-93.48817333680519, 41.77143534378164],
[-93.48821327390516, 41.76068857977987],
[-93.48821327980518, 41.77137549568163]
]
]
]
}
}

Request examples

curl -X PUT \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "geometry": { "type: "MultiPolygon", "geometry": [...] } }'
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/boundary'

Response

{
"id": "g7941ef8-iddf-42c1-b43c-d36b0df369e8",
"status": "ACTIVE",
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[-93.48821327980518, 41.77137549568163],
[-93.48817333680519, 41.77143534378164],
[-93.48821327390516, 41.76068857977987],
[-93.48821327980518, 41.77137549568163]
]
]
]
},
"area": {
"value": 0.19710594050867244,
"unit": "ha"
},
"validity": "VALID",
"createdTime": "2023-06-07T19:48:51.017280Z",
"updatedTime": "2023-06-07T19:48:51.017280Z"
}

Farms

Get all farms

 GET /farms

Gets a paged list of all farms. It is possible to pass some query parameters.

  • growerId, only matches Farms from this growerId (integer)
  • provider, only matches Farms from this provider (string)
  • leafUserId, only matches Farms from this Leaf User (UUID)
  • page, an integer specifying the page being fetched
  • size, an integer specifying the size of the page (defaults to 20)

The parameters are used exclusively for paging through results.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/fields/api/farms'

Response

[
{
"id": 1538766,
"name": "name",
"providerId": 2,
"providerName": "JohnDeere",
"providerFarmId": "2f4a03ed-ac81-4c6d-810d-1db6b47baec2",
"providerFarmName": "farmName",
"leafUserId": "ace92e9c-2e83-4d85-ab34-1f76a480abc8",
"fieldIds": [
"6595418e-11d2-4260-9e6b-e8c452fb8375"
],
"growerId": 12345,
"createdTime": "2023-06-06T09:34:11.759672Z",
"updatedTime": "2023-06-07T09:15:42.855759Z"
},
....
]

Get a farm

 GET /users/{leafUserId}/farms/{id}

Gets a single farm by its id from the user leafUserId.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/farms/{id}'

Response

A single Farm as a JSON object.

Create a farm

 POST /users/{leafUserId}/farms

Creates a farm for the user leafUserId. It's possible to pass both the farmName and the growerId on the body of +the request.

Request body

{
"name": "Farm 01",
"growerId": 123
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "name": "farmName" }'
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/farms'

Response

A single Farm as a JSON object.

Update a farm

 PUT /users/{leafUserId}/farms/{id}

Updates the farm with id id for the user leafUserId. It's possible to pass both the farmName and the growerId +on the body of the request.

Request body

{
"name": "Updated Farm Name",
"growerId": 123
}

Request examples

curl -X PUT \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "name": "newFarmName", "growerId": "newGrowerId }'
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/farms/{id}'

Response

A single Farm as a JSON object.

Grower

Get all growers

 GET /growers

Gets a paged list of all growers. Use the following parameters for paging +through results.

  • provider, only matches Growers from this provider (string)
  • leafUserId, only matches Growers from this Leaf User (UUID)
  • page, an integer specifying the page being fetched
  • size, an integer specifying the size of the page (defaults to 20)

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/fields/api/growers'

Response

A list of Grower as a JSON object.

[
{
"id": 873300016,
"name": "1Grower",
"leafUserId": "1d3ecb0f-bf3d-42db-aae6-8c45c045d28c",
"providerName": "JohnDeere",
"providerId": 23,
"providerGrowerId": "1Grower",
"farmIds": [],
"createdTime": "2023-06-06T03:31:39.966630Z",
"updatedTime": "2023-06-07T20:01:14.814346Z"
},
....
]

Get a grower

 GET /users/{leafUserId}/growers/{id}

Gets a single grower by its id from the user leafUserId.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/growers/{id}'

Response

A single Grower as a JSON object.

{
"id": 873300016,
"name": "1Grower",
"leafUserId": "1d3ecb0f-bf3d-42db-aae6-8c45c045d28c",
"providerName": "JohnDeere",
"providerId": 23,
"providerGrowerId": "1Grower",
"farmIds": [],
"createdTime": "2023-06-06T03:31:39.966630Z",
"updatedTime": "2023-06-07T20:01:14.814346Z"
}
Note

In our system, Growers are equivalent to John Deere Client. That been said, the +attribute name comes directly from the Client's name for growers with John Deere as provider.

Create a grower

 POST /users/{leafUserId}/growers

Creates a grower for the user leafUserId. It's possible to pass name on the body of the request.

Request body

{
"name": "Example Grower Name"
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "name": "growerName" }'
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/growers'

Response

A single Grower as a JSON object.

Update a grower

 PUT /users/{leafUserId}/growers/{id}

Updates the grower with id id for the user leafUserId. It's possible to pass only the name on the body of the request.

Request body

{
"name": "Updated Grower Name"
}

Request examples

curl -X PUT \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "name": "newGrowerName"}'
'https://api.withleaf.io/services/fields/api/users/{leafUserId}/growers/{id}'

Response

A single Grower as a JSON object.

REST Resources

See below the REST resources and their endpoints.

Field Resource

A field might have one or neither of the following keys:

  • a "mergedFieldId" key or
  • a "sources" key

A Field will only have one of the previous keys if it is either a field that +has been merged with other one(s) or if it is a result of a merge. Leaf merges +fields that have any sort of overlap. This makes it easier for you to query +operations from a field by querying by the merged field. Because a field might +exist in multiple providers, Leaf detects that and creates a single field that +you can query for - and you can still query by the individual fields too.

geometry and area are deprecated keys that contains the geometry of the active boundary and its area, respectively.

{
"id": "UUID",
"providerName": "string",
"providerFieldName": "string",
"providerFieldId": "string",
"providerBoundaryId": "UUID",
"type": "ORIGINAL",
"leafUserId": "UUID",
"organizationId": "string",
"mergedFieldId": ["UUID"],
"files": ["UUID"],
"boundaries": ["UUID"],
"createdTime": "ISO date-time",
"updatedTime": "ISO date-time",
"status": "PROCESSED"
}

Preview mode

If the customDataSync configuration is enabled, the field will be fetched from the providers in the PREVIEW mode. A Field in PREVIEW mode has almost all properties except the geometry so that no boundaries will be available.

{
"id": "UUID",
"providerName": "string",
"providerFieldName": "string",
"providerFieldId": "string",
"providerBoundaryId": "UUID",
"type": "ORIGINAL",
"leafUserId": "UUID",
"organizationId": "string",
"mergedFieldId": ["UUID"],
"files": ["UUID"],
"boundaries": [],
"createdTime": "ISO date-time",
"updatedTime": "ISO date-time",
"status": "PREVIEW"
}

Those Fields will still be listed in the field endpoints, allowing the custom synchronization of the resources available in the providers. To fetch a Field completely, it is necessary to remove it from the PREVIEW mode, sending it in the manual sync endpoint.

After the change request, the field(s) will be fetched completely in the next synchronization window and it will be available as PROCESSED.

Field operations

In PREVIEW mode, the operation files associated with the fields on the provider side will also not be fetched and will only be available after the field sync request. Since not all providers support this relationship, it will only be reflected in John Deere and Climate FieldView files. For other providers, all files will be fetched normally, regardless of the configuration.

DescriptionEndpoints
Get all fieldsGET /fields
Get a fieldGET /users/{id}/fields/{id}
Create a fieldPOST /users/{id}/fields
Get fields by geometryPOST /fields/query/intersects
Get intersection of fieldsPOST /users/{id}/fields/intersect
Sync fields manuallyPOST /users/{id}/fields/sync
Delete a fieldDELETE /users/{id}/fields/{id}

Boundary Resource

Every Field at Leaf can have 0 or many boundaries. Fields created via Leaf's endpoints must have at least one boundary. Only one boundary may be active, the others are inactive boundaries. Boundaries cannot be deleted or have its geometry updated. Every update generates a new Boundary, and Leaf keeps a history of all seen Boundaries.

Each boundary has a status and providerStatus.

  • status - Represents the current status of the boundary:

    • ACTIVE - If the boundary was created at Leaf, it is the active boundary. If it is from a provider, +this boundary exists at the provider and is the active boundary there.
    • INACTIVE - If the boundary was created at Leaf, it is an inactive boundary. If it is from a provider, this boundary exists at the provider and is inactive there.
    • OUTDATED_ON_PROVIDER - The boundary is from a provider. The boundary once existed on the provider exactly as it is in that boundary, but it was edited (e.g. has a new geometry but the same provider boundary id).
    • DELETED_ON_PROVIDER - The boundary is from a provider. The boundary once existed on the provider, but it was deleted. The user won't find that boundary in the provider.
  • providerStatus - Is the status of the boundary on the provider.

    • ACTIVE - The boundary is the active boundary in the provider.
    • INACTIVE - The boundary is inactive in the provider.

providerStatus, just like the geometry, is a static attribute. In case this attribute is changed at the provider, the boundary's status is updated and a new boundary is created with the updated providerStatus in order to maintain history.

The geometry may be invalidly registered with the provider, more information in Troubleshooting.

{
"id": "UUID",
"status": "ACTIVE",
"providerStatus": "ACTIVE",
"providerBoundaryId": "UUID",
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[
-89.84392762184143,
39.72439389620628
],
[
-89.84388470649719,
39.71943436012731
],
[
-89.83928203582764,
39.71951688444436
],
[
-89.83936786651611,
39.725392361998416
],
[
-89.84392762184143,
39.72439389620628
]
]
]
]
},
"area": {
"value": double,
"unit": "ha"
},
"validity": "VALID",
"createdTime": "2023-06-06T03:33:51.528534Z",
"updatedTime": "2023-06-06T03:33:51.528534Z"
}
}
DescriptionEndpoints
Get all boundaries from fieldGET users/{leafUserId}/fields/{fieldId}/boundaries
Get a boundary from fieldGET users/{leafUserId}/fields/{fieldId}/boundaries/{boundaryId}
Get active boundary from fieldGET users/{leafUserId}/fields/{fieldId}/boundary
Update active boundary from fieldPUT users/{leafUserId}/fields/{fieldId}/boundary

Operation Resource

{
"id": "UUID",
"operationType": "harvested|planted|applied",
"startTime": "ISO date-time",
"endTime": "ISO date-time",
"crops": ["string"],
"varieties": ["string"],
"providerFileId": "string",
"provider": "Trimble",
"origin": "provider|merged|automerged|uploaded",
"leafUserId": "UUID"
}
DescriptionEndpoints
Get all operations of a field (deprecated)GET /users/{leafUserId}/fields/{fieldId}/operations
Get all operations of a fieldGET /users/{leafUserId}/fields/{fieldId}/operations/files
Get an operation of a field (deprecated)GET /users/{leafUserId}/fields/{fieldId}/operations/{fileId}
Get an operation of a fieldGET /users/{leafUserId}/fields/{fieldId}/operations/files/{fileId}

Farm Resource

{
"id": int,
"name": "string",
"providerId": int,
"providerName": "string",
"providerFarmId": "UUID",
"providerFarmName": "farmName",
"leafUserId": "UUID",
"fieldIds": [
"UUID"
],
"growerId": int,
"createdTime": "2023-06-06T09:34:11.759672Z",
"updatedTime": "2023-06-07T09:15:42.855759Z"
}
DescriptionEndpoints
Get all farmsGET /farms
Get a farmGET /users/{id}/farms/{id}
Create a farmPOST /users/{leafUserId}/farms
Update a farmPUT /users/{leafUserId}/farms/{id}

Grower Resource

{
"id": int,
"name": "string",
"leafUserId": "UUID",
"providerName": "string",
"providerId": int,
"providerGrowerId": "string",
"farmIds": [
"UUID"
],
"createdTime": "ISO date-time",
"updatedTime": "ISO date-time"
}

If there is a name available for the grower so the name property will be returned as well.

DescriptionEndpoints
Get all growersGET /growers
Get a growerGET /growers/{id}
Create a growerPOST /users/{leafUserId}/growers
Update a growerPUT /users/{leafUserId}/growers/{id}

Troubleshooting

Currently, Leaf gets the field boundary data as available from the provider, so in some cases there may be fields without +boundaries or with invalid boundaries, identified with one of the values below:

Validity values
VALID
REPEATED_POINT
HOLE_OUTSIDE_SHELL
NESTED_HOLES
DISCONNECTED_INTERIOR
SELF_INTERSECTION
RING_SELF_INTERSECTION
NESTED_SHELLS
DUPLICATE_RINGS
TOO_FEW_POINTS
INVALID_COORDINATE
RING_NOT_CLOSED
NOT_ALLOWED_GEOMETRY_TYPE

Here is an example of a geometry registered as invalid due to a SELF_INTERSECTION.

{
"geometry": {
"coordinates": [
[
[
[-47.779352980393611,-21.192167369960515],
[-47.775885948768021,-21.192669687635007],
[-47.775917640099145,-21.194602117356858],
[-47.780062866210912,-21.195033512590314],
[-47.77870013897234,-21.191730056712402],
[-47.779352980393611,-21.192167369960515]
]
]
],
"type": "MultiPolygon"
}
}

This is what this invalid type of geometry looks like from the provider side:

Field example

Automatic geometry fix

There is a configuration available to fix the invalid geometry that Leaf fetches from the provider.

When enabled, Leaf will try to fix the geometry. If the fix is successful, then the invalid boundary will be disabled (available as a historical boundary) and the new one will be available as the main boundary with the property "fixStatus": "FIXED"

This behavior only applies to Fields obtained from providers, as validation prevents Fields from being created manually with invalid geometries.

Warning

Note that this is an automatic procedure and that the corrected geometry may present small differences in relation to the original, such as an increase or decrease in area.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/field_boundary_management_overview/index.html b/docs/field_boundary_management_overview/index.html new file mode 100644 index 000000000..a4c62e22a --- /dev/null +++ b/docs/field_boundary_management_overview/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Field Boundary Management Overview | Leaf + + + + + + + + + + + + + +
+

Field Boundary Management Overview

With Leaf, you can sync, export, create, and manage Field Boundaries from all major agriculture brands.

Getting started

To help you get started, we’ve created a quickstart Postman collection.

To make calls to Leaf's field API, you will first need to go through the previous documentation steps from Leaf registration/authentication to provider authentication. Once you’ve successfully connected a provider, you can manage the field boundary endpoints on the next page.

How field data is structured

Field example
  • Leaf uses a Grower/Farm/Field hierarchy to organize data.
  • A grower (also known as Leaf User) is the data owner entity to which credentials are attached.
  • Farm(s) can be grouped together under a Grower and Field(s) can be grouped under a Farm
  • Each field is tied to a field ID and its field boundary is tied to a boundary ID, which is the central concept for organizing boundary data. There can only be one active boundary per field.
  • Machine Files that Leaf merges into Operations are the results of operational tasks performed in a given Field.

FAQs

Can I use the fields and boundaries from my app/platform instead of connecting it from a provider?

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/files_crops_table/index.html b/docs/files_crops_table/index.html new file mode 100644 index 000000000..483689b4c --- /dev/null +++ b/docs/files_crops_table/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Crops Table | Leaf + + + + + + + + + + + + + +
+

Crops Table

Documentation update!

We are updating our documentation and this page was moved to here.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/files_endpoints/index.html b/docs/files_endpoints/index.html new file mode 100644 index 000000000..094a23e9e --- /dev/null +++ b/docs/files_endpoints/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Endpoints | Leaf + + + + + + + + + + + + + +
+

Endpoints

Documentation update!

We are updating our documentation and this page was moved to here.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/files_images/index.html b/docs/files_images/index.html new file mode 100644 index 000000000..78a363b2b --- /dev/null +++ b/docs/files_images/index.html @@ -0,0 +1,40 @@ + + + + + + + + +Geo Images | Leaf + + + + + + + + + + + + + +
+

Geo Images

About

This service permits to generate images for files. It can be used to test the color ramp values.

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/images/api

This service has the following endpoints available:

DescriptionEndpoints
Create imagesPOST /images

Create images

 POST /images

Gets a paged list of operations that belong to the current logged in user. It is +possible to filter the results by passing some query parameters. They are listed +below.

ParameterValues
colorRampthe ranges for the color ramp
projectionEPSG_3857
resolution>0
shapeROUND, JohnDeere, Trimble, ClimateFieldView, AgLeader or Leaf

Request examples

{
"colorRamp": {
"0%" : [200, 0, 0],
"35%" : [255, 40, 0],
"45%" : [255, 150, 0],
"55%" : [255, 240, 0],
"65%" : [ 0, 230, 0],
"75%" : [ 0, 190, 0],
"100%": [ 0, 130, 0],
"nv" : [ 0, 0, 0, 0]
},
"projection": "EPSG_3857",
"resolution": 1,
"shape": "ROUND"
}

You can also pass some parameters used exclusively for paging through results. +They are:

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/operations'

Response

The response will be the URL of new image in PNG format.

https://api.withleaf.io/services/geoimages/api/images/a84e6627-4526-4560-a0ac-47eb57865a03/harvestMoisture

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/files_overview/index.html b/docs/files_overview/index.html new file mode 100644 index 000000000..517e7b388 --- /dev/null +++ b/docs/files_overview/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Overview | Leaf + + + + + + + + + + + + + +
+

Overview

Documentation update!

We are updating our documentation and this page was moved to here.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/files_postman/index.html b/docs/files_postman/index.html new file mode 100644 index 000000000..29904d0ae --- /dev/null +++ b/docs/files_postman/index.html @@ -0,0 +1,108 @@ + + + + + + + + +Overview | Leaf + + + + + + + + + + + + + +
+

Overview

Overview

Leaf's Operation Data API returns aggregated, cleaned, and standardized data +from all major machine data brands in a simple JSON response. This tutorial will +walk through how to create a Leaf user, securely authenticate with their chosen +platforms, and receive auto-updating data from all of them with a single request.

We also provide a quickstart Postman collection so you can follow +along easily.

To make calls to Leaf's API, you will need a Leaf account. If you don't have one +yet, please create your Leaf account and get your token.

You can integrate with many different companies, and you only have to do it once +for each user. To connect, you just choose the company you wish to connect to +and follow these 3 steps:

  1. Get the authentication URL of company you want to connect to
  2. Get yours and your user's tokens
  3. Add credentials to Leaf

Now you can opt to connect to more companies or Create a Leaf User and attach +these credentials, so that Leaf can represent your user internally and you can +query specifically for them and their data.

All set!

Leaf automatically detects and starts processing new files. You can access in +"Get Operation Files".

Roadmap

Today, you can to connect to these companies:

Coming in the third quarter of 2020:

  • Raven
  • AGCO

Coming in the fourth quarter of 2020:

  • AgLeader
  • Stara

John Deere

This section will show you how you can integrate Leaf's API with you John Deere +account and start using our operations service. Grab our quickstart +Postman collection and follow along!

1. Get John Deere auth URL

In Step 1 we will be generating tokens from John Deere. The goal In step 2 is we +will get our John Deere token_id and token_secret.

Token Verifier

In step 1 we will get a temporary "token verifier" from John Deere that confirms +an user’s authentication of your application to access their John Deere data and +generate credentials. We get that verifier by going through their authentication +flow (OAuth2). Before generating the authentication URL, please:

  • Update current value of jd_client_key to your app's client key on John Deere
  • Update current value of jd_client_secret to your app's client secret on John +Deere
  • Update current value of jd_callback_url to your app's callback_url on John +Deere

Then, to generate the authentication URL your application will send to your user +so they can authorize access to their account files you can use the included +step 2 in the Postman Collection. Change client_key and client_ secret +variables to yours received from John Deere when you created an app on your +developer account with them and redirect_uri to a uri the "token verifier" +will be sent after the user authorizes your application. Hit Send.

Redirect your user to the url included in the response.

They will authenticate and be redirected to the redirect_url.

Copy the entire url you were redirected to. It looks like:

https://withleaf.io/?oauth_token=TOKEN&oauth_verifier=CODE

Paste it in the environment variable jd_response_url.

2. Get John Deere Tokens

After updating the jd_response_url in Postman you can submit your credentials +and receive your tokens.

Hit Send

token_id and token_secret_key will be automatically transferred to +jd_token_id and jd_token_secret environment variables and will be used in +the next step.

3. Add John Deere credentials

Now we can create a Developer-User pair credentials ID that will allow you to +access your user’s John Deere data. We first add the John Deere credentials to +Leaf API.

Hit Send

All the info needed has already been filled automatically in Step 2.

An id for the credentials you just created will be returned. This id will +be automatically transferred to the value of jd_credentials_id to be used in +the next step.

Climate FieldView

Grab our quickstart Postman collection and follow along!

1. Get Climate FieldView auth URL

We will be generating a url to redirect your user to authenticate with Climate.

Update environment variables cfv_client_id and cfv_client_secret to your +Climate FieldView developer account credentials.

Update environment variable cfv_redirect_url to your application's backend

Redirect your user to the script's output url.

They will authenticate and be redirected to the redirect_uri.

A code will be sent to that cfv_redirect_url. We will need this code Step 2.

Copy the code value.

note: this code expires after 1 minute.

Paste code value to environment variable cfv_code

2. Get Climate FieldView tokens

Hit "Send"

A lot of information will be returned. The important ones are access_token +and refresh_token. These will be automatically transferred to +cfv_access_token and cfv_refresh_token environment variables and will be +used in the next step.

3. Add Climate FieldView credentials

Now we can create a Developer-User pair credentials ID that will allow you to +access your user’s Climate data. We first add the Climate credentials to Leaf +API, to do that: Hit "Send"

An id for the credentials you just created will be returned. This id will +be automatically transferred to the value of cfv_credentials_id to be used in +the next step.

Leaf User

Create Leaf User

Now we have to attach credentials to a Leaf User. To do so, we can create a +Leaf user and attach our John Deere and/or Climate FieldView credentials via +the credentials id. We can also attach credentials from other companies to this +same user to query all available data by Grower/Farm/Field regardless of brand.

Update (optional) fields "address", "email", "name" and "phone" with your +user's information.

We have automatically included our jd_credentials_id to this call and +attached it to this user.

Hit "Send"

Along with other information returned, there is an "id". This "id" is the +leaf_user_id that will be used in the next (final) Step to query and access +files.

Update Leaf User

To update a Leaf User, let's say to add another provider credentials or change +the user's address, we can use this PUT request. Since this method overwrites, +remember to send all the user's information along with the information you want +to add or update. For example, if you want to add John Deere credentials to a +user that already has ClimateFieldView credentials, remember to specify both +credentials ids.

Get specific Leaf User

Get specific Leaf User With this endpoint you can query all information on a +specific Leaf User, such as their address, email, credentials, etc. To do so, +update the value of the environment variable leaf_user_id to the Leaf User id +you want to query.

Gel all Leaf Users

Get all Leaf Users With this endpoint you can query all information on all your +Leaf Users, such as their address, email, credentials, etc. Just hit 'send'.

Query Operations by Field

To query all operations that happened in a specific field (step 2), we first +need to create that field (step 1). Then, Leaf will automatically detect +operations of that field based on the operations' and on the field's +coordinates. This process usually takes about 30 minutes.

1. Create Field

Here we need to specify a leafUserId (that will be the Leaf User owner of that +field), a externalId (that will be the name we give to the field) and the +geojson geometry of the field (location). After creating the field we can query +it (step 2)

2. Get operations' ids by Field

To query all operations that happened in a specific field, just update the +environment variable field_external_id to the field id you want to query +files.

Merge Operation Files

1. Merge files

Merging files with Leaf is a very simple process. You just have to list, in the +request json body, the ids of the files you want to merge. Make sure the +operations are of the same type (APPLIED or HARVESTED or PLANTED), so the +results are consistent.

After that, just hit "send" and an id for that merged file will be returned. +You can query that file as any other. It will be listed when you query for all +files and can also be queried specifically by its id

2. Query & access specific file

You can query a merged file as any other. It will be listed when you query for +all files and can also be queried specifically by its id. So this request is +the same as seen on "Get Operation Files". You just have to update the +environment variable "id" to the id of the merged file.

Keep in mind that merging files is processing-heavy and may take about 20 +minutes to finish.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/files_sample_output/index.html b/docs/files_sample_output/index.html new file mode 100644 index 000000000..0d82c7c46 --- /dev/null +++ b/docs/files_sample_output/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Sample responses | Leaf + + + + + + + + + + + + + +
+

Sample responses

Documentation update!

We are updating our documentation and this page was moved to here.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/glossary(unused)/index.html b/docs/glossary(unused)/index.html new file mode 100644 index 000000000..faaee0de7 --- /dev/null +++ b/docs/glossary(unused)/index.html @@ -0,0 +1,33 @@ + + + + + + + + +Page Not Found | Leaf + + + + + + + + + + + +
+

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+ + + + + + + + + + + \ No newline at end of file diff --git a/docs/glossary/index.html b/docs/glossary/index.html new file mode 100644 index 000000000..e6cc5d4bf --- /dev/null +++ b/docs/glossary/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Glossary | Leaf + + + + + + + + + + + + + +
+

Glossary

In this glossary, you’ll find a range of definitions for terms you’ll come across in Leaf’s documentation. If you need any terms clarified further, please contact us anytime at help@withleaf.io.

Leaf product terms

TermDefinition
Field BoundariesGeospatial boundary/shape/area of a field.
Data Translation | File ConversionReceive data, translated by Leaf to a consistent, aggregated and standardized format, from all major machinery brands.
Machine Data | Field OperationsFieldOps data pulled from machinery providers (planting, application, harvest, tillage). Called operations in Leaf. Note: see further down, the difference between Machine File Summary and Operation Summary
Machine Information | AssetsData on machinery performance itself (serial number, hours, fuel consumption, rpm, speed and calibration).
PrescriptionsPlanting and fertility recommendations. Can be sent from Leaf to Providers, not to specific machines.
Crop MonitoringSatellite and drone images of fields based on their boundaries.
WeatherForecasted and historical field-level weather data.
Leaf ConnectSharing data between two different companies within Leaf. Allows one API owner to access fields and operations data from another API owner.

More Leaf terms

TermDefinition
API OwnerThe company email address that you use to create a Leaf account and is used to create/store Leaf Users.
Leaf TokenA token that will allow access to Leaf for up to 30 days.
Provider | OEMs | third-party platformsThe company whose platform provides data such as field boundaries, machine data, imagery etc (e.g. Climate FieldView, John Deere).
Leaf UserA way to keep your customers' data organized under your API owner. You'll attach 3rd party credentials to these entities. A Leaf User is equivalent to a Customer/Grower account.
AlertsWebhooks set up to send notifications of events that occur in Leaf. For example, when a new boundary is created, you'll be notified when it occurs, instead of polling (periodically requesting updates).
ConfigurationsConfigurations allow your Leaf environment to be customized to present different behaviors across our services.
Field MergeWhen two fields intersect, Leaf can merge them to create a new field.
Raw dataData downloaded directly from a tractor monitor. (USB, Thumb Drive Data)
File ConverterConverts raw data formats to Leaf’s standard JSON format.
File MergeFiles of the same operation type within a specified date range (applied, planted, harvested, tillage) are combined into a single file.
Machine File SummaryBasic information of files derived from the point data, processed and cleaned by Leaf. Data outputs will vary by task (planted, applied, harvested, tillage).
Operation SummaryThe output of files merged to a field boundary that are processed and cleaned by Leaf.

More agricultural terms

TermDefinition
OrganizationThe organization is the top-level entity for a farm business such as a head office of a corporate farm
GrowerThe grower sits under the organization level and is equivalent to a farmer. A grower is often linked to farms and fields with a hierarchy of organization > grower > farm > field
FarmA Farm is a group of fields managed by a grower
FieldAn area of open land, especially one planted with crops or pasture bound by a fence or other landmark. Note: in Leaf, the field object has no boundary but can be pulled in from a provider (e.g. field name, field ID, area)
Field BoundaryGeospatial boundary/shape/area of a field
CropType of plant being grown (e.g. soybeans, corn, wheat)
VarietyA subtype of the crop being grown (e.g. P7326 is a variety of corn)
Field OperationsTasks performed by a tractor (tillage, planting, application, harvest)
TillageThe task of breaking up soil
PlantingThe task of placing seeds in the soil
ApplicationThe task of applying products to an area of a field (eg fertilizer, pesticides)
HarvestThe task of removing/collecting a fully mature crop
ImplementsImplements are specialized pieces of farm equipment such as a drill, sprayer, combine or planter.
LayersAdditional crop or field-related data that can be pulled from a provider (Tassel count, Stand count, NDVI and RGB)
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 000000000..7b30a1bc3 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,39 @@ + + + + + + + + +Welcome | Leaf + + + + + + + + + + + + + +
+

Welcome

Welcome to Leaf's Documentation!

Developers use Leaf's API to access clean, standardized, +and aggregated Farm data from all major food & agriculture brands.

Please see the Quickstart section to get started with sample farm data & popular use cases.

We have implementation examples in cURL, NodeJS and Python!

Getting Started

Leaf's API abstracts and standardizes across agricultural data sources so you can focus on building value with farm data. +There are just a few concepts that you need to get started and we provide sample data within new Leaf accounts to help you learn quickly.

Postman Collection
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/integrations_endpoints/index.html b/docs/integrations_endpoints/index.html new file mode 100644 index 000000000..07b545917 --- /dev/null +++ b/docs/integrations_endpoints/index.html @@ -0,0 +1,38 @@ + + + + + + + + +Integrations Endpoints | Leaf + + + + + + + + + + + + + +
+

Integrations Endpoints

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/integrations/api

This service has the following endpoints available:

DescriptionEndpoints
Get Integrations ResourcesGET /resources

For easy testing of these endpoints, we recommend using our Postman collection.

To understand how to verify if an incoming request comes from Leaf, see the Authentication section.


Get Integrations Resources

 GET /resources

Gets a paged list of Fields. It is possible to filter the results by passing +some query parameters.

  • provider, only matches fields from this provider (string).
  • leafUserId, only matches fields from this user (string).
  • page, an integer specifying the page being fetched.
  • size, an integer specifying the size of the page (defaults to 20).

These last two parameters are used exclusively for paging through results.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/integrations/api/resources'

Response

{
"message": "SUCCESS",
"summaries": [
{
"provider": "JohnDeere",
"leafUserId": "UUID",
"growers": 12,
"farms": 12,
"fields": 100,
"syncReferenceTime": "2023-08-30T18:39:33.230612Z"
},
{
"provider": "ClimateFieldView",
"leafUserId": "UUID",
"farms": 12,
"fields": 100,
"syncReferenceTime": "2023-08-30T18:39:33.230612Z"
},
....
]
}
FMIS Structure Warning

Each provider has its own implementation of the FMIS structure which you can check on the table below.

FMIS Structure Table

This table contains the FMIS properties available for the Integrations Resources responses.

ProviderGrowerFarmField
JohnDeere
ClimateFieldView✖️
CNHI
Trimble
Stara✖️✖️
Raven
AgVance
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/introduction/index.html b/docs/introduction/index.html new file mode 100644 index 000000000..b9d14eadd --- /dev/null +++ b/docs/introduction/index.html @@ -0,0 +1,41 @@ + + + + + + + + +Introduction | Leaf + + + + + + + + + + + + + +
+

Introduction

Welcome to Leaf's Documentation!

Food and Agriculture developers use Leaf's API to access clean, standardized, +and aggregated Farm data from all major sources. Use the +Quickstart section to help you start +accessing sample farm data quickly, easily, and securely. We have implementation +examples in cURL, Python and NodeJS!

tip

Please don't hesitate to contact us to schedule a demo, ask a question, request sample data, or suggest a feature!

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/machine_file_conversion_crops_table/index.html b/docs/machine_file_conversion_crops_table/index.html new file mode 100644 index 000000000..8ace78620 --- /dev/null +++ b/docs/machine_file_conversion_crops_table/index.html @@ -0,0 +1,41 @@ + + + + + + + + +Crops Table | Leaf + + + + + + + + + + + + + +
+

Crops Table

Density

Here we have a table containing the density for most of the crops extracted +from Leaf's providers, where using these values we can generate volumetric representations of harvest yield from mass +and vice-versa.

Standard Moisture

The standard moisture value is used to calculate the dry crop values. +If the crop does not have a value defined in this table, then the API will not calculate the dry value and will repeat the wet values.

CropsDensity (lb/bu)Dry Moisture (%)
alfalfa10013
annual ryegrass56
apples48n/a
barley47.9915
bean, black60
bean, navy67.215
beans, edible60
bent grass14
bermuda grass1
black eyed peas60.01
blue grass14
blueberry1
boot stage wcs60.01
borage60
buckwheat44
canola5015
canola polish52.01
chick peas6014
chickpeas60.98
clover60
corn5615
corn cob mix77.69
corn silage49.8
corn256
cotton120.42
cranberry1
crimson clover60
downy bromegrass1
durum wheat60
edible bean lrg30
edible bean med30
edible bean sml30
edible beans6015
els32
energy cane7.38
european barley 647.99
european corn56
european oats31.99
european peas60.01
european popcorn60.01
european rye56
european spring barley47.99
european triticale57.98
european wheat feed60.01
european wheat wtr60.01
european winter barley47.99
faber beans60
fall barley48
fan spring barley48
festulolium1
field beans6015
field peas6012
flax6010
forage mix1
garlic1
girasol (aceite)71.85
grass14
grass alfalfa1
grass clover1
grass dry100
grass half dry100
grass seeds22
grass wet100
hard red spring wheat60.01
hard red winter wheat60.01
hard white spring wheat60.01
hard white winter wheat60.01
iceberg salad18.65
lentil chilean60.01
lentil crimson60.01
lentil eston60.01
lentil laird60.01
lentils6013
lucerne54.38
lupins60
macadamia1
maize56
maize ccm56
maize long100
maize short100
meadowfoam60
millet5013
millet, pearl48
miscanthus100
mung bean60.01
mustard559.50
mustard gisilba60.01
navy beans61.99
oats3212
oilseed rape winter52.01
orchard grass14
orchardgrass1
other grains40
pea trapper60.01
peanuts45
peas60
peas, green60
pecan1
per ryegrass56
popcorn10014
potatoes60
potatoes for chips60.01
potatoes for retail60.01
potatoes for starch60.01
rape seed60
rapeseed52.0112.50
rapeseed e ind52.01
rapeseed e oil52.01
raspberry1
red grass fescue14
reed canary grass1
rice4513
rice long45
rice medium45
rutabaga1
rye56
safflower388
sesame46
smooth bromegrass1
soft red spring wheat60.01
soft red winter wheat60.01
soft white spring wheat60.01
soft white winter wheat60.01
sorghum5614
soybeans6013
spring barley48
spring rye56
spring wheat60
sudangrass39.99
sugar beet74.66
sugar cane80.87
sunflower3010
sunflower e ind24.98
sunflower e oil24.98
sunflower oil28.97
sunflower stripe20
sunflowers100
sweet corn70
sweet potatoes50
sweet sorghum100
tall fescue1
timothy grass112
triticale5013
turnips55
upland cotton32
walnut1
watermelon1
wheat6013.50
wheat (hrd rd spr)6013.50
wheat (hrd rd wtr)6013.50
wheat, hard red spring60.0113.50
wheat, hard red winter60.0113.50
wheat, hard white spring60.0113.50
wheat, hard white winter60.0113.50
wheat, soft red spring60.0113.50
wheat, soft red winter60.0113.50
wheat, soft white spring60.0113.50
wheat, soft white winter60.0113.50
white clover60
white popcorn60.01
white wheat60.01
whole crop dry100
whole crop wet100
wild rice45
winter barley48
winter rye56
winter wheat60
wood100
yellow popcorn60.01

If the specific variety of the crop from the file that you +are trying to process is not present in this table, please contact our support team support@withleaf.io

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/machine_file_conversion_endpoints/index.html b/docs/machine_file_conversion_endpoints/index.html new file mode 100644 index 000000000..18d8ea8db --- /dev/null +++ b/docs/machine_file_conversion_endpoints/index.html @@ -0,0 +1,63 @@ + + + + + + + + +Machine File Conversion Endpoints | Leaf + + + + + + + + + + + + + +
+

Machine File Conversion Endpoints

About

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/operations/api

This service has the following endpoints available:

DescriptionEndpoints
Get all filesGET /files
Get a fileGET /files/{id}
Get a file summaryGET /files/{id}/summary
Get a file's imagesGET /files/{id}/images
Get a file's unitsGET /files/{id}/units
Get a file statusGET /files/{id}/status
Get uncovered filesGET /files/uncoveredFiles
Merge filesPOST /files/merge

For easily testing these endpoints, we recommend using our Postman collection.

requires Leaf User with credentials

To have access to operation files, you will need a Leaf User with valid credentials +from the provider you want to access data. If you don't have a Leaf User or you +have not connected it with any provider yet, see how to create a Leaf User +or how to add credentials to a Leaf User for each of the providers.

Get all files

 GET /files

Gets a paged list of files that belong to the current logged in user. It is +possible to filter the results by passing some query parameters. They are listed +below.

Parameter (to filter by)Values
leafUserIduuid of one of your users
providerCNHI, JohnDeere, Trimble, ClimateFieldView, AgLeader or Leaf
statusprocessed, failed or processing
originprovider, automerged, merged or uploaded
organizationIdthe provider organizationId (only available for John Deere)
batchIduuid of the upload response (only available for uploaded files)
createdTimeISO 8601 date. Returns operations from the createdTime onward
startTimeISO 8601 date. Returns operations from the startTime onward
updatedTimeISO 8601 date. Returns operations from the updatedTime onward
endTimeISO 8601 date. Returns operations until the endTime
operationTypeapplied, planted or harvested
minAreaa number (Double) representing the minimum area (square meters) of the operations to be returned

Also, for operationType: harvested we can process the yield properties related to the operation using the +crop density and standard moisture available in this table.

You can also pass some parameters used exclusively for paging through results. +They are:

  • page, an integer specifying the page being fetched (default is 0)
  • size, an integer specifying the size of the page (max is 100)
  • sort, the sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as asc or desc with asc being the default. Example: id, desc
    • Valid values for sorting are: id, fileName, createdTime, updatedTime, origin, leafUserId, sizeInBytes, provider, organizationId, fileFormat.
the default value for page size is 20

If the parameters page and size are not set, the endpoint will return 20 results.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/files'

Response

The response is a JSON with the key "operations" referring to a list of files. +Here's a link with sample responses for "planted", "applied", "harvested" and "tillage" operation files.

Get a file

 GET /files/{id}

Gets a single file by its id.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/files/{id}'

Response

Here's a link with sample responses for "planted", "applied", "harvested" and "tillage" operation files.

Get a file summary

 GET /files/{id}/summary

Gets the summary, if available, for the file id.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/files/{id}/summary'

Response

Here's a link with sample responses for "planted", "applied", "harvested" and "tillage" operation files.

Get a file's images

 GET /files/{id}/images

Gets a list of PNG images generated from the operation's file properties.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/files/{id}/images'

Response

[
{
"property": "elevation",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [ 0, 230, 0],
"75%": [ 0, 190, 0],
"100%": [ 0, 130, 0],
"nv": [ 0, 0, 0, 0]
},
"url": "URL",
"downloadUrl": "URL"
},
....
]

The property refers to the property extracted from files' data to generate the +image. In the example above, the image would represent the elevation.

The ramp is the color ramp used to generate the image. The percentages +correspond to the minimum (0%) and maximum (100%) values in the image. The +listed values correspond to RGB values used. The nv refers to no value. It +is used internally to make the image transparent on places without data. +Currently, this ramp is the same in all images processed.

We also generate an auxiliary xml with geographic information to handle this +image on GIS environments. You just need to append the ".aux.xml" string to the png url.

Get a file's units

 GET /files/{id}/units

Gets the file's properties and their units.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/files/{id}/units'

Response

Here's a link with sample responses for "planted", "applied", "harvested" and "tillage" operation files.

These properties vary depending on the operationType, but you can expect the same, +standardized keys, across different providers.

Units usually don't change for the same Leaf User, since the providers units +configuration is based on their location. But keep in mind that it's best to +always take the units into consideration, just to be sure.

Get a file status

 GET /files/{id}/status

Get status by file processing step by id.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/files/{id}/status'

Response

{
"rawGeojson": {
"status": "processed",
"message": "ok"
},
"normalizedGeojson": {
"status": "processed",
"message": "ok"
},
"standardGeojson": {
"status": "processed",
"message": "ok"
},
"propertiesPNGs": {
"status": "processed",
"message": "ok"
},
"areaAndYield": {
"status": "processed",
"message": "ok"
},
"summary": {
"status": "processed",
"message": "ok"
},
"units": {
"status": "processed",
"message": "ok"
},
"originalFile": {
"status": "processed",
"message": "ok"
},
"cleanupGeojson": {
"status": "processed",
"message": "ok"
}
}

Get uncovered files

 GET /files/uncoveredFiles?leafUserId={leafUserId}

Get a list of files that did not generate Field Operations, as they do not intersect with any field. +The returned IDs can be consulted in the Get a file endpoint.

This endpoint requires the leafUserId filter.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/files/uncoveredFiles?leafUserId={leafUserId}'

Response

{
"files": [
"c3ad6c7b-19b8-4cd7-580a-dfab82043465",
"c3ad6c7b-c472-49e9-aab2-7ad222843465",
"9aa68735-5a04-42ef-0983-dbdd2bcdfa16"
]
}

Merge files

 POST /files/merge

Posts a merge operation to our server.

A merge operation is performed asynchronously. This call will return immediately +with the newly created file entry, but at this point, the file is not already +processed and available. You will need to make a new GET /files request for the +new id and check the status. A status value of processed means the file is +done merging.

A merge process has some validations, the files passed must belong to +the same leafUserId, be of the same operation type and have the status as processed. +If any of those filters fail, the endpoint will result in HTTP 400 error.

It receives a single JSON object with the ids entry.

Request body

{
"ids": [ "id1", "id2", "so on" ]
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "ids": [ "id1", "id2" ] }'
'https://api.withleaf.io/services/operations/api/files/merge'

Response

{
"id": "id",
"status": "SENT_TO_MERGE"
}

After a few minutes, you can consult the result of Leaf processing over this file by +performing GET consults in this.

Alerts

With Alerts you can be notified when something happens or changes instead of needing to repeatedly query for changes. +Leaf Alerts support events that happen within Leaf and events that happen within supported 3rd party software.

List of Operations Events

Leaf Operations Service can Alert you on these events: list of Operations Events

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/machine_file_conversion_overview/index.html b/docs/machine_file_conversion_overview/index.html new file mode 100644 index 000000000..7344187c5 --- /dev/null +++ b/docs/machine_file_conversion_overview/index.html @@ -0,0 +1,40 @@ + + + + + + + + +Machine File Conversion Overview | Leaf + + + + + + + + + + + + + +
+

Machine File Conversion Overview

requires Leaf User

Before you begin importing data, you will need a Leaf User. You’ll be able to attach provider credentials and manually upload data to the Leaf User. If you don't have a Leaf User or you have not connected it with any provider yet, see the Leaf user overview

operations require boundaries

You first need boundaries in order for operations to be created. Please refer to field boundary management for more information on creating boundaries. If you do not have boundaries in your account, Leaf will still translate these machine files into summary data, but it will not create operations.

Ways to import machine data into Leaf

Machine files can be imported via Leaf two ways:

  1. Uploading the files manually to Leaf: Manual file upload functionality can be useful for your customers if they’re not yet connected to a cloud account through their machinery provider. We provide a manual process or a pre-built file upload widget through Leaf Link to allow your end users to upload various machine file formats via Leaf, which we then process for you into a consistent file format. See previous section for getting started with manual file upload
  2. Connecting to a provider: Leaf will immediately start to pool machine data from the authorized account and monitor new files to keep them updated. See previous section for getting started with provider authentication.

How does Leaf process machine files?

All files move through the following process:

  • Raw proprietary format machine files are converted to a rawGeojson.
  • The rawGeojson gets standardized to become a standardGeojson(Leaf’s proprietary format). The standardGeojson is also cleaned by default.
  • Operations and operation summaries are created by merging machine files based on field boundaries and configuration settings (see operations for more information).

File processing time will vary depending on the amount of data being processed on initial upload or sync. You should start to see data processing within a few minutes. After that, processing will happen continuously in the background every 24 hours.

Once Leaf has processed files into a file summary, you will receive summarized information, such as averages, standard deviations, maximum and minimum values ​​for important properties, and more. This summary is usually used to get general information about the operation without the need to download and open the standardGeojson file. For example, you can display the area of the operation, how much was harvested and the date it happened, all without opening large files.

Machine file summary vs operation summary

Machine file summary: Basic information of files derived from the point data, processed and cleaned by Leaf. Data outputs will vary by task (planted, applied, harvested, tillage). You’ll find some sample responses here.

Operation summary: The output of files merged to a field boundary that are processed and cleaned by Leaf. You’ll find some sample responses here.

Why does Leaf merge files?

Since one single operation can be represented in several (sometimes hundreds of) files by the provider, +Leaf provides an auto-merge feature, which will identify files that +belong to the same operation (planting, for example) and same field boundary and +automatically merge them into a single operation. This works for both integrations and manual file uploads. Please keep in mind that merging files is processing-heavy and can take some time to finish. This process runs every 4 hours.

Field example
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/machine_file_conversion_sample_output/index.html b/docs/machine_file_conversion_sample_output/index.html new file mode 100644 index 000000000..4fa591316 --- /dev/null +++ b/docs/machine_file_conversion_sample_output/index.html @@ -0,0 +1,55 @@ + + + + + + + + +Machine File Conversion Sample Responses | Leaf + + + + + + + + + + + + + +
+

Machine File Conversion Sample Responses

Overview

This page shows and describes sample responses from Leaf's API, along with a list +of what properties you can expect for each type of data.

Machine Files

Leaf returns operation file in a standardized format. Summaries use +the point data to derive basic information about the operation and include links +to the original files and images of an operation. Naturally, different +types of operations contain different properties. For instance, an applied +operation will contain appliedRate, whereas a harvested operation will +contain wetMass and other Yield properties. The resource below shows a typical return. A list of +all properties is available here.

A list of the properties as well as a sample summary response for an operation +file is included below.

An operation returned by Leaf can be an individual file or contain multiple +individual files (uploaded, merged or uploaded). +If the operation contains more than one individual file, another key is added to +the resource, the "sources" key, that is a list of individual file ids. +If the operation was created by an upload on the /batch endpoint, the "batchId" +key will be added to the resource with the corresponding uuid.

Machine File Sample

You can move through the four tabs below to see a sample of how Leaf returns +each of the operation types.

This is an example of a summary for a "harvested" operation

{
"id": "7b525b72-a8e7-4d34-80bb-9ea2dde87a09",
"provider": "providerName",
"fields": [
"696b5df6-e401-4d13-bafe-3d2689723254"
],
"fileType": "HARVESTED",
"fileName": "testFile.zip",
"sizeInBytes": 1244007,
"originalFile": "url",
"downloadOriginalFile": "url",
"rawGeojson": "url",
"downloadRawGeojson": "url",
"standardGeojson": "url",
"downloadStandardGeojson": "url",
"leafUserId": "286eeb50-8e85-4e33-9f2d-1b9dcf0e56d7",
"apiOwnerUsername": "test",
"summary": {
"type": "Feature",
"properties": {
"totalDryMass": {
"value": 69707.74072725822,
"unit": "lb"
},
"dryVolume": {
"avg": 0.10060462979191162,
"min": 0.0006342037622996388,
"max": 0.19444628348991,
"unit": "bu"
},
"totalDryVolume": {
"value": 1244.7810844153173,
"unit": "bu"
},
"wetMassPerArea": {
"avg": 11752.315810068158,
"min": 87.79542055062868,
"max": 40340.87999553387,
"unit": "lb/ac"
},
"speed": {
"avg": 4.926574796479164,
"min": 2.430000066757202,
"max": 6.389999866485596,
"unit": "mi/hr"
},
"totalWetVolume": {
"value": 1294.538978069886,
"unit": "bu"
},
"originalOperationType": "Harvesting",
"startTime": "2015-09-23T00:00:00Z",
"totalDistance": {
"value": 17978.417202127104,
"unit": "ft"
},
"wetMass": {
"avg": 5.859062698772619,
"min": 0.03795335565182652,
"max": 11.06340317250743,
"unit": "lb"
},
"elevation": {
"avg": 155.78382768932352,
"min": 147.6,
"max": 162.4,
"unit": "ft"
},
"harvestMoisture": {
"avg": 18.224961609957166,
"min": 12.75,
"max": 21.18,
"unit": "percentage"
},
"dryVolumePerArea": {
"avg": 201.7963353621763,
"min": 1.467068855167438,
"max": 687.8289538734305,
"unit": "bu/ac"
},
"wetVolume": {
"avg": 0.10462611962093962,
"min": 0.0006777384937826164,
"max": 0.19756077093763266,
"unit": "bu"
},
"wetVolumePerArea": {
"avg": 209.86278232264567,
"min": 1.5677753669755121,
"max": 720.3728570631048,
"unit": "bu/ac"
},
"dryMassPerArea": {
"avg": 11300.594780281874,
"min": 82.15585588937653,
"max": 38518.421416912104,
"unit": "lb/ac"
},
"totalWetMass": {
"value": 72494.18277191388,
"unit": "lb"
},
"varieties": [
{
"harvestMoisture": {
"avg": 18.224961609957166,
"min": 12.75,
"max": 21.18,
"unit": "percentage"
},
"wetMass": {
"value": 72494.18277191388,
"unit": "lb"
},
"wetMassPerArea": {
"value": 2.904060481369501,
"unit": "lb/ac"
},
"wetVolume": {
"value": 1294.538978069886,
"unit": "bu"
},
"area": {
"value": 24963.041657357968,
"unit": "m2"
},
"dryVolume": {
"value": 1244.7810844153173,
"unit": "bu"
},
"dryMassPerArea": {
"value": 2.7924377839874155,
"unit": "lb/ac"
},
"dryMass": {
"value": 69707.74072725822,
"unit": "lb"
},
"name": "Corn"
}
],
"originalOperationData": {
"originalOperationType": "Harvesting"
},
"operationType": "harvested",
"dryMass": {
"avg": 5.6338592683470505,
"min": 0.035515410688779774,
"max": 10.88899187543496,
"unit": "lb"
},
"endTime": "2015-09-24T00:36:55.8Z",
"crop": [
"corn"
],
"totalArea": {
"value": 24963.041657357968,
"unit": "m2"
},
"machinery": [
{
"name": "Case IH X010 Series 7010",
"type": "machine",
"serialNumber": "8227260",
"brand": "Case IH"
},
{
"name": "Case IH Corn Head 15ft 6row",
"type": "implement",
"brand": "Case IH"
}
]
},
"geometry": {
"type": "MultiPolygon",
"coordinates": [[[
[-89.80434894561768,40.47791686563837],
[-89.80756759643555,40.4757623387113],
[-89.80746030807495,40.47302011353734],
[-89.80475664138794,40.47070219301965],
[-89.80080842971802,40.47068586935202],
[-89.79797601699828,40.472709973879255],
[-89.7978687286377,40.47569704893722],
[-89.80117321014404,40.47808008455794],
[-89.80434894561768,40.47791686563837]
]]]
}
}
}

Properties by Operation Type

Select the tab you want to see: "planted", "applied", "harvested", or "tillage".

keypresencetype
crop*string
seedRate*dict
operationType*string "planted"
originalOperationType**string
totalArea*float
elevation*dict
varieties**dict
seedRateTarget**dict
seedDepth**dict
machinery**list of machineInfo objects
speed**dict
totalPlanted**int (number of seeds)
operationDescription**string
downForce**dict
singulation**dict

* = Always in response
+** = Usually in response but not required to pass tests

Standard Geojson

When the data is present in the original file, Leaf standardizes names and units +to create the standardGeojson.

Below we list all the properties in the standardGeojson.

Summary Response Sample

Each operation file returns with a "standardgeojson" URL that allows you to download a full point dataset from the operation in a standardized geojson format. Below is an example of the format of each point in these files.

{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-74.83762110788625, 28.686604864693564]
},
"properties": {
"distance": "float",
"heading": "float",
"speed": "float",
"elevation": "float",
"equipmentWidth": "float",
"recordingStatus": "string",
"machinery": ["string"],
"sectionId" : "int",
"timestamp": "string",
"operationType": "planted",
"originalOperationType": "name of the operation as returned by the provider",
"crop": "string",
"variety": "string",
"area": "float",
"seedRate": "int",
"seedRateTarget": "int",
"seedDepth": "float",
"downForce": "float",
"singulation": "float",
"skips": "float",
"doubles": "float"
}
}

Properties

keypresencetypeexample unitsdescription
coords*Point (x,y)-Point (x,y)
timestamp*string-ISO 8601 date, complete and with Z. example: 2011-10-05T14:48:00.000Z
crop*string-Crop type (normalized)
area*floatft² or m²Area represented by point
heading*floatdegreesHeading of machine at point
distance*floatft or mDistance traveled since previous point
elevation*floatft or mDistance to sea level
operationType*string-string "planted"
originalOperationType**string-string
equipmentWidth*floatft or mWidth of implement
recordingStatus*Boolean-Recording status of machine at point
seedRate*intseeds/m² or seeds/acThe rate of seeds planted at point
variety**string-The variety of seed being planted
speed**floatft/s or m/sSpeed of machine at point
sectionId**int-ID of implement sensor section
machinery**list of machineInfo objects-name of machine & implement
seedRateTarget**intseeds/m² or seeds/acThe target rate of seeds to be planted at the point
seedDepth**floatcmThe depth at which seeds were planted at point
productIndex**int-Index of the applied product
downForce**floatlbfThe weight detected by the down force sensor on each row that has one
singulation**float%The performance of each meter on the planter
xOffset**floatmVertical offset from the instrumentation sensor and the monitor GPS system
yOffset**floatmHorizontal offset from the instrumentation sensor and the monitor GPS system

* = Always in response
+** = Usually in response but not required to pass tests
+$ = Not available when the crop is sugarcane

Despite the example units, Leaf's API will push through every unit, if the processed file contains the required (marked with *) properties.

Valid points

The points in the standardGeoJSON are considered valid if all the following rules are true:

propertyrule
wetMass> 0.0
wetMassPerArea> 0.0
wetVolume> 0.0
wetVolumePerArea> 0.0
harvestMoisture> 0.0 and <100.0
appliedRate> 0.0
seedRate> 0.0
tillageDepthActual> 0.0
recordingStatus= "On"

The API will automatically clean the invalid points when the cleanupStandardGeojson configuration is enabled.

Images

Also, Leaf displays all the numerical properties across all operation types via a png file. Here's a sample response from a Leaf harvested file.

[
{
"property": "area",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0 ]
},
"url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"
},
{
"property": "wetMass",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0 ]
},
"url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"
},
{
"property": "wetVolume",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0 ]
},
"url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"
},
{
"property": "distance",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0 ]
},
"url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"
},
{
"property": "wetVolumePerArea",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0 ]
},
"url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"
},
{
"property": "equipmentWidth",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0 ]
},
"url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"
},
{
"property": "wetMassPerArea",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0 ]
},
"url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"
},
{
"property": "sectionId",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0 ]
},
"url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"
},
{
"property": "elevation",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0 ]
},
"url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"
},
{
"property": "harvestMoisture",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0 ]
},
"url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"
},
{
"property": "heading",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0 ]
},
"url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"
},
{
"property": "dryMass",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0 ]
},
"url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"
},
{
"property": "dryMassPerArea",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0 ]
},
"url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"
},
{
"property": "dryVolume",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0 ]
},
"url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"
},
{
"property": "dryVolumePerArea",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [0, 230, 0],
"75%": [0, 190, 0],
"100%": [0, 130, 0],
"nv": [0, 0, 0, 0 ]
},
"url": "https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png"
}
]

Machine Files Units

Here is an example of Units from the numerical properties of the Machine Files.

{
"elevation": "ft",
"area": "m2",
"harvestMoisture": "percentage",
"dryVolumePerArea": "bu/ac",
"distance": "ft",
"heading": "arcdeg",
"dryVolume": "bu",
"wetVolume": "bu",
"wetVolumePerArea": "bu/ac",
"dryMassPerArea": "lb/ac",
"wetMassPerArea": "lb/ac",
"speed": "mi/hr",
"equipmentWidth": "ft",
"dryMass": "lb",
"wetMass": "lb"
}
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/machine_file_conversion_units/index.html b/docs/machine_file_conversion_units/index.html new file mode 100644 index 000000000..7b18dce07 --- /dev/null +++ b/docs/machine_file_conversion_units/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Units of Measurement and Properties | Leaf + + + + + + + + + + + + + +
+

Units of Measurement and Properties

About

This page lists the units of measurements and properties across all machine file/operation types (tillage, planting, applied, harvest). If you have any questions or feedback, reach out to our team at help@withleaf.io.

Units are determined by the unitMeasurement configuration where you can select IMPERIAL or METRIC. The default is DEFAULT.

These are the units of measurement for the DEFAULT configuration.

PropertyUnit of measurementDescription
startTime-All dates follow ISO 8601 format. Specifically, all dates should be in the format "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'".
finishTime-All dates follow ISO 8601 format. Specifically, all dates should be in the format "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'".
operationType-This field will tell you what type of operation it is e.g. "planted", "harvested", "applied" or "tillage".
crop-Indicates the type of crop being grown where the operation is happening e.g. corn.
varieties-Indicates the type of variety being grown where the operation is happening e.g. P1309WAM is a variety of corn. This property also comes with seed rate, count and area information.
machinery-Shows the type of machinery used including the name, type, brand and serial number.
geometry-Shows where the operation happened and the shape of the area covered, includes geometry type and coordinates.
speedImperial: ft/s or m/sFeet or meters per second. How fast did the tractor travel?
totalDistanceImperial: ft, Metric: mFeet or meters. How far did the tractor travel?
elevationImperial: ft, Metric: mFeet or meters. What was the elevation of the landscape?
equipmentWidthImperial: ft, Metric: mFeet or meters. How wide is the equipment?
totalAreaTotal area covered in square meters. The m² is a common area measurement that's then calculated into another number such as acres (ac) or hectares (ha).
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/operations_endpoints/index.html b/docs/operations_endpoints/index.html new file mode 100644 index 000000000..5251f1fbe --- /dev/null +++ b/docs/operations_endpoints/index.html @@ -0,0 +1,51 @@ + + + + + + + + +Field Operations Endpoints | Leaf + + + + + + + + + + + + + +
+

Field Operations Endpoints

About

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/operations/api

This service has the following endpoints available:

DescriptionEndpoints
Get all operationsGET /operations
Get an operationGET /operations/{id}
Get the operation's summaryGET /operations/{id}/summary
Get the operation's standardGeojsonGET /operations/{id}/standardGeojson
Get the operation's filteredGeojsonGET /operations/{id}/filteredGeojson
Get operation's imagesGET /operations/{id}/images
Get operation's images V2GET /operations/{id}/imagesV2
Get operation's geotiff imagesGET /operations/{id}/geotiffImages
Get the operation's unitsGET /operations/{id}/units
Crop operation by fieldPOST /operations/cropOperationByField
Reprocess an operationPOST /operations/{id}/reprocess
Get files from an operationPOST /operations/{id}/files

For easily testing these endpoints, we recommend using our Postman collection.

Get all operations

 GET /operations

Gets a paged list of operations that belong to the current logged in user. It is +possible to filter the results by passing some query parameters. They are listed +below.

Parameter (to filter by)Values
leafUserIduuid of one of your users
providerCNHI, JohnDeere, Trimble, ClimateFieldView, AgLeader, Stara or Leaf
startTimeISO 8601 date. Returns operations from the startTime onward
updatedTimeISO 8601 date. Returns operations from the updatedTime onward
endTimeISO 8601 date. Returns operations until the endTime
operationTypeapplied, planted, harvested or tillage
fieldIdthe field where the operation happened

You can also pass some parameters used exclusively for paging through results. +They are:

  • page, an integer specifying the page being fetched (default is 0)
  • size, an integer specifying the size of the page (max is 100)
  • sort, the sorting order of the results; can be multi-value, where the first value to be passed will have preference in ordering over the next ones; you can also specify the order as asc or desc with asc being the default. Example: id, desc
    • Valid values for sorting are: id, leafUserId, startTime, endTime, type and updatedTime.
the default value for page size is 20

If the parameters page and size are not set, the endpoint will return 20 results.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/operations'

Response

[
{
"id": "5c8fdb34-4dc4-4b96-bfd5-53e6206ce971",
"apiOwnerUsername": "test",
"leafUserId": "7494c90e-28b8-4bb2-9ede-95c1cc894349",
"startTime": "2015-04-18T19:31:27Z",
"endTime": "2015-04-18T19:58:50Z",
"updatedTime": "2021-08-24T16:00:15.062Z",
"type": "planted",
"files": [
"a10b85c2-ac2e-4b0f-8e65-74edbd2ca53e",
"759e1b62-dc69-4332-b618-6449a37470fa"
],
"fields": [
{
"id": "0071484f-4a75-4190-9fd0-f5995d241c2c"
}
],
"providers": [
"providerName"
]
},
....
]

Get an operation

 GET /operations/{id}

Gets a single operation by its id.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/operations/{id}'

Response

{
"id": "5c8fdb34-4dc4-4b96-bfd5-53e6206ce971",
"apiOwnerUsername": "test",
"leafUserId": "7494c90e-28b8-4bb2-9ede-95c1cc894349",
"startTime": "2015-04-18T19:31:27Z",
"endTime": "2015-04-18T19:58:50Z",
"updatedTime": "2021-08-24T16:00:15.062Z",
"type": "planted",
"files": [
"a10b85c2-ac2e-4b0f-8e65-74edbd2ca53e",
"759e1b62-dc69-4332-b618-6449a37470fa"
],
"fields": [
{
"id": "0071484f-4a75-4190-9fd0-f5995d241c2c"
}
],
"providers": [
"providerName"
]
}

Get the operation's summary

 GET /operations/{id}/summary

Gets the summary, if available, for the operation id.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/operations/{id}/summary'

Response

Here's a link with sample responses for "planted", "applied", "harvested" and "tillage" operations.

Get the operation's standardGeojson

 GET /operations/{id}/standardGeojson

Get the standardGeojson file URL relative to the operation.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/operations/{id}/standardGeojson'

Response

{
"standardGeojson": "URL",
"downloadStandardGeojson": "URL"
}

Get the operation's filteredGeojson

 GET /operations/{id}/filteredGeojson

Get the filteredGeojson file URL relative to the operation.

tip

To use this option, the operationsFilteredGeojson configuration must be enabled.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/operations/{id}/filteredGeojson'

Response

{
"filteredGeojson": "URL",
"downloadFilteredGeojson": "URL"
}

Get operation's images

 GET /operations/{id}/images

Gets a list of PNG images generated from the operation's properties.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/operations/{id}/images'

Response

[
{
"property": "elevation",
"ramp": {
"0%": [200, 0, 0],
"35%": [255, 40, 0],
"45%": [255, 150, 0],
"55%": [255, 240, 0],
"65%": [ 0, 230, 0],
"75%": [ 0, 190, 0],
"100%": [ 0, 130, 0],
"nv": [ 0, 0, 0, 0]
},
"url": "URL",
"downloadUrl": "URL"
},
....
]

The property refers to the property extracted from operations' data to generate the +image. In the example above, the image would represent the elevation.

The ramp is the color ramp used to generate the image. The percentages +correspond to the minimum (0%) and maximum (100%) values in the image. The +listed values correspond to RGB values used. The nv refers to no value. It +is used internally to make the image transparent on places without data. +Currently, this ramp is the same in all images processed.

We also generate an auxiliary xml with geographic information to handle this +image on GIS environments. You just need to append the ".aux.xml" string to the png url.

Get operation's images V2

 GET /operations/{id}/imagesV2

Gets a list of PNG images generated from the operation's properties with improvements in the generation process. These images are based on the filteredGeojson.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/operations/{id}/imagesV2'

Response

[
{
"property": "string",
"legend": {
"ranges": [
{
"colorCode": "#C80000",
"max": 20,
"min": 0
},
{
"colorCode": "#FF2800",
"max": 50,
"min": 20
},
{
"colorCode": "#FF9600",
"max": 100,
"min": 50
},
{
"colorCode": "#FFF000",
"max": 250,
"min": 100
},
{
"colorCode": "#00E600",
"max": 340,
"min": 250
},
{
"colorCode": "#00BE00",
"max": 480,
"min": 340
},
{
"colorCode": "#008200",
"max": 570,
"min": 480
}
]
},
"extent": {
"xmin": 0,
"xmax": 0,
"ymin": 0,
"ymax": 0
},
"url": "URL",
"downloadUrl": "URL"
}
]

The property refers to the property extracted from operations' data to generate the +image.

The legend represents the values distributed in 7 classes, classified by the quantile and symbolized by the standard color ramp.

The extent is the coordinates of the image, mainly used for plotting images in map applications.

More information here.

Get operation's geotiff images

 GET /operations/{id}/geotiffImages

Gets a list of TIFF images generated from the operation's properties with improvements in the generation process. These images are based on the filteredGeojson.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/operations/{id}/geotiffImages'

Response

[
{
"property": "distance",
"url": "URL",
"downloadUrl": "URL"
},
{
"property": "wetVolumePerArea",
"url": "URL",
"downloadUrl": "URL"
},
{
"property": "dryMassPerArea",
"url": "URL",
"downloadUrl": "URL"
},
{
"property": "dryVolumePerArea",
"url": "URL",
"downloadUrl": "URL"
}
]

Get the operation's units

 GET /operations/{id}/units

Gets the operations's properties and their units.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/operations/{id}/units'

Response

Here's a link with sample responses for "planted", "applied", "harvested" and "tillage" operations.

These properties vary depending on the operationType, but you can expect the same, +standardized keys, across different providers.

Units usually don't change for the same Leaf User, since the providers units +configuration is based on their location. But keep in mind that it's best to +always take the units into consideration, just to be sure.

Crop operation by field

 POST /operations/cropOperationByField

This endpoint can be used to remove points from the operation standardGeojson that are outside of the field geometry.

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "id": "operationId"}' \
'https://api.withleaf.io/services/operations/api/operations/cropOperationByField'

Response

{
"id": "1162a1c6-9872-4d7f-9833-5d48add8eed4",
"message": "Sent operation to be processed.",
"leafFileId": "33020f03-5889-4c0f-b465-7a7e2c03a91d"
}

You could monitor the processing status using the leafFileId by our Alerts Service.

Get files from an operation

 POST /operations/{id}/files

Allow the user to fetch all files resources that were aggregated to generate an Field Operation.

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/operations/{id}/files'

Response

Check our sample response to have complete represention on the expected output.

Reprocess an operation

 POST /operations/{id}/reprocess

Allows reprocessing an operation already created, starting from the merge step. The standardGeoJSON, filteredGeoJSON, summary and images will be updated.

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/operations/api/operations/{id}/reprocess'

You could monitor the processing status by our Alerts Service.

Alerts

With Alerts you can be notified when something happens or changes instead of needing to repeatedly query for changes. +Leaf Alerts support events that happen within Leaf and events that happen within supported 3rd party software.

List of Operations Events

Leaf Operations Service can Alert you on these events: list of Operations Events

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/operations_overview/index.html b/docs/operations_overview/index.html new file mode 100644 index 000000000..168a0db29 --- /dev/null +++ b/docs/operations_overview/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Field Operations Overview | Leaf + + + + + + + + + + + + + +
+

Field Operations Overview

Start with machine file conversion

Before continuing with operations, make sure to go through Machine File Conversion first

Operations

Leaf operations provide a way to get unified, consistent and standardized data from tasks (planting, tillage, application and harvest) performed in a given field, across all the provider(s) you integrate. For all operations processed through Leaf, you will receive:

  • A standardGeoJson
  • Filtered GeoJson (if enabled)
  • Relevant images of the operation (if enabled)
  • File summary

Leaf automatically processes operation files and merges them into field operations. You can find more information on how to extract operations data through the Operations endpoint page.

IMPORTANT NOTE:

  • The process of creating operations starts at Machine File Conversion so please make sure you read and understand the conversion process before continuing.
  • You MUST have field boundaries in order to create operations.
  • It is important to set up configurations to ensure you customize your setup to your needs.
  • Also, alerts should be set up (webhooks) to ensure that you are notified when there are updates to your data and that data processing is finished.
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/operations_sample_output/index.html b/docs/operations_sample_output/index.html new file mode 100644 index 000000000..b3fc4e870 --- /dev/null +++ b/docs/operations_sample_output/index.html @@ -0,0 +1,45 @@ + + + + + + + + +Field Operations sample responses | Leaf + + + + + + + + + + + + + +
+

Field Operations sample responses

Overview

This page shows and describes sample responses from Leaf API, along with a list of what properties you can expect for +each type of data.

Field Operations

A Field Operation processed by Leaf's API returns a list of content that contains most of the basic info related to the +authenticated user, and also the Field Boundaries and File Operations attached to each other by the background +processing.

Here's an example of a Field Operation

{
"id": "uuid",
"apiOwnerUsername": "leaf@withleaf.io",
"leafUserId": "uuid",
"startTime": "yyyy-MM-ddTHH:mm:ss.SZ",
"endTime": "yyyy-MM-ddTHH:mm:ss.SZ",
"updatedTime": "yyyy-MM-ddTHH:mm:ss.SZ",
"type": "string",
"files": [
"uuid"
],
"fields": [
{
"id": "uuid",
"coverage": "float"
}
],
"providers": [
"string"
]
}

Field operations have many features that can be accessed via /featureName added to the base url, ranging from the +standardized data to the operation units. Here's a sample response of each of these features.

Field Operations Standard GeoJSON

Here's an example of a standard geojson from a Field Operation

{
"standardGeojson": "URL"
}

Field Operations Filtered GeoJSON

tip

To use this option, the operationsFilteredGeojson configuration must be enabled.

Here's an example of a filtered geojson from a Field Operation that can be access from the /operations/{id}/filteredGeojsonendpoint.

{
"filteredGeojson": "URL"
}

The filtered GeoJSON is the file that went through the data cleaning process, removing the points with the following criteria:

  • speed less than 0.5 m/s (for all operation types)

The generated files will be used as a basis for generating new operations images.

Outliers

To remove outliers in harvest data, you can use configurations to clean the filteredGeoJSON based on standard deviation.

Outliers

All points with the harvested volume value far 3 standard deviation from the mean will be excluded. This is the default value and can be changed in the operationsOutliersLimit configuration.

To disable the removal of outliers just use the operationsRemoveOutliers configuration.

Field Operations Summary

Here's an example of a summary from a Field Operation. It's important to mention that the output displayed in the Field +Operation Summary is heavily impacted by the operationType property.

You can move through the four tabs below to see a sample of how Leaf returns +each of the operation types.

{
"type": "Feature",
"properties": {
"totalDistance": {
"value": 21062.354662275786,
"unit": "ft"
},
"speed": {
"avg": 3.441336296949484,
"min": 0.006131406407803297,
"max": 6.3555588722229,
"unit": "mi/hr"
},
"startTime": "2016-09-19T18:30:51.640+00:00",
"endTime": "2016-09-21T21:48:25.000+00:00",
"totalArea": {
"value": 61820.13638528271,
"unit": "m2"
},
"elevation": {
"avg": 59.13738317757009,
"min": 58.9,
"max": 59.6,
"unit": "ft"
},
"crop": [
"soybeans"
],
"operationType": "harvested",
"wetMass": {
"avg": 17.492758207524563,
"min": 0.01,
"max": 29.59,
"unit": "lb"
},
"totalWetMass": {
"value": 72997.28000000014,
"unit": "lb"
},
"dryMass": {
"avg": 17.112920091943007,
"min": 0.01,
"max": 29.59,
"unit": "lb"
},
"totalDryMass": {
"value": 71412.21554367829,
"unit": "lb"
},
"wetMassPerArea": {
"avg": 4778.532184798924,
"min": 3.2892456102410352,
"max": 235466.19310582182,
"unit": "lb/ac"
},
"dryMassPerArea": {
"avg": 4674.771037540907,
"min": 3.2892456102410352,
"max": 232434.9041830802,
"unit": "lb/ac"
},
"wetVolume": {
"avg": 0.2915459701254094,
"min": 0.00016666666666666666,
"max": 0.49316666666666664,
"unit": "bu"
},
"totalWetVolume": {
"value": 1216.6213333333362,
"unit": "bu"
},
"dryVolume": {
"avg": 0.28521533486571676,
"min": 0.00016666666666666666,
"max": 0.49316666666666664,
"unit": "bu"
},
"totalDryVolume": {
"value": 1190.2035923946364,
"unit": "bu"
},
"wetVolumePerArea": {
"avg": 79.64220307998207,
"min": 0.05482076017068392,
"max": 3924.4365517636966,
"unit": "bu/ac"
},
"dryVolumePerArea": {
"avg": 77.91285062568178,
"min": 0.05482076017068392,
"max": 3873.915069718003,
"unit": "bu/ac"
},
"harvestMoisture": {
"avg": 14.221756530074288,
"min": 1.36,
"max": 21.05,
"unit": "percentage"
},
"varieties": [
{
"harvestMoisture": {
"avg": 14.221756530074288,
"min": 1.36,
"max": 21.05,
"unit": "percentage"
},
"wetMass": {
"value": 72997.28000000014,
"unit": "lb"
},
"wetMassPerArea": {
"value": 1.1808010183778619,
"unit": "lb/ac"
},
"wetVolume": {
"value": 1216.6213333333362,
"unit": "bu"
},
"area": {
"value": 61820.13638528271,
"unit": "m2"
},
"dryVolume": {
"value": 1190.2035923946364,
"unit": "bu"
},
"dryMassPerArea": {
"value": 1.1551610805031989,
"unit": "lb/ac"
},
"dryMass": {
"value": 71412.21554367829,
"unit": "lb"
},
"name": "Soybeans"
}
],
"originalOperationType": "Harvesting",
"machinery": [
{
"name": "Case IH Soybeans Head 35.000018900000015ft 8row",
"type": "implement",
"brand": "Case IH"
},
{
"name": "Case IH 8120",
"type": "machine",
"serialNumber": "8000001",
"brand": "Case IH"
}
],
"originalOperationData": {
"originalOperationFarm": "Farm Green",
"originalOperationField": "Field A",
"originalOperationGrower": "Grower",
"originalOperationType": "CropOriginal"
}
},
"geometry": {
"type": "MultiPolygon",
"coordinates": [[[
[-89.80434894561768,40.47791686563837],
[-89.80756759643555,40.4757623387113],
[-89.80746030807495,40.47302011353734],
[-89.80475664138794,40.47070219301965],
[-89.80080842971802,40.47068586935202],
[-89.79797601699828,40.472709973879255],
[-89.7978687286377,40.47569704893722],
[-89.80117321014404,40.47808008455794],
[-89.80434894561768,40.47791686563837]
]]]
}
}

Field Operations Images

Here is an example of Images from Field Operations.

[
{
"property": "string",
"ramp" : {
"0%" : [ 200, 0, 0 ],
"35%" : [ 255, 40, 0 ],
"45%" : [ 255, 150, 0 ],
"55%" : [ 255, 240, 0 ],
"65%" : [ 0, 230, 0 ],
"75%" : [ 0, 190, 0 ],
"100%" : [ 0, 130, 0 ],
"nv" : [ 0, 0, 0, 0 ]
},
"url": "URL"
}
]

Field Operations Images V2

This endpoint version produces images based on the filteredGeoJSON, therefore it will be active whenever the data filter option is active.

The new images have considerable improvements over the previous one. They are generated with a standard fixed color ramp and the data is automatically distributed into 7 classes using quantile classification.

Note that the return is different from the previous version, with extent and legend attributes now available.

+
[
{
"property": "string",
"legend": {
"ranges": [
{
"colorCode": "#C80000",
"max": 20,
"min": 0
},
{
"colorCode": "#FF2800",
"max": 50,
"min": 20
},
{
"colorCode": "#FF9600",
"max": 100,
"min": 50
},
{
"colorCode": "#FFF000",
"max": 250,
"min": 100
},
{
"colorCode": "#00E600",
"max": 340,
"min": 250
},
{
"colorCode": "#00BE00",
"max": 480,
"min": 340
},
{
"colorCode": "#008200",
"max": 570,
"min": 480
}
]
},
"extent": {
"xmin": 0.0,
"xmax": 0.0,
"ymin": 0.0,
"ymax": 0.0
},
"url": "URL"
}
]

If the filteredGeoJSON fails to process, images will continue to be generated from the standardGeoJSON.

tip

Important: once active, the images will be available for access only via the /imagesV2 endpoint.

Field Operations GeoTIFF Images

This endpoint produces images based on the filteredGeoJSON. To access the images, besides having the data filter option active, it is required the operationsImageAsGeoTiff configuration enabled as well.

In the result we displayed a list of the GeoTIFF images for each property available.

+
[
{
"property": "distance",
"url": "https://s3-url-to-geotiff/geotiff-cca01ca7-75eb-4028-83ad-3a9af8a08667.tif"
},
{
"property": "dryMass",
"url": "https://s3-url-to-geotiff/geotiff-f1604ea5-ee0a-44a1-ac11-03a0c275cecb.tif"
},
{
"property": "elevation",
"url": "https://s3-url-to-geotiff/geotiff-45efa9d2-9f60-4704-ae91-d7edd72388bd.tif"
},
{
"property": "heading",
"url": "https://s3-url-to-geotiff/geotiff-08f2f811-55a6-4028-8197-3ca535f93b46.tif"
},
{
"property": "speed",
"url": "https://s3-url-to-geotiff/geotiff-e52c9f2f-399b-4e03-9d81-0abbacdc51f7.tif"
},
{
"property": "wetMassPerArea",
"url": "https://s3-url-to-geotiff/geotiff-184b7394-6f86-41c2-8742-fd27bfc82ffc.tif"
},
{
"property": "dryVolume",
"url": "https://s3-url-to-geotiff/geotiff-8248c5e2-5853-4f64-8b7a-3c7f3a16cfe0.tif"
},
{
"property": "wetVolumePerArea",
"url": "https://s3-url-to-geotiff/geotiff-27f721e8-7ba6-41ba-8acb-6d038c87d87d.tif"
},
{
"property": "harvestMoisture",
"url": "https://s3-url-to-geotiff/geotiff-b00a39b1-4ac6-4ba6-a5bf-e5798d9f8393.tif"
},
{
"property": "dryMassPerArea",
"url": "https://s3-url-to-geotiff/geotiff-5d027967-6488-4339-a4b6-1e2f8b25e05f.tif"
},
{
"property": "fuelRate",
"url": "https://s3-url-to-geotiff/geotiff-18f8f9e9-3e43-4074-a3d4-70098db365c9.tif"
},
{
"property": "equipmentWidth",
"url": "https://s3-url-to-geotiff/geotiff-d49900a3-ceaf-4c6f-8348-7f9977f2751d.tif"
},
{
"property": "area",
"url": "https://s3-url-to-geotiff/geotiff-1f81a342-eb2b-4623-b580-53d5296888aa.tif"
},
{
"property": "wetMass",
"url": "https://s3-url-to-geotiff/geotiff-3332529c-01d3-4c13-ac12-10341bcc3ade.tif"
},
{
"property": "dryVolumePerArea",
"url": "https://s3-url-to-geotiff/geotiff-aaf2f4ab-a0e0-4280-96a3-7df443779af8.tif"
},
{
"property": "wetVolume",
"url": "https://s3-url-to-geotiff/geotiff-69570599-76f1-49ab-b3cc-9926705da2c9.tif"
}
]

Field Operations Units

Here is an example of Units from the numerical properties of the Field Operations.

{
"elevation": "ft",
"area": "m2",
"harvestMoisture": "percentage",
"dryVolumePerArea": "bu/ac",
"distance": "ft",
"heading": "arcdeg",
"dryVolume": "bu",
"wetVolume": "bu",
"wetVolumePerArea": "bu/ac",
"dryMassPerArea": "lb/ac",
"wetMassPerArea": "lb/ac",
"speed": "mi/hr",
"equipmentWidth": "ft",
"dryMass": "lb",
"wetMass": "lb"
}
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/planet_overview/index.html b/docs/planet_overview/index.html new file mode 100644 index 000000000..199d193cf --- /dev/null +++ b/docs/planet_overview/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Planet Overview | Leaf + + + + + + + + + + + + + +
+

Planet Overview

Documentation update!

We are updating our documentation and this page was moved to here.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/provider-authentication-overview/index.html b/docs/provider-authentication-overview/index.html new file mode 100644 index 000000000..1d15bd346 --- /dev/null +++ b/docs/provider-authentication-overview/index.html @@ -0,0 +1,39 @@ + + + + + + + + +Provider Authentication Overview | Leaf + + + + + + + + + + + + + +
+

Provider Authentication Overview

About

By the end of this section, the objective is to successfully authenticate your application and link provider credentials to Leaf, enabling you to start integrating standardized data from major agricultural providers. Ultimately you’ll want your customers to be able to integrate their (user-permissioned) data from their providers into your application. So in order to set this up at the user level, you’ll need to attach the user token from the provider to the Leaf User.

TIP: Once you get to the stage of building the user authentication UI for your customers integrating their providers, we recommend using our pre-built Leaf Link widget.

Provider authentication process with Leaf

Each data provider's authentication flow is slightly different. Please refer to the tutorials below for the steps:

This authentication flow has to be done only once in most cases. Leaf will manage the tokens and refresh them when needed.

Provider credentials endpoints

For more details about provider credentials endpoints, see below for:

Also, we recommend use our Providers Integrations Resources endpoint to debrief the ingested resources from the authenticated account. +With the Providers Integrations Resources, you can access all the relevant information between the authentication and the processing of your +resources ingested into Leaf's API. The resource summary gives you more visibility on what and how many resources are being processed.

Need more guidance? Contact us at help@withleaf.io.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/provider_organizations/index.html b/docs/provider_organizations/index.html new file mode 100644 index 000000000..ba6054715 --- /dev/null +++ b/docs/provider_organizations/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Provider Organizations | Leaf + + + + + + + + + + + + + +
+

Provider Organizations

About

The endpoints described here are tools for listing organizations that have or have not granted access to Leaf.

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/usermanagement/api

See below the REST resources and their endpoints available in this service.

Endpoints

DescriptionEndpoints
Get Provider OrganizationsGET /users/{leafUserId}/organizations/{provider}

Organizations List

Get Provider Organizations

 GET /users/{leafUserId}/organizations/{provider}

Get provider connected and disconnected organizations from Leaf User.

  • provider: can be JohnDeere or Trimble.
info

At Trimble it is not possible to differentiate which organizations are connected or not.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/organizations/{provider}'

Response

{
"connectedOrganizations": [
{
"id": "organization_id_1",
"name": "Organization Name 1",
"managementUri": "https://connections.deere.com/connections/clientKey/connections-dialog?orgId=organization_id_1"
}
],
"notConnectedOrganizations": [
{
"id": "organization_id_2",
"name": "Organization Name 2",
"managementUri": "https://connections.deere.com/connections/clientKey/connections-dialog?orgId=organization_id_2"
}
]
}
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/quickstart/index.html b/docs/quickstart/index.html new file mode 100644 index 000000000..8940baf97 --- /dev/null +++ b/docs/quickstart/index.html @@ -0,0 +1,63 @@ + + + + + + + + +Quickstart | Leaf + + + + + + + + + + + + + +
+

Quickstart

Leaf Quickstart

This quickstart tutorial is written help you quickly experience and start building with Leaf. +First, please register on our website to receive your credentials. +We've included sample data in your account so you can begin querying data via Leaf immediately.

Leaf's Postman collection

Below you'll find instructions using curl and python, and we've also built a Postman collection to accompany this tutorial. Please find it here: Leaf Postman collection

Authentication

After creating and confirming your account, the first step is to authenticate +with your email and password to retrieve a Leaf token. This token is what we'll +use in subsequent steps to talk to the API. Be sure to keep a copy of this token +for the remaining steps.

curl -X POST \
-H 'Content-Type: application/json' \
-d '{ "username":"username", "password":"password", "rememberMe":"true" }' \
'https://api.withleaf.io/api/authenticate'

note: Your Leaf Token lasts for 30 days with "rememberMe": "true" in the +json. If you want it to last only 24h, feel free to set "rememberMe" to "false".
+After expiration, just make the same request to the same endpoint and you will +get a new access token.

Get sample Field with attached operations

Inside your account, we've created a sample LeafUser and populated it with data. +Let's take a look at the fields endpoint to see the sample field:

curl -X GET \
-H 'Authorization: Bearer YOUR_LEAF_TOKEN' \
'https://api.withleaf.io/services/fields/api/fields'

It returns a JSON object representing the Fields and you can see that there are +operations ids attached. Next section will explain how to get the operations by +those ids.

Get all sample operation files

Next, let's look at operations data. 'Operations' refers to the data collected +when a machine and any implements performed an operation on a farm. This command +will list operations files available across your whole account:

curl -X GET \
-H 'Authorization: Bearer YOUR_LEAF_TOKEN' \
'https://api.withleaf.io/services/operations/api/files'

Get specific sample operation file

Now that you have a file ID, you can query for the operations data itself and a +summary as well.

curl -X GET \
-H 'Authorization: Bearer YOUR_LEAF_TOKEN' \
'https://api.withleaf.io/services/operations/api/files/{id}'

Get sample operation file summary

curl -X GET \
-H 'Authorization: Bearer YOUR_LEAF_TOKEN' \
'https://api.withleaf.io/services/operations/api/files/{id}/summary'

Get sample operation file image

You may have already noticed that we're seeing a lot of operations files for +this one field and the timestamps span just a few days. This is because we're +looking at multiple files output from a machine that effectively represent one +large operation - a harvest. Before we talk about merging these pieces into a +single operation, let's look at an image from one of the pieces:

curl -X GET \
-H 'Authorization: Bearer YOUR_LEAF_TOKEN' \
'https://api.withleaf.io/services/operations/api/files/{id}/images'

Get sample merged operation file

A single strip appears in that image which is no mistake. It's also not as +useful as seeing the whole operation across the whole field! To solve this, we +allow you to request a merge of operations data and produce images for data of +the same type and timeframe. The sample data already includes a merged file.

Let's take a look at that merged harvesting image which is colored to indicate +the range of wet mass collected. First, let's find the merged file by simply +adding a parameter to filter to origin=merged

curl -X GET \
-H 'Authorization: Bearer YOUR_LEAF_TOKEN' \
'https://api.withleaf.io/services/operations/api/files?origin=merged'

And finally, use that file ID to retrieve a list of images, one for each +operation property. From this response, you can load one of the sample images:

curl -X GET \
-H 'Authorization: Bearer YOUR_LEAF_TOKEN' \
'https://api.withleaf.io/services/operations/api/files/{id}/images'

Get sample satellite imagery

Finally, let's take a look at some satellite imagery. Using data from Sentinel-2, +we produce NDVI images for fields you define to be monitored. First we'll list +the fields being monitored from the satellite service:

curl -X GET \
-H 'Authorization: Bearer YOUR_LEAF_TOKEN' \
'https://api.withleaf.io/services/satellite/api/fields/'

And then we can pull up the sample NDVI image of the sample field like this:

curl -X GET \
-H 'Authorization: Bearer YOUR_LEAF_TOKEN' \
'https://api.withleaf.io/services/satellite/api/fields/{field_id}/processes'
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/release_notes/index.html b/docs/release_notes/index.html new file mode 100644 index 000000000..f6a310d11 --- /dev/null +++ b/docs/release_notes/index.html @@ -0,0 +1,52 @@ + + + + + + + + +Release notes | Leaf + + + + + + + + + + + + + +
+

Release notes

We’re moving to monthly release notes, you’ll find them in our blog’s ‘What’s New’ section here. If you'd like to stay up to date with news from Leaf, make sure to follow us on social media!

2.115.0

2023-02-16

Agvance integration +New integration available. Agvance Grower, Farm, Field, and boundaries will be available in our Field Boundary Management service.

Crop monitoring

  • The satellite image bands are now grouped into a single tif file multiband.tif, available for all providers.

Field operations

  • Fixed the unit of measure for cotton operation files (John Deere), now calculated based on bales.

2.113.0

2023-01-19

Stara integration +New integrations available for Stara. Machine Files, Field Operations, Field Boundaries and Machines are services available for this provider.

2.110.0

2022-12-08

Additional planting properties

  • New properties available for planted operations. +The downForce and singulation properties, when available, will be present in the standardGeojson, summary and images of operations.

2.106.0

2022-10-13

Yield cleaning

2.105.0

2022-10-05

Yield cleaning

  • Harvest data can now go through a new cleanup step based on the removal of outliers. More info here.
  • We also improved the operations images. More info here.

2.100.0

2022-08-31

Beta

  • Layers upload
    There is now an option to upload layer files directly to Climate FieldView via Leaf API. Currently, only RGB GeoTIFF files are supported. More info here.

2.98.0

2022-08-16

Machine file conversion

  • New properties dryMass dryMassPerArea dryVolume and dryVolumePerArea for dry Yield are available in the operation summary and in the standard GeoJSON.

2.92.0

2022-07-05

Crop Monitoring

  • Usable Data Mask 2.0 (UDM2) is now available for Planet
    The mask images are available through the Planet udm2 asset type. More info here.

2.91.0

2022-06-29

Crop Monitoring

  • NDRE images +Normalized difference red edge (NDRE) index is now available for Sentinel and Planet.

Machine file conversion

  • Added support for Avoirdupois ounce unit of measure.

2.89.0

2022-06-14

Machine file conversion

  • [beta] Added support for 20|20 files from Precision Planting

Fields

  • New filter available in the fields and farms GET endpoints +It is now possible to filter fields by farm and farms by grower.

2.88.0

2022-06-07

Beta

  • Machines
    Deprecated property createdAt in Machines. Use createdTime to obtain the creation time instead.

Fields

  • Fixing alerts related to creating and updating field boundaries
    There was an issue interpreting updates from a provider. More information about alerts here.

2.87.0

2022-05-24

Machine file conversion

  • Added support for ISOXML files

2.86.0

2022-05-24

Machine file conversion

  • New properties on the Standard GeoJSON
    Optional properties: cropFlow, productIndex, proteinPercentage, samplingInterval, xOffset and yOffset.
    More information here.

2.85.0

2022-05-17

Machine file conversion

  • Machine list available in the operation files
    The new property machine list all machine ids under the files entity (not to be confused with machinery property available in the summary). +More information here.

Beta

  • Machines
    The properties vin, model, make, category and modelYear are now also available in the Machine POST endpoint.

2.84.0

2022-05-11

Machine file conversion

  • New config available: splitOperationsByField
    If set to true, Leaf will split your Field Operations based on the intersection of each Leaf Field Boundary. The default value is false. +Check all the configurations available here.

2.83.0

2022-05-03

Beta

  • Machines
    New machine properties available: vin, model, make, category and modelYear. +The vin property can be used to query.

2.82.0

2022-04-26

Machine file conversion

  • Sugar cane
    +Leaf API now also support sugar cane files. Be aware that volume measurements will not be available for this crop type.

  • New config available: operationsAutoSync
    +If set to true (default), Leaf will automatically synchronize provider's operations.
    +Check all the configurations available here.

2.81.0

2022-04-20

Machine file conversion

  • New config available: cleanupStandardGeojson
    +If set to true (default), Leaf will automatically remove invalid points from the standardGeoJSON file for operations.
    +Check all the configurations available here.

  • (0,0) point removed
    +All (0,0) points are now automatically removed in our converters. +

Crop monitoring

  • Planet: new asset type available
    Leaf API now also supports PlanetScope's analytics_5b asset type which has 5 bands: Red, Green, Blue, Red-Edge and Near infrared.
    You can check our documentation for how to filter images by different asset types.
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/satellite_endpoints/index.html b/docs/satellite_endpoints/index.html new file mode 100644 index 000000000..cdc19b256 --- /dev/null +++ b/docs/satellite_endpoints/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Endpoints | Leaf + + + + + + + + + + + + + +
+

Endpoints

Documentation update!

We are updating our documentation and this page was moved to here.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/satellite_overview/index.html b/docs/satellite_overview/index.html new file mode 100644 index 000000000..be5ca835f --- /dev/null +++ b/docs/satellite_overview/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Overview | Leaf + + + + + + + + + + + + + +
+

Overview

Documentation update!

We are updating our documentation and this page was moved to here.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/sentinel_overview/index.html b/docs/sentinel_overview/index.html new file mode 100644 index 000000000..3c1d7df72 --- /dev/null +++ b/docs/sentinel_overview/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Sentinel Overview | Leaf + + + + + + + + + + + + + +
+

Sentinel Overview

Documentation update!

We are updating our documentation and this page was moved to here.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/setup_information/index.html b/docs/setup_information/index.html new file mode 100644 index 000000000..c26c1791b --- /dev/null +++ b/docs/setup_information/index.html @@ -0,0 +1,37 @@ + + + + + + + + +General Setup Information | Leaf + + + + + + + + + + + + + +
+

General Setup Information

Pagination

All endpoints that return a list of resources are paginated. You can select the size of the page and which page to get by using the query parameters size and page.

  • size - Defines the size of the page. Defaults to 20. Max size is 100.
  • page - Defines which page to fetch, considering each page has size elements. The first page is page 0. Defaults to 0.

The X-Total-Count header in the response indicate the total existent items, and the Link header can provide the link for the first, next and last pages available:

<api/fields?page=1&size=20>;rel="next",
<api/fields?page=398&size=20>;rel="last",
<api/fields?page=0&size=20>;rel="first"

Date format

All the dates follow ISO 8601 format. Specifically, all the dates should be in the format "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'".

File archiving

By default, our API archives files to slower storage after 180 days of no access. The file will only be available again upon a support request.

Error codes

ServiceEndpointMessageHTTP StatusReason
Field OperationsUpload a fileBad Request400The uploaded file is bigger than 3 GB

Downloading files from Leaf

To provide greater security all files provided by Leaf are now protected and must be accessed with authentication using the existing Leaf token.

tip

This is a recent change, so the old download links are still available, however, it will be discontinued soon. Therefore, it is strongly recommended that updates are made to access the new download links providers by Leaf (it can be identified with the prefix download-).

Authentication sample

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'downloadUrl'
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/sharedata/index.html b/docs/sharedata/index.html new file mode 100644 index 000000000..5dfad9117 --- /dev/null +++ b/docs/sharedata/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Leaf Connect | Leaf + + + + + + + + + + + + + +
+

Leaf Connect

Documentation update!

We are updating our documentation and this page was moved to here.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/usecase_johndeere_products/index.html b/docs/usecase_johndeere_products/index.html new file mode 100644 index 000000000..0170e0e07 --- /dev/null +++ b/docs/usecase_johndeere_products/index.html @@ -0,0 +1,37 @@ + + + + + + + + +How to get the list of products from a John Deere operation? | Leaf + + + + + + + + + + + + + +
+

How to get the list of products from a John Deere operation?

This use case describes how to get the list of products from a John Deere operation.

The following steps will be necessary:

  1. Register with Leaf

  2. Register with John Deere

  3. Upload data in John Deere Operations Center

  4. Create a Leaf User

  5. Add credentials to the Leaf User

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/usecase_satellite/index.html b/docs/usecase_satellite/index.html new file mode 100644 index 000000000..ebe3bff25 --- /dev/null +++ b/docs/usecase_satellite/index.html @@ -0,0 +1,82 @@ + + + + + + + + +How to get satellite field images | Leaf + + + + + + + + + + + + + +
+

How to get satellite field images

About

This use case describes how to get the satellite field images and display them on Leaflet JS.

Register

To register with Leaf:

  • Go to registration link and create your account.
  • Save your credentials to use in the next steps.

Backend

Create server

After registered, you will need to setup a server, in this case we will use the Express Framework to create the server and the Axios library to do POST/GET requests in our server:

const express = require("express");
const app = express();
const axios = require("axios");

Now you will need to define some routes that your server will use, in this example, we define the follow routes:

Routes

Route '/create_token'

In this route, we will create the user token to use in the next steps. In the data object, +we need the attributes username and password that comes from a form in the front-end, +and the attribute rememberMe is optional. +We make a POST request with AXIOS to the Leaf API endpoint that is responsible to create our token, +if everything is ok, it will return an status code 200, and the token will be returned to the user, +if anything is wrong, it will be catched by the .catch() function.

app.post("/create_token", (req, res) => {
// Comes from the frontend form
let email = req.body.email.trim();
let passwd = req.body.password.trim();
+
// Leaf API endpoint
let endpoint = "https://api.withleaf.io/api/authenticate";
+
// Data to post to endpoint
let data = {
username: email,
password: passwd,
rememberMe: "true"
};
+
axios
.post(endpoint, data)
.then(function (response) {
// Save the token in the token variable
token = response.data["id_token"];
// Return ok and the token to the frontend request
res.json({ message: "Congrats! Login done!", token: token });
})
.catch((error) => {
if (error.response.data.status === 400) {
// If something wrong happens, returns login failed.
res.json({ message: "Oops! Login failed!", token: "" });
} else if (error.response.data.status === 401) {
// If the credentials are wrong, returns that.
res.json({ message: "Oops! Invalid credentials!", token: "" });
}
});
});

Here you can see the Authentication documentation.

Route '/monitored_fields'

In this route, we will be able to retrieve all our satellite monitored fields. First we verify if the front-end request is sending a token in the Authorization header, if yes, we do a GET request with AXIOS to the Leaf API endpoint responsible to give us that information and then we return it to the frontend.

app.get("/monitored_fields", (req, res) => {
if (!req.header("authorization")) {
res.json("Invalid token, generate one first!");
} else {
let token = req.header("authorization");
let endpoint = "https://api.withleaf.io/services/satellite/api/fields";
let headers = { Authorization: `Bearer ` + token };
+
axios
.get(endpoint, { headers })
.then(function (response) {
res.json(response.data);
})
.catch(function (error) {
res.json("Something wrong happend during the request!");
});
}
});

Route '/field_images'

In this route, we will retrieve all the images from one satellite monitored field. In the first step, we will do a GET request with AXIOS to the Leaf API endpoint that will return to us the information about the field selected, with this endpoint, we can get the field coordinates and send to the frontend, so we can plot the images in the right point of the map. In the second step, we will do a GET request with AXIOS to the Leaf API endpoint that is responsible to return the images about the field selected, after receiving the images, we will sort them by the date, and we will save in another array just the images that are of the type NDVI_RELATIVE or RGB, that are the ones we are interested now.

app.post("/field_images", (req, res) => {
if (!req.header("authorization")) {
res.json("Invalid token, generate one first!");
} else {
// This comes from the frontend form.
let field_id = req.body.id;
let startDate = req.body.startDate;
let endDate = req.body.endDate;
+
let endpoint =
"https://api.withleaf.io/services/satellite/api/fields/" + field_id;
let headers = { Authorization: `Bearer ` + token };
+
let field_geometry;
+
// First step
axios
.get(endpoint, { headers })
.then(function (response) {
if (response.data <= 0) {
res.json("No images were found for the time and field selected");
} else {
// Get the field coordinates
field_geometry = response.data.geometry.coordinates;
+
endpoint =
"https://api.withleaf.io/services/satellite/api" +
"/fields/" +
field_id +
"/processes";
+
let params = { startDate: startDate, endDate: endDate };
headers = { Authorization: `Bearer ` + token };
+
// Second step
axios
.get(endpoint, { headers, params })
.then(async function (response) {
let data_obj = [];
data_obj = response.data;
if (data_obj.length > 0) {
// Here we are creating an Date Object with the date string that comes
// from the API return, so we can sort the days by the date.
data_obj.forEach((e) => {
e.date = new Date(e.date);
});
+
// Sorting the days by the dates.
let sorted_days = data_obj.sort(
(objA, objB) => Number(objB.date) - Number(objA.date)
);
+
// This is the variable that we will fill and return in the request.
let providerPNG = [];
+
sorted_days.forEach((e) => {
// Checking if the clouds coverage of that image is less than 80%.
if (e.clouds < 80) {
let day = {
id: e.id,
date: e.date,
clouds: e.clouds,
coverage: e.coverage,
provider: e.provider,
images: [],
};
// For each image of each day, we will check if the image is of
// the type 'NDVI_RELATIVE' or 'RGB', if yes, we push it to the
// providerPNG array.
e.images.forEach((f) => {
if (
f.type === "png" &&
(f.url.includes("NDVI_relative.png") ||
f.url.includes("RGB.png"))
) {
day.images.push(f);
}
});
providerPNG.push(day);
}
});
+
// Checking if the length of providerPNG is greater then 0, if yes,
// return the images and the field geometry.
if (providerPNG.length > 0) {
res.json({ geometry: field_geometry, images: providerPNG });
} else {
res.json(
"No images were found for the time and field selected"
);
}
} else {
res.json(
"No images were found for the time and field selected"
);
}
})
.catch(console.error);
}
})
.catch(console.error);
}
});

Here you can see the Satellite documentation.

Route '/create_field'

In this route, we will receive data from the frontend and make a POST request with AXIOS to the Leaf API endpoint responsible for creating satellite monitored fields. Before trying to reach the Leaf API endpoint, we need to verify if the GEOJSON that comes from the frontend is valid, so we will not make irregular post requests to the endpoint. +You can check here more info about GEOJSON.

app.post("/create_field", (req, res) => {
if (!req.header("authorization")) {
res.json("You have to login first!");
} else {
// This comes from the frontend form.
let field_name = req.body.field_name;
let boundery_type = req.body.boundery_type;
let field_boundery = req.body.field_boundery;
let days_before = req.body.days_before;
+
// A function to try to parse the form geojson data to a object.
function isJsonString(str) {
try {
field_boundery = JSON.parse(str);
} catch (e) {
return false;
}
return true;
}
+
if (!isJsonString(field_boundery)) {
res.json(
"Error during compiling your geojson, try again with valid data."
);
} else {
let endpoint = "https://api.withleaf.io/services/satellite/api/fields";
let headers = { Authorization: `Bearer ` + token };
+
// Define the DATA object that we will send in the POST request to
// Leaf API endpoint.
const data = {
externalId: field_name,
daysBefore: days_before,
providers: [],
geometry: {
type: boundery_type,
coordinates: [field_boundery],
},
};
+
// Here is the AXIOS post, we will return 'Field created' if everything
// was ok with the data and the field was created. If something is wrong
// we return the message 'Something wrong happened, verify your data and
// try again!'
axios
.post(endpoint, data, { headers })
.then(function (response) {
res.json("Field created");
})
.catch(function (error) {
console.log(error);
res.json("Something wrong happened, verify your data and try again!");
});
}
}
});

Here you can see the Satellite documentation.

Start the server

For the last part, we need to start our server, and make the front-end!

app.listen(3000, async () => {
console.log("Server started!");
});

Frontend

In the frontend, we will use the Angular Framework! +It's important to say that we will use the LeafletJS to display the map and images on it.

Creating the project

To create our project, we can use this command from angular ng new <your app name>. This command will ask some questions about the project and them create all the files and folder structure to our project.

Creating the component

After doing this step, we will need to create our Map Component, to do this you can use also this command from angular: ng generate component <component-name>, this will generate 3 files for your component: The CSS File for your component, the HTML file, and the TS file, where the logic will be.

In our HTML we will have three simple forms to get the information that we need, and with that information we will proccess and send to our service, that will communicate with our API, e will have one <div> that will contain our map, and our sidebar.

Creating the service

To create our service that will communicate with our API, we will use the command ng generate service <service-name>, this will generate the file responsible.

In the next steps, it will be demonstrated how to do every step until we show the images in the map.

Main functions

Initializing the forms and the map

This is our function that will be called automatically by angular when the page is started, it initializes the map with the sidebar in the function initMap() and also initialize the forms that we need. Don't forget that you need to set the GETTERS and SETTERS for each attribute defined below, so you can retrieve and change the value.

ngOnInit(): void {
this.initMap();
localStorage.removeItem('token');
this.loginForm = new FormGroup({
email: new FormControl(''),
password: new FormControl(''),
});
this.searchImagesForm = new FormGroup({
fieldId: new FormControl(''),
startDate: new FormControl(''),
endDate: new FormControl(''),
});
this.createFieldForm = new FormGroup({
fieldId: new FormControl(''),
daysBefore: new FormControl(''),
bounderyType: new FormControl(''),
fieldBoundery: new FormControl(''),
provider: new FormControl(''),
});
}

Login

This function will be called by our button in the form, we need to retrieve the information from the form using the getters and then send it to our service, that will add our token to the header and send to the back-end.

doLogin() {
this.isLoading = true;
// Using the email and password getters:
let email = this.getEmail().value;
let password = this.getPassword().value;
// You could also do this way:
// this.loginForm.get('email')!.value
if (email === '' || password === '') {
this.isLoading = false;
// You can do some validations here
} else {
// Calling a function from our appService, sending the email and password
// that will be redirected to the back-end.
this.appService.login(email, password).subscribe((data) => {
this.isLoading = false;
this.loginMessage = data.message;
if (data.message === 'Congrats! Login done!') {
// Saving our token that the back-end send back to us
// for the next steps
this.isLogged = true;
localStorage.setItem('token', data.token);
} else {
this.isLogged = false;
}
});
}
}

In our service, we will define the function login()

login(email: string, password: string): Observable<any> {
return this.http.post<any>(this.apiUrl + 'create_token', {
email: email,
password: password,
});
}

Load satellite monitored fields

This function is responsible to reach our backend and give us back the list of the available satellite monitored fields. After receiving them you can show it to the user to choose which one he wants to see images.

loadCreatedFields() {
this.isLoading = true;
// Sending our token that we retrieved in the first step.
this.appService
.loadFields(localStorage.getItem('token')!)
.subscribe((data) => {
this.isLoading = false;
this.fields = data;
});
}

In our service, we will define the function loadFields()

loadFields(token: string): Observable<any> {
// Setting our token in the Authorization header so we
// can send it to the back-end
let headers = new HttpHeaders().set('Authorization', token);
return this.http.get<any>(this.apiUrl + 'monitored_fields', { headers });
}

Load the images for a specific field

This function is reponsible for getting the form information and send to our back-end that will return the satellite images for a specific field. After our backend return to us the list of the images, we need to retrieve the coordinates of that field from the backend response, and also the images. With the geometry, we can create a GEOJSON layer, to display the bounds of the field, and with the images we can plot them in the map.

loadFieldImages() {
this.isLoading = true;
this.images = [];
let fieldId = this.getFieldId()!.value;
let startDate = this.getStartDate()!.value;
let endDate = this.getEndDate()!.value;
if (fieldId === '' || startDate === '' || endDate === '') {
this.loadImagesMessage = 'You need to fill all the inputs.';
this.isLoading = false;
} else {
this.appService
.loadImages(fieldId, startDate, endDate, localStorage.getItem('token')!)
.subscribe((data) => {
this.isLoading = false;
this.loadImagesMessage = '';
if (
data === 'No images were found for the time and field selected' ||
data === 'Request failed with status code 404'
) {
// Here you can show something to the user if no images were found
this.images = [];
this.loadImagesMessage = data;
} else {
this.images = [];
this.images = data.images;
+
// Save the field geometry from the response.
let geometry = data.geometry[0][0];
+
// Create a object containing the field coordinates to create a Leaflet Layer.
let json = {
type: 'Feature' as GeoJsonTypes,
geometry: {
type: 'Polygon',
coordinates: [geometry],
},
};
+
// Create a object that will define the style of the polygon
let polygonStyle = {
weight: 2,
opacity: 1,
fill: false,
'fill-opacity': 0,
} as L.GeoJSONOptions;
+
// Clear all the bounds created in the bounds group layer
this.bounds.clearLayers();
// Clear all the images created in the imagens group layer
this.imagens.clearLayers();
+
// Create the geoJson layer of LeafletJS.
let geoJsonLayer = L.geoJson(json, polygonStyle).addTo(this.bounds);
+
// Saving the bounds of the field from the geoJsonLayer
let geoBounds = geoJsonLayer.getBounds();
+
// Make the map fly to the right coordintes of the field.
this.map.flyTo(geoJsonLayer.getBounds().getCenter(), 15);
+
// Checking if are any avaiable images and for each image
// save the url of the image and the bound of the field in
// the images array
this.images.forEach((e: any) => {
e.images.forEach((f: any) => {
f.bounds = geoBounds;
f.date = e.date.substring(11, 23);
if (e.provider === 'sentinel') {
f.imgtype = f.url.split('/0/')[1].split('.')[0].split('_')[0];
} else if (e.provider === 'planet') {
f.imgtype = f.url
.split('_SR.tif/')[1]
.split('.')[0]
.split('_')[0];
} else {
f.imgtype = 'not supported';
}
});
e.date = e.date.substring(0, 10);
});
}
});
}
}

In our service, we will define the function loadImages()

loadImages(fieldId: any, startDate: any, endDate: any, token: string): Observable<any> {
let headers = new HttpHeaders().set('Authorization', token);
return this.http.post<any>(
this.apiUrl + 'field_images',
{
id: fieldId,
startDate: startDate,
endDate: endDate,
},
{ headers }
);
}

Show and hide map layers

With this function, we will receive an url from the parameter when the user clicks in the image he wants to see, and then we will display that image.

function showImage(url) {
// Clear all the images from the imagens group layer, so only one
// image will be displayed.
imagens.clearLayers();
+
// If you remember, in the images array, we saved all the
// images url, and the bounds of the fields. So when we receive
// one url in the parameter, we will search the url in the array
// and if it is a valid url, we will retrieve the bounds and then
// display the image in the map.
this.images.forEach((e: any) => {
e.images.forEach((f: any) => {
if (f.url === url) {
L.imageOverlay(f.url, f.bounds).addTo(this.imagens);
}
});
});
}

Extra

In this case, we are using the LeafletJS library, so we need to create our map, and add the base layers we want. We will add a layer for the OpenStreetMap basemap, and one for the Mapbox basemap. To use the MapBox basemap without creating an map variable to it, we need to setup our MapBox token in one variable and then reach the mapbox url passing our token.

private initMap(): void {
// Create the Map variable.
this.map = L.map('map', {
center: [39.8282, -98.5795],
zoom: 3,
});
+
// OpenStreetMap Layer.
const osm = L.tileLayer(
'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
{
maxZoom: 18,
minZoom: 3,
attribution:
'&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
}
);
+
let token = "YOUR MAPBOX TOKEN";
+
// MapBox Layer.
const mapBox = L.tileLayer(
'https://api.mapbox.com/styles/v1/mapbox/satellite-v9/tiles/{z}/{x}/{y}?access_token=' +
token,
{
maxZoom: 21,
tileSize: 512,
zoomOffset: -1,
attribution:
'© <a href="https://www.mapbox.com/contribute/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
}
);
+
osm.addTo(this.map);
mapBox.addTo(this.map);
+
// The base maps.
const baseMaps = {
OpenStreetMap: osm,
MapBox: mapBox,
};
+
//Group layers for the images and the bounds.
this.imagens = L.layerGroup().addTo(this.map);
this.bounds = L.layerGroup().addTo(this.map);
+
// Create the base maps control in the map
const layerControl = L.control.layers(baseMaps).addTo(this.map);
+
// The sidebar options
var options: L.SidebarOptions = {
container: 'sidebar',
position: 'left',
};
+
// Creating the sidebar
var sidebar = L.control.sidebar(options);
+
// Adding the sidebar to the map
this.map.addControl(sidebar);
}

See here more informations about Mapbox!
+See here more informations about LeafletJS!

tip

Here you can run a live use case demo!

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/usecase_upload/index.html b/docs/usecase_upload/index.html new file mode 100644 index 000000000..82d08f56e --- /dev/null +++ b/docs/usecase_upload/index.html @@ -0,0 +1,92 @@ + + + + + + + + +How to upload a file and get images | Leaf + + + + + + + + + + + + + +
+

How to upload a file and get images

About

This use case describes how to get the information and images from uploaded files. Follow this documentation.

Register

To register with Leaf:

  • Go to registration link and create your account.
  • Save your credentials to use in the next step.

Backend

Create server

After registered, you will need to setup a server, in this case we will use the Express Framework to create the server, the Ngrok library to be able to open our localhost port to the open internet and the Axios library to do POST/GET requests in our server:

const express = require("express")
const app = express()
const ngrok = require("ngrok")
const axios = require("axios")
var startTunnel = async () => {
await ngrok.authtoken("YOUR NGROK AUTHTOKEN");
url = await ngrok.connect(THE LOCALHOST PORT YOU WANT TO DISPOSE TO THE OPEN INTERNET);
return url;
};

Now you will need to define some routes that your server will use, in this example, we define the follow routes:

Routes

Route '/main'

This route will be responsible to render our main page, in the route: '/main'.

app.get("/main", (req, res) => {
res.render(__dirname + "/views/ejs/map.ejs");
});

Route '/webhook'

This route will be the route that we will use in the process of creating our webhook in the Leaf API, +with this route we will receive the alerts from the Leaf API, and save the files id to use +it in the future. In this example, we just get 2 types of response from the Leaf API, the types:

  • uploadedFileProcessingFailed
  • uploadedFileProcessingFinished
app.post("/webhook", (req, res) => {
if (req.body.message === "confirmation of webhook upon registration") {
console.log("Just checking if webhook url is alive");
}
if (req.body.type === "uploadedFileProcessingFailed") {
console.log("Processing failed to the file: " + req.body.fileId);
} else if (req.body.type === "uploadedFileProcessingFinished") {
console.log("Processing ok to the file: " + req.body.fileId);
let content = req.body.fileId + "\n";
fs.appendFile("./files/all.txt", content, (error) => {
if (error) {
console.error(error);
}
});
}
res.status(200).send("Ok");
});

Here you can see the Alerts Documentation.

Route '/create_token'

In this route, we will create the user token to use in the next steps. In the data object, +we need the attributes username and password that comes from a form in the front-end, +and the attribute rememberMe is optional. +We make a POST request with AXIOS to the Leaf API endpoint that is responsible to create our token, +if everything is ok, it will return an status code 200, and the token will be saved in the token +variable, if anything is wrong, it will be catched by the .catch() function.

app.post("/create_token", (req, res) => {
let email = req.body.email.trim();
let passwd = req.body.password.trim();
let endpoint = "https://api.withleaf.io/api/authenticate";
+
let data = {
username: email,
password: passwd,
rememberMe: "true"
};
+
axios
.post(endpoint, data)
.then(function (response) {
token = response.data["id_token"];
res.json("Congrats! Login done!");
})
.catch((error) => {
if (error.response.data.status === 400) {
res.json("Oops! Login failed!");
} else if (error.response.data.status === 401) {
res.json("Oops! Invalid credentials!")
}
});
});

Here you can see the Authentication Documentation.

Route '/create_webhook'

In this route, we will receive data from a form in the front-end, put them in a object named data and +then make a post request with AXIOS to the Leaf API endpoint that is responsible for creating +webhooks. The attributes name and events comes from the form, the attribute secret you will need +to generate, and the parameter url is created when the server start using the +function startTunnel(); and we add the '/webhook' that is the route we defined early.

app.post("/create_webhook", (req, res) => {
let name = req.body.nome;
let data = {
events: [req.body.type.trim()],
name: name,
secret: "YOUR SECRET",
url: url + "/webhook"
};
+
let headers = { Authorization: `Bearer ` + token };
let endpoint = "https://api.withleaf.io/services/alerts/api/alerts/webhooks";
+
axios
.post(endpoint, data, { headers })
.then((response) => {
res.json('Webhook successfully created')
})
.catch((error) => {
if (error.response.data.status === 400) {
res.json("This event is already created at some webhook url.");
}
});
});

Here you can see the Webhook Documentation.

Route '/list_webhook'

In this route, we will use our token to list all our created webhooks. We need to do a GET request +with AXIOS to the Leaf API endpoint responsible to give us all our webhooks. And all will be +done just if our token is not undefined, in other case, it will give us the error +'Invalid token btw, generate one first!'.

app.get("/list_webhook", (req, res) => {
if (token != undefined) {
let headers = { Authorization: `Bearer ` + token };
let endpoint = "https://api.withleaf.io/services/alerts/api/alerts/webhooks";
axios
.get(endpoint, { headers })
.then(function (response) {
res.json(JSON.stringify(response.data));
})
.catch(console.error);
} else {
res.json("Invalid token btw, generate one first!");
}
});

Here you can see the Webhook Documentation.

Route '/delete_webhook/:id'

In this route, we will be able to delete a webhook that we created. The id comes from the +parameter id in the url, and we will use this parameter in the DELETE request that we make +with AXIOS, we also need to set our token in the header, and if everything is ok, +we will receive an status code 204

app.get("/delete_webhook/:id", (req, res) => {
let webhook_id = req.params.id;
const headers = { Authorization: `Bearer ` + token };
const id = webhook_id;
const endpoint = 'https://api.withleaf.io/services/alerts/api/alerts/webhooks/' + id;
+
axios
.delete(endpoint, { headers })
.then((response) => console.log(response.status))
.catch(console.error);
+
res.redirect("/");
});

Here you can see the Webhook Documentation.

Route '/save_file'

In this route, we will receive a file that was uploaded from the front-end, we will save it, +upload to Leaf API and then delete it. If the user token is already generated, it will follow the process, if it is undefined, it will send +back the message 'Not a valid token, create one first'.

app.post("/save_file", (req, res) => {
if (token === undefined) {
res.json('Not a valid token, create one first');
} else {
//Here we save the provider and the file that is comming from the front end,
// we also save the file name and create a path in the server to the file.
+
let provider = req.body.provider;
let files = req.files;
let filename = files.upload.name;
let file_path = path.resolve(`./${files.upload.name}`);
+
// Here we save the file in the path that we created, if something went wrong,
// it will send back the error.
+
files.upload.mv(file_path, (err) => {
if (err) return res.status(500).send(err);
});
+
// Here we make a get request with axios to retrieve our Leaf User Id, that is
// necessary for the next step.
+
let endpoint = "https://api.withleaf.io/services/usermanagement/api/users/";
let headers = { Authorization: `Bearer ` + token };
+
axios
.get(endpoint, { headers })
.then(function (response) {
leaf_user_id = response.data[0]["id"];
endpoint = "https://api.withleaf.io/services/operations/api/batch";
+
let headers = {
Authorization: `Bearer ` + token,
"Content-Type": "multipart/form-data"
};
+
// Once the Leaf User Id is set, we add it to the param object, that
// we will use to post the file to Leaf API endpoint.
+
let params = {
provider: provider,
leafUserId: leaf_user_id
};
+
// Create a form so we can put the file received from the front-end
// in the request to the Leaf API endpoint.
+
let form = new FormData();
form.append("file", fs.createReadStream(file_path));
+
axios
.post(endpoint, form, { headers, params })
.then(function (response) {
// Delete the file received
fs.unlink(file_path, (erro) => {
if (erro) console.log(erro);
});
// Send a json to the front-end that the file
// was uploaded to Leaf API endpoint.
res.json("File uploaded, wait for it to be processed!");
})
.catch(function () {
// If an error ocurred, send the error to the front-end.
res.json('Error ocurred during file upload, try again with a valid file')
}
);
})
.catch(function () {
res.json('Couldnt retrieve your token, generate one first.')
});
}
});

Here you can see the Files Documentation.

Route '/verify_files'

In this route, we can verify if any files that we uploaded were processed succefully. If the token is already generated it will proceed to verifying the all.txt file, where the files id are saved when we receive an alert in the '/webhook' route. If are any files id in the file, the route will return the files id in the JSON options.

app.get("/verify_files", (req, res) => {
if (token === undefined) {
res.json(`Invalid token btw, generate one first!`);
} else {
fs.readFile("./files/all.txt", "utf-8", (err, data) => {
if (err) {
console.error(err);
}
if (data.length > 0) {
let options = [];
fs.readFile("./files/all.txt", "utf-8", (err, data) => {
if (err) {
console.error(err);
}
data.split(/\r?\n/).forEach((line) => {
options.push(line);
});
res.json(JSON.stringify(options));
});
} else {
res.json(
'No file processed yet!'
);
}
});
}
});

Route '/detail_file/:id'

In this route, we will receive and id in the url, and we will use this id to make a GET request with +AXIOS in the Leaf API endpoint that is responsible to give us the content of uploaded files. +The API endpoint will give us an JSON with the information, and we will send it back to the +front-end.

app.get("/detail_file/:id", (req, res) => {
let file_id = req.params.id;
let endpoint = "https://api.withleaf.io/services/operations/api/files/" + file_id;
let headers = { Authorization: `Bearer ` + token };
+
axios
.get(endpoint, { headers })
.then(function (response) {
let data = response.data;
res.json({ data });
})
.catch(console.error);
});

Here you can see the Files Documentation.

Route '/file_images/:id'

In this route, we will be able to get the images from the Leaf API endpoint. The file id is received +from the form, in the parameter id and we put it in the endpoint url. When we make a GET request +with AXIOS, the endpoint will return an JSON with the images url and informations related to +that file id that we send in the url.

app.get("/file_images/:id", (req, res) => {
let file_id = req.params.id;
let endpoint = "https://api.withleaf.io/services/operations/api/files/" +
file_id +
"/images";
let headers = { Authorization: `Bearer ` + token };
+
axios
.get(endpoint, { headers })
.then(function (response) {
let data = response.data;
res.json({ data });
})
.catch(console.error);
});

Here is the File Images Documentation.

Route '/image_coordinates'

In this route, we will receive a list of images url, and we will work with it.

app.post("/image_coordinates", async (req, res) => {
let received = req.body;
received = JSON.parse(received.dados);
+
//For each link received, we will use the Probe library to get the size of an image
//from a url, and we will save it because we need to use it in the future to
//get the real coordinates.
+
for await (const link of received) {
let result = await probe(link.url);
link.width = result.width;
link.height = result.height;
}
+
//Here we define a function getCoordintes() that will receive an array, filled with
//the images and its sizes, and an callback function that will be called when all
//the Promises are resolved.
+
function getCoordinates(arr, callback) {
var results = [];
var expecting = arr.length;
+
//For each link in the array, we will get an extra .xml file from the Leaf API
//that contains the information that we need to calculate the real world coordinates.
+
arr.forEach((e) => {
// Get the .xml file using the https library.
let req2 = https.get(e.url + ".aux.xml", function (res2) {
let data = "";
res2.on("data", function (stream) {
data += stream;
});
res2.on("end", function () {
// Parse the information from xml to json using the library xml2js
// parser is from xml2js = new xml2js.Parser({ attrkey: "ATTR" });
parser.parseString(data, function (error, result) {
if (error === null) {
// Get the necessary information from inside the JSON
let resultado =
result["PAMDataset"]["GeoTransform"][0].split(",");
// This is the top left point of the image:
let TLX = parseFloat(resultado[0].trim());
let TLY = parseFloat(resultado[3].trim());
//This is the bottom right point of the image:
let BRX =
parseFloat(resultado[0].trim()) +
parseInt(e.width) * parseFloat(resultado[1].trim()) +
parseInt(e.height) * resultado[2];
let BRY =
parseFloat(resultado[3].trim()) +
parseInt(e.width) * parseFloat(resultado[4].trim()) +
parseInt(e.height) * resultado[5];
/*See image1.*/
let x0 = (TLX * (180 / Math.PI)) / 6378137.0;
let y0 =
((Math.PI * 0.5 - 2.0 * Math.atan(Math.exp(-TLY / 6378137.0))) *
180) /
Math.PI;
let x1 = (BRX * (180 / Math.PI)) / 6378137.0;
let y1 =
((Math.PI * 0.5 - 2.0 * Math.atan(Math.exp(-BRY / 6378137.0))) *
180) /
Math.PI;
/*See image2.*/
let obj = {
1: x0 + ", " + y0,
2: x1 + ", " + y0,
3: x1 + ", " + y1,
4: x0 + ", " + y1,
5: e.url,
6: e.type,
};
/*See image3.*/
results.push(obj);
//This part does 'expeting - 1' every forEach, and when it hits 0
//(all the array processed) it calls the callback function.
if (--expecting === 0) {
callback(results);
}
} else {
console.log(error);
}
});
});
});
});
}
//Here we call the function, sending the array that we created with the image links
//and sizes, and we define the function that will be called when everything is finishid,
//in this case,the function just respond the request with an JSON containing all the data
//needed to plot the images in the front end.
getCoordinates(received, function (results) {
res.json(JSON.stringify(results));
});
});

Image1Image2Image3Image 1 - Image 2 - Image 3

Start the server

For the last part, we need to start our server, and make the front-end!

app.listen(3000, async () => {
//Clear the all.txt file
fs.writeFileSync('./files/all.txt', '');
// Get the ngrok url to the open internet
url = await startTunnel();
console.log(url);
console.log("Server started!");
});

Frontend

In the frontend, we will need to use just one page! We define the page in the path: /views/ejs/map.ejs.
+In this part of the documentation, it will be show some functions that are used in the map.ejs file, all this functions will be called via onClick() method from form buttons. It's important to say that we will use the Mapbox API to display the map and images on it.

Login

This function is called by our button that is responsible for doing the login. It will get the data from the form, and do a POST request with AXIOS to our backend. That will return 'Congrats! Login done!' if the credentials are right, and another message depending on what happened wrong.

function loginClick() {
let email = $("#email").val();
let password = $("#password").val();
$.ajax({
type: "POST",
url: '/create_token',
data: {
password: password,
email: email
},
success: function(response) {
if (response === 'Congrats! Login done!') {
//Here you need to disable this element and
//show the next one, in the case, the div responsible
//for creating the webhook.
} else {
//Show some message saying that the login failed.
}
}
});
}

Create Webhook

With this function, we will get the parameters from the form about the webhook, and do a POST request with AXIOS to our backend resonsible for creating the webhook in the Leaf API.

function webhookCreateClick() {
if ($('YOUR FORM INPUT ID').val() != false) {
let name = $("YOUR FORM INPUT ID").val();
let type = $("YOUR SELECT INPUT SELECTED").val();
$('#webhook_response').text('');
$.ajax({
type: "POST",
url: '/create_webhook',
data: {
name: name,
type: type
},
success: function(response) {
if (response === 'Webhook successfully created') {
//Here you need to disable this element and
//show the next one, in the case, the div responsible
//for list the webhook.
listWebhooks();
} else {
//Show some message saying that the webhook creation failed.
}
}
});
}
}

List webhooks

In this function, we will be able to list all the webhooks that our Leaf Account have. We will list them to the user just to see if the webhook that he needs is created or not.

function listWebhooks() {
let start = '<p>'
let end = '</p>'
$.ajax({
type: "GET",
url: '/list_webhook',
success: function(response) {
// Here, we get the response from our backend and build a div with
// <p></p> inside of it containing the type of the webhooks.
// Then, we call the next element, the uploadFile();
response = JSON.parse(response);
if (response.length > 0) {
response.forEach((e) => {
e.events.forEach((p) => {
$('YOUR DIV ID').append(start + p + end);
})
})
}
uploadFile();
},
error: function(response) {
console.log(response);
}
});
};

Upload a file

In this function, we will handle the upload file process. We need to intercept the form submit action and then make a POST with AXIOS to our backend.

function uploadFile() {
// Intercept the submit form action
$("YOUR FORM ID").submit(function() {
// Create a new formData, passing the real formData file to it.
var formData = new FormData(this);
$.ajax({
url: '/save_file',
type: 'POST',
processData: false,
contentType: false,
cache: false,
data: formData,
success: function(response) {
if (response === 'File uploaded, wait for it to be processed!') {
// Here you will make what you want to happen when the file
// was received in the backend and everything was ok with it.
} else {
// Here you need to display some message to the user if the file
// that he uploaded was not in the correct format or size.
}
},
error: function(response) {
console.log(response);
},
});
});
};

Check uploaded files

With this function, we will be able to check if the Leaf API already processed any files that we uploaded to our backend. We will build a div with links inside of it, linking to another function: get_json(), that will retrieve all the data we need.

function checkFiles() {
// Define the string we will build
let start = `<a onclick="get_json(`;
let middle = `)>`;
let end = `</a>"`
$.ajax({
type: "GET",
url: '/verify_files',
success: function(response) {
if (response == 'No file processed yet!') {
// Display a message to your user saying that no files
// were processed yet
} else if (response == 'Invalid token btw, generate one first!') {
// Display a message to your user saying that he needs
// to generate a token first
} else {
// See the response from the backend and build an div
// containing the links to check files content.
response = JSON.parse(response);
response.forEach((e) => {
$('YOUR DIV ID').append(`<a onClick="get_json('` + e + `');"
style="cursor: pointer; cursor: hand;"><p>` + e + `</a>`);
});
}
},
error: function(response) {
// Display any error that cant occur during the response from backend.
console.log(response);
}
});
};

Get JSON data from files

With this function, we will receive an id from parameter, and we will send it to our backend, so the backend will send us the follow informations:

  • File details
  • File images
  • Images coordinates
function get_json(id) {
let file_id = id;
var allImages = new Array();
// With this GET request, we will send to the backend one file_id,
// and it will return the images linked to it.
$.ajax({
url: "/file_images/" + file_id,
type: 'GET',
async: false,
dataType: 'json',
success: function(res) {
// In this response, we will get all the images that
// are linked to the file_id, and we will save
// this images url in the allImages array.
res.dados.forEach((e) => {
allImages.push({
'url': e.url,
'type': e.property
});
});
}
});
+
// With this POST request, we will send to our backend all images url,
// the operation type of that images, and with the response we will
// build map layers.
$.ajax({
url: "/image_coordinates",
type: 'POST',
async: false,
dataType: 'json',
data: {
dados: JSON.stringify(allImages)
},
success: function(res) {
points = JSON.parse(res);
// Clear the actual options of layers
if (optionsShow.length > 0) {
optionsShow.forEach((e) => {
map.removeLayer(`'` + e + `'`);
map.removeSource(`'` + e + `'`);
})
}
optionsShow = [];
// Creating a list of avaible images so the user can click it and
// display the image on the map.
points.forEach((e) => {
$('YOUR DIV TO LIST THE IMAGES TYPE').append(`<a onClick="showImage('` + e[6] + `');" style="cursor: pointer;
cursor: hand;"><p>` + e[6] + `</a>`)
// Save the type of the image so the user can choose what to see
optionsShow.push(e[6]);
// Create the 4 points (x,y) real coordinates
// of the image, getting the points
// from the server response
let a = parseFloat(e[1].split(',')[0]);
let a1 = parseFloat(e[1].split(',')[1]);
let b = parseFloat(e[2].split(',')[0]);
let b1 = parseFloat(e[2].split(',')[1]);
let c = parseFloat(e[3].split(',')[0]);
let c1 = parseFloat(e[3].split(',')[1]);
let d = parseFloat(e[4].split(',')[0]);
let d1 = parseFloat(e[4].split(',')[1]);
// Make the map fly to the right coordinate of the images
map.flyTo({
center: [a, a1],
zoom: 17
});
// Add a source to the map, so we can add a layer to it
// e[6] has the type of the image
map.addSource(`'` + e[6] + `'`, {
'type': 'image',
// e[5] has the url of the image
'url': e[5],
'coordinates': [
[a, a1],
[b, b1],
[c, c1],
[d, d1]
]
});
// Add a layer to the map, so we can show and hide it in the future.
// e[6] has the type of the image
map.addLayer({
'id': `'` + e[6] + `'`,
'type': 'raster',
'source': `'` + e[6] + `'`,
'paint': {
'raster-fade-duration': 0
}
});
// set the layer visibility to none
map.setLayoutProperty(`'` + e[6] + `'`, 'visibility', 'none');
});
},
error: function(res) {
console.log(res);
}
});
+
// With this GET request, we will send an file id to the backend,
// and it will return the data about that file. e.g summary information
$.ajax({
url: "/file_details/" + file_id,
type: 'GET',
async: false,
dataType: 'json',
success: function(res) {
// Here you can define one function to show this data
// in some div of your page.
}
})
};

Show and hide map layers

With this function, we will receive an id from the parameter, and display that image if it's hidden, and hide it if it's show.

function showImage(id) {
let visiviel = map.getLayoutProperty(`'` + id + `'`, 'visibility');
if (visiviel === 'visible') {
map.setLayoutProperty(`'` + id + `'`, 'visibility', 'none');
} else {
map.setLayoutProperty(`'` + id + `'`, 'visibility', 'visible');
}
}

Extra

Don't forget to create an Map, a div for it and replace the YOUR MAPBOX TOKEN, otherwise, the map will not work!

mapboxgl.accessToken = 'YOUR MAPBOX TOKEN';
const map = new mapboxgl.Map({
container: 'map',
maxZoom: 20,
minZoom: 1,
zoom: 0,
center: [0, 0],
style: 'mapbox://styles/mapbox/satellite-v9'
});
+
map.on('load', () => {});

See here more informations about Mapbox!

tip

Here you can run a live use case demo!

Edit webhook-leaf-api

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/user_management_endpoints/index.html b/docs/user_management_endpoints/index.html new file mode 100644 index 000000000..7dd463165 --- /dev/null +++ b/docs/user_management_endpoints/index.html @@ -0,0 +1,43 @@ + + + + + + + + +Leaf User Endpoints | Leaf + + + + + + + + + + + + + +
+

Leaf User Endpoints

About

To briefly recap the Leaf User overview: a Leaf User is equivalent to the end user of your application (e.g. a grower). A Leaf User provides a way to keep your customers' data organized under your API owner. As a developer, you’ll need to create a Leaf User and connect the provider(s) you wish to integrate your platform with.

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/usermanagement/api

See below the REST resources and their endpoints available in this service.

Leaf Users Resources

Form of a Leaf User resource:

{
"id": "UUID",
"name": "str",
"email": "help@withleaf.io",
"phone": "str",
"address": "str",
"trimbleCredentials": {"Object"},
"cnhiCredentials": {"Object"},
"johnDeereCredentials": {"Object"},
"ravenCredentials": {"Object"},
"climateFieldViewCredentials": {"Object"},
"staraCredentials": {"Object"},
"agLeaderCredentials": {"Object"},
"ravenSlingshotCredentials": {"Object"}
}

Check the providers credentials endpoints for more details about the credentials object.

The following endpoints are available:

DescriptionEndpoints
Get all Leaf UsersGET /users/
Get a Leaf UserGET /users/{id}
Create a Leaf UserPOST /users
Update a Leaf UserPUT /users
Delete a Leaf UserDELETE /users/{id}

User Endpoints

Get all Leaf Users

 GET /users

Get all Leaf Users.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users'

Response

[
{
"id": "UUID",
"name": "str",
"email": "help@withleaf.io",
"phone": "str",
"address": "str",
"trimbleCredentials": {"Object"},
"cnhiCredentials": {"Object"},
"johnDeereCredentials": {"Object"},
"ravenCredentials": {"Object"},
"climateFieldViewCredentials": {"Object"},
"staraCredentials": {"Object"},
"agLeaderCredentials": {"Object"},
"ravenSlingshotCredentials": {"Object"}
},
....
]

Check the providers credentials endpoints for more details about the credentials object.

Get a Leaf User

 GET /users/{id}

Get a Leaf User by its id. This request looks up an individual Leaf User (such as a grower) and returns the details associated with their account, including provider credentials such as ID, created date and tokens.

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{id}'

Response

{
"id": "UUID",
"name": "str",
"email": "help@withleaf.io",
"phone": "str",
"address": "str",
"trimbleCredentials": {"Object"},
"cnhiCredentials": {"Object"},
"johnDeereCredentials": {"Object"},
"ravenCredentials": {"Object"},
"climateFieldViewCredentials": {"Object"},
"staraCredentials": {"Object"},
"agLeaderCredentials": {"Object"},
"ravenSlingshotCredentials": {"Object"}
}

Create a Leaf User

 POST /users

Creates a Leaf User. You will need to create a Leaf User when linking a provider for the first time.

Request body

{
"name": "str",
"email": "help@withleaf.io",
"phone": "str",
"address": "str"
}

Besides the four properties of the example above, once you have created +credentials for a provider like John Deere, you can add an entry like the +following. Specifying the ID of the credentials object previously created will link it to the Leaf User being created. This will enable you to start querying farm data from the provider. Check the +providers credentials endpoints for more details about the credentials object.

"johnDeereCredentials": {
"id": "UUID"
}

Request examples

curl -X POST \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "name": "str", "email": "help@withleaf.io", "phone": "str", "address": "str"}' \
'https://api.withleaf.io/services/usermanagement/api/users'

Response

{
"id": "UUID",
"name": "str",
"email": "help@withleaf.io",
"phone": "str",
"address": "str"
}

Update a Leaf User

 PUT /users

Edits an existing Leaf User by submitting a new one.

Request body

{
"id": "UUID",
"name": "str",
"email": "help@withleaf.io",
"phone": "str",
"address": "str"
}

Note that if the existing resource has credentials and you don't include them +in the body, the new Leaf User will have no credentials. Said that, for keeping +the credentials or updating them, include in the JSON above an entry. +Check the providers credentials endpoints for more details about the credentials object.

"johnDeereCredentials": {
"id": "UUID"
}

Request examples

curl -X PUT \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{ "id": "UUID", name": "str", "email": "help@withleaf.io", "phone": "str", "address": "str"}' \
'https://api.withleaf.io/services/usermanagement/api/users'

Response

{
"id": "UUID",
"name": "str",
"email": "help@withleaf.io",
"phone": "str",
"address": "str"
}

Delete a Leaf User

 DELETE /users/{id}

Deletes an existing Leaf User by id.

Request examples

curl -X DELETE \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/usermanagement/api/users/{id}'

Providers credentials endpoints

After connecting with a provider, a summary of the available resources can be accessed using the Integration resource endpoint.

tip

Please don't hesitate to contact us at help@withleaf.io to schedule a demo, ask a question, request sample data, or suggest a feature!

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/user_management_overview/index.html b/docs/user_management_overview/index.html new file mode 100644 index 000000000..3354148fa --- /dev/null +++ b/docs/user_management_overview/index.html @@ -0,0 +1,37 @@ + + + + + + + + +Leaf User Overview | Leaf + + + + + + + + + + + + + +
+

Leaf User Overview

About

For Leaf to be able to access, process and return standardized files from providers, you first need to create a ‘Leaf User’, which you’ll later connect to your customers’ preferred data provider(s).

What is a Leaf user?

  • A Leaf User provides a way to keep your customers' data organized under your API owner. You'll attach 3rd party credentials to these entities.
  • A Leaf User is equivalent to a customer/grower account.
  • The same Leaf User/grower can integrate with multiple providers via a user-authentication process for each provider.
Leaf user

Where to next?

If integrating a provider via Leaf’s API

Once you’ve created a Leaf User (after setting up configurations and alerts), proceed to provider authentication. There we will show you how to integrate a provider and attach the provider credentials to your Leaf User so you can start receiving standardized data via Leaf.

If implementing manual file upload

If you’re looking to implement manual file upload functionality for thumb drive data, click here next.

Need more guidance? Contact us at help@withleaf.io.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/weather_endpoints/index.html b/docs/weather_endpoints/index.html new file mode 100644 index 000000000..b44b9b17d --- /dev/null +++ b/docs/weather_endpoints/index.html @@ -0,0 +1,46 @@ + + + + + + + + +Weather Endpoints | Leaf + + + + + + + + + + + + + +
+

Weather Endpoints

About

Here we list all the available endpoints from Leaf's Weather API. For an easy way to call them, +we recommend using Leaf's Postman collection.

All HTTP methods should be prepended by this service's endpoint:

https://api.withleaf.io/services/weather/api

This service has the following endpoints available:

DescriptionEndpoints
Get Daily ForecastGET /users/{leafUserId}/weather/forecast/field/{fieldId}/daily
Get Hourly ForecastGET /users/{leafUserId}/weather/forecast/field/{fieldId}/hourly
Get Daily Forecast for lat/longGET /weather/forecast/daily/{lat},{lon}
Get Hourly Forecast for lat/longGET /weather/forecast/hourly/{lat},{lon}
Get Daily HistoricalGET /users/{leafUserId}/weather/historical/field/{fieldId}/daily
Get Hourly HistoricalGET /users/{leafUserId}/weather/historical/field/{fieldId}/hourly
Get Daily Historical for lat/longGET /weather/historical/daily/{lat},{lon}
Get Hourly Historical for lat/longGET /weather/historical/hourly/{lat},{lon}
Note

Daily data endpoints are limited to a request of one year (366 days), so endTime - startTime <= 366. Hourly data endpoints are limited to an interval of 30 days per request, so endTime - startTime <= 30.

Endpoints

Get Daily Forecast

 GET /users/{leafUserId}/weather/forecast/field/{fieldId}/daily

Get daily forecasted weather data by leaf user and field. If dates are not set on the endpoint, +the response will return forecast data for the next seven days by default.

Parameter (to filter by)values
endTimeLocal date. Returns operations until the endTime
startTimeLocal date. Returns operations from the startTime onward
modelWeather model data: icon, gfs, ifs, jma, gem or arpegeArome. The default is gfs
unitsSystem of units: imperial or metric. The default is metric

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/forecast/field/{fieldId}/daily'

Response

{
"type": "Feature",
"properties": {
"maxTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 28.8
},
{
"time": "2023-07-22T00:00:00",
"value": 28.1
},
....
],
"unit": "ºC"
},
"meanSoilTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 25.3
},
{
"time": "2023-07-22T00:00:00",
"value": 25.1
},
....
],
"unit": "°C"
},
"minSoilTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 18.7
},
{
"time": "2023-07-22T00:00:00",
"value": 17.2
},
....
],
"unit": "°C"
},
"maxSoilTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 28.9
},
{
"time": "2023-07-22T00:00:00",
"value": 27.9
},
....
],
"unit": "°C"
},
"sunrise": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": "2023-07-21T10:52"
},
{
"time": "2023-07-22T00:00:00",
"value": "2023-07-22T10:53"
},
....
],
"unit": "iso8601"
},
"snowfallSum": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.0
},
{
"time": "2023-07-22T00:00:00",
"value": 0.0
},
....
],
"unit": "cm"
},
"precipitationSum": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.0
},
{
"time": "2023-07-22T00:00:00",
"value": 0.0
},
....
],
"unit": "cm"
},
"maxWindspeed": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 15.2
},
{
"time": "2023-07-22T00:00:00",
"value": 19.9
},
....
],
"unit": "km/h"
},
"evapotranspiration": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 3.76
},
{
"time": "2023-07-22T00:00:00",
"value": 4.93
},
....
],
"unit": "mm"
},
"processedTime": "2023-07-21T13:01:11.662397",
"rainSum": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.0
},
{
"time": "2023-07-22T00:00:00",
"value": 0.0
},
....
],
"unit": "mm"
},
"maxWindgusts": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 27.0
},
{
"time": "2023-07-22T00:00:00",
"value": 24.1
},
....
],
"unit": "km/h"
},
"meanTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 25.0
},
{
"time": "2023-07-22T00:00:00",
"value": 23.6
},
....
],
"unit": "ºC"
},
"minTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 21.1
},
{
"time": "2023-07-22T00:00:00",
"value": 18.9
},
....
],
"unit": "ºC"
},
"sunset": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": "2023-07-22T01:11"
},
{
"time": "2023-07-22T00:00:00",
"value": "2023-07-23T01:10"
},
....
],
"unit": "iso8601"
},
"windDirection": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 350.0
},
{
"time": "2023-07-22T00:00:00",
"value": 332.0
},
....
],
"unit": "°"
}
},
"geometry": {
"type": "Point",
"coordinates": [
-89.64355775454169,
39.802794365611476
]
}
}

Get Hourly Forecast

 GET /users/{leafUserId}/weather/forecast/field/{fieldId}/hourly

Get hourly forecasted weather data by Leaf User and field. If dates are not set on the endpoint, the response +will return forecast data for the next seven days by default.

Parameter (to filter by)values
endTimeLocal date. Returns operations until the endTime
startTimeLocal date. Returns operations from the startTime onward
modelWeather model data: icon, gfs, ifs, jma, gem or arpegeArome. The default is gfs
unitsSystem of units: imperial or metric. The default is metric

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/forecast/field/{fieldId}/hourly'

Response

{
"type": "Feature",
"properties": {
"rain": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.0
},
{
"time": "2023-07-21T01:00:00",
"value": 0.0
},
....
],
"unit": "mm"
},
"soilTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 28.2
},
{
"time": "2023-07-21T01:00:00",
"value": 27.9
},
....
],
"unit": "°C"
},
"soilMoisture 0-1": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.1
},
{
"time": "2023-07-21T01:00:00",
"value": 0.1
},
....
],
"unit": "m³/m³"
},
"soilMoisture 1-3": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.2
},
{
"time": "2023-07-21T01:00:00",
"value": 0.2
},
....
],
"unit": "m³/m³"
},
"soilMoisture 3-9": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.3
},
{
"time": "2023-07-21T01:00:00",
"value": 0.3
},
....
],
"unit": "m³/m³"
},
"soilMoisture 9-27": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.4
},
{
"time": "2023-07-21T01:00:00",
"value": 0.4
},
....
],
"unit": "m³/m³"
},
"soilMoisture 27-81": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.5
},
{
"time": "2023-07-21T01:00:00",
"value": 0.5
},
....
],
"unit": "m³/m³"
},
"longwaveRadiation": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 563.8
},
{
"time": "2023-07-21T01:00:00",
"value": 642.3
},
....
],
"unit": "W/m²"
},
"dewpoint": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 22.6
},
{
"time": "2023-07-21T01:00:00",
"value": 22.6
},
....
],
"unit": "ºC"
},
"windgusts": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 9.4
},
{
"time": "2023-07-21T01:00:00",
"value": 5.8
},
....
],
"unit": "km/h"
},
"snowfall": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.0
},
{
"time": "2023-07-21T01:00:00",
"value": 0.0
},
....
],
"unit": "mm"
},
"evapotranspiration": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.11
},
{
"time": "2023-07-21T01:00:00",
"value": 0.04
},
....
],
"unit": "mm"
},
"shortwaveRadiation": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 146.0
},
{
"time": "2023-07-21T01:00:00",
"value": 2.0
},
....
],
"unit": "W/m²"
},
"processedTime": "str",
"cloudcover": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 51.0
},
{
"time": "2023-07-21T01:00:00",
"value": 100.0
},
....
],
"unit": "%"
},
"precipitation": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.0
},
{
"time": "2023-07-21T01:00:00",
"value": 0.0
},
....
],
"unit": "mm"
},
"relativeHumidity": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 75.0
},
{
"time": "2023-07-21T01:00:00",
"value": 80.0
},
....
],
"unit": "%"
},
"temperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 27.4
},
{
"time": "2023-07-21T01:00:00",
"value": 26.3
},
....
],
"unit": "ºC"
},
"windspeed": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 3.1
},
{
"time": "2023-07-21T01:00:00",
"value": 5.7
},
....
],
"unit": "km/h"
},
"windDirection": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 234.0
},
{
"time": "2023-07-21T01:00:00",
"value": 72.0
},
....
],
"unit": "km/h"
}
},
"geometry": {
"type": "Point",
"coordinates": [
-89.64355775454169,
39.802794365611476
]
}
}

Get Daily Forecast for lat/lon

 GET /weather/forecast/daily/{lat},{lon}

Get daily forecasted weather data for lat/lon by leaf user and field. If dates are not set on the endpoint, +the response will return forecast data for the next seven days by default.

Parameter (to filter by)values
endTimeLocal date. Returns operations until the endTime
startTimeLocal date. Returns operations from the startTime onward
modelWeather model data: icon, gfs, ifs, jma, gem or arpegeArome. The default is gfs
unitsSystem of units: imperial or metric. The default is metric

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/weather/api/weather/forecast/daily/{lat},{lon}'

Response

{
"type": "Feature",
"properties": {
"maxTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 28.8
},
{
"time": "2023-07-22T00:00:00",
"value": 28.1
},
....
],
"unit": "ºC"
},
"meanSoilTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 25.3
},
{
"time": "2023-07-22T00:00:00",
"value": 25.1
},
....
],
"unit": "°C"
},
"minSoilTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 18.7
},
{
"time": "2023-07-22T00:00:00",
"value": 17.2
},
....
],
"unit": "°C"
},
"maxSoilTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 28.9
},
{
"time": "2023-07-22T00:00:00",
"value": 27.9
},
....
],
"unit": "°C"
},
"sunrise": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": "2023-07-21T10:52"
},
{
"time": "2023-07-22T00:00:00",
"value": "2023-07-22T10:53"
},
....
],
"unit": "iso8601"
},
"snowfallSum": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.0
},
{
"time": "2023-07-22T00:00:00",
"value": 0.0
},
....
],
"unit": "cm"
},
"precipitationSum": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.0
},
{
"time": "2023-07-22T00:00:00",
"value": 0.0
},
....
],
"unit": "cm"
},
"maxWindspeed": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 15.2
},
{
"time": "2023-07-22T00:00:00",
"value": 19.9
},
....
],
"unit": "km/h"
},
"evapotranspiration": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 3.76
},
{
"time": "2023-07-22T00:00:00",
"value": 4.93
},
....
],
"unit": "mm"
},
"processedTime": "2023-07-21T13:01:11.662397",
"rainSum": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.0
},
{
"time": "2023-07-22T00:00:00",
"value": 0.0
},
....
],
"unit": "mm"
},
"maxWindgusts": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 27.0
},
{
"time": "2023-07-22T00:00:00",
"value": 24.1
},
....
],
"unit": "km/h"
},
"meanTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 25.0
},
{
"time": "2023-07-22T00:00:00",
"value": 23.6
},
....
],
"unit": "ºC"
},
"minTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 21.1
},
{
"time": "2023-07-22T00:00:00",
"value": 18.9
},
....
],
"unit": "ºC"
},
"sunset": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": "2023-07-22T01:11"
},
{
"time": "2023-07-22T00:00:00",
"value": "2023-07-23T01:10"
},
....
],
"unit": "iso8601"
},
"windDirection": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 350.0
},
{
"time": "2023-07-22T00:00:00",
"value": 332.0
},
....
],
"unit": "°"
}
},
"geometry": {
"type": "Point",
"coordinates": [
-89.64355775454169,
39.802794365611476
]
}
}

Get Hourly Forecast for lat/lon

 GET /weather/forecast/hourly/{lat},{lon}

Get hourly forecasted weather data for lat/lon by Leaf User and field. If dates are not set on the endpoint, the response +will return forecast data for the next seven days by default.

Parameter (to filter by)values
endTimeLocal date. Returns operations until the endTime
startTimeLocal date. Returns operations from the startTime onward
modelWeather model data: icon, gfs, ifs, jma, gem or arpegeArome. The default is gfs
unitsSystem of units: imperial or metric. The default is metric

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/weather/api/weather/forecast/hourly/{lat},{lon}'

Response

{
"type": "Feature",
"properties": {
"rain": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.0
},
{
"time": "2023-07-21T01:00:00",
"value": 0.0
},
....
],
"unit": "mm"
},
"soilTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 28.7
},
{
"time": "2023-07-21T01:00:00",
"value": 27.9
},
....
],
"unit": "°C"
},
"soilMoisture 0-1": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.1
},
{
"time": "2023-07-21T01:00:00",
"value": 0.1
},
....
],
"unit": "m³/m³"
},
"soilMoisture 1-3": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.2
},
{
"time": "2023-07-21T01:00:00",
"value": 0.2
},
....
],
"unit": "m³/m³"
},
"soilMoisture 3-9": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.3
},
{
"time": "2023-07-21T01:00:00",
"value": 0.3
},
....
],
"unit": "m³/m³"
},
"soilMoisture 9-27": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.4
},
{
"time": "2023-07-21T01:00:00",
"value": 0.4
},
....
],
"unit": "m³/m³"
},
"soilMoisture 27-81": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.5
},
{
"time": "2023-07-21T01:00:00",
"value": 0.5
},
....
],
"unit": "m³/m³"
},
"longwaveRadiation": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 563.8
},
{
"time": "2023-07-21T01:00:00",
"value": 642.3
},
....
],
"unit": "W/m²"
},
"dewpoint": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 22.6
},
{
"time": "2023-07-21T01:00:00",
"value": 22.6
},
....
],
"unit": "ºC"
},
"windgusts": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 9.4
},
{
"time": "2023-07-21T01:00:00",
"value": 5.8
},
....
],
"unit": "km/h"
},
"snowfall": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.0
},
{
"time": "2023-07-21T01:00:00",
"value": 0.0
},
....
],
"unit": "mm"
},
"evapotranspiration": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.11
},
{
"time": "2023-07-21T01:00:00",
"value": 0.04
},
....
],
"unit": "mm"
},
"shortwaveRadiation": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 146.0
},
{
"time": "2023-07-21T01:00:00",
"value": 2.0
},
....
],
"unit": "W/m²"
},
"processedTime": "str",
"cloudcover": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 51.0
},
{
"time": "2023-07-21T01:00:00",
"value": 100.0
},
....
],
"unit": "%"
},
"precipitation": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 0.0
},
{
"time": "2023-07-21T01:00:00",
"value": 0.0
},
....
],
"unit": "mm"
},
"relativeHumidity": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 75.0
},
{
"time": "2023-07-21T01:00:00",
"value": 80.0
},
....
],
"unit": "%"
},
"temperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 27.4
},
{
"time": "2023-07-21T01:00:00",
"value": 26.3
},
....
],
"unit": "ºC"
},
"windspeed": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 3.1
},
{
"time": "2023-07-21T01:00:00",
"value": 5.7
},
....
],
"unit": "km/h"
},
"windDirection": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 234.0
},
{
"time": "2023-07-21T01:00:00",
"value": 72.0
},
....
],
"unit": "km/h"
}
},
"geometry": {
"type": "Point",
"coordinates": [
-89.64355775454169,
39.802794365611476
]
}
}

Get Daily Historical

 GET /users/{leafUserId}/weather/historical/field/{fieldId}/daily

Get daily historical weather data by Leaf User and field. If the dates are not defined in the endpoint, the response +will return data from the last seven days by default.

Please note, historical weather data from less than 5 days ago is unavailable. If you’re wanting historical weather data within the last 5 days, you can use the forecast service to get this information.

Parameter (to filter by)values
endTimeLocal date. Returns operations until the endTime
startTimeLocal date. Returns operations from the startTime onward
modelHistorical model data: era5 or era5Land. The default is era5
unitsSystem of units: imperial or metric. The default is metric

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/historical/field/{fieldId}/daily'

Response

{
"type": "Feature",
"properties": {
"maxTemperature": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 31.9
},
{
"time": "2023-07-15T00:00:00",
"value": 32.0
},
....
],
"unit": "ºC"
},
"meanSoilTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 25.3
},
{
"time": "2023-07-22T00:00:00",
"value": 25.1
},
....
],
"unit": "°C"
},
"minSoilTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 18.7
},
{
"time": "2023-07-22T00:00:00",
"value": 17.2
},
....
],
"unit": "°C"
},
"maxSoilTemperature": {
"values": [
{
"time": "2023-07-21T00:00:00",
"value": 28.9
},
{
"time": "2023-07-22T00:00:00",
"value": 27.9
},
....
],
"unit": "°C"
},
"sunrise": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": "2023-07-14T10:47"
},
{
"time": "2023-07-15T00:00:00",
"value": "2023-07-15T10:48"
},
....
],
"unit": "iso8601"
},
"snowfallSum": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.0
},
{
"time": "2023-07-15T00:00:00",
"value": 0.0
},
....
],
"unit": "cm"
},
"precipitationSum": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.3
},
{
"time": "2023-07-15T00:00:00",
"value": 0.2
},
....
],
"unit": "mm"
},
"maxWindspeed": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 14.1
},
{
"time": "2023-07-15T00:00:00",
"value": 13.5
},
....
],
"unit": "km/h"
},
"evapotranspiration": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 4.51
},
{
"time": "2023-07-15T00:00:00",
"value": 3.62
},
....
],
"unit": "mm"
},
"processedTime": "2023-07-21T16:50:17.965109",
"rainSum": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.3
},
{
"time": "2023-07-15T00:00:00",
"value": 0.2
},
....
],
"unit": "mm"
},
"maxWindgusts": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 26.3
},
{
"time": "2023-07-15T00:00:00",
"value": 25.8
},
....
],
"unit": "km/h"
},
"meanTemperature": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 28.1
},
{
"time": "2023-07-15T00:00:00",
"value": 26.8
},
....
],
"unit": "ºC"
},
"minTemperature": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 26.1
},
{
"time": "2023-07-15T00:00:00",
"value": 23.2
},
....
],
"unit": "ºC"
},
"sunset": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": "2023-07-15T01:15"
},
{
"time": "2023-07-15T00:00:00",
"value": "2023-07-16T01:14"
},
....
],
"unit": "iso8601"
},
"windDirection": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 206.0
},
{
"time": "2023-07-15T00:00:00",
"value": 209.0
},
....
],
"unit": "°"
}
},
"geometry": {
"type": "Point",
"coordinates": [
-89.64355775454169,
39.802794365611476
]
}
}

Get Hourly Historical

 GET /users/{leafUserId}/weather/historical/field/{fieldId}/hourly

Get hourly historical weather data by Leaf User and field. If the dates are not defined in the endpoint, the response +will return data from the last seven days by default.

Parameter (to filter by)values
endTimeLocal date. Returns operations until the endTime
startTimeLocal date. Returns operations from the startTime onward
modelHistorical model data: era5 or era5Land. The default is era5
unitsSystem of units: imperial or metric. The default is metric

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/historical/field/{fieldId}/hourly'

Response

{
"type": "Feature",
"properties": {
"rain": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.0
},
{
"time": "2023-07-14T01:00:00",
"value": 0.0
},
....
],
"unit": "mm"
},
"soilMoisture 0-7": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.1
},
{
"time": "2023-07-14T01:00:00",
"value": 0.1
},
....
],
"unit": "m³/m³"
},
"soilMoisture 7-28": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.2
},
{
"time": "2023-07-14T01:00:00",
"value": 0.2
},
....
],
"unit": "m³/m³"
},
"soilMoisture 28-100": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.3
},
{
"time": "2023-07-14T01:00:00",
"value": 0.3
},
....
],
"unit": "m³/m³"
},
"soilMoisture 100-255": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.4
},
{
"time": "2023-07-14T01:00:00",
"value": 0.4
},
....
],
"unit": "m³/m³"
},
"longwaveRadiation": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 563.8
},
{
"time": "2023-07-14T01:00:00",
"value": 642.3
},
....
],
"unit": "W/m²"
},
"dewpoint": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 23.4
},
{
"time": "2023-07-14T01:00:00",
"value": 23.3
},
....
],
"unit": "ºC"
},
"windgusts": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 17.6
},
{
"time": "2023-07-14T01:00:00",
"value": 19.1
},
....
],
"unit": "km/h"
},
"snowfall": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.0
},
{
"time": "2023-07-14T01:00:00",
"value": 0.0
},
....
],
"unit": "mm"
},
"evapotranspiration": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.18
},
{
"time": "2023-07-14T01:00:00",
"value": 0.08
},
....
],
"unit": "mm"
},
"shortwaveRadiation": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 176.0
},
{
"time": "2023-07-14T01:00:00",
"value": 40.0
},
....
],
"unit": "W/m²"
},
"processedTime": "str",
"cloudcover": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 9.0
},
{
"time": "2023-07-14T01:00:00",
"value": 5.0
},
....
],
"unit": "%"
},
"precipitation": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.0
},
{
"time": "2023-07-14T01:00:00",
"value": 0.0
},
....
],
"unit": "mm"
},
"soilTemperature": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 30.2
},
{
"time": "2023-07-14T01:00:00",
"value": 29.8
},
....
],
"unit": "ºC"
},
"relativeHumidity": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 61.0
},
{
"time": "2023-07-14T01:00:00",
"value": 62.0
},
....
],
"unit": "%"
},
"temperature": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 31.9
},
{
"time": "2023-07-14T01:00:00",
"value": 31.4
},
....
],
"unit": "ºC"
},
"windspeed": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 7.7
},
{
"time": "2023-07-14T01:00:00",
"value": 6.4
},
....
],
"unit": "km/h"
},
"windDirection": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 233.0
},
{
"time": "2023-07-14T01:00:00",
"value": 223.0
},
....
],
"unit": "km/h"
}
},
"geometry": {
"type": "Point",
"coordinates": [
-89.64355775454169,
39.802794365611476
]
}
}

Get Daily Historical for lat/lon

 GET /weather/historical/daily/{lat},{lon}

Get daily historical weather data for lat/lon by Leaf User and field. If the dates are not defined in the endpoint, the response +will return data from the last seven days by default.

Please note, historical weather data from less than 5 days ago is unavailable. If you’re wanting historical weather data within the last 5 days, you can use the forecast service to get this information.

Parameter (to filter by)values
endTimeLocal date. Returns operations until the endTime
startTimeLocal date. Returns operations from the startTime onward
modelHistorical model data: era5 or era5Land. The default is era5
unitsSystem of units: imperial or metric. The default is metric

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/weather/api/weather/historical/daily/{lat},{lon}'

Response

{
"type": "Feature",
"properties": {
"maxTemperature": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 31.9
},
{
"time": "2023-07-15T00:00:00",
"value": 32.0
},
....
],
"unit": "ºC"
},
"meanSoilTemperature": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 25.3
},
{
"time": "2023-07-15T00:00:00",
"value": 25.1
},
....
],
"unit": "°C"
},
"minSoilTemperature": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 18.7
},
{
"time": "2023-07-15T00:00:00",
"value": 17.2
},
....
],
"unit": "°C"
},
"maxSoilTemperature": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 28.6
},
{
"time": "2023-07-15T00:00:00",
"value": 27.9
},
....
],
"unit": "°C"
},
"sunrise": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": "2023-07-14T10:47"
},
{
"time": "2023-07-15T00:00:00",
"value": "2023-07-15T10:48"
},
....
],
"unit": "iso8601"
},
"snowfallSum": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.0
},
{
"time": "2023-07-15T00:00:00",
"value": 0.0
},
....
],
"unit": "cm"
},
"precipitationSum": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.3
},
{
"time": "2023-07-15T00:00:00",
"value": 0.2
},
....
],
"unit": "mm"
},
"maxWindspeed": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 14.1
},
{
"time": "2023-07-15T00:00:00",
"value": 13.5
},
....
],
"unit": "km/h"
},
"evapotranspiration": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 4.51
},
{
"time": "2023-07-15T00:00:00",
"value": 3.62
},
....
],
"unit": "mm"
},
"processedTime": "2023-07-21T16:50:17.965109",
"rainSum": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.3
},
{
"time": "2023-07-15T00:00:00",
"value": 0.2
},
....
],
"unit": "mm"
},
"maxWindgusts": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 26.3
},
{
"time": "2023-07-15T00:00:00",
"value": 25.8
},
....
],
"unit": "km/h"
},
"meanTemperature": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 28.1
},
{
"time": "2023-07-15T00:00:00",
"value": 26.8
},
....
],
"unit": "ºC"
},
"minTemperature": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 26.1
},
{
"time": "2023-07-15T00:00:00",
"value": 23.2
},
....
],
"unit": "ºC"
},
"sunset": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": "2023-07-15T01:15"
},
{
"time": "2023-07-15T00:00:00",
"value": "2023-07-16T01:14"
},
....
],
"unit": "iso8601"
},
"windDirection": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 206.0
},
{
"time": "2023-07-15T00:00:00",
"value": 209.0
},
....
],
"unit": "°"
}
},
"geometry": {
"type": "Point",
"coordinates": [
-89.64355775454169,
39.802794365611476
]
}
}

Get Hourly Historical for lat/lon

 GET /weather/historical/hourly/{lat},{lon}

Get hourly historical weather data for lat/lon by Leaf User and field. If the dates are not defined in the endpoint, the response +will return data from the last seven days by default.

Parameter (to filter by)values
endTimeLocal date. Returns operations until the endTime
startTimeLocal date. Returns operations from the startTime onward
modelHistorical model data: era5 or era5Land. The default is era5
unitsSystem of units: imperial or metric. The default is metric

Request examples

curl -X GET \
-H 'Authorization: Bearer YOUR_TOKEN' \
'https://api.withleaf.io/services/weather/api/weather/historical/hourly/{lat},{lon}'

Response

{
"type": "Feature",
"properties": {
"rain": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.0
},
{
"time": "2023-07-14T01:00:00",
"value": 0.0
},
....
],
"unit": "mm"
},
"soilMoisture 0-7": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.1
},
{
"time": "2023-07-14T01:00:00",
"value": 0.1
},
....
],
"unit": "m³/m³"
},
"soilMoisture 7-28": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.2
},
{
"time": "2023-07-14T01:00:00",
"value": 0.2
},
....
],
"unit": "m³/m³"
},
"soilMoisture 28-100": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.3
},
{
"time": "2023-07-14T01:00:00",
"value": 0.3
},
....
],
"unit": "m³/m³"
},
"soilMoisture 100-255": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.4
},
{
"time": "2023-07-14T01:00:00",
"value": 0.4
},
....
],
"unit": "m³/m³"
},
"longwaveRadiation": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 563.8
},
{
"time": "2023-07-14T01:00:00",
"value": 642.3
},
....
],
"unit": "W/m²"
},
"dewpoint": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 23.4
},
{
"time": "2023-07-14T01:00:00",
"value": 23.3
},
....
],
"unit": "ºC"
},
"windgusts": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 17.6
},
{
"time": "2023-07-14T01:00:00",
"value": 19.1
},
....
],
"unit": "km/h"
},
"snowfall": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.0
},
{
"time": "2023-07-14T01:00:00",
"value": 0.0
},
....
],
"unit": "mm"
},
"evapotranspiration": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.18
},
{
"time": "2023-07-14T01:00:00",
"value": 0.08
},
....
],
"unit": "mm"
},
"shortwaveRadiation": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 176.0
},
{
"time": "2023-07-14T01:00:00",
"value": 40.0
},
....
],
"unit": "W/m²"
},
"processedTime": "str",
"cloudcover": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 9.0
},
{
"time": "2023-07-14T01:00:00",
"value": 5.0
},
....
],
"unit": "%"
},
"precipitation": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 0.0
},
{
"time": "2023-07-14T01:00:00",
"value": 0.0
},
....
],
"unit": "mm"
},
"soilTemperature": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 30.2
},
{
"time": "2023-07-14T01:00:00",
"value": 29.8
},
....
],
"unit": "ºC"
},
"relativeHumidity": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 61.0
},
{
"time": "2023-07-14T01:00:00",
"value": 62.0
},
....
],
"unit": "%"
},
"temperature": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 31.9
},
{
"time": "2023-07-14T01:00:00",
"value": 31.4
},
....
],
"unit": "ºC"
},
"windspeed": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 7.7
},
{
"time": "2023-07-14T01:00:00",
"value": 6.4
},
....
],
"unit": "km/h"
},
"windDirection": {
"values": [
{
"time": "2023-07-14T00:00:00",
"value": 233.0
},
{
"time": "2023-07-14T01:00:00",
"value": 223.0
},
....
],
"unit": "km/h"
}
},
"geometry": {
"type": "Point",
"coordinates": [
-89.64355775454169,
39.802794365611476
]
}
}
Warning

If there is no data available at that time/day, the property will be returned as null.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/weather_overview/index.html b/docs/weather_overview/index.html new file mode 100644 index 000000000..e0821a432 --- /dev/null +++ b/docs/weather_overview/index.html @@ -0,0 +1,40 @@ + + + + + + + + +Weather Overview | Leaf + + + + + + + + + + + + + +
+

Weather Overview

About

With Leaf Weather, you can access unified weather data at a field level. Below you’ll find more about what forecasted +and historical weather variables are available and which data sources are supported through Leaf’s API.

Forecast

Leaf’s weather forecast service provides access to forecasted weather data for the past 5 days - up to 10 days in the future. The data can be fetched +daily or hourly.

Properties

  • Cloud cover
  • Dew-point (2 m)
  • Evapotranspiration
  • Precipitation
  • Rain
  • Relative Humidity (2 m)
  • Short Wave Radiation
  • Long Wave Radiation
  • Snowfall
  • Sunrise
  • Sunset
  • Temperature (2 m)
  • Soil Temperature (0 cm)
  • Soil Moisture (0-1 cm; 1-3 cm; 3-9 cm; 9-27 cm; 27-81 cm)
  • Wind Direction (10 m)
  • Wind Gusts (10 m)
  • Wind Speed (10 m)

Data sources

Weather ModelNational Weather ProviderOrigin CountryResolutionForecast LengthUpdate Frequency
ICONDeutscher Wetterdienst (DWD)Germany2 - 11 km7.5 daysEvery 3 hours
GFSNOAAUnited States3 - 25 km16 daysEvery hour
Arpege & AromeMeteoFranceFrance1 - 40 km4 daysEvery 6 hours
IFSECMWFEuropean Union44 km7 daysEvery 6 hours
JMAJMAJapan5 - 55 km11 daysEvery 3 hours
GEMCanadian Weather ServiceCanada2.5 km10 daysEvery 6 hours
Warning

The service uses an option to provide the best forecast for any given location worldwide, based on the models available.

Availability by Weather Model

PropertyUnit of measurementDescription
meanTemperatureImperial: ºF; Metric: ºCMean daily air temperature at 2 meters above ground.
minTemperatureImperial: ºF; Metric: ºCMinimum daily air temperature at 2 meters above ground.
maxTemperatureImperial: ºF; Metric: ºCMaximum daily air temperature at 2 meters above ground.
meanSoilTemperatureImperial: ºF; Metric: ºCMean surface temperature (0 cm deep), which can be water or land.
minSoilTemperatureImperial: ºF; Metric: ºCMinimum surface temperature (0 cm deep), which can be water or land.
maxSoilTemperatureImperial: ºF; Metric: ºCMaximum surface temperature (0 cm deep), which can be water or land.
soilMoisturem³/m³Average soil water content as volumetric mixing ratio at 0-1, 1-3, 3-9, 9-27 and 27-81 cm depths.
sunriseiso8601Sunrise time.
sunsetiso8601Sunset time.
maxWindspeedImperial: mph, Metric: km/hMaximum wind speed on a day.
maxWindgustsImperial: mph, Metric: km/hMaximum wind gusts on a day.
windDirectionºDominant wind direction.
evapotranspirationImperial: inch, Metric: mmDaily sum of ET₀ Reference Evapotranspiration of a well watered grass field.
rainSumImperial: inch, Metric: mmSum of daily rain.
snowfallSumImperial: inch, Metric: cmSum of daily snowfall.
precipitationSumImperial: inch, Metric: mmSum of daily precipitation (including rain, showers and snowfall).
dewpointImperial: ºF, Metric: ºCDew point temperature at 2 meters above ground.
longwaveRadiationW/m²Longwave radiation refers to thermal or infrared radiation emitted by the Earth back into space.
shortwaveRadiationW/m²Shortwave radiation is often quantified as solar irradiation incident on the Earth's atmosphere or surface.
cloudcover%Total cloud cover as an area fraction.
relativeHumidity%Relative humidity at 2 meters above ground.
tip

Sunrise and sunset variables are only available for daily forecast. Dew point, longwave radiation, shortwave radiation, cloud cover, soil moisture and relative humidity are only available for hourly forecast. The other variables have their corresponding values in both hourly and daily.

Historical Data

Leaf's historical weather service provides access to data from 1940 onwards when available. The data can +be fetched daily or hourly. Please note, historical weather data from less than 5 days ago is unavailable. If you’re wanting historical weather data within the last 5 days, you can use the forecast service to get this information.

Properties

  • Cloud cover
  • Dew-point (2 m)
  • Evapotranspiration
  • Precipitation
  • Rain
  • Relative Humidity (2 m)
  • Short Wave Radiation
  • Long Wave Radiation
  • Snowfall
  • Sunrise
  • Sunset
  • Temperature (2 m)
  • Soil Temperature (0 - 7 cm)
  • Soil Moisture (0-7 cm; 7-28 cm; 28-100 cm; 100-255 cm)
  • Wind Direction (10 m)
  • Wind Gusts (10 m)
  • Wind Speed (10 m)

Data sources

Reanalysis ModelRegionSpatial ResolutionTemporal ResolutionData AvailabilityUpdate Frequency
ERA5Global0.25° (~25 km)Hourly1940 to presentDaily with 5 days delay
ERA5-LandGlobal0.1° (~11 km)Hourly1950 to presentDaily with 5 days delay

Availability by Weather Model

PropertyUnit of measurementDescription
meanTemperatureImperial: ºF; Metric: ºCMean daily air temperature at 2 meters above ground.
minTemperatureImperial: ºF; Metric: ºCMinimum daily air temperature at 2 meters above ground.
maxTemperatureImperial: ºF; Metric: ºCMaximum daily air temperature at 2 meters above ground.
meanSoilTemperatureImperial: ºF; Metric: ºCMean surface temperature (0 cm deep), which can be water or land.
minSoilTemperatureImperial: ºF; Metric: ºCMinimum surface temperature (0 cm deep), which can be water or land.
maxSoilTemperatureImperial: ºF; Metric: ºCMaximum surface temperature (0 cm deep), which can be water or land.
soilMoisturem³/m³Average soil water content as volumetric mixing ratio at 0-7, 7-28, 28-100 and 100-255 cm depths.
sunriseiso8601Sunrise time.
sunsetiso8601Sunset time.
maxWindspeedImperial: mph, Metric: km/hMaximum wind speed on a day.
maxWindgustsImperial: mph, Metric: km/hMaximum wind gusts on a day.
windDirectionºDominant wind direction.
evapotranspirationImperial: inch, Metric: mmDaily sum of ET₀ Reference Evapotranspiration of a well watered grass field.
rainSumImperial: inch, Metric: mmSum of daily rain.
snowfallSumImperial: inch, Metric: cmSum of daily snowfall.
precipitationSumImperial: inch, Metric: mmSum of daily precipitation (including rain, showers and snowfall).
dewpointImperial: ºF, Metric: ºCDew point temperature at 2 meters above ground.
longwaveRadiationW/m²Longwave radiation refers to thermal or infrared radiation emitted by the Earth back into space.
shortwaveRadiationW/m²Shortwave radiation is often quantified as solar irradiation incident on the Earth's atmosphere or surface.
cloudcover%Total cloud cover as an area fraction.
relativeHumidity%Relative humidity at 2 meters above ground.
tip

Sunrise and sunset variables are only available for daily forecast. Dew point, longwave radiation, shortwave radiation, cloud cover, soil moisture and relative humidity are only available for hourly historical. The other variables have their corresponding values in both hourly and daily.

+ + + + + + + + + + + + + \ No newline at end of file diff --git a/e15c931c.1a35e8ca.js b/e15c931c.1a35e8ca.js new file mode 100644 index 000000000..dc8d68955 --- /dev/null +++ b/e15c931c.1a35e8ca.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[78],{132:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return l})),n.d(t,"metadata",(function(){return p})),n.d(t,"rightToc",(function(){return c})),n.d(t,"default",(function(){return d}));var a=n(2),r=n(6),i=(n(0),n(153)),s=n(160),o=n(161),l=(n(155),{title:"Beta > Prescriptions Endpoints",description:"Beta - Prescriptions Endpoints",sidebar_label:"Endpoints"}),p={unversionedId:"beta_prescriptions_endpoints",id:"beta_prescriptions_endpoints",isDocsHomePage:!1,title:"Beta > Prescriptions Endpoints",description:"Beta - Prescriptions Endpoints",source:"@site/docs/beta_prescriptions_endpoints.md",permalink:"/docs/docs/beta_prescriptions_endpoints",editUrl:"https://github.com/Leaf-Agriculture/docs/tree/master/docs/beta_prescriptions_endpoints.md",sidebar_label:"Endpoints",sidebar:"docs",previous:{title:"Beta > Assets Endpoints",permalink:"/docs/docs/beta_assets_endpoints"},next:{title:"Beta > Layers Endpoints",permalink:"/docs/docs/beta_layers_endpoints"}},c=[{value:"About",id:"about",children:[]},{value:"Prescription (BETA)",id:"prescription-beta",children:[{value:"Upload prescription to Raven Slingshot",id:"upload-prescription-to-raven-slingshot",children:[]},{value:"List prescriptions from Raven Slingshot",id:"list-prescriptions-from-raven-slingshot",children:[]},{value:"Upload prescription to John Deere",id:"upload-prescription-to-john-deere",children:[]},{value:"List prescriptions from John Deere",id:"list-prescriptions-from-john-deere",children:[]},{value:"Download prescription from John Deere",id:"download-prescription-from-john-deere",children:[]},{value:"Upload prescription to CNHi",id:"upload-prescription-to-cnhi",children:[]},{value:"List prescriptions from CNHi",id:"list-prescriptions-from-cnhi",children:[]},{value:"Upload prescription to Climate FieldView",id:"upload-prescription-to-climate-fieldview",children:[]},{value:"Upload prescription to Trimble",id:"upload-prescription-to-trimble",children:[]}]}],b={rightToc:c};function d(e){var t=e.components,n=Object(r.a)(e,["components"]);return Object(i.b)("wrapper",Object(a.a)({},b,n,{components:t,mdxType:"MDXLayout"}),Object(i.b)("h2",{id:"about"},"About"),Object(i.b)("p",null,"All HTTP methods should be prepended by this service's endpoint:"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{}),"https://api.withleaf.io/services/beta/prescription/api\n")),Object(i.b)("p",null,"See below the REST resources and their endpoints available in this service."),Object(i.b)("h2",{id:"prescription-beta"},"Prescription (BETA)"),Object(i.b)("p",null,"This feature has the following endpoints available:"),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Description"),Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(a.a)({parentName:"td"},{href:"#upload-prescription-to-raven-slingshot"}),"Upload prescription to Raven Slingshot")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--warning"},"POST")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/ravenSlingshot"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(a.a)({parentName:"td"},{href:"#list-prescriptions-from-raven-slingshot"}),"List prescriptions from Raven Slingshot")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/ravenSlingshot"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(a.a)({parentName:"td"},{href:"#list-prescriptions-from-john-deere"}),"Lists prescriptions from John Deere")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/johnDeere"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(a.a)({parentName:"td"},{href:"#upload-prescription-to-john-deere"}),"Upload prescription to John Deere")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--warning"},"POST")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/johnDeere"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(a.a)({parentName:"td"},{href:"#download-prescription-from-john-deere"}),"Download prescription from John Deere")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/johnDeere/download"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(a.a)({parentName:"td"},{href:"#upload-prescription-to-cnhi"}),"Upload prescription to CNHi")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--warning"},"POST")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/cnhi"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(a.a)({parentName:"td"},{href:"#list-prescriptions-from-cnhi"}),"List prescriptions from CNHi")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/cnhi"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(a.a)({parentName:"td"},{href:"#upload-prescription-to-climate-fieldview"}),"Upload prescription to Climate FieldView")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--warning"},"POST")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/climateFieldView"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(a.a)({parentName:"td"},{href:"#upload-prescription-to-trimble"}),"Upload prescription to Trimble")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("span",{class:"badge badge--warning"},"POST")," ",Object(i.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/trimble"))))),Object(i.b)("h3",{id:"upload-prescription-to-raven-slingshot"},"Upload prescription to Raven Slingshot"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--warning"},"POST")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/ravenSlingshot")),Object(i.b)("p",null,"Upload a prescription using the Raven Slingshot credentials of the LeafUserId."),Object(i.b)("p",null,"The file to be uploaded needs to be .zip and contain one of each of the following file extension: shp, dbf, shx; and all files must have the same name. The zip file cannot contain subfolders."),Object(i.b)("h4",{id:"example"},"Example:"),Object(i.b)("p",null,"A zip file named \u201cprescription_rx_map\u201d, containing the following files:"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"prescription_rx_map.shp"),Object(i.b)("li",{parentName:"ul"},"prescription_rx_map.dbf"),Object(i.b)("li",{parentName:"ul"},"prescription_rx_map.shx")),Object(i.b)("h4",{id:"request-examples"},"Request examples"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(o.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/ravenSlingshot'\n\nconst headers = {\n 'Authorization': `Bearer ${TOKEN}`\n 'Content-Type': 'multipart/form-data'\n}\n\nconst form = new FormData()\nform.append('file', 'prescription_rx_map.zip')\n\naxios.post(endpoint, form, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(o.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/ravenSlingshot'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nfiles = {'file': open('prescription_rx_map.zip')}\n\nresponse = requests.post(endpoint, headers=headers, files=files)\nprint(response.json())\n"))),Object(i.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -F 'file=prescription_rx_map.zip' \\\n 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/ravenSlingshot'\n")))),Object(i.b)("h4",{id:"response"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "name": "str"\n}\n')),Object(i.b)("h3",{id:"list-prescriptions-from-raven-slingshot"},"List prescriptions from Raven Slingshot"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/ravenSlingshot")),Object(i.b)("p",null,"List the existing prescriptions available in the provider."),Object(i.b)("h4",{id:"request-examples-1"},"Request examples"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(o.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\nconst endpoint = 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/ravenSlingshot'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(o.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nendpoint = 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/ravenSlingshot'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(i.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/ravenSlingshot'\n")))),Object(i.b)("h4",{id:"response-1"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "str",\n "name": "str"\n },\n {\n "id": "str",\n "name": "str"\n }\n]\n')),Object(i.b)("h3",{id:"upload-prescription-to-john-deere"},"Upload prescription to John Deere"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--warning"},"POST")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/johnDeere")),Object(i.b)("p",null,"Upload a prescription using the John Deere credentials of the LeafUserId."),Object(i.b)("p",null,"There is a required request parameter called organizationId for this endpoint to work.\nThis property should be the id of the organization at JohnDeere."),Object(i.b)("p",null,'The file to be uploaded needs to be .zip and have a folder called "Rx" containing one of each of the following file extension: shp, dbf, shx; and all files must have the same name. The zip file cannot contain subfolders.'),Object(i.b)("h4",{id:"example-1"},"Example:"),Object(i.b)("p",null,'A .zip file named \u201cprescription_rx_map\u201d, having a parent folder called "Rx", containing the following files:'),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"Rx/",Object(i.b)("ul",{parentName:"li"},Object(i.b)("li",{parentName:"ul"},"prescription_rx_map.shp"),Object(i.b)("li",{parentName:"ul"},"prescription_rx_map.dbf"),Object(i.b)("li",{parentName:"ul"},"prescription_rx_map.shx")))),Object(i.b)("h4",{id:"request-examples-2"},"Request examples"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(o.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/johnDeere?organizationId={organizationId}'\n\nconst headers = {\n 'Authorization': `Bearer ${TOKEN}`\n 'Content-Type': 'multipart/form-data'\n}\n\nconst form = new FormData()\nform.append('file', 'prescription_rx_map.zip')\n\naxios.post(endpoint, form, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(o.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/johnDeere?organizationId={organizationId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nfiles = {'file': open('prescription_rx_map.zip')}\n\nresponse = requests.post(endpoint, headers=headers, files=files)\nprint(response.json())\n"))),Object(i.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -F 'file=prescription_rx_map.zip' \\\n 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/johnDeere?organizationId={organizationId}'\n")))),Object(i.b)("h4",{id:"response-2"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "name": "str"\n}\n')),Object(i.b)("h3",{id:"list-prescriptions-from-john-deere"},"List prescriptions from John Deere"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/johnDeere")),Object(i.b)("p",null,"List the existing prescriptions available in the provider."),Object(i.b)("p",null,"There is a required request parameter called organizationId for this endpoint to work.\nThis property should be the id of the organization at JohnDeere."),Object(i.b)("h4",{id:"request-examples-3"},"Request examples"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(o.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\nconst endpoint = 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/johnDeere?organizationId={organizationId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(o.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nendpoint = 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/johnDeere?organizationId={organizationId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(i.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/johnDeere?organizationId={organizationId}'\n")))),Object(i.b)("h4",{id:"response-3"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "str",\n "name": "str"\n },\n {\n "id": "str",\n "name": "str"\n }\n]\n')),Object(i.b)("h3",{id:"download-prescription-from-john-deere"},"Download prescription from John Deere"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/johnDeere/download")),Object(i.b)("p",null,"Download a prescription related to a file ID using the LeafUserId's John Deere credentials. This file ID is relative\nto the one available from the ",Object(i.b)("strong",{parentName:"p"},"John Deere side"),"."),Object(i.b)("h4",{id:"request-examples-4"},"Request examples"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(o.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/johnDeere/download?fileId={fileId}'\n\nconst headers = {\n 'Authorization': `Bearer ${TOKEN}`\n 'Content-Type': 'multipart/form-data'\n}\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(o.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/johnDeere/download?fileId={fileId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/johnDeere/download?fileId={fileId}'\n")))),Object(i.b)("h4",{id:"response-4"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "fileUrl": "url_to_download"\n}\n')),Object(i.b)("h3",{id:"upload-prescription-to-cnhi"},"Upload prescription to CNHi"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--warning"},"POST")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/cnhi")),Object(i.b)("p",null,"Upload a prescription using the CNHi credentials of the LeafUserId."),Object(i.b)("p",{align:"justify"},Object(i.b)("p",null,"You can get the company Id from the ",Object(i.b)("a",Object(a.a)({parentName:"p"},{href:"/docs/field_boundary_management_endpoints#get-all-growers"}),"grower endpoints")," using the property ",Object(i.b)("inlineCode",{parentName:"p"},"providerOrganizationId"),".")),Object(i.b)("p",null,"The file to be uploaded must be a .zip and contain each of the following file extension: shp, dbf and shx.\nAll files must have the same name. The zip file cannot contain subfolders."),Object(i.b)("h4",{id:"example-2"},"Example:"),Object(i.b)("p",null,"A .zip file named \u201cprescription_map\u201d containing the following files:"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"prescription_map.shp"),Object(i.b)("li",{parentName:"ul"},"prescription_map.dbf"),Object(i.b)("li",{parentName:"ul"},"prescription_map.shx")),Object(i.b)("h4",{id:"request-examples-5"},"Request examples"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(o.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/cnhi?companyId={companyId}'\n\nconst headers = {\n 'Authorization': `Bearer ${TOKEN}`\n 'Content-Type': 'multipart/form-data'\n}\n\nconst form = new FormData()\nform.append('file', 'prescription_map.zip')\n\naxios.post(endpoint, form, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(o.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/cnhi?companyId={companyId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nfiles = {'file': open('prescription_map.zip')}\n\nresponse = requests.post(endpoint, headers=headers, files=files)\nprint(response.json())\n"))),Object(i.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -F 'file=prescription_map.zip' \\\n 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/cnhi?companyId={companyId}'\n")))),Object(i.b)("h4",{id:"response-5"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "name": "str"\n}\n')),Object(i.b)("h3",{id:"list-prescriptions-from-cnhi"},"List prescriptions from CNHi"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/cnhi")),Object(i.b)("p",null,"List the existing prescriptions available in the provider."),Object(i.b)("p",{align:"justify"},Object(i.b)("p",null,"You can get the company Id from the ",Object(i.b)("a",Object(a.a)({parentName:"p"},{href:"/docs/field_boundary_management_endpoints#get-all-growers"}),"grower endpoints")," using the property ",Object(i.b)("inlineCode",{parentName:"p"},"providerOrganizationId"),".")),Object(i.b)("h4",{id:"request-examples-6"},"Request examples"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(o.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\nconst endpoint = 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/cnhi?companyId={companyId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(o.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\nendpoint = 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/cnhi?companyId={companyId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(i.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/cnhi?companyId={companyId}'\n")))),Object(i.b)("h4",{id:"response-6"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "str",\n "name": "str"\n },\n {\n "id": "str",\n "name": "str"\n }\n]\n')),Object(i.b)("h3",{id:"upload-prescription-to-climate-fieldview"},"Upload prescription to Climate FieldView"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--warning"},"POST")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/climateFieldView")),Object(i.b)("p",null,"Upload a prescription using the Climate FieldView credentials of the LeafUserId."),Object(i.b)("p",null,"The file to be uploaded needs to be .zip and contain one of each of the following file extension: shp, dbf, shx; and all files must have the same name. The zip file cannot contain subfolders."),Object(i.b)("h4",{id:"example-3"},"Example:"),Object(i.b)("p",null,"A zip file named \u201cprescription_rx_map\u201d, containing the following files:"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"prescription_rx_map.shp"),Object(i.b)("li",{parentName:"ul"},"prescription_rx_map.dbf"),Object(i.b)("li",{parentName:"ul"},"prescription_rx_map.shx")),Object(i.b)("h4",{id:"request-examples-7"},"Request examples"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(o.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/climateFieldView'\n\nconst headers = {\n 'Authorization': `Bearer ${TOKEN}`\n 'Content-Type': 'multipart/form-data'\n}\n\nconst form = new FormData()\nform.append('file', 'prescription_rx_map.zip')\n\naxios.post(endpoint, form, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(o.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/climateFieldView'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nfiles = {'file': open('prescription_rx_map.zip')}\n\nresponse = requests.post(endpoint, headers=headers, files=files)\nprint(response.json())\n"))),Object(i.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -F 'file=prescription_rx_map.zip' \\\n 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/climateFieldView'\n")))),Object(i.b)("h4",{id:"response-7"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "name": "str"\n}\n')),Object(i.b)("h3",{id:"upload-prescription-to-trimble"},"Upload prescription to Trimble"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--warning"},"POST")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/trimble")),Object(i.b)("p",null,"Upload a prescription using the Trimble credentials of the LeafUserId."),Object(i.b)("p",null,"The file to be uploaded needs to be .zip and contain one of each of the following file extension: shp, dbf, shx; and all files must have the same name. The zip file cannot contain subfolders."),Object(i.b)("p",null,"Also, in Raven's case the user must fill the ",Object(i.b)("inlineCode",{parentName:"p"},"rateAttribute")," and ",Object(i.b)("inlineCode",{parentName:"p"},"rateUnit")," as required parameters within the URL. An optional parameter is the ",Object(i.b)("inlineCode",{parentName:"p"},"fileName"),"."),Object(i.b)("p",null,"The ",Object(i.b)("inlineCode",{parentName:"p"},"rateAttribute")," must contain the name of the column from the Shapefile."),Object(i.b)("p",null,"The ",Object(i.b)("inlineCode",{parentName:"p"},"rateUnit")," must contain one the values in the table below"),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"th"},"rateUnit")))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"gal/ac")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"l/ha")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"lbs/ac")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"ton/ac")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"kg/ha")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"t/ha")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"kS/ac")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"kS/ha")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"lbs(N)/ac")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"kg(N)/ha")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"S/ha")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"S/ha")))),Object(i.b)("h4",{id:"example-4"},"Example:"),Object(i.b)("p",null,"A zip file named \u201cprescription_rx_map\u201d, containing the following files:"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},"prescription_rx_map.shp"),Object(i.b)("li",{parentName:"ul"},"prescription_rx_map.dbf"),Object(i.b)("li",{parentName:"ul"},"prescription_rx_map.shx")),Object(i.b)("h4",{id:"request-examples-8"},"Request examples"),Object(i.b)(s.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(o.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/trimble?rateAttribute={}&rateUnit={}'\n\nconst headers = {\n 'Authorization': `Bearer ${TOKEN}`\n 'Content-Type': 'multipart/form-data'\n}\n\nconst form = new FormData()\nform.append('file', 'prescription_rx_map.zip')\n\naxios.post(endpoint, form, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(o.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/trimble?rateAttribute={}&rateUnit={}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nfiles = {'file': open('prescription_rx_map.zip')}\n\nresponse = requests.post(endpoint, headers=headers, files=files)\nprint(response.json())\n"))),Object(i.b)(o.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -F 'file=prescription_rx_map.zip' \\\n 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/trimble?rateAttribute={}&rateUnit={}'\n")))),Object(i.b)("h4",{id:"response-8"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "name": "str"\n}\n')))}d.isMDXComponent=!0},153:function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return O}));var a=n(0),r=n.n(a);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var p=r.a.createContext({}),c=function(e){var t=r.a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},b=function(e){var t=c(e.components);return r.a.createElement(p.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},u=r.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),b=c(n),u=a,O=b["".concat(s,".").concat(u)]||b[u]||d[u]||i;return n?r.a.createElement(O,o(o({ref:t},p),{},{components:n})):r.a.createElement(O,o({ref:t},p))}));function O(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,s=new Array(i);s[0]=u;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o.mdxType="string"==typeof e?e:a,s[1]=o;for(var p=2;p grower > farm > field")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Farm"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"A Farm is a group of fields managed by a grower")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Field"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"An area of open land, especially one planted with crops or pasture bound by a fence or other landmark. Note: in Leaf, the field object has no boundary but can be pulled in from a provider (e.g. field name, field ID, area)")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Field Boundary"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Geospatial boundary/shape/area of a field")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Crop"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Type of plant being grown (e.g. soybeans, corn, wheat)")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Variety"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"A subtype of the crop being grown (e.g. P7326 is a variety of corn)")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Field Operations"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Tasks performed by a tractor (tillage, planting, application, harvest)")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Tillage"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"The task of breaking up soil")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Planting"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"The task of placing seeds in the soil")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Application"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"The task of applying products to an area of a field (eg fertilizer, pesticides)")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Harvest"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"The task of removing/collecting a fully mature crop")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Implements"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Implements are specialized pieces of farm equipment such as a drill, sprayer, combine or planter.")),Object(l.b)("tr",{parentName:"tbody"},Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Layers"),Object(l.b)("td",Object(r.a)({parentName:"tr"},{align:null}),"Additional crop or field-related data that can be pulled from a provider (Tassel count, Stand count, NDVI and RGB)")))))}d.isMDXComponent=!0},153:function(e,t,a){"use strict";a.d(t,"a",(function(){return p})),a.d(t,"b",(function(){return u}));var r=a(0),n=a.n(r);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function b(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var c=n.a.createContext({}),d=function(e){var t=n.a.useContext(c),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},p=function(e){var t=d(e.components);return n.a.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.a.createElement(n.a.Fragment,{},t)}},s=n.a.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,b=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=d(a),s=r,u=p["".concat(b,".").concat(s)]||p[s]||m[s]||l;return a?n.a.createElement(u,o(o({ref:t},c),{},{components:a})):n.a.createElement(u,o({ref:t},c))}));function u(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,b=new Array(l);b[0]=s;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o.mdxType="string"==typeof e?e:r,b[1]=o;for(var c=2;c console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/sentera-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n")))),Object(s.b)("h4",{id:"response"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "username": "str",\n "authToken": "str",\n "organizationId": "str",\n "organizationName": "str"\n}\n')),Object(s.b)("h3",{id:"create-a-sentera-credentials"},"Create a Sentera credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/sentera-credentials")," "),Object(s.b)("p",null,"Create a Sentera credentials for the Leaf User. "),Object(s.b)("h4",{id:"request-body"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "username": "str",\n "password": "str",\n "organizationName":"str"\n}\n')),Object(s.b)("h4",{id:"request-examples-1"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/sentera-credentials\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "username": "str", \n "password": "str", \n "organizationName": "str"\n}\n\naxios.post(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/sentera-credentials\'\nheaders = {\'Authorization\': f\'Bearer {TOKEN}\'}\n\ndata = {\n "username": "str", \n "password": "str", \n "organizationName": "str"\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n-H \'Authorization: Bearer YOUR_TOKEN\' \\\n-H \'Content-Type: application/json\' \\\n-d \'{ "username": "str", "password": "str", "organizationName": "str"}\' \\\n\'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/sentera-credentials\'\n')))),Object(s.b)("h4",{id:"response-1"},"Response"),Object(s.b)("p",null,"A Sentera Credentials with status."),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "str",\n "status": "str",\n "createdTime": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "username": "str",\n "authToken": "str",\n "organizationId": "str",\n "organizationName": "str"\n}\n')),Object(s.b)("h3",{id:"delete-sentera-credentials"},"Delete Sentera credentials"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/sentera-credentials")),Object(s.b)("p",null,"Delete Leaf User's Sentera credentials."),Object(s.b)("h4",{id:"request-examples-2"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/sentera-credentials'\n"))),Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/sentera-credentials'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/sentera-credentials'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n")))),Object(s.b)("h2",{id:"troubleshooting"},"Troubleshooting"),Object(s.b)("p",null,"With these endpoints, you can do some troubleshooting to see your credential's health."),Object(s.b)("h3",{id:"events"},"Events"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/sentera-credentials/events")),Object(s.b)("p",null,"Get the logs of the provider credential based on the LeafUserId sent."),Object(s.b)("h4",{id:"request-examples-3"},"Request examples"),Object(s.b)(c.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/sentera-credentials/events'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/sentera-credentials/events'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}\n /sentera-credentials/events'\n")))),Object(s.b)("h4",{id:"response-2"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "body": "string",\n "createdDate": "yyyy-MM-dd\'T\'HH:mm:ss.SSSSSS\'Z\'",\n "headers": "string",\n "id": "string",\n "statusCode": "int"\n }\n]\n')),Object(s.b)("div",{className:"admonition admonition-warning alert alert--danger"},Object(s.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(s.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})))),"warning")),Object(s.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available."))))}u.isMDXComponent=!0},153:function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return O}));var a=n(0),r=n.n(a);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=r.a.createContext({}),b=function(e){var t=r.a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=b(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},p=r.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,c=e.parentName,o=l(e,["components","mdxType","originalType","parentName"]),d=b(n),p=a,O=d["".concat(c,".").concat(p)]||d[p]||u[p]||s;return n?r.a.createElement(O,i(i({ref:t},o),{},{components:n})):r.a.createElement(O,i({ref:t},o))}));function O(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,c=new Array(s);c[0]=p;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:a,c[1]=i;for(var o=2;o0")),Object(o.b)("tr",{parentName:"tbody"},Object(o.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(o.b)("inlineCode",{parentName:"td"},"shape")),Object(o.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(o.b)("inlineCode",{parentName:"td"},"ROUND"),", ",Object(o.b)("inlineCode",{parentName:"td"},"JohnDeere"),", ",Object(o.b)("inlineCode",{parentName:"td"},"Trimble"),", ",Object(o.b)("inlineCode",{parentName:"td"},"ClimateFieldView"),", ",Object(o.b)("inlineCode",{parentName:"td"},"AgLeader")," or ",Object(o.b)("inlineCode",{parentName:"td"},"Leaf"))))),Object(o.b)("h4",{id:"request-examples"},"Request examples"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "colorRamp": {\n "0%" : [200, 0, 0],\n "35%" : [255, 40, 0],\n "45%" : [255, 150, 0],\n "55%" : [255, 240, 0],\n "65%" : [ 0, 230, 0],\n "75%" : [ 0, 190, 0],\n "100%": [ 0, 130, 0],\n "nv" : [ 0, 0, 0, 0]\n },\n "projection": "EPSG_3857",\n "resolution": 1,\n "shape": "ROUND"\n}\n')),Object(o.b)("p",null,"You can also pass some parameters used exclusively for paging through results.\nThey are:"),Object(o.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(o.b)(c.a,{value:"js",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/operations/api/operations'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(o.b)(c.a,{value:"py",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-python"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/operations/api/operations'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(o.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/operations/api/operations'\n")))),Object(o.b)("h4",{id:"response"},"Response"),Object(o.b)("p",null,"The response will be the URL of new image in PNG format."),Object(o.b)("p",null,Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://api.withleaf.io/services/geoimages/api/images/a84e6627-4526-4560-a0ac-47eb57865a03/harvestMoisture"}),"https://api.withleaf.io/services/geoimages/api/images/a84e6627-4526-4560-a0ac-47eb57865a03/harvestMoisture")))}p.isMDXComponent=!0},153:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return m}));var a=n(0),r=n.n(a);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function c(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=r.a.createContext({}),b=function(e){var t=r.a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},u=function(e){var t=b(e.components);return r.a.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},d=r.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=b(n),d=a,m=u["".concat(i,".").concat(d)]||u[d]||p[d]||o;return n?r.a.createElement(m,c(c({ref:t},l),{},{components:n})):r.a.createElement(m,c({ref:t},l))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var l=2;l=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=a.a.createContext({}),l=function(e){var t=a.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},f=function(e){var t=l(e.components);return a.a.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},d=a.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),f=l(n),d=r,b=f["".concat(i,".").concat(d)]||f[d]||p[d]||o;return n?a.a.createElement(b,c(c({ref:t},s),{},{components:n})):a.a.createElement(b,c({ref:t},s))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=d;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var s=2;s=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=a.a.createContext({}),f=function(e){var t=a.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=f(e.components);return a.a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},p=a.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),l=f(n),p=r,b=l["".concat(c,".").concat(p)]||l[p]||d[p]||o;return n?a.a.createElement(b,i(i({ref:t},s),{},{components:n})):a.a.createElement(b,i({ref:t},s))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,c=new Array(o);c[0]=p;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i.mdxType="string"==typeof e?e:r,c[1]=i;for(var s=2;s console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/forecast/field/{fieldId}/daily'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/forecast/field/{fieldId}/daily'\n")))),Object(i.b)("h4",{id:"response"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "type": "Feature",\n "properties": {\n "maxTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 28.8\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 28.1\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "meanSoilTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 25.3\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 25.1\n },\n ....\n ],\n "unit": "\xb0C"\n },\n "minSoilTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 18.7\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 17.2\n },\n ....\n ],\n "unit": "\xb0C"\n },\n "maxSoilTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 28.9\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 27.9\n },\n ....\n ],\n "unit": "\xb0C"\n },\n "sunrise": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": "2023-07-21T10:52"\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": "2023-07-22T10:53"\n },\n ....\n ],\n "unit": "iso8601"\n },\n "snowfallSum": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "cm"\n },\n "precipitationSum": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "cm"\n },\n "maxWindspeed": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 15.2\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 19.9\n },\n ....\n ],\n "unit": "km/h"\n },\n "evapotranspiration": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 3.76\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 4.93\n },\n ....\n ],\n "unit": "mm"\n },\n "processedTime": "2023-07-21T13:01:11.662397",\n "rainSum": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "mm"\n },\n "maxWindgusts": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 27.0\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 24.1\n },\n ....\n ],\n "unit": "km/h"\n },\n "meanTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 25.0\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 23.6\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "minTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 21.1\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 18.9\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "sunset": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": "2023-07-22T01:11"\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": "2023-07-23T01:10"\n },\n ....\n ],\n "unit": "iso8601"\n },\n "windDirection": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 350.0\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 332.0\n },\n ....\n ],\n "unit": "\xb0"\n }\n },\n "geometry": {\n "type": "Point",\n "coordinates": [\n -89.64355775454169,\n 39.802794365611476\n ]\n }\n}\n')),Object(i.b)("h3",{id:"get-hourly-forecast"},"Get Hourly Forecast"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/weather/forecast/field/{fieldId}/hourly")),Object(i.b)("p",null,"Get hourly forecasted weather data by Leaf User and field. If dates are not set on the endpoint, the response\nwill return forecast data for the next seven days by default."),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"values"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"endTime"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Local date. Returns operations until the endTime")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"startTime"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Local date. Returns operations from the startTime onward")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"model"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Weather model data: ",Object(i.b)("inlineCode",{parentName:"td"},"icon"),", ",Object(i.b)("inlineCode",{parentName:"td"},"gfs"),", ",Object(i.b)("inlineCode",{parentName:"td"},"ifs"),", ",Object(i.b)("inlineCode",{parentName:"td"},"jma"),", ",Object(i.b)("inlineCode",{parentName:"td"},"gem")," or ",Object(i.b)("inlineCode",{parentName:"td"},"arpegeArome"),". The default is ",Object(i.b)("inlineCode",{parentName:"td"},"gfs"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"units"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"System of units: ",Object(i.b)("inlineCode",{parentName:"td"},"imperial")," or ",Object(i.b)("inlineCode",{parentName:"td"},"metric"),". The default is ",Object(i.b)("inlineCode",{parentName:"td"},"metric"))))),Object(i.b)("h4",{id:"request-examples-1"},"Request examples"),Object(i.b)(r.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/forecast/field/{fieldId}/hourly'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/forecast/field/{fieldId}/hourly'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/forecast/field/{fieldId}/hourly'\n")))),Object(i.b)("h4",{id:"response-1"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "type": "Feature",\n "properties": {\n "rain": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "mm"\n },\n "soilTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 28.2\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 27.9\n },\n ....\n ],\n "unit": "\xb0C"\n },\n "soilMoisture 0-1": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.1\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.1\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "soilMoisture 1-3": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.2\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.2\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "soilMoisture 3-9": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.3\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.3\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "soilMoisture 9-27": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.4\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.4\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "soilMoisture 27-81": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.5\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.5\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "longwaveRadiation": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 563.8\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 642.3\n },\n ....\n ],\n "unit": "W/m\xb2"\n },\n "dewpoint": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 22.6\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 22.6\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "windgusts": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 9.4\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 5.8\n },\n ....\n ],\n "unit": "km/h"\n },\n "snowfall": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "mm"\n },\n "evapotranspiration": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.11\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.04\n },\n ....\n ],\n "unit": "mm"\n },\n "shortwaveRadiation": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 146.0\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 2.0\n },\n ....\n ],\n "unit": "W/m\xb2"\n },\n "processedTime": "str",\n "cloudcover": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 51.0\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 100.0\n },\n ....\n ],\n "unit": "%"\n },\n "precipitation": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "mm"\n },\n "relativeHumidity": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 75.0\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 80.0\n },\n ....\n ],\n "unit": "%"\n },\n "temperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 27.4\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 26.3\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "windspeed": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 3.1\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 5.7\n },\n ....\n ],\n "unit": "km/h"\n },\n "windDirection": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 234.0\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 72.0\n },\n ....\n ],\n "unit": "km/h"\n }\n },\n "geometry": {\n "type": "Point",\n "coordinates": [\n -89.64355775454169,\n 39.802794365611476\n ]\n }\n}\n')),Object(i.b)("h3",{id:"get-daily-forecast-for-latlon"},"Get Daily Forecast for lat/lon"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/weather/forecast/daily/{lat},{lon}")),Object(i.b)("p",null,"Get daily forecasted weather data for lat/lon by leaf user and field. If dates are not set on the endpoint,\nthe response will return forecast data for the next seven days by default."),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"values"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"endTime"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Local date. Returns operations until the endTime")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"startTime"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Local date. Returns operations from the startTime onward")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"model"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Weather model data: ",Object(i.b)("inlineCode",{parentName:"td"},"icon"),", ",Object(i.b)("inlineCode",{parentName:"td"},"gfs"),", ",Object(i.b)("inlineCode",{parentName:"td"},"ifs"),", ",Object(i.b)("inlineCode",{parentName:"td"},"jma"),", ",Object(i.b)("inlineCode",{parentName:"td"},"gem")," or ",Object(i.b)("inlineCode",{parentName:"td"},"arpegeArome"),". The default is ",Object(i.b)("inlineCode",{parentName:"td"},"gfs"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"units"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"System of units: ",Object(i.b)("inlineCode",{parentName:"td"},"imperial")," or ",Object(i.b)("inlineCode",{parentName:"td"},"metric"),". The default is ",Object(i.b)("inlineCode",{parentName:"td"},"metric"))))),Object(i.b)("h4",{id:"request-examples-2"},"Request examples"),Object(i.b)(r.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/weather/api/weather/forecast/daily/{lat},{lon}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/weather/api/weather/forecast/daily/{lat},{lon}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/weather/api/weather/forecast/daily/{lat},{lon}'\n")))),Object(i.b)("h4",{id:"response-2"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "type": "Feature",\n "properties": {\n "maxTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 28.8\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 28.1\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "meanSoilTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 25.3\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 25.1\n },\n ....\n ],\n "unit": "\xb0C"\n },\n "minSoilTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 18.7\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 17.2\n },\n ....\n ],\n "unit": "\xb0C"\n },\n "maxSoilTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 28.9\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 27.9\n },\n ....\n ],\n "unit": "\xb0C"\n },\n "sunrise": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": "2023-07-21T10:52"\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": "2023-07-22T10:53"\n },\n ....\n ],\n "unit": "iso8601"\n },\n "snowfallSum": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "cm"\n },\n "precipitationSum": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "cm"\n },\n "maxWindspeed": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 15.2\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 19.9\n },\n ....\n ],\n "unit": "km/h"\n },\n "evapotranspiration": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 3.76\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 4.93\n },\n ....\n ],\n "unit": "mm"\n },\n "processedTime": "2023-07-21T13:01:11.662397",\n "rainSum": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "mm"\n },\n "maxWindgusts": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 27.0\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 24.1\n },\n ....\n ],\n "unit": "km/h"\n },\n "meanTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 25.0\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 23.6\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "minTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 21.1\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 18.9\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "sunset": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": "2023-07-22T01:11"\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": "2023-07-23T01:10"\n },\n ....\n ],\n "unit": "iso8601"\n },\n "windDirection": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 350.0\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 332.0\n },\n ....\n ],\n "unit": "\xb0"\n }\n },\n "geometry": {\n "type": "Point",\n "coordinates": [\n -89.64355775454169,\n 39.802794365611476\n ]\n }\n}\n')),Object(i.b)("h3",{id:"get-hourly-forecast-for-latlon"},"Get Hourly Forecast for lat/lon"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/weather/forecast/hourly/{lat},{lon}")),Object(i.b)("p",null,"Get hourly forecasted weather data for lat/lon by Leaf User and field. If dates are not set on the endpoint, the response\nwill return forecast data for the next seven days by default."),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"values"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"endTime"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Local date. Returns operations until the endTime")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"startTime"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Local date. Returns operations from the startTime onward")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"model"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Weather model data: ",Object(i.b)("inlineCode",{parentName:"td"},"icon"),", ",Object(i.b)("inlineCode",{parentName:"td"},"gfs"),", ",Object(i.b)("inlineCode",{parentName:"td"},"ifs"),", ",Object(i.b)("inlineCode",{parentName:"td"},"jma"),", ",Object(i.b)("inlineCode",{parentName:"td"},"gem")," or ",Object(i.b)("inlineCode",{parentName:"td"},"arpegeArome"),". The default is ",Object(i.b)("inlineCode",{parentName:"td"},"gfs"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"units"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"System of units: ",Object(i.b)("inlineCode",{parentName:"td"},"imperial")," or ",Object(i.b)("inlineCode",{parentName:"td"},"metric"),". The default is ",Object(i.b)("inlineCode",{parentName:"td"},"metric"))))),Object(i.b)("h4",{id:"request-examples-3"},"Request examples"),Object(i.b)(r.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/weather/api/weather/forecast/hourly/{lat},{lon}\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/weather/api/weather/forecast/hourly/{lat},{lon}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/weather/api/weather/forecast/hourly/{lat},{lon}'\n")))),Object(i.b)("h4",{id:"response-3"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "type": "Feature",\n "properties": {\n "rain": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "mm"\n },\n "soilTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 28.7\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 27.9\n },\n ....\n ],\n "unit": "\xb0C"\n },\n "soilMoisture 0-1": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.1\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.1\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "soilMoisture 1-3": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.2\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.2\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "soilMoisture 3-9": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.3\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.3\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "soilMoisture 9-27": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.4\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.4\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "soilMoisture 27-81": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.5\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.5\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "longwaveRadiation": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 563.8\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 642.3\n },\n ....\n ],\n "unit": "W/m\xb2"\n },\n "dewpoint": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 22.6\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 22.6\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "windgusts": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 9.4\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 5.8\n },\n ....\n ],\n "unit": "km/h"\n },\n "snowfall": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "mm"\n },\n "evapotranspiration": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.11\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.04\n },\n ....\n ],\n "unit": "mm"\n },\n "shortwaveRadiation": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 146.0\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 2.0\n },\n ....\n ],\n "unit": "W/m\xb2"\n },\n "processedTime": "str",\n "cloudcover": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 51.0\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 100.0\n },\n ....\n ],\n "unit": "%"\n },\n "precipitation": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "mm"\n },\n "relativeHumidity": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 75.0\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 80.0\n },\n ....\n ],\n "unit": "%"\n },\n "temperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 27.4\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 26.3\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "windspeed": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 3.1\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 5.7\n },\n ....\n ],\n "unit": "km/h"\n },\n "windDirection": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 234.0\n },\n {\n "time": "2023-07-21T01:00:00",\n "value": 72.0\n },\n ....\n ],\n "unit": "km/h"\n }\n },\n "geometry": {\n "type": "Point",\n "coordinates": [\n -89.64355775454169,\n 39.802794365611476\n ]\n }\n}\n')),Object(i.b)("h3",{id:"get-daily-historical"},"Get Daily Historical"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/weather/historical/field/{fieldId}/daily")),Object(i.b)("p",null,"Get daily historical weather data by Leaf User and field. If the dates are not defined in the endpoint, the response\nwill return data from the last seven days by default."),Object(i.b)("p",null,"Please note, historical weather data from less than 5 days ago is unavailable. If you\u2019re wanting historical weather data within the last 5 days, you can use the forecast service to get this information. "),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"values"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"endTime"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Local date. Returns operations until the endTime")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"startTime"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Local date. Returns operations from the startTime onward")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"model"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Historical model data: ",Object(i.b)("inlineCode",{parentName:"td"},"era5")," or ",Object(i.b)("inlineCode",{parentName:"td"},"era5Land"),". The default is ",Object(i.b)("inlineCode",{parentName:"td"},"era5"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"units"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"System of units: ",Object(i.b)("inlineCode",{parentName:"td"},"imperial")," or ",Object(i.b)("inlineCode",{parentName:"td"},"metric"),". The default is ",Object(i.b)("inlineCode",{parentName:"td"},"metric"))))),Object(i.b)("h4",{id:"request-examples-4"},"Request examples"),Object(i.b)(r.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/historical/field/{fieldId}/daily'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/historical/field/{fieldId}/daily'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/historical/field/{fieldId}/daily'\n")))),Object(i.b)("h4",{id:"response-4"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "type": "Feature",\n "properties": {\n "maxTemperature": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 31.9\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 32.0\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "meanSoilTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 25.3\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 25.1\n },\n ....\n ],\n "unit": "\xb0C"\n },\n "minSoilTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 18.7\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 17.2\n },\n ....\n ],\n "unit": "\xb0C"\n },\n "maxSoilTemperature": {\n "values": [\n {\n "time": "2023-07-21T00:00:00",\n "value": 28.9\n },\n {\n "time": "2023-07-22T00:00:00",\n "value": 27.9\n },\n ....\n ],\n "unit": "\xb0C"\n },\n "sunrise": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": "2023-07-14T10:47"\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": "2023-07-15T10:48"\n },\n ....\n ],\n "unit": "iso8601"\n },\n "snowfallSum": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "cm"\n },\n "precipitationSum": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.3\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 0.2\n },\n ....\n ],\n "unit": "mm"\n },\n "maxWindspeed": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 14.1\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 13.5\n },\n ....\n ],\n "unit": "km/h"\n },\n "evapotranspiration": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 4.51\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 3.62\n },\n ....\n ],\n "unit": "mm"\n },\n "processedTime": "2023-07-21T16:50:17.965109",\n "rainSum": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.3\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 0.2\n },\n ....\n ],\n "unit": "mm"\n },\n "maxWindgusts": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 26.3\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 25.8\n },\n ....\n ],\n "unit": "km/h"\n },\n "meanTemperature": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 28.1\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 26.8\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "minTemperature": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 26.1\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 23.2\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "sunset": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": "2023-07-15T01:15"\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": "2023-07-16T01:14"\n },\n ....\n ],\n "unit": "iso8601"\n },\n "windDirection": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 206.0\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 209.0\n },\n ....\n ],\n "unit": "\xb0"\n }\n },\n "geometry": {\n "type": "Point",\n "coordinates": [\n -89.64355775454169,\n 39.802794365611476\n ]\n }\n}\n')),Object(i.b)("h3",{id:"get-hourly-historical"},"Get Hourly Historical"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/weather/historical/field/{fieldId}/hourly")),Object(i.b)("p",null,"Get hourly historical weather data by Leaf User and field. If the dates are not defined in the endpoint, the response\nwill return data from the last seven days by default."),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"values"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"endTime"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Local date. Returns operations until the endTime")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"startTime"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Local date. Returns operations from the startTime onward")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"model"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Historical model data: ",Object(i.b)("inlineCode",{parentName:"td"},"era5")," or ",Object(i.b)("inlineCode",{parentName:"td"},"era5Land"),". The default is ",Object(i.b)("inlineCode",{parentName:"td"},"era5"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"units"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"System of units: ",Object(i.b)("inlineCode",{parentName:"td"},"imperial")," or ",Object(i.b)("inlineCode",{parentName:"td"},"metric"),". The default is ",Object(i.b)("inlineCode",{parentName:"td"},"metric"))))),Object(i.b)("h4",{id:"request-examples-5"},"Request examples"),Object(i.b)(r.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/historical/field/{fieldId}/hourly'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/historical/field/{fieldId}/hourly'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/historical/field/{fieldId}/hourly'\n")))),Object(i.b)("h4",{id:"response-5"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "type": "Feature",\n "properties": {\n "rain": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "mm"\n },\n "soilMoisture 0-7": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.1\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 0.1\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "soilMoisture 7-28": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.2\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 0.2\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "soilMoisture 28-100": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.3\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 0.3\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "soilMoisture 100-255": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.4\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 0.4\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "longwaveRadiation": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 563.8\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 642.3\n },\n ....\n ],\n "unit": "W/m\xb2"\n },\n "dewpoint": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 23.4\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 23.3\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "windgusts": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 17.6\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 19.1\n },\n ....\n ],\n "unit": "km/h"\n },\n "snowfall": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "mm"\n },\n "evapotranspiration": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.18\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 0.08\n },\n ....\n ],\n "unit": "mm"\n },\n "shortwaveRadiation": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 176.0\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 40.0\n },\n ....\n ],\n "unit": "W/m\xb2"\n },\n "processedTime": "str",\n "cloudcover": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 9.0\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 5.0\n },\n ....\n ],\n "unit": "%"\n },\n "precipitation": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "mm"\n },\n "soilTemperature": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 30.2\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 29.8\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "relativeHumidity": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 61.0\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 62.0\n },\n ....\n ],\n "unit": "%"\n },\n "temperature": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 31.9\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 31.4\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "windspeed": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 7.7\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 6.4\n },\n ....\n ],\n "unit": "km/h"\n },\n "windDirection": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 233.0\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 223.0\n },\n ....\n ],\n "unit": "km/h"\n }\n },\n "geometry": {\n "type": "Point",\n "coordinates": [\n -89.64355775454169,\n 39.802794365611476\n ]\n }\n}\n')),Object(i.b)("h3",{id:"get-daily-historical-for-latlon"},"Get Daily Historical for lat/lon"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/weather/historical/daily/{lat},{lon}")),Object(i.b)("p",null,"Get daily historical weather data for lat/lon by Leaf User and field. If the dates are not defined in the endpoint, the response\nwill return data from the last seven days by default."),Object(i.b)("p",null,"Please note, historical weather data from less than 5 days ago is unavailable. If you\u2019re wanting historical weather data within the last 5 days, you can use the forecast service to get this information. "),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"values"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"endTime"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Local date. Returns operations until the endTime")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"startTime"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Local date. Returns operations from the startTime onward")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"model"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Historical model data: ",Object(i.b)("inlineCode",{parentName:"td"},"era5")," or ",Object(i.b)("inlineCode",{parentName:"td"},"era5Land"),". The default is ",Object(i.b)("inlineCode",{parentName:"td"},"era5"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"units"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"System of units: ",Object(i.b)("inlineCode",{parentName:"td"},"imperial")," or ",Object(i.b)("inlineCode",{parentName:"td"},"metric"),". The default is ",Object(i.b)("inlineCode",{parentName:"td"},"metric"))))),Object(i.b)("h4",{id:"request-examples-6"},"Request examples"),Object(i.b)(r.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/weather/api/weather/historical/daily/{lat},{lon}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/weather/api/weather/historical/daily/{lat},{lon}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/weather/api/weather/historical/daily/{lat},{lon}'\n")))),Object(i.b)("h4",{id:"response-6"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "type": "Feature",\n "properties": {\n "maxTemperature": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 31.9\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 32.0\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "meanSoilTemperature": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 25.3\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 25.1\n },\n ....\n ],\n "unit": "\xb0C"\n },\n "minSoilTemperature": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 18.7\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 17.2\n },\n ....\n ],\n "unit": "\xb0C"\n },\n "maxSoilTemperature": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 28.6\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 27.9\n },\n ....\n ],\n "unit": "\xb0C"\n },\n "sunrise": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": "2023-07-14T10:47"\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": "2023-07-15T10:48"\n },\n ....\n ],\n "unit": "iso8601"\n },\n "snowfallSum": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "cm"\n },\n "precipitationSum": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.3\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 0.2\n },\n ....\n ],\n "unit": "mm"\n },\n "maxWindspeed": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 14.1\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 13.5\n },\n ....\n ],\n "unit": "km/h"\n },\n "evapotranspiration": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 4.51\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 3.62\n },\n ....\n ],\n "unit": "mm"\n },\n "processedTime": "2023-07-21T16:50:17.965109",\n "rainSum": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.3\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 0.2\n },\n ....\n ],\n "unit": "mm"\n },\n "maxWindgusts": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 26.3\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 25.8\n },\n ....\n ],\n "unit": "km/h"\n },\n "meanTemperature": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 28.1\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 26.8\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "minTemperature": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 26.1\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 23.2\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "sunset": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": "2023-07-15T01:15"\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": "2023-07-16T01:14"\n },\n ....\n ],\n "unit": "iso8601"\n },\n "windDirection": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 206.0\n },\n {\n "time": "2023-07-15T00:00:00",\n "value": 209.0\n },\n ....\n ],\n "unit": "\xb0"\n }\n },\n "geometry": {\n "type": "Point",\n "coordinates": [\n -89.64355775454169,\n 39.802794365611476\n ]\n }\n}\n')),Object(i.b)("h3",{id:"get-hourly-historical-for-latlon"},"Get Hourly Historical for lat/lon"),Object(i.b)("p",null,"\xa0",Object(i.b)("span",{class:"badge badge--success"},"GET")," ",Object(i.b)("inlineCode",{parentName:"p"},"/weather/historical/hourly/{lat},{lon}")),Object(i.b)("p",null,"Get hourly historical weather data for lat/lon by Leaf User and field. If the dates are not defined in the endpoint, the response\nwill return data from the last seven days by default."),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"values"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"endTime"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Local date. Returns operations until the endTime")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"startTime"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Local date. Returns operations from the startTime onward")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"model"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Historical model data: ",Object(i.b)("inlineCode",{parentName:"td"},"era5")," or ",Object(i.b)("inlineCode",{parentName:"td"},"era5Land"),". The default is ",Object(i.b)("inlineCode",{parentName:"td"},"era5"))),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"units"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"System of units: ",Object(i.b)("inlineCode",{parentName:"td"},"imperial")," or ",Object(i.b)("inlineCode",{parentName:"td"},"metric"),". The default is ",Object(i.b)("inlineCode",{parentName:"td"},"metric"))))),Object(i.b)("h4",{id:"request-examples-7"},"Request examples"),Object(i.b)(r.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(s.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/weather/api/weather/historical/hourly/{lat},{lon}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(s.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/weather/api/weather/historical/hourly/{lat},{lon}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(s.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/weather/api/weather/historical/hourly/{lat},{lon}'\n")))),Object(i.b)("h4",{id:"response-7"},"Response"),Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-json"}),'{\n "type": "Feature",\n "properties": {\n "rain": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "mm"\n },\n "soilMoisture 0-7": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.1\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 0.1\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "soilMoisture 7-28": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.2\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 0.2\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "soilMoisture 28-100": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.3\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 0.3\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "soilMoisture 100-255": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.4\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 0.4\n },\n ....\n ],\n "unit": "m\xb3/m\xb3"\n },\n "longwaveRadiation": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 563.8\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 642.3\n },\n ....\n ],\n "unit": "W/m\xb2"\n },\n "dewpoint": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 23.4\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 23.3\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "windgusts": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 17.6\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 19.1\n },\n ....\n ],\n "unit": "km/h"\n },\n "snowfall": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "mm"\n },\n "evapotranspiration": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.18\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 0.08\n },\n ....\n ],\n "unit": "mm"\n },\n "shortwaveRadiation": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 176.0\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 40.0\n },\n ....\n ],\n "unit": "W/m\xb2"\n },\n "processedTime": "str",\n "cloudcover": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 9.0\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 5.0\n },\n ....\n ],\n "unit": "%"\n },\n "precipitation": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 0.0\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 0.0\n },\n ....\n ],\n "unit": "mm"\n },\n "soilTemperature": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 30.2\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 29.8\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "relativeHumidity": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 61.0\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 62.0\n },\n ....\n ],\n "unit": "%"\n },\n "temperature": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 31.9\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 31.4\n },\n ....\n ],\n "unit": "\xbaC"\n },\n "windspeed": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 7.7\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 6.4\n },\n ....\n ],\n "unit": "km/h"\n },\n "windDirection": {\n "values": [\n {\n "time": "2023-07-14T00:00:00",\n "value": 233.0\n },\n {\n "time": "2023-07-14T01:00:00",\n "value": 223.0\n },\n ....\n ],\n "unit": "km/h"\n }\n },\n "geometry": {\n "type": "Point",\n "coordinates": [\n -89.64355775454169,\n 39.802794365611476\n ]\n }\n}\n')),Object(i.b)("div",{className:"admonition admonition-info alert alert--info"},Object(i.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(i.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Warning")),Object(i.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"If there is no data available at that time/day, the property will be returned as ",Object(i.b)("em",{parentName:"p"},"null"),"."))))}m.isMDXComponent=!0},153:function(e,n,t){"use strict";t.d(n,"a",(function(){return c})),t.d(n,"b",(function(){return p}));var a=t(0),l=t.n(a);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function s(e){for(var n=1;n=0||(l[t]=e[t]);return l}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}var o=l.a.createContext({}),b=function(e){var n=l.a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):s(s({},n),e)),t},c=function(e){var n=b(e.components);return l.a.createElement(o.Provider,{value:n},e.children)},m={inlineCode:"code",wrapper:function(e){var n=e.children;return l.a.createElement(l.a.Fragment,{},n)}},d=l.a.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,r=e.parentName,o=u(e,["components","mdxType","originalType","parentName"]),c=b(t),d=a,p=c["".concat(r,".").concat(d)]||c[d]||m[d]||i;return t?l.a.createElement(p,s(s({ref:n},o),{},{components:t})):l.a.createElement(p,s({ref:n},o))}));function p(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,r=new Array(i);r[0]=d;var s={};for(var u in n)hasOwnProperty.call(n,u)&&(s[u]=n[u]);s.originalType=e,s.mdxType="string"==typeof e?e:a,r[1]=s;for(var o=2;o=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=o.a.createContext({}),l=function(e){var t=o.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},f=function(e){var t=l(e.components);return o.a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},p=o.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,c=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),f=l(n),p=r,m=f["".concat(c,".").concat(p)]||f[p]||d[p]||a;return n?o.a.createElement(m,i(i({ref:t},s),{},{components:n})):o.a.createElement(m,i({ref:t},s))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,c=new Array(a);c[0]=p;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i.mdxType="string"==typeof e?e:r,c[1]=i;for(var s=2;s=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var s=i.a.createContext({}),h=function(e){var t=i.a.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):c(c({},t),e)),a},b=function(e){var t=h(e.components);return i.a.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},p=i.a.forwardRef((function(e,t){var a=e.components,r=e.mdxType,n=e.originalType,o=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),b=h(a),p=r,d=b["".concat(o,".").concat(p)]||b[p]||u[p]||n;return a?i.a.createElement(d,c(c({ref:t},s),{},{components:a})):i.a.createElement(d,c({ref:t},s))}));function d(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=a.length,o=new Array(n);o[0]=p;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:r,o[1]=c;for(var s=2;s console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(c.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users'\n")))),Object(s.b)("h4",{id:"response"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "UUID",\n "name": "str",\n "email": "help@withleaf.io",\n "phone": "str",\n "address": "str",\n "trimbleCredentials": {"Object"},\n "cnhiCredentials": {"Object"},\n "johnDeereCredentials": {"Object"},\n "ravenCredentials": {"Object"},\n "climateFieldViewCredentials": {"Object"},\n "staraCredentials": {"Object"},\n "agLeaderCredentials": {"Object"},\n "ravenSlingshotCredentials": {"Object"}\n },\n ....\n]\n')),Object(s.b)("p",null,"Check the ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#providers-credentials-endpoints"}),"providers credentials endpoints")," for more details about the credentials object."),Object(s.b)("h3",{id:"get-a-leaf-user"},"Get a Leaf User"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{id}")),Object(s.b)("p",null,"Get a Leaf User by its ",Object(s.b)("inlineCode",{parentName:"p"},"id"),". This request looks up an individual Leaf User (such as a grower) and returns the details associated with their account, including provider credentials such as ID, created date and tokens. "),Object(s.b)("h4",{id:"request-examples-1"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(c.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{id}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(c.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{id}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{id}'\n")))),Object(s.b)("h4",{id:"response-1"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "UUID",\n "name": "str",\n "email": "help@withleaf.io",\n "phone": "str",\n "address": "str",\n "trimbleCredentials": {"Object"},\n "cnhiCredentials": {"Object"},\n "johnDeereCredentials": {"Object"},\n "ravenCredentials": {"Object"},\n "climateFieldViewCredentials": {"Object"},\n "staraCredentials": {"Object"},\n "agLeaderCredentials": {"Object"},\n "ravenSlingshotCredentials": {"Object"}\n}\n')),Object(s.b)("h3",{id:"create-a-leaf-user"},"Create a Leaf User"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users")),Object(s.b)("p",null,"Creates a Leaf User. You will need to create a Leaf User when linking a provider for the first time."),Object(s.b)("h4",{id:"request-body"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "name": "str",\n "email": "help@withleaf.io",\n "phone": "str",\n "address": "str"\n}\n')),Object(s.b)("p",null,"Besides the four properties of the example above, once you have created\ncredentials for a provider like John Deere, you can add an entry like the\nfollowing. Specifying the ID of the credentials object previously created will link it to the Leaf User being created. This will enable you to start querying farm data from the provider. Check the\n",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#providers-credentials-endpoints"}),"providers credentials endpoints")," for more details about the credentials object."),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),' "johnDeereCredentials": {\n "id": "UUID"\n }\n')),Object(s.b)("h4",{id:"request-examples-2"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(c.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n name: \"str\",\n email: \"help@withleaf.io\",\n phone: \"str\",\n address: \"str\"\n}\n\naxios.post(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(c.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'name': 'str',\n 'email': 'help@withleaf.io',\n 'phone': 'str',\n 'address': 'str',\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(s.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "name": "str", "email": "help@withleaf.io", "phone": "str", "address": "str"}\' \\\n \'https://api.withleaf.io/services/usermanagement/api/users\'\n')))),Object(s.b)("h4",{id:"response-2"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "UUID",\n "name": "str",\n "email": "help@withleaf.io",\n "phone": "str",\n "address": "str"\n}\n')),Object(s.b)("h3",{id:"update-a-leaf-user"},"Update a Leaf User"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users")),Object(s.b)("p",null,"Edits an existing Leaf User by submitting a new one."),Object(s.b)("h4",{id:"request-body-1"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "UUID",\n "name": "str",\n "email": "help@withleaf.io",\n "phone": "str",\n "address": "str"\n}\n')),Object(s.b)("p",null,"Note that if the existing resource has credentials and you don't include them\nin the body, the new Leaf User will have no credentials. Said that, for keeping\nthe credentials or updating them, include in the JSON above an entry.\nCheck the ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#providers-credentials-endpoints"}),"providers credentials endpoints")," for more details about the credentials object."),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),' "johnDeereCredentials": {\n "id": "UUID"\n }\n')),Object(s.b)("h4",{id:"request-examples-3"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(c.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint = \'https://api.withleaf.io/services/usermanagement/api/users\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n id: "UUID",\n name: "str",\n email: "help@withleaf.io",\n phone: "str",\n address: "str"\n}\n\naxios.put(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(s.b)(c.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'id': 'UUID',\n 'name': 'str',\n 'email': 'help@withleaf.io',\n 'phone': 'str',\n 'address': 'str'\n}\n\nresponse = requests.put(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(s.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X PUT \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "id": "UUID", name": "str", "email": "help@withleaf.io", "phone": "str", "address": "str"}\' \\\n \'https://api.withleaf.io/services/usermanagement/api/users\'\n')))),Object(s.b)("h4",{id:"response-3"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "UUID",\n "name": "str",\n "email": "help@withleaf.io",\n "phone": "str",\n "address": "str"\n}\n')),Object(s.b)("h3",{id:"delete-a-leaf-user"},"Delete a Leaf User"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{id}")),Object(s.b)("p",null,"Deletes an existing Leaf User by ",Object(s.b)("inlineCode",{parentName:"p"},"id"),"."),Object(s.b)("h4",{id:"request-examples-4"},"Request examples"),Object(s.b)(i.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(c.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{id}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.delete(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(c.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/usermanagement/api/users/{id}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.delete(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X DELETE \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/usermanagement/api/users/{id}'\n")))),Object(s.b)("h2",{id:"providers-credentials-endpoints"},"Providers credentials endpoints"),Object(s.b)("ul",null,Object(s.b)("li",{parentName:"ul"},Object(s.b)("a",Object(n.a)({parentName:"li"},{href:"/docs/credentials_john_deere"}),"John Deere")),Object(s.b)("li",{parentName:"ul"},Object(s.b)("a",Object(n.a)({parentName:"li"},{href:"/docs/credentials_cfv"}),"Climate Fielview")),Object(s.b)("li",{parentName:"ul"},Object(s.b)("a",Object(n.a)({parentName:"li"},{href:"/docs/credentials_trimble"}),"Trimble")),Object(s.b)("li",{parentName:"ul"},Object(s.b)("a",Object(n.a)({parentName:"li"},{href:"/docs/credentials_cnhi"}),"CNHi")),Object(s.b)("li",{parentName:"ul"},Object(s.b)("a",Object(n.a)({parentName:"li"},{href:"/docs/credentials_stara"}),"Stara")),Object(s.b)("li",{parentName:"ul"},Object(s.b)("a",Object(n.a)({parentName:"li"},{href:"/docs/credentials_raven"}),"Raven")),Object(s.b)("li",{parentName:"ul"},Object(s.b)("a",Object(n.a)({parentName:"li"},{href:"/docs/credentials_agleader"}),"AgLeader")),Object(s.b)("li",{parentName:"ul"},Object(s.b)("a",Object(n.a)({parentName:"li"},{href:"/docs/credentials_raven_slingshot"}),"Raven Slingshot")),Object(s.b)("li",{parentName:"ul"},Object(s.b)("a",Object(n.a)({parentName:"li"},{href:"/docs/credentials_sentera"}),"Sentera")),Object(s.b)("li",{parentName:"ul"},Object(s.b)("a",Object(n.a)({parentName:"li"},{href:"/docs/credentials_agvance"}),"AgVance"))),Object(s.b)("p",null,"After connecting with a provider, a summary of the available resources can be accessed using the ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"/docs/integrations_endpoints"}),"Integration resource endpoint"),"."),Object(s.b)("div",{className:"admonition admonition-tip alert alert--success"},Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(s.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})))),"tip")),Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"Please don't hesitate to ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"mailto:help@withleaf.io"}),"contact")," us at ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"mailto:help@withleaf.io"}),"help@withleaf.io")," to schedule a demo, ask a question, request sample data, or suggest a feature!"))))}p.isMDXComponent=!0},153:function(e,t,a){"use strict";a.d(t,"a",(function(){return d})),a.d(t,"b",(function(){return O}));var n=a(0),r=a.n(n);function s(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function c(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=r.a.createContext({}),b=function(e){var t=r.a.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):c(c({},t),e)),a},d=function(e){var t=b(e.components);return r.a.createElement(o.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},u=r.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,s=e.originalType,i=e.parentName,o=l(e,["components","mdxType","originalType","parentName"]),d=b(a),u=n,O=d["".concat(i,".").concat(u)]||d[u]||p[u]||s;return a?r.a.createElement(O,c(c({ref:t},o),{},{components:a})):r.a.createElement(O,c({ref:t},o))}));function O(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var s=a.length,i=new Array(s);i[0]=u;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:n,i[1]=c;for(var o=2;o=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=a.a.createContext({}),l=function(e){var t=a.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},f=function(e){var t=l(e.components);return a.a.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},d=a.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),f=l(n),d=r,m=f["".concat(i,".").concat(d)]||f[d]||p[d]||o;return n?a.a.createElement(m,c(c({ref:t},s),{},{components:n})):a.a.createElement(m,c({ref:t},s))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=d;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:r,i[1]=c;for(var s=2;s Endpoints",permalink:"/docs/docs/Link_endpoints"}},b=[{value:"Overview",id:"overview",children:[{value:"How it works",id:"how-it-works",children:[]}]},{value:"Get started",id:"get-started",children:[{value:"1. Sign in with a Leaf account",id:"1-sign-in-with-a-leaf-account",children:[]},{value:"2. Get an access token",id:"2-get-an-access-token",children:[]}]},{value:"Tutorial",id:"tutorial",children:[{value:"Angular",id:"angular",children:[]},{value:"React",id:"react",children:[]}]},{value:"Reference",id:"reference",children:[{value:"Property Overview",id:"property-overview",children:[]},{value:"Hooks Overview",id:"hooks-overview",children:[]}]}],s={rightToc:b};function p(e){var t=e.components,a=Object(r.a)(e,["components"]);return Object(i.b)("wrapper",Object(n.a)({},s,a,{components:t,mdxType:"MDXLayout"}),Object(i.b)("h2",{id:"overview"},"Overview"),Object(i.b)("p",null,"Leaf's File Upload Link is a widget that allows your customers to upload different machine file formats. These files will then get converted into a consistent output using the Leaf API."),Object(i.b)("p",{align:"center"},Object(i.b)("img",{alt:"File upload widget",width:"50%",src:Object(o.a)("img/leaf-file-upload.png")})),Object(i.b)("div",{className:"admonition admonition-caution alert alert--warning"},Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16"}),Object(i.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})))),"Beta")),Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"This is a beta feature."))),Object(i.b)("h3",{id:"how-it-works"},"How it works"),Object(i.b)("p",null,"The user can add files using the file picker from the ",Object(i.b)("inlineCode",{parentName:"p"},"Browse")," button or drop files in the ",Object(i.b)("inlineCode",{parentName:"p"},"Drag & drop")," zone. Your files must be in a ",Object(i.b)("inlineCode",{parentName:"p"},"zip")," file."),Object(i.b)("p",null,"During the upload, the users can see the progress of the upload and they are able to cancel the upload process for the pending files. "),Object(i.b)("div",{className:"admonition admonition-info alert alert--info"},Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(i.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Requirements")),Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"In addition to being ",Object(i.b)("a",Object(n.a)({parentName:"p"},{href:"/docs/authentication"}),"authenticated"),", you must have at least one Leaf user created. Learn more ",Object(i.b)("a",Object(n.a)({parentName:"p"},{href:"/docs/user_management_overview"}),"here"),"."))),Object(i.b)("h2",{id:"get-started"},"Get started"),Object(i.b)("h3",{id:"1-sign-in-with-a-leaf-account"},"1. Sign in with a Leaf account"),Object(i.b)("p",null,"You will need a Leaf account. If you don't have one yet, you can create it ",Object(i.b)("a",Object(n.a)({parentName:"p"},{href:"/docs/authentication"}),"here"),"."),Object(i.b)("h3",{id:"2-get-an-access-token"},"2. Get an access token"),Object(i.b)("p",null,"To use the widget you will need a Leaf token. Use our ",Object(i.b)("a",Object(n.a)({parentName:"p"},{href:"/docs/user_management_overview"}),"authentication guide")," to know how it works."),Object(i.b)("h2",{id:"tutorial"},"Tutorial"),Object(i.b)("h3",{id:"angular"},"Angular"),Object(i.b)("div",{className:"admonition admonition-tip alert alert--success"},Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(i.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})))),"tip")),Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},Object(i.b)("a",Object(n.a)({parentName:"p"},{href:"https://codesandbox.io/p/sandbox/leaf-link-angular-file-upload-dzr965"}),"Here")," you can run a live use case demo!\nIt will only be necessary to replace your information in the .html component."))),Object(i.b)("p",null,"To add this Leaf widget in an Angular application, you can use the ",Object(i.b)("inlineCode",{parentName:"p"},"@withleaf/leaf-link-angular")," library, which is a JavaScript library that provides all Leaf UI Widgets.\nHere are the general steps to get started:"),Object(i.b)("ol",null,Object(i.b)("li",{parentName:"ol"},"Install the @withleaf/leaf-link-angular package using ",Object(i.b)("inlineCode",{parentName:"li"},"npm"),":")),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"npm i @withleaf/leaf-link-angular\n")),Object(i.b)("ol",{start:2},Object(i.b)("li",{parentName:"ol"},"Import the library in your component or module file:")),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"import { FileUploadModule } from '@withleaf/leaf-link-angular';\n")),Object(i.b)("ol",{start:3},Object(i.b)("li",{parentName:"ol"},"Add the component to the HTML. Make sure you already created the Leaf user ",Object(i.b)("a",Object(n.a)({parentName:"li"},{href:"https://docs.withleaf.io/docs/Link_endpoints#api-key"}),"API key")," (",Object(i.b)("inlineCode",{parentName:"li"},"apiKey"),"); you need to specify both the Leaf User API Key and the Leaf User ID (",Object(i.b)("inlineCode",{parentName:"li"},"leafUser"),") in the required properties in the HTML component.\nCheck all the properties available on the reference ",Object(i.b)("a",Object(n.a)({parentName:"li"},{href:"#reference"}),"here"),".")),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'
\n \n
\n')),Object(i.b)("h3",{id:"react"},"React"),Object(i.b)("div",{className:"admonition admonition-tip alert alert--success"},Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(i.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})))),"tip")),Object(i.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},Object(i.b)("a",Object(n.a)({parentName:"p"},{href:"https://codesandbox.io/s/leaf-link-react-file-upload-vvr2tj"}),"Here")," you can run a live use case demo!\nIt will only be necessary to replace your information in the App.tsx file."))),Object(i.b)("p",null,"To add this Leaf widget in a React application, you can use the ",Object(i.b)("inlineCode",{parentName:"p"},"@withleaf/leaf-link-react")," library, which is a JavaScript library that provides all Leaf UI Widgets.\nHere are the general steps to get started:"),Object(i.b)("ol",null,Object(i.b)("li",{parentName:"ol"},"Install the @withleaf.io/leaf-link-react package using ",Object(i.b)("inlineCode",{parentName:"li"},"npm"),":")),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"npm i @withleaf/leaf-link-react\n")),Object(i.b)("ol",{start:2},Object(i.b)("li",{parentName:"ol"},"Import the component in your ",Object(i.b)("inlineCode",{parentName:"li"},"*.tsx")," file:")),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"import { FileUpload } from '@withleaf/leaf-link-react'\n")),Object(i.b)("ol",{start:3},Object(i.b)("li",{parentName:"ol"},"Add the component to the ",Object(i.b)("inlineCode",{parentName:"li"},"*.tsx")," file. Make sure you already created the Leaf user ",Object(i.b)("a",Object(n.a)({parentName:"li"},{href:"https://docs.withleaf.io/docs/Link_endpoints#api-key"}),"API key")," (",Object(i.b)("inlineCode",{parentName:"li"},"apiKey"),"); you need to specify both the Leaf User API Key and the Leaf User ID (",Object(i.b)("inlineCode",{parentName:"li"},"leafUser"),") in the required properties in the tsx component.\nCheck all the properties available on the reference ",Object(i.b)("a",Object(n.a)({parentName:"li"},{href:"#reference"}),"here"),".")),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'function App() {\n const IS_DARK_MODE: boolean = true;\n const LEAF_USER: string = "Your_Leaf_User";\n const API_KEY: string = "Your_API_Key";\n const COMPANY_NAME: string = "Your_Company";\n const COMPANY_LOGO: string = "Your_Company_Logo";\n const FILES_TIME_RANGE: number = 30;\n\n return (\n \n );\n}\n')),Object(i.b)("h2",{id:"reference"},"Reference"),Object(i.b)("p",null,"It is valid only for the React version."),Object(i.b)("h3",{id:"property-overview"},"Property Overview"),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Name"),Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Type"),Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Summary"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#apikey"}),"apiKey")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"String"),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"The authentication API Key")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#companylogourl"}),"companyLogoUrl")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"String"),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Customization: a link to the company logo")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#companyname"}),"companyName")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"String"),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Customization: the name of the company")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#filestimerange"}),"filesTimeRange")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Number"),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Time to get the historical of uploaded files")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#isdarkmode"}),"isDarkMode")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Boolean"),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Enables/disables the dark mode")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#leafuser"}),"leafUser")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"String"),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"The Leaf User ID")),Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#title"}),"title")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"String"),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Customization: a link to the company logo")))),Object(i.b)("h4",{id:"property-details"},"Property Details"),Object(i.b)("h4",{id:"apikey"},"apiKey"),Object(i.b)("p",null,"The ",Object(i.b)("inlineCode",{parentName:"p"},"apiKey")," is the authentication key that will allow the use of the widget.\nIt can be created and managed ",Object(i.b)("a",Object(n.a)({parentName:"p"},{href:"https://docs.withleaf.io/docs/Link_endpoints#api-key"}),"here"),"."),Object(i.b)("h4",{id:"companylogourl"},"companyLogoUrl"),Object(i.b)("p",null,"The URL to the company logo. It will be displayed in the landing screen. It can be a ",Object(i.b)("inlineCode",{parentName:"p"},"PNG"),", ",Object(i.b)("inlineCode",{parentName:"p"},"JPEG")," or ",Object(i.b)("inlineCode",{parentName:"p"},"SVG"),"."),Object(i.b)("h4",{id:"companyname"},"companyName"),Object(i.b)("p",null,"The company name. It will be displayed in the landing screen and in each reference about the customer."),Object(i.b)("h4",{id:"filestimerange"},"filesTimeRange"),Object(i.b)("p",null,"It sets the interval in days to display files already processed in the past. For example, if set to ",Object(i.b)("inlineCode",{parentName:"p"},"30"),", it will display the list of files sent and processed in the last 30 days."),Object(i.b)("h4",{id:"isdarkmode"},"isDarkMode"),Object(i.b)("p",null,"If set to ",Object(i.b)("inlineCode",{parentName:"p"},"true"),", it will enable the widget dark mode."),Object(i.b)("p",{align:"center"},Object(i.b)("img",{alt:"Dark mode",width:"30%",src:Object(o.a)("img/leaf-file-upload-dark-mode.png")})),Object(i.b)("h4",{id:"leafuser"},"leafUser"),Object(i.b)("p",null,"The Leaf User ID. Check ",Object(i.b)("a",Object(n.a)({parentName:"p"},{href:"/docs/user_management_overview"}),"this page")," for more info about the Leaf User."),Object(i.b)("h4",{id:"title"},"title"),Object(i.b)("p",null,"The text to display on the top of the widget."),Object(i.b)("h3",{id:"hooks-overview"},"Hooks Overview"),Object(i.b)("p",null,"Leaf Link also have hooks that can improve the developer experience when using the widgets."),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Name"),Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Type"),Object(i.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(n.a)({parentName:"td"},{href:"#leafbatchids"}),"leafBatchIds")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(i.b)("inlineCode",{parentName:"td"},"Array<{ batchId: string }>")),Object(i.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"Provide the array with the batchId of the uploaded files")))),Object(i.b)("h4",{id:"hooks-details"},"Hooks Details"),Object(i.b)("h5",{id:"leafbatchids"},"leafBatchIds"),Object(i.b)("p",null,"Provides the array with the ",Object(i.b)("inlineCode",{parentName:"p"},"batchId")," for each uploaded file. A new ID is added after each successful upload."),Object(i.b)("h4",{id:"how-to-use-it"},"How to use it"),Object(i.b)("h5",{id:"angular-1"},"Angular"),Object(i.b)("p",null,"Use the ",Object(i.b)("inlineCode",{parentName:"p"},"getLeafBatchData")," property to reference a function in your component."),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-html"}),'
\n \n \n
\n')),Object(i.b)("p",null,"From the component, you can get the ",Object(i.b)("a",Object(n.a)({parentName:"p"},{href:"#leafbatchids"}),"leafBatchIds")," array in the referenced function."),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"})," import { Component } from '@angular/core';\n\n @Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n })\n export class AppComponent {\n apiKey: string = 'apiKey';\n leafUser: string = 'leafUserId';\n companyName: string = 'companyName';\n companyLogo: string = 'companyLogo';\n\n yourFunctionNameHere(leafBatchIds: any) {\n console.log(leafBatchIds);\n }\n }\n")),Object(i.b)("h5",{id:"react-1"},"React"),Object(i.b)("p",null,"In the ",Object(i.b)("inlineCode",{parentName:"p"},"index.tsx")," will be necessary import the component ",Object(i.b)("inlineCode",{parentName:"p"},"Leaf"),"."),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"import { Leaf } from '@withleaf/leaf-link-react';\n")),Object(i.b)("p",null,"And this component should be organized like this:"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"\n \n \n \n \n")),Object(i.b)("p",null,"Additionally, you will need to import the useLeaf function as well:"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'import { FileUpload, useLeaf } from "@withleaf/leaf-link-react";\n')),Object(i.b)("p",null,"So will be necessary adjust the function in the ",Object(i.b)("inlineCode",{parentName:"p"},"App.tsx")," file:"),Object(i.b)("pre",null,Object(i.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'function App() {\n const IS_DARK_MODE: boolean = true;\n const COMPANY_NAME: string = "Your_Company";\n const LEAF_USER: string = "Your_Leaf_User_Id";\n const API_KEY: string = "Your_API_Key";\n const COMPANY_LOGO: string = YourCompanyLogo;\n const FILES_TIME_RANGE: number = 30;\n const { leafBatchIds } = useLeaf();\n\n useMemo(() => {\n console.log(leafBatchIds);\n }, [leafBatchIds]);\n')),Object(i.b)("p",null,"In this example we use the ",Object(i.b)("inlineCode",{parentName:"p"},"useMemo")," but you can use another hooks."))}p.isMDXComponent=!0},153:function(e,t,a){"use strict";a.d(t,"a",(function(){return p})),a.d(t,"b",(function(){return m}));var n=a(0),r=a.n(n);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function c(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var b=r.a.createContext({}),s=function(e){var t=r.a.useContext(b),a=t;return e&&(a="function"==typeof e?e(t):c(c({},t),e)),a},p=function(e){var t=s(e.components);return r.a.createElement(b.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},u=r.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,i=e.originalType,o=e.parentName,b=l(e,["components","mdxType","originalType","parentName"]),p=s(a),u=n,m=p["".concat(o,".").concat(u)]||p[u]||d[u]||i;return a?r.a.createElement(m,c(c({ref:t},b),{},{components:a})):r.a.createElement(m,c({ref:t},b))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=a.length,o=new Array(i);o[0]=u;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:n,o[1]=c;for(var b=2;b=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=o.a.createContext({}),d=function(e){var t=o.a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},s=function(e){var t=d(e.components);return o.a.createElement(p.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},f=o.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=d(n),f=r,m=s["".concat(i,".").concat(f)]||s[f]||u[f]||a;return n?o.a.createElement(m,l(l({ref:t},p),{},{components:n})):o.a.createElement(m,l({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=f;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l.mdxType="string"==typeof e?e:r,i[1]=l;for(var p=2;p console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/fields'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/fields/api/fields'\n")))),Object(s.b)("h4",{id:"response"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "1a952614-3673-4d1e-b677-1f7224339ec6",\n "leafUserId": "58800d61-91ac-4922-8e2a-f0216b9f052a",\n "boundaries": [\n "279b52d5-ec6d-4459-a06a-4f47ffab0659"\n ],\n "providerName": "JohnDeere",\n "providerId": 2,\n "providerFieldId": "b96ed268-728f-489e-b928-9d3e70082be4",\n "providerBoundaryId": "125fc49f-7e75-43fe-89f2-af976addb392",\n "providerFieldName": "The_Field_field",\n "organizationId": "428214",\n "type": "ORIGINAL",\n "createdTime": "2021-10-20T21:21:24.732030Z",\n "updatedTime": "2021-11-03T01:34:15.154051Z",\n "farmId": 3746117,\n "mergedFieldId": "f97c5bbc-2dbf-4400-8d59-39eba37f8847",\n "sources": []\n },\n {\n "id": "68c354f2-eb20-4512-816f-2edea4b6fca4",\n "leafUserId": "9ffc7b1c-617b-46cb-a8ef-927b26285b7f",\n "boundaries": [\n "39d171d7-9ec3-4201-81bf-9d57473b2a67"\n ],\n "type": "ORIGINAL",\n "createdTime": "2023-06-14T18:31:01.702615Z",\n "updatedTime": "2023-06-14T18:31:01.702615Z",\n "sources": []\n },\n ....\n]\n')),Object(s.b)("h3",{id:"get-a-field"},"Get a field"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/fields/{id}")),Object(s.b)("p",null,"Gets a single Field by Leaf User."),Object(s.b)("h4",{id:"request-examples-1"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{id}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{id}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{id}'\n")))),Object(s.b)("h4",{id:"response-1"},"Response"),Object(s.b)("p",null,"A single ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#field-resource"}),"Field")," as a JSON object."),Object(s.b)("h3",{id:"create-a-field"},"Create a field"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/fields")),Object(s.b)("p",null,"Creates a Field for the user ",Object(s.b)("inlineCode",{parentName:"p"},"leafUserId"),". A request body must be provided\ncontaining the entry ",Object(s.b)("inlineCode",{parentName:"p"},'"geometry"')," object which need to have the properties ",Object(s.b)("inlineCode",{parentName:"p"},'"type"')," and ",Object(s.b)("inlineCode",{parentName:"p"},'"coordinates"'),".\nThe geometry represents the boundaries of the Field being created as a GeoJSON geometry\n(",Object(s.b)("inlineCode",{parentName:"p"},'"type"')," property must be a ",Object(s.b)("inlineCode",{parentName:"p"},'"MultiPolygon"'),")."),Object(s.b)("p",null,"Consider that you can also set the ",Object(s.b)("inlineCode",{parentName:"p"},"id")," and ",Object(s.b)("inlineCode",{parentName:"p"},"name")," properties (both of them optional) in the request body. If no ",Object(s.b)("inlineCode",{parentName:"p"},"id")," is provided\nan UUID will be generated and this property ",Object(s.b)("strong",{parentName:"p"},"can not")," be updated."),Object(s.b)("h4",{id:"request-body"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "idTest", // optional\n "name": "nameTest", // optional\n "geometry": {\n "type": "MultiPolygon",\n "coordinates": [\n [\n [\n [-93.48821327980518, 41.77137549568163],\n [-93.48817333680519, 41.77143534378164],\n [-93.48821327390516, 41.76068857977987],\n [-93.48821327980518, 41.77137549568163]\n ]\n ]\n ]\n }\n}\n')),Object(s.b)("h4",{id:"request-examples-2"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n geometry: {\n type: \"MultiPolygon\",\n coordinates: [...]\n }\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'geometry': {\n 'type': \"MultiPolygon\",\n 'coordinates': [...]\n }\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "geometry": { "type: "MultiPolygon", "coordinates": [...] } }\'\n \'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields\'\n')))),Object(s.b)("h4",{id:"response-2"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "idTest",\n "leafUserId": "95eb7d79-b93d-4fc2-877a-3f2b366f8beb",\n "area": {\n "value": float,\n "unit": "ha"\n },\n "boundaries": [\n "d0245010-157d-4988-96a2-5f3637098475"\n ],\n "geometry": {\n "type": "MultiPolygon",\n "coordinates": [...]\n },\n "type": "ORIGINAL",\n "name": "nameTest",\n "createdTime": "2023-06-07T19:48:51.017280Z",\n "updatedTime": "2023-06-07T19:48:51.017280Z",\n "files": [\n "2762a5f2-ed53-4999-afac-f2d4b136dc1f"\n ]\n}\n')),Object(s.b)("h3",{id:"update-a-field"},"Update a Field"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"PATCH")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/fields/{id}")),Object(s.b)("div",{className:"admonition admonition-tip alert alert--success"},Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(s.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})))),"tip")),Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"This is for manually created fields only. Provider created fields need to be updated via the Provider platform."))),Object(s.b)("p",null,"Update the Field by ",Object(s.b)("inlineCode",{parentName:"p"},'"id"')," for the user ",Object(s.b)("inlineCode",{parentName:"p"},'"leafUserId"'),". The request body accepts updatable field properties like ",Object(s.b)("inlineCode",{parentName:"p"},'"name"')," to update the field name, ",Object(s.b)("inlineCode",{parentName:"p"},'"farmId"')," to update the related Farm of the Field and ",Object(s.b)("inlineCode",{parentName:"p"},'"geometry"'),", which represents the boundaries of the\nField as a GeoJSON geometry (it must be a ",Object(s.b)("inlineCode",{parentName:"p"},'"MultiPolygon"'),")."),Object(s.b)("h4",{id:"request-body-1"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "name": "updatedName",\n "farmId": 1,\n "geometry": {\n "type": "MultiPolygon",\n "coordinates": [\n [\n [\n [-93.48821327980518, 41.77137549568163],\n [-93.48817333680519, 41.77143534378164],\n [-93.48821327390516, 41.76068857977987],\n [-93.48821327980518, 41.77137549568163]\n ]\n ]\n ]\n }\n}\n')),Object(s.b)("h4",{id:"request-examples-3"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{id}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n name: \"updatedName\",\n farmId: 1,\n geometry: {\n type: \"MultiPolygon\",\n coordinates: [\n [-93.48821327980518, 41.77137549568163],\n [-93.48817333680519, 41.77143534378164],\n [-93.48821327390516, 41.76068857977987],\n [-93.48821327980518, 41.77137549568163]\n ]\n }\n}\n\naxios.patch(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{id}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'name': 'updatedName',\n 'farmId': 1,\n 'geometry': {\n 'type': \"MultiPolygon\",\n 'coordinates': [\n [-93.48821327980518, 41.77137549568163],\n [-93.48817333680519, 41.77143534378164],\n [-93.48821327390516, 41.76068857977987],\n [-93.48821327980518, 41.77137549568163]\n ]\n }\n}\n\nresponse = requests.patch(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X PATCH \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "name": "updatedName", "farmId": 1, "geometry": { "type: "MultiPolygon", "coordinates": [...] } }\'\n \'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{id}\'\n')))),Object(s.b)("h4",{id:"response-3"},"Response"),Object(s.b)("p",null,"A ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#field-resource"}),"Field")," as a JSON object."),Object(s.b)("h3",{id:"get-all-operation-files-of-a-field"},"Get all operation files of a field"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/fields/{fieldId}/operations/files")),Object(s.b)("p",null,"Gets a paged list of all operation files of the Field and Leaf User specified in\nthe URL."),Object(s.b)("p",null,"It is possible to filter the results by passing some query\nparameters. They are listed below."),Object(s.b)("table",null,Object(s.b)("thead",{parentName:"table"},Object(s.b)("tr",{parentName:"thead"},Object(s.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Parameter (to filter by)"),Object(s.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Type"),Object(s.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"))),Object(s.b)("tbody",{parentName:"table"},Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"operationType"),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),'String "harvested", "planted", "applied" or "other"'),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"retrieve operations of given type")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"provider"),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),'String "CNHI", "JohnDeere", "Trimble" or "ClimateFieldView"'),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"retrieve operations of given provider")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"origin"),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),'String "provider", "automerged", "merged" or "uploaded"'),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"retrieve operations of given origin")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"crop"),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),'String name of the crop, like "corn" or "soybeans". Entire crop list available ',Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"https://docs.withleaf.io/docs/machine_file_conversion_crops_table"}),"here")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"retrieve operations with this crop.")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"startTime"),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ISO 8601 datetime format"),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"retrieve operations that started after this date")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"endTime"),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"ISO 8601 datetime format"),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"retrieve operations that ended before this date")))),Object(s.b)("p",null,"You can also pass some parameters used exclusively for paging through results.\nThey are:"),Object(s.b)("ul",null,Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"page"),", an integer specifying the page being fetched (default is 0)"),Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"size"),", an integer specifying the size of the page (default is 20, max is 100)")),Object(s.b)("h4",{id:"request-examples-4"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/operations/files'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/operations/files'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/operations/files'\n")))),Object(s.b)("h4",{id:"response-4"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "abbac24d-7f13-414a-989a-ee5dc9de624b",\n "operationType": "harvested",\n "origin": "automerged",\n "startTime": "2017-10-27T08:59:58Z",\n "endTime": "2017-10-27T09:40:33Z",\n "crops": [\n "corn"\n ],\n "varieties": [\n "Corn"\n ],\n "providerFileId": "cacde0d5-55b9-4bff-bf2c-05ec1def1c95",\n "provider": "Leaf",\n "leafUserId": "dcb6fd16-b6f4-40bc-805e-659c7f7350d6"\n },\n ....\n]\n')),Object(s.b)("h3",{id:"get-an-operation-file-of-a-field"},"Get an operation file of a field"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/fields/{fieldId}/operations/files/{fileId}")),Object(s.b)("p",null,"Gets a single Operation File of a field by its id."),Object(s.b)("h4",{id:"request-examples-5"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/operations/files/{id}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/operations/files/{id}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/operations/files/{id}'\n")))),Object(s.b)("h4",{id:"response-5"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "75127023-190a-4579-b76c-ccbcfcf00d3c",\n "operationType": "harvested",\n "origin": "automerged",\n "startTime": "2017-10-27T08:59:58Z",\n "endTime": "2017-10-27T09:40:33Z",\n "crops": [\n "corn"\n ],\n "varieties": [\n "Corn"\n ],\n "providerFileId": "a3602817-57e4-4056-bdef-4fb687ba4c2e",\n "provider": "Leaf",\n "leafUserId": "01a17a22-e6fa-4d83-b343-ea23eddbd936"\n}\n')),Object(s.b)("h3",{id:"get-fields-by-geometry"},"Get Fields by geometry"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/fields/intersects")),Object(s.b)("p",null,"Gets a list of fields that intersect with the GeoJSON geometry (",Object(s.b)("inlineCode",{parentName:"p"},'"type"')," property must be a ",Object(s.b)("inlineCode",{parentName:"p"},'"MultiPolygon"'),") sent in\nthe request body. The minimum intersection percentage is given by\n",Object(s.b)("inlineCode",{parentName:"p"},"intersectionThreshold")," and can range from 0.01% to 100%, its default value is ",Object(s.b)("inlineCode",{parentName:"p"},"0.01"),"."),Object(s.b)("p",{align:"center"},Object(s.b)("img",{alt:"How it works",width:"75%",src:Object(l.a)("img/field_by_geometry.png")})),Object(s.b)("p",null,"The ",Object(s.b)("inlineCode",{parentName:"p"},"intersectionThreshold"),' can be compared with the "intersection by field" ratio or the "intersection by geometry" ratio. Whichever is satisfied first.'),Object(s.b)("p",null,"Here we have a sample for a field with 100 area unit and a geometry with 10 area unit: "),Object(s.b)("p",{align:"center"},Object(s.b)("img",{alt:"How it works",width:"35%",src:Object(l.a)("img/field_by_geometry_intersectionThreshold.png")})),Object(s.b)("p",null,"So, in this case, if the ",Object(s.b)("inlineCode",{parentName:"p"},"intersectionThreshold")," were 3, then the condition would be satisfied and the field would be returned, but if the value was greater than 50, then it would not satisfy the condition, as 50% is the highest intersection value:"),Object(s.b)("table",null,Object(s.b)("thead",{parentName:"table"},Object(s.b)("tr",{parentName:"thead"},Object(s.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"intersectionThreshold (%)"),Object(s.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"satisfied"))),Object(s.b)("tbody",{parentName:"table"},Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"3"),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2705")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"5"),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2705")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"37"),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2705")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"50"),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u2705")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"75"),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u274c")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"100"),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"\u274c")))),Object(s.b)("h4",{id:"request-body-2"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "geometry": {\n "type": "MultiPolygon",\n "coordinates": [\n [\n [\n [-93.48821327980518, 41.77137549568163],\n [-93.48817333680519, 41.77143534378164],\n [-93.48821327390516, 41.76068857977987],\n [-93.48821327980518, 41.77137549568163]\n ]\n ]\n ]\n },\n "intersectionThreshold": 3\n}\n')),Object(s.b)("h4",{id:"request-examples-6"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),'const axios = require(\'axios\')\nconst TOKEN = \'YOUR_TOKEN\'\n\nconst endpoint =\'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/intersects\'\nconst headers = { \'Authorization\': `Bearer ${TOKEN}` }\n\nconst data = {\n "geometry": {\n "type": "MultiPolygon",\n "coordinates": [\n [\n [\n [-93.48821327980518, 41.77137549568163],\n [-93.48817333680519, 41.77143534378164],\n [-93.48821327390516, 41.76068857977987],\n [-93.48821327980518, 41.77137549568163]\n ]\n ]\n ]\n },\n "intersectionThreshold": 3\n }\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n'))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nTOKEN = \'YOUR_TOKEN\'\n\nendpoint = \'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/intersects\'\nheaders = {\'Authorization\': \'Bearer YOUR_LEAF_TOKEN\'}\n\ndata = {\n "geometry": {\n "type": "MultiPolygon",\n "coordinates": [\n [\n [\n [-93.48821327980518, 41.77137549568163],\n [-93.48817333680519, 41.77143534378164],\n [-93.48821327390516, 41.76068857977987],\n [-93.48821327980518, 41.77137549568163]\n ]\n ]\n ]\n },\n "intersectionThreshold": 3\n }\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n'))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X POST \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "geometry": { "type": "MultiPolygon", "coordinates": [[[[-93.48821327980518, 41.77137549568163], [-93.48817333680519, 41.77143534378164], [-93.48821327390516, 41.76068857977987], [-93.48821327980518, 41.77137549568163]]]]}, "intersectionThreshold": 3 }\'\n \'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/intersects\'\n')))),Object(s.b)("h4",{id:"response-6"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "7740ce52-ae37-45e8-b6ed-5d55eea1dc09",\n "leafUserId": "04526587-21eb-42a0-8de5-59964340db4d",\n "area": {\n "value": 16.71391976284981,\n "unit": "ha"\n },\n "boundaries": [\n "f748db67-1885-4936-bc93-a3fbaf249957"\n ],\n "geometry": {\n "type": "MultiPolygon",\n "coordinates": [...]\n },\n "providerName": "ClimateFieldView",\n "providerId": 4,\n "providerFieldId": "62cf2326-8525-4c40-9e37-23fd1c76eeba",\n "providerBoundaryId": "bac50a8c-a3bc-4a90-9c4b-df7ea5f5d28b",\n "providerFieldName": "behav_test_field",\n "type": "ORIGINAL",\n "createdTime": "2023-06-06T09:35:07.676376Z",\n "updatedTime": "2023-06-06T09:35:07.965139Z",\n "sources": []\n },\n {\n {\n "id": "8bfe22fa-af4a-41ad-a167-fa792c3faa5f",\n "leafUserId": "04526587-21eb-42a0-8de5-59964340db4d",\n "area": {\n "value": 0.19710594050867244,\n "unit": "ha"\n },\n "boundaries": [\n "c329f54f-f979-47f1-96f6-bcf95a771be8"\n ],\n "geometry": {\n "type": "MultiPolygon",\n "coordinates": [...]\n },\n "type": "ORIGINAL",\n "name": "nameTest",\n "createdTime": "2023-06-07T13:55:04.028129Z",\n "updatedTime": "2023-06-07T14:08:13.101100Z",\n "sources": []\n },\n ....\n]\n')),Object(s.b)("h3",{id:"get-intersection-of-fields"},"Get intersection of fields"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{id}/fields/intersect")),Object(s.b)("p",null,"Gets a GeoJSON geometry (",Object(s.b)("inlineCode",{parentName:"p"},'"type"')," property must be a ",Object(s.b)("inlineCode",{parentName:"p"},'"MultiPolygon"'),") corresponding to the intersection of the Fields\nspecified by the given id's. Such Field id's goes in a list, in the request body."),Object(s.b)("h4",{id:"request-body-3"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n "id1",\n "id2"\n]\n')),Object(s.b)("h4",{id:"request-examples-7"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"var axios = require('axios');\nvar data = JSON.stringify([\"id1\",\"id2\"]);\n\nvar config = {\n method: 'post',\n url: 'https://api.withleaf.io/services/fields/api/users/{id}/fields/intersect',\n headers: {\n 'Authorization': 'Bearer YOUR_LEAF_TOKEN',\n 'Content-Type': 'application/json'\n },\n data : data\n};\n\naxios(config)\n.then(function (response) {\n console.log(JSON.stringify(response.data));\n})\n.catch(function (error) {\n console.log(error);\n});\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),'import requests\n\nurl = "https://api.withleaf.io/services/fields/api/users/{id}/fields/intersect"\n\npayload = "[\\"id1\\", \\"id2\\"]"\nheaders = {\n \'Authorization\': \'Bearer YOUR_LEAF_TOKEN\',\n \'Content-Type\': \'application/json\'\n}\n\nresponse = requests.request("POST", url, headers=headers, data = payload)\n'))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl --location --request \\\nPOST 'https://api.withleaf.io/services/fields/api/users/{id}/fields/intersect' \\\n--header 'Authorization: Bearer YOUR_LEAF_TOKEN' \\\n--header 'Content-Type: application/json' \\\n--data-raw '[\"id1\", \"id2\"]'\n")))),Object(s.b)("h4",{id:"response-7"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "type": "MultiPolygon",\n "coordinates": [\n [\n [\n [-89.84388470649719,39.71943436012731],\n [-89.84392762184143,39.72439389620628],\n [-89.83936786651611,39.725392361998416],\n [-89.83928203582764,39.71951688444436],\n [-89.84388470649719,39.71943436012731]\n ]\n ]\n ]\n}\n')),Object(s.b)("h3",{id:"sync-fields-manually"},"Sync fields manually"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/fields/sync")),Object(s.b)("div",{className:"admonition admonition-tip alert alert--success"},Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(s.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})))),"tip")),Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"This endpoint should be used to fetch data when one of the configurations is enabled: ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"/docs/configurations_overview#customdatasync"}),"customDataSync")," or ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"/docs/configurations_overview#fieldsautosync"}),"fieldsAutoSync"),"."))),Object(s.b)("p",null,"Schedules a synchronization to fetch Field Boundaries data from the providers."),Object(s.b)("h4",{id:"request-body-4"},"Request body"),Object(s.b)("p",null,"If the ",Object(s.b)("inlineCode",{parentName:"p"},"customSync")," configuration is enabled, only the fields sent in the body will be synchronized. For the ",Object(s.b)("inlineCode",{parentName:"p"},"fieldsAutoSync")," leave the body empty will sync all the fields available in the provider."),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "fields": ["UUID"]\n}\n')),Object(s.b)("h4",{id:"request-examples-8"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/sync'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n fields: [\"1a952614-3673-4d1e-b677-1f7224339ec6\"]\n}\n\naxios.post(endpoint, { headers, data })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/sync'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'fields': ['1a952614-3673-4d1e-b677-1f7224339ec6']\n}\n\nresponse = requests.post(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -d '{ \"fields\": [\"1a952614-3673-4d1e-b677-1f7224339ec6\"] }'\n 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/sync'\n")))),Object(s.b)("h3",{id:"upload-a-field-to-provider"},"Upload a Field to Provider"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leaf_user_id}/fields/{field_id}/integration/{provider_name}")),Object(s.b)("p",null,"Upload a field boundary a provider. The field must be available on the Leaf API first (manually created or fetched from a provider)."),Object(s.b)("ul",null,Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"provider_name"),": the name of the provider that will receive the field boundary. The supported providers are ",Object(s.b)("inlineCode",{parentName:"li"},"JohnDeere")," or ",Object(s.b)("inlineCode",{parentName:"li"},"ClimateFieldView"),"."),Object(s.b)("li",{parentName:"ul"},"if the ",Object(s.b)("inlineCode",{parentName:"li"},"provider_name")," is ",Object(s.b)("inlineCode",{parentName:"li"},"JohnDeere")," it will be necessary to add the ",Object(s.b)("inlineCode",{parentName:"li"},"organizationId")," as a parameter: ",Object(s.b)("inlineCode",{parentName:"li"},"?organizationId={organization_value}"))),Object(s.b)("h4",{id:"request-examples-9"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/fields/api/users/{leaf_user_id}/fields/{field_id}/integration/{provider_name}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.post(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leaf_user_id}/fields/{field_id}/integration/{provider_name}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.post(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/fields/api/users/{leaf_user_id}/fields/{field_id}/integration/{provider_name}'\n")))),Object(s.b)("h4",{id:"response-8"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "ba518264-7f2a-11ee-b962-0242ac120002": {\n "ClimateFieldView": {\n "id": "uuid",\n "status": "PENDING",\n "updatedAt": "2023-11-09T18:02:17.834Z"\n }\n }\n }\n]\n')),Object(s.b)("div",{className:"admonition admonition-info alert alert--info"},Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(s.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Warning")),Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"To avoid recursive synchronizations, it is not possible to send a field to the same provider from which it was fetched."))),Object(s.b)("h3",{id:"delete-a-field"},"Delete a field"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{id}/fields/{id}")),Object(s.b)("p",null,"Deletes the field with the given id."),Object(s.b)("div",{className:"admonition admonition-tip alert alert--success"},Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(s.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})))),"tip")),Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"Fields created by a provider cannot be deleted on Leaf side."))),Object(s.b)("h2",{id:"boundaries"},"Boundaries"),Object(s.b)("h3",{id:"get-all-boundaries-from-field"},"Get all boundaries from field"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/fields/{fieldId}/boundaries")),Object(s.b)("p",null,"Gets a list of boundaries from a field."),Object(s.b)("h4",{id:"request-examples-10"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{id}/boundaries'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{id}/boundaries'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{id}/boundaries'\n"))),Object(s.b)(i.a,{value:"res",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": "90060545-d448-493a-965f-625a17916067",\n "status": "ACTIVE",\n "geometry": {\n "type": "MultiPolygon",\n "coordinates": [\n [\n [\n [\n -89.84392762184143,\n 39.72439389620628\n ],\n [\n -89.84388470649719,\n 39.71943436012731\n ],\n [\n -89.83928203582764,\n 39.71951688444436\n ],\n [\n -89.83936786651611,\n 39.725392361998416\n ],\n [\n -89.84392762184143,\n 39.72439389620628\n ]\n ]\n ]\n ]\n },\n "area": {\n "value": 23.659422807502747,\n "unit": "ha"\n }\n }\n]\n')))),Object(s.b)("h4",{id:"response-9"},"Response"),Object(s.b)("p",null,"A list of ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#boundary-resource"}),"Boundary")," as a JSON object."),Object(s.b)("h3",{id:"get-a-boundary-from-field"},"Get a boundary from field"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/fields/{fieldId}/boundaries/{boundaryId}")),Object(s.b)("p",null,"Gets a single Boundary from a field by its id."),Object(s.b)("h4",{id:"request-examples-11"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/boundaries/{boundaryId}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/boundaries/{boundaryId}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/boundaries/{boundaryId}'\n")))),Object(s.b)("h4",{id:"response-10"},"Response"),Object(s.b)("p",null,"A single ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#boundary-resource"}),"Boundary")," as a JSON object."),Object(s.b)("h4",{id:"request-examples-12"},"Request examples"),Object(s.b)("h3",{id:"get-active-boundary-from-field"},"Get active boundary from field"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/fields/{fieldId}/boundary")),Object(s.b)("p",null,"Gets the active Boundary from a field."),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/boundary'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/boundary'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/boundary'\n")))),Object(s.b)("h4",{id:"response-11"},"Response"),Object(s.b)("p",null,"A single ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#boundary-resource"}),"Boundary")," as a JSON object."),Object(s.b)("h3",{id:"update-active-boundary-from-field"},"Update active boundary from field"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/fields/{fieldId}/boundary")),Object(s.b)("p",null,"Updates the active boundary of field ",Object(s.b)("inlineCode",{parentName:"p"},"fieldId"),". The previous active boundary is not deleted, but set as inactive."),Object(s.b)("h4",{id:"request-body-5"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "geometry": {\n "type": "MultiPolygon",\n "coordinates": [\n [\n [\n [-93.48821327980518, 41.77137549568163],\n [-93.48817333680519, 41.77143534378164],\n [-93.48821327390516, 41.76068857977987],\n [-93.48821327980518, 41.77137549568163]\n ]\n ]\n ]\n }\n}\n')),Object(s.b)("h4",{id:"request-examples-13"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/boundary'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n geometry: {\n type: \"MultiPolygon\",\n coordinates: [...]\n }\n}\n\naxios.put(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/boundary'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'geometry': {\n 'type': \"MultiPolygon\",\n 'coordinates': [...]\n }\n}\n\nresponse = requests.put(endpoint, headers=headers, json=data)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X PUT \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "geometry": { "type: "MultiPolygon", "geometry": [...] } }\'\n \'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/boundary\'\n')))),Object(s.b)("h4",{id:"response-12"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "g7941ef8-iddf-42c1-b43c-d36b0df369e8",\n "status": "ACTIVE",\n "geometry": {\n "type": "MultiPolygon",\n "coordinates": [\n [\n [\n [-93.48821327980518, 41.77137549568163],\n [-93.48817333680519, 41.77143534378164],\n [-93.48821327390516, 41.76068857977987],\n [-93.48821327980518, 41.77137549568163]\n ]\n ]\n ]\n },\n "area": {\n "value": 0.19710594050867244,\n "unit": "ha"\n },\n "validity": "VALID",\n "createdTime": "2023-06-07T19:48:51.017280Z",\n "updatedTime": "2023-06-07T19:48:51.017280Z"\n}\n')),Object(s.b)("h2",{id:"farms"},"Farms"),Object(s.b)("h3",{id:"get-all-farms"},"Get all farms"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/farms")),Object(s.b)("p",null,"Gets a paged list of all farms. It is possible to pass some query parameters."),Object(s.b)("ul",null,Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"growerId"),", only matches Farms from this growerId (integer)"),Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"provider"),", only matches Farms from this provider (string)"),Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"leafUserId"),", only matches Farms from this Leaf User (UUID)"),Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"page"),", an integer specifying the page being fetched"),Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"size"),", an integer specifying the size of the page (defaults to 20)")),Object(s.b)("p",null,"The parameters are used exclusively for paging through results."),Object(s.b)("h4",{id:"request-examples-14"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/fields/api/farms'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/farms'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/fields/api/farms'\n")))),Object(s.b)("h4",{id:"response-13"},"Response"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": 1538766,\n "name": "name",\n "providerId": 2,\n "providerName": "JohnDeere",\n "providerFarmId": "2f4a03ed-ac81-4c6d-810d-1db6b47baec2",\n "providerFarmName": "farmName",\n "leafUserId": "ace92e9c-2e83-4d85-ab34-1f76a480abc8",\n "fieldIds": [\n "6595418e-11d2-4260-9e6b-e8c452fb8375"\n ],\n "growerId": 12345,\n "createdTime": "2023-06-06T09:34:11.759672Z",\n "updatedTime": "2023-06-07T09:15:42.855759Z"\n },\n ....\n]\n')),Object(s.b)("h3",{id:"get-a-farm"},"Get a farm"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/farms/{id}")),Object(s.b)("p",null,"Gets a single farm by its ",Object(s.b)("inlineCode",{parentName:"p"},"id")," from the user ",Object(s.b)("inlineCode",{parentName:"p"},"leafUserId"),"."),Object(s.b)("h4",{id:"request-examples-15"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/farms/{id}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/farms/{id}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/farms/{id}'\n")))),Object(s.b)("h4",{id:"response-14"},"Response"),Object(s.b)("p",null,"A single ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#farm-resource"}),"Farm")," as a JSON object."),Object(s.b)("h3",{id:"create-a-farm"},"Create a farm"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/farms")),Object(s.b)("p",null,"Creates a farm for the user ",Object(s.b)("inlineCode",{parentName:"p"},"leafUserId"),". It's possible to pass both the ",Object(s.b)("inlineCode",{parentName:"p"},"farmName")," and the ",Object(s.b)("inlineCode",{parentName:"p"},"growerId")," on the body of\nthe request."),Object(s.b)("h4",{id:"request-body-6"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "name": "Farm 01",\n "growerId": 123\n}\n')),Object(s.b)("h4",{id:"request-examples-16"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/farms'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n name: 'farmName',\n}\n\naxios.post(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/farms'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'name': 'farmName',\n}\n\nresponse = requests.post(endpoint, json=data, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -d '{ \"name\": \"farmName\" }'\n 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/farms'\n")))),Object(s.b)("h4",{id:"response-15"},"Response"),Object(s.b)("p",null,"A single ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#farm-resource"}),"Farm")," as a JSON object."),Object(s.b)("h3",{id:"update-a-farm"},"Update a farm"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/farms/{id}")),Object(s.b)("p",null,"Updates the farm with id ",Object(s.b)("inlineCode",{parentName:"p"},"id")," for the user ",Object(s.b)("inlineCode",{parentName:"p"},"leafUserId"),". It's possible to pass both the ",Object(s.b)("inlineCode",{parentName:"p"},"farmName")," and the ",Object(s.b)("inlineCode",{parentName:"p"},"growerId"),"\non the body of the request."),Object(s.b)("h4",{id:"request-body-7"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "name": "Updated Farm Name",\n "growerId": 123\n}\n')),Object(s.b)("h4",{id:"request-examples-17"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/farms/{id}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n name: 'newFarmName'\n}\n\naxios.put(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/farms/{id}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'name': 'newFarmName'\n}\n\nresponse = requests.put(endpoint, json=data, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),'curl -X PUT \\\n -H \'Authorization: Bearer YOUR_TOKEN\' \\\n -d \'{ "name": "newFarmName", "growerId": "newGrowerId }\'\n \'https://api.withleaf.io/services/fields/api/users/{leafUserId}/farms/{id}\'\n')))),Object(s.b)("h4",{id:"response-16"},"Response"),Object(s.b)("p",null,"A single ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#farm-resource"}),"Farm")," as a JSON object."),Object(s.b)("h2",{id:"grower"},"Grower"),Object(s.b)("h3",{id:"get-all-growers"},"Get all growers"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/growers")),Object(s.b)("p",null,"Gets a paged list of all growers. Use the following parameters for paging\nthrough results."),Object(s.b)("ul",null,Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"provider"),", only matches Growers from this provider (string)"),Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"leafUserId"),", only matches Growers from this Leaf User (UUID)"),Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"page"),", an integer specifying the page being fetched"),Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"size"),", an integer specifying the size of the page (defaults to 20)")),Object(s.b)("h4",{id:"request-examples-18"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='https://api.withleaf.io/services/fields/api/growers'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/growers'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/fields/api/growers'\n")))),Object(s.b)("h4",{id:"response-17"},"Response"),Object(s.b)("p",null,"A list of ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#grower-resource"}),"Grower")," as a JSON object."),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'[\n {\n "id": 873300016,\n "name": "1Grower",\n "leafUserId": "1d3ecb0f-bf3d-42db-aae6-8c45c045d28c",\n "providerName": "JohnDeere",\n "providerId": 23,\n "providerGrowerId": "1Grower",\n "farmIds": [],\n "createdTime": "2023-06-06T03:31:39.966630Z",\n "updatedTime": "2023-06-07T20:01:14.814346Z"\n },\n ....\n]\n')),Object(s.b)("h3",{id:"get-a-grower"},"Get a grower"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/growers/{id}")),Object(s.b)("p",null,"Gets a single grower by its ",Object(s.b)("inlineCode",{parentName:"p"},"id")," from the user ",Object(s.b)("inlineCode",{parentName:"p"},"leafUserId"),"."),Object(s.b)("h4",{id:"request-examples-19"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserID}/growers/{id}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserID}/growers/{id}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/growers/{id}'\n")))),Object(s.b)("h4",{id:"response-18"},"Response"),Object(s.b)("p",null,"A single ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#grower-resource"}),"Grower")," as a JSON object."),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": 873300016,\n "name": "1Grower",\n "leafUserId": "1d3ecb0f-bf3d-42db-aae6-8c45c045d28c",\n "providerName": "JohnDeere",\n "providerId": 23,\n "providerGrowerId": "1Grower",\n "farmIds": [],\n "createdTime": "2023-06-06T03:31:39.966630Z",\n "updatedTime": "2023-06-07T20:01:14.814346Z"\n}\n')),Object(s.b)("div",{className:"admonition admonition-tip alert alert--success"},Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(s.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})))),"Note")),Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"In our system, Growers are equivalent to John Deere Client. That been said, the\nattribute ",Object(s.b)("inlineCode",{parentName:"p"},"name")," comes directly from the Client's name for growers with John Deere as provider."))),Object(s.b)("h3",{id:"create-a-grower"},"Create a grower"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/growers")),Object(s.b)("p",null,"Creates a grower for the user ",Object(s.b)("inlineCode",{parentName:"p"},"leafUserId"),". It's possible to pass ",Object(s.b)("inlineCode",{parentName:"p"},"name")," on the body of the request."),Object(s.b)("h4",{id:"request-body-8"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "name": "Example Grower Name"\n}\n')),Object(s.b)("h4",{id:"request-examples-20"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/growers'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n name: 'growerName'\n}\n\naxios.post(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/growers'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'name': 'growerName'\n}\n\nresponse = requests.post(endpoint, json=data, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X POST \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -d '{ \"name\": \"growerName\" }'\n 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/growers'\n")))),Object(s.b)("h4",{id:"response-19"},"Response"),Object(s.b)("p",null,"A single ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#grower-resource"}),"Grower")," as a JSON object."),Object(s.b)("h3",{id:"update-a-grower"},"Update a grower"),Object(s.b)("p",null,"\xa0",Object(s.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(s.b)("inlineCode",{parentName:"p"},"/users/{leafUserId}/growers/{id}")),Object(s.b)("p",null,"Updates the grower with id ",Object(s.b)("inlineCode",{parentName:"p"},"id")," for the user ",Object(s.b)("inlineCode",{parentName:"p"},"leafUserId"),". It's possible to pass only the ",Object(s.b)("inlineCode",{parentName:"p"},"name")," on the body of the request."),Object(s.b)("h4",{id:"request-body-9"},"Request body"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "name": "Updated Grower Name"\n}\n')),Object(s.b)("h4",{id:"request-examples-21"},"Request examples"),Object(s.b)(b.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(s.b)(i.a,{value:"js",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/growers/{id}'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\nconst data = {\n name: 'newGrowerName'\n}\n\naxios.put(endpoint, data, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(s.b)(i.a,{value:"py",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/growers/{id}'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\ndata = {\n 'name': 'newGrowerName'\n}\n\nresponse = requests.put(endpoint, json=data, headers=headers)\nprint(response.json())\n"))),Object(s.b)(i.a,{value:"sh",mdxType:"TabItem"},Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-shell"}),"curl -X PUT \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n -d '{ \"name\": \"newGrowerName\"}'\n 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/growers/{id}'\n")))),Object(s.b)("h4",{id:"response-20"},"Response"),Object(s.b)("p",null,"A single ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#grower-resource"}),"Grower")," as a JSON object."),Object(s.b)("h2",{id:"rest-resources"},"REST Resources"),Object(s.b)("p",null,"See below the REST resources and their endpoints."),Object(s.b)("h3",{id:"field-resource"},"Field Resource"),Object(s.b)("p",null,"A field might have one or neither of the following keys: "),Object(s.b)("ul",null,Object(s.b)("li",{parentName:"ul"},'a "mergedFieldId" key or'),Object(s.b)("li",{parentName:"ul"},'a "sources" key')),Object(s.b)("p",null,"A Field will only have one of the previous keys if it is either a field that\nhas been merged with other one(s) or if it is a result of a merge. Leaf merges\nfields that have any sort of overlap. This makes it easier for you to query\noperations from a field by querying by the merged field. Because a field might\nexist in multiple providers, Leaf detects that and creates a single field that\nyou can query for - and you can still query by the individual fields too."),Object(s.b)("p",null,Object(s.b)("strong",{parentName:"p"},Object(s.b)("inlineCode",{parentName:"strong"},"geometry")," and ",Object(s.b)("inlineCode",{parentName:"strong"},"area")," are deprecated keys")," that contains the geometry of the active boundary and its area, respectively."),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "UUID",\n "providerName": "string",\n "providerFieldName": "string",\n "providerFieldId": "string",\n "providerBoundaryId": "UUID",\n "type": "ORIGINAL",\n "leafUserId": "UUID",\n "organizationId": "string",\n "mergedFieldId": ["UUID"],\n "files": ["UUID"],\n "boundaries": ["UUID"],\n "createdTime": "ISO date-time",\n "updatedTime": "ISO date-time",\n "status": "PROCESSED"\n}\n')),Object(s.b)("h4",{id:"preview-mode"},"Preview mode"),Object(s.b)("p",null,"If the ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"/docs/configurations_overview#customdatasync"}),Object(s.b)("inlineCode",{parentName:"a"},"customDataSync"))," configuration is enabled, the field will be fetched from the providers in the ",Object(s.b)("inlineCode",{parentName:"p"},"PREVIEW")," mode. A Field in ",Object(s.b)("inlineCode",{parentName:"p"},"PREVIEW")," mode has almost all properties except the geometry so that no boundaries will be available."),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "UUID",\n "providerName": "string",\n "providerFieldName": "string",\n "providerFieldId": "string",\n "providerBoundaryId": "UUID",\n "type": "ORIGINAL",\n "leafUserId": "UUID",\n "organizationId": "string",\n "mergedFieldId": ["UUID"],\n "files": ["UUID"],\n "boundaries": [],\n "createdTime": "ISO date-time",\n "updatedTime": "ISO date-time",\n "status": "PREVIEW"\n}\n')),Object(s.b)("p",null,"Those Fields will still be listed in the field endpoints, allowing the custom synchronization of the resources available in the providers. To fetch a Field completely, it is necessary to remove it from the ",Object(s.b)("inlineCode",{parentName:"p"},"PREVIEW")," mode, sending it in the ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#sync-fields-manually"}),"manual sync endpoint"),"."),Object(s.b)("p",null,"After the change request, the field(s) will be fetched completely in the next synchronization window and it will be available as ",Object(s.b)("inlineCode",{parentName:"p"},"PROCESSED"),"."),Object(s.b)("p",null,Object(s.b)("strong",{parentName:"p"},"Field operations")),Object(s.b)("p",null,"In ",Object(s.b)("inlineCode",{parentName:"p"},"PREVIEW")," mode, the operation files associated with the fields on the provider side will also not be fetched and will only be available after the field sync request. Since not all providers support this relationship, it will only be reflected in John Deere and Climate FieldView files. For other providers, all files will be fetched normally, regardless of the configuration."),Object(s.b)("table",null,Object(s.b)("thead",{parentName:"table"},Object(s.b)("tr",{parentName:"thead"},Object(s.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(s.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(s.b)("tbody",{parentName:"table"},Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-fields"}),"Get all fields")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"td"},"/fields"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#get-a-field"}),"Get a field")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{id}/fields/{id}"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#create-a-field"}),"Create a field")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{id}/fields"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#get-fields-by-geometry"}),"Get fields by geometry")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"td"},"/fields/query/intersects"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#get-intersection-of-fields"}),"Get intersection of fields")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{id}/fields/intersect"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#sync-fields-manually"}),"Sync fields manually")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{id}/fields/sync"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#delete-a-field"}),"Delete a field")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--danger"},"DELETE")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{id}/fields/{id}"))))),Object(s.b)("h3",{id:"boundary-resource"},"Boundary Resource"),Object(s.b)("p",null,"Every Field at Leaf can have 0 or many boundaries. Fields created via Leaf's endpoints must have at least one boundary. Only one boundary may be active, the others are inactive boundaries. Boundaries cannot be deleted or have its geometry updated. Every update generates a new Boundary, and Leaf keeps a history of all seen Boundaries."),Object(s.b)("p",null,"Each boundary has a ",Object(s.b)("inlineCode",{parentName:"p"},"status")," and ",Object(s.b)("inlineCode",{parentName:"p"},"providerStatus"),"."),Object(s.b)("ul",null,Object(s.b)("li",{parentName:"ul"},Object(s.b)("p",{parentName:"li"},Object(s.b)("inlineCode",{parentName:"p"},"status")," - Represents the current status of the boundary:"),Object(s.b)("ul",{parentName:"li"},Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"ACTIVE")," - If the boundary was created at Leaf, it is the active boundary. If it is from a provider,\nthis boundary exists at the provider and is the active boundary there."),Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"INACTIVE")," - If the boundary was created at Leaf, it is an inactive boundary. If it is from a provider, this boundary exists at the provider and is inactive there."),Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"OUTDATED_ON_PROVIDER")," - The boundary is from a provider. The boundary once existed on the provider exactly as it is in that boundary, but it was edited (e.g. has a new geometry but the same provider boundary id)."),Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"DELETED_ON_PROVIDER")," - The boundary is from a provider. The boundary once existed on the provider, but it was deleted. The user won't find that boundary in the provider."))),Object(s.b)("li",{parentName:"ul"},Object(s.b)("p",{parentName:"li"},Object(s.b)("inlineCode",{parentName:"p"},"providerStatus")," - Is the status of the boundary on the provider."),Object(s.b)("ul",{parentName:"li"},Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"ACTIVE")," - The boundary is the active boundary in the provider."),Object(s.b)("li",{parentName:"ul"},Object(s.b)("inlineCode",{parentName:"li"},"INACTIVE")," - The boundary is inactive in the provider.")))),Object(s.b)("p",null,Object(s.b)("inlineCode",{parentName:"p"},"providerStatus"),", just like the geometry, is a static attribute. In case this attribute is changed at the provider, the boundary's ",Object(s.b)("inlineCode",{parentName:"p"},"status")," is updated and a new boundary is created with the updated ",Object(s.b)("inlineCode",{parentName:"p"},"providerStatus")," in order to maintain history."),Object(s.b)("p",null,"The ",Object(s.b)("inlineCode",{parentName:"p"},"geometry")," may be invalidly registered with the provider, more information in ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"#troubleshooting"}),"Troubleshooting"),"."),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "UUID",\n "status": "ACTIVE",\n "providerStatus": "ACTIVE",\n "providerBoundaryId": "UUID",\n "geometry": {\n "type": "MultiPolygon",\n "coordinates": [\n [\n [\n [\n -89.84392762184143,\n 39.72439389620628\n ],\n [\n -89.84388470649719,\n 39.71943436012731\n ],\n [\n -89.83928203582764,\n 39.71951688444436\n ],\n [\n -89.83936786651611,\n 39.725392361998416\n ],\n [\n -89.84392762184143,\n 39.72439389620628\n ]\n ]\n ]\n ]\n },\n "area": {\n "value": double,\n "unit": "ha"\n },\n "validity": "VALID",\n "createdTime": "2023-06-06T03:33:51.528534Z",\n "updatedTime": "2023-06-06T03:33:51.528534Z"\n }\n}\n')),Object(s.b)("table",null,Object(s.b)("thead",{parentName:"table"},Object(s.b)("tr",{parentName:"thead"},Object(s.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(s.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(s.b)("tbody",{parentName:"table"},Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-boundaries-from-field"}),"Get all boundaries from field")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"td"},"users/{leafUserId}/fields/{fieldId}/boundaries"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#get-a-boundary-from-field"}),"Get a boundary from field")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"td"},"users/{leafUserId}/fields/{fieldId}/boundaries/{boundaryId}"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#get-active-boundary-from-field"}),"Get active boundary from field")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"td"},"users/{leafUserId}/fields/{fieldId}/boundary"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#update-active-boundary-from-field"}),"Update active boundary from field")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(s.b)("inlineCode",{parentName:"td"},"users/{leafUserId}/fields/{fieldId}/boundary"))))),Object(s.b)("h3",{id:"operation-resource"},"Operation Resource"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": "UUID",\n "operationType": "harvested|planted|applied",\n "startTime": "ISO date-time",\n "endTime": "ISO date-time",\n "crops": ["string"],\n "varieties": ["string"],\n "providerFileId": "string",\n "provider": "Trimble",\n "origin": "provider|merged|automerged|uploaded",\n "leafUserId": "UUID"\n}\n')),Object(s.b)("table",null,Object(s.b)("thead",{parentName:"table"},Object(s.b)("tr",{parentName:"thead"},Object(s.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(s.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(s.b)("tbody",{parentName:"table"},Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-operation-files-of-a-field-deprecated"}),"Get all operations of a field (deprecated)")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/fields/{fieldId}/operations"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-operation-files-of-a-field"}),"Get all operations of a field")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/fields/{fieldId}/operations/files"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#get-an-operation-of-a-field-deprecated"}),"Get an operation of a field (deprecated)")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/fields/{fieldId}/operations/{fileId}"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#get-an-operation-of-a-field"}),"Get an operation of a field")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/fields/{fieldId}/operations/files/{fileId}"))))),Object(s.b)("h3",{id:"farm-resource"},"Farm Resource"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": int,\n "name": "string",\n "providerId": int,\n "providerName": "string",\n "providerFarmId": "UUID",\n "providerFarmName": "farmName",\n "leafUserId": "UUID",\n "fieldIds": [\n "UUID"\n ],\n "growerId": int,\n "createdTime": "2023-06-06T09:34:11.759672Z",\n "updatedTime": "2023-06-07T09:15:42.855759Z"\n}\n')),Object(s.b)("table",null,Object(s.b)("thead",{parentName:"table"},Object(s.b)("tr",{parentName:"thead"},Object(s.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(s.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(s.b)("tbody",{parentName:"table"},Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-farms"}),"Get all farms")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"td"},"/farms"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#get-a-farm"}),"Get a farm")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{id}/farms/{id}"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#create-a-farm"}),"Create a farm")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/farms"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#update-a-farm"}),"Update a farm")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/farms/{id}"))))),Object(s.b)("h3",{id:"grower-resource"},"Grower Resource"),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "id": int,\n "name": "string",\n "leafUserId": "UUID",\n "providerName": "string",\n "providerId": int,\n "providerGrowerId": "string",\n "farmIds": [\n "UUID"\n ],\n "createdTime": "ISO date-time",\n "updatedTime": "ISO date-time"\n}\n')),Object(s.b)("p",null,Object(s.b)("em",{parentName:"p"},"If there is a name available for the grower so the ",Object(s.b)("inlineCode",{parentName:"em"},"name")," property will be returned as well.")),Object(s.b)("table",null,Object(s.b)("thead",{parentName:"table"},Object(s.b)("tr",{parentName:"thead"},Object(s.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"),Object(s.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Endpoints"))),Object(s.b)("tbody",{parentName:"table"},Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#get-all-growers"}),"Get all growers")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"td"},"/growers"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#get-a-grower"}),"Get a grower")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--success"},"GET")," ",Object(s.b)("inlineCode",{parentName:"td"},"/growers/{id}"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#create-a-grower"}),"Create a grower")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--warning"},"POST")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/growers"))),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("a",Object(n.a)({parentName:"td"},{href:"#update-a-grower"}),"Update a grower")),Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(s.b)("span",{class:"badge badge--warning"},"PUT")," ",Object(s.b)("inlineCode",{parentName:"td"},"/users/{leafUserId}/growers/{id}"))))),Object(s.b)("h2",{id:"troubleshooting"},"Troubleshooting"),Object(s.b)("p",null,"Currently, Leaf gets the field boundary data as available from the provider, so in some cases there may be fields without\nboundaries or with invalid boundaries, identified with one of the values below:"),Object(s.b)("table",null,Object(s.b)("thead",{parentName:"table"},Object(s.b)("tr",{parentName:"thead"},Object(s.b)("th",Object(n.a)({parentName:"tr"},{align:"center"}),"Validity values"))),Object(s.b)("tbody",{parentName:"table"},Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:"center"}),"VALID")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:"center"}),"REPEATED_POINT")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:"center"}),"HOLE_OUTSIDE_SHELL")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:"center"}),"NESTED_HOLES")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:"center"}),"DISCONNECTED_INTERIOR")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:"center"}),"SELF_INTERSECTION")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:"center"}),"RING_SELF_INTERSECTION")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:"center"}),"NESTED_SHELLS")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:"center"}),"DUPLICATE_RINGS")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:"center"}),"TOO_FEW_POINTS")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:"center"}),"INVALID_COORDINATE")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:"center"}),"RING_NOT_CLOSED")),Object(s.b)("tr",{parentName:"tbody"},Object(s.b)("td",Object(n.a)({parentName:"tr"},{align:"center"}),"NOT_ALLOWED_GEOMETRY_TYPE")))),Object(s.b)("p",null,"Here is an example of a geometry registered as invalid due to a ",Object(s.b)("strong",{parentName:"p"},"SELF_INTERSECTION"),"."),Object(s.b)("pre",null,Object(s.b)("code",Object(n.a)({parentName:"pre"},{className:"language-json"}),'{\n "geometry": {\n "coordinates": [\n [\n [\n [-47.779352980393611,-21.192167369960515], \n [-47.775885948768021,-21.192669687635007], \n [-47.775917640099145,-21.194602117356858], \n [-47.780062866210912,-21.195033512590314], \n [-47.77870013897234,-21.191730056712402], \n [-47.779352980393611,-21.192167369960515]\n ]\n ]\n ],\n "type": "MultiPolygon"\n }\n}\n')),Object(s.b)("p",null,"This is what this invalid type of geometry looks like from the provider side:"),Object(s.b)("img",{alt:"Field example",src:Object(l.a)("img/invalid_geometry.png")}),Object(s.b)("h3",{id:"automatic-geometry-fix"},"Automatic geometry fix"),Object(s.b)("p",null,"There is a ",Object(s.b)("a",Object(n.a)({parentName:"p"},{href:"/docs/configurations_overview#automaticfixboundary"}),"configuration")," available to fix the invalid geometry that Leaf fetches from the provider."),Object(s.b)("p",null,"When enabled, Leaf will try to fix the geometry. If the fix is successful, then the invalid boundary will be disabled (available as a historical boundary) and the new one will be available as the main boundary with the property ",Object(s.b)("inlineCode",{parentName:"p"},'"fixStatus": "FIXED"')),Object(s.b)("p",null,"This behavior only applies to Fields obtained from providers, as validation prevents Fields from being created manually with invalid geometries."),Object(s.b)("div",{className:"admonition admonition-info alert alert--info"},Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-heading"}),Object(s.b)("h5",{parentName:"div"},Object(s.b)("span",Object(n.a)({parentName:"h5"},{className:"admonition-icon"}),Object(s.b)("svg",Object(n.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"16",viewBox:"0 0 14 16"}),Object(s.b)("path",Object(n.a)({parentName:"svg"},{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})))),"Warning")),Object(s.b)("div",Object(n.a)({parentName:"div"},{className:"admonition-content"}),Object(s.b)("p",{parentName:"div"},"Note that this is an automatic procedure and that the corrected geometry may present small differences in relation to the original, such as an increase or decrease in area."))))}O.isMDXComponent=!0},153:function(e,a,t){"use strict";t.d(a,"a",(function(){return o})),t.d(a,"b",(function(){return u}));var n=t(0),r=t.n(n);function s(e,a,t){return a in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function b(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);a&&(n=n.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var a=1;a=0||(r[t]=e[t]);return r}(e,a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var d=r.a.createContext({}),c=function(e){var a=r.a.useContext(d),t=a;return e&&(t="function"==typeof e?e(a):i(i({},a),e)),t},o=function(e){var a=c(e.components);return r.a.createElement(d.Provider,{value:a},e.children)},p={inlineCode:"code",wrapper:function(e){var a=e.children;return r.a.createElement(r.a.Fragment,{},a)}},O=r.a.forwardRef((function(e,a){var t=e.components,n=e.mdxType,s=e.originalType,b=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),o=c(t),O=n,u=o["".concat(b,".").concat(O)]||o[O]||p[O]||s;return t?r.a.createElement(u,i(i({ref:a},d),{},{components:t})):r.a.createElement(u,i({ref:a},d))}));function u(e,a){var t=arguments,n=a&&a.mdxType;if("string"==typeof e||n){var s=t.length,b=new Array(s);b[0]=O;var i={};for(var l in a)hasOwnProperty.call(a,l)&&(i[l]=a[l]);i.originalType=e,i.mdxType="string"==typeof e?e:n,b[1]=i;for(var d=2;d;rel="next",\n;rel="last",\n;rel="first"\n')),Object(i.b)("h2",{id:"date-format"},"Date format"),Object(i.b)("p",null,"All the dates follow ISO 8601 format. Specifically, all the dates should be in the format \"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\"."),Object(i.b)("h2",{id:"file-archiving"},"File archiving"),Object(i.b)("p",null,"By default, our API archives files to slower storage after 180 days of no access. The file will only be available again upon a support request."),Object(i.b)("h2",{id:"error-codes"},"Error codes"),Object(i.b)("table",null,Object(i.b)("thead",{parentName:"table"},Object(i.b)("tr",{parentName:"thead"},Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Service"),Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Endpoint"),Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Message"),Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"HTTP Status"),Object(i.b)("th",Object(a.a)({parentName:"tr"},{align:null}),"Reason"))),Object(i.b)("tbody",{parentName:"table"},Object(i.b)("tr",{parentName:"tbody"},Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Field Operations"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),Object(i.b)("a",Object(a.a)({parentName:"td"},{href:"https://docs.withleaf.io/docs/converters_endpoints#upload-a-file"}),"Upload a file")),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"Bad Request"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"400"),Object(i.b)("td",Object(a.a)({parentName:"tr"},{align:null}),"The uploaded file is bigger than 3 GB ")))),Object(i.b)("h2",{id:"downloading-files-from-leaf"},"Downloading files from Leaf"),Object(i.b)("p",null,"To provide greater security all files provided by Leaf are now protected and must be accessed with authentication using the existing Leaf token."),Object(i.b)("div",{className:"admonition admonition-tip alert alert--success"},Object(i.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(a.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(a.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"16",viewBox:"0 0 12 16"}),Object(i.b)("path",Object(a.a)({parentName:"svg"},{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})))),"tip")),Object(i.b)("div",Object(a.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"This is a recent change, so the old download links are still available, however, it will be discontinued soon. Therefore, it is strongly recommended that updates are made to access the new download links providers by Leaf (it can be identified with the prefix ",Object(i.b)("inlineCode",{parentName:"p"},"download-"),")."))),Object(i.b)("h3",{id:"authentication-sample"},"Authentication sample"),Object(i.b)(o.a,{defaultValue:"sh",values:[{label:"cURL",value:"sh"},{label:"Python",value:"py"},{label:"JavaScript",value:"js"}],mdxType:"Tabs"},Object(i.b)(c.a,{value:"js",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-js"}),"const axios = require('axios')\nconst TOKEN = 'YOUR_TOKEN'\n\nconst endpoint ='downloadUrl'\nconst headers = { 'Authorization': `Bearer ${TOKEN}` }\n\naxios.get(endpoint, { headers })\n .then(res => console.log(res.data))\n .catch(console.error)\n"))),Object(i.b)(c.a,{value:"py",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-py"}),"import requests\n\nTOKEN = 'YOUR_TOKEN'\n\nendpoint = 'downloadUrl'\nheaders = {'Authorization': f'Bearer {TOKEN}'}\n\nresponse = requests.get(endpoint, headers=headers)\nprint(response.json())\n"))),Object(i.b)(c.a,{value:"sh",mdxType:"TabItem"},Object(i.b)("pre",null,Object(i.b)("code",Object(a.a)({parentName:"pre"},{className:"language-shell"}),"curl -X GET \\\n -H 'Authorization: Bearer YOUR_TOKEN' \\\n 'downloadUrl'\n")))))}b.isMDXComponent=!0},153:function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return f}));var a=n(0),r=n.n(a);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function c(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=r.a.createContext({}),u=function(e){var t=r.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},d=function(e){var t=u(e.components);return r.a.createElement(s.Provider,{value:t},e.children)},b={inlineCode:"code",wrapper:function(e){var t=e.children;return r.a.createElement(r.a.Fragment,{},t)}},p=r.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,o=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=u(n),p=a,f=d["".concat(o,".").concat(p)]||d[p]||b[p]||i;return n?r.a.createElement(f,c(c({ref:t},s),{},{components:n})):r.a.createElement(f,c({ref:t},s))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=p;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:a,o[1]=c;for(var s=2;s7b3ZkqPG1jZ8NY74/wNXMA+HAjFIIEAgAdKJg3kQ8wxX/2VWddvVVW1327u7be/9KqokkeQAuaZnrVyJfsL5cpE6r0lPdRgVP2FIuPyE73/CMBRlKPABS9aXEhpnXgqSLgs/VPqtwMq26EMh8qF0zMKo/6TiUNfFkDWfFgZ1VUXB8EmZ13X1/Gm1uC4+HbXxkuhdgRV4xftSJwuH9KWUIZHfyuUoS9KPI6PIhzOl97Hyh4I+9cJ6flWECz/hfFfXw8u3cuGjAk7ex3l5aSf+ztlfL6yLquFrGvx8fJSTvQXB7lJF6WB1v2Tjzx96mbxi/HDDHy52WD/OgNc3LxMbZ0sE+uLSoSzAIQq+NnVWDc8zTHI/kXtQ4hVZUoGCAFxV1IGCrHyeYS6uq+EDeVHst/J9VibgmovMB+/eNnYRvIUkqqLOA1cv7r0+9WuvC5/6KQHNPlxv1A3R8rsTgf46vYAvo7qMhm4FVT42wMgnjEV+e3245w8ciuEfCDb/Rm+KfSI+1EpfUZtgPzDaByZLfh3rNzqALx9I8SfIgn2ZLFEV7iB/w7kuvL7Pgk9JEy3Z4MLvTwhCfji+gWPkiWSID8d7OCPIx4P11YERdRm4FUjB57KX4aPwnbB8cdJfzeJHoXk9hR/Luqjwhmz6tPvPzeuHEQzIea9oSiFPBE2jn1ASR+knCqU+7auvxy6IPjR/LS5vesRhj8zb/j7ta/C6JBre9fVM8l+n4K9zAf5lLgBKpXmRohcpg4KRAe2len5UGHWfDVkNxdGvh6EuQYUCnuC84JF09ViFfF3U3XNXePz8etXH7oMoD3UDBfutGngecvexFHkl0qE3eD/hu5dDTGwqIOF8ZnO6OSOKlNQ78NKsaypcE/AtRMCbHPC7E/jkHxOxJ2EFH+VOtmDLgTAr5y0xUox4/fnx//Xx6zqv/z937m0fb/uB/+fYuan2Izj7Rf3xvBk6HC5a6wVe46EyrUtx2tWn/Xw+cMn5sN+djN1Z2HMJovPJQd8liMzPvcyfryJ/Jg6pIiRquZ1h62K2xGIDX8bDvNup2YmLlCuYrxDMikQXR1MQr9FxG6oopE6dNKa3QK/PV+s81T9hXAr+N3pifPZ8at1d0ahFjuYblrMy26r+xVaLYCqCrgjUJlZJVyFdnnKBCHH2OtrzWDCfnlVEVAtSAx9vkWCngPVEHl0GvFMvxK4BR3QTk0noMeAMx04Na8iEy7kLEF/Oe1wUAXyCWjfMUXaxd4o2qM4LcgKfXBiWtnbZjkl0veesWla1e4b3GQKpEWNzHikoHqaE6mUoxDW77S9xGDEGjjbMpRt1DcVZL5joy3quIkr2UybC6OhQRQS+hYOE6RUY5Ngt4cDETtA1VbhHh9U8YuMYoDhNX3cr31QS5e8uU6glGjam+7nnCEuJTKR3qKoJblTFU9DedHUkH+UiFCrNnYdgFijXxh8qphdtuO8HhaCLUHY8H0hlDQZwno3XKKS6huzZ65RQuMWFBbBgeoju8Lu/AyqJK7HSA/UumpXTzBZexh4c1QHFbvWxZ/Fta/BeNiZ/0xIdNZ14BKf1UA1ZnbNTpfH81HYv90NLgPLMtuRwhw+x4vRTGhjJWl1poJfEaBByPTJGlwQHD4fwCYO+BvssPLYcU0XVorByeDf2JFImeCWBaYkf4NrucsVYlVlJz7xRiC2wGhh3SrfqSNO5Gj5Qz8CQvAwJ3w/AmbiRO5uObijQadz+ilNs1cRlhucjl+GOh8VHfNQorLxXBnXwpoLCTcgKXQiq97oUkuglpqsLLJMewnRCIfEuXRjQB24bYyT0a3eQe6TUpKl052ODD/cW33WgVt4aPMPpNntcZacRNvpU4zJPnZVhOGhMkPNjxdNOkDb4Too2/dKEJrbzQziZdB/uH1pCH48YcQMFQ6gVYnDBx6FEOtYohnM/97qnyR2p25QWzkYzMBOHjnkt0ifmQ/mYYhU9auBSfFIvMBYtOtjXJhuQyg/J2xc21/J+32KB3+yvZHXahsa97O8XoLc5CRE69qShrTYCBuZD2aMIu2v5PPFmfUBUtzEdMMUiAJE95d51p1taBsXdPPQbaX9x1QGjGLur6ftwzwTIrFBKL+LpdLhfVzosp71HrXTuHiWjNSAbxLec97c7KdVM9TgO9qSL5xsUTTcbQlEL7z2bTORGJsNw71Azy5zhdCe7xRmzkalduigpme663LoL95nSRJWcKjfVwkN4hHKdPBAZjRcaZTfRYYguWqRJxIqRprVlEb0ZW0neMNhIHrQByxHXASPnmAlAXhWOF4+pvJBG9VuzZr5GMyRKuA5FLx1yMzRe1UisS8oJKBgRkTCZOCAMepSZZVqCvImHuFzdWppoXvZX5H6gYiADHDIavkfPWY3QKCG7oNCspdCbhckZ2jaN79XFiCftYt2cZ51Tqsx9GccI7Z3t3EmYPYmqRdm0deMuegE1LFN18xkdHyVxHb2trUK3jfwUCCinLNxEMK0V+JkC9Y9GIUA2Lou77eOispgr3opbEXYnhKCUoJChAFzzqAzUVrtfd5Y3b4OByRtHuccsHXNGuAU40D59KDw0NpHA9al1gFeOW4RSFXLehdD97XhujoAThQpS1z8RV8TucYWSShxBU0dkN99EogEJw8Pkrm3/8NLrDHmzHWwpntJLpAmSFsrWJikUWgpzuVGa6eM3N6cYKuzd5HI/jdYjwAe6SjXSYD3VOyZuVHYhShzM+yS0DC6HiCBvHi82GrsRC1HzeHgzFFZxbk14wEfrNlWQQTQdirnJmNTdOyDybrxrSLtoKbK0cDLYTjcV3DYMOsLFkjJRfJjJaA5bgiBiXwqJngKGoPaI6x4dr2LppRLLi5vrhd0uXC7TGU9FxI1LEh+vdmgkC8+Mve5mBi7gzRjSdSwdzsOt2O7UIidA9aI6iwyuccGj5FxPWjO/lJHDaI61FrX80p1zVSmJElo5qJgQQTVsQnd7Zc2W3AroDAIacMJplKDaQ6t38csCl6iYupTgrkTpFGgTAFjWRABm8/aiki5BPJlCdwOa0QnxoGEUOkHCyWBpN1BrVxNlcppbRud6KJtcgY5phKLLCqW7W2faFpiZ6Rq3ubcR1D2LOsqAYzOpCIEyVJbblC+RJPO62Inr2B6cbHRVUJHGz+qttntXoc6HrrAAYwTCeb3WzgNBbEsVGU/FFl/uHx2wmrdoqafqIvERrgeBalyO7kVEh9jkr2KtMWED5eGISKFEM4Q3oDWHBaSZxVSsZiEW0mzimseKUXhBa5ChPQ+d3mkjbRpyKQFmpHyFOiSGAcpUokcWsQTdrdH1bJ4W7O4JcnYPphtirhh/6HHMWpdSAEDhZNnoGT8ohHqgbtgcSShiLzFk/rUYh70zHed68tBH2rBwbiLO0BjpwhOHcccX+sB1xh1UdnJElrASPaZUzCrrufbsOBYwXWbxIqVHY0bLC7R6tzMREJNkHoTGmcolnALcnIhRyUVJWOWD4xpuwy2nlomOY67Q6Gb12AlZkGYhAyYqZGEt2j2yYRTZF7M9LxFTHUC/zKHt/fJaUWbNXYFe5gJ9Vs9E7pRZ1ygsndJczQy3gIxODbObe1w61IiObO6pcNQ5qKZtD0C3A3mDgswHp27y8TBdKnMv0mMRyNlwdcTxQeCDxFCBGYkYOXFE59jm1oVnlRTqA+6XjJxp1ytS6aTZz7t9mWToNWa8Xk414YxBhl9pFt+dsoOfpW6S9G49XEgZorXmyNLBQc+l4kw7KkeoV8qEuhmzopGA0C8B9OMeoIUWkq4FCqxwIKV7bOGX07RjVSLNafcyRfRw6l1wkdebZcvljGJFaLBKiK/L/Wbf7YzzZINoLOVZ/PqtiKUTgzjX3vKrKDAGpY1ph+6cab976A5wXDjVVVFq244+u2hjV0s25zAJo/ast+eVPI1I92JYnOEBZOrfj6Z7PIYy94xHQr+rGqnSeJqRr6twPKRtqkIhBg2AleCLG3mae7d7mJcxd2gZFLOSJ0LR0jZdsSUkk9AiIPHzYJUnGihTXrVxT9k9ejjHQL5Q8hpkiuNv66KoO0+5XCZrBhZKFbVDLirsYCc3xAnaK823KABeoiE4DwZKWsix4L0mXCnDDh4cLWHQ1K4ARtbs7fRwQ+MAFYSgaZWKp+Sx3BULNfGdfj9Rwf02woBKrGJ7TMYQ0iUE9zBRQ9DNrarwphIiiE+VsYK4OXfz7UROjvrtEQ97G89GwuxlZRS1MeO5wlk4YRzphQO3cwoBsgdOMdcB90PE5w1eSxNmyZFP53tGiFkxbFeuO5tTuAo7cvJuuNl57XHpb5nKKnkGAG19KPwA5cW0rsZzldzs9IxaYiwX9CVO7BACG6F6dJfyce41wcbrG5ZKwHBgLX9h/TK21HnXWzq9EhrwVVpSNdPbzmta4Lkge8w682pBJUdBjcuHsPDQT6rW6YIfjaRaicxtoQBagx4BaNg8RnzLQh3vOCK7YtFRHBM4/tX3OzvprHFUNNftVsG13JLZ6SOALIFaXc1iJttVDi6ZnNmS1Osrp6FVRt/LJqKyuedtwHdHL+DYQDw06BReVaHzoNg6FrUeLMTNes5gZ2Cp10B3x/wA0fQYp7SN9bHm4BtAQmJYegWt+HeTUX0Gz3JLYRdQbUAuqzpfcwHASF7Ajp2YoDE73LdxnDMGFdEAsyreobVbTGljP3KIgVyS+3nuPpZL7UPXgC90wSTmsnf2vhinyeFOMEqzTQKNW1vebpp5yFqW5/bnxzjWAUDJ7LVZVVZWZgkCuZHopS53AgKHDgNvRvGVSO2YUwcbntG8MaDzKB0Lu2VuXaUxRJEVxc6/bHvKJVxfFAWA8Srm7CQX2jp59o3ETZYvUjvX6sFnNo1x1frUCshFD5E4eQQTEeuKsxm6dnuQ7ui6gd8qF8YpCMHpJBMqWqLZZXdHejyjxgLlA84kx0Iv9xnBubkUdOrtQeMFu48uiqUsh3NmyKnYI02j7acQnxXUJ8zLUeygMdGYtLRdpSU4nSXYnZqy/uSpfq6g4+otltSjug2FjFPUQcG1LUUwBVEG0qWsNHzwSHZKpAyd12kjKlMp8A2gBNqmdhQPOEHUiF5QZxTNThgZNlrVAFXERIYMlCvF6EciRcJrwQDMIAWlWrCZ1wTR4ljX+3Zp3VUvo8eyjEsxbnfZzw0iuhKDa5vA6WGdIGcLH7JK0p7CRyFuVwJP+otlpttZUPXdiRPS8WpRxjjoLLU9TJ4N4kjl9h7bZKRYomE4j2VQ3OfjvIfKSLkzvOZ6VhdUWUhX5TFMXSyzrI1PJ00oMHteR/JeVj46mprNzAVx0Nw1M7KGMswiJgvGSKeTjeaP4sYM0BXyoYUImPBMT7fqEhnpfAZuln8R46iE6EuMsOxqnakJmp6marXmhJLeQ7yhUIqgC3bW0+nOjWKHSh51SFlGtjlK6j3qeAjwcMdLLnC7lfmG9JLwwO2WU9hnM9ZEN+VwnNSuEB4KfYVuqd+YjUgwp8N10s/W7KIhX8anHRG7lGa346hWCeGZhRDtiPO8OKLjI+HSju0x5fah60VXgLSWx6leHz4RAAki8NEzCXOoz5Om24OcUSeFTq8IewpX9YJEBXJlZVE1lbotLw11OuvQva18PcTVpIp6fM2YIWFq47zg+zakHXsz7rcEl4EyvGCOafbZVU0XyEUWdQC+p3jmAH4Lu4eA3/csk4ohBQD1iPSajlJKpwP7niiXfI5KT9xFEwvsENC18zW1GKTWdDid8v66l2erZ0j8djZuiLtTNrwMuROEuKdMt/FOoYLa8pAmj/f15qZ6kg86yp37mxMLlHs+JRSAIF7mWQLUDzIV1pgNMUsajOfhkaATZMkHJh0exT1Qu5AHeq2lyrrgHLFbdI2V8Rzx3WSIG6mj+NahjvaWR92g21axJb5ZNn5deu01aSXoHrnUHYxAC8vltBjSrXMpm3La6IyXg8hcs/1zS79QOWw7ZtOG3yTBK07qMtTqSIXQeoI/sQvr09Flsvx2v96l9mruI3HYh5v1HNHi9h053nP9dDz2fVMA/z46Djsbb445gHX2mDjOoglWDNlZYDjQVBdZQhDHitcpKkPMDSd2OI/hDnVLOw5NM6ksrAHg1Qmq/FSBMbB8mcS4sQFoffhCVYiNN/FY4mE9qZiFhOmzrVOPFUF5+zoewZwjxBbGzh4Ve4M7QheL9TP/LIaBe7ZZOR2Qq0n2osF0dnkcZtzcH6qRx5vbJCyNh+nBrZwcwkH2bqifuFDul/i0Xw4nN6f70+N8nKTnK+tmyxfqplQRmlvxYKmxmzX1l9w/a2EbXR9+OUMOtC+37qhUmRDpmvvsFw+9NBYHYreNDJGjUJh1f6WXnpamRypC1+9xHVOFOG89c2hohVjEpIdmNwP+5V5dC4S7hu6YWNmV0PLU2d98YJlLRpgU9yyaaKQDBHE5yXlyOAe5sGKRjhIZVWkPPc8KEnqeu/KYVflyPoVVpkWnIW3JgT4utT1Ke5v2vBvqvQQsm4PpbyLSXKsAkxLnRooC4j9uiJAXDHovpxMY0QqXeVv50cgOzTnyLAy1zOMU34OjvxfRRcgDpGzRo5PztT4q4QM6cSvBY8A8ZkcJxiUcTFYu6+5yUDN2C5NYTdQoAMJ4pBONcYbF4+/Ax69cmq08F8B0DLSWu8n0MGW29ijNH5EjQKXySRc3LjqByYP+s9mLj0KmZ4In8swOzY7j+6u/FYi8OtTpIEwyvZyG3WPAHzJfb8HzudwCDstBd7F7lxIPlGR3fqZGmVMKZ9ekhkdPZE2FSKqGPET8HvEMdxdsssOtZPFEnAm5ZAkmvbIALyZ4rdZZebOn5FHfZ+XmmtcRnxL3QpPqRT7bFzRA2hcv9joaxPm48tCJaZTMIn10RwAH00vPbAR8iIwuaytZgbtbTBbujke1kue1F4Vjj+/pA3onLIB0JrNdTgIMe23W1Qwup0PwOPpIgSzWOam6s06V0W1X9+KNDsrhvqCRMGYKc9u6Sd6Y4X46xsIBxkO6gb6QhSPo4kBlkbao4Y4Ebo3BzDuiPq6JFYXHqEeE9jisGQUtNb8a5vSow1K7wEWN/f1Q2sczoJPSVflMpPPES+m8d9Z6uhTDudnLzmKGTMSHBHT4OCmgPS50popu1HKvZMzdtz2EyizszJ2t1XSAUyAfOcZmjh506TWolLc666NJnJhJzIk1IyN9IOmCIs5a6kednim1c8+82Sty59LpBh1Q63WrMiPdbu0oSU05lH6CHLkF2LvacNrrOkVaskWT3LJWMtvlS9stNrHjAyqSQGrjVJrvveteZNnCNk0RQvVYpg2MDrf12VNZ/exHExhbW5RbZ1bMUdx2VoHUp+toOXW202hjxNZjeCsHCXhtTn6VbYpmUIp3Z+C5cyhxok6de3Ye8OpETcSD2BGF2ohgfHnOscOMn+gGRlrmOUOTbYpYWMcm8pWeEdy4nlkw+qZTtzoQj8PthJsPamfyAktn0h2uSOSWt+yg9h6DxkzM0tm3AFbiVnvmiEgtoEgqEjGhVEMW90nHoptgPnZdk42HhrrGJg59BGNvdyuqTNRh3ZlICO4o5h5nFaVFN9wyxrkBa5VHZSUvskgxWe9FTWRoeUv2mnkagU/KZMMWHgUgq+LE1tfoaj74rl3RYLvZYX62hXMEJnDzgZ8UN0a2HHYS6x9nxqlHbyWuQJ4k0bWFO6dQzOCfgKolGKdT6tRTUokbo70eMFVKesPKZWhgFjesrR/ecsLZMssTgD7R8HTGD4WC595eD1W5cwvrlmPqHhi79HRGgz6PrODQrMCBgJbaFTmbNqp0c2UoI0WWns+Oz19D27kLwKMOsTy/ZicAL3SzOepXV3Bt4KDfDj5R3adjXSOH/GC60X49pYJWlyR0hutKv/p3xHy0fVX3BS6qNsmIaByO/jXA11wBHV7DgxiaFhrV01HDUZu+9h0mS5pw51tqVihvZjxedOMY6j0+Y/3kTK45D1o+YMvFRzAicISBT7zClRnsEQrHVqcLXbNx/VjQoyIVSj2uI9fJqXTPeWpt8Z2b39rTAbiBPUr3FpvFnXXKEFayrc089GTRnDnXGys7SGS0kDnQLqMPO/wIXP0rzuFxOUVNMSGybz5Mxb4cpbHfNYc0mIBTl06GvN6K5QwZqTQOIt6QW2xxsW27qnWngNGnvIHtV6YZY3afh4oNBTAN2jpjNifsSpq44WR4rWK9MMeSz3a+CfHK+dHCZRt+tCYoS07qyDrAep4qrovZ9IerfbrdIveAxevjkWtXwlVD0ldakxtqxjfVDiBU456DtoQtIuf+1JEqgAicfjyy0CAesjgCTA4I0TBerqn1ig4H/MJFQHGy25YNmbOcC/82xmbmMftQt/V5Wt1Upg+rOWz3QQJYTkMQR4XLaZZCiePck9YQhcYhUcNmnPaP+xnpjuOeKbqcvK2KSGBYoOaKT13CtCP6hx9gPjBuRElFaqzR+6yaoRvfHd15oKLMtJQBL6nAEC1tObUXiDYNJqHjszrfkaPrPxZET5EYK6I8Poj3pN4okQiwXTdsV8jnMuKNJCX6AQ11hKwlFq0wtHrnRLdDx2NPLjyjh5xomq0y2SUXopxH8PXOX+7I9Xa1/S3qJKifjOuDKixvJxxWtat3U/7wt/AiBOgl63r2AL3QQ3dwxnwXWSFcArSHupSO45rrcX1Yj119G/ZSZTFOOOWA84NksRTDUla5687KqgIirI9562uvGnWDV0CLbj0d1v0hjWoa5RHr0pqar2Y5MBSZA0omefUbWQkqUtXxWz22CtDUq0qnilhu9vgwuwmj5mDKRdnU7qJIRL52BfagZLmY12FdQHLyBpxj6xzjIlLPg+VxxPP90eP+8mzOqRlTcQnH7tFZqgkM3CIzqic1Xdk4FkPF01g7aINMSf1QGoe8MYIZBdA5CZn9fTzsRHlXTJVrHaf7Y6zzvun37lQfoVlNzavskyhS+uj9AX2z+vzYqj2GRUH/gtcBX/gK8Jr91ZtImWkmcUEY8oLzNcUNKEUtGtXHdqjCYNrC+eS6PMwr59MokjmWiVT82NbucC39fnV35j0I/RM41bSCatn3U41RD8hPXExa5LAUPe5aatQZlnpLsGL0+9iIYFimWtAH4tpI1nrlDnoRL6GZ0ncgdkaqBzrP0EWRnUsauI6Js4fG9SMWqoN40NXExQWYUSQ2soP4+NQ1p5I0dxrJS204oTt8v5rQGmZ0wI1dJqlJOmWj458NGP9ldlDy+CIfiPMkXXt8AyL3kFy9alAsJAyAFPFa8Jgc1inI4WIoj8N4i9BDhEt+e0KXURrI+ooYwHnpNg1RUCeXbDTS+Hhy7JuNu6l/S0bR3emnFtXjWLjMtNQdoWRbV6U6GYudx3cZrjujhISd1MY2+JMHY45sljrTDjPx4FhWAMSIxOBKFQzU2jrLUIAF5ALpihSzTlNzJvGlm7VH5o77plyA6EF3wQSSb6pST7dejU/rAF0Gq6bwq9+cHpF5LKeRm3DnwoTrjMqZ39x6Ka+QRpE2tHEljPEmIeLGErpwxsDhjQQYBesKE5Tjl2OMZRADChiu3oHLeN+au5r593rMcYhPbhXWGXqoNMHF10Uk8onNeKxGksKRmMEmmvla5AbV3AfWf5Cz3gGtw7uX5Bbc0henkRZHLbIHDYeqWmZ9UEF0U60aGcONkK2cEBzBSUoogeDvbQLmc2y6THceSSsSakd3XV1IRHMT4GzRMVYvUojgOQqDriwh8+VchPuQuFZYv8o94g3KDd/B+NcdIDfVBRaYOM4TAPGrwXXhhrV4GxhlvhyJnpK6OR+Ne7GESMeYOfEoDZm8eMfeyfdBPGYtk+JURtrj9aBRJwogab1sbLgWdRjOu3S6VGf7HJR7FYanLzsgbRTfLdsIAzWJVhyXpndxpzuS1RSHAYLjUCA6U13vSOTCRZbndAAzWcLCAtgdvyNjNMbPss1dnOK2ww26QZrIqvwOLrMaMMQmlasYVpFG23t2pNQH4QaWf2DRtrkoYc42GLaNVLoP1XFwrLGBK9wMo2FYt1LJPjTGsoMjRxc2bKop8lcSKVzfLvAqWu7TUF3QoXiGPHd6X8JbDR8nA1/VaGOH633iqsvd7+ENiveKjqCeilS9dGhEoE+kDJNjopy5QW0fGXrZIhMZD8YwNieZgXfPlOFJAzdqQPqVgPmkPnBEpMXkG11tpz1+n3c3Rq3RfhhDUia3CwBHhCCnoTRQdZSQ8US4exrrhDAqZg939jmVGPONCplGFptQg2tKIrzD3Uhb/MK45j5IIOxMxH7qljjrfRHxsLaNZHiR4X5/2yKHURNmHK7j0dgzDh374TnUCVckQ2VoffuFkdPFSNH2GZjcRGSIXf0xtZOKodGin3jK9m1EamCGhb2HvOnKN6TeOwI0dQh60dlVko7+fbMnuB4ZTt3ZYLr0MOYSTkJ9SdE5e4Kuhbi/2T1Gy5IJRxcDjSoGmAvVEmGToEc/mVj3OGCtVBwuud2W3urGhW1SpRGIa3WFtPM6f9sNxIlmopGYzxPfaEIslpC1SjLBt5yw8MSrJri0K/h7B7nkSU8v+c3BH+rt6kYnn3eY5XKNHNxXYui17YbWc096hTKHhRVne3BmikvrKX1AyCE5aEK2KIns9Z0a7ZqBDR1vP4ynoQe6nu6uPs9mp4E1pTia5nXuxfXW4vjeO41MVIvmQq51hlO8549s7DyrdWxSHPwqYqjs747+3HukQpVdSGWqm/tITBIsm2bA2O6GDdc6m/VGJJIJDLVhNoMaRsOggGEIh41uU+MIcN1OwoJx2zGl6/VlXgzxrYpOsY+3ggXJanfThnAW7oQMcLxXJJLog3/xrdHpfXpb6Y4NoR+KygpV7ZErsLjVbkBJPNWpKuyNNFS7gQXGP26X/TRSlIM/Z/aE+cO1JHYHBRiZXJO16/wrctBenfXbsW1hVJQjrc5oTQcyJFx5gplzO6EQLw9rPJc8/21ygnGcfJvtiWHsE8u8SwUmkScU/1we69PHPOJvng1MvMsDRZ/AsRklWQ9TdDHEify0rh/v0kPBhAyfpgX3Q1c/oo9pn1VdPedmZ0XxpuhdHvfbrNAyC0M4DDen2RBZjRfAMefOg8miz7mlMEv0VfLwf0QfDIHZuL+bs40j73O2Uewz6cYfy745jZg/lbH9YZJf0eVrE6xBj88JzF/K6f/bErHxryPUn03HRinkk44o5k1H3zkXm/0yfeEOh1f51AhCUc/q6fP51F+Xqf3qxK+S+E40X7FRPQ5FVgH5/rgbBnkj3uDC+OfXO10AzlAMg3I4OJN0XpiB7vdZB7p5Gb+qO8g/H1p93AwDt3J8TEIvlwRuAnqqomGuu0f/1HsDmFqgHr6NEiCJdyn5n9usQaI/cKfGx31Kf1nwP+7TQJ5e79L4eObzOzS+obLA/05lgbPv91gQf1FBfG6/BvljdQT6FbupvokR+LvoRb6fY+ytHv5aepF/s0JHv8Ueqwpcw4vwstSvBS+7rKiPh7+J8PPR+vro37bN6i3RcOqvSitNPOHsb6+P20R/r9/vzQzvITYGIbYWzeD98LKR6b8VWxPY72vhV2zF/Eg4jZJfls4vIqhXpPmdPW1vCfFZCr6FN8+7VJ+Coh7DX/qom7LgLZ2f0R9DUeE3ck4J8omk3xAIf0cg/DMEwr8bgaj/0NZ9HvdARfrHm1N/U7nk8z7iVyoXw+i/onT/k/2uX+OOfWDlFxX2BxWJv1W1Q/zEgM5+fZFvNPJf30f7SUfkW53xvVU7/Z/b+X+6Wf4M9iX+A0f7jxz4d/1+b/K9D6zg0DLvCqBRwWf1v2ChvxT9YrB3xuDHRr/Q9+GRG+A3SKemKcDEPZvmfyZ9Xj+YAv9GT5hA3jhJ6Hs4hX5UsD+EQNj7MIUaefG/gCTEN8JQCP2WJJ+L7qPojxQb7H3AwPo1ZPbPJ803khaACH4lxR8IDPtDKfMNogP/dNTwJUv/DSNx7/r6zqgBe+/PExA1SNHwP48WCOwzxuiHogXsK5z7f7twfU4I/mqo9EuC+oMjp9h71598WY8exq76P/mi/nb5+orFSggymv51eOs5oPU7c/iKaG/iXCJ4faskDIr+NFSA4fR7FPCZxb23yzzfbCLx92bk3US+jQ72gCX7p6Hzqr6pu+HZ84GHwVB3v2A/vX98XtQJU/TyFL3XkcrfjWp+ZSjzM4u+yDcSAIr9NDaEEfQTTb4jFfEZUmH0E/m9iPU1VuUbcT3Pf0Oufz+b76byc7H378f1XxHa/ZdwPczB+FZcT6PU0xtKkcwT9vfz/fsA58kL0gyYTgzZw0fxYYjR1VMWRl0Pvv9/unDq//9/qHn+Du4l9eapkBgC8/rem++/y9XEf1Tq2N8FhWnsjVln/yIOftvRj04ZwL8GV/2JlIFfV6s+PJf1vzFj4C3N3i3//JmMAZT8476+M/0/BjFe0Z/6LUtAzKIiBJ96E3X/5Hj3N1CpJPOGqJ9Lv/3ccvR3U6Ifbe7/5Qv89JIv8Gb5lkT+5nyBj4/P/uv5Aq8W/j/Vm+x3TbX6Nyzc/7FV/GoNy76R6h8ctCW+wtv+LwwLkiT71+j1hbDgu36/N/ne+9/0+5X6/wHriL6TI/S9dSR+qHX8c8la/0rJ+pI0sH9Ryj4nsW/7+t6S9d7DZ35bzfofkKgvRNxJmn0vYD804k78OR/+XylgnxEECv8+putdv99bwN479uwnK1r/J2MU+nfLGPne+/4jGfswy6HXp8/ThP67pO3tfkca/Yuo/u/eOEl+hWf+30M2qCRR7NtQ7jN9/XDi/SWv/d9KPOAxPbGvX9+Gjn/c7Q8n6Vf8qtR/D0lp9LuQ9I+7/eEk/ZrAyTda+RYYERNFuIr7MZ4Gm2ZV8gGJfLo7HH0Z7+V3D9FvA1SYj+70r7miX7de/nbV6dsBk/fg/+RV8IrrIX1+PMcLW/XviPLPAI/fYc2Vwd+uuSJPyOvX+2j0D11zJd8D/q9Qgp/dvUYwb/avEX/+1xU/0a5fq1K/YuvZi2L4u3Qv82aVCJD43TNyvlbhvu0LqNh3fX1nLUv9T/kfbyccmMp/NfG+wgt5+1uaX1wO/BY/tvn+VzQ//0Ob4DgdBvijx/Bxk+AvCCvsKQvqKs6ALu+egho+jP35pzcxEZbD52VmVVVPz4GLn4coSCtwAckKHxAkws2zmAgLf0EQFP0ZxZgn+EOdn3kqzIvG/lwS3IeUwo9Pi3ljo76FHSHpXzOsfk0Kpd7ZDuxzW6m+V74V9RU+0b+OlZAvslLsDQFQbJiIYwsOp7Cvs+KXwlujrv8ncg7znnMo/Ol9th5GPn0M/33KPk/f7ZlB1F/4Yd9/PAcRX+QggvnZH32/iF4OwBtCPHFe9finKh/AQvSn8RegfL6UO4jhv9q2T/gJ/37PB6T+RJr6fxE/dVE/eGPnVcPPSbE2KXyWlQjnQuyyIPp5TiMPnOm8rPo5iLrIK36O6zr8uR+B61p63SMafvZB6yD9ufKGsYt+7qMo7F9a9B+a9M9tfvGq8JdXw/1D+ZWk3qk8WES851Hmif2czvut+Nvz6DfY8/UJlv79mf+3Qeu/nrDz3UL7UIbqenhdHaayneowgjX+Hw== \ No newline at end of file diff --git a/img/alerts_flow.png b/img/alerts_flow.png new file mode 100644 index 000000000..f341e457e Binary files /dev/null and b/img/alerts_flow.png differ diff --git a/img/buffer_algorithm.png b/img/buffer_algorithm.png new file mode 100644 index 000000000..9230c2775 Binary files /dev/null and b/img/buffer_algorithm.png differ diff --git a/img/field_boundaries.png b/img/field_boundaries.png new file mode 100644 index 000000000..b422aa34b Binary files /dev/null and b/img/field_boundaries.png differ diff --git a/img/field_boundaries_001.png b/img/field_boundaries_001.png new file mode 100644 index 000000000..79bb1ceab Binary files /dev/null and b/img/field_boundaries_001.png differ diff --git a/img/field_by_geometry.png b/img/field_by_geometry.png new file mode 100644 index 000000000..abaafa567 Binary files /dev/null and b/img/field_by_geometry.png differ diff --git a/img/field_by_geometry_intersectionThreshold.png b/img/field_by_geometry_intersectionThreshold.png new file mode 100644 index 000000000..1f87a46aa Binary files /dev/null and b/img/field_by_geometry_intersectionThreshold.png differ diff --git a/img/fieldovertime.png b/img/fieldovertime.png new file mode 100644 index 000000000..8d62daf2f Binary files /dev/null and b/img/fieldovertime.png differ diff --git a/img/flow_authentication.png b/img/flow_authentication.png new file mode 100644 index 000000000..01c3e1dcc Binary files /dev/null and b/img/flow_authentication.png differ diff --git a/img/flow_file_upload.png b/img/flow_file_upload.png new file mode 100644 index 000000000..de6a54eb7 Binary files /dev/null and b/img/flow_file_upload.png differ diff --git a/img/icon4dark_mode.png b/img/icon4dark_mode.png new file mode 100644 index 000000000..1c0719da2 Binary files /dev/null and b/img/icon4dark_mode.png differ diff --git a/img/icon4light_mode.png b/img/icon4light_mode.png new file mode 100644 index 000000000..840118227 Binary files /dev/null and b/img/icon4light_mode.png differ diff --git a/img/imagery.png b/img/imagery.png new file mode 100644 index 000000000..10b365222 Binary files /dev/null and b/img/imagery.png differ diff --git a/img/invalid_geometry.png b/img/invalid_geometry.png new file mode 100644 index 000000000..3cbdf343b Binary files /dev/null and b/img/invalid_geometry.png differ diff --git a/img/leaf-file-upload-angular.png b/img/leaf-file-upload-angular.png new file mode 100644 index 000000000..6531509ce Binary files /dev/null and b/img/leaf-file-upload-angular.png differ diff --git a/img/leaf-file-upload-dark-mode.png b/img/leaf-file-upload-dark-mode.png new file mode 100644 index 000000000..e4d485809 Binary files /dev/null and b/img/leaf-file-upload-dark-mode.png differ diff --git a/img/leaf-file-upload.png b/img/leaf-file-upload.png new file mode 100644 index 000000000..48c7685c0 Binary files /dev/null and b/img/leaf-file-upload.png differ diff --git a/img/leaf-file-upload_old.png b/img/leaf-file-upload_old.png new file mode 100644 index 000000000..e1b211956 Binary files /dev/null and b/img/leaf-file-upload_old.png differ diff --git a/img/leaf-magic-link-customization.png b/img/leaf-magic-link-customization.png new file mode 100644 index 000000000..0138e4ff4 Binary files /dev/null and b/img/leaf-magic-link-customization.png differ diff --git a/img/leaf-provider-connection-agleader-redirection-url.png b/img/leaf-provider-connection-agleader-redirection-url.png new file mode 100644 index 000000000..07375bc45 Binary files /dev/null and b/img/leaf-provider-connection-agleader-redirection-url.png differ diff --git a/img/leaf-provider-connection-cnhi-callback-url.png b/img/leaf-provider-connection-cnhi-callback-url.png new file mode 100644 index 000000000..2a14b0e4d Binary files /dev/null and b/img/leaf-provider-connection-cnhi-callback-url.png differ diff --git a/img/leaf-provider-connection-jd-redirect-uri.png b/img/leaf-provider-connection-jd-redirect-uri.png new file mode 100644 index 000000000..4bedb5200 Binary files /dev/null and b/img/leaf-provider-connection-jd-redirect-uri.png differ diff --git a/img/leaf-provider-connection.png b/img/leaf-provider-connection.png new file mode 100644 index 000000000..a09d42b88 Binary files /dev/null and b/img/leaf-provider-connection.png differ diff --git a/img/leafuser.png b/img/leafuser.png new file mode 100644 index 000000000..7d9800ab1 Binary files /dev/null and b/img/leafuser.png differ diff --git a/img/logo4dark_mode.png b/img/logo4dark_mode.png new file mode 100644 index 000000000..2f54d7510 Binary files /dev/null and b/img/logo4dark_mode.png differ diff --git a/img/logo4light_mode.png b/img/logo4light_mode.png new file mode 100644 index 000000000..630e96e26 Binary files /dev/null and b/img/logo4light_mode.png differ diff --git a/img/machine-file-vs-operation.png b/img/machine-file-vs-operation.png new file mode 100644 index 000000000..ba159d7b1 Binary files /dev/null and b/img/machine-file-vs-operation.png differ diff --git a/img/machine_data.png b/img/machine_data.png new file mode 100644 index 000000000..4d2e8bdfc Binary files /dev/null and b/img/machine_data.png differ diff --git a/img/magic_link_flow.png b/img/magic_link_flow.png new file mode 100644 index 000000000..ea169abb8 Binary files /dev/null and b/img/magic_link_flow.png differ diff --git a/img/ndvi_files.png b/img/ndvi_files.png new file mode 100644 index 000000000..0296147ff Binary files /dev/null and b/img/ndvi_files.png differ diff --git a/img/ndviexample.png b/img/ndviexample.png new file mode 100644 index 000000000..00493d2cf Binary files /dev/null and b/img/ndviexample.png differ diff --git a/img/outliers_removal.png b/img/outliers_removal.png new file mode 100644 index 000000000..61428c327 Binary files /dev/null and b/img/outliers_removal.png differ diff --git a/img/postman_collection.png b/img/postman_collection.png new file mode 100644 index 000000000..143f33b1b Binary files /dev/null and b/img/postman_collection.png differ diff --git a/img/postman_collection_green.png b/img/postman_collection_green.png new file mode 100644 index 000000000..0ea9c1084 Binary files /dev/null and b/img/postman_collection_green.png differ diff --git a/img/sample_harvest_map.png b/img/sample_harvest_map.png new file mode 100644 index 000000000..90ca6b826 Binary files /dev/null and b/img/sample_harvest_map.png differ diff --git a/img/sentinel_planet.png b/img/sentinel_planet.png new file mode 100644 index 000000000..9fe83001d Binary files /dev/null and b/img/sentinel_planet.png differ diff --git a/img/sharing_permission.png b/img/sharing_permission.png new file mode 100644 index 000000000..b2abacdeb Binary files /dev/null and b/img/sharing_permission.png differ diff --git a/img/sharing_relation.png b/img/sharing_relation.png new file mode 100644 index 000000000..4b109121b Binary files /dev/null and b/img/sharing_relation.png differ diff --git a/img/sharing_result.png b/img/sharing_result.png new file mode 100644 index 000000000..1e54f23a1 Binary files /dev/null and b/img/sharing_result.png differ diff --git a/img/sharing_scenario.png b/img/sharing_scenario.png new file mode 100644 index 000000000..897b601ac Binary files /dev/null and b/img/sharing_scenario.png differ diff --git a/img/undraw_docusaurus_mountain.svg b/img/undraw_docusaurus_mountain.svg new file mode 100644 index 000000000..431cef2f7 --- /dev/null +++ b/img/undraw_docusaurus_mountain.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/undraw_docusaurus_react.svg b/img/undraw_docusaurus_react.svg new file mode 100644 index 000000000..e41705043 --- /dev/null +++ b/img/undraw_docusaurus_react.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/undraw_docusaurus_tree.svg b/img/undraw_docusaurus_tree.svg new file mode 100644 index 000000000..a05cc03dd --- /dev/null +++ b/img/undraw_docusaurus_tree.svg @@ -0,0 +1 @@ +docu_tree \ No newline at end of file diff --git a/img/usecase_upload_4sides.png b/img/usecase_upload_4sides.png new file mode 100644 index 000000000..d6a9845ce Binary files /dev/null and b/img/usecase_upload_4sides.png differ diff --git a/img/usecase_upload_twosides.png b/img/usecase_upload_twosides.png new file mode 100644 index 000000000..3a623c9b7 Binary files /dev/null and b/img/usecase_upload_twosides.png differ diff --git a/img/usecase_upload_x_y.png b/img/usecase_upload_x_y.png new file mode 100644 index 000000000..6bca6fb08 Binary files /dev/null and b/img/usecase_upload_x_y.png differ diff --git a/index.html b/index.html new file mode 100644 index 000000000..60d029b53 --- /dev/null +++ b/index.html @@ -0,0 +1,27 @@ + + + + + + + + +Hello from Leaf | Leaf + + + + + + + + +
+

Leaf

The easiest way to connect agriculture data across platforms

[object Object]

Machine Data

Instantly access aggregated & standardized machine data from any brand or convert files directly within your app

[object Object]

Field Boundary Management

Import, export, and sync field boundaries across 120+ AgTech platforms

[object Object]

Imagery

Receive imagery from all of your preferred satellite, airplane, and drone providers

+ + + + + + + + \ No newline at end of file diff --git a/lunr-index.json b/lunr-index.json new file mode 100644 index 000000000..2326fcec4 --- /dev/null +++ b/lunr-index.json @@ -0,0 +1 @@ +{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,804.63,1,804.63,2,639.488,3,488.338]],["content/0",[0,21.823,1,21.899,2,15.263,3,10.854,4,11.452,5,6.187,6,6.187,7,11.841,8,5.648,9,5.648,10,6.187,11,14.393,12,6.187,13,6.187,14,6.187,15,9.981,16,16.323,17,11.452,18,9.981,19,8.334,20,8.111,21,14.442,22,11.279,23,16.881,24,16.881,25,16.881,26,16.881,27,16.881,28,16.881,29,8.539,30,9.111,31,4.329,32,8.539,33,9.981,34,9.981,35,12.545,36,9.981,37,7.485,38,5.899,39,9.981,40,7.241,41,9.981,42,9.981,43,5.028,44,3.595,45,6.187,46,2.456,47,14.393]],["keywords/0",[]],["title/1",[48,1293.191]],["content/1",[]],["keywords/1",[]],["title/2",[48,875.754,49,558.84,50,543.312]],["content/2",[46,5.053,49,9.307,51,7.397,52,3.998,53,5.26,54,6.053,55,8.506,56,8.197,57,9.547,58,9.934,59,6.242,60,9.91,61,11.622,62,1.808,63,12.786,64,9.237,65,7.397,66,9.237,67,6.95,68,9.139,69,7.613,70,12.731,71,6.757,72,6.58,73,2.028,74,2.168,75,11.622,76,10.891,77,5.629,78,12.731,79,7.397,80,12.731,81,9.547,82,4.223,83,9.547,84,11.622,85,4.403,86,2.442,87,7.805,88,4.74,89,1.771,90,6.121,91,9.237,92,11.622,93,10.891]],["keywords/2",[]],["title/3",[94,480.54,95,497.038]],["content/3",[38,5.767,52,3.32,62,2.216,73,1.554,89,2.544,94,3.841,95,3.973,96,9.757,97,8.347,98,9.098,99,6.871,100,3.141,101,7.049,102,8.845,103,5.251,104,8.347,105,9.757,106,9.757,107,9.757,108,5.669,109,12.973,110,19.416,111,4.54,112,9.757,113,6.615,114,5.327,115,6.519,116,15.214,117,9.757,118,9.757,119,11.736,120,4.589,121,1.982,122,4.357,123,4.8,124,9.757,125,9.757,126,6.403,127,8.52,128,6.229,129,9.757,130,11.507,131,5.406,132,8.907,133,8.907,134,4.043,135,7.929,136,4.079,137,8.347,138,8.347,139,9.757,140,6.519,141,2.437,142,7.62,143,14.16,144,14.16,145,3.089,146,9.757,147,1.064,148,9.757,149,9.757,150,9.757,151,9.757,152,8.907,153,7.929,154,9.757,155,9.757,156,14.16,157,9.757,158,8.347,159,9.757]],["keywords/3",[]],["title/4",[95,497.038,160,271.209]],["content/4",[]],["keywords/4",[]],["title/5",[102,647.878,121,247.902]],["content/5",[31,2.931,46,4.251,52,1.584,62,2.326,67,3.688,73,2.411,74,1.824,85,2.336,89,0.94,94,2.66,99,4.758,100,2.152,101,3.364,102,10.682,114,3.688,116,6.168,119,11.618,120,5.036,121,3.074,123,3.324,126,2.596,127,4.065,130,5.49,131,5.933,134,5.512,136,4.477,141,1.843,145,4.211,147,1.651,160,1.501,161,4.157,162,3.143,163,7.259,164,3.688,165,4.902,166,6.696,167,6.638,168,6.168,169,5.49,170,3.925,171,3.861,172,12.299,173,3.492,174,3.688,175,5.607,176,6.756,177,4.758,178,4.629,179,2.422,180,5.49,181,5.259,182,1.94,183,4.409,184,6.756,185,2.682,186,4.132,187,6.756,188,6.756,189,5.327,190,3.636,191,2.959,192,6.756,193,4.629,194,12.299,195,6.168,196,2.535,197,4.645,198,3.688,199,4.629,200,3.212,201,4.514,202,6.168,203,6.168,204,5.78,205,6.168,206,6.168,207,5.78,208,5.78,209,6.168,210,6.168,211,6.168,212,6.168,213,5.78,214,6.168,215,6.168,216,6.168,217,6.168,218,6.168,219,6.168,220,6.168,221,3.743,222,3.11,223,5.259,224,5.396,225,3.703,226,9.161,227,6.756,228,1.91,229,2.672,230,6.565,231,1.139,232,1.169,233,1.25,234,4.081,235,6.756,236,4.902,237,5.78,238,2.353,239,3.248,240,2.477,241,1.289,242,3.078,243,5.78,244,4.313,245,6.756,246,5.259,247,5.49,248,4.313]],["keywords/5",[]],["title/6",[102,802.286]],["content/6",[62,2.433,73,2.351,74,2.514,100,2.388,102,7.833,119,10.393,141,2.54,147,2.048,162,6.867,163,5.453,167,5.581,172,11.994,182,2.674,189,4.766,194,11.994,224,7.438,225,5.104,226,12.627,228,2.633,229,2.606,231,2.488,232,2.553,233,2.73,241,3.582,242,6.725,243,12.627,249,13.474,250,9.229,251,8.575,252,13.474]],["keywords/6",[]],["title/7",[102,802.286]],["content/7",[62,2.429,73,2.335,74,2.496,100,2.371,102,9.922,119,10.322,136,6.128,141,2.522,147,2.039,163,5.416,167,5.543,172,11.911,182,2.656,189,4.733,194,11.911,224,7.387,225,5.069,226,12.54,228,2.615,229,2.588,231,2.471,232,2.535,233,2.711,237,12.54,238,5.105,241,2.796,242,6.679,243,12.54,250,9.165,253,4.733,254,6.969]],["keywords/7",[]],["title/8",[102,543.312,255,558.84,256,567.155]],["content/8",[62,2.365,73,1.35,74,1.444,79,4.925,100,1.371,102,4.499,108,4.925,136,3.544,141,1.459,147,1.392,167,6.457,182,3.094,186,4.19,204,7.252,213,10.917,228,1.512,229,1.497,231,1.429,232,1.466,233,1.568,238,2.952,242,7.781,250,5.3,253,2.737,254,4.03,255,4.627,256,8.502,257,8.476,258,8.476,259,7.738,260,15.346,261,15.346,262,10.806,263,9.15,264,13.552,265,8.476,266,12.76,267,4.542,268,12.76,269,12.76,270,15.588,271,12.76,272,12.76,273,12.76,274,15.346,275,4.265,276,8.744,277,7.55,278,8.476,279,15.346,280,8.476,281,8.476,282,12.76,283,12.76,284,5.532,285,8.476,286,8.476,287,8.476,288,8.476,289,8.476,290,5.532,291,8.476,292,8.476,293,8.476,294,8.476,295,8.476,296,12.76,297,8.476,298,8.476,299,4.562,300,7.252,301,8.476,302,8.476,303,8.476,304,8.476,305,8.476,306,8.476,307,4.562,308,5.808]],["keywords/8",[]],["title/9",[102,647.878,309,428.221]],["content/9",[62,2,73,2.367,74,2.531,100,2.404,102,10.996,115,9.93,141,2.557,147,1.621,162,8.775,163,5.491,172,12.078,228,2.651,229,2.624,231,2.505,232,2.571,233,2.749,238,5.176,241,2.836,249,13.568,251,8.635,252,13.568,267,5.29,309,7.889,310,13.568,311,14.862,312,8.635,313,7.584,314,8.114]],["keywords/9",[]],["title/10",[163,451.013,253,394.156]],["content/10",[]],["keywords/10",[]],["title/11",[]],["content/11",[67,5.231,72,7.222,86,2.68,88,7.176,89,1.333,95,3.902,102,5.086,111,4.458,121,2.838,163,8.153,175,5.017,186,3.815,191,6.119,224,4.829,225,3.314,255,9.897,309,3.361,315,6.566,316,8.197,317,3.936,318,6.952,319,7.787,320,4.556,321,4.458,322,2.616,323,9.582,324,3.868,325,8.197,326,5.766,327,8.747,328,4.241,329,8.435,330,6.265,331,6.493,332,5.157,333,3.916,334,5.326,335,6.83,336,10.373,337,6.055,338,5.476,339,3.943,340,9.84,341,4.196,342,4.829,343,6.566,344,5.39]],["keywords/11",[]],["title/12",[95,497.038,163,451.013]],["content/12",[]],["keywords/12",[]],["title/13",[102,647.878,175,639.202]],["content/13",[62,2.173,88,6.328,99,11.968,101,8.462,102,10.876,114,11.187,147,1.854,175,8.9,179,6.094,247,13.812,248,10.851,317,6.981,320,8.081,345,7.303,346,10.627]],["keywords/13",[]],["title/14",[95,497.038,324,286.247]],["content/14",[]],["keywords/14",[]],["title/15",[324,240.047,325,875.754,326,615.965]],["content/15",[44,8.575,62,1.991,86,3.96,88,5.495,95,7.646,114,10.251,147,1.61,163,6.938,177,10.393,186,4.03,202,13.474,241,2.816,267,6.683,277,7.261,317,6.062,324,5.263,326,8.881,347,14.759,348,11.068,349,5.215,350,10.113,351,12.627,352,13.474,353,5.495,354,5.104,355,5.958]],["keywords/15",[]],["title/16",[324,286.247,327,1114.35]],["content/16",[62,2.027,86,3.666,88,5.652,95,7.783,114,10.435,147,1.656,163,7.062,186,4.145,197,6.584,203,13.858,241,2.896,267,6.803,277,7.468,313,7.746,317,6.235,324,5.307,349,5.364,350,10.401,351,12.986,352,13.858,353,5.652,354,5.25,355,6.128]],["keywords/16",[]],["title/17",[163,451.013,328,249.203]],["content/17",[]],["keywords/17",[]],["title/18",[88,454.483,328,249.203]],["content/18",[62,2.027,79,8.82,86,2.911,87,9.307,88,5.652,89,2.112,90,7.298,95,6.181,121,3.882,147,1.656,163,7.062,186,4.145,204,12.986,241,3.647,275,4.219,277,7.468,284,9.907,290,9.907,307,8.169,317,6.235,328,3.902,333,2.694,349,5.364,353,5.652,354,5.25,355,6.128,356,11.816,357,6.026]],["keywords/18",[]],["title/19",[88,381.13,328,208.982,329,476.28]],["content/19",[62,2.009,79,8.696,88,5.572,95,6.094,121,3.847,122,6.683,147,1.633,163,6.999,186,4.086,241,3.614,275,4.159,277,7.363,290,9.768,317,6.147,328,4.243,329,8.814,333,2.656,349,5.288,353,5.572,354,5.176,355,6.042,357,5.941,358,10.539,359,10.859,360,10.539,361,10.859,362,9.555,363,14.967]],["keywords/19",[]],["title/20",[328,208.982,329,476.28,330,332.75]],["content/20",[52,3.485,62,2,79,8.635,95,6.052,121,3.83,147,1.621,163,6.968,179,5.329,186,4.058,241,3.598,275,4.13,277,7.312,290,9.699,317,6.104,328,4.449,329,8.775,330,6.131,333,2.638,349,5.252,353,5.533,354,5.14,355,6,357,5.899,362,9.488,364,13.568,365,6.915,366,14.862]],["keywords/20",[]],["title/21",[163,378.221,328,208.982,331,402.981]],["content/21",[]],["keywords/21",[]],["title/22",[121,207.891,328,208.982,331,402.981]],["content/22",[62,2.046,95,6.27,121,4.277,147,1.68,163,7.126,186,4.205,205,14.058,241,3.68,275,4.28,277,7.576,290,10.05,317,6.325,328,4.299,331,7.592,333,2.733,349,5.441,353,5.733,354,5.325,355,6.217,357,6.113,367,14.058,368,14.058,369,8.287]],["keywords/22",[]],["title/23",[328,208.982,330,332.75,331,402.981]],["content/23",[62,2.046,95,6.27,147,1.68,163,7.126,186,4.205,206,14.058,241,3.68,275,4.28,277,7.576,290,10.05,317,6.325,328,4.299,330,6.845,331,7.592,333,2.733,349,5.441,353,5.733,354,5.325,355,6.217,357,6.113,367,14.058,368,14.058,369,8.287]],["keywords/23",[]],["title/24",[163,325.66,332,474.345,333,156.432,334,284.606]],["content/24",[]],["keywords/24",[]],["title/25",[333,156.432,334,284.606,335,277.226,336,474.345]],["content/25",[52,4.2,53,5.525,62,1.899,89,1.908,95,5.584,147,1.496,163,7.811,186,3.744,207,11.733,241,3.417,275,3.811,276,9.397,277,6.747,317,5.633,333,3.993,334,5.783,335,5.633,336,7.38,337,4.58,339,2.983,345,5.893,349,4.846,353,5.106,354,4.743,355,5.536,357,5.444,370,6.249,371,13.714,372,16.349,373,8.811,374,7.838,375,7.968]],["keywords/25",[]],["title/26",[255,481.179,333,156.432,334,284.606,335,277.226]],["content/26",[52,3.279,62,1.924,89,1.946,95,5.694,114,7.634,147,1.526,163,7.438,179,5.014,186,3.818,196,5.247,208,11.964,221,7.748,241,3.46,255,9.902,275,3.886,276,9.582,277,6.88,313,7.136,317,5.744,333,3.78,334,5.857,335,6.331,336,7.526,339,3.041,349,4.941,353,5.207,354,4.836,355,5.645,357,5.551,370,6.372,376,8.415,377,6.372,378,7.634,379,10.886]],["keywords/26",[]],["title/27",[163,325.66,333,156.432,337,294.37,338,503.769]],["content/27",[]],["keywords/27",[]],["title/28",[86,169.036,333,156.432,335,277.226,336,474.345]],["content/28",[52,3.345,59,4.16,62,1.949,86,3.523,88,5.311,95,5.808,147,1.556,163,7.509,186,3.895,209,13.022,241,3.505,275,3.964,276,9.775,277,7.018,317,5.859,322,3.895,332,7.677,333,3.809,334,5.932,335,5.778,336,7.677,339,3.103,349,5.041,353,5.311,354,4.933,355,5.759,357,5.662,376,8.584,380,7.903,381,13.022,382,11.592,383,9.775]],["keywords/28",[]],["title/29",[86,169.036,255,481.179,333,156.432,335,277.226]],["content/29",[52,3.135,59,3.899,62,1.868,86,3.378,95,5.444,114,7.299,147,1.459,163,7.277,179,4.794,186,3.65,196,5.017,210,12.205,221,7.407,241,3.36,255,9.615,275,3.716,276,9.161,277,6.578,313,6.822,317,5.491,332,7.195,333,3.715,334,5.687,335,6.584,336,7.195,339,2.908,349,4.724,353,4.978,354,4.624,355,5.397,357,5.307,370,6.092,376,8.045,377,6.092,378,7.299,379,10.407,380,7.407,381,12.205,382,10.865]],["keywords/29",[]],["title/30",[163,451.013,339,265.486]],["content/30",[]],["keywords/30",[]],["title/31",[329,410.092,333,156.432,335,277.226,336,474.345]],["content/31",[52,3.485,62,2,88,5.533,95,6.052,147,1.621,163,7.655,186,4.058,211,13.568,241,3.598,275,4.13,276,10.184,277,7.312,317,6.104,322,4.058,329,8.775,333,3.867,334,4.799,335,5.932,336,7.998,339,3.232,349,5.252,353,5.533,354,5.14,355,6,357,5.899,376,8.943,383,10.184]],["keywords/31",[]],["title/32",[255,481.179,329,410.092,333,156.432,335,277.226]],["content/32",[52,3.258,62,1.915,95,5.657,114,7.584,147,1.516,163,7.414,179,4.981,186,3.793,196,5.213,212,12.683,221,7.697,241,3.446,255,9.86,275,3.861,276,9.52,277,6.835,313,7.089,317,5.706,329,8.403,333,3.771,334,4.486,335,6.683,336,7.477,339,3.022,349,4.909,353,5.173,354,4.805,355,5.609,357,5.515,370,6.33,376,8.36,377,6.33,378,7.584,379,10.815]],["keywords/32",[]],["title/33",[333,156.432,335,277.226,336,474.345,340,620.673]],["content/33",[52,3.485,62,2,88,5.533,95,6.052,147,1.621,163,7.655,186,4.058,213,12.715,241,3.598,275,4.13,276,10.184,277,7.312,317,6.104,322,4.058,333,3.867,334,4.799,335,5.932,336,7.998,339,3.232,340,13.281,349,5.252,353,5.533,354,5.14,355,6,357,5.899,376,8.943,383,10.184]],["keywords/33",[]],["title/34",[255,481.179,333,156.432,335,277.226,340,620.673]],["content/34",[52,3.258,62,1.915,95,5.657,114,7.584,147,1.516,163,7.414,179,4.981,186,3.793,196,5.213,214,12.683,221,7.697,241,3.446,255,9.86,275,3.861,276,9.52,277,6.835,313,7.089,317,5.706,333,3.771,334,4.486,335,6.683,336,7.477,339,3.022,340,12.718,349,4.909,353,5.173,354,4.805,355,5.609,357,5.515,370,6.33,376,8.36,377,6.33,378,7.584,379,10.815]],["keywords/34",[]],["title/35",[121,247.902,339,265.486]],["content/35",[52,3.368,62,1.957,88,5.347,95,5.848,121,3.747,147,1.567,162,6.682,163,7.949,186,3.921,215,13.11,225,4.966,241,3.52,275,3.991,277,7.065,314,7.84,317,5.899,321,6.682,322,3.921,333,2.549,339,4.679,349,5.075,353,5.347,354,4.966,355,5.798,357,5.701,376,8.642,383,9.841,384,8.488,385,6.171,386,14.361,387,10.77,388,11.671]],["keywords/35",[]],["title/36",[330,396.792,339,265.486]],["content/36",[52,3.664,62,2.064,95,6.362,147,1.705,163,7.832,186,4.266,216,14.264,241,3.713,275,4.342,277,7.687,317,6.418,330,5.079,333,2.773,334,5.045,339,4.61,349,5.521,353,5.818,354,5.404,355,6.308,357,6.202,376,9.402,388,12.698,389,7.429]],["keywords/36",[]],["title/37",[335,321.97,336,550.903,339,222.637]],["content/37",[52,3.51,62,2.009,95,6.094,147,1.633,162,6.963,163,7.68,186,4.086,217,13.663,225,5.176,241,3.614,275,4.159,277,7.363,317,6.147,321,6.963,328,3.055,333,2.656,334,4.833,336,8.054,339,4.52,349,5.288,353,5.572,354,5.176,355,6.042,357,5.941,373,7.363,383,10.255,384,8.846,385,6.431,388,12.163]],["keywords/37",[]],["title/38",[163,378.221,341,448.287,342,515.87]],["content/38",[]],["keywords/38",[]],["title/39",[88,381.13,224,515.87,225,354.009]],["content/39",[52,3.391,53,4.461,62,1.965,88,7.615,95,5.887,147,1.577,163,6.847,186,3.948,194,11.75,224,7.286,225,7.073,239,6.951,241,3.536,277,7.113,317,5.939,322,3.948,328,3.783,335,5.829,336,7.781,342,9.339,349,5.109,353,5.383,354,5,378,7.893,390,8.865,391,14.459,392,9.661,393,11.255,394,13.199,395,10.49]],["keywords/39",[]],["title/40",[163,378.221,343,701.431,344,575.886]],["content/40",[]],["keywords/40",[]],["title/41",[88,454.483,337,407.679]],["content/41",[59,4.427,62,2.027,86,2.911,88,7.116,95,6.181,121,3.882,147,1.656,163,7.062,186,4.145,218,13.858,241,3.647,275,4.219,277,7.468,284,9.907,317,6.235,333,3.392,337,6.384,339,3.301,349,5.364,353,5.652,354,5.25,357,6.026,378,8.287,395,11.013,396,3.051,397,12.336]],["keywords/41",[]],["title/42",[330,396.792,337,407.679]],["content/42",[59,4.491,62,2.046,86,2.953,95,6.27,147,1.68,163,7.126,186,4.205,219,14.058,241,3.68,275,4.28,277,7.576,284,10.05,317,6.325,330,5.006,333,3.423,334,4.972,337,6.441,339,3.349,349,5.441,353,5.733,354,5.325,357,6.113,378,8.407,395,11.173,396,3.095,397,12.514]],["keywords/42",[]],["title/43",[309,428.221,337,407.679]],["content/43",[62,2.093,95,6.505,147,1.743,163,7.291,186,4.362,220,14.585,241,3.765,275,4.44,277,7.86,309,6.923,317,6.562,333,2.836,337,6.59,349,5.645,353,5.948,354,5.525,357,6.342,378,8.722,395,11.591,396,3.211,397,12.983]],["keywords/43",[]],["title/44",[72,630.874,88,454.483]],["content/44",[59,4.524,62,2.055,72,10.013,86,2.975,88,7.213,89,2.158,95,6.316,121,3.15,147,1.692,163,7.158,186,4.235,241,3.696,275,4.311,277,7.631,284,10.123,317,6.371,349,5.481,353,5.775,354,5.364,357,6.157,378,8.468,395,11.254,396,3.117,398,15.511,399,14.16]],["keywords/44",[]],["title/45",[72,630.874,330,396.792]],["content/45",[59,4.557,62,2.064,72,10.059,86,2.997,89,2.174,95,6.362,147,1.705,163,7.191,186,4.266,241,3.713,275,4.342,277,7.687,284,10.197,317,6.418,330,5.079,334,5.045,349,5.521,353,5.818,354,5.404,357,6.202,378,8.53,395,11.336,396,3.14,399,14.264,400,15.625]],["keywords/45",[]],["title/46",[95,497.038,401,580.377]],["content/46",[]],["keywords/46",[]],["title/47",[]],["content/47",[7,10.654,16,8.386,20,7.966,46,5.639,53,3.024,67,7.756,73,1.561,85,3.39,87,8.71,88,3.65,89,2.325,94,3.859,95,6.804,100,2.703,102,11.104,103,5.275,109,7.63,120,4.61,161,3.063,163,7.494,164,5.351,165,7.112,166,6.129,167,5.372,175,7.439,190,5.275,191,6.221,198,7.756,199,6.717,224,7.159,225,5.779,240,3.594,248,6.258,251,5.695,256,5.431,309,3.439,314,7.756,322,2.676,324,2.299,333,1.74,335,4.468,336,5.275,339,2.132,345,4.212,349,3.464,378,10.003,389,6.755,396,1.97,401,4.66,402,6.903,403,7.112,404,7.966,405,4.94,406,6.909,407,7.351,408,7.351,409,7.966,410,10.654,411,14.207,412,7.112,413,7.351,414,9.802,415,6.397,416,5.898,417,8.386,418,8.386,419,7.351,420,6.129,421,4.822,422,3.924,423,5.066,424,9.802,425,7.351]],["keywords/47",[]],["title/48",[94,595.066]],["content/48",[19,5.075,49,8.554,52,2.638,53,6.015,54,9.27,62,2.356,73,1.792,74,1.916,88,4.189,89,1.566,99,7.923,100,3.154,131,6.234,136,4.704,141,1.936,147,1.967,160,3.481,161,3.516,164,6.143,173,8.098,175,5.892,182,2.039,186,3.072,228,2.007,229,1.987,230,6.898,234,4.288,238,3.919,256,6.234,415,7.343,426,5.025,427,4.222,428,6.65,429,9.856,430,11.252,431,5.472,432,12.734,433,10.272,434,10.272,435,10.272,436,11.252,437,7.71,438,6.069,439,6.77,440,5.741,441,9.429,442,6.143,443,5.075,444,12.734,445,5.602,446,8.759,447,8.759,448,11.252]],["keywords/48",[]],["title/49",[344,575.886,401,486.706,449,529.052]],["content/49",[]],["keywords/49",[]],["title/50",[337,504.841]],["content/50",[59,6.471,72,10.059,86,3.733,147,1.705,322,4.266,324,3.664,337,5.218,345,6.714,349,5.521,373,7.687,384,9.235,450,6.909,451,12.698,452,12.698,453,8.293,454,14.264,455,14.264,456,15.625,457,8.657,458,11.003,459,15.625,460,8.931,461,6.714,462,6.714]],["keywords/50",[]],["title/51",[463,781.23]],["content/51",[31,5.425,52,2.933,59,4.913,63,9.379,69,5.585,73,1.992,85,4.325,86,2.399,89,1.74,91,9.074,113,4.964,173,6.464,189,4.038,197,5.425,239,6.013,328,2.553,333,2.99,337,4.177,341,7.378,342,6.303,406,6.082,439,7.526,440,6.382,450,5.53,463,10.996,464,8.356,465,9.197,466,9.379,467,7.984,468,10.163,469,11.417,470,6.828,471,13.69,472,6.013,473,11.417,474,9.379,475,10.699,476,12.507,477,12.507,478,9.074,479,11.417,480,7.984,481,7.392,482,10.699,483,12.507,484,12.507,485,12.507,486,8.57,487,10.699,488,11.417,489,10.163,490,9.074,491,9.074,492,9.074]],["keywords/51",[]],["title/52",[493,893.453]],["content/52",[52,3.611,58,7.959,86,2.953,193,10.552,240,5.647,328,3.144,341,8.446,342,7.76,380,8.532,406,7.488,464,10.289,493,11.4,494,7.858,495,13.174,496,15.013,497,13.174,498,13.174,499,9.629,500,11.548,501,12.06,502,7.959,503,8.947,504,13.174,505,9.441,506,15.399,507,14.058,508,9.102]],["keywords/52",[]],["title/53",[466,1133.605]],["content/53",[54,7.954,59,5.919,162,7.784,322,4.568,333,2.969,341,7.326,390,10.257,450,8.975,451,13.595,460,9.562,465,9.133,509,10.461,510,9.269,511,16.729,512,13.595,513,14.312,514,15.272,515,15.272]],["keywords/53",[]],["title/54",[62,93.481,160,195.83,343,603.954,344,495.856]],["content/54",[]],["keywords/54",[]],["title/55",[]],["content/55",[46,6.969,147,1.915,160,4.642,162,8.168,191,7.688,198,9.584,320,8.347,322,4.793,362,11.208,516,9.877,517,10.377,518,10.377,519,15.02]],["keywords/55",[]],["title/56",[343,836.429,344,686.721]],["content/56",[72,9.878,121,3.083,160,3.373,161,4.744,222,6.989,309,6.705,322,4.145,330,4.934,333,2.694,337,7.717,339,4.157,349,5.364,449,7.845,520,7.65,521,16.352,522,20.921,523,15.18,524,9.907,525,15.18,526,13.858,527,15.18,528,13.858]],["keywords/56",[]],["title/57",[337,504.841]],["content/57",[19,5.507,52,1.394,62,1.996,73,1.539,74,1.013,82,4.664,86,2.967,89,1.345,100,0.962,103,3.2,120,6.613,121,1.963,141,1.023,147,1.054,160,1.321,179,2.132,182,1.077,185,5.581,189,4.54,197,2.579,228,1.061,229,1.05,231,1.002,232,1.028,233,1.1,238,2.071,241,2.951,253,1.92,275,3.908,299,3.2,308,8.366,328,1.214,337,5.536,345,2.555,351,5.086,358,4.187,369,3.2,373,2.925,377,4.403,384,3.514,405,2.996,422,6.635,426,2.655,431,2.891,438,2.303,452,4.832,453,5.129,472,5.87,481,3.514,521,5.086,529,3.577,530,6.977,531,4.459,532,2.96,533,3.718,534,2.996,535,9.395,536,3.88,537,9.901,538,8.366,539,3.398,540,4.832,541,8.822,542,6.805,543,5.296,544,3.718,545,5.086,546,10.445,547,7.485,548,8.157,549,11.146,550,5.427,551,3.88,552,7.853,553,5.427,554,10.545,555,5.427,556,4.754,557,3.796,558,4.994,559,4.806,560,4.187,561,6.393,562,4.628,563,6.043,564,7.347,565,3.796,566,4.314,567,3.454,568,2.737,569,6.307,570,6.307,571,9.922,572,6.571,573,8.597,574,9.156,575,5.129,576,5.427,577,5.945,578,5.945,579,5.945,580,5.945,581,5.945,582,5.945,583,5.945,584,5.945,585,5.945,586,5.945,587,5.945,588,5.945,589,5.945,590,5.945,591,5.945,592,5.945,593,10.445,594,5.354,595,7.523,596,8.267,597,8.267,598,8.267,599,8.267,600,5.086,601,5.427,602,5.945,603,5.945,604,5.945,605,5.945,606,5.945,607,5.945,608,5.945,609,5.945,610,5.945,611,5.945,612,4.832,613,5.945,614,5.945,615,5.945,616,5.945,617,5.945,618,5.086,619,2.737,620,4.459]],["keywords/57",[]],["title/58",[337,504.841]],["content/58",[19,6.03,62,2.22,73,2.13,74,2.277,86,2.564,100,2.163,141,2.301,147,1.921,182,2.422,189,4.317,221,7.407,228,2.385,229,2.361,231,2.254,232,2.313,233,2.473,241,3.36,242,8.025,275,3.716,337,4.465,529,8.045,535,8.933,537,9.415,538,9.161,542,9.415,543,5.799,554,10.027,571,10.865,572,7.195,573,9.415,574,10.027,593,11.438,594,7.407,595,10.407,596,11.438,597,11.438,598,11.438,599,11.438,600,11.438,601,12.205,621,11.438,622,11.438,623,5.799,624,13.87]],["keywords/58",[]],["title/59",[333,216.646,337,407.679]],["content/59",[52,1.251,62,2.207,68,5.383,73,1.408,74,0.909,82,6.485,100,0.863,103,2.871,108,6.579,120,8.996,121,2.299,141,0.918,147,0.965,179,1.913,182,0.967,185,4.494,197,2.314,221,2.956,228,0.952,229,0.942,231,0.899,232,0.923,233,0.987,238,5.482,241,2.785,242,6.001,275,1.483,299,2.871,308,12.395,328,1.089,333,1.569,337,4.398,339,4.056,345,7.162,353,3.292,354,3.058,373,2.625,377,4.029,384,3.153,385,5.659,397,9.201,405,2.689,422,5.272,426,2.382,431,2.594,472,4.251,529,3.21,530,5.94,538,3.656,539,3.049,540,4.335,541,4.87,542,3.757,543,3.835,544,5.529,545,7.564,546,7.564,547,11.091,548,12.087,549,16.514,550,4.87,551,7.389,552,7.185,553,4.87,556,4.35,557,3.406,558,4.57,559,3.481,560,3.757,561,2.794,562,4.153,563,5.529,564,6.813,565,3.406,566,3.871,567,3.1,568,2.456,569,5.77,570,5.77,594,4.899,595,6.883,596,4.564,625,5.335,626,5.335,627,5.335,628,7.409,629,7.409,630,5.335,631,5.335,632,5.335,633,5.335,634,5.335,635,8.814,636,12.738,637,5.335,638,4.001,639,5.335,640,5.335,641,5.335,642,8.071,643,4.87,644,8.215,645,10.336,646,5.335,647,5.335,648,5.335,649,5.335,650,5.335,651,5.335,652,5.335,653,5.335,654,5.335,655,5.335,656,5.335,657,5.335,658,5.335,659,5.335,660,5.335,661,5.335,662,5.335,663,5.335,664,8.842,665,5.335,666,8.842,667,8.842,668,5.335,669,5.335]],["keywords/59",[]],["title/60",[121,247.902,337,407.679]],["content/60",[19,6.769,62,2.319,73,1.685,74,1.802,86,2.029,89,1.472,100,2.428,121,2.149,126,4.065,141,1.821,147,1.902,161,4.69,182,1.917,189,5.631,228,1.888,229,1.868,231,1.784,232,1.83,233,1.957,234,4.033,241,2.019,251,6.148,262,7.451,263,7.135,275,2.941,337,3.534,521,9.052,535,7.07,537,10.568,538,7.25,540,8.599,543,4.59,554,11.255,571,8.599,572,8.076,573,10.568,574,11.255,576,9.659,593,12.839,597,12.839,598,12.839,599,12.839,612,12.196,618,9.052,619,6.909,620,11.255,623,4.59,670,6.148,671,9.659,672,9.659,673,9.659,674,9.659,675,9.659,676,9.659,677,9.659,678,9.659,679,9.659,680,9.659,681,9.659,682,9.659,683,9.659,684,9.659,685,9.659,686,8.87,687,13.7]],["keywords/60",[]],["title/61",[330,396.792,337,407.679]],["content/61",[19,6.561,59,2.954,62,2.293,73,1.613,74,1.725,86,2.79,89,1.409,100,2.353,121,2.057,126,3.891,141,1.743,147,1.857,182,1.835,189,5.496,228,1.807,229,1.788,231,1.707,232,1.752,233,1.873,234,3.86,241,1.932,251,5.885,262,7.132,263,6.916,275,2.815,330,5.533,337,5.685,396,2.036,458,7.132,524,9.493,535,6.767,537,10.243,538,6.94,540,8.231,543,4.393,554,10.909,571,8.231,572,7.828,573,10.243,574,10.909,618,8.665,621,8.665,622,8.665,623,4.393,670,5.885,671,9.246,672,9.246,673,9.246,674,9.246,675,9.246,676,9.246,677,9.246,678,9.246,679,9.246,680,9.246,681,9.246,682,9.246,683,9.246,684,9.246,685,9.246,686,8.598,687,13.279,688,15.538,689,10.128,690,14.546,691,14.546,692,14.546,693,7.422,694,10.909]],["keywords/61",[]],["title/62",[309,428.221,337,407.679]],["content/62",[59,5.702,62,2.074,73,2.507,74,2.681,86,3.019,100,2.546,121,3.197,141,2.709,147,1.717,228,2.808,229,2.779,231,2.653,232,2.723,233,2.911,309,8.025,337,7.103,396,3.163,458,11.084,621,13.466,622,13.466]],["keywords/62",[]],["title/63",[72,781.23]],["content/63",[19,5.31,52,1.788,62,2.041,72,9.03,73,1.875,74,1.299,82,5.363,86,3.351,100,1.234,113,3.027,120,6.762,141,1.312,147,1.284,160,1.694,179,4.221,182,1.382,185,5.708,189,5.221,197,3.308,228,1.361,229,1.347,231,1.286,232,1.319,233,1.411,238,5.008,240,2.797,241,3.334,242,3.475,253,2.463,275,3.996,299,4.104,339,2.561,373,3.752,377,5.365,396,1.533,422,7.392,426,3.406,431,3.709,438,2.954,457,4.226,461,5.059,462,5.059,472,6.913,481,4.508,530,3.44,532,5.861,535,9.607,536,7.684,537,8.29,538,5.226,542,5.371,543,5.107,547,7.218,548,7.866,556,5.792,557,4.869,558,6.085,559,5.66,560,5.371,561,7.529,562,5.937,563,7.362,564,8.652,565,4.869,566,5.533,567,4.431,568,3.511,569,7.684,570,7.684,572,6.336,573,8.29,575,6.249,619,3.511,695,7.627,696,6.085,697,5.72,698,13.126,699,5.861,700,7.516,701,6.729,702,7.627,703,6.962,704,6.962,705,6.962,706,6.962,707,6.962,708,6.962,709,6.962,710,6.962,711,6.962,712,6.962,713,6.962,714,6.962,715,6.962,716,6.525,717,6.962,718,5.937]],["keywords/63",[]],["title/64",[72,781.23]],["content/64",[19,5.919,62,2.204,72,8.991,73,2.09,74,2.235,86,2.517,100,2.123,141,2.258,147,1.898,182,2.378,189,4.237,221,7.271,228,2.341,229,2.317,231,2.212,232,2.27,233,2.427,241,3.319,275,3.647,461,5.639,462,5.639,526,11.98,529,7.896,532,6.533,535,8.768,537,9.241,538,8.992,542,9.241,572,7.062,573,9.241,619,6.042,698,11.98,703,11.98,704,11.98,705,11.98,706,11.98,707,11.98,708,11.98,709,11.98,710,11.98,711,11.98,712,11.98,713,11.98,714,11.98,715,11.98,716,11.227,717,11.98,718,10.215,719,13.123]],["keywords/64",[]],["title/65",[339,328.759]],["content/65",[52,2.494,62,2.273,73,1.694,74,1.811,82,3.527,86,2.039,100,1.72,113,4.221,120,7.083,141,1.83,147,1.643,160,2.363,182,1.927,185,5.978,189,3.434,228,1.897,229,1.878,231,1.793,232,1.839,233,1.967,238,3.704,240,3.899,241,2.029,253,3.434,263,5.056,267,3.785,275,2.955,299,5.723,339,3.275,373,5.232,374,6.078,377,4.845,422,8.344,431,5.171,438,4.118,457,5.892,461,4.569,462,4.569,472,7.241,532,5.294,535,7.105,538,7.287,542,7.488,556,5.232,557,6.789,558,7.784,559,5.929,560,7.488,561,9.157,575,7.993,624,7.488,701,6.078,720,10.634,721,5.171,722,10.634,723,9.708,724,9.708,725,9.708,726,9.708,727,9.708,728,9.708,729,9.708,730,9.708,731,9.708,732,9.708,733,9.708,734,9.708,735,9.708,736,9.708,737,9.708,738,5.426,739,9.708]],["keywords/65",[]],["title/66",[339,328.759]],["content/66",[62,2.226,73,2.143,74,2.291,86,2.58,100,2.176,141,2.315,147,1.929,182,2.438,189,4.344,221,7.454,228,2.4,229,2.376,231,2.268,232,2.327,233,2.488,241,3.374,263,6.397,267,4.789,339,2.926,374,7.69,528,12.282,529,8.096,532,6.698,535,8.989,538,9.219,542,9.474,624,9.474,701,7.69,723,12.282,724,12.282,725,12.282,726,12.282,727,12.282,728,12.282,729,12.282,730,12.282,731,12.282,732,12.282,733,12.282,734,12.282,735,12.282,736,12.282,737,12.282,738,6.865,739,12.282,740,13.454]],["keywords/66",[]],["title/67",[62,93.481,160,195.83,344,495.856,466,660.998]],["content/67",[]],["keywords/67",[]],["title/68",[]],["content/68",[46,6.969,147,1.915,160,4.642,162,8.168,191,7.688,198,9.584,320,8.347,322,4.793,362,11.208,516,9.877,517,10.377,518,10.377,519,15.02]],["keywords/68",[]],["title/69",[450,668.413]],["content/69",[160,3.55,222,7.356,330,5.193,339,3.475,390,9.795,450,10.594,520,8.051,544,13.388,741,12.437,742,14.585,743,14.585,744,14.585,745,15.977,746,8.852,747,15.977,748,8.852,749,14.585]],["keywords/69",[]],["title/70",[450,668.413]],["content/70",[62,2.147,73,2.095,74,1.503,82,5.215,86,3.342,89,1.228,100,1.428,120,7.394,141,1.519,145,2.795,147,1.435,160,1.961,179,3.165,182,1.599,185,3.504,189,2.85,193,6.049,228,1.575,229,1.559,231,1.488,232,1.527,233,1.633,241,2.51,242,4.022,248,8.398,251,5.129,253,2.85,267,3.142,275,2.453,299,4.751,322,2.41,373,4.343,374,5.045,375,5.129,377,5.994,384,5.218,390,5.412,396,3.16,422,6.294,426,3.942,439,5.312,445,4.395,450,6.953,461,5.652,462,5.652,472,4.244,494,4.504,508,5.218,512,7.174,513,7.552,530,3.982,532,6.549,556,4.343,558,6.798,559,5.178,561,6.888,563,8.225,564,7.915,565,5.636,567,5.129,568,4.064,569,8.585,570,8.585,697,6.62,721,4.293,750,5.52,751,8.828,752,3.793,753,6.62,754,8.828,755,8.828,756,13.154,757,11.072,758,12.777,759,11.072,760,8.828,761,8.828,762,6.872,763,8.828,764,6.872,765,8.828,766,6.872,767,5.636,768,8.828,769,6.872,770,6.405,771,8.828,772,8.828,773,8.828,774,8.828,775,8.828,776,8.828,777,7.552]],["keywords/70",[]],["title/71",[450,539.769,741,950.208]],["content/71",[62,2.296,73,2.46,74,1.877,82,5.914,100,1.782,120,8.384,141,1.896,147,1.685,182,1.996,185,4.374,189,4.986,228,1.966,229,1.946,231,1.857,232,1.906,233,2.038,241,2.946,253,3.558,275,3.062,299,5.93,333,1.956,337,3.68,373,5.421,375,6.402,377,7.036,422,7.136,426,4.921,450,6.828,472,5.298,530,4.97,531,8.263,556,5.421,558,7.981,559,6.079,561,8.086,563,9.656,564,9.292,565,7.035,567,6.402,568,5.073,569,10.078,570,10.078,721,5.358,742,10.059,752,4.735,753,8.263,757,7.759,758,8.954,759,7.759,778,7.995,779,7.362,780,11.019,781,9.427,782,9.427,783,9.427,784,9.427,785,9.427,786,11.019,787,11.019,788,11.019,789,11.019]],["keywords/71",[]],["title/72",[390,748.398,450,539.769]],["content/72",[62,2.533,73,1.366,74,1.461,82,4.271,89,1.792,100,1.388,141,1.476,147,1.405,167,4.869,182,1.554,185,3.405,189,6.242,228,1.53,229,1.515,231,1.446,232,1.484,233,1.587,238,2.988,241,2.457,248,10.967,299,4.617,322,2.342,339,1.866,390,7.894,396,1.724,406,4.172,450,7.596,453,4.553,457,4.753,461,3.686,462,3.686,472,4.124,508,5.071,512,10.464,513,11.015,530,3.869,531,6.433,559,3.377,575,4.553,716,13.223,738,4.377,743,7.831,764,10.023,766,10.023,769,10.023,770,12.464,779,5.732,790,6.971,791,8.579,792,6.224,793,4.271,794,7.339,795,8.579,796,8.579,797,8.579,798,8.579,799,8.579,800,8.579,801,8.579,802,12.876,803,5.162,804,8.579,805,11.754,806,10.464,807,8.579,808,12.032,809,8.579,810,8.579,811,11.015,812,8.579,813,8.579,814,7.831,815,7.831,816,7.831,817,7.831,818,7.831,819,8.579,820,8.579,821,7.831,822,8.579,823,8.579,824,8.579,825,8.579,826,8.579]],["keywords/72",[]],["title/73",[450,668.413]],["content/73",[59,3.669,62,2.498,73,2.004,74,2.143,100,2.035,141,2.165,147,1.845,167,4.757,171,7.19,182,2.279,189,5.461,228,2.244,229,2.221,231,2.121,232,2.176,233,2.327,241,3.227,248,10.798,450,7.479,458,8.859,512,10.223,744,11.485,764,9.793,766,9.793,769,9.793,770,12.271,805,11.485,806,10.223,808,13.166,814,11.485,815,11.485,816,11.485,817,11.485,818,11.485,821,11.485,827,11.485,828,12.581,829,12.581,830,12.581,831,12.581,832,12.581,833,12.581,834,10.223,835,12.581,836,12.581]],["keywords/73",[]],["title/74",[339,222.637,450,452.652,544,640.083]],["content/74",[52,3.648,56,5.353,62,2.485,73,1.773,74,1.896,77,4.923,100,1.801,141,1.916,147,1.697,160,3.456,182,2.017,189,5.023,197,6.747,228,1.986,229,1.966,231,1.877,232,1.926,233,2.059,240,4.083,241,3.42,248,7.108,267,5.537,328,2.273,339,2.422,384,6.581,450,6.878,453,5.909,458,7.84,466,8.35,474,8.35,544,6.962,808,8.667,837,11.134,838,11.134,839,11.134,840,11.134,841,11.134,842,11.134,843,11.134,844,11.134,845,13.308,846,11.134,847,11.134,848,11.134,849,11.134,850,11.134,851,13.308,852,9.525,853,9.525,854,11.134,855,11.134,856,11.134,857,10.164,858,11.134,859,11.134,860,11.134,861,11.134,862,11.134,863,11.134,864,11.134,865,11.134]],["keywords/74",[]],["title/75",[330,332.75,450,452.652,544,640.083]],["content/75",[62,2.562,73,1.792,74,1.916,89,2.18,100,2.535,126,4.323,141,1.936,147,2.127,182,2.039,189,5.06,197,7.82,228,2.007,229,1.987,231,1.897,232,1.946,233,2.081,234,4.288,241,2.99,267,6.94,330,3.657,389,5.35,544,9.798,746,6.234,845,15.424,851,13.405,852,16.68,853,9.626,866,11.252,867,14.305,868,11.252,869,11.252,870,17.799,871,11.252,872,11.252,873,14.305,874,11.252,875,11.252,876,10.272,877,10.272,878,10.272]],["keywords/75",[]],["title/76",[450,452.652,544,640.083,748,567.155]],["content/76",[62,2.478,73,2.242,74,2.397,100,2.277,141,2.422,147,1.987,182,2.55,189,4.545,228,2.511,229,2.485,231,2.373,232,2.435,233,2.604,263,6.693,267,5.01,389,6.693,544,8.802,749,12.85,845,12.043,851,12.043,852,12.043,853,12.043,870,16.628,873,12.85,876,12.85,877,12.85,878,12.85,879,14.077,880,12.85,881,14.077,882,14.077,883,14.077,884,14.077,885,10.557,886,14.077]],["keywords/76",[]],["title/77",[510,837.495]],["content/77",[222,8.358,390,11.131,510,12.933,520,9.149,741,14.132,887,16.573,888,16.573]],["keywords/77",[]],["title/78",[510,837.495]],["content/78",[62,2.327,73,2.293,74,1.701,82,5.601,86,3.238,100,1.615,120,7.941,141,1.718,147,1.571,179,3.581,182,1.809,185,3.964,189,3.224,228,1.781,229,1.763,231,1.683,232,1.727,233,1.847,241,2.747,242,4.55,253,3.224,267,3.554,275,2.775,299,5.374,322,2.727,341,4.373,373,4.913,374,5.707,375,5.802,377,6.561,396,2.007,422,6.759,426,4.459,461,4.291,462,4.291,472,4.801,494,5.095,510,7.978,530,4.504,532,7.168,556,4.913,558,7.442,559,5.668,561,7.54,563,9.003,564,8.664,565,6.375,567,5.802,568,4.598,569,9.397,570,9.397,697,7.489,721,4.856,752,4.291,753,7.489,757,7.032,759,7.032,767,6.375,781,8.543,782,8.543,783,8.543,784,8.543,785,8.543,889,9.986,890,8.115,891,9.116,892,8.115,893,6.244,894,9.116,895,8.543,896,8.543,897,8.115,898,8.543,899,8.543,900,8.543,901,8.543,902,8.543]],["keywords/78",[]],["title/79",[510,676.31,741,950.208]],["content/79",[62,2.415,73,2.204,74,1.61,82,5.429,100,1.529,120,7.697,141,1.627,147,1.51,182,1.713,185,3.753,189,5.817,228,1.687,229,1.669,231,1.594,232,1.635,233,1.749,241,3.123,253,3.053,275,3.846,299,5.088,333,1.678,337,3.157,341,7.889,373,4.651,375,5.493,377,6.305,422,6.552,426,4.222,450,4.181,472,4.545,510,9.068,530,4.264,531,7.09,556,4.651,558,7.152,559,5.447,561,7.246,563,8.653,564,8.326,565,6.036,567,5.493,568,4.353,569,9.031,570,9.031,721,4.597,752,4.063,753,7.09,757,6.658,759,6.658,778,6.859,779,6.317,887,8.631,895,8.088,896,8.088,897,7.683,898,8.088,899,8.088,900,8.088,901,8.088,902,8.088,903,8.631,904,9.454,905,9.454,906,9.454,907,9.454,908,9.454,909,9.454,910,12.685,911,7.246,912,9.454,913,9.454,914,9.454,915,9.454,916,9.454,917,4.308]],["keywords/79",[]],["title/80",[390,748.398,510,676.31]],["content/80",[62,2.373,73,1.728,74,1.848,82,5.067,86,2.081,89,1.51,100,1.755,141,1.867,147,1.667,182,1.966,185,4.307,189,6.196,228,1.936,229,1.916,231,1.829,232,1.877,233,2.007,238,3.779,241,2.07,267,3.862,275,3.015,299,5.839,322,2.963,339,2.36,341,7.743,374,6.202,390,9.366,396,2.181,406,5.276,453,5.759,461,4.663,462,4.663,472,5.217,508,6.413,510,10.632,530,4.894,531,8.137,532,5.402,559,4.271,575,5.759,738,5.537,757,7.641,759,7.641,767,6.927,779,7.25,781,9.283,782,9.283,783,9.283,784,9.283,785,9.283,790,8.818,792,7.872,793,5.402,794,9.283,888,9.905,890,8.818,891,9.905,892,8.818,893,6.785,894,9.905,895,9.283,896,9.283,897,8.818,898,9.283,899,9.283,900,9.283,901,9.283,902,9.283,918,9.905,919,10.851]],["keywords/80",[]],["title/81",[920,915.431,921,815.593]],["content/81",[222,8.43,390,11.226,520,9.228,920,16.063,921,14.311,922,16.716,923,16.716]],["keywords/81",[]],["title/82",[920,915.431,921,815.593]],["content/82",[62,2.307,73,1.485,74,0.969,82,3.93,86,2.272,100,0.921,111,2.648,120,5.571,141,0.979,147,1.017,179,2.041,182,1.031,185,2.259,189,4.423,228,1.015,229,1.005,231,0.959,232,0.984,233,1.053,241,2.884,242,2.593,248,10.366,253,1.838,267,4.876,275,3.807,299,3.063,322,1.554,373,2.8,374,7.83,375,3.307,377,4.249,385,2.446,396,1.144,422,4.742,426,2.541,440,2.904,445,4.643,461,2.446,462,2.446,472,2.736,494,2.904,530,2.567,532,7.526,556,2.8,558,4.82,559,3.671,561,4.883,563,5.831,564,5.611,565,3.633,567,3.307,568,2.62,569,6.086,570,6.086,624,14.882,697,4.268,721,2.768,752,5.091,753,4.268,757,14.035,758,16.197,759,14.035,764,9.222,766,9.222,767,8.746,769,10.664,770,4.129,777,11.72,803,3.425,806,9.627,808,9.222,811,10.135,917,2.593,920,4.268,921,3.803,922,5.196,924,5.691,925,5.196,926,17.403,927,5.196,928,5.196,929,5.196,930,5.196,931,3.425,932,5.196,933,5.196,934,5.196,935,10.815,936,5.196,937,5.196,938,5.196,939,4.625,940,10.815,941,6.766,942,5.196,943,12.506,944,3.803,945,5.196,946,8.513,947,5.196,948,5.196,949,5.196,950,5.196,951,8.513,952,3.425,953,5.196,954,8.513,955,5.196,956,5.196,957,5.196,958,5.196,959,4.625,960,7.578,961,5.196,962,5.196]],["keywords/82",[]],["title/83",[390,627.608,920,767.682,921,683.958]],["content/83",[62,2.332,73,0.958,74,1.024,82,3.235,86,1.153,89,0.837,100,0.973,111,2.797,141,1.035,147,1.064,182,1.089,185,2.387,189,5.38,228,1.073,229,1.062,231,1.014,232,1.04,233,1.112,238,2.094,241,2.7,248,10.637,267,5.038,275,3.934,299,3.236,322,1.642,339,1.308,374,8.09,385,2.584,390,5.979,396,1.208,406,2.924,440,3.068,445,4.855,453,3.191,461,2.584,462,2.584,472,2.891,508,3.554,530,2.712,531,4.509,532,7.047,559,2.367,575,3.191,624,15.068,738,3.068,752,4.191,757,14.258,758,16.454,759,14.258,764,9.577,766,9.577,767,9.036,769,11.018,770,4.362,777,12.109,779,4.017,790,4.886,792,4.362,793,2.993,794,5.144,803,3.618,806,9.998,808,9.577,811,10.525,917,2.74,920,9.227,921,8.22,923,5.489,925,5.489,926,17.721,927,5.489,928,5.489,929,5.489,930,5.489,931,3.618,932,5.489,933,5.489,934,5.489,935,11.231,936,5.489,937,5.489,938,5.489,939,4.886,940,11.231,941,7.076,942,5.489,943,12.921,944,4.017,945,5.489,946,8.903,947,5.489,948,5.489,949,5.489,950,5.489,951,8.903,952,3.618,953,5.489,954,8.903,955,5.489,956,5.489,957,5.489,958,5.489,959,4.886,960,7.925,961,5.489,962,5.489,963,6.013]],["keywords/83",[]],["title/84",[62,93.481,160,195.83,337,294.37,344,495.856]],["content/84",[50,11.484,145,5.898,330,7.033,422,7.458,964,11.012]],["keywords/84",[]],["title/85",[62,93.481,160,195.83,344,495.856,493,520.967]],["content/85",[]],["keywords/85",[]],["title/86",[]],["content/86",[19,6.226,46,5.479,65,8.02,77,6.104,89,1.921,147,1.506,160,3.996,161,4.313,162,6.422,191,6.045,198,7.535,222,6.355,320,6.563,322,3.769,334,4.457,349,4.877,362,8.812,370,6.289,396,2.774,431,6.712,493,12.527,494,7.043,495,11.809,496,13.999,497,11.809,498,11.809,499,8.631,501,11.245,502,7.134,516,7.765,517,8.158,518,8.158,519,11.809,520,6.956,551,9.008,965,8.306,966,13.803,967,12.601,968,7.043,969,6.956,970,12.601]],["keywords/86",[]],["title/87",[344,686.721,493,721.499]],["content/87",[]],["keywords/87",[]],["title/88",[89,142.443,396,205.729,493,605.05]],["content/88",[52,1.745,62,2.3,73,1.185,74,1.267,77,3.29,82,2.468,86,3.06,89,1.035,100,1.204,120,5.432,141,1.28,147,1.26,160,1.653,167,6.034,182,1.348,185,5.619,186,3.153,189,3.729,190,6.216,228,1.327,229,1.314,231,1.254,232,1.287,233,1.376,238,2.591,241,2.204,242,5.263,253,2.402,275,3.21,299,4.004,373,3.66,377,3.39,396,1.495,422,7.636,431,3.618,438,2.882,472,5.553,493,4.398,498,6.365,499,10.801,501,7.222,530,3.356,539,6.601,542,8.133,543,5.01,556,3.66,557,4.75,558,5.969,559,4.547,560,5.239,561,9.046,575,6.13,594,6.399,595,8.991,721,3.618,967,6.792,971,5.58,972,7.44,973,7.44,974,7.44,975,7.44,976,7.44,977,7.44,978,7.44,979,7.44,980,7.44,981,11.55,982,11.55,983,11.55,984,11.55,985,11.55,986,7.717,987,11.55,988,11.55,989,7.44,990,9.386,991,7.44,992,11.55,993,7.44,994,11.55,995,7.44,996,11.55,997,11.55,998,7.44,999,11.55,1000,11.55,1001,11.55,1002,11.55,1003,11.55,1004,11.55,1005,11.55,1006,11.55,1007,11.55,1008,11.55,1009,11.55,1010,7.44,1011,7.44,1012,7.44,1013,7.44,1014,7.44,1015,7.44,1016,7.44,1017,7.44]],["keywords/88",[]],["title/89",[334,284.606,493,520.967,968,449.748,969,444.18]],["content/89",[3,7.793,52,2.267,62,2.141,73,1.54,74,1.647,82,3.207,85,3.344,89,1.345,100,1.564,141,1.664,147,1.535,161,4.396,182,1.752,185,3.838,189,3.122,225,4.864,228,1.725,229,1.707,231,1.63,232,1.672,233,1.788,239,4.649,241,1.845,246,7.526,314,5.278,322,2.64,333,3.231,334,3.122,345,4.155,349,4.97,356,7.526,406,6.84,420,6.046,423,4.997,445,4.814,446,7.526,451,7.857,457,5.357,493,8.314,499,8.795,536,6.31,564,5.818,565,6.173,793,7.003,968,9.29,969,8.355,970,8.827,1018,9.669,1019,6.31,1020,9.669,1021,8.827,1022,10.549,1023,10.549,1024,8.827,1025,8.827,1026,4.997,1027,7.251,1028,6.809,1029,9.669,1030,4.757,1031,9.669,1032,9.669,1033,9.669,1034,9.669,1035,8.272,1036,9.669,1037,9.669,1038,6.31,1039,9.669,1040,9.669,1041,10.205,1042,9.669,1043,9.669,1044,6.046,1045,9.669,1046,9.669,1047,9.669,1048,6.625,1049,9.669,1050,9.669,1051,9.669,1052,9.669,1053,9.669,1054,9.669,1055,9.669,1056,9.669,1057,9.669,1058,4.597]],["keywords/89",[]],["title/90",[62,93.481,160,195.83,344,495.856,463,455.53]],["content/90",[]],["keywords/90",[]],["title/91",[]],["content/91",[46,6.969,147,1.915,160,4.642,162,8.168,191,7.688,198,9.584,320,8.347,322,4.793,362,11.208,516,9.877,517,10.377,518,10.377,1059,17.557]],["keywords/91",[]],["title/92",[344,686.721,463,630.874]],["content/92",[160,2.971,161,6.798,222,6.155,253,6.36,322,3.65,334,6.76,349,4.724,449,6.91,461,8.463,462,8.463,463,12.085,534,8.876,696,6.91,968,6.822,969,6.738,1060,12.205,1061,9.223,1062,10.798,1063,15.068,1064,15.068,1065,9.415,1066,12.205,1067,12.778,1068,12.205,1069,10.027]],["keywords/92",[]],["title/93",[334,284.606,463,455.53,1061,461.544,1062,540.39]],["content/93",[31,5.425,52,2.933,62,2.257,73,2.683,74,2.13,85,4.325,100,2.023,141,2.152,147,1.838,161,5.265,173,6.464,179,4.484,182,2.266,189,6.151,228,2.231,229,2.208,231,2.108,232,2.163,233,2.313,239,9.159,241,2.386,275,3.476,324,2.933,333,3.89,334,5.44,349,5.953,463,6.464,486,13.054,490,9.074,491,9.074,492,9.074,623,7.307,1048,8.57,1061,6.549,1062,7.668,1063,10.699,1070,9.379,1071,9.735,1072,10.163,1073,10.163,1074,10.163,1075,11.417]],["keywords/93",[]],["title/94",[253,284.606,463,455.53,1061,461.544,1062,540.39]],["content/94",[62,2.509,73,2.384,74,2.549,86,2.87,100,2.421,141,2.575,147,2.067,182,2.712,189,6.117,228,2.67,229,2.643,231,2.523,232,2.589,233,2.768,241,3.614,253,4.833,322,4.086,463,7.735,623,9.476,1063,12.804,1075,13.663,1076,9.555]],["keywords/94",[]],["title/95",[334,284.606,461,378.744,462,378.744,463,455.53]],["content/95",[31,4.855,52,2.625,62,2.17,73,2.487,74,1.906,85,3.871,100,2.526,141,1.926,147,1.703,160,2.487,161,4.879,173,5.785,179,4.013,182,2.028,185,4.443,189,5.805,228,1.997,229,1.976,231,1.887,232,1.936,233,2.07,239,8.644,241,2.979,256,9.961,275,3.11,324,2.625,333,3.761,334,5.041,349,5.517,461,4.809,462,4.809,463,5.785,481,6.615,486,12.319,490,8.121,491,8.121,492,8.121,532,5.572,623,6.772,793,5.572,1048,7.669,1064,9.575,1070,8.394,1071,8.713,1072,9.096,1073,9.096,1074,9.096,1077,7.882,1078,7.669,1079,3.663,1080,14.252,1081,17.979,1082,10.218,1083,11.193,1084,10.218]],["keywords/95",[]],["title/96",[253,284.606,461,378.744,462,378.744,463,455.53]],["content/96",[62,2.472,73,2.213,74,2.366,86,2.664,100,2.922,141,2.391,147,1.97,160,3.087,182,2.517,185,5.515,189,5.832,228,2.478,229,2.453,231,2.342,232,2.403,233,2.57,241,3.829,253,4.486,256,7.697,322,3.793,463,7.18,481,8.212,532,6.917,623,9.216,793,6.917,1064,11.886,1076,8.869,1077,9.783,1078,9.52,1079,4.546,1084,12.683]],["keywords/96",[]],["title/97",[461,378.744,462,378.744,463,455.53,1065,620.673]],["content/97",[52,3.437,62,2.299,73,2.335,74,2.496,100,2.371,141,2.522,147,2.039,179,5.256,182,2.656,228,2.615,229,2.588,231,2.471,232,2.535,233,2.711,241,3.567,322,4.002,324,3.437,333,3.318,369,7.888,461,8.033,462,8.033,463,7.575,536,9.566,1065,10.322,1066,13.381,1085,14.658,1086,11.41,1087,14.658,1088,14.658,1089,14.658]],["keywords/97",[]],["title/98",[334,330.54,463,529.052,534,515.87]],["content/98",[31,5.3,52,3.889,62,2.239,73,2.642,74,2.081,100,1.977,141,2.103,147,1.809,160,2.715,161,5.183,173,6.315,182,2.214,189,6.079,228,2.18,229,2.158,231,2.06,232,2.114,233,2.26,239,9.051,241,3.164,275,3.396,324,2.865,333,3.863,334,5.355,349,5.86,463,6.315,486,12.9,490,8.866,491,8.866,492,8.866,534,6.158,535,8.165,623,7.194,803,7.353,1048,8.373,1067,8.866,1070,9.164,1071,9.512,1079,3.999,1090,6.399,1091,12.22,1092,12.22,1093,12.22,1094,11.155]],["keywords/98",[]],["title/99",[253,330.54,463,529.052,534,515.87]],["content/99",[52,3.345,62,2.485,73,2.272,74,2.43,86,2.736,100,2.308,141,2.455,147,2.004,160,3.169,182,2.585,189,5.932,228,2.545,229,2.519,231,2.405,232,2.467,233,2.638,241,3.877,253,4.606,322,3.895,463,7.372,535,9.531,623,9.309,803,8.584,1067,10.35,1076,9.107,1079,4.668,1090,7.47,1094,13.022]],["keywords/99",[]],["title/100",[334,284.606,463,455.53,968,449.748,969,444.18]],["content/100",[31,5.425,52,2.933,62,2.257,73,2.683,74,2.13,85,4.325,100,2.023,141,2.152,147,1.838,161,5.265,173,6.464,179,4.484,182,2.266,189,6.151,228,2.231,229,2.208,231,2.108,232,2.163,233,2.313,239,9.159,241,2.386,275,3.476,324,2.933,333,3.89,334,5.44,349,5.953,463,6.464,486,13.054,490,9.074,491,9.074,492,9.074,623,7.307,968,6.382,969,6.303,1048,8.57,1068,11.417,1070,9.379,1071,9.735,1072,10.163,1073,10.163,1074,10.163,1095,12.507]],["keywords/100",[]],["title/101",[334,330.54,463,529.052,696,529.052]],["content/101",[31,4.5,52,2.433,62,2.109,71,5.507,73,2.357,74,1.767,82,3.441,85,3.588,87,6.361,100,1.678,141,1.785,147,1.614,161,4.625,167,3.923,173,5.362,179,5.306,182,1.88,185,5.874,189,6.073,201,6.932,228,1.851,229,1.832,231,1.749,232,1.795,233,1.919,239,9.561,241,1.979,275,2.883,320,4.933,324,2.433,333,3.67,334,4.779,349,5.229,396,2.085,463,5.362,486,11.82,487,8.876,490,7.527,491,7.527,492,7.527,623,6.419,696,5.362,793,5.165,1048,7.109,1069,7.781,1070,7.781,1071,8.076,1072,8.431,1073,8.431,1074,8.431,1096,10.375,1097,14.799,1098,14.799,1099,5.165,1100,7.781,1101,10.375,1102,7.306,1103,10.375,1104,10.375,1105,10.375,1106,10.375,1107,10.375,1108,10.375,1109,10.375,1110,10.375,1111,10.375,1112,10.375,1113,14.799,1114,10.375]],["keywords/101",[]],["title/102",[122,545.108,401,580.377]],["content/102",[]],["keywords/102",[]],["title/103",[328,208.982,331,402.981,1115,640.083]],["content/103",[19,3.581,62,1.288,73,1.265,82,6.476,86,2.828,88,2.956,89,1.105,100,1.284,113,3.151,121,1.612,122,5.422,145,2.513,160,1.764,170,7.055,185,3.151,186,2.168,196,2.979,200,3.775,240,2.911,328,4.538,329,7.683,331,3.125,332,4.273,333,1.409,339,3.207,360,5.591,361,8.809,365,3.694,373,5.974,377,3.618,380,4.399,387,5.954,406,5.905,413,5.954,427,2.979,431,3.861,438,7.267,445,8.859,449,4.103,453,6.444,458,8.55,529,4.777,539,4.538,556,3.906,559,7.387,721,5.905,748,4.399,752,5.218,790,6.452,917,5.533,952,8.872,1079,3.973,1116,7.939,1117,7.248,1118,6.18,1119,5.069,1120,6.792,1121,7.248,1122,6.452,1123,7.248,1124,7.248,1125,4.868,1126,7.248,1127,6.18,1128,5.954,1129,7.306,1130,12.537,1131,5.069,1132,13.214,1133,7.939,1134,7.939,1135,9.106,1136,5.974,1137,7.248,1138,11.628,1139,12.142,1140,11.084,1141,6.629,1142,9.106,1143,6.452,1144,6.18,1145,6.452,1146,5.44,1147,7.939,1148,7.248,1149,7.248,1150,6.792]],["keywords/103",[]],["title/104",[333,181.68,337,341.881,338,585.076]],["content/104",[31,2.482,52,3.223,56,5.717,58,2.957,62,2.218,82,6.739,86,1.796,89,1.655,111,7.054,122,6.77,123,2.815,127,3.443,128,3.653,147,1.022,186,1.562,189,1.848,190,3.079,191,2.506,225,6.605,239,4.503,251,3.325,253,1.848,315,3.921,321,5.533,322,2.557,328,3.79,333,2.889,334,1.848,337,1.911,339,4.342,373,2.815,384,3.382,385,5.906,389,2.72,406,2.782,422,2.29,438,4.605,440,7.736,441,3.443,445,6.842,474,4.291,479,5.223,499,3.578,505,7.29,539,3.27,559,7.307,567,7.985,624,4.029,721,2.782,752,9.092,952,5.636,1019,7.761,1028,4.029,1038,3.734,1079,3.065,1090,2.996,1099,2.849,1119,3.653,1126,5.223,1131,3.653,1136,4.608,1141,3.124,1151,4.65,1152,4.029,1153,5.536,1154,5.722,1155,5.223,1156,4.151,1157,5.722,1158,5.722,1159,11.801,1160,4.151,1161,4.029,1162,5.722,1163,6.113,1164,3.578,1165,3.734,1166,7.155,1167,3.578,1168,3.653,1169,3.734,1170,3.578,1171,3.734,1172,3.734,1173,3.734,1174,3.653,1175,3.734,1176,3.734,1177,11.758,1178,9.183,1179,4.151,1180,4.65,1181,8.551,1182,6.796,1183,5.223,1184,4.151,1185,4.029,1186,4.291,1187,5.223,1188,4.151,1189,4.895,1190,5.223,1191,6.596,1192,8.013,1193,3.17,1194,5.722,1195,2.581,1196,3.079,1197,5.223,1198,5.223,1199,5.223,1200,4.291,1201,5.722,1202,4.895,1203,6.418,1204,3.823,1205,3.653,1206,3.653,1207,3.578,1208,5.722,1209,4.65]],["keywords/104",[]],["title/105",[328,249.203,339,265.486]],["content/105",[20,4.014,31,3.596,46,6.387,52,3.28,54,2.348,56,3.986,57,6.218,59,3.125,67,8.266,79,2.87,82,6.574,86,2.055,89,2.524,111,3.858,113,4.981,121,2.549,122,6.246,145,2.625,160,1.097,173,5.538,179,1.771,186,2.264,189,1.595,190,5.766,196,6.589,225,5.565,240,5.552,317,2.029,320,2.348,321,2.298,328,3.585,329,2.298,331,3.264,333,2.687,335,2.608,337,2.769,339,4.591,341,2.163,345,2.122,358,3.478,365,2.298,373,2.43,374,2.823,412,6.015,423,2.553,438,6.801,440,4.231,443,3.74,445,8.742,450,3.666,465,4.526,468,4.014,503,2.87,530,3.74,559,7.666,567,2.87,572,2.658,619,5.778,699,2.459,779,5.54,793,2.459,885,6.218,931,2.972,941,3.584,952,10.16,1023,3.704,1026,4.285,1038,3.223,1058,3.942,1099,5.334,1130,3.3,1136,4.079,1141,2.696,1142,3.704,1143,4.014,1151,4.014,1152,7.545,1156,3.584,1159,8.341,1160,3.584,1177,7.093,1178,5.54,1179,3.584,1184,3.584,1188,3.584,1202,4.226,1203,3.384,1204,3.3,1210,8.211,1211,5.838,1212,4.939,1213,3.704,1214,4.939,1215,4.939,1216,4.226,1217,4.014,1218,3.584,1219,4.939,1220,8.291,1221,4.939,1222,6.218,1223,4.939,1224,4.939,1225,4.509,1226,7.093,1227,3.845,1228,4.509,1229,7.569,1230,9.167,1231,7.569,1232,2.737,1233,4.939,1234,9.769,1235,3.584,1236,7.093,1237,4.226,1238,4.939,1239,4.939,1240,5.681,1241,4.939,1242,4.509,1243,4.939,1244,4.939,1245,4.509,1246,8.291,1247,4.226,1248,4.014,1249,4.509,1250,4.226,1251,4.939,1252,4.226,1253,4.226,1254,4.509]],["keywords/105",[]],["title/106",[122,545.108,160,271.209]],["content/106",[]],["keywords/106",[]],["title/107",[]],["content/107",[49,9.345,52,3.003,53,5.948,89,2.864,121,2.601,122,10.063,128,8.176,145,4.055,147,1.397,160,4.284,161,4.002,191,5.609,198,6.992,222,5.896,253,4.135,256,7.096,309,6.005,322,4.674,330,5.564,349,4.525,516,7.205,517,7.57,518,7.57,520,6.454,524,11.171,1218,12.419,1255,9.019,1256,8.358,1257,8.008,1258,12.807,1259,13.91,1260,11.958,1261,16.02]],["keywords/107",[]],["title/108",[160,335.847]],["content/108",[]],["keywords/108",[]],["title/109",[53,315.808,122,457.128,1259,831.88]],["content/109",[53,5.578,62,2.313,74,1.927,77,5.002,122,7.023,136,4.729,141,1.946,147,1.716,182,2.049,228,2.018,229,1.997,231,1.907,232,1.957,239,5.438,275,3.144,357,7.177,360,7.965,361,8.207,429,5.438,445,7.83,721,5.501,752,10.264,986,7.558,1128,8.483,1138,11.075,1156,8.207,1160,8.207,1163,7.382,1164,7.073,1165,7.382,1166,10.879,1167,7.073,1168,7.221,1169,7.382,1170,7.073,1171,7.382,1172,7.382,1173,7.382,1174,7.221,1175,7.382,1176,7.382,1179,8.207,1182,8.207,1184,8.207,1186,8.483,1188,8.207,1191,7.965,1218,8.207,1262,8.805,1263,10.326]],["keywords/109",[]],["title/110",[89,142.443,122,457.128,1260,594.778]],["content/110",[53,3.297,62,2.214,74,1.82,77,4.726,89,2.103,122,6.749,136,4.468,141,1.839,147,1.649,182,1.936,228,1.907,229,1.887,231,1.802,232,1.849,239,5.138,275,2.97,357,4.242,360,7.526,361,7.754,396,3.037,429,5.138,445,8.73,721,5.197,752,10.186,986,7.141,1128,8.015,1138,10.643,1144,8.319,1156,7.754,1160,7.754,1163,6.975,1164,6.683,1165,6.975,1166,10.551,1167,6.683,1168,6.823,1169,6.975,1170,6.683,1171,6.975,1172,6.975,1173,6.975,1174,6.823,1175,6.975,1176,6.975,1179,7.754,1182,7.754,1184,7.754,1186,8.015,1188,7.754,1191,7.526,1261,8.319,1262,8.319,1264,8.685,1265,16.967,1266,12.282,1267,8.685,1268,9.143]],["keywords/110",[]],["title/111",[89,122.648,121,179.001,122,393.602,1260,512.122]],["content/111",[53,4.083,62,2.363,73,1.418,74,1.516,86,1.707,89,1.842,100,2.141,121,1.808,122,8.351,126,5.085,131,4.932,136,3.721,141,1.532,147,1.724,161,4.136,182,1.613,186,2.43,228,1.588,229,2.337,230,5.457,231,1.501,232,1.54,234,3.393,239,6.364,275,3.678,325,7.615,357,3.533,360,11.127,361,6.458,396,2.66,429,4.28,438,3.447,445,10.104,721,4.329,752,9.91,986,5.947,1038,5.809,1099,4.432,1128,6.675,1138,9.321,1144,6.929,1156,11.464,1160,6.458,1163,5.809,1164,5.566,1165,5.809,1166,9.508,1167,5.566,1168,5.683,1169,5.809,1170,5.566,1171,5.809,1172,5.809,1173,5.809,1174,5.683,1175,5.809,1176,5.809,1179,6.458,1182,6.458,1184,6.458,1186,6.675,1188,6.458,1191,6.268,1259,7.234,1261,6.929,1262,6.929,1264,7.234,1265,15.927,1266,10.756,1267,7.234,1268,7.615,1269,8.126]],["keywords/111",[]],["title/112",[53,271.921,122,393.602,330,286.508,1259,716.275]],["content/112",[53,5.024,62,2.432,73,1.493,74,1.596,86,1.797,100,1.516,120,4.407,122,7.272,126,5.282,131,5.192,136,3.918,141,1.613,147,1.776,182,1.698,186,2.559,228,1.672,229,2.428,230,5.745,231,1.58,232,1.621,233,1.733,234,3.572,239,6.61,275,2.604,328,1.913,330,3.046,357,6.464,360,11.467,361,6.799,429,6.61,438,3.629,445,10.272,524,8.973,721,4.557,752,9.991,986,6.261,1038,6.116,1099,4.665,1128,7.028,1138,9.681,1144,7.295,1156,11.814,1160,6.799,1163,6.116,1164,5.86,1165,6.116,1166,9.798,1167,5.86,1168,5.983,1169,6.116,1170,5.86,1171,6.116,1172,6.116,1173,6.116,1174,5.983,1175,6.116,1176,6.116,1179,6.799,1182,6.799,1184,6.799,1186,7.028,1188,6.799,1191,6.599,1218,6.799,1263,8.555,1270,8.555]],["keywords/112",[]],["title/113",[89,122.648,122,393.602,330,286.508,1260,512.122]],["content/113",[53,2.793,62,2.371,73,1.442,74,1.542,86,1.736,89,1.865,100,1.464,120,4.257,122,7.126,126,5.149,131,5.015,136,3.785,141,1.558,147,1.741,182,1.64,186,2.472,228,1.615,229,2.366,230,5.55,231,1.526,232,1.566,234,3.45,239,6.444,275,3.725,328,1.848,330,2.943,357,3.593,360,11.238,361,6.568,396,2.694,429,4.352,438,3.506,445,10.159,524,8.747,721,4.402,752,9.937,986,6.048,1038,5.908,1099,4.507,1128,6.789,1138,9.438,1144,7.047,1156,11.578,1160,6.568,1163,5.908,1164,5.66,1165,5.908,1166,9.603,1167,5.66,1168,5.779,1169,5.908,1170,5.66,1171,5.908,1172,5.908,1173,5.908,1174,5.779,1175,5.908,1176,5.908,1179,6.568,1182,6.568,1184,6.568,1186,6.789,1188,6.568,1191,6.375,1261,7.047,1262,7.047,1264,7.357,1265,16.025,1266,10.891,1267,7.357,1268,7.745,1270,8.264]],["keywords/113",[]],["title/114",[89,122.648,122,393.602,309,309.202,1260,512.122]],["content/114",[53,4.617,62,2.009,74,2.549,88,5.572,89,2.636,121,3.039,122,9.282,141,2.575,147,1.633,228,2.67,229,2.643,231,2.523,232,2.589,275,4.159,309,7.291,357,5.941,396,3.807,429,7.196,1261,11.65,1262,11.65,1264,12.163,1265,16.891,1266,12.163,1267,12.163,1269,13.663,1271,9.358]],["keywords/114",[]],["title/115",[89,169.857,307,656.93]],["content/115",[]],["keywords/115",[]],["title/116",[]],["content/116",[53,6.775,54,9.088,59,5.574,89,2.66,90,7.298,147,1.656,160,3.373,198,8.287,200,7.217,326,9.134,328,3.902,331,5.976,333,2.694,337,5.07,339,3.301,357,7.587,396,3.051,508,8.972,516,8.54,517,8.972,518,8.972,1145,12.336,1272,11.384,1273,13.858,1274,12.336]],["keywords/116",[]],["title/117",[1078,1035.774]],["content/117",[31,3.845,38,5.239,52,2.079,53,6.566,54,6.274,59,5.092,88,3.3,89,2.193,99,6.242,101,8.693,108,5.15,121,2.68,140,5.923,145,2.806,160,2.932,162,6.139,173,6.819,179,3.178,196,3.326,200,4.215,267,5.61,322,2.42,326,11.232,328,3.218,333,2.342,337,2.96,339,2.87,345,3.809,357,8.448,369,9.396,370,8.506,389,6.274,396,3.168,406,4.311,421,4.361,426,3.958,440,4.523,502,4.581,507,8.092,508,5.239,536,5.785,803,9.484,911,4.642,917,4.039,1026,4.581,1058,4.215,1076,5.659,1132,6.242,1152,6.242,1272,11.82,1273,8.092,1275,8.864,1276,15.939,1277,9.895,1278,12.183,1279,14.189,1280,10.723,1281,7.203,1282,6.733,1283,7.583,1284,8.864,1285,7.542,1286,8.092,1287,7.203,1288,8.092,1289,8.864]],["keywords/117",[]],["title/118",[160,335.847]],["content/118",[53,6.057,121,3.218,160,2.54,161,5.682,191,5.007,222,5.264,267,5.64,309,5.558,322,3.122,326,11.813,330,5.15,349,4.04,357,7.793,369,10.565,429,7.618,520,5.761,524,10.341,670,11.407,1119,7.299,1278,13.456,1290,15.126,1291,15.126,1292,10.437,1293,10.437,1294,9.781,1295,10.437,1296,10.437,1297,14.776,1298,12.334,1299,10.437,1300,9.781,1301,10.437,1302,11.433]],["keywords/118",[]],["title/119",[53,271.921,357,349.871,369,474.345,1278,575.235]],["content/119",[53,4.522,62,2.429,73,2.335,74,2.496,100,2.371,101,7.297,113,5.818,141,2.522,147,2.039,182,2.656,200,6.969,228,2.615,229,2.588,231,2.471,232,2.535,233,2.711,267,5.217,357,5.818,369,10.061,1280,11.911,1290,9.793,1291,12.491,1292,13.381,1294,12.54,1303,13.381,1304,9.358,1305,15.993,1306,15.993]],["keywords/119",[]],["title/120",[53,238.743,267,275.445,357,307.182,369,416.469,1278,505.049]],["content/120",[62,2.009,73,2.384,74,2.549,82,4.964,100,2.421,101,7.451,113,5.941,134,6.202,141,2.575,147,2.067,179,5.366,182,2.712,200,7.116,228,2.67,229,2.643,231,2.523,232,2.589,233,2.768,267,5.327,349,5.288,369,10.195,1280,12.163,1283,12.804,1290,10,1291,12.657,1293,13.663,1303,13.663,1304,9.555,1307,14.967,1308,14.746]],["keywords/120",[]],["title/121",[53,238.743,121,157.16,357,307.182,369,416.469,1278,505.049]],["content/121",[53,4.431,62,2.416,73,2.287,74,2.446,100,2.323,121,2.917,141,2.471,147,2.013,161,5.766,182,2.602,228,2.562,229,2.536,231,2.421,232,2.484,233,2.656,234,5.474,267,5.112,357,5.701,369,7.729,1132,10.113,1278,9.373,1290,9.595,1291,12.328,1294,15.785,1304,9.168,1305,15.785,1306,18.407,1308,11.179]],["keywords/121",[]],["title/122",[53,212.781,267,245.492,330,224.196,357,273.778,369,371.18,1278,450.127]],["content/122",[38,7.306,53,3.814,62,2.317,73,1.969,74,2.105,82,4.1,100,2,101,6.154,121,2.51,141,2.127,147,1.823,182,2.24,200,9.645,228,2.205,229,2.183,231,2.084,232,2.138,233,2.286,234,4.711,267,7.221,322,3.375,330,4.018,357,4.907,369,8.995,389,7.947,524,10.908,750,7.729,867,11.285,1278,8.067,1279,10.046,1280,13.583,1282,6.308,1283,16.201,1290,8.259,1291,11.168,1295,11.285,1304,7.892,1305,14.299,1306,14.299,1308,9.622,1309,12.362,1310,12.362,1311,9.622,1312,12.362]],["keywords/122",[]],["title/123",[326,734.514,670,709.249]],["content/123",[53,4.431,62,2.534,73,2.287,74,2.446,89,1.998,100,2.323,101,7.15,141,2.471,147,2.013,182,2.602,228,2.562,229,2.536,231,2.421,232,2.484,233,2.656,326,11.103,328,2.932,348,10.77,357,5.701,396,2.886,1272,10.77,1277,10.77,1290,9.595,1291,12.328,1296,13.11,1297,14.995,1298,11.179,1304,9.168]],["keywords/123",[]],["title/124",[121,207.891,326,615.965,670,594.778]],["content/124",[53,3.565,62,2.541,73,1.841,74,1.968,89,2.221,100,1.87,101,5.754,141,1.989,147,1.741,161,4.988,162,7.427,182,2.094,186,3.155,228,2.062,229,2.041,231,1.948,232,1.999,233,2.138,234,4.405,275,4.436,322,4.358,326,11.004,328,2.359,339,3.472,348,13.714,357,4.587,396,3.208,440,5.897,465,6.309,529,6.954,619,5.321,693,8.145,1272,11.971,1277,14.791,1278,7.542,1290,7.722,1291,10.666,1297,12.972,1298,12.426,1304,7.378,1313,11.557,1314,10.55]],["keywords/124",[]],["title/125",[326,615.965,330,332.75,670,594.778]],["content/125",[53,3.706,62,2.563,73,1.913,74,2.046,100,1.943,101,5.981,141,2.067,147,1.788,162,5.589,182,2.176,186,3.28,228,2.143,229,2.121,231,2.025,232,2.078,233,2.222,234,4.579,275,4.556,322,3.28,326,9.864,328,2.452,330,3.905,339,3.565,348,13.994,357,4.768,465,6.558,524,10.699,619,8.591,693,8.365,1272,9.009,1277,15.034,1290,8.026,1291,10.953,1298,12.761,1299,10.967,1304,7.669,1314,10.967,1315,12.013,1316,12.013]],["keywords/125",[]],["title/126",[429,492.162,1119,653.519,1300,875.754]],["content/126",[62,2.055,73,2.471,74,2.642,100,2.509,121,3.15,141,2.669,147,1.692,161,4.847,228,2.767,229,2.739,231,2.615,232,2.683,233,2.869,345,6.665,429,10.158,457,8.594,524,10.123,551,10.123,699,7.722,1119,9.903,1290,10.364,1291,12.945,1300,13.27,1301,14.16,1304,9.903,1317,15.511]],["keywords/126",[]],["title/127",[309,309.202,326,530.365,670,512.122,1278,575.235]],["content/127",[62,2.112,73,2.584,74,2.763,100,2.624,141,2.791,147,1.769,228,2.894,229,2.864,231,2.734,232,2.806,233,3,309,7.562,326,9.76,1290,10.837,1291,13.308,1297,16.186,1298,12.626,1304,10.355,1318,16.22]],["keywords/127",[]],["title/128",[160,195.83,332,474.345,333,156.432,334,284.606]],["content/128",[]],["keywords/128",[]],["title/129",[]],["content/129",[44,8.02,46,5.479,52,3.237,85,4.773,89,2.949,128,8.812,147,1.506,160,4.445,161,4.313,191,6.045,198,7.535,222,6.355,244,8.812,300,11.809,322,3.769,332,7.428,333,3.192,334,4.457,349,4.877,396,4.26,401,6.563,516,7.765,517,8.158,518,8.158,746,7.647,793,6.872,1060,12.601,1255,9.72,1256,9.008,1257,8.631,1319,11.809,1320,15.06,1321,13.803,1322,12.601]],["keywords/129",[]],["title/130",[333,216.646,334,394.156]],["content/130",[31,2.688,50,1.305,52,2.343,54,1.169,58,1.271,59,3.441,62,2.473,63,1.844,65,2.609,71,1.305,72,1.271,73,0.392,74,0.419,85,0.85,86,2.263,87,1.508,88,0.916,89,1.524,97,2.104,100,0.398,101,2.236,103,1.323,111,5.095,113,0.976,114,1.343,121,1.258,123,2.209,136,1.028,141,0.423,147,2.017,160,1.377,161,1.403,167,0.93,177,4.363,179,1.61,182,0.446,183,2.931,185,0.976,190,1.323,197,2.688,228,0.439,229,0.434,231,0.415,232,0.425,233,0.455,238,0.857,239,2.159,240,2.272,241,2.089,246,3.495,250,2.808,253,0.794,255,3.383,267,4.711,275,1.722,307,1.323,317,5.917,318,1.784,320,1.169,328,1.265,331,0.968,333,3.988,334,2.47,335,2.8,339,0.977,342,6.328,344,1.383,346,2.808,349,2.703,377,2.046,385,3.287,396,0.902,405,2.263,406,4.859,420,1.538,421,3.048,438,1.739,439,1.48,457,1.363,463,1.271,486,9.871,487,6.544,490,1.784,491,1.784,492,1.784,530,1.109,532,2.236,534,2.263,551,4.044,555,2.245,559,3.011,561,4.006,572,5.378,619,2.067,620,4.647,693,3.162,694,3.368,696,2.321,762,3.495,793,1.224,834,3.649,911,4.006,917,2.046,968,2.291,969,2.263,1026,5.164,1028,1.732,1035,2.104,1048,1.685,1061,1.288,1070,1.844,1090,1.288,1100,3.368,1117,2.245,1127,1.914,1141,1.343,1146,1.685,1181,4.099,1196,2.417,1209,6.216,1211,4.363,1277,1.844,1285,1.406,1320,7.504,1323,4.445,1324,2.459,1325,4.099,1326,3.842,1327,2.245,1328,1.57,1329,2.459,1330,1.538,1331,4.86,1332,7.65,1333,2.459,1334,4.49,1335,4.647,1336,11.127,1337,13.455,1338,1.844,1339,2.459,1340,2.526,1341,2.459,1342,6.196,1343,4.49,1344,2.459,1345,2.459,1346,2.459,1347,3.077,1348,2.459,1349,4.49,1350,2.459,1351,2.459,1352,6.544,1353,2.459,1354,1.998,1355,2.459,1356,1.508,1357,2.459,1358,2.459,1359,4.49,1360,2.459,1361,2.459,1362,4.49,1363,4.49,1364,2.459,1365,2.459,1366,2.459,1367,2.459,1368,8.127,1369,7.65,1370,4.49,1371,4.49,1372,4.49,1373,4.49,1374,4.49,1375,2.459,1376,2.459,1377,2.459,1378,2.459,1379,2.459,1380,2.459,1381,2.459,1382,2.459,1383,4.49,1384,2.459,1385,2.245,1386,4.49,1387,6.196,1388,7.65,1389,4.49,1390,3.649,1391,8.902,1392,4.099,1393,2.459,1394,3.842,1395,2.459,1396,2.459,1397,2.459,1398,6.196,1399,2.459,1400,4.49,1401,2.459,1402,2.459,1403,4.49,1404,4.49,1405,6.196,1406,4.49,1407,4.49,1408,4.49,1409,2.459,1410,2.459,1411,2.459,1412,2.459,1413,3.368,1414,2.459,1415,2.459,1416,2.459,1417,2.459,1418,4.099,1419,2.459,1420,2.245,1421,10.951,1422,8.9,1423,10.951,1424,2.459,1425,2.459,1426,2.459,1427,2.459,1428,2.459,1429,2.459,1430,2.459,1431,2.459,1432,2.459,1433,2.459,1434,2.459,1435,2.104,1436,2.459,1437,2.459,1438,2.459,1439,2.459,1440,2.459,1441,2.459,1442,2.459,1443,2.459,1444,2.459,1445,2.459,1446,2.459,1447,4.49,1448,4.099,1449,4.099,1450,4.099,1451,2.459,1452,2.104,1453,2.459,1454,2.459,1455,3.842,1456,2.459,1457,7.65,1458,2.459,1459,2.459,1460,2.459,1461,2.459,1462,2.459,1463,2.459,1464,2.459,1465,2.459,1466,2.104,1467,2.459,1468,2.459,1469,5.301,1470,5.387,1471,2.459,1472,4.49,1473,2.459,1474,1.844]],["keywords/130",[]],["title/131",[334,394.156,1320,836.429]],["content/131",[46,4.538,62,2.365,73,1.821,86,2.193,98,6.241,100,2.563,111,5.319,142,6.153,147,1.729,160,3.52,182,2.871,228,2.04,231,1.927,233,2.115,241,3.023,253,3.692,267,5.64,275,3.177,329,5.319,333,3.659,334,6.339,335,3.596,380,6.334,405,9.163,429,7.618,1282,5.834,1320,7.834,1335,8.574,1475,11.433,1476,9.781,1477,11.433,1478,10.437,1479,11.433,1480,10.437,1481,10.437,1482,11.433,1483,11.433,1484,11.433,1485,11.433,1486,11.433,1487,11.433,1488,11.433,1489,11.433,1490,11.433,1491,11.433,1492,10.437,1493,11.433,1494,11.433,1495,11.433,1496,11.433,1497,11.433,1498,11.433,1499,11.433,1500,11.433,1501,11.433,1502,11.433]],["keywords/131",[]],["title/132",[1320,1035.774]],["content/132",[46,4.49,62,2.426,73,1.802,86,2.169,98,6.175,100,2.544,111,5.263,142,6.087,147,1.716,160,3.494,182,2.849,228,2.018,231,1.907,233,2.092,241,3.001,253,3.652,267,5.598,275,3.144,329,5.263,333,3.645,334,6.31,335,3.558,380,6.267,405,9.111,429,7.561,1282,5.772,1320,10.777,1335,8.483,1435,9.677,1476,9.677,1478,10.326,1480,10.326,1481,10.326,1492,10.326,1503,11.312,1504,11.312,1505,11.312,1506,11.312,1507,11.312,1508,11.312,1509,11.312,1510,11.312,1511,11.312,1512,11.312,1513,11.312,1514,11.312,1515,11.312,1516,11.312,1517,11.312,1518,11.312,1519,11.312,1520,11.312,1521,10.326,1522,11.312,1523,11.312]],["keywords/132",[]],["title/133",[300,1044.303,1320,836.429]],["content/133",[3,6.368,59,3.352,62,2.087,65,6.679,73,1.831,74,1.958,86,2.204,100,1.859,101,5.723,141,1.978,147,1.735,160,2.554,177,8.094,182,2.083,200,5.465,228,2.051,229,2.03,231,1.938,232,1.988,233,2.126,241,2.193,267,4.091,275,3.194,332,6.186,333,3.236,334,5.888,335,3.615,336,6.186,337,3.839,348,8.62,387,8.62,423,5.941,438,4.452,440,5.865,551,7.502,561,6.019,694,8.62,746,8.811,834,9.341,1076,7.338,1100,8.62,1207,7.187,1282,5.865,1311,8.948,1320,7.876,1322,10.493,1336,8.094,1448,10.493,1449,10.493,1450,10.493,1474,8.62,1521,10.493,1524,8.62,1525,11.495,1526,11.495,1527,11.495,1528,11.495,1529,11.495,1530,11.495,1531,11.495,1532,11.495,1533,11.495,1534,11.495,1535,11.495,1536,11.495,1537,11.495,1538,11.495,1539,11.495,1540,11.495]],["keywords/133",[]],["title/134",[332,474.345,333,156.432,334,284.606,401,419.069]],["content/134",[]],["keywords/134",[]],["title/135",[]],["content/135",[3,6.201,52,2.625,56,5.381,65,6.503,67,6.11,86,3.448,89,2.502,91,8.121,94,4.406,98,8.523,160,2.487,186,3.056,196,5.858,240,5.725,307,6.023,317,7.384,329,5.208,332,11.011,333,4.161,334,6.842,335,4.91,337,5.214,338,8.923,377,5.1,380,8.65,406,5.443,423,5.785,427,4.2,438,4.335,460,6.397,502,5.785,750,6.999,903,10.218,1146,7.669,1178,7.478,1240,7.669,1323,6.503,1340,6.297,1476,9.575,1541,11.193,1542,11.193,1543,10.218,1544,9.096,1545,8.713,1546,5.322,1547,9.575,1548,10.218,1549,11.193,1550,11.193]],["keywords/135",[]],["title/136",[89,122.648,334,284.606,427,330.713,1546,419.069]],["content/136",[52,4.462,53,4.65,72,7.79,86,2.891,89,2.648,108,8.757,115,10.071,145,4.772,196,5.655,200,7.166,240,5.527,317,6.191,333,3.701,334,6.733,337,5.034,396,3.029,427,7.14,500,11.303,793,7.504,1340,8.479,1544,12.249,1545,11.733,1546,9.047,1551,13.759,1552,13.759,1553,12.895]],["keywords/136",[]],["title/137",[160,195.83,317,362.024,333,156.432,406,428.616]],["content/137",[7,11.224,31,6.492,37,11.224,59,4.365,86,3.633,89,2.083,160,3.325,179,5.366,196,5.616,221,8.292,317,7.781,332,8.054,333,4,334,4.833,335,4.707,406,7.278,422,5.991,440,7.637,486,12.981,568,6.891,1125,9.176,1141,8.171,1250,12.804,1323,8.696,1554,9.555,1555,13.663,1556,14.967,1557,14.967]],["keywords/137",[]],["title/138",[324,286.247,1331,666.395]],["content/138",[]],["keywords/138",[]],["title/139",[160,227.437,324,240.047,1331,558.84]],["content/139",[]],["keywords/139",[]],["title/140",[324,286.247,1331,666.395]],["content/140",[62,2.193,73,2.065,74,2.208,82,4.3,89,1.804,100,2.097,113,5.146,136,5.42,141,2.231,147,1.883,182,2.349,197,5.623,228,2.313,229,2.289,231,2.185,232,2.242,233,2.398,238,4.515,241,3.292,267,6.142,313,6.615,324,5.05,335,4.077,353,4.826,354,4.483,355,5.233,389,6.163,396,2.605,543,5.623,623,9.606,1323,7.532,1331,7.077,1558,10.534,1559,14.023,1560,7.409,1561,8.106,1562,11.09,1563,8.276,1564,7.948,1565,10.534,1566,10.534]],["keywords/140",[]],["title/141",[121,207.891,324,240.047,1331,558.84]],["content/141",[62,2.418,73,1.882,74,2.012,89,1.644,100,2.622,121,2.399,126,4.538,131,6.545,141,2.033,147,2.018,161,5.064,182,2.14,186,3.225,228,2.107,229,2.861,230,7.243,231,1.991,232,2.043,233,2.185,234,4.502,241,2.254,267,5.768,324,4.668,353,4.398,354,4.085,355,4.769,396,2.374,543,5.124,623,10.006,1331,8.847,1558,9.6,1559,13.17,1562,10.106,1563,11.81,1564,9.936,1565,13.17,1566,13.17,1567,9.6,1568,11.813,1569,11.813]],["keywords/141",[]],["title/142",[309,359.107,324,240.047,1331,558.84]],["content/142",[62,2.103,73,2.564,74,2.742,89,2.24,100,2.604,141,2.77,147,1.756,229,2.842,231,2.714,232,2.784,233,2.977,309,7.536,324,5.038,1260,9.353,1331,8.788,1558,13.081,1559,16.111,1562,13.771,1570,16.097]],["keywords/142",[]],["title/143",[1571,813.496]],["content/143",[46,7.527,160,4.213,480,12.106,1571,10.205,1572,12.67]],["keywords/143",[]],["title/144",[163,558.503]],["content/144",[62,2.349,73,2.065,74,2.208,86,2.486,89,1.804,100,2.097,103,6.976,113,5.146,126,4.98,134,8.037,141,2.231,142,6.976,147,1.883,182,2.349,228,2.313,229,2.289,231,2.185,232,2.242,233,2.398,241,2.473,275,3.603,309,4.548,312,7.532,313,6.615,322,4.711,324,4.046,353,4.826,354,4.483,355,5.233,396,2.605,442,7.077,443,5.847,1282,6.615,1356,11.892,1558,10.534,1559,14.023,1573,11.53,1574,8.661,1575,12.963,1576,8.661,1577,8.661,1578,6.88,1579,8.661]],["keywords/144",[]],["title/145",[324,286.247,1580,796.655]],["content/145",[]],["keywords/145",[]],["title/146",[160,227.437,324,240.047,1580,668.076]],["content/146",[]],["keywords/146",[]],["title/147",[324,286.247,1580,796.655]],["content/147",[62,2.177,73,2.028,74,2.168,82,4.223,89,1.771,100,2.059,113,5.053,136,5.322,141,2.191,147,1.86,182,2.307,197,5.522,228,2.271,229,2.248,231,2.146,232,2.202,233,2.355,238,4.434,241,3.253,267,6.068,313,6.496,324,5.019,335,4.004,353,4.74,354,4.403,355,5.139,389,6.053,396,2.559,450,5.629,543,5.522,623,9.76,1323,7.397,1560,7.276,1561,7.96,1580,8.309,1581,10.346,1582,10.891,1583,7.96,1584,7.805,1585,9.547,1586,8.965,1587,11.622,1588,11.622,1589,7.276]],["keywords/147",[]],["title/148",[121,207.891,324,240.047,1580,668.076]],["content/148",[62,2.316,73,1.811,74,1.937,89,1.582,100,2.554,121,2.309,126,4.369,141,1.957,147,1.978,161,4.933,182,2.06,228,2.029,229,2.008,231,1.917,232,1.967,233,2.103,234,4.334,241,2.17,267,5.619,324,4.593,353,4.234,354,3.933,355,4.591,396,2.285,450,8.018,543,4.933,623,10.318,1580,10.302,1581,9.241,1582,9.729,1583,11.337,1584,11.116,1585,13.597,1586,12.768,1587,16.552,1588,10.381,1589,10.363]],["keywords/148",[]],["title/149",[309,359.107,324,240.047,1580,668.076]],["content/149",[62,2.122,73,2.603,74,2.784,89,2.274,100,2.644,141,2.813,147,1.783,161,5.108,228,2.916,229,2.886,231,2.755,232,2.827,233,3.023,309,7.02,324,5.072,1260,9.496,1580,10.667,1581,13.282,1582,13.983]],["keywords/149",[]],["title/150",[1571,813.496]],["content/150",[46,7.527,160,4.213,480,12.106,1571,10.205,1572,12.67]],["keywords/150",[]],["title/151",[163,558.503]],["content/151",[62,2.357,73,2.09,74,2.235,86,2.517,89,1.826,100,2.123,103,7.062,113,5.209,126,5.042,134,8.087,141,2.258,142,7.062,147,1.898,182,2.378,228,2.341,229,2.317,231,2.212,232,2.27,233,2.427,241,2.504,275,3.647,309,4.604,312,7.625,313,6.696,322,4.75,324,4.08,353,4.886,354,4.538,355,5.298,396,2.637,442,7.164,443,5.919,1282,6.696,1356,11.965,1573,11.624,1574,8.768,1576,8.768,1577,8.768,1578,6.965,1579,8.768,1580,8.564,1581,10.664]],["keywords/151",[]],["title/152",[324,240.047,968,522.337,969,515.87]],["content/152",[]],["keywords/152",[]],["title/153",[160,195.83,324,206.688,968,449.748,969,444.18]],["content/153",[]],["keywords/153",[]],["title/154",[324,240.047,968,522.337,969,515.87]],["content/154",[62,2.152,73,1.969,74,2.105,82,4.1,89,1.72,100,2,113,4.907,136,5.168,141,2.127,147,1.823,182,2.24,197,5.362,228,2.205,229,2.183,231,2.084,232,2.138,233,2.286,238,4.305,241,3.189,267,5.949,313,6.308,324,4.969,328,3.412,335,3.888,353,4.602,354,4.275,355,4.99,389,5.877,396,2.484,543,5.362,623,9.852,968,6.308,969,6.229,1323,7.182,1560,7.065,1561,7.729,1563,7.892,1564,7.579,1589,7.065,1590,10.046,1591,13.583,1592,10.575,1593,8.705,1594,8.705,1595,7.579,1596,7.065]],["keywords/154",[]],["title/155",[121,179.001,324,206.688,968,449.748,969,444.18]],["content/155",[62,2.327,73,1.841,74,1.968,89,1.608,100,2.582,121,2.347,126,4.44,141,1.989,147,1.995,161,4.988,182,2.094,228,2.062,229,2.041,231,1.948,232,1.999,233,2.138,234,4.405,241,2.205,267,5.682,324,4.625,328,3.259,353,4.303,354,3.997,355,4.665,396,2.323,543,5.013,623,10.222,968,8.145,969,8.044,1563,7.378,1564,9.787,1567,9.392,1589,9.124,1590,9.392,1591,12.972,1592,9.887,1593,8.138,1594,8.138,1595,11.212,1596,9.124,1597,9.392,1598,11.557]],["keywords/155",[]],["title/156",[309,309.202,324,206.688,968,449.748,969,444.18]],["content/156",[62,2.074,73,2.507,74,2.681,89,2.19,100,2.546,141,2.709,147,1.717,228,2.808,229,2.779,231,2.653,232,2.723,233,2.911,309,7.461,324,4.988,328,3.992,968,8.032,969,7.932,1260,9.146,1590,12.792,1591,15.889,1592,13.466]],["keywords/156",[]],["title/157",[1571,813.496]],["content/157",[46,7.527,160,4.213,480,12.106,1571,10.205,1572,12.67]],["keywords/157",[]],["title/158",[163,558.503]],["content/158",[62,2.341,73,2.04,74,2.181,86,2.456,89,1.782,100,2.072,103,6.892,113,5.084,126,4.92,134,7.989,141,2.204,142,6.892,147,1.867,182,2.32,228,2.285,229,2.261,231,2.159,232,2.215,233,2.369,241,2.443,275,3.559,309,4.493,312,7.441,313,6.535,322,4.674,324,4.014,328,3.495,353,4.768,354,4.429,355,5.17,396,2.574,442,6.992,443,5.777,968,6.535,1282,6.535,1356,11.821,1573,11.437,1574,8.557,1576,8.557,1577,8.557,1578,6.797,1579,8.557,1590,10.408,1591,13.91]],["keywords/158",[]],["title/159",[324,286.247,534,615.155]],["content/159",[]],["keywords/159",[]],["title/160",[160,227.437,324,240.047,534,515.87]],["content/160",[]],["keywords/160",[]],["title/161",[324,286.247,534,615.155]],["content/161",[62,2.188,73,2.052,74,2.194,82,4.274,89,1.793,100,2.084,113,5.115,136,5.387,141,2.217,147,1.875,182,2.334,197,5.589,228,2.299,229,2.275,231,2.172,232,2.229,233,2.383,238,4.488,241,3.279,267,6.117,313,6.575,324,5.04,335,4.053,353,4.797,354,4.456,355,5.202,389,6.126,396,2.589,450,5.697,534,6.493,543,5.589,623,9.589,1067,9.348,1323,7.486,1560,7.364,1561,8.057,1564,7.9,1583,8.057,1584,7.9,1595,7.9,1596,7.364,1599,11.023,1600,10.471]],["keywords/161",[]],["title/162",[121,207.891,324,240.047,534,515.87]],["content/162",[62,2.353,73,1.783,74,1.906,89,1.557,100,2.526,121,2.273,126,4.3,131,6.201,141,1.926,147,1.961,161,4.879,182,2.028,186,3.056,228,1.997,229,2.757,230,6.862,231,1.887,232,1.936,233,2.07,234,4.266,241,2.135,267,5.557,324,4.562,353,4.167,354,3.871,355,4.518,396,2.249,450,7.95,534,7.868,543,4.855,623,10.237,1067,8.121,1564,11.023,1583,11.242,1584,11.023,1595,11.023,1596,10.276,1599,9.575,1600,14.61]],["keywords/162",[]],["title/163",[309,359.107,324,240.047,534,515.87]],["content/163",[62,2.122,73,2.603,74,2.784,89,2.274,100,2.644,141,2.813,147,1.783,228,2.916,229,2.886,231,2.755,232,2.827,233,3.023,309,7.587,324,5.072,534,8.237,1067,11.858,1260,9.496,1599,13.983]],["keywords/163",[]],["title/164",[1571,813.496]],["content/164",[46,7.527,160,4.213,480,12.106,1571,10.205,1572,12.67]],["keywords/164",[]],["title/165",[163,558.503]],["content/165",[62,2.357,73,2.09,74,2.235,86,2.517,89,1.826,100,2.123,103,7.062,113,5.209,126,5.042,134,8.087,141,2.258,142,7.062,147,1.898,182,2.378,228,2.341,229,2.317,231,2.212,232,2.27,233,2.427,241,2.504,275,3.647,309,4.604,312,7.625,313,6.696,322,4.75,324,4.08,353,4.886,354,4.538,355,5.298,396,2.637,442,7.164,443,5.919,534,6.613,1067,9.521,1282,6.696,1356,11.965,1573,11.624,1574,8.768,1576,8.768,1577,8.768,1578,6.965,1579,8.768]],["keywords/165",[]],["title/166",[324,240.047,461,439.872,462,439.872]],["content/166",[]],["keywords/166",[]],["title/167",[160,195.83,324,206.688,461,378.744,462,378.744]],["content/167",[]],["keywords/167",[]],["title/168",[324,240.047,461,439.872,462,439.872]],["content/168",[62,2.157,73,1.98,74,2.118,82,4.124,89,1.73,100,2.011,113,4.935,136,5.198,141,2.14,147,1.831,182,2.253,197,5.393,228,2.218,229,2.195,231,2.096,232,2.151,233,2.3,238,4.331,241,3.201,267,5.973,313,6.344,324,4.979,335,3.911,353,4.629,354,4.3,355,5.019,389,5.912,396,2.499,450,5.498,461,5.343,462,8.162,543,5.393,623,9.701,1323,7.224,1560,7.106,1561,7.775,1563,7.938,1564,7.623,1583,7.775,1584,7.623,1593,8.756,1594,8.756,1596,7.106,1601,10.104,1602,10.637,1603,9.679]],["keywords/168",[]],["title/169",[121,179.001,324,206.688,461,378.744,462,378.744]],["content/169",[62,2.323,73,1.831,74,1.958,89,1.599,100,2.573,121,2.334,126,4.416,141,1.978,147,1.989,161,4.97,182,2.083,228,2.051,229,2.03,231,1.938,232,1.988,233,2.126,234,4.381,241,2.193,267,5.661,324,4.614,353,4.28,354,3.975,355,4.64,396,2.31,450,8.063,461,6.834,462,8.455,543,4.986,623,9.952,1563,7.338,1564,9.75,1567,9.341,1583,9.944,1584,11.18,1593,8.094,1594,8.094,1596,9.09,1597,9.341,1601,9.341,1602,9.834,1603,14.195,1604,11.495]],["keywords/169",[]],["title/170",[309,309.202,324,206.688,461,378.744,462,378.744]],["content/170",[62,2.093,73,2.545,74,2.721,89,2.223,100,2.584,141,2.749,147,1.743,228,2.85,229,2.821,231,2.693,232,2.763,233,2.955,309,7.511,324,5.021,461,6.865,462,9.201,1260,9.283,1601,12.983,1602,13.668]],["keywords/170",[]],["title/171",[1571,813.496]],["content/171",[46,7.527,160,4.213,480,12.106,1571,10.205,1572,12.67]],["keywords/171",[]],["title/172",[163,558.503]],["content/172",[62,2.349,73,2.065,74,2.208,86,2.486,89,1.804,100,2.097,103,6.976,113,5.146,126,4.98,134,8.037,141,2.231,142,6.976,147,1.883,182,2.349,228,2.313,229,2.289,231,2.185,232,2.242,233,2.398,241,2.473,275,3.603,309,4.548,312,7.532,313,6.615,322,4.711,324,4.046,353,4.826,354,4.483,355,5.233,396,2.605,442,7.077,443,5.847,461,5.57,462,7.415,1282,6.615,1356,11.892,1573,11.53,1574,8.661,1576,8.661,1577,8.661,1578,6.88,1579,8.661,1601,10.534]],["keywords/172",[]],["title/173",[324,240.047,1061,536.036,1062,627.608]],["content/173",[]],["keywords/173",[]],["title/174",[160,195.83,324,206.688,1061,461.544,1062,540.39]],["content/174",[]],["keywords/174",[]],["title/175",[324,240.047,1061,536.036,1062,627.608]],["content/175",[62,2.199,73,2.077,74,2.221,82,4.326,89,1.815,100,2.11,113,5.177,136,5.453,141,2.244,147,1.89,182,2.363,197,5.657,228,2.327,229,2.303,231,2.199,232,2.256,233,2.412,238,4.543,241,3.306,267,6.167,313,6.655,324,5.06,335,4.102,353,4.856,354,4.51,355,5.265,389,6.201,396,2.621,543,5.657,623,9.36,1061,6.83,1062,11.929,1323,7.578,1560,7.454,1561,8.155,1589,7.454,1605,9.184,1606,9.781,1607,11.906,1608,11.906]],["keywords/175",[]],["title/176",[121,179.001,324,206.688,1061,461.544,1062,540.39]],["content/176",[62,2.444,73,1.871,74,2.001,89,1.635,100,2.612,121,2.386,126,4.513,131,6.509,141,2.022,147,2.012,161,5.045,182,2.128,186,3.208,228,2.096,229,2.851,230,7.203,231,1.98,232,2.032,233,2.173,234,4.478,241,2.241,267,5.746,324,4.657,353,4.374,354,4.063,355,4.743,396,2.361,543,5.096,623,10.093,1061,8.454,1062,12.177,1589,10.543,1605,8.273,1606,8.81,1607,16.839,1608,16.839]],["keywords/176",[]],["title/177",[309,309.202,324,206.688,1061,461.544,1062,540.39]],["content/177",[62,2.093,73,2.545,74,2.721,89,2.223,100,2.584,141,2.749,147,1.743,228,2.85,229,2.821,231,2.693,232,2.763,233,2.955,309,7.511,324,5.021,1061,8.366,1062,13.127,1260,9.283,1605,11.25,1606,11.981]],["keywords/177",[]],["title/178",[1571,813.496]],["content/178",[46,7.527,160,4.213,480,12.106,1571,10.205,1572,12.67]],["keywords/178",[]],["title/179",[163,558.503]],["content/179",[62,2.349,73,2.065,74,2.208,86,2.486,89,1.804,100,2.097,103,6.976,113,5.146,126,4.98,134,8.037,141,2.231,142,6.976,147,1.883,182,2.349,228,2.313,229,2.289,231,2.185,232,2.242,233,2.398,241,2.473,275,3.603,309,4.548,312,7.532,313,6.615,322,4.711,324,4.046,353,4.826,354,4.483,355,5.233,396,2.605,442,7.077,443,5.847,1061,6.788,1062,10.58,1282,6.615,1356,11.892,1573,11.53,1574,8.661,1576,8.661,1577,8.661,1578,6.88,1579,8.661,1605,9.128]],["keywords/179",[]],["title/180",[324,286.247,1061,639.202]],["content/180",[]],["keywords/180",[]],["title/181",[160,227.437,324,240.047,1061,536.036]],["content/181",[]],["keywords/181",[]],["title/182",[324,286.247,1061,639.202]],["content/182",[62,2.188,73,2.052,74,2.194,82,4.274,89,1.793,100,2.084,113,5.115,136,5.387,141,2.217,147,1.875,182,2.334,197,5.589,228,2.299,229,2.275,231,2.172,232,2.229,233,2.383,238,4.488,241,3.279,267,6.117,313,6.575,324,5.04,335,4.053,353,4.797,354,4.456,355,5.202,389,6.126,396,2.589,543,5.589,623,9.789,1061,6.747,1323,7.486,1560,7.364,1561,8.057,1563,8.226,1564,7.9,1593,9.073,1594,9.073,1595,7.9,1596,7.364,1605,9.073,1606,9.663]],["keywords/182",[]],["title/183",[121,207.891,324,240.047,1061,536.036]],["content/183",[62,2.424,73,1.903,74,2.035,89,1.662,100,2.642,121,2.426,126,4.589,131,6.618,141,2.056,147,2.03,161,5.103,182,2.164,186,3.262,228,2.131,229,2.883,230,7.324,231,2.014,232,2.066,233,2.209,234,4.553,241,2.279,267,5.812,324,4.69,353,4.448,354,4.131,355,4.822,396,2.401,543,5.182,623,10.028,1061,8.551,1563,7.626,1564,10.012,1593,8.412,1594,8.412,1595,11.408,1596,9.333,1597,9.708,1605,8.412,1606,8.958,1609,11.946]],["keywords/183",[]],["title/184",[309,359.107,324,240.047,1061,536.036]],["content/184",[62,2.122,73,2.603,74,2.784,89,2.274,100,2.644,141,2.813,147,1.783,228,2.916,229,2.886,231,2.755,232,2.827,233,3.023,309,7.587,324,5.072,1061,8.559,1260,9.496,1605,11.509,1606,12.257]],["keywords/184",[]],["title/185",[1571,813.496]],["content/185",[46,7.527,160,4.213,480,12.106,1571,10.205,1572,12.67]],["keywords/185",[]],["title/186",[163,558.503]],["content/186",[62,2.357,73,2.09,74,2.235,86,2.517,89,1.826,100,2.123,103,7.062,113,5.209,126,5.042,134,8.087,141,2.258,142,7.062,147,1.898,182,2.378,228,2.341,229,2.317,231,2.212,232,2.27,233,2.427,241,2.504,275,3.647,309,4.604,312,7.625,313,6.696,322,4.75,324,4.08,353,4.886,354,4.538,355,5.298,396,2.637,442,7.164,443,5.919,1061,6.872,1282,6.696,1356,11.965,1573,11.624,1574,8.768,1576,8.768,1577,8.768,1578,6.965,1579,8.768,1605,9.241]],["keywords/186",[]],["title/187",[324,286.247,501,763.274]],["content/187",[]],["keywords/187",[]],["title/188",[160,227.437,324,240.047,501,640.083]],["content/188",[]],["keywords/188",[]],["title/189",[324,286.247,501,763.274]],["content/189",[62,2.204,73,2.09,74,2.235,82,4.353,89,1.826,100,2.123,113,5.209,136,5.486,141,2.258,147,1.898,182,2.378,197,5.692,228,2.341,229,2.317,231,2.212,232,2.27,233,2.427,238,4.571,241,3.319,267,6.192,313,6.696,324,5.07,335,4.127,353,4.886,354,4.538,355,5.298,389,6.239,396,2.637,501,8.206,543,5.692,623,9.639,1077,9.241,1323,7.625,1560,7.5,1561,8.206,1585,9.841,1610,10.664,1611,11.227,1612,11.227,1613,11.98]],["keywords/189",[]],["title/190",[121,207.891,324,240.047,501,640.083]],["content/190",[62,2.427,73,1.913,74,2.046,89,1.672,100,2.652,121,2.44,126,4.615,131,6.656,141,2.067,147,2.036,161,5.123,182,2.176,186,3.28,228,2.143,229,2.894,230,7.365,231,2.025,232,2.078,233,2.222,234,4.579,241,2.292,267,5.835,324,4.701,353,4.473,354,4.154,355,4.85,396,2.414,501,10.25,543,5.211,623,10.134,1077,8.459,1585,13.994,1586,11.544,1610,9.762,1611,10.277,1612,10.277,1613,14.965,1614,12.013]],["keywords/190",[]],["title/191",[309,359.107,324,240.047,501,640.083]],["content/191",[62,2.122,73,2.603,74,2.784,89,2.274,100,2.644,141,2.813,147,1.783,228,2.916,229,2.886,231,2.755,232,2.827,233,3.023,309,7.587,324,5.072,501,10.22,1260,9.496,1610,13.282,1611,13.983]],["keywords/191",[]],["title/192",[1571,813.496]],["content/192",[46,7.527,160,4.213,480,12.106,1571,10.205,1572,12.67]],["keywords/192",[]],["title/193",[163,558.503]],["content/193",[62,2.357,73,2.09,74,2.235,86,2.517,89,1.826,100,2.123,103,7.062,113,5.209,126,5.042,134,8.087,141,2.258,142,7.062,147,1.898,182,2.378,228,2.341,229,2.317,231,2.212,232,2.27,233,2.427,241,2.504,275,3.647,309,4.604,312,7.625,313,6.696,322,4.75,324,4.08,353,4.886,354,4.538,355,5.298,396,2.637,442,7.164,443,5.919,501,8.206,1282,6.696,1356,11.965,1573,11.624,1574,8.768,1576,8.768,1577,8.768,1578,6.965,1579,8.768,1610,10.664]],["keywords/193",[]],["title/194",[324,286.247,533,763.274]],["content/194",[]],["keywords/194",[]],["title/195",[160,227.437,324,240.047,533,640.083]],["content/195",[]],["keywords/195",[]],["title/196",[324,286.247,533,763.274]],["content/196",[62,2.204,73,2.09,74,2.235,82,4.353,89,1.826,100,2.123,113,5.209,136,5.486,141,2.258,147,1.898,182,2.378,197,5.692,228,2.341,229,2.317,231,2.212,232,2.27,233,2.427,238,4.571,241,3.319,267,6.192,313,6.696,324,5.07,335,4.127,353,4.886,354,4.538,355,5.298,389,6.239,396,2.637,533,8.206,543,5.692,623,9.639,1323,7.625,1560,7.5,1561,8.206,1563,8.378,1564,8.046,1589,7.5,1615,10.664,1616,11.227,1617,11.98]],["keywords/196",[]],["title/197",[121,207.891,324,240.047,533,640.083]],["content/197",[62,2.38,73,1.871,74,2.001,89,1.635,100,2.612,121,2.386,126,4.513,131,6.509,141,2.022,147,2.012,161,5.045,182,2.128,186,3.208,228,2.096,229,2.851,230,7.203,231,1.98,232,2.032,233,2.173,234,4.478,241,2.241,267,5.746,324,4.657,353,4.374,354,4.063,355,4.743,396,2.361,533,10.095,543,5.096,623,10.31,1563,11.776,1564,11.309,1589,10.543,1615,9.547,1616,10.051,1617,16.839]],["keywords/197",[]],["title/198",[309,359.107,324,240.047,533,640.083]],["content/198",[62,2.122,73,2.603,74,2.784,89,2.274,100,2.644,141,2.813,147,1.783,228,2.916,229,2.886,231,2.755,232,2.827,233,3.023,309,7.587,324,5.072,533,10.22,1260,9.496,1615,13.282,1616,13.983]],["keywords/198",[]],["title/199",[1571,813.496]],["content/199",[46,7.527,160,4.213,480,12.106,1571,10.205,1572,12.67]],["keywords/199",[]],["title/200",[163,558.503]],["content/200",[62,2.357,73,2.09,74,2.235,86,2.517,89,1.826,100,2.123,103,7.062,113,5.209,126,5.042,134,8.087,141,2.258,142,7.062,147,1.898,182,2.378,228,2.341,229,2.317,231,2.212,232,2.27,233,2.427,241,2.504,275,3.647,309,4.604,312,7.625,313,6.696,322,4.75,324,4.08,353,4.886,354,4.538,355,5.298,396,2.637,442,7.164,443,5.919,533,8.206,1282,6.696,1356,11.965,1573,11.624,1574,8.768,1576,8.768,1577,8.768,1578,6.965,1579,8.768,1615,10.664]],["keywords/200",[]],["title/201",[324,286.247,696,630.874]],["content/201",[]],["keywords/201",[]],["title/202",[160,227.437,324,240.047,696,529.052]],["content/202",[]],["keywords/202",[]],["title/203",[324,286.247,696,630.874]],["content/203",[62,2.188,73,2.052,74,2.194,82,4.274,89,1.793,100,2.084,113,5.115,136,5.387,141,2.217,147,1.875,182,2.334,197,5.589,228,2.299,229,2.275,231,2.172,232,2.229,233,2.383,238,4.488,241,3.279,267,6.117,313,6.575,324,5.04,335,4.053,353,4.797,354,4.456,355,5.202,389,6.126,396,2.589,543,5.589,623,9.789,696,6.659,1069,9.663,1323,7.486,1560,7.364,1561,8.057,1563,8.226,1564,7.9,1593,9.073,1594,9.073,1595,7.9,1596,7.364,1618,11.023]],["keywords/203",[]],["title/204",[121,207.891,324,240.047,696,529.052]],["content/204",[62,2.305,73,1.935,74,2.069,89,1.691,100,2.672,121,2.467,126,4.668,141,2.091,147,2.048,161,5.162,182,2.201,228,2.168,229,2.145,231,2.048,232,2.102,233,2.247,234,4.631,241,2.318,267,5.88,324,4.723,353,4.524,354,4.202,355,4.905,396,2.442,450,5.373,543,5.27,623,10.154,696,8.538,1069,9.112,1563,7.757,1564,10.128,1567,9.874,1583,7.597,1584,7.449,1593,8.556,1594,8.556,1595,10.128,1596,9.442,1597,9.874,1603,9.458,1618,10.394]],["keywords/204",[]],["title/205",[309,359.107,324,240.047,696,529.052]],["content/205",[62,2.122,73,2.603,74,2.784,89,2.274,100,2.644,141,2.813,147,1.783,228,2.916,229,2.886,231,2.755,232,2.827,233,3.023,309,7.587,324,5.072,696,8.447,1069,12.257,1260,9.496,1618,13.983]],["keywords/205",[]],["title/206",[1571,813.496]],["content/206",[46,7.527,160,4.213,480,12.106,1571,10.205,1572,12.67]],["keywords/206",[]],["title/207",[163,558.503]],["content/207",[62,2.357,73,2.09,74,2.235,86,2.517,89,1.826,100,2.123,103,7.062,113,5.209,126,5.042,141,2.258,142,7.062,147,1.898,182,2.378,228,2.341,229,2.317,231,2.212,232,2.27,233,2.427,241,2.504,275,3.647,309,4.604,312,7.625,313,6.696,322,4.75,324,4.08,353,4.886,354,4.538,355,5.298,396,2.637,442,7.164,443,5.919,623,8.465,696,6.782,1069,9.841,1282,6.696,1356,11.965,1573,11.624,1574,8.768,1576,8.768,1577,8.768,1578,6.965,1579,8.768]],["keywords/207",[]],["title/208",[341,448.287,342,515.87,401,486.706]],["content/208",[]],["keywords/208",[]],["title/209",[]],["content/209",[22,7.213,31,4.683,46,4.285,49,5.894,52,2.532,53,4.696,59,3.148,72,5.579,79,6.273,86,2.07,88,4.019,89,2.118,158,9.236,191,8.841,196,4.051,224,7.671,225,6.982,238,3.76,240,5.582,246,8.404,250,6.75,308,7.397,322,2.948,328,4.276,331,4.25,335,3.395,341,6.666,342,7.671,345,7.576,358,7.602,396,2.17,423,5.579,442,5.894,443,4.869,457,5.981,480,6.892,499,6.75,502,5.579,559,4.25,567,6.273,670,6.273,748,5.981,1019,7.046,1078,7.397,1115,6.75,1118,8.404,1131,6.892,1132,7.602,1137,9.855,1195,4.869,1255,7.602,1279,8.773,1619,8.404,1620,10.796,1621,10.796,1622,9.855,1623,8.773,1624,8.404,1625,10.796,1626,9.855,1627,10.796,1628,8.404,1629,9.236,1630,6.892,1631,11.415,1632,9.855,1633,7.602,1634,9.236]],["keywords/209",[]],["title/210",[86,289.895]],["content/210",[53,4.024,54,6.201,62,1.383,86,3.323,89,1.815,100,2.11,145,4.129,186,3.561,225,5.992,321,6.068,322,3.561,343,8.937,359,9.463,431,6.342,443,7.815,453,6.922,457,7.226,499,8.155,738,6.655,885,9.781,911,9.073,917,5.943,931,10.426,941,9.463,1022,15.546,1025,11.906,1026,8.955,1132,9.184,1185,13.701,1347,8.937,1628,10.153,1629,11.158,1635,13.043,1636,11.061,1637,11.906,1638,11.906,1639,13.043,1640,15.145,1641,11.906,1642,11.158,1643,13.043,1644,13.043]],["keywords/210",[]],["title/211",[401,580.377,1645,763.274]],["content/211",[]],["keywords/211",[]],["title/212",[186,279.495,322,279.495,343,701.431]],["content/212",[59,2.709,153,13.166,225,4.724,333,2.875,450,4.108,451,7.549,505,12.615,911,8.484,917,7.382,931,9.749,1022,17.96,1024,8.48,1026,8.373,1027,13.396,1028,12.579,1035,7.947,1118,7.231,1227,7.231,1347,11.101,1390,11.101,1630,8.721,1637,8.48,1646,7.947,1647,7.947,1648,7.947,1649,8.48,1650,13.66,1651,13.66,1652,15.282,1653,11.686,1654,12.15,1655,11.409,1656,12.47,1657,11.101,1658,8.48,1659,13.66,1660,12.47,1661,13.66,1662,7.549,1663,9.289,1664,9.289,1665,8.48,1666,7.947,1667,8.48,1668,7.947,1669,7.231,1670,9.289,1671,9.289,1672,9.289,1673,9.289,1674,13.66,1675,7.947,1676,9.289,1677,9.289,1678,9.289]],["keywords/212",[]],["title/213",[1679,1379.932]],["content/213",[50,10.155,196,7.179,1058,9.097,1645,11.964]],["keywords/213",[]],["title/214",[401,580.377,1636,779.296]],["content/214",[]],["keywords/214",[]],["title/215",[1630,965.026]],["content/215",[46,6.801,52,4.018,53,5.286,86,3.286,196,6.428,240,6.282,341,7.503,342,8.634,423,8.855,911,8.972,1131,10.938,1222,12.849,1630,13.146,1631,12.849,1636,10.938,1668,14.657]],["keywords/215",[]],["title/216",[160,227.437,341,448.287,342,515.87]],["content/216",[]],["keywords/216",[]],["title/217",[160,335.847]],["content/217",[]],["keywords/217",[]],["title/218",[224,615.155,328,249.203]],["content/218",[52,2.625,62,2.468,73,2.487,74,1.906,82,5.964,86,2.994,100,1.811,120,5.264,141,1.926,147,1.703,175,5.861,179,4.013,182,2.028,186,3.056,197,6.772,224,5.64,228,1.997,229,1.976,231,1.887,232,1.936,233,2.07,238,3.898,241,3.43,254,5.322,262,7.882,328,3.67,365,7.264,377,5.1,392,12.012,393,8.713,422,4.48,426,4.998,472,7.506,556,5.506,559,4.406,563,9.762,564,10.818,565,7.145,566,8.121,567,6.503,568,5.153,569,10.189,570,10.189,1030,5.506,1196,6.023,1636,7.145,1645,6.999,1680,9.096,1681,10.218,1682,9.967,1683,11.193,1684,9.096]],["keywords/218",[]],["title/219",[224,615.155,328,249.203]],["content/219",[52,2.95,62,2.498,73,2.004,74,2.143,86,2.413,100,2.035,113,4.994,141,2.165,147,1.845,182,2.279,186,3.435,197,5.457,228,2.244,229,2.221,231,2.121,232,2.176,233,2.327,241,3.898,254,5.981,328,3.901,365,7.869,373,6.189,392,8.406,393,13.166,489,10.223,1030,6.189,1038,8.21,1196,6.77,1636,8.031,1645,7.866,1680,10.223,1681,11.485,1682,10.798,1685,11.485,1686,11.485,1687,10.763,1688,13.044,1689,10.763,1690,10.763,1691,10.763]],["keywords/219",[]],["title/220",[224,515.87,225,354.009,328,208.982]],["content/220",[31,3.796,46,2.092,59,2.552,62,2.066,68,2.505,73,0.839,74,0.897,86,2.506,89,1.562,98,2.876,100,0.852,113,2.092,121,1.777,134,3.626,141,0.907,142,2.836,147,0.955,167,5.915,170,3.061,171,3.012,179,1.889,182,0.955,185,3.474,186,3.064,189,1.701,190,2.836,222,2.426,224,7.307,225,7.082,228,0.94,231,0.888,232,0.911,233,0.975,238,3.909,241,1.67,250,9.067,253,1.701,255,2.876,267,4.652,277,2.592,317,5.368,320,2.505,322,2.389,328,2.668,335,5.663,345,2.264,346,8.172,349,3.092,373,2.592,375,3.061,376,3.171,377,2.401,421,2.592,422,5.231,438,2.041,443,5.895,453,2.797,464,3.52,472,2.533,499,3.295,529,3.171,530,5.062,539,6.414,547,8.013,548,8.732,552,10.62,558,4.523,561,2.759,575,4.645,620,6.563,635,6.812,638,3.951,686,7.725,699,5.587,721,4.255,738,2.689,752,6.231,917,2.401,1022,6.563,1102,3.71,1125,3.23,1131,8.343,1132,6.162,1182,3.823,1183,4.81,1185,7.903,1213,3.951,1235,3.823,1271,5.472,1628,8.736,1630,7.165,1631,9.801,1632,4.81,1636,9.257,1638,4.81,1645,7.018,1688,7.165,1692,5.269,1693,9.601,1694,5.996,1695,10.245,1696,5.269,1697,5.269,1698,5.269,1699,5.269,1700,8.751,1701,4.508,1702,5.269,1703,5.269,1704,5.269,1705,7.111,1706,3.951,1707,7.989,1708,5.269,1709,3.823,1710,5.269,1711,4.282,1712,4.81,1713,4.81,1714,5.269,1715,5.269,1716,4.81,1717,4.81,1718,7.989,1719,7.989,1720,4.81,1721,4.81,1722,4.81,1723,7.989,1724,7.486,1725,3.823,1726,7.989,1727,4.81,1728,5.269,1729,5.269,1730,5.269,1731,7.989,1732,5.269,1733,5.269,1734,5.269,1735,4.81,1736,5.269,1737,5.269,1738,4.508,1739,5.269,1740,5.269,1741,5.269,1742,5.269,1743,5.269,1744,5.269,1745,3.951]],["keywords/220",[]],["title/221",[224,515.87,225,354.009,328,208.982]],["content/221",[62,2.441,73,1.969,74,2.105,86,2.371,100,2,141,2.127,142,6.653,147,1.823,167,7.161,182,2.24,186,3.375,225,4.275,228,2.205,231,2.084,232,2.138,233,2.286,238,4.305,241,2.358,267,4.4,328,2.524,335,3.888,346,7.729,575,6.561,620,12.535,686,9.879,699,6.154,721,6.011,752,7.182,917,5.633,1185,8.705,1630,7.892,1631,9.27,1636,10.671,1693,10.575,1716,11.285,1717,11.285,1718,11.285,1719,11.285,1720,11.285,1721,11.285,1722,11.285,1723,11.285,1724,10.575,1725,8.969,1726,11.285,1727,11.285,1746,12.362,1747,6.473,1748,12.362,1749,10.575]],["keywords/221",[]],["title/222",[121,207.891,224,515.87,328,208.982]],["content/222",[31,2.756,38,6.026,40,4.609,44,3.691,46,2.522,52,2.391,62,2.467,69,2.837,73,1.012,74,1.082,79,3.691,82,3.382,85,2.197,86,2.449,88,3.796,89,1.419,100,1.649,113,2.522,120,6.006,121,2.071,126,3.917,131,3.52,141,1.093,147,1.393,161,3.186,164,3.468,171,3.631,173,3.283,179,4.579,186,3.487,195,9.308,196,2.384,197,2.756,224,5.138,225,5.534,228,1.133,229,1.8,230,3.895,231,1.071,232,1.099,233,1.175,234,2.421,238,3.551,239,3.054,241,1.212,244,4.056,254,3.021,322,1.735,328,4.033,342,3.202,345,2.73,353,2.365,354,2.197,365,7.446,375,3.691,389,3.021,392,6.812,393,4.945,412,4.609,438,3.949,439,3.823,440,5.202,441,3.823,442,3.468,443,2.866,494,3.242,547,3.895,558,3.283,559,4.014,561,3.327,567,3.691,638,4.764,642,5.8,699,3.163,750,3.973,752,2.73,1030,5.016,1079,2.079,1099,3.163,1125,6.251,1146,4.353,1148,5.8,1185,4.474,1196,3.419,1235,4.609,1326,5.435,1619,4.945,1636,4.056,1642,5.435,1645,6.375,1646,10.925,1658,5.8,1665,5.8,1666,5.435,1680,5.163,1682,8.153,1684,5.163,1707,5.8,1711,5.163,1712,5.8,1750,5.435,1751,6.353,1752,6.353,1753,6.353,1754,5.435,1755,6.353,1756,6.353,1757,10.378,1758,8.722,1759,6.353,1760,4.609,1761,6.353,1762,6.353,1763,8.722,1764,9.308,1765,6.353,1766,6.353,1767,10.196,1768,6.353,1769,6.353,1770,6.353,1771,5.8,1772,6.353,1773,5.8,1774,6.353,1775,6.353,1776,5.8,1777,6.353,1778,5.435,1779,4.245,1780,10.196,1781,10.196,1782,6.353,1783,6.353,1784,6.353,1785,6.353,1786,6.353,1787,6.353,1788,6.353,1789,6.353,1790,6.353,1791,6.353]],["keywords/222",[]],["title/223",[224,515.87,309,359.107,328,208.982]],["content/223",[62,2.018,73,2.401,74,2.567,88,5.612,100,2.438,121,3.061,141,2.594,147,1.644,164,8.228,225,6.58,228,2.689,229,2.661,231,2.541,232,2.607,233,2.788,309,7.684,312,8.757,328,4.257,440,7.691,827,13.759,1623,12.249,1685,13.759,1686,13.759,1792,15.073,1793,15.073,1794,11.733,1795,11.733]],["keywords/223",[]],["title/224",[1645,763.274,1796,1114.35]],["content/224",[62,2.499,73,2.335,74,2.496,100,2.371,141,2.522,142,7.888,147,2.039,182,2.656,228,2.615,231,2.471,232,2.535,233,2.711,238,5.105,263,6.969,264,10.322,328,2.992,1645,9.165,1646,12.54,1666,12.54,1679,13.381,1757,15.192,1764,13.381,1796,13.381,1797,14.658,1798,14.658,1799,14.658,1800,14.658,1801,14.658,1802,14.658]],["keywords/224",[]],["title/225",[224,515.87,225,354.009,1524,767.682]],["content/225",[62,2.132,73,2.623,74,2.805,100,2.664,113,6.538,141,2.834,147,1.797,161,6.283,200,7.831,224,8.3,225,5.696,228,2.938,229,2.908,231,2.776,232,2.849,233,3.046,394,15.036,1524,12.352,1803,16.471,1804,16.471]],["keywords/225",[]],["title/226",[95,615.497]],["content/226",[85,5.609,87,12.212,89,2.772,95,8.11,163,7.359,165,11.768,378,11.768,389,9.47,402,11.422,403,11.768,404,13.181,405,8.174,406,9.686,407,12.164,408,12.164,409,13.181]],["keywords/226",[]],["title/227",[163,325.66,253,284.606,341,385.989,342,444.18]],["content/227",[89,2.526,95,7.392,163,7.874,191,7.95,253,5.862,341,9.333,342,10.74]],["keywords/227",[]],["title/228",[160,195.83,328,179.94,331,346.98,1115,551.132]],["content/228",[50,11.484,145,5.898,330,7.033,422,7.458,964,11.012]],["keywords/228",[]],["title/229",[341,661.967]],["content/229",[32,3.968,137,10.311,145,1.468,253,1.498,328,1.605,341,4.482,406,2.255,438,1.796,457,2.57,718,3.61,890,6.39,910,11.57,921,5.253,1027,11.713,1028,7.207,1554,2.961,1584,2.844,1653,3.968,1654,3.478,1805,4.234,1806,6.121,1807,4.638,1808,11.003,1809,4.234,1810,17.064,1811,4.234,1812,7.178,1813,4.234,1814,15.813,1815,10.117,1816,12.315,1817,4.234,1818,7.178,1819,7.178,1820,4.234,1821,4.234,1822,13.379,1823,9.343,1824,9.343,1825,7.178,1826,4.234,1827,11.003,1828,4.234,1829,4.234,1830,11.003,1831,9.343,1832,4.234,1833,4.234,1834,13.362,1835,9.343,1836,7.178,1837,9.343,1838,4.234,1839,4.234,1840,7.178,1841,15.601,1842,9.039,1843,7.178,1844,4.234,1845,4.234,1846,4.234,1847,4.638,1848,4.638,1849,9.343,1850,4.638,1851,7.863,1852,4.638,1853,4.638,1854,4.638,1855,4.638,1856,4.234,1857,16.43,1858,7.863,1859,4.638,1860,7.863,1861,4.638,1862,4.638,1863,7.863,1864,4.638,1865,4.638,1866,4.638,1867,7.178,1868,4.234,1869,4.234,1870,9.343,1871,4.638,1872,4.638,1873,4.638,1874,4.638,1875,4.638,1876,4.638,1877,4.638,1878,4.638,1879,4.638,1880,4.638,1881,4.638,1882,4.638,1883,4.638,1884,4.638,1885,4.234,1886,4.234,1887,7.178,1888,4.638,1889,9.343,1890,4.638,1891,4.638,1892,4.638,1893,4.638,1894,4.234,1895,4.638,1896,4.638,1897,4.638,1898,4.638,1899,4.638,1900,4.234,1901,4.638,1902,7.863,1903,4.638,1904,7.863,1905,4.638,1906,4.638,1907,4.234,1908,4.638,1909,4.638,1910,7.178,1911,12.315,1912,4.234,1913,4.234,1914,4.234,1915,4.638,1916,4.638,1917,4.638,1918,4.638,1919,4.638,1920,4.638,1921,4.638,1922,4.638,1923,4.234,1924,4.638,1925,4.638,1926,4.638,1927,4.638,1928,4.638,1929,4.638,1930,7.863,1931,4.638,1932,6.727,1933,6.727,1934,4.638,1935,9.343,1936,4.638,1937,4.638,1938,4.638,1939,4.638,1940,3.968,1941,4.638,1942,4.234,1943,4.638,1944,4.638,1945,4.638,1946,4.638,1947,4.638,1948,4.638,1949,4.638,1950,4.638,1951,4.638,1952,4.234,1953,4.638,1954,4.638,1955,4.638,1956,4.638,1957,4.638,1958,4.638,1959,4.638,1960,4.638,1961,4.638,1962,4.638,1963,4.638,1964,4.638,1965,4.638,1966,4.638,1967,7.178,1968,4.234,1969,4.234,1970,4.234,1971,4.234,1972,4.234,1973,4.234,1974,4.234,1975,4.234,1976,4.234,1977,4.234,1978,4.234,1979,4.234,1980,4.638,1981,4.234,1982,4.234,1983,4.234,1984,4.234,1985,4.234,1986,4.234,1987,4.234,1988,4.234,1989,4.234,1990,4.234,1991,4.234,1992,7.178,1993,4.234,1994,4.234,1995,4.234,1996,4.234,1997,4.234,1998,4.234]],["keywords/229",[]],["title/230",[328,179.94,331,346.98,401,419.069,1115,551.132]],["content/230",[50,11.484,145,5.898,330,7.033,422,7.458,964,11.012]],["keywords/230",[]],["title/231",[328,179.94,331,346.98,401,419.069,1115,551.132]],["content/231",[]],["keywords/231",[]],["title/232",[68,580.377,77,539.769]],["content/232",[19,6.798,40,10.935,49,8.228,50,8,53,4.65,66,10.935,68,7.166,85,5.212,86,3.649,89,2.097,91,10.935,94,5.933,121,3.061,160,3.349,256,8.351,307,8.111,328,3.885,331,5.933,370,6.868,383,10.328,422,6.033,426,6.731,431,7.329,568,6.939,1115,9.425,1256,9.837,1257,9.425,1282,7.691,1999,15.073,2000,11.303,2001,15.073,2002,13.759]],["keywords/232",[]],["title/233",[59,298.528,328,208.982,1337,831.88]],["content/233",[30,12.205,52,3.135,59,5.136,84,12.205,89,2.741,179,4.794,241,3.36,318,12.778,324,3.135,328,4.274,329,6.221,331,8.241,333,2.373,339,3.831,357,5.307,374,7.642,396,2.687,472,6.428,481,10.41,529,8.045,1090,9.223,1213,10.027,1413,10.027,1634,11.438,1724,11.438,2003,12.205,2004,13.37,2005,10.407,2006,13.37,2007,13.37,2008,13.208,2009,12.205,2010,13.37,2011,17.613,2012,13.37,2013,9.415]],["keywords/233",[]],["title/234",[2014,1511.621]],["content/234",[52,4.05,86,3.312,89,2.403,121,3.508,161,5.397,256,9.569,307,9.295,328,3.526,331,8.146,332,9.295,396,3.471,403,12.531,1196,9.295,2015,17.272,2016,15.767]],["keywords/234",[]],["title/235",[341,534.565,1102,859.584]],["content/235",[50,11.484,145,5.898,330,7.033,422,7.458,964,11.012]],["keywords/235",[]],["title/236",[160,335.847]],["content/236",[50,11.484,145,5.898,330,7.033,422,7.458,964,11.012]],["keywords/236",[]],["title/237",[225,422.142,2017,1220.694]],["content/237",[]],["keywords/237",[]],["title/238",[]],["content/238",[52,3.746,82,5.299,111,7.433,147,1.743,160,4.384,161,4.993,191,8.642,198,8.722,222,7.356,225,7.405,244,10.2,322,4.362,333,2.836,349,5.645,516,8.988,517,9.443,518,9.443,1019,10.427,1161,11.25,2018,15.977,2019,15.977,2020,14.585]],["keywords/238",[]],["title/239",[121,247.902,225,422.142]],["content/239",[52,2.178,62,2.477,73,1.48,74,1.582,77,4.108,88,3.459,89,1.293,100,1.503,141,1.599,147,1.49,161,2.903,167,3.513,170,5.397,182,2.475,185,6.431,225,4.724,228,1.657,229,1.64,231,1.566,232,1.607,233,1.718,253,4.411,317,3.815,320,4.417,339,2.02,396,1.867,405,4.681,422,5.468,431,4.517,457,5.147,472,6.568,530,4.19,532,4.625,556,6.72,557,5.93,696,4.801,721,4.517,752,10.037,917,4.233,971,6.966,1019,6.063,1161,6.541,1163,6.063,1164,5.808,1165,6.063,1166,9.749,1167,5.808,1168,5.93,1169,6.063,1170,5.808,1171,6.063,1172,6.063,1173,6.063,1174,5.93,1175,6.063,1176,6.063,1180,11.101,1185,9.619,1189,11.686,1190,12.47,1240,6.365,1330,5.808,1331,5.071,1356,5.695,1694,6.365,2021,9.289,2022,13.66,2023,9.289,2024,8.48,2025,9.289,2026,9.289,2027,9.289,2028,9.289,2029,9.289]],["keywords/239",[]],["title/240",[401,718.698]],["content/240",[50,11.484,145,5.898,330,7.033,422,7.458,964,11.012]],["keywords/240",[]],["title/241",[401,718.698]],["content/241",[]],["keywords/241",[]],["title/242",[401,718.698]],["content/242",[19,4.483,31,4.311,44,5.775,49,7.834,53,4.427,54,4.726,55,6.641,56,4.779,57,7.454,59,5.704,60,7.737,64,7.211,65,5.775,66,7.211,68,4.726,85,3.437,86,1.906,88,3.701,89,2.924,90,6.899,94,5.649,100,1.608,101,4.948,121,3.42,136,4.155,164,5.426,167,3.759,171,5.681,179,3.564,182,1.801,196,3.729,238,3.462,251,5.775,256,5.507,307,9.925,324,3.365,330,3.231,333,2.547,335,3.126,337,3.32,339,3.121,349,5.071,370,4.529,396,3.706,405,5.009,429,4.779,431,4.833,438,3.849,494,5.072,502,5.137,762,7.737,803,11.097,1026,5.137,1141,5.426,1235,7.211,1255,6.999,1256,6.487,1257,6.215,1260,5.775,1282,5.072,1323,5.775,1747,5.205,2030,8.503,2031,7.737,2032,9.939,2033,8.503,2034,9.939,2035,8.077,2036,9.074,2037,7.454,2038,8.077,2039,9.074,2040,9.939,2041,9.074,2042,9.939,2043,9.939,2044,6.811,2045,6.215]],["keywords/242",[]],["title/243",[2046,1511.621]],["content/243",[307,9.147,425,15.368,461,7.303,462,7.303,620,15.368,803,10.227,969,8.565,2047,16.996,2048,16.996,2049,16.996,2050,15.516,2051,20.493,2052,16.996,2053,16.996,2054,16.996]],["keywords/243",[]],["title/244",[461,524.53,462,524.53]],["content/244",[40,4.78,49,3.597,51,6.099,52,3.499,53,3.238,54,6.221,59,3.061,65,3.828,67,3.597,68,3.133,82,4.95,85,2.279,89,0.917,90,6.29,94,6.415,99,4.64,101,5.226,103,3.546,109,11.616,111,6.943,119,4.64,121,2.657,123,3.242,147,1.145,167,6.163,174,3.597,182,1.194,191,2.885,200,3.133,201,4.402,231,1.77,238,2.295,241,2.496,314,8.147,324,4.071,330,3.412,333,1.169,339,1.433,349,2.328,350,7.193,370,8.299,382,8.53,389,3.133,396,2.999,416,3.965,426,2.942,429,8.348,431,3.204,439,6.316,457,7.249,461,9.175,462,8.919,467,6.701,482,5.637,494,3.362,502,3.405,551,4.3,568,4.833,911,7.814,917,5.962,1026,3.405,1058,3.133,1141,7.143,1193,5.816,1195,5.901,1256,6.851,1257,6.564,1779,4.402,1795,5.129,2037,4.941,2041,6.015,2055,6.015,2056,6.589,2057,6.015,2058,6.589,2059,10.497,2060,6.589,2061,6.589,2062,9.583,2063,6.589,2064,6.589,2065,13.084,2066,10.497,2067,6.589,2068,6.589,2069,6.589,2070,6.589,2071,6.589,2072,6.589,2073,4.04,2074,6.015,2075,5.637,2076,10.185,2077,9.812,2078,6.589,2079,6.015,2080,6.589,2081,7.014,2082,10.497,2083,5.637,2084,6.589,2085,6.589,2086,6.589,2087,6.015,2088,6.015]],["keywords/244",[]],["title/245",[968,622.866,969,615.155]],["content/245",[51,7.963,52,3.214,53,2.878,54,4.436,59,2.721,66,6.769,82,5.388,85,3.227,89,1.298,90,4.486,94,5.395,98,5.093,103,5.021,111,4.341,115,12.74,121,2.783,147,1.018,167,6.142,179,3.345,200,4.436,238,4.773,240,3.421,241,3.099,314,7.481,324,4.471,330,4.455,349,3.297,370,7.401,382,11.137,396,3.264,415,6.089,426,4.166,429,4.486,440,4.761,467,11.428,494,4.761,568,6.309,911,7.176,917,6.244,968,10.513,969,9.021,1026,4.822,1141,7.481,1178,6.234,1193,7.593,1256,6.089,1257,5.834,1795,7.263,2037,6.997,2055,8.517,2057,8.517,2062,8.517,2074,8.517,2076,10.668,2077,12.181,2081,11.96,2087,8.517,2089,9.33,2090,9.33,2091,13.704,2092,8.517,2093,6.234,2094,9.33,2095,6.997,2096,9.33,2097,8.517,2098,9.33,2099,9.33,2100,9.33,2101,9.33,2102,9.33]],["keywords/245",[]],["title/246",[89,169.857,396,245.324]],["content/246",[38,4.912,52,2.948,54,3.951,59,2.424,64,6.03,73,1.324,82,2.757,86,1.594,89,3.054,100,1.344,120,3.909,121,2.553,160,2.793,164,8.278,173,4.295,174,4.537,178,5.695,189,2.684,199,11.584,238,2.895,240,7.004,241,3.464,251,8.81,256,4.605,314,8.278,322,2.269,324,4.998,328,1.697,330,5.902,333,1.475,370,3.787,380,4.605,384,7.431,389,3.951,396,4.547,405,9.151,428,8.963,439,5.001,461,5.402,462,5.402,467,5.306,494,4.241,516,4.676,568,3.826,746,4.605,803,5.001,968,4.241,969,4.188,1099,4.138,1141,4.537,1193,8.401,1253,7.11,1260,8.81,1288,7.587,1330,5.197,1749,10.755,1760,6.03,2003,7.587,2037,9.428,2044,11.584,2076,9.786,2081,5.553,2088,7.587,2103,6.233,2104,8.311,2105,7.11,2106,8.311,2107,11.477,2108,7.587,2109,8.311]],["keywords/246",[]],["title/247",[328,208.982,339,222.637,405,515.87]],["content/247",[2,8.765,85,5.691,89,2.29,113,4.796,120,5.682,121,3.801,145,3.825,164,6.595,189,3.901,241,3.14,251,9.562,275,3.357,328,4.774,330,3.927,333,2.144,335,3.8,339,4.573,357,4.796,365,5.621,370,8.528,375,7.019,378,8.984,392,8.072,396,2.428,405,10.127,426,5.395,442,6.595,464,8.072,467,7.713,911,9.8,917,7.498,1030,5.944,1141,6.595,1196,6.502,1323,7.019,1680,9.818,2081,8.072,2095,9.06,2110,9.404,2111,12.081]],["keywords/247",[]],["title/248",[329,476.28,333,181.68,339,222.637]],["content/248",[19,5.185,54,5.465,62,1.219,89,1.599,97,9.834,100,2.573,126,4.416,136,4.805,164,6.275,173,8.219,186,3.138,238,4.003,241,4.077,251,10.595,253,5.888,314,6.275,329,10.192,330,3.736,333,4.149,335,5.002,336,6.186,339,3.459,375,6.679,405,11.039,465,6.275,467,7.338,472,5.526,575,6.101,619,5.292,693,5.865,911,6.019,917,5.238,965,6.917,1207,7.187,1675,9.834,2030,9.834,2076,8.948,2081,7.68,2095,8.62,2112,8.948,2113,10.493,2114,9.341]],["keywords/248",[]],["title/249",[69,545.108,182,221.16]],["content/249",[50,11.484,145,5.898,330,7.033,422,7.458,964,11.012]],["keywords/249",[]],["title/250",[2115,1511.621]],["content/250",[]],["keywords/250",[]],["title/251",[89,142.443,450,452.652,2116,767.682]],["content/251",[21,8.347,46,3.873,53,4.368,54,4.639,56,4.691,57,7.317,59,6.241,60,7.595,62,1.768,64,7.079,86,2.716,87,5.982,89,2.702,101,4.858,103,5.251,113,3.873,128,6.229,171,8.093,178,6.686,179,3.499,200,4.639,224,4.917,225,3.374,240,3.578,251,5.669,256,5.406,307,5.251,317,4.008,321,6.588,328,3.964,331,5.574,333,2.513,337,6.107,338,5.577,339,3.977,341,4.273,342,4.917,343,6.686,357,5.621,440,4.979,447,7.595,452,7.929,453,5.179,454,8.907,455,8.907,463,5.043,504,8.347,508,5.767,619,4.492,693,7.225,748,5.406,803,5.871,960,7.929,1132,9.971,1146,6.686,1195,4.401,1278,6.368,1553,12.114,1555,8.907,1660,8.907,2013,6.871,2112,7.595,2116,7.317,2117,9.757,2118,8.907,2119,11.42,2120,8.347,2121,5.982,2122,9.757,2123,8.907,2124,9.757,2125,5.871,2126,9.757,2127,7.966,2128,5.489]],["keywords/251",[]],["title/252",[89,142.443,196,384.089,2116,767.682]],["content/252",[3,6.434,52,2.723,53,2.312,54,3.562,55,7.759,56,3.602,59,5.917,62,1.232,73,1.193,86,2.227,87,4.594,88,4.324,89,2.938,90,5.583,95,3.051,100,1.212,102,3.977,120,3.524,121,2.888,122,5.186,135,9.437,136,3.132,163,2.768,165,5.436,171,4.282,173,3.872,180,9.437,186,2.046,191,3.281,193,5.134,199,5.134,200,5.521,240,2.747,314,4.09,317,4.77,321,5.403,324,1.757,328,3.538,329,7.452,330,2.436,331,5.598,333,3.394,335,3.653,337,3.878,339,2.526,342,3.776,356,5.832,357,4.61,384,4.429,396,2.858,403,5.436,407,5.619,408,8.709,428,4.429,429,5.583,438,2.902,442,4.09,443,3.38,460,6.637,461,3.22,462,3.22,465,6.34,481,4.429,500,5.619,619,5.346,693,5.926,699,3.73,750,4.685,803,6.988,968,3.823,969,3.776,1065,5.276,1130,5.006,1136,3.686,1146,5.134,1178,7.759,1207,4.685,1211,5.276,1240,5.134,1245,6.84,1247,9.935,1385,6.84,1413,5.619,1474,8.709,1619,5.832,1747,3.923,1749,6.41,2005,5.832,2008,5.619,2035,9.437,2044,5.134,2050,6.84,2081,5.006,2116,5.619,2121,7.12,2129,7.493,2130,7.493,2131,7.493,2132,4.89,2133,6.84,2134,7.493,2135,7.493,2136,6.84,2137,6.41,2138,7.493,2139,6.84,2140,6.84,2141,6.84,2142,5.832,2143,6.41,2144,5.832]],["keywords/252",[]],["title/253",[63,767.682,196,384.089,2116,767.682]],["content/253",[3,4.659,58,10.293,59,2.452,62,1.62,72,6.556,86,2.433,89,1.17,133,7.677,179,3.015,186,2.296,189,2.715,193,10.465,241,1.604,254,3.998,318,6.101,328,4.493,331,4.993,339,1.829,341,7.993,369,4.526,377,5.78,384,7.497,427,3.155,440,4.291,450,3.719,465,4.591,470,8.337,471,10.308,481,9.027,493,4.97,495,7.194,496,9.874,497,7.194,499,5.258,504,7.194,508,7.497,510,7.028,600,7.194,619,5.84,693,8.678,892,6.834,910,8.932,941,6.101,960,6.834,1090,9.557,1115,5.258,1195,5.721,1413,13.687,1554,5.369,1628,6.546,1634,7.194,1806,6.546,1815,6.306,1834,7.194,2005,6.546,2008,6.306,2013,5.922,2116,6.306,2118,7.677,2120,10.852,2121,7.777,2132,5.488,2137,7.194,2141,7.677,2145,8.409,2146,6.834,2147,8.409,2148,8.409,2149,8.409,2150,8.409,2151,8.409,2152,6.834,2153,6.306,2154,8.409,2155,8.409,2156,7.194,2157,8.409,2158,8.409,2159,11.579,2160,8.409,2161,8.409,2162,7.194,2163,8.409,2164,8.409,2165,8.409,2166,8.409,2167,8.409,2168,8.409,2169,7.677,2170,8.409,2171,7.677]],["keywords/253",[]],["title/254",[160,271.209,502,630.874]],["content/254",[]],["keywords/254",[]],["title/255",[162,567.945,502,630.874]],["content/255",[31,3.662,52,1.98,58,7.912,62,2.571,72,4.363,73,1.345,74,1.438,77,3.733,86,3.685,100,1.366,114,4.609,120,5.983,141,1.453,147,1.388,162,5.919,170,4.905,182,2.305,185,5.05,228,1.506,229,1.491,231,1.423,232,1.46,233,1.562,239,4.059,242,5.797,253,2.726,263,6.049,275,3.536,312,4.905,320,4.014,321,3.928,322,2.305,328,3.732,346,5.279,377,3.847,396,1.697,405,4.255,421,4.154,422,6.821,431,4.106,441,5.08,472,6.117,502,4.363,530,3.808,532,4.203,533,5.279,534,4.255,544,7.955,556,4.154,557,5.39,558,6.575,559,3.324,561,4.421,575,4.481,696,4.363,721,6.187,885,11.481,1061,4.421,1079,2.763,1090,6.662,1102,10.78,1146,5.785,1330,7.955,1337,12.441,1580,5.51,2172,7.707,2173,7.707,2174,7.707,2175,8.443,2176,12.722,2177,9.541,2178,12.722,2179,17.041,2180,8.443]],["keywords/255",[]],["title/256",[2181,1511.621]],["content/256",[43,11.145,44,7.968,48,11.733,49,9.777,50,7.279,51,7.968,52,4.2,53,4.231,54,8.515,55,9.163,56,6.594,57,10.285,58,9.256,59,5.816,60,10.675,61,12.52,63,10.285,65,7.968,67,7.487,68,6.52,69,7.997,72,7.088,73,2.184,74,2.336,75,12.52,76,11.733,79,7.968,91,9.95,93,11.733,100,2.218,449,7.088,1232,7.598,1255,9.657,1470,9.657,2033,11.733,2182,13.714,2183,12.52,2184,11.733,2185,9.657,2186,11.145,2187,11.733]],["keywords/256",[]],["title/257",[160,195.83,328,179.94,331,346.98,1115,551.132]],["content/257",[]],["keywords/257",[]],["title/258",[]],["content/258",[49,7.629,52,2.247,53,2.956,58,9.962,67,5.231,86,1.838,121,3.35,128,6.117,145,3.033,147,1.045,160,3.665,161,6.492,162,4.458,164,5.231,191,4.196,198,5.231,222,4.411,253,3.094,256,5.309,284,6.253,309,4.902,322,3.815,328,4.79,330,5.893,331,7.137,332,5.157,333,2.48,334,3.094,339,3.039,349,3.386,362,6.117,365,4.458,374,7.987,421,4.714,516,5.39,517,5.663,518,5.663,520,4.829,524,6.253,746,9.138,1090,10.093,1130,6.402,1255,6.747,1256,6.253,1257,5.991,2188,9.582,2189,8.747,2190,14.111,2191,8.747,2192,8.197,2193,8.197,2194,8.747,2195,8.197,2196,8.747,2197,8.747,2198,12.839,2199,8.197,2200,8.747,2201,8.197,2202,7.787,2203,11.356,2204,8.197]],["keywords/258",[]],["title/259",[328,308.595]],["content/259",[]],["keywords/259",[]],["title/260",[328,308.595]],["content/260",[52,1.862,62,2.379,73,1.265,74,1.352,77,3.511,79,7.055,86,1.523,100,1.284,120,5.71,141,1.366,147,1.325,170,4.613,182,1.438,185,4.82,186,4.509,228,1.416,229,1.402,231,1.338,232,1.373,233,1.468,241,2.317,253,2.564,263,5.773,275,3.374,328,3.831,331,4.78,377,3.618,396,1.596,405,4.001,422,6.61,431,3.861,441,4.777,472,5.838,530,3.581,532,3.953,539,6.94,543,5.267,544,10.325,556,3.906,557,5.069,558,6.275,559,3.125,561,4.157,575,4.214,686,7.177,694,9.106,701,6.94,738,4.051,767,5.069,911,4.157,990,6.452,1077,5.591,1146,5.44,2172,7.248,2173,7.248,2174,7.248,2205,7.939,2206,9.452,2207,7.939,2208,7.248,2209,7.248,2210,7.248,2211,7.248,2212,7.248,2213,7.248,2214,7.939,2215,7.939,2216,7.939,2217,7.939,2218,7.939,2219,7.939,2220,7.939,2221,7.939,2222,7.939,2223,7.939,2224,4.466,2225,7.939,2226,7.939,2227,7.939,2228,7.939,2229,7.939,2230,6.452,2231,7.939,2232,7.939,2233,7.939,2234,7.939,2235,7.939,2236,6.792,2237,7.939,2238,7.939,2239,7.939,2240,5.76,2241,7.939,2242,7.939,2243,7.248,2244,7.939,2245,7.939,2246,7.939,2247,7.939,2248,7.939,2249,7.939,2250,7.939,2251,7.939,2252,7.939,2253,7.939,2254,7.939,2255,7.939,2256,7.939,2257,7.939,2258,7.939,2259,7.939,2260,7.939,2261,7.939,2262,7.939,2263,7.939,2264,12.142]],["keywords/260",[]],["title/261",[328,308.595]],["content/261",[62,2.112,73,2.584,74,2.763,77,7.172,89,2.257,100,2.624,136,6.781,141,2.791,147,1.769,182,2.939,228,2.894,229,2.864,231,2.734,232,2.806,233,3,254,7.712,328,4.066,396,3.26,1747,10.43,2265,14.807,2266,14.807]],["keywords/261",[]],["title/262",[121,247.902,328,249.203]],["content/262",[38,4.746,62,2.569,73,1.279,74,1.367,82,2.663,85,2.777,86,2.349,100,2.687,111,3.736,121,2.487,126,5.704,141,1.382,147,1.62,161,3.827,182,1.455,186,5.146,189,4.794,228,1.432,229,1.418,231,1.353,232,1.389,233,1.485,234,3.06,239,3.86,241,3.169,242,3.659,254,3.817,263,5.823,275,3.403,328,2.5,330,2.61,331,4.821,333,1.425,365,8.769,377,3.659,385,3.45,396,1.614,438,3.11,470,4.383,539,4.589,543,3.483,612,9.952,686,7.239,701,4.589,1030,8.171,1038,5.24,1079,5.435,1099,7.391,1135,6.021,1196,4.321,1234,6.25,1682,10.604,2045,5.02,2267,8.029,2268,12.247,2269,9.952,2270,9.952,2271,6.525,2272,6.525,2273,6.525,2274,6.525,2275,8.029,2276,8.029,2277,8.029,2278,8.029,2279,8.029,2280,8.029,2281,6.25,2282,8.029,2283,8.029,2284,8.029,2285,8.029,2286,8.029,2287,11.18,2288,8.029,2289,8.029,2290,8.029,2291,8.029,2292,8.029]],["keywords/262",[]],["title/263",[328,249.203,330,396.792]],["content/263",[58,5.161,62,2.544,73,1.591,74,1.701,85,3.453,86,2.761,100,2.732,121,2.924,126,5.532,136,4.175,141,1.718,147,1.571,182,1.809,186,3.931,189,5.968,228,1.781,229,1.763,231,1.683,232,1.727,233,1.847,234,3.806,241,1.905,246,7.773,254,4.748,275,2.775,328,4.397,330,6.369,331,3.931,332,5.374,365,8.599,369,5.374,380,5.533,396,2.007,524,9.397,688,13.145,917,6.561,1030,7.084,1079,3.268,1196,5.374,1232,5.533,1682,10.78,2035,8.115,2045,6.244,2206,13.145,2265,9.116,2266,9.116,2269,11.701,2270,11.701,2271,8.115,2272,8.115,2273,8.115,2274,8.115]],["keywords/263",[]],["title/264",[328,208.982,333,181.68,339,222.637]],["content/264",[52,1.821,62,2.259,68,3.692,73,1.237,74,1.323,77,3.434,86,3.13,89,1.661,100,1.256,108,4.512,120,6.839,134,6.764,141,1.336,145,2.458,147,1.302,167,2.937,170,4.512,182,1.407,185,5.773,186,3.259,189,2.508,228,1.385,229,1.371,231,1.309,232,1.343,233,1.436,241,1.482,250,11.631,253,4.696,275,2.158,299,4.179,317,4.903,320,3.692,322,2.12,328,1.585,329,3.613,333,1.378,334,2.508,339,4.213,340,8.407,341,7.715,373,3.82,377,3.539,396,1.561,405,3.913,422,7.052,431,3.776,465,4.239,472,5.74,510,4.303,529,8.751,530,5.385,532,3.866,534,3.913,539,8.312,547,7.319,548,7.976,551,5.068,552,9.701,556,5.873,557,4.958,558,6.17,559,4.7,560,5.468,561,4.066,575,4.122,619,5.496,628,6.716,629,6.716,693,3.963,696,4.013,699,5.943,721,3.776,738,6.092,910,10.241,1330,4.856,1806,6.045,2079,7.089,2192,6.644,2293,7.766,2294,7.766,2295,7.766,2296,7.766,2297,7.766,2298,7.766,2299,7.766,2300,4.856,2301,10.898,2302,7.089,2303,7.089,2304,6.644,2305,7.766,2306,7.766,2307,7.766,2308,7.766,2309,7.766,2310,7.766,2311,7.766,2312,7.766,2313,7.766,2314,7.766]],["keywords/264",[]],["title/265",[328,208.982,333,181.68,339,222.637]],["content/265",[62,2.412,73,1.98,74,2.118,77,5.498,86,2.385,89,1.73,100,2.011,141,2.14,147,1.831,182,2.253,228,2.218,229,2.195,231,2.096,232,2.151,233,2.3,241,3.201,275,3.455,328,2.538,333,2.207,339,2.704,340,8.756,341,5.445,510,6.889,539,7.106,619,5.724,628,6.995,629,6.995,738,8.562,910,11.816,1747,6.511,2193,10.637,2300,7.775,2301,15.319,2302,11.351,2303,11.351,2304,10.637,2315,12.434,2316,12.434,2317,12.434,2318,12.434,2319,12.434,2320,12.434,2321,12.434,2322,12.434,2323,12.434,2324,12.434,2325,12.434,2326,12.434,2327,12.434,2328,12.434,2329,12.434,2330,12.434]],["keywords/265",[]],["title/266",[328,249.203,365,567.945]],["content/266",[62,2.569,69,2.555,71,3.037,73,0.911,74,0.975,77,2.53,79,5.442,82,5.029,100,1.924,103,3.079,126,3.598,141,0.985,145,1.811,147,1.297,158,4.895,161,2.927,182,1.037,186,4.692,189,1.848,228,1.021,229,1.01,231,0.965,232,0.99,233,1.058,234,2.181,238,1.993,241,1.787,253,1.848,263,6.534,275,2.603,328,2.806,331,3.687,365,7.996,385,5.906,426,2.555,470,7.503,529,3.443,539,5.353,543,4.063,559,2.252,612,4.65,638,4.291,686,8.123,701,5.353,721,5.782,738,2.92,767,3.653,931,3.443,990,4.65,1026,6.146,1030,6.761,1079,1.872,1129,3.443,1130,10.129,1131,3.653,1138,6.596,1174,3.653,1196,3.079,1240,3.921,1330,3.578,1347,3.921,1682,9.678,2194,5.223,2224,3.219,2230,4.65,2236,4.895,2269,11.169,2270,11.169,2271,7.612,2272,7.612,2273,7.612,2274,7.612,2281,7.291,2331,5.722,2332,15.16,2333,8.013,2334,5.722,2335,11.891,2336,9.367,2337,9.663,2338,5.722,2339,5.722,2340,5.722,2341,5.722,2342,5.722,2343,5.722,2344,5.722,2345,5.722,2346,5.722,2347,9.367,2348,9.367,2349,9.367,2350,9.367,2351,9.367,2352,5.722,2353,5.722,2354,5.722,2355,5.722,2356,5.722,2357,5.722,2358,5.722,2359,5.722,2360,5.722,2361,5.722,2362,5.722,2363,5.722,2364,5.722,2365,5.722,2366,5.722,2367,5.722,2368,5.722,2369,5.722,2370,5.722,2371,5.722,2372,5.722,2373,5.722,2374,5.722,2375,5.722,2376,5.223,2377,5.722,2378,5.722,2379,5.722,2380,5.722,2381,5.722,2382,5.722,2383,5.722]],["keywords/266",[]],["title/267",[328,249.203,1130,815.593]],["content/267",[59,3.389,62,2.571,73,1.851,74,1.979,77,5.138,100,3.198,120,5.465,126,6.156,131,6.438,135,9.443,142,8.623,147,2.001,161,5.007,182,2.105,186,5.007,228,2.073,230,7.124,231,1.959,232,2.01,253,3.752,328,3.271,365,5.406,384,6.868,437,7.962,529,6.992,1030,5.717,1079,3.803,1130,7.764,1196,6.253,1325,14.627,1682,10.229,2110,9.045,2195,9.941,2384,8.714,2385,11.62,2386,14.627,2387,14.627,2388,11.62,2389,16.023,2390,11.62,2391,11.62,2392,11.62]],["keywords/267",[]],["title/268",[284,668.076,328,208.982,332,550.903]],["content/268",[52,2.916,59,4.894,62,2.321,73,1.98,74,2.118,86,3.218,100,2.714,103,6.691,122,7.493,126,7.297,141,2.14,147,1.831,160,2.762,161,5.244,179,4.458,228,2.218,229,2.195,231,2.096,232,2.151,233,2.3,234,4.739,242,5.665,284,8.115,322,3.395,328,4.335,331,4.895,360,11.816,373,8.255,379,9.679,1120,10.637,1142,12.584,1210,8.562,1232,6.889,2184,10.637,2209,11.351,2210,11.351,2211,11.351,2212,11.351,2213,11.351,2393,12.434,2394,12.434,2395,12.434,2396,12.434]],["keywords/268",[]],["title/269",[86,196.318,328,208.982,334,330.54]],["content/269",[53,3.508,62,2.428,73,1.811,74,1.937,86,3.946,89,1.582,100,1.84,101,5.661,104,9.729,121,2.309,141,1.957,147,1.722,161,4.933,170,6.607,173,5.877,182,2.06,185,4.514,189,3.672,228,2.029,229,2.008,231,1.917,232,1.967,233,2.103,241,2.17,242,5.182,263,5.407,267,4.048,312,6.607,314,6.208,322,3.105,328,3.999,331,6.214,332,6.12,334,3.672,373,7.766,406,5.53,426,5.078,532,7.859,757,8.008,759,8.008,897,9.241,1077,8.008,1142,8.528,1193,6.3,1285,6.5,1308,8.852,1330,7.111,2197,10.381,2240,8.251,2397,13.505,2398,11.372,2399,11.372,2400,11.372,2401,11.372,2402,11.372,2403,11.372,2404,11.372,2405,11.372]],["keywords/269",[]],["title/270",[309,428.221,328,249.203]],["content/270",[86,3.395,89,2.463,121,3.595,241,3.377,309,7.853,328,4.287,529,10.652,536,11.553,1232,9.808,2190,15.144]],["keywords/270",[]],["title/271",[331,595.066]],["content/271",[]],["keywords/271",[]],["title/272",[328,249.203,331,480.54]],["content/272",[62,2.122,73,2.603,74,2.784,77,7.227,100,2.644,136,6.833,141,2.813,147,1.783,182,2.961,228,2.916,229,2.886,231,2.755,232,2.827,233,3.023,253,6.462,254,7.771,328,3.337,331,7.878,2198,12.723,2406,16.344]],["keywords/272",[]],["title/273",[328,249.203,331,480.54]],["content/273",[62,2.093,73,3.143,74,2.721,77,7.065,100,3.192,136,6.679,141,2.749,147,1.743,182,2.895,228,2.85,229,2.821,231,2.693,232,2.763,233,2.955,241,3.048,254,7.596,328,3.262,331,7.768,1747,10.333,2199,13.668,2407,15.977]],["keywords/273",[]],["title/274",[328,208.982,331,402.981,374,585.076]],["content/274",[62,2.142,74,2.827,77,7.34,136,6.94,141,2.856,147,1.811,182,3.007,228,2.961,229,2.931,231,2.798,232,2.871,233,3.07,254,7.892,328,3.389,331,7.952,374,9.487,1747,8.692,2198,12.921,2408,15.153]],["keywords/274",[]],["title/275",[328,179.94,330,286.508,331,346.98,374,503.769]],["content/275",[62,2.613,73,1.499,74,1.603,82,3.122,100,2.231,126,3.616,141,1.62,147,1.781,182,1.705,186,4.457,197,5.983,228,1.679,229,1.662,231,1.587,232,1.628,233,1.741,234,3.587,241,1.796,263,6.558,267,3.35,290,6.143,309,3.302,328,1.922,330,3.06,331,5.43,365,8.364,374,9.331,385,4.045,438,3.645,470,5.138,543,4.083,686,8.152,701,5.38,746,7.642,857,8.593,1030,6.786,1150,8.052,1682,10.422,2000,7.059,2198,7.327,2269,14.608,2270,14.608,2271,11.209,2272,11.209,2273,11.209,2274,11.209,2281,7.327,2287,12.591,2376,8.593,2408,8.593,2409,9.413,2410,9.413,2411,9.413,2412,9.413]],["keywords/275",[]],["title/276",[58,781.23]],["content/276",[]],["keywords/276",[]],["title/277",[58,781.23]],["content/277",[52,2.409,58,10.24,62,2.343,73,1.637,74,1.75,77,4.543,86,1.971,89,1.43,100,1.662,120,6.912,141,1.768,147,1.603,170,5.97,182,1.862,185,5.834,189,4.746,228,1.833,229,1.814,231,1.732,232,1.777,233,1.9,241,1.96,253,3.318,263,6.988,275,2.855,290,6.706,377,4.682,396,2.065,405,5.178,422,7.496,431,4.997,472,4.94,532,5.115,543,4.457,544,10.729,556,5.055,557,6.56,558,7.596,559,4.045,561,5.38,575,5.453,686,8.687,701,5.873,767,6.56,911,5.38,2224,5.78,2413,13.943,2414,10.275,2415,9.38,2416,9.38,2417,9.38,2418,10.275,2419,10.275,2420,9.38,2421,10.275,2422,10.275,2423,10.275,2424,10.275,2425,10.275,2426,9.38,2427,8.35,2428,10.275,2429,10.275,2430,10.275,2431,10.275,2432,10.275,2433,10.275,2434,10.275,2435,10.275,2436,10.275,2437,10.275,2438,10.275,2439,9.38,2440,9.38]],["keywords/277",[]],["title/278",[58,781.23]],["content/278",[58,10.246,62,2.103,73,2.564,74,2.742,77,7.118,100,2.604,136,6.73,141,2.77,147,1.756,182,2.916,228,2.872,229,2.842,231,2.714,232,2.784,233,2.977,241,3.071,254,7.654,275,4.474,396,3.235,1747,10.381,2202,13.081,2441,14.695]],["keywords/278",[]],["title/279",[58,630.874,121,247.902]],["content/279",[38,8.106,58,10.306,62,2.386,73,2.184,74,2.336,100,3.226,121,2.785,126,6.88,127,8.252,136,5.733,141,2.36,147,1.954,161,5.596,170,7.968,182,2.485,189,5.783,228,2.447,229,2.421,231,2.312,232,2.372,233,2.537,234,5.227,254,6.52,275,3.811,396,2.756,556,6.747,1747,7.181,1763,11.733,2201,11.733,2413,14.553,2427,14.553,2442,12.52,2443,13.714]],["keywords/279",[]],["title/280",[58,630.874,330,396.792]],["content/280",[38,7.853,58,10.148,62,2.365,73,2.116,74,2.263,100,3.176,126,6.739,127,7.995,136,5.555,141,2.286,147,1.914,170,7.72,182,2.407,189,6.34,228,2.37,229,2.346,231,2.24,232,2.298,233,2.457,234,5.064,241,3.346,254,6.317,275,3.692,330,5.702,396,2.67,556,6.537,746,9.718,1747,6.957,2202,10.797,2413,14.254,2427,10.797,2441,12.129,2442,12.129,2444,13.287,2445,13.287,2446,13.287]],["keywords/280",[]],["title/281",[1090,791.543]],["content/281",[]],["keywords/281",[]],["title/282",[1090,791.543]],["content/282",[52,2.638,62,2.356,73,1.792,74,1.916,77,4.975,86,3.005,89,1.566,100,1.82,120,7.369,136,4.704,141,1.936,147,1.709,182,2.039,185,4.466,189,3.633,228,2.007,229,1.987,231,1.897,232,1.946,233,2.081,241,2.147,253,5.06,254,5.35,263,7.45,275,3.127,349,3.976,377,5.127,396,2.261,422,7.805,431,5.472,472,5.41,532,5.602,543,4.881,544,9.798,558,8.098,559,4.429,561,5.892,575,5.972,686,9.262,701,6.431,767,7.183,1090,10.734,2206,8.759,2224,6.33,2415,10.272,2416,10.272,2417,10.272,2447,11.252,2448,10.272,2449,14.305,2450,10.272,2451,10.272,2452,10.272,2453,10.272,2454,10.272,2455,9.626,2456,9.626,2457,10.272,2458,10.272]],["keywords/282",[]],["title/283",[1090,791.543]],["content/283",[62,2.221,73,1.903,74,2.035,77,5.282,86,2.291,100,1.932,136,4.994,141,2.056,147,1.782,182,2.164,189,6.008,228,2.131,229,2.109,231,2.014,232,2.066,233,2.209,241,3.116,254,5.68,263,7.764,275,4.538,350,8.185,356,9.299,396,2.401,420,7.469,425,8.958,440,6.095,461,7.017,462,7.017,532,5.947,543,5.182,686,9.652,701,6.828,767,7.626,1090,10.473,1747,8.551,2132,7.796,2203,9.708,2206,9.299,2224,6.72,2448,10.905,2449,14.908,2450,10.905,2451,10.905,2452,10.905,2453,10.905,2454,10.905,2455,10.22,2456,10.22,2457,10.905,2458,10.905,2459,10.905,2460,8.667,2461,11.946]],["keywords/283",[]],["title/284",[121,247.902,1090,639.202]],["content/284",[62,2.399,73,2.889,74,2.382,100,3.256,121,2.84,126,6.968,127,8.415,136,5.846,141,2.406,147,1.979,161,5.668,170,8.125,182,2.534,189,6.878,228,2.495,229,2.469,231,2.357,232,2.419,233,2.586,234,5.33,254,6.649,275,3.886,396,2.81,556,6.88,1090,10.541,1747,7.323,2204,11.964,2462,13.984,2463,13.984]],["keywords/284",[]],["title/285",[330,396.792,1090,639.202]],["content/285",[62,2.336,73,2.213,74,2.366,100,3.246,126,6.939,127,8.36,136,5.808,141,2.391,147,1.97,170,8.072,182,2.517,189,6.861,228,2.478,229,2.453,231,2.342,232,2.403,233,2.57,234,5.295,241,3.446,254,6.605,275,3.861,330,5.871,396,2.792,556,6.835,746,10.006,1090,10.508,1747,7.275,2203,11.29,2459,12.683,2464,13.893]],["keywords/285",[]],["title/286",[162,567.945,362,779.296]],["content/286",[46,7.527,160,4.213,162,8.823,320,9.016,362,12.106]],["keywords/286",[]],["title/287",[162,567.945,328,249.203]],["content/287",[19,2.823,62,1.685,79,3.637,86,3.255,89,1.402,100,1.63,121,2.046,122,4.499,123,7.814,134,7.69,147,1.099,160,2.238,161,4.528,162,2.912,179,3.613,186,2.751,200,2.976,222,2.882,239,3.01,241,1.922,242,9.157,253,2.021,267,3.586,275,2.8,284,8.252,309,3.534,314,3.417,316,5.355,322,3.957,328,4.682,329,6.742,331,5.705,332,5.422,333,2.819,335,3.169,339,2.75,345,6.227,349,2.212,365,6.742,373,7.814,374,3.578,387,7.556,389,2.976,405,7.303,406,3.044,413,4.694,460,3.578,461,2.69,462,2.69,470,5.5,472,3.01,520,3.155,536,4.085,539,5.758,543,4.37,547,8.885,563,3.914,568,2.882,699,7.214,701,5.758,968,3.194,969,3.155,990,8.188,1076,3.996,1077,7.095,1079,2.048,1120,5.355,1121,15.492,1122,12.908,1127,4.873,1130,4.182,1140,5.715,1142,7.556,1152,4.408,1210,3.194,1253,5.355,1279,5.087,1285,3.578,1323,3.637,1335,4.694,1649,5.715,1747,3.278,2000,4.694,2009,5.715,2190,8.619,2191,5.715,2195,5.355,2196,5.715,2224,5.668,2230,8.188,2236,8.619,2243,11.542,2465,6.26,2466,6.26,2467,6.26,2468,4.694,2469,8.619,2470,5.355,2471,6.26,2472,6.26,2473,5.355,2474,6.26]],["keywords/287",[]],["title/288",[162,567.945,331,480.54]],["content/288",[31,2.921,49,3.677,62,2.436,71,3.574,82,2.234,86,4.116,88,4.942,89,2.102,111,3.133,121,3.068,147,0.735,160,1.496,173,3.481,175,3.527,179,3.83,186,1.839,193,4.615,196,2.527,197,4.633,222,3.101,240,2.469,241,1.285,242,4.867,263,5.078,267,6.239,309,3.747,328,3.579,330,5.355,331,9.331,365,7.664,374,11.492,380,3.731,385,2.894,389,3.202,396,1.353,457,3.731,470,3.677,520,3.394,543,2.921,545,5.762,564,4.052,635,5.242,686,6.313,701,3.849,746,3.731,752,2.894,880,9.751,1030,3.313,1076,9.645,1150,12.925,1207,4.211,1235,4.886,1254,6.148,1282,5.45,1338,5.051,1340,3.789,1571,3.624,1682,4.3,2045,4.211,2113,6.148,2198,10.333,2199,5.762,2230,5.473,2281,5.242,2460,7.75,2475,6.735,2476,16.473,2477,6.735,2478,6.735,2479,6.735,2480,6.735,2481,6.735,2482,6.735,2483,6.735,2484,6.735,2485,10.681,2486,10.681,2487,6.735,2488,6.735,2489,6.735,2490,6.735,2491,6.735,2492,6.735,2493,10.681]],["keywords/288",[]],["title/289",[162,567.945,339,265.486]],["content/289",[62,1.94,86,2.718,134,8.394,147,1.546,222,6.524,241,2.704,242,8.335,275,3.938,328,4.37,339,4.656,341,6.205,345,7.861,510,7.851,520,7.141,539,8.099,547,11.215,628,7.972,629,7.972,696,7.323,699,9.107,2192,12.123,2193,12.123,2300,8.86,2304,12.123,2470,15.65,2494,14.17,2495,14.17,2496,14.17,2497,14.17]],["keywords/289",[]],["title/290",[58,630.874,162,567.945]],["content/290",[58,11.406,62,2.259,121,2.84,134,7.515,147,1.526,161,4.37,189,4.515,222,6.438,241,2.668,242,9.173,263,8.623,275,3.886,290,9.127,330,4.546,520,7.047,543,6.066,686,10.72,701,7.993,746,7.748,767,8.928,1578,10.684,2200,12.766,2201,11.964,2202,11.364,2224,7.867,2413,11.364,2420,12.766,2426,12.766,2427,11.364,2439,12.766,2440,12.766]],["keywords/290",[]],["title/291",[162,567.945,1090,639.202]],["content/291",[62,2.242,121,2.785,134,8.263,147,1.496,161,4.286,189,6.439,222,6.314,238,4.777,241,2.616,242,8.16,275,3.811,322,3.744,330,4.458,345,7.695,520,6.911,543,5.949,547,10.98,699,8.916,701,7.838,746,7.598,767,8.755,1079,4.488,1090,11.78,1578,9.505,1633,9.657,2203,11.145,2204,11.733,2206,10.675,2224,7.715,2456,11.733,2498,13.714]],["keywords/291",[]],["title/292",[1571,813.496]],["content/292",[59,3.352,62,2.539,71,6.101,73,1.831,77,5.083,82,3.813,86,3.05,89,1.599,145,3.639,147,1.254,175,6.019,179,4.121,186,4.342,197,4.986,308,7.876,320,5.465,322,3.138,328,3.247,331,7.178,364,10.493,365,8.484,376,6.917,457,6.368,536,7.502,1030,5.655,1119,11.641,1682,7.338,1779,7.68,2499,11.495,2500,11.495,2501,11.495,2502,11.495,2503,11.495,2504,15.904,2505,11.495,2506,11.495,2507,11.495,2508,11.495,2509,11.495,2510,11.495,2511,11.495,2512,15.904,2513,15.904,2514,11.495,2515,11.495,2516,11.495,2517,11.495,2518,11.495,2519,11.495,2520,11.495,2521,11.495]],["keywords/292",[]],["title/293",[365,476.28,1141,558.84,2522,796.847]],["content/293",[86,3.309,88,4.826,89,2.401,121,2.633,122,5.789,171,7.409,177,9.128,179,4.648,197,5.623,312,7.532,322,5.296,328,3.523,331,7.636,332,6.976,346,8.106,365,9.622,369,6.976,372,11.834,373,6.377,377,5.907,384,7.662,440,6.615,458,9.128,465,7.077,470,7.077,539,7.409,748,7.182,1079,4.242,1118,10.091,1119,12.383,1123,11.834,1141,7.077,1210,6.615,1211,9.128,1622,11.834,2136,11.834,2522,16.098,2523,10.534,2524,11.09,2525,12.963,2526,12.963,2527,12.963]],["keywords/293",[]],["title/294",[62,93.481,89,122.648,160,195.83,427,330.713]],["content/294",[]],["keywords/294",[]],["title/295",[]],["content/295",[46,6.969,147,1.915,160,4.642,162,8.168,191,7.688,198,9.584,320,8.347,322,4.793,362,11.208,516,9.877,517,10.377,518,10.377,1274,14.267]],["keywords/295",[]],["title/296",[53,376.588,123,600.54]],["content/296",[53,7.202,89,3.129,94,5.851,121,3.83,123,11.485,160,3.302,161,4.644,222,6.842,309,5.214,396,4.379,508,8.784,520,7.49,793,7.399,1058,7.066,1287,12.078,1546,7.066]],["keywords/296",[]],["title/297",[53,271.921,89,122.648,123,433.627,396,177.139]],["content/297",[53,5.26,62,2.425,73,2.028,74,2.168,89,1.771,100,2.059,123,10.101,141,2.191,147,1.86,182,2.307,197,7.395,222,7.849,228,2.271,229,2.248,231,2.146,232,2.202,233,2.355,241,3.253,242,9.355,244,10.884,263,6.053,264,13.536,275,4.738,396,2.559,445,6.338,952,7.66,1304,8.127,2528,12.731,2529,17.049,2530,12.006,2531,13.855,2532,12.731,2533,11.622,2534,12.731,2535,12.731]],["keywords/297",[]],["title/298",[53,238.743,89,107.683,121,157.16,123,380.719,396,155.526]],["content/298",[53,5.626,62,2.368,73,1.831,74,1.958,82,5.275,83,8.62,89,2.213,100,2.573,121,2.334,123,10.163,126,4.416,134,8.154,141,1.978,147,1.989,161,3.592,179,4.121,182,2.083,197,4.986,200,5.465,222,8.395,228,2.051,229,2.03,231,1.938,232,1.988,233,2.126,234,4.381,264,8.094,275,5.068,345,4.939,376,6.917,396,3.196,415,7.502,445,5.723,559,4.525,793,5.723,1079,3.761,1129,6.917,1304,7.338,1578,6.101,2095,8.62,2530,8.094,2531,9.341,2533,10.493,2536,11.199,2537,11.495,2538,7.876,2539,11.538,2540,9.834,2541,11.495,2542,11.495]],["keywords/298",[]],["title/299",[53,238.743,89,107.683,123,380.719,396,155.526,1287,628.88]],["content/299",[53,6.174,62,2.122,73,2.603,74,2.784,89,2.274,100,2.644,123,9.845,141,2.813,147,1.783,228,2.916,229,2.886,231,2.755,232,2.827,233,3.023,309,7.02,396,3.285,1287,13.282,1304,10.434,2543,16.344]],["keywords/299",[]],["title/300",[86,196.318,1058,486.706,1195,461.723]],["content/300",[3,8.721,31,6.828,52,3.691,67,8.593,86,4.266,89,2.19,94,6.196,119,11.084,123,7.744,179,5.644,240,7.169,241,3.003,350,10.786,369,8.471,427,5.906,438,6.096,793,7.836,1079,5.151,1195,8.819,2142,12.253,2544,11.42,2545,14.369,2546,15.741]],["keywords/300",[]],["title/301",[1331,825.216]],["content/301",[51,3.584,53,3.072,62,2.438,73,2.511,74,2.685,85,2.133,86,2.756,90,2.966,100,2.869,121,2.918,126,3.826,134,7.648,141,2.713,145,1.953,147,2.079,160,1.371,161,3.912,174,3.368,175,3.23,182,1.804,196,2.315,222,2.84,228,2.813,229,2.784,231,2.658,232,2.727,233,2.916,234,3.795,240,7.805,309,5.914,330,4.07,357,3.953,450,5.536,520,3.109,746,6.937,1058,2.933,1195,2.783,1210,3.148,1331,11.864,1340,3.471,1546,2.933,1565,11.677,1566,11.677,1583,7.829,2073,14.032,2224,7.043,2547,12.52,2548,18.616,2549,10.534,2550,8.365,2551,9.746]],["keywords/301",[]],["title/302",[968,622.866,969,615.155]],["content/302",[51,3.343,53,2.902,62,2.413,73,2.422,74,2.589,85,1.989,86,2.644,90,2.766,100,2.786,121,2.8,126,3.614,134,8.285,141,2.616,145,1.821,147,2.029,160,1.278,161,3.73,174,3.141,175,3.012,182,1.704,196,2.158,222,2.649,228,2.712,229,2.684,231,2.563,232,2.63,233,2.812,234,3.586,240,7.677,309,5.725,330,3.88,357,3.734,450,5.278,520,2.899,746,6.613,968,10.925,969,10.79,1058,2.735,1195,2.595,1210,2.935,1340,3.236,1546,2.735,1583,7.463,1589,7.88,1595,8.453,1596,7.88,2073,13.883,2224,6.715,2549,10.158,2550,7.975,2551,9.291,2552,11.936,2553,18.252]],["keywords/302",[]],["title/303",[534,761.764]],["content/303",[51,3.298,53,2.871,62,2.408,67,3.099,73,2.405,74,2.571,85,1.963,86,2.623,89,0.79,90,2.729,100,2.77,121,2.778,126,3.575,134,8.252,141,2.598,145,1.797,147,2.078,160,1.261,161,3.695,167,2.146,174,3.099,175,4.873,182,1.686,196,3.491,197,2.462,222,2.613,228,2.693,229,2.665,231,2.545,232,2.611,233,2.792,234,3.547,240,7.744,309,5.689,330,3.844,357,3.694,410,4.257,421,2.792,450,5.229,502,2.934,520,2.86,534,10.862,746,6.552,793,2.826,1058,2.699,1195,4.197,1210,2.896,1340,3.193,1546,4.424,1583,7.394,1584,7.25,1595,8.385,1596,7.817,1600,11.115,2073,13.92,2224,6.652,2549,10.086,2550,7.901,2551,9.205,2554,4.118,2555,5.182,2556,5.182,2557,11.825,2558,18.181]],["keywords/303",[]],["title/304",[461,524.53,462,524.53]],["content/304",[51,3.229,53,2.821,62,2.4,67,3.034,73,2.378,74,2.542,85,1.922,86,2.59,89,0.773,90,2.672,100,2.745,121,2.742,126,3.514,134,7.346,141,2.569,145,1.759,147,2.063,160,1.235,161,3.641,167,2.102,174,3.034,175,4.789,182,1.657,196,3.431,197,2.411,222,2.559,228,2.663,229,2.636,231,2.516,232,2.582,233,2.761,234,3.486,240,7.706,309,5.632,330,3.788,357,3.63,421,2.734,450,5.153,461,9.22,462,9.22,502,2.872,520,2.801,746,6.456,793,2.767,1058,2.642,1195,4.125,1210,2.836,1340,3.127,1546,4.348,1583,7.286,1584,7.144,1596,7.718,1603,10.512,2073,13.806,2075,4.755,2077,4.168,2224,6.555,2549,9.973,2550,7.786,2551,9.071,2554,4.032,2559,11.653,2560,18.068]],["keywords/304",[]],["title/305",[696,781.23]],["content/305",[51,3.334,53,2.896,62,2.412,67,3.132,73,2.418,74,2.586,85,1.984,86,2.64,89,0.798,90,2.758,94,2.259,100,2.783,121,2.796,126,3.606,134,8.278,141,2.612,145,1.816,147,2.085,160,1.275,161,3.723,167,3.55,174,3.132,175,4.915,182,1.701,196,3.522,197,2.489,222,2.641,228,2.708,229,2.681,231,2.559,232,2.626,233,2.808,234,3.578,240,7.764,309,5.718,330,3.873,357,3.726,410,4.303,421,2.823,450,5.268,502,2.965,520,2.891,696,11.165,746,6.6,793,2.856,1058,2.728,1195,4.234,1210,2.927,1340,3.228,1546,4.463,1583,7.449,1595,8.44,1596,7.868,2073,13.877,2224,6.702,2549,10.144,2550,7.96,2551,9.274,2554,4.163,2561,11.913,2562,18.238,2563,12.566]],["keywords/305",[]],["title/306",[89,122.648,333,156.432,334,284.606,427,330.713]],["content/306",[]],["keywords/306",[]],["title/307",[401,718.698]],["content/307",[49,8.992,52,3.862,53,5.081,89,2.292,171,9.414,200,7.831,317,6.765,333,3.852,334,6.492,337,5.501,344,11.311,427,6.18,449,8.512,460,9.414,1178,11.005,1474,12.352,1546,7.831,2112,12.821]],["keywords/307",[]],["title/308",[1078,1035.774]],["content/308",[46,5.779,52,3.414,62,1.544,89,2.026,92,13.289,94,5.731,121,2.956,145,4.609,179,5.22,196,5.462,333,4.057,334,6.625,335,4.579,377,6.633,396,4.124,486,9.975,793,7.247,941,10.562,1193,8.065,1308,11.332,1560,8.32,2564,14.558,2565,14.558,2566,11.83,2567,18.613,2568,14.558,2569,14.558,2570,14.558,2571,14.558]],["keywords/308",[]],["title/309",[68,718.698]],["content/309",[]],["keywords/309",[]],["title/310",[89,122.648,90,423.767,130,716.275,917,401.621]],["content/310",[44,10.825,85,6.443,89,2.593,90,8.958,121,3.784,145,5.898,179,6.68]],["keywords/310",[]],["title/311",[54,486.706,429,492.162,911,536.036]],["content/311",[7,13.615,52,4.998,85,6.278,89,2.526,94,7.147,429,8.729,1078,12.44,1546,8.632,2572,18.155]],["keywords/311",[]],["title/312",[2031,1176.671]],["content/312",[]],["keywords/312",[]],["title/313",[2573,1009.973]],["content/313",[19,4.547,22,6.735,38,5.958,52,3.981,53,4.472,62,1.538,68,4.793,71,5.35,85,3.486,86,1.933,89,2.737,98,7.914,111,4.69,120,4.741,121,2.047,123,7.132,145,5.374,147,1.852,174,5.503,240,3.696,241,1.923,322,2.752,333,3.013,334,4.681,370,4.593,396,3.412,421,4.959,423,5.21,427,6.965,670,5.857,793,5.019,944,12.403,965,6.066,1079,4.744,1193,8.032,1195,4.547,1232,5.585,1285,5.761,1546,6.893,1589,5.761,2185,7.099,2573,13.14,2574,7.56,2575,7.847,2576,14.523,2577,13.921,2578,11.954,2579,8.192,2580,7.847,2581,7.847,2582,8.192,2583,11.781,2584,9.202,2585,10.081,2586,9.461,2587,9.202,2588,9.202,2589,9.202,2590,9.202,2591,9.202,2592,9.202,2593,9.202,2594,10.081]],["keywords/313",[]],["title/314",[2595,1096.714]],["content/314",[19,3.965,22,5.874,38,5.196,52,3.678,53,4.046,62,2.382,68,4.18,71,4.666,85,3.04,86,1.686,89,2.588,98,7.159,111,4.09,120,4.134,121,1.785,123,6.452,134,7.205,145,4.965,147,1.711,174,4.799,238,3.062,240,3.224,241,1.677,322,2.4,333,2.784,370,4.006,396,3.152,421,4.325,423,4.543,427,6.524,442,4.799,445,4.377,453,4.666,670,5.108,793,4.377,944,10.48,965,5.29,1044,5.497,1079,4.291,1193,7.266,1195,3.965,1232,4.871,1285,5.025,1546,6.235,1589,5.025,2073,5.39,2185,6.191,2574,6.593,2575,6.843,2577,11.762,2578,9.234,2579,7.144,2580,6.843,2581,6.843,2582,7.144,2583,10.657,2595,13.496,2596,7.521,2597,8.791,2598,14.318,2599,11.219,2600,5.025,2601,13.368,2602,8.025,2603,8.025,2604,8.791,2605,8.025,2606,8.025,2607,8.025,2608,8.025,2609,8.025,2610,8.791,2611,8.025,2612,8.791,2613,8.791,2614,8.791,2615,8.791,2616,8.791,2617,8.791]],["keywords/314",[]],["title/315",[423,781.23]],["content/315",[197,8.374,1394,16.517,2595,14.007]],["keywords/315",[]],["title/316",[401,580.377,1079,399.461]],["content/316",[31,4.194,52,2.267,53,2.983,73,1.54,89,2.307,94,5.537,103,5.203,121,1.964,123,6.92,134,8.016,145,3.061,167,3.656,174,5.278,186,2.64,189,5.354,196,3.628,200,4.597,221,5.357,241,2.684,253,3.122,333,2.943,334,3.122,335,4.424,345,4.155,396,3.332,421,4.757,422,3.87,423,4.997,427,5.278,438,6.421,441,5.818,442,7.679,443,6.344,445,4.814,453,5.132,460,10.406,503,11.24,670,8.173,748,5.357,803,11.64,893,8.795,1044,6.046,1058,4.597,1079,3.164,1115,6.046,1122,11.431,1210,4.934,1252,8.272,1546,7.883,1589,8.039,1694,6.625,1795,7.526,2146,7.857,2153,10.549,2618,8.827,2619,12.841,2620,14.184,2621,14.066,2622,12.841,2623,9.669,2624,12.841,2625,12.034,2626,12.841,2627,8.827,2628,8.827,2629,8.827]],["keywords/316",[]],["title/317",[401,580.377,2630,991.984]],["content/317",[31,4.777,51,4.067,52,3.936,62,2.511,73,1.115,85,2.421,86,2.112,88,2.606,89,2.336,98,9.163,134,8.234,140,4.677,147,1.944,178,4.797,186,1.911,189,2.26,221,3.878,241,1.336,275,1.945,333,2.979,334,5.42,346,4.377,423,3.618,427,5.108,442,3.822,445,3.485,453,3.715,478,5.079,481,4.138,670,4.067,893,6.886,944,11.908,1044,4.377,1079,2.291,1285,6.294,1352,5.989,1452,11.646,1546,3.328,1589,6.294,1633,4.929,1709,11.199,1940,5.989,2073,8.346,2573,4.677,2577,8.259,2586,7.187,2592,6.39,2595,9.877,2596,5.989,2599,5.989,2600,9.593,2601,12.777,2602,6.39,2603,6.39,2605,6.39,2606,6.39,2607,6.39,2608,6.39,2609,6.39,2611,6.39,2630,11.063,2631,5.989,2632,7,2633,15.436,2634,7,2635,6.39,2636,6.39,2637,7,2638,6.39,2639,6.39,2640,7,2641,6.39,2642,6.39,2643,6.39,2644,6.39,2645,6.39,2646,6.39,2647,6.39,2648,5.689,2649,6.39,2650,7.546,2651,7,2652,11.013,2653,7,2654,11.013,2655,7,2656,12.427,2657,7,2658,7,2659,7,2660,10.053]],["keywords/317",[]],["title/318",[341,534.565,1102,859.584]],["content/318",[]],["keywords/318",[]],["title/319",[2661,1228.403]],["content/319",[49,9.279,52,3.986,82,5.638,86,3.26,111,7.908,145,5.381,239,8.171,341,7.443,418,14.54,619,7.825,778,12.331,1102,11.968,1392,15.516,2661,13.812,2662,14.54,2663,12.746,2664,15.516,2665,16.996]],["keywords/319",[]],["title/320",[56,586.883,2666,885.64]],["content/320",[32,4.71,52,0.723,53,0.951,56,1.482,65,1.791,82,3.459,137,13.215,153,2.504,177,2.17,190,1.658,251,1.791,328,1.124,333,0.547,335,0.969,341,5.07,406,1.499,442,4.954,510,1.707,575,1.636,718,4.286,721,8.006,738,2.809,770,8.399,885,5.596,890,4.474,910,7.342,917,8.59,921,3.679,1027,10.636,1028,2.17,1102,3.877,1167,1.927,1168,6.657,1170,3.443,1211,2.17,1213,2.311,1222,4.129,1286,2.813,1470,2.17,1584,1.889,1641,18.35,1652,2.636,1653,2.636,1654,2.311,1806,2.399,1808,12.257,1809,9.519,1810,14.102,1811,5.026,1812,5.026,1813,2.813,1814,13.734,1815,4.129,1816,9.519,1817,5.026,1818,5.026,1819,5.026,1820,5.026,1821,2.813,1822,11.471,1823,8.284,1824,6.812,1825,8.284,1826,2.813,1827,8.284,1828,2.813,1829,5.026,1830,10.568,1831,6.812,1832,2.813,1833,2.813,1834,17.046,1835,12.257,1836,15.03,1837,15.03,1838,12.257,1839,2.813,1840,2.813,1841,13.215,1842,6.806,1843,5.026,1844,5.026,1845,2.813,1846,5.026,1849,2.813,1856,2.813,1867,8.284,1868,2.813,1869,2.813,1870,2.813,1885,2.813,1886,8.284,1887,2.813,1889,5.026,1894,2.813,1900,2.813,1907,2.813,1910,6.812,1911,9.519,1912,2.813,1913,2.813,1914,2.813,1923,2.813,1932,4.71,1933,4.71,1935,2.813,1942,2.813,1952,2.813,1967,2.813,1968,2.813,1969,2.813,1970,2.813,1971,2.813,1972,2.813,1973,2.813,1974,2.813,1975,5.026,1976,2.813,1977,2.813,1978,2.813,1979,2.813,1981,2.813,1982,2.813,1983,2.813,1984,2.813,1985,2.813,1986,2.813,1987,2.813,1988,2.813,1989,2.813,1990,2.813,1991,2.813,1992,5.026,1993,2.813,1994,2.813,1995,2.813,1996,2.813,1997,2.813,1998,2.813,2337,7.375,2540,9.904,2661,2.504,2666,3.995,2667,6.812,2668,3.082,2669,10.568,2670,3.082,2671,5.506,2672,15.982,2673,11.577,2674,3.082,2675,9.075,2676,3.082,2677,3.082,2678,12.257,2679,21.311,2680,3.082,2681,2.813,2682,10.427,2683,3.082,2684,3.082,2685,3.082,2686,3.082,2687,3.082,2688,3.082,2689,3.082,2690,3.082,2691,3.082,2692,3.082,2693,7.462,2694,3.082,2695,3.082,2696,3.082,2697,3.082,2698,3.082,2699,3.082,2700,3.082,2701,3.082,2702,3.082,2703,3.082,2704,3.082,2705,3.082,2706,3.082,2707,3.082,2708,3.082,2709,3.082,2710,3.082,2711,3.082,2712,3.082,2713,3.082,2714,3.082,2715,5.506,2716,3.082,2717,3.082,2718,3.082,2719,3.082,2720,3.082,2721,3.082,2722,3.082,2723,5.506,2724,3.082,2725,3.082,2726,3.082,2727,15.448,2728,5.506,2729,5.506,2730,3.082,2731,4.71,2732,3.082,2733,2.813,2734,3.082]],["keywords/320",[]],["title/321",[62,73.15,86,132.273,89,95.973,94,271.515,307,371.18,427,258.787]],["content/321",[]],["keywords/321",[]],["title/322",[401,718.698]],["content/322",[49,8.722,62,1.694,83,11.981,86,3.784,89,2.223,90,7.681,94,6.289,115,10.675,132,14.585,307,10.62,344,11.101,396,3.211,427,5.995,449,8.257,460,9.131,1076,10.2,1127,12.437,1210,8.152,1546,9.382,1551,14.585,2544,11.591,2581,12.437]],["keywords/322",[]],["title/323",[68,718.698]],["content/323",[]],["keywords/323",[]],["title/324",[89,122.648,90,423.767,130,716.275,917,401.621]],["content/324",[44,10.825,85,6.443,89,2.593,90,8.958,121,3.784,145,5.898,179,6.68]],["keywords/324",[]],["title/325",[7,580.348,89,107.683,396,155.526,911,405.23,2005,602.396]],["content/325",[7,12.953,86,3.312,89,2.403,98,9.429,127,10.393,145,5.468,196,6.481,307,9.295,396,4.158,464,11.54,508,10.209,1145,14.036,1195,7.79,2045,10.8,2735,11.272]],["keywords/325",[]],["title/326",[121,157.16,396,155.526,429,372.062,1026,399.95,1195,349.051]],["content/326",[31,6.878,52,3.719,53,4.892,54,7.54,89,2.969,94,6.243,121,3.22,123,7.802,145,5.02,160,3.523,162,7.378,171,9.063,307,8.534,396,4.289,413,11.892,429,7.624,508,9.373,516,8.921,793,7.895,1115,9.916,1195,7.153,1546,7.54,2736,14.476]],["keywords/326",[]],["title/327",[3,676.31,438,472.756]],["content/327",[3,9.974,44,10.459,52,4.221,85,7.334,86,3.452,438,6.972,1210,9.185,1282,9.185,1546,8.559,2737,18.002]],["keywords/327",[]],["title/328",[461,524.53,462,524.53]],["content/328",[51,6.148,62,2.013,67,5.776,73,1.685,74,1.802,85,5.19,86,2.029,90,5.087,94,4.165,100,1.712,119,7.451,121,2.149,134,6.218,141,1.821,145,5.521,147,1.637,160,2.351,161,4.69,167,5.675,174,5.776,175,5.541,196,3.97,200,5.031,228,1.888,229,1.868,231,1.784,232,1.83,233,1.957,234,4.033,240,3.88,314,5.776,370,4.821,396,2.127,422,4.236,426,4.725,438,4.098,450,4.679,461,8.61,462,8.61,1058,8.291,1125,6.487,1193,8.315,1195,9.653,1210,7.658,1285,6.048,1338,7.935,1340,5.953,1546,7.135,1584,6.487,1596,6.048,1603,11.682,2075,12.839,2077,11.255,2081,7.07,2549,7.07,2550,7.07,2554,7.677,2560,9.659,2738,8.237,2739,9.659,2740,10.581,2741,10.581]],["keywords/328",[]],["title/329",[968,622.866,969,615.155]],["content/329",[51,7.267,62,2.162,73,1.992,74,2.13,85,5.826,86,2.399,90,6.013,94,4.923,100,2.023,121,2.54,134,7.894,141,2.152,145,5.333,147,1.364,160,2.779,161,5.265,196,4.693,200,5.946,228,2.231,229,2.208,231,2.108,232,2.163,233,2.313,234,4.767,240,4.586,314,6.828,324,2.933,396,2.513,438,4.844,968,10.401,969,9.6,1058,9.058,1195,8.593,1210,6.382,1285,7.148,1340,7.036,1546,5.946,1589,7.148,1595,7.668,1596,7.148,2549,8.356,2550,8.356,2553,11.417,2738,9.735,2742,12.507,2743,12.507]],["keywords/329",[]],["title/330",[534,761.764]],["content/330",[51,8.629,62,1.999,67,5.692,73,1.661,74,1.776,85,5.136,86,1.999,90,5.013,94,4.104,100,1.687,121,2.117,134,7.167,141,1.794,145,5.476,147,1.62,160,2.316,161,4.641,167,6.541,196,3.912,200,4.957,228,1.86,229,1.841,231,1.757,232,1.803,233,1.928,234,3.974,240,3.823,314,5.692,324,2.445,350,10.176,370,4.751,396,2.095,410,11.137,422,4.173,426,4.656,438,4.038,450,4.61,534,10.04,1058,8.224,1125,6.392,1193,8.228,1195,8.987,1210,7.578,1285,5.959,1338,7.819,1340,5.865,1546,7.061,1583,6.519,1584,6.392,1595,9.105,1596,5.959,1600,12.068,2073,6.392,2081,6.966,2549,6.966,2550,6.966,2554,7.564,2555,13.557,2556,9.518,2558,9.518,2738,8.116,2739,9.518,2744,10.426,2745,10.426,2746,10.426,2747,10.426]],["keywords/330",[]],["title/331",[1331,825.216]],["content/331",[51,6.436,62,2.054,73,1.764,74,1.886,85,5.36,86,2.124,90,5.325,94,4.36,100,1.792,121,2.249,123,7.625,134,6.422,141,1.906,145,5.66,147,1.691,160,2.461,161,4.843,167,7.323,196,4.156,200,5.266,223,8.622,228,1.976,229,1.956,231,1.867,232,1.916,233,2.049,234,4.222,240,4.061,314,6.047,324,2.597,370,5.047,396,2.226,422,4.434,426,4.946,438,4.29,1058,8.5,1079,3.625,1099,5.514,1125,6.791,1193,8.587,1195,8.734,1210,5.652,1285,6.331,1331,10.571,1338,11.623,1340,6.231,1546,7.369,1565,9.001,1566,9.001,2077,11.623,2548,10.111,2549,7.401,2550,7.401,2554,8.036,2738,8.622,2748,15.499,2749,11.076,2750,11.076,2751,11.076]],["keywords/331",[]],["title/332",[696,781.23]],["content/332",[19,5.102,51,6.572,62,2.073,67,6.175,73,1.802,74,1.927,85,5.439,86,2.169,90,5.438,94,7.118,100,2.544,121,2.297,134,7.492,141,1.946,145,4.979,147,1.716,160,2.513,161,4.915,167,6.837,175,5.923,196,4.244,200,5.378,228,2.018,229,1.997,231,1.907,232,1.957,233,2.092,234,4.311,240,4.148,314,6.175,324,2.652,370,5.154,389,5.378,396,2.273,410,11.795,426,5.051,438,4.381,696,10.615,965,6.806,1058,8.596,1195,8.155,1210,5.772,1285,8.989,1340,6.363,1470,7.965,1546,7.478,1595,6.935,1596,6.465,2549,7.558,2550,7.558,2554,8.207,2562,10.326,2563,10.326,2738,8.805,2752,11.312,2753,11.312]],["keywords/332",[]],["title/333",[2031,1176.671]],["content/333",[]],["keywords/333",[]],["title/334",[2573,1009.973]],["content/334",[19,4.612,22,6.832,38,6.044,52,4.013,53,4.518,62,1.553,68,4.862,71,5.427,85,3.536,86,3.282,89,2.752,98,7.996,111,4.758,120,4.809,121,2.077,123,7.206,145,5.417,147,1.867,174,5.582,240,3.75,241,1.951,322,2.792,333,1.815,370,4.659,396,3.439,421,5.031,423,5.285,427,7.011,670,5.941,793,5.091,944,12.484,965,6.153,1079,4.793,1193,8.115,1195,4.612,1232,5.665,1285,5.844,1546,6.964,1589,5.844,2185,7.201,2573,13.213,2574,7.669,2575,7.96,2576,14.64,2577,14.013,2578,12.05,2579,8.31,2580,7.96,2581,7.96,2582,8.31,2583,11.902,2584,9.335,2586,9.559,2587,9.335,2588,9.335,2589,9.335,2590,9.335,2591,9.335,2593,9.335,2754,10.226,2755,10.226]],["keywords/334",[]],["title/335",[2595,1096.714]],["content/335",[19,4.547,22,6.735,38,5.958,52,3.981,53,4.472,62,2.238,68,4.793,71,5.35,85,3.486,86,3.256,89,2.737,98,7.914,111,4.69,120,4.741,121,2.047,123,7.132,145,5.374,147,1.852,174,5.503,238,3.511,240,3.696,241,1.923,322,2.752,333,3.013,370,4.593,396,3.412,421,4.959,423,5.21,427,6.965,670,5.857,793,5.019,944,11.342,965,6.066,1079,4.744,1193,8.032,1195,4.547,1232,5.585,1285,5.761,1546,6.893,1589,5.761,2073,6.18,2185,7.099,2574,7.56,2575,7.847,2577,13.921,2578,10.208,2579,8.192,2580,7.847,2581,7.847,2582,8.192,2583,11.781,2595,14.268,2596,8.624,2598,15.497,2600,5.761,2756,10.081,2757,10.081,2758,10.081,2759,10.081,2760,10.081]],["keywords/335",[]],["title/336",[423,781.23]],["content/336",[]],["keywords/336",[]],["title/337",[401,580.377,1079,399.461]],["content/337",[31,4.291,52,2.32,53,3.052,82,3.282,86,1.897,89,2.337,94,5.63,121,2.009,123,7.036,134,8.431,145,3.132,167,3.741,186,2.701,189,5.424,196,3.712,200,4.704,221,5.481,241,2.729,322,2.701,390,10.298,396,3.376,421,4.867,422,3.96,423,5.113,427,3.712,445,4.925,460,10.518,502,7.392,503,10.692,559,6.613,670,8.31,803,11.073,893,8.943,952,5.953,1044,6.186,1058,4.704,1079,3.238,1115,6.186,1122,11.623,1125,6.066,1141,5.401,1546,7.986,1553,8.464,1589,8.174,1694,6.779,2153,10.726,2618,9.031,2619,13.056,2620,12.236,2622,13.056,2624,13.056,2625,15.744,2626,13.056,2627,9.031,2628,9.031,2629,9.031,2761,9.893,2762,14.302,2763,9.893,2764,16.798,2765,9.893,2766,9.893]],["keywords/337",[]],["title/338",[401,580.377,2630,991.984]],["content/338",[22,2.927,51,4.352,52,2.301,59,4.146,62,2.571,68,2.083,72,2.264,73,1.563,82,2.484,85,1.515,86,3.79,89,1.978,91,3.178,98,7.76,101,2.181,104,3.748,114,7.121,115,9.498,121,0.89,134,6.294,147,1.551,164,2.391,171,2.504,179,1.571,183,2.859,186,1.196,189,2.418,221,2.427,238,2.609,253,1.415,267,5.7,275,1.217,307,7.02,320,2.083,322,2.045,330,4.24,335,2.356,336,4.031,345,3.218,349,1.548,359,5.434,370,3.413,389,2.083,402,3.085,423,2.264,427,4.356,453,2.325,457,5.435,460,2.504,467,2.797,472,2.106,478,3.178,508,2.589,543,4.255,556,2.155,566,3.178,670,2.545,750,4.683,752,3.218,803,2.636,893,4.683,917,3.413,944,11.17,964,2.589,1079,1.434,1195,1.976,1232,2.427,1234,3.41,1352,6.407,1455,8.393,1546,5.52,1589,4.281,1709,8.423,1940,3.748,2013,3.085,2073,2.686,2146,3.56,2187,3.748,2573,2.927,2577,7.357,2586,9.277,2595,8.423,2600,5.607,2601,6.722,2625,3.748,2630,11.552,2631,3.748,2635,3.999,2636,3.999,2638,3.999,2639,3.999,2641,3.999,2642,3.999,2643,3.999,2644,3.999,2645,3.999,2646,3.999,2647,3.999,2648,3.56,2649,3.999,2650,5.132,2656,6.837,2660,6.837,2735,2.859,2767,4.381,2768,11.609,2769,7.49,2770,4.381,2771,4.381,2772,4.381,2773,4.381,2774,4.381,2775,4.381,2776,6.086,2777,7.49,2778,14.618,2779,4.381,2780,4.381,2781,4.381,2782,4.381,2783,10.598,2784,4.381,2785,7.49,2786,4.381,2787,3.748,2788,4.381,2789,4.381,2790,4.381,2791,4.381,2792,4.381,2793,4.381,2794,4.381,2795,3.748,2796,4.381,2797,4.381,2798,4.381,2799,4.381,2800,4.381,2801,4.381,2802,4.381,2803,4.381,2804,4.381,2805,4.381,2806,4.381,2807,4.381,2808,4.381,2809,3.748,2810,4.381,2811,4.381,2812,4.381,2813,4.381,2814,3.999,2815,4.381,2816,4.381,2817,4.381,2818,4.381,2819,4.381]],["keywords/338",[]],["title/339",[333,156.432,337,294.37,338,503.769,401,419.069]],["content/339",[]],["keywords/339",[]],["title/340",[59,225.679,89,107.683,98,422.469,337,258.453,750,483.887]],["content/340",[46,6.313,52,2.695,59,3.352,67,8.682,68,8.67,77,7.032,86,3.774,88,4.28,89,2.875,90,7.646,94,4.525,98,6.275,108,6.679,169,9.341,200,5.465,231,1.938,307,6.186,317,6.532,330,3.736,332,10.59,333,3.962,334,6.354,335,5.002,337,6.09,342,5.793,380,8.811,396,2.31,427,4.313,431,7.734,460,6.57,750,7.187,1146,7.876,1207,7.187,1544,9.341,1545,8.948,1546,5.465,1552,10.493,1630,7.338,2000,11.927,2112,8.948,2119,7.876,2600,6.57,2820,11.495,2821,11.495,2822,11.495]],["keywords/340",[]],["title/341",[89,122.648,333,156.432,335,277.226,337,294.37]],["content/341",[46,5.735,52,2.353,55,6.704,56,6.946,59,4.213,68,4.77,73,1.598,77,4.436,82,3.328,83,7.524,85,3.47,87,6.151,89,1.396,98,5.477,101,4.995,111,4.668,113,3.983,121,2.038,122,4.48,135,8.153,196,5.421,240,6.208,284,6.548,308,9.9,317,5.934,321,7.877,328,2.048,329,4.668,331,3.95,333,3.827,334,3.24,335,6.43,337,4.825,339,4.028,345,4.311,349,3.545,359,7.279,377,4.572,378,7.887,384,5.93,431,4.879,438,3.886,446,7.81,447,7.81,464,6.704,469,9.159,470,5.477,503,5.829,619,4.619,699,4.995,741,7.81,964,5.93,1065,7.065,1079,3.283,1129,6.037,1153,8.539,1217,8.153,1236,8.583,1282,5.119,1328,6.405,1474,7.524,1543,13.189,1561,6.273,1713,9.159,1750,8.583,2095,7.524,2144,7.81,2152,11.741,2823,10.033,2824,8.583,2825,10.033,2826,10.033,2827,9.159,2828,10.033,2829,9.159]],["keywords/341",[]],["title/342",[321,506.42,333,122.41,337,230.348,339,150.005,2830,689.719]],["content/342",[55,12.382,59,5.404,69,8.276,89,2.579,145,5.867,182,3.358,240,5.302,321,8.622,328,2.952,329,6.727,331,5.692,333,3.63,335,5.829,337,4.829,339,3.145,465,7.893,619,6.657,693,7.378,1136,7.113,1178,12.382,1340,10.425,1413,10.843,2121,8.865,2142,11.255,2143,12.37,2144,11.255,2831,14.426]],["keywords/342",[]],["title/343",[89,142.443,329,476.28,333,181.68]],["content/343",[22,9.163,38,8.106,65,7.968,73,2.184,86,3.435,89,1.908,173,9.256,179,4.917,328,2.8,329,9.278,331,5.399,332,7.38,333,3.752,334,4.428,335,5.633,336,7.38,339,4.337,345,5.893,375,7.968,376,8.252,447,10.675,449,7.088,502,7.088,693,6.998,971,10.285,1078,9.397,1141,7.487,1207,8.575,1347,9.397,1675,11.733,1747,9.378,2036,12.52,2045,8.575,2114,11.145,2832,12.52,2833,13.714,2834,13.714]],["keywords/343",[]],["title/344",[160,195.83,333,156.432,337,294.37,338,503.769]],["content/344",[]],["keywords/344",[]],["title/345",[]],["content/345",[31,5.096,44,6.826,46,4.663,52,2.755,54,7.676,59,3.426,85,4.063,86,3.537,89,2.897,121,2.386,128,7.5,147,1.282,160,4.098,161,3.671,164,6.413,191,5.145,197,5.096,198,6.413,222,5.409,225,4.063,244,7.5,267,4.182,307,6.322,321,5.466,322,3.208,324,4.325,329,5.466,333,3.983,339,2.555,349,4.151,385,5.048,396,3.991,516,6.609,517,6.944,518,6.944,520,5.92,793,5.849,1193,6.509,1255,8.273,1256,7.667,1257,7.346,1319,10.051,2835,10.725,2836,10.725,2837,13.12,2838,10.725,2839,10.725,2840,10.725,2841,10.725,2842,11.748,2843,10.725,2844,11.748]],["keywords/345",[]],["title/346",[333,268.279]],["content/346",[52,2.486,56,3.208,62,1.124,69,2.979,73,1.689,74,1.136,77,2.95,82,5.439,86,2.882,89,0.928,100,1.079,120,6.204,123,3.282,136,2.789,141,1.148,147,0.728,160,1.482,170,3.876,179,2.392,182,2.723,185,5.965,197,2.894,228,1.19,229,1.178,231,1.125,232,1.154,233,1.234,238,6.08,241,2.023,242,4.831,253,4.26,255,3.642,267,2.375,275,1.854,299,3.59,320,3.172,322,3.602,329,3.104,333,2.667,334,4.26,335,4.149,339,4.131,340,4.698,341,2.922,369,3.59,373,3.282,375,3.876,377,4.831,396,2.131,405,3.362,422,7.326,423,3.448,426,2.979,427,2.503,431,3.244,438,2.584,453,3.541,457,3.696,461,2.867,462,2.867,465,5.788,470,3.642,472,7.225,530,4.782,532,3.321,534,3.362,539,6.059,543,5.722,547,9.214,548,10.041,556,6.49,557,4.259,558,5.479,559,5.193,560,4.698,561,6.908,562,5.193,563,6.629,564,6.379,565,4.259,567,3.876,568,3.072,569,6.919,570,6.919,575,5.627,619,6.073,628,5.964,629,5.964,635,5.193,693,5.41,696,3.448,697,5.003,699,7.482,700,8.422,701,7.54,753,5.003,971,5.003,1077,9.289,1079,2.183,1100,5.003,1102,4.698,1129,4.014,1191,4.698,1271,4.172,1330,4.172,1331,3.642,1356,4.09,1452,5.707,1745,5.003,2045,4.172,2121,4.09,2300,6.629,2661,5.422,2663,5.003,2666,4.84,2845,6.672,2846,6.09,2847,6.672,2848,5.707,2849,6.672]],["keywords/346",[]],["title/347",[333,268.279]],["content/347",[62,2.064,69,6.978,73,2.489,74,2.661,77,6.909,100,2.528,141,2.689,147,1.705,182,3.526,228,2.787,229,2.759,231,2.634,232,2.703,233,2.89,241,2.981,333,3.454,339,3.398,427,5.863,465,8.53,619,7.194,693,7.973,1747,8.182,2121,9.58,2835,14.264,2850,14.264,2851,10.44]],["keywords/347",[]],["title/348",[321,567.945,333,216.646]],["content/348",[62,2.055,69,6.927,73,2.471,74,2.642,77,6.859,100,2.509,141,2.669,147,1.692,182,3.51,228,2.767,229,2.739,231,2.615,232,2.683,233,2.869,241,2.959,321,7.217,322,4.235,333,3.439,339,3.374,427,5.82,465,8.468,619,7.141,693,7.915,2121,9.51,2836,14.16,2851,10.364,2852,14.16]],["keywords/348",[]],["title/349",[225,422.142,2837,991.984]],["content/349",[19,3.901,52,3.642,59,3.778,62,2.374,73,2.063,74,1.473,77,3.824,82,5.721,85,2.991,100,1.399,111,8.025,134,3.584,141,1.488,147,1.413,167,6.522,173,4.47,182,1.567,225,7.15,228,1.543,229,1.527,231,1.458,232,1.496,233,1.6,236,6.275,240,3.171,253,4.183,308,5.926,333,2.299,335,2.72,423,6.695,457,4.792,499,5.408,509,5.408,721,6.299,752,9.928,762,6.732,778,6.275,1019,5.644,1079,5.644,1129,5.204,1131,5.521,1161,12.146,1163,8.454,1164,5.408,1165,5.644,1166,9.346,1167,5.408,1168,5.521,1169,5.644,1170,5.408,1171,5.644,1172,5.644,1173,5.644,1174,5.521,1175,5.644,1176,5.644,1328,5.521,1422,7.028,1694,8.876,1725,6.275,2045,5.408,2081,5.778,2162,7.399,2384,9.715,2776,7.028,2838,7.895,2853,7.399,2854,8.27,2855,7.895,2856,7.895,2857,7.895,2858,7.895,2859,7.895,2860,7.399]],["keywords/349",[]],["title/350",[385,524.53,2837,991.984]],["content/350",[44,7.397,56,6.121,62,1.808,69,5.685,73,2.028,74,2.168,77,5.629,86,3.27,89,1.771,100,2.059,113,5.053,122,5.685,123,6.263,127,7.66,141,2.191,147,1.389,171,7.276,173,8.811,182,3.089,228,2.271,229,2.248,231,2.146,232,2.202,233,2.355,333,2.259,339,2.769,359,9.237,375,7.397,385,8.822,389,6.053,396,2.559,427,4.777,464,8.506,465,6.95,474,9.547,619,5.861,693,6.496,965,7.66,1079,5.579,1207,7.96,1336,8.965,1794,9.91,2110,9.91,2114,10.346,2121,7.805,2144,9.91,2300,7.96,2837,10.346,2839,11.622,2851,8.506,2861,12.731,2862,10.891]],["keywords/350",[]],["title/351",[267,434.482,333,216.646]],["content/351",[62,2.579,73,1.755,74,1.877,100,1.782,114,12.258,141,1.896,147,1.685,182,1.996,228,1.966,229,1.946,231,1.857,232,1.906,233,2.038,241,2.102,267,8.097,321,5.127,333,1.956,335,7.155,370,5.021,385,4.735,1153,6.513,2824,9.427,2840,10.059,2863,11.019,2864,18.247,2865,11.019,2866,11.019,2867,11.019,2868,10.059,2869,11.019]],["keywords/351",[]],["title/352",[333,216.646,2841,1114.35]],["content/352",[62,2.369,73,2.13,74,2.277,100,2.163,111,6.221,141,2.301,147,1.921,160,3.913,182,2.422,228,2.385,229,2.361,231,2.254,232,2.313,233,2.473,238,4.657,241,2.551,253,4.317,275,3.716,328,3.596,333,3.496,339,2.908,530,6.03,793,6.656,1130,8.933,2870,13.37,2871,12.205,2872,13.37,2873,17.613,2874,13.37,2875,13.37,2876,13.37,2877,13.37,2878,13.37,2879,13.37,2880,13.37,2881,13.37,2882,13.37,2883,13.37,2884,13.37,2885,13.37,2886,13.37]],["keywords/352",[]],["title/353",[329,567.945,333,216.646]],["content/353",[19,4.322,62,2.398,73,1.526,74,1.632,82,3.178,83,7.186,85,3.314,88,5.203,89,1.333,100,2.668,101,4.77,121,1.946,126,3.681,136,4.006,141,1.649,147,1.799,160,2.129,161,5.154,166,5.991,169,7.787,173,7.222,174,5.231,181,7.459,182,1.736,183,6.253,186,2.616,197,4.156,198,5.231,228,1.709,229,1.692,231,1.615,232,1.657,233,1.772,234,3.652,238,3.337,241,3.839,254,4.556,255,5.231,256,5.309,267,6.453,275,2.663,322,2.616,329,8.435,333,3.571,335,6.062,339,3.587,412,6.952,413,7.186,421,4.714,472,6.718,530,4.322,556,4.714,567,5.567,971,7.186,1038,9.12,1136,4.714,1747,5.017,2013,9.84,2095,7.186,2386,12.757,2387,12.757,2735,6.253,2843,8.747,2871,12.757,2887,9.582,2888,9.582,2889,9.582,2890,9.582]],["keywords/353",[]],["title/354",[95,615.497]],["content/354",[85,5.609,87,12.212,89,2.772,95,8.11,163,7.359,165,11.768,378,11.768,389,9.47,402,11.422,403,11.768,404,13.181,405,8.174,406,9.686,407,12.164,408,12.164,409,13.181]],["keywords/354",[]],["title/355",[163,378.221,253,330.54,339,222.637]],["content/355",[89,2.57,95,7.52,163,7.954,191,8.088,253,5.964,339,4.682]],["keywords/355",[]],["title/356",[385,439.872,1079,334.988,1203,701.431]],["content/356",[]],["keywords/356",[]],["title/357",[]],["content/357",[16,6.343,52,1.739,64,5.379,122,5.144,178,5.08,186,5.202,189,2.394,193,9.678,240,2.719,251,6.693,253,2.394,317,6.542,328,1.514,337,2.476,339,3.464,341,5.044,349,4.07,353,4.289,354,3.983,355,4.65,365,5.359,377,5.249,378,7.711,384,4.382,385,6.844,416,6.931,422,2.968,425,5.56,439,6.931,452,6.025,453,6.113,465,6.288,468,6.025,470,8.695,496,5.772,510,7.826,547,7.062,548,7.696,559,5.56,619,5.303,643,14.539,644,10.248,693,5.877,699,7.929,910,8.111,1030,3.648,1079,4.622,1125,4.546,1189,6.343,1191,5.221,1202,6.343,1203,10.913,1205,10.168,1206,11.01,1213,5.56,1222,5.56,1623,6.025,1640,13.425,1745,12.934,1771,6.769,1773,6.769,1805,6.769,1815,5.56,2119,7.893,2121,7.062,2125,4.461,2137,9.854,2159,10.515,2169,6.769,2186,6.025,2189,6.769,2281,5.772,2300,4.636,2538,5.08,2733,6.769,2854,7.354,2891,7.414,2892,7.414,2893,6.025,2894,4.954,2895,7.414,2896,7.414,2897,7.414,2898,7.414,2899,7.414,2900,9.361,2901,7.414,2902,9.854,2903,6.769,2904,6.343,2905,7.414,2906,10.515,2907,6.343,2908,7.414,2909,5.379,2910,7.414,2911,6.025,2912,6.025,2913,7.414,2914,7.414]],["keywords/357",[]],["title/358",[69,345.578,182,140.207,333,137.345,337,258.453,338,442.303]],["content/358",[]],["keywords/358",[]],["title/359",[401,718.698]],["content/359",[31,7.615,49,9.584,53,5.416,59,5.12,69,7.84,182,3.181,186,4.793,253,5.669,315,12.03,416,10.564,422,7.028,1079,5.745,1336,12.363,2037,13.166]],["keywords/359",[]],["title/360",[333,216.646,337,407.679]],["content/360",[52,2.469,56,5.062,59,3.07,69,4.702,79,6.118,89,2.081,121,2.138,123,7.357,140,9.992,145,3.333,160,2.339,162,8.092,171,8.547,178,7.214,179,3.775,182,1.908,186,2.875,196,3.951,225,3.641,238,6.057,239,9.615,240,3.861,241,2.009,242,4.798,253,5.616,317,4.325,320,7.11,321,6.958,322,2.875,329,4.899,333,3.793,334,5.616,339,4.832,416,6.335,427,3.951,439,8.999,539,6.018,619,4.847,1079,6.196,1136,5.18,1320,7.214,1335,14.199,1633,7.414,2142,8.196,2143,9.007,2384,7.896,2468,7.896,2663,7.896,2915,10.529,2916,10.529,2917,10.529,2918,9.612,2919,10.529,2920,7.639,2921,10.529,2922,10.529]],["keywords/360",[]],["title/361",[69,457.128,333,181.68,337,341.881]],["content/361",[31,1.9,46,1.739,62,2.587,64,5.434,69,1.956,71,6.162,72,2.264,73,0.698,82,6.219,86,0.84,89,0.61,147,0.478,167,5.376,186,3.561,189,3.168,238,1.526,241,0.836,244,2.797,275,1.217,299,9.865,320,2.083,321,3.485,328,0.894,337,1.463,339,1.629,341,1.918,365,2.038,385,9.273,431,2.13,449,2.264,470,2.391,510,2.427,537,3.085,619,6.005,628,2.464,629,2.464,644,5.434,910,6.908,964,2.589,986,2.927,1030,2.155,1079,1.434,1100,3.285,1131,4.781,1153,2.589,1192,3.748,1200,5.617,1554,2.797,1682,2.797,2119,3.002,2125,2.636,2224,2.464,2300,2.739,2824,3.748,2846,3.999,2854,2.797,2868,3.999,2907,3.748,2911,3.56,2920,5.434,2923,3.748,2924,3.748,2925,3.56,2926,4.381,2927,4.381,2928,4.381,2929,4.381,2930,4.381,2931,4.381,2932,4.381,2933,4.381,2934,4.381,2935,4.381,2936,4.381,2937,4.381,2938,4.381,2939,4.381,2940,4.381,2941,3.999,2942,4.381,2943,4.381,2944,4.381,2945,4.381,2946,4.381,2947,3.999,2948,7.49,2949,11.552,2950,5.434,2951,16.734,2952,4.381,2953,14.896,2954,4.381,2955,4.381,2956,11.552,2957,3.999,2958,7.49,2959,5.434,2960,4.381,2961,4.381,2962,4.381,2963,9.434,2964,4.381,2965,4.381,2966,4.381,2967,3.56,2968,3.999,2969,7.49,2970,6.407,2971,6.837,2972,4.381,2973,4.381,2974,4.381,2975,4.381,2976,4.381,2977,4.381,2978,4.381,2979,4.381,2980,5.434,2981,7.49,2982,7.49,2983,7.49,2984,3.085,2985,4.381,2986,4.381,2987,4.381,2988,6.086,2989,5.434,2990,4.381,2991,4.381,2992,4.381,2993,3.085,2994,4.381,2995,4.381,2996,4.381,2997,5.274,2998,4.381,2999,4.381,3000,4.381,3001,3.999,3002,7.49,3003,4.381,3004,7.49,3005,6.086,3006,4.381,3007,5.434,3008,4.381,3009,4.381,3010,4.381,3011,4.381,3012,10.598,3013,4.381,3014,4.381,3015,4.381,3016,4.381,3017,4.381,3018,4.381,3019,6.837,3020,3.999,3021,3.999,3022,3.999,3023,3.999,3024,3.999,3025,3.999,3026,3.999]],["keywords/361",[]],["title/362",[186,279.495,339,222.637,1079,334.988]],["content/362",[46,4.715,62,2.577,123,5.844,134,8.268,164,6.485,182,2.947,244,7.584,253,3.836,254,5.648,453,6.305,464,7.937,465,6.485,510,6.581,556,5.844,619,5.469,693,8.301,793,5.914,1125,7.283,1135,8.908,1200,8.908,1578,6.305,1794,9.247,1815,8.908,2119,8.14,2121,7.283,2125,7.148,2300,7.428,2854,7.584,2911,9.653,2924,10.163,2925,9.653,3027,10.844,3028,11.879,3029,9.653,3030,22.504,3031,10.163,3032,10.163,3033,10.844,3034,11.879,3035,11.879,3036,9.653,3037,9.653]],["keywords/362",[]],["title/363",[56,586.883,1196,656.93]],["content/363",[56,8.441,59,5.12,89,2.443,121,3.565,189,5.669,253,5.669,320,8.347,333,3.116,385,7.544,539,10.034,1079,5.745,1153,12.35,1211,12.363]],["keywords/363",[]],["title/364",[69,457.128,182,185.465,321,476.28]],["content/364",[9,10.111,31,6.723,56,5.325,62,2.346,73,1.764,86,2.124,134,8.445,147,1.208,167,4.188,186,4.232,189,3.576,200,5.266,238,5.398,277,5.449,317,6.366,320,5.266,333,2.751,339,3.888,341,4.851,365,5.153,449,5.724,470,6.047,510,6.137,635,8.622,636,7.8,693,5.652,1030,5.449,1065,7.8,1079,3.625,1135,17.262,1136,8.795,1153,6.547,1196,5.961,1200,8.306,1548,10.111,1554,7.071,1578,9.489,2119,7.59,2125,6.665,2300,6.926,2854,7.071,2909,8.036,2925,9.001,3029,9.001,3031,9.476,3032,9.476,3036,9.001,3037,9.001,3038,11.076,3039,11.076,3040,11.076,3041,9.476,3042,9.476]],["keywords/364",[]],["title/365",[1079,494.664]],["content/365",[21,5.534,31,4.487,49,3.531,53,1.996,62,2.503,67,3.531,72,6.68,73,2.059,123,3.183,134,7.492,179,2.319,182,1.874,186,2.824,189,2.089,239,3.11,241,1.234,244,4.13,253,2.089,254,3.076,267,2.302,277,3.183,322,1.766,333,1.148,335,2.035,337,4.932,341,5.66,342,5.213,377,2.948,385,5.554,387,4.851,420,6.468,431,3.146,450,2.86,464,4.322,465,3.531,468,8.406,470,5.647,508,3.824,510,5.731,546,5.534,547,3.966,548,4.322,556,3.183,636,9.102,644,10.714,693,8.24,699,3.221,738,3.301,793,5.15,1044,4.045,1079,2.117,1135,15.215,1136,9.772,1187,5.905,1200,4.851,1323,3.759,1554,6.604,1578,7.838,1640,13.406,1745,4.851,1794,5.036,1815,11.075,2000,4.851,2013,4.555,2045,4.045,2119,4.433,2125,6.224,2171,5.905,2300,4.045,2473,5.534,2795,5.534,2854,4.13,2903,5.905,2904,5.534,2906,5.905,2909,4.693,2925,5.257,3027,5.905,3029,5.257,3031,5.534,3032,5.534,3033,5.905,3036,5.257,3037,5.257,3041,5.534,3042,5.534,3043,6.469,3044,9.443,3045,6.469,3046,6.469,3047,6.469,3048,6.469,3049,6.469,3050,10.344,3051,10.344,3052,14.768,3053,6.469,3054,4.433,3055,5.534,3056,5.905,3057,6.469,3058,5.905,3059,6.469,3060,6.469,3061,5.905,3062,6.469,3063,10.344,3064,10.344,3065,10.344,3066,5.905,3067,6.469,3068,6.469,3069,6.469,3070,5.905,3071,6.469]],["keywords/365",[]],["title/366",[197,529.487,1136,600.54]],["content/366",[8,12.936,53,4.372,55,9.468,62,2.508,122,6.328,197,6.147,349,5.007,445,7.055,1079,4.637,1119,9.046,1136,9,1141,7.736,1151,11.515,1153,8.375,1210,7.23,1234,11.03,1688,14.938,1705,11.515,2918,12.936,2959,10.281,2980,10.281,2989,10.281,2993,9.978,3029,11.515,3041,12.123,3072,14.17,3073,14.17]],["keywords/366",[]],["title/367",[225,522.751]],["content/367",[62,2.443,69,1.125,89,0.639,147,0.275,167,6.038,182,0.457,186,0.688,333,2.967,339,0.548,380,1.396,470,1.376,503,1.464,619,1.16,636,1.775,721,7.765,752,10.675,1079,5.353,1161,11.244,1163,10.421,1164,9.984,1165,10.421,1166,12.88,1167,9.984,1168,10.194,1169,10.421,1170,9.984,1171,10.421,1172,10.421,1173,10.421,1174,10.194,1175,10.421,1176,10.421,1554,1.609,1694,1.727,1731,14.576,2851,1.684,2854,1.609,2909,1.829,2920,1.829,2950,1.829,2959,1.829,2980,1.829,2984,1.775,2989,1.829,2993,1.775,2997,1.775,3007,1.829,3042,2.156,3074,2.156,3075,15.967,3076,15.967,3077,15.967,3078,15.967]],["keywords/367",[]],["title/368",[333,181.68,337,341.881,385,439.872]],["content/368",[62,1.957,73,2.287,145,4.546,147,1.567,333,2.549,337,4.796,385,6.171,470,7.84,636,10.113,644,14.791,1079,4.7,1131,9.168,1554,9.168,2125,8.642,2854,9.168,2909,10.419,2920,10.419,2949,14.995,2950,10.419,2956,14.995,2959,10.419,2963,14.995,2967,11.671,2980,10.419,2984,10.113,2988,14.995,2989,10.419,2993,10.113,2997,10.113,3005,11.671,3007,10.419,3074,12.286,3079,12.286,3080,13.11]],["keywords/368",[]],["title/369",[401,486.706,427,384.089,3081,567.155]],["content/369",[]],["keywords/369",[]],["title/370",[94,402.981,427,384.089,3081,567.155]],["content/370",[]],["keywords/370",[]],["title/371",[86,289.895]],["content/371",[52,3.954,86,4.205,94,6.638,121,3.424,200,8.017,316,14.425,396,3.389,427,7.652,449,8.714,1058,8.017,1195,7.605,1285,9.637,1747,8.83,2832,15.393,3081,9.342,3082,14.425]],["keywords/371",[]],["title/372",[94,595.066]],["content/372",[86,4.007,94,8.225,121,3.565,179,6.295,345,7.544,427,6.587,449,9.074,1058,8.347,1195,7.919,1285,10.034,3081,9.727,3082,15.02]],["keywords/372",[]],["title/373",[333,156.432,334,284.606,427,330.713,3081,488.338]],["content/373",[]],["keywords/373",[]],["title/374",[333,216.646,334,394.156]],["content/374",[53,5.507,89,2.484,200,8.487,333,3.745,334,6.814,337,5.962,396,3.587,427,6.698,449,9.226,3081,9.89]],["keywords/374",[]],["title/375",[160,227.437,427,384.089,3081,567.155]],["content/375",[]],["keywords/375",[]],["title/376",[]],["content/376",[147,2.033,160,4.139,198,10.171,516,10.481,517,11.012,518,11.012,3083,18.631]],["keywords/376",[]],["title/377",[427,458.012,3081,676.31]],["content/377",[]],["keywords/377",[]],["title/378",[86,289.895]],["content/378",[3,2.762,19,2.249,62,2.429,73,2.011,74,2.15,82,1.654,86,4.016,94,5.989,100,2.274,121,2.855,126,1.915,141,2.172,145,1.578,147,1.849,160,1.108,161,3.371,167,5.753,179,1.788,182,1.954,185,1.979,196,3.135,200,2.37,222,2.295,228,2.252,229,2.229,231,2.128,232,2.183,233,2.335,234,1.9,241,2.058,242,4.915,253,1.61,262,5.884,263,6.002,275,2.998,309,5.337,335,1.568,345,2.142,349,1.762,415,3.254,426,2.226,427,7.677,438,4.889,453,2.646,520,2.512,532,2.482,534,2.512,558,2.577,559,1.963,738,5.504,752,3.591,893,9.513,917,2.272,965,3,1026,4.319,1044,9.513,1058,3.973,1099,2.482,1129,3,1195,3.769,1328,3.183,1330,3.117,1331,2.722,1546,3.973,1578,4.435,2132,3.254,2224,4.701,2240,9.159,2468,10.544,2530,7.596,2531,6.791,2536,5.884,2538,3.416,2539,3.617,2650,7.392,3081,11.336,3084,9.229,3085,15.214,3086,9.848,3087,9.159,3088,8.09,3089,8.09,3090,8.09,3091,7.628,3092,7.628,3093,7.149,3094,7.628,3095,7.149,3096,7.149,3097,7.827,3098,7.827,3099,7.827,3100,7.827,3101,7.827,3102,12.028,3103,4.051,3104,4.051,3105,3.739,3106,3.739]],["keywords/378",[]],["title/379",[94,595.066]],["content/379",[3,2.815,19,2.292,52,1.191,62,2.377,73,2.035,74,2.176,82,1.685,86,3.766,94,8.094,100,2.299,121,2.886,126,1.952,141,2.198,145,1.608,147,1.864,160,1.129,161,3.417,167,5.808,182,1.981,185,2.017,196,1.906,222,2.339,228,2.279,229,2.256,231,2.154,232,2.21,233,2.363,234,1.936,241,2.086,242,4.983,262,5.978,263,6.074,275,3.039,309,5.388,335,1.598,345,2.183,415,3.316,426,2.269,427,7.714,438,4.948,453,2.697,520,2.56,532,2.529,534,2.56,558,2.626,559,2,738,5.58,752,3.648,893,9.604,917,2.315,965,3.057,1026,4.387,1044,9.604,1058,4.036,1099,2.529,1129,3.057,1195,3.829,1328,3.243,1330,3.177,1331,2.774,1546,4.036,1578,4.506,1747,7.441,2132,3.316,2224,7.187,2240,9.269,2530,7.7,2531,6.899,2536,5.978,2538,3.481,2539,3.686,2650,7.493,3081,11.391,3087,9.269,3088,8.201,3089,8.201,3090,8.201,3091,7.75,3092,7.75,3093,7.263,3094,7.75,3095,7.263,3096,7.263,3097,7.934,3098,7.934,3099,7.934,3100,7.934,3101,7.934,3103,4.129,3104,4.129,3105,3.81,3106,3.81,3107,9.355,3108,15.36,3109,10.935]],["keywords/379",[]],["title/380",[333,216.646,334,394.156]],["content/380",[62,2.39,73,2.078,74,2.222,82,1.743,100,2.342,121,2.941,126,2.019,141,2.245,147,1.891,160,1.168,161,3.501,167,5.908,182,2.03,185,2.086,222,2.42,228,2.328,229,2.304,231,2.2,232,2.257,233,2.413,234,2.003,241,2.137,242,5.105,262,6.15,263,7.428,275,3.113,309,5.48,333,3.52,334,6.909,337,1.755,345,2.259,415,3.43,427,7.78,438,4.339,453,2.79,520,2.649,558,2.716,559,2.069,738,8.448,752,3.753,893,9.769,917,2.395,1026,4.513,1044,9.769,1099,2.617,1129,3.163,1328,3.356,1546,4.152,1578,4.635,2132,3.43,2530,7.889,2536,7.889,2538,3.602,2539,3.813,2599,7.471,2650,7.677,3081,11.488,3087,9.467,3088,8.402,3089,8.402,3090,8.402,3093,7.471,3095,7.471,3096,7.471,3097,8.128,3098,8.128,3099,8.128,3100,8.128,3101,8.128,3104,4.271,3105,3.942,3106,3.942,3110,15.389,3111,15.623,3112,11.203,3113,8.733,3114,8.733,3115,8.733]],["keywords/380",[]],["title/381",[89,107.683,358,544.943,396,155.526,427,290.362,3081,428.755]],["content/381",[52,4.182,86,2.613,89,2.482,94,5.364,121,3.622,160,3.028,161,6.212,174,7.439,222,6.274,241,2.6,333,2.418,334,5.758,335,4.286,358,12.558,376,8.199,392,9.104,393,10.607,396,3.584,427,7.913,1099,6.784,1141,7.439,1195,6.146,1210,6.953,1560,7.788,2020,12.439,2545,12.439,3081,12.676,3084,11.658,3107,11.658,3110,11.658,3116,11.073,3117,13.627]],["keywords/381",[]],["title/382",[86,169.036,121,179.001,427,330.713,3081,488.338]],["content/382",[3,4.271,19,3.477,52,1.808,62,2.289,73,1.228,74,1.313,82,2.557,86,3.368,89,2.581,94,4.673,100,1.92,113,3.06,121,3.566,126,2.962,141,1.327,145,2.441,147,1.579,160,1.713,161,3.71,167,4.489,182,1.397,185,4.712,189,5.67,196,2.893,201,7.932,228,1.375,229,1.361,231,1.3,232,1.333,233,1.426,234,2.938,240,5.308,241,1.471,242,3.513,275,2.143,330,3.859,335,3.734,345,3.313,350,5.283,392,10.865,396,3.883,415,5.031,426,3.443,427,4.454,428,10.379,438,4.598,453,4.092,532,3.838,534,3.885,536,5.031,558,3.984,559,3.035,738,3.934,893,7.423,917,3.513,965,4.639,1044,7.423,1058,6.883,1079,3.885,1099,5.91,1129,4.639,1195,5.355,1328,4.922,1330,4.821,1331,4.209,1560,4.406,1578,4.092,2132,5.031,2224,4.337,2397,6.596,2468,5.782,2530,5.429,2536,8.36,2538,5.283,2539,8.613,2650,5.283,2735,7.748,3081,4.271,3084,10.156,3087,5.593,3088,5.782,3089,5.782,3090,5.782,3097,5.593,3098,5.593,3099,5.593,3100,5.593,3101,5.593,3102,10.156,3103,6.265,3105,5.782,3106,5.782,3116,6.265,3118,6.596,3119,6.596,3120,6.596,3121,10.156,3122,10.156,3123,10.156]],["keywords/382",[]],["title/383",[94,346.98,121,179.001,427,330.713,3081,488.338]],["content/383",[3,4.303,19,3.503,52,1.821,62,2.221,73,1.237,74,1.323,82,2.576,86,3.715,89,2.588,94,4.7,100,1.931,113,3.083,121,3.578,126,2.983,141,1.336,145,2.458,147,1.586,160,1.725,161,3.731,167,4.514,182,1.407,185,4.739,189,5.689,196,2.914,201,7.976,228,1.385,229,1.371,231,1.309,232,1.343,233,1.436,234,2.96,240,5.332,241,1.482,242,3.539,275,2.158,330,3.881,335,3.755,345,3.337,350,5.321,392,10.906,396,3.893,415,5.068,426,3.468,427,4.479,428,10.413,438,4.623,453,4.122,532,3.866,534,3.913,536,5.068,558,4.013,559,3.057,738,3.963,893,7.465,917,3.539,965,4.673,1044,7.465,1058,6.914,1079,3.907,1099,5.943,1129,4.673,1195,5.385,1328,4.958,1330,4.856,1331,4.239,1560,4.438,1578,4.122,1747,4.066,2132,5.068,2397,10.213,2530,5.468,2536,8.407,2538,5.321,2539,8.661,2650,5.321,2735,7.791,3081,4.303,3087,5.634,3088,5.824,3089,5.824,3090,5.824,3097,5.634,3098,5.634,3099,5.634,3100,5.634,3101,5.634,3103,6.311,3105,5.824,3106,5.824,3107,10.213,3116,6.311,3118,6.644,3119,6.644,3120,6.644,3121,10.213,3122,10.213,3123,10.213]],["keywords/383",[]],["title/384",[121,157.16,333,137.345,334,249.88,427,290.362,3081,428.755]],["content/384",[62,2.277,73,1.361,74,1.455,82,2.834,89,2.686,100,2.077,113,3.392,121,3.732,126,3.283,141,1.47,147,1.682,160,1.898,161,4.012,167,4.854,182,1.548,185,5.096,189,5.934,201,8.577,228,1.524,229,1.509,231,1.44,232,1.478,233,1.58,234,3.257,240,5.654,241,1.63,242,3.893,275,2.375,330,4.173,333,1.516,334,4.979,335,2.687,345,3.671,350,5.855,392,11.455,396,4.024,415,5.576,427,4.817,428,10.862,438,3.309,453,4.535,536,5.576,558,4.416,559,3.364,738,4.36,893,8.027,917,3.893,1044,8.027,1058,4.062,1079,4.201,1099,6.391,1129,5.141,1328,5.455,1560,4.883,1578,4.535,2132,5.576,2530,6.017,2536,10.858,2538,5.855,2539,9.314,2650,5.855,2735,8.378,3081,4.734,3087,6.199,3088,6.408,3089,6.408,3090,6.408,3097,6.199,3098,6.199,3099,6.199,3100,6.199,3101,6.199,3105,6.408,3106,6.408,3110,10.982,3116,6.943,3118,7.31,3119,7.31,3120,7.31,3121,10.982,3122,10.982,3123,10.982]],["keywords/384",[]],["title/385",[427,458.012,460,697.681]],["content/385",[52,3.266,62,2.131,73,2.219,74,1.625,86,2.671,89,1.327,94,5.483,100,1.543,108,5.542,121,1.937,134,7.496,141,1.641,142,5.134,147,1.041,161,2.981,167,6.841,186,2.604,189,4.497,201,6.373,225,3.299,228,1.702,229,1.684,231,1.608,232,1.65,233,1.764,234,3.636,315,6.536,317,3.918,320,4.535,335,3,396,2.799,427,6.173,438,5.394,445,6.934,460,5.452,503,5.542,559,6.476,803,8.381,893,10.287,911,4.995,931,5.74,952,10.885,1019,6.225,1026,4.93,1044,11.312,1079,5.384,1099,4.749,1195,4.303,1210,7.107,1347,6.536,1561,5.965,1578,5.063,1654,7.154,2038,7.752,2092,8.708,2536,6.717,2620,8.161,2650,9.544,2900,7.752,3081,5.285,3086,8.708,3087,6.921,3097,10.105,3098,6.921,3099,10.105,3100,10.105,3101,6.921,3102,8.161,3124,8.708,3125,9.539,3126,9.539,3127,9.539,3128,9.539,3129,9.539,3130,9.539,3131,9.539,3132,8.708]],["keywords/385",[]],["title/386",[328,208.982,339,222.637,401,486.706]],["content/386",[]],["keywords/386",[]],["title/387",[339,328.759]],["content/387",[3,8.434,19,4.869,20,8.773,56,5.19,59,5.584,65,6.273,68,5.133,86,2.07,89,2.453,95,4.396,98,8.31,101,5.375,102,5.73,121,3.091,122,4.821,160,2.399,165,7.832,196,4.051,225,3.733,240,3.959,321,5.023,328,3.599,329,5.023,330,3.509,331,4.25,333,2.702,335,6.35,336,5.81,337,3.605,338,8.7,339,4.781,422,4.321,431,7.402,438,5.895,440,5.509,460,6.17,502,5.579,529,6.496,551,7.046,564,6.496,619,4.97,693,5.509,750,6.75,778,7.832,965,6.496,1141,5.894,1195,4.869,1196,5.81,1277,8.096,1340,6.073,1413,8.096,2013,7.602,2112,8.404,2121,6.619,2544,7.832,2736,13.896,3133,9.855,3134,9.236,3135,10.796,3136,10.796,3137,10.796,3138,10.796,3139,10.796,3140,10.796]],["keywords/387",[]],["title/388",[160,227.437,328,208.982,339,222.637]],["content/388",[]],["keywords/388",[]],["title/389",[]],["content/389",[52,2.985,128,8.127,147,1.389,160,4.271,161,6.007,191,5.575,198,6.95,222,5.861,225,6.647,244,8.127,321,5.923,322,3.476,328,2.599,333,2.259,339,4.791,341,5.575,349,4.498,385,5.47,509,14.069,516,7.162,517,7.525,518,7.525,520,6.416,1023,9.547,1153,7.525,1159,9.91,1204,8.506,1255,8.965,1256,8.309,1257,7.96,1319,10.891,1524,9.547,3141,11.622,3142,11.622,3143,11.622,3144,11.622,3145,11.622,3146,11.622,3147,11.622,3148,11.622,3149,11.622,3150,11.622,3151,11.622]],["keywords/389",[]],["title/390",[339,328.759]],["content/390",[52,1.594,62,2.307,73,1.714,74,1.158,77,3.007,82,5.038,86,2.064,89,0.946,100,1.1,120,6.282,141,1.17,147,1.174,160,1.511,170,3.951,179,3.859,182,1.232,185,6.029,186,2.938,197,2.949,228,1.213,229,1.201,231,1.146,232,1.176,233,1.258,238,5.29,241,2.898,242,3.098,244,4.341,253,3.475,264,7.579,275,2.991,290,4.437,299,3.659,320,3.233,328,2.197,333,1.207,339,3.828,373,3.345,377,4.904,378,3.712,396,2.163,405,3.426,422,7.381,426,3.036,431,3.306,438,2.633,457,3.767,465,3.712,472,7.302,530,4.854,532,3.385,533,4.251,534,3.426,547,8.189,548,8.925,556,6.571,557,4.341,558,5.562,559,5.258,560,4.788,561,6.994,562,5.293,563,6.729,564,8.037,565,4.341,566,4.933,567,3.951,568,3.13,569,7.024,570,7.024,575,5.712,619,3.13,628,8.545,629,8.545,693,5.492,694,5.099,696,3.514,697,5.099,699,6.65,700,6.871,701,8.681,971,5.099,986,4.543,1271,4.251,1330,4.251,1331,3.712,1356,4.169,1466,5.817,2024,6.207,2121,4.169,2177,5.099,2224,3.825,2300,4.251,2970,9.207,3152,6.207,3153,6.207,3154,6.207,3155,6.207,3156,6.207,3157,6.207,3158,6.207,3159,6.207,3160,6.207,3161,6.207,3162,6.207,3163,6.207,3164,6.207,3165,6.207,3166,6.207,3167,6.207,3168,6.207,3169,6.207,3170,6.207,3171,6.207,3172,6.207,3173,6.207,3174,6.207,3175,6.207,3176,6.207,3177,6.207,3178,6.207]],["keywords/390",[]],["title/391",[339,328.759]],["content/391",[62,2.479,73,1.831,74,1.958,77,5.083,86,2.204,100,1.859,141,1.978,147,1.735,182,2.083,186,3.138,228,2.051,229,2.03,231,1.938,232,1.988,233,2.126,241,3.479,244,7.338,264,11.199,275,3.194,328,2.347,333,2.04,339,2.5,628,6.466,629,6.466,693,5.865,694,8.62,701,6.57,986,7.68,1466,9.834,1747,6.019,2177,8.62,2224,6.466,2970,13.606,3141,10.493,3152,10.493,3153,10.493,3154,10.493,3155,10.493,3156,10.493,3157,10.493,3158,10.493,3159,10.493,3160,10.493,3161,10.493,3162,10.493,3163,10.493,3164,10.493,3165,10.493,3166,10.493,3167,10.493,3168,10.493,3169,10.493,3170,10.493,3171,10.493,3172,10.493,3173,10.493,3174,10.493,3175,10.493,3176,10.493,3177,10.493,3178,10.493,3179,11.495]],["keywords/391",[]],["title/392",[321,567.945,509,763.274]],["content/392",[62,2.064,69,6.978,73,2.489,74,2.661,77,6.909,100,2.528,141,2.689,147,1.705,182,3.526,228,2.787,229,2.759,231,2.634,232,2.703,233,2.89,241,2.981,321,7.27,322,4.266,339,4.233,427,5.863,465,8.53,619,7.194,693,7.973,2121,9.58,2851,10.44,3142,14.264,3180,15.625]],["keywords/392",[]],["title/393",[509,763.274,1153,721.499]],["content/393",[62,2.366,73,2.526,74,2.701,100,2.565,141,2.729,147,2.143,167,8.07,182,2.873,228,2.829,229,2.8,231,2.673,232,2.743,233,2.933,333,2.814,339,3.449,1086,12.344,1153,11.61,2941,14.476,3143,14.476,3181,15.858]],["keywords/393",[]],["title/394",[509,763.274,1204,815.593]],["content/394",[52,3.56,62,2.329,73,2.418,74,2.585,100,2.456,122,6.779,141,2.612,147,2.085,167,7.911,182,2.75,228,2.708,229,2.68,231,2.559,232,2.626,233,2.808,333,2.694,339,3.301,1086,11.816,1099,7.557,1204,12.771,1210,7.746,1226,12.986,1232,8.41,3144,13.858,3182,15.18,3183,15.18]],["keywords/394",[]],["title/395",[225,422.142,509,763.274]],["content/395",[19,3.917,52,3.651,59,3.789,62,2.376,73,2.07,74,1.479,77,3.84,82,5.733,85,3.003,100,1.405,111,8.041,134,3.598,141,1.494,147,1.418,167,6.536,173,4.488,182,1.573,225,7.158,228,1.549,229,1.533,231,1.464,232,1.502,233,1.606,236,6.3,240,3.184,253,4.196,308,5.95,335,2.731,339,1.889,423,6.715,457,4.811,499,5.43,509,5.43,721,6.319,752,9.934,762,6.76,778,6.3,1019,5.667,1079,5.656,1129,5.225,1131,5.544,1161,12.17,1163,8.48,1164,5.43,1165,5.667,1166,9.369,1167,5.43,1168,5.544,1169,5.667,1170,5.43,1171,5.667,1172,5.667,1173,5.667,1174,5.544,1175,5.667,1176,5.667,1328,5.544,1422,7.057,1694,8.904,1725,6.3,2045,5.43,2081,5.802,2162,7.429,2384,9.744,2776,7.057,2854,8.295,2855,7.927,2856,7.927,2857,7.927,2858,7.927,2859,7.927,2860,7.429,3145,7.927,3184,8.684]],["keywords/395",[]],["title/396",[225,354.009,509,640.083,1159,796.847]],["content/396",[52,1.988,56,4.075,59,2.472,62,2.537,73,1.35,74,1.444,77,3.748,82,2.812,100,1.371,111,7.14,113,3.365,134,3.512,141,1.459,145,2.683,147,1.392,167,5.803,182,1.536,196,3.18,225,6.333,228,1.512,229,1.497,231,1.429,232,1.466,233,1.568,240,3.108,253,2.737,299,10.747,335,2.666,339,1.844,423,4.381,475,7.252,478,6.15,489,10.37,505,5.197,509,5.3,575,6.773,721,6.205,752,7.87,778,6.15,1019,5.532,1030,4.17,1079,5.588,1161,5.969,1195,3.823,1204,5.663,1240,5.808,1655,5.969,1687,7.252,1689,7.252,1690,7.252,1691,7.252,1694,5.808,1725,6.15,2045,5.3,2337,10.37,2648,6.888,2953,16.228,3146,7.738,3185,8.476,3186,11.649,3187,18.23,3188,7.738,3189,7.738,3190,7.738,3191,7.738,3192,11.649,3193,7.738,3194,11.649,3195,7.738,3196,11.649,3197,7.738,3198,7.738,3199,8.476,3200,7.738,3201,8.476,3202,8.476,3203,6.888]],["keywords/396",[]],["title/397",[225,354.009,509,640.083,1023,767.682]],["content/397",[62,2.514,73,1.992,74,2.13,77,5.53,100,2.023,111,7.838,113,4.964,141,2.152,147,1.838,167,8.962,182,2.266,225,5.826,228,2.231,229,2.208,231,2.108,232,2.163,233,2.313,253,4.038,335,3.934,478,9.074,509,7.82,636,8.807,1079,6.963,1204,8.356,1695,11.417,1725,14.789,2984,8.807,2993,8.807,2997,8.807,3147,11.417,3204,12.507]],["keywords/397",[]],["title/398",[385,524.53,509,763.274]],["content/398",[44,7.441,56,6.158,62,1.815,69,5.719,73,2.04,74,2.181,77,5.663,86,3.283,89,1.782,100,2.072,113,5.084,122,5.719,123,6.301,127,7.706,141,2.204,147,1.397,171,7.32,173,8.847,182,3.101,228,2.285,229,2.261,231,2.159,232,2.215,233,2.369,339,2.785,359,9.292,375,7.441,385,8.843,389,6.089,396,2.574,427,4.805,464,8.557,465,6.992,474,9.605,619,5.896,693,6.535,965,7.706,1079,5.602,1207,8.008,1336,9.019,1794,9.97,2110,9.97,2114,10.408,2121,7.852,2144,9.97,2300,8.008,2851,8.557,2862,10.957,3148,11.692,3205,12.807,3206,12.807]],["keywords/398",[]],["title/399",[328,208.982,339,222.637,341,448.287]],["content/399",[52,4.046,62,2.349,73,2.065,74,2.208,95,5.278,100,2.097,103,6.976,114,7.077,141,2.231,147,1.883,160,2.88,161,5.392,182,2.349,191,5.677,228,2.313,229,2.289,231,2.185,232,2.242,233,2.398,234,4.941,241,3.292,267,4.614,328,2.646,335,5.427,339,3.753,342,6.533,365,6.031,388,10.534,645,15.753,1136,6.377,1152,9.128,1153,7.662,3149,11.834,3207,12.963,3208,12.963,3209,12.963,3210,12.963,3211,12.963,3212,12.963,3213,12.963,3214,12.963,3215,12.963,3216,12.963,3217,12.963,3218,12.963]],["keywords/399",[]],["title/400",[333,216.646,339,265.486]],["content/400",[57,11.384,62,2.027,69,6.779,73,2.418,74,2.585,100,2.456,111,7.063,141,2.612,147,1.656,161,5.973,162,7.063,182,3.463,200,7.217,228,2.708,229,2.68,231,2.559,232,2.626,233,2.808,328,3.099,333,2.694,339,3.301,373,7.468,387,11.384,396,3.051,418,12.986,421,7.468,1178,10.142,1336,10.689,3151,13.858,3219,15.18]],["keywords/400",[]],["title/401",[339,265.486,1524,915.431]],["content/401",[62,2.018,68,7.166,73,2.401,74,2.567,95,6.137,100,2.438,121,3.061,141,2.594,147,1.644,161,5.946,174,8.228,191,6.601,200,7.166,225,5.212,228,2.689,229,2.661,231,2.541,232,2.607,233,2.788,267,5.365,321,7.013,329,7.013,330,4.899,335,4.741,339,3.278,342,7.596,370,6.868,1153,8.909,1204,10.071,1524,11.303,3150,13.759,3220,15.073]],["keywords/401",[]],["title/402",[95,615.497]],["content/402",[85,5.609,87,12.212,89,2.772,95,8.11,163,7.359,165,11.768,378,11.768,389,9.47,402,11.422,403,11.768,404,13.181,405,8.174,406,9.686,407,12.164,408,12.164,409,13.181]],["keywords/402",[]],["title/403",[163,378.221,253,330.54,339,222.637]],["content/403",[89,2.57,95,7.52,163,7.954,191,8.088,253,5.964,339,4.682]],["keywords/403",[]],["title/404",[401,580.377,1645,763.274]],["content/404",[50,11.484,145,5.898,330,7.033,422,7.458,964,11.012]],["keywords/404",[]],["title/405",[86,234.102,481,721.499]],["content/405",[]],["keywords/405",[]],["title/406",[]],["content/406",[46,6.202,54,7.429,86,2.997,89,2.174,145,4.947,147,1.705,160,4.93,162,7.27,191,6.843,198,8.53,222,7.194,253,5.045,315,10.707,320,7.429,322,4.266,362,9.975,481,11.504,516,8.79,517,9.235,518,9.235,520,7.874,1272,11.718,1274,12.698,3221,15.625,3222,14.264]],["keywords/406",[]],["title/407",[253,394.156,481,721.499]],["content/407",[]],["keywords/407",[]],["title/408",[86,234.102,481,721.499]],["content/408",[62,2.518,73,2.016,74,2.155,86,3.257,89,1.761,100,2.047,141,2.178,147,1.853,170,7.353,182,2.293,189,6.613,228,2.258,229,2.234,231,2.133,232,2.189,233,2.341,241,3.24,307,9.139,396,2.543,481,12.106,532,6.3,696,8.776,911,6.627,917,5.766,1058,6.017,3132,11.553,3222,11.553,3223,12.655,3224,12.655,3225,12.655,3226,12.655,3227,16.981,3228,16.981,3229,12.655,3230,12.655,3231,12.655,3232,12.655]],["keywords/408",[]],["title/409",[69,393.602,182,159.691,328,179.94,339,191.697]],["content/409",[]],["keywords/409",[]],["title/410",[401,718.698]],["content/410",[31,7.615,53,5.416,59,5.12,69,7.84,89,2.443,182,3.181,186,4.793,253,5.669,315,12.03,416,10.564,422,7.028,1079,5.745,1336,12.363,2037,13.166]],["keywords/410",[]],["title/411",[328,249.203,339,265.486]],["content/411",[31,6.698,49,6.015,53,3.399,54,5.239,56,5.298,59,3.213,62,2.413,69,4.921,73,1.755,86,2.113,94,4.338,113,4.374,131,6.105,134,6.399,140,7.362,147,1.202,167,4.167,182,1.996,186,3.009,238,3.838,239,5.298,241,2.946,242,8.804,253,3.558,275,3.062,328,4.153,331,4.338,333,2.741,335,4.857,339,4.424,353,6.638,354,6.165,369,5.93,380,6.105,385,4.735,396,2.214,449,7.981,628,6.199,629,6.199,701,6.298,986,7.362,1058,5.239,1135,8.263,1235,7.995,1240,7.55,1561,6.89,1631,8.263,2044,7.55,2142,8.577,2851,10.318,3233,11.019,3234,17.828,3235,11.019]],["keywords/411",[]],["title/412",[56,423.767,328,179.94,339,191.697,1196,474.345]],["content/412",[56,8.655,62,2.249,73,2.867,147,1.964,167,6.807,328,3.675,339,3.915,1153,10.64,1196,9.688,2851,12.028]],["keywords/412",[]],["title/413",[328,179.94,339,191.697,530,397.558,1196,474.345]],["content/413",[52,4.614,54,5.465,55,10.626,56,7.646,59,4.638,62,1.687,73,1.831,82,5.275,88,4.28,111,7.399,113,4.563,122,8.787,147,1.254,167,4.347,186,3.138,225,3.975,328,2.347,333,2.823,335,3.615,339,3.966,349,4.062,389,5.465,412,8.34,431,5.59,530,7.173,559,4.525,619,7.322,1021,10.493,1026,5.941,1099,5.723,1136,7.824,1152,12.841,1196,8.559,1204,10.626,1210,5.865,1226,9.834,1229,10.493,1230,15.6,1231,10.493,1232,6.368,1236,13.606,1237,9.834,1623,9.341,1706,8.62,2125,6.917,2523,9.341,2851,7.68,2904,9.834,3236,11.495,3237,10.493,3238,9.341,3239,11.495,3240,11.495]],["keywords/413",[]],["title/414",[321,476.28,328,208.982,339,222.637]],["content/414",[31,2.012,46,1.841,58,2.397,62,2.59,64,5.705,69,2.071,71,6.397,72,2.397,73,0.739,82,6.335,89,0.645,98,2.532,127,2.791,147,0.506,186,3.683,189,3.305,238,1.615,299,10.06,320,2.205,321,3.658,328,2.089,337,1.549,339,2.226,341,2.031,365,2.158,385,9.375,431,2.255,449,2.397,470,2.532,503,2.695,510,2.57,537,3.266,619,3.62,628,2.609,629,2.609,644,5.705,964,2.741,1028,3.266,1030,2.282,1079,2.573,1090,2.429,1131,5.02,1138,5.537,1178,3.099,1192,3.968,1197,4.234,1198,4.234,1199,4.234,1200,5.897,1554,2.961,1682,2.961,1806,7.967,2119,3.178,2125,2.791,2300,4.916,2851,3.099,2854,2.961,2907,3.968,2911,3.769,2920,5.705,2923,3.968,2924,3.968,2947,4.234,2949,11.91,2950,5.705,2951,17.064,2953,15.191,2956,11.91,2957,4.234,2959,5.705,2963,9.794,2967,3.769,2968,4.234,2971,7.178,2980,5.705,2984,3.266,2988,6.39,2989,5.705,2993,3.266,2997,5.537,3001,4.234,3005,6.39,3007,5.705,3012,11.003,3019,7.178,3020,4.234,3021,4.234,3022,4.234,3023,4.234,3024,4.234,3025,4.234,3026,4.234,3079,3.968,3241,4.638,3242,4.638,3243,4.638,3244,4.638,3245,4.638,3246,4.638,3247,4.638,3248,7.863,3249,4.638,3250,4.638,3251,7.863,3252,4.638,3253,4.638,3254,4.638,3255,4.638,3256,7.863,3257,7.863,3258,4.638,3259,7.863,3260,4.638,3261,7.863,3262,4.638,3263,4.638,3264,4.638,3265,4.638,3266,7.863,3267,7.863,3268,7.863,3269,4.638,3270,7.863,3271,4.638,3272,7.863,3273,4.638,3274,4.638,3275,4.638,3276,7.863,3277,7.863,3278,7.863,3279,4.638,3280,4.638,3281,4.638,3282,4.638,3283,4.638,3284,4.638,3285,4.638]],["keywords/414",[]],["title/415",[225,354.009,328,208.982,339,222.637]],["content/415",[31,1.623,52,0.878,54,3.108,56,1.799,59,2.538,62,2.566,73,0.596,88,1.393,98,2.043,111,3.041,113,2.594,122,1.671,134,2.708,145,1.185,147,0.949,160,1.933,167,8.383,171,2.139,179,1.342,225,5.613,238,1.303,253,1.208,255,2.043,299,7.537,319,5.312,322,2.376,328,1.776,335,1.177,339,1.893,374,5.961,380,2.073,440,1.909,470,2.043,472,1.799,475,3.201,478,2.715,489,5.312,494,1.909,503,2.174,530,2.948,567,2.174,575,3.469,636,2.635,721,4.232,752,8.232,793,1.863,1019,2.442,1023,4.902,1079,6.444,1082,3.416,1099,3.254,1141,2.043,1153,2.212,1159,2.913,1161,4.603,1163,2.442,1164,2.34,1165,2.442,1166,5.236,1167,2.34,1168,2.389,1169,2.442,1170,2.34,1171,2.442,1172,2.442,1173,2.442,1174,2.389,1175,2.442,1176,2.442,1204,5.814,1210,1.909,1228,3.416,1232,2.073,1240,2.564,1282,1.909,1394,5.592,1554,2.389,1633,2.635,1655,2.635,1687,3.201,1688,6.659,1689,3.201,1690,3.201,1691,3.201,1750,3.201,2000,4.902,2125,2.252,2337,5.312,2460,2.715,2522,2.913,2648,3.041,2854,2.389,2862,3.201,2909,2.715,2920,2.715,2950,2.715,2953,11.382,2959,2.715,2980,2.715,2984,2.635,2989,2.715,2993,2.635,2997,2.635,3007,2.715,3186,5.967,3187,12.786,3188,3.416,3189,3.416,3190,3.416,3191,3.416,3192,5.967,3193,3.416,3194,5.967,3195,3.416,3196,5.967,3197,3.416,3198,3.416,3200,3.416,3286,3.416,3287,3.742,3288,3.742,3289,3.742,3290,3.416,3291,18.854,3292,18.854,3293,3.742,3294,3.742,3295,6.536,3296,3.742,3297,3.742,3298,3.742,3299,3.742,3300,3.742,3301,3.742,3302,3.742,3303,3.742,3304,3.742,3305,3.742,3306,3.742,3307,3.742,3308,3.742,3309,3.742,3310,3.742,3311,3.742,3312,3.742,3313,3.742,3314,3.742,3315,3.742,3316,3.742,3317,3.742,3318,3.742,3319,3.742,3320,3.742,3321,3.742,3322,3.742,3323,3.742,3324,3.742,3325,3.742,3326,3.742,3327,3.742,3328,3.742,3329,3.742,3330,3.742,3331,3.742,3332,3.742,3333,3.742,3334,3.742,3335,3.742,3336,3.742,3337,3.742,3338,3.742,3339,3.742,3340,3.742,3341,3.742,3342,3.742,3343,3.742,3344,3.742,3345,3.742,3346,3.742,3347,3.742,3348,3.742,3349,3.742,3350,3.742,3351,3.742,3352,3.742,3353,3.742,3354,3.742,3355,3.742,3356,3.742,3357,3.742,3358,3.742,3359,3.742,3360,3.742,3361,3.742,3362,3.742,3363,3.742,3364,3.742,3365,3.742,3366,3.742,3367,3.742,3368,3.742,3369,3.742,3370,3.742,3371,3.742,3372,3.742]],["keywords/415",[]],["title/416",[328,208.982,339,222.637,385,439.872]],["content/416",[62,1.957,73,2.287,145,4.546,147,1.567,328,2.932,339,3.123,385,6.171,470,7.84,636,10.113,644,14.791,1079,4.7,1131,9.168,1554,9.168,2125,8.642,2854,9.168,2909,10.419,2920,10.419,2949,14.995,2950,10.419,2956,14.995,2959,10.419,2963,14.995,2967,11.671,2980,10.419,2984,10.113,2988,14.995,2989,10.419,2993,10.113,2997,10.113,3005,11.671,3007,10.419,3074,12.286,3079,12.286,3080,13.11]],["keywords/416",[]],["title/417",[86,196.318,94,402.981,401,486.706]],["content/417",[]],["keywords/417",[]],["title/418",[]],["content/418",[3,7.139,52,3.021,56,6.195,59,5.012,60,10.03,63,9.663,67,7.034,68,6.126,81,9.663,85,4.456,86,4.122,89,2.691,94,6.766,108,7.486,128,8.226,164,7.034,254,6.126,324,3.021,326,7.753,383,8.829,396,4.319,427,6.448,429,6.195,438,4.99,460,9.823,502,9.995,508,7.616,564,7.753,1195,7.752,1210,6.575,1232,7.139,1282,6.575,1544,10.471,1545,10.03,1546,6.126,1584,7.9,2044,8.829,2580,10.03,2831,13.378,3373,12.885]],["keywords/418",[]],["title/419",[86,169.036,89,122.648,94,346.98,335,277.226]],["content/419",[31,5.522,44,7.397,46,5.053,50,6.757,59,3.713,65,7.397,67,6.95,71,6.757,85,4.403,86,3.27,89,1.771,94,9.117,171,7.276,196,6.397,240,4.668,320,6.053,341,5.575,342,6.416,370,5.801,423,6.58,429,6.121,462,5.47,482,14.585,493,7.525,501,7.96,969,6.416,1062,7.805,1115,7.96,1143,10.346,1282,6.496,1331,6.95,1470,8.965,1547,10.891,1554,8.127,2031,9.91,2127,7.162,2469,10.891,2735,8.309,2894,8.506,3374,12.731,3375,12.731,3376,12.731,3377,12.731,3378,12.731,3379,12.731,3380,12.731,3381,12.731,3382,12.731,3383,12.731]],["keywords/419",[]],["title/420",[86,196.318,160,227.437,324,240.047]],["content/420",[2,9.762,46,5.341,49,7.345,52,3.155,53,4.151,54,6.397,85,4.653,86,3.789,90,6.469,94,6.962,128,8.589,160,3.929,162,10.613,196,7.413,221,7.454,240,4.933,320,6.397,321,6.26,324,3.155,335,5.563,377,6.131,502,10.211,1132,9.474,1235,9.762,1470,9.474,1547,11.51,2894,8.989,3384,13.454,3385,13.454,3386,13.454,3387,13.454,3388,13.454,3389,17.686,3390,11.51,3391,12.282]],["keywords/420",[]],["title/421",[66,1096.714]],["content/421",[]],["keywords/421",[]],["title/422",[66,885.64,89,169.857]],["content/422",[29,15.321,49,7.487,52,3.216,59,5.223,65,10.405,66,9.95,68,6.52,69,6.124,74,2.336,76,11.733,81,10.285,89,2.775,90,6.594,91,9.95,93,11.733,101,6.828,145,4.342,168,12.52,169,11.145,175,7.181,180,11.145,320,6.52,324,3.216,380,7.598,405,6.911,426,6.124,439,8.252,473,12.52,1256,13.015,1257,12.469,1340,10.075,1545,10.675,2031,13.941,2631,11.733,3392,13.714,3393,13.714,3394,13.714]],["keywords/422",[]],["title/423",[94,595.066]],["content/423",[17,11.029,19,5.449,52,2.833,53,3.727,54,5.744,62,2.23,74,2.058,88,4.498,89,2.29,90,5.808,94,4.756,99,8.507,100,1.954,121,2.453,131,6.693,136,5.051,141,2.079,147,1.795,160,2.684,161,3.775,164,6.595,173,8.505,186,3.299,228,2.155,229,2.133,230,7.407,234,4.605,250,7.554,370,8.528,415,7.884,426,5.395,428,7.141,429,10.108,432,9.818,433,11.029,434,11.029,435,11.029,438,4.679,440,6.165,441,9.902,442,6.595,443,5.449,444,13.373,445,6.015,952,7.269,965,7.269,1149,11.029,1207,7.554,1586,8.507,3395,11.029,3396,12.081,3397,11.029,3398,12.081,3399,12.081]],["keywords/423",[]],["title/424",[69,393.602,328,179.94,339,191.697,2044,603.954]],["content/424",[29,12.204,37,10.698,46,7.293,59,4.16,62,1.949,67,7.788,69,8.204,74,2.43,90,6.858,121,2.897,136,5.964,141,2.455,147,1.556,160,3.169,229,2.519,231,2.405,232,2.467,238,4.968,241,3.505,254,6.782,328,4.149,339,3.996,375,8.288,413,10.698,437,9.775,568,6.568,670,8.288,1760,10.35,1779,9.531,2044,9.775,2045,8.92,2208,13.022,3400,14.265,3401,10.35,3402,14.265]],["keywords/424",[]],["title/425",[69,457.128,333,181.68,339,222.637]],["content/425",[58,7.902,59,5.599,62,2.036,72,7.902,74,2.604,90,7.351,141,2.631,147,1.668,229,2.699,231,2.577,232,2.644,253,4.937,322,4.174,333,2.713,337,5.106,339,4.788,423,7.902,437,10.476,568,7.039,1257,9.56,1760,11.092,1779,10.215,2013,10.766,2731,13.08,2848,13.08,3401,11.092,3403,12.424]],["keywords/425",[]],["title/426",[69,393.602,251,512.122,333,156.432,339,191.697]],["content/426",[59,4.879,62,2.153,74,2.849,141,2.879,147,1.825,229,2.954,231,2.82,232,2.894,241,3.192,321,7.784,333,2.969,339,3.638,405,8.431,437,11.463,494,8.536,1633,11.78,2123,15.272,2850,15.272,3401,12.138]],["keywords/426",[]],["title/427",[69,393.602,321,410.092,333,156.432,339,191.697]],["content/427",[62,2.249,74,3.066,141,3.098,147,1.964,229,3.178,231,3.035,232,3.114,437,12.335,2852,16.433,3401,13.061]],["keywords/427",[]],["title/428",[69,393.602,225,304.813,333,156.432,339,191.697]],["content/428",[4,16.418,46,5.479,62,1.907,74,2.351,83,10.351,141,2.375,147,1.506,174,7.535,179,7.173,225,4.773,229,2.437,231,2.327,232,2.387,277,6.791,328,2.818,329,6.422,333,3.192,337,4.61,339,4.351,437,9.458,443,6.226,551,9.008,619,6.355,892,14.615,1177,11.809,1178,9.222,1747,7.228,1760,10.014,1779,12.016,2045,8.631,2097,12.601,2468,10.351,2783,12.601,2829,12.601,2853,11.809,3397,12.601,3401,10.014,3404,13.803]],["keywords/428",[]],["title/429",[69,393.602,329,410.092,333,156.432,339,191.697]],["content/429",[31,4.683,46,4.285,52,3.569,59,5.142,62,2.031,69,6.797,74,2.593,100,1.746,127,6.496,140,7.213,141,2.619,147,1.661,173,5.579,174,5.894,179,5.458,182,1.956,185,4.285,186,2.948,200,5.133,225,6.982,229,2.688,231,2.566,232,2.633,241,2.06,250,6.75,253,3.486,319,8.773,328,2.204,329,8.908,333,3.129,339,3.835,375,6.273,426,4.821,437,10.43,439,6.496,530,4.869,619,4.97,1019,7.046,1079,3.533,1240,7.397,1257,6.75,1340,6.073,1747,5.653,1760,11.044,1779,7.213,2105,9.236,2664,9.855,2667,9.855,2731,13.022,2853,9.236,2900,8.773,3124,9.855,3401,11.044,3405,10.796,3406,10.796,3407,10.796,3408,10.796,3409,10.796,3410,10.796,3411,10.796,3412,9.855]],["keywords/429",[]],["title/430",[69,457.128,224,515.87,1619,796.847]],["content/430",[3,7.361,52,3.116,59,3.875,62,2.215,69,7.833,74,2.987,141,3.018,147,1.914,190,7.15,191,5.818,224,8.839,225,6.066,229,3.097,231,2.957,232,3.034,253,4.29,319,10.797,328,4.009,342,8.839,375,7.72,377,6.054,426,5.933,437,12.019,911,6.957,1619,10.343,1628,13.654,1636,8.482,1684,10.797,1760,9.64,1779,8.877,2105,11.367,2120,11.367,3395,12.129,3401,12.726,3413,13.287]],["keywords/430",[]],["title/431",[160,335.847]],["content/431",[50,11.484,145,5.898,330,7.033,422,7.458,964,11.012]],["keywords/431",[]],["title/432",[401,718.698]],["content/432",[50,11.484,145,5.898,330,7.033,422,7.458,964,11.012]],["keywords/432",[]],["title/433",[440,622.866,3414,1220.694]],["content/433",[]],["keywords/433",[]],["title/434",[3415,1511.621]],["content/434",[58,7.275,86,2.7,113,5.588,191,6.164,224,7.094,225,4.868,263,6.693,318,10.213,322,5.514,328,4.123,331,7.171,333,3.233,339,3.962,341,6.164,342,7.094,385,6.049,461,6.049,462,6.049,494,9.294,502,7.275,595,10.958,718,10.958,1022,10.557,1090,7.371,1115,8.802,1203,9.645,1222,10.557,1580,11.888,1662,11.439,1693,12.043,1747,7.371,2522,10.958,3416,12.85,3417,14.077,3418,14.077]],["keywords/434",[]],["title/435",[3419,1511.621]],["content/435",[86,3.26,191,7.443,263,8.081,322,5.595,328,4.184,331,6.691,333,3.016,337,6.844,339,3.697,502,8.784,533,12.814,1763,14.54,3416,15.516,3420,16.996]],["keywords/435",[]],["title/436",[3421,1511.621]],["content/436",[88,6.229,225,5.785,321,7.784,322,5.542,339,4.414,594,9.269,693,10.357,885,12.546,941,12.138,1079,7.15,1153,9.888,1211,11.78,2177,12.546,3036,13.595,3037,13.595]],["keywords/436",[]],["title/437",[3422,1511.621]],["content/437",[52,4.186,55,11.927,88,6.646,122,7.971,370,8.134,494,9.108,594,9.89,738,9.108,1210,9.108,2663,13.387,2669,16.296,3423,16.296]],["keywords/437",[]],["title/438",[3424,1511.621]],["content/438",[40,11.679,55,10.755,59,4.694,88,5.993,113,6.39,145,5.096,196,7.439,225,5.567,339,3.501,370,7.335,431,7.828,478,11.679,494,8.214,594,8.919,619,7.411,738,8.214,1058,9.426,1152,11.335,1230,13.771,2663,12.072,3423,14.695,3425,11.679,3426,16.097]],["keywords/438",[]],["title/439",[3427,1511.621]],["content/439",[53,4.966,89,2.24,145,5.096,196,6.04,333,3.519,334,6.401,344,9.056,356,12.531,380,8.919,406,7.828,457,8.919,493,11.718,494,8.214,499,10.065,594,8.919,968,8.214,969,8.112,1023,12.072,1058,7.654,1099,8.014,2177,12.072,3428,16.097]],["keywords/439",[]],["title/440",[3429,1511.621]],["content/440",[56,8.107,88,6.278,321,7.845,322,4.604,333,2.993,337,5.631,338,9.637,339,3.667,594,9.342,770,12.234,1079,5.518,1196,9.074,1662,13.703,2177,12.645,2663,12.645,2950,12.234,2984,11.874,2997,11.874,3007,12.234]],["keywords/440",[]],["title/441",[3430,1511.621]],["content/441",[59,4.73,145,5.135,186,4.429,196,6.086,225,5.609,322,5.438,341,7.103,342,8.174,343,11.114,431,7.887,494,8.276,594,8.987,1058,7.712,1645,12.454,1667,14.807,1668,17.04,1669,12.626,3425,11.768,3431,10.837,3432,19.918]],["keywords/441",[]],["title/442",[3433,1511.621]],["content/442",[140,10.675,171,9.131,225,5.525,322,4.362,333,2.836,337,5.336,338,9.131,341,6.997,342,8.051,385,6.865,406,7.769,494,8.152,594,8.852,686,9.443,1027,11.981,1203,10.947,1390,12.983,1629,16.882,1636,10.2,1645,9.99,2473,13.668,2795,13.668,3434,15.977,3435,15.977,3436,15.977]],["keywords/442",[]],["title/443",[3437,1511.621]],["content/443",[58,11.029,88,5.904,140,10.595,160,3.523,170,9.214,322,4.33,328,4.357,333,3.486,337,5.296,338,9.063,344,8.921,406,7.711,494,8.092,530,8.86,594,8.786,686,9.373,693,8.092,1090,8.304,1368,14.476,1418,14.476,2678,14.476]],["keywords/443",[]],["title/444",[3438,1511.621]],["content/444",[52,3.611,86,2.953,95,7.853,121,3.127,145,4.875,196,5.778,240,5.647,262,10.844,328,3.937,330,6.269,331,6.062,337,6.441,344,8.663,345,6.617,358,10.844,369,8.287,403,11.173,458,10.844,543,6.68,594,8.532,686,9.102,1079,5.039,2470,13.174,2522,11.987,3431,10.289,3439,15.399,3440,15.399]],["keywords/444",[]],["title/445",[3441,1511.621]],["content/445",[140,12.13,333,3.783,337,6.063,338,10.376,406,8.828,446,14.132,594,10.059,1420,16.573,3425,13.172]],["keywords/445",[]],["title/446",[3442,1511.621]],["content/446",[56,7.981,88,6.18,145,5.255,196,6.228,240,6.087,333,2.946,337,5.544,338,9.487,446,12.921,594,9.197,1079,6.611,1099,8.264,1196,8.933,3056,15.153,3061,15.153,3066,15.153,3425,12.043,3443,16.599,3444,16.599,3445,16.599]],["keywords/446",[]],["title/447",[3446,1511.621]],["content/447",[19,6.478,88,5.347,145,4.546,160,3.191,161,4.488,196,5.388,240,5.266,241,2.74,253,5.958,321,6.682,322,5.566,333,3.618,337,7.607,338,8.208,339,3.123,344,8.079,494,7.328,554,10.77,572,7.729,573,10.113,574,10.77,594,7.957,1079,6.672,1155,13.11,2005,11.179,2008,10.77,2119,9.841,3425,10.419,3447,13.11]],["keywords/447",[]],["title/448",[3448,1511.621]],["content/448",[31,6.778,82,5.183,88,5.818,89,2.708,113,6.202,122,6.978,145,4.947,322,5.314,328,3.973,331,6.151,333,2.773,337,5.218,338,8.931,339,3.398,421,7.687,438,6.051,445,7.779,559,6.151,594,8.657,952,9.402,1130,10.44,1218,11.336,1249,14.264,1250,13.367,2240,11.336,3425,11.336]],["keywords/448",[]],["title/449",[3449,1511.621]],["content/449",[19,7.666,52,3.986,88,6.328,322,4.641,337,6.844,344,9.562,405,8.565,554,15.368,572,9.147,573,11.968,574,12.746,594,9.417,834,13.812,1079,6.706,3425,12.331]],["keywords/449",[]],["title/450",[3450,1511.621]],["content/450",[53,4.553,88,5.495,89,2.613,122,6.591,145,4.672,186,4.03,264,10.393,322,5.638,333,3.332,337,4.929,338,8.436,339,3.21,341,6.463,406,7.177,421,7.261,438,5.716,445,7.348,494,7.531,559,5.81,594,8.177,1141,8.057,1142,11.068,1143,11.994,1203,10.113,1218,10.708,1225,13.474,1237,12.627,1932,16.064,1933,16.064,3451,14.759,3452,14.759]],["keywords/450",[]],["title/451",[3453,1511.621]],["content/451",[50,6.561,53,3.814,88,6.223,89,2.326,122,5.52,145,3.913,171,7.065,186,5.171,225,4.275,264,8.705,322,5.171,333,2.966,337,4.128,338,7.065,339,2.688,341,5.413,342,6.229,343,12.976,406,6.011,421,8.223,438,4.787,445,6.154,494,8.529,530,5.576,559,4.866,575,6.561,594,6.849,931,7.438,1022,9.27,1027,12.535,1028,8.705,1119,7.892,1136,9.317,1141,9.125,1151,10.046,1152,13.335,1153,7.306,1218,8.969,1390,10.046,1474,9.27,1645,7.729,1652,10.575,1656,11.285,1657,10.046,3454,16.715,3455,12.362,3456,12.362]],["keywords/451",[]],["title/452",[401,580.377,1636,779.296]],["content/452",[50,11.484,145,5.898,330,7.033,422,7.458,964,11.012]],["keywords/452",[]],["title/453",[89,169.857,307,656.93]],["content/453",[50,11.484,145,5.898,330,7.033,422,7.458,964,11.012]],["keywords/453",[]],["title/454",[253,249.88,339,168.308,450,342.193,461,332.532,462,332.532]],["content/454",[52,3.664,59,4.557,71,8.293,89,2.95,121,3.173,175,10.192,253,5.045,315,10.707,324,3.664,334,5.045,339,4.233,349,5.521,370,7.12,396,3.912,450,6.909,461,9.109,462,9.109,792,11.336,1193,8.657,1285,8.931]],["keywords/454",[]],["title/455",[111,476.28,240,375.359,2544,742.7]],["content/455",[]],["keywords/455",[]],["title/456",[3457,1379.932]],["content/456",[31,5.555,52,3.003,86,2.456,141,2.204,142,9.212,147,1.397,160,2.846,162,5.959,182,2.32,185,5.084,190,9.212,238,4.461,253,4.135,259,11.692,299,6.892,322,3.497,373,6.301,405,6.454,422,9.281,426,7.644,427,6.423,441,7.706,496,9.97,559,6.738,561,11.556,568,5.896,575,6.797,752,7.355,1076,8.176,1125,7.852,1234,9.97,2900,10.408,2912,13.91,3457,11.692,3458,12.807,3459,10.408,3460,12.807,3461,12.807,3462,12.807]],["keywords/456",[]],["title/457",[317,501.375,699,607.719]],["content/457",[251,10.459,317,8.71,349,6.361,353,6.702,354,6.225,395,13.061,547,11.037,548,12.028,699,10.558]],["keywords/457",[]],["title/458",[333,216.646,3463,1114.35]],["content/458",[53,5.372,54,8.279,100,2.817,247,14.151,322,4.754,333,3.69,406,8.468,443,7.854,559,6.855,1311,13.555,1778,14.897,3463,15.896,3464,17.413,3465,17.413]],["keywords/458",[]],["title/459",[115,815.593,183,796.655]],["content/459",[100,2.772,114,9.353,160,3.807,181,13.337,191,7.503,198,9.353,267,6.098,270,15.64,333,3.655,334,6.649,339,3.726,1026,8.855,1327,15.64,1776,15.64,3466,17.133]],["keywords/459",[]],["title/460",[89,142.443,333,181.68,1065,720.849]],["content/460",[52,3.414,54,8.849,62,1.544,86,3.935,88,5.42,89,2.855,94,5.731,128,9.294,322,3.975,330,4.732,333,2.584,376,8.76,389,6.921,427,6.984,429,6.999,494,7.428,514,13.289,638,10.917,1065,14.448,1076,9.294,1232,8.065,2033,12.454,2469,12.454,3286,13.289,3467,14.558,3468,14.558,3469,14.558,3470,14.558,3471,14.558,3472,14.558,3473,14.558]],["keywords/460",[]],["title/461",[69,545.108,94,480.54]],["content/461",[62,2.249,74,3.066,141,3.098,147,1.964,228,3.211,229,3.178,231,3.035,232,3.114,233,3.329,1725,13.061]],["keywords/461",[]],["title/462",[224,515.87,225,354.009,328,208.982]],["content/462",[]],["keywords/462",[]],["title/463",[]],["content/463",[52,4.294,71,9.719,224,9.228,225,6.332,315,12.547,328,3.738,503,10.639,3474,16.716,3475,18.311]],["keywords/463",[]],["title/464",[175,791.543]],["content/464",[40,13.061,52,4.221,89,2.505,121,3.656,175,9.426,248,11.492,324,4.221,370,8.203,427,6.754,568,8.288,3476,16.433]],["keywords/464",[]],["title/465",[2093,1009.973]],["content/465",[]],["keywords/465",[]],["title/466",[121,247.902,166,763.274]],["content/466",[52,4.384,62,2.183,71,7.78,73,2.335,85,6.465,100,2.371,121,2.977,147,1.599,166,13.556,175,7.675,190,10.061,349,5.179,494,7.479,2073,8.987,2544,10.635,2578,10.322,2601,14.104,3477,18.791,3478,12.54,3479,13.563,3480,13.381,3481,13.381,3482,13.381,3483,14.02]],["keywords/466",[]],["title/467",[3483,1133.605]],["content/467",[2,1.74,19,2.737,31,1.904,46,2.408,50,3.22,52,0.562,53,3.819,59,4.298,62,2.611,85,1.518,86,0.842,88,0.893,89,1.617,94,0.944,100,2.212,101,2.185,108,2.55,109,5.839,111,2.042,114,4.095,115,1.602,121,2.189,134,0.994,142,6.662,145,3.11,147,0.818,160,3.561,161,3.07,177,6.918,178,1.643,179,2.69,181,1.867,182,2.243,183,3.96,186,1.656,190,1.291,196,0.9,197,1.904,201,1.602,224,4.405,225,5.258,231,1.474,232,1.297,238,5.444,240,1.609,241,0.458,250,2.744,254,3.567,255,2.396,267,0.854,314,3.312,324,1.029,328,3.104,335,0.754,342,3.057,345,2.607,365,2.823,370,3.983,378,3.312,392,1.602,396,0.882,402,4.272,419,1.799,421,3.69,425,7.367,426,4.387,428,2.594,429,8.195,432,1.949,443,3.383,444,3.566,445,2.185,467,2.802,494,1.224,499,2.744,505,1.47,551,1.565,563,3.794,568,1.104,638,1.799,699,4.891,752,3.223,918,2.189,952,1.443,1030,2.985,1058,1.14,1099,1.194,1119,1.531,1125,5.359,1136,1.18,1164,1.5,1196,4.037,1209,4.93,1311,4.723,1469,6.417,1560,2.508,1585,3.291,1586,3.09,1630,2.802,1631,3.291,1684,4.93,1694,1.643,1701,5.19,1706,1.799,1709,3.184,1757,4.93,1758,2.052,1842,1.799,2016,5.539,2460,3.184,2538,3.007,2600,4.287,2601,1.643,2735,1.565,2864,4.93,2893,1.949,3070,2.189,3203,1.949,3479,9.919,3483,8.717,3484,1.949,3485,5.99,3486,3.566,3487,3.755,3488,2.189,3489,9.22,3490,5.539,3491,2.189,3492,6.848,3493,9.048,3494,2.189,3495,4.006,3496,2.189,3497,4.006,3498,6.848,3499,3.566,3500,2.189,3501,9.838,3502,2.052,3503,5.839,3504,2.189,3505,4.006,3506,4.389,3507,2.189,3508,2.189,3509,2.398,3510,7.501,3511,4.006,3512,5.539,3513,2.398,3514,4.006,3515,4.389,3516,2.398,3517,2.189,3518,4.389,3519,2.398,3520,6.067,3521,2.398,3522,2.398,3523,2.398,3524,6.067,3525,4.006,3526,2.398,3527,2.398,3528,2.398,3529,4.006,3530,2.398,3531,4.389,3532,2.398,3533,2.398,3534,4.006,3535,2.398,3536,2.398,3537,2.398,3538,2.398,3539,2.398,3540,2.398,3541,2.398,3542,7.501,3543,2.398,3544,4.389,3545,4.389,3546,2.398,3547,2.398,3548,2.189,3549,2.189,3550,2.398,3551,2.398,3552,2.398,3553,2.398,3554,2.398,3555,2.189,3556,2.398,3557,4.006,3558,2.398,3559,2.398,3560,2.398,3561,2.398,3562,4.389,3563,2.398,3564,4.389,3565,2.398,3566,6.067,3567,2.398,3568,4.389,3569,2.398,3570,2.189,3571,2.398,3572,2.398,3573,2.398,3574,2.398,3575,2.398,3576,2.189]],["keywords/467",[]],["title/468",[68,580.377,166,763.274]],["content/468",[19,7.728,62,2.429,68,9.79,85,5.925,108,9.955,147,1.869,166,10.713,441,10.309,779,11.447,3486,13.923,3577,15.64,3578,13.337,3579,15.64]],["keywords/468",[]],["title/469",[3493,1176.671]],["content/469",[52,4.973,98,9.827,127,10.832,225,6.225,503,10.459,505,11.037,2573,12.028,3478,15.4,3493,14.013,3580,15.4]],["keywords/469",[]],["title/470",[121,247.902,1180,991.984]],["content/470",[43,13.812,52,3.986,88,6.328,121,4.162,189,5.488,333,3.016,1080,15.516,1180,17.879,1337,13.812,2073,10.42,2186,13.812,2573,11.356,3403,16.653,3581,14.54]],["keywords/470",[]],["title/471",[121,247.902,944,815.593]],["content/471",[52,3.301,53,4.343,85,6.299,111,8.475,121,2.859,179,5.047,189,4.545,191,6.164,239,6.768,240,6.679,314,7.685,333,3.79,370,6.414,488,12.85,505,11.168,944,14.777,1026,7.275,1842,10.557,2030,12.043,2573,9.405,2576,15.583,2586,9.187,3403,11.439,3485,9.645,3581,12.043,3582,12.85,3583,14.077,3584,14.077,3585,14.077,3586,14.077,3587,12.85,3588,12.043]],["keywords/471",[]],["title/472",[121,247.902,191,534.565]],["content/472",[52,3.862,53,5.081,111,9.355,121,3.345,182,2.984,189,5.318,191,9.504,225,5.696,333,2.923,370,9.161,416,9.911,505,10.098,568,7.583,1271,10.299,3403,13.385,3581,14.091,3587,15.036,3589,16.471]],["keywords/472",[]],["title/473",[2524,1044.303,2600,697.681]],["content/473",[2,1.958,19,1.217,31,2.12,44,1.568,46,1.94,52,1.146,59,2.396,62,2.611,68,1.283,77,1.194,82,0.895,85,3.29,86,0.518,88,6.116,100,0.437,101,3.334,108,5.528,115,1.803,121,2.357,134,3.405,136,1.128,142,5.722,145,1.547,147,1.36,167,4.389,179,2.401,182,1.213,185,1.94,186,1.334,190,5.12,191,3.599,197,2.12,201,4.474,223,2.101,224,3.375,225,6.248,231,0.455,238,3.314,239,1.298,240,1.792,241,0.515,250,5.949,251,2.839,253,1.578,254,2.324,255,1.474,256,3.71,267,0.961,290,6.209,314,6.337,318,4.858,320,1.283,322,0.737,328,3.176,342,2.463,345,1.16,365,4.427,370,2.227,389,1.283,390,1.655,396,1.346,402,1.901,406,1.313,416,4.029,419,2.024,421,1.328,422,1.08,426,1.205,428,6.861,429,5.581,438,1.893,445,4.091,449,1.395,466,2.024,493,6.861,503,4.775,505,6.519,568,1.243,738,1.377,750,1.688,752,1.16,911,1.413,917,1.23,952,6.985,1030,3.294,1125,1.655,1141,1.474,1193,1.495,1196,2.63,1209,3.971,1227,5.213,1586,8.777,1624,9.036,1626,4.461,1636,1.723,1645,1.688,1701,9.93,1709,4.858,1757,9.433,1758,2.309,2038,2.193,2077,2.024,2093,4.474,2107,2.464,2156,9.93,2455,2.309,2460,1.958,2540,2.309,2566,2.193,2573,1.803,2600,8.293,2735,1.762,2787,2.309,2827,6.113,2893,2.193,3058,2.464,3203,2.193,3412,4.461,3474,2.464,3484,2.193,3485,6.519,3499,7.732,3502,2.309,3503,5.213,3508,2.464,3517,2.464,3534,2.464,3548,4.461,3549,4.461,3580,2.309,3588,2.309,3590,2.464,3591,2.464,3592,6.696,3593,2.699,3594,2.699,3595,2.464,3596,2.699,3597,2.699,3598,2.699,3599,6.696,3600,13.902,3601,2.699,3602,2.699,3603,2.699,3604,2.699,3605,2.699,3606,12.465,3607,2.699,3608,2.699,3609,2.699,3610,2.699,3611,2.699,3612,2.699,3613,2.699,3614,4.887,3615,4.887,3616,2.699,3617,2.699,3618,2.699,3619,6.696,3620,2.699,3621,2.699,3622,4.887,3623,2.699,3624,4.887,3625,2.699,3626,2.699,3627,2.699,3628,4.887,3629,2.699,3630,2.699,3631,2.699,3632,8.217,3633,2.699,3634,2.699,3635,2.699,3636,6.696,3637,4.887,3638,2.699,3639,2.699,3640,2.699,3641,2.699,3642,2.699,3643,2.699,3644,4.887,3645,2.699,3646,2.699,3647,4.887,3648,2.699,3649,4.887,3650,2.699,3651,2.699,3652,4.887,3653,2.699,3654,2.464,3655,2.699,3656,2.699,3657,2.699,3658,4.887,3659,2.699,3660,2.699,3661,2.699,3662,6.696,3663,2.699,3664,4.887,3665,2.699,3666,2.699,3667,2.699,3668,2.699,3669,2.699,3670,2.699,3671,2.699,3672,2.193,3673,2.699,3674,2.699,3675,2.699,3676,2.699]],["keywords/473",[]],["title/474",[1354,1228.403]],["content/474",[22,4.971,46,4.585,52,3.32,62,2.556,71,6.13,85,3.994,113,5.619,121,3.508,140,4.971,145,4.482,147,1.26,164,4.062,167,2.814,179,4.141,196,4.334,225,2.573,239,3.577,240,4.235,308,5.098,318,5.398,417,6.365,429,8.305,467,9.037,493,10.21,505,11.695,556,3.66,792,5.398,917,3.39,1026,5.969,1099,5.75,1145,6.046,1193,6.399,1232,4.122,1242,6.792,2156,6.365,2185,5.239,2460,8.38,2544,5.398,2574,5.58,2578,5.239,2601,10.934,2893,6.046,3580,9.881,3588,14.778,3590,6.792,3595,6.792,3677,14.156,3678,15.956,3679,17.703,3680,7.44,3681,7.44,3682,7.44,3683,7.44,3684,7.44,3685,6.365,3686,11.55,3687,11.55,3688,7.44,3689,10.544,3690,7.44,3691,6.792,3692,11.55,3693,7.44,3694,7.44,3695,7.44,3696,7.44,3697,7.44,3698,7.44,3699,7.44,3700,7.44,3701,7.44,3702,11.55,3703,7.44,3704,7.44,3705,7.44,3706,8.991,3707,7.44,3708,7.44,3709,7.44,3710,7.44]],["keywords/474",[]],["title/475",[225,354.009,333,181.68,334,330.54]],["content/475",[]],["keywords/475",[]],["title/476",[]],["content/476",[50,9.719,52,4.294,71,9.719,225,6.332,240,6.714,315,12.547,333,3.25,334,5.913,349,6.47]],["keywords/476",[]],["title/477",[175,791.543]],["content/477",[40,13.061,52,4.221,89,2.505,121,3.656,175,9.426,248,11.492,324,4.221,370,8.203,427,6.754,568,8.288,3476,16.433]],["keywords/477",[]],["title/478",[2093,1009.973]],["content/478",[]],["keywords/478",[]],["title/479",[121,247.902,166,763.274]],["content/479",[52,3.8,62,2.447,71,6.27,73,1.882,85,5.604,100,1.911,121,2.399,147,1.289,164,6.449,166,12.448,167,6.128,175,6.186,190,8.721,238,4.114,349,4.174,494,6.028,1612,10.106,2073,7.243,2152,15.033,2544,8.571,2578,11.412,2601,13.641,3477,16.887,3478,10.106,3479,11.758,3480,10.784,3481,10.784,3482,10.784,3483,12.153,3578,9.196,3706,9.196,3711,16.887,3712,16.206,3713,16.206,3714,14.794,3715,11.813,3716,10.106,3717,13.864,3718,11.813,3719,11.813,3720,11.813]],["keywords/479",[]],["title/480",[3483,1133.605]],["content/480",[2,3.656,19,3.106,31,1.211,37,1.107,46,3.868,50,4.475,52,2.549,53,3.656,59,3.821,62,2.608,68,0.702,71,0.783,73,0.235,85,2.66,86,0.966,88,1.04,89,1.711,94,0.581,95,1.618,99,1.039,100,1.474,101,6.121,102,6.525,108,5.295,109,2.174,111,3.579,114,0.806,115,1.866,119,2.798,121,2.497,131,2.792,136,3.216,142,6.616,145,3.602,147,1.127,152,2.549,153,2.269,160,3.07,161,1.242,163,1.468,166,1.746,167,4.111,174,2.169,177,1.039,179,2.469,181,2.174,182,1.97,183,5.02,185,2,186,1.085,189,2.224,190,2.138,197,1.724,198,0.806,201,0.986,207,1.263,208,1.263,225,4.098,231,1.297,232,1.33,237,3.399,238,1.755,239,1.343,240,2.202,241,2.346,247,1.2,248,0.942,250,1.746,253,0.902,254,1.889,255,1.524,256,2.792,267,0.994,275,0.41,309,1.768,310,1.348,314,4.199,324,0.346,333,2.956,334,2.484,335,2.166,349,0.522,369,0.794,370,1.272,383,1.011,396,1.013,402,1.039,410,2.98,417,1.263,419,1.107,421,0.726,422,0.591,425,2.98,426,3.075,427,1.891,428,1.651,429,7.476,432,1.2,438,1.081,444,2.269,445,0.735,472,2.423,561,2.081,568,1.286,624,1.039,746,2.202,752,1.707,779,0.986,911,2.081,917,1.811,931,0.888,1026,1.443,1030,1.374,1078,1.011,1099,1.978,1100,1.107,1119,0.942,1136,1.374,1164,0.923,1193,1.547,1222,1.107,1281,2.269,1282,0.753,1285,1.596,1311,1.149,1336,1.966,1347,1.011,1354,1.2,1422,3.229,1435,1.263,1469,8.836,1560,0.844,1585,2.094,1586,1.966,1624,3.093,1654,1.107,1669,2.174,1709,3.656,1738,2.389,1778,4.311,2076,1.149,2108,2.549,2146,1.2,2460,3.656,2524,3.399,2578,2.798,2600,6.773,2601,3.453,2735,1.822,2848,2.389,2860,1.263,2864,3.229,3203,1.2,3237,1.348,3238,2.269,3479,8.92,3483,12.18,3484,1.2,3485,5.271,3486,7.406,3487,3.399,3488,1.348,3489,2.389,3490,2.549,3491,1.348,3492,9.428,3494,1.348,3495,2.549,3496,1.348,3497,3.628,3498,6.287,3499,6.852,3500,1.348,3501,3.628,3503,2.174,3504,2.549,3505,3.628,3507,1.348,3511,1.348,3512,4.6,3514,2.549,3525,2.549,3529,3.628,3557,4.6,3570,1.348,3576,1.348,3578,1.149,3706,2.174,3716,1.263,3717,2.389,3721,1.476,3722,1.476,3723,1.476,3724,1.348,3725,1.476,3726,1.476,3727,1.476,3728,1.476,3729,1.476,3730,2.792,3731,2.792,3732,3.974,3733,1.476,3734,1.476,3735,1.476,3736,1.476,3737,1.476,3738,1.476,3739,2.792,3740,1.348,3741,1.476,3742,1.476,3743,1.476,3744,1.476,3745,2.792,3746,1.476,3747,1.476,3748,1.348,3749,6.006,3750,1.476,3751,3.628,3752,1.476,3753,1.476,3754,1.476,3755,1.476,3756,2.792,3757,3.974,3758,1.476,3759,1.476,3760,1.476,3761,1.348,3762,1.476,3763,1.476,3764,1.476,3765,1.476,3766,1.476,3767,1.476,3768,1.476,3769,1.476,3770,1.476,3771,6.887,3772,1.476,3773,1.2,3774,1.476,3775,1.476,3776,1.348,3777,1.476,3778,1.476,3779,1.476,3780,2.792,3781,1.476,3782,1.476,3783,1.348,3784,2.792,3785,1.476,3786,1.476,3787,1.348,3788,1.476,3789,1.348,3790,1.348,3791,1.476,3792,1.476,3793,2.792,3794,2.792,3795,1.476,3796,1.476,3797,1.476,3798,1.476,3799,1.476,3800,1.476,3801,4.6,3802,1.476,3803,1.476,3804,1.348,3805,1.476,3806,1.476,3807,1.476,3808,1.476,3809,2.389,3810,1.476,3811,1.476,3812,1.476,3813,1.476,3814,1.476,3815,1.476,3816,1.476,3817,1.476,3818,1.476,3819,1.476,3820,1.476,3821,1.476,3822,1.476,3823,1.476,3824,1.476,3825,1.476,3826,2.792,3827,1.476,3828,2.792,3829,1.476,3830,1.476,3831,1.476,3832,1.476,3833,1.476,3834,1.476,3835,1.476,3836,2.792,3837,2.792,3838,2.792,3839,2.792,3840,1.476,3841,2.792,3842,2.792,3843,1.476,3844,2.792,3845,1.476,3846,2.792,3847,1.476,3848,1.476,3849,1.476,3850,3.974,3851,6.887,3852,5.04,3853,3.974,3854,2.792,3855,3.974,3856,3.974,3857,1.476,3858,1.476,3859,1.348,3860,1.476,3861,1.476,3862,1.476,3863,1.476,3864,1.476,3865,1.476,3866,1.476,3867,1.476,3868,1.476,3869,1.476,3870,1.476]],["keywords/480",[]],["title/481",[68,580.377,166,763.274]],["content/481",[19,6.896,62,2.492,68,9.129,85,5.287,108,8.883,147,1.668,166,9.56,167,7.26,333,2.713,441,9.2,779,10.215,1227,11.901,2152,12.424,3486,12.424,3577,13.957,3578,11.901,3579,13.957,3711,13.957,3714,13.957,3716,13.08,3717,13.08,3790,13.957,3871,15.289,3872,15.289]],["keywords/481",[]],["title/482",[3493,1176.671]],["content/482",[50,8.173,52,4.938,53,4.751,85,5.325,98,8.407,127,9.266,179,5.522,190,8.287,225,5.325,256,8.532,333,2.733,380,8.532,416,9.266,422,7.72,503,8.947,505,9.441,516,8.663,779,10.289,1738,13.174,2566,12.514,2600,11.023,3485,10.552,3493,11.987,3679,13.174,3724,14.058,3873,15.399,3874,15.399]],["keywords/482",[]],["title/483",[3503,1176.671]],["content/483",[59,4.655,62,2.515,71,6.134,85,3.997,100,1.87,102,6.134,114,8.715,121,2.347,145,3.659,147,1.261,161,4.988,167,4.37,178,7.919,179,4.144,182,3.313,186,3.155,238,4.025,255,6.309,256,6.403,324,2.71,346,7.226,359,8.385,378,6.309,416,9.605,419,8.667,428,10.809,568,5.321,1586,12.878,2093,7.722,2523,9.392,2566,9.392,2586,7.542,2600,9.124,2735,10.418,3459,9.392,3479,8.385,3484,9.392,3485,7.919,3489,9.887,3502,13.657,3503,15.353,3582,10.55,3875,11.557,3876,11.557,3877,11.557,3878,8.667,3879,8.996,3880,9.887]],["keywords/483",[]],["title/484",[102,647.878,121,247.902]],["content/484",[53,3.49,59,3.299,62,2.545,71,6.004,85,3.912,89,1.574,100,1.83,102,10.901,114,6.175,121,3.194,145,3.581,147,1.234,161,4.915,167,4.277,179,4.056,182,2.849,185,4.49,186,5.336,189,5.838,253,3.652,255,6.175,346,7.073,358,7.965,383,7.751,416,9.464,466,13.559,568,5.208,952,6.806,1125,6.935,2093,7.558,2523,9.192,2586,7.382,2600,8.989,3459,9.192,3479,8.207,3485,12.389,3740,10.326,3878,8.483,3879,8.805,3880,9.677,3881,11.312,3882,11.312,3883,11.312,3884,11.312,3885,11.312,3886,11.312,3887,10.326]],["keywords/484",[]],["title/485",[102,647.878,253,394.156]],["content/485",[37,8.714,46,4.612,62,2.604,68,5.525,81,8.714,85,4.018,89,1.617,90,5.587,102,9.734,108,9.31,121,2.36,145,3.679,147,1.268,167,4.394,182,2.903,183,7.583,186,4.375,239,5.587,253,5.174,256,6.438,346,7.266,396,2.335,568,5.35,752,4.993,2093,7.764,2586,10.457,2600,9.158,2778,16.742,3459,9.443,3748,10.608,3878,8.714,3879,12.473,3887,10.608,3888,11.62,3889,14.627,3890,10.608,3891,11.62,3892,10.608,3893,11.62,3894,11.62,3895,9.941]],["keywords/485",[]],["title/486",[333,216.646,334,394.156]],["content/486",[19,6.698,59,3.04,62,2.557,85,5.136,88,5.529,101,5.19,114,5.692,121,2.117,145,4.701,147,1.137,161,4.641,164,5.692,167,3.943,182,1.889,183,6.804,186,2.847,317,4.282,333,3.536,334,5.585,335,4.671,346,6.519,348,11.137,378,5.692,396,2.095,503,6.058,556,5.129,561,5.459,952,10.408,1118,8.116,2083,12.705,2093,9.922,2600,8.488,2776,8.472,2814,9.518,2864,8.472,3479,7.564,3485,11.852,3487,8.919,3706,8.116,3761,9.518,3776,17.208,3783,9.518,3809,8.919,3878,7.819,3879,11.56,3889,9.518,3895,8.919,3896,14.851,3897,10.426,3898,10.426,3899,10.426,3900,10.426]],["keywords/486",[]],["title/487",[333,181.68,334,330.54,421,503.614]],["content/487",[37,6.789,46,3.593,53,2.793,59,2.64,62,2.603,68,4.304,81,11.968,85,4.635,89,1.26,108,5.26,111,6.236,114,7.317,131,5.015,134,3.751,147,0.988,167,3.423,174,4.942,178,6.203,179,3.246,182,3.412,183,8.747,186,2.472,190,4.872,239,4.352,250,5.66,333,3.131,334,2.923,335,5.019,346,5.66,396,2.694,421,6.594,426,5.985,427,5.988,429,6.444,503,9.272,1119,5.779,1247,7.745,1560,5.174,1842,10.051,2093,10.663,2586,10.415,2600,9.121,3751,8.264,3787,8.264,3878,6.789,3879,10.433,3880,11.466,3890,8.264,3892,8.264,3895,7.745,3901,9.053,3902,9.053,3903,13.403,3904,9.053,3905,9.053,3906,8.264,3907,8.264,3908,8.264,3909,8.264,3910,9.053]],["keywords/487",[]],["title/488",[59,298.528,136,427.964,333,181.68]],["content/488",[19,2.092,46,1.841,59,2.985,62,2.619,77,2.051,79,4.568,81,3.478,88,1.727,100,1.656,101,2.309,121,1.597,136,4.279,145,1.468,147,0.506,161,2.457,166,2.9,167,6.213,179,2.819,182,1.854,183,3.027,185,1.841,186,4.837,190,2.496,193,3.178,223,3.61,225,6.841,234,2.997,238,2.739,240,2.883,241,2.299,253,2.539,314,7.364,321,2.158,333,1.816,339,1.009,346,6.4,349,1.639,396,1.58,416,4.731,419,3.478,422,1.857,427,2.95,438,1.796,493,7.973,503,2.695,505,8.271,752,3.379,792,3.365,952,6.158,1030,5.929,1099,2.309,1136,5.035,1193,5.67,1227,3.61,1276,7.178,1281,3.769,1347,3.178,1709,5.705,1711,6.39,1842,5.897,2038,3.769,2093,9.013,2586,5.131,2600,5.85,3044,4.234,3390,6.727,3447,4.234,3499,6.39,3578,7.967,3654,4.234,3672,3.769,3685,3.968,3706,3.61,3801,12.315,3804,4.234,3809,3.968,3859,4.234,3878,7.675,3906,4.234,3907,4.234,3908,4.234,3909,4.234,3911,4.638,3912,4.638,3913,4.638,3914,7.863,3915,4.638,3916,10.235,3917,12.053,3918,4.638,3919,4.638,3920,4.638,3921,4.638,3922,4.638,3923,4.638,3924,4.638,3925,4.638,3926,4.638,3927,4.638,3928,4.638,3929,4.638,3930,4.638,3931,4.638,3932,4.638,3933,4.638,3934,16.43,3935,4.638,3936,4.638,3937,10.235,3938,4.638,3939,4.638,3940,7.863,3941,4.638,3942,5.131,3943,4.638,3944,7.863,3945,4.638,3946,4.638,3947,7.863,3948,4.638,3949,4.638,3950,4.638,3951,7.863,3952,4.638,3953,7.863,3954,4.638,3955,4.638,3956,4.638,3957,4.234,3958,4.638,3959,4.638]],["keywords/488",[]],["title/489",[416,530.365,493,520.967,505,540.39,3672,716.275]],["content/489",[62,2.607,101,6.962,127,10.914,147,1.526,185,5.551,225,4.836,241,4.064,416,8.415,503,8.125,1711,11.364,2600,10.366,3390,18.881,3672,11.364,3957,16.557,3960,13.984,3961,13.984,3962,18.138,3963,13.984]],["keywords/489",[]],["title/490",[1354,1228.403]],["content/490",[22,8.933,44,7.768,46,5.307,52,3.135,62,2.369,71,7.096,88,4.978,121,2.715,145,5.576,147,1.459,196,5.017,239,6.428,240,4.902,429,8.468,505,12.835,575,7.096,752,8.463,792,9.7,917,6.092,1078,9.161,1232,7.407,2185,9.415,2574,10.027,2575,10.407,2586,8.726,2601,9.161,2787,11.438,3591,12.205,3679,16.85,3685,11.438,3689,12.205,3691,12.205,3964,13.37,3965,13.37,3966,13.37,3967,13.37,3968,13.37,3969,13.37]],["keywords/490",[]],["title/491",[89,142.443,396,205.729,401,486.706]],["content/491",[]],["keywords/491",[]],["title/492",[]],["content/492",[54,8.017,56,8.107,59,4.917,85,5.831,86,3.234,89,2.838,121,3.424,238,5.873,307,9.074,333,2.993,335,5.303,396,3.389,426,7.53,460,9.637,566,12.234,1124,15.393,2831,13.126,3134,14.425]],["keywords/492",[]],["title/493",[89,169.857,396,245.324]],["content/493",[31,6.538,53,4.65,59,4.396,86,3.999,89,2.902,90,7.247,94,5.933,173,7.79,180,12.249,324,3.534,335,4.741,357,5.983,380,8.351,396,4.191,407,11.303,408,11.303,460,8.615,481,8.909,502,7.79,750,9.425,1207,9.425,2008,11.303,2044,10.328,2132,9.837,2133,13.759,2468,11.303,3970,15.073,3971,15.073]],["keywords/493",[]],["title/494",[568,695.937]],["content/494",[]],["keywords/494",[]],["title/495",[53,238.743,86,148.412,380,428.755,500,580.348,502,399.95]],["content/495",[3,8.852,56,7.681,59,4.659,68,7.596,86,4.106,89,2.979,94,6.289,95,6.505,101,7.954,121,3.245,122,7.135,324,3.746,380,8.852,396,3.966,416,9.614,438,6.188,502,8.257,1282,8.152,2002,14.585,2044,10.947,3789,14.585]],["keywords/495",[]],["title/496",[72,455.53,332,474.345,333,156.432,334,284.606]],["content/496",[59,4.957,72,8.784,85,5.878,145,5.381,196,6.377,223,13.23,332,9.147,333,3.016,334,5.488,568,7.825,1470,11.968,1779,11.356,2139,15.516,2140,15.516,2600,9.714,2894,11.356,3391,15.516,3972,13.812]],["keywords/496",[]],["title/497",[89,142.443,160,227.437,396,205.729]],["content/497",[]],["keywords/497",[]],["title/498",[]],["content/498",[46,3.736,51,5.469,53,2.904,59,2.745,62,1.463,85,3.255,86,2.645,89,3.099,108,5.469,121,2.801,147,1.505,160,3.994,161,2.941,162,7.596,189,3.039,191,4.122,193,6.45,196,3.532,198,5.138,199,6.45,221,5.215,222,4.333,241,1.796,242,4.289,254,10.278,307,5.065,309,4.839,320,4.475,322,3.766,324,3.234,330,3.06,349,3.326,357,3.736,362,6.009,396,4.646,401,4.475,421,4.631,428,5.563,460,5.38,481,5.563,502,4.865,516,5.295,517,5.563,518,5.563,520,4.743,623,7.081,746,5.215,750,5.885,1090,4.929,1195,4.245,1207,5.885,1274,7.649,2008,7.059,2035,7.649,2039,8.593,2103,7.059,2132,6.143,2831,7.327,2894,6.289,3134,8.052,3485,6.45,3973,9.413,3974,9.413,3975,8.052,3976,8.052,3977,7.327,3978,8.052,3979,8.052,3980,8.052,3981,8.052,3982,8.052,3983,11.8]],["keywords/498",[]],["title/499",[160,271.209,396,245.324]],["content/499",[]],["keywords/499",[]],["title/500",[89,169.857,396,245.324]],["content/500",[62,2.397,73,2.065,74,2.208,86,2.486,89,1.804,100,2.097,141,2.231,147,1.883,160,2.88,182,2.349,189,4.186,196,4.864,199,8.883,221,7.182,228,2.313,229,2.289,231,2.185,232,2.242,233,2.398,241,2.473,242,5.907,254,11.051,324,4.046,396,3.468,421,6.377,428,7.662,623,8.414,2103,9.722,2894,8.661,3773,10.534,3975,11.09,3976,11.09,3977,10.091,3978,11.09,3979,11.09,3980,11.09,3981,11.09,3982,11.09]],["keywords/500",[]],["title/501",[89,169.857,396,245.324]],["content/501",[3,6.77,62,2.141,73,1.946,74,2.081,86,2.343,89,2.308,90,5.875,100,2.683,121,2.482,141,2.103,147,1.809,182,2.214,189,3.946,199,8.373,221,6.77,228,2.18,229,2.158,231,2.06,232,2.114,233,2.26,238,4.256,241,3.592,242,5.568,254,10.77,324,2.865,384,9.802,396,3.333,428,7.223,429,5.875,439,7.353,623,8.166,699,6.084,1090,6.399,1127,9.512,1335,9.164,1779,8.165,2103,9.164,2894,8.165,3975,10.454,3976,10.454,3977,9.512,3978,10.454,3979,10.454,3980,10.454,3981,10.454,3982,10.454,3983,10.454,3984,11.155]],["keywords/501",[]],["title/502",[89,142.443,121,207.891,396,205.729]],["content/502",[58,5.066,59,2.859,62,2.352,68,4.66,73,2.263,74,1.669,85,3.39,86,3.205,89,2.325,100,2.298,120,4.61,121,3.95,126,3.766,141,1.687,147,1.999,160,2.178,161,4.44,182,1.776,189,5.395,196,3.678,199,11.45,221,5.431,228,1.749,229,1.731,231,1.652,232,1.695,233,1.813,234,3.736,236,7.112,241,3.188,242,6.473,254,6.755,324,4.297,345,4.212,349,3.464,377,4.466,396,3.683,405,4.94,421,4.822,426,4.377,427,5.331,428,9.876,461,4.212,462,4.212,623,9.473,1038,6.397,1079,3.208,1193,5.431,1210,5.002,1282,5.002,2103,12.531,2894,11.164,2923,8.386,3082,8.386,3290,8.948,3773,7.966,3977,7.63,3985,9.802]],["keywords/502",[]],["title/503",[89,142.443,330,332.75,396,205.729]],["content/503",[44,6.058,62,2.385,73,1.661,74,1.776,86,1.999,88,5.529,89,2.066,100,2.402,126,5.705,136,4.359,141,1.794,147,2.056,160,2.316,162,4.851,179,3.738,182,1.889,189,5.585,196,3.912,199,11.852,221,5.776,228,1.86,229,1.841,231,1.757,232,1.803,233,1.928,234,3.974,236,7.564,241,3.596,242,8.589,254,4.957,324,4.672,330,3.389,396,3.476,421,5.129,428,10.224,439,8.936,440,5.32,623,9.616,746,8.228,1038,6.804,1076,9.481,1207,6.519,1338,7.819,2083,8.919,2103,12.972,2894,11.557,3773,8.472,3977,8.116]],["keywords/503",[]],["title/504",[89,142.443,309,359.107,396,205.729]],["content/504",[62,2.142,73,2.644,74,2.827,89,2.31,100,2.685,141,2.856,147,1.811,228,2.961,229,2.931,231,2.798,232,2.871,233,3.07,241,3.167,309,7.639,396,3.336,1076,10.597,3983,14.201,3984,15.153]],["keywords/504",[]],["title/505",[86,196.318,160,227.437,324,240.047]],["content/505",[43,12.698,44,9.079,52,3.664,54,7.429,59,4.557,65,9.079,69,6.978,86,2.997,100,2.528,160,3.472,162,9.055,307,8.409,321,7.27,322,4.266,449,8.075,461,6.714,502,8.075,1232,8.657,1470,11.003,2183,14.264,2184,13.367,2185,11.003,2186,12.698,2187,13.367,2894,10.44,3986,15.625,3987,15.625,3988,15.625]],["keywords/505",[]],["title/506",[401,580.377,2127,686.721]],["content/506",[]],["keywords/506",[]],["title/507",[]],["content/507",[53,5.042,54,7.771,59,5.836,79,9.496,89,2.274,196,6.133,320,7.771,322,4.463,328,3.337,406,7.948,431,7.948,467,10.434,500,12.257,508,9.66,748,9.055,1340,9.195,2127,12.168,2128,9.195,2831,12.723,3133,14.921]],["keywords/507",[]],["title/508",[2128,850.387]],["content/508",[3,9.269,54,7.954,59,5.919,86,3.208,191,7.326,373,8.23,443,9.155,500,12.546,738,8.536,931,10.066,1281,13.595,1795,13.022,2127,11.419,2128,11.419,3989,10.257,3990,10.257]],["keywords/508",[]],["title/509",[1079,494.664]],["content/509",[738,10.37,752,7.894,911,10.642,917,8.371,1026,9.495,1136,7.018,1630,9.107,1640,11.104,2125,8.584,2666,10.35,3054,14.706,3991,13.022,3992,13.022,3993,11.592,3994,13.022,3995,16.772,3996,13.022,3997,13.022,3998,13.022,3999,10.045,4000,13.022,4001,14.93,4002,14.93,4003,11.592,4004,13.022,4005,11.592,4006,16.772,4007,11.592]],["keywords/509",[]],["title/510",[59,355.982,79,709.249]],["content/510",[52,2.544,62,1.151,86,2.93,113,4.307,191,6.69,312,6.304,322,2.963,330,3.527,385,4.663,443,9.464,447,16.333,474,8.137,529,6.529,539,6.202,572,8.221,738,5.537,911,5.682,917,4.944,931,6.529,959,8.818,1026,9.137,1099,5.402,1167,6.785,1170,6.785,1185,7.641,1347,7.435,1455,9.283,1654,13.259,1655,7.641,1662,8.818,1841,9.283,2110,8.446,2127,9.946,2128,8.594,2240,11.083,2681,9.905,3555,9.905,4008,10.851,4009,10.851,4010,10.851,4011,10.851,4012,10.851,4013,10.851,4014,10.851,4015,19.154,4016,10.851,4017,8.446,4018,10.851,4019,10.851,4020,10.851,4021,10.851,4022,10.851,4023,8.446,4024,10.851,4025,10.851,4026,11.891,4027,10.851,4028,8.446,4029,10.851,4030,10.851,4031,10.851,4032,10.851]],["keywords/510",[]],["title/511",[322,279.495,572,550.903,2127,575.886]],["content/511",[38,3.466,62,1.479,82,1.945,131,3.249,138,5.016,236,11.142,322,2.609,328,1.197,345,4.106,354,4.182,385,2.52,412,6.933,423,4.938,439,3.528,443,4.31,467,6.1,470,3.201,471,7.765,752,5.993,911,8.042,917,4.354,921,3.918,939,12.48,1026,4.938,1041,6.933,1048,11.899,1079,1.919,1086,7.438,1129,5.75,1136,4.701,1203,4.018,1205,13.056,1206,13.056,1216,11.931,1217,4.765,1232,3.249,1328,8.903,1624,4.564,1630,6.1,1633,4.129,1647,5.016,1648,11.931,1657,4.765,1745,11.517,1754,5.016,1814,4.765,2125,3.528,2128,5.376,2153,9.069,2333,5.016,2384,4.397,2662,5.016,2666,4.254,2809,10.346,2902,8.175,2912,4.765,3054,10.523,3055,5.016,3942,11.333,3989,11.481,3990,5.858,3993,7.765,3999,12.228,4001,7.765,4002,7.765,4003,4.765,4005,4.765,4007,4.765,4033,5.864,4034,5.864,4035,5.353,4036,11.04,4037,14.019,4038,4.397,4039,4.397,4040,4.397,4041,4.397,4042,4.397,4043,4.397,4044,4.397,4045,9.069,4046,9.069,4047,4.397,4048,8.723,4049,6.384,4050,11.04,4051,4.397,4052,3.918,4053,5.353,4054,6.384,4055,12.731,4056,5.353,4057,4.397,4058,7.166,4059,4.397,4060,7.166,4061,4.397,4062,4.397,4063,5.353,4064,4.397,4065,8.723,4066,4.397,4067,7.166,4068,8.723,4069,14.019,4070,5.353,4071,5.353,4072,4.397,4073,8.723,4074,5.353,4075,5.353,4076,5.353,4077,5.353,4078,5.353,4079,4.397,4080,5.353,4081,4.397]],["keywords/511",[]],["title/512",[59,355.982,748,676.31]],["content/512",[49,8.057,52,3.461,54,7.017,59,6.338,65,8.575,86,2.831,87,9.049,164,8.057,191,8.223,240,5.412,322,4.03,373,7.261,440,7.531,441,8.881,443,8.469,700,9.422,748,11.441,931,11.298,1248,11.994,1706,11.068,2127,11.617,2128,8.303,3972,11.994,3989,9.049,3990,9.049,4082,13.474,4083,12.627]],["keywords/512",[]],["title/513",[1079,494.664]],["content/513",[721,9.012,738,10.436,752,7.963,911,10.71,1136,7.113,1166,8.7,1630,9.231,1640,11.255,1655,14.402,2125,8.7,2666,10.49,3054,14.014,3991,13.199,3992,13.199,3993,11.75,3994,13.199,3995,16.918,3996,13.199,3997,13.199,3998,13.199,3999,10.182,4000,13.199,4004,13.199,4005,11.75,4006,16.918,4007,11.75,4084,15.06]],["keywords/513",[]],["title/514",[59,355.982,79,709.249]],["content/514",[59,4.365,322,4.086,330,4.865,443,8.545,515,17.294,572,8.054,931,11.399,959,12.163,1185,13.34,1211,13.34,1642,12.804,1735,13.663,2153,11.224,2240,10.859,3989,11.614,3990,11.614,4015,17.294,4082,13.663,4085,14.967,4086,14.967,4087,14.967,4088,14.967,4089,18.944,4090,11.65,4091,11.65,4092,14.967]],["keywords/514",[]],["title/515",[322,279.495,572,550.903,2127,575.886]],["content/515",[38,3.495,62,1.29,82,1.961,131,3.276,138,5.058,236,11.19,322,2.627,328,1.207,345,4.134,354,4.206,385,2.541,412,6.98,423,4.972,439,3.558,443,4.339,467,6.142,470,3.228,471,7.818,721,4.678,748,3.276,752,6.022,911,8.077,921,3.95,939,12.534,1041,6.98,1048,11.941,1079,1.935,1086,7.489,1129,5.789,1136,4.733,1166,3.558,1203,4.051,1205,13.085,1206,13.085,1216,11.99,1217,4.805,1232,3.276,1328,8.947,1624,4.602,1630,6.142,1633,4.163,1647,5.058,1648,11.99,1655,6.774,1657,4.805,1745,11.567,1754,5.058,1814,4.805,2125,3.558,2128,3.326,2153,10.51,2333,5.058,2384,4.434,2662,5.058,2666,4.29,2809,10.405,2902,8.23,2912,4.805,3054,10.569,3055,5.058,3942,11.373,3989,11.514,3990,5.898,3993,7.818,3999,12.271,4005,4.805,4007,4.805,4035,5.397,4036,11.103,4037,14.08,4038,4.434,4039,4.434,4040,4.434,4041,4.434,4042,4.434,4043,4.434,4044,4.434,4045,9.121,4046,9.121,4047,4.434,4048,8.782,4049,6.428,4050,11.103,4051,4.434,4052,3.95,4053,5.397,4054,6.428,4055,12.794,4056,5.397,4057,4.434,4058,7.214,4059,4.434,4060,7.214,4061,4.434,4062,4.434,4063,5.397,4064,4.434,4065,8.782,4066,4.434,4067,7.214,4068,8.782,4069,14.08,4070,5.397,4071,5.397,4072,4.434,4073,8.782,4074,5.397,4075,5.397,4076,5.397,4077,5.397,4078,5.397,4079,4.434,4080,5.397,4081,4.434,4084,7.818,4093,5.912]],["keywords/515",[]],["title/516",[160,271.209,2127,686.721]],["content/516",[]],["keywords/516",[]],["title/517",[]],["content/517",[49,8.523,52,2.625,53,3.453,59,4.553,62,1.656,100,2.526,128,7.145,145,3.543,147,1.221,160,4.546,179,4.013,191,4.901,198,6.11,222,5.153,253,3.614,256,6.201,322,4.263,349,3.955,440,5.711,442,8.523,443,7.042,516,6.297,517,6.615,518,6.615,520,5.64,628,8.783,629,8.783,748,10.778,750,6.999,1213,8.394,1252,9.575,1256,7.305,1257,6.999,1326,13.356,2127,6.297,2128,10.944,3104,9.096,3989,12.544,3990,12.544,4094,11.193,4095,11.193,4096,10.218,4097,10.218,4098,19.453,4099,10.218,4100,10.218,4101,10.218,4102,10.218,4103,10.218,4104,10.218,4105,15.612]],["keywords/517",[]],["title/518",[160,335.847]],["content/518",[]],["keywords/518",[]],["title/519",[2128,686.721,3989,748.398]],["content/519",[59,2.5,62,2.628,73,0.585,74,0.625,82,7.547,89,0.511,100,0.594,141,0.632,147,0.701,160,0.816,182,1.165,185,1.457,186,1.755,228,0.655,229,0.648,231,0.619,232,0.635,233,0.679,238,2.986,263,10.464,328,0.749,339,1.398,345,9.231,354,2.223,365,1.708,385,8.184,396,0.738,420,2.296,438,1.422,443,1.656,449,1.897,530,1.656,559,3.375,568,1.69,572,3.459,628,3.616,629,2.065,699,4.268,700,2.344,1030,1.806,1041,4.663,1079,1.201,1136,1.806,1205,4.103,1206,2.344,1271,2.296,1688,8.216,2127,3.616,2128,3.616,3054,4.404,3431,14.705,3942,8.399,3989,2.251,4017,5.003,4023,2.858,4026,2.858,4028,2.858,4038,2.753,4039,2.753,4040,2.753,4041,2.753,4042,2.753,4045,2.753,4046,2.753,4047,2.753,4049,4.295,4051,2.753,4052,2.453,4054,2.453,4057,2.753,4059,2.753,4061,2.753,4096,3.351,4106,2.585,4107,2.585,4108,4.526,4109,2.983,4110,2.983,4111,3.671,4112,14.326,4113,3.351,4114,15.745,4115,2.983,4116,2.983,4117,2.983,4118,2.983,4119,2.983,4120,3.141,4121,2.753,4122,3.351,4123,3.351,4124,3.351,4125,3.351,4126,3.351,4127,3.351,4128,2.585,4129,3.351,4130,3.351,4131,3.351,4132,2.983,4133,3.351,4134,3.351,4135,3.351,4136,3.351,4137,3.351,4138,3.351,4139,3.351,4140,3.351,4141,2.585,4142,2.585]],["keywords/519",[]],["title/520",[2128,686.721,3990,748.398]],["content/520",[59,2.205,62,2.632,73,0.499,74,0.533,82,7.594,89,0.436,100,0.507,141,0.539,147,0.609,160,0.696,182,1.012,185,1.243,186,1.525,228,0.559,229,0.553,231,0.528,232,0.542,233,0.579,238,2.633,263,10.304,328,0.639,339,1.215,345,9.312,354,3.176,365,1.457,385,8.244,396,0.629,420,1.958,438,1.213,443,1.412,449,1.618,530,1.412,559,2.976,568,1.442,572,3.006,623,1.358,628,3.142,629,1.762,699,3.764,700,1.999,752,1.346,917,2.545,1026,2.887,1030,1.541,1079,1.025,1136,1.541,1205,3.566,1206,1.999,1271,1.958,1669,2.438,1688,7.465,1705,2.545,2127,3.142,2128,3.142,3238,4.539,3431,14.48,3942,4.934,3990,1.92,3999,2.205,4001,4.539,4002,4.539,4003,2.545,4017,4.348,4023,2.438,4026,2.438,4028,2.438,4043,7.904,4044,7.904,4049,5.051,4052,2.092,4054,2.092,4058,2.348,4060,2.348,4062,2.348,4064,2.348,4066,2.348,4067,4.189,4072,2.348,4079,2.348,4081,2.348,4091,4.348,4097,2.859,4106,2.205,4107,2.205,4108,3.933,4109,2.545,4110,2.545,4112,14.543,4121,2.348,4128,2.205,4141,2.205,4142,2.205,4143,3.132,4144,17.055,4145,2.545,4146,3.132,4147,4.189,4148,4.189,4149,4.539,4150,2.545,4151,2.545,4152,5.099,4153,2.545,4154,2.859,4155,2.859,4156,2.859,4157,2.859,4158,2.859,4159,2.859,4160,2.859,4161,2.859,4162,2.859,4163,2.545,4164,2.545,4165,2.859,4166,2.859,4167,2.859,4168,2.859]],["keywords/520",[]],["title/521",[2128,575.886,3989,627.608,4169,720.849]],["content/521",[59,2.497,62,2.628,73,0.584,74,0.624,82,7.545,89,0.51,100,0.593,141,0.631,147,0.7,160,0.814,182,1.163,185,1.455,186,1.752,228,0.654,229,0.647,231,0.618,232,0.634,233,0.678,238,2.982,263,10.461,328,0.748,339,1.396,345,9.228,354,2.219,365,1.705,385,8.18,396,0.737,420,2.292,438,1.419,443,1.653,449,1.894,530,1.653,559,3.371,568,1.687,572,3.454,628,3.611,629,2.062,699,4.263,700,2.34,1030,1.803,1041,4.656,1079,1.199,1136,1.803,1205,4.097,1206,2.34,1271,2.292,1688,8.208,2127,3.611,2128,3.611,3054,4.398,3431,14.701,3942,8.391,3989,2.247,4017,4.996,4023,2.853,4026,2.853,4028,2.853,4038,2.748,4039,2.748,4040,2.748,4041,2.748,4042,2.748,4045,2.748,4046,2.748,4047,2.748,4049,4.288,4051,2.748,4052,2.449,4054,2.449,4057,2.748,4059,2.748,4061,2.748,4099,3.346,4106,2.581,4107,2.581,4108,4.519,4109,2.978,4110,2.978,4112,14.318,4113,3.346,4114,15.736,4115,2.978,4116,2.978,4117,2.978,4118,2.978,4119,2.978,4120,3.135,4121,2.748,4122,3.346,4123,3.346,4124,3.346,4125,3.346,4126,3.346,4127,3.346,4128,2.581,4129,3.346,4130,3.346,4131,3.346,4132,2.978,4133,3.346,4134,3.346,4135,3.346,4136,3.346,4137,3.346,4138,3.346,4139,3.346,4140,3.346,4141,2.581,4142,2.581,4169,2.581,4170,3.665]],["keywords/521",[]],["title/522",[2128,575.886,3990,627.608,4169,720.849]],["content/522",[59,2.202,62,2.632,73,0.498,74,0.533,82,7.592,89,0.435,100,0.506,141,0.538,147,0.609,160,0.695,182,1.011,185,1.241,186,1.523,228,0.558,229,0.552,231,0.527,232,0.541,233,0.578,238,2.63,263,10.301,328,0.638,339,1.213,345,9.31,354,3.172,365,1.455,385,8.241,396,0.628,420,1.955,438,1.211,443,1.41,449,1.616,530,1.41,559,2.972,568,1.44,572,3.002,623,1.356,628,3.138,629,1.759,699,3.759,700,1.996,752,1.344,917,2.542,1026,2.883,1030,1.538,1079,1.023,1136,1.538,1205,3.561,1206,1.996,1271,1.955,1669,2.434,1688,7.458,1705,2.541,2127,3.138,2128,3.138,3238,4.533,3431,14.476,3942,4.928,3990,1.917,3999,2.202,4001,4.533,4002,4.533,4003,2.541,4017,4.342,4023,2.434,4026,2.434,4028,2.434,4043,7.897,4044,7.897,4049,5.045,4052,2.089,4054,2.089,4058,2.345,4060,2.345,4062,2.345,4064,2.345,4066,2.345,4067,4.183,4072,2.345,4079,2.345,4081,2.345,4091,4.342,4100,2.855,4106,2.202,4107,2.202,4108,3.928,4109,2.541,4110,2.541,4112,14.536,4121,2.345,4128,2.202,4141,2.202,4142,2.202,4144,17.047,4145,2.541,4147,4.183,4148,4.183,4149,4.533,4150,2.541,4151,2.541,4152,5.092,4153,2.541,4154,2.855,4155,2.855,4156,2.855,4157,2.855,4158,2.855,4159,2.855,4160,2.855,4161,2.855,4162,2.855,4163,2.541,4164,2.541,4165,2.855,4166,2.855,4167,2.855,4168,2.855,4169,2.202,4171,3.127,4172,3.127]],["keywords/522",[]],["title/523",[748,676.31,3989,748.398]],["content/523",[52,0.835,59,3.345,62,2.624,65,2.069,73,0.567,74,0.606,82,7.515,87,2.183,89,0.495,100,0.576,141,0.613,147,0.683,160,0.791,164,1.944,182,1.134,185,1.413,186,1.709,190,1.916,191,1.559,228,0.635,229,0.629,231,0.6,232,0.616,233,0.659,238,2.916,240,1.306,263,10.409,328,0.727,339,1.361,345,9.176,354,2.895,365,1.657,385,8.108,396,0.716,420,2.226,440,1.817,441,3.765,443,3.776,449,1.84,530,1.606,559,3.296,572,3.368,628,3.52,629,2.003,699,4.168,700,2.273,748,5.581,931,3.765,1030,1.752,1041,4.54,1079,1.165,1136,1.752,1205,3.995,1206,2.273,1248,2.894,1271,2.226,1688,3.995,1706,2.67,2127,4.709,2128,2.003,3054,2.44,3431,14.628,3942,8.25,3972,2.894,3989,2.183,4038,2.67,4039,2.67,4040,2.67,4041,2.67,4042,2.67,4045,2.67,4046,2.67,4047,2.67,4049,4.181,4051,2.67,4052,2.379,4054,2.379,4057,2.67,4059,2.67,4061,2.67,4083,3.046,4090,4.871,4101,3.251,4106,2.507,4107,2.507,4108,4.407,4112,6.516,4114,7.162,4115,2.894,4116,2.894,4117,2.894,4118,2.894,4119,2.894,4120,3.046,4121,2.67,4128,2.507,4132,2.894,4141,2.507,4142,2.507,4147,4.693,4148,4.693,4163,2.894,4173,2.894,4174,3.561,4175,13.789,4176,2.894,4177,15.49,4178,3.251,4179,3.251,4180,3.251,4181,3.251,4182,3.251,4183,3.251,4184,3.251,4185,3.251,4186,3.251,4187,3.251,4188,3.251,4189,3.251,4190,3.251,4191,3.251,4192,3.251,4193,3.251]],["keywords/523",[]],["title/524",[748,676.31,3990,748.398]],["content/524",[59,2.291,62,2.633,73,0.523,74,0.56,82,7.594,89,0.457,100,0.532,141,0.565,147,0.636,160,0.73,182,1.056,185,1.304,186,1.592,190,1.768,228,0.586,229,0.58,231,0.554,232,0.568,233,0.608,238,2.737,263,10.305,328,0.671,339,1.268,345,9.314,354,3.289,365,1.529,385,8.258,396,0.66,420,2.055,441,1.977,443,1.482,449,1.698,530,1.482,559,3.093,572,3.137,623,1.425,628,3.28,629,1.849,699,3.912,700,2.098,721,2.835,748,3.23,752,1.412,1030,1.617,1079,1.075,1136,1.617,1166,1.977,1205,3.722,1206,2.098,1271,2.055,1655,4.105,1688,7.69,2127,1.849,3431,14.482,3942,5.128,3990,2.015,3999,2.314,4043,7.132,4044,7.132,4049,5.25,4052,2.196,4054,2.196,4058,2.464,4060,2.464,4062,2.464,4064,2.464,4066,2.464,4067,4.372,4072,2.464,4079,2.464,4081,2.464,4084,4.737,4090,4.538,4091,4.538,4102,3,4106,2.314,4107,2.314,4108,4.105,4128,2.314,4141,2.314,4142,2.314,4145,2.67,4147,4.372,4148,4.372,4149,4.737,4150,2.67,4151,2.67,4153,2.67,4164,2.67,4173,2.67,4175,15.186,4176,2.67,4194,3.286,4195,17.059,4196,3,4197,3,4198,3,4199,3,4200,3,4201,3,4202,3,4203,3,4204,3,4205,3,4206,3,4207,3,4208,3,4209,3,4210,3,4211,3,4212,3,4213,3,4214,3]],["keywords/524",[]],["title/525",[748,567.155,3989,627.608,4169,720.849]],["content/525",[52,0.834,59,3.342,62,2.624,65,2.065,73,0.566,74,0.605,82,7.513,87,2.179,89,0.495,100,0.575,141,0.612,147,0.682,160,0.79,164,1.941,182,1.132,185,1.411,186,1.706,190,1.913,191,1.557,228,0.634,229,0.628,231,0.599,232,0.615,233,0.657,238,2.912,240,1.303,263,10.406,328,0.726,339,1.359,345,9.173,354,2.891,365,1.654,385,8.103,396,0.714,420,2.223,440,1.814,441,3.76,443,3.771,449,1.837,530,1.603,559,3.291,572,3.363,628,3.515,629,2,699,4.162,700,2.269,748,5.574,931,3.76,1030,1.749,1041,4.534,1079,1.163,1136,1.749,1205,3.989,1206,2.269,1248,2.889,1271,2.223,1688,3.989,1706,2.666,2127,4.703,2128,2,3054,2.436,3431,14.623,3942,8.242,3972,2.889,3989,2.179,4038,2.666,4039,2.666,4040,2.666,4041,2.666,4042,2.666,4045,2.666,4046,2.666,4047,2.666,4049,4.175,4051,2.666,4052,2.375,4054,2.375,4057,2.666,4059,2.666,4061,2.666,4083,3.041,4090,4.864,4103,3.245,4106,2.503,4107,2.503,4108,4.4,4115,2.889,4116,2.889,4117,2.889,4118,2.889,4119,2.889,4121,2.666,4128,2.503,4132,2.889,4141,2.503,4142,2.503,4147,4.686,4148,4.686,4163,2.889,4169,2.503,4173,2.889,4175,14.794,4176,2.889,4177,16.619,4178,3.245,4179,3.245,4180,3.245,4181,3.245,4182,3.245,4183,3.245,4184,3.245,4185,3.245,4186,3.245,4187,3.245,4188,3.245,4189,3.245,4190,3.245,4191,3.245,4192,3.245,4193,3.245,4215,3.555,4216,3.555]],["keywords/525",[]],["title/526",[748,567.155,3990,627.608,4169,720.849]],["content/526",[59,2.749,62,2.631,73,0.517,74,0.553,82,7.582,89,0.452,100,0.525,141,0.559,147,0.629,160,0.721,182,1.045,185,1.289,186,1.574,190,1.747,228,0.579,229,0.573,231,0.547,232,0.561,233,0.6,238,3.283,263,10.282,312,1.886,322,0.886,328,0.663,339,1.254,345,9.293,354,3.26,365,1.51,385,8.228,396,0.652,420,2.03,441,1.953,443,1.464,449,1.678,530,1.464,559,3.063,572,3.103,623,1.408,624,2.286,628,3.244,629,1.826,699,3.873,700,2.072,721,2.804,748,3.195,752,1.395,1030,1.597,1079,1.887,1136,1.597,1166,1.953,1205,3.681,1206,2.072,1271,2.03,1655,4.061,1688,7.632,2127,1.826,3431,14.449,3942,5.078,3990,1.99,3999,2.286,4043,7.069,4044,7.069,4049,5.198,4052,2.169,4054,2.169,4058,2.434,4060,2.434,4062,2.434,4064,2.434,4066,2.434,4067,4.325,4072,2.434,4079,2.434,4081,2.434,4084,4.686,4090,4.489,4091,4.489,4104,2.963,4106,2.286,4107,2.286,4108,4.061,4128,2.286,4141,2.286,4142,2.286,4145,2.638,4147,4.325,4148,4.325,4149,4.686,4150,2.638,4151,2.638,4153,2.638,4164,2.638,4169,2.286,4173,2.638,4175,15.127,4176,2.638,4195,16.993,4196,2.963,4197,2.963,4198,2.963,4199,2.963,4200,2.963,4201,2.963,4202,2.963,4203,2.963,4204,2.963,4205,2.963,4206,2.963,4207,2.963,4208,2.963,4209,2.963,4210,2.963,4211,2.963,4212,2.963,4213,2.963,4214,2.963,4217,3.246,4218,3.246]],["keywords/526",[]]],"invertedIndex":[["",{"_index":62,"title":{"54":{"position":[[5,1]]},"67":{"position":[[5,1]]},"84":{"position":[[5,1]]},"85":{"position":[[5,1]]},"90":{"position":[[5,1]]},"294":{"position":[[10,1]]},"321":{"position":[[25,1]]}},"content":{"2":{"position":[[102,1],[195,1]]},"3":{"position":[[591,3],[599,4],[782,1],[845,1],[935,1],[1011,1],[1042,1]]},"5":{"position":[[1452,1],[1464,1],[1486,2],[1600,1],[1658,1],[1696,1],[1736,1],[1920,1],[1946,1],[1968,2],[2077,1],[2228,1],[2266,1],[2280,4],[2285,1],[2302,1]]},"6":{"position":[[123,1],[163,1],[247,1],[273,1],[295,2],[404,1]]},"7":{"position":[[93,1],[133,1],[247,2],[274,1],[296,2],[405,2]]},"8":{"position":[[123,1],[163,1],[290,1],[301,1],[303,1],[785,2],[788,1],[1270,2],[1273,1],[1761,1],[1882,1],[1884,1],[1886,1]]},"9":{"position":[[280,1],[320,1]]},"13":{"position":[[103,1],[160,1]]},"15":{"position":[[163,1],[463,1]]},"16":{"position":[[108,1],[406,1]]},"18":{"position":[[158,1],[333,1]]},"19":{"position":[[207,1],[388,1]]},"20":{"position":[[178,1],[359,1]]},"22":{"position":[[99,1],[338,1]]},"23":{"position":[[99,1],[338,1]]},"25":{"position":[[381,1],[555,1]]},"26":{"position":[[296,1],[521,1]]},"28":{"position":[[307,1],[481,1]]},"29":{"position":[[366,1],[591,1]]},"31":{"position":[[234,1],[406,1]]},"32":{"position":[[293,1],[516,1]]},"33":{"position":[[243,1],[419,1]]},"34":{"position":[[302,1],[529,1]]},"35":{"position":[[300,1],[469,1]]},"36":{"position":[[161,1],[331,1]]},"37":{"position":[[217,1],[398,1]]},"39":{"position":[[230,1],[421,1]]},"41":{"position":[[188,1],[344,1]]},"42":{"position":[[176,1],[337,1]]},"43":{"position":[[114,1],[274,1]]},"44":{"position":[[132,1],[299,1]]},"45":{"position":[[128,1],[300,1]]},"48":{"position":[[259,1],[297,1],[302,2],[371,2],[374,1],[491,1],[504,1],[524,1]]},"57":{"position":[[1573,1],[1613,1],[1702,1],[1704,1],[2158,2],[2161,1],[2613,2],[2616,4],[2621,1]]},"58":{"position":[[152,1],[192,1],[293,1],[638,1]]},"59":{"position":[[2224,1],[2264,1],[2371,1],[2373,1],[2620,1],[2654,2],[2676,1],[2711,1],[2713,2],[2716,1],[2859,1],[2893,2],[2915,1],[2950,1],[2952,1],[2954,1]]},"60":{"position":[[97,1],[260,1],[319,1],[359,1],[364,2],[383,1],[472,1],[978,1]]},"61":{"position":[[217,1],[395,1],[455,1],[495,1],[500,2],[519,1],[620,1],[1146,1]]},"62":{"position":[[238,1],[278,1]]},"63":{"position":[[1299,1],[1339,1],[1430,1],[1432,1],[1796,2],[1799,3],[1803,1]]},"64":{"position":[[154,1],[194,1],[299,1],[663,1]]},"65":{"position":[[535,1],[575,1],[665,1],[667,1],[969,2],[972,3],[976,1]]},"66":{"position":[[151,1],[191,1],[294,1],[596,1]]},"70":{"position":[[794,1],[834,1],[904,1],[906,1],[1295,2],[1298,4],[1303,1]]},"71":{"position":[[558,1],[598,1],[695,1],[697,1],[824,2],[827,4],[832,1]]},"72":{"position":[[454,1],[494,1],[571,1],[573,1],[850,1],[852,1],[924,2],[927,4],[932,2],[955,1],[976,4],[981,1],[983,2],[986,1],[1283,1],[1285,1],[1365,2],[1368,4],[1373,2],[1396,1],[1423,4],[1428,1],[1430,2],[1433,4],[1438,1]]},"73":{"position":[[156,1],[196,1],[271,1],[573,1],[575,1],[585,1],[604,2],[694,2],[697,4],[702,1],[704,1]]},"74":{"position":[[342,1],[382,1],[486,1],[488,1],[620,1],[664,1],[666,2],[669,1],[805,1],[829,1],[831,2],[834,4],[839,1]]},"75":{"position":[[148,1],[172,1],[205,1],[240,1],[298,1],[338,1],[343,2],[368,2],[371,1],[493,1],[495,1],[584,1],[621,1],[623,2],[626,1],[719,1],[743,1],[745,1],[747,1]]},"76":{"position":[[166,1],[206,1],[339,1],[341,1],[439,1],[482,2],[530,1],[532,1]]},"78":{"position":[[586,1],[626,1],[697,1],[699,1],[756,1],[768,2],[973,2],[976,4],[981,1]]},"79":{"position":[[584,1],[624,1],[722,1],[724,1],[861,1],[870,1],[872,2],[875,1],[1016,1],[1025,1],[1027,2],[1030,4],[1035,1]]},"80":{"position":[[456,1],[496,1],[574,1],[576,1],[633,1],[645,2],[850,2],[853,4],[858,1]]},"82":{"position":[[587,1],[627,1],[698,1],[700,1],[854,1],[933,2],[980,1],[994,2],[1008,1],[1437,2],[1454,1],[1456,1],[1914,2],[1917,1],[2391,1],[2393,2],[2494,2],[2497,4],[2502,1]]},"83":{"position":[[402,1],[442,1],[520,1],[522,1],[676,1],[755,2],[802,1],[816,2],[830,1],[1259,2],[1276,1],[1278,1],[1736,2],[1739,1],[2213,1],[2215,2],[2316,2],[2319,4],[2324,1]]},"88":{"position":[[558,1],[598,1],[685,1],[687,1],[1236,1],[1317,1],[1319,2],[1322,1],[1821,1],[1902,1],[1904,2],[1907,4],[1912,1]]},"89":{"position":[[772,1],[812,1],[832,1],[922,1],[956,1],[1024,1]]},"93":{"position":[[521,1],[561,1],[597,1],[705,1],[734,1]]},"94":{"position":[[155,1],[195,1],[303,1],[305,1],[334,2],[337,1],[366,1],[368,1]]},"95":{"position":[[733,1],[773,1],[809,1],[944,1],[973,1]]},"96":{"position":[[302,1],[342,1],[477,1],[479,1],[508,2],[511,1],[540,1],[542,1]]},"97":{"position":[[264,1],[304,1],[432,1],[463,1]]},"98":{"position":[[576,1],[616,1],[649,1],[769,1],[798,1]]},"99":{"position":[[243,1],[283,1],[403,1],[405,1],[434,2],[437,1],[466,1],[468,1]]},"100":{"position":[[525,1],[565,1],[601,1],[711,1],[740,1]]},"101":{"position":[[876,1],[916,1],[952,1],[1082,1],[1111,1]]},"103":{"position":[[902,1],[929,1]]},"104":{"position":[[814,1],[821,1],[842,1],[864,1],[887,1],[910,1],[912,1],[932,1],[934,1],[956,1],[975,1],[977,1],[991,1],[2087,1],[2247,1]]},"109":{"position":[[110,1],[148,1],[273,1],[322,3],[477,1],[643,2],[736,1]]},"110":{"position":[[170,1],[208,1],[349,1],[589,1],[755,2],[873,1]]},"111":{"position":[[290,1],[348,1],[456,1],[494,1],[532,1],[537,2],[596,2],[599,1],[740,1],[980,1],[1146,2],[1264,1]]},"112":{"position":[[208,1],[266,1],[300,1],[329,1],[367,1],[405,1],[410,2],[469,2],[472,1],[597,1],[646,3],[801,1],[967,2],[1085,1]]},"113":{"position":[[232,1],[290,1],[399,1],[437,1],[475,1],[480,2],[539,2],[542,1],[683,1],[923,1],[1089,2],[1207,1]]},"114":{"position":[[299,1],[337,1]]},"119":{"position":[[200,1],[240,1],[348,1],[350,1],[452,1],[454,1]]},"120":{"position":[[221,1],[261,1]]},"121":{"position":[[170,1],[210,1],[215,2],[259,2],[368,1],[470,1]]},"122":{"position":[[468,1],[508,1],[513,2],[547,2],[675,1],[777,1]]},"123":{"position":[[241,1],[281,1],[439,1],[456,1],[468,1],[481,1],[490,1],[492,1],[494,1],[496,1]]},"124":{"position":[[321,1],[361,1],[626,1],[673,1],[685,1],[698,1],[707,1],[709,2],[726,1],[739,1],[748,2],[760,1],[772,1],[774,1],[776,1],[778,1]]},"125":{"position":[[241,1],[281,1],[342,1],[511,1],[558,1],[570,1],[583,1],[592,1],[594,2],[611,1],[624,1],[633,2],[645,1],[670,1],[672,1],[674,1],[676,1]]},"126":{"position":[[237,1],[277,1]]},"127":{"position":[[183,1],[223,1]]},"130":{"position":[[1332,1],[1576,3],[1584,3],[1627,3],[1635,3],[1643,3],[1658,3],[1676,3],[1680,3],[1684,3],[1694,3],[1729,3],[1733,3],[1741,3],[1751,3],[1948,3],[1952,3],[1970,1],[1985,3],[2005,1],[2021,3],[2102,3],[2106,3],[2272,3],[2276,3],[2280,3],[2357,1],[2411,1],[2421,1],[2465,1],[2473,1],[2578,3],[2582,3],[2595,3],[2664,3],[2668,3],[2735,3],[2739,3],[2918,3],[2929,3],[2939,3],[2954,3],[2964,3],[2982,3],[2992,3],[3002,3],[3012,3],[3022,3],[3032,3],[3045,3],[3079,3],[3088,3],[3101,3],[3110,3],[3120,3],[3131,3],[3141,3],[3151,3],[3161,3],[3344,3],[3348,3],[3366,1],[3381,3],[3401,1],[3417,3],[3498,3],[3502,3],[3560,3],[3570,3],[3626,3],[3636,3],[3691,3],[3701,3],[3768,3],[3778,3],[3846,3],[3856,3],[3916,3],[3926,3],[4005,3],[4015,3],[4483,1],[4523,1],[4549,1],[4607,1],[4659,1],[4897,1],[5580,1],[5965,1]]},"131":{"position":[[349,1],[373,1],[450,1],[498,1],[578,1],[737,1],[818,1],[820,1]]},"132":{"position":[[338,1],[362,1],[428,1],[476,1],[556,1],[558,1],[717,1],[798,1],[800,1],[802,1]]},"133":{"position":[[309,1],[349,1],[433,1],[672,1]]},"140":{"position":[[332,1],[372,1],[484,1],[651,1]]},"141":{"position":[[116,1],[203,1],[262,1],[302,1],[340,1],[345,2],[431,1],[579,1],[746,1]]},"142":{"position":[[150,1],[190,1]]},"144":{"position":[[180,1],[220,1],[340,1],[342,1],[469,1],[471,1]]},"147":{"position":[[329,1],[369,1],[479,1],[700,1]]},"148":{"position":[[113,1],[234,1],[293,1],[333,1],[461,1],[606,1],[827,1]]},"149":{"position":[[145,1],[185,1]]},"151":{"position":[[178,1],[218,1],[336,1],[338,1],[465,1],[467,1]]},"154":{"position":[[350,1],[390,1],[511,1],[734,1]]},"155":{"position":[[134,1],[217,1],[276,1],[316,1],[403,1],[569,1],[792,1]]},"156":{"position":[[168,1],[208,1]]},"158":{"position":[[189,1],[229,1],[358,1],[360,1],[487,1],[489,1]]},"161":{"position":[[323,1],[363,1],[470,1],[686,1]]},"162":{"position":[[107,1],[243,1],[302,1],[342,1],[380,1],[523,1],[662,1],[878,1]]},"163":{"position":[[141,1],[181,1]]},"165":{"position":[[175,1],[215,1],[330,1],[332,1],[459,1],[461,1]]},"168":{"position":[[335,1],[375,1],[488,1],[739,1]]},"169":{"position":[[119,1],[230,1],[289,1],[329,1],[444,1],[595,1],[846,1]]},"170":{"position":[[153,1],[193,1]]},"172":{"position":[[181,1],[221,1],[342,1],[344,1],[471,1],[473,1]]},"175":{"position":[[345,1],[385,1],[503,1],[644,1]]},"176":{"position":[[129,1],[190,1],[249,1],[289,1],[327,1],[332,2],[394,2],[397,1],[558,1],[699,1]]},"177":{"position":[[163,1],[203,1]]},"179":{"position":[[186,1],[226,1],[352,1],[354,1],[481,1],[483,1]]},"182":{"position":[[325,1],[365,1],[473,1],[679,1]]},"183":{"position":[[109,1],[175,1],[234,1],[274,1],[312,1],[317,2],[383,1],[524,1],[730,1]]},"184":{"position":[[143,1],[183,1]]},"186":{"position":[[176,1],[216,1],[332,1],[334,1],[461,1],[463,1]]},"189":{"position":[[329,1],[369,1],[479,1],[651,1]]},"190":{"position":[[113,1],[178,1],[237,1],[277,1],[315,1],[320,2],[389,1],[534,1],[706,1]]},"191":{"position":[[147,1],[187,1]]},"193":{"position":[[178,1],[218,1],[336,1],[338,1],[465,1],[467,1]]},"196":{"position":[[325,1],[365,1],[473,1],[644,1]]},"197":{"position":[[109,1],[200,1],[259,1],[299,1],[337,1],[435,1],[576,1],[747,1]]},"198":{"position":[[143,1],[183,1]]},"200":{"position":[[176,1],[216,1],[332,1],[334,1],[461,1],[463,1]]},"203":{"position":[[329,1],[369,1],[479,1],[685,1]]},"204":{"position":[[113,1],[179,1],[238,1],[278,1],[492,1],[743,1]]},"205":{"position":[[147,1],[187,1]]},"207":{"position":[[178,1],[218,1],[336,1],[338,1],[456,1],[458,1]]},"210":{"position":[[272,1]]},"218":{"position":[[566,1],[606,1],[679,1],[681,1],[726,1],[767,5],[773,1],[788,1],[811,1],[813,2],[816,4],[821,1]]},"219":{"position":[[247,1],[287,1],[365,1],[410,1],[451,5],[457,2],[473,1],[496,2],[509,1],[562,1],[564,1]]},"220":{"position":[[1477,1],[1523,1],[1651,1],[1653,1],[1891,1],[1893,1],[1963,2],[1966,4],[1971,2],[2026,2],[2029,4],[2034,1]]},"221":{"position":[[129,1],[175,1],[268,1],[506,1],[508,1],[578,2],[581,1],[590,2],[645,1]]},"222":{"position":[[882,1],[962,1],[973,2],[990,1],[1015,2],[1030,1],[1071,5],[1077,1],[1079,1],[1666,1],[1704,1],[1744,1],[1749,2],[1765,2],[1768,1],[2058,1],[2072,1],[2113,1],[2115,3],[2145,1],[2176,1],[2206,1],[2236,1],[2267,1],[2298,1],[2325,3],[2329,1],[2331,1]]},"223":{"position":[[289,1],[329,1]]},"224":{"position":[[185,1],[231,1],[322,1],[344,1],[383,2],[405,1],[417,2],[456,1]]},"225":{"position":[[162,1],[202,1]]},"239":{"position":[[365,1],[380,1],[387,1],[408,1],[430,1],[453,1],[476,1],[478,1],[498,1],[500,1],[522,1],[541,1],[543,1],[557,2],[621,1],[750,1],[790,1]]},"248":{"position":[[485,1]]},"251":{"position":[[92,1],[242,1],[487,1]]},"252":{"position":[[207,1],[214,1]]},"253":{"position":[[292,1],[301,1],[308,1]]},"255":{"position":[[479,1],[519,1],[598,1],[635,1],[637,1],[780,2],[783,1],[918,2],[921,4],[926,1],[928,1],[1206,1],[1208,1],[1210,1],[1229,2],[1232,1],[1234,1],[1241,1],[1243,1],[1245,1],[1255,1],[1257,1],[1259,1],[1267,2],[1270,2],[1273,1],[1281,1],[1283,1],[1285,1],[1295,1],[1297,1],[1299,1]]},"260":{"position":[[581,1],[621,1],[691,1],[693,1],[809,1],[850,2],[1287,2],[1290,2],[1293,1],[1409,1],[1450,2],[1576,2],[1579,2],[1582,4],[1587,1]]},"261":{"position":[[127,1],[167,1]]},"262":{"position":[[544,1],[562,2],[594,2],[618,1],[659,1],[661,1],[663,1],[665,1],[706,1],[747,1],[788,1],[828,1],[830,1],[832,1],[834,1],[836,1],[895,1],[935,1],[940,2],[955,1],[995,5],[1001,1],[1003,2],[1093,1],[1173,1],[1204,2],[1221,1],[1262,2],[1277,1],[1318,5],[1324,2],[1468,1],[1509,1],[1511,1]]},"263":{"position":[[479,1],[529,1],[570,1],[572,1],[574,1],[576,1],[617,1],[658,1],[699,1],[739,1],[741,1],[743,1],[745,1],[747,1],[807,1],[847,1],[852,2],[903,1],[943,5],[949,1],[951,2]]},"264":{"position":[[1167,1],[1207,1],[1323,1],[1325,1],[1508,1],[1517,2],[1533,1],[1542,2],[1676,2],[1679,4],[1684,1]]},"265":{"position":[[175,1],[215,1],[336,1],[519,1],[528,2],[544,1],[553,2],[687,1]]},"266":{"position":[[816,3],[831,1],[835,1],[840,1],[845,1],[850,1],[856,1],[877,1],[891,1],[932,1],[934,1],[936,1],[938,1],[979,1],[1020,1],[1061,1],[1101,1],[1103,1],[1105,1],[1107,2],[1137,1],[1196,1],[1236,1],[1241,2],[1256,1],[1297,4],[1341,1],[1382,1],[1423,1],[1495,2],[1596,1],[1598,1],[1708,1],[1751,2],[1768,1],[1809,2],[1824,1],[1865,5],[1871,2],[2212,2],[2215,2],[2218,1],[2220,1],[2330,1],[2375,2],[2392,1],[2433,2],[2448,1],[2489,5],[2495,2],[2641,2],[2644,2],[2647,4],[2652,1]]},"267":{"position":[[251,1],[266,1],[338,1],[419,1],[470,1],[514,1],[559,1],[600,1],[602,1],[604,1],[606,1],[646,1],[686,1],[727,1],[767,1],[806,1],[808,1],[810,1],[812,1]]},"268":{"position":[[455,1],[476,1],[535,1],[575,1],[580,2],[634,2]]},"269":{"position":[[534,1],[574,1],[704,1],[706,1],[748,1],[770,1],[847,1],[849,1],[851,1],[853,1]]},"272":{"position":[[149,1],[189,1]]},"273":{"position":[[169,1],[209,1]]},"274":{"position":[[128,1],[168,1]]},"275":{"position":[[182,1],[196,1],[237,1],[239,1],[241,1],[243,1],[284,1],[325,1],[366,1],[406,1],[408,1],[410,1],[412,1],[414,1],[472,1],[512,1],[517,2],[532,1],[569,5],[575,1],[577,2],[686,1],[766,1],[807,1],[809,1],[811,1],[813,1],[854,1],[895,1],[936,1],[976,1],[978,1],[980,1],[982,2],[993,1],[1038,2],[1153,1]]},"277":{"position":[[496,1],[536,1],[605,1],[607,1],[842,1],[883,2],[996,2],[999,4],[1004,1]]},"278":{"position":[[147,1],[187,1]]},"279":{"position":[[176,1],[213,1],[272,1],[312,1],[317,2],[339,2]]},"280":{"position":[[192,1],[239,1],[297,1],[337,1],[342,2],[393,2]]},"282":{"position":[[394,1],[434,1],[540,1],[542,1],[723,3],[818,2],[821,4],[826,1]]},"283":{"position":[[151,1],[191,1],[320,1],[501,3],[596,1]]},"284":{"position":[[150,1],[182,1],[241,1],[281,1],[286,2],[310,2]]},"285":{"position":[[176,1],[208,1],[266,1],[306,1],[311,2]]},"287":{"position":[[682,1],[1040,1],[1286,1],[1548,3],[1636,1]]},"288":{"position":[[1668,1],[1774,1],[1815,1],[1817,1],[1819,1],[1821,1],[1861,2],[1864,1],[1904,2],[1907,1],[1947,2],[1950,1],[1991,2],[1994,1],[2034,1],[2036,1],[2038,1],[2040,1],[2042,2],[2053,1],[2085,2],[2200,1],[2202,1]]},"289":{"position":[[5,1],[292,1]]},"290":{"position":[[5,1],[173,1],[182,2],[293,1]]},"291":{"position":[[5,1],[144,1],[153,2],[219,1]]},"292":{"position":[[527,1],[541,1],[558,1],[560,1],[562,1],[564,1],[607,1],[650,1],[693,1],[736,1],[778,1],[820,1],[822,1],[824,2],[850,1],[852,1]]},"297":{"position":[[106,1],[146,1],[250,1],[252,1],[392,2],[395,1],[579,1],[581,1]]},"298":{"position":[[95,1],[163,1],[414,1],[454,1],[459,2],[528,2],[609,1],[686,1]]},"299":{"position":[[106,1],[146,1]]},"301":{"position":[[710,1],[750,1],[839,1],[841,1],[931,2],[934,1],[1024,1],[1026,1],[1203,1],[1243,1],[1342,1],[1432,1],[1560,1],[1608,1],[1667,1],[1707,1],[1712,2],[1761,2],[1971,1],[2019,1],[2077,1],[2117,1],[2122,2],[2171,2],[2424,1],[2464,1]]},"302":{"position":[[835,1],[875,1],[972,1],[974,1],[1064,2],[1067,1],[1157,1],[1159,1],[1360,1],[1400,1],[1507,1],[1597,1],[1749,1],[1818,1],[1877,1],[1917,1],[1922,2],[1992,2],[2234,1],[2303,1],[2361,1],[2401,1],[2406,2],[2476,2],[2761,1],[2801,1]]},"303":{"position":[[928,1],[968,1],[1053,1],[1055,1],[1154,2],[1157,1],[1256,1],[1258,1],[1441,1],[1481,1],[1596,1],[1695,1],[1829,1],[1907,1],[1966,1],[2006,1],[2011,2],[2090,2],[2322,1],[2400,1],[2458,1],[2498,1],[2503,2],[2582,2],[2857,1],[2897,1]]},"304":{"position":[[1005,1],[1045,1],[1135,1],[1137,1],[1236,2],[1239,1],[1338,1],[1340,1],[1540,1],[1580,1],[1700,1],[1799,1],[1950,1],[2000,1],[2059,1],[2099,1],[2104,2],[2155,2],[2409,1],[2459,1],[2517,1],[2557,1],[2562,2],[2613,2],[2910,1],[2950,1]]},"305":{"position":[[898,1],[938,1],[1026,1],[1028,1],[1118,2],[1121,1],[1211,1],[1213,1],[1385,1],[1425,1],[1523,1],[1613,1],[1736,1],[1814,1],[1873,1],[1913,1],[1918,2],[1997,2],[2201,1],[2279,1],[2337,1],[2377,1],[2382,2],[2461,2],[2708,1],[2748,1]]},"308":{"position":[[94,1]]},"313":{"position":[[496,1],[515,1]]},"314":{"position":[[475,1],[488,1],[828,1],[858,1],[890,1],[932,1],[977,1],[1022,1],[1076,1],[1089,1],[1255,2],[1258,2],[1261,1]]},"317":{"position":[[150,2],[779,1],[791,1],[922,2],[951,1],[968,1],[997,1],[1033,1],[1070,1],[1127,1],[1156,1],[1158,1],[1241,1],[1248,1],[1370,2],[1481,1],[1503,1],[1621,1],[1651,1],[1686,1],[1728,1],[1773,1],[1818,1],[1868,1],[1880,1],[1895,1],[1897,1],[1921,2],[1924,1],[1953,2]]},"322":{"position":[[27,1]]},"328":{"position":[[876,1],[916,1],[921,2],[972,2]]},"329":{"position":[[545,1],[585,1],[590,2],[660,2]]},"330":{"position":[[902,1],[942,1],[947,2],[1026,2]]},"331":{"position":[[760,1],[800,1],[805,2],[854,2]]},"332":{"position":[[742,1],[782,1],[787,2],[866,2]]},"334":{"position":[[496,1],[514,1]]},"335":{"position":[[472,1],[484,1],[825,1],[834,1],[964,2],[967,2],[970,1]]},"338":{"position":[[178,2],[319,1],[351,1],[1131,1],[1143,1],[1274,2],[1303,1],[1320,1],[1349,1],[1385,1],[1422,1],[1472,1],[1554,1],[1556,1],[1577,1],[1584,1],[1620,1],[1627,1],[1815,1],[1825,1],[1886,1],[1888,2],[1891,2],[1894,1],[1896,2],[1937,1],[1980,1],[1982,1],[2002,1],[2004,2],[2070,2],[2073,2],[2159,2],[2162,1],[2187,2],[2218,3],[2222,2],[2260,2],[2263,1],[2291,2],[2341,2],[2377,3],[2383,1],[2385,1],[2418,1],[2420,1],[2422,1],[2424,2],[2469,2],[2472,1],[2474,2],[2525,2],[2528,2],[2583,2],[2586,2],[2644,3],[2648,3],[2652,3],[2656,2],[2666,3],[2670,2],[2673,2],[2740,1],[2758,1],[2807,1],[2809,2],[2812,2],[2815,1],[2824,1],[2846,2],[2992,2],[3003,2],[3006,2],[3689,2],[3692,1],[3757,2]]},"346":{"position":[[1901,1],[1941,1]]},"347":{"position":[[103,1],[143,1]]},"348":{"position":[[130,1],[170,1]]},"349":{"position":[[154,1],[194,1],[279,1],[281,1],[316,1],[409,1],[430,1],[452,1],[472,1],[486,2],[524,2],[527,4],[532,1]]},"350":{"position":[[123,1],[163,1]]},"351":{"position":[[122,1],[162,1],[247,1],[263,1],[304,2],[328,1],[369,2],[391,1],[432,2],[453,1],[494,2],[513,1],[554,2],[568,1],[609,2],[621,1],[662,2],[681,1],[722,2],[743,1],[784,1],[786,1]]},"352":{"position":[[316,1],[356,1],[468,1],[479,1],[600,1],[602,1]]},"353":{"position":[[687,1],[696,1],[720,1],[722,1],[781,1],[821,1],[826,2],[836,1],[851,1],[853,2],[933,1],[973,1]]},"361":{"position":[[202,1],[288,1],[329,2],[666,1],[701,1],[719,1],[762,2],[778,1],[876,2],[897,1],[941,2],[962,1],[1059,2],[1071,1],[1167,2],[1188,1],[1231,2],[1327,1],[1371,2],[1385,1],[1480,2],[1496,1],[1566,2],[1588,1],[1666,2],[1689,1],[1785,2],[1801,1],[1902,2],[1925,1],[2023,2],[2044,1],[2142,2],[2161,1],[2204,2],[2220,1],[2222,1],[2243,1],[2321,2],[2335,1],[2378,2],[2399,1],[2445,2],[2461,1],[2504,2],[2515,1],[2559,2],[2575,1],[2619,2],[2640,1],[2687,2],[2701,1],[2744,2],[2762,1],[2764,2],[2792,1],[2832,2],[2876,1],[2973,2],[3021,1],[3030,2],[3046,1],[3090,2],[3106,1],[3108,1],[3211,2],[3214,1],[3295,1],[3297,1],[3299,2],[3314,1],[3355,3],[3359,1],[3399,1],[3438,1],[3478,1],[3518,1],[3558,1],[3599,1],[3638,1],[3678,1],[3717,3],[3721,1],[3723,1],[3725,1]]},"362":{"position":[[134,1],[152,1],[173,1],[214,2],[234,1],[252,1],[269,2],[292,2],[310,2],[328,2],[365,2],[386,2],[432,2],[452,2],[472,2],[480,1],[482,1],[503,2],[506,1]]},"364":{"position":[[259,1],[292,1],[326,1],[367,2],[384,1],[560,1],[903,1],[905,1]]},"365":{"position":[[81,1],[119,1],[205,1],[244,1],[296,1],[349,1],[414,1],[466,1],[516,2],[550,1],[601,1],[659,1],[729,2],[781,2],[838,2],[888,2],[937,1],[964,2],[1054,2],[1126,2],[1174,2],[1269,2],[1278,1],[1333,2],[1427,2],[1515,1],[1517,1],[1538,2],[1541,1],[1594,1],[1596,1],[1764,2]]},"366":{"position":[[113,1],[134,1],[150,1],[173,1],[195,1],[224,1],[239,1],[264,1],[286,1]]},"367":{"position":[[150,1],[152,1],[182,1],[347,1],[349,2],[426,2],[429,1],[462,1],[627,1],[629,2],[706,2],[709,1],[744,1],[909,1],[911,2],[988,2],[991,1],[1025,1],[1190,1],[1192,2],[1269,2],[1272,1],[1314,1],[1479,1],[1481,2],[1558,2],[1561,1],[1601,1],[1766,1],[1768,2],[1845,2],[1848,1],[1888,1],[2053,1],[2055,2],[2132,2],[2135,1],[2170,1],[2335,1],[2337,2],[2414,2],[2417,1],[2452,1],[2617,1],[2619,2],[2696,2],[2699,1],[2740,1],[2905,1],[2907,2],[2984,2],[2987,1],[3020,1],[3185,1],[3187,2],[3264,2],[3267,1],[3300,1],[3465,1],[3467,2],[3544,2],[3547,1],[3587,1],[3752,1],[3754,2],[3831,2],[3834,1],[3869,1],[4034,1],[4036,2],[4113,2],[4116,1],[4158,1],[4323,1],[4325,2],[4402,1],[4404,1]]},"368":{"position":[[116,1],[448,1]]},"378":{"position":[[532,1],[572,1],[656,1],[658,1],[953,1],[1123,2],[1146,1],[1156,1],[1158,2],[1161,4],[1166,1],[1356,1],[1396,1],[1494,1],[1789,1],[1959,2],[1982,1],[1992,1],[1994,1],[2601,1],[2641,1],[2658,1],[2660,1],[2719,1],[2759,1],[2764,2],[2835,1],[3005,1],[3007,2],[3111,1],[3258,1],[3452,1],[3492,1]]},"379":{"position":[[592,1],[632,1],[722,1],[724,1],[1025,1],[1195,2],[1225,2],[1228,4],[1233,1],[1433,1],[1473,1],[1577,1],[1878,1],[2048,2],[2078,1],[2650,1],[2697,1],[2756,1],[2796,1],[2801,2],[2862,1],[3032,1],[3034,2],[3144,1],[3291,1],[3495,1],[3535,1]]},"380":{"position":[[514,1],[554,1],[641,1],[643,1],[940,1],[1110,1],[1112,2],[1115,4],[1120,1],[1283,1],[1323,1],[1424,1],[1721,1],[1891,1],[1893,1],[2201,1],[2220,1],[2279,1],[2319,1],[2324,2],[2357,1],[2527,1],[2529,2],[2636,1],[2783,1],[2950,1],[2990,1]]},"382":{"position":[[1106,1],[1219,1],[1237,1],[1239,1],[1298,1],[1338,1],[1343,2],[1487,1],[1657,1],[1659,2],[1744,1],[1891,1]]},"383":{"position":[[1109,1],[1230,1],[1289,1],[1329,1],[1334,2],[1469,1],[1639,1],[1641,2],[1732,1],[1879,1]]},"384":{"position":[[848,1],[940,1],[999,1],[1039,1],[1044,2],[1150,1],[1320,1],[1322,2],[1410,1],[1557,1]]},"385":{"position":[[916,1],[956,1],[961,2],[1025,1],[1195,1],[1197,2]]},"390":{"position":[[1354,1],[1394,1],[1472,1],[1474,1],[1747,1],[1828,2],[1841,1],[1843,1],[1890,1],[1892,2],[1908,1],[1925,1],[1927,2],[1930,4],[1935,1]]},"391":{"position":[[113,1],[153,1],[236,1],[509,1],[590,2],[603,1],[605,1],[652,1],[654,2],[670,1],[687,1],[689,1]]},"392":{"position":[[140,1],[180,1]]},"393":{"position":[[154,1],[194,1],[293,1],[354,1]]},"394":{"position":[[239,1],[279,1],[378,1],[439,1]]},"395":{"position":[[154,1],[194,1],[284,1],[286,1],[321,1],[414,1],[435,1],[457,1],[477,1],[491,2],[529,2],[532,4],[537,1]]},"396":{"position":[[247,1],[287,1],[379,1],[381,1],[415,1],[427,1],[429,1],[475,2],[478,1],[525,2],[528,1],[576,2],[579,1],[628,2],[631,1],[680,2],[683,1],[732,2],[735,1],[784,1],[786,1],[788,2],[801,1],[846,2],[884,1],[886,1]]},"397":{"position":[[253,1],[293,1],[390,1],[392,1],[453,2],[456,1],[525,2],[528,1],[595,2],[598,1],[667,1],[669,1]]},"398":{"position":[[134,1],[174,1]]},"399":{"position":[[214,1],[254,1],[259,2],[284,1],[383,1],[530,1]]},"400":{"position":[[183,1],[223,1]]},"401":{"position":[[244,1],[284,1]]},"408":{"position":[[311,1],[351,1],[466,1],[494,1],[496,1],[670,1],[672,2],[704,1],[706,1],[880,1],[882,1],[884,1]]},"411":{"position":[[287,1],[509,1],[518,2],[531,1],[533,1],[569,1],[571,2],[587,1],[598,1],[600,1]]},"412":{"position":[[68,1],[95,1]]},"413":{"position":[[223,1],[250,1]]},"414":{"position":[[331,1],[366,1],[385,1],[429,2],[441,1],[538,2],[644,1],[687,2],[703,1],[770,2],[781,1],[794,2],[838,1],[907,2],[926,1],[969,2],[983,1],[1052,2],[1071,1],[1114,2],[1135,1],[1233,2],[1254,1],[1351,2],[1367,1],[1468,2],[1489,1],[1533,2],[1549,1],[1651,2],[1672,1],[1716,2],[1739,1],[1838,2],[1861,1],[1959,2],[1981,1],[2058,2],[2074,1],[2076,1],[2097,1],[2174,2],[2188,1],[2231,2],[2252,1],[2299,2],[2315,1],[2359,2],[2370,1],[2413,2],[2429,1],[2473,2],[2494,1],[2541,2],[2555,1],[2598,2],[2620,1],[2622,2],[2677,1],[2679,1],[2780,2],[2783,1],[2874,1],[2876,2],[2904,1],[3059,1],[3061,2],[3076,1],[3117,3],[3121,1],[3161,1],[3200,1],[3240,1],[3280,1],[3320,1],[3361,1],[3400,1],[3440,1],[3479,3],[3483,1],[3485,1]]},"415":{"position":[[57,1],[59,1],[90,1],[92,1],[99,1],[101,1],[113,2],[122,1],[124,1],[137,2],[146,1],[148,1],[162,2],[171,1],[173,1],[187,2],[196,1],[198,1],[210,2],[219,1],[221,1],[233,2],[243,1],[245,1],[257,2],[265,1],[267,1],[280,1],[282,2],[298,1],[300,1],[793,1],[795,1],[829,1],[841,1],[843,1],[889,2],[892,1],[939,2],[942,1],[990,2],[993,1],[1042,2],[1045,1],[1094,2],[1097,1],[1146,2],[1149,1],[1198,1],[1200,1],[1202,2],[1215,1],[1268,2],[1284,1],[1286,1],[1819,1],[1821,1],[1931,2],[1934,1],[2043,2],[2046,1],[2157,2],[2160,1],[2269,2],[2272,1],[2379,2],[2382,1],[2498,2],[2501,1],[2612,2],[2615,1],[2733,2],[2736,1],[2853,2],[2856,1],[2972,2],[2975,1],[3085,2],[3088,1],[3204,2],[3207,1],[3313,2],[3316,1],[3425,2],[3428,1],[3546,2],[3549,1],[3660,1],[3662,1]]},"416":{"position":[[119,1],[451,1]]},"423":{"position":[[303,1],[341,1],[346,2],[415,2],[418,1]]},"424":{"position":[[175,1],[220,1]]},"425":{"position":[[252,1],[297,1]]},"426":{"position":[[125,1],[170,1]]},"427":{"position":[[28,1],[73,1]]},"428":{"position":[[405,1],[450,1]]},"429":{"position":[[540,1],[585,1],[837,1],[882,1]]},"430":{"position":[[244,1],[289,1],[453,1],[498,1]]},"460":{"position":[[418,2]]},"461":{"position":[[38,1],[78,1]]},"466":{"position":[[199,1],[231,1],[256,1]]},"467":{"position":[[551,2],[554,1],[556,2],[598,1],[634,1],[662,2],[696,1],[742,2],[779,1],[781,1],[837,2],[894,1],[896,2],[942,1],[971,2],[1080,3],[1084,2],[1102,2],[1105,1],[1138,3],[1147,1],[1149,2],[1252,2],[1255,3],[1259,1],[1297,3],[1306,1],[1308,2],[1412,2],[1415,3],[1419,1],[1421,3],[1425,3],[1863,2],[1866,1],[1902,1],[1952,1],[1959,1],[1971,1],[2015,1],[2086,1],[2088,1],[2113,1],[2115,1],[2123,2],[2147,1],[2157,2],[2186,1],[2213,2],[2240,1],[2299,3],[2303,1],[2305,3],[3079,2],[3082,1],[3118,1],[3168,1],[3175,1],[3177,2],[3228,1],[3257,1],[3291,1],[3324,1],[3383,1],[3407,1],[3409,1],[3434,1],[3436,1],[3444,2],[3467,2],[3502,1],[3512,2],[3541,1],[3561,2],[3567,1],[3635,1],[3642,1],[3644,2],[3688,1],[3735,1],[3786,1],[3799,1],[3810,1],[3837,1],[3839,1],[3880,2],[3891,1],[3893,1],[3918,1],[3920,1],[3928,2],[3931,2],[3967,1],[3985,2],[4020,1],[4035,1],[4037,3],[4050,1],[4087,1],[4092,1],[4094,2],[4165,2],[4247,2],[4250,1],[4259,1],[4279,3],[4283,2],[4333,1],[4363,2],[4404,2],[4407,2],[4492,1],[4494,3],[4522,2],[4525,1],[4527,2],[4607,1],[4613,1],[4623,1],[4625,1],[4721,3],[4725,2],[4728,2],[4792,2],[4856,2],[4899,2],[4902,1],[4907,1],[4916,3],[4926,2],[4966,2],[4996,1],[4998,1],[5020,1],[5022,3],[5049,1],[5051,3],[5055,2],[5123,2],[5191,1],[5196,1],[5255,3],[5259,1],[5266,1],[5333,2],[5336,1],[5338,1],[5345,1],[5412,2],[5415,1],[5417,2],[5443,1],[5445,2],[5471,1],[5473,3],[5978,2],[5981,1],[6017,1],[6057,1],[6064,1],[6066,2],[6119,1],[6160,1],[6205,1],[6248,1],[6272,2],[6364,1],[6370,1],[6387,1],[6406,1],[6418,1],[6434,1],[6449,1],[6486,1],[6564,2],[6567,1],[6574,1],[6589,1],[6660,1],[6662,1],[6687,1],[6689,1],[6697,2],[6700,2],[6767,2],[6800,1],[6802,1],[6864,3],[6878,1],[6932,2],[6935,2],[6938,2],[7010,2],[7083,2],[7156,2],[7199,1],[7209,2],[7238,1],[7267,2],[7294,1],[7387,3],[7391,1],[7393,1],[7395,3]]},"468":{"position":[[100,2],[103,2],[106,1],[140,3]]},"473":{"position":[[394,1],[461,1],[538,3],[564,1],[674,3],[699,1],[882,3],[886,1],[1131,1],[1148,1],[1156,2],[1207,1],[1245,1],[1273,2],[1304,2],[1352,3],[1356,2],[1359,2],[1371,3],[1375,3],[1379,1],[1396,1],[1405,2],[1441,1],[1448,1],[1450,2],[1524,2],[1624,2],[1627,1],[1644,1],[1671,1],[1704,3],[1733,1],[1735,2],[1789,2],[1825,1],[1876,1],[1883,1],[1899,1],[1908,1],[1910,3],[1914,1],[1916,1],[2031,1],[2072,1],[2090,1],[2126,3],[2130,1],[2404,1],[2421,1],[2429,2],[2565,2],[2568,1],[2585,1],[2606,1],[2614,3],[2618,1],[2725,1],[2727,2],[2782,2],[2825,1],[2912,1],[2934,1],[2944,3],[2948,1],[3445,1],[3462,1],[3482,1],[3484,3],[3500,1],[3542,1],[3584,1],[3624,3],[3628,2],[3631,2],[3644,3],[3648,2],[3651,2],[3662,3],[3666,3],[3670,1],[3695,1],[3748,1],[3757,1],[3764,1],[3873,2],[3876,1],[3893,1],[3925,1],[3927,3],[3934,1],[3941,3],[4000,2],[4008,3],[4050,1],[4052,1],[4054,2],[4133,1],[4135,3],[4162,1],[4170,1],[4177,1],[4191,1],[4193,3],[4209,1],[4224,2],[4283,1],[4306,2],[4394,1],[4396,1],[4441,1],[4485,2],[4488,2],[4491,2],[4569,1],[4571,1],[4628,1],[4651,2],[4736,2],[4823,2],[4882,1],[4934,2],[5004,1],[5032,2],[5148,2],[5206,2],[5265,2],[5314,2],[5317,1],[5345,2],[5348,1],[5359,1],[5379,1],[5422,3],[5438,1],[5450,1],[5503,1],[5525,3],[5539,1],[5551,1],[5612,1],[5619,1],[5631,1],[5650,1],[5652,3],[5663,1],[5690,3],[5694,1],[5696,3],[5700,1],[5702,1],[5853,1],[5867,1],[5956,1],[5974,1],[6029,2],[6032,1],[6042,1],[6044,2],[6047,1],[6254,1],[6256,2],[6322,2],[6373,2],[6431,2],[6495,2],[6560,2],[6626,2],[6688,2],[6691,1],[6719,2],[6722,1],[6734,3],[6743,1],[6798,1],[6800,3],[6804,3],[6808,1]]},"474":{"position":[[390,1],[392,2],[429,1],[444,1],[484,3],[488,2],[522,1],[591,1],[708,1],[710,2],[723,1],[746,2],[776,1],[878,1],[887,1],[946,2],[1005,1],[1076,1],[1078,2],[1126,2],[1159,1],[1161,1],[1199,2],[1261,1],[1307,1],[1341,2],[1403,1],[1449,2],[1502,1],[1504,1],[1546,2],[1549,2],[1585,1],[1615,2],[1678,1]]},"479":{"position":[[277,1],[308,1],[332,1],[363,1],[398,1],[406,2],[409,2],[412,1],[465,1],[561,2]]},"480":{"position":[[127,2],[130,1],[153,1],[178,3],[586,2],[589,1],[612,3],[661,1],[717,1],[737,3],[773,1],[819,1],[821,1],[841,1],[866,3],[904,1],[946,1],[948,1],[980,1],[998,1],[1056,2],[1059,1],[1072,1],[1096,1],[1098,3],[1102,1],[1132,3],[1737,2],[1740,1],[1752,1],[1788,1],[1829,1],[1884,1],[1886,1],[1942,2],[1999,1],[2007,1],[2071,2],[2089,2],[2092,1],[2125,3],[2134,1],[2169,1],[2207,3],[2216,1],[2257,1],[2259,3],[2263,3],[2844,2],[2847,1],[2858,1],[2884,1],[2886,1],[2964,1],[2977,2],[2992,1],[2994,1],[3019,1],[3021,1],[3029,2],[3045,1],[3138,1],[3148,2],[3168,2],[3171,1],[3214,2],[3232,2],[3235,1],[3268,3],[3277,1],[3343,1],[3345,3],[3349,3],[3776,2],[3779,1],[3791,2],[3805,1],[3819,1],[3821,1],[3846,1],[3848,1],[3856,2],[3872,1],[3958,1],[3968,2],[3997,1],[4040,2],[4066,1],[4073,1],[4127,1],[4129,3],[4551,2],[4554,1],[4571,1],[4602,1],[4604,1],[4629,1],[4631,1],[4639,2],[4651,1],[4680,1],[4745,1],[4775,1],[4785,2],[4805,2],[4880,3],[5276,2],[5279,1],[5291,3],[5306,1],[5357,1],[5364,1],[5443,2],[5531,1],[5562,1],[5588,1],[5623,1],[5665,2],[5744,2],[5809,2],[5812,1],[5857,3],[5861,2],[5940,2],[5985,1],[6061,1],[6063,1],[6088,1],[6090,1],[6098,2],[6122,1],[6132,2],[6161,1],[6176,1],[6211,1],[6282,1],[6284,1],[6309,1],[6311,1],[6358,2],[6361,2],[6430,2],[6495,1],[6497,1],[6544,2],[6547,2],[6615,2],[6668,1],[6767,1],[6785,2],[6814,1],[6816,2],[6872,2],[6875,1],[6906,3],[6910,2],[6956,2],[7051,2],[7070,2],[7073,1],[7075,2],[7206,1],[7208,2],[7211,2],[7230,2],[7233,1],[7296,3],[7300,1],[7302,3],[7747,2],[7750,1],[7762,3],[7777,1],[7831,1],[7838,1],[7892,2],[7895,1],[7906,1],[7928,1],[7946,1],[7951,1],[7965,1],[7967,3],[8023,2],[8026,1],[8037,1],[8059,1],[8096,2],[8099,1],[8121,3],[8160,3],[8164,1],[8171,1],[8208,2],[8211,1],[8213,3],[8217,1],[8219,3],[8590,2],[8593,1],[8607,1],[8637,1],[8696,1],[8719,1],[8721,1],[8746,1],[8748,1],[8756,2],[8780,1],[8790,2],[8819,1],[8830,1],[8863,3],[8867,2],[8893,3],[9338,2],[9341,1],[9355,1],[9385,1],[9444,1],[9454,1],[9479,1],[9481,1],[9506,1],[9508,1],[9516,2],[9540,1],[9550,2],[9579,1],[9590,1],[9623,3],[9627,2],[9653,3],[9856,2],[9859,1],[9874,1],[9895,1],[10149,1],[10162,1],[10198,1],[10226,1],[10243,1],[10479,1],[10493,1],[10495,3],[10513,1],[10708,2],[10711,1],[10713,2],[10768,1],[10786,1],[10816,1],[10827,1],[10829,3],[10867,1],[10874,2],[10885,3],[10913,2],[10916,1],[10918,2],[10985,2],[11010,1],[11048,3],[11102,1],[11114,3],[11124,1],[11126,2],[11194,1],[11248,2],[11300,1],[11343,1],[11433,1],[11467,1],[11487,1],[11521,1],[11542,1],[11566,1],[11600,1],[11620,1],[11654,1],[11675,1],[11714,1],[11721,1],[11728,1],[11740,1],[11760,1],[11772,1],[11784,1],[11810,1],[11825,1],[11832,1],[11850,1],[11857,1],[11864,1],[11876,1],[11896,1],[11908,1],[11920,1],[11946,1],[11961,1],[11968,1],[12003,1],[12005,1],[12013,1],[12015,2],[12018,1],[12020,1],[12032,1],[12034,2],[12037,1],[12039,1],[12051,1],[12053,2],[12056,1],[12058,1],[12070,1],[12072,2],[12075,1],[12077,1],[12104,2],[12271,1],[12284,3],[12291,1],[12312,1],[12314,1],[12321,1],[12343,1],[12345,3],[12349,3],[12353,3],[12357,3],[12361,1],[12716,1],[12753,3],[12757,3]]},"481":{"position":[[100,2],[103,2],[106,1],[169,4],[174,2],[220,1],[293,3]]},"483":{"position":[[316,1],[328,1],[362,1],[437,1],[472,2],[503,1],[518,3],[547,1],[675,1],[682,1],[734,1],[736,1],[738,3],[742,1]]},"484":{"position":[[216,1],[252,2],[262,1],[273,1],[315,1],[442,1],[467,2],[498,1],[513,3],[549,1],[689,1],[696,1],[759,1],[761,1],[763,3],[767,1],[769,1]]},"485":{"position":[[206,1],[218,1],[234,1],[315,1],[317,2],[384,2],[445,2],[507,1],[551,1],[556,1],[579,2],[582,1],[605,2],[608,1],[640,1],[644,1],[652,2],[655,2],[658,1],[674,2],[703,1],[728,1],[730,3],[734,2]]},"486":{"position":[[177,1],[179,2],[251,1],[253,2],[330,1],[492,1],[507,3],[558,1],[560,2],[620,2],[682,1],[689,1],[691,2],[756,2],[815,1],[817,2],[846,1],[871,2],[874,3],[878,3],[882,2]]},"487":{"position":[[276,1],[278,2],[323,1],[361,1],[363,5],[377,1],[459,1],[474,2],[503,1],[505,2],[560,2],[582,1],[602,2],[647,1],[649,2],[704,2],[733,1],[740,1],[742,2],[796,2],[853,1],[898,2],[901,1],[952,1],[956,1],[958,5],[1008,1],[1012,1],[1023,3],[1027,1],[1029,2],[1058,1],[1060,2],[1154,1],[1156,3],[1160,2]]},"488":{"position":[[216,1],[230,1],[250,1],[265,2],[332,2],[409,1],[488,1],[490,2],[543,2],[590,2],[655,2],[658,1],[710,3],[714,3],[718,1],[720,3],[724,2],[795,2],[863,2],[972,1],[1007,2],[1033,1],[1042,1],[1061,2],[1122,1],[1127,1],[1153,2],[1156,1],[1178,1],[1182,1],[1184,5],[1211,1],[1215,1],[1217,5],[1223,2],[1226,1],[1240,1],[1242,3],[1246,2],[1312,2],[1364,2],[1367,1],[1440,1],[1447,1],[1449,5],[1499,1],[1506,1],[1516,2],[1605,2],[1651,2],[1687,2],[1721,1],[1762,1],[1802,1],[1843,1],[1883,1],[1924,1],[1964,1],[2005,1],[2039,2],[2135,3],[2139,2],[2195,2],[2247,1],[2254,1],[2256,4],[2261,1],[2280,2],[2341,1],[2378,1],[2380,3],[2384,2],[2453,2],[2508,3],[2512,1],[2519,1],[2521,4],[2554,3],[2558,1],[2565,1],[2567,4],[2581,1],[2609,1],[2611,3],[2615,2],[2677,1],[2684,1],[2686,4],[2714,3],[2718,2],[2742,1],[2762,1],[2764,3],[2768,2],[2834,2],[2937,1],[3016,1],[3018,2],[3072,2],[3101,1],[3103,2],[3106,2]]},"489":{"position":[[155,1],[170,1],[198,1],[203,1],[205,4],[238,3],[253,1],[281,1],[286,1],[288,4],[316,1],[323,1],[351,1],[356,1],[358,4],[389,1],[391,1]]},"490":{"position":[[139,1],[172,1],[306,3],[325,2],[328,2],[331,4]]},"498":{"position":[[583,1],[960,1]]},"500":{"position":[[88,1],[128,1],[205,1],[207,1],[584,2],[587,4],[592,1]]},"501":{"position":[[288,1],[328,1],[410,1],[787,1]]},"502":{"position":[[133,1],[212,1],[664,1],[679,1],[738,1],[778,1],[783,2],[865,1],[942,1],[1035,1]]},"503":{"position":[[84,1],[177,1],[525,1],[540,1],[598,1],[638,1],[643,2],[738,1],[815,1],[908,1]]},"504":{"position":[[116,1],[156,1]]},"510":{"position":[[232,1]]},"511":{"position":[[14,1],[1023,1],[1745,1],[1803,1]]},"515":{"position":[[1006,1],[1728,1],[1786,1]]},"517":{"position":[[1068,2],[1172,2]]},"519":{"position":[[597,1],[637,1],[759,1],[794,1],[814,1],[826,1],[828,1],[875,2],[878,1],[925,2],[928,4],[933,2],[949,2],[975,1],[987,1],[989,1],[1036,2],[1039,1],[1086,2],[1089,4],[1094,2],[1110,2],[1135,1],[1147,1],[1149,1],[1196,2],[1199,1],[1246,2],[1249,4],[1254,2],[1270,2],[1295,1],[1307,1],[1309,1],[1356,2],[1359,1],[1406,2],[1409,4],[1414,2],[1430,2],[1444,1],[1456,1],[1458,1],[1519,2],[1522,1],[1583,2],[1586,4],[1591,2],[1612,2],[1630,1],[1642,1],[1644,1],[1690,2],[1693,1],[1739,2],[1742,4],[1747,2],[1763,2],[1786,1],[1798,1],[1800,1],[1846,2],[1849,1],[1895,2],[1898,4],[1903,2],[1919,2],[1938,1],[1950,1],[1952,1],[1999,2],[2002,1],[2049,2],[2052,4],[2057,2],[2075,2],[2100,1],[2112,1],[2114,1],[2161,2],[2164,1],[2211,2],[2214,4],[2219,2],[2235,2],[2296,1],[2308,1],[2310,1],[2356,2],[2359,1],[2405,2],[2408,4],[2413,2],[2429,2],[2448,1],[2460,1],[2462,1],[2509,2],[2512,1],[2559,2],[2562,4],[2567,2],[2585,2],[2607,1],[2619,1],[2621,1],[2668,2],[2671,1],[2718,2],[2721,4],[2726,2],[2742,2],[2763,1],[2775,1],[2777,1],[2824,2],[2827,1],[2874,2],[2877,4],[2882,2],[2898,2],[2911,1],[2923,1],[2925,1],[2986,2],[2989,1],[3050,2],[3053,4],[3058,2],[3079,2],[3099,1],[3111,1],[3113,1],[3161,2],[3164,1],[3212,2],[3215,4],[3220,2],[3231,3],[3235,1],[3237,2],[3252,1],[3286,1],[3327,1],[3329,1],[3331,1]]},"520":{"position":[[599,1],[639,1],[762,1],[797,1],[807,1],[819,1],[821,1],[867,2],[870,1],[916,2],[919,4],[924,2],[940,2],[962,1],[974,1],[976,1],[1023,2],[1026,1],[1073,2],[1076,4],[1081,2],[1097,2],[1120,1],[1132,1],[1134,1],[1180,2],[1183,1],[1229,2],[1232,4],[1237,2],[1256,2],[1279,1],[1291,1],[1293,1],[1339,2],[1342,1],[1388,2],[1391,4],[1396,2],[1415,2],[1438,1],[1450,1],[1452,1],[1498,2],[1501,1],[1547,2],[1550,4],[1555,2],[1574,2],[1598,1],[1610,1],[1612,1],[1658,2],[1661,1],[1707,2],[1710,4],[1715,2],[1734,2],[1759,1],[1771,1],[1773,1],[1819,2],[1822,1],[1868,2],[1871,4],[1876,2],[1895,2],[1919,1],[1931,1],[1933,1],[1981,2],[1984,1],[2032,2],[2035,4],[2040,2],[2058,2],[2073,1],[2085,1],[2087,1],[2134,2],[2137,1],[2184,2],[2187,4],[2192,2],[2208,2],[2224,1],[2236,1],[2238,1],[2284,2],[2287,1],[2333,2],[2336,4],[2341,2],[2359,2],[2374,1],[2386,1],[2388,1],[2434,2],[2437,1],[2483,2],[2486,4],[2491,2],[2507,2],[2532,1],[2544,1],[2546,1],[2593,2],[2596,1],[2643,2],[2646,4],[2651,2],[2667,2],[2692,1],[2704,1],[2706,1],[2754,2],[2757,1],[2803,2],[2806,4],[2811,2],[2829,2],[2870,1],[2882,1],[2884,1],[2931,2],[2934,1],[2982,2],[2985,4],[2990,2],[3001,3],[3005,2],[3025,1],[3037,1],[3039,1],[3085,2],[3088,1],[3134,2],[3137,4],[3142,2],[3158,2],[3181,1],[3193,1],[3195,1],[3242,2],[3245,1],[3292,2],[3295,4],[3300,2],[3311,3],[3315,2],[3333,1],[3345,1],[3347,1],[3394,2],[3397,1],[3444,2],[3447,4],[3452,2],[3468,2],[3484,1],[3496,1],[3498,1],[3544,2],[3547,1],[3593,2],[3596,4],[3601,2],[3619,2],[3639,1],[3651,1],[3653,1],[3701,2],[3704,1],[3751,2],[3754,4],[3759,2],[3777,1],[3779,2],[3794,1],[3828,1],[3869,1],[3871,1],[3873,1]]},"521":{"position":[[586,1],[626,1],[725,1],[760,1],[780,1],[792,1],[794,1],[841,2],[844,1],[891,2],[894,4],[899,2],[915,2],[941,1],[953,1],[955,1],[1002,2],[1005,1],[1052,2],[1055,4],[1060,2],[1076,2],[1101,1],[1113,1],[1115,1],[1162,2],[1165,1],[1212,2],[1215,4],[1220,2],[1236,2],[1261,1],[1273,1],[1275,1],[1322,2],[1325,1],[1372,2],[1375,4],[1380,2],[1396,2],[1410,1],[1422,1],[1424,1],[1485,2],[1488,1],[1549,2],[1552,4],[1557,2],[1578,2],[1596,1],[1608,1],[1610,1],[1656,2],[1659,1],[1705,2],[1708,4],[1713,2],[1729,2],[1752,1],[1764,1],[1766,1],[1812,2],[1815,1],[1861,2],[1864,4],[1869,2],[1885,2],[1904,1],[1916,1],[1918,1],[1965,2],[1968,1],[2015,2],[2018,4],[2023,2],[2041,2],[2066,1],[2078,1],[2080,1],[2127,2],[2130,1],[2177,2],[2180,4],[2185,2],[2201,2],[2262,1],[2274,1],[2276,1],[2322,2],[2325,1],[2371,2],[2374,4],[2379,2],[2395,2],[2414,1],[2426,1],[2428,1],[2475,2],[2478,1],[2525,2],[2528,4],[2533,2],[2551,2],[2573,1],[2585,1],[2587,1],[2634,2],[2637,1],[2684,2],[2687,4],[2692,2],[2708,2],[2729,1],[2741,1],[2743,1],[2790,2],[2793,1],[2840,2],[2843,4],[2848,2],[2864,2],[2877,1],[2889,1],[2891,1],[2952,2],[2955,1],[3016,2],[3019,4],[3024,2],[3045,2],[3065,1],[3077,1],[3079,1],[3127,2],[3130,1],[3178,2],[3181,4],[3186,2],[3197,3],[3201,1],[3203,2],[3218,1],[3252,1],[3293,1],[3295,1],[3297,1]]},"522":{"position":[[588,1],[628,1],[728,1],[763,1],[773,1],[785,1],[787,1],[833,2],[836,1],[882,2],[885,4],[890,2],[906,2],[928,1],[940,1],[942,1],[989,2],[992,1],[1039,2],[1042,4],[1047,2],[1063,2],[1086,1],[1098,1],[1100,1],[1146,2],[1149,1],[1195,2],[1198,4],[1203,2],[1222,2],[1245,1],[1257,1],[1259,1],[1305,2],[1308,1],[1354,2],[1357,4],[1362,2],[1381,2],[1404,1],[1416,1],[1418,1],[1464,2],[1467,1],[1513,2],[1516,4],[1521,2],[1540,2],[1564,1],[1576,1],[1578,1],[1624,2],[1627,1],[1673,2],[1676,4],[1681,2],[1700,2],[1725,1],[1737,1],[1739,1],[1785,2],[1788,1],[1834,2],[1837,4],[1842,2],[1861,2],[1885,1],[1897,1],[1899,1],[1947,2],[1950,1],[1998,2],[2001,4],[2006,2],[2024,2],[2039,1],[2051,1],[2053,1],[2100,2],[2103,1],[2150,2],[2153,4],[2158,2],[2174,2],[2190,1],[2202,1],[2204,1],[2250,2],[2253,1],[2299,2],[2302,4],[2307,2],[2325,2],[2340,1],[2352,1],[2354,1],[2400,2],[2403,1],[2449,2],[2452,4],[2457,2],[2473,2],[2498,1],[2510,1],[2512,1],[2559,2],[2562,1],[2609,2],[2612,4],[2617,2],[2633,2],[2658,1],[2670,1],[2672,1],[2720,2],[2723,1],[2769,2],[2772,4],[2777,2],[2795,2],[2836,1],[2848,1],[2850,1],[2897,2],[2900,1],[2948,2],[2951,4],[2956,2],[2967,3],[2971,2],[2991,1],[3003,1],[3005,1],[3051,2],[3054,1],[3100,2],[3103,4],[3108,2],[3124,2],[3147,1],[3159,1],[3161,1],[3208,2],[3211,1],[3258,2],[3261,4],[3266,2],[3277,3],[3281,2],[3299,1],[3311,1],[3313,1],[3360,2],[3363,1],[3410,2],[3413,4],[3418,2],[3434,2],[3450,1],[3462,1],[3464,1],[3510,2],[3513,1],[3559,2],[3562,4],[3567,2],[3585,2],[3605,1],[3617,1],[3619,1],[3667,2],[3670,1],[3717,2],[3720,4],[3725,2],[3743,1],[3745,2],[3760,1],[3794,1],[3835,1],[3837,1],[3839,1]]},"523":{"position":[[783,1],[823,1],[947,1],[982,1],[1002,1],[1014,1],[1016,1],[1063,2],[1066,1],[1113,2],[1116,4],[1121,2],[1137,2],[1163,1],[1175,1],[1177,1],[1224,2],[1227,1],[1274,2],[1277,4],[1282,2],[1298,2],[1323,1],[1335,1],[1337,1],[1384,2],[1387,1],[1434,2],[1437,4],[1442,2],[1458,2],[1483,1],[1495,1],[1497,1],[1544,2],[1547,1],[1594,2],[1597,4],[1602,2],[1618,2],[1632,1],[1644,1],[1646,1],[1707,2],[1710,1],[1771,2],[1774,4],[1779,2],[1800,2],[1818,1],[1830,1],[1832,1],[1878,2],[1881,1],[1927,2],[1930,4],[1935,2],[1951,2],[1974,1],[1986,1],[1988,1],[2034,2],[2037,1],[2083,2],[2086,4],[2091,2],[2107,2],[2126,1],[2138,1],[2140,1],[2187,2],[2190,1],[2237,2],[2240,4],[2245,2],[2263,2],[2288,1],[2300,1],[2302,1],[2349,2],[2352,1],[2399,2],[2402,4],[2407,2],[2423,2],[2484,1],[2496,1],[2498,1],[2544,2],[2547,1],[2593,2],[2596,4],[2601,2],[2617,2],[2636,1],[2648,1],[2650,1],[2697,2],[2700,1],[2747,2],[2750,4],[2755,2],[2773,2],[2795,1],[2807,1],[2809,1],[2856,2],[2859,1],[2906,2],[2909,4],[2914,2],[2930,2],[2951,1],[2963,1],[2965,1],[3012,2],[3015,1],[3062,2],[3065,4],[3070,2],[3086,2],[3099,1],[3111,1],[3113,1],[3174,2],[3177,1],[3238,2],[3241,4],[3246,2],[3267,2],[3287,1],[3299,1],[3301,1],[3349,2],[3352,1],[3400,2],[3403,4],[3408,2],[3419,3],[3423,1],[3425,2],[3440,1],[3474,1],[3515,1],[3517,1],[3519,1]]},"524":{"position":[[582,1],[622,1],[747,1],[782,1],[792,1],[804,1],[806,1],[852,2],[855,1],[901,2],[904,4],[909,2],[925,2],[948,1],[960,1],[962,1],[1008,2],[1011,1],[1057,2],[1060,4],[1065,2],[1084,2],[1108,1],[1120,1],[1122,1],[1168,2],[1171,1],[1217,2],[1220,4],[1225,2],[1244,2],[1270,1],[1282,1],[1284,1],[1330,2],[1333,1],[1379,2],[1382,4],[1387,2],[1406,2],[1433,1],[1445,1],[1447,1],[1493,2],[1496,1],[1542,2],[1545,4],[1550,2],[1569,2],[1593,1],[1605,1],[1607,1],[1655,2],[1658,1],[1706,2],[1709,4],[1714,2],[1732,2],[1747,1],[1759,1],[1761,1],[1808,2],[1811,1],[1858,2],[1861,4],[1866,2],[1882,2],[1898,1],[1910,1],[1912,1],[1959,2],[1962,1],[2009,2],[2012,4],[2017,2],[2035,2],[2050,1],[2062,1],[2064,1],[2110,2],[2113,1],[2159,2],[2162,4],[2167,2],[2183,2],[2208,1],[2220,1],[2222,1],[2269,2],[2272,1],[2319,2],[2322,4],[2327,2],[2343,2],[2368,1],[2380,1],[2382,1],[2430,2],[2433,1],[2480,2],[2483,4],[2488,2],[2506,2],[2547,1],[2559,1],[2561,1],[2607,2],[2610,1],[2656,2],[2659,4],[2664,2],[2675,3],[2679,2],[2699,1],[2711,1],[2713,1],[2759,2],[2762,1],[2808,2],[2811,4],[2816,2],[2832,2],[2854,1],[2866,1],[2868,1],[2915,2],[2918,1],[2965,2],[2968,4],[2973,2],[2989,2],[3012,1],[3024,1],[3026,1],[3073,2],[3076,1],[3123,2],[3126,4],[3131,2],[3142,3],[3146,2],[3164,1],[3176,1],[3178,1],[3225,2],[3228,1],[3275,2],[3278,4],[3283,2],[3299,2],[3315,1],[3327,1],[3329,1],[3375,2],[3378,1],[3424,2],[3427,4],[3432,2],[3450,2],[3470,1],[3482,1],[3484,1],[3532,2],[3535,1],[3583,2],[3586,4],[3591,2],[3609,1],[3611,2],[3626,1],[3660,1],[3701,1],[3703,1],[3705,1]]},"525":{"position":[[772,1],[812,1],[913,1],[948,1],[968,1],[980,1],[982,1],[1029,2],[1032,1],[1079,2],[1082,4],[1087,2],[1103,2],[1129,1],[1141,1],[1143,1],[1190,2],[1193,1],[1240,2],[1243,4],[1248,2],[1264,2],[1289,1],[1301,1],[1303,1],[1350,2],[1353,1],[1400,2],[1403,4],[1408,2],[1424,2],[1449,1],[1461,1],[1463,1],[1510,2],[1513,1],[1560,2],[1563,4],[1568,2],[1584,2],[1598,1],[1610,1],[1612,1],[1673,2],[1676,1],[1737,2],[1740,4],[1745,2],[1766,2],[1784,1],[1796,1],[1798,1],[1844,2],[1847,1],[1893,2],[1896,4],[1901,2],[1917,2],[1940,1],[1952,1],[1954,1],[2000,2],[2003,1],[2049,2],[2052,4],[2057,2],[2073,2],[2092,1],[2104,1],[2106,1],[2153,2],[2156,1],[2203,2],[2206,4],[2211,2],[2229,2],[2254,1],[2266,1],[2268,1],[2315,2],[2318,1],[2365,2],[2368,4],[2373,2],[2389,2],[2450,1],[2462,1],[2464,1],[2510,2],[2513,1],[2559,2],[2562,4],[2567,2],[2583,2],[2602,1],[2614,1],[2616,1],[2663,2],[2666,1],[2713,2],[2716,4],[2721,2],[2739,2],[2761,1],[2773,1],[2775,1],[2822,2],[2825,1],[2872,2],[2875,4],[2880,2],[2896,2],[2917,1],[2929,1],[2931,1],[2978,2],[2981,1],[3028,2],[3031,4],[3036,2],[3052,2],[3065,1],[3077,1],[3079,1],[3140,2],[3143,1],[3204,2],[3207,4],[3212,2],[3233,2],[3253,1],[3265,1],[3267,1],[3315,2],[3318,1],[3366,2],[3369,4],[3374,2],[3385,3],[3389,1],[3391,2],[3406,1],[3440,1],[3481,1],[3483,1],[3485,1]]},"526":{"position":[[571,1],[611,1],[713,1],[748,1],[758,1],[770,1],[772,1],[818,2],[821,1],[867,2],[870,4],[875,2],[891,2],[914,1],[926,1],[928,1],[974,2],[977,1],[1023,2],[1026,4],[1031,2],[1050,2],[1074,1],[1086,1],[1088,1],[1134,2],[1137,1],[1183,2],[1186,4],[1191,2],[1210,2],[1236,1],[1248,1],[1250,1],[1296,2],[1299,1],[1345,2],[1348,4],[1353,2],[1372,2],[1399,1],[1411,1],[1413,1],[1459,2],[1462,1],[1508,2],[1511,4],[1516,2],[1535,2],[1559,1],[1571,1],[1573,1],[1621,2],[1624,1],[1672,2],[1675,4],[1680,2],[1698,2],[1713,1],[1725,1],[1727,1],[1774,2],[1777,1],[1824,2],[1827,4],[1832,2],[1848,2],[1864,1],[1876,1],[1878,1],[1925,2],[1928,1],[1975,2],[1978,4],[1983,2],[2001,2],[2016,1],[2028,1],[2030,1],[2076,2],[2079,1],[2125,2],[2128,4],[2133,2],[2149,2],[2174,1],[2186,1],[2188,1],[2235,2],[2238,1],[2285,2],[2288,4],[2293,2],[2309,2],[2334,1],[2346,1],[2348,1],[2396,2],[2399,1],[2446,2],[2449,4],[2454,2],[2472,2],[2513,1],[2525,1],[2527,1],[2573,2],[2576,1],[2622,2],[2625,4],[2630,2],[2641,3],[2645,2],[2665,1],[2677,1],[2679,1],[2725,2],[2728,1],[2774,2],[2777,4],[2782,2],[2798,2],[2820,1],[2832,1],[2834,1],[2881,2],[2884,1],[2931,2],[2934,4],[2939,2],[2955,2],[2978,1],[2990,1],[2992,1],[3039,2],[3042,1],[3089,2],[3092,4],[3097,2],[3108,3],[3112,2],[3130,1],[3142,1],[3144,1],[3191,2],[3194,1],[3241,2],[3244,4],[3249,2],[3265,2],[3281,1],[3293,1],[3295,1],[3341,2],[3344,1],[3390,2],[3393,4],[3398,2],[3416,2],[3436,1],[3448,1],[3450,1],[3498,2],[3501,1],[3549,2],[3552,4],[3557,2],[3575,1],[3577,2],[3592,1],[3626,1],[3667,1],[3669,1],[3671,1]]}},"keywords":{}}],["0",{"_index":752,"title":{},"content":{"70":{"position":[[508,2]]},"71":{"position":[[211,2]]},"78":{"position":[[300,2]]},"79":{"position":[[237,2]]},"82":{"position":[[301,2],[1988,1],[1993,3]]},"83":{"position":[[1810,1],[1815,3]]},"103":{"position":[[760,1],[1634,1]]},"104":{"position":[[816,4],[829,2],[832,3],[854,3],[877,3],[900,3],[914,2],[922,3],[936,2],[944,3],[958,2],[966,3],[979,2],[982,2],[985,2],[988,2]]},"109":{"position":[[479,5],[491,2],[494,3],[515,3],[537,3],[559,3],[570,3],[579,3],[590,3],[599,3],[611,3],[620,3],[630,3],[634,2],[637,2],[640,2]]},"110":{"position":[[591,5],[603,2],[606,3],[627,3],[649,3],[671,3],[682,3],[691,3],[702,3],[711,3],[723,3],[732,3],[742,3],[746,2],[749,2],[752,2]]},"111":{"position":[[982,5],[994,2],[997,3],[1018,3],[1040,3],[1062,3],[1073,3],[1082,3],[1093,3],[1102,3],[1114,3],[1123,3],[1133,3],[1137,2],[1140,2],[1143,2]]},"112":{"position":[[803,5],[815,2],[818,3],[839,3],[861,3],[883,3],[894,3],[903,3],[914,3],[923,3],[935,3],[944,3],[954,3],[958,2],[961,2],[964,2]]},"113":{"position":[[925,5],[937,2],[940,3],[961,3],[983,3],[1005,3],[1016,3],[1025,3],[1036,3],[1045,3],[1057,3],[1066,3],[1076,3],[1080,2],[1083,2],[1086,2]]},"220":{"position":[[1123,1],[1661,2],[1710,2],[2126,1],[2585,1]]},"221":{"position":[[276,2],[325,2]]},"222":{"position":[[741,2]]},"239":{"position":[[271,2],[382,4],[395,2],[398,3],[420,3],[443,3],[466,3],[480,2],[488,3],[502,2],[510,3],[524,2],[532,3],[545,2],[548,2],[551,2],[554,2]]},"288":{"position":[[29,1]]},"338":{"position":[[715,1],[2381,1]]},"349":{"position":[[318,5],[330,2],[333,3],[354,3],[376,3],[398,3],[411,2],[419,3],[432,2],[440,3],[454,2],[462,3],[474,2],[477,2],[480,2],[483,2],[780,4]]},"367":{"position":[[184,5],[196,2],[199,3],[220,3],[242,3],[264,3],[275,3],[284,3],[295,3],[304,3],[316,3],[325,3],[335,3],[339,2],[342,2],[345,1],[464,5],[476,2],[479,3],[500,3],[522,3],[544,3],[555,3],[564,3],[575,3],[584,3],[596,3],[605,3],[615,3],[619,2],[622,2],[625,1],[746,5],[758,2],[761,3],[782,3],[804,3],[826,3],[837,3],[846,3],[857,3],[866,3],[878,3],[887,3],[897,3],[901,2],[904,2],[907,1],[1027,5],[1039,2],[1042,3],[1063,3],[1085,3],[1107,3],[1118,3],[1127,3],[1138,3],[1147,3],[1159,3],[1168,3],[1178,3],[1182,2],[1185,2],[1188,1],[1316,5],[1328,2],[1331,3],[1352,3],[1374,3],[1396,3],[1407,3],[1416,3],[1427,3],[1436,3],[1448,3],[1457,3],[1467,3],[1471,2],[1474,2],[1477,1],[1603,5],[1615,2],[1618,3],[1639,3],[1661,3],[1683,3],[1694,3],[1703,3],[1714,3],[1723,3],[1735,3],[1744,3],[1754,3],[1758,2],[1761,2],[1764,1],[1890,5],[1902,2],[1905,3],[1926,3],[1948,3],[1970,3],[1981,3],[1990,3],[2001,3],[2010,3],[2022,3],[2031,3],[2041,3],[2045,2],[2048,2],[2051,1],[2172,5],[2184,2],[2187,3],[2208,3],[2230,3],[2252,3],[2263,3],[2272,3],[2283,3],[2292,3],[2304,3],[2313,3],[2323,3],[2327,2],[2330,2],[2333,1],[2454,5],[2466,2],[2469,3],[2490,3],[2512,3],[2534,3],[2545,3],[2554,3],[2565,3],[2574,3],[2586,3],[2595,3],[2605,3],[2609,2],[2612,2],[2615,1],[2742,5],[2754,2],[2757,3],[2778,3],[2800,3],[2822,3],[2833,3],[2842,3],[2853,3],[2862,3],[2874,3],[2883,3],[2893,3],[2897,2],[2900,2],[2903,1],[3022,5],[3034,2],[3037,3],[3058,3],[3080,3],[3102,3],[3113,3],[3122,3],[3133,3],[3142,3],[3154,3],[3163,3],[3173,3],[3177,2],[3180,2],[3183,1],[3302,5],[3314,2],[3317,3],[3338,3],[3360,3],[3382,3],[3393,3],[3402,3],[3413,3],[3422,3],[3434,3],[3443,3],[3453,3],[3457,2],[3460,2],[3463,1],[3589,5],[3601,2],[3604,3],[3625,3],[3647,3],[3669,3],[3680,3],[3689,3],[3700,3],[3709,3],[3721,3],[3730,3],[3740,3],[3744,2],[3747,2],[3750,1],[3871,5],[3883,2],[3886,3],[3907,3],[3929,3],[3951,3],[3962,3],[3971,3],[3982,3],[3991,3],[4003,3],[4012,3],[4022,3],[4026,2],[4029,2],[4032,1],[4160,5],[4172,2],[4175,3],[4196,3],[4218,3],[4240,3],[4251,3],[4260,3],[4271,3],[4280,3],[4292,3],[4301,3],[4311,3],[4315,2],[4318,2],[4321,1]]},"378":{"position":[[916,2],[1752,2]]},"379":{"position":[[982,2],[1835,2]]},"380":{"position":[[901,2],[1682,2]]},"395":{"position":[[323,5],[335,2],[338,3],[359,3],[381,3],[403,3],[416,2],[424,3],[437,2],[445,3],[459,2],[467,3],[479,2],[482,2],[485,2],[488,2],[790,4]]},"396":{"position":[[473,1],[811,2],[822,2],[833,2],[844,1]]},"415":{"position":[[94,4],[108,2],[111,1],[135,1],[160,1],[185,1],[200,2],[208,1],[223,2],[231,1],[247,2],[255,1],[269,2],[272,2],[275,2],[278,1],[887,1]]},"456":{"position":[[333,2],[348,2]]},"467":{"position":[[3564,2],[4089,2],[5112,2],[5193,2]]},"473":{"position":[[4625,2]]},"480":{"position":[[7948,2],[12206,1],[12288,2]]},"485":{"position":[[553,2]]},"488":{"position":[[1124,2],[2607,1]]},"490":{"position":[[242,2],[253,3],[257,3]]},"509":{"position":[[178,2],[198,2]]},"511":{"position":[[427,2],[540,2],[653,2],[770,1]]},"513":{"position":[[178,2],[202,2]]},"515":{"position":[[410,2],[523,2],[636,2],[753,1]]},"520":{"position":[[1114,1]]},"522":{"position":[[1080,1]]},"524":{"position":[[942,1]]},"526":{"position":[[908,1]]}},"keywords":{}}],["0)size",{"_index":560,"title":{},"content":{"57":{"position":[[934,7]]},"59":{"position":[[1764,7]]},"63":{"position":[[676,7]]},"65":{"position":[[295,7]]},"88":{"position":[[318,7]]},"264":{"position":[[1032,7]]},"346":{"position":[[1293,7]]},"390":{"position":[[787,7]]}},"keywords":{}}],["0,0",{"_index":3454,"title":{},"content":{"451":{"position":[[243,5],[267,5]]}},"keywords":{}}],["0.0",{"_index":1688,"title":{},"content":{"219":{"position":[[519,4],[532,4],[545,4],[558,3]]},"220":{"position":[[797,3],[909,3],[995,3]]},"366":{"position":[[115,3],[136,3],[152,3],[175,3],[197,3],[226,3],[241,3],[266,3]]},"415":{"position":[[1225,4],[1238,4],[1251,4],[1264,3]]},"519":{"position":[[1686,3],[1735,3],[1842,3],[1891,3],[2352,3],[2401,3]]},"520":{"position":[[863,3],[912,3],[2430,3],[2479,3],[3081,3],[3130,3]]},"521":{"position":[[1652,3],[1701,3],[1808,3],[1857,3],[2318,3],[2367,3]]},"522":{"position":[[829,3],[878,3],[2396,3],[2445,3],[3047,3],[3096,3]]},"523":{"position":[[1874,3],[1923,3]]},"524":{"position":[[848,3],[897,3],[2106,3],[2155,3],[2755,3],[2804,3]]},"525":{"position":[[1840,3],[1889,3]]},"526":{"position":[[814,3],[863,3],[2072,3],[2121,3],[2721,3],[2770,3]]}},"keywords":{}}],["0.00001",{"_index":1186,"title":{},"content":{"104":{"position":[[1412,7]]},"109":{"position":[[382,8]]},"110":{"position":[[494,8]]},"111":{"position":[[885,8]]},"112":{"position":[[706,8]]},"113":{"position":[[828,8]]}},"keywords":{}}],["0.00016666666666666666",{"_index":3266,"title":{},"content":{"414":{"position":[[1403,23],[1586,23]]}},"keywords":{}}],["0.0006342037622996388",{"_index":2954,"title":{},"content":{"361":{"position":[[815,22]]}},"keywords":{}}],["0.0006777384937826164",{"_index":2991,"title":{},"content":{"361":{"position":[[1838,22]]}},"keywords":{}}],["0.006131406407803297",{"_index":3246,"title":{},"content":{"414":{"position":[[476,21]]}},"keywords":{}}],["0.01",{"_index":1138,"title":{},"content":{"103":{"position":[[800,5],[924,4],[931,6],[1666,5]]},"109":{"position":[[697,5],[731,4]]},"110":{"position":[[809,5],[843,5]]},"111":{"position":[[1200,5],[1234,5]]},"112":{"position":[[1021,5],[1055,5]]},"113":{"position":[[1143,5],[1177,5]]},"266":{"position":[[264,5],[300,5]]},"414":{"position":[[874,5],[1019,5]]}},"keywords":{}}],["0.035515410688779774",{"_index":3009,"title":{},"content":{"361":{"position":[[2912,21]]}},"keywords":{}}],["0.03795335565182652",{"_index":2975,"title":{},"content":{"361":{"position":[[1420,20]]}},"keywords":{}}],["0.04",{"_index":4157,"title":{},"content":{"520":{"position":[[2638,4]]},"522":{"position":[[2604,4]]}},"keywords":{}}],["0.05482076017068392",{"_index":3272,"title":{},"content":{"414":{"position":[[1774,20],[1896,20]]}},"keywords":{}}],["0.08",{"_index":4201,"title":{},"content":{"524":{"position":[[2314,4]]},"526":{"position":[[2280,4]]}},"keywords":{}}],["0.1",{"_index":4091,"title":{},"content":{"514":{"position":[[188,4]]},"520":{"position":[[1176,3],[1225,3]]},"522":{"position":[[1142,3],[1191,3]]},"524":{"position":[[1004,3],[1053,3]]},"526":{"position":[[970,3],[1019,3]]}},"keywords":{}}],["0.10060462979191162",{"_index":2952,"title":{},"content":{"361":{"position":[[787,20]]}},"keywords":{}}],["0.10462611962093962",{"_index":2990,"title":{},"content":{"361":{"position":[[1810,20]]}},"keywords":{}}],["0.11",{"_index":4156,"title":{},"content":{"520":{"position":[[2588,4]]},"522":{"position":[[2554,4]]}},"keywords":{}}],["0.18",{"_index":4200,"title":{},"content":{"524":{"position":[[2264,4]]},"526":{"position":[[2230,4]]}},"keywords":{}}],["0.19444628348991",{"_index":2955,"title":{},"content":{"361":{"position":[[845,17]]}},"keywords":{}}],["0.19710594050867244",{"_index":2376,"title":{},"content":{"266":{"position":[[2341,20]]},"275":{"position":[[1004,20]]}},"keywords":{}}],["0.19756077093763266",{"_index":2992,"title":{},"content":{"361":{"position":[[1868,20]]}},"keywords":{}}],["0.2",{"_index":4147,"title":{},"content":{"520":{"position":[[1335,3],[1384,3]]},"522":{"position":[[1301,3],[1350,3]]},"523":{"position":[[2079,3],[2589,3]]},"524":{"position":[[1164,3],[1213,3]]},"525":{"position":[[2045,3],[2555,3]]},"526":{"position":[[1130,3],[1179,3]]}},"keywords":{}}],["0.25",{"_index":4088,"title":{},"content":{"514":{"position":[[109,5]]}},"keywords":{}}],["0.28521533486571676",{"_index":3269,"title":{},"content":{"414":{"position":[[1558,20]]}},"keywords":{}}],["0.2915459701254094",{"_index":3265,"title":{},"content":{"414":{"position":[[1376,19]]}},"keywords":{}}],["0.3",{"_index":4148,"title":{},"content":{"520":{"position":[[1494,3],[1543,3]]},"522":{"position":[[1460,3],[1509,3]]},"523":{"position":[[2030,3],[2540,3]]},"524":{"position":[[1326,3],[1375,3]]},"525":{"position":[[1996,3],[2506,3]]},"526":{"position":[[1292,3],[1341,3]]}},"keywords":{}}],["0.4",{"_index":4149,"title":{},"content":{"520":{"position":[[1654,3],[1703,3]]},"522":{"position":[[1620,3],[1669,3]]},"524":{"position":[[1489,3],[1538,3]]},"526":{"position":[[1455,3],[1504,3]]}},"keywords":{}}],["0.49316666666666664",{"_index":3267,"title":{},"content":{"414":{"position":[[1434,20],[1617,20]]}},"keywords":{}}],["0.5",{"_index":3238,"title":{},"content":{"413":{"position":[[395,3]]},"480":{"position":[[11774,3],[11910,3]]},"520":{"position":[[1815,3],[1864,3]]},"522":{"position":[[1781,3],[1830,3]]}},"keywords":{}}],["00",{"_index":802,"title":{},"content":{"72":{"position":[[664,2],[1304,2]]}},"keywords":{}}],["000",{"_index":820,"title":{},"content":{"72":{"position":[[1077,5]]}},"keywords":{}}],["0000",{"_index":1265,"title":{},"content":{"110":{"position":[[130,4],[135,4],[140,4],[408,4],[413,4],[418,4]]},"111":{"position":[[415,4],[420,4],[425,4],[799,4],[804,4],[809,4]]},"113":{"position":[[357,4],[362,4],[367,4],[742,4],[747,4],[752,4]]},"114":{"position":[[256,4],[261,4],[266,4]]}},"keywords":{}}],["00000",{"_index":716,"title":{},"content":{"63":{"position":[[1703,8]]},"64":{"position":[[570,8]]},"72":{"position":[[657,6],[667,7],[1070,6]]}},"keywords":{}}],["0000000",{"_index":776,"title":{},"content":{"70":{"position":[[1249,9]]}},"keywords":{}}],["00000000",{"_index":1268,"title":{},"content":{"110":{"position":[[398,9]]},"111":{"position":[[789,9]]},"113":{"position":[[732,9]]}},"keywords":{}}],["000000000000",{"_index":1266,"title":{},"content":{"110":{"position":[[145,12],[423,14]]},"111":{"position":[[430,12],[814,14]]},"113":{"position":[[372,12],[757,14]]},"114":{"position":[[271,12]]}},"keywords":{}}],["0001",{"_index":871,"title":{},"content":{"75":{"position":[[515,6]]}},"keywords":{}}],["00011",{"_index":774,"title":{},"content":{"70":{"position":[[1240,5]]}},"keywords":{}}],["000123",{"_index":689,"title":{},"content":{"61":{"position":[[258,9]]}},"keywords":{}}],["0002",{"_index":876,"title":{},"content":{"75":{"position":[[646,6]]},"76":{"position":[[366,6]]}},"keywords":{}}],["0071484f",{"_index":3174,"title":{},"content":{"390":{"position":[[1851,9]]},"391":{"position":[[613,9]]}},"keywords":{}}],["008200",{"_index":3197,"title":{},"content":{"396":{"position":[[750,10]]},"415":{"position":[[1164,10]]}},"keywords":{}}],["0084229",{"_index":773,"title":{},"content":{"70":{"position":[[1231,8]]}},"keywords":{}}],["00be00",{"_index":3195,"title":{},"content":{"396":{"position":[[698,10]]},"415":{"position":[[1112,10]]}},"keywords":{}}],["00d8",{"_index":287,"title":{},"content":{"8":{"position":[[1466,4]]}},"keywords":{}}],["00e600",{"_index":3193,"title":{},"content":{"396":{"position":[[646,10]]},"415":{"position":[[1060,10]]}},"keywords":{}}],["01",{"_index":1763,"title":{},"content":{"222":{"position":[[941,2],[944,4]]},"279":{"position":[[192,4]]},"435":{"position":[[5,2]]}},"keywords":{}}],["01802f6dceea",{"_index":1508,"title":{},"content":{"132":{"position":[[591,14]]}},"keywords":{}}],["01a17a22",{"_index":2326,"title":{},"content":{"265":{"position":[[648,9]]}},"keywords":{}}],["01d3",{"_index":3359,"title":{},"content":{"415":{"position":[[3392,4]]}},"keywords":{}}],["02",{"_index":595,"title":{},"content":{"57":{"position":[[1997,2],[2450,2]]},"58":{"position":[[477,2]]},"59":{"position":[[2547,2],[2586,2]]},"88":{"position":[[1198,2],[1783,2]]},"434":{"position":[[5,2]]}},"keywords":{}}],["020c55f6",{"_index":768,"title":{},"content":{"70":{"position":[[1095,9]]}},"keywords":{}}],["0242ac120002",{"_index":759,"title":{},"content":{"70":{"position":[[939,14],[1120,14],[1200,14]]},"71":{"position":[[810,13]]},"78":{"position":[[880,14]]},"79":{"position":[[837,14]]},"80":{"position":[[757,14]]},"82":{"position":[[733,14],[808,14],[1041,14],[1369,14],[1423,13],[1489,14],[1846,14],[1900,13],[1950,14],[2323,14],[2377,13],[2480,13]]},"83":{"position":[[555,14],[630,14],[863,14],[1191,14],[1245,13],[1311,14],[1668,14],[1722,13],[1772,14],[2145,14],[2199,13],[2302,13]]},"269":{"position":[[733,14]]}},"keywords":{}}],["028756dc0ee9",{"_index":1441,"title":{},"content":{"130":{"position":[[4692,14]]}},"keywords":{}}],["028c30fa",{"_index":895,"title":{},"content":{"78":{"position":[[855,9]]},"79":{"position":[[812,9]]},"80":{"position":[[732,9]]}},"keywords":{}}],["02t19:17:16.494z",{"_index":3091,"title":{},"content":{"378":{"position":[[759,18],[1595,18]]},"379":{"position":[[825,18],[1678,18]]}},"keywords":{}}],["02t19:17:18.906z",{"_index":3094,"title":{},"content":{"378":{"position":[[846,18],[1682,18]]},"379":{"position":[[912,18],[1765,18]]}},"keywords":{}}],["03",{"_index":834,"title":{},"content":{"73":{"position":[[595,2]]},"130":{"position":[[4873,2],[5941,2]]},"133":{"position":[[648,2]]},"449":{"position":[[8,2]]}},"keywords":{}}],["03&enddate=2020",{"_index":1715,"title":{},"content":{"220":{"position":[[1613,15]]}},"keywords":{}}],["03a0c275cecb.tif",{"_index":3302,"title":{},"content":{"415":{"position":[[2025,17]]}},"keywords":{}}],["03t01:34:15.154051z",{"_index":2241,"title":{},"content":{"260":{"position":[[1178,21]]}},"keywords":{}}],["03t19:03:57.882z",{"_index":1716,"title":{},"content":{"220":{"position":[[1681,18]]},"221":{"position":[[296,18]]}},"keywords":{}}],["03t19:03:58.881731z",{"_index":1727,"title":{},"content":{"220":{"position":[[2005,20]]},"221":{"position":[[624,20]]}},"keywords":{}}],["04",{"_index":264,"title":{},"content":{"8":{"position":[[352,2],[758,2],[837,2],[1243,2],[1322,2],[1597,2]]},"224":{"position":[[439,2]]},"297":{"position":[[331,2],[474,2],[540,2]]},"298":{"position":[[648,2]]},"390":{"position":[[1623,2],[1658,2]]},"391":{"position":[[385,2],[420,2]]},"450":{"position":[[5,2]]},"451":{"position":[[5,2]]}},"keywords":{}}],["04526587",{"_index":2347,"title":{},"content":{"266":{"position":[[1660,9],[2282,9]]}},"keywords":{}}],["04c9fe16289b",{"_index":1533,"title":{},"content":{"133":{"position":[[466,14]]}},"keywords":{}}],["05",{"_index":3425,"title":{},"content":{"438":{"position":[[8,2]]},"441":{"position":[[8,2]]},"445":{"position":[[5,2]]},"446":{"position":[[5,2]]},"447":{"position":[[5,2]]},"448":{"position":[[5,2]]},"449":{"position":[[5,2]]}},"keywords":{}}],["055c4d61",{"_index":981,"title":{},"content":{"88":{"position":[[749,9],[1384,9]]}},"keywords":{}}],["0571c30a7ddf",{"_index":680,"title":{},"content":{"60":{"position":[[606,14]]},"61":{"position":[[757,14]]}},"keywords":{}}],["05ec1def1c95",{"_index":2309,"title":{},"content":{"264":{"position":[[1588,14]]}},"keywords":{}}],["05t14:48:00.000z",{"_index":3047,"title":{},"content":{"365":{"position":[[183,16]]}},"keywords":{}}],["06",{"_index":686,"title":{},"content":{"60":{"position":[[762,2],[809,2]]},"61":{"position":[[913,2],[960,2]]},"220":{"position":[[1610,2],[1629,2],[1678,2],[2002,2]]},"221":{"position":[[293,2],[621,2]]},"260":{"position":[[1494,2],[1540,2]]},"262":{"position":[[1388,2],[1434,2]]},"266":{"position":[[2130,2],[2176,2],[2559,2],[2605,2]]},"275":{"position":[[1083,2],[1129,2]]},"277":{"position":[[926,2],[972,2]]},"282":{"position":[[748,2],[794,2]]},"283":{"position":[[526,2],[572,2]]},"288":{"position":[[2130,2],[2176,2]]},"290":{"position":[[223,2],[269,2]]},"442":{"position":[[5,2]]},"443":{"position":[[5,2]]},"444":{"position":[[5,2]]}},"keywords":{}}],["06da2738",{"_index":953,"title":{},"content":{"82":{"position":[[1821,9]]},"83":{"position":[[1643,9]]}},"keywords":{}}],["06t03:31:39.966630z",{"_index":2457,"title":{},"content":{"282":{"position":[[751,21]]},"283":{"position":[[529,21]]}},"keywords":{}}],["06t03:33:51.528534z",{"_index":2493,"title":{},"content":{"288":{"position":[[2133,21],[2179,20]]}},"keywords":{}}],["06t09:34:11.759672z",{"_index":2439,"title":{},"content":{"277":{"position":[[929,21]]},"290":{"position":[[226,21]]}},"keywords":{}}],["06t09:35:07.676376z",{"_index":2369,"title":{},"content":{"266":{"position":[[2133,21]]}},"keywords":{}}],["06t09:35:07.965139z",{"_index":2370,"title":{},"content":{"266":{"position":[[2179,21]]}},"keywords":{}}],["07",{"_index":3431,"title":{},"content":{"441":{"position":[[5,2]]},"444":{"position":[[8,2]]},"519":{"position":[[844,2],[894,2],[1005,2],[1055,2],[1165,2],[1215,2],[1325,2],[1375,2],[1474,2],[1506,2],[1538,2],[1570,2],[1660,2],[1709,2],[1816,2],[1865,2],[1968,2],[2018,2],[2130,2],[2180,2],[2261,2],[2326,2],[2375,2],[2478,2],[2528,2],[2637,2],[2687,2],[2793,2],[2843,2],[2941,2],[2973,2],[3005,2],[3037,2],[3129,2],[3180,2]]},"520":{"position":[[837,2],[886,2],[992,2],[1042,2],[1150,2],[1199,2],[1309,2],[1358,2],[1468,2],[1517,2],[1628,2],[1677,2],[1789,2],[1838,2],[1949,2],[2000,2],[2103,2],[2153,2],[2254,2],[2303,2],[2404,2],[2453,2],[2562,2],[2612,2],[2722,2],[2773,2],[2900,2],[2950,2],[3055,2],[3104,2],[3211,2],[3261,2],[3363,2],[3413,2],[3514,2],[3563,2],[3669,2],[3720,2]]},"521":{"position":[[810,2],[860,2],[971,2],[1021,2],[1131,2],[1181,2],[1291,2],[1341,2],[1440,2],[1472,2],[1504,2],[1536,2],[1626,2],[1675,2],[1782,2],[1831,2],[1934,2],[1984,2],[2096,2],[2146,2],[2227,2],[2292,2],[2341,2],[2444,2],[2494,2],[2603,2],[2653,2],[2759,2],[2809,2],[2907,2],[2939,2],[2971,2],[3003,2],[3095,2],[3146,2]]},"522":{"position":[[803,2],[852,2],[958,2],[1008,2],[1116,2],[1165,2],[1275,2],[1324,2],[1434,2],[1483,2],[1594,2],[1643,2],[1755,2],[1804,2],[1915,2],[1966,2],[2069,2],[2119,2],[2220,2],[2269,2],[2370,2],[2419,2],[2528,2],[2578,2],[2688,2],[2739,2],[2866,2],[2916,2],[3021,2],[3070,2],[3177,2],[3227,2],[3329,2],[3379,2],[3480,2],[3529,2],[3635,2],[3686,2]]},"523":{"position":[[1032,2],[1082,2],[1193,2],[1243,2],[1353,2],[1403,2],[1513,2],[1563,2],[1662,2],[1694,2],[1726,2],[1758,2],[1848,2],[1897,2],[2004,2],[2053,2],[2156,2],[2206,2],[2318,2],[2368,2],[2449,2],[2514,2],[2563,2],[2666,2],[2716,2],[2825,2],[2875,2],[2981,2],[3031,2],[3129,2],[3161,2],[3193,2],[3225,2],[3317,2],[3368,2]]},"524":{"position":[[822,2],[871,2],[978,2],[1027,2],[1138,2],[1187,2],[1300,2],[1349,2],[1463,2],[1512,2],[1623,2],[1674,2],[1777,2],[1827,2],[1928,2],[1978,2],[2080,2],[2129,2],[2238,2],[2288,2],[2398,2],[2449,2],[2577,2],[2626,2],[2729,2],[2778,2],[2884,2],[2934,2],[3042,2],[3092,2],[3194,2],[3244,2],[3345,2],[3394,2],[3500,2],[3551,2]]},"525":{"position":[[998,2],[1048,2],[1159,2],[1209,2],[1319,2],[1369,2],[1479,2],[1529,2],[1628,2],[1660,2],[1692,2],[1724,2],[1814,2],[1863,2],[1970,2],[2019,2],[2122,2],[2172,2],[2284,2],[2334,2],[2415,2],[2480,2],[2529,2],[2632,2],[2682,2],[2791,2],[2841,2],[2947,2],[2997,2],[3095,2],[3127,2],[3159,2],[3191,2],[3283,2],[3334,2]]},"526":{"position":[[788,2],[837,2],[944,2],[993,2],[1104,2],[1153,2],[1266,2],[1315,2],[1429,2],[1478,2],[1589,2],[1640,2],[1743,2],[1793,2],[1894,2],[1944,2],[2046,2],[2095,2],[2204,2],[2254,2],[2364,2],[2415,2],[2543,2],[2592,2],[2695,2],[2744,2],[2850,2],[2900,2],[3008,2],[3058,2],[3160,2],[3210,2],[3311,2],[3360,2],[3466,2],[3517,2]]}},"keywords":{}}],["070b03876475",{"_index":1004,"title":{},"content":{"88":{"position":[[1263,14],[1848,14]]}},"keywords":{}}],["0714",{"_index":847,"title":{},"content":{"74":{"position":[[574,4]]}},"keywords":{}}],["07b3f270",{"_index":755,"title":{},"content":{"70":{"position":[[914,9]]}},"keywords":{}}],["07t09:15:42.855759z",{"_index":2440,"title":{},"content":{"277":{"position":[[975,20]]},"290":{"position":[[272,20]]}},"keywords":{}}],["07t13:55:04.028129z",{"_index":2382,"title":{},"content":{"266":{"position":[[2562,21]]}},"keywords":{}}],["07t14:08:13.101100z",{"_index":2383,"title":{},"content":{"266":{"position":[[2608,21]]}},"keywords":{}}],["07t19:48:51.017280z",{"_index":2287,"title":{},"content":{"262":{"position":[[1391,21],[1437,21]]},"275":{"position":[[1086,21],[1132,20]]}},"keywords":{}}],["07t20:01:14.814346z",{"_index":2458,"title":{},"content":{"282":{"position":[[797,20]]},"283":{"position":[[575,20]]}},"keywords":{}}],["08",{"_index":2177,"title":{},"content":{"255":{"position":[[756,2],[894,2]]},"390":{"position":[[1697,2]]},"391":{"position":[[459,2]]},"436":{"position":[[8,2]]},"439":{"position":[[5,2]]},"440":{"position":[[5,2]]}},"keywords":{}}],["08790ae9",{"_index":588,"title":{},"content":{"57":{"position":[[1867,9]]}},"keywords":{}}],["089bb77b",{"_index":1534,"title":{},"content":{"133":{"position":[[495,9]]}},"keywords":{}}],["08f2f811",{"_index":3308,"title":{},"content":{"415":{"position":[[2227,8]]}},"keywords":{}}],["09",{"_index":2971,"title":{},"content":{"361":{"position":[[1292,2],[2993,2]]},"414":{"position":[[560,2],[604,2]]}},"keywords":{}}],["0983",{"_index":2885,"title":{},"content":{"352":{"position":[[581,4]]}},"keywords":{}}],["09d1ab1ba5e6",{"_index":592,"title":{},"content":{"57":{"position":[[1892,14]]}},"keywords":{}}],["09t00:00:00z",{"_index":1802,"title":{},"content":{"224":{"position":[[442,13]]}},"keywords":{}}],["09t18:02:17.834z",{"_index":2404,"title":{},"content":{"269":{"position":[[829,17]]}},"keywords":{}}],["0abbacdc51f7.tif",{"_index":3316,"title":{},"content":{"415":{"position":[[2361,17]]}},"keywords":{}}],["0ac5",{"_index":797,"title":{},"content":{"72":{"position":[[591,4]]}},"keywords":{}}],["0e0f1c66",{"_index":962,"title":{},"content":{"82":{"position":[[2298,9]]},"83":{"position":[[2120,9]]}},"keywords":{}}],["1",{"_index":917,"title":{"310":{"position":[[0,2]]},"324":{"position":[[0,2]]}},"content":{"79":{"position":[[947,5]]},"82":{"position":[[892,3]]},"83":{"position":[[714,3]]},"103":{"position":[[900,1],[904,3]]},"117":{"position":[[85,1]]},"130":{"position":[[1924,1],[3320,1]]},"210":{"position":[[224,1]]},"212":{"position":[[108,1],[341,1],[596,1]]},"220":{"position":[[1839,3]]},"221":{"position":[[454,3]]},"239":{"position":[[601,2]]},"244":{"position":[[184,2],[220,1],[368,1]]},"245":{"position":[[57,2],[606,1]]},"247":{"position":[[109,3],[277,2]]},"248":{"position":[[0,2]]},"263":{"position":[[514,2],[888,2]]},"320":{"position":[[386,1],[434,1],[636,1],[673,1],[1107,1],[1166,1],[1175,1],[1223,1],[1238,1],[1566,1],[1818,1],[1894,1],[2102,1],[2142,1],[2192,1],[2244,1],[2666,1],[2682,1],[2738,1],[2751,1]]},"338":{"position":[[707,1],[725,1]]},"378":{"position":[[2574,1]]},"379":{"position":[[2623,1]]},"380":{"position":[[2174,1]]},"382":{"position":[[559,1]]},"383":{"position":[[562,1]]},"384":{"position":[[301,1]]},"408":{"position":[[552,3]]},"473":{"position":[[4593,2]]},"474":{"position":[[930,2]]},"480":{"position":[[12007,2],[12171,2],[12767,1]]},"490":{"position":[[233,2]]},"509":{"position":[[201,1],[207,1]]},"510":{"position":[[259,1]]},"511":{"position":[[772,2],[775,1]]},"520":{"position":[[1116,3],[1273,1]]},"522":{"position":[[1082,3],[1239,1]]}},"keywords":{}}],["1.1551610805031989",{"_index":3280,"title":{},"content":{"414":{"position":[[2505,19]]}},"keywords":{}}],["1.1808010183778619",{"_index":3279,"title":{},"content":{"414":{"position":[[2263,19]]}},"keywords":{}}],["1.36",{"_index":3277,"title":{},"content":{"414":{"position":[[2017,5],[2133,5]]}},"keywords":{}}],["1.467068855167438",{"_index":2986,"title":{},"content":{"361":{"position":[[1724,18]]}},"keywords":{}}],["1.5677753669755121",{"_index":2995,"title":{},"content":{"361":{"position":[[1961,19]]}},"keywords":{}}],["1.amazonaws.com/uuid.png",{"_index":3078,"title":{},"content":{"367":{"position":[[400,25],[680,25],[962,25],[1243,25],[1532,25],[1819,25],[2106,25],[2388,25],[2670,25],[2958,25],[3238,25],[3518,25],[3805,25],[4087,25],[4376,25]]}},"keywords":{}}],["10",{"_index":738,"title":{},"content":{"65":{"position":[[928,2]]},"66":{"position":[[555,2]]},"72":{"position":[[395,2]]},"80":{"position":[[342,2]]},"83":{"position":[[343,2]]},"210":{"position":[[177,2]]},"220":{"position":[[1632,3]]},"260":{"position":[[1129,2]]},"264":{"position":[[1446,2],[1481,2]]},"265":{"position":[[457,2],[492,2]]},"266":{"position":[[532,2]]},"320":{"position":[[1152,2],[2502,2]]},"365":{"position":[[180,2]]},"378":{"position":[[797,2],[1633,2],[3231,2]]},"379":{"position":[[863,2],[1716,2],[3264,2]]},"380":{"position":[[741,2],[782,2],[828,2],[1522,2],[1563,2],[1609,2],[2756,2]]},"382":{"position":[[1864,2]]},"383":{"position":[[1852,2]]},"384":{"position":[[1530,2]]},"437":{"position":[[5,2]]},"438":{"position":[[5,2]]},"473":{"position":[[5685,4]]},"508":{"position":[[103,2]]},"509":{"position":[[256,3],[273,3],[290,3]]},"510":{"position":[[431,2]]},"513":{"position":[[257,3],[274,3],[291,3]]}},"keywords":{}}],["10.88899187543496",{"_index":3010,"title":{},"content":{"361":{"position":[[2941,18]]}},"keywords":{}}],["100",{"_index":721,"title":{},"content":{"65":{"position":[[354,4]]},"70":{"position":[[441,4]]},"71":{"position":[[270,4]]},"78":{"position":[[233,4]]},"79":{"position":[[296,4]]},"82":{"position":[[234,4]]},"88":{"position":[[377,4]]},"103":{"position":[[766,3],[1640,4]]},"104":{"position":[[948,7]]},"109":{"position":[[603,7]]},"110":{"position":[[715,7]]},"111":{"position":[[1106,7]]},"112":{"position":[[927,7]]},"113":{"position":[[1049,7]]},"220":{"position":[[878,3],[1876,4]]},"221":{"position":[[491,4]]},"239":{"position":[[514,7]]},"255":{"position":[[724,4],[862,4]]},"264":{"position":[[1106,4]]},"266":{"position":[[273,5],[498,3],[852,3]]},"320":{"position":[[251,3],[1250,3],[1269,3],[1298,3],[1601,3],[1617,3],[1676,3],[1920,3],[2600,3],[2650,3],[3181,3],[3200,3],[3269,3]]},"349":{"position":[[444,7],[797,6]]},"367":{"position":[[308,7],[588,7],[870,7],[1151,7],[1440,7],[1727,7],[2014,7],[2296,7],[2578,7],[2866,7],[3146,7],[3426,7],[3713,7],[3995,7],[4284,7]]},"395":{"position":[[449,7],[807,6]]},"396":{"position":[[561,4],[624,3]]},"415":{"position":[[236,6],[975,4],[1038,3]]},"513":{"position":[[223,3],[231,3]]},"515":{"position":[[767,3],[775,3]]},"524":{"position":[[1264,5],[1423,3]]},"526":{"position":[[1230,5],[1389,3]]}},"keywords":{}}],["100)sort",{"_index":562,"title":{},"content":{"57":{"position":[[993,9]]},"59":{"position":[[1823,9]]},"63":{"position":[[735,9]]},"346":{"position":[[1352,9]]},"390":{"position":[[846,9]]}},"keywords":{}}],["100.0",{"_index":1705,"title":{},"content":{"220":{"position":[[805,5],[917,5]]},"366":{"position":[[205,6]]},"520":{"position":[[2976,5]]},"522":{"position":[[2942,5]]}},"keywords":{}}],["100.page",{"_index":3458,"title":{},"content":{"456":{"position":[[229,8]]}},"keywords":{}}],["1001",{"_index":874,"title":{},"content":{"75":{"position":[[561,6]]}},"keywords":{}}],["1003",{"_index":878,"title":{},"content":{"75":{"position":[[696,6]]},"76":{"position":[[416,6]]}},"keywords":{}}],["100imag",{"_index":1741,"title":{},"content":{"220":{"position":[[2590,10]]}},"keywords":{}}],["100provid",{"_index":1729,"title":{},"content":{"220":{"position":[[2131,12]]}},"keywords":{}}],["10341bcc3ade.tif",{"_index":3362,"title":{},"content":{"415":{"position":[[3407,17]]}},"keywords":{}}],["10t10:10:10.000000000z",{"_index":3106,"title":{},"content":{"378":{"position":[[3234,23]]},"379":{"position":[[3267,23]]},"380":{"position":[[2759,23]]},"382":{"position":[[1867,23]]},"383":{"position":[[1855,23]]},"384":{"position":[[1533,23]]}},"keywords":{}}],["10t10:10:10.000z",{"_index":739,"title":{},"content":{"65":{"position":[[931,18]]},"66":{"position":[[558,18]]}},"keywords":{}}],["11",{"_index":2240,"title":{},"content":{"260":{"position":[[1175,2]]},"269":{"position":[[826,2]]},"378":{"position":[[756,2],[843,2],[1592,2],[1679,2]]},"379":{"position":[[822,2],[909,2],[1675,2],[1762,2]]},"448":{"position":[[8,2]]},"510":{"position":[[144,2],[366,2]]},"514":{"position":[[193,4]]}},"keywords":{}}],["11.06340317250743",{"_index":2976,"title":{},"content":{"361":{"position":[[1448,18]]}},"keywords":{}}],["110237",{"_index":709,"title":{},"content":{"63":{"position":[[1554,9]]},"64":{"position":[[421,9]]}},"keywords":{}}],["11300.594780281874",{"_index":2998,"title":{},"content":{"361":{"position":[[2053,19]]}},"keywords":{}}],["1162a1c6",{"_index":3209,"title":{},"content":{"399":{"position":[[391,9]]}},"keywords":{}}],["11752.315810068158",{"_index":2960,"title":{},"content":{"361":{"position":[[971,19]]}},"keywords":{}}],["1190.2035923946364",{"_index":3270,"title":{},"content":{"414":{"position":[[1683,19],[2440,19]]}},"keywords":{}}],["11d2",{"_index":2434,"title":{},"content":{"277":{"position":[[854,4]]}},"keywords":{}}],["11ee",{"_index":757,"title":{},"content":{"70":{"position":[[929,4],[1110,4],[1190,4]]},"71":{"position":[[800,4]]},"78":{"position":[[870,4]]},"79":{"position":[[827,4]]},"80":{"position":[[747,4]]},"82":{"position":[[723,4],[798,4],[1031,4],[1359,4],[1413,4],[1479,4],[1836,4],[1890,4],[1940,4],[2313,4],[2367,4],[2470,4]]},"83":{"position":[[545,4],[620,4],[853,4],[1181,4],[1235,4],[1301,4],[1658,4],[1712,4],[1762,4],[2135,4],[2189,4],[2292,4]]},"269":{"position":[[723,4]]}},"keywords":{}}],["12",{"_index":885,"title":{},"content":{"76":{"position":[[509,2]]},"105":{"position":[[2540,2],[2576,2]]},"210":{"position":[[250,2]]},"255":{"position":[[697,3],[710,3],[848,3]]},"320":{"position":[[1141,2],[1759,2],[2684,2]]},"436":{"position":[[5,2]]}},"keywords":{}}],["12.50",{"_index":2717,"title":{},"content":{"320":{"position":[[2044,5]]}},"keywords":{}}],["12.75",{"_index":2982,"title":{},"content":{"361":{"position":[[1624,6],[2279,6]]}},"keywords":{}}],["120.42",{"_index":2688,"title":{},"content":{"320":{"position":[[619,6]]}},"keywords":{}}],["1216.6213333333362",{"_index":3268,"title":{},"content":{"414":{"position":[[1500,19],[2326,19]]}},"keywords":{}}],["121910506",{"_index":1015,"title":{},"content":{"88":{"position":[[1660,10]]}},"keywords":{}}],["123",{"_index":2442,"title":{},"content":{"279":{"position":[[209,3]]},"280":{"position":[[235,3]]}},"keywords":{}}],["12345",{"_index":2438,"title":{},"content":{"277":{"position":[[898,6]]}},"keywords":{}}],["123456",{"_index":593,"title":{},"content":{"57":{"position":[[1933,9],[2035,9],[2488,9]]},"58":{"position":[[515,9]]},"60":{"position":[[135,9],[853,9]]}},"keywords":{}}],["1234567890abc",{"_index":597,"title":{},"content":{"57":{"position":[[2052,16],[2505,16]]},"58":{"position":[[532,16]]},"60":{"position":[[152,16],[870,16]]}},"keywords":{}}],["1234567890efr",{"_index":690,"title":{},"content":{"61":{"position":[[275,16],[1026,16]]}},"keywords":{}}],["123k",{"_index":1772,"title":{},"content":{"222":{"position":[[1888,5]]}},"keywords":{}}],["1244.7810844153173",{"_index":2958,"title":{},"content":{"361":{"position":[[908,19],[2586,19]]}},"keywords":{}}],["1244007",{"_index":2938,"title":{},"content":{"361":{"position":[[400,8]]}},"keywords":{}}],["125fc49f",{"_index":2231,"title":{},"content":{"260":{"position":[[980,9]]}},"keywords":{}}],["1265",{"_index":899,"title":{},"content":{"78":{"position":[[944,4]]},"79":{"position":[[977,4]]},"80":{"position":[[821,4]]}},"keywords":{}}],["1294.538978069886",{"_index":2969,"title":{},"content":{"361":{"position":[[1199,18],[2472,18]]}},"keywords":{}}],["12t17:38:09.148568906z",{"_index":687,"title":{},"content":{"60":{"position":[[765,24],[812,24]]},"61":{"position":[[916,24],[963,24]]}},"keywords":{}}],["12t19:50:55.567755z",{"_index":1450,"title":{},"content":{"130":{"position":[[4876,20],[5944,20]]},"133":{"position":[[651,20]]}},"keywords":{}}],["13",{"_index":2669,"title":{},"content":{"320":{"position":[[255,2],[1529,2],[1645,2],[2152,2],[2388,2],[2700,2]]},"437":{"position":[[8,2]]}},"keywords":{}}],["13.5",{"_index":4182,"title":{},"content":{"523":{"position":[[2232,4]]},"525":{"position":[[2198,4]]}},"keywords":{}}],["13.50",{"_index":2727,"title":{},"content":{"320":{"position":[[2762,5],[2790,5],[2818,5],[2853,5],[2888,5],[2925,5],[2962,5],[2997,5],[3032,5],[3069,5],[3106,5]]}},"keywords":{}}],["130",{"_index":1176,"title":{},"content":{"104":{"position":[[961,4]]},"109":{"position":[[615,4]]},"110":{"position":[[727,4]]},"111":{"position":[[1118,4]]},"112":{"position":[[939,4]]},"113":{"position":[[1061,4]]},"239":{"position":[[527,4]]},"349":{"position":[[457,4]]},"367":{"position":[[320,4],[600,4],[882,4],[1163,4],[1452,4],[1739,4],[2026,4],[2308,4],[2590,4],[2878,4],[3158,4],[3438,4],[3725,4],[4007,4],[4296,4]]},"395":{"position":[[462,4]]},"415":{"position":[[250,4]]}},"keywords":{}}],["14",{"_index":2678,"title":{},"content":{"320":{"position":[[369,2],[421,2],[527,2],[1206,2],[1802,2],[1924,2],[2121,2],[2373,2]]},"443":{"position":[[8,2]]}},"keywords":{}}],["14.1",{"_index":4181,"title":{},"content":{"523":{"position":[[2182,4]]},"525":{"position":[[2148,4]]}},"keywords":{}}],["14.221756530074288",{"_index":3276,"title":{},"content":{"414":{"position":[[1990,19],[2106,19]]}},"keywords":{}}],["14.354036",{"_index":854,"title":{},"content":{"74":{"position":[[654,9]]}},"keywords":{}}],["146.0",{"_index":4158,"title":{},"content":{"520":{"position":[[2748,5]]},"522":{"position":[[2714,5]]}},"keywords":{}}],["147.6",{"_index":2978,"title":{},"content":{"361":{"position":[[1532,6]]}},"keywords":{}}],["1481bc9b",{"_index":1487,"title":{},"content":{"131":{"position":[[640,9]]}},"keywords":{}}],["14t00:00:00",{"_index":4175,"title":{},"content":{"523":{"position":[[1035,13],[1665,13],[1851,13],[2007,13],[2159,13],[2321,13],[2517,13],[2669,13],[2828,13],[2984,13],[3132,13],[3320,13]]},"524":{"position":[[825,13],[981,13],[1141,13],[1303,13],[1466,13],[1626,13],[1780,13],[1931,13],[2083,13],[2241,13],[2401,13],[2580,13],[2732,13],[2887,13],[3045,13],[3197,13],[3348,13],[3503,13]]},"525":{"position":[[1001,13],[1162,13],[1322,13],[1482,13],[1631,13],[1817,13],[1973,13],[2125,13],[2287,13],[2483,13],[2635,13],[2794,13],[2950,13],[3098,13],[3286,13]]},"526":{"position":[[791,13],[947,13],[1107,13],[1269,13],[1432,13],[1592,13],[1746,13],[1897,13],[2049,13],[2207,13],[2367,13],[2546,13],[2698,13],[2853,13],[3011,13],[3163,13],[3314,13],[3469,13]]}},"keywords":{}}],["14t01:00:00",{"_index":4195,"title":{},"content":{"524":{"position":[[874,13],[1030,13],[1190,13],[1352,13],[1515,13],[1677,13],[1830,13],[1981,13],[2132,13],[2291,13],[2452,13],[2629,13],[2781,13],[2937,13],[3095,13],[3247,13],[3397,13],[3554,13]]},"526":{"position":[[840,13],[996,13],[1156,13],[1318,13],[1481,13],[1643,13],[1796,13],[1947,13],[2098,13],[2257,13],[2418,13],[2595,13],[2747,13],[2903,13],[3061,13],[3213,13],[3363,13],[3520,13]]}},"keywords":{}}],["14t10:47",{"_index":4179,"title":{},"content":{"523":{"position":[[1697,9]]},"525":{"position":[[1663,9]]}},"keywords":{}}],["14t18:31:01.702615z",{"_index":2264,"title":{},"content":{"260":{"position":[[1497,21],[1543,21]]}},"keywords":{}}],["15",{"_index":2540,"title":{},"content":{"298":{"position":[[265,3]]},"320":{"position":[[304,2],[338,2],[490,2],[564,2],[763,2],[1124,2]]},"473":{"position":[[5143,4]]}},"keywords":{}}],["15.2",{"_index":4124,"title":{},"content":{"519":{"position":[[1994,4]]},"521":{"position":[[1960,4]]}},"keywords":{}}],["150",{"_index":1169,"title":{},"content":{"104":{"position":[[872,4]]},"109":{"position":[[532,4]]},"110":{"position":[[644,4]]},"111":{"position":[[1035,4]]},"112":{"position":[[856,4]]},"113":{"position":[[978,4]]},"239":{"position":[[438,4]]},"349":{"position":[[371,4]]},"367":{"position":[[237,4],[517,4],[799,4],[1080,4],[1369,4],[1656,4],[1943,4],[2225,4],[2507,4],[2795,4],[3075,4],[3355,4],[3642,4],[3924,4],[4213,4]]},"395":{"position":[[376,4]]},"415":{"position":[[155,4]]}},"keywords":{}}],["1538766",{"_index":2419,"title":{},"content":{"277":{"position":[[615,8]]}},"keywords":{}}],["1544de06",{"_index":912,"title":{},"content":{"79":{"position":[[883,9]]}},"keywords":{}}],["155.78382768932352",{"_index":2977,"title":{},"content":{"361":{"position":[[1505,19]]}},"keywords":{}}],["157d",{"_index":2283,"title":{},"content":{"262":{"position":[[1233,4]]}},"keywords":{}}],["159135298",{"_index":993,"title":{},"content":{"88":{"position":[[1075,10]]}},"keywords":{}}],["15ft",{"_index":3017,"title":{},"content":{"361":{"position":[[3243,4]]}},"keywords":{}}],["15t00:00:00",{"_index":4177,"title":{},"content":{"523":{"position":[[1085,13],[1729,13],[1900,13],[2056,13],[2209,13],[2371,13],[2566,13],[2719,13],[2878,13],[3034,13],[3196,13],[3371,13]]},"525":{"position":[[1051,13],[1212,13],[1372,13],[1532,13],[1695,13],[1866,13],[2022,13],[2175,13],[2337,13],[2532,13],[2685,13],[2844,13],[3000,13],[3162,13],[3337,13]]}},"keywords":{}}],["15t01:15",{"_index":4190,"title":{},"content":{"523":{"position":[[3164,9]]},"525":{"position":[[3130,9]]}},"keywords":{}}],["15t10:48",{"_index":4180,"title":{},"content":{"523":{"position":[[1761,9]]},"525":{"position":[[1727,9]]}},"keywords":{}}],["16",{"_index":1662,"title":{},"content":{"212":{"position":[[297,2]]},"434":{"position":[[8,2]]},"440":{"position":[[8,2]]},"510":{"position":[[206,2]]}},"keywords":{}}],["16.71391976284981",{"_index":2352,"title":{},"content":{"266":{"position":[[1719,18]]}},"keywords":{}}],["162.4",{"_index":2979,"title":{},"content":{"361":{"position":[[1546,6]]}},"keywords":{}}],["1670",{"_index":1053,"title":{},"content":{"89":{"position":[[974,4]]}},"keywords":{}}],["16t01:14",{"_index":4191,"title":{},"content":{"523":{"position":[[3228,9]]},"525":{"position":[[3194,9]]}},"keywords":{}}],["16t21:40:20.257z",{"_index":998,"title":{},"content":{"88":{"position":[[1201,18]]}},"keywords":{}}],["16t21:40:35.341z",{"_index":1017,"title":{},"content":{"88":{"position":[[1786,18]]}},"keywords":{}}],["17",{"_index":3447,"title":{},"content":{"447":{"position":[[8,2]]},"488":{"position":[[2132,2]]}},"keywords":{}}],["17.112920091943007",{"_index":3258,"title":{},"content":{"414":{"position":[[992,19]]}},"keywords":{}}],["17.2",{"_index":4119,"title":{},"content":{"519":{"position":[[1241,4]]},"521":{"position":[[1207,4]]},"523":{"position":[[1429,4]]},"525":{"position":[[1395,4]]}},"keywords":{}}],["17.492758207524563",{"_index":3255,"title":{},"content":{"414":{"position":[[847,19]]}},"keywords":{}}],["17.6",{"_index":4198,"title":{},"content":{"524":{"position":[[1954,4]]},"526":{"position":[[1920,4]]}},"keywords":{}}],["176.0",{"_index":4202,"title":{},"content":{"524":{"position":[[2424,5]]},"526":{"position":[[2390,5]]}},"keywords":{}}],["17978.417202127104",{"_index":2973,"title":{},"content":{"361":{"position":[[1338,19]]}},"keywords":{}}],["18",{"_index":3690,"title":{},"content":{"474":{"position":[[602,3]]}},"keywords":{}}],["18.224961609957166",{"_index":2981,"title":{},"content":{"361":{"position":[[1597,19],[2252,19]]}},"keywords":{}}],["18.65",{"_index":2705,"title":{},"content":{"320":{"position":[[1432,5]]}},"keywords":{}}],["18.7",{"_index":4118,"title":{},"content":{"519":{"position":[[1191,4]]},"521":{"position":[[1157,4]]},"523":{"position":[[1379,4]]},"525":{"position":[[1345,4]]}},"keywords":{}}],["18.9",{"_index":4136,"title":{},"content":{"519":{"position":[[2869,4]]},"521":{"position":[[2835,4]]}},"keywords":{}}],["180",{"_index":1778,"title":{},"content":{"222":{"position":[[1946,4]]},"458":{"position":[[59,3]]},"480":{"position":[[11723,4],[11827,4],[11859,4],[11963,4]]}},"keywords":{}}],["184b7394",{"_index":3317,"title":{},"content":{"415":{"position":[[2456,8]]}},"keywords":{}}],["1885",{"_index":2354,"title":{},"content":{"266":{"position":[[1780,4]]}},"keywords":{}}],["18d0",{"_index":906,"title":{},"content":{"79":{"position":[[742,4]]}},"keywords":{}}],["18f8f9e9",{"_index":3343,"title":{},"content":{"415":{"position":[[3043,8]]}},"keywords":{}}],["18t19:31:27z",{"_index":3162,"title":{},"content":{"390":{"position":[[1626,14]]},"391":{"position":[[388,14]]}},"keywords":{}}],["18t19:58:50z",{"_index":3163,"title":{},"content":{"390":{"position":[[1661,14]]},"391":{"position":[[423,14]]}},"keywords":{}}],["19",{"_index":3420,"title":{},"content":{"435":{"position":[[8,2]]}},"keywords":{}}],["19.1",{"_index":4199,"title":{},"content":{"524":{"position":[[2004,4]]},"526":{"position":[[1970,4]]}},"keywords":{}}],["19.9",{"_index":4125,"title":{},"content":{"519":{"position":[[2044,4]]},"521":{"position":[[2010,4]]}},"keywords":{}}],["190",{"_index":1175,"title":{},"content":{"104":{"position":[[939,4]]},"109":{"position":[[594,4]]},"110":{"position":[[706,4]]},"111":{"position":[[1097,4]]},"112":{"position":[[918,4]]},"113":{"position":[[1040,4]]},"239":{"position":[[505,4]]},"349":{"position":[[435,4]]},"367":{"position":[[299,4],[579,4],[861,4],[1142,4],[1431,4],[1718,4],[2005,4],[2287,4],[2569,4],[2857,4],[3137,4],[3417,4],[3704,4],[3986,4],[4275,4]]},"395":{"position":[[440,4]]},"415":{"position":[[226,4]]}},"keywords":{}}],["190a",{"_index":2317,"title":{},"content":{"265":{"position":[[354,4]]}},"keywords":{}}],["1940",{"_index":4082,"title":{},"content":{"512":{"position":[[63,4]]},"514":{"position":[[131,4]]}},"keywords":{}}],["1950",{"_index":4092,"title":{},"content":{"514":{"position":[[209,4]]}},"keywords":{}}],["19b8",{"_index":2874,"title":{},"content":{"352":{"position":[[491,4]]}},"keywords":{}}],["19t13:18:44.709z",{"_index":886,"title":{},"content":{"76":{"position":[[512,17]]}},"keywords":{}}],["19t18:30:51.640+00:00",{"_index":3249,"title":{},"content":{"414":{"position":[[563,23]]}},"keywords":{}}],["1a952614",{"_index":2209,"title":{},"content":{"260":{"position":[[701,9]]},"268":{"position":[[593,10]]}},"keywords":{}}],["1b9dcf0e56d7",{"_index":2946,"title":{},"content":{"361":{"position":[[612,14]]}},"keywords":{}}],["1bucketkey",{"_index":1737,"title":{},"content":{"220":{"position":[[2415,11]]}},"keywords":{}}],["1d3ecb0f",{"_index":2450,"title":{},"content":{"282":{"position":[[594,9]]},"283":{"position":[[372,9]]}},"keywords":{}}],["1d55",{"_index":1443,"title":{},"content":{"130":{"position":[[4731,4]]}},"keywords":{}}],["1db6b47baec2",{"_index":2425,"title":{},"content":{"277":{"position":[[729,14]]}},"keywords":{}}],["1e2f8b25e05f.tif",{"_index":3341,"title":{},"content":{"415":{"position":[[2954,17]]}},"keywords":{}}],["1f7224339ec6",{"_index":2213,"title":{},"content":{"260":{"position":[[726,14]]},"268":{"position":[[619,14]]}},"keywords":{}}],["1f76a480abc8",{"_index":2432,"title":{},"content":{"277":{"position":[[815,14]]}},"keywords":{}}],["1f81a342",{"_index":3353,"title":{},"content":{"415":{"position":[[3271,8]]}},"keywords":{}}],["1fd0",{"_index":815,"title":{},"content":{"72":{"position":[[1004,4]]},"73":{"position":[[289,4]]}},"keywords":{}}],["1grower",{"_index":2449,"title":{},"content":{"282":{"position":[[569,10],[701,10]]},"283":{"position":[[347,10],[479,10]]}},"keywords":{}}],["2",{"_index":911,"title":{"311":{"position":[[0,2]]},"325":{"position":[[0,2]]}},"content":{"79":{"position":[[794,3],[945,1]]},"117":{"position":[[759,1]]},"130":{"position":[[1715,1],[1941,1],[2259,1],[3337,1]]},"210":{"position":[[41,1],[145,1]]},"212":{"position":[[128,1],[361,1],[613,1]]},"215":{"position":[[43,1]]},"244":{"position":[[285,1],[1070,1],[1648,2],[2214,2]]},"245":{"position":[[552,2],[666,2]]},"247":{"position":[[64,3],[536,2],[539,2]]},"248":{"position":[[476,2]]},"260":{"position":[[896,2]]},"277":{"position":[[654,2]]},"385":{"position":[[299,1]]},"408":{"position":[[762,3]]},"430":{"position":[[79,2]]},"473":{"position":[[4581,2]]},"480":{"position":[[440,1],[12026,2],[12777,1]]},"509":{"position":[[21,2],[79,2],[156,2]]},"510":{"position":[[140,1]]},"511":{"position":[[142,1],[238,1],[334,1],[1459,1],[1826,1]]},"513":{"position":[[21,2],[79,2],[156,2]]},"515":{"position":[[125,1],[221,1],[317,1],[1442,1],[1809,1]]}},"keywords":{}}],["2.0",{"_index":1669,"title":{},"content":{"212":{"position":[[569,5]]},"441":{"position":[[44,3]]},"480":{"position":[[11780,3],[11916,3]]},"520":{"position":[[2799,3]]},"522":{"position":[[2765,3]]}},"keywords":{}}],["2.100.0",{"_index":3427,"title":{"439":{"position":[[0,7]]}},"content":{},"keywords":{}}],["2.105.0",{"_index":3424,"title":{"438":{"position":[[0,7]]}},"content":{},"keywords":{}}],["2.106.0",{"_index":3422,"title":{"437":{"position":[[0,7]]}},"content":{},"keywords":{}}],["2.110.0",{"_index":3421,"title":{"436":{"position":[[0,7]]}},"content":{},"keywords":{}}],["2.113.0",{"_index":3419,"title":{"435":{"position":[[0,7]]}},"content":{},"keywords":{}}],["2.115.0",{"_index":3415,"title":{"434":{"position":[[0,7]]}},"content":{},"keywords":{}}],["2.430000066757202",{"_index":2965,"title":{},"content":{"361":{"position":[[1106,18]]}},"keywords":{}}],["2.5",{"_index":4031,"title":{},"content":{"510":{"position":[[424,3]]}},"keywords":{}}],["2.7924377839874155",{"_index":3006,"title":{},"content":{"361":{"position":[[2651,19]]}},"keywords":{}}],["2.81.0",{"_index":3453,"title":{"451":{"position":[[0,6]]}},"content":{},"keywords":{}}],["2.82.0",{"_index":3450,"title":{"450":{"position":[[0,6]]}},"content":{},"keywords":{}}],["2.83.0",{"_index":3449,"title":{"449":{"position":[[0,6]]}},"content":{},"keywords":{}}],["2.84.0",{"_index":3448,"title":{"448":{"position":[[0,6]]}},"content":{},"keywords":{}}],["2.85.0",{"_index":3446,"title":{"447":{"position":[[0,6]]}},"content":{},"keywords":{}}],["2.86.0",{"_index":3442,"title":{"446":{"position":[[0,6]]}},"content":{},"keywords":{}}],["2.87.0",{"_index":3441,"title":{"445":{"position":[[0,6]]}},"content":{},"keywords":{}}],["2.88.0",{"_index":3438,"title":{"444":{"position":[[0,6]]}},"content":{},"keywords":{}}],["2.89.0",{"_index":3437,"title":{"443":{"position":[[0,6]]}},"content":{},"keywords":{}}],["2.904060481369501",{"_index":3003,"title":{},"content":{"361":{"position":[[2410,18]]}},"keywords":{}}],["2.91.0",{"_index":3433,"title":{"442":{"position":[[0,6]]}},"content":{},"keywords":{}}],["2.92.0",{"_index":3430,"title":{"441":{"position":[[0,6]]}},"content":{},"keywords":{}}],["2.98.0",{"_index":3429,"title":{"440":{"position":[[0,6]]}},"content":{},"keywords":{}}],["20",{"_index":575,"title":{},"content":{"57":{"position":[[1432,2],[1505,2]]},"63":{"position":[[1158,2],[1231,2]]},"65":{"position":[[394,2],[467,2]]},"72":{"position":[[375,4]]},"80":{"position":[[322,4]]},"83":{"position":[[323,4]]},"88":{"position":[[417,2],[490,2]]},"220":{"position":[[1197,2],[1960,2]]},"221":{"position":[[575,2]]},"248":{"position":[[863,2]]},"255":{"position":[[343,4]]},"260":{"position":[[445,4]]},"264":{"position":[[1095,3]]},"277":{"position":[[372,3]]},"282":{"position":[[334,3]]},"320":{"position":[[2586,2]]},"346":{"position":[[1760,2],[1833,2]]},"390":{"position":[[1213,2],[1286,2]]},"396":{"position":[[462,3],[522,2]]},"415":{"position":[[876,3],[936,2]]},"451":{"position":[[8,2]]},"456":{"position":[[213,3]]},"490":{"position":[[220,3]]}},"keywords":{}}],["200",{"_index":1164,"title":{},"content":{"104":{"position":[[823,5]]},"109":{"position":[[485,5]]},"110":{"position":[[597,5]]},"111":{"position":[[988,5]]},"112":{"position":[[809,5]]},"113":{"position":[[931,5]]},"239":{"position":[[389,5]]},"349":{"position":[[324,5]]},"367":{"position":[[190,5],[470,5],[752,5],[1033,5],[1322,5],[1609,5],[1896,5],[2178,5],[2460,5],[2748,5],[3028,5],[3308,5],[3595,5],[3877,5],[4166,5]]},"395":{"position":[[329,5]]},"415":{"position":[[103,4]]},"467":{"position":[[393,4]]},"480":{"position":[[1573,4]]}},"keywords":{}}],["2000",{"_index":601,"title":{},"content":{"57":{"position":[[2153,4]]},"58":{"position":[[633,4]]}},"keywords":{}}],["201.7963353621763",{"_index":2985,"title":{},"content":{"361":{"position":[[1698,18]]}},"keywords":{}}],["2010",{"_index":3105,"title":{},"content":{"378":{"position":[[3225,5]]},"379":{"position":[[3258,5]]},"380":{"position":[[2750,5]]},"382":{"position":[[1858,5]]},"383":{"position":[[1846,5]]},"384":{"position":[[1524,5]]}},"keywords":{}}],["2011",{"_index":3046,"title":{},"content":{"365":{"position":[[175,4]]}},"keywords":{}}],["2015",{"_index":2970,"title":{},"content":{"361":{"position":[[1286,5],[2987,5]]},"390":{"position":[[1617,5],[1652,5]]},"391":{"position":[[379,5],[414,5]]}},"keywords":{}}],["2016",{"_index":3248,"title":{},"content":{"414":{"position":[[554,5],[598,5]]}},"keywords":{}}],["2017",{"_index":2301,"title":{},"content":{"264":{"position":[[1440,5],[1475,5]]},"265":{"position":[[451,5],[486,5]]}},"keywords":{}}],["2019",{"_index":1762,"title":{},"content":{"222":{"position":[[935,5]]}},"keywords":{}}],["2020",{"_index":620,"title":{},"content":{"57":{"position":[[2608,4]]},"60":{"position":[[255,4],[973,4]]},"130":{"position":[[2110,6],[3255,5],[3506,6]]},"220":{"position":[[1672,5],[1996,5]]},"221":{"position":[[287,5],[615,5]]},"243":{"position":[[134,5],[182,5]]}},"keywords":{}}],["2021",{"_index":694,"title":{},"content":{"61":{"position":[[390,4],[1141,4]]},"130":{"position":[[4867,5],[5935,5]]},"133":{"position":[[642,5]]},"260":{"position":[[1123,5],[1169,5]]},"390":{"position":[[1691,5]]},"391":{"position":[[453,5]]}},"keywords":{}}],["2022",{"_index":594,"title":{},"content":{"57":{"position":[[1991,5],[2444,5]]},"58":{"position":[[471,5]]},"59":{"position":[[2541,5],[2580,5]]},"88":{"position":[[1192,5],[1777,5]]},"436":{"position":[[0,4]]},"437":{"position":[[0,4]]},"438":{"position":[[0,4]]},"439":{"position":[[0,4]]},"440":{"position":[[0,4]]},"441":{"position":[[0,4]]},"442":{"position":[[0,4]]},"443":{"position":[[0,4]]},"444":{"position":[[0,4]]},"445":{"position":[[0,4]]},"446":{"position":[[0,4]]},"447":{"position":[[0,4]]},"448":{"position":[[0,4]]},"449":{"position":[[0,4]]},"450":{"position":[[0,4]]},"451":{"position":[[0,4]]}},"keywords":{}}],["2023",{"_index":263,"title":{},"content":{"8":{"position":[[346,5],[751,6],[831,5],[1236,6],[1316,5],[1590,6]]},"60":{"position":[[756,5],[803,5]]},"61":{"position":[[907,5],[954,5]]},"65":{"position":[[922,5]]},"66":{"position":[[549,5]]},"76":{"position":[[503,5]]},"224":{"position":[[433,5]]},"255":{"position":[[750,5],[888,5]]},"260":{"position":[[1488,5],[1534,5]]},"262":{"position":[[1382,5],[1428,5]]},"266":{"position":[[2124,5],[2170,5],[2553,5],[2599,5]]},"269":{"position":[[820,5]]},"275":{"position":[[1077,5],[1123,5]]},"277":{"position":[[920,5],[966,5]]},"282":{"position":[[742,5],[788,5]]},"283":{"position":[[520,5],[566,5]]},"288":{"position":[[2124,5],[2170,5]]},"290":{"position":[[217,5],[263,5]]},"297":{"position":[[534,5]]},"378":{"position":[[750,5],[837,5],[1586,5],[1673,5]]},"379":{"position":[[816,5],[903,5],[1669,5],[1756,5]]},"380":{"position":[[735,5],[776,5],[822,5],[1516,5],[1557,5],[1603,5]]},"434":{"position":[[0,4]]},"435":{"position":[[0,4]]},"519":{"position":[[838,5],[888,5],[999,5],[1049,5],[1159,5],[1209,5],[1319,5],[1369,5],[1468,5],[1500,5],[1532,5],[1564,5],[1654,5],[1703,5],[1810,5],[1859,5],[1962,5],[2012,5],[2124,5],[2174,5],[2255,5],[2320,5],[2369,5],[2472,5],[2522,5],[2631,5],[2681,5],[2787,5],[2837,5],[2935,5],[2967,5],[2999,5],[3031,5],[3123,5],[3174,5]]},"520":{"position":[[831,5],[880,5],[986,5],[1036,5],[1144,5],[1193,5],[1303,5],[1352,5],[1462,5],[1511,5],[1622,5],[1671,5],[1783,5],[1832,5],[1943,5],[1994,5],[2097,5],[2147,5],[2248,5],[2297,5],[2398,5],[2447,5],[2556,5],[2606,5],[2716,5],[2767,5],[2894,5],[2944,5],[3049,5],[3098,5],[3205,5],[3255,5],[3357,5],[3407,5],[3508,5],[3557,5],[3663,5],[3714,5]]},"521":{"position":[[804,5],[854,5],[965,5],[1015,5],[1125,5],[1175,5],[1285,5],[1335,5],[1434,5],[1466,5],[1498,5],[1530,5],[1620,5],[1669,5],[1776,5],[1825,5],[1928,5],[1978,5],[2090,5],[2140,5],[2221,5],[2286,5],[2335,5],[2438,5],[2488,5],[2597,5],[2647,5],[2753,5],[2803,5],[2901,5],[2933,5],[2965,5],[2997,5],[3089,5],[3140,5]]},"522":{"position":[[797,5],[846,5],[952,5],[1002,5],[1110,5],[1159,5],[1269,5],[1318,5],[1428,5],[1477,5],[1588,5],[1637,5],[1749,5],[1798,5],[1909,5],[1960,5],[2063,5],[2113,5],[2214,5],[2263,5],[2364,5],[2413,5],[2522,5],[2572,5],[2682,5],[2733,5],[2860,5],[2910,5],[3015,5],[3064,5],[3171,5],[3221,5],[3323,5],[3373,5],[3474,5],[3523,5],[3629,5],[3680,5]]},"523":{"position":[[1026,5],[1076,5],[1187,5],[1237,5],[1347,5],[1397,5],[1507,5],[1557,5],[1656,5],[1688,5],[1720,5],[1752,5],[1842,5],[1891,5],[1998,5],[2047,5],[2150,5],[2200,5],[2312,5],[2362,5],[2443,5],[2508,5],[2557,5],[2660,5],[2710,5],[2819,5],[2869,5],[2975,5],[3025,5],[3123,5],[3155,5],[3187,5],[3219,5],[3311,5],[3362,5]]},"524":{"position":[[816,5],[865,5],[972,5],[1021,5],[1132,5],[1181,5],[1294,5],[1343,5],[1457,5],[1506,5],[1617,5],[1668,5],[1771,5],[1821,5],[1922,5],[1972,5],[2074,5],[2123,5],[2232,5],[2282,5],[2392,5],[2443,5],[2571,5],[2620,5],[2723,5],[2772,5],[2878,5],[2928,5],[3036,5],[3086,5],[3188,5],[3238,5],[3339,5],[3388,5],[3494,5],[3545,5]]},"525":{"position":[[992,5],[1042,5],[1153,5],[1203,5],[1313,5],[1363,5],[1473,5],[1523,5],[1622,5],[1654,5],[1686,5],[1718,5],[1808,5],[1857,5],[1964,5],[2013,5],[2116,5],[2166,5],[2278,5],[2328,5],[2409,5],[2474,5],[2523,5],[2626,5],[2676,5],[2785,5],[2835,5],[2941,5],[2991,5],[3089,5],[3121,5],[3153,5],[3185,5],[3277,5],[3328,5]]},"526":{"position":[[782,5],[831,5],[938,5],[987,5],[1098,5],[1147,5],[1260,5],[1309,5],[1423,5],[1472,5],[1583,5],[1634,5],[1737,5],[1787,5],[1888,5],[1938,5],[2040,5],[2089,5],[2198,5],[2248,5],[2358,5],[2409,5],[2537,5],[2586,5],[2689,5],[2738,5],[2844,5],[2894,5],[3002,5],[3052,5],[3154,5],[3204,5],[3305,5],[3354,5],[3460,5],[3511,5]]}},"keywords":{}}],["2024",{"_index":2531,"title":{},"content":{"297":{"position":[[325,5],[468,5]]},"298":{"position":[[642,5]]},"378":{"position":[[791,5],[1627,5]]},"379":{"position":[[857,5],[1710,5]]}},"keywords":{}}],["204",{"_index":310,"title":{},"content":{"9":{"position":[[77,3]]},"480":{"position":[[4500,3]]}},"keywords":{}}],["2050",{"_index":1409,"title":{},"content":{"130":{"position":[[2901,4]]}},"keywords":{}}],["206.0",{"_index":4192,"title":{},"content":{"523":{"position":[[3343,5]]},"525":{"position":[[3309,5]]}},"keywords":{}}],["209.0",{"_index":4193,"title":{},"content":{"523":{"position":[[3394,5]]},"525":{"position":[[3360,5]]}},"keywords":{}}],["209.86278232264567",{"_index":2994,"title":{},"content":{"361":{"position":[[1934,19]]}},"keywords":{}}],["20t21:21:24.732030z",{"_index":2239,"title":{},"content":{"260":{"position":[[1132,21]]}},"keywords":{}}],["20|20",{"_index":1368,"title":{},"content":{"130":{"position":[[1897,5],[2068,5],[3238,5],[3293,5],[3464,5]]},"443":{"position":[[60,5]]}},"keywords":{}}],["21",{"_index":1242,"title":{},"content":{"105":{"position":[[2408,2]]},"474":{"position":[[898,3]]}},"keywords":{}}],["21.05",{"_index":3278,"title":{},"content":{"414":{"position":[[2030,6],[2146,6]]}},"keywords":{}}],["21.1",{"_index":4135,"title":{},"content":{"519":{"position":[[2819,4]]},"521":{"position":[[2785,4]]}},"keywords":{}}],["21.18",{"_index":2983,"title":{},"content":{"361":{"position":[[1638,6],[2293,6]]}},"keywords":{}}],["21.191730056712402",{"_index":2521,"title":{},"content":{"292":{"position":[[757,20]]}},"keywords":{}}],["21.192167369960515",{"_index":2513,"title":{},"content":{"292":{"position":[[586,20],[800,19]]}},"keywords":{}}],["21.192669687635007",{"_index":2515,"title":{},"content":{"292":{"position":[[629,20]]}},"keywords":{}}],["21.194602117356858",{"_index":2517,"title":{},"content":{"292":{"position":[[672,20]]}},"keywords":{}}],["21.195033512590314",{"_index":2519,"title":{},"content":{"292":{"position":[[715,20]]}},"keywords":{}}],["21062.354662275786",{"_index":3244,"title":{},"content":{"414":{"position":[[396,19]]}},"keywords":{}}],["21eb",{"_index":2348,"title":{},"content":{"266":{"position":[[1670,4],[2292,4]]}},"keywords":{}}],["21t00:00:00",{"_index":4112,"title":{},"content":{"519":{"position":[[847,13],[1008,13],[1168,13],[1328,13],[1477,13],[1663,13],[1819,13],[1971,13],[2133,13],[2329,13],[2481,13],[2640,13],[2796,13],[2944,13],[3132,13]]},"520":{"position":[[840,13],[995,13],[1153,13],[1312,13],[1471,13],[1631,13],[1792,13],[1952,13],[2106,13],[2257,13],[2407,13],[2565,13],[2725,13],[2903,13],[3058,13],[3214,13],[3366,13],[3517,13],[3672,13]]},"521":{"position":[[813,13],[974,13],[1134,13],[1294,13],[1443,13],[1629,13],[1785,13],[1937,13],[2099,13],[2295,13],[2447,13],[2606,13],[2762,13],[2910,13],[3098,13]]},"522":{"position":[[806,13],[961,13],[1119,13],[1278,13],[1437,13],[1597,13],[1758,13],[1918,13],[2072,13],[2223,13],[2373,13],[2531,13],[2691,13],[2869,13],[3024,13],[3180,13],[3332,13],[3483,13],[3638,13]]},"523":{"position":[[1196,13],[1356,13],[1516,13]]}},"keywords":{}}],["21t01:00:00",{"_index":4144,"title":{},"content":{"520":{"position":[[889,13],[1045,13],[1202,13],[1361,13],[1520,13],[1680,13],[1841,13],[2003,13],[2156,13],[2306,13],[2456,13],[2615,13],[2776,13],[2953,13],[3107,13],[3264,13],[3416,13],[3566,13],[3723,13]]},"522":{"position":[[855,13],[1011,13],[1168,13],[1327,13],[1486,13],[1646,13],[1807,13],[1969,13],[2122,13],[2272,13],[2422,13],[2581,13],[2742,13],[2919,13],[3073,13],[3230,13],[3382,13],[3532,13],[3689,13]]}},"keywords":{}}],["21t10:52",{"_index":4122,"title":{},"content":{"519":{"position":[[1509,9]]},"521":{"position":[[1475,9]]}},"keywords":{}}],["21t12:16:27.997586z",{"_index":278,"title":{},"content":{"8":{"position":[[761,23]]}},"keywords":{}}],["21t12:16:30z",{"_index":265,"title":{},"content":{"8":{"position":[[355,14]]}},"keywords":{}}],["21t13:01:11.662397",{"_index":4129,"title":{},"content":{"519":{"position":[[2264,20]]},"521":{"position":[[2230,20]]}},"keywords":{}}],["21t16:50:17.965109",{"_index":4185,"title":{},"content":{"523":{"position":[[2452,20]]},"525":{"position":[[2418,20]]}},"keywords":{}}],["21t21:48:25.000+00:00",{"_index":3250,"title":{},"content":{"414":{"position":[[607,23]]}},"keywords":{}}],["22",{"_index":2704,"title":{},"content":{"320":{"position":[[1285,2]]}},"keywords":{}}],["22.49608",{"_index":1781,"title":{},"content":{"222":{"position":[[2134,10],[2315,9]]}},"keywords":{}}],["22.49675703",{"_index":1783,"title":{},"content":{"222":{"position":[[2162,13]]}},"keywords":{}}],["22.49693998",{"_index":1791,"title":{},"content":{"222":{"position":[[2284,13]]}},"keywords":{}}],["22.50310243",{"_index":1785,"title":{},"content":{"222":{"position":[[2192,13]]}},"keywords":{}}],["22.50648371",{"_index":1789,"title":{},"content":{"222":{"position":[[2253,13]]}},"keywords":{}}],["22.5067235",{"_index":1787,"title":{},"content":{"222":{"position":[[2223,12]]}},"keywords":{}}],["22.6",{"_index":4152,"title":{},"content":{"520":{"position":[[2129,4],[2179,4]]},"522":{"position":[[2095,4],[2145,4]]}},"keywords":{}}],["223.0",{"_index":4214,"title":{},"content":{"524":{"position":[[3577,5]]},"526":{"position":[[3543,5]]}},"keywords":{}}],["22px",{"_index":2781,"title":{},"content":{"338":{"position":[[2059,10]]}},"keywords":{}}],["22t00:00:00",{"_index":4114,"title":{},"content":{"519":{"position":[[897,13],[1058,13],[1218,13],[1378,13],[1541,13],[1712,13],[1868,13],[2021,13],[2183,13],[2378,13],[2531,13],[2690,13],[2846,13],[3008,13],[3183,13]]},"521":{"position":[[863,13],[1024,13],[1184,13],[1344,13],[1507,13],[1678,13],[1834,13],[1987,13],[2149,13],[2344,13],[2497,13],[2656,13],[2812,13],[2974,13],[3149,13]]},"523":{"position":[[1246,13],[1406,13],[1566,13]]}},"keywords":{}}],["22t01:11",{"_index":4137,"title":{},"content":{"519":{"position":[[2976,9]]},"521":{"position":[[2942,9]]}},"keywords":{}}],["22t10:53",{"_index":4123,"title":{},"content":{"519":{"position":[[1573,9]]},"521":{"position":[[1539,9]]}},"keywords":{}}],["22t20:06:25.411z",{"_index":596,"title":{},"content":{"57":{"position":[[2000,18],[2453,18]]},"58":{"position":[[480,18]]},"59":{"position":[[2550,18]]}},"keywords":{}}],["22t20:07:25.411z",{"_index":662,"title":{},"content":{"59":{"position":[[2589,18]]}},"keywords":{}}],["23",{"_index":2455,"title":{},"content":{"282":{"position":[[677,3]]},"283":{"position":[[455,3]]},"473":{"position":[[5402,4]]}},"keywords":{}}],["23.2",{"_index":4189,"title":{},"content":{"523":{"position":[[3057,4]]},"525":{"position":[[3023,4]]}},"keywords":{}}],["23.3",{"_index":4197,"title":{},"content":{"524":{"position":[[1853,4]]},"526":{"position":[[1819,4]]}},"keywords":{}}],["23.4",{"_index":4196,"title":{},"content":{"524":{"position":[[1803,4]]},"526":{"position":[[1769,4]]}},"keywords":{}}],["23.6",{"_index":4134,"title":{},"content":{"519":{"position":[[2713,4]]},"521":{"position":[[2679,4]]}},"keywords":{}}],["230",{"_index":1173,"title":{},"content":{"104":{"position":[[917,4]]},"109":{"position":[[574,4]]},"110":{"position":[[686,4]]},"111":{"position":[[1077,4]]},"112":{"position":[[898,4]]},"113":{"position":[[1020,4]]},"239":{"position":[[483,4]]},"349":{"position":[[414,4]]},"367":{"position":[[279,4],[559,4],[841,4],[1122,4],[1411,4],[1698,4],[1985,4],[2267,4],[2549,4],[2837,4],[3117,4],[3397,4],[3684,4],[3966,4],[4255,4]]},"395":{"position":[[419,4]]},"415":{"position":[[203,4]]}},"keywords":{}}],["232434.9041830802",{"_index":3264,"title":{},"content":{"414":{"position":[[1316,18]]}},"keywords":{}}],["233.0",{"_index":4213,"title":{},"content":{"524":{"position":[[3526,5]]},"526":{"position":[[3492,5]]}},"keywords":{}}],["234.0",{"_index":4167,"title":{},"content":{"520":{"position":[[3695,5]]},"522":{"position":[[3661,5]]}},"keywords":{}}],["23433a11c271",{"_index":985,"title":{},"content":{"88":{"position":[[774,14],[1409,14]]}},"keywords":{}}],["235466.19310582182",{"_index":3262,"title":{},"content":{"414":{"position":[[1197,19]]}},"keywords":{}}],["23fd1c76eeba",{"_index":2362,"title":{},"content":{"266":{"position":[[1971,14]]}},"keywords":{}}],["23t00:00:00z",{"_index":2972,"title":{},"content":{"361":{"position":[[1295,14]]}},"keywords":{}}],["23t01:10",{"_index":4138,"title":{},"content":{"519":{"position":[[3040,9]]},"521":{"position":[[3006,9]]}},"keywords":{}}],["24",{"_index":446,"title":{},"content":{"48":{"position":[[719,2]]},"89":{"position":[[286,2]]},"341":{"position":[[653,2]]},"445":{"position":[[8,2]]},"446":{"position":[[8,2]]}},"keywords":{}}],["24.1",{"_index":4131,"title":{},"content":{"519":{"position":[[2554,4]]},"521":{"position":[[2520,4]]}},"keywords":{}}],["24.98",{"_index":2723,"title":{},"content":{"320":{"position":[[2521,5],[2543,5]]}},"keywords":{}}],["240",{"_index":1171,"title":{},"content":{"104":{"position":[[895,4]]},"109":{"position":[[554,4]]},"110":{"position":[[666,4]]},"111":{"position":[[1057,4]]},"112":{"position":[[878,4]]},"113":{"position":[[1000,4]]},"239":{"position":[[461,4]]},"349":{"position":[[393,4]]},"367":{"position":[[259,4],[539,4],[821,4],[1102,4],[1391,4],[1678,4],[1965,4],[2247,4],[2529,4],[2817,4],[3097,4],[3377,4],[3664,4],[3946,4],[4235,4]]},"395":{"position":[[398,4]]},"415":{"position":[[180,4]]}},"keywords":{}}],["2415",{"_index":1535,"title":{},"content":{"133":{"position":[[505,4]]}},"keywords":{}}],["24963.041657357968",{"_index":3004,"title":{},"content":{"361":{"position":[[2526,19],[3057,19]]}},"keywords":{}}],["24de86ff",{"_index":676,"title":{},"content":{"60":{"position":[[581,9]]},"61":{"position":[[732,9]]}},"keywords":{}}],["24h",{"_index":3398,"title":{},"content":{"423":{"position":[[570,4]]}},"keywords":{}}],["24t00:36:55.8z",{"_index":3011,"title":{},"content":{"361":{"position":[[2996,16]]}},"keywords":{}}],["24t16:00:15.062z",{"_index":3164,"title":{},"content":{"390":{"position":[[1700,18]]},"391":{"position":[[462,18]]}},"keywords":{}}],["24t18:35:52.187785z",{"_index":280,"title":{},"content":{"8":{"position":[[1246,23]]}},"keywords":{}}],["24t18:35:53z",{"_index":279,"title":{},"content":{"8":{"position":[[840,14],[1325,14],[1600,17]]}},"keywords":{}}],["25",{"_index":959,"title":{},"content":{"82":{"position":[[1990,2]]},"83":{"position":[[1812,2]]},"510":{"position":[[200,2]]},"514":{"position":[[115,4]]}},"keywords":{}}],["25.0",{"_index":4133,"title":{},"content":{"519":{"position":[[2663,4]]},"521":{"position":[[2629,4]]}},"keywords":{}}],["25.1",{"_index":4117,"title":{},"content":{"519":{"position":[[1081,4]]},"521":{"position":[[1047,4]]},"523":{"position":[[1269,4]]},"525":{"position":[[1235,4]]}},"keywords":{}}],["25.3",{"_index":4116,"title":{},"content":{"519":{"position":[[1031,4]]},"521":{"position":[[997,4]]},"523":{"position":[[1219,4]]},"525":{"position":[[1185,4]]}},"keywords":{}}],["25.55",{"_index":669,"title":{},"content":{"59":{"position":[[2926,6]]}},"keywords":{}}],["25.8",{"_index":4186,"title":{},"content":{"523":{"position":[[2742,4]]},"525":{"position":[[2708,4]]}},"keywords":{}}],["250",{"_index":3192,"title":{},"content":{"396":{"position":[[612,4],[676,3]]},"415":{"position":[[1026,4],[1090,3]]}},"keywords":{}}],["255",{"_index":1166,"title":{},"content":{"104":{"position":[[844,5],[866,5],[889,5]]},"109":{"position":[[505,5],[526,5],[548,5]]},"110":{"position":[[617,5],[638,5],[660,5]]},"111":{"position":[[1008,5],[1029,5],[1051,5]]},"112":{"position":[[829,5],[850,5],[872,5]]},"113":{"position":[[951,5],[972,5],[994,5]]},"239":{"position":[[410,5],[432,5],[455,5]]},"349":{"position":[[344,5],[365,5],[387,5]]},"367":{"position":[[210,5],[231,5],[253,5],[490,5],[511,5],[533,5],[772,5],[793,5],[815,5],[1053,5],[1074,5],[1096,5],[1342,5],[1363,5],[1385,5],[1629,5],[1650,5],[1672,5],[1916,5],[1937,5],[1959,5],[2198,5],[2219,5],[2241,5],[2480,5],[2501,5],[2523,5],[2768,5],[2789,5],[2811,5],[3048,5],[3069,5],[3091,5],[3328,5],[3349,5],[3371,5],[3615,5],[3636,5],[3658,5],[3897,5],[3918,5],[3940,5],[4186,5],[4207,5],[4229,5]]},"395":{"position":[[349,5],[370,5],[392,5]]},"415":{"position":[[126,4],[150,4],[175,4]]},"513":{"position":[[235,3]]},"515":{"position":[[779,3]]},"524":{"position":[[1427,5]]},"526":{"position":[[1393,5]]}},"keywords":{}}],["256",{"_index":118,"title":{},"content":{"3":{"position":[[260,4]]}},"keywords":{}}],["25t18:32:25.530259",{"_index":2532,"title":{},"content":{"297":{"position":[[334,20]]}},"keywords":{}}],["25t18:36:37.965906",{"_index":2533,"title":{},"content":{"297":{"position":[[477,20]]},"298":{"position":[[651,20]]}},"keywords":{}}],["26",{"_index":3451,"title":{},"content":{"450":{"position":[[8,2]]}},"keywords":{}}],["26.1",{"_index":4188,"title":{},"content":{"523":{"position":[[3007,4]]},"525":{"position":[[2973,4]]}},"keywords":{}}],["26.3",{"_index":4163,"title":{},"content":{"520":{"position":[[3439,4]]},"522":{"position":[[3405,4]]},"523":{"position":[[2692,4]]},"525":{"position":[[2658,4]]}},"keywords":{}}],["26.8",{"_index":4187,"title":{},"content":{"523":{"position":[[2901,4]]},"525":{"position":[[2867,4]]}},"keywords":{}}],["2600",{"_index":1365,"title":{},"content":{"130":{"position":[[1717,6]]}},"keywords":{}}],["2630",{"_index":1343,"title":{},"content":{"130":{"position":[[1334,4],[1606,6]]}},"keywords":{}}],["26t14:23:56.584z",{"_index":3092,"title":{},"content":{"378":{"position":[[800,18],[1636,18]]},"379":{"position":[[866,18],[1719,18]]}},"keywords":{}}],["26t21:27:55.674731",{"_index":2535,"title":{},"content":{"297":{"position":[[543,20]]}},"keywords":{}}],["27",{"_index":4002,"title":{},"content":{"509":{"position":[[225,2],[232,2]]},"511":{"position":[[787,2],[794,2]]},"520":{"position":[[1593,4],[1751,2]]},"522":{"position":[[1559,4],[1717,2]]}},"keywords":{}}],["27.0",{"_index":4130,"title":{},"content":{"519":{"position":[[2504,4]]},"521":{"position":[[2470,4]]}},"keywords":{}}],["27.4",{"_index":4162,"title":{},"content":{"520":{"position":[[3389,4]]},"522":{"position":[[3355,4]]}},"keywords":{}}],["27.9",{"_index":4121,"title":{},"content":{"519":{"position":[[1401,4]]},"520":{"position":[[1068,4]]},"521":{"position":[[1367,4]]},"522":{"position":[[1034,4]]},"523":{"position":[[1589,4]]},"525":{"position":[[1555,4]]}},"keywords":{}}],["2762a5f2",{"_index":2288,"title":{},"content":{"262":{"position":[[1470,9]]}},"keywords":{}}],["279b52d5",{"_index":2219,"title":{},"content":{"260":{"position":[[811,9]]}},"keywords":{}}],["27ae60",{"_index":3128,"title":{},"content":{"385":{"position":[[264,10]]}},"keywords":{}}],["27f721e8",{"_index":3327,"title":{},"content":{"415":{"position":[[2691,8]]}},"keywords":{}}],["27t08:59:58z",{"_index":2302,"title":{},"content":{"264":{"position":[[1449,14]]},"265":{"position":[[460,14]]}},"keywords":{}}],["27t09:40:33z",{"_index":2303,"title":{},"content":{"264":{"position":[[1484,14]]},"265":{"position":[[495,14]]}},"keywords":{}}],["28",{"_index":4084,"title":{},"content":{"513":{"position":[[213,2],[220,2]]},"515":{"position":[[760,3],[764,2]]},"524":{"position":[[1103,4],[1261,2]]},"526":{"position":[[1069,4],[1227,2]]}},"keywords":{}}],["28.1",{"_index":4115,"title":{},"content":{"519":{"position":[[920,4]]},"521":{"position":[[886,4]]},"523":{"position":[[2851,4]]},"525":{"position":[[2817,4]]}},"keywords":{}}],["28.2",{"_index":4146,"title":{},"content":{"520":{"position":[[1018,4]]}},"keywords":{}}],["28.6",{"_index":4216,"title":{},"content":{"525":{"position":[[1505,4]]}},"keywords":{}}],["28.686604864693564",{"_index":3040,"title":{},"content":{"364":{"position":[[347,19]]}},"keywords":{}}],["28.7",{"_index":4172,"title":{},"content":{"522":{"position":[[984,4]]}},"keywords":{}}],["28.8",{"_index":4113,"title":{},"content":{"519":{"position":[[870,4]]},"521":{"position":[[836,4]]}},"keywords":{}}],["28.89",{"_index":665,"title":{},"content":{"59":{"position":[[2687,6]]}},"keywords":{}}],["28.9",{"_index":4120,"title":{},"content":{"519":{"position":[[1351,4]]},"521":{"position":[[1317,4]]},"523":{"position":[[1539,4]]}},"keywords":{}}],["28.97",{"_index":2724,"title":{},"content":{"320":{"position":[[2563,5]]}},"keywords":{}}],["286eeb50",{"_index":2942,"title":{},"content":{"361":{"position":[[587,9]]}},"keywords":{}}],["28b8",{"_index":3158,"title":{},"content":{"390":{"position":[[1574,4]]},"391":{"position":[[336,4]]}},"keywords":{}}],["29",{"_index":3434,"title":{},"content":{"442":{"position":[[8,2]]}},"keywords":{}}],["29.59",{"_index":3256,"title":{},"content":{"414":{"position":[[887,6],[1032,6]]}},"keywords":{}}],["29.8",{"_index":4207,"title":{},"content":{"524":{"position":[[2960,4]]},"526":{"position":[[2926,4]]}},"keywords":{}}],["296264",{"_index":710,"title":{},"content":{"63":{"position":[[1590,9]]},"64":{"position":[[457,9]]}},"keywords":{}}],["2c963f66afa6",{"_index":785,"title":{},"content":{"71":{"position":[[730,14]]},"78":{"position":[[732,14]]},"80":{"position":[[609,14]]}},"keywords":{}}],["2da332e8f69c",{"_index":675,"title":{},"content":{"60":{"position":[[505,14]]},"61":{"position":[[653,14]]}},"keywords":{}}],["2dbf",{"_index":2245,"title":{},"content":{"260":{"position":[[1246,4]]}},"keywords":{}}],["2e83",{"_index":2429,"title":{},"content":{"277":{"position":[[800,4]]}},"keywords":{}}],["2ed321f395c",{"_index":1497,"title":{},"content":{"131":{"position":[[764,14]]}},"keywords":{}}],["2edea4b6fca4",{"_index":2253,"title":{},"content":{"260":{"position":[[1326,14]]}},"keywords":{}}],["2f4a03",{"_index":2421,"title":{},"content":{"277":{"position":[[704,9]]}},"keywords":{}}],["3",{"_index":1026,"title":{"326":{"position":[[0,2]]}},"content":{"89":{"position":[[324,1]]},"105":{"position":[[2023,1],[2103,1]]},"117":{"position":[[1115,1]]},"130":{"position":[[290,1],[374,1],[1330,1],[1604,1],[2095,1],[3491,1]]},"210":{"position":[[189,1],[213,1]]},"212":{"position":[[140,1],[373,1],[629,1]]},"242":{"position":[[714,1]]},"244":{"position":[[1941,2]]},"245":{"position":[[941,2]]},"266":{"position":[[599,2],[1135,1],[1493,1]]},"378":{"position":[[899,2],[1735,2]]},"379":{"position":[[965,2],[1818,2]]},"380":{"position":[[884,2],[1665,2]]},"385":{"position":[[346,1]]},"413":{"position":[[690,1]]},"459":{"position":[[123,1]]},"471":{"position":[[179,1]]},"474":{"position":[[481,2],[615,2]]},"480":{"position":[[12045,2],[12787,1]]},"509":{"position":[[209,1],[215,1]]},"510":{"position":[[165,1],[196,1],[380,1]]},"511":{"position":[[777,2],[780,1]]},"520":{"position":[[1275,3],[1432,1]]},"522":{"position":[[1241,3],[1398,1]]}},"keywords":{}}],["3.1",{"_index":4165,"title":{},"content":{"520":{"position":[[3540,3]]},"522":{"position":[[3506,3]]}},"keywords":{}}],["3.2892456102410352",{"_index":3261,"title":{},"content":{"414":{"position":[[1170,19],[1289,19]]}},"keywords":{}}],["3.4",{"_index":1397,"title":{},"content":{"130":{"position":[[2654,4]]}},"keywords":{}}],["3.441336296949484",{"_index":3245,"title":{},"content":{"414":{"position":[[450,18]]}},"keywords":{}}],["3.5",{"_index":1395,"title":{},"content":{"130":{"position":[[2560,6]]}},"keywords":{}}],["3.62",{"_index":4184,"title":{},"content":{"523":{"position":[[2394,4]]},"525":{"position":[[2360,4]]}},"keywords":{}}],["3.76",{"_index":4126,"title":{},"content":{"519":{"position":[[2156,4]]},"521":{"position":[[2122,4]]}},"keywords":{}}],["30",{"_index":442,"title":{},"content":{"48":{"position":[[644,2]]},"144":{"position":[[513,2]]},"151":{"position":[[509,2]]},"158":{"position":[[531,2]]},"165":{"position":[[503,2]]},"172":{"position":[[515,2]]},"179":{"position":[[525,2]]},"186":{"position":[[505,2]]},"193":{"position":[[509,2]]},"200":{"position":[[505,2]]},"207":{"position":[[500,2]]},"209":{"position":[[236,2]]},"222":{"position":[[415,2]]},"247":{"position":[[265,2]]},"252":{"position":[[189,2]]},"314":{"position":[[1078,3]]},"316":{"position":[[874,3],[943,2]]},"317":{"position":[[1870,3]]},"320":{"position":[[706,2],[725,2],[744,2],[2499,2]]},"423":{"position":[[495,2]]},"517":{"position":[[1128,2],[1175,3]]}},"keywords":{}}],["30.2",{"_index":4206,"title":{},"content":{"524":{"position":[[2910,4]]},"526":{"position":[[2876,4]]}},"keywords":{}}],["3000",{"_index":1400,"title":{},"content":{"130":{"position":[[2704,5],[2713,4]]}},"keywords":{}}],["300km",{"_index":1777,"title":{},"content":{"222":{"position":[[1940,5]]}},"keywords":{}}],["30t18:39:33.230612z",{"_index":2178,"title":{},"content":{"255":{"position":[[759,20],[897,20]]}},"keywords":{}}],["30t20:47:22.630z",{"_index":3113,"title":{},"content":{"380":{"position":[[744,18],[1525,18]]}},"keywords":{}}],["30t20:47:28.209z",{"_index":3115,"title":{},"content":{"380":{"position":[[831,18],[1612,18]]}},"keywords":{}}],["30t21:02:22.729z",{"_index":3114,"title":{},"content":{"380":{"position":[[785,18],[1566,18]]}},"keywords":{}}],["31",{"_index":3428,"title":{},"content":{"439":{"position":[[8,2]]}},"keywords":{}}],["31.4",{"_index":4210,"title":{},"content":{"524":{"position":[[3270,4]]},"526":{"position":[[3236,4]]}},"keywords":{}}],["31.9",{"_index":4176,"title":{},"content":{"523":{"position":[[1058,4]]},"524":{"position":[[3220,4]]},"525":{"position":[[1024,4]]},"526":{"position":[[3186,4]]}},"keywords":{}}],["31.99",{"_index":2695,"title":{},"content":{"320":{"position":[[845,5]]}},"keywords":{}}],["3150",{"_index":603,"title":{},"content":{"57":{"position":[[2179,4]]}},"keywords":{}}],["31cb65f57598",{"_index":865,"title":{},"content":{"74":{"position":[[774,14]]}},"keywords":{}}],["32",{"_index":2693,"title":{},"content":{"320":{"position":[[770,2],[1756,2],[2728,2]]}},"keywords":{}}],["32.0",{"_index":4178,"title":{},"content":{"523":{"position":[[1108,4]]},"525":{"position":[[1074,4]]}},"keywords":{}}],["325f5ac0",{"_index":607,"title":{},"content":{"57":{"position":[[2223,9]]}},"keywords":{}}],["33020f03",{"_index":3214,"title":{},"content":{"399":{"position":[[491,9]]}},"keywords":{}}],["332.0",{"_index":4140,"title":{},"content":{"519":{"position":[[3206,5]]},"521":{"position":[[3172,5]]}},"keywords":{}}],["3332529c",{"_index":3358,"title":{},"content":{"415":{"position":[[3383,8]]}},"keywords":{}}],["340",{"_index":3194,"title":{},"content":{"396":{"position":[[664,4],[728,3]]},"415":{"position":[[1078,4],[1142,3]]}},"keywords":{}}],["35",{"_index":1165,"title":{},"content":{"104":{"position":[[836,5]]},"109":{"position":[[498,6]]},"110":{"position":[[610,6]]},"111":{"position":[[1001,6]]},"112":{"position":[[822,6]]},"113":{"position":[[944,6]]},"239":{"position":[[402,5]]},"349":{"position":[[337,6]]},"367":{"position":[[203,6],[483,6],[765,6],[1046,6],[1335,6],[1622,6],[1909,6],[2191,6],[2473,6],[2761,6],[3041,6],[3321,6],[3608,6],[3890,6],[4179,6]]},"395":{"position":[[342,6]]},"415":{"position":[[116,5]]}},"keywords":{}}],["35.000018900000015ft",{"_index":3281,"title":{},"content":{"414":{"position":[[2712,20]]}},"keywords":{}}],["350.0",{"_index":4139,"title":{},"content":{"519":{"position":[[3155,5]]},"521":{"position":[[3121,5]]}},"keywords":{}}],["365c",{"_index":293,"title":{},"content":{"8":{"position":[[1521,4]]}},"keywords":{}}],["366",{"_index":4105,"title":{},"content":{"517":{"position":[[1033,4],[1071,4]]}},"keywords":{}}],["3673",{"_index":2210,"title":{},"content":{"260":{"position":[[711,4]]},"268":{"position":[[604,4]]}},"keywords":{}}],["36d8551f",{"_index":1530,"title":{},"content":{"133":{"position":[[441,9]]}},"keywords":{}}],["37",{"_index":2340,"title":{},"content":{"266":{"position":[[837,2]]}},"keywords":{}}],["3710",{"_index":712,"title":{},"content":{"63":{"position":[[1624,4]]},"64":{"position":[[491,4]]}},"keywords":{}}],["37159c45",{"_index":839,"title":{},"content":{"74":{"position":[[496,9]]}},"keywords":{}}],["3746117",{"_index":2242,"title":{},"content":{"260":{"position":[[1210,8]]}},"keywords":{}}],["38",{"_index":2718,"title":{},"content":{"320":{"position":[[2211,2]]}},"keywords":{}}],["38518.421416912104",{"_index":3000,"title":{},"content":{"361":{"position":[[2106,19]]}},"keywords":{}}],["3873.915069718003",{"_index":3275,"title":{},"content":{"414":{"position":[[1924,18]]}},"keywords":{}}],["38d313fc",{"_index":703,"title":{},"content":{"63":{"position":[[1440,9]]},"64":{"position":[[307,9]]}},"keywords":{}}],["39.71943436012731",{"_index":2488,"title":{},"content":{"288":{"position":[[1886,17]]}},"keywords":{}}],["39.71951688444436",{"_index":2490,"title":{},"content":{"288":{"position":[[1929,17]]}},"keywords":{}}],["39.72439389620628",{"_index":2486,"title":{},"content":{"288":{"position":[[1843,17],[2016,17]]}},"keywords":{}}],["39.725392361998416",{"_index":2492,"title":{},"content":{"288":{"position":[[1972,18]]}},"keywords":{}}],["39.802794365611476",{"_index":4142,"title":{},"content":{"519":{"position":[[3308,18]]},"520":{"position":[[3850,18]]},"521":{"position":[[3274,18]]},"522":{"position":[[3816,18]]},"523":{"position":[[3496,18]]},"524":{"position":[[3682,18]]},"525":{"position":[[3462,18]]},"526":{"position":[[3648,18]]}},"keywords":{}}],["39.8282",{"_index":3683,"title":{},"content":{"474":{"position":[[454,9]]}},"keywords":{}}],["39.99",{"_index":2720,"title":{},"content":{"320":{"position":[[2449,5]]}},"keywords":{}}],["3924.4365517636966",{"_index":3273,"title":{},"content":{"414":{"position":[[1802,19]]}},"keywords":{}}],["399b",{"_index":3313,"title":{},"content":{"415":{"position":[[2346,4]]}},"keywords":{}}],["39d171d7",{"_index":2259,"title":{},"content":{"260":{"position":[[1411,9]]}},"keywords":{}}],["39eba37f8847",{"_index":2248,"title":{},"content":{"260":{"position":[[1261,14]]}},"keywords":{}}],["3a9af8a08667.tif",{"_index":3297,"title":{},"content":{"415":{"position":[[1913,17]]}},"keywords":{}}],["3c7f3a16cfe0.tif",{"_index":3326,"title":{},"content":{"415":{"position":[[2594,17]]}},"keywords":{}}],["3ca535f93b46.tif",{"_index":3311,"title":{},"content":{"415":{"position":[[2251,17]]}},"keywords":{}}],["3d2689723254",{"_index":2935,"title":{},"content":{"361":{"position":[[315,13]]}},"keywords":{}}],["3e39",{"_index":1460,"title":{},"content":{"130":{"position":[[5598,4]]}},"keywords":{}}],["3e43",{"_index":3344,"title":{},"content":{"415":{"position":[[3052,4]]}},"keywords":{}}],["3f2b366f8beb",{"_index":2280,"title":{},"content":{"262":{"position":[[1150,14]]}},"keywords":{}}],["3fa85f64",{"_index":781,"title":{},"content":{"71":{"position":[[705,9]]},"78":{"position":[[707,9]]},"80":{"position":[[584,9]]}},"keywords":{}}],["3rd",{"_index":407,"title":{},"content":{"47":{"position":[[209,3]]},"226":{"position":[[209,3]]},"252":{"position":[[460,3]]},"354":{"position":[[209,3]]},"402":{"position":[[209,3]]},"493":{"position":[[102,3]]}},"keywords":{}}],["4",{"_index":1347,"title":{},"content":{"130":{"position":[[1385,1],[1553,1]]},"210":{"position":[[259,1]]},"212":{"position":[[155,1],[388,1],[647,1]]},"266":{"position":[[1924,2]]},"343":{"position":[[478,1]]},"385":{"position":[[385,1]]},"480":{"position":[[12064,2]]},"488":{"position":[[1619,1]]},"510":{"position":[[269,1]]}},"keywords":{}}],["4.51",{"_index":4183,"title":{},"content":{"523":{"position":[[2344,4]]},"525":{"position":[[2310,4]]}},"keywords":{}}],["4.926574796479164",{"_index":2964,"title":{},"content":{"361":{"position":[[1080,18]]}},"keywords":{}}],["4.93",{"_index":4127,"title":{},"content":{"519":{"position":[[2206,4]]},"521":{"position":[[2172,4]]}},"keywords":{}}],["40",{"_index":1167,"title":{},"content":{"104":{"position":[[850,3]]},"109":{"position":[[511,3]]},"110":{"position":[[623,3]]},"111":{"position":[[1014,3]]},"112":{"position":[[835,3]]},"113":{"position":[[957,3]]},"239":{"position":[[416,3]]},"320":{"position":[[1833,2]]},"349":{"position":[[350,3]]},"367":{"position":[[216,3],[496,3],[778,3],[1059,3],[1348,3],[1635,3],[1922,3],[2204,3],[2486,3],[2774,3],[3054,3],[3334,3],[3621,3],[3903,3],[4192,3]]},"395":{"position":[[355,3]]},"415":{"position":[[131,3]]},"510":{"position":[[263,2]]}},"keywords":{}}],["40.0",{"_index":4203,"title":{},"content":{"524":{"position":[[2475,4]]},"526":{"position":[[2441,4]]}},"keywords":{}}],["400",{"_index":181,"title":{},"content":{"5":{"position":[[406,3]]},"353":{"position":[[604,3]]},"459":{"position":[[86,3]]},"467":{"position":[[1142,4]]},"480":{"position":[[2129,4],[3272,4]]}},"keywords":{}}],["401",{"_index":3507,"title":{},"content":{"467":{"position":[[1301,4]]},"480":{"position":[[2211,4]]}},"keywords":{}}],["4028",{"_index":3295,"title":{},"content":{"415":{"position":[[1903,4],[2241,4]]}},"keywords":{}}],["40340.87999553387",{"_index":2962,"title":{},"content":{"361":{"position":[[1024,18]]}},"keywords":{}}],["404",{"_index":3639,"title":{},"content":{"473":{"position":[[4045,4]]}},"keywords":{}}],["404a",{"_index":649,"title":{},"content":{"59":{"position":[[2396,4]]}},"keywords":{}}],["4056",{"_index":2323,"title":{},"content":{"265":{"position":[[589,4]]}},"keywords":{}}],["4066",{"_index":900,"title":{},"content":{"78":{"position":[[949,4]]},"79":{"position":[[982,4]]},"80":{"position":[[826,4]]}},"keywords":{}}],["4074",{"_index":3345,"title":{},"content":{"415":{"position":[[3057,4]]}},"keywords":{}}],["409d",{"_index":1521,"title":{},"content":{"132":{"position":[[774,4]]},"133":{"position":[[451,4]]}},"keywords":{}}],["40bc",{"_index":2312,"title":{},"content":{"264":{"position":[[1652,4]]}},"keywords":{}}],["40db",{"_index":673,"title":{},"content":{"60":{"position":[[495,4]]},"61":{"position":[[643,4]]}},"keywords":{}}],["41.76068857977987",{"_index":2274,"title":{},"content":{"262":{"position":[[768,19]]},"263":{"position":[[679,19]]},"266":{"position":[[1041,19],[1403,19]]},"275":{"position":[[346,19],[916,19]]}},"keywords":{}}],["41.77137549568163",{"_index":2270,"title":{},"content":{"262":{"position":[[686,19],[809,18]]},"263":{"position":[[597,19],[720,18]]},"266":{"position":[[959,19],[1082,18],[1321,19],[1444,23]]},"275":{"position":[[264,19],[387,18],[834,19],[957,18]]}},"keywords":{}}],["41.77143534378164",{"_index":2272,"title":{},"content":{"262":{"position":[[727,19]]},"263":{"position":[[638,19]]},"266":{"position":[[1000,19],[1362,19]]},"275":{"position":[[305,19],[875,19]]}},"keywords":{}}],["4144",{"_index":1494,"title":{},"content":{"131":{"position":[[749,4]]}},"keywords":{}}],["414a",{"_index":2297,"title":{},"content":{"264":{"position":[[1348,4]]}},"keywords":{}}],["4152.255",{"_index":663,"title":{},"content":{"59":{"position":[[2631,9]]}},"keywords":{}}],["4158",{"_index":590,"title":{},"content":{"57":{"position":[[1882,4]]}},"keywords":{}}],["4190",{"_index":3176,"title":{},"content":{"390":{"position":[[1866,4]]},"391":{"position":[[628,4]]}},"keywords":{}}],["41ad",{"_index":2373,"title":{},"content":{"266":{"position":[[2243,4]]}},"keywords":{}}],["41ba",{"_index":3329,"title":{},"content":{"415":{"position":[[2705,4]]}},"keywords":{}}],["41c2",{"_index":3319,"title":{},"content":{"415":{"position":[[2470,4]]}},"keywords":{}}],["41f2",{"_index":1531,"title":{},"content":{"133":{"position":[[456,4]]}},"keywords":{}}],["4201",{"_index":2261,"title":{},"content":{"260":{"position":[[1426,4]]}},"keywords":{}}],["4260",{"_index":2435,"title":{},"content":{"277":{"position":[[859,4]]}},"keywords":{}}],["4280",{"_index":3365,"title":{},"content":{"415":{"position":[[3518,4]]}},"keywords":{}}],["428214",{"_index":2238,"title":{},"content":{"260":{"position":[[1078,9]]}},"keywords":{}}],["42a0",{"_index":2349,"title":{},"content":{"266":{"position":[[1675,4],[2297,4]]}},"keywords":{}}],["42c1",{"_index":857,"title":{},"content":{"74":{"position":[[692,4]]},"275":{"position":[[709,4]]}},"keywords":{}}],["42db",{"_index":2452,"title":{},"content":{"282":{"position":[[609,4]]},"283":{"position":[[387,4]]}},"keywords":{}}],["42ef",{"_index":2884,"title":{},"content":{"352":{"position":[[576,4]]}},"keywords":{}}],["4332",{"_index":1466,"title":{},"content":{"130":{"position":[[5657,4]]},"390":{"position":[[1804,4]]},"391":{"position":[[566,4]]}},"keywords":{}}],["4339",{"_index":3339,"title":{},"content":{"415":{"position":[[2944,4]]}},"keywords":{}}],["4379",{"_index":1511,"title":{},"content":{"132":{"position":[[635,4]]}},"keywords":{}}],["437b",{"_index":1500,"title":{},"content":{"131":{"position":[[794,4]]}},"keywords":{}}],["43a3",{"_index":1484,"title":{},"content":{"131":{"position":[[601,4]]}},"keywords":{}}],["43ab",{"_index":1012,"title":{},"content":{"88":{"position":[[1345,4]]}},"keywords":{}}],["43b7",{"_index":1495,"title":{},"content":{"131":{"position":[[754,4]]}},"keywords":{}}],["43b9",{"_index":1002,"title":{},"content":{"88":{"position":[[1253,4],[1838,4]]}},"keywords":{}}],["43c6",{"_index":1516,"title":{},"content":{"132":{"position":[[734,4]]}},"keywords":{}}],["43df",{"_index":1536,"title":{},"content":{"133":{"position":[[510,4]]}},"keywords":{}}],["43fe",{"_index":2233,"title":{},"content":{"260":{"position":[[995,4]]}},"keywords":{}}],["44",{"_index":2681,"title":{},"content":{"320":{"position":[[477,2]]},"510":{"position":[[315,2]]}},"keywords":{}}],["4400",{"_index":2246,"title":{},"content":{"260":{"position":[[1251,4]]}},"keywords":{}}],["442b",{"_index":705,"title":{},"content":{"63":{"position":[[1455,4]]},"64":{"position":[[322,4]]}},"keywords":{}}],["4459",{"_index":2221,"title":{},"content":{"260":{"position":[[826,4]]}},"keywords":{}}],["44a1",{"_index":3300,"title":{},"content":{"415":{"position":[[2015,4]]}},"keywords":{}}],["45",{"_index":1168,"title":{},"content":{"104":{"position":[[858,5]]},"109":{"position":[[519,6]]},"110":{"position":[[631,6]]},"111":{"position":[[1022,6]]},"112":{"position":[[843,6]]},"113":{"position":[[965,6]]},"239":{"position":[[424,5]]},"320":{"position":[[1862,2],[2149,2],[2165,2],[2180,2],[3214,2]]},"349":{"position":[[358,6]]},"367":{"position":[[224,6],[504,6],[786,6],[1067,6],[1356,6],[1643,6],[1930,6],[2212,6],[2494,6],[2782,6],[3062,6],[3342,6],[3629,6],[3911,6],[4200,6]]},"395":{"position":[[363,6]]},"415":{"position":[[140,5]]}},"keywords":{}}],["4512",{"_index":2251,"title":{},"content":{"260":{"position":[[1316,4]]}},"keywords":{}}],["4526",{"_index":2026,"title":{},"content":{"239":{"position":[[983,4]]}},"keywords":{}}],["4549",{"_index":914,"title":{},"content":{"79":{"position":[[898,4]]}},"keywords":{}}],["4560",{"_index":2027,"title":{},"content":{"239":{"position":[[988,4]]}},"keywords":{}}],["4562",{"_index":783,"title":{},"content":{"71":{"position":[[720,4]]},"78":{"position":[[722,4]]},"80":{"position":[[599,4]]}},"keywords":{}}],["4579",{"_index":2318,"title":{},"content":{"265":{"position":[[359,4]]}},"keywords":{}}],["45aa",{"_index":286,"title":{},"content":{"8":{"position":[[1461,4]]}},"keywords":{}}],["45c1",{"_index":1489,"title":{},"content":{"131":{"position":[[655,4]]}},"keywords":{}}],["45e8",{"_index":2344,"title":{},"content":{"266":{"position":[[1621,4]]}},"keywords":{}}],["45efa9d2",{"_index":3303,"title":{},"content":{"415":{"position":[[2115,8]]}},"keywords":{}}],["46",{"_index":2719,"title":{},"content":{"320":{"position":[[2223,2]]}},"keywords":{}}],["4600",{"_index":1355,"title":{},"content":{"130":{"position":[[1555,7]]}},"keywords":{}}],["4600/4630",{"_index":1348,"title":{},"content":{"130":{"position":[[1389,9]]}},"keywords":{}}],["4619",{"_index":734,"title":{},"content":{"65":{"position":[[803,4]]},"66":{"position":[[430,4]]}},"keywords":{}}],["4623",{"_index":3355,"title":{},"content":{"415":{"position":[[3285,4]]}},"keywords":{}}],["4674.771037540907",{"_index":3263,"title":{},"content":{"414":{"position":[[1263,18]]}},"keywords":{}}],["46aa",{"_index":863,"title":{},"content":{"74":{"position":[[764,4]]}},"keywords":{}}],["46cb",{"_index":2256,"title":{},"content":{"260":{"position":[[1370,4]]}},"keywords":{}}],["46f9",{"_index":615,"title":{},"content":{"57":{"position":[[2339,4]]}},"keywords":{}}],["47.775885948768021",{"_index":2514,"title":{},"content":{"292":{"position":[[609,19]]}},"keywords":{}}],["47.775917640099145",{"_index":2516,"title":{},"content":{"292":{"position":[[652,19]]}},"keywords":{}}],["47.77870013897234",{"_index":2520,"title":{},"content":{"292":{"position":[[738,18]]}},"keywords":{}}],["47.779352980393611",{"_index":2512,"title":{},"content":{"292":{"position":[[566,19],[780,19]]}},"keywords":{}}],["47.780062866210912",{"_index":2518,"title":{},"content":{"292":{"position":[[695,19]]}},"keywords":{}}],["47.99",{"_index":2675,"title":{},"content":{"320":{"position":[[298,5],[808,5],[933,5],[1038,5]]}},"keywords":{}}],["4704",{"_index":3305,"title":{},"content":{"415":{"position":[[2129,4]]}},"keywords":{}}],["475fcad3",{"_index":1519,"title":{},"content":{"132":{"position":[[759,9]]}},"keywords":{}}],["4778.532184798924",{"_index":3260,"title":{},"content":{"414":{"position":[[1144,18]]}},"keywords":{}}],["47bc",{"_index":725,"title":{},"content":{"65":{"position":[[691,4]]},"66":{"position":[[318,4]]}},"keywords":{}}],["47e8",{"_index":978,"title":{},"content":{"88":{"position":[[710,4]]}},"keywords":{}}],["47eb57865a03/harvestmoistur",{"_index":2029,"title":{},"content":{"239":{"position":[[998,28]]}},"keywords":{}}],["47f1",{"_index":2379,"title":{},"content":{"266":{"position":[[2409,4]]}},"keywords":{}}],["48",{"_index":2673,"title":{},"content":{"320":{"position":[[284,2],[1071,2],[1092,2],[1662,2],[2405,2],[3231,2]]}},"keywords":{}}],["48.94780839",{"_index":1790,"title":{},"content":{"222":{"position":[[2270,12]]}},"keywords":{}}],["48.94852019",{"_index":1788,"title":{},"content":{"222":{"position":[[2239,12]]}},"keywords":{}}],["48.95275447",{"_index":1780,"title":{},"content":{"222":{"position":[[2120,12],[2301,12]]}},"keywords":{}}],["48.95379286",{"_index":1782,"title":{},"content":{"222":{"position":[[2148,12]]}},"keywords":{}}],["48.9591836",{"_index":1784,"title":{},"content":{"222":{"position":[[2179,11]]}},"keywords":{}}],["48.96225525",{"_index":1786,"title":{},"content":{"222":{"position":[[2209,12]]}},"keywords":{}}],["480",{"_index":3196,"title":{},"content":{"396":{"position":[[716,4],[780,3]]},"415":{"position":[[1130,4],[1194,3]]}},"keywords":{}}],["4801",{"_index":654,"title":{},"content":{"59":{"position":[[2450,4]]}},"keywords":{}}],["489e",{"_index":2227,"title":{},"content":{"260":{"position":[[933,4]]}},"keywords":{}}],["48e4",{"_index":841,"title":{},"content":{"74":{"position":[[511,4]]}},"keywords":{}}],["48ea",{"_index":1054,"title":{},"content":{"89":{"position":[[979,4]]}},"keywords":{}}],["49.8",{"_index":2686,"title":{},"content":{"320":{"position":[[598,4]]}},"keywords":{}}],["490ccddb06c4",{"_index":611,"title":{},"content":{"57":{"position":[[2248,14]]}},"keywords":{}}],["490d",{"_index":604,"title":{},"content":{"57":{"position":[[2184,4]]}},"keywords":{}}],["4922",{"_index":2216,"title":{},"content":{"260":{"position":[[770,4]]}},"keywords":{}}],["4936",{"_index":2355,"title":{},"content":{"266":{"position":[[1785,4]]}},"keywords":{}}],["4951",{"_index":907,"title":{},"content":{"79":{"position":[[747,4]]}},"keywords":{}}],["4988",{"_index":2284,"title":{},"content":{"262":{"position":[[1238,4]]}},"keywords":{}}],["498b",{"_index":856,"title":{},"content":{"74":{"position":[[687,4]]}},"keywords":{}}],["4999",{"_index":2290,"title":{},"content":{"262":{"position":[[1485,4]]}},"keywords":{}}],["49ab",{"_index":3370,"title":{},"content":{"415":{"position":[[3632,4]]}},"keywords":{}}],["49b9",{"_index":579,"title":{},"content":{"57":{"position":[[1727,4]]}},"keywords":{}}],["49c2",{"_index":584,"title":{},"content":{"57":{"position":[[1781,4]]}},"keywords":{}}],["49e1",{"_index":683,"title":{},"content":{"60":{"position":[[686,4]]},"61":{"position":[[837,4]]}},"keywords":{}}],["49e9",{"_index":2879,"title":{},"content":{"352":{"position":[[536,4]]}},"keywords":{}}],["4a0df818ab07",{"_index":727,"title":{},"content":{"65":{"position":[[701,14]]},"66":{"position":[[328,14]]}},"keywords":{}}],["4a75",{"_index":3175,"title":{},"content":{"390":{"position":[[1861,4]]},"391":{"position":[[623,4]]}},"keywords":{}}],["4a90",{"_index":2365,"title":{},"content":{"266":{"position":[[2023,4]]}},"keywords":{}}],["4a9c",{"_index":1506,"title":{},"content":{"132":{"position":[[581,4]]}},"keywords":{}}],["4ab8",{"_index":733,"title":{},"content":{"65":{"position":[[798,4]]},"66":{"position":[[425,4]]}},"keywords":{}}],["4ac6",{"_index":3333,"title":{},"content":{"415":{"position":[[2820,4]]}},"keywords":{}}],["4acf",{"_index":659,"title":{},"content":{"59":{"position":[[2503,4]]}},"keywords":{}}],["4b0f",{"_index":3167,"title":{},"content":{"390":{"position":[[1764,4]]},"391":{"position":[[526,4]]}},"keywords":{}}],["4b2d",{"_index":1444,"title":{},"content":{"130":{"position":[[4736,4]]}},"keywords":{}}],["4b4a",{"_index":609,"title":{},"content":{"57":{"position":[[2238,4]]}},"keywords":{}}],["4b96",{"_index":3154,"title":{},"content":{"390":{"position":[[1497,4]]},"391":{"position":[[259,4]]}},"keywords":{}}],["4ba6",{"_index":3334,"title":{},"content":{"415":{"position":[[2825,4]]}},"keywords":{}}],["4bb2",{"_index":3159,"title":{},"content":{"390":{"position":[[1579,4]]},"391":{"position":[[341,4]]}},"keywords":{}}],["4bff",{"_index":2307,"title":{},"content":{"264":{"position":[[1578,4]]}},"keywords":{}}],["4c0f",{"_index":3216,"title":{},"content":{"399":{"position":[[506,4]]}},"keywords":{}}],["4c13",{"_index":3360,"title":{},"content":{"415":{"position":[[3397,4]]}},"keywords":{}}],["4c1f",{"_index":840,"title":{},"content":{"74":{"position":[[506,4]]}},"keywords":{}}],["4c40",{"_index":2360,"title":{},"content":{"266":{"position":[[1961,4]]}},"keywords":{}}],["4c5f",{"_index":1461,"title":{},"content":{"130":{"position":[[5603,4]]}},"keywords":{}}],["4c6d",{"_index":2423,"title":{},"content":{"277":{"position":[[719,4]]}},"keywords":{}}],["4c6f",{"_index":3350,"title":{},"content":{"415":{"position":[[3176,4]]}},"keywords":{}}],["4cd7",{"_index":2875,"title":{},"content":{"352":{"position":[[496,4]]}},"keywords":{}}],["4d13",{"_index":2933,"title":{},"content":{"361":{"position":[[305,4]]}},"keywords":{}}],["4d1e",{"_index":2211,"title":{},"content":{"260":{"position":[[716,4]]},"268":{"position":[[609,4]]}},"keywords":{}}],["4d34",{"_index":2928,"title":{},"content":{"361":{"position":[[225,4]]}},"keywords":{}}],["4d4b",{"_index":1439,"title":{},"content":{"130":{"position":[[4682,4]]}},"keywords":{}}],["4d7f",{"_index":3211,"title":{},"content":{"399":{"position":[[406,4]]}},"keywords":{}}],["4d83",{"_index":2328,"title":{},"content":{"265":{"position":[[663,4]]}},"keywords":{}}],["4d85",{"_index":2430,"title":{},"content":{"277":{"position":[[805,4]]}},"keywords":{}}],["4d97",{"_index":816,"title":{},"content":{"72":{"position":[[1009,4]]},"73":{"position":[[294,4]]}},"keywords":{}}],["4d9b0139",{"_index":1010,"title":{},"content":{"88":{"position":[[1330,9]]}},"keywords":{}}],["4dc4",{"_index":3153,"title":{},"content":{"390":{"position":[[1492,4]]},"391":{"position":[[254,4]]}},"keywords":{}}],["4e03",{"_index":3314,"title":{},"content":{"415":{"position":[[2351,4]]}},"keywords":{}}],["4e1f",{"_index":848,"title":{},"content":{"74":{"position":[[579,4]]}},"keywords":{}}],["4e33",{"_index":2944,"title":{},"content":{"361":{"position":[[602,4]]}},"keywords":{}}],["4e53",{"_index":1007,"title":{},"content":{"88":{"position":[[1293,4],[1878,4]]}},"keywords":{}}],["4f0b",{"_index":798,"title":{},"content":{"72":{"position":[[596,4]]}},"keywords":{}}],["4f47ffab0659",{"_index":2223,"title":{},"content":{"260":{"position":[[836,13]]}},"keywords":{}}],["4f64",{"_index":3324,"title":{},"content":{"415":{"position":[[2584,4]]}},"keywords":{}}],["4f7d",{"_index":713,"title":{},"content":{"63":{"position":[[1629,4]]},"64":{"position":[[496,4]]}},"keywords":{}}],["4f88",{"_index":653,"title":{},"content":{"59":{"position":[[2445,4]]}},"keywords":{}}],["4f8f",{"_index":678,"title":{},"content":{"60":{"position":[[596,4]]},"61":{"position":[[747,4]]}},"keywords":{}}],["4fa9",{"_index":983,"title":{},"content":{"88":{"position":[[764,4],[1399,4]]}},"keywords":{}}],["4fb687ba4c2",{"_index":2325,"title":{},"content":{"265":{"position":[[599,14]]}},"keywords":{}}],["4fc2",{"_index":2278,"title":{},"content":{"262":{"position":[[1140,4]]}},"keywords":{}}],["5",{"_index":931,"title":{},"content":{"82":{"position":[[873,2]]},"83":{"position":[[695,2]]},"105":{"position":[[2280,1]]},"210":{"position":[[217,1],[263,2]]},"212":{"position":[[168,1],[401,1],[669,1]]},"266":{"position":[[833,1]]},"385":{"position":[[472,1]]},"451":{"position":[[453,1]]},"480":{"position":[[12083,2]]},"508":{"position":[[88,1]]},"510":{"position":[[356,1]]},"512":{"position":[[185,1],[270,1]]},"514":{"position":[[158,1],[236,1]]},"523":{"position":[[289,1],[374,1]]},"525":{"position":[[278,1],[363,1]]}},"keywords":{}}],["5.0",{"_index":4205,"title":{},"content":{"524":{"position":[[2652,3]]},"526":{"position":[[2618,3]]}},"keywords":{}}],["5.6338592683470505",{"_index":3008,"title":{},"content":{"361":{"position":[[2885,19]]}},"keywords":{}}],["5.7",{"_index":4166,"title":{},"content":{"520":{"position":[[3589,3]]},"522":{"position":[[3555,3]]}},"keywords":{}}],["5.8",{"_index":4155,"title":{},"content":{"520":{"position":[[2329,3]]},"522":{"position":[[2295,3]]}},"keywords":{}}],["5.859062698772619",{"_index":2974,"title":{},"content":{"361":{"position":[[1394,18]]}},"keywords":{}}],["50",{"_index":2337,"title":{},"content":{"266":{"position":[[707,3],[755,3],[842,2]]},"320":{"position":[[487,2],[1642,2],[2633,2],[2697,2]]},"396":{"position":[[511,3],[573,2]]},"415":{"position":[[925,3],[987,2]]}},"keywords":{}}],["500mb",{"_index":1046,"title":{},"content":{"89":{"position":[[662,6]]}},"keywords":{}}],["502",{"_index":268,"title":{},"content":{"8":{"position":[[420,4],[905,4]]}},"keywords":{}}],["5075.145",{"_index":668,"title":{},"content":{"59":{"position":[[2870,9]]}},"keywords":{}}],["50k",{"_index":1770,"title":{},"content":{"222":{"position":[[1875,3]]}},"keywords":{}}],["51.0",{"_index":4159,"title":{},"content":{"520":{"position":[[2926,4]]},"522":{"position":[[2892,4]]}},"keywords":{}}],["512",{"_index":3696,"title":{},"content":{"474":{"position":[[912,4]]}},"keywords":{}}],["52.01",{"_index":2682,"title":{},"content":{"320":{"position":[[507,5],[1782,5],[2038,5],[2065,5],[2086,5]]}},"keywords":{}}],["52bc",{"_index":1438,"title":{},"content":{"130":{"position":[[4677,4]]}},"keywords":{}}],["53d5296888aa.tif",{"_index":3357,"title":{},"content":{"415":{"position":[[3295,17]]}},"keywords":{}}],["53e6206ce971",{"_index":3156,"title":{},"content":{"390":{"position":[[1507,14]]},"391":{"position":[[269,14]]}},"keywords":{}}],["54.38",{"_index":2706,"title":{},"content":{"320":{"position":[[1540,5]]}},"keywords":{}}],["55",{"_index":1170,"title":{},"content":{"104":{"position":[[881,5]]},"109":{"position":[[541,6]]},"110":{"position":[[653,6]]},"111":{"position":[[1044,6]]},"112":{"position":[[865,6]]},"113":{"position":[[987,6]]},"239":{"position":[[447,5]]},"320":{"position":[[1704,2],[2711,2]]},"349":{"position":[[380,6]]},"367":{"position":[[246,6],[526,6],[808,6],[1089,6],[1378,6],[1665,6],[1952,6],[2234,6],[2516,6],[2804,6],[3084,6],[3364,6],[3651,6],[3933,6],[4222,6]]},"395":{"position":[[385,6]]},"415":{"position":[[165,5]]},"510":{"position":[[360,2]]}},"keywords":{}}],["55a6",{"_index":3309,"title":{},"content":{"415":{"position":[[2236,4]]}},"keywords":{}}],["55b9",{"_index":2306,"title":{},"content":{"264":{"position":[[1573,4]]}},"keywords":{}}],["56",{"_index":2672,"title":{},"content":{"320":{"position":[[274,2],[561,2],[609,2],[828,2],[907,2],[1574,2],[1587,2],[1909,2],[2198,2],[2370,2],[2419,2],[3245,2]]}},"keywords":{}}],["563.8",{"_index":4150,"title":{},"content":{"520":{"position":[[1975,5]]},"522":{"position":[[1941,5]]},"524":{"position":[[1649,5]]},"526":{"position":[[1615,5]]}},"keywords":{}}],["57.98",{"_index":2696,"title":{},"content":{"320":{"position":[[958,5]]}},"keywords":{}}],["570",{"_index":3198,"title":{},"content":{"396":{"position":[[768,4]]},"415":{"position":[[1182,4]]}},"keywords":{}}],["5717",{"_index":782,"title":{},"content":{"71":{"position":[[715,4]]},"78":{"position":[[717,4]]},"80":{"position":[[594,4]]}},"keywords":{}}],["57e4",{"_index":2322,"title":{},"content":{"265":{"position":[[584,4]]}},"keywords":{}}],["58.9",{"_index":3253,"title":{},"content":{"414":{"position":[[738,5]]}},"keywords":{}}],["580a",{"_index":2876,"title":{},"content":{"352":{"position":[[501,4]]}},"keywords":{}}],["5853",{"_index":3323,"title":{},"content":{"415":{"position":[[2579,4]]}},"keywords":{}}],["58800d61",{"_index":2214,"title":{},"content":{"260":{"position":[[755,9]]}},"keywords":{}}],["5889",{"_index":3215,"title":{},"content":{"399":{"position":[[501,4]]}},"keywords":{}}],["58d20ae27355",{"_index":661,"title":{},"content":{"59":{"position":[[2513,14]]}},"keywords":{}}],["59.13738317757009",{"_index":3252,"title":{},"content":{"414":{"position":[[712,18]]}},"keywords":{}}],["59.6",{"_index":3254,"title":{},"content":{"414":{"position":[[751,5]]}},"keywords":{}}],["592da6306df",{"_index":1491,"title":{},"content":{"131":{"position":[[665,14]]}},"keywords":{}}],["59964340db4d",{"_index":2351,"title":{},"content":{"266":{"position":[[1685,14],[2307,14]]}},"keywords":{}}],["5a04",{"_index":2883,"title":{},"content":{"352":{"position":[[571,4]]}},"keywords":{}}],["5ac3",{"_index":732,"title":{},"content":{"65":{"position":[[793,4]]},"66":{"position":[[420,4]]}},"keywords":{}}],["5c8fdb34",{"_index":3152,"title":{},"content":{"390":{"position":[[1482,9]]},"391":{"position":[[244,9]]}},"keywords":{}}],["5d027967",{"_index":3337,"title":{},"content":{"415":{"position":[[2930,8]]}},"keywords":{}}],["5d48add8eed4",{"_index":3213,"title":{},"content":{"399":{"position":[[416,14]]}},"keywords":{}}],["5d55eea1dc09",{"_index":2346,"title":{},"content":{"266":{"position":[[1631,14]]}},"keywords":{}}],["5ded9409",{"_index":1509,"title":{},"content":{"132":{"position":[[620,9]]}},"keywords":{}}],["5f3637098475",{"_index":2286,"title":{},"content":{"262":{"position":[[1248,13]]}},"keywords":{}}],["5mb",{"_index":1047,"title":{},"content":{"89":{"position":[[710,4]]}},"keywords":{}}],["6",{"_index":1654,"title":{},"content":{"212":{"position":[[182,1],[415,1],[691,1]]},"229":{"position":[[580,2]]},"320":{"position":[[806,1]]},"385":{"position":[[609,1]]},"480":{"position":[[12093,2]]},"510":{"position":[[282,1],[334,1],[445,1]]}},"keywords":{}}],["6.3555588722229",{"_index":3247,"title":{},"content":{"414":{"position":[[505,16]]}},"keywords":{}}],["6.389999866485596",{"_index":2966,"title":{},"content":{"361":{"position":[[1132,18]]}},"keywords":{}}],["6.4",{"_index":4212,"title":{},"content":{"524":{"position":[[3420,3]]},"526":{"position":[[3386,3]]}},"keywords":{}}],["60",{"_index":1641,"title":{},"content":{"210":{"position":[[184,2]]},"320":{"position":[[319,2],[355,2],[464,2],[524,2],[553,2],[653,2],[687,2],[760,2],[1056,2],[1121,2],[1138,2],[1149,2],[1526,2],[1553,2],[1632,2],[1870,2],[1885,2],[1936,2],[2026,2],[2385,2],[2435,2],[2759,2],[2787,2],[2815,2],[3125,2],[3261,2]]}},"keywords":{}}],["60.01",{"_index":2679,"title":{},"content":{"320":{"position":[[404,5],[451,5],[865,5],[888,5],[984,5],[1009,5],[1324,5],[1352,5],[1382,5],[1412,5],[1453,5],[1474,5],[1493,5],[1512,5],[1690,5],[1728,5],[1848,5],[1958,5],[1984,5],[2010,5],[2268,5],[2296,5],[2326,5],[2356,5],[2847,5],[2882,5],[2919,5],[2956,5],[2991,5],[3026,5],[3063,5],[3100,5],[3142,5],[3160,5],[3288,5]]}},"keywords":{}}],["60.98",{"_index":2684,"title":{},"content":{"320":{"position":[[540,5]]}},"keywords":{}}],["61.0",{"_index":4208,"title":{},"content":{"524":{"position":[[3068,4]]},"526":{"position":[[3034,4]]}},"keywords":{}}],["61.99",{"_index":2713,"title":{},"content":{"320":{"position":[[1745,5]]}},"keywords":{}}],["617b",{"_index":2255,"title":{},"content":{"260":{"position":[[1365,4]]}},"keywords":{}}],["61820.13638528271",{"_index":3251,"title":{},"content":{"414":{"position":[[655,18],[2381,18]]}},"keywords":{}}],["6185",{"_index":682,"title":{},"content":{"60":{"position":[[681,4]]},"61":{"position":[[832,4]]}},"keywords":{}}],["62.0",{"_index":4209,"title":{},"content":{"524":{"position":[[3118,4]]},"526":{"position":[[3084,4]]}},"keywords":{}}],["62719",{"_index":830,"title":{},"content":{"73":{"position":[[353,6]]}},"keywords":{}}],["62cf2326",{"_index":2358,"title":{},"content":{"266":{"position":[[1946,9]]}},"keywords":{}}],["6378137.0",{"_index":3852,"title":{},"content":{"480":{"position":[[11742,10],[11812,12],[11878,10],[11948,12]]}},"keywords":{}}],["64",{"_index":144,"title":{},"content":{"3":{"position":[[671,3],[996,2]]}},"keywords":{}}],["641e3698da5d",{"_index":1486,"title":{},"content":{"131":{"position":[[611,14]]}},"keywords":{}}],["642.3",{"_index":4151,"title":{},"content":{"520":{"position":[[2026,5]]},"522":{"position":[[1992,5]]},"524":{"position":[[1700,5]]},"526":{"position":[[1666,5]]}},"keywords":{}}],["6449a37470fa",{"_index":3173,"title":{},"content":{"390":{"position":[[1814,13]]},"391":{"position":[[576,13]]}},"keywords":{}}],["64651.pktriot.net",{"_index":283,"title":{},"content":{"8":{"position":[[1374,20],[1699,19]]}},"keywords":{}}],["6488",{"_index":3338,"title":{},"content":{"415":{"position":[[2939,4]]}},"keywords":{}}],["65",{"_index":1172,"title":{},"content":{"104":{"position":[[904,5]]},"109":{"position":[[563,6]]},"110":{"position":[[675,6]]},"111":{"position":[[1066,6]]},"112":{"position":[[887,6]]},"113":{"position":[[1009,6]]},"239":{"position":[[470,5]]},"349":{"position":[[402,6]]},"367":{"position":[[268,6],[548,6],[830,6],[1111,6],[1400,6],[1687,6],[1974,6],[2256,6],[2538,6],[2826,6],[3106,6],[3386,6],[3673,6],[3955,6],[4244,6]]},"395":{"position":[[407,6]]},"415":{"position":[[190,5]]}},"keywords":{}}],["654321",{"_index":618,"title":{},"content":{"57":{"position":[[2390,9]]},"60":{"position":[[647,9]]},"61":{"position":[[798,9]]}},"keywords":{}}],["6595418e",{"_index":2433,"title":{},"content":{"277":{"position":[[844,9]]}},"keywords":{}}],["659c7f7350d6",{"_index":2314,"title":{},"content":{"264":{"position":[[1662,13]]}},"keywords":{}}],["67.2",{"_index":2676,"title":{},"content":{"320":{"position":[[333,4]]}},"keywords":{}}],["6785ddab6e1d",{"_index":1446,"title":{},"content":{"130":{"position":[[4746,14]]}},"keywords":{}}],["680ff073",{"_index":905,"title":{},"content":{"79":{"position":[[732,9]]}},"keywords":{}}],["682d",{"_index":913,"title":{},"content":{"79":{"position":[[893,4]]}},"keywords":{}}],["687.8289538734305",{"_index":2987,"title":{},"content":{"361":{"position":[[1750,18]]}},"keywords":{}}],["68c354f2",{"_index":2249,"title":{},"content":{"260":{"position":[[1301,9]]}},"keywords":{}}],["69570599",{"_index":3368,"title":{},"content":{"415":{"position":[[3618,8]]}},"keywords":{}}],["696b5df6",{"_index":2931,"title":{},"content":{"361":{"position":[[290,9]]}},"keywords":{}}],["69707.74072725822",{"_index":2948,"title":{},"content":{"361":{"position":[[730,18],[2712,18]]}},"keywords":{}}],["69fe",{"_index":292,"title":{},"content":{"8":{"position":[[1516,4]]}},"keywords":{}}],["6a84",{"_index":1505,"title":{},"content":{"132":{"position":[[576,4]]}},"keywords":{}}],["6c0a5937c774",{"_index":1538,"title":{},"content":{"133":{"position":[[520,14]]}},"keywords":{}}],["6c57",{"_index":608,"title":{},"content":{"57":{"position":[[2233,4]]}},"keywords":{}}],["6d038c87d87d.tif",{"_index":3331,"title":{},"content":{"415":{"position":[[2715,17]]}},"keywords":{}}],["6d2a",{"_index":896,"title":{},"content":{"78":{"position":[[865,4]]},"79":{"position":[[822,4]]},"80":{"position":[[742,4]]}},"keywords":{}}],["6f86",{"_index":3318,"title":{},"content":{"415":{"position":[[2465,4]]}},"keywords":{}}],["6row",{"_index":3018,"title":{},"content":{"361":{"position":[[3248,6]]}},"keywords":{}}],["7",{"_index":1655,"title":{},"content":{"212":{"position":[[193,1],[426,1],[708,1]]},"396":{"position":[[1027,1]]},"415":{"position":[[637,1]]},"510":{"position":[[321,1]]},"513":{"position":[[183,1],[205,1],[211,1]]},"515":{"position":[[755,2],[758,1]]},"524":{"position":[[944,3],[1101,1]]},"526":{"position":[[910,3],[1067,1]]}},"keywords":{}}],["7.38",{"_index":2694,"title":{},"content":{"320":{"position":[[785,4]]}},"keywords":{}}],["7.5",{"_index":4016,"title":{},"content":{"510":{"position":[[150,3]]}},"keywords":{}}],["7.7",{"_index":4211,"title":{},"content":{"524":{"position":[[3371,3]]},"526":{"position":[[3337,3]]}},"keywords":{}}],["70",{"_index":2725,"title":{},"content":{"320":{"position":[[2615,2]]}},"keywords":{}}],["70098db365c9.tif",{"_index":3347,"title":{},"content":{"415":{"position":[[3067,17]]}},"keywords":{}}],["7010",{"_index":3015,"title":{},"content":{"361":{"position":[[3139,6]]}},"keywords":{}}],["703107930193",{"_index":715,"title":{},"content":{"63":{"position":[[1639,14]]},"64":{"position":[[506,14]]}},"keywords":{}}],["71.85",{"_index":2702,"title":{},"content":{"320":{"position":[[1194,5]]}},"keywords":{}}],["71412.21554367829",{"_index":3259,"title":{},"content":{"414":{"position":[[1082,18],[2566,18]]}},"keywords":{}}],["72.0",{"_index":4168,"title":{},"content":{"520":{"position":[[3746,4]]},"522":{"position":[[3712,4]]}},"keywords":{}}],["720.3728570631048",{"_index":2996,"title":{},"content":{"361":{"position":[[1988,18]]}},"keywords":{}}],["724",{"_index":831,"title":{},"content":{"73":{"position":[[360,5]]}},"keywords":{}}],["72494.18277191388",{"_index":3002,"title":{},"content":{"361":{"position":[[2172,18],[2346,18]]}},"keywords":{}}],["728f",{"_index":2226,"title":{},"content":{"260":{"position":[[928,4]]}},"keywords":{}}],["72997.28000000014",{"_index":3257,"title":{},"content":{"414":{"position":[[937,18],[2199,18]]}},"keywords":{}}],["74.66",{"_index":2721,"title":{},"content":{"320":{"position":[[2466,5]]}},"keywords":{}}],["74.83762110788625",{"_index":3039,"title":{},"content":{"364":{"position":[[328,18]]}},"keywords":{}}],["74840f7e1ea8",{"_index":581,"title":{},"content":{"57":{"position":[[1737,14]]}},"keywords":{}}],["7494c90e",{"_index":3157,"title":{},"content":{"390":{"position":[[1564,9]]},"391":{"position":[[326,9]]}},"keywords":{}}],["74d5aeb6",{"_index":1514,"title":{},"content":{"132":{"position":[[719,9]]}},"keywords":{}}],["74edbd2ca53",{"_index":3169,"title":{},"content":{"390":{"position":[[1774,14]]},"391":{"position":[[536,14]]}},"keywords":{}}],["75",{"_index":1174,"title":{},"content":{"104":{"position":[[926,5]]},"109":{"position":[[583,6]]},"110":{"position":[[695,6]]},"111":{"position":[[1086,6]]},"112":{"position":[[907,6]]},"113":{"position":[[1029,6]]},"239":{"position":[[492,5]]},"266":{"position":[[847,2]]},"349":{"position":[[423,6]]},"367":{"position":[[288,6],[568,6],[850,6],[1131,6],[1420,6],[1707,6],[1994,6],[2276,6],[2558,6],[2846,6],[3126,6],[3406,6],[3693,6],[3975,6],[4264,6]]},"395":{"position":[[428,6]]},"415":{"position":[[213,5]]}},"keywords":{}}],["75.0",{"_index":4160,"title":{},"content":{"520":{"position":[[3237,4]]},"522":{"position":[[3203,4]]}},"keywords":{}}],["750",{"_index":1408,"title":{},"content":{"130":{"position":[[2892,4],[3059,4]]}},"keywords":{}}],["75127023",{"_index":2316,"title":{},"content":{"265":{"position":[[344,9]]}},"keywords":{}}],["759d1f68962e30ea78f40025c8b64972",{"_index":1016,"title":{},"content":{"88":{"position":[[1678,35]]}},"keywords":{}}],["759e1b62",{"_index":3170,"title":{},"content":{"390":{"position":[[1789,9]]},"391":{"position":[[551,9]]}},"keywords":{}}],["75eb",{"_index":3294,"title":{},"content":{"415":{"position":[[1898,4]]}},"keywords":{}}],["75f362b4",{"_index":613,"title":{},"content":{"57":{"position":[[2324,9]]}},"keywords":{}}],["76f1",{"_index":3369,"title":{},"content":{"415":{"position":[[3627,4]]}},"keywords":{}}],["77.69",{"_index":2685,"title":{},"content":{"320":{"position":[[580,5]]}},"keywords":{}}],["77.91285062568178",{"_index":3274,"title":{},"content":{"414":{"position":[[1870,18]]}},"keywords":{}}],["7740ce52",{"_index":2342,"title":{},"content":{"266":{"position":[[1606,9]]}},"keywords":{}}],["7788d6aa1211",{"_index":685,"title":{},"content":{"60":{"position":[[696,14]]},"61":{"position":[[847,14]]}},"keywords":{}}],["79.64220307998207",{"_index":3271,"title":{},"content":{"414":{"position":[[1748,18]]}},"keywords":{}}],["7a7e2c03a91d",{"_index":3218,"title":{},"content":{"399":{"position":[[516,13]]}},"keywords":{}}],["7ad222843465",{"_index":2881,"title":{},"content":{"352":{"position":[[546,14]]}},"keywords":{}}],["7b2d",{"_index":658,"title":{},"content":{"59":{"position":[[2498,4]]}},"keywords":{}}],["7b525b72",{"_index":2926,"title":{},"content":{"361":{"position":[[210,9]]}},"keywords":{}}],["7ba6",{"_index":3328,"title":{},"content":{"415":{"position":[[2700,4]]}},"keywords":{}}],["7bf7",{"_index":583,"title":{},"content":{"57":{"position":[[1776,4]]}},"keywords":{}}],["7d85c556",{"_index":796,"title":{},"content":{"72":{"position":[[581,9]]}},"keywords":{}}],["7df443779af8.tif",{"_index":3367,"title":{},"content":{"415":{"position":[[3528,17]]}},"keywords":{}}],["7e75",{"_index":2232,"title":{},"content":{"260":{"position":[[990,4]]}},"keywords":{}}],["7e9b",{"_index":724,"title":{},"content":{"65":{"position":[[686,4]]},"66":{"position":[[313,4]]}},"keywords":{}}],["7f13",{"_index":2296,"title":{},"content":{"264":{"position":[[1343,4]]}},"keywords":{}}],["7f2a",{"_index":2402,"title":{},"content":{"269":{"position":[[718,4]]}},"keywords":{}}],["7f9977f2751d.tif",{"_index":3352,"title":{},"content":{"415":{"position":[[3186,17]]}},"keywords":{}}],["7fb70242",{"_index":855,"title":{},"content":{"74":{"position":[[677,9]]}},"keywords":{}}],["7ff746c6f5f06fc25b46420328402bed",{"_index":995,"title":{},"content":{"88":{"position":[[1093,35]]}},"keywords":{}}],["8",{"_index":153,"title":{},"content":{"3":{"position":[[913,4]]},"212":{"position":[[209,1],[442,1],[730,1]]},"320":{"position":[[2214,1]]},"480":{"position":[[7876,3],[8007,3]]}},"keywords":{}}],["8.225217",{"_index":883,"title":{},"content":{"76":{"position":[[473,8]]}},"keywords":{}}],["80",{"_index":3544,"title":{},"content":{"467":{"position":[[4589,4],[4609,3]]}},"keywords":{}}],["80.0",{"_index":4161,"title":{},"content":{"520":{"position":[[3287,4]]},"522":{"position":[[3253,4]]}},"keywords":{}}],["80.87",{"_index":2722,"title":{},"content":{"320":{"position":[[2483,5]]}},"keywords":{}}],["8000001",{"_index":3284,"title":{},"content":{"414":{"position":[[2844,10]]}},"keywords":{}}],["805e",{"_index":2313,"title":{},"content":{"264":{"position":[[1657,4]]}},"keywords":{}}],["8067",{"_index":901,"title":{},"content":{"78":{"position":[[954,4]]},"79":{"position":[[987,4]]},"80":{"position":[[831,4]]}},"keywords":{}}],["80bb",{"_index":2929,"title":{},"content":{"361":{"position":[[230,4]]}},"keywords":{}}],["81",{"_index":4003,"title":{},"content":{"509":{"position":[[235,2]]},"511":{"position":[[797,2]]},"520":{"position":[[1754,4]]},"522":{"position":[[1720,4]]}},"keywords":{}}],["810b1475",{"_index":1498,"title":{},"content":{"131":{"position":[[779,9]]}},"keywords":{}}],["810d",{"_index":2424,"title":{},"content":{"277":{"position":[[724,4]]}},"keywords":{}}],["8120",{"_index":3283,"title":{},"content":{"414":{"position":[[2802,6]]}},"keywords":{}}],["816f",{"_index":2252,"title":{},"content":{"260":{"position":[[1321,4]]}},"keywords":{}}],["8197",{"_index":3310,"title":{},"content":{"415":{"position":[[2246,4]]}},"keywords":{}}],["81bf",{"_index":2262,"title":{},"content":{"260":{"position":[[1431,4]]}},"keywords":{}}],["81ffe756",{"_index":814,"title":{},"content":{"72":{"position":[[994,9]]},"73":{"position":[[279,9]]}},"keywords":{}}],["82.15585588937653",{"_index":2999,"title":{},"content":{"361":{"position":[[2080,18]]}},"keywords":{}}],["8227260",{"_index":3016,"title":{},"content":{"361":{"position":[[3181,10]]}},"keywords":{}}],["8248c5e2",{"_index":3322,"title":{},"content":{"415":{"position":[[2570,8]]}},"keywords":{}}],["82725746",{"_index":602,"title":{},"content":{"57":{"position":[[2169,9]]}},"keywords":{}}],["8348",{"_index":3351,"title":{},"content":{"415":{"position":[[3181,4]]}},"keywords":{}}],["83a1",{"_index":1445,"title":{},"content":{"130":{"position":[[4741,4]]}},"keywords":{}}],["83ad",{"_index":3296,"title":{},"content":{"415":{"position":[[1908,4]]}},"keywords":{}}],["850c",{"_index":849,"title":{},"content":{"74":{"position":[[584,4]]}},"keywords":{}}],["8525",{"_index":2359,"title":{},"content":{"266":{"position":[[1956,4]]}},"keywords":{}}],["8601",{"_index":548,"title":{},"content":{"57":{"position":[[522,4],[615,4],[706,4]]},"59":{"position":[[374,4],[511,4],[602,4],[697,4],[788,4],[833,4],[940,4],[1045,4],[1148,4]]},"63":{"position":[[372,4],[446,4]]},"220":{"position":[[442,4],[514,4],[602,4],[700,4]]},"264":{"position":[[729,4],[811,4]]},"346":{"position":[[564,4],[636,4],[708,4],[778,4]]},"357":{"position":[[542,4],[672,4]]},"365":{"position":[[134,4]]},"390":{"position":[[345,4],[417,4],[487,4]]},"457":{"position":[[25,4]]}},"keywords":{}}],["8632d5c23616",{"_index":289,"title":{},"content":{"8":{"position":[[1476,15]]}},"keywords":{}}],["8652951",{"_index":1448,"title":{},"content":{"130":{"position":[[4796,8],[5717,8]]},"133":{"position":[[571,8]]}},"keywords":{}}],["8658",{"_index":1501,"title":{},"content":{"131":{"position":[[799,4]]}},"keywords":{}}],["8685",{"_index":1003,"title":{},"content":{"88":{"position":[[1258,4],[1843,4]]}},"keywords":{}}],["86fb8bea",{"_index":1052,"title":{},"content":{"89":{"position":[[964,9]]}},"keywords":{}}],["87.79542055062868",{"_index":2961,"title":{},"content":{"361":{"position":[[998,18]]}},"keywords":{}}],["873300016",{"_index":2448,"title":{},"content":{"282":{"position":[[550,10]]},"283":{"position":[[328,10]]}},"keywords":{}}],["873c",{"_index":984,"title":{},"content":{"88":{"position":[[769,4],[1404,4]]}},"keywords":{}}],["8742",{"_index":3320,"title":{},"content":{"415":{"position":[[2475,4]]}},"keywords":{}}],["877a",{"_index":2279,"title":{},"content":{"262":{"position":[[1145,4]]}},"keywords":{}}],["89.64355775454169",{"_index":4141,"title":{},"content":{"519":{"position":[[3289,18]]},"520":{"position":[[3831,18]]},"521":{"position":[[3255,18]]},"522":{"position":[[3797,18]]},"523":{"position":[[3477,18]]},"524":{"position":[[3663,18]]},"525":{"position":[[3443,18]]},"526":{"position":[[3629,18]]}},"keywords":{}}],["89.7978687286377,40.47569704893722",{"_index":3025,"title":{},"content":{"361":{"position":[[3601,36]]},"414":{"position":[[3363,36]]}},"keywords":{}}],["89.79797601699828,40.472709973879255",{"_index":3024,"title":{},"content":{"361":{"position":[[3560,38]]},"414":{"position":[[3322,38]]}},"keywords":{}}],["89.80080842971802,40.47068586935202",{"_index":3023,"title":{},"content":{"361":{"position":[[3520,37]]},"414":{"position":[[3282,37]]}},"keywords":{}}],["89.80117321014404,40.47808008455794",{"_index":3026,"title":{},"content":{"361":{"position":[[3640,37]]},"414":{"position":[[3402,37]]}},"keywords":{}}],["89.80434894561768,40.47791686563837",{"_index":3019,"title":{},"content":{"361":{"position":[[3361,37],[3680,36]]},"414":{"position":[[3123,37],[3442,36]]}},"keywords":{}}],["89.80475664138794,40.47070219301965",{"_index":3022,"title":{},"content":{"361":{"position":[[3480,37]]},"414":{"position":[[3242,37]]}},"keywords":{}}],["89.80746030807495,40.47302011353734",{"_index":3021,"title":{},"content":{"361":{"position":[[3440,37]]},"414":{"position":[[3202,37]]}},"keywords":{}}],["89.80756759643555,40.4757623387113",{"_index":3020,"title":{},"content":{"361":{"position":[[3401,36]]},"414":{"position":[[3163,36]]}},"keywords":{}}],["89.83928203582764",{"_index":2489,"title":{},"content":{"288":{"position":[[1910,18]]}},"keywords":{}}],["89.83928203582764,39.71951688444436",{"_index":2392,"title":{},"content":{"267":{"position":[[729,37]]}},"keywords":{}}],["89.83936786651611",{"_index":2491,"title":{},"content":{"288":{"position":[[1953,18]]}},"keywords":{}}],["89.83936786651611,39.725392361998416",{"_index":2391,"title":{},"content":{"267":{"position":[[688,38]]}},"keywords":{}}],["89.84388470649719",{"_index":2487,"title":{},"content":{"288":{"position":[[1867,18]]}},"keywords":{}}],["89.84388470649719,39.71943436012731",{"_index":2389,"title":{},"content":{"267":{"position":[[608,37],[769,36]]}},"keywords":{}}],["89.84392762184143",{"_index":2485,"title":{},"content":{"288":{"position":[[1824,18],[1997,18]]}},"keywords":{}}],["89.84392762184143,39.72439389620628",{"_index":2390,"title":{},"content":{"267":{"position":[[648,37]]}},"keywords":{}}],["8934",{"_index":585,"title":{},"content":{"57":{"position":[[1786,4]]}},"keywords":{}}],["89f2",{"_index":2234,"title":{},"content":{"260":{"position":[[1000,4]]}},"keywords":{}}],["8acb",{"_index":3330,"title":{},"content":{"415":{"position":[[2710,4]]}},"keywords":{}}],["8af7",{"_index":772,"title":{},"content":{"70":{"position":[[1185,4]]}},"keywords":{}}],["8af8",{"_index":756,"title":{},"content":{"70":{"position":[[924,4],[1105,4]]}},"keywords":{}}],["8b7a",{"_index":3325,"title":{},"content":{"415":{"position":[[2589,4]]}},"keywords":{}}],["8b7e",{"_index":288,"title":{},"content":{"8":{"position":[[1471,4]]}},"keywords":{}}],["8bbe50a0",{"_index":788,"title":{},"content":{"71":{"position":[[785,9]]}},"keywords":{}}],["8bc9",{"_index":1013,"title":{},"content":{"88":{"position":[[1350,4]]}},"keywords":{}}],["8bfe22fa",{"_index":2371,"title":{},"content":{"266":{"position":[[2228,9]]}},"keywords":{}}],["8c45c045d28c",{"_index":2454,"title":{},"content":{"282":{"position":[[619,14]]},"283":{"position":[[397,14]]}},"keywords":{}}],["8c8b",{"_index":1522,"title":{},"content":{"132":{"position":[[779,4]]}},"keywords":{}}],["8ce2ce5012b2",{"_index":902,"title":{},"content":{"78":{"position":[[959,13]]},"79":{"position":[[992,14]]},"80":{"position":[[836,13]]}},"keywords":{}}],["8d59",{"_index":2247,"title":{},"content":{"260":{"position":[[1256,4]]}},"keywords":{}}],["8de5",{"_index":2350,"title":{},"content":{"266":{"position":[[1680,4],[2302,4]]}},"keywords":{}}],["8df7",{"_index":684,"title":{},"content":{"60":{"position":[[691,4]]},"61":{"position":[[842,4]]}},"keywords":{}}],["8e11",{"_index":580,"title":{},"content":{"57":{"position":[[1732,4]]}},"keywords":{}}],["8e1e0920",{"_index":898,"title":{},"content":{"78":{"position":[[934,9]]},"79":{"position":[[967,9]]},"80":{"position":[[811,9]]}},"keywords":{}}],["8e2a",{"_index":2217,"title":{},"content":{"260":{"position":[[775,4]]}},"keywords":{}}],["8e65",{"_index":3168,"title":{},"content":{"390":{"position":[[1769,4]]},"391":{"position":[[531,4]]}},"keywords":{}}],["8e85",{"_index":2943,"title":{},"content":{"361":{"position":[[597,4]]}},"keywords":{}}],["8f61",{"_index":614,"title":{},"content":{"57":{"position":[[2334,4]]}},"keywords":{}}],["8row",{"_index":3282,"title":{},"content":{"414":{"position":[[2733,6]]}},"keywords":{}}],["9",{"_index":4001,"title":{},"content":{"509":{"position":[[217,1],[223,1]]},"511":{"position":[[782,2],[785,1]]},"520":{"position":[[1434,3],[1591,1]]},"522":{"position":[[1400,3],[1557,1]]}},"keywords":{}}],["9.0",{"_index":4204,"title":{},"content":{"524":{"position":[[2603,3]]},"526":{"position":[[2569,3]]}},"keywords":{}}],["9.4",{"_index":4154,"title":{},"content":{"520":{"position":[[2280,3]]},"522":{"position":[[2246,3]]}},"keywords":{}}],["9.50",{"_index":2712,"title":{},"content":{"320":{"position":[[1707,4]]}},"keywords":{}}],["900",{"_index":2539,"title":{},"content":{"298":{"position":[[261,3],[499,4]]},"378":{"position":[[2523,3]]},"379":{"position":[[2572,3]]},"380":{"position":[[2123,3]]},"382":{"position":[[508,3],[1194,4]]},"383":{"position":[[511,3],[1197,4]]},"384":{"position":[[250,3],[936,3]]}},"keywords":{}}],["905b",{"_index":616,"title":{},"content":{"57":{"position":[[2344,4]]}},"keywords":{}}],["90b34cc6e789",{"_index":843,"title":{},"content":{"74":{"position":[[521,14]]}},"keywords":{}}],["91",{"_index":875,"title":{},"content":{"75":{"position":[[595,3]]}},"keywords":{}}],["913e",{"_index":1006,"title":{},"content":{"88":{"position":[[1288,4],[1873,4]]}},"keywords":{}}],["9147",{"_index":706,"title":{},"content":{"63":{"position":[[1460,4]]},"64":{"position":[[327,4]]}},"keywords":{}}],["9173",{"_index":1512,"title":{},"content":{"132":{"position":[[640,4]]}},"keywords":{}}],["91aa16699dfc",{"_index":1009,"title":{},"content":{"88":{"position":[[1303,13],[1888,13]]}},"keywords":{}}],["91ac",{"_index":2215,"title":{},"content":{"260":{"position":[[765,4]]}},"keywords":{}}],["927b26285b7f",{"_index":2258,"title":{},"content":{"260":{"position":[[1380,14]]}},"keywords":{}}],["92a3",{"_index":915,"title":{},"content":{"79":{"position":[[903,4]]}},"keywords":{}}],["92c3",{"_index":858,"title":{},"content":{"74":{"position":[[697,4]]}},"keywords":{}}],["93.48817333680519",{"_index":2271,"title":{},"content":{"262":{"position":[[708,18]]},"263":{"position":[[619,18]]},"266":{"position":[[981,18],[1343,18]]},"275":{"position":[[286,18],[856,18]]}},"keywords":{}}],["93.48821327390516",{"_index":2273,"title":{},"content":{"262":{"position":[[749,18]]},"263":{"position":[[660,18]]},"266":{"position":[[1022,18],[1384,18]]},"275":{"position":[[327,18],[897,18]]}},"keywords":{}}],["93.48821327980518",{"_index":2269,"title":{},"content":{"262":{"position":[[667,18],[790,18]]},"263":{"position":[[578,18],[701,18]]},"266":{"position":[[940,18],[1063,18],[1302,18],[1425,18]]},"275":{"position":[[245,18],[368,18],[815,18],[938,18]]}},"keywords":{}}],["9378",{"_index":1485,"title":{},"content":{"131":{"position":[[606,4]]}},"keywords":{}}],["937c",{"_index":926,"title":{},"content":{"82":{"position":[[718,4],[793,4],[1026,4],[1354,4],[1408,4],[1474,4],[1885,4],[1935,4],[2362,4],[2465,4]]},"83":{"position":[[540,4],[615,4],[848,4],[1176,4],[1230,4],[1296,4],[1707,4],[1757,4],[2184,4],[2287,4]]}},"keywords":{}}],["937d",{"_index":954,"title":{},"content":{"82":{"position":[[1831,4],[2308,4]]},"83":{"position":[[1653,4],[2130,4]]}},"keywords":{}}],["94b4",{"_index":1532,"title":{},"content":{"133":{"position":[[461,4]]}},"keywords":{}}],["95c1cc894349",{"_index":3161,"title":{},"content":{"390":{"position":[[1589,14]]},"391":{"position":[[351,14]]}},"keywords":{}}],["95eb7d79",{"_index":2276,"title":{},"content":{"262":{"position":[[1125,9]]}},"keywords":{}}],["968d",{"_index":979,"title":{},"content":{"88":{"position":[[715,4]]}},"keywords":{}}],["96a098e0",{"_index":976,"title":{},"content":{"88":{"position":[[695,9]]}},"keywords":{}}],["96a2",{"_index":2285,"title":{},"content":{"262":{"position":[[1243,4]]}},"keywords":{}}],["96a3",{"_index":3366,"title":{},"content":{"415":{"position":[[3523,4]]}},"keywords":{}}],["96e2",{"_index":655,"title":{},"content":{"59":{"position":[[2455,4]]}},"keywords":{}}],["96f6",{"_index":2380,"title":{},"content":{"266":{"position":[[2414,4]]}},"keywords":{}}],["972f",{"_index":294,"title":{},"content":{"8":{"position":[[1526,4]]}},"keywords":{}}],["97ae",{"_index":648,"title":{},"content":{"59":{"position":[[2391,4]]}},"keywords":{}}],["98.5795",{"_index":3684,"title":{},"content":{"474":{"position":[[465,9]]}},"keywords":{}}],["9833",{"_index":3212,"title":{},"content":{"399":{"position":[[411,4]]}},"keywords":{}}],["986c",{"_index":1517,"title":{},"content":{"132":{"position":[[739,4]]}},"keywords":{}}],["9872",{"_index":3210,"title":{},"content":{"399":{"position":[[401,4]]}},"keywords":{}}],["989a",{"_index":2298,"title":{},"content":{"264":{"position":[[1353,4]]}},"keywords":{}}],["98b244fc",{"_index":657,"title":{},"content":{"59":{"position":[[2488,9]]}},"keywords":{}}],["98be",{"_index":672,"title":{},"content":{"60":{"position":[[490,4]]},"61":{"position":[[638,4]]}},"keywords":{}}],["9920",{"_index":591,"title":{},"content":{"57":{"position":[[1887,4]]}},"keywords":{}}],["9926705da2c9.tif",{"_index":3372,"title":{},"content":{"415":{"position":[[3642,17]]}},"keywords":{}}],["992c",{"_index":789,"title":{},"content":{"71":{"position":[[795,4]]}},"keywords":{}}],["996aea67",{"_index":1437,"title":{},"content":{"130":{"position":[[4667,9]]}},"keywords":{}}],["9999",{"_index":736,"title":{},"content":{"65":{"position":[[849,7]]},"66":{"position":[[476,7]]}},"keywords":{}}],["99b8",{"_index":726,"title":{},"content":{"65":{"position":[[696,4]]},"66":{"position":[[323,4]]}},"keywords":{}}],["9a0e",{"_index":1515,"title":{},"content":{"132":{"position":[[729,4]]}},"keywords":{}}],["9aa68735",{"_index":2882,"title":{},"content":{"352":{"position":[[561,9]]}},"keywords":{}}],["9aaf",{"_index":714,"title":{},"content":{"63":{"position":[[1634,4]]},"64":{"position":[[501,4]]}},"keywords":{}}],["9b561906",{"_index":1482,"title":{},"content":{"131":{"position":[[586,9]]}},"keywords":{}}],["9b77",{"_index":1440,"title":{},"content":{"130":{"position":[[4687,4]]}},"keywords":{}}],["9c4b",{"_index":2366,"title":{},"content":{"266":{"position":[[2028,4]]}},"keywords":{}}],["9d3e70082be4",{"_index":2229,"title":{},"content":{"260":{"position":[[943,14]]}},"keywords":{}}],["9d55d54da114",{"_index":980,"title":{},"content":{"88":{"position":[[720,14]]}},"keywords":{}}],["9d57473b2a67",{"_index":2263,"title":{},"content":{"260":{"position":[[1436,13]]}},"keywords":{}}],["9d81",{"_index":3315,"title":{},"content":{"415":{"position":[[2356,4]]}},"keywords":{}}],["9e081c9d",{"_index":681,"title":{},"content":{"60":{"position":[[671,9]]},"61":{"position":[[822,9]]}},"keywords":{}}],["9e18",{"_index":1467,"title":{},"content":{"130":{"position":[[5662,4]]}},"keywords":{}}],["9e37",{"_index":2361,"title":{},"content":{"266":{"position":[[1966,4]]}},"keywords":{}}],["9e47ae29",{"_index":1504,"title":{},"content":{"132":{"position":[[566,9]]}},"keywords":{}}],["9e5f",{"_index":1507,"title":{},"content":{"132":{"position":[[586,4]]}},"keywords":{}}],["9e6b",{"_index":2436,"title":{},"content":{"277":{"position":[[864,4]]}},"keywords":{}}],["9ea2dde87a09",{"_index":2930,"title":{},"content":{"361":{"position":[[235,14]]}},"keywords":{}}],["9ec3",{"_index":2260,"title":{},"content":{"260":{"position":[[1421,4]]}},"keywords":{}}],["9ede",{"_index":3160,"title":{},"content":{"390":{"position":[[1584,4]]},"391":{"position":[[346,4]]}},"keywords":{}}],["9f0e",{"_index":1490,"title":{},"content":{"131":{"position":[[660,4]]}},"keywords":{}}],["9f2d",{"_index":2945,"title":{},"content":{"361":{"position":[[607,4]]}},"keywords":{}}],["9f3f",{"_index":605,"title":{},"content":{"57":{"position":[[2189,4]]}},"keywords":{}}],["9f60",{"_index":3304,"title":{},"content":{"415":{"position":[[2124,4]]}},"keywords":{}}],["9fd0",{"_index":3177,"title":{},"content":{"390":{"position":[[1871,4]]},"391":{"position":[[633,4]]}},"keywords":{}}],["9ffc7b1c",{"_index":2254,"title":{},"content":{"260":{"position":[[1355,9]]}},"keywords":{}}],["a06a",{"_index":2222,"title":{},"content":{"260":{"position":[[831,4]]}},"keywords":{}}],["a06b2ccdc96d",{"_index":916,"title":{},"content":{"79":{"position":[[908,14]]}},"keywords":{}}],["a0ac",{"_index":2028,"title":{},"content":{"239":{"position":[[993,4]]}},"keywords":{}}],["a0b5",{"_index":1008,"title":{},"content":{"88":{"position":[[1298,4],[1883,4]]}},"keywords":{}}],["a0d000fe7c0",{"_index":295,"title":{},"content":{"8":{"position":[[1531,15]]}},"keywords":{}}],["a0e0",{"_index":3364,"title":{},"content":{"415":{"position":[[3513,4]]}},"keywords":{}}],["a1",{"_index":3937,"title":{},"content":{"488":{"position":[[1759,2],[2121,4],[2347,4]]}},"keywords":{}}],["a10b85c2",{"_index":3165,"title":{},"content":{"390":{"position":[[1749,9]]},"391":{"position":[[511,9]]}},"keywords":{}}],["a167",{"_index":2374,"title":{},"content":{"266":{"position":[[2248,4]]}},"keywords":{}}],["a246",{"_index":1537,"title":{},"content":{"133":{"position":[[515,4]]}},"keywords":{}}],["a31043fa87d2",{"_index":1014,"title":{},"content":{"88":{"position":[[1355,14]]}},"keywords":{}}],["a357fb239930",{"_index":617,"title":{},"content":{"57":{"position":[[2349,14]]}},"keywords":{}}],["a3602817",{"_index":2321,"title":{},"content":{"265":{"position":[[574,9]]}},"keywords":{}}],["a383",{"_index":1496,"title":{},"content":{"131":{"position":[[759,4]]}},"keywords":{}}],["a3a3",{"_index":864,"title":{},"content":{"74":{"position":[[769,4]]}},"keywords":{}}],["a3bc",{"_index":2364,"title":{},"content":{"266":{"position":[[2018,4]]}},"keywords":{}}],["a3d4",{"_index":3346,"title":{},"content":{"415":{"position":[[3062,4]]}},"keywords":{}}],["a3fbaf249957",{"_index":2357,"title":{},"content":{"266":{"position":[[1795,13]]}},"keywords":{}}],["a467",{"_index":650,"title":{},"content":{"59":{"position":[[2401,4]]}},"keywords":{}}],["a47151ac0669",{"_index":606,"title":{},"content":{"57":{"position":[[2194,14]]}},"keywords":{}}],["a4b6",{"_index":3340,"title":{},"content":{"415":{"position":[[2949,4]]}},"keywords":{}}],["a51a",{"_index":660,"title":{},"content":{"59":{"position":[[2508,4]]}},"keywords":{}}],["a5bf",{"_index":3335,"title":{},"content":{"415":{"position":[[2830,4]]}},"keywords":{}}],["a5f17eecbddc",{"_index":1518,"title":{},"content":{"132":{"position":[[744,14]]}},"keywords":{}}],["a7d2361d2125",{"_index":859,"title":{},"content":{"74":{"position":[[702,14]]}},"keywords":{}}],["a85c1d0d",{"_index":861,"title":{},"content":{"74":{"position":[[749,9]]}},"keywords":{}}],["a85d",{"_index":1055,"title":{},"content":{"89":{"position":[[984,4]]}},"keywords":{}}],["a8e7",{"_index":2927,"title":{},"content":{"361":{"position":[[220,4]]}},"keywords":{}}],["a8ef",{"_index":2257,"title":{},"content":{"260":{"position":[[1375,4]]}},"keywords":{}}],["aa",{"_index":775,"title":{},"content":{"70":{"position":[[1246,2]]}},"keywords":{}}],["aa87",{"_index":842,"title":{},"content":{"74":{"position":[[516,4]]}},"keywords":{}}],["aa8c917bc",{"_index":723,"title":{},"content":{"65":{"position":[[675,10]]},"66":{"position":[[302,10]]}},"keywords":{}}],["aab2",{"_index":2880,"title":{},"content":{"352":{"position":[[541,4]]}},"keywords":{}}],["aae6",{"_index":2453,"title":{},"content":{"282":{"position":[[614,4]]},"283":{"position":[[392,4]]}},"keywords":{}}],["aaf2f4ab",{"_index":3363,"title":{},"content":{"415":{"position":[[3504,8]]}},"keywords":{}}],["ab34",{"_index":2431,"title":{},"content":{"277":{"position":[[810,4]]}},"keywords":{}}],["abbac24d",{"_index":2295,"title":{},"content":{"264":{"position":[[1333,9]]}},"keywords":{}}],["abc59ca6",{"_index":925,"title":{},"content":{"82":{"position":[[708,9]]},"83":{"position":[[530,9]]}},"keywords":{}}],["abort",{"_index":304,"title":{},"content":{"8":{"position":[[1800,10]]}},"keywords":{}}],["abov",{"_index":236,"title":{},"content":{"5":{"position":[[1768,6]]},"349":{"position":[[635,6]]},"395":{"position":[[645,6]]},"502":{"position":[[257,6]]},"503":{"position":[[391,5]]},"511":{"position":[[151,5],[247,5],[343,5],[1468,5],[1835,5]]},"515":{"position":[[134,5],[230,5],[326,5],[1451,5],[1818,5]]}},"keywords":{}}],["abstract",{"_index":78,"title":{},"content":{"2":{"position":[[303,9]]}},"keywords":{}}],["ac",{"_index":2914,"title":{},"content":{"357":{"position":[[1880,4]]}},"keywords":{}}],["ac11",{"_index":3301,"title":{},"content":{"415":{"position":[[2020,4]]}},"keywords":{}}],["ac12",{"_index":3361,"title":{},"content":{"415":{"position":[[3402,4]]}},"keywords":{}}],["ac2",{"_index":3166,"title":{},"content":{"390":{"position":[[1759,4]]},"391":{"position":[[521,4]]}},"keywords":{}}],["ac81",{"_index":2422,"title":{},"content":{"277":{"position":[[714,4]]}},"keywords":{}}],["accept",{"_index":246,"title":{},"content":{"5":{"position":[[2271,8]]},"89":{"position":[[691,6]]},"130":{"position":[[87,7],[327,7]]},"209":{"position":[[363,7]]},"263":{"position":[[224,7]]}},"keywords":{}}],["access",{"_index":54,"title":{"311":{"position":[[10,6]]}},"content":{"2":{"position":[[29,6]]},"48":{"position":[[3,6],[458,6],[590,6],[846,6]]},"53":{"position":[[236,6]]},"105":{"position":[[1282,8]]},"116":{"position":[[56,6],[146,6]]},"117":{"position":[[567,6],[1119,7]]},"130":{"position":[[874,8]]},"210":{"position":[[22,6]]},"242":{"position":[[1117,6]]},"244":{"position":[[489,6],[1010,6],[2050,6]]},"245":{"position":[[1057,6]]},"246":{"position":[[674,6]]},"248":{"position":[[487,6]]},"251":{"position":[[954,6]]},"252":{"position":[[164,6]]},"256":{"position":[[83,6],[204,9]]},"326":{"position":[[194,8]]},"345":{"position":[[610,6],[716,6]]},"406":{"position":[[95,6]]},"411":{"position":[[650,8]]},"413":{"position":[[160,6]]},"415":{"position":[[1453,6],[1589,6]]},"420":{"position":[[341,6]]},"423":{"position":[[706,6]]},"458":{"position":[[74,7]]},"460":{"position":[[85,8],[323,6]]},"492":{"position":[[23,7]]},"505":{"position":[[163,8]]},"507":{"position":[[27,6]]},"508":{"position":[[41,6]]},"512":{"position":[[43,6]]}},"keywords":{}}],["access_tokenand",{"_index":2098,"title":{},"content":{"245":{"position":[[772,15]]}},"keywords":{}}],["accesskey",{"_index":1607,"title":{},"content":{"175":{"position":[[602,12]]},"176":{"position":[[148,12],[352,12],[657,12]]}},"keywords":{}}],["accesstoken",{"_index":1563,"title":{},"content":{"140":{"position":[[566,14]]},"141":{"position":[[118,14],[348,14],[661,14]]},"154":{"position":[[713,14]]},"155":{"position":[[771,14]]},"168":{"position":[[651,14]]},"169":{"position":[[758,14]]},"182":{"position":[[658,14]]},"183":{"position":[[709,14]]},"196":{"position":[[606,14]]},"197":{"position":[[128,14],[361,14],[709,14]]},"203":{"position":[[641,14]]},"204":{"position":[[655,14]]}},"keywords":{}}],["accesstokencli",{"_index":1617,"title":{},"content":{"196":{"position":[[555,20]]},"197":{"position":[[150,20],[383,20],[658,20]]}},"keywords":{}}],["accompani",{"_index":3394,"title":{},"content":{"422":{"position":[[382,9]]}},"keywords":{}}],["accordingli",{"_index":1334,"title":{},"content":{"130":{"position":[[711,12],[5146,11]]}},"keywords":{}}],["account",{"_index":90,"title":{"310":{"position":[[23,7]]},"324":{"position":[[23,7]]}},"content":{"2":{"position":[[516,8]]},"18":{"position":[[69,7]]},"116":{"position":[[201,7]]},"242":{"position":[[450,8],[510,7]]},"244":{"position":[[80,7],[1026,7],[1221,7]]},"245":{"position":[[273,7]]},"252":{"position":[[81,7],[548,8]]},"301":{"position":[[167,7]]},"302":{"position":[[185,7]]},"303":{"position":[[159,7]]},"304":{"position":[[171,7]]},"305":{"position":[[165,7]]},"310":{"position":[[21,8]]},"322":{"position":[[196,9]]},"324":{"position":[[21,8]]},"328":{"position":[[161,7]]},"329":{"position":[[160,7]]},"330":{"position":[[144,7]]},"331":{"position":[[152,7]]},"332":{"position":[[150,7]]},"340":{"position":[[193,7],[608,7]]},"420":{"position":[[281,8]]},"422":{"position":[[196,7]]},"423":{"position":[[35,8]]},"424":{"position":[[12,8]]},"425":{"position":[[215,8]]},"485":{"position":[[73,7]]},"493":{"position":[[189,8]]},"501":{"position":[[155,8]]}},"keywords":{}}],["account.sav",{"_index":3476,"title":{},"content":{"464":{"position":[[63,12]]},"477":{"position":[[63,12]]}},"keywords":{}}],["ace92e9c",{"_index":2428,"title":{},"content":{"277":{"position":[[790,9]]}},"keywords":{}}],["aceit",{"_index":2701,"title":{},"content":{"320":{"position":[[1185,8]]}},"keywords":{}}],["ach",{"_index":34,"title":{},"content":{"0":{"position":[[429,6],[1164,6]]}},"keywords":{}}],["achiev",{"_index":3117,"title":{},"content":{"381":{"position":[[137,8]]}},"keywords":{}}],["acquisitionstartd",{"_index":1040,"title":{},"content":{"89":{"position":[[523,20]]}},"keywords":{}}],["acr",{"_index":1773,"title":{},"content":{"222":{"position":[[1894,6]]},"357":{"position":[[1874,5]]}},"keywords":{}}],["action",{"_index":348,"title":{},"content":{"15":{"position":[[80,7]]},"123":{"position":[[470,10]]},"124":{"position":[[687,10],[728,10],[803,7]]},"125":{"position":[[572,10],[613,10],[701,7]]},"133":{"position":[[116,6]]},"486":{"position":[[95,6],[208,6]]}},"keywords":{}}],["actions\":[\"read\"],\"types\":[\"pl",{"_index":1315,"title":{},"content":{"125":{"position":[[286,40]]}},"keywords":{}}],["activ",{"_index":374,"title":{"274":{"position":[[4,6]]},"275":{"position":[[7,6]]}},"content":{"25":{"position":[[222,8]]},"65":{"position":[[960,8]]},"66":{"position":[[587,8]]},"70":{"position":[[1269,9]]},"78":{"position":[[831,9]]},"80":{"position":[[708,9]]},"82":{"position":[[1320,9],[1797,9],[2274,9],[2406,9]]},"83":{"position":[[1142,9],[1619,9],[2096,9],[2228,9]]},"105":{"position":[[92,6]]},"233":{"position":[[402,6]]},"258":{"position":[[1224,6],[1307,6]]},"274":{"position":[[60,6]]},"275":{"position":[[63,6],[110,6],[744,9]]},"287":{"position":[[633,6]]},"288":{"position":[[145,7],[439,6],[495,6],[586,6],[1213,6],[1242,6],[1694,9],[1722,9],[2400,6],[2483,6]]},"415":{"position":[[419,6],[461,7],[1412,7],[1646,7]]}},"keywords":{}}],["activeingredi",{"_index":811,"title":{},"content":{"72":{"position":[[935,19],[1376,19]]},"82":{"position":[[1267,19],[1743,19],[2221,19]]},"83":{"position":[[1089,19],[1565,19],[2043,19]]}},"keywords":{}}],["actual",{"_index":3924,"title":{},"content":{"488":{"position":[[1074,6]]}},"keywords":{}}],["ad",{"_index":140,"title":{},"content":{"3":{"position":[[618,5]]},"117":{"position":[[1080,5]]},"317":{"position":[[311,5]]},"360":{"position":[[796,5],[968,5]]},"411":{"position":[[676,5]]},"429":{"position":[[466,6]]},"442":{"position":[[150,5]]},"443":{"position":[[42,5]]},"445":{"position":[[35,5]]},"474":{"position":[[1618,6]]}},"keywords":{}}],["add",{"_index":1193,"title":{},"content":{"104":{"position":[[1793,3]]},"244":{"position":[[1944,3],[2095,3]]},"245":{"position":[[944,3],[1099,3]]},"246":{"position":[[742,3],[947,3],[990,3]]},"269":{"position":[[401,3]]},"308":{"position":[[13,3]]},"313":{"position":[[124,3],[553,3]]},"314":{"position":[[121,3],[523,3]]},"328":{"position":[[210,3],[360,3]]},"330":{"position":[[199,3],[366,3]]},"331":{"position":[[204,3],[404,3]]},"334":{"position":[[124,3],[552,3]]},"335":{"position":[[121,3],[520,3]]},"345":{"position":[[850,3]]},"454":{"position":[[231,3]]},"473":{"position":[[1062,3]]},"474":{"position":[[84,3],[121,3]]},"480":{"position":[[2745,3],[6397,3]]},"488":{"position":[[2142,3],[2177,3],[2387,3]]},"502":{"position":[[338,3]]}},"keywords":{}}],["addit",{"_index":941,"title":{},"content":{"82":{"position":[[1186,11],[1665,11]]},"83":{"position":[[1008,11],[1487,11]]},"105":{"position":[[2870,8]]},"210":{"position":[[356,8]]},"253":{"position":[[1230,10]]},"308":{"position":[[291,8]]},"436":{"position":[[11,10]]}},"keywords":{}}],["addition",{"_index":2655,"title":{},"content":{"317":{"position":[[1401,13]]}},"keywords":{}}],["address",{"_index":199,"title":{},"content":{"5":{"position":[[790,7]]},"47":{"position":[[301,7]]},"246":{"position":[[356,10],[796,8],[1251,8],[1518,8]]},"252":{"position":[[43,7]]},"498":{"position":[[659,10]]},"500":{"position":[[283,10]]},"501":{"position":[[486,10]]},"502":{"position":[[195,10],[846,10],[1018,10]]},"503":{"position":[[160,10],[719,10],[891,10]]}},"keywords":{}}],["adjust",{"_index":2657,"title":{},"content":{"317":{"position":[[1560,6]]}},"keywords":{}}],["advantag",{"_index":1399,"title":{},"content":{"130":{"position":[[2690,10]]}},"keywords":{}}],["ae37",{"_index":2343,"title":{},"content":{"266":{"position":[[1616,4]]}},"keywords":{}}],["ae91",{"_index":3306,"title":{},"content":{"415":{"position":[[2134,4]]}},"keywords":{}}],["af4a",{"_index":2372,"title":{},"content":{"266":{"position":[[2238,4]]}},"keywords":{}}],["af976addb392",{"_index":2235,"title":{},"content":{"260":{"position":[[1005,14]]}},"keywords":{}}],["afac",{"_index":2291,"title":{},"content":{"262":{"position":[[1490,4]]}},"keywords":{}}],["affect",{"_index":1126,"title":{},"content":{"103":{"position":[[428,6]]},"104":{"position":[[276,8]]}},"keywords":{}}],["aftercreatedtim",{"_index":553,"title":{},"content":{"57":{"position":[[637,16]]},"59":{"position":[[533,16]]}},"keywords":{}}],["afterendtim",{"_index":633,"title":{},"content":{"59":{"position":[[1128,12]]}},"keywords":{}}],["afterstarttim",{"_index":631,"title":{},"content":{"59":{"position":[[918,14]]}},"keywords":{}}],["ag",{"_index":1575,"title":{},"content":{"144":{"position":[[294,3]]}},"keywords":{}}],["again",{"_index":1311,"title":{},"content":{"122":{"position":[[403,6]]},"133":{"position":[[104,6]]},"458":{"position":[[114,5]]},"467":{"position":[[6540,5],[7163,7],[7377,9]]},"480":{"position":[[7180,5]]}},"keywords":{}}],["agdata",{"_index":1391,"title":{},"content":{"130":{"position":[[2450,6],[2494,7],[2586,8],[2819,8],[2911,6]]}},"keywords":{}}],["agf",{"_index":1410,"title":{},"content":{"130":{"position":[[2933,5]]}},"keywords":{}}],["aggp",{"_index":1405,"title":{},"content":{"130":{"position":[[2828,5],[2855,7],[3073,5]]}},"keywords":{}}],["aggreg",{"_index":57,"title":{},"content":{"2":{"position":[[61,10]]},"105":{"position":[[301,9],[423,10]]},"242":{"position":[[34,11]]},"251":{"position":[[160,10]]},"256":{"position":[[115,10]]},"400":{"position":[[83,10]]}},"keywords":{}}],["agi",{"_index":1411,"title":{},"content":{"130":{"position":[[2958,5]]}},"keywords":{}}],["aglead",{"_index":1331,"title":{"138":{"position":[[0,8]]},"139":{"position":[[0,8]]},"140":{"position":[[8,8]]},"141":{"position":[[9,8]]},"142":{"position":[[7,8]]},"301":{"position":[[0,8]]},"331":{"position":[[0,8]]}},"content":{"130":{"position":[[568,8],[2290,9],[2533,8],[2609,8],[2678,8]]},"140":{"position":[[56,8]]},"141":{"position":[[57,8],[540,8]]},"142":{"position":[[69,8]]},"239":{"position":[[325,8]]},"301":{"position":[[10,8],[105,9],[222,8],[277,8],[345,8],[414,8],[482,8],[551,8],[609,8],[1035,8],[1102,8],[1444,8],[1515,8],[1856,8],[1926,8],[2266,8],[2339,8]]},"331":{"position":[[10,8],[90,9],[480,9],[608,9]]},"346":{"position":[[297,8]]},"378":{"position":[[2383,9]]},"379":{"position":[[2434,8]]},"382":{"position":[[370,8]]},"383":{"position":[[373,8]]},"390":{"position":[[307,9]]},"419":{"position":[[115,8]]}},"keywords":{}}],["agleaderagvanceclim",{"_index":3384,"title":{},"content":{"420":{"position":[[70,22]]}},"keywords":{}}],["agleadercredenti",{"_index":3981,"title":{},"content":{"498":{"position":[[885,22]]},"500":{"position":[[509,22]]},"501":{"position":[[712,22]]}},"keywords":{}}],["agleaderstara",{"_index":2054,"title":{},"content":{"243":{"position":[[188,13]]}},"keywords":{}}],["agm",{"_index":1412,"title":{},"content":{"130":{"position":[[2986,5]]}},"keywords":{}}],["ago",{"_index":1248,"title":{},"content":{"105":{"position":[[2586,3]]},"512":{"position":[[192,3]]},"523":{"position":[[296,3]]},"525":{"position":[[285,3]]}},"keywords":{}}],["agrian",{"_index":512,"title":{},"content":{"53":{"position":[[156,6]]},"70":{"position":[[281,6]]},"72":{"position":[[81,6],[1186,9]]},"73":{"position":[[477,9]]}},"keywords":{}}],["agricultur",{"_index":63,"title":{"253":{"position":[[5,12]]}},"content":{"2":{"position":[[104,11],[337,12]]},"51":{"position":[[26,12]]},"130":{"position":[[3953,12]]},"256":{"position":[[42,11]]},"418":{"position":[[193,12]]}},"keywords":{}}],["agrisci",{"_index":821,"title":{},"content":{"72":{"position":[[1097,14]]},"73":{"position":[[389,13]]}},"keywords":{}}],["agsetup",{"_index":1396,"title":{},"content":{"130":{"position":[[2599,9]]}},"keywords":{}}],["agt",{"_index":1414,"title":{},"content":{"130":{"position":[[3006,5]]}},"keywords":{}}],["agu",{"_index":1415,"title":{},"content":{"130":{"position":[[3026,5]]}},"keywords":{}}],["agv",{"_index":1416,"title":{},"content":{"130":{"position":[[3049,5]]}},"keywords":{}}],["agvanc",{"_index":1580,"title":{"145":{"position":[[0,7]]},"146":{"position":[[0,7]]},"147":{"position":[[8,7]]},"148":{"position":[[9,7]]},"149":{"position":[[7,7]]}},"content":{"147":{"position":[[54,7]]},"148":{"position":[[55,7],[568,7]]},"149":{"position":[[65,7]]},"151":{"position":[[292,8]]},"255":{"position":[[1287,7]]},"434":{"position":[[11,7],[57,7]]}},"keywords":{}}],["air",{"_index":4036,"title":{},"content":{"511":{"position":[[123,3],[219,3],[315,3]]},"515":{"position":[[106,3],[202,3],[298,3]]}},"keywords":{}}],["ajax",{"_index":3878,"title":{},"content":{"483":{"position":[[386,8]]},"484":{"position":[[389,8]]},"485":{"position":[[243,8]]},"486":{"position":[[352,8]]},"487":{"position":[[387,8]]},"488":{"position":[[379,8],[884,8],[2906,8]]}},"keywords":{}}],["alert",{"_index":95,"title":{"3":{"position":[[15,6]]},"4":{"position":[[0,6]]},"12":{"position":[[0,5]]},"14":{"position":[[12,6]]},"46":{"position":[[0,6]]},"226":{"position":[[0,6]]},"354":{"position":[[0,6]]},"402":{"position":[[0,6]]}},"content":{"3":{"position":[[311,7]]},"11":{"position":[[244,6]]},"15":{"position":[[107,6],[322,7]]},"16":{"position":[[52,6],[267,7]]},"18":{"position":[[102,6]]},"19":{"position":[[151,6]]},"20":{"position":[[122,6]]},"22":{"position":[[43,6]]},"23":{"position":[[43,6]]},"25":{"position":[[325,6]]},"26":{"position":[[240,6]]},"28":{"position":[[251,6]]},"29":{"position":[[310,6]]},"31":{"position":[[178,6]]},"32":{"position":[[237,6]]},"33":{"position":[[187,6]]},"34":{"position":[[246,6]]},"35":{"position":[[244,6]]},"36":{"position":[[105,6]]},"37":{"position":[[161,6]]},"39":{"position":[[174,6]]},"41":{"position":[[132,6]]},"42":{"position":[[120,6]]},"43":{"position":[[58,6]]},"44":{"position":[[76,6]]},"45":{"position":[[72,6]]},"47":{"position":[[5,6],[123,6],[1008,6]]},"226":{"position":[[5,6],[123,6]]},"227":{"position":[[33,5]]},"252":{"position":[[557,6]]},"354":{"position":[[5,6],[123,6]]},"355":{"position":[[28,5]]},"387":{"position":[[883,6]]},"399":{"position":[[600,6]]},"401":{"position":[[409,6]]},"402":{"position":[[5,6],[123,6]]},"403":{"position":[[28,5]]},"444":{"position":[[135,6],[272,6]]},"480":{"position":[[338,6],[1158,6],[7586,5]]},"495":{"position":[[69,8]]}},"keywords":{}}],["alfalfa",{"_index":890,"title":{},"content":{"78":{"position":[[758,9]]},"80":{"position":[[635,9]]},"229":{"position":[[115,9],[2890,8]]},"320":{"position":[[240,10],[1215,7]]}},"keywords":{}}],["algorithm",{"_index":1223,"title":{},"content":{"105":{"position":[[649,9]]}},"keywords":{}}],["aliv",{"_index":3729,"title":{},"content":{"480":{"position":[[708,8]]}},"keywords":{}}],["all.txt",{"_index":3790,"title":{},"content":{"480":{"position":[[7524,7]]},"481":{"position":[[120,7]]}},"keywords":{}}],["allimag",{"_index":3914,"title":{},"content":{"488":{"position":[[240,9],[616,9]]}},"keywords":{}}],["allimages.push",{"_index":3919,"title":{},"content":{"488":{"position":[[660,16]]}},"keywords":{}}],["allow",{"_index":200,"title":{},"content":{"5":{"position":[[825,7]]},"103":{"position":[[327,8]]},"116":{"position":[[13,6]]},"117":{"position":[[411,8]]},"119":{"position":[[442,9]]},"120":{"position":[[442,7]]},"122":{"position":[[148,7],[277,8],[526,8],[767,9]]},"133":{"position":[[86,6]]},"136":{"position":[[114,6]]},"225":{"position":[[42,6]]},"244":{"position":[[2037,5]]},"245":{"position":[[1044,5]]},"251":{"position":[[930,6]]},"252":{"position":[[158,5],[796,5]]},"287":{"position":[[1696,8]]},"298":{"position":[[244,7]]},"307":{"position":[[41,6]]},"316":{"position":[[458,5]]},"328":{"position":[[399,5]]},"329":{"position":[[195,5]]},"330":{"position":[[405,5]]},"331":{"position":[[443,5]]},"332":{"position":[[412,5]]},"337":{"position":[[417,5]]},"340":{"position":[[318,5]]},"364":{"position":[[62,6]]},"371":{"position":[[42,6]]},"374":{"position":[[45,6]]},"378":{"position":[[2269,7]]},"400":{"position":[[29,5]]},"401":{"position":[[33,6]]},"429":{"position":[[154,5]]}},"keywords":{}}],["allowedprovid",{"_index":3102,"title":{},"content":{"378":{"position":[[1126,19],[1962,19],[2229,17],[2621,19],[2785,19]]},"382":{"position":[[1199,19],[1437,19]]},"385":{"position":[[982,19]]}},"keywords":{}}],["almond",{"_index":1959,"title":{},"content":{"229":{"position":[[2297,9]]}},"keywords":{}}],["along",{"_index":2037,"title":{},"content":{"242":{"position":[[386,5]]},"244":{"position":[[177,6]]},"245":{"position":[[50,6]]},"246":{"position":[[532,5],[908,5]]},"359":{"position":[[64,5]]},"410":{"position":[[62,5]]}},"keywords":{}}],["alreadi",{"_index":174,"title":{},"content":{"5":{"position":[[299,7]]},"244":{"position":[[2172,7]]},"246":{"position":[[1032,7]]},"301":{"position":[[81,7]]},"302":{"position":[[90,7]]},"303":{"position":[[77,7]]},"304":{"position":[[83,7]]},"305":{"position":[[80,7]]},"313":{"position":[[598,7]]},"314":{"position":[[574,7]]},"316":{"position":[[820,7]]},"328":{"position":[[75,7]]},"334":{"position":[[597,7]]},"335":{"position":[[571,7]]},"353":{"position":[[209,7]]},"381":{"position":[[220,7]]},"401":{"position":[[66,7]]},"428":{"position":[[13,7]]},"429":{"position":[[278,7]]},"480":{"position":[[3303,7],[5101,7],[7473,7]]},"487":{"position":[[61,7]]}},"keywords":{}}],["although",{"_index":1045,"title":{},"content":{"89":{"position":[[614,8]]}},"keywords":{}}],["alway",{"_index":1794,"title":{},"content":{"223":{"position":[[153,6]]},"350":{"position":[[631,6]]},"362":{"position":[[484,6]]},"365":{"position":[[1519,6]]},"398":{"position":[[642,6]]}},"keywords":{}}],["am",{"_index":844,"title":{},"content":{"74":{"position":[[544,6]]}},"keywords":{}}],["amount",{"_index":469,"title":{},"content":{"51":{"position":[[138,6]]},"341":{"position":[[461,6]]}},"keywords":{}}],["analyt",{"_index":1661,"title":{},"content":{"212":{"position":[[272,8],[508,8]]}},"keywords":{}}],["analytics_5b",{"_index":3456,"title":{},"content":{"451":{"position":[[419,12]]}},"keywords":{}}],["and/or",{"_index":1288,"title":{},"content":{"117":{"position":[[1215,6]]},"246":{"position":[[130,6]]}},"keywords":{}}],["andcannot",{"_index":1774,"title":{},"content":{"222":{"position":[[1901,9]]}},"keywords":{}}],["andtif_colorizedresolut",{"_index":1744,"title":{},"content":{"220":{"position":[[2756,27]]}},"keywords":{}}],["angular",{"_index":2573,"title":{"313":{"position":[[0,7]]},"334":{"position":[[0,7]]}},"content":{"313":{"position":[[151,7],[208,7],[365,7],[423,7],[543,9]]},"317":{"position":[[362,8]]},"334":{"position":[[151,7],[208,7],[365,7],[423,7],[542,9]]},"338":{"position":[[747,8]]},"469":{"position":[[33,7]]},"470":{"position":[[52,7]]},"471":{"position":[[111,8]]},"473":{"position":[[94,7]]}},"keywords":{}}],["angular/cor",{"_index":2642,"title":{},"content":{"317":{"position":[[798,16]]},"338":{"position":[[1150,16]]}},"keywords":{}}],["annual",{"_index":2670,"title":{},"content":{"320":{"position":[[258,6]]}},"keywords":{}}],["anoth",{"_index":178,"title":{},"content":{"5":{"position":[[380,7]]},"246":{"position":[[746,7]]},"251":{"position":[[993,7]]},"317":{"position":[[2024,7]]},"357":{"position":[[1851,7]]},"360":{"position":[[781,7]]},"467":{"position":[[2923,7]]},"483":{"position":[[239,7]]},"487":{"position":[[178,7]]}},"keywords":{}}],["anymor",{"_index":1755,"title":{},"content":{"222":{"position":[[311,8]]}},"keywords":{}}],["anyth",{"_index":3488,"title":{},"content":{"467":{"position":[[445,8]]},"480":{"position":[[1631,8]]}},"keywords":{}}],["api",{"_index":53,"title":{"109":{"position":[[4,3]]},"112":{"position":[[7,3]]},"119":{"position":[[4,3]]},"120":{"position":[[4,3]]},"121":{"position":[[10,3]]},"122":{"position":[[10,3]]},"296":{"position":[[0,3]]},"297":{"position":[[18,3]]},"298":{"position":[[19,3]]},"299":{"position":[[19,3]]},"495":{"position":[[37,3]]}},"content":{"2":{"position":[[22,3],[299,3]]},"25":{"position":[[191,4],[274,4]]},"39":{"position":[[169,4]]},"47":{"position":[[1015,3]]},"48":{"position":[[14,4],[481,4],[562,3],[607,4]]},"107":{"position":[[67,4],[330,3],[492,3]]},"109":{"position":[[44,3],[257,3],[295,4]]},"110":{"position":[[371,4]]},"111":{"position":[[236,3],[762,4]]},"112":{"position":[[70,3],[581,3],[619,4]]},"113":{"position":[[705,4]]},"114":{"position":[[180,3]]},"116":{"position":[[9,3],[23,3],[130,3],[197,3]]},"117":{"position":[[10,3],[51,3],[162,3],[210,4],[240,4],[284,3],[325,3],[335,4],[1154,3]]},"118":{"position":[[77,3],[175,3],[310,3],[409,3]]},"119":{"position":[[76,3]]},"121":{"position":[[101,3]]},"122":{"position":[[291,3]]},"123":{"position":[[158,3]]},"124":{"position":[[213,3]]},"125":{"position":[[172,3]]},"136":{"position":[[204,4]]},"209":{"position":[[359,3],[901,3]]},"210":{"position":[[78,4]]},"215":{"position":[[114,3]]},"232":{"position":[[102,4]]},"242":{"position":[[22,3],[424,4]]},"244":{"position":[[56,3],[2134,4]]},"245":{"position":[[1135,4]]},"251":{"position":[[941,3],[1001,3]]},"252":{"position":[[435,3]]},"256":{"position":[[76,3]]},"258":{"position":[[60,4]]},"269":{"position":[[150,3]]},"296":{"position":[[4,3],[159,3],[172,4],[201,3],[214,4],[243,3],[258,4]]},"297":{"position":[[5,4],[23,3]]},"298":{"position":[[6,4],[36,3],[350,3]]},"299":{"position":[[8,4],[38,3]]},"301":{"position":[[643,3],[1136,3]]},"302":{"position":[[768,3],[1293,3]]},"303":{"position":[[861,3],[1374,3]]},"304":{"position":[[938,3],[1473,3]]},"305":{"position":[[831,3],[1318,3]]},"307":{"position":[[181,4]]},"313":{"position":[[628,3],[685,3]]},"314":{"position":[[604,3],[661,3]]},"316":{"position":[[50,3]]},"320":{"position":[[136,3]]},"326":{"position":[[125,3]]},"334":{"position":[[627,3],[684,3]]},"335":{"position":[[601,3],[658,3]]},"337":{"position":[[50,3]]},"359":{"position":[[59,4]]},"365":{"position":[[1673,3]]},"366":{"position":[[297,3]]},"374":{"position":[[97,4]]},"410":{"position":[[57,4]]},"411":{"position":[[38,3]]},"420":{"position":[[462,4]]},"423":{"position":[[197,4]]},"439":{"position":[[114,4]]},"450":{"position":[[51,3]]},"451":{"position":[[383,3]]},"458":{"position":[[16,3]]},"467":{"position":[[288,3],[670,3],[1726,3],[2482,3],[2764,3],[4177,3],[5647,3],[5745,3],[6775,3]]},"471":{"position":[[477,4]]},"472":{"position":[[53,4]]},"480":{"position":[[297,4],[359,4],[474,4],[1468,3],[2493,3],[3542,3],[5056,3],[6470,3],[6645,3],[6980,3],[8368,3],[8447,3],[9028,3],[10602,3]]},"482":{"position":[[329,3]]},"484":{"position":[[176,4]]},"487":{"position":[[57,3]]},"493":{"position":[[77,3]]},"498":{"position":[[197,3]]},"507":{"position":[[217,4]]},"517":{"position":[[61,4]]}},"keywords":{}}],["api/fields?page=0&size=20>;rel=\"first",{"_index":3462,"title":{},"content":{"456":{"position":[[601,39]]}},"keywords":{}}],["api/fields?page=1&size=20>;rel=\"next",{"_index":3460,"title":{},"content":{"456":{"position":[[519,39]]}},"keywords":{}}],["api/fields?page=398&size=20>;rel=\"last",{"_index":3461,"title":{},"content":{"456":{"position":[[559,41]]}},"keywords":{}}],["api/users/{leafuserid}/impl",{"_index":695,"title":{},"content":{"63":{"position":[[5,34]]}},"keywords":{}}],["api/users/{leafuserid}/machines/{machineid",{"_index":621,"title":{},"content":{"58":{"position":[[5,44]]},"61":{"position":[[7,44]]},"62":{"position":[[8,44]]}},"keywords":{}}],["api/users/{leafuserid}/machines/{machineid}/fil",{"_index":625,"title":{},"content":{"59":{"position":[[5,50]]}},"keywords":{}}],["api/users/{leafuserid}/oper",{"_index":720,"title":{},"content":{"65":{"position":[[5,33]]}},"keywords":{}}],["api_key",{"_index":2605,"title":{},"content":{"314":{"position":[[916,8]]},"317":{"position":[[1757,8]]}},"keywords":{}}],["apikey",{"_index":1589,"title":{},"content":{"147":{"position":[[684,9]]},"148":{"position":[[115,9],[338,11],[811,9]]},"154":{"position":[[673,9]]},"155":{"position":[[178,9],[731,9]]},"175":{"position":[[585,9]]},"176":{"position":[[131,9],[335,9],[640,9]]},"196":{"position":[[628,9]]},"197":{"position":[[111,9],[342,11],[731,9]]},"302":{"position":[[1751,9],[1925,9],[2236,9],[2409,9]]},"313":{"position":[[636,9]]},"314":{"position":[[612,9]]},"316":{"position":[[403,7],[415,6]]},"317":{"position":[[953,7],[970,9]]},"329":{"position":[[593,9]]},"334":{"position":[[635,9]]},"335":{"position":[[609,9]]},"337":{"position":[[362,7],[374,6]]},"338":{"position":[[1305,7],[1322,9]]}},"keywords":{}}],["apikey=\"your_api_key",{"_index":2589,"title":{},"content":{"313":{"position":[[885,21]]},"334":{"position":[[882,21]]}},"keywords":{}}],["apikey={'myapikey",{"_index":2806,"title":{},"content":{"338":{"position":[[2954,19]]}},"keywords":{}}],["apikey={api_key",{"_index":2617,"title":{},"content":{"314":{"position":[[1238,16]]}},"keywords":{}}],["apikey={apikey",{"_index":2760,"title":{},"content":{"335":{"position":[[948,15]]}},"keywords":{}}],["apikey]=\"apikey",{"_index":2635,"title":{},"content":{"317":{"position":[[472,17]]},"338":{"position":[[854,17]]}},"keywords":{}}],["apikeyclientidclientsecret",{"_index":2742,"title":{},"content":{"329":{"position":[[427,26]]}},"keywords":{}}],["apiown",{"_index":260,"title":{},"content":{"8":{"position":[[305,11],[790,11],[1275,11]]}},"keywords":{}}],["apiownerusernam",{"_index":986,"title":{},"content":{"88":{"position":[[789,19],[1424,19]]},"109":{"position":[[275,19]]},"110":{"position":[[351,19]]},"111":{"position":[[742,19]]},"112":{"position":[[599,19]]},"113":{"position":[[685,19]]},"361":{"position":[[627,19]]},"390":{"position":[[1522,19]]},"391":{"position":[[284,19]]},"411":{"position":[[303,19]]}},"keywords":{}}],["app",{"_index":2073,"title":{},"content":{"244":{"position":[[1199,3]]},"301":{"position":[[231,3],[251,4],[286,3],[306,4],[354,3],[375,4],[423,3],[443,4],[491,3],[514,4],[560,3],[582,4],[618,3],[1044,3],[1066,4],[1111,3],[1453,3],[1476,4],[1524,3],[1865,3],[1887,4],[1935,3],[2275,3],[2300,4],[2348,3]]},"302":{"position":[[258,3],[278,4],[329,3],[349,4],[413,3],[434,4],[498,3],[518,4],[582,3],[605,4],[668,3],[690,4],[743,3],[1185,3],[1207,4],[1268,3],[1626,3],[1649,4],[1713,3],[2112,3],[2134,4],[2198,3],[2596,3],[2621,4],[2685,3]]},"303":{"position":[[280,4],[421,3],[441,4],[467,3],[487,4],[546,3],[567,4],[626,3],[646,4],[705,3],[728,4],[786,3],[808,4],[836,3],[1271,3],[1293,4],[1349,3],[1711,3],[1734,4],[1793,3],[2205,3],[2227,4],[2286,3],[2697,3],[2722,4],[2781,3]]},"304":{"position":[[432,3],[452,4],[489,3],[509,4],[579,3],[600,4],[670,3],[690,4],[760,3],[783,4],[852,3],[874,4],[913,3],[1359,3],[1381,4],[1448,3],[1821,3],[1844,4],[1914,3],[2281,3],[2303,4],[2373,3],[2739,3],[2764,4],[2834,3]]},"305":{"position":[[435,3],[455,4],[487,3],[507,4],[552,3],[573,4],[618,3],[638,4],[683,3],[706,4],[750,3],[772,4],[806,3],[1229,3],[1251,4],[1293,3],[1632,3],[1655,4],[1700,3],[2098,3],[2120,4],[2165,3],[2562,3],[2587,4],[2632,3]]},"314":{"position":[[822,5]]},"317":{"position":[[838,4],[1365,4],[1615,5]]},"330":{"position":[[225,4]]},"335":{"position":[[819,5]]},"338":{"position":[[1190,4]]},"466":{"position":[[227,3]]},"470":{"position":[[73,3]]},"479":{"position":[[304,3]]}},"keywords":{}}],["app'",{"_index":2065,"title":{},"content":{"244":{"position":[[714,5],[793,5],[874,5]]}},"keywords":{}}],["app.component.css",{"_index":2647,"title":{},"content":{"317":{"position":[[898,23]]},"338":{"position":[[1250,23]]}},"keywords":{}}],["app.component.html",{"_index":2645,"title":{},"content":{"317":{"position":[[863,23]]},"338":{"position":[[1215,23]]}},"keywords":{}}],["app.get(\"/delete_webhook/:id",{"_index":3755,"title":{},"content":{"480":{"position":[[4509,30]]}},"keywords":{}}],["app.get(\"/detail_file/:id",{"_index":3800,"title":{},"content":{"480":{"position":[[8551,27]]}},"keywords":{}}],["app.get(\"/file_images/:id",{"_index":3803,"title":{},"content":{"480":{"position":[[9299,27]]}},"keywords":{}}],["app.get(\"/list_webhook",{"_index":3752,"title":{},"content":{"480":{"position":[[3740,24]]}},"keywords":{}}],["app.get(\"/main",{"_index":3722,"title":{},"content":{"480":{"position":[[99,16]]}},"keywords":{}}],["app.get(\"/monitored_field",{"_index":3509,"title":{},"content":{"467":{"position":[[1823,28]]}},"keywords":{}}],["app.get(\"/verify_fil",{"_index":3791,"title":{},"content":{"480":{"position":[[7711,24]]}},"keywords":{}}],["app.listen(3000",{"_index":3577,"title":{},"content":{"468":{"position":[[77,16]]},"481":{"position":[[77,16]]}},"keywords":{}}],["app.post(\"/create_field",{"_index":3560,"title":{},"content":{"467":{"position":[[5941,25]]}},"keywords":{}}],["app.post(\"/create_token",{"_index":3491,"title":{},"content":{"467":{"position":[[514,25]]},"480":{"position":[[1700,25]]}},"keywords":{}}],["app.post(\"/create_webhook",{"_index":3742,"title":{},"content":{"480":{"position":[[2805,27]]}},"keywords":{}}],["app.post(\"/field_imag",{"_index":3519,"title":{},"content":{"467":{"position":[[3042,25]]}},"keywords":{}}],["app.post(\"/image_coordin",{"_index":3805,"title":{},"content":{"480":{"position":[[9808,30]]}},"keywords":{}}],["app.post(\"/save_fil",{"_index":3762,"title":{},"content":{"480":{"position":[[5242,22]]}},"keywords":{}}],["app.post(\"/webhook",{"_index":3726,"title":{},"content":{"480":{"position":[[554,20]]}},"keywords":{}}],["app.tsx",{"_index":2596,"title":{},"content":{"314":{"position":[[104,7]]},"317":{"position":[[1587,7]]},"335":{"position":[[104,7]]}},"keywords":{}}],["app/platform",{"_index":2015,"title":{},"content":{"234":{"position":[[44,12]]}},"keywords":{}}],["appcompon",{"_index":2649,"title":{},"content":{"317":{"position":[[938,12]]},"338":{"position":[[1290,12]]}},"keywords":{}}],["appear",{"_index":3406,"title":{},"content":{"429":{"position":[[15,7]]}},"keywords":{}}],["append",{"_index":2859,"title":{},"content":{"349":{"position":[[1156,6]]},"395":{"position":[[1166,6]]}},"keywords":{}}],["appl",{"_index":1952,"title":{},"content":{"229":{"position":[[2226,8]]},"320":{"position":[[277,6]]}},"keywords":{}}],["appli",{"_index":465,"title":{},"content":{"51":{"position":[[73,5],[120,8]]},"53":{"position":[[94,7]]},"105":{"position":[[498,7],[1540,7]]},"124":{"position":[[845,8]]},"125":{"position":[[743,8]]},"248":{"position":[[201,8]]},"252":{"position":[[1204,9],[1425,8]]},"253":{"position":[[986,8]]},"264":{"position":[[329,9]]},"293":{"position":[[368,7]]},"342":{"position":[[150,8]]},"346":{"position":[[840,8],[2138,10]]},"347":{"position":[[267,10]]},"348":{"position":[[302,10]]},"350":{"position":[[293,10]]},"357":{"position":[[117,8],[867,9]]},"362":{"position":[[43,10]]},"365":{"position":[[1148,7]]},"390":{"position":[[549,8]]},"392":{"position":[[317,10]]},"398":{"position":[[309,10]]}},"keywords":{}}],["applic",{"_index":1195,"title":{"300":{"position":[[10,11]]},"326":{"position":[[19,11]]}},"content":{"104":{"position":[[1957,10]]},"209":{"position":[[94,11]]},"244":{"position":[[474,11],[953,11],[1330,12]]},"251":{"position":[[318,12]]},"253":{"position":[[856,12],[962,11]]},"300":{"position":[[27,11],[207,11]]},"301":{"position":[[69,11]]},"302":{"position":[[78,11]]},"303":{"position":[[65,11],[321,12]]},"304":{"position":[[71,11],[326,12]]},"305":{"position":[[68,11],[332,12]]},"313":{"position":[[159,12]]},"314":{"position":[[153,12]]},"325":{"position":[[106,13]]},"326":{"position":[[252,11]]},"328":{"position":[[63,11],[302,12],[333,11],[378,11],[475,11],[640,12],[751,11]]},"329":{"position":[[70,11],[174,11],[278,11]]},"330":{"position":[[57,11],[339,11],[384,11],[475,11],[783,11]]},"331":{"position":[[61,11],[329,11],[422,11],[517,11]]},"332":{"position":[[60,11],[391,11],[485,11]]},"334":{"position":[[159,12]]},"335":{"position":[[153,12]]},"338":{"position":[[3322,12]]},"371":{"position":[[176,11]]},"372":{"position":[[140,11]]},"378":{"position":[[2081,11],[2133,11]]},"379":{"position":[[2178,11],[2230,11]]},"381":{"position":[[241,12]]},"382":{"position":[[36,11],[88,11]]},"383":{"position":[[42,11],[94,11]]},"385":{"position":[[459,12]]},"387":{"position":[[110,11]]},"396":{"position":[[1191,13]]},"418":{"position":[[79,11],[341,12]]},"498":{"position":[[91,11]]}},"keywords":{}}],["application'",{"_index":2092,"title":{},"content":{"245":{"position":[[347,13]]},"385":{"position":[[184,13]]}},"keywords":{}}],["application/json",{"_index":230,"title":{},"content":{"5":{"position":[[1678,17],[2248,17]]},"48":{"position":[[279,17]]},"111":{"position":[[514,17]]},"112":{"position":[[387,17]]},"113":{"position":[[457,17]]},"141":{"position":[[322,17]]},"162":{"position":[[362,17]]},"176":{"position":[[309,17]]},"183":{"position":[[294,17]]},"190":{"position":[[297,17]]},"197":{"position":[[319,17]]},"222":{"position":[[1686,17]]},"267":{"position":[[496,17]]},"423":{"position":[[323,17]]}},"keywords":{}}],["applicationnam",{"_index":2563,"title":{},"content":{"305":{"position":[[1738,18],[1921,18],[2203,18],[2385,18]]},"332":{"position":[[790,18]]}},"keywords":{}}],["applicationnameclientidclientsecret",{"_index":2752,"title":{},"content":{"332":{"position":[[615,35]]}},"keywords":{}}],["appliedoper",{"_index":2917,"title":{},"content":{"360":{"position":[[287,16]]}},"keywords":{}}],["appliedr",{"_index":2918,"title":{},"content":{"360":{"position":[[317,12]]},"366":{"position":[[212,11]]}},"keywords":{}}],["appnam",{"_index":2550,"title":{},"content":{"301":{"position":[[871,10],[964,10],[1372,10]]},"302":{"position":[[1004,10],[1097,10],[1537,10]]},"303":{"position":[[1085,10],[1187,10],[1626,10]]},"304":{"position":[[1167,10],[1269,10],[1730,10]]},"305":{"position":[[1058,10],[1151,10],[1553,10]]},"328":{"position":[[694,7]]},"329":{"position":[[470,8]]},"330":{"position":[[725,7]]},"331":{"position":[[685,8]]},"332":{"position":[[667,8]]}},"keywords":{}}],["approv",{"_index":867,"title":{},"content":{"75":{"position":[[86,8],[118,7]]},"122":{"position":[[227,7]]}},"keywords":{}}],["appservic",{"_index":3610,"title":{},"content":{"473":{"position":[[1481,11]]}},"keywords":{}}],["apricot",{"_index":1955,"title":{},"content":{"229":{"position":[[2253,10]]}},"keywords":{}}],["arcdeg",{"_index":3080,"title":{},"content":{"368":{"position":[[242,9]]},"416":{"position":[[245,9]]}},"keywords":{}}],["architect",{"_index":2812,"title":{},"content":{"338":{"position":[[3373,12]]}},"keywords":{}}],["archiv",{"_index":3463,"title":{"458":{"position":[[5,9]]}},"content":{"458":{"position":[[20,8]]}},"keywords":{}}],["area",{"_index":470,"title":{},"content":{"51":{"position":[[161,5]]},"253":{"position":[[378,4],[591,5],[1010,4]]},"262":{"position":[[1165,7]]},"266":{"position":[[502,4],[535,4],[1700,7],[2322,7]]},"275":{"position":[[985,7]]},"287":{"position":[[574,4],[657,5]]},"288":{"position":[[2045,7]]},"293":{"position":[[669,5]]},"341":{"position":[[1032,4]]},"346":{"position":[[921,4]]},"357":{"position":[[1155,4],[1336,4],[1756,4],[1806,4]]},"361":{"position":[[2507,7]]},"364":{"position":[[737,7]]},"365":{"position":[[239,4],[262,4]]},"367":{"position":[[166,7]]},"368":{"position":[[137,7]]},"414":{"position":[[2362,7]]},"415":{"position":[[3221,7]]},"416":{"position":[[140,7]]},"511":{"position":[[1771,4]]},"515":{"position":[[1754,4]]}},"keywords":{}}],["areaandyield",{"_index":2867,"title":{},"content":{"351":{"position":[[497,15]]}},"keywords":{}}],["arizona",{"_index":961,"title":{},"content":{"82":{"position":[[2064,8]]},"83":{"position":[[1886,8]]}},"keywords":{}}],["arom",{"_index":4020,"title":{},"content":{"510":{"position":[[234,5]]}},"keywords":{}}],["aromeifsjmagem",{"_index":4034,"title":{},"content":{"511":{"position":[[16,14]]}},"keywords":{}}],["around",{"_index":23,"title":{},"content":{"0":{"position":[[269,6],[684,6],[856,6],[1411,6],[1583,6],[1755,6]]}},"keywords":{}}],["arpeg",{"_index":4019,"title":{},"content":{"510":{"position":[[225,6]]}},"keywords":{}}],["arpegearom",{"_index":4110,"title":{},"content":{"519":{"position":[[444,12]]},"520":{"position":[[446,12]]},"521":{"position":[[433,12]]},"522":{"position":[[435,12]]}},"keywords":{}}],["arr.foreach((",{"_index":3821,"title":{},"content":{"480":{"position":[[10692,15]]}},"keywords":{}}],["arr.length",{"_index":3819,"title":{},"content":{"480":{"position":[[10515,11]]}},"keywords":{}}],["array",{"_index":1709,"title":{},"content":{"220":{"position":[[1209,5]]},"317":{"position":[[126,7],[165,5],[252,5],[733,5]]},"338":{"position":[[132,7],[193,5],[472,5],[3580,5]]},"467":{"position":[[2931,5],[4871,6]]},"473":{"position":[[5279,5],[6407,6],[6554,5]]},"480":{"position":[[10310,6],[10550,6],[12219,5],[12404,5]]},"488":{"position":[[256,8],[626,6]]}},"keywords":{}}],["arriv",{"_index":1752,"title":{},"content":{"222":{"position":[[98,6]]}},"keywords":{}}],["artichok",{"_index":1897,"title":{},"content":{"229":{"position":[[1447,10]]}},"keywords":{}}],["asappli",{"_index":1373,"title":{},"content":{"130":{"position":[[2044,9],[3440,9]]}},"keywords":{}}],["asc",{"_index":569,"title":{},"content":{"57":{"position":[[1179,3],[1196,3]]},"59":{"position":[[2009,3],[2026,3]]},"63":{"position":[[921,3],[938,3]]},"70":{"position":[[680,3],[697,3]]},"71":{"position":[[444,3],[461,3]]},"78":{"position":[[472,3],[489,3]]},"79":{"position":[[470,3],[487,3]]},"82":{"position":[[473,3],[490,3]]},"218":{"position":[[386,3],[403,3]]},"346":{"position":[[1526,3],[1543,3]]},"390":{"position":[[1032,3],[1049,3]]}},"keywords":{}}],["asid",{"_index":1943,"title":{},"content":{"229":{"position":[[2143,6]]}},"keywords":{}}],["ask",{"_index":43,"title":{},"content":{"0":{"position":[[558,3]]},"256":{"position":[[382,3]]},"470":{"position":[[102,3]]},"505":{"position":[[293,3]]}},"keywords":{}}],["asparagu",{"_index":1847,"title":{},"content":{"229":{"position":[[799,11]]}},"keywords":{}}],["asset",{"_index":343,"title":{"40":{"position":[[0,6]]},"54":{"position":[[7,6]]},"56":{"position":[[0,6]]},"212":{"position":[[10,5]]}},"content":{"11":{"position":[[899,6]]},"210":{"position":[[313,5]]},"251":{"position":[[489,6]]},"441":{"position":[[137,5]]},"451":{"position":[[357,5],[432,5],[578,5]]}},"keywords":{}}],["assettyp",{"_index":1764,"title":{},"content":{"222":{"position":[[976,13],[1405,9]]},"224":{"position":[[80,11]]}},"keywords":{}}],["associ",{"_index":1127,"title":{},"content":{"103":{"position":[[455,10]]},"130":{"position":[[933,10]]},"287":{"position":[[2092,10]]},"322":{"position":[[212,10]]},"501":{"position":[[133,10]]}},"keywords":{}}],["assum",{"_index":1181,"title":{},"content":{"104":{"position":[[1163,6],[1599,6]]},"130":{"position":[[4171,6],[4369,6]]}},"keywords":{}}],["async",{"_index":3578,"title":{},"content":{"468":{"position":[[94,5]]},"479":{"position":[[400,5]]},"480":{"position":[[9839,5]]},"481":{"position":[[94,5]]},"488":{"position":[[433,6],[934,6],[2961,6]]}},"keywords":{}}],["asynchron",{"_index":2887,"title":{},"content":{"353":{"position":[[89,15]]}},"keywords":{}}],["atmospher",{"_index":1647,"title":{},"content":{"212":{"position":[[34,15]]},"511":{"position":[[1711,10]]},"515":{"position":[[1694,10]]}},"keywords":{}}],["attach",{"_index":2044,"title":{"424":{"position":[[22,8]]}},"content":{"242":{"position":[[910,6]]},"246":{"position":[[33,6],[108,6],[203,6],[495,8]]},"252":{"position":[[453,6]]},"411":{"position":[[190,8]]},"418":{"position":[[415,6]]},"424":{"position":[[370,9]]},"493":{"position":[[95,6]]},"495":{"position":[[169,6]]}},"keywords":{}}],["attached.farm(",{"_index":2006,"title":{},"content":{"233":{"position":[[143,16]]}},"keywords":{}}],["attack",{"_index":107,"title":{},"content":{"3":{"position":[[111,8]]}},"keywords":{}}],["attempt",{"_index":1117,"title":{},"content":{"103":{"position":[[62,7]]},"130":{"position":[[1104,8]]}},"keywords":{}}],["attr",{"_index":3832,"title":{},"content":{"480":{"position":[[11041,6]]}},"keywords":{}}],["attribut",{"_index":2460,"title":{},"content":{"283":{"position":[[683,9]]},"288":{"position":[[1379,10],[1403,9]]},"415":{"position":[[762,10]]},"467":{"position":[[126,10],[208,9]]},"473":{"position":[[305,9]]},"474":{"position":[[618,12],[933,12]]},"480":{"position":[[1306,10],[1388,9],[2553,10],[2605,9]]}},"keywords":{}}],["attrkey",{"_index":3831,"title":{},"content":{"480":{"position":[[11032,8]]}},"keywords":{}}],["auth",{"_index":2057,"title":{},"content":{"244":{"position":[[202,4]]},"245":{"position":[[82,4]]}},"keywords":{}}],["authent",{"_index":94,"title":{"3":{"position":[[0,14]]},"48":{"position":[[0,14]]},"321":{"position":[[27,14]]},"370":{"position":[[0,12]]},"372":{"position":[[0,14]]},"379":{"position":[[0,14]]},"383":{"position":[[10,14]]},"417":{"position":[[9,14]]},"419":{"position":[[9,14]]},"423":{"position":[[0,14]]},"461":{"position":[[0,14]]}},"content":{"3":{"position":[[224,14]]},"5":{"position":[[694,15]]},"47":{"position":[[1166,14]]},"135":{"position":[[760,15]]},"232":{"position":[[224,15]]},"242":{"position":[[207,12],[731,14]]},"244":{"position":[[451,14],[588,14],[640,14],[929,14],[1419,12]]},"245":{"position":[[145,12],[426,12]]},"296":{"position":[[30,14]]},"300":{"position":[[271,14]]},"305":{"position":[[286,15]]},"308":{"position":[[309,14]]},"311":{"position":[[54,14]]},"316":{"position":[[35,14],[429,14]]},"322":{"position":[[29,14]]},"326":{"position":[[72,14]]},"328":{"position":[[418,12]]},"329":{"position":[[214,12]]},"330":{"position":[[424,12]]},"331":{"position":[[462,12]]},"332":{"position":[[164,14],[257,15],[431,12]]},"337":{"position":[[35,14],[388,14]]},"340":{"position":[[715,15]]},"371":{"position":[[61,12]]},"372":{"position":[[15,14],[46,12]]},"378":{"position":[[18,12],[434,14],[1258,14],[2187,14],[2284,14],[3351,14]]},"379":{"position":[[18,12],[96,14],[161,14],[242,14],[329,14],[411,14],[497,14],[995,17],[1242,14],[1338,14],[1848,17],[2090,14],[2284,14],[2364,14],[3303,14],[3397,14]]},"381":{"position":[[352,14]]},"382":{"position":[[142,14],[300,14]]},"383":{"position":[[148,14],[303,14]]},"385":{"position":[[669,14],[788,14]]},"411":{"position":[[120,13]]},"418":{"position":[[61,12],[525,14]]},"419":{"position":[[21,14],[124,14],[166,14],[195,14],[230,14],[270,14],[300,14],[332,14],[583,14]]},"420":{"position":[[267,13],[389,14]]},"423":{"position":[[65,12]]},"460":{"position":[[99,14]]},"467":{"position":[[1450,14]]},"480":{"position":[[2288,14]]},"493":{"position":[[273,14]]},"495":{"position":[[98,15]]}},"keywords":{}}],["author",{"_index":231,"title":{},"content":{"5":{"position":[[1701,15]]},"6":{"position":[[128,15]]},"7":{"position":[[98,15]]},"8":{"position":[[128,15]]},"9":{"position":[[285,15]]},"57":{"position":[[1578,15]]},"58":{"position":[[157,15]]},"59":{"position":[[2229,15]]},"60":{"position":[[324,15]]},"61":{"position":[[460,15]]},"62":{"position":[[243,15]]},"63":{"position":[[1304,15]]},"64":{"position":[[159,15]]},"65":{"position":[[540,15]]},"66":{"position":[[156,15]]},"70":{"position":[[799,15]]},"71":{"position":[[563,15]]},"72":{"position":[[459,15]]},"73":{"position":[[161,15]]},"74":{"position":[[347,15]]},"75":{"position":[[303,15]]},"76":{"position":[[171,15]]},"78":{"position":[[591,15]]},"79":{"position":[[589,15]]},"80":{"position":[[461,15]]},"82":{"position":[[592,15]]},"83":{"position":[[407,15]]},"88":{"position":[[563,15]]},"89":{"position":[[777,15]]},"93":{"position":[[526,15]]},"94":{"position":[[160,15]]},"95":{"position":[[738,15]]},"96":{"position":[[307,15]]},"97":{"position":[[269,15]]},"98":{"position":[[581,15]]},"99":{"position":[[248,15]]},"100":{"position":[[530,15]]},"101":{"position":[[881,15]]},"109":{"position":[[115,15]]},"110":{"position":[[175,15]]},"111":{"position":[[461,15]]},"112":{"position":[[334,15]]},"113":{"position":[[404,15]]},"114":{"position":[[304,15]]},"119":{"position":[[205,15]]},"120":{"position":[[226,15]]},"121":{"position":[[175,15]]},"122":{"position":[[473,15]]},"123":{"position":[[246,15]]},"124":{"position":[[326,15]]},"125":{"position":[[246,15]]},"126":{"position":[[242,15]]},"127":{"position":[[188,15]]},"130":{"position":[[4488,15]]},"131":{"position":[[452,17]]},"132":{"position":[[430,17]]},"133":{"position":[[314,15]]},"140":{"position":[[337,15]]},"141":{"position":[[267,15]]},"142":{"position":[[155,15]]},"144":{"position":[[185,15]]},"147":{"position":[[334,15]]},"148":{"position":[[298,15]]},"149":{"position":[[150,15]]},"151":{"position":[[183,15]]},"154":{"position":[[355,15]]},"155":{"position":[[281,15]]},"156":{"position":[[173,15]]},"158":{"position":[[194,15]]},"161":{"position":[[328,15]]},"162":{"position":[[307,15]]},"163":{"position":[[146,15]]},"165":{"position":[[180,15]]},"168":{"position":[[340,15]]},"169":{"position":[[294,15]]},"170":{"position":[[158,15]]},"172":{"position":[[186,15]]},"175":{"position":[[350,15]]},"176":{"position":[[254,15]]},"177":{"position":[[168,15]]},"179":{"position":[[191,15]]},"182":{"position":[[330,15]]},"183":{"position":[[239,15]]},"184":{"position":[[148,15]]},"186":{"position":[[181,15]]},"189":{"position":[[334,15]]},"190":{"position":[[242,15]]},"191":{"position":[[152,15]]},"193":{"position":[[183,15]]},"196":{"position":[[330,15]]},"197":{"position":[[264,15]]},"198":{"position":[[148,15]]},"200":{"position":[[181,15]]},"203":{"position":[[334,15]]},"204":{"position":[[243,15]]},"205":{"position":[[152,15]]},"207":{"position":[[183,15]]},"218":{"position":[[571,15]]},"219":{"position":[[252,15]]},"220":{"position":[[1488,15]]},"221":{"position":[[140,15]]},"222":{"position":[[1709,15]]},"223":{"position":[[294,15]]},"224":{"position":[[196,15]]},"225":{"position":[[167,15]]},"239":{"position":[[755,15]]},"244":{"position":[[1000,9],[1314,10]]},"255":{"position":[[484,15]]},"260":{"position":[[586,15]]},"261":{"position":[[132,15]]},"262":{"position":[[900,15]]},"263":{"position":[[812,15]]},"264":{"position":[[1172,15]]},"265":{"position":[[180,15]]},"266":{"position":[[1201,15]]},"267":{"position":[[430,15]]},"268":{"position":[[540,15]]},"269":{"position":[[539,15]]},"272":{"position":[[154,15]]},"273":{"position":[[174,15]]},"274":{"position":[[133,15]]},"275":{"position":[[477,15]]},"277":{"position":[[501,15]]},"278":{"position":[[152,15]]},"279":{"position":[[277,15]]},"280":{"position":[[302,15]]},"282":{"position":[[399,15]]},"283":{"position":[[156,15]]},"284":{"position":[[246,15]]},"285":{"position":[[271,15]]},"297":{"position":[[111,15]]},"298":{"position":[[419,15]]},"299":{"position":[[111,15]]},"301":{"position":[[715,15],[1208,15],[1672,15],[2082,15],[2429,15]]},"302":{"position":[[840,15],[1365,15],[1882,15],[2366,15],[2766,15]]},"303":{"position":[[933,15],[1446,15],[1971,15],[2463,15],[2862,15]]},"304":{"position":[[1010,15],[1545,15],[2064,15],[2522,15],[2915,15]]},"305":{"position":[[903,15],[1390,15],[1878,15],[2342,15],[2713,15]]},"328":{"position":[[881,15]]},"329":{"position":[[550,15]]},"330":{"position":[[907,15]]},"331":{"position":[[765,15]]},"332":{"position":[[747,15]]},"340":{"position":[[597,10]]},"346":{"position":[[1906,15]]},"347":{"position":[[108,15]]},"348":{"position":[[135,15]]},"349":{"position":[[159,15]]},"350":{"position":[[128,15]]},"351":{"position":[[127,15]]},"352":{"position":[[321,15]]},"353":{"position":[[786,15]]},"378":{"position":[[537,15],[1361,15],[2724,15],[3457,15]]},"379":{"position":[[597,15],[1438,15],[2761,15],[3500,15]]},"380":{"position":[[519,15],[1288,15],[2284,15],[2955,15]]},"382":{"position":[[1303,15]]},"383":{"position":[[1294,15]]},"384":{"position":[[1004,15]]},"385":{"position":[[921,15]]},"390":{"position":[[1359,15]]},"391":{"position":[[118,15]]},"392":{"position":[[145,15]]},"393":{"position":[[159,15]]},"394":{"position":[[244,15]]},"395":{"position":[[159,15]]},"396":{"position":[[252,15]]},"397":{"position":[[258,15]]},"398":{"position":[[139,15]]},"399":{"position":[[219,15]]},"400":{"position":[[188,15]]},"401":{"position":[[249,15]]},"408":{"position":[[316,15]]},"424":{"position":[[180,15]]},"425":{"position":[[257,15]]},"426":{"position":[[130,15]]},"427":{"position":[[33,15]]},"428":{"position":[[410,15]]},"429":{"position":[[545,15],[842,15]]},"430":{"position":[[249,15],[458,15]]},"461":{"position":[[43,15]]},"467":{"position":[[1653,13],[2090,14],[3411,14],[3895,14],[6664,14]]},"473":{"position":[[2755,13]]},"480":{"position":[[2996,14],[3823,14],[4606,14],[6065,14],[6286,14],[8723,14],[9483,14]]},"500":{"position":[[93,15]]},"501":{"position":[[293,15]]},"502":{"position":[[743,15]]},"503":{"position":[[603,15]]},"504":{"position":[[121,15]]},"519":{"position":[[602,15]]},"520":{"position":[[604,15]]},"521":{"position":[[591,15]]},"522":{"position":[[593,15]]},"523":{"position":[[788,15]]},"524":{"position":[[587,15]]},"525":{"position":[[777,15]]},"526":{"position":[[576,15]]}},"keywords":{}}],["authtoken",{"_index":1612,"title":{},"content":{"189":{"position":[[580,12]]},"190":{"position":[[635,12]]},"479":{"position":[[448,12]]}},"keywords":{}}],["auto",{"_index":2036,"title":{},"content":{"242":{"position":[[261,4]]},"343":{"position":[[121,4]]}},"keywords":{}}],["automat",{"_index":1141,"title":{"293":{"position":[[0,9]]}},"content":{"103":{"position":[[980,13],[1152,13]]},"104":{"position":[[50,13]]},"105":{"position":[[902,13]]},"130":{"position":[[1116,13]]},"137":{"position":[[295,13]]},"242":{"position":[[1054,13]]},"244":{"position":[[1824,13],[2192,13],[2294,13]]},"245":{"position":[[817,13],[1240,13]]},"246":{"position":[[433,13]]},"247":{"position":[[129,13]]},"293":{"position":[[523,9]]},"337":{"position":[[1120,13]]},"343":{"position":[[253,13]]},"366":{"position":[[306,13]]},"381":{"position":[[47,13]]},"387":{"position":[[375,13]]},"415":{"position":[[606,13]]},"450":{"position":[[243,13]]},"451":{"position":[[116,13],[288,13]]},"473":{"position":[[77,13]]}},"keywords":{}}],["automaticfixboundari",{"_index":1116,"title":{},"content":{"103":{"position":[[0,21]]}},"keywords":{}}],["automerg",{"_index":340,"title":{"33":{"position":[[0,10]]},"34":{"position":[[0,10]]}},"content":{"11":{"position":[[715,10],[752,10]]},"33":{"position":[[36,10],[145,10]]},"34":{"position":[[36,10],[177,10]]},"264":{"position":[[517,13],[1413,13]]},"265":{"position":[[424,13]]},"346":{"position":[[370,11]]}},"keywords":{}}],["automergedfileprocessingfail",{"_index":214,"title":{},"content":{"5":{"position":[[1198,31]]},"34":{"position":[[496,32]]}},"keywords":{}}],["automergedfileprocessingfinish",{"_index":213,"title":{},"content":{"5":{"position":[[1164,33]]},"8":{"position":[[698,37],[1183,37]]},"33":{"position":[[384,34]]}},"keywords":{}}],["aux.xml",{"_index":2860,"title":{},"content":{"349":{"position":[[1167,10]]},"395":{"position":[[1177,10]]},"480":{"position":[[10788,11]]}},"keywords":{}}],["auxiliari",{"_index":2856,"title":{},"content":{"349":{"position":[[1055,9]]},"395":{"position":[[1065,9]]}},"keywords":{}}],["avaiabl",{"_index":3657,"title":{},"content":{"473":{"position":[[5171,8]]}},"keywords":{}}],["avaibl",{"_index":3930,"title":{},"content":{"488":{"position":[[1268,7]]}},"keywords":{}}],["avail",{"_index":322,"title":{"212":{"position":[[0,9]]},"511":{"position":[[0,12]]},"515":{"position":[[0,12]]}},"content":{"11":{"position":[[184,9]]},"28":{"position":[[240,10]]},"31":{"position":[[167,10]]},"33":{"position":[[176,10]]},"35":{"position":[[123,10]]},"39":{"position":[[152,9]]},"47":{"position":[[977,9]]},"50":{"position":[[246,9]]},"53":{"position":[[190,9]]},"55":{"position":[[161,9]]},"56":{"position":[[41,10]]},"68":{"position":[[161,9]]},"70":{"position":[[172,9]]},"72":{"position":[[120,9]]},"78":{"position":[[34,9]]},"80":{"position":[[130,9]]},"82":{"position":[[35,9]]},"83":{"position":[[130,9]]},"86":{"position":[[342,9]]},"89":{"position":[[1088,9]]},"91":{"position":[[174,9]]},"92":{"position":[[41,10]]},"94":{"position":[[72,9]]},"96":{"position":[[67,9]]},"97":{"position":[[172,9]]},"99":{"position":[[62,9]]},"104":{"position":[[2496,9],[2583,9]]},"107":{"position":[[21,9],[294,10]]},"117":{"position":[[942,10]]},"118":{"position":[[41,10]]},"122":{"position":[[134,9]]},"124":{"position":[[232,9],[780,13]]},"125":{"position":[[678,13]]},"129":{"position":[[159,10]]},"144":{"position":[[494,9],[616,10]]},"151":{"position":[[490,9],[612,10]]},"158":{"position":[[512,9],[634,10]]},"165":{"position":[[484,9],[606,10]]},"172":{"position":[[496,9],[618,10]]},"179":{"position":[[506,9],[628,10]]},"186":{"position":[[486,9],[608,10]]},"193":{"position":[[490,9],[612,10]]},"200":{"position":[[486,9],[608,10]]},"207":{"position":[[481,9],[603,10]]},"209":{"position":[[506,10]]},"210":{"position":[[442,10]]},"220":{"position":[[291,9],[1410,10]]},"222":{"position":[[1465,9]]},"238":{"position":[[252,10]]},"246":{"position":[[274,9]]},"255":{"position":[[1118,9]]},"258":{"position":[[21,9],[350,10]]},"264":{"position":[[664,9]]},"268":{"position":[[423,9]]},"269":{"position":[[128,9]]},"287":{"position":[[1270,10],[1749,9],[2014,9],[2182,9]]},"291":{"position":[[240,9]]},"292":{"position":[[48,9]]},"293":{"position":[[25,9],[218,10],[279,9]]},"295":{"position":[[171,9]]},"313":{"position":[[800,9]]},"314":{"position":[[775,9]]},"334":{"position":[[799,9]]},"335":{"position":[[772,9]]},"337":{"position":[[922,9]]},"338":{"position":[[252,9],[538,9]]},"345":{"position":[[159,10]]},"346":{"position":[[450,9],[518,9],[1116,9]]},"348":{"position":[[46,10]]},"353":{"position":[[231,10]]},"360":{"position":[[480,9]]},"365":{"position":[[1602,9]]},"389":{"position":[[159,10]]},"392":{"position":[[51,10]]},"406":{"position":[[282,9]]},"415":{"position":[[777,10],[1439,9],[1803,10]]},"425":{"position":[[187,9]]},"434":{"position":[[46,10],[109,9],[257,9]]},"435":{"position":[[45,9],[142,9]]},"436":{"position":[[57,9],[138,10]]},"440":{"position":[[122,9]]},"441":{"position":[[62,9],[103,9]]},"442":{"position":[[90,9]]},"443":{"position":[[115,9]]},"447":{"position":[[48,9],[194,9],[327,9]]},"448":{"position":[[46,10],[246,9]]},"449":{"position":[[48,10]]},"450":{"position":[[136,9],[177,10],[321,9]]},"451":{"position":[[46,10],[227,9],[368,9]]},"456":{"position":[[503,10]]},"458":{"position":[[104,9]]},"460":{"position":[[210,10]]},"473":{"position":[[2248,9]]},"498":{"position":[[499,9],[1079,10]]},"505":{"position":[[136,9]]},"507":{"position":[[155,9]]},"510":{"position":[[571,10]]},"511":{"position":[[1891,9],[2031,9]]},"512":{"position":[[81,10]]},"514":{"position":[[68,12]]},"515":{"position":[[1874,9],[2014,9]]},"517":{"position":[[21,9],[298,10]]},"526":{"position":[[3701,9]]}},"keywords":{}}],["averag",{"_index":1217,"title":{},"content":{"105":{"position":[[465,8]]},"341":{"position":[[763,9]]},"511":{"position":[[713,7]]},"515":{"position":[[696,7]]}},"keywords":{}}],["avg",{"_index":2951,"title":{},"content":{"361":{"position":[[780,6],[964,6],[1073,6],[1387,6],[1498,6],[1590,6],[1691,6],[1803,6],[1927,6],[2046,6],[2245,6],[2878,6]]},"414":{"position":[[443,6],[705,6],[840,6],[985,6],[1137,6],[1256,6],[1369,6],[1551,6],[1741,6],[1863,6],[1983,6],[2099,6]]}},"keywords":{}}],["avoid",{"_index":104,"title":{},"content":{"3":{"position":[[93,5]]},"269":{"position":[[866,5]]},"338":{"position":[[3628,8]]}},"keywords":{}}],["avoirdupoi",{"_index":3435,"title":{},"content":{"442":{"position":[[168,11]]}},"keywords":{}}],["aw",{"_index":1734,"title":{},"content":{"220":{"position":[[2357,3]]}},"keywords":{}}],["await",{"_index":3717,"title":{},"content":{"479":{"position":[[414,5],[467,5]]},"480":{"position":[[10118,5],[10164,5]]},"481":{"position":[[222,5]]}},"keywords":{}}],["awar",{"_index":3452,"title":{},"content":{"450":{"position":[[93,5]]}},"keywords":{}}],["away",{"_index":1238,"title":{},"content":{"105":{"position":[[2125,4]]}},"keywords":{}}],["axio",{"_index":3479,"title":{},"content":{"466":{"position":[[127,5],[250,5]]},"467":{"position":[[270,5],[840,5],[1708,5],[2126,5],[2464,5],[2746,5],[3481,5],[3946,5],[5629,5],[6953,5],[7171,5]]},"479":{"position":[[205,5],[357,5]]},"480":{"position":[[1450,5],[1945,5],[2475,5],[3110,5],[3524,5],[3937,5],[4392,6],[4751,5],[5896,5],[6101,5],[6739,5],[8350,5],[8759,5],[9168,6],[9519,5]]},"483":{"position":[[142,5]]},"484":{"position":[[107,5]]},"486":{"position":[[128,5]]}},"keywords":{}}],["b",{"_index":1276,"title":{},"content":{"117":{"position":[[61,1],[251,3],[346,2],[1164,1]]},"488":{"position":[[1800,1],[2352,3]]}},"keywords":{}}],["b00a39b1",{"_index":3332,"title":{},"content":{"415":{"position":[[2811,8]]}},"keywords":{}}],["b1",{"_index":3940,"title":{},"content":{"488":{"position":[[1840,2],[2356,4]]}},"keywords":{}}],["b1e2",{"_index":982,"title":{},"content":{"88":{"position":[[759,4],[1394,4]]}},"keywords":{}}],["b2b2",{"_index":674,"title":{},"content":{"60":{"position":[[500,4]]},"61":{"position":[[648,4]]}},"keywords":{}}],["b2ca0b098bc3",{"_index":909,"title":{},"content":{"79":{"position":[[757,14]]}},"keywords":{}}],["b2ec",{"_index":817,"title":{},"content":{"72":{"position":[[1014,4]]},"73":{"position":[[299,4]]}},"keywords":{}}],["b343",{"_index":2329,"title":{},"content":{"265":{"position":[[668,4]]}},"keywords":{}}],["b35ac559af8f",{"_index":800,"title":{},"content":{"72":{"position":[[606,14]]}},"keywords":{}}],["b35c",{"_index":1462,"title":{},"content":{"130":{"position":[[5608,4]]}},"keywords":{}}],["b3cc",{"_index":3371,"title":{},"content":{"415":{"position":[[3637,4]]}},"keywords":{}}],["b3fc",{"_index":784,"title":{},"content":{"71":{"position":[[725,4]]},"78":{"position":[[727,4]]},"80":{"position":[[604,4]]}},"keywords":{}}],["b429",{"_index":679,"title":{},"content":{"60":{"position":[[601,4]]},"61":{"position":[[752,4]]}},"keywords":{}}],["b43c",{"_index":2411,"title":{},"content":{"275":{"position":[[714,4]]}},"keywords":{}}],["b458d1bdc7ed",{"_index":850,"title":{},"content":{"74":{"position":[[589,14]]}},"keywords":{}}],["b465",{"_index":3217,"title":{},"content":{"399":{"position":[[511,4]]}},"keywords":{}}],["b534",{"_index":1520,"title":{},"content":{"132":{"position":[[769,4]]}},"keywords":{}}],["b580",{"_index":3356,"title":{},"content":{"415":{"position":[[3290,4]]}},"keywords":{}}],["b5b4c823aef8",{"_index":586,"title":{},"content":{"57":{"position":[[1791,14]]}},"keywords":{}}],["b618",{"_index":3172,"title":{},"content":{"390":{"position":[[1809,4]]},"391":{"position":[[571,4]]}},"keywords":{}}],["b673",{"_index":862,"title":{},"content":{"74":{"position":[[759,4]]}},"keywords":{}}],["b677",{"_index":2212,"title":{},"content":{"260":{"position":[[721,4]]},"268":{"position":[[614,4]]}},"keywords":{}}],["b6ed",{"_index":2345,"title":{},"content":{"266":{"position":[[1626,4]]}},"keywords":{}}],["b6f4",{"_index":2311,"title":{},"content":{"264":{"position":[[1647,4]]}},"keywords":{}}],["b74878dc",{"_index":928,"title":{},"content":{"82":{"position":[[783,9]]},"83":{"position":[[605,9]]}},"keywords":{}}],["b76c",{"_index":2319,"title":{},"content":{"265":{"position":[[364,4]]}},"keywords":{}}],["b7cc",{"_index":799,"title":{},"content":{"72":{"position":[[601,4]]}},"keywords":{}}],["b928",{"_index":2228,"title":{},"content":{"260":{"position":[[938,4]]}},"keywords":{}}],["b93d",{"_index":2277,"title":{},"content":{"262":{"position":[[1135,4]]}},"keywords":{}}],["b962",{"_index":897,"title":{},"content":{"78":{"position":[[875,4]]},"79":{"position":[[832,4]]},"80":{"position":[[752,4]]},"269":{"position":[[728,4]]}},"keywords":{}}],["b96ed268",{"_index":2225,"title":{},"content":{"260":{"position":[[918,9]]}},"keywords":{}}],["b9d1",{"_index":758,"title":{},"content":{"70":{"position":[[934,4],[1115,4],[1195,4]]},"71":{"position":[[805,4]]},"82":{"position":[[728,4],[803,4],[1036,4],[1364,4],[1418,4],[1484,4],[1841,4],[1895,4],[1945,4],[2318,4],[2372,4],[2475,4]]},"83":{"position":[[550,4],[625,4],[858,4],[1186,4],[1240,4],[1306,4],[1663,4],[1717,4],[1767,4],[2140,4],[2194,4],[2297,4]]}},"keywords":{}}],["ba518264",{"_index":2401,"title":{},"content":{"269":{"position":[[708,9]]}},"keywords":{}}],["ba69",{"_index":908,"title":{},"content":{"79":{"position":[[752,4]]}},"keywords":{}}],["bac50a8c",{"_index":2363,"title":{},"content":{"266":{"position":[[2008,9]]}},"keywords":{}}],["back",{"_index":1624,"title":{},"content":{"209":{"position":[[317,4]]},"473":{"position":[[1106,4],[1558,4],[1764,4],[1778,4],[2227,4],[2804,4],[3065,4]]},"480":{"position":[[5181,4],[5760,4],[8523,4]]},"511":{"position":[[1585,4]]},"515":{"position":[[1568,4]]}},"keywords":{}}],["backend",{"_index":2093,"title":{"465":{"position":[[0,7]]},"478":{"position":[[0,7]]}},"content":{"245":{"position":[[361,7]]},"473":{"position":[[2207,7],[3144,7],[3248,7]]},"483":{"position":[[155,8]]},"484":{"position":[[120,7]]},"485":{"position":[[355,7]]},"486":{"position":[[141,8],[643,7]]},"487":{"position":[[113,8],[771,7],[1122,8]]},"488":{"position":[[85,8],[101,7],[311,7],[771,7],[2825,8]]}},"keywords":{}}],["background",{"_index":1561,"title":{},"content":{"140":{"position":[[161,10]]},"147":{"position":[[158,10]]},"154":{"position":[[179,10]]},"161":{"position":[[152,10]]},"168":{"position":[[164,10]]},"175":{"position":[[174,10]]},"182":{"position":[[154,10]]},"189":{"position":[[158,10]]},"196":{"position":[[154,10]]},"203":{"position":[[158,10]]},"341":{"position":[[636,10]]},"385":{"position":[[198,10]]},"411":{"position":[[220,10]]}},"keywords":{}}],["backgroundcolor",{"_index":3097,"title":{},"content":{"378":{"position":[[955,18],[1791,18],[2837,18]]},"379":{"position":[[1027,18],[1880,18],[2864,18]]},"380":{"position":[[942,18],[1723,18],[2359,18]]},"382":{"position":[[1489,18]]},"383":{"position":[[1471,18]]},"384":{"position":[[1152,18]]},"385":{"position":[[157,15],[1027,18]]}},"keywords":{}}],["bad",{"_index":270,"title":{},"content":{"8":{"position":[[465,3],[539,3],[950,3],[1024,3]]},"459":{"position":[[74,3]]}},"keywords":{}}],["bafe",{"_index":2934,"title":{},"content":{"361":{"position":[[310,4]]}},"keywords":{}}],["bale",{"_index":3418,"title":{},"content":{"434":{"position":[[394,6]]}},"keywords":{}}],["balm",{"_index":1848,"title":{},"content":{"229":{"position":[[811,6]]}},"keywords":{}}],["band",{"_index":1022,"title":{},"content":{"89":{"position":[[268,4],[326,5]]},"210":{"position":[[253,5],[266,5],[288,5],[395,6]]},"212":{"position":[[94,4],[123,4],[135,4],[150,4],[163,4],[177,4],[188,4],[204,4],[327,4],[356,4],[368,4],[383,4],[396,4],[410,4],[421,4],[437,4],[608,4],[624,4],[642,4],[664,4],[686,4],[703,4],[725,4]]},"220":{"position":[[213,5],[285,5]]},"434":{"position":[[197,5]]},"451":{"position":[[455,6]]}},"keywords":{}}],["bar",{"_index":2764,"title":{},"content":{"337":{"position":[[303,3],[904,3],[984,3]]}},"keywords":{}}],["barley",{"_index":1808,"title":{},"content":{"229":{"position":[[125,8],[530,7],[555,7],[573,6]]},"320":{"position":[[291,6],[799,6],[926,6],[1031,6],[1064,6],[1085,6],[2398,6],[3224,6]]}},"keywords":{}}],["base",{"_index":113,"title":{},"content":{"3":{"position":[[210,5],[666,4],[991,4]]},"51":{"position":[[204,5]]},"63":{"position":[[75,5]]},"65":{"position":[[73,5]]},"103":{"position":[[1461,5]]},"105":{"position":[[1055,5],[1502,5],[1605,5],[2706,5]]},"119":{"position":[[96,5]]},"120":{"position":[[116,5]]},"130":{"position":[[6088,5]]},"140":{"position":[[94,5]]},"144":{"position":[[94,5]]},"147":{"position":[[91,5]]},"151":{"position":[[92,5]]},"154":{"position":[[112,5]]},"158":{"position":[[103,5]]},"161":{"position":[[85,5]]},"165":{"position":[[89,5]]},"168":{"position":[[97,5]]},"172":{"position":[[95,5]]},"175":{"position":[[107,5]]},"179":{"position":[[100,5]]},"182":{"position":[[87,5]]},"186":{"position":[[90,5]]},"189":{"position":[[91,5]]},"193":{"position":[[92,5]]},"196":{"position":[[87,5]]},"200":{"position":[[90,5]]},"203":{"position":[[91,5]]},"207":{"position":[[92,5]]},"219":{"position":[[40,5]]},"220":{"position":[[2427,4]]},"222":{"position":[[105,5]]},"225":{"position":[[83,5]]},"247":{"position":[[175,5]]},"251":{"position":[[772,5]]},"341":{"position":[[321,5]]},"350":{"position":[[571,5]]},"382":{"position":[[234,5]]},"383":{"position":[[237,5]]},"384":{"position":[[107,5]]},"396":{"position":[[161,5]]},"397":{"position":[[167,5]]},"398":{"position":[[582,5]]},"411":{"position":[[689,4]]},"413":{"position":[[613,5]]},"415":{"position":[[368,5],[1556,5]]},"434":{"position":[[385,5]]},"438":{"position":[[77,5]]},"448":{"position":[[134,5]]},"474":{"position":[[92,4],[1133,4],[1355,4]]},"510":{"position":[[551,5]]}},"keywords":{}}],["base64",{"_index":148,"title":{},"content":{"3":{"position":[[775,6]]}},"keywords":{}}],["base64.b64decode(sig_head",{"_index":157,"title":{},"content":{"3":{"position":[[1013,28]]}},"keywords":{}}],["basemap",{"_index":3678,"title":{},"content":{"474":{"position":[[155,8],[187,8],[214,7],[1150,8]]}},"keywords":{}}],["basi",{"_index":3239,"title":{},"content":{"413":{"position":[[467,5]]}},"keywords":{}}],["basic",{"_index":2142,"title":{},"content":{"252":{"position":[[1297,5]]},"300":{"position":[[70,9]]},"342":{"position":[[22,5]]},"360":{"position":[[93,5]]},"411":{"position":[[94,5]]}},"keywords":{}}],["batch",{"_index":1320,"title":{"131":{"position":[[4,5]]},"132":{"position":[[8,7]]},"133":{"position":[[8,5]]}},"content":{"129":{"position":[[210,6],[223,5],[253,7],[265,6],[280,5]]},"130":{"position":[[6,6],[914,5],[4946,5],[5105,5],[5241,5],[5300,5],[5375,5]]},"131":{"position":[[173,5]]},"132":{"position":[[5,6],[162,5]]},"133":{"position":[[28,5]]},"360":{"position":[[926,6]]}},"keywords":{}}],["batch/{batch_id",{"_index":1475,"title":{},"content":{"131":{"position":[[5,17]]}},"keywords":{}}],["batch/{id",{"_index":1321,"title":{},"content":{"129":{"position":[[233,11]]}},"keywords":{}}],["batch/{id}/retri",{"_index":1322,"title":{},"content":{"129":{"position":[[290,17]]},"133":{"position":[[5,17]]}},"keywords":{}}],["batchid",{"_index":1452,"title":{},"content":{"130":{"position":[[5079,8]]},"317":{"position":[[134,8],[180,7],[267,7]]},"346":{"position":[[476,7]]}},"keywords":{}}],["batchid\"key",{"_index":2922,"title":{},"content":{"360":{"position":[[947,12]]}},"keywords":{}}],["bbd3a3e8",{"_index":731,"title":{},"content":{"65":{"position":[[783,9]]},"66":{"position":[[410,9]]}},"keywords":{}}],["bc93",{"_index":2356,"title":{},"content":{"266":{"position":[[1790,4]]}},"keywords":{}}],["bcf95a771be8",{"_index":2381,"title":{},"content":{"266":{"position":[[2419,13]]}},"keywords":{}}],["bdbb",{"_index":578,"title":{},"content":{"57":{"position":[[1722,4]]}},"keywords":{}}],["bdea",{"_index":610,"title":{},"content":{"57":{"position":[[2243,4]]}},"keywords":{}}],["bdef",{"_index":2324,"title":{},"content":{"265":{"position":[[594,4]]}},"keywords":{}}],["be",{"_index":377,"title":{},"content":{"26":{"position":[[223,5]]},"29":{"position":[[293,5]]},"32":{"position":[[220,5]]},"34":{"position":[[229,5]]},"57":{"position":[[908,5],[1200,5]]},"59":{"position":[[1738,5],[2030,5]]},"63":{"position":[[650,5],[942,5]]},"65":{"position":[[269,5]]},"70":{"position":[[482,5],[701,5]]},"71":{"position":[[185,5],[465,5]]},"78":{"position":[[274,5],[493,5]]},"79":{"position":[[211,5],[491,5]]},"82":{"position":[[275,5],[494,5]]},"88":{"position":[[292,5]]},"103":{"position":[[312,5]]},"130":{"position":[[254,5],[4215,5]]},"135":{"position":[[286,5]]},"218":{"position":[[407,5]]},"220":{"position":[[1109,5]]},"253":{"position":[[673,5],[744,5]]},"255":{"position":[[267,5]]},"260":{"position":[[369,5]]},"262":{"position":[[257,5]]},"264":{"position":[[1006,5]]},"277":{"position":[[297,5]]},"282":{"position":[[259,5]]},"293":{"position":[[446,5]]},"308":{"position":[[303,5]]},"341":{"position":[[476,5]]},"346":{"position":[[1267,5],[1547,5]]},"357":{"position":[[925,5],[1023,5]]},"365":{"position":[[761,5]]},"390":{"position":[[761,5],[1053,5]]},"420":{"position":[[549,5]]},"430":{"position":[[172,5]]},"502":{"position":[[464,5]]}},"keywords":{}}],["bean",{"_index":1810,"title":{},"content":{"229":{"position":[[142,6],[155,6],[850,6],[950,6],[1224,6],[1350,6],[1771,6],[2003,6],[2101,6],[2375,6],[2388,6],[2486,5]]},"320":{"position":[[307,5],[322,5],[341,6],[697,4],[716,4],[735,4],[754,5],[1050,5],[1115,5],[1685,4],[1739,5]]}},"keywords":{}}],["bearer",{"_index":232,"title":{},"content":{"5":{"position":[[1717,6]]},"6":{"position":[[144,6]]},"7":{"position":[[114,6]]},"8":{"position":[[144,6]]},"9":{"position":[[301,6]]},"57":{"position":[[1594,6]]},"58":{"position":[[173,6]]},"59":{"position":[[2245,6]]},"60":{"position":[[340,6]]},"61":{"position":[[476,6]]},"62":{"position":[[259,6]]},"63":{"position":[[1320,6]]},"64":{"position":[[175,6]]},"65":{"position":[[556,6]]},"66":{"position":[[172,6]]},"70":{"position":[[815,6]]},"71":{"position":[[579,6]]},"72":{"position":[[475,6]]},"73":{"position":[[177,6]]},"74":{"position":[[363,6]]},"75":{"position":[[319,6]]},"76":{"position":[[187,6]]},"78":{"position":[[607,6]]},"79":{"position":[[605,6]]},"80":{"position":[[477,6]]},"82":{"position":[[608,6]]},"83":{"position":[[423,6]]},"88":{"position":[[579,6]]},"89":{"position":[[793,6]]},"93":{"position":[[542,6]]},"94":{"position":[[176,6]]},"95":{"position":[[754,6]]},"96":{"position":[[323,6]]},"97":{"position":[[285,6]]},"98":{"position":[[597,6]]},"99":{"position":[[264,6]]},"100":{"position":[[546,6]]},"101":{"position":[[897,6]]},"109":{"position":[[131,6]]},"110":{"position":[[191,6]]},"111":{"position":[[477,6]]},"112":{"position":[[350,6]]},"113":{"position":[[420,6]]},"114":{"position":[[320,6]]},"119":{"position":[[221,6]]},"120":{"position":[[242,6]]},"121":{"position":[[191,6]]},"122":{"position":[[489,6]]},"123":{"position":[[262,6]]},"124":{"position":[[342,6]]},"125":{"position":[[262,6]]},"126":{"position":[[258,6]]},"127":{"position":[[204,6]]},"130":{"position":[[4504,6]]},"133":{"position":[[330,6]]},"140":{"position":[[353,6]]},"141":{"position":[[283,6]]},"142":{"position":[[171,6]]},"144":{"position":[[201,6]]},"147":{"position":[[350,6]]},"148":{"position":[[314,6]]},"149":{"position":[[166,6]]},"151":{"position":[[199,6]]},"154":{"position":[[371,6]]},"155":{"position":[[297,6]]},"156":{"position":[[189,6]]},"158":{"position":[[210,6]]},"161":{"position":[[344,6]]},"162":{"position":[[323,6]]},"163":{"position":[[162,6]]},"165":{"position":[[196,6]]},"168":{"position":[[356,6]]},"169":{"position":[[310,6]]},"170":{"position":[[174,6]]},"172":{"position":[[202,6]]},"175":{"position":[[366,6]]},"176":{"position":[[270,6]]},"177":{"position":[[184,6]]},"179":{"position":[[207,6]]},"182":{"position":[[346,6]]},"183":{"position":[[255,6]]},"184":{"position":[[164,6]]},"186":{"position":[[197,6]]},"189":{"position":[[350,6]]},"190":{"position":[[258,6]]},"191":{"position":[[168,6]]},"193":{"position":[[199,6]]},"196":{"position":[[346,6]]},"197":{"position":[[280,6]]},"198":{"position":[[164,6]]},"200":{"position":[[197,6]]},"203":{"position":[[350,6]]},"204":{"position":[[259,6]]},"205":{"position":[[168,6]]},"207":{"position":[[199,6]]},"218":{"position":[[587,6]]},"219":{"position":[[268,6]]},"220":{"position":[[1504,6]]},"221":{"position":[[156,6]]},"222":{"position":[[1725,6]]},"223":{"position":[[310,6]]},"224":{"position":[[212,6]]},"225":{"position":[[183,6]]},"239":{"position":[[771,6]]},"255":{"position":[[500,6]]},"260":{"position":[[602,6]]},"261":{"position":[[148,6]]},"262":{"position":[[916,6]]},"263":{"position":[[828,6]]},"264":{"position":[[1188,6]]},"265":{"position":[[196,6]]},"266":{"position":[[1217,6]]},"267":{"position":[[446,6]]},"268":{"position":[[556,6]]},"269":{"position":[[555,6]]},"272":{"position":[[170,6]]},"273":{"position":[[190,6]]},"274":{"position":[[149,6]]},"275":{"position":[[493,6]]},"277":{"position":[[517,6]]},"278":{"position":[[168,6]]},"279":{"position":[[293,6]]},"280":{"position":[[318,6]]},"282":{"position":[[415,6]]},"283":{"position":[[172,6]]},"284":{"position":[[262,6]]},"285":{"position":[[287,6]]},"297":{"position":[[127,6]]},"298":{"position":[[435,6]]},"299":{"position":[[127,6]]},"301":{"position":[[731,6],[1224,6],[1688,6],[2098,6],[2445,6]]},"302":{"position":[[856,6],[1381,6],[1898,6],[2382,6],[2782,6]]},"303":{"position":[[949,6],[1462,6],[1987,6],[2479,6],[2878,6]]},"304":{"position":[[1026,6],[1561,6],[2080,6],[2538,6],[2931,6]]},"305":{"position":[[919,6],[1406,6],[1894,6],[2358,6],[2729,6]]},"328":{"position":[[897,6]]},"329":{"position":[[566,6]]},"330":{"position":[[923,6]]},"331":{"position":[[781,6]]},"332":{"position":[[763,6]]},"346":{"position":[[1922,6]]},"347":{"position":[[124,6]]},"348":{"position":[[151,6]]},"349":{"position":[[175,6]]},"350":{"position":[[144,6]]},"351":{"position":[[143,6]]},"352":{"position":[[337,6]]},"353":{"position":[[802,6]]},"378":{"position":[[553,6],[1377,6],[2740,6],[3473,6]]},"379":{"position":[[613,6],[1454,6],[2777,6],[3516,6]]},"380":{"position":[[535,6],[1304,6],[2300,6],[2971,6]]},"382":{"position":[[1319,6]]},"383":{"position":[[1310,6]]},"384":{"position":[[1020,6]]},"385":{"position":[[937,6]]},"390":{"position":[[1375,6]]},"391":{"position":[[134,6]]},"392":{"position":[[161,6]]},"393":{"position":[[175,6]]},"394":{"position":[[260,6]]},"395":{"position":[[175,6]]},"396":{"position":[[268,6]]},"397":{"position":[[274,6]]},"398":{"position":[[155,6]]},"399":{"position":[[235,6]]},"400":{"position":[[204,6]]},"401":{"position":[[265,6]]},"408":{"position":[[332,6]]},"424":{"position":[[196,6]]},"425":{"position":[[273,6]]},"426":{"position":[[146,6]]},"427":{"position":[[49,6]]},"428":{"position":[[426,6]]},"429":{"position":[[561,6],[858,6]]},"430":{"position":[[265,6],[474,6]]},"461":{"position":[[59,6]]},"467":{"position":[[2105,7],[3426,7],[3910,7],[6679,7]]},"480":{"position":[[3011,7],[3838,7],[4621,7],[6080,7],[6301,7],[8738,7],[9498,7]]},"500":{"position":[[109,6]]},"501":{"position":[[309,6]]},"502":{"position":[[759,6]]},"503":{"position":[[619,6]]},"504":{"position":[[137,6]]},"519":{"position":[[618,6]]},"520":{"position":[[620,6]]},"521":{"position":[[607,6]]},"522":{"position":[[609,6]]},"523":{"position":[[804,6]]},"524":{"position":[[603,6]]},"525":{"position":[[793,6]]},"526":{"position":[[592,6]]}},"keywords":{}}],["becom",{"_index":1713,"title":{},"content":{"220":{"position":[[1403,6]]},"341":{"position":[[149,6]]}},"keywords":{}}],["beet",{"_index":1849,"title":{},"content":{"229":{"position":[[818,7],[1210,5],[1720,5]]},"320":{"position":[[2461,4]]}},"keywords":{}}],["befor",{"_index":551,"title":{},"content":{"57":{"position":[[590,6]]},"59":{"position":[[486,6],[892,6],[1102,6]]},"86":{"position":[[158,6]]},"126":{"position":[[145,6]]},"130":{"position":[[5823,6],[5878,6],[6287,6]]},"133":{"position":[[200,7]]},"244":{"position":[[618,6]]},"264":{"position":[[863,6]]},"387":{"position":[[708,6]]},"428":{"position":[[263,6]]},"467":{"position":[[5713,6]]}},"keywords":{}}],["beforecreatedtim",{"_index":550,"title":{},"content":{"57":{"position":[[544,17]]},"59":{"position":[[440,17]]}},"keywords":{}}],["beforeendtim",{"_index":632,"title":{},"content":{"59":{"position":[[1024,13]]}},"keywords":{}}],["beforestarttim",{"_index":630,"title":{},"content":{"59":{"position":[[810,15]]}},"keywords":{}}],["begin",{"_index":168,"title":{},"content":{"5":{"position":[[139,5]]},"422":{"position":[[215,5]]}},"keywords":{}}],["behav_test_field",{"_index":2368,"title":{},"content":{"266":{"position":[[2069,19]]}},"keywords":{}}],["behavior",{"_index":2136,"title":{},"content":{"252":{"position":[[862,9]]},"293":{"position":[[354,8]]}},"keywords":{}}],["belgian",{"_index":1850,"title":{},"content":{"229":{"position":[[826,8]]}},"keywords":{}}],["belong",{"_index":971,"title":{},"content":{"88":{"position":[[65,6]]},"239":{"position":[[51,6]]},"343":{"position":[[172,6]]},"346":{"position":[[44,6]]},"353":{"position":[[446,6]]},"390":{"position":[[54,6]]}},"keywords":{}}],["below",{"_index":320,"title":{},"content":{"11":{"position":[[156,5]]},"13":{"position":[[84,5]]},"55":{"position":[[116,5]]},"68":{"position":[[116,5]]},"86":{"position":[[297,5]]},"91":{"position":[[129,5]]},"101":{"position":[[575,5]]},"105":{"position":[[717,5]]},"130":{"position":[[1015,6]]},"220":{"position":[[2831,5]]},"239":{"position":[[176,6]]},"255":{"position":[[1049,6]]},"264":{"position":[[236,6]]},"286":{"position":[[4,5]]},"292":{"position":[[195,6]]},"295":{"position":[[126,5]]},"338":{"position":[[3083,6]]},"346":{"position":[[169,6]]},"360":{"position":[[422,5],[592,6]]},"361":{"position":[[35,5]]},"363":{"position":[[112,5]]},"364":{"position":[[159,5]]},"385":{"position":[[60,6]]},"390":{"position":[[179,6]]},"406":{"position":[[237,5]]},"414":{"position":[[224,5]]},"419":{"position":[[94,5]]},"420":{"position":[[59,5]]},"422":{"position":[[283,5]]},"473":{"position":[[323,6]]},"498":{"position":[[454,5]]},"507":{"position":[[73,5]]}},"keywords":{}}],["bent",{"_index":2677,"title":{},"content":{"320":{"position":[[358,4]]}},"keywords":{}}],["bermuda",{"_index":1997,"title":{},"content":{"229":{"position":[[2838,8]]},"320":{"position":[[372,7]]}},"keywords":{}}],["besid",{"_index":3290,"title":{},"content":{"415":{"position":[[1608,7]]},"502":{"position":[[214,7]]}},"keywords":{}}],["best",{"_index":474,"title":{},"content":{"51":{"position":[[291,4]]},"74":{"position":[[134,4]]},"104":{"position":[[509,4]]},"350":{"position":[[623,4]]},"398":{"position":[[634,4]]},"510":{"position":[[503,4]]}},"keywords":{}}],["beta",{"_index":344,"title":{"40":{"position":[[7,6]]},"49":{"position":[[0,4]]},"54":{"position":[[0,4]]},"56":{"position":[[7,6]]},"67":{"position":[[0,4]]},"84":{"position":[[0,4]]},"85":{"position":[[0,4]]},"87":{"position":[[7,6]]},"90":{"position":[[0,4]]},"92":{"position":[[13,6]]}},"content":{"11":{"position":[[906,6]]},"130":{"position":[[3190,7]]},"307":{"position":[[187,4],[202,4]]},"322":{"position":[[249,4],[264,4]]},"439":{"position":[[11,4]]},"443":{"position":[[35,6]]},"444":{"position":[[11,4]]},"447":{"position":[[244,4]]},"449":{"position":[[11,4]]}},"keywords":{}}],["between",{"_index":1132,"title":{},"content":{"103":{"position":[[571,7],[752,7],[855,7],[1384,7],[1626,7],[1721,7]]},"117":{"position":[[150,7]]},"121":{"position":[[89,7]]},"209":{"position":[[728,7]]},"210":{"position":[[112,7]]},"220":{"position":[[789,7],[901,7]]},"251":{"position":[[416,7],[885,7]]},"420":{"position":[[377,7]]}},"keywords":{}}],["bf2c",{"_index":2308,"title":{},"content":{"264":{"position":[[1583,4]]}},"keywords":{}}],["bf3d",{"_index":2451,"title":{},"content":{"282":{"position":[[604,4]]},"283":{"position":[[382,4]]}},"keywords":{}}],["bfd5",{"_index":3155,"title":{},"content":{"390":{"position":[[1502,4]]},"391":{"position":[[264,4]]}},"keywords":{}}],["bgcolor=\\\"white\\\">\\r\\n

502",{"_index":272,"title":{},"content":{"8":{"position":[[501,37],[986,37]]}},"keywords":{}}],["big",{"_index":947,"title":{},"content":{"82":{"position":[[1520,3]]},"83":{"position":[[1342,3]]}},"keywords":{}}],["bigger",{"_index":1776,"title":{},"content":{"222":{"position":[[1928,6]]},"459":{"position":[[111,6]]}},"keywords":{}}],["bin",{"_index":1423,"title":{},"content":{"130":{"position":[[3574,5],[3640,5],[3705,5],[3782,5],[3860,5],[3930,5],[4019,5]]}},"keywords":{}}],["bit",{"_index":1024,"title":{},"content":{"89":{"position":[[289,3]]},"212":{"position":[[300,3]]}},"keywords":{}}],["black",{"_index":1820,"title":{},"content":{"229":{"position":[[228,6]]},"320":{"position":[[313,5],[388,5]]}},"keywords":{}}],["blind",{"_index":45,"title":{},"content":{"0":{"position":[[606,5]]}},"keywords":{}}],["block",{"_index":1283,"title":{},"content":{"117":{"position":[[509,6]]},"120":{"position":[[453,8]]},"122":{"position":[[159,8],[306,5],[538,8]]}},"keywords":{}}],["blue",{"_index":1652,"title":{},"content":{"212":{"position":[[118,4],[130,4],[351,4],[363,4]]},"320":{"position":[[410,4]]},"451":{"position":[[474,5]]}},"keywords":{}}],["blue)th",{"_index":1029,"title":{},"content":{"89":{"position":[[357,8]]}},"keywords":{}}],["blueberri",{"_index":1986,"title":{},"content":{"229":{"position":[[2685,11]]},"320":{"position":[[424,9]]}},"keywords":{}}],["bodi",{"_index":126,"title":{},"content":{"3":{"position":[[397,4],[483,4],[801,4]]},"5":{"position":[[460,5]]},"60":{"position":[[86,5]]},"61":{"position":[[206,5]]},"75":{"position":[[109,5]]},"111":{"position":[[94,4],[271,4]]},"112":{"position":[[92,4],[189,4]]},"113":{"position":[[116,4],[213,4]]},"141":{"position":[[105,5]]},"144":{"position":[[344,7]]},"148":{"position":[[102,5]]},"151":{"position":[[340,7]]},"155":{"position":[[123,5]]},"158":{"position":[[362,7]]},"162":{"position":[[96,5]]},"165":{"position":[[334,7]]},"169":{"position":[[108,5]]},"172":{"position":[[346,7]]},"176":{"position":[[118,5]]},"179":{"position":[[356,7]]},"183":{"position":[[98,5]]},"186":{"position":[[336,7]]},"190":{"position":[[102,5]]},"193":{"position":[[340,7]]},"197":{"position":[[98,5]]},"200":{"position":[[336,7]]},"204":{"position":[[102,5]]},"207":{"position":[[340,7]]},"222":{"position":[[535,4],[871,5]]},"248":{"position":[[109,5]]},"262":{"position":[[84,4],[434,5],[533,5]]},"263":{"position":[[219,4],[468,5]]},"266":{"position":[[170,5],[866,5]]},"267":{"position":[[226,5],[240,5]]},"268":{"position":[[249,5],[327,4],[387,4]]},"275":{"position":[[171,5]]},"279":{"position":[[136,4],[165,5]]},"280":{"position":[[152,4],[181,5]]},"284":{"position":[[110,4],[139,5]]},"285":{"position":[[136,4],[165,5]]},"298":{"position":[[53,5]]},"301":{"position":[[1549,5],[1960,5]]},"302":{"position":[[1738,5],[2223,5]]},"303":{"position":[[1818,5],[2311,5]]},"304":{"position":[[1939,5],[2398,5]]},"305":{"position":[[1725,5],[2190,5]]},"353":{"position":[[676,5]]},"378":{"position":[[2590,5]]},"379":{"position":[[2639,5]]},"380":{"position":[[2190,5]]},"382":{"position":[[1095,5]]},"383":{"position":[[1098,5]]},"384":{"position":[[837,5]]},"502":{"position":[[122,5]]},"503":{"position":[[73,5],[264,5]]}},"keywords":{}}],["bold",{"_index":2785,"title":{},"content":{"338":{"position":[[2151,7],[2252,7]]}},"keywords":{}}],["boolean",{"_index":1044,"title":{},"content":{"89":{"position":[[606,7]]},"314":{"position":[[850,7]]},"316":{"position":[[258,7]]},"317":{"position":[[1643,7]]},"337":{"position":[[191,7]]},"365":{"position":[[603,7]]},"378":{"position":[[1081,10],[1113,9],[1917,10],[1949,9],[2963,10],[2995,9]]},"379":{"position":[[1153,10],[1185,9],[2006,10],[2038,9],[2990,10],[3022,9]]},"380":{"position":[[1068,10],[1100,9],[1849,10],[1881,9],[2485,10],[2517,9]]},"382":{"position":[[1615,10],[1647,9]]},"383":{"position":[[1597,10],[1629,9]]},"384":{"position":[[1278,10],[1310,9]]},"385":{"position":[[491,7],[631,7],[1153,10],[1185,9]]}},"keywords":{}}],["boot",{"_index":1968,"title":{},"content":{"229":{"position":[[2449,5]]},"320":{"position":[[436,4]]}},"keywords":{}}],["borag",{"_index":2680,"title":{},"content":{"320":{"position":[[457,6]]}},"keywords":{}}],["both",{"_index":38,"title":{},"content":{"0":{"position":[[475,4],[1210,4]]},"3":{"position":[[1052,4]]},"117":{"position":[[477,4]]},"122":{"position":[[286,4]]},"222":{"position":[[792,4],[831,5]]},"246":{"position":[[1094,4]]},"262":{"position":[[395,5]]},"279":{"position":[[94,4]]},"280":{"position":[[111,4]]},"313":{"position":[[666,4]]},"314":{"position":[[642,4]]},"334":{"position":[[665,4]]},"335":{"position":[[639,4]]},"343":{"position":[[318,4]]},"511":{"position":[[2117,4]]},"515":{"position":[[2102,4]]}},"keywords":{}}],["bottom",{"_index":3840,"title":{},"content":{"480":{"position":[[11392,6]]}},"keywords":{}}],["bound",{"_index":2156,"title":{},"content":{"253":{"position":[[442,5]]},"473":{"position":[[3352,6],[4668,6],[4690,6],[4948,6],[5243,5],[6454,6],[6610,6]]},"474":{"position":[[1240,7]]}},"keywords":{}}],["boundari",{"_index":331,"title":{"21":{"position":[[6,8]]},"22":{"position":[[6,8]]},"23":{"position":[[6,8]]},"103":{"position":[[6,8]]},"228":{"position":[[6,8]]},"230":{"position":[[6,8]]},"231":{"position":[[6,8]]},"257":{"position":[[6,8]]},"271":{"position":[[0,10]]},"272":{"position":[[8,10]]},"273":{"position":[[6,8]]},"274":{"position":[[11,8]]},"275":{"position":[[14,8]]},"288":{"position":[[0,8]]}},"content":{"11":{"position":[[380,8],[402,8],[426,8]]},"22":{"position":[[144,10],[248,10]]},"23":{"position":[[144,10],[248,10]]},"103":{"position":[[218,10]]},"105":{"position":[[99,8],[2751,9]]},"116":{"position":[[69,11]]},"130":{"position":[[950,9]]},"209":{"position":[[377,8]]},"232":{"position":[[312,8]]},"233":{"position":[[286,8],[308,8],[365,8],[409,8]]},"234":{"position":[[25,10],[128,10]]},"251":{"position":[[21,10],[787,11]]},"252":{"position":[[293,11],[656,8],[1511,8]]},"253":{"position":[[517,8],[603,8]]},"258":{"position":[[1057,10],[1136,8],[1231,8],[1314,8]]},"260":{"position":[[795,13],[1395,13]]},"262":{"position":[[233,10],[1207,13]]},"263":{"position":[[383,10]]},"266":{"position":[[1754,13],[2378,13]]},"268":{"position":[[205,10]]},"269":{"position":[[89,8],[275,9]]},"272":{"position":[[68,10],[299,8]]},"273":{"position":[[80,8],[336,8]]},"274":{"position":[[67,8],[280,8]]},"275":{"position":[[70,8],[117,8]]},"287":{"position":[[640,8],[930,13],[1251,10],[1534,13]]},"288":{"position":[[39,11],[110,9],[129,8],[177,11],[189,10],[277,9],[324,11],[341,8],[429,9],[455,8],[502,9],[543,8],[593,8],[626,8],[674,9],[715,8],[796,8],[829,8],[892,9],[967,8],[1006,8],[1039,8],[1123,8],[1187,8],[1226,8],[1249,8],[1289,8],[1484,8],[2233,10],[2312,8],[2407,8],[2490,8]]},"292":{"position":[[31,8],[122,10],[149,11]]},"293":{"position":[[192,8],[245,9],[301,8]]},"341":{"position":[[336,10]]},"342":{"position":[[277,8]]},"343":{"position":[[240,8]]},"387":{"position":[[746,10]]},"411":{"position":[[159,10]]},"434":{"position":[[90,10],[132,8]]},"435":{"position":[[105,10]]},"444":{"position":[[181,10]]},"448":{"position":[[179,9]]}},"keywords":{}}],["boundary'",{"_index":2482,"title":{},"content":{"288":{"position":[[1445,10]]}},"keywords":{}}],["boundary/shape/area",{"_index":2118,"title":{},"content":{"251":{"position":[[43,19]]},"253":{"position":[[623,19]]}},"keywords":{}}],["boundaryid",{"_index":368,"title":{},"content":{"22":{"position":[[101,13]]},"23":{"position":[[101,13]]}},"keywords":{}}],["boundery_typ",{"_index":3564,"title":{},"content":{"467":{"position":[[6146,13],[6886,14]]}},"keywords":{}}],["bounderytyp",{"_index":3603,"title":{},"content":{"473":{"position":[[780,13]]}},"keywords":{}}],["brand",{"_index":64,"title":{},"content":{"2":{"position":[[116,7]]},"242":{"position":[[105,6]]},"246":{"position":[[324,6]]},"251":{"position":[[221,7]]},"357":{"position":[[1244,5]]},"361":{"position":[[3192,8],[3276,8]]},"414":{"position":[[2761,8],[2855,8]]}},"keywords":{}}],["brandt",{"_index":946,"title":{},"content":{"82":{"position":[[1512,7],[1578,7]]},"83":{"position":[[1334,7],[1400,7]]}},"keywords":{}}],["break",{"_index":133,"title":{},"content":{"3":{"position":[[529,7]]},"253":{"position":[[898,8]]}},"keywords":{}}],["bri",{"_index":3846,"title":{},"content":{"480":{"position":[[11562,3],[11942,3]]}},"keywords":{}}],["brian",{"_index":728,"title":{},"content":{"65":{"position":[[724,6]]},"66":{"position":[[351,6]]}},"keywords":{}}],["briefli",{"_index":3973,"title":{},"content":{"498":{"position":[[3,7]]}},"keywords":{}}],["broad",{"_index":1852,"title":{},"content":{"229":{"position":[[843,6]]}},"keywords":{}}],["broccoli",{"_index":1853,"title":{},"content":{"229":{"position":[[857,10]]}},"keywords":{}}],["bromegrass",{"_index":1992,"title":{},"content":{"229":{"position":[[2756,11],[2776,11]]},"320":{"position":[[662,10],[2233,10]]}},"keywords":{}}],["brows",{"_index":2565,"title":{},"content":{"308":{"position":[[54,6]]}},"keywords":{}}],["brussel",{"_index":1854,"title":{},"content":{"229":{"position":[[868,9]]}},"keywords":{}}],["brx",{"_index":3841,"title":{},"content":{"480":{"position":[[11429,3],[11852,4]]}},"keywords":{}}],["btw",{"_index":3751,"title":{},"content":{"480":{"position":[[3708,4],[4099,4],[7803,4]]},"487":{"position":[[620,4]]}},"keywords":{}}],["bu",{"_index":2956,"title":{},"content":{"361":{"position":[[871,4],[936,4],[1226,4],[1897,4],[2499,4],[2614,4]]},"368":{"position":[[265,5],[284,5]]},"414":{"position":[[1463,4],[1528,4],[1646,4],[1711,4],[2354,4],[2468,4]]},"416":{"position":[[268,5],[287,5]]}},"keywords":{}}],["bu/ac",{"_index":2988,"title":{},"content":{"361":{"position":[[1777,7],[2015,7]]},"368":{"position":[[204,8],[310,8]]},"414":{"position":[[1830,7],[1951,7]]},"416":{"position":[[207,8],[313,8]]}},"keywords":{}}],["bucket",{"_index":1731,"title":{},"content":{"220":{"position":[[2260,6],[2388,7]]},"367":{"position":[[378,6],[658,6],[940,6],[1221,6],[1510,6],[1797,6],[2084,6],[2366,6],[2648,6],[2936,6],[3216,6],[3496,6],[3783,6],[4065,6],[4354,6]]}},"keywords":{}}],["bucketkey",{"_index":1720,"title":{},"content":{"220":{"position":[[1770,12]]},"221":{"position":[[385,12]]}},"keywords":{}}],["bucketnam",{"_index":1717,"title":{},"content":{"220":{"position":[[1737,13]]},"221":{"position":[[352,13]]}},"keywords":{}}],["bucketregion",{"_index":1722,"title":{},"content":{"220":{"position":[[1811,15]]},"221":{"position":[[426,15]]}},"keywords":{}}],["buckwheat",{"_index":1856,"title":{},"content":{"229":{"position":[[887,11]]},"320":{"position":[[467,9]]}},"keywords":{}}],["buffer",{"_index":1220,"title":{},"content":{"105":{"position":[[586,6],[696,6]]}},"keywords":{}}],["build",{"_index":81,"title":{},"content":{"2":{"position":[[383,8]]},"418":{"position":[[507,8]]},"422":{"position":[[74,8]]},"485":{"position":[[367,5]]},"487":{"position":[[130,5],[307,5],[783,5]]},"488":{"position":[[866,5]]}},"keywords":{}}],["built",{"_index":1545,"title":{},"content":{"135":{"position":[[481,5]]},"136":{"position":[[25,5]]},"340":{"position":[[272,5]]},"418":{"position":[[618,5]]},"422":{"position":[[352,5]]}},"keywords":{}}],["busi",{"_index":2147,"title":{},"content":{"253":{"position":[[80,8]]}},"keywords":{}}],["button",{"_index":2566,"title":{},"content":{"308":{"position":[[61,6]]},"473":{"position":[[931,6]]},"482":{"position":[[270,8]]},"483":{"position":[[31,6]]}},"keywords":{}}],["byintersectionthreshold",{"_index":2331,"title":{},"content":{"266":{"position":[[221,23]]}},"keywords":{}}],["byte",{"_index":129,"title":{},"content":{"3":{"position":[[491,6]]}},"keywords":{}}],["c",{"_index":3942,"title":{},"content":{"488":{"position":[[1881,1],[2361,3]]},"511":{"position":[[109,2],[202,2],[298,2],[399,2],[509,2],[622,2],[1431,2]]},"515":{"position":[[92,2],[185,2],[281,2],[382,2],[492,2],[605,2],[1414,2]]},"519":{"position":[[944,4],[1105,4],[1265,4],[1425,4],[2737,4],[2893,4]]},"520":{"position":[[1092,4],[2203,4],[3463,4]]},"521":{"position":[[910,4],[1071,4],[1231,4],[1391,4],[2703,4],[2859,4]]},"522":{"position":[[1058,4],[2169,4],[3429,4]]},"523":{"position":[[1132,4],[1293,4],[1453,4],[1613,4],[2925,4],[3081,4]]},"524":{"position":[[1877,4],[2984,4],[3294,4]]},"525":{"position":[[1098,4],[1259,4],[1419,4],[1579,4],[2891,4],[3047,4]]},"526":{"position":[[1843,4],[2950,4],[3260,4]]}},"keywords":{}}],["c01b1631f274",{"_index":1513,"title":{},"content":{"132":{"position":[[645,14]]}},"keywords":{}}],["c0392b",{"_index":3127,"title":{},"content":{"385":{"position":[[251,9]]}},"keywords":{}}],["c0cb84d0",{"_index":938,"title":{},"content":{"82":{"position":[[1016,9]]},"83":{"position":[[838,9]]}},"keywords":{}}],["c1",{"_index":3944,"title":{},"content":{"488":{"position":[[1921,2],[2365,4]]}},"keywords":{}}],["c21e6495",{"_index":1459,"title":{},"content":{"130":{"position":[[5588,9]]}},"keywords":{}}],["c329f54f",{"_index":2377,"title":{},"content":{"266":{"position":[[2394,9]]}},"keywords":{}}],["c3ad6c7b",{"_index":2873,"title":{},"content":{"352":{"position":[[481,9],[521,9]]}},"keywords":{}}],["c3po_impl",{"_index":708,"title":{},"content":{"63":{"position":[[1488,17]]},"64":{"position":[[355,17]]}},"keywords":{}}],["c472",{"_index":2878,"title":{},"content":{"352":{"position":[[531,4]]}},"keywords":{}}],["c73a",{"_index":1001,"title":{},"content":{"88":{"position":[[1248,4],[1833,4]]}},"keywords":{}}],["c80000",{"_index":3188,"title":{},"content":{"396":{"position":[[444,10]]},"415":{"position":[[858,10]]}},"keywords":{}}],["c99f",{"_index":1510,"title":{},"content":{"132":{"position":[[630,4]]}},"keywords":{}}],["cabbag",{"_index":1857,"title":{},"content":{"229":{"position":[[899,8],[1009,8],[1299,8],[1365,8],[1731,8],[1813,8],[2054,8],[2115,8]]}},"keywords":{}}],["cacde0d5",{"_index":2305,"title":{},"content":{"264":{"position":[[1563,9]]}},"keywords":{}}],["cach",{"_index":2814,"title":{},"content":{"338":{"position":[[3500,6]]},"486":{"position":[[434,6]]}},"keywords":{}}],["calcium",{"_index":813,"title":{},"content":{"72":{"position":[[965,10]]}},"keywords":{}}],["calcul",{"_index":1222,"title":{},"content":{"105":{"position":[[637,11],[755,12]]},"215":{"position":[[48,9]]},"320":{"position":[[39,9],[149,9]]},"357":{"position":[[1835,10]]},"434":{"position":[[374,10]]},"480":{"position":[[10654,9]]}},"keywords":{}}],["calibr",{"_index":1660,"title":{},"content":{"212":{"position":[[261,10],[497,10]]},"251":{"position":[[589,13]]}},"keywords":{}}],["call",{"_index":256,"title":{"8":{"position":[[11,5]]}},"content":{"8":{"position":[[22,5],[48,5],[233,6]]},"47":{"position":[[466,6]]},"48":{"position":[[566,5]]},"95":{"position":[[148,6],[321,6],[557,6]]},"96":{"position":[[132,6]]},"107":{"position":[[75,4]]},"232":{"position":[[80,5]]},"234":{"position":[[165,4]]},"242":{"position":[[408,5]]},"246":{"position":[[486,4]]},"251":{"position":[[350,6]]},"258":{"position":[[68,4]]},"353":{"position":[[110,4]]},"473":{"position":[[70,6],[917,6],[1453,7]]},"480":{"position":[[10395,6],[12239,5],[12373,4],[12500,6]]},"482":{"position":[[232,6]]},"483":{"position":[[17,6]]},"485":{"position":[[457,4]]},"517":{"position":[[85,4]]}},"keywords":{}}],["callback",{"_index":410,"title":{},"content":{"47":{"position":[[260,10],[316,9]]},"303":{"position":[[291,8]]},"305":{"position":[[302,8]]},"330":{"position":[[164,8],[236,8]]},"332":{"position":[[179,8],[273,8]]},"480":{"position":[[10364,8],[10469,9],[12249,8]]}},"keywords":{}}],["callback(result",{"_index":3865,"title":{},"content":{"480":{"position":[[12293,18]]}},"keywords":{}}],["callback_url",{"_index":2069,"title":{},"content":{"244":{"position":[[880,12]]}},"keywords":{}}],["came",{"_index":1556,"title":{},"content":{"137":{"position":[[195,4]]}},"keywords":{}}],["canada",{"_index":4030,"title":{},"content":{"510":{"position":[[417,6]]}},"keywords":{}}],["canadian",{"_index":4029,"title":{},"content":{"510":{"position":[[392,8]]}},"keywords":{}}],["canari",{"_index":1967,"title":{},"content":{"229":{"position":[[2408,7],[2794,6]]},"320":{"position":[[2129,6]]}},"keywords":{}}],["cancel",{"_index":2571,"title":{},"content":{"308":{"position":[[226,6]]}},"keywords":{}}],["candelet",{"_index":1756,"title":{},"content":{"222":{"position":[[324,9]]}},"keywords":{}}],["cane",{"_index":1933,"title":{},"content":{"229":{"position":[[1961,5],[2474,5]]},"320":{"position":[[780,4],[2478,4]]},"450":{"position":[[41,4],[78,4]]}},"keywords":{}}],["canola",{"_index":1812,"title":{},"content":{"229":{"position":[[162,8],[2505,7]]},"320":{"position":[[480,6],[493,6]]}},"keywords":{}}],["cant",{"_index":3910,"title":{},"content":{"487":{"position":[[1086,4]]}},"keywords":{}}],["cantaloup",{"_index":1963,"title":{},"content":{"229":{"position":[[2335,12]]}},"keywords":{}}],["caraway",{"_index":1859,"title":{},"content":{"229":{"position":[[917,8]]}},"keywords":{}}],["care",{"_index":124,"title":{},"content":{"3":{"position":[[353,7]]}},"keywords":{}}],["carrier",{"_index":777,"title":{},"content":{"70":{"position":[[1279,10]]},"82":{"position":[[997,10],[1293,10],[1769,10],[2247,10]]},"83":{"position":[[819,10],[1115,10],[1591,10],[2069,10]]}},"keywords":{}}],["carrot",{"_index":1860,"title":{},"content":{"229":{"position":[[932,9],[2130,7]]}},"keywords":{}}],["case",{"_index":71,"title":{},"content":{"2":{"position":[[209,6]]},"101":{"position":[[314,4]]},"130":{"position":[[1093,5]]},"266":{"position":[[559,5]]},"288":{"position":[[1393,4]]},"292":{"position":[[88,5]]},"313":{"position":[[32,4]]},"314":{"position":[[32,4]]},"334":{"position":[[32,4]]},"335":{"position":[[32,4]]},"361":{"position":[[3118,5],[3201,5],[3224,5],[3285,5]]},"414":{"position":[[2689,5],[2770,5],[2793,5],[2864,5]]},"419":{"position":[[636,6]]},"454":{"position":[[9,4]]},"463":{"position":[[9,4]]},"466":{"position":[[59,4]]},"474":{"position":[[8,5],[1797,4]]},"476":{"position":[[9,4]]},"479":{"position":[[59,4]]},"480":{"position":[[3662,5]]},"483":{"position":[[621,5]]},"484":{"position":[[623,5]]},"490":{"position":[[409,4]]}},"keywords":{}}],["case,th",{"_index":3867,"title":{},"content":{"480":{"position":[[12546,8]]}},"keywords":{}}],["caseih",{"_index":1376,"title":{},"content":{"130":{"position":[[2160,6]]}},"keywords":{}}],["castor",{"_index":1861,"title":{},"content":{"229":{"position":[[942,7]]}},"keywords":{}}],["catch",{"_index":3490,"title":{},"content":{"467":{"position":[[475,7],[490,8],[6408,5]]},"480":{"position":[[1661,7],[1676,8]]}},"keywords":{}}],["catch((error",{"_index":3504,"title":{},"content":{"467":{"position":[[1087,14]]},"480":{"position":[[2074,14],[3217,14]]}},"keywords":{}}],["catch(console.error",{"_index":3557,"title":{},"content":{"467":{"position":[[5420,22],[5448,22]]},"480":{"position":[[4043,22],[4838,22],[8870,22],[9630,22]]}},"keywords":{}}],["catch(funct",{"_index":3514,"title":{},"content":{"467":{"position":[[2216,15],[7270,15]]},"480":{"position":[[7054,15],[7214,15]]}},"keywords":{}}],["categori",{"_index":573,"title":{},"content":{"57":{"position":[[1374,8],[2117,11],[2570,11]]},"58":{"position":[[597,11]]},"60":{"position":[[217,11],[935,11]]},"61":{"position":[[354,11],[1105,11]]},"63":{"position":[[1113,9],[1755,11]]},"64":{"position":[[622,11]]},"447":{"position":[[291,8]]},"449":{"position":[[77,8]]}},"keywords":{}}],["cauliflow",{"_index":1862,"title":{},"content":{"229":{"position":[[957,13]]}},"keywords":{}}],["caus",{"_index":302,"title":{},"content":{"8":{"position":[[1763,7]]}},"keywords":{}}],["cb49",{"_index":1499,"title":{},"content":{"131":{"position":[[789,4]]}},"keywords":{}}],["cca01ca7",{"_index":3293,"title":{},"content":{"415":{"position":[[1889,8]]}},"keywords":{}}],["ccbcfcf00d3c",{"_index":2320,"title":{},"content":{"265":{"position":[[369,14]]}},"keywords":{}}],["ccm",{"_index":2707,"title":{},"content":{"320":{"position":[[1583,3]]}},"keywords":{}}],["cd06377c",{"_index":943,"title":{},"content":{"82":{"position":[[1398,9],[1875,9],[2352,9],[2455,9]]},"83":{"position":[[1220,9],[1697,9],[2174,9],[2277,9]]}},"keywords":{}}],["cdc7",{"_index":1488,"title":{},"content":{"131":{"position":[[650,4]]}},"keywords":{}}],["cdm",{"_index":513,"title":{},"content":{"53":{"position":[[167,4]]},"70":{"position":[[292,5]]},"72":{"position":[[92,4],[784,7]]}},"keywords":{}}],["ceaf",{"_index":3349,"title":{},"content":{"415":{"position":[[3171,4]]}},"keywords":{}}],["cec4dabd1b8b",{"_index":1523,"title":{},"content":{"132":{"position":[[784,13]]}},"keywords":{}}],["celeri",{"_index":1863,"title":{},"content":{"229":{"position":[[971,8],[2078,7]]}},"keywords":{}}],["center",{"_index":792,"title":{},"content":{"72":{"position":[[186,6]]},"80":{"position":[[119,6]]},"83":{"position":[[119,6]]},"454":{"position":[[205,6]]},"474":{"position":[[446,7]]},"488":{"position":[[2109,7]]},"490":{"position":[[245,7]]}},"keywords":{}}],["central",{"_index":1724,"title":{},"content":{"220":{"position":[[1831,7],[2407,7]]},"221":{"position":[[446,7]]},"233":{"position":[[334,7]]}},"keywords":{}}],["cfv_client_id",{"_index":2089,"title":{},"content":{"245":{"position":[[201,13]]}},"keywords":{}}],["cfv_client_secret",{"_index":2090,"title":{},"content":{"245":{"position":[[219,17]]}},"keywords":{}}],["cfv_code",{"_index":2096,"title":{},"content":{"245":{"position":[[657,8]]}},"keywords":{}}],["cfv_credentials_id",{"_index":2102,"title":{},"content":{"245":{"position":[[1282,18]]}},"keywords":{}}],["cfv_redirect_url",{"_index":2091,"title":{},"content":{"245":{"position":[[322,16],[506,17]]}},"keywords":{}}],["cfv_refresh_token",{"_index":2101,"title":{},"content":{"245":{"position":[[866,17]]}},"keywords":{}}],["cfx",{"_index":1404,"title":{},"content":{"130":{"position":[[2806,3],[3055,3]]}},"keywords":{}}],["chang",{"_index":389,"title":{},"content":{"36":{"position":[[82,7]]},"47":{"position":[[58,7],[109,8]]},"75":{"position":[[181,6]]},"76":{"position":[[94,6]]},"104":{"position":[[293,7]]},"117":{"position":[[379,8],[452,7]]},"122":{"position":[[241,8],[393,6]]},"140":{"position":[[266,8]]},"147":{"position":[[263,8]]},"154":{"position":[[284,8]]},"161":{"position":[[257,8]]},"168":{"position":[[269,8]]},"175":{"position":[[279,8]]},"182":{"position":[[259,8]]},"189":{"position":[[263,8]]},"196":{"position":[[259,8]]},"203":{"position":[[263,8]]},"222":{"position":[[471,6]]},"226":{"position":[[58,7],[109,8]]},"244":{"position":[[1099,6]]},"246":{"position":[[778,6]]},"287":{"position":[[1908,6]]},"288":{"position":[[1416,7]]},"332":{"position":[[351,7]]},"338":{"position":[[3586,8]]},"350":{"position":[[497,6]]},"354":{"position":[[58,7],[109,8]]},"398":{"position":[[508,6]]},"402":{"position":[[58,7],[109,8]]},"413":{"position":[[780,7]]},"460":{"position":[[166,7]]},"473":{"position":[[354,6]]}},"keywords":{}}],["chapter",{"_index":192,"title":{},"content":{"5":{"position":[[584,8]]}},"keywords":{}}],["check",{"_index":421,"title":{"487":{"position":[[0,5]]}},"content":{"47":{"position":[[868,5]]},"117":{"position":[[255,5]]},"130":{"position":[[5805,5],[5860,5],[6269,5]]},"220":{"position":[[228,5]]},"255":{"position":[[1030,5]]},"258":{"position":[[295,5]]},"303":{"position":[[334,5]]},"304":{"position":[[339,5]]},"305":{"position":[[345,5]]},"313":{"position":[[775,5]]},"314":{"position":[[750,5]]},"316":{"position":[[1046,5]]},"334":{"position":[[774,5]]},"335":{"position":[[747,5]]},"337":{"position":[[815,5]]},"353":{"position":[[308,5]]},"400":{"position":[[307,5]]},"448":{"position":[[217,5]]},"450":{"position":[[292,5]]},"451":{"position":[[198,5],[516,5]]},"467":{"position":[[4530,8],[4767,5],[5058,8],[5900,5]]},"473":{"position":[[5151,8]]},"480":{"position":[[681,8]]},"487":{"position":[[39,5],[823,5]]},"498":{"position":[[962,5]]},"500":{"position":[[594,5]]},"502":{"position":[[547,5]]},"503":{"position":[[407,5]]}},"keywords":{}}],["checkfil",{"_index":3902,"title":{},"content":{"487":{"position":[[263,12]]}},"keywords":{}}],["chemic",{"_index":765,"title":{},"content":{"70":{"position":[[1039,11]]}},"keywords":{}}],["chervil",{"_index":1864,"title":{},"content":{"229":{"position":[[980,9]]}},"keywords":{}}],["chick",{"_index":2683,"title":{},"content":{"320":{"position":[[513,5]]}},"keywords":{}}],["chickpea",{"_index":1839,"title":{},"content":{"229":{"position":[[492,11]]},"320":{"position":[[530,9]]}},"keywords":{}}],["chicori",{"_index":1865,"title":{},"content":{"229":{"position":[[990,9]]}},"keywords":{}}],["children",{"_index":2801,"title":{},"content":{"338":{"position":[[2719,8]]}},"keywords":{}}],["chilean",{"_index":1977,"title":{},"content":{"229":{"position":[[2579,8]]},"320":{"position":[[1445,7]]}},"keywords":{}}],["chines",{"_index":1866,"title":{},"content":{"229":{"position":[[1000,8]]}},"keywords":{}}],["chip",{"_index":1912,"title":{},"content":{"229":{"position":[[1631,6]]},"320":{"position":[[1952,5]]}},"keywords":{}}],["choos",{"_index":2038,"title":{},"content":{"242":{"position":[[655,6]]},"385":{"position":[[731,6]]},"473":{"position":[[2338,6]]},"488":{"position":[[1562,6]]}},"keywords":{}}],["chosen",{"_index":2034,"title":{},"content":{"242":{"position":[[231,6]]}},"keywords":{}}],["claa",{"_index":1424,"title":{},"content":{"130":{"position":[[3580,6]]}},"keywords":{}}],["class",{"_index":2648,"title":{},"content":{"317":{"position":[[932,5]]},"338":{"position":[[1284,5]]},"396":{"position":[[1029,8]]},"415":{"position":[[639,7]]}},"keywords":{}}],["class=\"cont",{"_index":2587,"title":{},"content":{"313":{"position":[[843,15]]},"334":{"position":[[842,15]]}},"keywords":{}}],["classif",{"_index":3288,"title":{},"content":{"415":{"position":[[662,15]]}},"keywords":{}}],["classifi",{"_index":3199,"title":{},"content":{"396":{"position":[[1038,10]]}},"keywords":{}}],["clean",{"_index":55,"title":{},"content":{"2":{"position":[[36,6]]},"242":{"position":[[46,8]]},"252":{"position":[[1367,7],[1543,7]]},"256":{"position":[[90,6]]},"341":{"position":[[230,7]]},"342":{"position":[[92,7],[309,7]]},"366":{"position":[[320,5]]},"413":{"position":[[312,8],[587,5]]},"437":{"position":[[17,8]]},"438":{"position":[[17,8]]}},"keywords":{}}],["cleanup",{"_index":3423,"title":{},"content":{"437":{"position":[[80,7]]},"438":{"position":[[64,7]]}},"keywords":{}}],["cleanupgeojson",{"_index":2869,"title":{},"content":{"351":{"position":[[725,17]]}},"keywords":{}}],["cleanupstandardgeojson",{"_index":1151,"title":{},"content":{"104":{"position":[[0,23]]},"105":{"position":[[188,23]]},"366":{"position":[[354,22]]},"451":{"position":[[57,22]]}},"keywords":{}}],["clear",{"_index":1227,"title":{},"content":{"105":{"position":[[1027,5]]},"212":{"position":[[598,5]]},"473":{"position":[[4654,5],[4739,5],[6259,5]]},"481":{"position":[[108,7]]},"488":{"position":[[1064,5]]}},"keywords":{}}],["click",{"_index":223,"title":{},"content":{"5":{"position":[[1418,5]]},"331":{"position":[[345,5]]},"473":{"position":[[6151,6]]},"488":{"position":[[1299,5]]},"496":{"position":[[86,5]]}},"keywords":{}}],["client",{"_index":350,"title":{},"content":{"15":{"position":[[184,6]]},"16":{"position":[[129,6]]},"244":{"position":[[720,6],[799,6]]},"283":{"position":[[655,7]]},"300":{"position":[[138,6]]},"330":{"position":[[628,7],[652,7]]},"382":{"position":[[582,6]]},"383":{"position":[[585,6]]},"384":{"position":[[324,6]]}},"keywords":{}}],["client'",{"_index":2461,"title":{},"content":{"283":{"position":[[722,8]]}},"keywords":{}}],["client_",{"_index":2071,"title":{},"content":{"244":{"position":[[1121,7]]}},"keywords":{}}],["client_key",{"_index":2070,"title":{},"content":{"244":{"position":[[1106,10]]}},"keywords":{}}],["clientenviron",{"_index":1583,"title":{},"content":{"147":{"position":[[561,20]]},"148":{"position":[[132,20],[357,20],[688,20]]},"161":{"position":[[617,20]]},"162":{"position":[[200,20],[478,20],[809,20]]},"168":{"position":[[696,20]]},"169":{"position":[[187,20],[803,20]]},"204":{"position":[[700,20]]},"301":{"position":[[897,20],[990,20],[1398,20]]},"302":{"position":[[1030,20],[1123,20],[1563,20]]},"303":{"position":[[1111,20],[1213,20],[1652,20]]},"304":{"position":[[1193,20],[1295,20],[1756,20]]},"305":{"position":[[1084,20],[1177,20],[1579,20]]},"330":{"position":[[741,17]]}},"keywords":{}}],["clientenvironmenta",{"_index":2740,"title":{},"content":{"328":{"position":[[710,19]]}},"keywords":{}}],["clientid",{"_index":1595,"title":{},"content":{"154":{"position":[[631,11]]},"155":{"position":[[136,11],[321,13],[689,11]]},"161":{"position":[[552,11]]},"162":{"position":[[109,11],[385,13],[744,11]]},"182":{"position":[[593,11]]},"183":{"position":[[111,11],[320,11],[644,11]]},"203":{"position":[[599,11]]},"204":{"position":[[115,11],[283,13]]},"302":{"position":[[1771,11],[1945,11],[2256,11],[2429,11]]},"303":{"position":[[1831,11],[2014,11],[2324,11],[2506,11]]},"305":{"position":[[1767,11],[1950,11],[2232,11],[2414,11]]},"329":{"position":[[613,11]]},"330":{"position":[[619,8],[950,11]]},"332":{"position":[[819,11]]}},"keywords":{}}],["clientkey",{"_index":1603,"title":{},"content":{"168":{"position":[[608,12]]},"169":{"position":[[121,12],[334,14],[715,12]]},"204":{"position":[[612,12]]},"304":{"position":[[1952,12],[2107,12],[2411,12],[2565,12]]},"328":{"position":[[630,9],[924,12]]}},"keywords":{}}],["clientsecret",{"_index":1596,"title":{},"content":{"154":{"position":[[650,15]]},"155":{"position":[[155,15],[708,15]]},"161":{"position":[[571,15]]},"162":{"position":[[128,15],[406,15],[763,15]]},"168":{"position":[[628,15]]},"169":{"position":[[141,15],[735,15]]},"182":{"position":[[612,15]]},"183":{"position":[[130,15],[663,15]]},"203":{"position":[[618,15]]},"204":{"position":[[134,15],[632,15]]},"302":{"position":[[1793,15],[1967,15],[2278,15],[2451,15]]},"303":{"position":[[1853,15],[2036,15],[2346,15],[2528,15]]},"304":{"position":[[1975,15],[2130,15],[2434,15],[2588,15]]},"305":{"position":[[1789,15],[1972,15],[2254,15],[2436,15]]},"328":{"position":[[947,15]]},"329":{"position":[[635,15]]},"330":{"position":[[972,15]]},"332":{"position":[[841,15]]}},"keywords":{}}],["climat",{"_index":968,"title":{"89":{"position":[[18,7]]},"100":{"position":[[23,7]]},"152":{"position":[[0,7]]},"153":{"position":[[0,7]]},"154":{"position":[[8,7]]},"155":{"position":[[9,7]]},"156":{"position":[[7,7]]},"245":{"position":[[0,7]]},"302":{"position":[[0,7]]},"329":{"position":[[0,7]]}},"content":{"86":{"position":[[474,7]]},"89":{"position":[[71,7],[229,8],[623,7],[1118,7]]},"92":{"position":[[590,7]]},"100":{"position":[[75,7]]},"130":{"position":[[1761,7],[1832,7]]},"154":{"position":[[65,7]]},"155":{"position":[[66,7],[521,7]]},"156":{"position":[[78,7]]},"158":{"position":[[303,8]]},"245":{"position":[[64,7],[163,8],[245,7],[673,7],[948,7],[1076,7],[1107,7]]},"246":{"position":[[137,7]]},"252":{"position":[[337,7]]},"287":{"position":[[2317,7]]},"302":{"position":[[10,7],[114,7],[240,7],[311,7],[395,7],[480,7],[564,7],[650,7],[725,7],[1167,7],[1250,7],[1608,7],[1695,7],[2094,7],[2180,7],[2578,7],[2667,7]]},"329":{"position":[[10,7],[99,8],[232,7],[377,7]]},"439":{"position":[[87,7]]}},"keywords":{}}],["climate.zip",{"_index":1447,"title":{},"content":{"130":{"position":[[4773,14],[5694,14]]}},"keywords":{}}],["climatefieldview",{"_index":1330,"title":{},"content":{"130":{"position":[[528,16]]},"239":{"position":[[307,17]]},"246":{"position":[[1044,16]]},"255":{"position":[[797,19],[1212,16]]},"264":{"position":[[434,18]]},"266":{"position":[[1890,19]]},"269":{"position":[[750,19]]},"346":{"position":[[279,17]]},"378":{"position":[[2359,17]]},"379":{"position":[[2410,17]]},"382":{"position":[[346,17]]},"383":{"position":[[349,17]]},"390":{"position":[[289,17]]}},"keywords":{}}],["climatefieldview.if",{"_index":2398,"title":{},"content":{"269":{"position":[[326,19]]}},"keywords":{}}],["climatefieldviewcredenti",{"_index":3979,"title":{},"content":{"498":{"position":[[810,30]]},"500":{"position":[[434,30]]},"501":{"position":[[637,30]]}},"keywords":{}}],["climatefieldviewjohn",{"_index":483,"title":{},"content":{"51":{"position":[[469,20]]}},"keywords":{}}],["clip",{"_index":1627,"title":{},"content":{"209":{"position":[[418,8]]}},"keywords":{}}],["close",{"_index":306,"title":{},"content":{"8":{"position":[[1842,6]]}},"keywords":{}}],["cloud",{"_index":1630,"title":{"215":{"position":[[0,6]]}},"content":{"209":{"position":[[558,5]]},"212":{"position":[[562,6],[693,5]]},"215":{"position":[[11,5],[62,6]]},"220":{"position":[[833,6],[1700,9],[2081,5]]},"221":{"position":[[315,9]]},"340":{"position":[[187,5]]},"467":{"position":[[4546,6],[4651,7]]},"509":{"position":[[0,5]]},"511":{"position":[[1753,5],[1973,5]]},"513":{"position":[[0,5]]},"515":{"position":[[1736,5],[1956,5]]}},"keywords":{}}],["cloudcov",{"_index":4079,"title":{},"content":{"511":{"position":[[1734,10]]},"515":{"position":[[1717,10]]},"520":{"position":[[2856,13]]},"522":{"position":[[2822,13]]},"524":{"position":[[2533,13]]},"526":{"position":[[2499,13]]}},"keywords":{}}],["clover",{"_index":1867,"title":{},"content":{"229":{"position":[[1018,8],[2875,7]]},"320":{"position":[[546,6],[646,6],[1231,6],[3118,6]]}},"keywords":{}}],["cm",{"_index":3054,"title":{},"content":{"365":{"position":[[1063,2]]},"509":{"position":[[203,3],[211,3],[219,3],[228,3]]},"511":{"position":[[430,2],[543,2],[656,2],[800,2],[1263,2]]},"513":{"position":[[207,3],[216,3],[227,3]]},"515":{"position":[[413,2],[526,2],[639,2],[783,2],[1246,2]]},"519":{"position":[[1758,4],[1914,4]]},"521":{"position":[[1724,4],[1880,4]]},"523":{"position":[[1946,4]]},"525":{"position":[[1912,4]]}},"keywords":{}}],["cm)soil",{"_index":4000,"title":{},"content":{"509":{"position":[[181,7]]},"513":{"position":[[185,7]]}},"keywords":{}}],["cm)wind",{"_index":4004,"title":{},"content":{"509":{"position":[[238,7]]},"513":{"position":[[239,7]]}},"keywords":{}}],["cn1",{"_index":1380,"title":{},"content":{"130":{"position":[[2266,5]]}},"keywords":{}}],["cnh",{"_index":1377,"title":{},"content":{"130":{"position":[[2193,3]]}},"keywords":{}}],["cnhi",{"_index":534,"title":{"98":{"position":[[23,4]]},"99":{"position":[[24,4]]},"159":{"position":[[0,4]]},"160":{"position":[[0,4]]},"161":{"position":[[8,4]]},"162":{"position":[[9,4]]},"163":{"position":[[7,4]]},"303":{"position":[[0,4]]},"330":{"position":[[0,4]]}},"content":{"57":{"position":[[255,4]]},"92":{"position":[[474,4],[533,4]]},"98":{"position":[[63,4]]},"130":{"position":[[545,4],[2117,5]]},"161":{"position":[[51,4]]},"162":{"position":[[52,4],[627,4]]},"163":{"position":[[64,4]]},"165":{"position":[[289,5]]},"255":{"position":[[1236,4]]},"264":{"position":[[400,7]]},"303":{"position":[[10,4],[101,5],[316,4],[416,4],[462,4],[541,4],[621,4],[700,4],[781,4],[831,4],[1266,4],[1344,4],[1706,4],[1788,4],[2200,4],[2281,4],[2692,4],[2776,4]]},"330":{"position":[[10,4],[86,5],[442,5],[582,5],[809,5]]},"346":{"position":[[253,5]]},"378":{"position":[[2377,5]]},"379":{"position":[[2428,5]]},"382":{"position":[[364,5]]},"383":{"position":[[367,5]]},"390":{"position":[[263,5]]}},"keywords":{}}],["cnhicredenti",{"_index":3976,"title":{},"content":{"498":{"position":[[711,18]]},"500":{"position":[[335,18]]},"501":{"position":[[538,18]]}},"keywords":{}}],["cnhijohndeerestara",{"_index":459,"title":{},"content":{"50":{"position":[[184,18]]}},"keywords":{}}],["coastal",{"_index":1651,"title":{},"content":{"212":{"position":[[110,7],[343,7]]}},"keywords":{}}],["cob",{"_index":1869,"title":{},"content":{"229":{"position":[[1047,3]]},"320":{"position":[[572,3]]}},"keywords":{}}],["code",{"_index":115,"title":{"459":{"position":[[6,5]]}},"content":{"3":{"position":[[239,4]]},"9":{"position":[[88,4]]},"136":{"position":[[72,4]]},"245":{"position":[[480,4],[542,4],[564,4],[587,4],[622,4]]},"322":{"position":[[120,5]]},"338":{"position":[[321,5],[372,4],[627,4],[687,6],[694,4],[2171,5]]},"467":{"position":[[388,4]]},"473":{"position":[[4040,4]]},"480":{"position":[[1568,4],[4495,4]]}},"keywords":{}}],["codecolor",{"_index":3098,"title":{},"content":{"378":{"position":[[974,12],[1810,12],[2856,12]]},"379":{"position":[[1046,12],[1899,12],[2883,12]]},"380":{"position":[[961,12],[1742,12],[2378,12]]},"382":{"position":[[1508,12]]},"383":{"position":[[1490,12]]},"384":{"position":[[1171,12]]},"385":{"position":[[1046,12]]}},"keywords":{}}],["collect",{"_index":1257,"title":{},"content":{"107":{"position":[[127,11]]},"129":{"position":[[371,11]]},"232":{"position":[[60,11]]},"242":{"position":[[357,10]]},"244":{"position":[[155,10],[1087,11]]},"245":{"position":[[28,10]]},"258":{"position":[[120,11]]},"345":{"position":[[554,11]]},"389":{"position":[[933,11]]},"422":{"position":[[272,10],[368,10],[441,10]]},"425":{"position":[[69,9]]},"429":{"position":[[411,10]]},"517":{"position":[[130,11]]}},"keywords":{}}],["color",{"_index":1019,"title":{},"content":{"89":{"position":[[142,5]]},"104":{"position":[[547,5],[665,5],[765,5]]},"209":{"position":[[431,5]]},"238":{"position":[[78,5]]},"239":{"position":[[228,5]]},"349":{"position":[[699,5]]},"385":{"position":[[209,5]]},"395":{"position":[[709,5]]},"396":{"position":[[1096,5]]},"415":{"position":[[579,5]]},"429":{"position":[[369,7]]}},"keywords":{}}],["colorcod",{"_index":3187,"title":{},"content":{"396":{"position":[[431,12],[480,12],[530,12],[581,12],[633,12],[685,12],[737,12]]},"415":{"position":[[845,12],[894,12],[944,12],[995,12],[1047,12],[1099,12],[1151,12]]}},"keywords":{}}],["colorramp",{"_index":2023,"title":{},"content":{"239":{"position":[[367,12]]}},"keywords":{}}],["column",{"_index":1101,"title":{},"content":{"101":{"position":[[494,6]]}},"keywords":{}}],["com",{"_index":3764,"title":{},"content":{"480":{"position":[[5415,7]]}},"keywords":{}}],["combin",{"_index":2141,"title":{},"content":{"252":{"position":[[1247,8]]},"253":{"position":[[1203,7]]}},"keywords":{}}],["come",{"_index":425,"title":{},"content":{"47":{"position":[[1141,5]]},"243":{"position":[[103,6],[150,6]]},"283":{"position":[[698,5]]},"357":{"position":[[1123,5]]},"467":{"position":[[164,5],[559,5],[3185,5],[4159,5],[5797,5],[6074,5]]},"480":{"position":[[1344,5],[2580,5],[4281,5]]}},"keywords":{}}],["command",{"_index":3403,"title":{},"content":{"425":{"position":[[152,7]]},"470":{"position":[[39,7],[89,7]]},"471":{"position":[[98,7]]},"472":{"position":[[74,7]]}},"keywords":{}}],["commitment'",{"_index":10,"title":{},"content":{"0":{"position":[[65,12]]}},"keywords":{}}],["common",{"_index":1805,"title":{},"content":{"229":{"position":[[63,6]]},"357":{"position":[[1799,6]]}},"keywords":{}}],["commun",{"_index":3587,"title":{},"content":{"471":{"position":[[456,11]]},"472":{"position":[[32,11]]}},"keywords":{}}],["compani",{"_index":803,"title":{},"content":{"72":{"position":[[695,8]]},"82":{"position":[[2053,7]]},"83":{"position":[[1875,7]]},"98":{"position":[[116,7]]},"99":{"position":[[106,7]]},"117":{"position":[[953,7],[961,7],[1106,8]]},"242":{"position":[[576,10],[666,7],[753,7],[874,9]]},"243":{"position":[[35,10]]},"246":{"position":[[233,9]]},"251":{"position":[[907,9]]},"252":{"position":[[29,7],[242,7]]},"316":{"position":[[109,7],[172,7],[372,7],[554,7],[659,7]]},"337":{"position":[[109,7],[172,7],[513,7],[618,7]]},"338":{"position":[[2895,7]]},"385":{"position":[[332,7],[371,7]]}},"keywords":{}}],["company_logo",{"_index":2609,"title":{},"content":{"314":{"position":[[1001,13]]},"317":{"position":[[1797,13]]}},"keywords":{}}],["company_nam",{"_index":2607,"title":{},"content":{"314":{"position":[[956,13]]},"317":{"position":[[1665,13]]}},"keywords":{}}],["companylogo",{"_index":2650,"title":{},"content":{"317":{"position":[[1050,12],[1072,14]]},"338":{"position":[[1402,12],[1424,14]]},"378":{"position":[[1009,14],[1845,14],[2891,14]]},"379":{"position":[[1081,14],[1934,14],[2918,14]]},"380":{"position":[[996,14],[1777,14],[2413,14]]},"382":{"position":[[1543,14]]},"383":{"position":[[1525,14]]},"384":{"position":[[1206,14]]},"385":{"position":[[301,11],[1081,14]]}},"keywords":{}}],["companylogo=\"assets/leaflogo.svg",{"_index":2594,"title":{},"content":{"313":{"position":[[1006,33]]}},"keywords":{}}],["companylogo=\"your_company_logo",{"_index":2755,"title":{},"content":{"334":{"position":[[981,31]]}},"keywords":{}}],["companylogo={'url",{"_index":2804,"title":{},"content":{"338":{"position":[[2910,19]]}},"keywords":{}}],["companylogo={company_logo",{"_index":2614,"title":{},"content":{"314":{"position":[[1156,26]]}},"keywords":{}}],["companylogo={companylogourl",{"_index":2758,"title":{},"content":{"335":{"position":[[897,28]]}},"keywords":{}}],["companylogo]=\"companylogo",{"_index":2639,"title":{},"content":{"317":{"position":[[583,27]]},"338":{"position":[[922,27]]}},"keywords":{}}],["companylogourl",{"_index":2619,"title":{},"content":{"316":{"position":[[58,14],[523,15]]},"337":{"position":[[58,14],[482,15]]}},"keywords":{}}],["companynam",{"_index":893,"title":{},"content":{"78":{"position":[[795,14]]},"80":{"position":[[672,14]]},"316":{"position":[[122,11],[642,12]]},"317":{"position":[[1013,12],[1035,14]]},"337":{"position":[[122,11],[601,12]]},"338":{"position":[[1365,12],[1387,14]]},"378":{"position":[[1031,14],[1046,14],[1867,14],[1882,14],[2913,14],[2928,14]]},"379":{"position":[[1103,14],[1118,14],[1956,14],[1971,14],[2940,14],[2955,14]]},"380":{"position":[[1018,14],[1033,14],[1799,14],[1814,14],[2435,14],[2450,14]]},"382":{"position":[[1565,14],[1580,14]]},"383":{"position":[[1547,14],[1562,14]]},"384":{"position":[[1228,14],[1243,14]]},"385":{"position":[[348,11],[1103,14],[1118,14]]}},"keywords":{}}],["companyname=\"your_company_nam",{"_index":2593,"title":{},"content":{"313":{"position":[[974,31]]},"334":{"position":[[949,31]]}},"keywords":{}}],["companyname={'mi",{"_index":2803,"title":{},"content":{"338":{"position":[[2878,16]]}},"keywords":{}}],["companyname={company_nam",{"_index":2613,"title":{},"content":{"314":{"position":[[1129,26]]}},"keywords":{}}],["companyname={companynam",{"_index":2757,"title":{},"content":{"335":{"position":[[871,25]]}},"keywords":{}}],["companyname]=\"companynam",{"_index":2638,"title":{},"content":{"317":{"position":[[555,27]]},"338":{"position":[[894,27]]}},"keywords":{}}],["compar",{"_index":158,"title":{},"content":{"3":{"position":[[1044,7]]},"209":{"position":[[110,7]]},"266":{"position":[[340,8]]}},"keywords":{}}],["comparison",{"_index":1638,"title":{},"content":{"210":{"position":[[101,10]]},"220":{"position":[[238,10]]}},"keywords":{}}],["compass",{"_index":1393,"title":{},"content":{"130":{"position":[[2475,7]]}},"keywords":{}}],["compil",{"_index":3574,"title":{},"content":{"467":{"position":[[6512,9]]}},"keywords":{}}],["complet",{"_index":387,"title":{},"content":{"35":{"position":[[234,9]]},"103":{"position":[[383,11]]},"133":{"position":[[50,8]]},"287":{"position":[[1794,11],[1953,10]]},"365":{"position":[[145,8]]},"400":{"position":[[341,8]]}},"keywords":{}}],["compon",{"_index":944,"title":{"471":{"position":[[13,9]]}},"content":{"82":{"position":[[1440,13]]},"83":{"position":[[1262,13]]},"313":{"position":[[110,10],[458,9],[561,9],[764,10]]},"314":{"position":[[433,9],[531,9],[739,10]]},"317":{"position":[[437,10],[693,10],[781,9],[815,12],[1213,9],[1293,9]]},"334":{"position":[[110,10],[458,9],[560,9],[763,10]]},"335":{"position":[[430,9],[528,9],[736,10]]},"338":{"position":[[821,10],[1029,10],[1133,9],[1167,12],[1718,9],[2692,9],[3029,9],[3072,10],[3746,10]]},"471":{"position":[[54,10],[132,9],[142,10],[196,10],[229,10]]}},"keywords":{}}],["composit",{"_index":1025,"title":{},"content":{"89":{"position":[[293,9]]},"210":{"position":[[426,11]]}},"keywords":{}}],["composti",{"_index":819,"title":{},"content":{"72":{"position":[[1042,11]]}},"keywords":{}}],["compostx",{"_index":801,"title":{},"content":{"72":{"position":[[629,11]]}},"keywords":{}}],["concept",{"_index":84,"title":{},"content":{"2":{"position":[[435,8]]},"233":{"position":[[342,7]]}},"keywords":{}}],["condit",{"_index":2336,"title":{},"content":{"266":{"position":[[611,9],[741,10]]}},"keywords":{}}],["confid",{"_index":1676,"title":{},"content":{"212":{"position":[[710,10]]}},"keywords":{}}],["config",{"_index":1218,"title":{},"content":{"105":{"position":[[479,6]]},"107":{"position":[[360,8],[524,8]]},"109":{"position":[[5,8]]},"112":{"position":[[7,8]]},"448":{"position":[[39,6]]},"450":{"position":[[170,6]]},"451":{"position":[[39,6]]}},"keywords":{}}],["configs/{leafuserid",{"_index":1261,"title":{},"content":{"107":{"position":[[403,21],[463,21],[572,21],[634,21]]},"110":{"position":[[5,20]]},"111":{"position":[[6,21]]},"113":{"position":[[7,21]]},"114":{"position":[[8,21]]}},"keywords":{}}],["configur",{"_index":122,"title":{"102":{"position":[[0,14]]},"106":{"position":[[0,14]]},"109":{"position":[[16,13]]},"110":{"position":[[16,13]]},"111":{"position":[[19,13]]},"112":{"position":[[19,13]]},"113":{"position":[[19,13]]},"114":{"position":[[19,13]]}},"content":{"3":{"position":[[319,13]]},"19":{"position":[[135,15]]},"103":{"position":[[43,13],[1323,14]]},"104":{"position":[[440,14],[1003,13],[1248,13],[1439,13],[1674,13]]},"105":{"position":[[6,14],[1347,13],[1642,14],[1867,13],[3249,13]]},"107":{"position":[[53,13],[342,13],[385,13],[444,13],[504,13],[552,13],[613,13]]},"109":{"position":[[23,13],[236,13]]},"110":{"position":[[35,13],[312,13]]},"111":{"position":[[40,13],[131,14],[195,13],[248,14],[703,13]]},"112":{"position":[[48,13],[129,14],[560,13]]},"113":{"position":[[61,13],[153,14],[646,13]]},"114":{"position":[[42,13],[99,13],[156,14]]},"252":{"position":[[766,14],[781,14]]},"268":{"position":[[101,14],[273,13]]},"287":{"position":[[1078,13],[2417,14]]},"293":{"position":[[11,13]]},"341":{"position":[[351,13]]},"350":{"position":[[554,13]]},"357":{"position":[[262,13],[414,14]]},"366":{"position":[[377,13]]},"387":{"position":[[813,14]]},"394":{"position":[[152,13]]},"398":{"position":[[565,13]]},"413":{"position":[[54,13],[569,14],[819,14],[907,14]]},"415":{"position":[[1698,13]]},"437":{"position":[[41,13]]},"448":{"position":[[231,14]]},"450":{"position":[[306,14]]},"451":{"position":[[212,14]]},"495":{"position":[[50,14]]}},"keywords":{}}],["confirm",{"_index":99,"title":{},"content":{"3":{"position":[[23,7]]},"5":{"position":[[2304,13]]},"13":{"position":[[116,13]]},"48":{"position":[[69,10]]},"117":{"position":[[354,7]]},"244":{"position":[[432,8]]},"423":{"position":[[19,10]]},"480":{"position":[[616,13]]}},"keywords":{}}],["confus",{"_index":1155,"title":{},"content":{"104":{"position":[[339,8]]},"447":{"position":[[161,8]]}},"keywords":{}}],["congrat",{"_index":3502,"title":{},"content":{"467":{"position":[[1042,10]]},"473":{"position":[[1708,10]]},"483":{"position":[[181,10],[522,10]]}},"keywords":{}}],["connect",{"_index":307,"title":{"115":{"position":[[5,7]]},"321":{"position":[[14,10]]},"453":{"position":[[5,7]]}},"content":{"8":{"position":[[1849,10]]},"18":{"position":[[50,9]]},"130":{"position":[[2197,8]]},"135":{"position":[[176,9]]},"232":{"position":[[265,9]]},"234":{"position":[[68,10]]},"242":{"position":[[637,8],[686,7],[773,7],[858,7]]},"243":{"position":[[18,7]]},"251":{"position":[[864,7]]},"322":{"position":[[16,10],[164,7]]},"325":{"position":[[15,9]]},"326":{"position":[[10,10]]},"338":{"position":[[215,9],[279,10],[495,9],[565,10],[1081,9]]},"340":{"position":[[172,9]]},"345":{"position":[[775,9]]},"408":{"position":[[64,9],[237,9]]},"492":{"position":[[144,7]]},"498":{"position":[[262,7]]},"505":{"position":[[91,10]]}},"keywords":{}}],["connectedorgan",{"_index":3225,"title":{},"content":{"408":{"position":[[468,25]]}},"keywords":{}}],["connectionerror",{"_index":296,"title":{},"content":{"8":{"position":[[1618,18],[1637,17]]}},"keywords":{}}],["consid",{"_index":1234,"title":{},"content":{"105":{"position":[[1919,10],[1978,10],[2213,8],[2333,8]]},"262":{"position":[[337,8]]},"338":{"position":[[1688,11]]},"366":{"position":[[38,10]]},"456":{"position":[[269,11]]}},"keywords":{}}],["consider",{"_index":2862,"title":{},"content":{"350":{"position":[[658,14]]},"398":{"position":[[669,14]]},"415":{"position":[[489,12]]}},"keywords":{}}],["consist",{"_index":2112,"title":{},"content":{"248":{"position":[[255,11]]},"251":{"position":[[148,11]]},"307":{"position":[[148,10]]},"340":{"position":[[425,10]]},"387":{"position":[[46,10]]}},"keywords":{}}],["console.error(err",{"_index":3794,"title":{},"content":{"480":{"position":[[7908,19],[8039,19]]}},"keywords":{}}],["console.error(error",{"_index":3735,"title":{},"content":{"480":{"position":[[1074,21]]}},"keywords":{}}],["console.log(\"just",{"_index":3728,"title":{},"content":{"480":{"position":[[663,17]]}},"keywords":{}}],["console.log(\"process",{"_index":3731,"title":{},"content":{"480":{"position":[[775,23],[906,23]]}},"keywords":{}}],["console.log(\"serv",{"_index":3579,"title":{},"content":{"468":{"position":[[108,19]]},"481":{"position":[[261,19]]}},"keywords":{}}],["console.log(erro",{"_index":3781,"title":{},"content":{"480":{"position":[[6887,18]]}},"keywords":{}}],["console.log(error",{"_index":3576,"title":{},"content":{"467":{"position":[[7296,19]]},"480":{"position":[[12323,19]]}},"keywords":{}}],["console.log(leafbatchid",{"_index":2652,"title":{},"content":{"317":{"position":[[1129,26],[1926,26]]}},"keywords":{}}],["console.log(r",{"_index":3958,"title":{},"content":{"488":{"position":[[2744,17]]}},"keywords":{}}],["console.log(respons",{"_index":3895,"title":{},"content":{"485":{"position":[[705,22]]},"486":{"position":[[848,22]]},"487":{"position":[[1131,22]]}},"keywords":{}}],["console.log(response.statu",{"_index":3759,"title":{},"content":{"480":{"position":[[4808,29]]}},"keywords":{}}],["console.log(url",{"_index":3872,"title":{},"content":{"481":{"position":[[243,17]]}},"keywords":{}}],["console.log(value.providersconnect",{"_index":2773,"title":{},"content":{"338":{"position":[[1474,38]]}},"keywords":{}}],["console.log(value.providerwidgetstatu",{"_index":2774,"title":{},"content":{"338":{"position":[[1513,40]]}},"keywords":{}}],["consolid",{"_index":950,"title":{},"content":{"82":{"position":[[1586,13]]},"83":{"position":[[1408,13]]}},"keywords":{}}],["const",{"_index":2601,"title":{},"content":{"314":{"position":[[830,5],[866,5],[910,5],[950,5],[995,5],[1045,5]]},"317":{"position":[[1623,5],[1659,5],[1704,5],[1751,5],[1791,5],[1837,5],[1874,5]]},"338":{"position":[[1868,5],[1931,5],[2793,5]]},"466":{"position":[[185,5],[221,5],[244,5]]},"467":{"position":[[6789,5]]},"474":{"position":[[512,5],[763,5],[1144,5],[1384,5]]},"479":{"position":[[263,5],[298,5],[320,5],[351,5]]},"480":{"position":[[4588,5],[4642,5],[4665,5],[10124,6]]},"490":{"position":[[162,5]]}},"keywords":{}}],["consult",{"_index":2871,"title":{},"content":{"352":{"position":[[176,9]]},"353":{"position":[[1004,7],[1075,8]]}},"keywords":{}}],["consum",{"_index":2748,"title":{},"content":{"331":{"position":[[297,8],[364,8]]}},"keywords":{}}],["consumpt",{"_index":455,"title":{},"content":{"50":{"position":[[73,11]]},"251":{"position":[[561,12]]}},"keywords":{}}],["contact",{"_index":1470,"title":{},"content":{"130":{"position":[[5843,7],[5898,7],[6174,7],[6307,7]]},"256":{"position":[[351,7]]},"320":{"position":[[3413,7]]},"332":{"position":[[320,7]]},"419":{"position":[[524,7]]},"420":{"position":[[609,7]]},"496":{"position":[[123,7]]},"505":{"position":[[242,7]]}},"keywords":{}}],["contain",{"_index":239,"title":{},"content":{"5":{"position":[[1865,10]]},"39":{"position":[[324,10]]},"51":{"position":[[571,10]]},"89":{"position":[[316,7]]},"93":{"position":[[165,7],[292,7],[362,10]]},"95":{"position":[[333,10],[463,7],[570,10]]},"98":{"position":[[240,7],[359,7],[426,10]]},"100":{"position":[[169,7],[296,7],[366,10]]},"101":{"position":[[150,7],[277,7],[470,7],[539,7],[717,10]]},"104":{"position":[[652,10],[718,7]]},"109":{"position":[[221,10]]},"110":{"position":[[297,10]]},"111":{"position":[[116,10],[688,10]]},"112":{"position":[[114,10],[545,10]]},"113":{"position":[[138,10],[631,10]]},"130":{"position":[[4129,7],[4327,7]]},"222":{"position":[[1368,8]]},"255":{"position":[[1089,8]]},"262":{"position":[[106,10]]},"287":{"position":[[604,8]]},"319":{"position":[[21,10]]},"360":{"position":[[240,7],[309,7],[365,7],[658,7],[741,8]]},"365":{"position":[[1729,8]]},"411":{"position":[[73,8]]},"471":{"position":[[514,7]]},"473":{"position":[[4325,10]]},"474":{"position":[[1506,10]]},"480":{"position":[[10613,8],[12602,10]]},"485":{"position":[[408,10]]},"487":{"position":[[799,10]]},"490":{"position":[[193,10]]}},"keywords":{}}],["content",{"_index":131,"title":{},"content":{"3":{"position":[[509,7]]},"5":{"position":[[1663,8],[2233,8]]},"48":{"position":[[264,8]]},"111":{"position":[[499,8]]},"112":{"position":[[372,8]]},"113":{"position":[[442,8]]},"141":{"position":[[307,8]]},"162":{"position":[[347,8]]},"176":{"position":[[294,8]]},"183":{"position":[[279,8]]},"190":{"position":[[282,8]]},"197":{"position":[[304,8]]},"222":{"position":[[1671,8]]},"267":{"position":[[481,8]]},"411":{"position":[[60,7]]},"423":{"position":[[308,8]]},"480":{"position":[[972,7],[1039,8],[6320,8],[8416,7]]},"487":{"position":[[835,8]]},"511":{"position":[[732,7]]},"515":{"position":[[715,7]]}},"keywords":{}}],["contents3",{"_index":996,"title":{},"content":{"88":{"position":[[1129,12],[1714,12]]}},"keywords":{}}],["contenttyp",{"_index":3900,"title":{},"content":{"486":{"position":[[414,12]]}},"keywords":{}}],["context",{"_index":2775,"title":{},"content":{"338":{"position":[[1643,7]]}},"keywords":{}}],["continu",{"_index":1750,"title":{},"content":{"222":{"position":[[46,12]]},"341":{"position":[[616,12]]},"415":{"position":[[1341,8]]}},"keywords":{}}],["continuing.y",{"_index":3138,"title":{},"content":{"387":{"position":[[715,14]]}},"keywords":{}}],["control",{"_index":1145,"title":{},"content":{"103":{"position":[[1281,10]]},"116":{"position":[[156,10]]},"325":{"position":[[4,7]]},"474":{"position":[[1365,7]]}},"keywords":{}}],["convers",{"_index":338,"title":{"27":{"position":[[13,10]]},"104":{"position":[[13,10]]},"339":{"position":[[13,10]]},"344":{"position":[[13,10]]},"358":{"position":[[13,10]]}},"content":{"11":{"position":[[549,10]]},"135":{"position":[[591,10],[640,10]]},"251":{"position":[[99,10]]},"387":{"position":[[630,10],[689,10]]},"440":{"position":[[24,10]]},"442":{"position":[[139,10]]},"443":{"position":[[24,10]]},"445":{"position":[[24,10]]},"446":{"position":[[24,10]]},"447":{"position":[[24,10]]},"448":{"position":[[24,10]]},"450":{"position":[[24,10]]},"451":{"position":[[24,10]]}},"keywords":{}}],["conversionnext",{"_index":1540,"title":{},"content":{"133":{"position":[[762,14]]}},"keywords":{}}],["convert",{"_index":1474,"title":{},"content":{"130":{"position":[[6363,9]]},"133":{"position":[[225,9]]},"252":{"position":[[1062,9],[1072,8]]},"307":{"position":[[131,9]]},"341":{"position":[[87,9]]},"451":{"position":[[317,11]]}},"keywords":{}}],["convex_hul",{"_index":1221,"title":{},"content":{"105":{"position":[[597,12]]}},"keywords":{}}],["coordin",{"_index":1030,"title":{},"content":{"89":{"position":[[366,10]]},"218":{"position":[[752,14]]},"219":{"position":[[436,14]]},"222":{"position":[[1056,14],[2098,14]]},"247":{"position":[[219,12]]},"262":{"position":[[190,14],[644,14],[980,14],[1303,14]]},"263":{"position":[[555,14],[928,14]]},"266":{"position":[[917,14],[1282,14],[1850,14],[2474,14]]},"267":{"position":[[585,14]]},"275":{"position":[[222,14],[792,14]]},"288":{"position":[[1800,14]]},"292":{"position":[[543,14]]},"357":{"position":[[1377,12]]},"361":{"position":[[3340,14]]},"364":{"position":[[311,14]]},"396":{"position":[[1126,11]]},"414":{"position":[[3102,14]]},"467":{"position":[[2601,11],[3661,11],[6901,12]]},"473":{"position":[[3213,11],[4346,11],[4460,12]]},"480":{"position":[[10101,12],[10679,12]]},"488":{"position":[[177,11],[1639,11],[2072,10],[2326,14]]},"519":{"position":[[3271,14]]},"520":{"position":[[3813,14]]},"521":{"position":[[3237,14]]},"522":{"position":[[3779,14]]},"523":{"position":[[3459,14]]},"524":{"position":[[3645,14]]},"525":{"position":[[3425,14]]},"526":{"position":[[3611,14]]}},"keywords":{}}],["coordint",{"_index":3655,"title":{},"content":{"473":{"position":[[5065,10]]}},"keywords":{}}],["copi",{"_index":147,"title":{},"content":{"3":{"position":[[751,4]]},"5":{"position":[[1447,4],[1640,4],[1915,4],[2210,4]]},"6":{"position":[[106,4],[242,4]]},"7":{"position":[[76,4],[242,4]]},"8":{"position":[[106,4],[285,4]]},"9":{"position":[[260,4]]},"13":{"position":[[98,4]]},"15":{"position":[[158,4]]},"16":{"position":[[103,4]]},"18":{"position":[[153,4]]},"19":{"position":[[202,4]]},"20":{"position":[[173,4]]},"22":{"position":[[94,4]]},"23":{"position":[[94,4]]},"25":{"position":[[376,4]]},"26":{"position":[[291,4]]},"28":{"position":[[302,4]]},"29":{"position":[[361,4]]},"31":{"position":[[229,4]]},"32":{"position":[[288,4]]},"33":{"position":[[238,4]]},"34":{"position":[[297,4]]},"35":{"position":[[295,4]]},"36":{"position":[[156,4]]},"37":{"position":[[212,4]]},"39":{"position":[[225,4]]},"41":{"position":[[183,4]]},"42":{"position":[[171,4]]},"43":{"position":[[109,4]]},"44":{"position":[[127,4]]},"45":{"position":[[123,4]]},"48":{"position":[[157,4],[241,4],[486,4]]},"50":{"position":[[218,4]]},"55":{"position":[[65,4]]},"57":{"position":[[1556,4],[1697,4]]},"58":{"position":[[135,4],[288,4]]},"59":{"position":[[2207,4],[2366,4]]},"60":{"position":[[92,4],[301,4],[467,4]]},"61":{"position":[[212,4],[436,4],[615,4]]},"62":{"position":[[218,4]]},"63":{"position":[[1282,4],[1425,4]]},"64":{"position":[[137,4],[294,4]]},"65":{"position":[[518,4],[660,4]]},"66":{"position":[[134,4],[289,4]]},"68":{"position":[[65,4]]},"70":{"position":[[777,4],[899,4]]},"71":{"position":[[541,4],[690,4]]},"72":{"position":[[437,4],[566,4]]},"73":{"position":[[139,4],[266,4]]},"74":{"position":[[325,4],[481,4]]},"75":{"position":[[143,4],[200,4],[281,4],[488,4]]},"76":{"position":[[149,4],[334,4]]},"78":{"position":[[569,4],[692,4]]},"79":{"position":[[567,4],[717,4]]},"80":{"position":[[439,4],[569,4]]},"82":{"position":[[570,4],[693,4]]},"83":{"position":[[385,4],[515,4]]},"86":{"position":[[246,4]]},"88":{"position":[[541,4],[680,4]]},"89":{"position":[[754,4],[951,4]]},"91":{"position":[[65,4]]},"93":{"position":[[503,4],[700,4]]},"94":{"position":[[138,4],[298,4]]},"95":{"position":[[715,4],[939,4]]},"96":{"position":[[285,4],[472,4]]},"97":{"position":[[247,4],[427,4]]},"98":{"position":[[558,4],[764,4]]},"99":{"position":[[226,4],[398,4]]},"100":{"position":[[507,4],[706,4]]},"101":{"position":[[858,4],[1077,4]]},"104":{"position":[[809,4],[2057,4]]},"107":{"position":[[204,4]]},"109":{"position":[[76,4],[268,4]]},"110":{"position":[[86,4],[344,4]]},"111":{"position":[[285,4],[371,4],[735,4]]},"112":{"position":[[203,4],[289,4],[592,4]]},"113":{"position":[[227,4],[313,4],[678,4]]},"114":{"position":[[212,4]]},"116":{"position":[[294,4]]},"119":{"position":[[183,4],[343,4]]},"120":{"position":[[204,4],[462,4]]},"121":{"position":[[152,4],[363,4]]},"122":{"position":[[449,4],[670,4]]},"123":{"position":[[224,4],[434,4]]},"124":{"position":[[303,4],[621,4]]},"125":{"position":[[222,4],[506,4]]},"126":{"position":[[218,4]]},"127":{"position":[[163,4]]},"129":{"position":[[65,4]]},"130":{"position":[[512,4],[1563,4],[1613,4],[1724,4],[1943,4],[2097,4],[2261,4],[2573,4],[2659,4],[2730,4],[2906,4],[3068,4],[3339,4],[3493,4],[3546,4],[3612,4],[3677,4],[3754,4],[3832,4],[3902,4],[3991,4],[4465,4],[4654,4],[5575,4]]},"131":{"position":[[322,4],[573,4]]},"132":{"position":[[311,4],[551,4]]},"133":{"position":[[292,4],[428,4]]},"140":{"position":[[315,4],[479,4]]},"141":{"position":[[111,4],[244,4],[574,4]]},"142":{"position":[[130,4]]},"144":{"position":[[163,4],[335,4]]},"147":{"position":[[312,4],[474,4]]},"148":{"position":[[108,4],[275,4],[601,4]]},"149":{"position":[[125,4]]},"151":{"position":[[161,4],[331,4]]},"154":{"position":[[333,4],[506,4]]},"155":{"position":[[129,4],[258,4],[564,4]]},"156":{"position":[[148,4]]},"158":{"position":[[172,4],[353,4]]},"161":{"position":[[306,4],[465,4]]},"162":{"position":[[102,4],[284,4],[657,4]]},"163":{"position":[[121,4]]},"165":{"position":[[158,4],[325,4]]},"168":{"position":[[318,4],[483,4]]},"169":{"position":[[114,4],[271,4],[590,4]]},"170":{"position":[[133,4]]},"172":{"position":[[164,4],[337,4]]},"175":{"position":[[328,4],[498,4]]},"176":{"position":[[124,4],[231,4],[553,4]]},"177":{"position":[[143,4]]},"179":{"position":[[169,4],[347,4]]},"182":{"position":[[308,4],[468,4]]},"183":{"position":[[104,4],[216,4],[519,4]]},"184":{"position":[[123,4]]},"186":{"position":[[159,4],[327,4]]},"189":{"position":[[312,4],[474,4]]},"190":{"position":[[108,4],[219,4],[529,4]]},"191":{"position":[[127,4]]},"193":{"position":[[161,4],[331,4]]},"196":{"position":[[308,4],[468,4]]},"197":{"position":[[104,4],[241,4],[571,4]]},"198":{"position":[[123,4]]},"200":{"position":[[159,4],[327,4]]},"203":{"position":[[312,4],[474,4]]},"204":{"position":[[108,4],[220,4],[487,4]]},"205":{"position":[[127,4]]},"207":{"position":[[161,4],[331,4]]},"218":{"position":[[549,4],[674,4]]},"219":{"position":[[230,4],[360,4]]},"220":{"position":[[1460,4],[1646,4]]},"221":{"position":[[112,4],[263,4]]},"222":{"position":[[877,4],[1648,4],[2053,4]]},"223":{"position":[[269,4]]},"224":{"position":[[168,4],[317,4]]},"225":{"position":[[144,4]]},"238":{"position":[[162,4]]},"239":{"position":[[360,4],[733,4]]},"244":{"position":[[1471,4],[1530,4]]},"245":{"position":[[555,4]]},"255":{"position":[[462,4],[593,4]]},"258":{"position":[[197,4]]},"260":{"position":[[564,4],[686,4]]},"261":{"position":[[110,4]]},"262":{"position":[[539,4],[877,4],[1088,4]]},"263":{"position":[[474,4],[788,4]]},"264":{"position":[[1150,4],[1318,4]]},"265":{"position":[[158,4],[331,4]]},"266":{"position":[[872,4],[1178,4],[1591,4]]},"267":{"position":[[246,4],[307,4],[554,4]]},"268":{"position":[[450,4],[517,4]]},"269":{"position":[[516,4],[699,4]]},"272":{"position":[[132,4]]},"273":{"position":[[152,4]]},"274":{"position":[[111,4]]},"275":{"position":[[177,4],[455,4],[681,4]]},"277":{"position":[[479,4],[600,4]]},"278":{"position":[[130,4]]},"279":{"position":[[171,4],[254,4]]},"280":{"position":[[187,4],[280,4]]},"282":{"position":[[377,4],[535,4]]},"283":{"position":[[134,4],[315,4]]},"284":{"position":[[145,4],[223,4]]},"285":{"position":[[171,4],[249,4]]},"287":{"position":[[677,4],[1281,4]]},"288":{"position":[[1663,4]]},"289":{"position":[[0,4]]},"290":{"position":[[0,4]]},"291":{"position":[[0,4]]},"292":{"position":[[522,4]]},"295":{"position":[[65,4]]},"297":{"position":[[89,4],[245,4]]},"298":{"position":[[90,4],[397,4],[604,4]]},"299":{"position":[[86,4]]},"301":{"position":[[693,4],[834,4],[1186,4],[1337,4],[1555,4],[1649,4],[1966,4],[2060,4],[2404,4]]},"302":{"position":[[818,4],[967,4],[1343,4],[1502,4],[1744,4],[1859,4],[2229,4],[2344,4],[2741,4]]},"303":{"position":[[198,4],[911,4],[1048,4],[1424,4],[1591,4],[1824,4],[1948,4],[2317,4],[2441,4],[2837,4]]},"304":{"position":[[210,4],[988,4],[1130,4],[1523,4],[1695,4],[1945,4],[2041,4],[2404,4],[2500,4],[2890,4]]},"305":{"position":[[204,4],[881,4],[1021,4],[1368,4],[1518,4],[1731,4],[1855,4],[2196,4],[2320,4],[2688,4]]},"313":{"position":[[392,4],[484,4],[833,4]]},"314":{"position":[[385,4],[463,4],[808,4]]},"317":{"position":[[448,4],[767,4],[1229,4],[1334,4],[1469,4],[1601,4]]},"328":{"position":[[260,4],[858,4]]},"329":{"position":[[527,4]]},"330":{"position":[[262,4],[884,4]]},"331":{"position":[[258,4],[742,4]]},"332":{"position":[[359,4],[724,4]]},"334":{"position":[[392,4],[484,4],[832,4]]},"335":{"position":[[382,4],[460,4],[805,4]]},"338":{"position":[[832,4],[1119,4],[1565,4],[1803,4],[2728,4],[3673,4]]},"345":{"position":[[65,4]]},"346":{"position":[[1884,4]]},"347":{"position":[[86,4]]},"348":{"position":[[113,4]]},"349":{"position":[[137,4],[274,4]]},"350":{"position":[[106,4]]},"351":{"position":[[105,4],[242,4]]},"352":{"position":[[299,4],[463,4]]},"353":{"position":[[682,4],[763,4],[928,4]]},"361":{"position":[[197,4]]},"364":{"position":[[254,4]]},"367":{"position":[[145,4]]},"368":{"position":[[111,4]]},"376":{"position":[[65,4]]},"378":{"position":[[515,4],[651,4],[1339,4],[1489,4],[2596,4],[2701,4],[3106,4],[3432,4]]},"379":{"position":[[575,4],[717,4],[1416,4],[1572,4],[2645,4],[2738,4],[3139,4],[3475,4]]},"380":{"position":[[497,4],[636,4],[1266,4],[1419,4],[2196,4],[2261,4],[2631,4],[2930,4]]},"382":{"position":[[1101,4],[1280,4],[1739,4]]},"383":{"position":[[1104,4],[1271,4],[1727,4]]},"384":{"position":[[843,4],[981,4],[1405,4]]},"385":{"position":[[898,4]]},"389":{"position":[[65,4]]},"390":{"position":[[1337,4],[1467,4]]},"391":{"position":[[96,4],[231,4]]},"392":{"position":[[123,4]]},"393":{"position":[[137,4],[288,4]]},"394":{"position":[[222,4],[373,4]]},"395":{"position":[[137,4],[279,4]]},"396":{"position":[[230,4],[374,4]]},"397":{"position":[[236,4],[385,4]]},"398":{"position":[[117,4]]},"399":{"position":[[196,4],[378,4]]},"400":{"position":[[165,4]]},"401":{"position":[[226,4]]},"406":{"position":[[176,4]]},"408":{"position":[[294,4],[461,4]]},"411":{"position":[[282,4]]},"412":{"position":[[63,4]]},"413":{"position":[[218,4]]},"414":{"position":[[326,4]]},"415":{"position":[[52,4],[788,4],[1814,4]]},"416":{"position":[[114,4]]},"423":{"position":[[220,4],[285,4]]},"424":{"position":[[158,4]]},"425":{"position":[[235,4]]},"426":{"position":[[108,4]]},"427":{"position":[[11,4]]},"428":{"position":[[388,4]]},"429":{"position":[[523,4],[820,4]]},"430":{"position":[[227,4],[436,4]]},"456":{"position":[[514,4]]},"461":{"position":[[21,4]]},"466":{"position":[[180,4]]},"467":{"position":[[509,4],[1818,4],[3037,4],[5936,4]]},"468":{"position":[[72,4]]},"473":{"position":[[372,4],[1116,4],[1970,4],[2379,4],[2677,4],[3422,4],[5761,4],[6225,4]]},"474":{"position":[[361,4],[631,7]]},"479":{"position":[[258,4]]},"480":{"position":[[94,4],[549,4],[1695,4],[2800,4],[3735,4],[4504,4],[5237,4],[7706,4],[8546,4],[9294,4],[9803,4]]},"481":{"position":[[72,4]]},"483":{"position":[[289,4]]},"484":{"position":[[181,4]]},"485":{"position":[[177,4]]},"486":{"position":[[150,4]]},"487":{"position":[[249,4]]},"488":{"position":[[189,4]]},"489":{"position":[[127,4]]},"490":{"position":[[113,4]]},"498":{"position":[[393,4],[578,4]]},"500":{"position":[[71,4],[200,4]]},"501":{"position":[[271,4],[405,4]]},"502":{"position":[[128,4],[635,4],[720,4],[937,4]]},"503":{"position":[[79,4],[496,4],[581,4],[810,4]]},"504":{"position":[[96,4]]},"517":{"position":[[207,4]]},"519":{"position":[[580,4],[754,4]]},"520":{"position":[[582,4],[757,4]]},"521":{"position":[[569,4],[720,4]]},"522":{"position":[[571,4],[723,4]]},"523":{"position":[[766,4],[942,4]]},"524":{"position":[[565,4],[742,4]]},"525":{"position":[[755,4],[908,4]]},"526":{"position":[[554,4],[708,4]]}},"keywords":{}}],["corn",{"_index":910,"title":{},"content":{"79":{"position":[[780,5],[863,6],[931,5],[1018,6]]},"229":{"position":[[74,6],[593,5],[1027,5],[1041,5],[1056,5],[1974,5],[2402,5],[2422,6]]},"253":{"position":[[701,5],[784,5]]},"264":{"position":[[625,6],[1510,6],[1535,6]]},"265":{"position":[[521,6],[546,6]]},"320":{"position":[[556,4],[567,4],[586,4],[823,4],[2610,4]]},"357":{"position":[[975,5],[1098,5]]},"361":{"position":[[2755,6],[3023,6],[3233,4]]}},"keywords":{}}],["corn2",{"_index":2687,"title":{},"content":{"320":{"position":[[603,5]]}},"keywords":{}}],["corpor",{"_index":2149,"title":{},"content":{"253":{"position":[[116,9]]}},"keywords":{}}],["correct",{"_index":1118,"title":{},"content":{"103":{"position":[[73,7]]},"209":{"position":[[437,9]]},"212":{"position":[[50,9]]},"293":{"position":[[556,9]]},"486":{"position":[[791,7]]}},"keywords":{}}],["correspond",{"_index":2384,"title":{},"content":{"267":{"position":[[102,13]]},"349":{"position":[[754,10],[843,10]]},"360":{"position":[[999,13]]},"395":{"position":[[764,10],[853,10]]},"511":{"position":[[2093,13]]},"515":{"position":[[2078,13]]}},"keywords":{}}],["corteva",{"_index":832,"title":{},"content":{"73":{"position":[[380,8]]}},"keywords":{}}],["cotton",{"_index":718,"title":{},"content":{"63":{"position":[[1767,7]]},"64":{"position":[[634,7]]},"229":{"position":[[2440,8]]},"320":{"position":[[612,6],[2721,6]]},"434":{"position":[[333,6]]}},"keywords":{}}],["count",{"_index":496,"title":{},"content":{"52":{"position":[[36,6],[49,6]]},"86":{"position":[[31,6],[44,6]]},"253":{"position":[[1311,6],[1324,6]]},"357":{"position":[[1145,5]]},"456":{"position":[[363,5]]}},"keywords":{}}],["counter",{"_index":860,"title":{},"content":{"74":{"position":[[725,10]]}},"keywords":{}}],["countri",{"_index":4009,"title":{},"content":{"510":{"position":[[47,7]]}},"keywords":{}}],["cover",{"_index":2902,"title":{},"content":{"357":{"position":[[1341,8],[1761,7]]},"511":{"position":[[1759,5],[1979,6]]},"515":{"position":[[1742,5],[1962,6]]}},"keywords":{}}],["coverag",{"_index":1631,"title":{},"content":{"209":{"position":[[564,8],[596,8]]},"215":{"position":[[69,8]]},"220":{"position":[[945,8],[1864,11],[2087,8],[2546,8]]},"221":{"position":[[479,11]]},"411":{"position":[[549,11]]},"467":{"position":[[4553,8],[4669,9]]}},"keywords":{}}],["coverdew",{"_index":3991,"title":{},"content":{"509":{"position":[[6,8]]},"513":{"position":[[6,8]]}},"keywords":{}}],["cpg",{"_index":1417,"title":{},"content":{"130":{"position":[[3135,5]]}},"keywords":{}}],["cr",{"_index":1031,"title":{},"content":{"89":{"position":[[394,5]]}},"keywords":{}}],["cramb",{"_index":1871,"title":{},"content":{"229":{"position":[[1069,8]]}},"keywords":{}}],["cranberri",{"_index":1987,"title":{},"content":{"229":{"position":[[2697,11]]},"320":{"position":[[626,9]]}},"keywords":{}}],["creat",{"_index":121,"title":{"5":{"position":[[0,6]]},"22":{"position":[[15,7]]},"35":{"position":[[10,7]]},"60":{"position":[[0,6]]},"111":{"position":[[0,6]]},"121":{"position":[[0,6]]},"124":{"position":[[0,6]]},"141":{"position":[[0,6]]},"148":{"position":[[0,6]]},"155":{"position":[[0,6]]},"162":{"position":[[0,6]]},"169":{"position":[[0,6]]},"176":{"position":[[0,6]]},"183":{"position":[[0,6]]},"190":{"position":[[0,6]]},"197":{"position":[[0,6]]},"204":{"position":[[0,6]]},"222":{"position":[[0,6]]},"239":{"position":[[0,6]]},"262":{"position":[[0,6]]},"279":{"position":[[0,6]]},"284":{"position":[[0,6]]},"298":{"position":[[0,6]]},"326":{"position":[[3,6]]},"382":{"position":[[0,6]]},"383":{"position":[[0,6]]},"384":{"position":[[0,6]]},"466":{"position":[[0,6]]},"470":{"position":[[0,8]]},"471":{"position":[[0,8]]},"472":{"position":[[0,8]]},"479":{"position":[[0,6]]},"484":{"position":[[0,6]]},"502":{"position":[[0,6]]}},"content":{"3":{"position":[[299,7]]},"5":{"position":[[16,7],[186,8],[216,6],[1906,8]]},"11":{"position":[[411,8],[797,8]]},"18":{"position":[[30,7],[246,7]]},"19":{"position":[[37,8],[295,7]]},"20":{"position":[[97,6],[266,7]]},"22":{"position":[[34,8],[130,7],[234,7]]},"35":{"position":[[44,8],[342,9]]},"41":{"position":[[41,8],[111,7]]},"44":{"position":[[43,7]]},"56":{"position":[[251,6]]},"57":{"position":[[582,7],[674,7]]},"59":{"position":[[427,7],[478,7],[570,7]]},"60":{"position":[[35,7]]},"61":{"position":[[108,7]]},"62":{"position":[[89,7]]},"103":{"position":[[1453,7]]},"105":{"position":[[162,6],[2935,6],[2990,7],[3192,6]]},"107":{"position":[[425,6]]},"111":{"position":[[28,7]]},"114":{"position":[[116,8]]},"117":{"position":[[128,6],[274,6]]},"118":{"position":[[300,6],[669,6]]},"121":{"position":[[63,6]]},"122":{"position":[[185,7]]},"126":{"position":[[137,7]]},"130":{"position":[[13,7],[780,6],[5247,7]]},"141":{"position":[[48,6]]},"148":{"position":[[46,6]]},"155":{"position":[[57,6]]},"162":{"position":[[43,6]]},"169":{"position":[[49,6]]},"176":{"position":[[54,6]]},"183":{"position":[[44,6]]},"190":{"position":[[46,6]]},"197":{"position":[[44,6]]},"204":{"position":[[46,6]]},"220":{"position":[[1276,7],[1330,7]]},"222":{"position":[[14,7],[444,6]]},"223":{"position":[[160,6]]},"232":{"position":[[31,7]]},"234":{"position":[[121,6]]},"242":{"position":[[178,6],[493,6],[887,6]]},"244":{"position":[[1188,7],[1983,6],[2252,7]]},"245":{"position":[[990,6],[1198,7]]},"246":{"position":[[0,6],[85,6]]},"247":{"position":[[85,6],[280,6],[495,8]]},"252":{"position":[[67,6],[668,8],[955,6]]},"258":{"position":[[449,6],[1446,6],[1619,6]]},"262":{"position":[[33,7],[263,7]]},"263":{"position":[[64,7],[94,7]]},"269":{"position":[[170,7]]},"270":{"position":[[80,7]]},"279":{"position":[[32,7]]},"284":{"position":[[34,7]]},"287":{"position":[[459,7],[2520,6]]},"288":{"position":[[58,7],[468,7],[639,7],[1496,7]]},"290":{"position":[[379,6]]},"291":{"position":[[393,6]]},"293":{"position":[[452,7]]},"296":{"position":[[78,7],[182,6]]},"298":{"position":[[16,7]]},"301":{"position":[[148,6],[335,6],[1434,6],[1505,6]]},"302":{"position":[[166,6],[386,6],[1599,6],[1686,6]]},"303":{"position":[[140,6],[532,6],[1697,6],[1779,6]]},"304":{"position":[[152,6],[559,6],[1801,6],[1894,6]]},"305":{"position":[[146,6],[535,6],[1615,6],[1683,6]]},"308":{"position":[[361,8]]},"310":{"position":[[65,6]]},"313":{"position":[[606,7]]},"314":{"position":[[582,7]]},"316":{"position":[[497,7]]},"324":{"position":[[65,6]]},"326":{"position":[[115,6]]},"328":{"position":[[142,6]]},"329":{"position":[[141,6]]},"330":{"position":[[125,6]]},"331":{"position":[[133,6]]},"332":{"position":[[131,6]]},"334":{"position":[[605,7]]},"335":{"position":[[579,7]]},"337":{"position":[[456,7]]},"338":{"position":[[2589,7]]},"341":{"position":[[288,7]]},"345":{"position":[[822,6]]},"353":{"position":[[154,7]]},"360":{"position":[[898,7]]},"363":{"position":[[84,6]]},"371":{"position":[[153,7]]},"372":{"position":[[128,7]]},"378":{"position":[[208,6],[416,7],[1241,7],[1996,6],[2168,7]]},"379":{"position":[[232,6],[479,7],[1321,7],[2080,6],[2265,7]]},"380":{"position":[[204,6],[443,7],[1213,7],[1895,6],[1977,7]]},"381":{"position":[[342,6],[410,6]]},"382":{"position":[[123,7],[206,7],[667,8],[802,8],[983,7]]},"383":{"position":[[129,7],[209,7],[670,8],[805,8],[986,7]]},"384":{"position":[[30,6],[79,7],[409,8],[544,8],[725,7]]},"385":{"position":[[109,8]]},"387":{"position":[[587,8],[769,6]]},"401":{"position":[[74,8]]},"423":{"position":[[6,8]]},"424":{"position":[[27,7]]},"444":{"position":[[153,8]]},"454":{"position":[[212,6]]},"464":{"position":[[51,6]]},"466":{"position":[[101,6]]},"467":{"position":[[46,6],[324,6],[4109,8],[5676,8],[6987,8],[7052,8],[7256,10]]},"470":{"position":[[3,6],[148,6]]},"471":{"position":[[39,6]]},"472":{"position":[[3,6]]},"473":{"position":[[3313,6],[4309,6],[4361,6],[4494,6],[4675,7],[4760,7],[4826,6]]},"474":{"position":[[64,6],[230,8],[395,6],[1344,6],[1552,8]]},"477":{"position":[[51,6]]},"479":{"position":[[101,6]]},"480":{"position":[[264,8],[1226,6],[1504,6],[2530,8],[2674,7],[3204,9],[3311,7],[3473,7],[4265,8],[5218,6],[5337,6],[5477,6],[5710,8],[6550,6],[12418,7]]},"483":{"position":[[653,8]]},"484":{"position":[[143,8],[539,9]]},"485":{"position":[[161,7]]},"486":{"position":[[256,6]]},"488":{"position":[[1249,8],[1608,6]]},"490":{"position":[[16,6]]},"492":{"position":[[103,6]]},"495":{"position":[[12,7]]},"498":{"position":[[239,6],[1174,6]]},"501":{"position":[[207,7]]},"502":{"position":[[13,7],[51,6],[278,7],[426,7],[470,8]]}},"keywords":{}}],["create/stor",{"_index":2130,"title":{},"content":{"252":{"position":[[104,12]]}},"keywords":{}}],["create_field",{"_index":3558,"title":{},"content":{"467":{"position":[[5529,16]]}},"keywords":{}}],["create_token",{"_index":3484,"title":{},"content":{"467":{"position":[[6,16]]},"473":{"position":[[2074,15]]},"480":{"position":[[1186,16]]},"483":{"position":[[414,16]]}},"keywords":{}}],["create_webhook",{"_index":3740,"title":{},"content":{"480":{"position":[[2324,18]]},"484":{"position":[[417,18]]}},"keywords":{}}],["created.bucketnam",{"_index":1730,"title":{},"content":{"220":{"position":[[2216,19]]}},"keywords":{}}],["createdat",{"_index":262,"title":{},"content":{"8":{"position":[[333,12],[818,12],[1303,12]]},"60":{"position":[[790,12]]},"61":{"position":[[941,12]]},"218":{"position":[[474,10]]},"378":{"position":[[737,12],[1573,12]]},"379":{"position":[[803,12],[1656,12]]},"380":{"position":[[722,12],[1503,12]]},"444":{"position":[[45,9]]}},"keywords":{}}],["createdd",{"_index":1576,"title":{},"content":{"144":{"position":[[362,14]]},"151":{"position":[[358,14]]},"158":{"position":[[380,14]]},"165":{"position":[[352,14]]},"172":{"position":[[364,14]]},"179":{"position":[[374,14]]},"186":{"position":[[354,14]]},"193":{"position":[[358,14]]},"200":{"position":[[354,14]]},"207":{"position":[[355,14]]}},"keywords":{}}],["createdtim",{"_index":543,"title":{},"content":{"57":{"position":[[454,11],[1976,14],[2429,14]]},"58":{"position":[[456,14]]},"59":{"position":[[355,11],[2144,12]]},"60":{"position":[[741,14]]},"61":{"position":[[892,14]]},"63":{"position":[[356,11],[411,11]]},"88":{"position":[[1177,14],[1762,14]]},"140":{"position":[[516,14]]},"141":{"position":[[611,14]]},"147":{"position":[[511,14]]},"148":{"position":[[638,14]]},"154":{"position":[[543,14]]},"155":{"position":[[601,14]]},"161":{"position":[[502,14]]},"162":{"position":[[694,14]]},"168":{"position":[[520,14]]},"169":{"position":[[627,14]]},"175":{"position":[[535,14]]},"176":{"position":[[590,14]]},"182":{"position":[[505,14]]},"183":{"position":[[556,14]]},"189":{"position":[[511,14]]},"190":{"position":[[566,14]]},"196":{"position":[[505,14]]},"197":{"position":[[608,14]]},"203":{"position":[[511,14]]},"204":{"position":[[524,14]]},"260":{"position":[[1108,14],[1473,14]]},"262":{"position":[[1367,14]]},"266":{"position":[[2109,14],[2538,14]]},"275":{"position":[[1062,14]]},"277":{"position":[[905,14]]},"282":{"position":[[727,14]]},"283":{"position":[[505,14]]},"287":{"position":[[954,14],[1552,14]]},"288":{"position":[[2109,14]]},"290":{"position":[[202,14]]},"291":{"position":[[156,14]]},"338":{"position":[[158,12],[238,11],[514,12]]},"346":{"position":[[548,11],[603,11],[1628,12]]},"444":{"position":[[72,11]]}},"keywords":{}}],["creation",{"_index":358,"title":{"381":{"position":[[26,8]]}},"content":{"19":{"position":[[50,8]]},"57":{"position":[[508,9]]},"105":{"position":[[805,8]]},"209":{"position":[[257,8]]},"381":{"position":[[24,8],[83,8]]},"444":{"position":[[98,8]]},"484":{"position":[[742,8]]}},"keywords":{}}],["credenti",{"_index":324,"title":{"14":{"position":[[0,11]]},"15":{"position":[[0,11]]},"16":{"position":[[0,11]]},"138":{"position":[[9,11]]},"139":{"position":[[9,11]]},"140":{"position":[[17,11]]},"141":{"position":[[18,11]]},"142":{"position":[[16,11]]},"145":{"position":[[8,11]]},"146":{"position":[[8,11]]},"147":{"position":[[16,11]]},"148":{"position":[[17,11]]},"149":{"position":[[15,11]]},"152":{"position":[[18,11]]},"153":{"position":[[18,11]]},"154":{"position":[[26,11]]},"155":{"position":[[27,11]]},"156":{"position":[[25,11]]},"159":{"position":[[5,11]]},"160":{"position":[[5,11]]},"161":{"position":[[13,11]]},"162":{"position":[[14,11]]},"163":{"position":[[12,11]]},"166":{"position":[[11,11]]},"167":{"position":[[11,11]]},"168":{"position":[[19,11]]},"169":{"position":[[20,11]]},"170":{"position":[[18,11]]},"173":{"position":[[16,11]]},"174":{"position":[[16,11]]},"175":{"position":[[24,11]]},"176":{"position":[[25,11]]},"177":{"position":[[23,11]]},"180":{"position":[[6,11]]},"181":{"position":[[6,11]]},"182":{"position":[[14,11]]},"183":{"position":[[15,11]]},"184":{"position":[[13,11]]},"187":{"position":[[8,11]]},"188":{"position":[[8,11]]},"189":{"position":[[16,11]]},"190":{"position":[[17,11]]},"191":{"position":[[15,11]]},"194":{"position":[[6,11]]},"195":{"position":[[6,11]]},"196":{"position":[[14,11]]},"197":{"position":[[15,11]]},"198":{"position":[[13,11]]},"201":{"position":[[8,11]]},"202":{"position":[[8,11]]},"203":{"position":[[16,11]]},"204":{"position":[[17,11]]},"205":{"position":[[15,11]]},"420":{"position":[[9,11]]},"505":{"position":[[10,11]]}},"content":{"11":{"position":[[232,11],[251,11],[283,11]]},"15":{"position":[[28,11],[165,13],[243,12],[277,10],[363,12]]},"16":{"position":[[19,11],[110,13],[188,12],[222,10],[308,12]]},"47":{"position":[[588,11]]},"50":{"position":[[286,11]]},"93":{"position":[[89,11]]},"95":{"position":[[79,11]]},"97":{"position":[[123,12]]},"98":{"position":[[68,11]]},"100":{"position":[[93,11]]},"101":{"position":[[74,11]]},"140":{"position":[[35,11],[65,11],[138,12],[203,10],[456,12]]},"141":{"position":[[36,11],[66,11],[515,12],[549,11]]},"142":{"position":[[38,11],[78,12],[274,12]]},"144":{"position":[[83,10],[534,10]]},"147":{"position":[[33,11],[62,11],[135,12],[200,10],[451,12]]},"148":{"position":[[34,11],[63,11],[543,12],[576,11]]},"149":{"position":[[34,11],[73,12],[267,12]]},"151":{"position":[[81,10],[530,10]]},"154":{"position":[[44,11],[83,11],[156,12],[221,10],[483,12]]},"155":{"position":[[45,11],[84,11],[496,12],[539,11]]},"156":{"position":[[47,11],[96,12],[301,12]]},"158":{"position":[[92,10],[552,10]]},"161":{"position":[[30,11],[56,11],[129,12],[194,10],[442,12]]},"162":{"position":[[31,11],[57,11],[602,12],[632,11]]},"163":{"position":[[33,11],[69,12],[260,12]]},"165":{"position":[[78,10],[524,10]]},"168":{"position":[[36,11],[68,11],[141,12],[206,10],[460,12]]},"169":{"position":[[37,11],[69,11],[529,12],[565,11]]},"170":{"position":[[39,11],[81,12],[278,12]]},"172":{"position":[[84,10],[536,10]]},"175":{"position":[[41,11],[78,11],[151,12],[216,10],[475,12]]},"176":{"position":[[42,11],[79,11],[487,12],[528,11]]},"177":{"position":[[44,11],[91,12],[293,12]]},"179":{"position":[[89,10],[546,10]]},"182":{"position":[[31,11],[58,11],[131,12],[196,10],[445,12]]},"183":{"position":[[32,11],[59,11],[463,12],[494,11]]},"184":{"position":[[34,11],[71,12],[263,12]]},"186":{"position":[[79,10],[526,10]]},"189":{"position":[[33,11],[62,11],[135,12],[200,10],[451,12]]},"190":{"position":[[34,11],[63,11],[471,12],[504,11]]},"191":{"position":[[36,11],[75,12],[269,12]]},"193":{"position":[[81,10],[530,10]]},"196":{"position":[[31,11],[58,11],[131,12],[196,10],[445,12]]},"197":{"position":[[32,11],[59,11],[515,12],[546,11]]},"198":{"position":[[34,11],[71,12],[263,12]]},"200":{"position":[[79,10],[526,10]]},"203":{"position":[[33,11],[62,11],[135,12],[200,10],[451,12]]},"204":{"position":[[34,11],[63,11],[429,12],[462,11]]},"205":{"position":[[36,11],[75,12],[269,12]]},"207":{"position":[[81,10],[521,10]]},"233":{"position":[[127,11]]},"242":{"position":[[819,11],[923,12]]},"244":{"position":[[531,12],[1740,11],[1959,12],[2012,11],[2114,11],[2231,11]]},"245":{"position":[[281,12],[966,12],[1019,11],[1115,11],[1177,11]]},"246":{"position":[[40,11],[155,11],[175,11],[210,11],[763,11],[1005,11],[1061,12],[1099,11],[1267,12],[1534,12]]},"252":{"position":[[470,11]]},"329":{"position":[[82,11]]},"330":{"position":[[69,11]]},"331":{"position":[[73,11]]},"332":{"position":[[72,11]]},"345":{"position":[[590,11],[674,11],[854,11]]},"418":{"position":[[109,11]]},"420":{"position":[[32,11]]},"422":{"position":[[148,12]]},"454":{"position":[[235,11]]},"464":{"position":[[81,11]]},"467":{"position":[[1318,11],[1390,14]]},"477":{"position":[[81,11]]},"480":{"position":[[2242,14]]},"483":{"position":[[212,11]]},"493":{"position":[[112,11]]},"495":{"position":[[189,11]]},"498":{"position":[[982,11],[1031,11]]},"500":{"position":[[614,11],[663,11]]},"501":{"position":[[183,11]]},"502":{"position":[[286,11],[396,11],[566,11],[615,11]]},"503":{"position":[[218,11],[301,12],[341,11],[427,11],[476,11]]}},"keywords":{}}],["credential'",{"_index":1572,"title":{},"content":{"143":{"position":[[66,12]]},"150":{"position":[[66,12]]},"157":{"position":[[66,12]]},"164":{"position":[[66,12]]},"171":{"position":[[66,12]]},"178":{"position":[[66,12]]},"185":{"position":[[66,12]]},"192":{"position":[[66,12]]},"199":{"position":[[66,12]]},"206":{"position":[[66,12]]}},"keywords":{}}],["credentialid",{"_index":352,"title":{},"content":{"15":{"position":[[256,15]]},"16":{"position":[[201,15]]}},"keywords":{}}],["credentials/ev",{"_index":1573,"title":{},"content":{"144":{"position":[[35,18],[305,19]]},"151":{"position":[[33,18],[301,19]]},"158":{"position":[[44,18],[323,19]]},"165":{"position":[[30,18],[295,19]]},"172":{"position":[[36,18],[307,19]]},"179":{"position":[[41,18],[317,19]]},"186":{"position":[[31,18],[297,19]]},"193":{"position":[[33,18],[301,19]]},"200":{"position":[[31,18],[297,19]]},"207":{"position":[[33,18],[301,19]]}},"keywords":{}}],["credentialslimitedpermiss",{"_index":202,"title":{},"content":{"5":{"position":[[866,29]]},"15":{"position":[[384,31]]}},"keywords":{}}],["credentialsunauthent",{"_index":203,"title":{},"content":{"5":{"position":[[896,27]]},"16":{"position":[[329,29]]}},"keywords":{}}],["cri",{"_index":25,"title":{},"content":{"0":{"position":[[312,3],[727,3],[899,3],[1454,3],[1626,3],[1798,3]]}},"keywords":{}}],["crimson",{"_index":1975,"title":{},"content":{"229":{"position":[[2547,8]]},"320":{"position":[[638,7],[1466,7]]}},"keywords":{}}],["criteria",{"_index":1021,"title":{},"content":{"89":{"position":[[208,8]]},"413":{"position":[[369,9]]}},"keywords":{}}],["crocu",{"_index":1948,"title":{},"content":{"229":{"position":[[2194,8]]}},"keywords":{}}],["crop",{"_index":341,"title":{"38":{"position":[[0,4]]},"208":{"position":[[0,4]]},"216":{"position":[[0,4]]},"227":{"position":[[8,4]]},"229":{"position":[[0,5]]},"235":{"position":[[0,5]]},"318":{"position":[[0,5]]},"399":{"position":[[0,4]]}},"content":{"11":{"position":[[856,4]]},"51":{"position":[[236,4],[374,4]]},"52":{"position":[[130,4],[211,4]]},"53":{"position":[[84,5]]},"78":{"position":[[747,8]]},"79":{"position":[[151,5],[165,4],[852,8],[1007,8]]},"80":{"position":[[345,4],[366,4],[624,8]]},"105":{"position":[[2909,4]]},"209":{"position":[[13,4],[676,4]]},"215":{"position":[[98,4]]},"227":{"position":[[5,4],[68,4]]},"229":{"position":[[26,5],[97,4],[2630,5]]},"251":{"position":[[719,4]]},"253":{"position":[[425,5],[654,4],[739,4],[1109,4],[1241,4]]},"264":{"position":[[590,4],[614,5],[654,4],[709,5],[1499,8]]},"265":{"position":[[510,8]]},"289":{"position":[[125,8]]},"319":{"position":[[60,5]]},"320":{"position":[[57,4],[77,4],[205,5],[3172,4],[3191,4],[3326,4]]},"346":{"position":[[1081,4]]},"357":{"position":[[891,4],[920,4]]},"361":{"position":[[3013,7]]},"364":{"position":[[698,7]]},"365":{"position":[[200,4],[216,4],[1621,4]]},"389":{"position":[[693,4]]},"414":{"position":[[773,7]]},"419":{"position":[[403,4]]},"434":{"position":[[161,4]]},"441":{"position":[[11,4]]},"442":{"position":[[11,4]]},"450":{"position":[[155,4]]},"451":{"position":[[329,4]]}},"keywords":{}}],["cropflow",{"_index":3443,"title":{},"content":{"446":{"position":[[95,9]]}},"keywords":{}}],["croporigin",{"_index":3285,"title":{},"content":{"414":{"position":[[3044,14]]}},"keywords":{}}],["css",{"_index":3583,"title":{},"content":{"471":{"position":[[211,3]]}},"keywords":{}}],["cucumb",{"_index":1872,"title":{},"content":{"229":{"position":[[1078,10]]}},"keywords":{}}],["curl",{"_index":74,"title":{},"content":{"2":{"position":[[251,5]]},"5":{"position":[[1645,4],[2215,4]]},"6":{"position":[[111,4]]},"7":{"position":[[81,4]]},"8":{"position":[[111,4]]},"9":{"position":[[265,4]]},"48":{"position":[[246,4]]},"57":{"position":[[1561,4]]},"58":{"position":[[140,4]]},"59":{"position":[[2212,4]]},"60":{"position":[[306,4]]},"61":{"position":[[441,4]]},"62":{"position":[[223,4]]},"63":{"position":[[1287,4]]},"64":{"position":[[142,4]]},"65":{"position":[[523,4]]},"66":{"position":[[139,4]]},"70":{"position":[[782,4]]},"71":{"position":[[546,4]]},"72":{"position":[[442,4]]},"73":{"position":[[144,4]]},"74":{"position":[[330,4]]},"75":{"position":[[286,4]]},"76":{"position":[[154,4]]},"78":{"position":[[574,4]]},"79":{"position":[[572,4]]},"80":{"position":[[444,4]]},"82":{"position":[[575,4]]},"83":{"position":[[390,4]]},"88":{"position":[[546,4]]},"89":{"position":[[759,4]]},"93":{"position":[[508,4]]},"94":{"position":[[143,4]]},"95":{"position":[[720,4]]},"96":{"position":[[290,4]]},"97":{"position":[[252,4]]},"98":{"position":[[563,4]]},"99":{"position":[[231,4]]},"100":{"position":[[512,4]]},"101":{"position":[[863,4]]},"109":{"position":[[98,4]]},"110":{"position":[[158,4]]},"111":{"position":[[443,4]]},"112":{"position":[[315,4]]},"113":{"position":[[385,4]]},"114":{"position":[[284,4]]},"119":{"position":[[188,4]]},"120":{"position":[[209,4]]},"121":{"position":[[157,4]]},"122":{"position":[[454,4]]},"123":{"position":[[229,4]]},"124":{"position":[[308,4]]},"125":{"position":[[227,4]]},"126":{"position":[[223,4]]},"127":{"position":[[168,4]]},"130":{"position":[[4470,4]]},"133":{"position":[[297,4]]},"140":{"position":[[320,4]]},"141":{"position":[[249,4]]},"142":{"position":[[135,4]]},"144":{"position":[[168,4]]},"147":{"position":[[317,4]]},"148":{"position":[[280,4]]},"149":{"position":[[130,4]]},"151":{"position":[[166,4]]},"154":{"position":[[338,4]]},"155":{"position":[[263,4]]},"156":{"position":[[153,4]]},"158":{"position":[[177,4]]},"161":{"position":[[311,4]]},"162":{"position":[[289,4]]},"163":{"position":[[126,4]]},"165":{"position":[[163,4]]},"168":{"position":[[323,4]]},"169":{"position":[[276,4]]},"170":{"position":[[138,4]]},"172":{"position":[[169,4]]},"175":{"position":[[333,4]]},"176":{"position":[[236,4]]},"177":{"position":[[148,4]]},"179":{"position":[[174,4]]},"182":{"position":[[313,4]]},"183":{"position":[[221,4]]},"184":{"position":[[128,4]]},"186":{"position":[[164,4]]},"189":{"position":[[317,4]]},"190":{"position":[[224,4]]},"191":{"position":[[132,4]]},"193":{"position":[[166,4]]},"196":{"position":[[313,4]]},"197":{"position":[[246,4]]},"198":{"position":[[128,4]]},"200":{"position":[[164,4]]},"203":{"position":[[317,4]]},"204":{"position":[[225,4]]},"205":{"position":[[132,4]]},"207":{"position":[[166,4]]},"218":{"position":[[554,4]]},"219":{"position":[[235,4]]},"220":{"position":[[1465,4]]},"221":{"position":[[117,4]]},"222":{"position":[[1653,4]]},"223":{"position":[[274,4]]},"224":{"position":[[173,4]]},"225":{"position":[[149,4]]},"239":{"position":[[738,4]]},"255":{"position":[[467,4]]},"256":{"position":[[297,5]]},"260":{"position":[[569,4]]},"261":{"position":[[115,4]]},"262":{"position":[[882,4]]},"263":{"position":[[793,4]]},"264":{"position":[[1155,4]]},"265":{"position":[[163,4]]},"266":{"position":[[1183,4]]},"267":{"position":[[312,4]]},"268":{"position":[[522,4]]},"269":{"position":[[521,4]]},"272":{"position":[[137,4]]},"273":{"position":[[157,4]]},"274":{"position":[[116,4]]},"275":{"position":[[460,4]]},"277":{"position":[[484,4]]},"278":{"position":[[135,4]]},"279":{"position":[[259,4]]},"280":{"position":[[285,4]]},"282":{"position":[[382,4]]},"283":{"position":[[139,4]]},"284":{"position":[[228,4]]},"285":{"position":[[254,4]]},"297":{"position":[[94,4]]},"298":{"position":[[402,4]]},"299":{"position":[[91,4]]},"301":{"position":[[698,4],[1191,4],[1654,4],[2065,4],[2409,4]]},"302":{"position":[[823,4],[1348,4],[1864,4],[2349,4],[2746,4]]},"303":{"position":[[916,4],[1429,4],[1953,4],[2446,4],[2842,4]]},"304":{"position":[[993,4],[1528,4],[2046,4],[2505,4],[2895,4]]},"305":{"position":[[886,4],[1373,4],[1860,4],[2325,4],[2693,4]]},"328":{"position":[[863,4]]},"329":{"position":[[532,4]]},"330":{"position":[[889,4]]},"331":{"position":[[747,4]]},"332":{"position":[[729,4]]},"346":{"position":[[1889,4]]},"347":{"position":[[91,4]]},"348":{"position":[[118,4]]},"349":{"position":[[142,4]]},"350":{"position":[[111,4]]},"351":{"position":[[110,4]]},"352":{"position":[[304,4]]},"353":{"position":[[768,4]]},"378":{"position":[[520,4],[1344,4],[2706,4],[3437,4]]},"379":{"position":[[580,4],[1421,4],[2743,4],[3480,4]]},"380":{"position":[[502,4],[1271,4],[2266,4],[2935,4]]},"382":{"position":[[1285,4]]},"383":{"position":[[1276,4]]},"384":{"position":[[986,4]]},"385":{"position":[[903,4]]},"390":{"position":[[1342,4]]},"391":{"position":[[101,4]]},"392":{"position":[[128,4]]},"393":{"position":[[142,4]]},"394":{"position":[[227,4]]},"395":{"position":[[142,4]]},"396":{"position":[[235,4]]},"397":{"position":[[241,4]]},"398":{"position":[[122,4]]},"399":{"position":[[201,4]]},"400":{"position":[[170,4]]},"401":{"position":[[231,4]]},"408":{"position":[[299,4]]},"422":{"position":[[320,4]]},"423":{"position":[[290,4]]},"424":{"position":[[163,4]]},"425":{"position":[[240,4]]},"426":{"position":[[113,4]]},"427":{"position":[[16,4]]},"428":{"position":[[393,4]]},"429":{"position":[[528,4],[825,4]]},"430":{"position":[[232,4],[441,4]]},"461":{"position":[[26,4]]},"500":{"position":[[76,4]]},"501":{"position":[[276,4]]},"502":{"position":[[725,4]]},"503":{"position":[[586,4]]},"504":{"position":[[101,4]]},"519":{"position":[[585,4]]},"520":{"position":[[587,4]]},"521":{"position":[[574,4]]},"522":{"position":[[576,4]]},"523":{"position":[[771,4]]},"524":{"position":[[570,4]]},"525":{"position":[[760,4]]},"526":{"position":[[559,4]]}},"keywords":{}}],["curljavascriptpython",{"_index":1570,"title":{},"content":{"142":{"position":[[109,20]]}},"keywords":{}}],["curlpython",{"_index":3401,"title":{},"content":{"424":{"position":[[147,10]]},"425":{"position":[[224,10]]},"426":{"position":[[97,10]]},"427":{"position":[[0,10]]},"428":{"position":[[377,10]]},"429":{"position":[[512,10],[809,10]]},"430":{"position":[[216,10],[425,10]]}},"keywords":{}}],["curlpythonjavascript",{"_index":228,"title":{},"content":{"5":{"position":[[1619,20],[2189,20]]},"6":{"position":[[85,20]]},"7":{"position":[[55,20]]},"8":{"position":[[85,20]]},"9":{"position":[[239,20]]},"48":{"position":[[220,20]]},"57":{"position":[[1535,20]]},"58":{"position":[[114,20]]},"59":{"position":[[2186,20]]},"60":{"position":[[280,20]]},"61":{"position":[[415,20]]},"62":{"position":[[197,20]]},"63":{"position":[[1261,20]]},"64":{"position":[[116,20]]},"65":{"position":[[497,20]]},"66":{"position":[[113,20]]},"70":{"position":[[756,20]]},"71":{"position":[[520,20]]},"72":{"position":[[416,20]]},"73":{"position":[[118,20]]},"74":{"position":[[304,20]]},"75":{"position":[[260,20]]},"76":{"position":[[128,20]]},"78":{"position":[[548,20]]},"79":{"position":[[546,20]]},"80":{"position":[[418,20]]},"82":{"position":[[549,20]]},"83":{"position":[[364,20]]},"88":{"position":[[520,20]]},"89":{"position":[[733,20]]},"93":{"position":[[482,20]]},"94":{"position":[[117,20]]},"95":{"position":[[694,20]]},"96":{"position":[[264,20]]},"97":{"position":[[226,20]]},"98":{"position":[[537,20]]},"99":{"position":[[205,20]]},"100":{"position":[[486,20]]},"101":{"position":[[837,20]]},"109":{"position":[[55,20]]},"110":{"position":[[65,20]]},"111":{"position":[[350,20]]},"112":{"position":[[268,20]]},"113":{"position":[[292,20]]},"114":{"position":[[191,20]]},"119":{"position":[[162,20]]},"120":{"position":[[183,20]]},"121":{"position":[[131,20]]},"122":{"position":[[428,20]]},"123":{"position":[[203,20]]},"124":{"position":[[282,20]]},"125":{"position":[[201,20]]},"126":{"position":[[197,20]]},"127":{"position":[[142,20]]},"130":{"position":[[4444,20]]},"131":{"position":[[301,20]]},"132":{"position":[[290,20]]},"133":{"position":[[271,20]]},"140":{"position":[[294,20]]},"141":{"position":[[223,20]]},"144":{"position":[[142,20]]},"147":{"position":[[291,20]]},"148":{"position":[[254,20]]},"149":{"position":[[104,20]]},"151":{"position":[[140,20]]},"154":{"position":[[312,20]]},"155":{"position":[[237,20]]},"156":{"position":[[127,20]]},"158":{"position":[[151,20]]},"161":{"position":[[285,20]]},"162":{"position":[[263,20]]},"163":{"position":[[100,20]]},"165":{"position":[[137,20]]},"168":{"position":[[297,20]]},"169":{"position":[[250,20]]},"170":{"position":[[112,20]]},"172":{"position":[[143,20]]},"175":{"position":[[307,20]]},"176":{"position":[[210,20]]},"177":{"position":[[122,20]]},"179":{"position":[[148,20]]},"182":{"position":[[287,20]]},"183":{"position":[[195,20]]},"184":{"position":[[102,20]]},"186":{"position":[[138,20]]},"189":{"position":[[291,20]]},"190":{"position":[[198,20]]},"191":{"position":[[106,20]]},"193":{"position":[[140,20]]},"196":{"position":[[287,20]]},"197":{"position":[[220,20]]},"198":{"position":[[102,20]]},"200":{"position":[[138,20]]},"203":{"position":[[291,20]]},"204":{"position":[[199,20]]},"205":{"position":[[106,20]]},"207":{"position":[[140,20]]},"218":{"position":[[528,20]]},"219":{"position":[[209,20]]},"220":{"position":[[1439,20]]},"221":{"position":[[91,20]]},"222":{"position":[[1627,20]]},"223":{"position":[[248,20]]},"224":{"position":[[147,20]]},"225":{"position":[[123,20]]},"239":{"position":[[712,20]]},"255":{"position":[[441,20]]},"260":{"position":[[543,20]]},"261":{"position":[[89,20]]},"262":{"position":[[856,20]]},"263":{"position":[[767,20]]},"264":{"position":[[1129,20]]},"265":{"position":[[137,20]]},"266":{"position":[[1157,20]]},"267":{"position":[[286,20]]},"268":{"position":[[496,20]]},"269":{"position":[[495,20]]},"272":{"position":[[111,20]]},"273":{"position":[[131,20]]},"274":{"position":[[90,20]]},"275":{"position":[[434,20]]},"277":{"position":[[458,20]]},"278":{"position":[[109,20]]},"279":{"position":[[233,20]]},"280":{"position":[[259,20]]},"282":{"position":[[356,20]]},"283":{"position":[[113,20]]},"284":{"position":[[202,20]]},"285":{"position":[[228,20]]},"297":{"position":[[68,20]]},"298":{"position":[[376,20]]},"299":{"position":[[65,20]]},"301":{"position":[[672,20],[1165,20],[1628,20],[2039,20],[2383,20]]},"302":{"position":[[797,20],[1322,20],[1838,20],[2323,20],[2720,20]]},"303":{"position":[[890,20],[1403,20],[1927,20],[2420,20],[2816,20]]},"304":{"position":[[967,20],[1502,20],[2020,20],[2479,20],[2869,20]]},"305":{"position":[[860,20],[1347,20],[1834,20],[2299,20],[2667,20]]},"328":{"position":[[837,20]]},"329":{"position":[[506,20]]},"330":{"position":[[863,20]]},"331":{"position":[[721,20]]},"332":{"position":[[703,20]]},"346":{"position":[[1863,20]]},"347":{"position":[[65,20]]},"348":{"position":[[92,20]]},"349":{"position":[[116,20]]},"350":{"position":[[85,20]]},"351":{"position":[[84,20]]},"352":{"position":[[278,20]]},"353":{"position":[[742,20]]},"378":{"position":[[494,20],[1318,20],[2680,20],[3411,20]]},"379":{"position":[[554,20],[1395,20],[2717,20],[3454,20]]},"380":{"position":[[476,20],[1245,20],[2240,20],[2909,20]]},"382":{"position":[[1259,20]]},"383":{"position":[[1250,20]]},"384":{"position":[[960,20]]},"385":{"position":[[877,20]]},"390":{"position":[[1316,20]]},"391":{"position":[[75,20]]},"392":{"position":[[102,20]]},"393":{"position":[[116,20]]},"394":{"position":[[201,20]]},"395":{"position":[[116,20]]},"396":{"position":[[209,20]]},"397":{"position":[[215,20]]},"398":{"position":[[96,20]]},"399":{"position":[[175,20]]},"400":{"position":[[144,20]]},"401":{"position":[[205,20]]},"408":{"position":[[273,20]]},"423":{"position":[[264,20]]},"461":{"position":[[0,20]]},"500":{"position":[[50,20]]},"501":{"position":[[250,20]]},"502":{"position":[[699,20]]},"503":{"position":[[560,20]]},"504":{"position":[[75,20]]},"519":{"position":[[559,20]]},"520":{"position":[[561,20]]},"521":{"position":[[548,20]]},"522":{"position":[[550,20]]},"523":{"position":[[745,20]]},"524":{"position":[[544,20]]},"525":{"position":[[734,20]]},"526":{"position":[[533,20]]}},"keywords":{}}],["current",{"_index":457,"title":{},"content":{"50":{"position":[[121,10]]},"63":{"position":[[101,10]]},"65":{"position":[[99,10]]},"72":{"position":[[110,9]]},"89":{"position":[[121,10]]},"126":{"position":[[156,7]]},"130":{"position":[[295,10]]},"209":{"position":[[661,10]]},"210":{"position":[[5,9]]},"229":{"position":[[35,9]]},"239":{"position":[[65,7]]},"244":{"position":[[675,7],[751,7],[833,7]]},"288":{"position":[[407,7]]},"292":{"position":[[0,10]]},"338":{"position":[[402,7],[657,7],[3052,7]]},"346":{"position":[[58,7]]},"349":{"position":[[977,10]]},"390":{"position":[[68,7]]},"395":{"position":[[987,10]]},"439":{"position":[[119,10]]}},"keywords":{}}],["cursor",{"_index":3908,"title":{},"content":{"487":{"position":[[988,7]]},"488":{"position":[[1479,7]]}},"keywords":{}}],["custom",{"_index":460,"title":{"385":{"position":[[5,13]]}},"content":{"50":{"position":[[260,9]]},"53":{"position":[[222,9]]},"135":{"position":[[142,9]]},"252":{"position":[[398,10],[830,10]]},"287":{"position":[[1709,6]]},"307":{"position":[[53,9]]},"316":{"position":[[80,14],[141,14],[343,14],[748,9]]},"322":{"position":[[151,9]]},"337":{"position":[[80,14],[141,14],[707,9],[1091,10]]},"338":{"position":[[1711,6]]},"340":{"position":[[143,9]]},"385":{"position":[[17,10]]},"387":{"position":[[842,9]]},"418":{"position":[[245,9],[552,9]]},"492":{"position":[[160,10]]},"493":{"position":[[40,10]]},"498":{"position":[[160,10]]}},"keywords":{}}],["customdatasync",{"_index":1120,"title":{},"content":{"103":{"position":[[176,15]]},"268":{"position":[[128,14]]},"287":{"position":[[1063,14]]}},"keywords":{}}],["customer/grow",{"_index":2133,"title":{},"content":{"252":{"position":[[532,15]]},"493":{"position":[[173,15]]}},"keywords":{}}],["customsync",{"_index":2394,"title":{},"content":{"268":{"position":[[262,10]]}},"keywords":{}}],["d",{"_index":234,"title":{},"content":{"5":{"position":[[1739,1],[2288,1]]},"48":{"position":[[300,1]]},"60":{"position":[[362,1]]},"61":{"position":[[498,1]]},"75":{"position":[[341,1]]},"111":{"position":[[535,1]]},"112":{"position":[[408,1]]},"113":{"position":[[478,1]]},"121":{"position":[[213,1]]},"122":{"position":[[511,1]]},"124":{"position":[[364,1]]},"125":{"position":[[284,1]]},"141":{"position":[[343,1]]},"148":{"position":[[336,1]]},"155":{"position":[[319,1]]},"162":{"position":[[383,1]]},"169":{"position":[[332,1]]},"176":{"position":[[330,1]]},"183":{"position":[[315,1]]},"190":{"position":[[318,1]]},"197":{"position":[[340,1]]},"204":{"position":[[281,1]]},"222":{"position":[[1747,1]]},"262":{"position":[[938,1]]},"263":{"position":[[850,1]]},"266":{"position":[[1239,1]]},"268":{"position":[[578,1]]},"275":{"position":[[515,1]]},"279":{"position":[[315,1]]},"280":{"position":[[340,1]]},"284":{"position":[[284,1]]},"285":{"position":[[309,1]]},"298":{"position":[[457,1]]},"301":{"position":[[1710,1],[2120,1]]},"302":{"position":[[1920,1],[2404,1]]},"303":{"position":[[2009,1],[2501,1]]},"304":{"position":[[2102,1],[2560,1]]},"305":{"position":[[1916,1],[2380,1]]},"328":{"position":[[919,1]]},"329":{"position":[[588,1]]},"330":{"position":[[945,1]]},"331":{"position":[[803,1]]},"332":{"position":[[785,1]]},"353":{"position":[[824,1]]},"378":{"position":[[2762,1]]},"379":{"position":[[2799,1]]},"380":{"position":[[2322,1]]},"382":{"position":[[1341,1]]},"383":{"position":[[1332,1]]},"384":{"position":[[1042,1]]},"385":{"position":[[959,1]]},"399":{"position":[[257,1]]},"423":{"position":[[344,1]]},"488":{"position":[[1962,1],[2370,3]]},"502":{"position":[[781,1]]},"503":{"position":[[641,1]]}},"keywords":{}}],["d0245010",{"_index":2282,"title":{},"content":{"262":{"position":[[1223,9]]}},"keywords":{}}],["d1",{"_index":3947,"title":{},"content":{"488":{"position":[[2002,2],[2374,3]]}},"keywords":{}}],["d1fb3aac",{"_index":945,"title":{},"content":{"82":{"position":[[1464,9]]},"83":{"position":[[1286,9]]}},"keywords":{}}],["d228",{"_index":1465,"title":{},"content":{"130":{"position":[[5652,4]]}},"keywords":{}}],["d29038ce2fa4",{"_index":1502,"title":{},"content":{"131":{"position":[[804,13]]}},"keywords":{}}],["d33fa06c25d8",{"_index":1463,"title":{},"content":{"130":{"position":[[5613,14]]}},"keywords":{}}],["d36b0df369e8",{"_index":2412,"title":{},"content":{"275":{"position":[[719,14]]}},"keywords":{}}],["d451",{"_index":589,"title":{},"content":{"57":{"position":[[1877,4]]}},"keywords":{}}],["d49900a3",{"_index":3348,"title":{},"content":{"415":{"position":[[3162,8]]}},"keywords":{}}],["d582da4568cc",{"_index":735,"title":{},"content":{"65":{"position":[[808,14]]},"66":{"position":[[435,14]]}},"keywords":{}}],["d5efe8a1",{"_index":671,"title":{},"content":{"60":{"position":[[480,9]]},"61":{"position":[[628,9]]}},"keywords":{}}],["d7edd72388bd.tif",{"_index":3307,"title":{},"content":{"415":{"position":[[2139,17]]}},"keywords":{}}],["dado",{"_index":3921,"title":{},"content":{"488":{"position":[[974,6]]}},"keywords":{}}],["dahlia",{"_index":1951,"title":{},"content":{"229":{"position":[[2217,8]]}},"keywords":{}}],["daili",{"_index":3989,"title":{"519":{"position":[[4,5]]},"521":{"position":[[4,5]]},"523":{"position":[[4,5]]},"525":{"position":[[4,5]]}},"content":{"508":{"position":[[150,5]]},"511":{"position":[[117,5],[213,5],[309,5],[1096,5],[1215,5],[1273,5],[1340,5],[1905,5],[2133,6]]},"512":{"position":[[116,5]]},"514":{"position":[[147,5],[225,5]]},"515":{"position":[[100,5],[196,5],[292,5],[1079,5],[1198,5],[1256,5],[1323,5],[1888,5],[2118,6]]},"517":{"position":[[334,5],[500,5],[646,5],[820,5],[975,5]]},"519":{"position":[[68,5]]},"521":{"position":[[45,5]]},"523":{"position":[[70,5]]},"525":{"position":[[47,5]]}},"keywords":{}}],["dark",{"_index":2624,"title":{},"content":{"316":{"position":[[287,4],[1006,4]]},"337":{"position":[[218,4],[737,4]]}},"keywords":{}}],["dashboard",{"_index":2744,"title":{},"content":{"330":{"position":[[311,9]]}},"keywords":{}}],["dat",{"_index":1367,"title":{},"content":{"130":{"position":[[1861,4]]}},"keywords":{}}],["data",{"_index":59,"title":{"233":{"position":[[10,4]]},"340":{"position":[[23,4]]},"488":{"position":[[9,4]]},"510":{"position":[[0,4]]},"512":{"position":[[11,4]]},"514":{"position":[[0,4]]}},"content":{"2":{"position":[[77,4],[190,4],[350,4],[408,5],[495,4]]},"28":{"position":[[122,4]]},"29":{"position":[[122,4]]},"41":{"position":[[97,4]]},"42":{"position":[[93,4]]},"44":{"position":[[65,4]]},"45":{"position":[[61,4]]},"50":{"position":[[40,4],[149,4],[213,4],[233,4]]},"51":{"position":[[252,5],[411,4]]},"53":{"position":[[126,5],[146,4]]},"61":{"position":[[151,4]]},"62":{"position":[[70,4],[132,4]]},"73":{"position":[[49,4]]},"105":{"position":[[506,5],[1050,4],[1270,4]]},"116":{"position":[[110,4],[223,5]]},"117":{"position":[[192,4],[578,5],[1230,4],[1312,4]]},"130":{"position":[[1571,4],[1980,4],[2016,4],[2063,4],[3083,4],[3376,4],[3412,4],[3459,4]]},"133":{"position":[[164,4]]},"137":{"position":[[118,4]]},"209":{"position":[[591,4]]},"212":{"position":[[552,4]]},"220":{"position":[[2541,4],[2649,5]]},"233":{"position":[[100,4],[374,5]]},"242":{"position":[[17,4],[72,4],[100,4],[275,4],[1034,5]]},"244":{"position":[[513,4],[2080,5]]},"245":{"position":[[1084,5]]},"246":{"position":[[284,4]]},"251":{"position":[[75,4],[118,5],[237,4],[270,4],[496,4],[853,5],[880,4],[983,4]]},"252":{"position":[[274,4],[313,5],[409,4],[979,4],[984,4],[1051,5],[1085,4],[1347,5],[1384,4]]},"253":{"position":[[1263,4]]},"256":{"position":[[131,4],[226,4],[413,5]]},"267":{"position":[[518,4]]},"268":{"position":[[80,4],[216,4]]},"292":{"position":[[40,4]]},"338":{"position":[[1682,5],[1768,4],[2016,4],[2103,4],[2480,4],[3060,4]]},"340":{"position":[[583,4]]},"341":{"position":[[471,4],[543,4]]},"342":{"position":[[72,5],[109,4]]},"345":{"position":[[723,5]]},"349":{"position":[[592,4],[971,5]]},"359":{"position":[[133,5]]},"360":{"position":[[78,4]]},"363":{"position":[[9,4]]},"387":{"position":[[74,4],[513,4],[981,4],[995,4]]},"395":{"position":[[602,4],[981,5]]},"396":{"position":[[951,4]]},"410":{"position":[[131,5]]},"411":{"position":[[729,4]]},"413":{"position":[[307,4],[551,5]]},"415":{"position":[[439,4],[598,4],[1627,4]]},"418":{"position":[[177,4],[305,4]]},"419":{"position":[[5,4]]},"422":{"position":[[183,4],[230,4]]},"424":{"position":[[75,5]]},"425":{"position":[[31,5],[64,4]]},"426":{"position":[[62,4]]},"429":{"position":[[197,4],[225,4],[273,4]]},"430":{"position":[[60,4]]},"438":{"position":[[34,4]]},"441":{"position":[[34,4]]},"454":{"position":[[175,4]]},"467":{"position":[[101,4],[745,4],[774,4],[862,5],[5577,4],[6319,4],[6557,6],[6714,4],[6795,4],[7029,4],[7147,4],[7193,5],[7364,4]]},"473":{"position":[[2608,5],[3936,4],[4003,4],[4164,5]]},"480":{"position":[[1281,4],[1879,4],[1967,5],[2374,4],[2436,4],[2879,4],[3132,5],[6352,5],[7886,5],[8017,5],[8825,4],[8858,4],[9585,4],[9618,4],[10822,4],[10869,4],[12621,4]]},"483":{"position":[[95,4],[431,5]]},"484":{"position":[[436,5]]},"486":{"position":[[448,5]]},"487":{"position":[[235,4]]},"488":{"position":[[966,5],[2860,4],[3067,4]]},"492":{"position":[[181,4]]},"493":{"position":[[51,4]]},"495":{"position":[[259,4]]},"496":{"position":[[80,5]]},"498":{"position":[[171,4]]},"502":{"position":[[523,4]]},"505":{"position":[[324,5]]},"507":{"position":[[50,4],[175,4]]},"508":{"position":[[70,4],[130,4]]},"512":{"position":[[53,4],[96,4],[165,4],[249,4]]},"514":{"position":[[63,4]]},"517":{"position":[[981,4],[1083,4]]},"519":{"position":[[93,4],[194,4],[410,5]]},"520":{"position":[[95,4],[196,4],[412,5]]},"521":{"position":[[70,4],[183,4],[399,5]]},"522":{"position":[[72,4],[185,4],[401,5]]},"523":{"position":[[95,4],[195,4],[269,4],[353,4],[618,5]]},"524":{"position":[[97,4],[197,4],[417,5]]},"525":{"position":[[72,4],[184,4],[258,4],[342,4],[607,5]]},"526":{"position":[[74,4],[186,4],[406,5],[3696,4]]}},"keywords":{}}],["data.a",{"_index":2004,"title":{},"content":{"233":{"position":[[53,6]]}},"keywords":{}}],["data.geometry[0][0",{"_index":3641,"title":{},"content":{"473":{"position":[[4285,20]]}},"keywords":{}}],["data.imag",{"_index":3640,"title":{},"content":{"473":{"position":[[4211,12]]}},"keywords":{}}],["data.length",{"_index":3795,"title":{},"content":{"480":{"position":[[7933,12]]}},"keywords":{}}],["data.messag",{"_index":3614,"title":{},"content":{"473":{"position":[[1673,13],[1690,13]]}},"keywords":{}}],["data.split(/\\r?\\n/).foreach((lin",{"_index":3796,"title":{},"content":{"480":{"position":[[8061,34]]}},"keywords":{}}],["data.token",{"_index":3617,"title":{},"content":{"473":{"position":[[1863,12]]}},"keywords":{}}],["data/log/us",{"_index":1350,"title":{},"content":{"130":{"position":[[1403,13]]}},"keywords":{}}],["data_obj",{"_index":3531,"title":{},"content":{"467":{"position":[[4026,8],[4041,8]]}},"keywords":{}}],["data_obj.foreach((",{"_index":3533,"title":{},"content":{"467":{"position":[[4226,20]]}},"keywords":{}}],["data_obj.length",{"_index":3532,"title":{},"content":{"467":{"position":[[4070,16]]}},"keywords":{}}],["data_obj.sort",{"_index":3537,"title":{},"content":{"467":{"position":[[4335,14]]}},"keywords":{}}],["databas",{"_index":827,"title":{},"content":{"73":{"position":[[89,10]]},"223":{"position":[[48,9]]}},"keywords":{}}],["databaseid",{"_index":1587,"title":{},"content":{"147":{"position":[[643,13]]},"148":{"position":[[176,13],[401,13],[770,13]]}},"keywords":{}}],["dataset",{"_index":3038,"title":{},"content":{"364":{"position":[[98,7]]}},"keywords":{}}],["datatyp",{"_index":3916,"title":{},"content":{"488":{"position":[[447,9],[948,9],[2975,9]]}},"keywords":{}}],["date",{"_index":699,"title":{"457":{"position":[[0,4]]}},"content":{"63":{"position":[[377,5],[451,5]]},"105":{"position":[[2918,4]]},"126":{"position":[[164,4]]},"220":{"position":[[1664,7],[2036,5],[2046,4]]},"221":{"position":[[279,7]]},"222":{"position":[[674,5]]},"252":{"position":[[1193,4]]},"264":{"position":[[794,4],[875,4]]},"287":{"position":[[974,4],[1006,4],[1572,4],[1604,4]]},"289":{"position":[[85,4],[113,4]]},"291":{"position":[[176,4],[208,4]]},"341":{"position":[[1086,4]]},"346":{"position":[[569,5],[641,5],[713,5],[783,5]]},"357":{"position":[[525,5],[573,5],[655,5],[703,5]]},"365":{"position":[[139,5]]},"390":{"position":[[350,5],[422,5],[492,5]]},"457":{"position":[[8,5],[60,5]]},"467":{"position":[[2897,5],[4121,4],[4142,4],[4220,5],[4310,6],[4637,5]]},"501":{"position":[[215,4]]},"519":{"position":[[125,5],[280,5],[339,5]]},"520":{"position":[[127,5],[282,5],[341,5]]},"521":{"position":[[114,5],[269,5],[328,5]]},"522":{"position":[[116,5],[271,5],[330,5]]},"523":{"position":[[131,5],[485,5],[544,5]]},"524":{"position":[[133,5],[284,5],[343,5]]},"525":{"position":[[120,5],[474,5],[533,5]]},"526":{"position":[[122,5],[273,5],[332,5]]}},"keywords":{}}],["date(e.d",{"_index":3535,"title":{},"content":{"467":{"position":[[4265,13]]}},"keywords":{}}],["dateacquisitionendd",{"_index":1042,"title":{},"content":{"89":{"position":[[554,22]]}},"keywords":{}}],["dateiscalibr",{"_index":1043,"title":{},"content":{"89":{"position":[[587,16]]}},"keywords":{}}],["datetim",{"_index":552,"title":{},"content":{"57":{"position":[[601,9],[692,9]]},"59":{"position":[[497,9],[588,9]]},"220":{"position":[[447,8],[519,8],[607,8],[705,8]]},"264":{"position":[[734,8],[816,8]]}},"keywords":{}}],["datumth",{"_index":1034,"title":{},"content":{"89":{"position":[[423,8]]}},"keywords":{}}],["day",{"_index":443,"title":{},"content":{"48":{"position":[[647,4]]},"105":{"position":[[2282,5],[2411,5]]},"144":{"position":[[516,4]]},"151":{"position":[[512,4]]},"158":{"position":[[534,4]]},"165":{"position":[[506,4]]},"172":{"position":[[518,4]]},"179":{"position":[[528,4]]},"186":{"position":[[508,4]]},"193":{"position":[[512,4]]},"200":{"position":[[508,4]]},"207":{"position":[[503,4]]},"209":{"position":[[239,4]]},"210":{"position":[[219,4],[226,3]]},"220":{"position":[[496,3],[568,3],[668,3],[766,3]]},"222":{"position":[[418,4]]},"252":{"position":[[192,5]]},"316":{"position":[[798,4],[946,5]]},"423":{"position":[[498,4]]},"428":{"position":[[127,5]]},"458":{"position":[[63,4]]},"467":{"position":[[4208,4],[4298,4],[4619,3],[4754,4]]},"508":{"position":[[90,4],[106,4]]},"510":{"position":[[154,4],[209,4],[271,4],[323,4],[369,4],[434,4]]},"511":{"position":[[934,4],[1004,4]]},"512":{"position":[[187,4],[272,5]]},"514":{"position":[[160,4],[238,4]]},"515":{"position":[[917,4],[987,4]]},"517":{"position":[[1038,6],[1131,4]]},"519":{"position":[[218,4]]},"520":{"position":[[220,4]]},"521":{"position":[[207,4]]},"522":{"position":[[209,4]]},"523":{"position":[[220,4],[291,4],[376,5]]},"524":{"position":[[222,4]]},"525":{"position":[[209,4],[280,4],[365,5]]},"526":{"position":[[211,4]]}},"keywords":{}}],["day.images.push(f",{"_index":3553,"title":{},"content":{"467":{"position":[[5000,19]]}},"keywords":{}}],["days_befor",{"_index":3568,"title":{},"content":{"467":{"position":[[6236,11],[6840,12]]}},"keywords":{}}],["daysbefor",{"_index":1758,"title":{},"content":{"222":{"position":[[515,12],[693,10]]},"467":{"position":[[6828,11]]},"473":{"position":[[747,11]]}},"keywords":{}}],["dbdd2bcdfa16",{"_index":2886,"title":{},"content":{"352":{"position":[[586,13]]}},"keywords":{}}],["dbf",{"_index":491,"title":{},"content":{"51":{"position":[[639,3]]},"93":{"position":[[223,4]]},"95":{"position":[[394,4]]},"98":{"position":[[291,3]]},"100":{"position":[[227,4]]},"101":{"position":[[208,4]]},"130":{"position":[[3145,5]]}},"keywords":{}}],["dc69",{"_index":3171,"title":{},"content":{"390":{"position":[[1799,4]]},"391":{"position":[[561,4]]}},"keywords":{}}],["dcb6fd16",{"_index":2310,"title":{},"content":{"264":{"position":[[1637,9]]}},"keywords":{}}],["dd",{"_index":1759,"title":{},"content":{"222":{"position":[[607,4]]}},"keywords":{}}],["dd't'hh:mm:ss.sss'z",{"_index":395,"title":{},"content":{"39":{"position":[[370,22]]},"41":{"position":[[238,22]]},"42":{"position":[[226,22]]},"43":{"position":[[164,22]]},"44":{"position":[[184,22]]},"45":{"position":[[180,22]]},"457":{"position":[[99,22]]}},"keywords":{}}],["dd't'hh:mm:ss.ssssss'z",{"_index":355,"title":{},"content":{"15":{"position":[[438,24]]},"16":{"position":[[381,24]]},"18":{"position":[[284,25]]},"19":{"position":[[333,25]]},"20":{"position":[[304,25]]},"22":{"position":[[313,24]]},"23":{"position":[[313,24]]},"25":{"position":[[488,25]]},"26":{"position":[[456,25]]},"28":{"position":[[414,25]]},"29":{"position":[[526,25]]},"31":{"position":[[341,25]]},"32":{"position":[[453,25]]},"33":{"position":[[350,25]]},"34":{"position":[[462,25]]},"35":{"position":[[416,25]]},"36":{"position":[[278,25]]},"37":{"position":[[373,24]]},"140":{"position":[[540,25]]},"141":{"position":[[635,25]]},"144":{"position":[[386,25]]},"147":{"position":[[535,25]]},"148":{"position":[[662,25]]},"151":{"position":[[382,25]]},"154":{"position":[[567,25]]},"155":{"position":[[625,25]]},"158":{"position":[[404,25]]},"161":{"position":[[526,25]]},"162":{"position":[[718,25]]},"165":{"position":[[376,25]]},"168":{"position":[[544,25]]},"169":{"position":[[651,25]]},"172":{"position":[[388,25]]},"175":{"position":[[559,25]]},"176":{"position":[[614,25]]},"179":{"position":[[398,25]]},"182":{"position":[[529,25]]},"183":{"position":[[580,25]]},"186":{"position":[[378,25]]},"189":{"position":[[535,25]]},"190":{"position":[[590,25]]},"193":{"position":[[382,25]]},"196":{"position":[[529,25]]},"197":{"position":[[632,25]]},"200":{"position":[[378,25]]},"203":{"position":[[535,25]]},"204":{"position":[[548,25]]},"207":{"position":[[379,25]]},"357":{"position":[[612,25],[742,25]]}},"keywords":{}}],["ddthh:mm:ss.sz",{"_index":3234,"title":{},"content":{"411":{"position":[[387,16],[424,16],[465,16]]}},"keywords":{}}],["ddthh:mm:ssz",{"_index":667,"title":{},"content":{"59":{"position":[[2797,14],[2832,14]]}},"keywords":{}}],["de979a293457",{"_index":1468,"title":{},"content":{"130":{"position":[[5667,14]]}},"keywords":{}}],["debrief",{"_index":3388,"title":{},"content":{"420":{"position":[[227,7]]}},"keywords":{}}],["decod",{"_index":155,"title":{},"content":{"3":{"position":[[937,6]]}},"keywords":{}}],["decreas",{"_index":2527,"title":{},"content":{"293":{"position":[[657,8]]}},"keywords":{}}],["deep",{"_index":2809,"title":{},"content":{"338":{"position":[[3104,5]]},"511":{"position":[[433,6],[546,6],[659,6]]},"515":{"position":[[416,6],[529,6],[642,6]]}},"keywords":{}}],["deer",{"_index":462,"title":{"95":{"position":[[28,5]]},"96":{"position":[[29,5]]},"97":{"position":[[32,5]]},"166":{"position":[[5,5]]},"167":{"position":[[5,5]]},"168":{"position":[[13,5]]},"169":{"position":[[14,5]]},"170":{"position":[[12,5]]},"244":{"position":[[5,5]]},"304":{"position":[[5,5]]},"328":{"position":[[5,5]]},"454":{"position":[[44,5]]}},"content":{"50":{"position":[[280,5]]},"63":{"position":[[117,5],[1747,7]]},"64":{"position":[[614,7]]},"65":{"position":[[115,5]]},"70":{"position":[[70,6],[220,7]]},"72":{"position":[[152,5]]},"78":{"position":[[82,7]]},"80":{"position":[[103,5]]},"82":{"position":[[83,7]]},"83":{"position":[[103,5]]},"92":{"position":[[261,5],[329,5],[402,5]]},"95":{"position":[[73,5]]},"97":{"position":[[117,5],[196,5]]},"168":{"position":[[30,5],[62,5],[454,5]]},"169":{"position":[[31,5],[63,5],[523,5],[559,5]]},"170":{"position":[[33,5],[75,5],[272,5]]},"172":{"position":[[30,5],[301,5]]},"243":{"position":[[51,5]]},"244":{"position":[[74,5],[196,5],[261,6],[311,5],[421,5],[507,5],[901,5],[1173,5],[1660,5],[1953,5],[2074,5],[2108,5]]},"246":{"position":[[124,5],[999,5]]},"252":{"position":[[361,7]]},"283":{"position":[[649,5],[758,5]]},"287":{"position":[[2307,5]]},"304":{"position":[[15,5],[112,6],[320,5],[426,5],[483,5],[573,5],[664,5],[754,5],[846,5],[907,5],[1353,5],[1442,5],[1815,5],[1908,5],[2275,5],[2367,5],[2733,5],[2828,5]]},"328":{"position":[[15,5],[102,6],[441,6],[592,6],[782,6]]},"346":{"position":[[469,6]]},"419":{"position":[[224,5]]},"434":{"position":[[362,7]]},"454":{"position":[[68,5],[162,5],[188,5]]},"502":{"position":[[323,6]]}},"keywords":{}}],["deereclim",{"_index":3986,"title":{},"content":{"505":{"position":[[5,12]]}},"keywords":{}}],["deereraven",{"_index":484,"title":{},"content":{"51":{"position":[[490,10]]}},"keywords":{}}],["deereravenraven",{"_index":3386,"title":{},"content":{"420":{"position":[[110,15]]}},"keywords":{}}],["deereupd",{"_index":2066,"title":{},"content":{"244":{"position":[[739,11],[821,11]]}},"keywords":{}}],["default",{"_index":559,"title":{},"content":{"57":{"position":[[922,8],[1210,8],[1401,7]]},"59":{"position":[[1752,8],[2040,8]]},"63":{"position":[[664,8],[952,8],[1127,7]]},"65":{"position":[[283,8],[363,7]]},"70":{"position":[[496,8],[711,8]]},"71":{"position":[[199,8],[475,8]]},"72":{"position":[[384,7]]},"78":{"position":[[288,8],[503,8]]},"79":{"position":[[225,8],[501,8]]},"80":{"position":[[331,7]]},"82":{"position":[[289,8],[504,8]]},"83":{"position":[[332,7]]},"88":{"position":[[306,8],[386,7]]},"103":{"position":[[129,7],[489,7],[783,7],[1104,7],[1228,7],[1649,7]]},"104":{"position":[[121,7],[305,7],[792,7],[1210,7],[1395,7],[1639,7],[2033,7],[2438,7],[2541,7]]},"105":{"position":[[516,7],[839,7],[955,7],[1135,7],[1313,7],[1661,7],[2006,7],[2263,7],[2391,7],[2529,7],[2765,7],[3037,7],[3215,7]]},"130":{"position":[[1039,7],[4182,7],[4380,7],[5217,7]]},"209":{"position":[[200,8]]},"218":{"position":[[417,8]]},"222":{"position":[[353,8],[1570,7]]},"255":{"position":[[330,9]]},"260":{"position":[[432,9]]},"264":{"position":[[1020,8],[1083,8]]},"266":{"position":[[283,7]]},"277":{"position":[[359,9]]},"282":{"position":[[321,9]]},"298":{"position":[[283,7]]},"337":{"position":[[763,7],[953,7],[1053,7]]},"346":{"position":[[1281,8],[1557,8],[1729,7]]},"357":{"position":[[321,7],[332,8],[406,7]]},"378":{"position":[[2506,7]]},"379":{"position":[[2555,7]]},"380":{"position":[[2106,7]]},"382":{"position":[[491,7]]},"383":{"position":[[494,7]]},"384":{"position":[[233,7]]},"385":{"position":[[279,7],[591,7],[841,7]]},"390":{"position":[[775,8],[1063,8],[1182,7]]},"413":{"position":[[755,7]]},"448":{"position":[[193,7]]},"450":{"position":[[222,10]]},"451":{"position":[[95,10]]},"456":{"position":[[201,8],[336,8]]},"458":{"position":[[3,8]]},"519":{"position":[[226,8],[461,7],[523,7]]},"520":{"position":[[228,8],[463,7],[525,7]]},"521":{"position":[[215,8],[450,7],[512,7]]},"522":{"position":[[217,8],[452,7],[514,7]]},"523":{"position":[[228,8],[646,7],[709,7]]},"524":{"position":[[230,8],[445,7],[508,7]]},"525":{"position":[[217,8],[635,7],[698,7]]},"526":{"position":[[219,8],[434,7],[497,7]]}},"keywords":{}}],["default.assettyp",{"_index":1768,"title":{},"content":{"222":{"position":[[1322,19]]}},"keywords":{}}],["default.oper",{"_index":2826,"title":{},"content":{"341":{"position":[[241,18]]}},"keywords":{}}],["defaultimperialmetr",{"_index":2896,"title":{},"content":{"357":{"position":[[341,21]]}},"keywords":{}}],["defaultstartd",{"_index":1699,"title":{},"content":{"220":{"position":[[421,16]]}},"keywords":{}}],["defin",{"_index":190,"title":{},"content":{"5":{"position":[[536,7]]},"47":{"position":[[247,7]]},"88":{"position":[[1547,7],[1600,7]]},"104":{"position":[[2266,7]]},"105":{"position":[[574,7],[1597,7],[1897,7]]},"130":{"position":[[1417,7]]},"220":{"position":[[1259,8]]},"320":{"position":[[104,7]]},"430":{"position":[[120,6]]},"456":{"position":[[171,7],[240,7]]},"466":{"position":[[297,6],[363,6]]},"467":{"position":[[6703,6]]},"473":{"position":[[315,7],[1942,6],[2644,6],[4520,6],[5728,6]]},"479":{"position":[[585,6],[651,6]]},"480":{"position":[[2785,7],[10255,6],[12467,6]]},"482":{"position":[[55,6]]},"487":{"position":[[281,6]]},"488":{"position":[[3034,6]]},"523":{"position":[[145,7]]},"524":{"position":[[147,7]]},"525":{"position":[[134,7]]},"526":{"position":[[136,7]]}},"keywords":{}}],["definitionapi",{"_index":2129,"title":{},"content":{"252":{"position":[[5,13]]}},"keywords":{}}],["definitionfield",{"_index":2117,"title":{},"content":{"251":{"position":[[5,15]]}},"keywords":{}}],["definitionorgan",{"_index":2145,"title":{},"content":{"253":{"position":[[5,22]]}},"keywords":{}}],["degre",{"_index":1187,"title":{},"content":{"104":{"position":[[1420,8]]},"365":{"position":[[304,7]]}},"keywords":{}}],["delay",{"_index":4089,"title":{},"content":{"514":{"position":[[165,5],[243,5]]}},"keywords":{}}],["delet",{"_index":309,"title":{"9":{"position":[[0,6]]},"43":{"position":[[0,7]]},"62":{"position":[[0,6]]},"114":{"position":[[0,6]]},"127":{"position":[[0,6]]},"142":{"position":[[0,6]]},"149":{"position":[[0,6]]},"156":{"position":[[0,6]]},"163":{"position":[[0,6]]},"170":{"position":[[0,6]]},"177":{"position":[[0,6]]},"184":{"position":[[0,6]]},"191":{"position":[[0,6]]},"198":{"position":[[0,6]]},"205":{"position":[[0,6]]},"223":{"position":[[0,6]]},"270":{"position":[[0,6]]},"504":{"position":[[0,6]]}},"content":{"9":{"position":[[1,6],[23,6],[100,6],[133,6],[273,6]]},"11":{"position":[[933,7]]},"43":{"position":[[37,7],[223,9]]},"47":{"position":[[1073,6]]},"56":{"position":[[366,6],[383,6]]},"62":{"position":[[1,6],[53,6],[116,7],[171,7],[231,6]]},"107":{"position":[[594,6],[627,6]]},"114":{"position":[[1,6],[30,7],[292,6]]},"118":{"position":[[1095,6],[1131,6]]},"127":{"position":[[1,6],[102,7],[176,6]]},"142":{"position":[[1,6],[50,6],[143,6]]},"144":{"position":[[548,7]]},"149":{"position":[[46,6],[138,6]]},"151":{"position":[[544,7]]},"156":{"position":[[1,6],[59,6],[161,6]]},"158":{"position":[[566,7]]},"163":{"position":[[1,6],[45,6],[134,6]]},"165":{"position":[[538,7]]},"170":{"position":[[1,6],[51,6],[146,6]]},"172":{"position":[[550,7]]},"177":{"position":[[1,6],[56,6],[156,6]]},"179":{"position":[[560,7]]},"184":{"position":[[1,6],[46,6],[136,6]]},"186":{"position":[[540,7]]},"191":{"position":[[1,6],[48,6],[140,6]]},"193":{"position":[[544,7]]},"198":{"position":[[1,6],[46,6],[136,6]]},"200":{"position":[[540,7]]},"205":{"position":[[1,6],[48,6],[140,6]]},"207":{"position":[[535,7]]},"223":{"position":[[1,6],[21,7],[86,8],[282,6]]},"258":{"position":[[1003,6],[1018,6]]},"270":{"position":[[1,6],[32,7],[112,7]]},"275":{"position":[[133,8]]},"287":{"position":[[2723,6],[2738,6]]},"288":{"position":[[210,7],[1089,8]]},"296":{"position":[[251,6]]},"299":{"position":[[1,6],[99,6]]},"301":{"position":[[472,6],[507,6],[2256,6],[2293,6],[2329,6],[2417,6]]},"302":{"position":[[555,6],[598,6],[2569,6],[2614,6],[2658,6],[2754,6]]},"303":{"position":[[691,6],[721,6],[2683,6],[2715,6],[2767,6],[2850,6]]},"304":{"position":[[740,6],[776,6],[2719,6],[2757,6],[2814,6],[2903,6]]},"305":{"position":[[666,6],[699,6],[2545,6],[2580,6],[2615,6],[2701,6]]},"378":{"position":[[282,6],[311,6],[3260,6],[3291,6],[3333,6],[3445,6]]},"379":{"position":[[319,6],[355,6],[3293,6],[3331,6],[3379,6],[3488,6]]},"380":{"position":[[284,6],[316,6],[2785,6],[2819,6],[2864,6],[2943,6]]},"480":{"position":[[4240,6],[4359,6],[5069,6],[6819,6]]},"498":{"position":[[1235,6],[1254,6]]},"504":{"position":[[1,6],[20,7],[109,6]]}},"keywords":{}}],["delete(endpoint",{"_index":3758,"title":{},"content":{"480":{"position":[[4757,17]]}},"keywords":{}}],["delete_webhook/:id",{"_index":3754,"title":{},"content":{"480":{"position":[[4183,22]]}},"keywords":{}}],["demo",{"_index":2185,"title":{},"content":{"256":{"position":[[376,5]]},"313":{"position":[[37,5]]},"314":{"position":[[37,5]]},"334":{"position":[[37,5]]},"335":{"position":[[37,5]]},"474":{"position":[[1802,5]]},"490":{"position":[[414,5]]},"505":{"position":[[287,5]]}},"keywords":{}}],["demonstr",{"_index":3589,"title":{},"content":{"472":{"position":[[189,12]]}},"keywords":{}}],["densiti",{"_index":2661,"title":{"319":{"position":[[0,7]]}},"content":{"319":{"position":[[36,7]]},"320":{"position":[[211,7]]},"346":{"position":[[1086,7]]}},"keywords":{}}],["depend",{"_index":359,"title":{},"content":{"19":{"position":[[77,7]]},"210":{"position":[[299,6]]},"338":{"position":[[3301,9],[3569,10]]},"341":{"position":[[444,9]]},"350":{"position":[[369,9]]},"398":{"position":[[380,9]]},"483":{"position":[[255,9]]}},"keywords":{}}],["deprec",{"_index":2470,"title":{},"content":{"287":{"position":[[583,10]]},"289":{"position":[[345,12],[526,12]]},"444":{"position":[[25,10]]}},"keywords":{}}],["depth",{"_index":3055,"title":{},"content":{"365":{"position":[[1070,5]]},"511":{"position":[[803,7]]},"515":{"position":[[786,7]]}},"keywords":{}}],["deriv",{"_index":2143,"title":{},"content":{"252":{"position":[[1324,7]]},"342":{"position":[[49,7]]},"360":{"position":[[86,6]]}},"keywords":{}}],["desc",{"_index":570,"title":{},"content":{"57":{"position":[[1186,4],[1232,4]]},"59":{"position":[[2016,4],[2062,4]]},"63":{"position":[[928,4],[974,4]]},"70":{"position":[[687,4],[733,4]]},"71":{"position":[[451,4],[497,4]]},"78":{"position":[[479,4],[525,4]]},"79":{"position":[[477,4],[523,4]]},"82":{"position":[[480,4],[526,4]]},"218":{"position":[[393,4],[439,4]]},"346":{"position":[[1533,4],[1579,4]]},"390":{"position":[[1039,4],[1085,4]]}},"keywords":{}}],["describ",{"_index":315,"title":{},"content":{"11":{"position":[[13,9]]},"104":{"position":[[1909,9]]},"359":{"position":[[20,9]]},"385":{"position":[[50,9]]},"406":{"position":[[14,9]]},"410":{"position":[[20,9]]},"454":{"position":[[14,9]]},"463":{"position":[[14,9]]},"476":{"position":[[14,9]]}},"keywords":{}}],["descript",{"_index":222,"title":{},"content":{"5":{"position":[[1381,11]]},"56":{"position":[[52,11]]},"69":{"position":[[10,11]]},"77":{"position":[[0,11]]},"81":{"position":[[0,11]]},"86":{"position":[[369,11]]},"92":{"position":[[52,11]]},"107":{"position":[[305,11]]},"118":{"position":[[52,11]]},"129":{"position":[[170,11]]},"220":{"position":[[409,11]]},"238":{"position":[[263,11]]},"258":{"position":[[361,11]]},"287":{"position":[[2432,11]]},"288":{"position":[[2204,11]]},"289":{"position":[[294,11]]},"290":{"position":[[295,11]]},"291":{"position":[[312,11]]},"296":{"position":[[120,11]]},"297":{"position":[[355,14],[498,14]]},"298":{"position":[[139,14],[322,11],[504,14]]},"301":{"position":[[193,11]]},"302":{"position":[[211,11]]},"303":{"position":[[387,11]]},"304":{"position":[[392,11]]},"305":{"position":[[398,11]]},"345":{"position":[[170,11]]},"378":{"position":[[68,11]]},"379":{"position":[[67,11]]},"380":{"position":[[52,11]]},"381":{"position":[[266,11]]},"389":{"position":[[170,11]]},"406":{"position":[[319,11]]},"498":{"position":[[1090,11]]},"517":{"position":[[309,11]]}},"keywords":{}}],["description1",{"_index":3125,"title":{},"content":{"385":{"position":[[144,12]]}},"keywords":{}}],["descriptionband",{"_index":1670,"title":{},"content":{"212":{"position":[[580,15]]}},"keywords":{}}],["descriptioncoord",{"_index":3043,"title":{},"content":{"365":{"position":[[63,17]]}},"keywords":{}}],["descriptionev",{"_index":187,"title":{},"content":{"5":{"position":[[481,17]]}},"keywords":{}}],["descriptionleafbatchid",{"_index":2632,"title":{},"content":{"317":{"position":[[102,23]]}},"keywords":{}}],["descriptionmeantemperatur",{"_index":4035,"title":{},"content":{"511":{"position":[[60,26]]},"515":{"position":[[43,26]]}},"keywords":{}}],["descriptionno",{"_index":1471,"title":{},"content":{"130":{"position":[[6028,13]]}},"keywords":{}}],["descriptionoperationtyp",{"_index":2293,"title":{},"content":{"264":{"position":[[273,24]]}},"keywords":{}}],["descriptionprovidersconnect",{"_index":2767,"title":{},"content":{"338":{"position":[[102,29]]}},"keywords":{}}],["descriptionreceiv",{"_index":1456,"title":{},"content":{"130":{"position":[[5190,19]]}},"keywords":{}}],["descriptionstarttim",{"_index":2898,"title":{},"content":{"357":{"position":[[498,20]]}},"keywords":{}}],["deseri",{"_index":125,"title":{},"content":{"3":{"position":[[366,15]]}},"keywords":{}}],["desert",{"_index":24,"title":{},"content":{"0":{"position":[[280,6],[695,6],[867,6],[1422,6],[1594,6],[1766,6]]}},"keywords":{}}],["desir",{"_index":903,"title":{},"content":{"79":{"position":[[157,7]]},"135":{"position":[[396,7]]}},"keywords":{}}],["despit",{"_index":3069,"title":{},"content":{"365":{"position":[[1639,7]]}},"keywords":{}}],["detail",{"_index":221,"title":{},"content":{"5":{"position":[[1372,8]]},"26":{"position":[[392,8]]},"29":{"position":[[462,8]]},"32":{"position":[[389,8]]},"34":{"position":[[398,8]]},"58":{"position":[[58,7]]},"59":{"position":[[64,7]]},"64":{"position":[[58,7]]},"66":{"position":[[56,7]]},"137":{"position":[[30,7]]},"316":{"position":[[394,8]]},"317":{"position":[[216,8]]},"337":{"position":[[353,8]]},"338":{"position":[[430,8]]},"420":{"position":[[9,7]]},"498":{"position":[[1013,7]]},"500":{"position":[[645,7]]},"501":{"position":[[125,7]]},"502":{"position":[[597,7]]},"503":{"position":[[458,7]]}},"keywords":{}}],["detail_file/:id",{"_index":3799,"title":{},"content":{"480":{"position":[[8229,19]]}},"keywords":{}}],["detailsagdata",{"_index":1402,"title":{},"content":{"130":{"position":[[2784,13]]}},"keywords":{}}],["detailscn1",{"_index":1375,"title":{},"content":{"130":{"position":[[2149,10]]}},"keywords":{}}],["detailsdat",{"_index":1366,"title":{},"content":{"130":{"position":[[1806,10]]}},"keywords":{}}],["detailsfil",{"_index":3911,"title":{},"content":{"488":{"position":[[152,11]]}},"keywords":{}}],["detailsgeojson",{"_index":1431,"title":{},"content":{"130":{"position":[[4048,14]]}},"keywords":{}}],["detailsgs3",{"_index":1341,"title":{},"content":{"130":{"position":[[1309,10]]}},"keywords":{}}],["detailspp2020",{"_index":1419,"title":{},"content":{"130":{"position":[[3224,13]]}},"keywords":{}}],["detailsshapefil",{"_index":1432,"title":{},"content":{"130":{"position":[[4246,16]]}},"keywords":{}}],["detailsyld",{"_index":1382,"title":{},"content":{"130":{"position":[[2326,10]]}},"keywords":{}}],["detect",{"_index":1323,"title":{},"content":{"130":{"position":[[122,7],[646,6],[734,6],[819,8]]},"135":{"position":[[252,9]]},"137":{"position":[[309,7]]},"140":{"position":[[186,6]]},"147":{"position":[[183,6]]},"154":{"position":[[204,6]]},"161":{"position":[[177,6]]},"168":{"position":[[189,6]]},"175":{"position":[[199,6]]},"182":{"position":[[179,6]]},"189":{"position":[[183,6]]},"196":{"position":[[179,6]]},"203":{"position":[[183,6]]},"242":{"position":[[1068,7]]},"247":{"position":[[143,6]]},"287":{"position":[[442,7]]},"365":{"position":[[1198,8]]}},"keywords":{}}],["determin",{"_index":2895,"title":{},"content":{"357":{"position":[[228,10]]}},"keywords":{}}],["deutscher",{"_index":4011,"title":{},"content":{"510":{"position":[[103,9]]}},"keywords":{}}],["dev.s3.u",{"_index":3076,"title":{},"content":{"367":{"position":[[385,9],[665,9],[947,9],[1228,9],[1517,9],[1804,9],[2091,9],[2373,9],[2655,9],[2943,9],[3223,9],[3503,9],[3790,9],[4072,9],[4361,9]]}},"keywords":{}}],["develop",{"_index":51,"title":{},"content":{"2":{"position":[[0,10]]},"244":{"position":[[1211,9],[1992,9]]},"245":{"position":[[263,9],[999,9]]},"256":{"position":[[54,10]]},"301":{"position":[[157,9]]},"302":{"position":[[175,9]]},"303":{"position":[[149,9]]},"304":{"position":[[161,9]]},"305":{"position":[[155,9]]},"317":{"position":[[47,9]]},"328":{"position":[[151,9]]},"329":{"position":[[150,9]]},"330":{"position":[[134,9],[301,9]]},"331":{"position":[[142,9]]},"332":{"position":[[140,9]]},"338":{"position":[[47,9],[3238,9]]},"498":{"position":[[213,10]]}},"keywords":{}}],["deviat",{"_index":1236,"title":{},"content":{"105":{"position":[[1959,10],[2114,10]]},"341":{"position":[[782,11]]},"413":{"position":[[631,10],[701,9]]}},"keywords":{}}],["dew",{"_index":4065,"title":{},"content":{"511":{"position":[[1434,3],[1921,3]]},"515":{"position":[[1417,3],[1904,3]]}},"keywords":{}}],["dewpoint",{"_index":4064,"title":{},"content":{"511":{"position":[[1400,8]]},"515":{"position":[[1383,8]]},"520":{"position":[[2061,11]]},"522":{"position":[[2027,11]]},"524":{"position":[[1735,11]]},"526":{"position":[[1701,11]]}},"keywords":{}}],["df7ea5f5d28b",{"_index":2367,"title":{},"content":{"266":{"position":[[2033,14]]}},"keywords":{}}],["dfab82043465",{"_index":2877,"title":{},"content":{"352":{"position":[[506,14]]}},"keywords":{}}],["dialog?orgid=organization_id_1",{"_index":3229,"title":{},"content":{"408":{"position":[[638,31]]}},"keywords":{}}],["dialog?orgid=organization_id_2",{"_index":3232,"title":{},"content":{"408":{"position":[[848,31]]}},"keywords":{}}],["dict",{"_index":3030,"title":{},"content":{"362":{"position":[[154,4],[254,4],[272,4],[295,4],[313,4],[368,4],[455,4],[475,4]]}},"keywords":{}}],["didn't",{"_index":1526,"title":{},"content":{"133":{"position":[[174,6]]}},"keywords":{}}],["differ",{"_index":171,"title":{},"content":{"5":{"position":[[223,9]]},"73":{"position":[[71,9]]},"220":{"position":[[372,9]]},"222":{"position":[[168,9]]},"242":{"position":[[566,9]]},"251":{"position":[[405,10],[897,9]]},"252":{"position":[[852,9]]},"293":{"position":[[593,11]]},"307":{"position":[[73,9]]},"326":{"position":[[62,9]]},"338":{"position":[[3291,9]]},"350":{"position":[[456,9]]},"360":{"position":[[210,9],[248,9]]},"398":{"position":[[467,9]]},"415":{"position":[[702,9]]},"419":{"position":[[53,10]]},"442":{"position":[[50,10]]},"451":{"position":[[568,9]]}},"keywords":{}}],["differenti",{"_index":3223,"title":{},"content":{"408":{"position":[[199,13]]}},"keywords":{}}],["digest",{"_index":139,"title":{},"content":{"3":{"position":[[608,6]]}},"keywords":{}}],["digest='sha256",{"_index":154,"title":{},"content":{"3":{"position":[[918,16]]}},"keywords":{}}],["digitali",{"_index":1873,"title":{},"content":{"229":{"position":[[1089,10]]}},"keywords":{}}],["dill",{"_index":1875,"title":{},"content":{"229":{"position":[[1108,6]]}},"keywords":{}}],["direct",{"_index":4005,"title":{},"content":{"509":{"position":[[246,9]]},"511":{"position":[[1039,10]]},"513":{"position":[[247,9]]},"515":{"position":[[1022,10]]}},"keywords":{}}],["directli",{"_index":356,"title":{},"content":{"18":{"position":[[80,8]]},"89":{"position":[[1106,8]]},"252":{"position":[[1000,8]]},"283":{"position":[[704,8]]},"439":{"position":[[75,8]]}},"keywords":{}}],["disabl",{"_index":2523,"title":{},"content":{"293":{"position":[[209,8]]},"413":{"position":[[837,7]]},"483":{"position":[[568,7]]},"484":{"position":[[570,7]]}},"keywords":{}}],["disassoci",{"_index":1579,"title":{},"content":{"144":{"position":[[559,13]]},"151":{"position":[[555,13]]},"158":{"position":[[577,13]]},"165":{"position":[[549,13]]},"172":{"position":[[561,13]]},"179":{"position":[[571,13]]},"186":{"position":[[551,13]]},"193":{"position":[[555,13]]},"200":{"position":[[551,13]]},"207":{"position":[[546,13]]}},"keywords":{}}],["disconnect",{"_index":3132,"title":{},"content":{"385":{"position":[[741,10]]},"408":{"position":[[78,12]]}},"keywords":{}}],["disconnected_interior",{"_index":2503,"title":{},"content":{"292":{"position":[[270,21]]}},"keywords":{}}],["disconnecteden",{"_index":3131,"title":{},"content":{"385":{"position":[[611,19]]}},"keywords":{}}],["disconnecten",{"_index":3101,"title":{},"content":{"378":{"position":[[1092,20],[1928,20],[2974,20]]},"379":{"position":[[1164,20],[2017,20],[3001,20]]},"380":{"position":[[1079,20],[1860,20],[2496,20]]},"382":{"position":[[1626,20]]},"383":{"position":[[1608,20]]},"384":{"position":[[1289,20]]},"385":{"position":[[1164,20]]}},"keywords":{}}],["discontinu",{"_index":3470,"title":{},"content":{"460":{"position":[[241,12]]}},"keywords":{}}],["display",{"_index":503,"title":{},"content":{"52":{"position":[[122,7]]},"105":{"position":[[343,7]]},"316":{"position":[[579,9],[684,9],[806,7],[886,7],[1116,7]]},"337":{"position":[[538,9],[643,9],[996,10],[1024,9]]},"341":{"position":[[1020,7]]},"367":{"position":[[11,8]]},"385":{"position":[[544,9]]},"414":{"position":[[97,9]]},"415":{"position":[[1746,9]]},"463":{"position":[[66,7]]},"469":{"position":[[108,7]]},"473":{"position":[[3340,7],[6205,7],[6339,10],[6629,7]]},"482":{"position":[[336,7]]},"486":{"position":[[711,7]]},"487":{"position":[[508,7],[652,7],[1063,7]]},"488":{"position":[[1315,7]]},"489":{"position":[[66,7]]}},"keywords":{}}],["dispos",{"_index":3720,"title":{},"content":{"479":{"position":[[518,7]]}},"keywords":{}}],["distanc",{"_index":636,"title":{},"content":{"59":{"position":[[1267,8],[1324,9],[1369,8],[1411,8],[1465,9],[1510,8],[1551,8],[2608,11],[2847,11]]},"364":{"position":[[386,11]]},"365":{"position":[[340,8],[365,8],[430,8]]},"367":{"position":[[1005,11]]},"368":{"position":[[213,11]]},"397":{"position":[[406,11]]},"415":{"position":[[1835,11]]},"416":{"position":[[216,11]]}},"keywords":{}}],["distanceunit",{"_index":641,"title":{},"content":{"59":{"position":[[1560,12]]}},"keywords":{}}],["distancevalu",{"_index":634,"title":{},"content":{"59":{"position":[[1230,13]]}},"keywords":{}}],["distribut",{"_index":475,"title":{},"content":{"51":{"position":[[296,10]]},"396":{"position":[[1012,11]]},"415":{"position":[[620,11]]}},"keywords":{}}],["distributor",{"_index":940,"title":{},"content":{"82":{"position":[[1150,14],[1629,14],[2102,14]]},"83":{"position":[[972,14],[1451,14],[1924,14]]}},"keywords":{}}],["div",{"_index":2586,"title":{},"content":{"313":{"position":[[838,4],[1056,6]]},"317":{"position":[[453,5],[677,6]]},"334":{"position":[[837,4],[1027,6]]},"338":{"position":[[837,5],[1013,6],[2007,5],[2330,6],[2344,5],[2659,6]]},"471":{"position":[[498,5]]},"483":{"position":[[631,3]]},"484":{"position":[[633,3]]},"485":{"position":[[375,3],[618,3]]},"487":{"position":[[138,3],[792,3],[911,3]]},"488":{"position":[[1377,3],[3083,3]]},"490":{"position":[[33,3]]}},"keywords":{}}],["do",{"_index":3582,"title":{},"content":{"471":{"position":[[6,5]]},"483":{"position":[[62,5]]}},"keywords":{}}],["document",{"_index":50,"title":{"2":{"position":[[18,14]]}},"content":{"84":{"position":[[0,13],[42,13]]},"130":{"position":[[1662,13]]},"213":{"position":[[20,14]]},"228":{"position":[[0,13],[42,13]]},"230":{"position":[[0,13],[42,13]]},"232":{"position":[[154,13]]},"235":{"position":[[0,13],[42,13]]},"236":{"position":[[0,13],[42,13]]},"240":{"position":[[0,13],[42,13]]},"249":{"position":[[0,13],[42,13]]},"256":{"position":[[18,14]]},"404":{"position":[[0,13],[42,13]]},"419":{"position":[[462,13]]},"431":{"position":[[0,13],[42,13]]},"432":{"position":[[0,13],[42,13]]},"451":{"position":[[526,13]]},"452":{"position":[[0,13],[42,13]]},"453":{"position":[[0,13],[42,13]]},"467":{"position":[[1465,14],[5508,14],[7430,14]]},"476":{"position":[[95,14]]},"480":{"position":[[1165,14],[2303,14],[3382,14],[4162,14],[4913,14],[7333,14],[8924,14],[9681,14]]},"482":{"position":[[124,14]]}},"keywords":{}}],["dologin",{"_index":3605,"title":{},"content":{"473":{"position":[[1121,9]]}},"keywords":{}}],["domin",{"_index":4053,"title":{},"content":{"511":{"position":[[1025,8]]},"515":{"position":[[1008,8]]}},"keywords":{}}],["don't",{"_index":44,"title":{},"content":{"0":{"position":[[581,5]]},"15":{"position":[[40,5]]},"129":{"position":[[461,5]]},"222":{"position":[[290,5]]},"242":{"position":[[466,5]]},"256":{"position":[[333,5]]},"310":{"position":[[37,5]]},"324":{"position":[[37,5]]},"327":{"position":[[57,5]]},"345":{"position":[[736,5]]},"350":{"position":[[491,5]]},"398":{"position":[[502,5]]},"419":{"position":[[499,5]]},"473":{"position":[[238,5]]},"490":{"position":[[0,5]]},"503":{"position":[[238,5]]},"505":{"position":[[224,5]]}},"keywords":{}}],["done",{"_index":2735,"title":{},"content":{"325":{"position":[[38,4]]},"338":{"position":[[727,4]]},"353":{"position":[[372,4]]},"382":{"position":[[709,4],[844,4]]},"383":{"position":[[712,4],[847,4]]},"384":{"position":[[451,4],[586,4]]},"419":{"position":[[613,4]]},"467":{"position":[[1059,7]]},"473":{"position":[[1725,7]]},"480":{"position":[[2062,8],[3612,4]]},"483":{"position":[[198,6],[539,7]]}},"keywords":{}}],["doubl",{"_index":635,"title":{},"content":{"59":{"position":[[1246,6],[1303,6],[1444,6]]},"220":{"position":[[782,6],[894,6]]},"288":{"position":[[2064,7]]},"346":{"position":[[887,8]]},"364":{"position":[[884,10]]}},"keywords":{}}],["down",{"_index":21,"title":{},"content":{"0":{"position":[[248,4],[663,4],[835,4],[1390,4],[1562,4],[1734,4]]},"251":{"position":[[395,5]]},"365":{"position":[[1214,4]]}},"keywords":{}}],["downforc",{"_index":3036,"title":{},"content":{"362":{"position":[[442,9]]},"364":{"position":[[820,12]]},"365":{"position":[[1164,9]]},"436":{"position":[[95,9]]}},"keywords":{}}],["downi",{"_index":1991,"title":{},"content":{"229":{"position":[[2749,6]]},"320":{"position":[[656,5]]}},"keywords":{}}],["download",{"_index":1065,"title":{"97":{"position":[[0,8]]},"460":{"position":[[0,11]]}},"content":{"92":{"position":[[370,8]]},"97":{"position":[[44,8]]},"252":{"position":[[989,10]]},"341":{"position":[[955,8]]},"364":{"position":[[76,8]]},"460":{"position":[[185,8],[338,8],[409,8]]}},"keywords":{}}],["downloadcontents3",{"_index":997,"title":{},"content":{"88":{"position":[[1149,20],[1734,20]]}},"keywords":{}}],["downloadfilteredgeojson",{"_index":3183,"title":{},"content":{"394":{"position":[[406,26]]}},"keywords":{}}],["downloadoriginalfil",{"_index":2939,"title":{},"content":{"361":{"position":[[432,23]]}},"keywords":{}}],["downloadrawgeojson",{"_index":2940,"title":{},"content":{"361":{"position":[[484,21]]}},"keywords":{}}],["downloadstandardgeojson",{"_index":2941,"title":{},"content":{"361":{"position":[[539,26]]},"393":{"position":[[321,26]]}},"keywords":{}}],["downloadurl",{"_index":1725,"title":{},"content":{"220":{"position":[[1909,14]]},"221":{"position":[[524,14]]},"349":{"position":[[503,14]]},"395":{"position":[[508,14]]},"396":{"position":[[863,14]]},"397":{"position":[[432,14],[504,14],[574,14],[646,14]]},"461":{"position":[[80,13]]}},"keywords":{}}],["drag",{"_index":2568,"title":{},"content":{"308":{"position":[[89,4]]}},"keywords":{}}],["dri",{"_index":770,"title":{},"content":{"70":{"position":[[1154,6]]},"72":{"position":[[725,6],[751,4],[1127,6],[1153,4]]},"73":{"position":[[418,6],[444,4]]},"82":{"position":[[1696,6]]},"83":{"position":[[1518,6]]},"320":{"position":[[53,3],[163,3],[227,3],[1246,3],[1265,3],[3177,3]]},"440":{"position":[[108,3]]}},"keywords":{}}],["drill",{"_index":2170,"title":{},"content":{"253":{"position":[[1187,6]]}},"keywords":{}}],["drive",{"_index":2140,"title":{},"content":{"252":{"position":[[1045,5]]},"496":{"position":[[74,5]]}},"keywords":{}}],["drone",{"_index":2126,"title":{},"content":{"251":{"position":[[749,5]]}},"keywords":{}}],["drop",{"_index":2567,"title":{},"content":{"308":{"position":[[71,4],[96,4]]}},"keywords":{}}],["drymass",{"_index":3007,"title":{},"content":{"361":{"position":[[2690,10],[2865,10]]},"367":{"position":[[3281,10]]},"368":{"position":[[415,10]]},"414":{"position":[[972,10],[2544,10]]},"415":{"position":[[1948,10]]},"416":{"position":[[418,10]]},"440":{"position":[[50,7]]}},"keywords":{}}],["drymassperarea",{"_index":2997,"title":{},"content":{"361":{"position":[[2026,17],[2622,17]]},"367":{"position":[[3561,17]]},"368":{"position":[[319,17]]},"397":{"position":[[542,17]]},"414":{"position":[[1236,17],[2476,17]]},"415":{"position":[[2870,17]]},"416":{"position":[[322,17]]},"440":{"position":[[58,14]]}},"keywords":{}}],["dryvolum",{"_index":2950,"title":{},"content":{"361":{"position":[[765,12],[2562,12]]},"367":{"position":[[3848,12]]},"368":{"position":[[252,12]]},"414":{"position":[[1536,12],[2416,12]]},"415":{"position":[[2515,12]]},"416":{"position":[[255,12]]},"440":{"position":[[73,9]]}},"keywords":{}}],["dryvolumeperarea",{"_index":2984,"title":{},"content":{"361":{"position":[[1669,19]]},"367":{"position":[[4130,19]]},"368":{"position":[[184,19]]},"397":{"position":[[612,19]]},"414":{"position":[[1841,19]]},"415":{"position":[[3442,19]]},"416":{"position":[[187,19]]},"440":{"position":[[87,16]]}},"keywords":{}}],["due",{"_index":364,"title":{},"content":{"20":{"position":[[41,3]]},"292":{"position":[[494,3]]}},"keywords":{}}],["duplicate_r",{"_index":2507,"title":{},"content":{"292":{"position":[[347,15]]}},"keywords":{}}],["durat",{"_index":3956,"title":{},"content":{"488":{"position":[[2596,10]]}},"keywords":{}}],["dure",{"_index":1560,"title":{},"content":{"140":{"position":[[154,6]]},"147":{"position":[[151,6]]},"154":{"position":[[172,6]]},"161":{"position":[[145,6]]},"168":{"position":[[157,6]]},"175":{"position":[[167,6]]},"182":{"position":[[147,6]]},"189":{"position":[[151,6]]},"196":{"position":[[147,6]]},"203":{"position":[[151,6]]},"308":{"position":[[141,6]]},"381":{"position":[[61,6]]},"382":{"position":[[214,6]]},"383":{"position":[[217,6]]},"384":{"position":[[87,6]]},"467":{"position":[[2276,6],[6505,6]]},"480":{"position":[[7156,6]]},"487":{"position":[[1097,6]]}},"keywords":{}}],["durum",{"_index":1833,"title":{},"content":{"229":{"position":[[392,6]]},"320":{"position":[[675,5]]}},"keywords":{}}],["dwd",{"_index":4013,"title":{},"content":{"510":{"position":[[126,5]]}},"keywords":{}}],["e",{"_index":1842,"title":{},"content":{"229":{"position":[[660,1],[693,1],[711,1],[792,1]]},"320":{"position":[[2059,1],[2080,1],[2515,1],[2537,1]]},"467":{"position":[[6414,3]]},"471":{"position":[[482,1]]},"487":{"position":[[954,1],[1010,1]]},"488":{"position":[[1180,1],[1213,1]]}},"keywords":{}}],["e.cloud",{"_index":3545,"title":{},"content":{"467":{"position":[[4597,9],[4659,9]]}},"keywords":{}}],["e.coverag",{"_index":3547,"title":{},"content":{"467":{"position":[[4679,11]]}},"keywords":{}}],["e.dat",{"_index":3534,"title":{},"content":{"467":{"position":[[4252,6],[4643,7]]},"473":{"position":[[5656,6]]}},"keywords":{}}],["e.date.substring(0",{"_index":3668,"title":{},"content":{"473":{"position":[[5665,19]]}},"keywords":{}}],["e.date.substring(11",{"_index":3661,"title":{},"content":{"473":{"position":[[5381,20]]}},"keywords":{}}],["e.events.foreach((p",{"_index":3893,"title":{},"content":{"485":{"position":[[584,20]]}},"keywords":{}}],["e.g",{"_index":193,"title":{},"content":{"5":{"position":[[593,5]]},"52":{"position":[[23,5]]},"70":{"position":[[209,5]]},"252":{"position":[[331,5]]},"253":{"position":[[563,5],[685,5],[756,5]]},"288":{"position":[[920,5]]},"357":{"position":[[838,4],[970,4],[1068,4]]},"488":{"position":[[2882,3]]},"498":{"position":[[103,5]]}},"keywords":{}}],["e.id",{"_index":3546,"title":{},"content":{"467":{"position":[[4631,5]]}},"keywords":{}}],["e.images.foreach((f",{"_index":3549,"title":{},"content":{"467":{"position":[[4878,20]]},"473":{"position":[[5319,20],[6693,20]]}},"keywords":{}}],["e.properti",{"_index":3920,"title":{},"content":{"488":{"position":[[699,10]]}},"keywords":{}}],["e.provid",{"_index":3548,"title":{},"content":{"467":{"position":[[4701,11]]},"473":{"position":[[5410,11],[5513,11]]}},"keywords":{}}],["e.typ",{"_index":3860,"title":{},"content":{"480":{"position":[[12096,7]]}},"keywords":{}}],["e.url",{"_index":3859,"title":{},"content":{"480":{"position":[[12086,6]]},"488":{"position":[[684,6]]}},"keywords":{}}],["e0daf77",{"_index":942,"title":{},"content":{"82":{"position":[[1344,9]]},"83":{"position":[[1166,9]]}},"keywords":{}}],["e0e18a6f",{"_index":652,"title":{},"content":{"59":{"position":[[2435,9]]}},"keywords":{}}],["e2512c202a2f",{"_index":651,"title":{},"content":{"59":{"position":[[2406,14]]}},"keywords":{}}],["e33b5232f507",{"_index":818,"title":{},"content":{"72":{"position":[[1019,14]]},"73":{"position":[[304,14]]}},"keywords":{}}],["e401",{"_index":2932,"title":{},"content":{"361":{"position":[[300,4]]}},"keywords":{}}],["e4c",{"_index":704,"title":{},"content":{"63":{"position":[[1450,4]]},"64":{"position":[[317,4]]}},"keywords":{}}],["e52c9f2f",{"_index":3312,"title":{},"content":{"415":{"position":[[2337,8]]}},"keywords":{}}],["e5798d9f8393.tif",{"_index":3336,"title":{},"content":{"415":{"position":[[2835,17]]}},"keywords":{}}],["e5b91778",{"_index":846,"title":{},"content":{"74":{"position":[[564,9]]}},"keywords":{}}],["e6f0",{"_index":677,"title":{},"content":{"60":{"position":[[591,4]]},"61":{"position":[[742,4]]}},"keywords":{}}],["e6fa",{"_index":2327,"title":{},"content":{"265":{"position":[[658,4]]}},"keywords":{}}],["e7916d05",{"_index":647,"title":{},"content":{"59":{"position":[[2381,9]]}},"keywords":{}}],["e89b1861",{"_index":577,"title":{},"content":{"57":{"position":[[1712,9]]}},"keywords":{}}],["e8c452fb8375",{"_index":2437,"title":{},"content":{"277":{"position":[[869,13]]}},"keywords":{}}],["e[5",{"_index":3951,"title":{},"content":{"488":{"position":[[2283,4],[2320,5]]}},"keywords":{}}],["e[6",{"_index":3934,"title":{},"content":{"488":{"position":[[1442,4],[1501,4],[2198,4],[2249,4],[2456,4],[2514,4],[2560,4],[2679,4]]}},"keywords":{}}],["ea23eddbd936",{"_index":2330,"title":{},"content":{"265":{"position":[[673,13]]}},"keywords":{}}],["each",{"_index":31,"title":{},"content":{"0":{"position":[[388,4],[1123,4]]},"5":{"position":[[1396,4]]},"51":{"position":[[156,4]]},"93":{"position":[[180,4]]},"95":{"position":[[351,4]]},"98":{"position":[[248,4]]},"100":{"position":[[184,4]]},"101":{"position":[[165,4]]},"104":{"position":[[2571,4]]},"105":{"position":[[750,4],[2735,4]]},"117":{"position":[[835,4]]},"130":{"position":[[990,4],[1243,4],[5004,4]]},"137":{"position":[[335,4]]},"209":{"position":[[641,4]]},"220":{"position":[[305,4],[2601,4]]},"222":{"position":[[145,4]]},"242":{"position":[[623,4]]},"255":{"position":[[953,4]]},"288":{"position":[[336,4]]},"300":{"position":[[119,4]]},"316":{"position":[[723,4]]},"317":{"position":[[279,4],[323,4]]},"326":{"position":[[137,4]]},"337":{"position":[[682,4]]},"345":{"position":[[885,4]]},"359":{"position":[[120,4]]},"361":{"position":[[77,4]]},"364":{"position":[[0,4],[196,4]]},"365":{"position":[[1235,4],[1299,4]]},"410":{"position":[[118,4]]},"411":{"position":[[202,4],[786,4]]},"414":{"position":[[266,4]]},"415":{"position":[[1789,4]]},"419":{"position":[[0,4]]},"429":{"position":[[725,4]]},"448":{"position":[[163,4]]},"456":{"position":[[281,4]]},"467":{"position":[[4735,4],[4749,4]]},"473":{"position":[[300,4],[5195,4]]},"480":{"position":[[9931,4],[10533,4]]},"493":{"position":[[300,4]]}},"keywords":{}}],["eaee0878",{"_index":955,"title":{},"content":{"82":{"position":[[1925,9]]},"83":{"position":[[1747,9]]}},"keywords":{}}],["earli",{"_index":3741,"title":{},"content":{"480":{"position":[[2793,6]]}},"keywords":{}}],["earth",{"_index":1754,"title":{},"content":{"222":{"position":[[275,7]]},"511":{"position":[[1579,5]]},"515":{"position":[[1562,5]]}},"keywords":{}}],["earth'",{"_index":4078,"title":{},"content":{"511":{"position":[[1703,7]]},"515":{"position":[[1686,7]]}},"keywords":{}}],["easi",{"_index":4094,"title":{},"content":{"517":{"position":[[73,4]]}},"keywords":{}}],["easier",{"_index":2467,"title":{},"content":{"287":{"position":[[305,6]]}},"keywords":{}}],["easili",{"_index":1255,"title":{},"content":{"107":{"position":[[85,7]]},"129":{"position":[[311,6]]},"209":{"position":[[57,6]]},"242":{"position":[[392,7]]},"256":{"position":[[240,7]]},"258":{"position":[[78,7]]},"345":{"position":[[491,6]]},"389":{"position":[[870,6]]}},"keywords":{}}],["east",{"_index":3077,"title":{},"content":{"367":{"position":[[395,4],[675,4],[957,4],[1238,4],[1527,4],[1814,4],[2101,4],[2383,4],[2665,4],[2953,4],[3233,4],[3513,4],[3800,4],[4082,4],[4371,4]]}},"keywords":{}}],["eb20",{"_index":2250,"title":{},"content":{"260":{"position":[[1311,4]]}},"keywords":{}}],["eb2b",{"_index":3354,"title":{},"content":{"415":{"position":[[3280,4]]}},"keywords":{}}],["ec6d",{"_index":2220,"title":{},"content":{"260":{"position":[[821,4]]}},"keywords":{}}],["ecmwf",{"_index":4024,"title":{},"content":{"510":{"position":[[294,5]]}},"keywords":{}}],["ed080ca3",{"_index":291,"title":{},"content":{"8":{"position":[[1505,10]]}},"keywords":{}}],["ed53",{"_index":2289,"title":{},"content":{"262":{"position":[[1480,4]]}},"keywords":{}}],["edcf7b8b",{"_index":1005,"title":{},"content":{"88":{"position":[[1278,9],[1863,9]]}},"keywords":{}}],["ede8f781",{"_index":1442,"title":{},"content":{"130":{"position":[[4721,9]]}},"keywords":{}}],["edg",{"_index":1390,"title":{},"content":{"130":{"position":[[2423,4],[2618,5]]},"212":{"position":[[199,4],[432,4]]},"442":{"position":[[65,4]]},"451":{"position":[[484,4]]}},"keywords":{}}],["edibl",{"_index":1809,"title":{},"content":{"229":{"position":[[134,7]]},"320":{"position":[[348,6],[690,6],[709,6],[728,6],[747,6]]}},"keywords":{}}],["edit",{"_index":1338,"title":{},"content":{"130":{"position":[[1067,6]]},"288":{"position":[[913,6]]},"328":{"position":[[349,4]]},"330":{"position":[[355,4]]},"331":{"position":[[358,5],[396,4]]},"503":{"position":[[12,5]]}},"keywords":{}}],["ee0a",{"_index":3299,"title":{},"content":{"415":{"position":[[2010,4]]}},"keywords":{}}],["ee5dc9de624b",{"_index":2299,"title":{},"content":{"264":{"position":[[1358,14]]}},"keywords":{}}],["efac",{"_index":1483,"title":{},"content":{"131":{"position":[[596,4]]}},"keywords":{}}],["effect",{"_index":1177,"title":{},"content":{"104":{"position":[[1024,6],[1269,6],[1460,6],[1695,6]]},"105":{"position":[[1365,6],[3270,6]]},"428":{"position":[[208,11]]}},"keywords":{}}],["eg",{"_index":2163,"title":{},"content":{"253":{"position":[[1026,3]]}},"keywords":{}}],["eic",{"_index":1360,"title":{},"content":{"130":{"position":[[1639,3]]}},"keywords":{}}],["el",{"_index":2692,"title":{},"content":{"320":{"position":[[766,3]]}},"keywords":{}}],["elektronik",{"_index":1428,"title":{},"content":{"130":{"position":[[3795,11]]}},"keywords":{}}],["element",{"_index":3459,"title":{},"content":{"456":{"position":[[300,9]]},"483":{"position":[[581,7]]},"484":{"position":[[583,7]]},"485":{"position":[[471,8]]}},"keywords":{}}],["eleph",{"_index":1876,"title":{},"content":{"229":{"position":[[1115,9]]}},"keywords":{}}],["elev",{"_index":2854,"title":{},"content":{"349":{"position":[[295,12],[672,10]]},"357":{"position":[[1564,9],[1627,9]]},"361":{"position":[[1483,12]]},"362":{"position":[[242,9]]},"364":{"position":[[445,12]]},"365":{"position":[[404,9]]},"367":{"position":[[2431,12]]},"368":{"position":[[118,12]]},"395":{"position":[[300,12],[682,10]]},"414":{"position":[[690,12]]},"415":{"position":[[2060,12]]},"416":{"position":[[121,12]]}},"keywords":{}}],["email",{"_index":428,"title":{},"content":{"48":{"position":[[85,6]]},"246":{"position":[[367,8],[1260,6],[1527,6]]},"252":{"position":[[37,5]]},"382":{"position":[[763,5],[895,5],[1048,5],[1129,8],[1367,8]]},"383":{"position":[[766,5],[898,5],[1051,5],[1132,8],[1358,8]]},"384":{"position":[[505,5],[637,5],[790,5],[871,8],[1068,8]]},"423":{"position":[[88,5]]},"467":{"position":[[592,5],[793,6]]},"473":{"position":[[479,6],[1169,5],[1201,5],[1345,6],[1505,5],[2092,6],[2099,6]]},"480":{"position":[[1746,5],[1898,6]]},"483":{"position":[[322,5],[459,6],[466,5]]},"498":{"position":[[614,8]]},"500":{"position":[[238,8]]},"501":{"position":[[441,8]]},"502":{"position":[[150,8],[801,8],[973,8]]},"503":{"position":[[115,8],[674,8],[846,8]]}},"keywords":{}}],["email\").v",{"_index":3876,"title":{},"content":{"483":{"position":[[330,18]]}},"keywords":{}}],["embed",{"_index":1039,"title":{},"content":{"89":{"position":[[498,8]]}},"keywords":{}}],["emit",{"_index":4071,"title":{},"content":{"511":{"position":[[1564,7]]},"515":{"position":[[1547,7]]}},"keywords":{}}],["empti",{"_index":379,"title":{},"content":{"26":{"position":[[426,7]]},"29":{"position":[[496,7]]},"32":{"position":[[423,7]]},"34":{"position":[[432,7]]},"268":{"position":[[392,5]]}},"keywords":{}}],["empty

\\r\\n
nginx
\\r\\n\\r\\n\\r\\n",{"_index":273,"title":{},"content":{"8":{"position":[[543,79],[1028,79]]}},"keywords":{}}],["gateway\\r\\nopenstreetmapmapbox\\r\\n502",{"_index":269,"title":{},"content":{"8":{"position":[[437,27],[922,27]]}},"keywords":{}}],["http",{"_index":198,"title":{},"content":{"5":{"position":[[770,4]]},"47":{"position":[[255,4],[435,4]]},"55":{"position":[[4,4]]},"68":{"position":[[4,4]]},"86":{"position":[[185,4]]},"91":{"position":[[4,4]]},"107":{"position":[[143,4]]},"116":{"position":[[233,4]]},"129":{"position":[[4,4]]},"238":{"position":[[101,4]]},"258":{"position":[[136,4]]},"295":{"position":[[4,4]]},"345":{"position":[[4,4]]},"353":{"position":[[599,4]]},"376":{"position":[[4,4]]},"389":{"position":[[4,4]]},"406":{"position":[[115,4]]},"459":{"position":[[25,4]]},"480":{"position":[[10744,5]]},"498":{"position":[[332,4]]},"517":{"position":[[146,4]]}},"keywords":{}}],["httpheaders().set('author",{"_index":3628,"title":{},"content":{"473":{"position":[[2831,34],[5873,34]]}},"keywords":{}}],["https.get(e.url",{"_index":3823,"title":{},"content":{"480":{"position":[[10770,15]]}},"keywords":{}}],["https://agtech.com/leaf/satellit",{"_index":243,"title":{},"content":{"5":{"position":[[2041,35]]},"6":{"position":[[368,35]]},"7":{"position":[[369,35]]}},"keywords":{}}],["https://api.mapbox.com/styles/v1/mapbox/satellit",{"_index":3693,"title":{},"content":{"474":{"position":[[791,50]]}},"keywords":{}}],["https://api.withleaf.io/api/authent",{"_index":432,"title":{},"content":{"48":{"position":[[162,40],[376,42]]},"423":{"position":[[420,42]]},"467":{"position":[[698,43]]},"480":{"position":[[1831,43]]}},"keywords":{}}],["https://api.withleaf.io/services/alerts/api/alerts/webhook",{"_index":237,"title":{},"content":{"5":{"position":[[1775,61]]},"7":{"position":[[135,61]]},"480":{"position":[[3047,62],[3874,62],[4682,62]]}},"keywords":{}}],["https://api.withleaf.io/services/alerts/api/alerts/webhooks/fail",{"_index":258,"title":{},"content":{"8":{"position":[[165,67]]}},"keywords":{}}],["https://api.withleaf.io/services/alerts/api/alerts/webhooks/{id",{"_index":252,"title":{},"content":{"6":{"position":[[165,66]]},"9":{"position":[[322,66]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api",{"_index":519,"title":{},"content":{"55":{"position":[[70,41]]},"68":{"position":[[70,41]]},"86":{"position":[[251,41]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/product",{"_index":754,"title":{},"content":{"70":{"position":[[836,52]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/products/matching/operations/{operationid",{"_index":838,"title":{},"content":{"74":{"position":[[384,86]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/products/matching/operations/{operationid}/matches/{matchid",{"_index":869,"title":{},"content":{"75":{"position":[[373,104]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/products/matching/operations/{operationid}/matches/{matchid}/histor",{"_index":881,"title":{},"content":{"76":{"position":[[208,115]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/products/search",{"_index":795,"title":{},"content":{"72":{"position":[[496,59]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/products/{id",{"_index":828,"title":{},"content":{"73":{"position":[[198,57]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/tankmix",{"_index":924,"title":{},"content":{"82":{"position":[[629,53]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/tankmixes/search",{"_index":963,"title":{},"content":{"83":{"position":[[444,60]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/users/{leafuserid}/impl",{"_index":702,"title":{},"content":{"63":{"position":[[1341,73]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/users/{leafuserid}/implements/{implementid",{"_index":719,"title":{},"content":{"64":{"position":[[196,87]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/users/{leafuserid}/lay",{"_index":975,"title":{},"content":{"88":{"position":[[600,69]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/users/{leafuserid}/layers/climatefieldview",{"_index":1050,"title":{},"content":{"89":{"position":[[834,87]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/users/{leafuserid}/machin",{"_index":576,"title":{},"content":{"57":{"position":[[1615,71]]},"60":{"position":[[385,71]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/users/{leafuserid}/machines/{machineid",{"_index":622,"title":{},"content":{"58":{"position":[[194,83]]},"61":{"position":[[521,83]]},"62":{"position":[[280,83]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/users/{leafuserid}/machines/{machineid}/fil",{"_index":646,"title":{},"content":{"59":{"position":[[2266,89]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/users/{leafuserid}/oper",{"_index":722,"title":{},"content":{"65":{"position":[[577,72]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/users/{leafuserid}/operators/{operatorid",{"_index":740,"title":{},"content":{"66":{"position":[[193,85]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/users/{leafuserid}/products/summari",{"_index":780,"title":{},"content":{"71":{"position":[[600,79]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/users/{leafuserid}/varieties/summari",{"_index":904,"title":{},"content":{"79":{"position":[[626,80]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/varieti",{"_index":889,"title":{},"content":{"78":{"position":[[628,53]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/api/varieties/search",{"_index":919,"title":{},"content":{"80":{"position":[[498,60]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/prescription/api",{"_index":1059,"title":{},"content":{"91":{"position":[[70,54]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/prescription/api/users/{leafuserid}/climatefieldview",{"_index":1095,"title":{},"content":{"100":{"position":[[603,92]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/prescription/api/users/{leafuserid}/cnhi?companyid={companyid",{"_index":1094,"title":{},"content":{"98":{"position":[[651,102]]},"99":{"position":[[285,102]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/prescription/api/users/{leafuserid}/johndeere/download?fileid={fileid",{"_index":1087,"title":{},"content":{"97":{"position":[[306,110]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/prescription/api/users/{leafuserid}/johndeere?organizationid={organizationid",{"_index":1084,"title":{},"content":{"95":{"position":[[811,117]]},"96":{"position":[[344,117]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/prescription/api/users/{leafuserid}/ravenslingshot",{"_index":1075,"title":{},"content":{"93":{"position":[[599,90]]},"94":{"position":[[197,90]]}},"keywords":{}}],["https://api.withleaf.io/services/beta/prescription/api/users/{leafuserid}/trimble?rateattribute={}&rateunit",{"_index":1114,"title":{},"content":{"101":{"position":[[954,112]]}},"keywords":{}}],["https://api.withleaf.io/services/config/api",{"_index":1258,"title":{},"content":{"107":{"position":[[209,43]]}},"keywords":{}}],["https://api.withleaf.io/services/config/api/config",{"_index":1263,"title":{},"content":{"109":{"position":[[150,53]]},"112":{"position":[[474,53]]}},"keywords":{}}],["https://api.withleaf.io/services/config/api/configs/${leaf_user_id",{"_index":1267,"title":{},"content":{"110":{"position":[[210,69]]},"111":{"position":[[601,69]]},"113":{"position":[[544,69]]},"114":{"position":[[339,69]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api",{"_index":2188,"title":{},"content":{"258":{"position":[[202,43]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/farm",{"_index":2418,"title":{},"content":{"277":{"position":[[538,51]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/field",{"_index":2208,"title":{},"content":{"260":{"position":[[623,52]]},"424":{"position":[[222,52]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/grow",{"_index":2447,"title":{},"content":{"282":{"position":[[436,53]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/users/{id}/fields/intersect",{"_index":2388,"title":{},"content":{"267":{"position":[[345,73]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/users/{leaf_user_id}/fields/{field_id}/integration/{provider_nam",{"_index":2400,"title":{},"content":{"269":{"position":[[576,112]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/users/{leafuserid}/farm",{"_index":2443,"title":{},"content":{"279":{"position":[[342,70]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/users/{leafuserid}/farms/{id",{"_index":2441,"title":{},"content":{"278":{"position":[[189,75]]},"280":{"position":[[396,75]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/users/{leafuserid}/field",{"_index":2275,"title":{},"content":{"262":{"position":[[1006,71]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/users/{leafuserid}/fields/intersect",{"_index":2341,"title":{},"content":{"266":{"position":[[1498,82]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/users/{leafuserid}/fields/sync",{"_index":2396,"title":{},"content":{"268":{"position":[[637,76]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/users/{leafuserid}/fields/{fieldid}/boundari",{"_index":2408,"title":{},"content":{"274":{"position":[[170,90]]},"275":{"position":[[580,90]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/users/{leafuserid}/fields/{fieldid}/boundaries/{boundaryid",{"_index":2407,"title":{},"content":{"273":{"position":[[211,105]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/users/{leafuserid}/fields/{fieldid}/operations/fil",{"_index":2294,"title":{},"content":{"264":{"position":[[1209,98]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/users/{leafuserid}/fields/{fieldid}/operations/files/{id",{"_index":2315,"title":{},"content":{"265":{"position":[[217,103]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/users/{leafuserid}/fields/{id",{"_index":2266,"title":{},"content":{"261":{"position":[[169,76]]},"263":{"position":[[954,76]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/users/{leafuserid}/fields/{id}/boundari",{"_index":2406,"title":{},"content":{"272":{"position":[[191,87]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/users/{leafuserid}/grow",{"_index":2463,"title":{},"content":{"284":{"position":[[313,72]]}},"keywords":{}}],["https://api.withleaf.io/services/fields/api/users/{leafuserid}/growers/{id",{"_index":2459,"title":{},"content":{"283":{"position":[[193,77]]},"285":{"position":[[340,77]]}},"keywords":{}}],["https://api.withleaf.io/services/geoimages/api/images/a84e6627",{"_index":2025,"title":{},"content":{"239":{"position":[[920,62]]}},"keywords":{}}],["https://api.withleaf.io/services/images/api",{"_index":2019,"title":{},"content":{"238":{"position":[[167,43]]}},"keywords":{}}],["https://api.withleaf.io/services/integrations/api/resourc",{"_index":2175,"title":{},"content":{"255":{"position":[[521,61]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api",{"_index":1319,"title":{},"content":{"129":{"position":[[70,47]]},"345":{"position":[[70,47]]},"389":{"position":[[70,47]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/batch",{"_index":1435,"title":{},"content":{"130":{"position":[[4551,55]]},"132":{"position":[[364,55]]},"480":{"position":[[6213,56]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/batch/{batch_id",{"_index":1477,"title":{},"content":{"131":{"position":[[375,66]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/batch/{id}/retri",{"_index":1529,"title":{},"content":{"133":{"position":[[351,66]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/fields/{id}/process/{id}/reprocess",{"_index":1804,"title":{},"content":{"225":{"position":[[204,84]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/fil",{"_index":2848,"title":{},"content":{"346":{"position":[[1943,55]]},"425":{"position":[[299,55]]},"480":{"position":[[8639,56],[9387,56]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/files/merg",{"_index":2889,"title":{},"content":{"353":{"position":[[856,61]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/files/uncoveredfiles?leafuserid={leafuserid",{"_index":2872,"title":{},"content":{"352":{"position":[[358,94]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/files/{id",{"_index":2850,"title":{},"content":{"347":{"position":[[145,60]]},"426":{"position":[[172,60]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/files/{id}/imag",{"_index":2853,"title":{},"content":{"349":{"position":[[196,67]]},"428":{"position":[[452,67]]},"429":{"position":[[884,67]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/files/{id}/statu",{"_index":2863,"title":{},"content":{"351":{"position":[[164,67]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/files/{id}/summari",{"_index":2852,"title":{},"content":{"348":{"position":[[172,68]]},"427":{"position":[[75,68]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/files/{id}/unit",{"_index":2861,"title":{},"content":{"350":{"position":[[165,66]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/files?origin=merg",{"_index":3411,"title":{},"content":{"429":{"position":[[587,69]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/oper",{"_index":2024,"title":{},"content":{"239":{"position":[[792,60]]},"390":{"position":[[1396,60]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/operations/cropoperationbyfield",{"_index":3208,"title":{},"content":{"399":{"position":[[286,81]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/operations/{id",{"_index":3179,"title":{},"content":{"391":{"position":[[155,65]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/operations/{id}/fil",{"_index":3219,"title":{},"content":{"400":{"position":[[225,71]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/operations/{id}/filteredgeojson",{"_index":3182,"title":{},"content":{"394":{"position":[[281,81]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/operations/{id}/geotiffimag",{"_index":3204,"title":{},"content":{"397":{"position":[[295,79]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/operations/{id}/imag",{"_index":3184,"title":{},"content":{"395":{"position":[[196,72]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/operations/{id}/imagesv2",{"_index":3185,"title":{},"content":{"396":{"position":[[289,74]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/operations/{id}/reprocess",{"_index":3220,"title":{},"content":{"401":{"position":[[286,75]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/operations/{id}/standardgeojson",{"_index":3181,"title":{},"content":{"393":{"position":[[196,81]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/operations/{id}/summari",{"_index":3180,"title":{},"content":{"392":{"position":[[182,73]]}},"keywords":{}}],["https://api.withleaf.io/services/operations/api/operations/{id}/unit",{"_index":3206,"title":{},"content":{"398":{"position":[[176,71]]}},"keywords":{}}],["https://api.withleaf.io/services/satellite/api",{"_index":3528,"title":{},"content":{"467":{"position":[[3737,48]]}},"keywords":{}}],["https://api.withleaf.io/services/satellite/api/field",{"_index":1684,"title":{},"content":{"218":{"position":[[608,55]]},"222":{"position":[[1770,55]]},"430":{"position":[[291,56]]},"467":{"position":[[2017,56],[3326,56],[6591,56]]}},"keywords":{}}],["https://api.withleaf.io/services/satellite/api/fields/{field_id}/process",{"_index":3413,"title":{},"content":{"430":{"position":[[500,76]]}},"keywords":{}}],["https://api.withleaf.io/services/satellite/api/fields/{id",{"_index":1686,"title":{},"content":{"219":{"position":[[289,60]]},"223":{"position":[[331,60]]}},"keywords":{}}],["https://api.withleaf.io/services/satellite/api/fields/{id}/processes/{id",{"_index":1748,"title":{},"content":{"221":{"position":[[177,75]]}},"keywords":{}}],["https://api.withleaf.io/services/satellite/api/fields/{id}/processes?startdate=2020",{"_index":1714,"title":{},"content":{"220":{"position":[[1525,84]]}},"keywords":{}}],["https://api.withleaf.io/services/satellite/api/fields/{id}/subscript",{"_index":1799,"title":{},"content":{"224":{"position":[[233,73]]}},"keywords":{}}],["https://api.withleaf.io/services/usermanagement/api",{"_index":1274,"title":{},"content":{"116":{"position":[[299,51]]},"295":{"position":[[70,51]]},"406":{"position":[[181,51]]},"498":{"position":[[398,51]]}},"keywords":{}}],["https://api.withleaf.io/services/usermanagement/api/api",{"_index":1304,"title":{},"content":{"119":{"position":[[242,56]]},"120":{"position":[[263,56]]},"121":{"position":[[262,56]]},"122":{"position":[[550,56]]},"123":{"position":[[283,56]]},"124":{"position":[[470,56]]},"125":{"position":[[344,56]]},"126":{"position":[[279,56]]},"127":{"position":[[225,56]]},"297":{"position":[[148,56]]},"298":{"position":[[531,56]]},"299":{"position":[[148,56]]}},"keywords":{}}],["https://api.withleaf.io/services/usermanagement/api/app",{"_index":2549,"title":{},"content":{"301":{"position":[[752,56],[1245,56],[1764,56],[2174,56],[2466,56]]},"302":{"position":[[877,56],[1402,56],[1995,56],[2479,56],[2803,56]]},"303":{"position":[[970,56],[1483,56],[2093,56],[2585,56],[2899,56]]},"304":{"position":[[1047,56],[1582,56],[2158,56],[2616,56],[2952,56]]},"305":{"position":[[940,56],[1427,56],[2000,56],[2464,56],[2750,56]]},"328":{"position":[[975,56]]},"329":{"position":[[663,56]]},"330":{"position":[[1029,56]]},"331":{"position":[[857,56]]},"332":{"position":[[869,56]]}},"keywords":{}}],["https://api.withleaf.io/services/usermanagement/api/us",{"_index":3773,"title":{},"content":{"480":{"position":[[5987,61]]},"500":{"position":[[130,59]]},"502":{"position":[[867,59]]},"503":{"position":[[740,59]]}},"keywords":{}}],["https://api.withleaf.io/services/usermanagement/api/users/{id",{"_index":3984,"title":{},"content":{"501":{"position":[[330,64]]},"504":{"position":[[158,64]]}},"keywords":{}}],["https://api.withleaf.io/services/usermanagement/api/users/{leafuserid",{"_index":1574,"title":{},"content":{"144":{"position":[[222,71]]},"151":{"position":[[220,71]]},"158":{"position":[[231,71]]},"165":{"position":[[217,71]]},"172":{"position":[[223,71]]},"179":{"position":[[228,71]]},"186":{"position":[[218,71]]},"193":{"position":[[220,71]]},"200":{"position":[[218,71]]},"207":{"position":[[220,71]]}},"keywords":{}}],["https://api.withleaf.io/services/usermanagement/api/users/{leafuserid}/ag",{"_index":1562,"title":{},"content":{"140":{"position":[[374,74]]},"141":{"position":[[433,74]]},"142":{"position":[[192,74]]}},"keywords":{}}],["https://api.withleaf.io/services/usermanagement/api/users/{leafuserid}/agv",{"_index":1582,"title":{},"content":{"147":{"position":[[371,79]]},"148":{"position":[[463,79]]},"149":{"position":[[187,79]]}},"keywords":{}}],["https://api.withleaf.io/services/usermanagement/api/users/{leafuserid}/clim",{"_index":1592,"title":{},"content":{"154":{"position":[[392,79]]},"155":{"position":[[405,79]]},"156":{"position":[[210,79]]}},"keywords":{}}],["https://api.withleaf.io/services/usermanagement/api/users/{leafuserid}/cnhi",{"_index":1599,"title":{},"content":{"161":{"position":[[365,76]]},"162":{"position":[[525,76]]},"163":{"position":[[183,76]]}},"keywords":{}}],["https://api.withleaf.io/services/usermanagement/api/users/{leafuserid}/john",{"_index":1602,"title":{},"content":{"168":{"position":[[377,76]]},"169":{"position":[[446,76]]},"170":{"position":[[195,76]]}},"keywords":{}}],["https://api.withleaf.io/services/usermanagement/api/users/{leafuserid}/organizations/{provid",{"_index":3224,"title":{},"content":{"408":{"position":[[353,97]]}},"keywords":{}}],["https://api.withleaf.io/services/usermanagement/api/users/{leafuserid}/raven",{"_index":1606,"title":{},"content":{"175":{"position":[[387,77]]},"176":{"position":[[399,77]]},"177":{"position":[[205,77]]},"182":{"position":[[367,77]]},"183":{"position":[[385,77]]},"184":{"position":[[185,77]]}},"keywords":{}}],["https://api.withleaf.io/services/usermanagement/api/users/{leafuserid}/sentera",{"_index":1611,"title":{},"content":{"189":{"position":[[371,79]]},"190":{"position":[[391,79]]},"191":{"position":[[189,79]]}},"keywords":{}}],["https://api.withleaf.io/services/usermanagement/api/users/{leafuserid}/stara",{"_index":1616,"title":{},"content":{"196":{"position":[[367,77]]},"197":{"position":[[437,77]]},"198":{"position":[[185,77]]}},"keywords":{}}],["https://api.withleaf.io/services/usermanagement/api/users/{leafuserid}/trimbl",{"_index":1618,"title":{},"content":{"203":{"position":[[371,79]]},"204":{"position":[[349,79]]},"205":{"position":[[189,79]]}},"keywords":{}}],["https://api.withleaf.io/services/weather/api",{"_index":4095,"title":{},"content":{"517":{"position":[[212,44]]}},"keywords":{}}],["https://api.withleaf.io/services/weather/api/users/{leafuserid}/weather/forecast/field/{fieldid}/daili",{"_index":4111,"title":{},"content":{"519":{"position":[[639,104]]}},"keywords":{}}],["https://api.withleaf.io/services/weather/api/users/{leafuserid}/weather/forecast/field/{fieldid}/hourli",{"_index":4143,"title":{},"content":{"520":{"position":[[641,105]]}},"keywords":{}}],["https://api.withleaf.io/services/weather/api/users/{leafuserid}/weather/historical/field/{fieldid}/daili",{"_index":4174,"title":{},"content":{"523":{"position":[[825,106]]}},"keywords":{}}],["https://api.withleaf.io/services/weather/api/users/{leafuserid}/weather/historical/field/{fieldid}/hourli",{"_index":4194,"title":{},"content":{"524":{"position":[[624,107]]}},"keywords":{}}],["https://api.withleaf.io/services/weather/api/weather/forecast/daily/{lat},{lon",{"_index":4170,"title":{},"content":{"521":{"position":[[628,81]]}},"keywords":{}}],["https://api.withleaf.io/services/weather/api/weather/forecast/hourly/{lat},{lon",{"_index":4171,"title":{},"content":{"522":{"position":[[630,82]]}},"keywords":{}}],["https://api.withleaf.io/services/weather/api/weather/historical/daily/{lat},{lon",{"_index":4215,"title":{},"content":{"525":{"position":[[814,83]]}},"keywords":{}}],["https://api.withleaf.io/services/weather/api/weather/historical/hourly/{lat},{lon",{"_index":4217,"title":{},"content":{"526":{"position":[[613,84]]}},"keywords":{}}],["https://api.withleaf.io/services/widgets/api",{"_index":3083,"title":{},"content":{"376":{"position":[[70,44]]}},"keywords":{}}],["https://api.withleaf.io/services/widgets/api/mag",{"_index":3087,"title":{},"content":{"378":{"position":[[574,51],[1398,51],[3010,51],[3494,51]]},"379":{"position":[[634,51],[1475,51],[3037,51],[3537,51]]},"380":{"position":[[556,51],[1325,51],[2532,51],[2992,51]]},"382":{"position":[[1662,51]]},"383":{"position":[[1644,51]]},"384":{"position":[[1325,51]]},"385":{"position":[[1200,51]]}},"keywords":{}}],["https://connections.deere.com/connections/clientkey/connect",{"_index":3228,"title":{},"content":{"408":{"position":[[573,64],[783,64]]}},"keywords":{}}],["https://flamboy",{"_index":281,"title":{},"content":{"8":{"position":[[1347,19]]}},"keywords":{}}],["https://magic",{"_index":3089,"title":{},"content":{"378":{"position":[[689,14],[1525,14],[3164,14]]},"379":{"position":[[755,14],[1608,14],[3197,14]]},"380":{"position":[[674,14],[1455,14],[2689,14]]},"382":{"position":[[1797,14]]},"383":{"position":[[1785,14]]},"384":{"position":[[1463,14]]}},"keywords":{}}],["https://png",{"_index":3075,"title":{},"content":{"367":{"position":[[359,12],[639,12],[921,12],[1202,12],[1491,12],[1778,12],[2065,12],[2347,12],[2629,12],[2917,12],[3197,12],[3477,12],[3764,12],[4046,12],[4335,12]]}},"keywords":{}}],["https://s3",{"_index":3291,"title":{},"content":{"415":{"position":[[1854,11],[1966,11],[2080,11],[2192,11],[2302,11],[2421,11],[2535,11],[2656,11],[2776,11],[2895,11],[3008,11],[3127,11],[3236,11],[3348,11],[3469,11],[3583,11]]}},"keywords":{}}],["https://webhook.site/{{uuid",{"_index":266,"title":{},"content":{"8":{"position":[[377,32],[862,32]]}},"keywords":{}}],["https://widget.withleaf.io",{"_index":2554,"title":{},"content":{"303":{"position":[[203,26]]},"304":{"position":[[215,26]]},"305":{"position":[[209,26]]},"328":{"position":[[265,26]]},"330":{"position":[[267,26]]},"331":{"position":[[263,26]]},"332":{"position":[[364,26]]}},"keywords":{}}],["https://withleaf.io/?oauth_token=token&oauth_verifier=cod",{"_index":2080,"title":{},"content":{"244":{"position":[[1535,58]]}},"keywords":{}}],["https://www.agrian.com/labelcenter/results.cfm?d=21666",{"_index":833,"title":{},"content":{"73":{"position":[[505,57]]}},"keywords":{}}],["https://www.agrian.com/pdfs/current/badge_x2_fungicidebactericide_label1p.pdf",{"_index":836,"title":{},"content":{"73":{"position":[[614,79]]}},"keywords":{}}],["https://www.agrian.com/pdfs/new/00000.pdf",{"_index":824,"title":{},"content":{"72":{"position":[[1321,43]]}},"keywords":{}}],["https://www.agrian.com/searchcenter/demonstration=00000",{"_index":822,"title":{},"content":{"72":{"position":[[1214,58]]}},"keywords":{}}],["https://www.cdms.net/ldat",{"_index":807,"title":{},"content":{"72":{"position":[[810,29]]}},"keywords":{}}],["https://www.cdms.net/ldat/mee2000.pdf",{"_index":810,"title":{},"content":{"72":{"position":[[884,39]]}},"keywords":{}}],["https://yourwebhook.com/leaf/satellit",{"_index":227,"title":{},"content":{"5":{"position":[[1559,40]]}},"keywords":{}}],["https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{"_index":3688,"title":{},"content":{"474":{"position":[[537,53]]}},"keywords":{}}],["httpsconnectionpool(host='flamboy",{"_index":297,"title":{},"content":{"8":{"position":[[1655,36]]}},"keywords":{}}],["humid",{"_index":3993,"title":{},"content":{"509":{"position":[[70,8]]},"511":{"position":[[1814,8],[2013,8]]},"513":{"position":[[70,8]]},"515":{"position":[[1797,8],[1996,8]]}},"keywords":{}}],["hundr",{"_index":2834,"title":{},"content":{"343":{"position":[[68,8]]}},"keywords":{}}],["hurt",{"_index":28,"title":{},"content":{"0":{"position":[[367,4],[782,4],[954,4],[1509,4],[1681,4],[1853,4]]}},"keywords":{}}],["hypericum",{"_index":1893,"title":{},"content":{"229":{"position":[[1388,11]]}},"keywords":{}}],["hyracinth",{"_index":1944,"title":{},"content":{"229":{"position":[[2150,11]]}},"keywords":{}}],["i'm",{"_index":11,"title":{},"content":{"0":{"position":[[83,3],[166,3],[569,3],[1308,3]]}},"keywords":{}}],["i.",{"_index":2810,"title":{},"content":{"338":{"position":[[3182,3]]}},"keywords":{}}],["iceberg",{"_index":1894,"title":{},"content":{"229":{"position":[[1400,8]]},"320":{"position":[[1418,7]]}},"keywords":{}}],["icon",{"_index":4109,"title":{},"content":{"519":{"position":[[416,5]]},"520":{"position":[[418,5]]},"521":{"position":[[405,5]]},"522":{"position":[[407,5]]}},"keywords":{}}],["icongfsarpeg",{"_index":4033,"title":{},"content":{"511":{"position":[[0,13]]}},"keywords":{}}],["id",{"_index":241,"title":{},"content":{"5":{"position":[[1922,5]]},"6":{"position":[[64,3],[249,5]]},"7":{"position":[[250,5]]},"9":{"position":[[65,3]]},"15":{"position":[[288,4]]},"16":{"position":[[233,4]]},"18":{"position":[[197,2],[236,2]]},"19":{"position":[[246,2],[285,2]]},"20":{"position":[[217,2],[256,2]]},"22":{"position":[[120,2],[174,2]]},"23":{"position":[[120,2],[174,2]]},"25":{"position":[[398,2],[443,2]]},"26":{"position":[[313,2],[358,2]]},"28":{"position":[[324,2],[369,2]]},"29":{"position":[[383,2],[428,2]]},"31":{"position":[[251,2],[296,2]]},"32":{"position":[[310,2],[355,2]]},"33":{"position":[[260,2],[305,2]]},"34":{"position":[[319,2],[364,2]]},"35":{"position":[[322,2],[371,2]]},"36":{"position":[[183,2],[233,2]]},"37":{"position":[[239,2],[289,2]]},"39":{"position":[[260,2],[306,2]]},"41":{"position":[[279,2],[322,2]]},"42":{"position":[[267,2],[315,2]]},"43":{"position":[[205,2],[252,2]]},"44":{"position":[[227,2],[272,2]]},"45":{"position":[[223,2],[273,2]]},"57":{"position":[[310,2],[1228,3],[1267,3],[1706,5],[2163,5]]},"58":{"position":[[92,3],[295,5]]},"59":{"position":[[116,3],[2058,3],[2097,3],[2375,5],[2718,5]]},"60":{"position":[[474,5]]},"61":{"position":[[622,5]]},"63":{"position":[[300,2],[353,2],[970,3],[1009,3],[1434,5]]},"64":{"position":[[94,3],[301,5]]},"65":{"position":[[669,5]]},"66":{"position":[[91,3],[296,5]]},"70":{"position":[[729,3],[908,5]]},"71":{"position":[[493,3],[699,5]]},"72":{"position":[[575,5],[988,5]]},"73":{"position":[[41,3],[273,5]]},"74":{"position":[[282,3],[490,5],[671,5]]},"75":{"position":[[497,5],[628,5]]},"78":{"position":[[521,3],[701,5]]},"79":{"position":[[519,3],[726,5],[877,5]]},"80":{"position":[[578,5]]},"82":{"position":[[522,3],[702,5],[1010,5],[1458,5],[1919,5]]},"83":{"position":[[524,5],[832,5],[1280,5],[1741,5]]},"88":{"position":[[689,5],[1324,5]]},"89":{"position":[[958,5]]},"93":{"position":[[707,5]]},"94":{"position":[[307,5],[339,5]]},"95":{"position":[[225,2],[946,5]]},"96":{"position":[[209,2],[481,5],[513,5]]},"97":{"position":[[86,2],[146,2]]},"98":{"position":[[124,2],[771,5]]},"99":{"position":[[114,2],[407,5],[439,5]]},"100":{"position":[[713,5]]},"101":{"position":[[1084,5]]},"130":{"position":[[175,2],[792,3],[910,3],[920,3],[4661,5],[4904,2],[5582,5]]},"131":{"position":[[186,2],[580,5]]},"132":{"position":[[175,2],[560,5]]},"133":{"position":[[435,5]]},"140":{"position":[[107,2],[486,5]]},"141":{"position":[[581,5]]},"144":{"position":[[433,5]]},"147":{"position":[[104,2],[481,5]]},"148":{"position":[[608,5]]},"151":{"position":[[429,5]]},"154":{"position":[[125,2],[513,5]]},"155":{"position":[[571,5]]},"158":{"position":[[451,5]]},"161":{"position":[[98,2],[472,5]]},"162":{"position":[[664,5]]},"165":{"position":[[423,5]]},"168":{"position":[[110,2],[490,5]]},"169":{"position":[[597,5]]},"172":{"position":[[435,5]]},"175":{"position":[[120,2],[505,5]]},"176":{"position":[[560,5]]},"179":{"position":[[445,5]]},"182":{"position":[[100,2],[475,5]]},"183":{"position":[[526,5]]},"186":{"position":[[425,5]]},"189":{"position":[[104,2],[481,5]]},"190":{"position":[[536,5]]},"193":{"position":[[429,5]]},"196":{"position":[[100,2],[475,5]]},"197":{"position":[[578,5]]},"200":{"position":[[425,5]]},"203":{"position":[[104,2],[481,5]]},"204":{"position":[[494,5]]},"207":{"position":[[423,5]]},"218":{"position":[[93,2],[435,3],[709,4]]},"219":{"position":[[62,3],[66,3],[79,2],[393,4]]},"220":{"position":[[61,3],[1655,5]]},"221":{"position":[[270,5]]},"222":{"position":[[1102,2]]},"233":{"position":[[269,2],[317,3]]},"244":{"position":[[2024,2],[2220,2],[2283,2]]},"245":{"position":[[1031,2],[1166,2],[1229,2]]},"246":{"position":[[187,3],[583,5],[594,4],[1111,4],[1370,2]]},"247":{"position":[[558,3],[699,2]]},"248":{"position":[[119,3],[302,2],[473,2],[642,3],[757,4],[769,2]]},"253":{"position":[[587,3]]},"260":{"position":[[695,5],[1295,5]]},"262":{"position":[[372,2],[446,2],[546,5],[1095,5]]},"263":{"position":[[175,4]]},"264":{"position":[[1327,5]]},"265":{"position":[[115,3],[338,5]]},"266":{"position":[[1600,5],[2222,5]]},"269":{"position":[[772,5]]},"270":{"position":[[65,3]]},"273":{"position":[[109,3]]},"275":{"position":[[688,5]]},"277":{"position":[[609,5]]},"278":{"position":[[62,2]]},"280":{"position":[[58,2],[61,2]]},"282":{"position":[[544,5]]},"283":{"position":[[66,2],[322,5]]},"285":{"position":[[62,2],[65,2]]},"287":{"position":[[684,5],[1288,5]]},"288":{"position":[[1670,5]]},"289":{"position":[[7,5]]},"290":{"position":[[7,5]]},"291":{"position":[[7,5]]},"297":{"position":[[254,5],[397,5]]},"300":{"position":[[145,3]]},"313":{"position":[[711,2]]},"314":{"position":[[687,2]]},"316":{"position":[[327,2],[1042,3]]},"317":{"position":[[305,2]]},"334":{"position":[[710,2]]},"335":{"position":[[684,2]]},"337":{"position":[[258,2],[811,3]]},"346":{"position":[[1575,3],[1614,3]]},"347":{"position":[[43,3]]},"348":{"position":[[70,3]]},"351":{"position":[[62,3]]},"352":{"position":[[165,3]]},"353":{"position":[[301,2],[657,3],[689,6],[829,6],[935,5],[941,5]]},"360":{"position":[[872,4]]},"361":{"position":[[204,5]]},"365":{"position":[[847,2]]},"378":{"position":[[660,5],[1496,5],[3113,5]]},"379":{"position":[[726,5],[1579,5],[3146,5]]},"380":{"position":[[645,5],[1426,5],[2638,5]]},"381":{"position":[[217,2]]},"382":{"position":[[1746,5]]},"383":{"position":[[1734,5]]},"384":{"position":[[1412,5]]},"390":{"position":[[1081,3],[1120,3],[1476,5],[1845,5]]},"391":{"position":[[53,3],[238,5],[607,5]]},"392":{"position":[[80,3]]},"399":{"position":[[262,5],[385,5]]},"408":{"position":[[498,5],[708,5]]},"411":{"position":[[289,5],[535,5]]},"424":{"position":[[366,3],[441,4]]},"426":{"position":[[25,3]]},"429":{"position":[[684,2]]},"447":{"position":[[123,3]]},"467":{"position":[[4627,3]]},"473":{"position":[[5976,3]]},"480":{"position":[[383,2],[4278,2],[4306,2],[4648,2],[4747,3],[5928,3],[6383,2],[7554,2],[7634,2],[7682,2],[8284,2],[8320,2],[9051,2],[9098,2],[9266,2]]},"488":{"position":[[39,2],[232,3],[2502,5],[2815,2]]},"489":{"position":[[39,2],[200,2],[283,2],[353,2]]},"498":{"position":[[585,5]]},"500":{"position":[[209,5]]},"501":{"position":[[40,3],[203,3],[412,5]]},"502":{"position":[[386,2],[666,5],[944,5]]},"503":{"position":[[86,5],[527,5],[646,5],[817,5]]},"504":{"position":[[53,3]]}},"keywords":{}}],["id\").submit(funct",{"_index":3897,"title":{},"content":{"486":{"position":[[228,22]]}},"keywords":{}}],["id\").val",{"_index":3884,"title":{},"content":{"484":{"position":[[294,11]]}},"keywords":{}}],["id'",{"_index":1325,"title":{},"content":{"130":{"position":[[236,4],[4979,5]]},"267":{"position":[[173,5],[190,4]]}},"keywords":{}}],["id').append(`<a",{"_index":3905,"title":{},"content":{"487":{"position":[[915,15]]}},"keywords":{}}],["id').append(start",{"_index":3894,"title":{},"content":{"485":{"position":[[622,17]]}},"keywords":{}}],["id').val",{"_index":3883,"title":{},"content":{"484":{"position":[[241,10]]}},"keywords":{}}],["id).deleted_on_provid",{"_index":2479,"title":{},"content":{"288":{"position":[[976,23]]}},"keywords":{}}],["id)clientsecret",{"_index":2739,"title":{},"content":{"328":{"position":[[653,15]]},"330":{"position":[[636,15]]}},"keywords":{}}],["id1",{"_index":2386,"title":{},"content":{"267":{"position":[[253,6],[527,8]]},"353":{"position":[[698,6],[838,6]]}},"keywords":{}}],["id2",{"_index":2387,"title":{},"content":{"267":{"position":[[260,5],[536,7]]},"353":{"position":[[705,6],[845,5]]}},"keywords":{}}],["id_token",{"_index":436,"title":{},"content":{"48":{"position":[[493,10]]}},"keywords":{}}],["iddf",{"_index":2410,"title":{},"content":{"275":{"position":[[704,4]]}},"keywords":{}}],["identif",{"_index":351,"title":{},"content":{"15":{"position":[[191,16]]},"16":{"position":[[136,16]]},"57":{"position":[[760,14]]}},"keywords":{}}],["identifi",{"_index":376,"title":{},"content":{"26":{"position":[[170,11]]},"28":{"position":[[204,11]]},"29":{"position":[[240,11]]},"31":{"position":[[124,11]]},"32":{"position":[[160,11]]},"33":{"position":[[129,11]]},"34":{"position":[[165,11]]},"35":{"position":[[82,11]]},"36":{"position":[[70,11]]},"220":{"position":[[257,8]]},"292":{"position":[[161,10]]},"298":{"position":[[337,8]]},"343":{"position":[[152,8]]},"381":{"position":[[173,11]]},"460":{"position":[[382,10]]}},"keywords":{}}],["idexpiresin",{"_index":2537,"title":{},"content":{"298":{"position":[[187,12]]}},"keywords":{}}],["idnam",{"_index":3119,"title":{},"content":{"382":{"position":[[606,7]]},"383":{"position":[[609,7]]},"384":{"position":[[348,7]]}},"keywords":{}}],["idtest",{"_index":2268,"title":{},"content":{"262":{"position":[[552,9],[1101,9]]}},"keywords":{}}],["if",{"_index":4023,"title":{},"content":{"510":{"position":[[290,3]]},"519":{"position":[[427,4]]},"520":{"position":[[429,4]]},"521":{"position":[[416,4]]},"522":{"position":[[418,4]]}},"keywords":{}}],["ih",{"_index":3012,"title":{},"content":{"361":{"position":[[3124,2],[3207,3],[3230,2],[3291,3]]},"414":{"position":[[2695,2],[2776,3],[2799,2],[2870,3]]}},"keywords":{}}],["ilf",{"_index":1387,"title":{},"content":{"130":{"position":[[2399,3],[2439,4],[2672,5]]}},"keywords":{}}],["imag",{"_index":225,"title":{"39":{"position":[[14,5]]},"220":{"position":[[4,6]]},"221":{"position":[[7,5]]},"225":{"position":[[20,6]]},"237":{"position":[[4,6]]},"239":{"position":[[7,6]]},"349":{"position":[[13,6]]},"367":{"position":[[0,6]]},"395":{"position":[[16,6]]},"396":{"position":[[16,6]]},"397":{"position":[[24,6]]},"415":{"position":[[17,6]]},"428":{"position":[[26,5]]},"462":{"position":[[27,6]]},"475":{"position":[[29,6]]}},"content":{"5":{"position":[[1508,6],[1990,6]]},"6":{"position":[[343,6]]},"7":{"position":[[344,6]]},"11":{"position":[[893,5]]},"35":{"position":[[196,6]]},"37":{"position":[[134,7]]},"39":{"position":[[61,5],[145,6],[339,8]]},"47":{"position":[[521,7],[624,5],[762,5]]},"89":{"position":[[148,5],[242,5]]},"104":{"position":[[212,6],[466,6],[585,6],[1057,6],[1134,6],[1302,6],[1369,6],[1493,6],[1570,6],[1728,6]]},"105":{"position":[[711,5],[1120,6],[1218,6],[1401,6],[3121,6],[3203,7],[3303,6]]},"209":{"position":[[179,6],[224,6],[467,6],[500,5],[646,5]]},"210":{"position":[[59,6],[372,6]]},"212":{"position":[[281,5],[517,5]]},"220":{"position":[[36,6],[89,6],[472,6],[544,6],[632,6],[730,6],[1055,6],[1170,7],[1393,6],[1881,9],[2254,5],[2333,6],[2606,5],[2727,6],[2814,6]]},"221":{"position":[[496,9]]},"222":{"position":[[86,6],[379,6],[641,6],[760,6],[1295,6]]},"223":{"position":[[119,6],[187,6]]},"225":{"position":[[76,6]]},"238":{"position":[[33,6],[291,6],[303,7]]},"239":{"position":[[6,7],[899,5]]},"251":{"position":[[755,6]]},"345":{"position":[[299,6]]},"349":{"position":[[43,6],[613,6],[646,5],[731,6],[818,6],[935,5],[1017,6],[1112,5]]},"360":{"position":[[175,6]]},"385":{"position":[[416,5]]},"387":{"position":[[321,6]]},"389":{"position":[[483,6],[534,6],[598,6]]},"395":{"position":[[48,6],[623,6],[656,5],[741,6],[828,6],[945,5],[1027,6],[1122,5]]},"396":{"position":[[50,6],[150,6],[972,6],[1145,6],[1177,6]]},"397":{"position":[[56,6],[156,6]]},"401":{"position":[[163,6]]},"413":{"position":[[503,7]]},"415":{"position":[[22,6],[319,6],[361,6],[477,6],[1329,6],[1424,6],[1518,7],[1549,6],[1600,7],[1778,6]]},"428":{"position":[[347,5]]},"429":{"position":[[31,5],[214,6],[354,5],[709,7],[801,7]]},"430":{"position":[[98,6],[388,5]]},"434":{"position":[[191,5]]},"436":{"position":[[201,6]]},"438":{"position":[[158,7]]},"441":{"position":[[92,6]]},"442":{"position":[[32,6]]},"451":{"position":[[558,6]]},"463":{"position":[[55,6]]},"467":{"position":[[2372,6],[2658,6],[2811,6],[2864,7],[2946,6],[3582,6],[4570,5],[4713,7],[4740,5],[4780,5],[5137,6],[5235,7],[5282,6],[5361,6]]},"469":{"position":[[128,6]]},"472":{"position":[[241,6]]},"473":{"position":[[2371,7],[2959,6],[3105,6],[3181,7],[3279,7],[3386,6],[3949,6],[4103,6],[4753,6],[5180,6],[5200,5],[5229,5],[5272,6],[6165,5],[6218,6],[6273,6],[6325,5],[6400,6],[6434,6],[6641,5]]},"474":{"position":[[1225,6]]},"476":{"position":[[55,6]]},"480":{"position":[[9007,6],[9217,6],[9456,10],[9674,6],[9765,6],[10003,5],[10335,6],[11285,6],[11418,6],[12435,5],[12647,6],[12761,5],[12771,5],[12781,5]]},"482":{"position":[[356,6]]},"488":{"position":[[358,6],[531,6],[598,6],[783,6],[825,7],[1276,6],[1327,5],[1393,6],[1540,5],[1661,6],[2090,6],[2223,5],[2271,8],[2307,5],[2481,5]]},"489":{"position":[[79,5]]}},"keywords":{}}],["image'",{"_index":1736,"title":{},"content":{"220":{"position":[[2380,7]]}},"keywords":{}}],["image1",{"_index":3849,"title":{},"content":{"480":{"position":[[11697,9]]}},"keywords":{}}],["image2",{"_index":3857,"title":{},"content":{"480":{"position":[[11985,9]]}},"keywords":{}}],["image3",{"_index":3861,"title":{},"content":{"480":{"position":[[12113,9]]}},"keywords":{}}],["image_coordin",{"_index":3804,"title":{},"content":{"480":{"position":[[9702,21]]},"488":{"position":[[898,21]]}},"keywords":{}}],["imagecloud",{"_index":1728,"title":{},"content":{"220":{"position":[[2068,12]]}},"keywords":{}}],["imagedownloadurl",{"_index":1742,"title":{},"content":{"220":{"position":[[2671,17]]}},"keywords":{}}],["imagen",{"_index":3647,"title":{},"content":{"473":{"position":[[4775,7],[6289,7]]}},"keywords":{}}],["imagens.clearlay",{"_index":3674,"title":{},"content":{"473":{"position":[[6350,22]]}},"keywords":{}}],["imageri",{"_index":1619,"title":{"430":{"position":[[21,7]]}},"content":{"209":{"position":[[86,7]]},"222":{"position":[[1248,7]]},"252":{"position":[[319,7]]},"430":{"position":[[45,8]]}},"keywords":{}}],["imageryfor",{"_index":3382,"title":{},"content":{"419":{"position":[[387,10]]}},"keywords":{}}],["imagesimag",{"_index":3912,"title":{},"content":{"488":{"position":[[164,12]]}},"keywords":{}}],["imagestatu",{"_index":1739,"title":{},"content":{"220":{"position":[[2459,12]]}},"keywords":{}}],["imagesv2",{"_index":3289,"title":{},"content":{"415":{"position":[[1473,9]]}},"keywords":{}}],["imagetyp",{"_index":1743,"title":{},"content":{"220":{"position":[[2700,10]]}},"keywords":{}}],["immedi",{"_index":169,"title":{},"content":{"5":{"position":[[162,11]]},"340":{"position":[[549,11]]},"353":{"position":[[127,11]]},"422":{"position":[[244,12]]}},"keywords":{}}],["impact",{"_index":3243,"title":{},"content":{"414":{"position":[[149,8]]}},"keywords":{}}],["imperi",{"_index":1206,"title":{},"content":{"104":{"position":[[2424,9]]},"357":{"position":[[297,8],[1396,9],[1492,9],[1574,9],[1670,9]]},"511":{"position":[[87,9],[180,9],[276,9],[377,9],[487,9],[600,9],[882,9],[952,9],[1069,9],[1181,9],[1239,9],[1306,9],[1409,9]]},"515":{"position":[[70,9],[163,9],[259,9],[360,9],[470,9],[583,9],[865,9],[935,9],[1052,9],[1164,9],[1222,9],[1289,9],[1392,9]]},"519":{"position":[[499,8]]},"520":{"position":[[501,8]]},"521":{"position":[[488,8]]},"522":{"position":[[490,8]]},"523":{"position":[[685,8]]},"524":{"position":[[484,8]]},"525":{"position":[[674,8]]},"526":{"position":[[473,8]]}},"keywords":{}}],["implement",{"_index":72,"title":{"44":{"position":[[4,9]]},"45":{"position":[[8,9]]},"63":{"position":[[8,10]]},"64":{"position":[[7,9]]},"496":{"position":[[3,12]]}},"content":{"2":{"position":[[224,14]]},"11":{"position":[[971,10],[990,9]]},"44":{"position":[[30,9],[241,11]]},"45":{"position":[[26,9],[233,9]]},"50":{"position":[[203,9],[223,9]]},"56":{"position":[[439,10],[492,9]]},"63":{"position":[[52,10],[135,10],[290,9],[509,9],[1785,10]]},"64":{"position":[[77,9],[652,10]]},"130":{"position":[[2943,10]]},"136":{"position":[[80,10]]},"209":{"position":[[64,9]]},"253":{"position":[[1114,10],[1125,10]]},"255":{"position":[[979,14]]},"256":{"position":[[270,14]]},"338":{"position":[[3443,11]]},"361":{"position":[[3263,12]]},"365":{"position":[[575,9],[853,9],[939,9]]},"414":{"position":[[2748,12]]},"425":{"position":[[102,10]]},"496":{"position":[[21,9]]}},"keywords":{}}],["implementcr",{"_index":398,"title":{},"content":{"44":{"position":[[142,19]]}},"keywords":{}}],["implementid",{"_index":399,"title":{},"content":{"44":{"position":[[207,14]]},"45":{"position":[[203,14]]}},"keywords":{}}],["implementupd",{"_index":400,"title":{},"content":{"45":{"position":[[138,19]]}},"keywords":{}}],["import",{"_index":98,"title":{"340":{"position":[[8,6]]}},"content":{"3":{"position":[[10,9],[756,6],[768,6]]},"131":{"position":[[327,6]]},"132":{"position":[[316,6]]},"135":{"position":[[40,8],[730,6]]},"220":{"position":[[1303,9]]},"245":{"position":[[753,9]]},"313":{"position":[[431,6],[489,6]]},"314":{"position":[[422,6],[468,6]]},"317":{"position":[[772,6],[1202,6],[1234,6],[1432,6],[1474,6]]},"325":{"position":[[128,9]]},"334":{"position":[[431,6],[489,6]]},"335":{"position":[[419,6],[465,6]]},"338":{"position":[[1124,6],[1570,6],[1629,6],[1808,6],[1899,6],[2733,6]]},"340":{"position":[[21,8]]},"341":{"position":[[827,9]]},"387":{"position":[[556,9],[793,9]]},"414":{"position":[[60,9]]},"415":{"position":[[1396,10]]},"469":{"position":[[57,9]]},"482":{"position":[[284,9]]}},"keywords":{}}],["improv",{"_index":478,"title":{},"content":{"51":{"position":[[350,7]]},"317":{"position":[[35,7]]},"338":{"position":[[35,7]]},"396":{"position":[[104,12]]},"397":{"position":[[110,12]]},"415":{"position":[[502,12]]},"438":{"position":[[134,8]]}},"keywords":{}}],["inact",{"_index":1150,"title":{},"content":{"103":{"position":[[1576,9]]},"275":{"position":[[153,9]]},"288":{"position":[[168,8],[665,8],[754,8],[1301,8]]}},"keywords":{}}],["inc",{"_index":951,"title":{},"content":{"82":{"position":[[1600,6],[2073,6]]},"83":{"position":[[1422,6],[1895,6]]}},"keywords":{}}],["inch",{"_index":4055,"title":{},"content":{"511":{"position":[[1079,5],[1191,5],[1249,5],[1316,5]]},"515":{"position":[[1062,5],[1174,5],[1232,5],[1299,5]]}},"keywords":{}}],["incid",{"_index":4077,"title":{},"content":{"511":{"position":[[1687,8]]},"515":{"position":[[1670,8]]}},"keywords":{}}],["includ",{"_index":439,"title":{},"content":{"48":{"position":[[535,7]]},"51":{"position":[[548,8]]},"70":{"position":[[246,7]]},"130":{"position":[[5284,8]]},"222":{"position":[[486,9]]},"244":{"position":[[1056,8],[1383,8]]},"246":{"position":[[447,8]]},"357":{"position":[[1218,9],[1350,8]]},"360":{"position":[[135,7],[583,8]]},"422":{"position":[[167,8]]},"429":{"position":[[286,8]]},"501":{"position":[[164,9]]},"503":{"position":[[244,7],[371,7]]},"511":{"position":[[1360,10]]},"515":{"position":[[1343,10]]}},"keywords":{}}],["incom",{"_index":424,"title":{},"content":{"47":{"position":[[1124,8]]}},"keywords":{}}],["increas",{"_index":1622,"title":{},"content":{"209":{"position":[[293,8]]},"293":{"position":[[645,8]]}},"keywords":{}}],["ind",{"_index":1843,"title":{},"content":{"229":{"position":[[662,4],[695,4]]},"320":{"position":[[2061,3],[2517,3]]}},"keywords":{}}],["index",{"_index":2795,"title":{},"content":{"338":{"position":[[2462,6]]},"365":{"position":[[1135,5]]},"442":{"position":[[77,5]]}},"keywords":{}}],["index.tsx",{"_index":2653,"title":{},"content":{"317":{"position":[[1174,9]]}},"keywords":{}}],["indic",{"_index":2900,"title":{},"content":{"357":{"position":[[898,9],[993,9]]},"385":{"position":[[499,9]]},"429":{"position":[[380,8]]},"456":{"position":[[392,8]]}},"keywords":{}}],["individu",{"_index":1335,"title":{},"content":{"130":{"position":[[883,12],[4963,10],[5022,12]]},"131":{"position":[[82,13]]},"132":{"position":[[71,13]]},"287":{"position":[[538,10]]},"360":{"position":[[639,10],[675,10],[764,10],[856,10]]},"501":{"position":[[69,10]]}},"keywords":{}}],["info",{"_index":1058,"title":{"300":{"position":[[22,4]]}},"content":{"89":{"position":[[1026,4]]},"105":{"position":[[1689,4],[2166,4]]},"117":{"position":[[856,4]]},"213":{"position":[[5,4]]},"244":{"position":[[2156,4]]},"296":{"position":[[45,4]]},"301":{"position":[[133,4]]},"302":{"position":[[151,4]]},"303":{"position":[[125,4]]},"304":{"position":[[137,4]]},"305":{"position":[[131,4]]},"316":{"position":[[1071,4]]},"328":{"position":[[127,4],[390,5],[487,4]]},"329":{"position":[[126,4],[186,5],[290,4]]},"330":{"position":[[110,4],[396,5],[487,4]]},"331":{"position":[[118,4],[434,5],[529,4]]},"332":{"position":[[116,4],[403,5],[497,4]]},"337":{"position":[[840,4]]},"371":{"position":[[188,4]]},"372":{"position":[[152,4]]},"378":{"position":[[2093,4],[2157,4]]},"379":{"position":[[2190,4],[2254,4]]},"382":{"position":[[48,4],[112,4],[877,4]]},"383":{"position":[[54,4],[118,4],[880,4]]},"384":{"position":[[619,4]]},"408":{"position":[[161,4]]},"411":{"position":[[100,4]]},"438":{"position":[[116,4],[171,4]]},"439":{"position":[[173,4]]},"441":{"position":[[154,4]]},"467":{"position":[[5916,4]]}},"keywords":{}}],["inform",{"_index":240,"title":{"455":{"position":[[14,11]]}},"content":{"5":{"position":[[1876,11]]},"47":{"position":[[1033,11]]},"52":{"position":[[146,11]]},"63":{"position":[[63,11]]},"65":{"position":[[61,11]]},"74":{"position":[[182,11]]},"103":{"position":[[158,11]]},"105":{"position":[[238,11],[3367,11],[3426,11],[3485,11],[3539,11],[3594,11]]},"130":{"position":[[4137,11],[4335,11],[5523,11]]},"135":{"position":[[448,11],[620,11]]},"136":{"position":[[227,11]]},"209":{"position":[[533,11],[924,12]]},"215":{"position":[[137,12]]},"245":{"position":[[719,11]]},"246":{"position":[[412,12],[549,11],[896,11],[923,11],[1200,11],[1468,11]]},"251":{"position":[[475,11]]},"252":{"position":[[1303,11]]},"288":{"position":[[1631,11]]},"300":{"position":[[39,11],[219,11]]},"301":{"position":[[235,11],[290,11],[358,11],[427,11],[495,11],[564,12],[622,11],[1048,12],[1115,11],[1457,12],[1528,12],[1869,12],[1939,12],[2279,12],[2352,12]]},"302":{"position":[[262,11],[333,11],[417,11],[502,11],[586,11],[672,12],[747,11],[1189,12],[1272,11],[1630,12],[1717,12],[2116,12],[2202,12],[2600,12],[2689,12]]},"303":{"position":[[362,12],[425,11],[471,11],[550,11],[630,11],[709,11],[790,12],[840,11],[1275,12],[1353,11],[1715,12],[1797,12],[2209,12],[2290,12],[2701,12],[2785,12]]},"304":{"position":[[367,12],[436,11],[493,11],[583,11],[674,11],[764,11],[856,12],[917,11],[1363,12],[1452,11],[1825,12],[1918,12],[2285,12],[2377,12],[2743,12],[2838,12]]},"305":{"position":[[373,12],[439,11],[491,11],[556,11],[622,11],[687,11],[754,12],[810,11],[1233,12],[1297,11],[1636,12],[1704,12],[2102,12],[2169,12],[2566,12],[2636,12]]},"313":{"position":[[85,11]]},"314":{"position":[[85,11]]},"328":{"position":[[618,6]]},"329":{"position":[[415,6]]},"330":{"position":[[607,6]]},"331":{"position":[[637,6]]},"332":{"position":[[603,6]]},"334":{"position":[[85,11]]},"335":{"position":[[85,11]]},"341":{"position":[[399,13],[742,12],[903,11]]},"342":{"position":[[28,11]]},"349":{"position":[[1085,11]]},"357":{"position":[[1160,12]]},"360":{"position":[[99,11]]},"382":{"position":[[958,11],[1009,9],[1074,12]]},"383":{"position":[[961,11],[1012,9],[1077,12]]},"384":{"position":[[700,11],[751,9],[816,12]]},"387":{"position":[[472,11]]},"395":{"position":[[1095,11]]},"396":{"position":[[1210,11]]},"419":{"position":[[564,12]]},"420":{"position":[[365,11]]},"444":{"position":[[254,11]]},"446":{"position":[[182,11]]},"447":{"position":[[226,11]]},"467":{"position":[[1767,11],[2522,11]]},"471":{"position":[[352,11],[392,11]]},"473":{"position":[[975,11],[3037,11]]},"474":{"position":[[1694,12],[1735,12]]},"476":{"position":[[39,11]]},"480":{"position":[[8490,12],[9232,12],[10626,11],[10931,11],[11147,11]]},"488":{"position":[[133,13],[2894,11]]},"490":{"position":[[350,12]]},"512":{"position":[[323,12]]},"523":{"position":[[427,12]]},"525":{"position":[[416,12]]}},"keywords":{}}],["infrar",{"_index":1657,"title":{},"content":{"212":{"position":[[216,8],[449,8]]},"451":{"position":[[498,9]]},"511":{"position":[[1545,8]]},"515":{"position":[[1528,8]]}},"keywords":{}}],["ingest",{"_index":3389,"title":{},"content":{"420":{"position":[[239,8],[441,8]]}},"keywords":{}}],["inherit",{"_index":1269,"title":{},"content":{"111":{"position":[[217,9]]},"114":{"position":[[144,7]]}},"keywords":{}}],["initi",{"_index":2827,"title":{},"content":{"341":{"position":[[495,7]]},"473":{"position":[[0,12],[131,11],[203,10]]}},"keywords":{}}],["initmap",{"_index":3590,"title":{},"content":{"473":{"position":[[184,9]]},"474":{"position":[[374,10]]}},"keywords":{}}],["input",{"_index":466,"title":{"53":{"position":[[0,5]]},"67":{"position":[[7,5]]}},"content":{"51":{"position":[[79,6]]},"74":{"position":[[82,5]]},"473":{"position":[[3723,9]]},"484":{"position":[[235,5],[288,5],[332,5]]}},"keywords":{}}],["insid",{"_index":37,"title":{},"content":{"0":{"position":[[465,6],[1200,6]]},"137":{"position":[[180,6]]},"424":{"position":[[0,6]]},"480":{"position":[[11164,6]]},"485":{"position":[[395,6]]},"487":{"position":[[153,6]]}},"keywords":{}}],["insight",{"_index":1389,"title":{},"content":{"130":{"position":[[2413,7],[2624,8]]}},"keywords":{}}],["instal",{"_index":2581,"title":{},"content":{"313":{"position":[[333,7]]},"314":{"position":[[325,7]]},"322":{"position":[[74,7]]},"334":{"position":[[333,7]]},"335":{"position":[[325,7]]}},"keywords":{}}],["instanc",{"_index":2916,"title":{},"content":{"360":{"position":[[274,9]]}},"keywords":{}}],["instead",{"_index":403,"title":{},"content":{"47":{"position":[[66,7]]},"226":{"position":[[66,7]]},"234":{"position":[[57,7]]},"252":{"position":[[712,7]]},"354":{"position":[[66,7]]},"402":{"position":[[66,7]]},"444":{"position":[[112,8]]}},"keywords":{}}],["instruct",{"_index":473,"title":{},"content":{"51":{"position":[[262,9]]},"422":{"position":[[301,12]]}},"keywords":{}}],["instrument",{"_index":3064,"title":{},"content":{"365":{"position":[[1369,15],[1465,15]]}},"keywords":{}}],["int",{"_index":1578,"title":{},"content":{"144":{"position":[[463,5]]},"151":{"position":[[459,5]]},"158":{"position":[[481,5]]},"165":{"position":[[453,5]]},"172":{"position":[[465,5]]},"179":{"position":[[475,5]]},"186":{"position":[[455,5]]},"193":{"position":[[459,5]]},"200":{"position":[[455,5]]},"207":{"position":[[450,5]]},"290":{"position":[[13,4],[50,4],[197,4]]},"291":{"position":[[13,4],[98,4]]},"298":{"position":[[134,4]]},"362":{"position":[[389,3]]},"364":{"position":[[562,6],[766,6],[791,6]]},"365":{"position":[[661,3],[841,3],[967,3],[1129,3]]},"378":{"position":[[2616,4],[2780,4]]},"379":{"position":[[2665,4],[2817,4]]},"380":{"position":[[2216,3],[2340,4]]},"382":{"position":[[1432,4]]},"383":{"position":[[1423,4]]},"384":{"position":[[1133,4]]},"385":{"position":[[977,4]]}},"keywords":{}}],["integ",{"_index":558,"title":{},"content":{"57":{"position":[[880,7],[945,7]]},"59":{"position":[[1710,7],[1775,7]]},"63":{"position":[[622,7],[687,7]]},"65":{"position":[[241,7],[306,7]]},"70":{"position":[[393,7],[454,7]]},"71":{"position":[[157,7],[222,7]]},"78":{"position":[[185,7],[246,7]]},"79":{"position":[[183,7],[248,7]]},"82":{"position":[[186,7],[247,7]]},"88":{"position":[[264,7],[329,7]]},"220":{"position":[[1096,7],[1130,7]]},"222":{"position":[[708,7]]},"255":{"position":[[239,7],[290,7]]},"260":{"position":[[341,7],[392,7]]},"264":{"position":[[978,7],[1043,7]]},"277":{"position":[[269,7],[319,7]]},"282":{"position":[[231,7],[281,7]]},"346":{"position":[[1239,7],[1304,7]]},"378":{"position":[[2419,7]]},"379":{"position":[[2468,7]]},"380":{"position":[[2019,7]]},"382":{"position":[[404,7]]},"383":{"position":[[407,7]]},"384":{"position":[[146,7]]},"390":{"position":[[733,7],[798,7]]}},"keywords":{}}],["integer).provid",{"_index":2207,"title":{},"content":{"260":{"position":[[208,19]]}},"keywords":{}}],["integer)provid",{"_index":2414,"title":{},"content":{"277":{"position":[[138,18]]}},"keywords":{}}],["integr",{"_index":502,"title":{"254":{"position":[[0,12]]},"255":{"position":[[4,12]]},"495":{"position":[[3,11]]}},"content":{"52":{"position":[[90,12]]},"86":{"position":[[86,12]]},"117":{"position":[[722,12]]},"135":{"position":[[68,11]]},"209":{"position":[[817,9]]},"242":{"position":[[546,9]]},"244":{"position":[[39,9]]},"255":{"position":[[1136,12]]},"303":{"position":[[173,11]]},"304":{"position":[[185,11]]},"305":{"position":[[179,11]]},"337":{"position":[[936,12],[1077,13]]},"343":{"position":[[323,12]]},"387":{"position":[[194,10]]},"418":{"position":[[152,11],[269,9],[562,11]]},"420":{"position":[[192,12],[309,12],[566,12]]},"434":{"position":[[34,11]]},"435":{"position":[[32,12]]},"493":{"position":[[228,9]]},"495":{"position":[[144,9]]},"498":{"position":[[298,9]]},"505":{"position":[[182,11]]}},"keywords":{}}],["integra",{"_index":1388,"title":{},"content":{"130":{"position":[[2403,7],[2457,7],[2542,7],[2637,7]]}},"keywords":{}}],["integrat",{"_index":966,"title":{},"content":{"86":{"position":[[138,13]]}},"keywords":{}}],["integrationnew",{"_index":3416,"title":{},"content":{"434":{"position":[[19,14]]},"435":{"position":[[17,14]]}},"keywords":{}}],["intercept",{"_index":3896,"title":{},"content":{"486":{"position":[[69,9],[182,9]]}},"keywords":{}}],["interest",{"_index":918,"title":{},"content":{"80":{"position":[[391,8]]},"467":{"position":[[3021,10]]}},"keywords":{}}],["intern",{"_index":762,"title":{},"content":{"70":{"position":[[999,13]]},"130":{"position":[[6151,8],[6190,8]]},"242":{"position":[[973,10]]},"349":{"position":[[912,10]]},"395":{"position":[[922,10]]}},"keywords":{}}],["internet",{"_index":3714,"title":{},"content":{"479":{"position":[[188,8],[538,10]]},"481":{"position":[[207,8]]}},"keywords":{}}],["interpret",{"_index":3440,"title":{},"content":{"444":{"position":[[211,12]]}},"keywords":{}}],["intersect",{"_index":1130,"title":{"267":{"position":[[4,12]]}},"content":{"103":{"position":[[547,12],[608,12],[1204,12],[1261,12],[1371,12],[1474,12]]},"105":{"position":[[2719,12]]},"252":{"position":[[921,10]]},"258":{"position":[[796,12]]},"266":{"position":[[71,9],[188,12],[358,13],[395,13],[774,12]]},"267":{"position":[[123,12]]},"287":{"position":[[2616,12]]},"352":{"position":[[126,9]]},"448":{"position":[[147,12]]}},"keywords":{}}],["intersectionthreshold",{"_index":2332,"title":{},"content":{"266":{"position":[[311,21],[572,21],[794,21],[1110,24],[1468,24]]}},"keywords":{}}],["interv",{"_index":1252,"title":{},"content":{"105":{"position":[[2923,8]]},"316":{"position":[[786,8]]},"517":{"position":[[1116,8]]}},"keywords":{}}],["introduct",{"_index":2181,"title":{"256":{"position":[[0,12]]}},"content":{},"keywords":{}}],["invalid",{"_index":1119,"title":{"126":{"position":[[0,10]]}},"content":{"103":{"position":[[81,7]]},"104":{"position":[[71,7]]},"118":{"position":[[963,10]]},"126":{"position":[[104,10]]},"292":{"position":[[141,7],[486,7],[872,7]]},"293":{"position":[[46,7],[184,7],[474,7]]},"366":{"position":[[330,7]]},"451":{"position":[[137,7]]},"467":{"position":[[1382,7]]},"480":{"position":[[2234,7]]},"487":{"position":[[605,8]]}},"keywords":{}}],["invalid_coordin",{"_index":2509,"title":{},"content":{"292":{"position":[[378,18]]}},"keywords":{}}],["invalidli",{"_index":2484,"title":{},"content":{"288":{"position":[[1586,9]]}},"keywords":{}}],["ip",{"_index":105,"title":{},"content":{"3":{"position":[[99,2]]}},"keywords":{}}],["iri",{"_index":1950,"title":{},"content":{"229":{"position":[[2210,6]]}},"keywords":{}}],["irradi",{"_index":4076,"title":{},"content":{"511":{"position":[[1675,11]]},"515":{"position":[[1658,11]]}},"keywords":{}}],["irregular",{"_index":3559,"title":{},"content":{"467":{"position":[[5851,9]]}},"keywords":{}}],["irrevers",{"_index":1792,"title":{},"content":{"223":{"position":[[98,12]]}},"keywords":{}}],["is_dark_mod",{"_index":2602,"title":{},"content":{"314":{"position":[[836,13]]},"317":{"position":[[1629,13]]}},"keywords":{}}],["isdarkmod",{"_index":2622,"title":{},"content":{"316":{"position":[[247,10],[952,11]]},"337":{"position":[[180,10],[717,11]]}},"keywords":{}}],["isdarkmode={is_dark_mod",{"_index":2612,"title":{},"content":{"314":{"position":[[1103,25]]}},"keywords":{}}],["isdarkmode={tru",{"_index":2802,"title":{},"content":{"338":{"position":[[2860,17]]}},"keywords":{}}],["isdarkmode={true/fals",{"_index":2756,"title":{},"content":{"335":{"position":[[847,23]]}},"keywords":{}}],["isjsonstring(field_bounderi",{"_index":3573,"title":{},"content":{"467":{"position":[[6454,31]]}},"keywords":{}}],["isjsonstring(str",{"_index":3571,"title":{},"content":{"467":{"position":[[6346,17]]}},"keywords":{}}],["iso",{"_index":547,"title":{},"content":{"57":{"position":[[518,3],[611,3],[702,3]]},"59":{"position":[[370,3],[507,3],[598,3],[693,3],[784,3],[829,3],[936,3],[1041,3],[1144,3]]},"63":{"position":[[368,3],[442,3]]},"220":{"position":[[438,3],[510,3],[598,3],[696,3]]},"222":{"position":[[592,5]]},"264":{"position":[[725,3],[807,3]]},"287":{"position":[[969,4],[1001,4],[1567,4],[1599,4]]},"289":{"position":[[80,4],[108,4]]},"291":{"position":[[171,4],[203,4]]},"346":{"position":[[560,3],[632,3],[704,3],[774,3]]},"357":{"position":[[538,3],[668,3]]},"365":{"position":[[130,3]]},"390":{"position":[[341,3],[413,3],[483,3]]},"457":{"position":[[21,3]]}},"keywords":{}}],["iso8601",{"_index":1041,"title":{},"content":{"89":{"position":[[546,7],[579,7]]},"511":{"position":[[819,7],[848,7]]},"515":{"position":[[802,7],[831,7]]},"519":{"position":[[1602,9],[3069,9]]},"521":{"position":[[1568,9],[3035,9]]},"523":{"position":[[1790,9],[3257,9]]},"525":{"position":[[1756,9],[3223,9]]}},"keywords":{}}],["isol",{"_index":1644,"title":{},"content":{"210":{"position":[[386,8]]}},"keywords":{}}],["isoxml",{"_index":1420,"title":{},"content":{"130":{"position":[[3513,7]]},"445":{"position":[[53,6]]}},"keywords":{}}],["issu",{"_index":3439,"title":{},"content":{"444":{"position":[[205,5]]}},"keywords":{}}],["it'",{"_index":127,"title":{},"content":{"3":{"position":[[441,4],[537,4]]},"5":{"position":[[195,4]]},"104":{"position":[[607,4]]},"279":{"position":[[72,4]]},"280":{"position":[[89,4]]},"284":{"position":[[76,4]]},"285":{"position":[[93,4]]},"325":{"position":[[123,4]]},"350":{"position":[[618,4]]},"398":{"position":[[629,4]]},"414":{"position":[[55,4]]},"429":{"position":[[58,4]]},"469":{"position":[[52,4]]},"482":{"position":[[279,4]]},"489":{"position":[[88,4],[116,4]]}},"keywords":{}}],["italian",{"_index":1895,"title":{},"content":{"229":{"position":[[1416,8]]}},"keywords":{}}],["item",{"_index":259,"title":{},"content":{"8":{"position":[[292,8]]},"456":{"position":[[420,6]]}},"keywords":{}}],["itemtyp",{"_index":1798,"title":{},"content":{"224":{"position":[[92,9]]}},"keywords":{}}],["itself",{"_index":2123,"title":{},"content":{"251":{"position":[[526,6]]},"426":{"position":[[67,6]]}},"keywords":{}}],["it’",{"_index":96,"title":{},"content":{"3":{"position":[[0,4]]}},"keywords":{}}],["jalapeno",{"_index":1962,"title":{},"content":{"229":{"position":[[2324,10]]}},"keywords":{}}],["japan",{"_index":4027,"title":{},"content":{"510":{"position":[[350,5]]}},"keywords":{}}],["javascript",{"_index":2579,"title":{},"content":{"313":{"position":[[236,10]]},"314":{"position":[[228,10]]},"334":{"position":[[236,10]]},"335":{"position":[[228,10]]}},"keywords":{}}],["jd",{"_index":1349,"title":{},"content":{"130":{"position":[[1399,3],[1568,2]]}},"keywords":{}}],["jd_callback_url",{"_index":2068,"title":{},"content":{"244":{"position":[[850,15]]}},"keywords":{}}],["jd_client_key",{"_index":2064,"title":{},"content":{"244":{"position":[[692,13]]}},"keywords":{}}],["jd_client_secret",{"_index":2067,"title":{},"content":{"244":{"position":[[768,16]]}},"keywords":{}}],["jd_credentials_id",{"_index":2088,"title":{},"content":{"244":{"position":[[2336,17]]},"246":{"position":[[460,17]]}},"keywords":{}}],["jd_response_url",{"_index":2082,"title":{},"content":{"244":{"position":[[1631,16],[1693,15]]}},"keywords":{}}],["jd_token_secret",{"_index":2086,"title":{},"content":{"244":{"position":[[1868,15]]}},"keywords":{}}],["jdl",{"_index":1357,"title":{},"content":{"130":{"position":[[1588,5]]}},"keywords":{}}],["jerusalem",{"_index":1896,"title":{},"content":{"229":{"position":[[1436,10]]}},"keywords":{}}],["jma",{"_index":4026,"title":{},"content":{"510":{"position":[[342,3],[346,3]]},"519":{"position":[[432,4]]},"520":{"position":[[434,4]]},"521":{"position":[[421,4]]},"522":{"position":[[423,4]]}},"keywords":{}}],["john",{"_index":461,"title":{"95":{"position":[[23,4]]},"96":{"position":[[24,4]]},"97":{"position":[[27,4]]},"166":{"position":[[0,4]]},"167":{"position":[[0,4]]},"168":{"position":[[8,4]]},"169":{"position":[[9,4]]},"170":{"position":[[7,4]]},"244":{"position":[[0,4]]},"304":{"position":[[0,4]]},"328":{"position":[[0,4]]},"454":{"position":[[39,4]]}},"content":{"50":{"position":[[275,4]]},"63":{"position":[[112,4],[1741,5]]},"64":{"position":[[608,5]]},"65":{"position":[[110,4]]},"70":{"position":[[65,4],[215,4]]},"72":{"position":[[147,4]]},"78":{"position":[[77,4]]},"80":{"position":[[98,4]]},"82":{"position":[[78,4]]},"83":{"position":[[98,4]]},"92":{"position":[[256,4],[324,4],[397,4]]},"95":{"position":[[68,4]]},"97":{"position":[[112,4],[191,4]]},"168":{"position":[[57,4]]},"169":{"position":[[58,4],[554,4]]},"170":{"position":[[70,4]]},"172":{"position":[[295,5]]},"243":{"position":[[46,4]]},"244":{"position":[[69,4],[191,4],[256,4],[306,4],[416,4],[502,4],[734,4],[816,4],[896,4],[1168,4],[1655,4],[1948,4],[2069,4],[2103,4]]},"246":{"position":[[119,4],[994,4]]},"252":{"position":[[356,4]]},"283":{"position":[[644,4],[753,4]]},"287":{"position":[[2302,4]]},"304":{"position":[[10,4],[107,4],[315,4],[421,4],[478,4],[568,4],[659,4],[749,4],[841,4],[902,4],[1348,4],[1437,4],[1810,4],[1903,4],[2270,4],[2362,4],[2728,4],[2823,4]]},"328":{"position":[[10,4],[97,4],[436,4],[587,4],[777,4]]},"346":{"position":[[464,4]]},"434":{"position":[[356,5]]},"454":{"position":[[63,4],[157,4],[183,4]]},"502":{"position":[[318,4]]},"505":{"position":[[0,4]]}},"keywords":{}}],["johndeer",{"_index":532,"title":{},"content":{"57":{"position":[[234,10]]},"63":{"position":[[235,9],[1518,12]]},"64":{"position":[[385,12]]},"65":{"position":[[748,12]]},"66":{"position":[[375,12]]},"70":{"position":[[375,9],[1068,12]]},"78":{"position":[[167,9],[907,12]]},"80":{"position":[[784,12]]},"82":{"position":[[168,9],[1090,12],[1551,12],[2014,12],[2428,12]]},"83":{"position":[[912,12],[1373,12],[1836,12],[2250,12]]},"95":{"position":[[251,10]]},"96":{"position":[[235,10]]},"130":{"position":[[550,9],[1272,10]]},"239":{"position":[[287,10]]},"255":{"position":[[651,12]]},"260":{"position":[[869,12]]},"264":{"position":[[408,12]]},"269":{"position":[[313,9],[367,9]]},"277":{"position":[[673,12]]},"282":{"position":[[650,12]]},"283":{"position":[[428,12]]},"346":{"position":[[259,10]]},"378":{"position":[[2348,10]]},"379":{"position":[[2399,10]]},"382":{"position":[[335,10]]},"383":{"position":[[338,10]]},"390":{"position":[[269,10]]},"408":{"position":[[139,9]]}},"keywords":{}}],["johndeerecredenti",{"_index":3977,"title":{},"content":{"498":{"position":[[742,23]]},"500":{"position":[[366,23]]},"501":{"position":[[569,23]]},"502":{"position":[[640,23]]},"503":{"position":[[501,23]]}},"keywords":{}}],["jpeg",{"_index":2627,"title":{},"content":{"316":{"position":[[629,4]]},"337":{"position":[[588,4]]}},"keywords":{}}],["js",{"_index":3475,"title":{},"content":{"463":{"position":[[90,3]]}},"keywords":{}}],["json",{"_index":136,"title":{"488":{"position":[[4,4]]}},"content":{"3":{"position":[[562,4]]},"5":{"position":[[1441,5],[1860,4]]},"7":{"position":[[228,4]]},"8":{"position":[[271,4]]},"48":{"position":[[685,5]]},"109":{"position":[[216,4]]},"110":{"position":[[292,4]]},"111":{"position":[[683,4]]},"112":{"position":[[540,4]]},"113":{"position":[[626,4]]},"130":{"position":[[1507,5]]},"140":{"position":[[124,4]]},"147":{"position":[[121,4]]},"154":{"position":[[142,4]]},"161":{"position":[[115,4]]},"168":{"position":[[127,4]]},"175":{"position":[[137,4]]},"182":{"position":[[117,4]]},"189":{"position":[[121,4]]},"196":{"position":[[117,4]]},"203":{"position":[[121,4]]},"242":{"position":[[124,4]]},"248":{"position":[[104,4]]},"252":{"position":[[1117,4]]},"261":{"position":[[276,4]]},"263":{"position":[[1054,4]]},"272":{"position":[[313,4]]},"273":{"position":[[350,4]]},"274":{"position":[[294,4]]},"278":{"position":[[294,4]]},"279":{"position":[[442,4]]},"280":{"position":[[501,4]]},"282":{"position":[[522,4]]},"283":{"position":[[302,4]]},"284":{"position":[[417,4]]},"285":{"position":[[449,4]]},"346":{"position":[[2027,4]]},"353":{"position":[[636,4]]},"423":{"position":[[536,5]]},"424":{"position":[[288,4]]},"473":{"position":[[4389,4]]},"480":{"position":[[6920,4],[7692,4],[8476,4],[9203,4],[10955,4],[11175,4],[12597,4]]},"488":{"position":[[457,7],[958,7],[2985,7]]},"503":{"position":[[386,4]]}},"keywords":{}}],["json.parse(r",{"_index":3923,"title":{},"content":{"488":{"position":[[1044,16]]}},"keywords":{}}],["json.parse(received.dado",{"_index":3807,"title":{},"content":{"480":{"position":[[9897,27]]}},"keywords":{}}],["json.parse(respons",{"_index":3890,"title":{},"content":{"485":{"position":[[509,21]]},"487":{"position":[[855,21]]}},"keywords":{}}],["json.parse(str",{"_index":3572,"title":{},"content":{"467":{"position":[[6389,16]]}},"keywords":{}}],["json.stringify(allimag",{"_index":3922,"title":{},"content":{"488":{"position":[[981,25]]}},"keywords":{}}],["jwt",{"_index":430,"title":{},"content":{"48":{"position":[[128,5]]}},"keywords":{}}],["kale",{"_index":1898,"title":{},"content":{"229":{"position":[[1458,6]]}},"keywords":{}}],["keep",{"_index":1207,"title":{},"content":{"104":{"position":[[2483,4]]},"133":{"position":[[208,7]]},"248":{"position":[[792,4]]},"252":{"position":[[388,4]]},"288":{"position":[[296,5]]},"340":{"position":[[641,4]]},"343":{"position":[[368,4]]},"350":{"position":[[600,4]]},"398":{"position":[[611,4]]},"423":{"position":[[213,4]]},"493":{"position":[[30,4]]},"498":{"position":[[150,4]]},"503":{"position":[[329,7]]}},"keywords":{}}],["kept",{"_index":1147,"title":{},"content":{"103":{"position":[[1536,4]]}},"keywords":{}}],["key",{"_index":123,"title":{"296":{"position":[[4,3]]},"297":{"position":[[22,4]]},"298":{"position":[[23,3]]},"299":{"position":[[23,3]]}},"content":{"3":{"position":[[345,4]]},"5":{"position":[[833,4]]},"104":{"position":[[745,4]]},"130":{"position":[[5130,3],[5475,3]]},"244":{"position":[[727,3]]},"287":{"position":[[51,5],[75,3],[93,3],[140,4],[594,4]]},"296":{"position":[[8,4],[163,4],[177,4],[205,3],[219,4],[247,3],[263,4]]},"297":{"position":[[10,4],[27,4],[268,6],[411,6]]},"298":{"position":[[11,4],[40,4],[354,3],[588,5],[611,6]]},"299":{"position":[[13,4],[42,4]]},"300":{"position":[[149,5]]},"313":{"position":[[632,3],[689,3]]},"314":{"position":[[608,3],[665,3]]},"316":{"position":[[54,3],[444,3]]},"326":{"position":[[129,3]]},"331":{"position":[[306,4],[373,3]]},"334":{"position":[[631,3],[688,3]]},"335":{"position":[[605,3],[662,3]]},"337":{"position":[[54,3],[403,3]]},"346":{"position":[[2041,3]]},"350":{"position":[[443,5]]},"360":{"position":[[789,3],[833,4]]},"362":{"position":[[112,3]]},"365":{"position":[[31,3]]},"398":{"position":[[454,5]]}},"keywords":{}}],["key=bytes('your",{"_index":151,"title":{},"content":{"3":{"position":[[883,15]]}},"keywords":{}}],["keys/aglead",{"_index":2547,"title":{},"content":{"301":{"position":[[256,13],[587,13],[809,14]]}},"keywords":{}}],["keys/agleader/leafwidget",{"_index":2751,"title":{},"content":{"331":{"position":[[914,25]]}},"keywords":{}}],["keys/agleader/{appnam",{"_index":2548,"title":{},"content":{"301":{"position":[[311,23],[380,23],[448,23],[519,23],[1071,23],[1302,24],[1481,23],[1821,24],[1892,23],[2231,24],[2305,23],[2523,24]]},"331":{"position":[[580,23]]}},"keywords":{}}],["keys/climatefieldview",{"_index":2552,"title":{},"content":{"302":{"position":[[283,21],[695,21],[934,22]]}},"keywords":{}}],["keys/climatefieldview/leafwidget",{"_index":2743,"title":{},"content":{"329":{"position":[[720,33]]}},"keywords":{}}],["keys/climatefieldview/{appnam",{"_index":2553,"title":{},"content":{"302":{"position":[[354,31],[439,31],[523,31],[610,31],[1212,31],[1459,32],[1654,31],[2052,32],[2139,31],[2536,32],[2626,31],[2860,32]]},"329":{"position":[[341,31]]}},"keywords":{}}],["keys/cnhi",{"_index":2557,"title":{},"content":{"303":{"position":[[446,9],[813,9],[1027,10]]}},"keywords":{}}],["keys/cnhi/leafwidget/product",{"_index":2747,"title":{},"content":{"330":{"position":[[1086,32]]}},"keywords":{}}],["keys/cnhi/{appname}/{clientenviron",{"_index":2558,"title":{},"content":{"303":{"position":[[492,39],[572,39],[651,39],[733,39],[1298,39],[1540,40],[1739,39],[2150,40],[2232,39],[2642,40],[2727,39],[2956,40]]},"330":{"position":[[538,39]]}},"keywords":{}}],["keys/johndeer",{"_index":2559,"title":{},"content":{"304":{"position":[[457,14],[879,14],[1104,15]]}},"keywords":{}}],["keys/johndeere/leafwidget/product",{"_index":2741,"title":{},"content":{"328":{"position":[[1032,37]]}},"keywords":{}}],["keys/johndeere/{appname}/{clientenviron",{"_index":2560,"title":{},"content":{"304":{"position":[[514,44],[605,44],[695,44],[788,44],[1386,44],[1639,45],[1849,44],[2215,45],[2308,44],[2673,45],[2769,44],[3009,45]]},"328":{"position":[[538,44]]}},"keywords":{}}],["keys/trimbl",{"_index":2561,"title":{},"content":{"305":{"position":[[460,12],[777,12],[997,13]]}},"keywords":{}}],["keys/trimble/leafwidget",{"_index":2753,"title":{},"content":{"332":{"position":[[926,24]]}},"keywords":{}}],["keys/trimble/{appnam",{"_index":2562,"title":{},"content":{"305":{"position":[[512,22],[578,22],[643,22],[711,22],[1256,22],[1484,23],[1660,22],[2057,23],[2125,22],[2521,23],[2592,22],[2807,23]]},"332":{"position":[[548,22]]}},"keywords":{}}],["keys/{apikeyid",{"_index":2543,"title":{},"content":{"299":{"position":[[205,16]]}},"keywords":{}}],["keys?leafuserid={leafuserid",{"_index":2528,"title":{},"content":{"297":{"position":[[205,29]]}},"keywords":{}}],["kg(n)/ha",{"_index":1112,"title":{},"content":{"101":{"position":[[648,8]]}},"keywords":{}}],["kg/ha",{"_index":1107,"title":{},"content":{"101":{"position":[[615,5]]}},"keywords":{}}],["kidney",{"_index":1918,"title":{},"content":{"229":{"position":[[1764,6]]}},"keywords":{}}],["km",{"_index":4015,"title":{},"content":{"510":{"position":[[147,2],[203,2],[266,2],[318,2],[363,2],[428,2]]},"514":{"position":[[120,3],[198,3]]}},"keywords":{}}],["km/h",{"_index":4049,"title":{},"content":{"511":{"position":[[905,4],[975,4]]},"515":{"position":[[888,4],[958,4]]},"519":{"position":[[2068,6],[2578,6]]},"520":{"position":[[2352,6],[3612,6],[3770,6]]},"521":{"position":[[2034,6],[2544,6]]},"522":{"position":[[2318,6],[3578,6],[3736,6]]},"523":{"position":[[2256,6],[2766,6]]},"524":{"position":[[2028,6],[3443,6],[3602,6]]},"525":{"position":[[2222,6],[2732,6]]},"526":{"position":[[1994,6],[3409,6],[3568,6]]}},"keywords":{}}],["know",{"_index":7,"title":{"325":{"position":[[10,4]]}},"content":{"0":{"position":[[31,4],[480,4],[509,4],[1215,4],[1244,4]]},"47":{"position":[[361,4],[938,4]]},"137":{"position":[[231,4]]},"311":{"position":[[78,4]]},"325":{"position":[[141,4]]}},"keywords":{}}],["known",{"_index":30,"title":{},"content":{"0":{"position":[[382,5],[1117,5]]},"233":{"position":[[73,5]]}},"keywords":{}}],["ks/ac",{"_index":1109,"title":{},"content":{"101":{"position":[[626,5]]}},"keywords":{}}],["ks/ha",{"_index":1110,"title":{},"content":{"101":{"position":[[632,5]]}},"keywords":{}}],["kuhn",{"_index":1425,"title":{},"content":{"130":{"position":[[3646,5]]}},"keywords":{}}],["kverneland",{"_index":1426,"title":{},"content":{"130":{"position":[[3711,10]]}},"keywords":{}}],["l.control.layers(basemaps).addto(this.map",{"_index":3705,"title":{},"content":{"474":{"position":[[1405,43]]}},"keywords":{}}],["l.control.sidebar(opt",{"_index":3709,"title":{},"content":{"474":{"position":[[1587,27]]}},"keywords":{}}],["l.geojson(json",{"_index":3650,"title":{},"content":{"473":{"position":[[4884,15]]}},"keywords":{}}],["l.geojsonopt",{"_index":3645,"title":{},"content":{"473":{"position":[[4633,17]]}},"keywords":{}}],["l.imageoverlay(f.url",{"_index":3675,"title":{},"content":{"473":{"position":[[6745,21]]}},"keywords":{}}],["l.layergroup().addto(this.map",{"_index":3702,"title":{},"content":{"474":{"position":[[1263,31],[1309,31]]}},"keywords":{}}],["l.map('map",{"_index":3682,"title":{},"content":{"474":{"position":[[431,12]]}},"keywords":{}}],["l.sidebaropt",{"_index":3707,"title":{},"content":{"474":{"position":[[1485,16]]}},"keywords":{}}],["l.tilelay",{"_index":3687,"title":{},"content":{"474":{"position":[[524,12],[778,12]]}},"keywords":{}}],["l/ha",{"_index":1104,"title":{},"content":{"101":{"position":[[596,4]]}},"keywords":{}}],["l2a",{"_index":1719,"title":{},"content":{"220":{"position":[[1764,5],[2314,3]]},"221":{"position":[[379,5]]}},"keywords":{}}],["label",{"_index":808,"title":{},"content":{"72":{"position":[[840,9],[1273,9],[1295,6]]},"73":{"position":[[563,9],[587,5]]},"74":{"position":[[230,6]]},"82":{"position":[[1251,9],[1727,9],[2205,9]]},"83":{"position":[[1073,9],[1549,9],[2027,9]]}},"keywords":{}}],["labelprovid",{"_index":766,"title":{},"content":{"70":{"position":[[1051,16]]},"72":{"position":[[767,16],[1169,16]]},"73":{"position":[[460,16]]},"82":{"position":[[1073,16],[1534,16],[1997,16]]},"83":{"position":[[895,16],[1356,16],[1819,16]]}},"keywords":{}}],["laird",{"_index":1978,"title":{},"content":{"229":{"position":[[2596,6]]},"320":{"position":[[1506,5]]}},"keywords":{}}],["lanat",{"_index":1874,"title":{},"content":{"229":{"position":[[1100,7]]}},"keywords":{}}],["land",{"_index":2153,"title":{},"content":{"253":{"position":[[391,5]]},"316":{"position":[[596,7],[701,7]]},"337":{"position":[[555,7],[660,7]]},"511":{"position":[[462,5],[575,5],[688,5]]},"514":{"position":[[176,4]]},"515":{"position":[[9,4],[445,5],[558,5],[671,5]]}},"keywords":{}}],["landmark",{"_index":2158,"title":{},"content":{"253":{"position":[[468,9]]}},"keywords":{}}],["landscap",{"_index":2908,"title":{},"content":{"357":{"position":[[1644,10]]}},"keywords":{}}],["larg",{"_index":2829,"title":{},"content":{"341":{"position":[[1124,5]]},"428":{"position":[[234,5]]}},"keywords":{}}],["larger",{"_index":1769,"title":{},"content":{"222":{"position":[[1863,6]]}},"keywords":{}}],["last",{"_index":441,"title":{},"content":{"48":{"position":[[634,5],[709,4]]},"104":{"position":[[691,4]]},"222":{"position":[[410,4]]},"255":{"position":[[354,4]]},"260":{"position":[[456,4]]},"316":{"position":[[938,4]]},"423":{"position":[[485,5],[560,4]]},"456":{"position":[[492,4]]},"468":{"position":[[8,4]]},"481":{"position":[[8,4]]},"512":{"position":[[265,4]]},"523":{"position":[[209,4],[369,4]]},"524":{"position":[[211,4]]},"525":{"position":[[198,4],[358,4]]},"526":{"position":[[200,4]]}},"keywords":{}}],["lastaccessedat",{"_index":3093,"title":{},"content":{"378":{"position":[[819,17],[1655,17]]},"379":{"position":[[885,17],[1738,17]]},"380":{"position":[[804,17],[1585,17]]}},"keywords":{}}],["lat/lon",{"_index":4169,"title":{"521":{"position":[[23,7]]},"522":{"position":[[24,7]]},"525":{"position":[[25,7]]},"526":{"position":[[26,7]]}},"content":{"521":{"position":[[79,7]]},"522":{"position":[[81,7]]},"525":{"position":[[81,7]]},"526":{"position":[[83,7]]}},"keywords":{}}],["lat/long",{"_index":4098,"title":{},"content":{"517":{"position":[[519,8],[592,8],[841,8],[918,8]]}},"keywords":{}}],["later",{"_index":1124,"title":{},"content":{"103":{"position":[[336,5]]},"492":{"position":[[138,5]]}},"keywords":{}}],["latest",{"_index":391,"title":{},"content":{"39":{"position":[[138,6]]}},"keywords":{}}],["layer",{"_index":493,"title":{"52":{"position":[[0,6]]},"85":{"position":[[7,6]]},"87":{"position":[[0,6]]},"88":{"position":[[12,6]]},"89":{"position":[[9,5]]},"489":{"position":[[18,6]]}},"content":{"52":{"position":[[16,6],[103,6]]},"86":{"position":[[16,6],[173,7],[402,6],[465,5]]},"88":{"position":[[53,6]]},"89":{"position":[[57,5],[1040,6]]},"253":{"position":[[1223,6]]},"419":{"position":[[376,6]]},"439":{"position":[[16,6],[63,5]]},"473":{"position":[[3330,6],[4378,6],[4703,5],[4789,5],[4845,5],[6067,7],[6303,6]]},"474":{"position":[[97,6],[127,5],[505,6],[756,6],[1210,6]]},"488":{"position":[[876,7],[1092,6],[2183,5],[2393,5],[2626,5]]}},"keywords":{}}],["layercontrol",{"_index":3704,"title":{},"content":{"474":{"position":[[1390,12]]}},"keywords":{}}],["layernam",{"_index":1057,"title":{},"content":{"89":{"position":[[1012,11]]}},"keywords":{}}],["lb",{"_index":2949,"title":{},"content":{"361":{"position":[[757,4],[1475,4],[2199,4],[2373,4],[2739,4],[2968,4]]},"368":{"position":[[426,5],[443,4]]},"414":{"position":[[902,4],[964,4],[1047,4],[1109,4],[2226,4],[2593,4]]},"416":{"position":[[429,5],[446,4]]}},"keywords":{}}],["lb/ac",{"_index":2963,"title":{},"content":{"361":{"position":[[1051,7],[2134,7],[2437,7],[2679,7]]},"368":{"position":[[337,8],[364,8]]},"414":{"position":[[1225,7],[1343,7],[2291,7],[2533,7]]},"416":{"position":[[340,8],[367,8]]}},"keywords":{}}],["lb/bu",{"_index":2668,"title":{},"content":{"320":{"position":[[219,7]]}},"keywords":{}}],["lbf",{"_index":3057,"title":{},"content":{"365":{"position":[[1183,3]]}},"keywords":{}}],["lbs(n)/ac",{"_index":1111,"title":{},"content":{"101":{"position":[[638,9]]}},"keywords":{}}],["lbs/ac",{"_index":1105,"title":{},"content":{"101":{"position":[[601,6]]}},"keywords":{}}],["leader",{"_index":1559,"title":{},"content":{"140":{"position":[[28,6],[449,6]]},"141":{"position":[[29,6],[508,6]]},"142":{"position":[[31,6],[267,6]]},"144":{"position":[[28,6],[298,6]]}},"keywords":{}}],["leaf",{"_index":89,"title":{"88":{"position":[[25,4]]},"110":{"position":[[4,4]]},"111":{"position":[[7,4]]},"113":{"position":[[7,4]]},"114":{"position":[[7,4]]},"115":{"position":[[0,4]]},"136":{"position":[[0,4]]},"246":{"position":[[0,4]]},"251":{"position":[[0,4]]},"252":{"position":[[5,4]]},"294":{"position":[[0,4]]},"297":{"position":[[8,4]]},"298":{"position":[[9,4]]},"299":{"position":[[9,4]]},"306":{"position":[[0,4]]},"310":{"position":[[18,4]]},"321":{"position":[[0,4]]},"324":{"position":[[18,4]]},"325":{"position":[[19,4]]},"340":{"position":[[33,4]]},"341":{"position":[[9,4]]},"343":{"position":[[9,4]]},"381":{"position":[[16,4]]},"419":{"position":[[37,4]]},"422":{"position":[[0,4]]},"453":{"position":[[0,4]]},"460":{"position":[[23,4]]},"491":{"position":[[0,4]]},"493":{"position":[[10,4]]},"497":{"position":[[0,4]]},"500":{"position":[[8,4]]},"501":{"position":[[6,4]]},"502":{"position":[[9,4]]},"503":{"position":[[9,4]]},"504":{"position":[[9,4]]}},"content":{"2":{"position":[[511,4]]},"3":{"position":[[84,5],[171,4],[633,4],[950,4]]},"5":{"position":[[2175,4]]},"11":{"position":[[56,4]]},"18":{"position":[[96,5]]},"25":{"position":[[93,4]]},"26":{"position":[[73,4]]},"44":{"position":[[282,4]]},"45":{"position":[[283,4]]},"47":{"position":[[118,4],[164,4],[1152,5]]},"48":{"position":[[623,4]]},"51":{"position":[[387,4]]},"57":{"position":[[1838,7],[2295,7]]},"60":{"position":[[552,7]]},"61":{"position":[[703,7]]},"70":{"position":[[82,4]]},"72":{"position":[[200,4],[689,5]]},"75":{"position":[[66,4],[126,4]]},"80":{"position":[[147,4]]},"83":{"position":[[147,4]]},"86":{"position":[[415,4]]},"88":{"position":[[78,4]]},"89":{"position":[[1065,4]]},"103":{"position":[[970,4]]},"104":{"position":[[40,4],[184,4],[1806,4]]},"105":{"position":[[52,4],[125,4],[291,4],[892,4],[1195,4],[2622,5],[2668,4],[2740,4],[3102,4],[3181,4]]},"107":{"position":[[373,4],[432,4],[540,4],[601,4]]},"110":{"position":[[54,4],[333,4]]},"111":{"position":[[62,4],[724,4]]},"113":{"position":[[83,4],[667,4]]},"114":{"position":[[65,4],[129,4]]},"116":{"position":[[4,4],[174,4]]},"117":{"position":[[840,4],[1067,4],[1257,4]]},"123":{"position":[[174,4]]},"124":{"position":[[157,4],[190,4]]},"129":{"position":[[392,4],[418,4],[474,4],[493,4]]},"130":{"position":[[35,5],[523,4],[636,4],[724,4],[1099,4],[5403,4],[6146,4]]},"135":{"position":[[53,5],[201,4],[467,4]]},"136":{"position":[[0,4],[253,4]]},"137":{"position":[[286,4]]},"140":{"position":[[84,4]]},"141":{"position":[[86,4]]},"142":{"position":[[57,4]]},"144":{"position":[[582,4]]},"147":{"position":[[81,4]]},"148":{"position":[[83,4]]},"149":{"position":[[53,4]]},"151":{"position":[[578,4]]},"154":{"position":[[102,4]]},"155":{"position":[[104,4]]},"156":{"position":[[66,4]]},"158":{"position":[[600,4]]},"161":{"position":[[75,4]]},"162":{"position":[[77,4]]},"163":{"position":[[52,4]]},"165":{"position":[[572,4]]},"168":{"position":[[87,4]]},"169":{"position":[[89,4]]},"170":{"position":[[58,4]]},"172":{"position":[[584,4]]},"175":{"position":[[97,4]]},"176":{"position":[[99,4]]},"177":{"position":[[63,4]]},"179":{"position":[[594,4]]},"182":{"position":[[77,4]]},"183":{"position":[[79,4]]},"184":{"position":[[53,4]]},"186":{"position":[[574,4]]},"189":{"position":[[81,4]]},"190":{"position":[[83,4]]},"191":{"position":[[55,4]]},"193":{"position":[[578,4]]},"196":{"position":[[77,4]]},"197":{"position":[[79,4]]},"198":{"position":[[53,4]]},"200":{"position":[[574,4]]},"203":{"position":[[81,4]]},"204":{"position":[[83,4]]},"205":{"position":[[55,4]]},"207":{"position":[[569,4]]},"209":{"position":[[191,5],[209,4]]},"210":{"position":[[0,4]]},"220":{"position":[[652,4],[750,4],[2321,4]]},"222":{"position":[[362,4],[620,4]]},"226":{"position":[[118,4],[164,4]]},"227":{"position":[[0,4]]},"232":{"position":[[179,4]]},"233":{"position":[[1,4],[82,4],[447,4]]},"234":{"position":[[176,4]]},"239":{"position":[[337,4]]},"242":{"position":[[187,4],[445,4],[505,4],[834,4],[896,4],[944,4],[1049,4]]},"244":{"position":[[2129,4]]},"245":{"position":[[1130,4]]},"246":{"position":[[7,4],[57,4],[94,4],[695,4],[718,4],[1129,4],[1153,4],[1226,4],[1360,4],[1400,4],[1420,4],[1492,4]]},"247":{"position":[[119,4],[349,4]]},"248":{"position":[[35,4]]},"251":{"position":[[138,4],[371,5],[674,4],[859,4],[924,5]]},"252":{"position":[[76,4],[117,4],[129,4],[174,4],[369,4],[503,4],[626,5],[807,4],[932,4],[1378,5],[1554,5]]},"253":{"position":[[487,5]]},"261":{"position":[[60,4]]},"264":{"position":[[117,4],[1615,7]]},"265":{"position":[[626,7]]},"269":{"position":[[145,4]]},"270":{"position":[[123,4]]},"277":{"position":[[244,4]]},"282":{"position":[[206,4]]},"287":{"position":[[241,4],[437,4]]},"288":{"position":[[15,4],[291,4],[479,5],[650,5]]},"292":{"position":[[11,4]]},"293":{"position":[[68,4],[114,4]]},"296":{"position":[[58,4],[91,4],[149,4],[191,4],[233,4]]},"297":{"position":[[39,4]]},"298":{"position":[[26,4],[177,4]]},"299":{"position":[[28,4]]},"300":{"position":[[305,4]]},"303":{"position":[[234,4]]},"304":{"position":[[246,4]]},"305":{"position":[[240,4]]},"307":{"position":[[176,4]]},"308":{"position":[[351,4]]},"310":{"position":[[16,4]]},"311":{"position":[[34,4]]},"313":{"position":[[133,4],[273,4],[618,4],[675,4],[701,4]]},"314":{"position":[[130,4],[265,4],[594,4],[651,4],[677,4]]},"316":{"position":[[317,4],[1032,4],[1086,4]]},"317":{"position":[[0,4],[1223,5],[1243,4],[1358,6],[1373,7]]},"322":{"position":[[237,4]]},"324":{"position":[[16,4]]},"325":{"position":[[50,4]]},"326":{"position":[[27,4],[142,4],[179,4]]},"334":{"position":[[133,4],[273,4],[617,4],[674,4],[700,4]]},"335":{"position":[[130,4],[265,4],[591,4],[648,4],[674,4]]},"337":{"position":[[248,4],[801,4],[855,4]]},"338":{"position":[[0,4],[1579,4],[1622,4],[2742,5],[2826,6],[2995,7]]},"340":{"position":[[34,4],[81,5],[305,4],[382,5],[539,4]]},"341":{"position":[[668,4]]},"342":{"position":[[103,5],[320,5]]},"343":{"position":[[104,4]]},"345":{"position":[[575,4],[653,4],[749,4],[831,4],[871,4]]},"346":{"position":[[309,4]]},"350":{"position":[[517,4]]},"353":{"position":[[1026,4]]},"354":{"position":[[118,4],[164,4]]},"355":{"position":[[0,4]]},"360":{"position":[[0,4],[624,4]]},"361":{"position":[[64,4]]},"363":{"position":[[47,4]]},"367":{"position":[[6,4],[124,4]]},"374":{"position":[[92,4]]},"381":{"position":[[36,4],[119,4]]},"382":{"position":[[188,4],[641,4],[721,4],[776,4],[856,4],[948,4]]},"383":{"position":[[191,4],[644,4],[724,4],[779,4],[859,4],[951,4]]},"384":{"position":[[61,4],[383,4],[463,4],[518,4],[598,4],[690,4]]},"385":{"position":[[521,4]]},"387":{"position":[[0,4],[242,5],[370,4]]},"390":{"position":[[326,4]]},"398":{"position":[[528,4]]},"402":{"position":[[118,4],[164,4]]},"403":{"position":[[0,4]]},"406":{"position":[[105,5]]},"408":{"position":[[110,4]]},"410":{"position":[[52,4]]},"414":{"position":[[253,4]]},"418":{"position":[[124,5],[462,4],[624,4]]},"419":{"position":[[643,4]]},"422":{"position":[[88,5],[239,4],[428,4]]},"423":{"position":[[121,4],[474,4]]},"439":{"position":[[109,4]]},"448":{"position":[[96,4],[168,4]]},"450":{"position":[[46,4],[233,4]]},"451":{"position":[[106,4],[378,4]]},"454":{"position":[[138,4],[221,4],[254,4]]},"460":{"position":[[50,4],[133,4],[366,4]]},"464":{"position":[[17,5]]},"467":{"position":[[283,4],[665,4],[1721,4],[2477,4],[2759,4],[5642,4],[5740,4],[6770,4]]},"477":{"position":[[17,5]]},"480":{"position":[[292,4],[354,4],[469,4],[1463,4],[2488,4],[3537,4],[5051,4],[5918,4],[6373,4],[6465,4],[6640,4],[6975,4],[8363,4],[9023,4],[10597,4]]},"484":{"position":[[171,4]]},"485":{"position":[[68,4]]},"487":{"position":[[52,4]]},"492":{"position":[[4,4],[112,5]]},"493":{"position":[[2,4],[144,4],[207,4]]},"495":{"position":[[22,4],[209,4],[268,5]]},"498":{"position":[[21,4],[43,4],[122,4],[248,4],[526,4],[558,4],[1119,4],[1148,4],[1183,4],[1214,4],[1244,4]]},"500":{"position":[[20,4]]},"501":{"position":[[23,4],[80,4]]},"502":{"position":[[23,4],[60,4],[454,4]]},"503":{"position":[[30,4],[278,4]]},"504":{"position":[[40,4]]},"507":{"position":[[5,4]]},"519":{"position":[[101,4]]},"520":{"position":[[103,4]]},"521":{"position":[[90,4]]},"522":{"position":[[92,4]]},"523":{"position":[[103,4]]},"524":{"position":[[105,4]]},"525":{"position":[[92,4]]},"526":{"position":[[94,4]]}},"keywords":{}}],["leaf'",{"_index":49,"title":{"2":{"position":[[11,6]]}},"content":{"2":{"position":[[15,6],[292,6]]},"48":{"position":[[474,6],[600,6]]},"107":{"position":[[46,6],[112,6]]},"209":{"position":[[6,6]]},"232":{"position":[[89,6]]},"242":{"position":[[0,6],[417,6]]},"244":{"position":[[49,6]]},"256":{"position":[[11,6],[69,6]]},"258":{"position":[[46,6],[105,6]]},"288":{"position":[[70,6]]},"307":{"position":[[0,6]]},"319":{"position":[[81,6]]},"322":{"position":[[0,6]]},"359":{"position":[[52,6]]},"365":{"position":[[1666,6]]},"411":{"position":[[31,6]]},"420":{"position":[[455,6]]},"422":{"position":[[257,6]]},"512":{"position":[[0,6]]},"517":{"position":[[46,6],[115,6]]}},"keywords":{}}],["leaf@withleaf.io",{"_index":3233,"title":{},"content":{"411":{"position":[[323,19]]}},"keywords":{}}],["leaf_us",{"_index":2603,"title":{},"content":{"314":{"position":[[872,10]]},"317":{"position":[[1710,10]]}},"keywords":{}}],["leaf_user_id",{"_index":2108,"title":{},"content":{"246":{"position":[[1340,12]]},"480":{"position":[[6163,12],[6531,12]]}},"keywords":{}}],["leaf_user_id=00000000",{"_index":1264,"title":{},"content":{"110":{"position":[[108,21]]},"111":{"position":[[393,21]]},"113":{"position":[[335,21]]},"114":{"position":[[234,21]]}},"keywords":{}}],["leafbatchid",{"_index":2633,"title":{},"content":{"317":{"position":[[225,13],[720,12],[1882,12],[1956,16]]}},"keywords":{}}],["leafclim",{"_index":3375,"title":{},"content":{"419":{"position":[[144,11]]}},"keywords":{}}],["leafcnhi",{"_index":3376,"title":{},"content":{"419":{"position":[[186,8]]}},"keywords":{}}],["leaffieldid",{"_index":999,"title":{},"content":{"88":{"position":[[1220,15],[1805,15]]}},"keywords":{}}],["leaffil",{"_index":1492,"title":{},"content":{"131":{"position":[[724,12]]},"132":{"position":[[704,12]]}},"keywords":{}}],["leaffileid",{"_index":645,"title":{},"content":{"59":{"position":[[2157,10],[2421,13],[2732,13]]},"399":{"position":[[477,13],[582,10]]}},"keywords":{}}],["leafintegr",{"_index":3381,"title":{},"content":{"419":{"position":[[352,15]]}},"keywords":{}}],["leafjohn",{"_index":3377,"title":{},"content":{"419":{"position":[[215,8]]}},"keywords":{}}],["leaflet",{"_index":3474,"title":{},"content":{"463":{"position":[[82,7]]},"473":{"position":[[4370,7]]}},"keywords":{}}],["leafletj",{"_index":3580,"title":{},"content":{"469":{"position":[[95,9]]},"473":{"position":[[4854,10]]},"474":{"position":[[31,9],[1754,10]]}},"keywords":{}}],["leafraven",{"_index":3378,"title":{},"content":{"419":{"position":[[250,9]]}},"keywords":{}}],["leafstara",{"_index":3379,"title":{},"content":{"419":{"position":[[290,9]]}},"keywords":{}}],["leaftrimbl",{"_index":3380,"title":{},"content":{"419":{"position":[[320,11]]}},"keywords":{}}],["leafus",{"_index":670,"title":{"123":{"position":[[4,8]]},"124":{"position":[[9,8]]},"125":{"position":[[7,8]]},"127":{"position":[[7,8]]}},"content":{"60":{"position":[[68,9]]},"61":{"position":[[84,9]]},"118":{"position":[[533,8],[678,8],[818,8],[1102,8]]},"209":{"position":[[839,8]]},"313":{"position":[[714,10]]},"314":{"position":[[690,10]]},"316":{"position":[[297,8],[1018,9]]},"317":{"position":[[980,9]]},"334":{"position":[[713,10]]},"335":{"position":[[687,10]]},"337":{"position":[[228,8],[787,9]]},"338":{"position":[[1332,9]]},"424":{"position":[[44,8]]}},"keywords":{}}],["leafuser=\"your_leaf_us",{"_index":2590,"title":{},"content":{"313":{"position":[[907,25]]},"334":{"position":[[904,25]]}},"keywords":{}}],["leafuser={'myleafus",{"_index":2805,"title":{},"content":{"338":{"position":[[2930,23]]}},"keywords":{}}],["leafuser={leaf_us",{"_index":2616,"title":{},"content":{"314":{"position":[[1217,20]]}},"keywords":{}}],["leafuser={leafuserid",{"_index":2759,"title":{},"content":{"335":{"position":[[926,21]]}},"keywords":{}}],["leafuser]=\"leafus",{"_index":2636,"title":{},"content":{"317":{"position":[[490,21]]},"338":{"position":[[872,21]]}},"keywords":{}}],["leafuserid",{"_index":275,"title":{},"content":{"8":{"position":[[638,17],[1123,17],[1434,15]]},"18":{"position":[[178,13]]},"19":{"position":[[227,13]]},"20":{"position":[[198,13]]},"22":{"position":[[155,13]]},"23":{"position":[[155,13]]},"25":{"position":[[424,13]]},"26":{"position":[[339,13]]},"28":{"position":[[350,13]]},"29":{"position":[[409,13]]},"31":{"position":[[277,13]]},"32":{"position":[[336,13]]},"33":{"position":[[286,13]]},"34":{"position":[[345,13]]},"35":{"position":[[352,13]]},"36":{"position":[[214,13]]},"37":{"position":[[270,13]]},"41":{"position":[[303,13]]},"42":{"position":[[296,13]]},"43":{"position":[[233,13]]},"44":{"position":[[253,13]]},"45":{"position":[[254,13]]},"57":{"position":[[87,11],[1271,11],[1752,13],[2209,13]]},"58":{"position":[[309,13]]},"59":{"position":[[2101,11]]},"60":{"position":[[657,13]]},"61":{"position":[[808,13]]},"63":{"position":[[89,11],[1013,11],[1600,13]]},"64":{"position":[[467,13]]},"65":{"position":[[87,11]]},"70":{"position":[[1161,13]]},"71":{"position":[[771,13]]},"78":{"position":[[841,13]]},"79":{"position":[[798,13],[953,13]]},"80":{"position":[[718,13]]},"82":{"position":[[1384,13],[1861,13],[2338,13],[2441,13]]},"83":{"position":[[1206,13],[1683,13],[2160,13],[2263,13]]},"88":{"position":[[735,13],[1370,13]]},"93":{"position":[[108,11]]},"95":{"position":[[98,11]]},"98":{"position":[[87,11]]},"100":{"position":[[112,11]]},"101":{"position":[[93,11]]},"109":{"position":[[308,13]]},"110":{"position":[[384,13]]},"111":{"position":[[72,11],[775,13]]},"112":{"position":[[632,13]]},"113":{"position":[[93,11],[718,13]]},"114":{"position":[[75,11]]},"124":{"position":[[628,13],[642,15]]},"125":{"position":[[513,13],[527,15]]},"130":{"position":[[441,10],[4707,13],[5628,13]]},"131":{"position":[[626,13]]},"132":{"position":[[606,13]]},"133":{"position":[[481,13]]},"144":{"position":[[107,10]]},"151":{"position":[[105,10]]},"158":{"position":[[116,10]]},"165":{"position":[[102,10]]},"172":{"position":[[108,10]]},"179":{"position":[[113,10]]},"186":{"position":[[103,10]]},"193":{"position":[[105,10]]},"200":{"position":[[103,10]]},"207":{"position":[[105,10]]},"247":{"position":[[320,10]]},"255":{"position":[[664,13],[817,13]]},"260":{"position":[[741,13],[1341,13]]},"262":{"position":[[62,11],[1111,13]]},"263":{"position":[[193,13]]},"264":{"position":[[1623,13]]},"265":{"position":[[634,13]]},"266":{"position":[[1646,13],[2268,13]]},"277":{"position":[[776,13]]},"278":{"position":[[79,11]]},"279":{"position":[[60,11]]},"280":{"position":[[77,11]]},"282":{"position":[[580,13]]},"283":{"position":[[83,11],[358,13]]},"284":{"position":[[64,11]]},"285":{"position":[[81,11]]},"287":{"position":[[834,13],[1438,13]]},"289":{"position":[[271,13]]},"290":{"position":[[139,13]]},"291":{"position":[[36,13]]},"297":{"position":[[290,13],[433,13]]},"298":{"position":[[97,13],[165,11],[462,13]]},"317":{"position":[[999,13]]},"338":{"position":[[1351,13]]},"346":{"position":[[1662,11]]},"352":{"position":[[241,10]]},"353":{"position":[[465,11]]},"361":{"position":[[573,13]]},"378":{"position":[[865,13],[1701,13],[3134,13]]},"379":{"position":[[931,13],[1784,13],[3167,13]]},"380":{"position":[[850,13],[1631,13],[2659,13]]},"382":{"position":[[1767,13]]},"383":{"position":[[1755,13]]},"384":{"position":[[1433,13]]},"390":{"position":[[1124,11],[1550,13]]},"391":{"position":[[312,13]]},"411":{"position":[[343,13]]},"480":{"position":[[6519,11]]}},"keywords":{}}],["leafuserid'",{"_index":1085,"title":{},"content":{"97":{"position":[[99,12]]}},"keywords":{}}],["leaf’",{"_index":500,"title":{"495":{"position":[[30,6]]}},"content":{"52":{"position":[[75,6]]},"136":{"position":[[197,6]]},"252":{"position":[[1101,6]]},"507":{"position":[[210,6]]},"508":{"position":[[0,6]]}},"keywords":{}}],["learn",{"_index":92,"title":{},"content":{"2":{"position":[[537,5]]},"308":{"position":[[370,5]]}},"keywords":{}}],["leav",{"_index":2395,"title":{},"content":{"268":{"position":[[377,5]]}},"keywords":{}}],["leek",{"_index":1899,"title":{},"content":{"229":{"position":[[1465,6]]}},"keywords":{}}],["left",{"_index":417,"title":{},"content":{"47":{"position":[[680,5]]},"474":{"position":[[1538,7]]},"480":{"position":[[11267,4]]}},"keywords":{}}],["legend",{"_index":3186,"title":{},"content":{"396":{"position":[[405,9],[983,6]]},"415":{"position":[[755,6],[819,9]]}},"keywords":{}}],["lemon",{"_index":1958,"title":{},"content":{"229":{"position":[[2288,8]]}},"keywords":{}}],["length",{"_index":3555,"title":{},"content":{"467":{"position":[[5074,6]]},"510":{"position":[[75,6]]}},"keywords":{}}],["lentil",{"_index":1816,"title":{},"content":{"229":{"position":[[192,9],[2539,7],[2556,7],[2571,7],[2588,7]]},"320":{"position":[[1438,6],[1459,6],[1480,6],[1499,6],[1518,7]]}},"keywords":{}}],["less",{"_index":1706,"title":{},"content":{"220":{"position":[[840,4]]},"413":{"position":[[385,4]]},"467":{"position":[[4579,4]]},"512":{"position":[[175,4]]},"523":{"position":[[279,4]]},"525":{"position":[[268,4]]}},"keywords":{}}],["lesser",{"_index":640,"title":{},"content":{"59":{"position":[[1525,6]]}},"keywords":{}}],["lessthandistancevalu",{"_index":639,"title":{},"content":{"59":{"position":[[1420,21]]}},"keywords":{}}],["let'",{"_index":1760,"title":{},"content":{"222":{"position":[[841,5]]},"246":{"position":[[729,5]]},"424":{"position":[[81,5]]},"425":{"position":[[6,5]]},"428":{"position":[[330,5]]},"429":{"position":[[310,5],[429,5]]},"430":{"position":[[9,5]]}},"keywords":{}}],["lettuc",{"_index":1858,"title":{},"content":{"229":{"position":[[908,8],[1472,9]]}},"keywords":{}}],["level",{"_index":508,"title":{},"content":{"52":{"position":[[254,6]]},"70":{"position":[[92,6]]},"72":{"position":[[210,6]]},"80":{"position":[[157,6]]},"83":{"position":[[157,6]]},"116":{"position":[[184,5]]},"117":{"position":[[969,5]]},"251":{"position":[[839,5]]},"253":{"position":[[56,5],[177,5]]},"296":{"position":[[101,6]]},"325":{"position":[[60,5]]},"326":{"position":[[37,6]]},"338":{"position":[[3023,5]]},"365":{"position":[[446,5]]},"418":{"position":[[393,6]]},"507":{"position":[[66,6]]}},"keywords":{}}],["librari",{"_index":2578,"title":{},"content":{"313":{"position":[[216,8],[247,7],[442,7]]},"314":{"position":[[208,8],[239,7]]},"334":{"position":[[216,8],[247,7],[442,7]]},"335":{"position":[[208,8],[239,7]]},"466":{"position":[[133,7]]},"474":{"position":[[41,8]]},"479":{"position":[[130,7],[211,7]]},"480":{"position":[[9973,7],[10750,8],[10970,7]]}},"keywords":{}}],["licens",{"_index":737,"title":{},"content":{"65":{"position":[[890,10]]},"66":{"position":[[517,10]]}},"keywords":{}}],["lie",{"_index":27,"title":{},"content":{"0":{"position":[[359,3],[774,3],[946,3],[1501,3],[1673,3],[1845,3]]}},"keywords":{}}],["light",{"_index":1673,"title":{},"content":{"212":{"position":[[649,5]]}},"keywords":{}}],["lili",{"_index":1949,"title":{},"content":{"229":{"position":[[2203,6]]}},"keywords":{}}],["lima",{"_index":1966,"title":{},"content":{"229":{"position":[[2382,5]]}},"keywords":{}}],["lime",{"_index":476,"title":{},"content":{"51":{"position":[[307,5]]}},"keywords":{}}],["limit",{"_index":1326,"title":{},"content":{"130":{"position":[[281,5],[363,7]]},"222":{"position":[[1837,5]]},"517":{"position":[[1000,7],[1102,7]]}},"keywords":{}}],["line",{"_index":132,"title":{},"content":{"3":{"position":[[524,4]]},"322":{"position":[[111,5]]}},"keywords":{}}],["link",{"_index":427,"title":{"136":{"position":[[5,4]]},"294":{"position":[[5,4]]},"306":{"position":[[17,4]]},"321":{"position":[[42,4]]},"369":{"position":[[6,4]]},"370":{"position":[[24,4]]},"373":{"position":[[23,4]]},"375":{"position":[[6,4]]},"377":{"position":[[6,4]]},"381":{"position":[[6,4]]},"382":{"position":[[24,4]]},"383":{"position":[[31,4]]},"384":{"position":[[27,4]]},"385":{"position":[[0,4]]}},"content":{"48":{"position":[[57,5]]},"103":{"position":[[685,6]]},"135":{"position":[[472,4]]},"136":{"position":[[5,4],[258,4]]},"253":{"position":[[232,6]]},"300":{"position":[[310,5]]},"307":{"position":[[19,4]]},"313":{"position":[[203,4],[360,4],[418,4],[538,4]]},"314":{"position":[[197,4],[355,4],[411,4],[511,4]]},"316":{"position":[[97,4],[360,4]]},"317":{"position":[[5,4],[1271,4],[1526,4]]},"322":{"position":[[44,4]]},"334":{"position":[[203,4],[360,4],[418,4],[537,4]]},"335":{"position":[[197,4],[352,4],[408,4],[507,4]]},"337":{"position":[[97,4]]},"338":{"position":[[5,4],[1607,4],[1848,4],[2781,4]]},"340":{"position":[[310,4]]},"346":{"position":[[2096,4]]},"347":{"position":[[225,4]]},"348":{"position":[[260,4]]},"350":{"position":[[251,4]]},"360":{"position":[[143,5]]},"371":{"position":[[10,4],[112,5]]},"372":{"position":[[10,4]]},"374":{"position":[[10,4]]},"378":{"position":[[10,4],[112,5],[164,4],[232,4],[306,4],[376,5],[424,5],[681,7],[1189,5],[1249,4],[1517,7],[2020,5],[2178,4],[3156,7],[3284,5],[3342,4]]},"379":{"position":[[10,4],[117,5],[182,4],[263,4],[350,4],[432,6],[487,5],[747,7],[1263,5],[1329,4],[1600,7],[2111,5],[2275,4],[3189,7],[3324,5],[3388,4]]},"380":{"position":[[10,4],[99,5],[157,4],[231,4],[311,4],[387,6],[451,6],[666,7],[1146,5],[1221,5],[1447,7],[1922,5],[1999,5],[2681,7],[2812,5],[2885,5]]},"381":{"position":[[78,4],[311,4],[373,4],[437,4]]},"382":{"position":[[133,4],[1789,7]]},"383":{"position":[[139,4],[1777,7]]},"384":{"position":[[51,5],[1455,7]]},"385":{"position":[[4,5],[122,5],[690,5]]},"392":{"position":[[275,4]]},"398":{"position":[[267,4]]},"418":{"position":[[95,4],[629,4]]},"456":{"position":[[435,4],[463,4]]},"460":{"position":[[194,5],[347,5]]},"464":{"position":[[42,4]]},"477":{"position":[[42,4]]},"480":{"position":[[9936,4],[10131,4],[10538,4],[12441,5]]},"487":{"position":[[147,5],[167,7],[814,5]]},"488":{"position":[[365,6],[550,6]]},"502":{"position":[[75,7],[439,4]]}},"keywords":{}}],["link.height",{"_index":3813,"title":{},"content":{"480":{"position":[[10214,11]]}},"keywords":{}}],["link.width",{"_index":3811,"title":{},"content":{"480":{"position":[[10187,10]]}},"keywords":{}}],["link.withleaf.io/{magiclinkid",{"_index":3090,"title":{},"content":{"378":{"position":[[704,32],[1540,32],[3179,32]]},"379":{"position":[[770,32],[1623,32],[3212,32]]},"380":{"position":[[689,32],[1470,32],[2704,32]]},"382":{"position":[[1812,32]]},"383":{"position":[[1800,32]]},"384":{"position":[[1478,32]]}},"keywords":{}}],["link/authent",{"_index":3107,"title":{},"content":{"379":{"position":[[134,19],[451,19],[686,20]]},"381":{"position":[[390,19]]},"383":{"position":[[13,19],[1696,20]]}},"keywords":{}}],["link/authentication/{magiclinkid",{"_index":3108,"title":{},"content":{"379":{"position":[[198,33],[369,33],[1281,33],[1527,34],[3345,33],[3589,34]]}},"keywords":{}}],["link/fil",{"_index":3110,"title":{},"content":{"380":{"position":[[116,9],[173,9],[330,9],[406,9],[608,9],[1164,9],[1377,9],[2833,9],[3044,9]]},"381":{"position":[[454,9]]},"384":{"position":[[13,9],[1377,9]]}},"keywords":{}}],["link/provid",{"_index":3084,"title":{},"content":{"378":{"position":[[129,13],[394,13],[626,14]]},"381":{"position":[[328,13]]},"382":{"position":[[13,13],[1714,14]]}},"keywords":{}}],["link/provider/{magiclinkid",{"_index":3085,"title":{},"content":{"378":{"position":[[180,27],[325,27],[1207,27],[1450,28],[3305,27],[3546,28]]}},"keywords":{}}],["link/users/{leafuserid}/authent",{"_index":3109,"title":{},"content":{"379":{"position":[[280,38],[2130,38],[3089,39]]}},"keywords":{}}],["link/users/{leafuserid}/fil",{"_index":3112,"title":{},"content":{"380":{"position":[[248,28],[1941,28],[2584,28]]}},"keywords":{}}],["link/users/{leafuserid}/provid",{"_index":3086,"title":{},"content":{"378":{"position":[[249,32],[2039,32],[3062,33]]},"385":{"position":[[1252,33]]}},"keywords":{}}],["liquid",{"_index":935,"title":{},"content":{"82":{"position":[[955,9],[1217,9],[2171,9]]},"83":{"position":[[777,9],[1039,9],[1993,9]]}},"keywords":{}}],["liquid_map_*.dat",{"_index":1372,"title":{},"content":{"130":{"position":[[2025,16],[3421,16]]}},"keywords":{}}],["list",{"_index":253,"title":{"10":{"position":[[0,4]]},"94":{"position":[[0,4]]},"96":{"position":[[0,4]]},"99":{"position":[[0,4]]},"227":{"position":[[0,4]]},"355":{"position":[[0,4]]},"403":{"position":[[0,4]]},"407":{"position":[[14,4]]},"454":{"position":[[15,4]]},"485":{"position":[[0,4]]}},"content":{"7":{"position":[[220,4]]},"8":{"position":[[263,4]]},"57":{"position":[[42,4]]},"63":{"position":[[150,7]]},"65":{"position":[[135,7]]},"70":{"position":[[15,4]]},"71":{"position":[[42,4]]},"78":{"position":[[16,4]]},"79":{"position":[[43,4]]},"82":{"position":[[16,4]]},"88":{"position":[[45,4]]},"92":{"position":[[152,4],[231,5],[509,4]]},"94":{"position":[[40,4]]},"96":{"position":[[35,4]]},"99":{"position":[[30,4]]},"104":{"position":[[647,4]]},"107":{"position":[[8,4]]},"130":{"position":[[1008,6]]},"131":{"position":[[198,4]]},"132":{"position":[[187,4]]},"220":{"position":[[2620,4]]},"227":{"position":[[60,4]]},"229":{"position":[[10,4]]},"239":{"position":[[27,4],[169,6]]},"248":{"position":[[83,5],[393,6],[562,6]]},"255":{"position":[[29,4]]},"258":{"position":[[8,4]]},"260":{"position":[[26,4]]},"264":{"position":[[72,4],[229,6],[659,4]]},"266":{"position":[[51,4]]},"267":{"position":[[205,5]]},"272":{"position":[[60,4],[291,4]]},"277":{"position":[[25,4]]},"282":{"position":[[27,4],[502,4]]},"287":{"position":[[1665,6]]},"316":{"position":[[898,4]]},"338":{"position":[[2400,4]]},"346":{"position":[[25,4],[162,6],[2073,4]]},"349":{"position":[[31,4],[829,6]]},"352":{"position":[[57,4]]},"355":{"position":[[55,4]]},"357":{"position":[[10,5]]},"359":{"position":[[77,4]]},"360":{"position":[[454,4],[498,4],[848,4]]},"362":{"position":[[331,4]]},"363":{"position":[[121,4]]},"365":{"position":[[891,4]]},"378":{"position":[[2251,4]]},"390":{"position":[[30,4],[172,6]]},"395":{"position":[[36,4],[839,6]]},"396":{"position":[[38,4]]},"397":{"position":[[43,4]]},"403":{"position":[[55,4]]},"406":{"position":[[43,7]]},"410":{"position":[[75,4]]},"411":{"position":[[52,4]]},"415":{"position":[[1758,4]]},"425":{"position":[[165,4]]},"429":{"position":[[701,4]]},"430":{"position":[[156,4]]},"447":{"position":[[43,4],[106,4]]},"454":{"position":[[39,4]]},"456":{"position":[[28,4]]},"473":{"position":[[2236,4],[3169,4]]},"480":{"position":[[3460,4],[9757,4]]},"484":{"position":[[655,4]]},"485":{"position":[[37,4],[95,4]]},"488":{"position":[[1260,4],[1384,4]]},"517":{"position":[[8,4]]}},"keywords":{}}],["list_webhook",{"_index":3748,"title":{},"content":{"480":{"position":[[3403,16]]},"485":{"position":[[270,16]]}},"keywords":{}}],["listen",{"_index":172,"title":{},"content":{"5":{"position":[[247,6],[328,9],[1515,10],[1997,10]]},"6":{"position":[[350,10]]},"7":{"position":[[351,10]]},"9":{"position":[[210,7]]}},"keywords":{}}],["listwebhook",{"_index":3887,"title":{},"content":{"484":{"position":[[673,15]]},"485":{"position":[[191,14]]}},"keywords":{}}],["live",{"_index":2574,"title":{},"content":{"313":{"position":[[23,4]]},"314":{"position":[[23,4]]},"334":{"position":[[23,4]]},"335":{"position":[[23,4]]},"474":{"position":[[1788,4]]},"490":{"position":[[400,4]]}},"keywords":{}}],["llc",{"_index":804,"title":{},"content":{"72":{"position":[[704,5]]}},"keywords":{}}],["load",{"_index":3412,"title":{},"content":{"429":{"position":[[778,4]]},"473":{"position":[[2132,4],[2950,4]]}},"keywords":{}}],["loadcreatedfield",{"_index":3621,"title":{},"content":{"473":{"position":[[2384,19]]}},"keywords":{}}],["loadfield",{"_index":3626,"title":{},"content":{"473":{"position":[[2664,12]]}},"keywords":{}}],["loadfieldimag",{"_index":3631,"title":{},"content":{"473":{"position":[[3427,17]]}},"keywords":{}}],["loadfields(localstorage.getitem('token",{"_index":3623,"title":{},"content":{"473":{"position":[[2503,43]]}},"keywords":{}}],["loadfields(token",{"_index":3627,"title":{},"content":{"473":{"position":[[2682,17]]}},"keywords":{}}],["loadimag",{"_index":3669,"title":{},"content":{"473":{"position":[[5748,12]]}},"keywords":{}}],["loadimages(fieldid",{"_index":3637,"title":{},"content":{"473":{"position":[[3782,20],[5766,19]]}},"keywords":{}}],["local",{"_index":4108,"title":{},"content":{"519":{"position":[[274,5],[333,5]]},"520":{"position":[[276,5],[335,5]]},"521":{"position":[[263,5],[322,5]]},"522":{"position":[[265,5],[324,5]]},"523":{"position":[[479,5],[538,5]]},"524":{"position":[[278,5],[337,5]]},"525":{"position":[[468,5],[527,5]]},"526":{"position":[[267,5],[326,5]]}},"keywords":{}}],["locale={'local",{"_index":2807,"title":{},"content":{"338":{"position":[[2974,17]]}},"keywords":{}}],["localhost",{"_index":3712,"title":{},"content":{"479":{"position":[[161,9],[491,9]]}},"keywords":{}}],["localstorage.getitem('token",{"_index":3638,"title":{},"content":{"473":{"position":[[3823,31]]}},"keywords":{}}],["localstorage.removeitem('token",{"_index":3597,"title":{},"content":{"473":{"position":[[412,33]]}},"keywords":{}}],["localstorage.setitem('token",{"_index":3616,"title":{},"content":{"473":{"position":[[1833,29]]}},"keywords":{}}],["locat",{"_index":2110,"title":{},"content":{"247":{"position":[[477,11]]},"267":{"position":[[319,8]]},"350":{"position":[[586,9]]},"398":{"position":[[597,9]]},"510":{"position":[[531,8]]}},"keywords":{}}],["lock",{"_index":1310,"title":{},"content":{"122":{"position":[[335,6]]}},"keywords":{}}],["log",{"_index":1356,"title":{},"content":{"130":{"position":[[1580,3]]},"144":{"position":[[62,4],[485,4],[597,4]]},"151":{"position":[[60,4],[481,4],[593,4]]},"158":{"position":[[71,4],[503,4],[615,4]]},"165":{"position":[[57,4],[475,4],[587,4]]},"172":{"position":[[63,4],[487,4],[599,4]]},"179":{"position":[[68,4],[497,4],[609,4]]},"186":{"position":[[58,4],[477,4],[589,4]]},"193":{"position":[[60,4],[481,4],[593,4]]},"200":{"position":[[58,4],[477,4],[589,4]]},"207":{"position":[[60,4],[472,4],[584,4]]},"239":{"position":[[73,6]]},"346":{"position":[[66,6]]},"390":{"position":[[76,6]]}},"keywords":{}}],["logic",{"_index":3585,"title":{},"content":{"471":{"position":[[282,5]]}},"keywords":{}}],["login",{"_index":3503,"title":{"483":{"position":[[0,5]]}},"content":{"467":{"position":[[1053,5],[1188,5],[1229,5],[6041,5]]},"473":{"position":[[888,6],[1719,5],[1962,7]]},"480":{"position":[[2056,5],[2152,5]]},"483":{"position":[[72,6],[192,5],[533,5],[720,5]]}},"keywords":{}}],["login(email",{"_index":3618,"title":{},"content":{"473":{"position":[[1975,12]]}},"keywords":{}}],["loginclick",{"_index":3875,"title":{},"content":{"483":{"position":[[303,12]]}},"keywords":{}}],["logo",{"_index":2620,"title":{},"content":{"316":{"position":[[117,4],[380,4],[562,5]]},"337":{"position":[[117,4],[521,5]]},"385":{"position":[[340,5]]}},"keywords":{}}],["long",{"_index":32,"title":{},"content":{"0":{"position":[[406,4],[1141,4]]},"229":{"position":[[309,5]]},"320":{"position":[[1596,4],[2160,4]]}},"keywords":{}}],["longer",{"_index":313,"title":{},"content":{"9":{"position":[[166,6]]},"16":{"position":[[38,6]]},"26":{"position":[[216,6]]},"29":{"position":[[286,6]]},"32":{"position":[[213,6]]},"34":{"position":[[222,6]]},"140":{"position":[[220,6]]},"144":{"position":[[609,6]]},"147":{"position":[[217,6]]},"151":{"position":[[605,6]]},"154":{"position":[[238,6]]},"158":{"position":[[627,6]]},"161":{"position":[[211,6]]},"165":{"position":[[599,6]]},"168":{"position":[[223,6]]},"172":{"position":[[611,6]]},"175":{"position":[[233,6]]},"179":{"position":[[621,6]]},"182":{"position":[[213,6]]},"186":{"position":[[601,6]]},"189":{"position":[[217,6]]},"193":{"position":[[605,6]]},"196":{"position":[[213,6]]},"200":{"position":[[601,6]]},"203":{"position":[[217,6]]},"207":{"position":[[596,6]]}},"keywords":{}}],["longwav",{"_index":4068,"title":{},"content":{"511":{"position":[[1505,8],[1932,8]]},"515":{"position":[[1488,8],[1915,8]]}},"keywords":{}}],["longwaveradi",{"_index":4066,"title":{},"content":{"511":{"position":[[1482,17]]},"515":{"position":[[1465,17]]},"520":{"position":[[1898,20]]},"522":{"position":[[1864,20]]},"524":{"position":[[1572,20]]},"526":{"position":[[1538,20]]}},"keywords":{}}],["look",{"_index":1779,"title":{},"content":{"222":{"position":[[1987,7]]},"244":{"position":[[1518,5]]},"292":{"position":[[897,5]]},"424":{"position":[[94,4]]},"425":{"position":[[12,4]]},"428":{"position":[[155,7],[336,4]]},"429":{"position":[[323,4]]},"430":{"position":[[22,4]]},"496":{"position":[[10,7]]},"501":{"position":[[57,5]]}},"keywords":{}}],["lost",{"_index":1793,"title":{},"content":{"223":{"position":[[134,5]]}},"keywords":{}}],["lot",{"_index":2097,"title":{},"content":{"245":{"position":[[712,3]]},"428":{"position":[[49,3]]}},"keywords":{}}],["love",{"_index":6,"title":{},"content":{"0":{"position":[[22,4]]}},"keywords":{}}],["lrg",{"_index":2689,"title":{},"content":{"320":{"position":[[702,3]]}},"keywords":{}}],["lucern",{"_index":1900,"title":{},"content":{"229":{"position":[[1482,9]]},"320":{"position":[[1532,7]]}},"keywords":{}}],["lupin",{"_index":1840,"title":{},"content":{"229":{"position":[[504,8],[1492,8]]},"320":{"position":[[1546,6]]}},"keywords":{}}],["m",{"_index":1640,"title":{},"content":{"210":{"position":[[180,1],[187,1],[191,1]]},"357":{"position":[[1514,1],[1596,1],[1692,1],[1747,2],[1791,2]]},"365":{"position":[[259,2],[363,1],[428,1],[564,1],[1342,1],[1436,1]]},"509":{"position":[[294,2]]},"513":{"position":[[295,2]]}},"keywords":{}}],["m)evapotranspirationprecipitationrainrel",{"_index":3992,"title":{},"content":{"509":{"position":[[24,45]]},"513":{"position":[[24,45]]}},"keywords":{}}],["m)short",{"_index":3994,"title":{},"content":{"509":{"position":[[82,7]]},"513":{"position":[[82,7]]}},"keywords":{}}],["m)soil",{"_index":3998,"title":{},"content":{"509":{"position":[[159,6]]},"513":{"position":[[159,6]]}},"keywords":{}}],["m)wind",{"_index":4006,"title":{},"content":{"509":{"position":[[260,6],[277,6]]},"513":{"position":[[261,6],[278,6]]}},"keywords":{}}],["m/",{"_index":2904,"title":{},"content":{"357":{"position":[[1414,3]]},"365":{"position":[[798,3]]},"413":{"position":[[399,3]]}},"keywords":{}}],["m2",{"_index":3005,"title":{},"content":{"361":{"position":[[2554,4],[3085,4]]},"368":{"position":[[145,5]]},"414":{"position":[[682,4],[2408,4]]},"416":{"position":[[148,5]]}},"keywords":{}}],["macadamia",{"_index":1983,"title":{},"content":{"229":{"position":[[2656,11]]},"320":{"position":[[1556,9]]}},"keywords":{}}],["machin",{"_index":337,"title":{"27":{"position":[[0,7]]},"41":{"position":[[4,7]]},"42":{"position":[[8,7]]},"43":{"position":[[8,7]]},"50":{"position":[[0,8]]},"57":{"position":[[8,8]]},"58":{"position":[[6,7]]},"59":{"position":[[4,7]]},"60":{"position":[[9,7]]},"61":{"position":[[9,7]]},"62":{"position":[[9,7]]},"84":{"position":[[7,8]]},"104":{"position":[[0,7]]},"339":{"position":[[0,7]]},"340":{"position":[[15,7]]},"341":{"position":[[22,7]]},"342":{"position":[[0,7]]},"344":{"position":[[0,7]]},"358":{"position":[[0,7]]},"360":{"position":[[0,7]]},"361":{"position":[[0,7]]},"368":{"position":[[0,7]]}},"content":{"11":{"position":[[536,7],[924,8],[941,8],[958,8]]},"25":{"position":[[48,7]]},"41":{"position":[[30,7],[293,9]]},"42":{"position":[[26,7],[277,7]]},"43":{"position":[[26,7],[215,7]]},"50":{"position":[[32,7]]},"51":{"position":[[274,7]]},"56":{"position":[[81,8],[129,7],[186,7],[260,7],[311,7],[375,7]]},"57":{"position":[[50,8],[157,9],[212,7],[326,7],[385,8],[740,8]]},"58":{"position":[[77,7]]},"59":{"position":[[75,7],[108,7],[178,7],[286,8]]},"60":{"position":[[45,7]]},"61":{"position":[[61,7],[99,8],[143,7]]},"62":{"position":[[62,7],[80,8],[124,7]]},"71":{"position":[[74,7]]},"79":{"position":[[76,7]]},"104":{"position":[[2359,7]]},"105":{"position":[[144,7],[681,7]]},"116":{"position":[[102,7]]},"117":{"position":[[1222,7]]},"133":{"position":[[749,7]]},"135":{"position":[[19,7],[578,7]]},"136":{"position":[[154,7]]},"242":{"position":[[92,7]]},"251":{"position":[[229,7],[424,7],[467,7],[709,9]]},"252":{"position":[[305,7],[1276,7]]},"307":{"position":[[83,7]]},"340":{"position":[[0,7],[357,7],[575,7]]},"341":{"position":[[69,7],[307,7]]},"342":{"position":[[0,7]]},"357":{"position":[[68,7]]},"361":{"position":[[3154,10]]},"365":{"position":[[323,7],[633,7],[811,7],[929,7]]},"368":{"position":[[65,7]]},"374":{"position":[[71,7]]},"380":{"position":[[25,7]]},"387":{"position":[[617,7]]},"414":{"position":[[2817,10]]},"425":{"position":[[86,7]]},"428":{"position":[[195,7]]},"435":{"position":[[66,7],[120,8]]},"440":{"position":[[11,7]]},"442":{"position":[[126,7]]},"443":{"position":[[11,7]]},"444":{"position":[[16,8],[58,9]]},"445":{"position":[[11,7]]},"446":{"position":[[11,7]]},"447":{"position":[[11,7],[35,7],[98,7],[115,7],[249,8],[344,7]]},"448":{"position":[[11,7]]},"449":{"position":[[16,8],[29,7]]},"450":{"position":[[11,7]]},"451":{"position":[[11,7]]}},"keywords":{}}],["machinecr",{"_index":218,"title":{},"content":{"5":{"position":[[1314,15]]},"41":{"position":[[198,17]]}},"keywords":{}}],["machinedelet",{"_index":220,"title":{},"content":{"5":{"position":[[1346,14]]},"43":{"position":[[124,17]]}},"keywords":{}}],["machineid",{"_index":397,"title":{},"content":{"41":{"position":[[261,12]]},"42":{"position":[[249,12]]},"43":{"position":[[187,12]]},"59":{"position":[[2113,10],[2475,12],[2754,12]]}},"keywords":{}}],["machineinfo",{"_index":3033,"title":{},"content":{"362":{"position":[[339,11]]},"365":{"position":[[899,11]]}},"keywords":{}}],["machineri",{"_index":2119,"title":{},"content":{"251":{"position":[[211,9],[287,9],[504,9]]},"340":{"position":[[215,9]]},"357":{"position":[[1173,9],[1203,9]]},"361":{"position":[[3093,12]]},"362":{"position":[[318,9]]},"364":{"position":[[523,12]]},"365":{"position":[[878,9]]},"414":{"position":[[2664,12]]},"447":{"position":[[175,9]]}},"keywords":{}}],["machineupd",{"_index":219,"title":{},"content":{"5":{"position":[[1330,15]]},"42":{"position":[[186,17]]}},"keywords":{}}],["made",{"_index":514,"title":{},"content":{"53":{"position":[[185,4]]},"460":{"position":[[315,4]]}},"keywords":{}}],["magic",{"_index":3081,"title":{"369":{"position":[[0,5]]},"370":{"position":[[18,5]]},"373":{"position":[[17,5]]},"375":{"position":[[0,5]]},"377":{"position":[[0,5]]},"381":{"position":[[0,5]]},"382":{"position":[[18,5]]},"383":{"position":[[25,5]]},"384":{"position":[[21,5]]}},"content":{"371":{"position":[[4,5]]},"372":{"position":[[4,5]]},"374":{"position":[[4,5]]},"378":{"position":[[106,5],[122,6],[158,5],[173,6],[226,5],[242,6],[300,5],[318,6],[370,5],[387,6],[1183,5],[1200,6],[2014,5],[2032,6],[3278,5],[3298,6]]},"379":{"position":[[111,5],[127,6],[176,5],[191,6],[257,5],[273,6],[344,5],[362,6],[426,5],[444,6],[1257,5],[1274,6],[2105,5],[2123,6],[3318,5],[3338,6]]},"380":{"position":[[93,5],[109,6],[151,5],[166,6],[225,5],[241,6],[305,5],[323,6],[381,5],[399,6],[1140,5],[1157,6],[1916,5],[1934,6],[2806,5],[2826,6]]},"381":{"position":[[72,5],[305,5],[321,6],[367,5],[383,6],[431,5],[447,6]]},"382":{"position":[[6,6]]},"383":{"position":[[6,6]]},"384":{"position":[[6,6]]},"385":{"position":[[684,5]]}},"keywords":{}}],["magiclinkid",{"_index":3088,"title":{},"content":{"378":{"position":[[666,14],[1502,14],[3119,14]]},"379":{"position":[[732,14],[1585,14],[3152,14]]},"380":{"position":[[651,14],[1432,14],[2644,14]]},"382":{"position":[[1752,14]]},"383":{"position":[[1740,14]]},"384":{"position":[[1418,14]]}},"keywords":{}}],["main",{"_index":2524,"title":{"473":{"position":[[0,4]]}},"content":{"293":{"position":[[296,4]]},"480":{"position":[[6,8],[60,4],[85,8]]}},"keywords":{}}],["mainli",{"_index":3202,"title":{},"content":{"396":{"position":[[1152,6]]}},"keywords":{}}],["maintain",{"_index":2483,"title":{},"content":{"288":{"position":[[1548,8]]}},"keywords":{}}],["maiz",{"_index":1886,"title":{},"content":{"229":{"position":[[1258,6]]},"320":{"position":[[1568,5],[1577,5],[1590,5],[1605,5]]}},"keywords":{}}],["major",{"_index":60,"title":{},"content":{"2":{"position":[[91,5]]},"242":{"position":[[86,5]]},"251":{"position":[[205,5]]},"256":{"position":[[145,5]]},"418":{"position":[[187,5]]}},"keywords":{}}],["make",{"_index":19,"title":{},"content":{"0":{"position":[[184,4],[303,4],[718,4],[890,4],[1326,4],[1445,4],[1617,4],[1789,4]]},"48":{"position":[[780,4]]},"57":{"position":[[1368,5],[2091,7],[2544,7]]},"58":{"position":[[571,7]]},"60":{"position":[[191,7],[909,7]]},"61":{"position":[[321,7],[1072,7]]},"63":{"position":[[1107,5],[1733,7]]},"64":{"position":[[600,7]]},"86":{"position":[[106,4]]},"103":{"position":[[660,4]]},"232":{"position":[[75,4]]},"242":{"position":[[403,4]]},"248":{"position":[[155,4]]},"287":{"position":[[296,5]]},"313":{"position":[[584,4]]},"314":{"position":[[560,4]]},"332":{"position":[[211,4]]},"334":{"position":[[583,4]]},"335":{"position":[[557,4]]},"349":{"position":[[926,4]]},"353":{"position":[[259,4]]},"378":{"position":[[2098,4]]},"379":{"position":[[2195,4]]},"382":{"position":[[53,4]]},"383":{"position":[[59,4]]},"387":{"position":[[651,4]]},"395":{"position":[[936,4]]},"423":{"position":[[640,4]]},"447":{"position":[[285,5]]},"449":{"position":[[71,5]]},"467":{"position":[[245,4],[5604,4],[5846,4]]},"468":{"position":[[52,4]]},"473":{"position":[[5035,4]]},"480":{"position":[[1425,4],[2450,4],[4382,4],[5872,4],[8326,4],[9144,4]]},"481":{"position":[[52,4]]},"486":{"position":[[111,4],[577,4]]},"488":{"position":[[2042,4]]}},"keywords":{}}],["makerofmachin",{"_index":599,"title":{},"content":{"57":{"position":[[2099,17],[2552,17]]},"58":{"position":[[579,17]]},"60":{"position":[[199,17],[917,17]]}},"keywords":{}}],["makerofmachineupd",{"_index":692,"title":{},"content":{"61":{"position":[[329,24],[1080,24]]}},"keywords":{}}],["manag",{"_index":1115,"title":{"103":{"position":[[15,10]]},"228":{"position":[[15,10]]},"230":{"position":[[15,10]]},"231":{"position":[[15,10]]},"257":{"position":[[15,10]]}},"content":{"209":{"position":[[769,10]]},"232":{"position":[[295,6]]},"253":{"position":[[349,7]]},"316":{"position":[[509,7]]},"326":{"position":[[239,6]]},"337":{"position":[[468,7]]},"419":{"position":[[653,6]]},"434":{"position":[[141,10]]}},"keywords":{}}],["managementuri",{"_index":3227,"title":{},"content":{"408":{"position":[[556,16],[766,16]]}},"keywords":{}}],["mandatori",{"_index":2545,"title":{},"content":{"300":{"position":[[234,9]]},"381":{"position":[[154,9]]}},"keywords":{}}],["mani",{"_index":1235,"title":{},"content":{"105":{"position":[[1945,4]]},"220":{"position":[[1142,4]]},"222":{"position":[[688,4]]},"242":{"position":[[561,4]]},"288":{"position":[[34,4]]},"411":{"position":[[624,4]]},"420":{"position":[[530,4]]}},"keywords":{}}],["manual",{"_index":332,"title":{"24":{"position":[[0,6]]},"128":{"position":[[0,6]]},"134":{"position":[[0,6]]},"268":{"position":[[12,8]]},"496":{"position":[[16,6]]}},"content":{"11":{"position":[[443,6]]},"28":{"position":[[97,8]]},"29":{"position":[[97,8]]},"103":{"position":[[1067,8]]},"129":{"position":[[431,8]]},"133":{"position":[[720,6]]},"135":{"position":[[84,6],[104,6],[221,6],[507,6],[671,6]]},"137":{"position":[[90,8]]},"234":{"position":[[112,8]]},"258":{"position":[[865,8]]},"263":{"position":[[55,8]]},"269":{"position":[[160,9]]},"287":{"position":[[1876,6],[2685,8]]},"293":{"position":[[460,8]]},"340":{"position":[[69,8],[87,6],[248,6],[495,6]]},"343":{"position":[[340,6]]},"496":{"position":[[31,6]]}},"keywords":{}}],["map",{"_index":505,"title":{"489":{"position":[[14,3]]}},"content":{"52":{"position":[[181,3]]},"104":{"position":[[614,3],[709,3],[750,7]]},"212":{"position":[[604,3],[620,3],[638,3],[660,3],[682,3],[699,3],[721,3]]},"396":{"position":[[1187,3]]},"467":{"position":[[2691,4]]},"469":{"position":[[120,3]]},"471":{"position":[[50,3],[526,4]]},"472":{"position":[[255,4]]},"473":{"position":[[31,4],[147,3],[3417,4],[5044,3],[6063,3],[6654,4]]},"474":{"position":[[75,4],[242,3],[406,3],[1138,5],[1360,4],[1380,3],[1644,3]]},"482":{"position":[[348,3]]},"488":{"position":[[872,3],[1340,4],[2051,3],[2162,4],[2406,4]]},"490":{"position":[[26,4],[94,3],[168,3],[204,6]]}},"keywords":{}}],["map.addlay",{"_index":3952,"title":{},"content":{"488":{"position":[[2487,14]]}},"keywords":{}}],["map.addsourc",{"_index":3950,"title":{},"content":{"488":{"position":[[2229,17]]}},"keywords":{}}],["map.ej",{"_index":3873,"title":{},"content":{"482":{"position":[[191,7]]}},"keywords":{}}],["map.flyto",{"_index":3949,"title":{},"content":{"488":{"position":[[2097,11]]}},"keywords":{}}],["map.getlayoutproperti",{"_index":3963,"title":{},"content":{"489":{"position":[[172,25]]}},"keywords":{}}],["map.on('load",{"_index":3969,"title":{},"content":{"490":{"position":[[310,14]]}},"keywords":{}}],["map.removelay",{"_index":3927,"title":{},"content":{"488":{"position":[[1158,19]]}},"keywords":{}}],["map.removesourc",{"_index":3928,"title":{},"content":{"488":{"position":[[1190,20]]}},"keywords":{}}],["map.setlayoutproperti",{"_index":3957,"title":{},"content":{"488":{"position":[[2651,25]]},"489":{"position":[[255,25],[325,25]]}},"keywords":{}}],["mapbox",{"_index":3679,"title":{},"content":{"474":{"position":[[180,6],[207,6],[283,6],[331,6],[731,6],[749,6],[769,6],[1183,7],[1191,7],[1713,7]]},"482":{"position":[[322,6]]},"490":{"position":[[65,6],[147,6],[369,7]]}},"keywords":{}}],["mapbox.addto(this.map",{"_index":3700,"title":{},"content":{"474":{"position":[[1102,23]]}},"keywords":{}}],["mapbox://styles/mapbox/satellit",{"_index":3967,"title":{},"content":{"490":{"position":[[268,33]]}},"keywords":{}}],["mapboxgl.accesstoken",{"_index":3965,"title":{},"content":{"490":{"position":[[118,20]]}},"keywords":{}}],["mapboxgl.map",{"_index":3966,"title":{},"content":{"490":{"position":[[178,14]]}},"keywords":{}}],["mark",{"_index":3071,"title":{},"content":{"365":{"position":[[1751,7]]}},"keywords":{}}],["marowfat",{"_index":1901,"title":{},"content":{"229":{"position":[[1501,9]]}},"keywords":{}}],["mask",{"_index":1668,"title":{},"content":{"212":{"position":[[557,4]]},"215":{"position":[[17,4]]},"441":{"position":[[39,4],[87,4]]}},"keywords":{}}],["mass",{"_index":2664,"title":{},"content":{"319":{"position":[[189,4]]},"429":{"position":[[406,4]]}},"keywords":{}}],["master",{"_index":891,"title":{},"content":{"78":{"position":[[779,7]]},"80":{"position":[[656,7]]}},"keywords":{}}],["match",{"_index":544,"title":{"74":{"position":[[4,8]]},"75":{"position":[[16,7]]},"76":{"position":[[12,7]]}},"content":{"57":{"position":[[471,5]]},"59":{"position":[[639,5],[732,5]]},"69":{"position":[[205,8],[324,7],[410,7]]},"74":{"position":[[139,5]]},"75":{"position":[[509,5],[640,5]]},"76":{"position":[[360,5]]},"255":{"position":[[131,7],[191,7]]},"260":{"position":[[124,7],[176,7],[233,7],[293,7]]},"277":{"position":[[105,7],[162,7],[220,7]]},"282":{"position":[[120,7],[180,7]]}},"keywords":{}}],["matchdetail",{"_index":851,"title":{},"content":{"74":{"position":[[604,15],[789,15]]},"75":{"position":[[568,15],[703,15]]},"76":{"position":[[423,15]]}},"keywords":{}}],["matchid",{"_index":882,"title":{},"content":{"76":{"position":[[343,10]]}},"keywords":{}}],["math.atan(math.exp",{"_index":3854,"title":{},"content":{"480":{"position":[[11786,19],[11922,19]]}},"keywords":{}}],["math.pi",{"_index":3851,"title":{},"content":{"480":{"position":[[11730,9],[11762,9],[11834,8],[11866,9],[11898,9],[11970,8]]}},"keywords":{}}],["matter",{"_index":2808,"title":{},"content":{"338":{"position":[[3093,6]]}},"keywords":{}}],["matur",{"_index":2167,"title":{},"content":{"253":{"position":[[1102,6]]}},"keywords":{}}],["max",{"_index":299,"title":{},"content":{"8":{"position":[[1730,3]]},"57":{"position":[[985,4]]},"59":{"position":[[1815,4]]},"63":{"position":[[727,4]]},"65":{"position":[[346,4]]},"70":{"position":[[433,4]]},"71":{"position":[[262,4]]},"72":{"position":[[361,4]]},"78":{"position":[[225,4]]},"79":{"position":[[288,4]]},"80":{"position":[[308,4]]},"82":{"position":[[226,4]]},"83":{"position":[[309,4]]},"88":{"position":[[369,4]]},"264":{"position":[[1099,3]]},"346":{"position":[[1344,4]]},"361":{"position":[[838,6],[1017,6],[1125,6],[1441,6],[1539,6],[1631,6],[1743,6],[1861,6],[1981,6],[2099,6],[2286,6],[2934,6]]},"390":{"position":[[838,4]]},"396":{"position":[[455,6],[504,6],[554,6],[605,6],[657,6],[709,6],[761,6]]},"414":{"position":[[498,6],[744,6],[880,6],[1025,6],[1190,6],[1309,6],[1427,6],[1610,6],[1795,6],[1917,6],[2023,6],[2139,6]]},"415":{"position":[[869,6],[918,6],[968,6],[1019,6],[1071,6],[1123,6],[1175,6]]},"456":{"position":[[217,3]]}},"keywords":{}}],["maxcloud",{"_index":1704,"title":{},"content":{"220":{"position":[[772,9]]}},"keywords":{}}],["maximum",{"_index":1328,"title":{},"content":{"130":{"position":[[350,7]]},"341":{"position":[[794,7]]},"349":{"position":[[789,7]]},"378":{"position":[[2545,7]]},"379":{"position":[[2594,7]]},"380":{"position":[[2145,7]]},"382":{"position":[[530,7]]},"383":{"position":[[533,7]]},"384":{"position":[[272,7]]},"395":{"position":[[799,7]]},"511":{"position":[[301,7],[625,7],[910,7],[980,7]]},"515":{"position":[[284,7],[608,7],[893,7],[963,7]]}},"keywords":{}}],["maxresult",{"_index":794,"title":{},"content":{"72":{"position":[[304,10]]},"80":{"position":[[251,10]]},"83":{"position":[[252,10]]}},"keywords":{}}],["maxsoiltemperatur",{"_index":4042,"title":{},"content":{"511":{"position":[[581,18]]},"515":{"position":[[564,18]]},"519":{"position":[[1273,21]]},"521":{"position":[[1239,21]]},"523":{"position":[[1461,21]]},"525":{"position":[[1427,21]]}},"keywords":{}}],["maxtemperatur",{"_index":4039,"title":{},"content":{"511":{"position":[[261,14]]},"515":{"position":[[244,14]]},"519":{"position":[[796,17]]},"521":{"position":[[762,17]]},"523":{"position":[[984,17]]},"525":{"position":[[950,17]]}},"keywords":{}}],["maxusag",{"_index":3095,"title":{},"content":{"378":{"position":[[887,11],[1723,11]]},"379":{"position":[[953,11],[1806,11]]},"380":{"position":[[872,11],[1653,11]]}},"keywords":{}}],["maxwindgust",{"_index":4051,"title":{},"content":{"511":{"position":[[939,12]]},"515":{"position":[[922,12]]},"519":{"position":[[2432,15]]},"521":{"position":[[2398,15]]},"523":{"position":[[2620,15]]},"525":{"position":[[2586,15]]}},"keywords":{}}],["maxwindspe",{"_index":4047,"title":{},"content":{"511":{"position":[[869,12]]},"515":{"position":[[852,12]]},"519":{"position":[[1922,15]]},"521":{"position":[[1888,15]]},"523":{"position":[[2110,15]]},"525":{"position":[[2076,15]]}},"keywords":{}}],["maxzoom",{"_index":3689,"title":{},"content":{"474":{"position":[[593,8],[889,8]]},"490":{"position":[[211,8]]}},"keywords":{}}],["mbba54fb",{"_index":711,"title":{},"content":{"63":{"position":[[1614,9]]},"64":{"position":[[481,9]]}},"keywords":{}}],["md5",{"_index":994,"title":{},"content":{"88":{"position":[[1086,6],[1671,6]]}},"keywords":{}}],["meadow",{"_index":1880,"title":{},"content":{"229":{"position":[[1188,6]]}},"keywords":{}}],["meadowfoam",{"_index":2709,"title":{},"content":{"320":{"position":[[1621,10]]}},"keywords":{}}],["mean",{"_index":412,"title":{},"content":{"47":{"position":[[424,5]]},"105":{"position":[[2031,5],[2139,4]]},"222":{"position":[[612,7]]},"353":{"position":[[354,5]]},"413":{"position":[[720,4]]},"511":{"position":[[112,4],[402,4]]},"515":{"position":[[95,4],[385,4]]}},"keywords":{}}],["meansoiltemperatur",{"_index":4040,"title":{},"content":{"511":{"position":[[357,19]]},"515":{"position":[[340,19]]},"519":{"position":[[952,22]]},"521":{"position":[[918,22]]},"523":{"position":[[1140,22]]},"525":{"position":[[1106,22]]}},"keywords":{}}],["meantemperatur",{"_index":4132,"title":{},"content":{"519":{"position":[[2588,18]]},"521":{"position":[[2554,18]]},"523":{"position":[[2776,18]]},"525":{"position":[[2742,18]]}},"keywords":{}}],["measur",{"_index":1203,"title":{"356":{"position":[[9,11]]}},"content":{"104":{"position":[[2286,11],[2622,11]]},"105":{"position":[[1933,7]]},"357":{"position":[[29,12],[386,11],[486,11],[1811,11]]},"434":{"position":[[321,7]]},"442":{"position":[[194,8]]},"450":{"position":[[111,12]]},"511":{"position":[[48,11]]},"515":{"position":[[31,11]]}},"keywords":{}}],["med",{"_index":2690,"title":{},"content":{"320":{"position":[[721,3]]}},"keywords":{}}],["medium",{"_index":1826,"title":{},"content":{"229":{"position":[[321,7]]},"320":{"position":[[2173,6]]}},"keywords":{}}],["medium)clim",{"_index":2048,"title":{},"content":{"243":{"position":[[57,15]]}},"keywords":{}}],["medium)cnhitrimbl",{"_index":2049,"title":{},"content":{"243":{"position":[[83,19]]}},"keywords":{}}],["mee2000.pdf",{"_index":809,"title":{},"content":{"72":{"position":[[862,14]]}},"keywords":{}}],["meet",{"_index":1020,"title":{},"content":{"89":{"position":[[189,4]]}},"keywords":{}}],["melon",{"_index":1902,"title":{},"content":{"229":{"position":[[1517,7],[2264,7]]}},"keywords":{}}],["mention",{"_index":3241,"title":{},"content":{"414":{"position":[[73,7]]}},"keywords":{}}],["merg",{"_index":329,"title":{"19":{"position":[[4,6]]},"20":{"position":[[0,6]]},"31":{"position":[[0,6]]},"32":{"position":[[0,6]]},"248":{"position":[[0,5]]},"343":{"position":[[14,5]]},"353":{"position":[[0,5]]},"429":{"position":[[11,6]]}},"content":{"11":{"position":[[339,6],[353,6],[651,6],[684,6]]},"19":{"position":[[21,6],[64,6]]},"20":{"position":[[17,6],[108,6]]},"31":{"position":[[35,6],[140,6]]},"32":{"position":[[35,6],[172,6]]},"103":{"position":[[1166,6],[1255,5],[1406,5],[1438,6]]},"105":{"position":[[134,5]]},"131":{"position":[[96,5]]},"132":{"position":[[85,5]]},"135":{"position":[[358,7]]},"233":{"position":[[452,6]]},"248":{"position":[[3,5],[16,7],[148,6],[314,6],[525,6],[779,6],[810,7]]},"252":{"position":[[899,5],[941,5],[1135,5],[1493,6]]},"264":{"position":[[531,8]]},"287":{"position":[[183,6],[234,6],[246,6],[372,6]]},"341":{"position":[[299,7]]},"342":{"position":[[259,6]]},"343":{"position":[[126,5],[267,5],[386,7]]},"345":{"position":[[457,5]]},"346":{"position":[[382,6]]},"353":{"position":[[27,5],[60,5],[377,8],[388,5]]},"360":{"position":[[703,6]]},"387":{"position":[[419,6]]},"401":{"position":[[101,5]]},"428":{"position":[[284,7]]},"429":{"position":[[177,5],[297,6],[336,6],[444,6]]}},"keywords":{}}],["mergedfieldcr",{"_index":363,"title":{},"content":{"19":{"position":[[367,20]]}},"keywords":{}}],["mergedfieldid",{"_index":2243,"title":{},"content":{"260":{"position":[[1219,16]]},"287":{"position":[[59,15],[884,16],[1488,16]]}},"keywords":{}}],["mergedfieldupd",{"_index":366,"title":{},"content":{"20":{"position":[[338,20]]}},"keywords":{}}],["mergedfileprocessingfail",{"_index":212,"title":{},"content":{"5":{"position":[[1136,27]]},"32":{"position":[[487,28]]}},"keywords":{}}],["mergedfileprocessingfinish",{"_index":211,"title":{},"content":{"5":{"position":[[1106,29]]},"31":{"position":[[375,30]]}},"keywords":{}}],["messag",{"_index":114,"title":{},"content":{"3":{"position":[[216,7]]},"5":{"position":[[2290,11]]},"13":{"position":[[69,7],[105,10]]},"15":{"position":[[293,10],[304,8]]},"16":{"position":[[238,10],[249,8]]},"26":{"position":[[381,10]]},"29":{"position":[[451,10]]},"32":{"position":[[378,10]]},"34":{"position":[[387,10]]},"130":{"position":[[5438,8]]},"255":{"position":[[600,10]]},"338":{"position":[[335,8],[385,7],[640,7],[699,7],[2272,8]]},"351":{"position":[[288,10],[353,10],[416,10],[478,10],[538,10],[593,10],[646,10],[706,10],[768,10]]},"399":{"position":[[431,10]]},"459":{"position":[[17,7]]},"467":{"position":[[1033,8],[1213,8],[1366,8],[7100,7]]},"480":{"position":[[5190,7]]},"483":{"position":[[247,7],[696,7]]},"484":{"position":[[710,7]]},"486":{"position":[[724,7]]},"487":{"position":[[518,7],[662,7]]}},"keywords":{}}],["metadata",{"_index":1035,"title":{},"content":{"89":{"position":[[442,8]]},"130":{"position":[[1493,8]]},"212":{"position":[[523,9]]}},"keywords":{}}],["meteofr",{"_index":4021,"title":{},"content":{"510":{"position":[[240,11]]}},"keywords":{}}],["meter",{"_index":1745,"title":{},"content":{"220":{"position":[[2799,7]]},"346":{"position":[[934,7]]},"357":{"position":[[1426,6],[1524,7],[1606,7],[1702,7],[1779,7]]},"365":{"position":[[1304,5]]},"511":{"position":[[144,6],[240,6],[336,6],[1461,6],[1828,6]]},"515":{"position":[[127,6],[223,6],[319,6],[1444,6],[1811,6]]}},"keywords":{}}],["method",{"_index":516,"title":{},"content":{"55":{"position":[[9,7]]},"68":{"position":[[9,7]]},"86":{"position":[[190,7]]},"91":{"position":[[9,7]]},"107":{"position":[[148,7]]},"116":{"position":[[238,7]]},"129":{"position":[[9,7]]},"238":{"position":[[106,7]]},"246":{"position":[[845,6]]},"258":{"position":[[141,7]]},"295":{"position":[[9,7]]},"326":{"position":[[87,7]]},"345":{"position":[[9,7]]},"376":{"position":[[9,7]]},"389":{"position":[[9,7]]},"406":{"position":[[120,7]]},"482":{"position":[[253,6]]},"498":{"position":[[337,7]]},"517":{"position":[[151,7]]}},"keywords":{}}],["metric",{"_index":1205,"title":{},"content":{"104":{"position":[[2416,7]]},"357":{"position":[[309,7],[1506,7],[1588,7],[1684,7]]},"511":{"position":[[101,7],[194,7],[290,7],[391,7],[501,7],[614,7],[897,7],[967,7],[1085,7],[1197,7],[1255,7],[1322,7],[1423,7]]},"515":{"position":[[84,7],[177,7],[273,7],[374,7],[484,7],[597,7],[880,7],[950,7],[1068,7],[1180,7],[1238,7],[1305,7],[1406,7]]},"519":{"position":[[511,7],[534,6]]},"520":{"position":[[513,7],[536,6]]},"521":{"position":[[500,7],[523,6]]},"522":{"position":[[502,7],[525,6]]},"523":{"position":[[697,7],[720,6]]},"524":{"position":[[496,7],[519,6]]},"525":{"position":[[686,7],[709,6]]},"526":{"position":[[485,7],[508,6]]}},"keywords":{}}],["mg",{"_index":958,"title":{},"content":{"82":{"position":[[1985,2]]},"83":{"position":[[1807,2]]}},"keywords":{}}],["mi/hr",{"_index":2967,"title":{},"content":{"361":{"position":[[1159,7]]},"368":{"position":[[382,8]]},"414":{"position":[[530,7]]},"416":{"position":[[385,8]]}},"keywords":{}}],["middl",{"_index":3904,"title":{},"content":{"487":{"position":[[354,6]]}},"keywords":{}}],["mile",{"_index":642,"title":{},"content":{"59":{"position":[[1581,7],[1589,7]]},"222":{"position":[[1951,7]]}},"keywords":{}}],["millet",{"_index":1817,"title":{},"content":{"229":{"position":[[202,8]]},"320":{"position":[[1635,6],[1648,7]]}},"keywords":{}}],["min",{"_index":2953,"title":{},"content":{"361":{"position":[[808,6],[991,6],[1099,6],[1413,6],[1525,6],[1617,6],[1717,6],[1831,6],[1954,6],[2073,6],[2272,6],[2905,6]]},"396":{"position":[[466,6],[515,6],[566,6],[617,6],[669,6],[721,6],[773,6]]},"414":{"position":[[469,6],[731,6],[867,6],[1012,6],[1163,6],[1282,6],[1396,6],[1579,6],[1767,6],[1889,6],[2010,6],[2126,6]]},"415":{"position":[[880,6],[929,6],[980,6],[1031,6],[1083,6],[1135,6],[1187,6]]}},"keywords":{}}],["minarea",{"_index":2845,"title":{},"content":{"346":{"position":[[870,7]]}},"keywords":{}}],["mincoverag",{"_index":1708,"title":{},"content":{"220":{"position":[[882,11]]}},"keywords":{}}],["mind",{"_index":2114,"title":{},"content":{"248":{"position":[[800,4]]},"343":{"position":[[376,4]]},"350":{"position":[[608,4]]},"398":{"position":[[619,4]]}},"keywords":{}}],["minim",{"_index":1551,"title":{},"content":{"136":{"position":[[64,7]]},"322":{"position":[[87,7]]}},"keywords":{}}],["minimum",{"_index":1129,"title":{},"content":{"103":{"position":[[539,7],[1363,7]]},"266":{"position":[[180,7]]},"298":{"position":[[236,7]]},"341":{"position":[[806,7]]},"346":{"position":[[913,7]]},"349":{"position":[[772,7]]},"378":{"position":[[2527,9]]},"379":{"position":[[2576,9]]},"380":{"position":[[2127,9]]},"382":{"position":[[512,9]]},"383":{"position":[[515,9]]},"384":{"position":[[254,9]]},"395":{"position":[[782,7]]},"511":{"position":[[205,7],[512,7]]},"515":{"position":[[188,7],[495,7]]}},"keywords":{}}],["minsoiltemperatur",{"_index":4041,"title":{},"content":{"511":{"position":[[468,18]]},"515":{"position":[[451,18]]},"519":{"position":[[1113,21]]},"521":{"position":[[1079,21]]},"523":{"position":[[1301,21]]},"525":{"position":[[1267,21]]}},"keywords":{}}],["mintemperatur",{"_index":4038,"title":{},"content":{"511":{"position":[[165,14]]},"515":{"position":[[148,14]]},"519":{"position":[[2745,17]]},"521":{"position":[[2711,17]]},"523":{"position":[[2933,17]]},"525":{"position":[[2899,17]]}},"keywords":{}}],["minut",{"_index":2095,"title":{},"content":{"245":{"position":[[608,7]]},"247":{"position":[[268,8]]},"248":{"position":[[866,7]]},"298":{"position":[[269,9]]},"341":{"position":[[572,8]]},"353":{"position":[[987,8]]}},"keywords":{}}],["minzoom",{"_index":3691,"title":{},"content":{"474":{"position":[[606,8]]},"490":{"position":[[224,8]]}},"keywords":{}}],["miscanthu",{"_index":2711,"title":{},"content":{"320":{"position":[[1665,10]]}},"keywords":{}}],["miss",{"_index":325,"title":{"15":{"position":[[12,7]]}},"content":{"11":{"position":[[263,7]]},"111":{"position":[[187,7]]}},"keywords":{}}],["mistak",{"_index":3407,"title":{},"content":{"429":{"position":[[49,8]]}},"keywords":{}}],["mix",{"_index":921,"title":{"81":{"position":[[5,5]]},"82":{"position":[[13,5]]},"83":{"position":[[16,5]]}},"content":{"81":{"position":[[34,5],[71,5]]},"82":{"position":[[29,5]]},"83":{"position":[[39,5],[89,3],[217,3]]},"229":{"position":[[1051,4],[2907,4]]},"320":{"position":[[576,3],[1162,3]]},"511":{"position":[[754,6]]},"515":{"position":[[737,6]]}},"keywords":{}}],["mm",{"_index":354,"title":{},"content":{"15":{"position":[[435,2]]},"16":{"position":[[378,2]]},"18":{"position":[[281,2]]},"19":{"position":[[330,2]]},"20":{"position":[[301,2]]},"22":{"position":[[310,2]]},"23":{"position":[[310,2]]},"25":{"position":[[485,2]]},"26":{"position":[[453,2]]},"28":{"position":[[411,2]]},"29":{"position":[[523,2]]},"31":{"position":[[338,2]]},"32":{"position":[[450,2]]},"33":{"position":[[347,2]]},"34":{"position":[[459,2]]},"35":{"position":[[413,2]]},"36":{"position":[[275,2]]},"37":{"position":[[370,2]]},"39":{"position":[[367,2]]},"41":{"position":[[235,2]]},"42":{"position":[[223,2]]},"43":{"position":[[161,2]]},"44":{"position":[[181,2]]},"45":{"position":[[177,2]]},"59":{"position":[[2794,2],[2829,2]]},"140":{"position":[[537,2]]},"141":{"position":[[632,2]]},"144":{"position":[[383,2]]},"147":{"position":[[532,2]]},"148":{"position":[[659,2]]},"151":{"position":[[379,2]]},"154":{"position":[[564,2]]},"155":{"position":[[622,2]]},"158":{"position":[[401,2]]},"161":{"position":[[523,2]]},"162":{"position":[[715,2]]},"165":{"position":[[373,2]]},"168":{"position":[[541,2]]},"169":{"position":[[648,2]]},"172":{"position":[[385,2]]},"175":{"position":[[556,2]]},"176":{"position":[[611,2]]},"179":{"position":[[395,2]]},"182":{"position":[[526,2]]},"183":{"position":[[577,2]]},"186":{"position":[[375,2]]},"189":{"position":[[532,2]]},"190":{"position":[[587,2]]},"193":{"position":[[379,2]]},"196":{"position":[[526,2]]},"197":{"position":[[629,2]]},"200":{"position":[[375,2]]},"203":{"position":[[532,2]]},"204":{"position":[[545,2]]},"207":{"position":[[376,2]]},"222":{"position":[[604,2]]},"357":{"position":[[609,2],[739,2]]},"411":{"position":[[384,2],[421,2],[462,2]]},"457":{"position":[[96,2]]},"511":{"position":[[1093,2],[1205,2],[1330,2]]},"515":{"position":[[1076,2],[1188,2],[1313,2]]},"519":{"position":[[2230,4],[2424,4]]},"520":{"position":[[935,4],[2502,4],[2662,4],[3153,4]]},"521":{"position":[[2196,4],[2390,4]]},"522":{"position":[[901,4],[2468,4],[2628,4],[3119,4]]},"523":{"position":[[2102,4],[2418,4],[2612,4]]},"524":{"position":[[920,4],[2178,4],[2338,4],[2827,4]]},"525":{"position":[[2068,4],[2384,4],[2578,4]]},"526":{"position":[[886,4],[2144,4],[2304,4],[2793,4]]}},"keywords":{}}],["mode",{"_index":1122,"title":{},"content":{"103":{"position":[[267,5]]},"287":{"position":[[1050,5],[1164,5],[1189,4],[1852,5],[2066,5]]},"316":{"position":[[292,4],[1011,5]]},"337":{"position":[[223,4],[742,4]]}},"keywords":{}}],["model",{"_index":572,"title":{"511":{"position":[[24,5]]},"515":{"position":[[24,5]]}},"content":{"57":{"position":[[1361,6],[2069,8],[2522,8]]},"58":{"position":[[549,8]]},"60":{"position":[[169,8],[887,8]]},"61":{"position":[[292,8],[1043,8]]},"63":{"position":[[1100,6],[1712,8]]},"64":{"position":[[579,8]]},"105":{"position":[[741,5]]},"130":{"position":[[1303,5],[1800,5],[2143,5],[2320,5],[2778,5],[3218,5]]},"447":{"position":[[278,6]]},"449":{"position":[[64,6]]},"510":{"position":[[8,5],[564,6]]},"514":{"position":[[11,5]]},"519":{"position":[[390,5],[404,5]]},"520":{"position":[[392,5],[406,5]]},"521":{"position":[[379,5],[393,5]]},"522":{"position":[[381,5],[395,5]]},"523":{"position":[[595,5],[612,5]]},"524":{"position":[[394,5],[411,5]]},"525":{"position":[[584,5],[601,5]]},"526":{"position":[[383,5],[400,5]]}},"keywords":{}}],["modelnam",{"_index":598,"title":{},"content":{"57":{"position":[[2078,12],[2531,12]]},"58":{"position":[[558,12]]},"60":{"position":[[178,12],[896,12]]}},"keywords":{}}],["modelnameupd",{"_index":691,"title":{},"content":{"61":{"position":[[301,19],[1052,19]]}},"keywords":{}}],["modelyear",{"_index":574,"title":{},"content":{"57":{"position":[[1387,9],[2140,12],[2595,12]]},"58":{"position":[[620,12]]},"60":{"position":[[242,12],[960,12]]},"61":{"position":[[377,12],[1128,12]]},"447":{"position":[[304,9]]},"449":{"position":[[90,10]]}},"keywords":{}}],["modul",{"_index":2584,"title":{},"content":{"313":{"position":[[471,6]]},"334":{"position":[[471,6]]}},"keywords":{}}],["moistur",{"_index":2666,"title":{"320":{"position":[[9,8]]}},"content":{"320":{"position":[[13,8],[231,8]]},"346":{"position":[[1107,8]]},"509":{"position":[[189,8]]},"511":{"position":[[1991,8]]},"513":{"position":[[193,8]]},"515":{"position":[[1974,8]]}},"keywords":{}}],["moment",{"_index":1712,"title":{},"content":{"220":{"position":[[1373,6]]},"222":{"position":[[433,6]]}},"keywords":{}}],["monitor",{"_index":342,"title":{"38":{"position":[[5,10]]},"208":{"position":[[5,10]]},"216":{"position":[[5,10]]},"227":{"position":[[13,10]]}},"content":{"11":{"position":[[861,10]]},"39":{"position":[[73,9],[270,9]]},"51":{"position":[[241,10]]},"52":{"position":[[135,10]]},"130":{"position":[[1295,7],[1792,7],[2135,7],[2167,8],[2312,7],[2770,7],[2810,8],[2846,8],[3210,7]]},"209":{"position":[[18,10],[681,10]]},"215":{"position":[[103,10]]},"222":{"position":[[59,9]]},"227":{"position":[[10,10],[73,10]]},"251":{"position":[[724,10]]},"252":{"position":[[1024,8]]},"340":{"position":[[620,7]]},"365":{"position":[[1400,7],[1496,7]]},"399":{"position":[[542,7]]},"401":{"position":[[372,7]]},"419":{"position":[[408,10]]},"430":{"position":[[133,10],[178,9]]},"434":{"position":[[166,10]]},"441":{"position":[[16,10]]},"442":{"position":[[16,10]]},"451":{"position":[[334,10]]},"467":{"position":[[1568,9],[2398,9],[5695,9]]},"473":{"position":[[2147,9],[2268,9]]}},"keywords":{}}],["monitored_field",{"_index":3508,"title":{},"content":{"467":{"position":[[1486,20]]},"473":{"position":[[2914,19]]}},"keywords":{}}],["month",{"_index":1246,"title":{},"content":{"105":{"position":[[2476,7],[2579,6]]}},"keywords":{}}],["more",{"_index":196,"title":{"252":{"position":[[0,4]]},"253":{"position":[[0,4]]}},"content":{"5":{"position":[[748,4]]},"26":{"position":[[111,4]]},"29":{"position":[[181,4]]},"32":{"position":[[101,4]]},"34":{"position":[[106,4]]},"103":{"position":[[153,4]]},"105":{"position":[[233,4],[1684,4],[2093,4],[2161,4],[3362,4],[3421,4],[3480,4],[3534,4],[3589,4]]},"117":{"position":[[851,4]]},"135":{"position":[[443,4],[606,4]]},"136":{"position":[[222,4]]},"137":{"position":[[262,4]]},"209":{"position":[[919,4]]},"213":{"position":[[0,4]]},"215":{"position":[[132,4]]},"222":{"position":[[1446,4]]},"242":{"position":[[869,4]]},"288":{"position":[[1626,4]]},"301":{"position":[[128,4]]},"302":{"position":[[146,4]]},"303":{"position":[[120,4],[357,4]]},"304":{"position":[[132,4],[362,4]]},"305":{"position":[[126,4],[368,4]]},"308":{"position":[[376,4]]},"316":{"position":[[1066,4]]},"325":{"position":[[146,4]]},"328":{"position":[[122,4]]},"329":{"position":[[121,4]]},"330":{"position":[[105,4]]},"331":{"position":[[113,4]]},"332":{"position":[[111,4]]},"337":{"position":[[835,4]]},"341":{"position":[[394,4],[853,5]]},"360":{"position":[[750,4]]},"378":{"position":[[2152,4],[2325,4]]},"379":{"position":[[2249,4]]},"382":{"position":[[107,4]]},"383":{"position":[[113,4]]},"387":{"position":[[467,4]]},"396":{"position":[[1205,4]]},"419":{"position":[[398,4],[559,4]]},"420":{"position":[[4,4],[498,4],[594,4]]},"438":{"position":[[111,4],[166,4]]},"439":{"position":[[168,4]]},"441":{"position":[[149,4]]},"444":{"position":[[249,4]]},"446":{"position":[[177,4]]},"447":{"position":[[221,4]]},"467":{"position":[[5911,4]]},"474":{"position":[[1689,4],[1730,4]]},"490":{"position":[[345,4]]},"496":{"position":[[108,4]]},"498":{"position":[[1008,4]]},"500":{"position":[[640,4]]},"502":{"position":[[592,4]]},"503":{"position":[[453,4]]},"507":{"position":[[91,4]]}},"keywords":{}}],["move",{"_index":964,"title":{},"content":{"84":{"position":[[74,5]]},"228":{"position":[[74,5]]},"230":{"position":[[74,5]]},"235":{"position":[[74,5]]},"236":{"position":[[74,5]]},"240":{"position":[[74,5]]},"249":{"position":[[74,5]]},"338":{"position":[[3186,4]]},"341":{"position":[[10,4]]},"361":{"position":[[8,4]]},"404":{"position":[[74,5]]},"414":{"position":[[197,4]]},"431":{"position":[[74,5]]},"432":{"position":[[74,5]]},"452":{"position":[[74,5]]},"453":{"position":[[74,5]]}},"keywords":{}}],["mph",{"_index":4048,"title":{},"content":{"511":{"position":[[892,4],[962,4]]},"515":{"position":[[875,4],[945,4]]}},"keywords":{}}],["mryt257xpfwx",{"_index":226,"title":{},"content":{"5":{"position":[[1536,15],[2018,15]]},"6":{"position":[[308,15]]},"7":{"position":[[309,15]]}},"keywords":{}}],["much",{"_index":2828,"title":{},"content":{"341":{"position":[[1059,4]]}},"keywords":{}}],["multi",{"_index":565,"title":{},"content":{"57":{"position":[[1044,5]]},"59":{"position":[[1874,5]]},"63":{"position":[[786,5]]},"70":{"position":[[557,5]]},"71":{"position":[[321,5]]},"78":{"position":[[349,5]]},"79":{"position":[[347,5]]},"82":{"position":[[350,5]]},"89":{"position":[[262,5]]},"218":{"position":[[251,5]]},"346":{"position":[[1403,5]]},"390":{"position":[[897,5]]}},"keywords":{}}],["multiband.tif",{"_index":3417,"title":{},"content":{"434":{"position":[[242,14]]}},"keywords":{}}],["multipart/form",{"_index":3775,"title":{},"content":{"480":{"position":[[6336,15]]}},"keywords":{}}],["multipl",{"_index":2468,"title":{},"content":{"287":{"position":[[417,8]]},"360":{"position":[[666,8]]},"378":{"position":[[36,8],[456,8],[1280,8],[2209,8],[3373,8]]},"382":{"position":[[164,8]]},"428":{"position":[[166,8]]},"493":{"position":[[243,8]]}},"keywords":{}}],["multipolygon",{"_index":1682,"title":{},"content":{"218":{"position":[[146,12],[736,15]]},"219":{"position":[[132,12],[420,15]]},"222":{"position":[[1040,15],[1156,12],[2082,15]]},"262":{"position":[[320,16],[628,15],[964,15],[1287,15]]},"263":{"position":[[443,16],[539,15],[912,15]]},"266":{"position":[[134,15],[901,15],[1266,15],[1834,15],[2458,15]]},"267":{"position":[[86,15],[569,15]]},"275":{"position":[[206,15],[541,15],[776,15]]},"288":{"position":[[1784,15]]},"292":{"position":[[835,14]]},"361":{"position":[[3324,15]]},"414":{"position":[[3086,15]]}},"keywords":{}}],["mung",{"_index":1971,"title":{},"content":{"229":{"position":[[2480,5]]},"320":{"position":[[1680,4]]}},"keywords":{}}],["mushroom",{"_index":1903,"title":{},"content":{"229":{"position":[[1525,11]]}},"keywords":{}}],["mustard",{"_index":1818,"title":{},"content":{"229":{"position":[[211,9],[2521,8]]},"320":{"position":[[1696,7],[1712,7]]}},"keywords":{}}],["mycompon",{"_index":2777,"title":{},"content":{"338":{"position":[[1874,11],[2833,12]]}},"keywords":{}}],["myjohndeer",{"_index":1353,"title":{},"content":{"130":{"position":[[1460,11]]}},"keywords":{}}],["m³/m",{"_index":4044,"title":{},"content":{"511":{"position":[[707,5]]},"515":{"position":[[690,5]]},"520":{"position":[[1248,7],[1407,7],[1566,7],[1726,7],[1887,7]]},"522":{"position":[[1214,7],[1373,7],[1532,7],[1692,7],[1853,7]]},"524":{"position":[[1076,7],[1236,7],[1398,7],[1561,7]]},"526":{"position":[[1042,7],[1202,7],[1364,7],[1527,7]]}},"keywords":{}}],["müller",{"_index":1427,"title":{},"content":{"130":{"position":[[3788,6]]}},"keywords":{}}],["n",{"_index":3733,"title":{},"content":{"480":{"position":[[1000,5]]}},"keywords":{}}],["n/a",{"_index":2674,"title":{},"content":{"320":{"position":[[287,3]]}},"keywords":{}}],["name",{"_index":189,"title":{},"content":{"5":{"position":[[504,4],[618,4],[634,4],[1489,7],[1971,7]]},"6":{"position":[[324,7]]},"7":{"position":[[325,7]]},"51":{"position":[[666,7]]},"57":{"position":[[220,4],[1283,5],[1806,7],[2263,7]]},"58":{"position":[[331,7]]},"60":{"position":[[99,7],[367,7],[520,7]]},"61":{"position":[[219,7],[503,7],[668,7]]},"63":{"position":[[504,4],[519,4],[1025,5],[1480,7]]},"64":{"position":[[347,7]]},"65":{"position":[[716,7]]},"66":{"position":[[343,7]]},"70":{"position":[[954,7]]},"71":{"position":[[144,4],[745,7]]},"72":{"position":[[45,5],[273,4],[621,7],[854,7],[1034,7],[1287,7]]},"73":{"position":[[319,7],[577,7]]},"74":{"position":[[536,7],[717,7]]},"75":{"position":[[522,7],[653,7]]},"76":{"position":[[373,7]]},"78":{"position":[[771,7]]},"79":{"position":[[146,4],[170,4],[772,7],[923,7]]},"80":{"position":[[47,5],[220,4],[354,4],[648,7]]},"82":{"position":[[748,7],[1056,7],[1504,7],[1965,7]]},"83":{"position":[[48,5],[221,4],[570,7],[878,7],[1326,7],[1787,7]]},"88":{"position":[[1042,7],[1627,7]]},"89":{"position":[[1004,7]]},"93":{"position":[[266,5],[333,5],[720,7]]},"94":{"position":[[320,7],[352,7]]},"95":{"position":[[437,5],[505,5],[959,7]]},"96":{"position":[[494,7],[526,7]]},"98":{"position":[[333,5],[401,5],[784,7]]},"99":{"position":[[420,7],[452,7]]},"100":{"position":[[270,5],[337,5],[726,7]]},"101":{"position":[[251,5],[482,4],[688,5],[1097,7]]},"104":{"position":[[1870,4]]},"105":{"position":[[334,4]]},"220":{"position":[[2236,4]]},"246":{"position":[[376,6]]},"247":{"position":[[412,4]]},"253":{"position":[[575,5]]},"262":{"position":[[379,4],[574,7],[1347,7]]},"263":{"position":[[264,6],[291,5],[481,7],[855,7]]},"264":{"position":[[602,4]]},"266":{"position":[[2518,7]]},"269":{"position":[[226,4]]},"277":{"position":[[624,7],[632,7]]},"279":{"position":[[178,7],[320,7]]},"280":{"position":[[194,7],[216,6],[345,7]]},"282":{"position":[[561,7]]},"283":{"position":[[339,7],[693,4],[731,4]]},"284":{"position":[[98,4],[152,7],[176,5],[289,7]]},"285":{"position":[[124,4],[178,7],[202,5],[314,7]]},"290":{"position":[[18,7]]},"291":{"position":[[18,7],[235,4],[272,4]]},"316":{"position":[[0,4],[160,4],[667,5]]},"317":{"position":[[92,4]]},"337":{"position":[[0,4],[160,4],[626,5]]},"338":{"position":[[92,4],[2903,6]]},"357":{"position":[[1232,5]]},"361":{"position":[[2747,7],[3110,7],[3216,7]]},"363":{"position":[[65,5]]},"364":{"position":[[645,5]]},"365":{"position":[[921,4]]},"382":{"position":[[629,4],[886,4],[1039,4],[1108,7],[1346,7]]},"383":{"position":[[632,4],[889,4],[1042,4],[1111,7],[1337,7]]},"384":{"position":[[371,4],[628,4],[781,4],[850,7],[1047,7]]},"385":{"position":[[379,5],[531,4]]},"408":{"position":[[525,7],[547,4],[735,7],[757,4]]},"414":{"position":[[2601,7],[2681,7],[2785,7]]},"470":{"position":[[77,6]]},"471":{"position":[[153,6]]},"472":{"position":[[111,6]]},"480":{"position":[[2430,5],[2564,4],[2853,4],[2920,5],[2926,5],[5468,4]]},"484":{"position":[[268,4],[444,5],[450,5]]},"498":{"position":[[599,7]]},"500":{"position":[[223,7]]},"501":{"position":[[426,7]]},"502":{"position":[[135,7],[786,7],[958,7]]},"503":{"position":[[100,7],[660,6],[831,7]]}},"keywords":{}}],["name/*.jdl",{"_index":1351,"title":{},"content":{"130":{"position":[[1425,10]]}},"keywords":{}}],["nameband",{"_index":1650,"title":{},"content":{"212":{"position":[[99,8],[332,8]]}},"keywords":{}}],["nametest",{"_index":612,"title":{},"content":{"57":{"position":[[2271,11]]},"60":{"position":[[107,11],[528,11]]},"262":{"position":[[582,11],[1355,11]]},"266":{"position":[[2526,11]]}},"keywords":{}}],["narcissu",{"_index":1946,"title":{},"content":{"229":{"position":[[2170,11]]}},"keywords":{}}],["nation",{"_index":4008,"title":{},"content":{"510":{"position":[[14,8]]}},"keywords":{}}],["natur",{"_index":2915,"title":{},"content":{"360":{"position":[[199,10]]}},"keywords":{}}],["navi",{"_index":1811,"title":{},"content":{"229":{"position":[[149,5]]},"320":{"position":[[328,4],[1734,4]]}},"keywords":{}}],["ndre",{"_index":1629,"title":{},"content":{"209":{"position":[[462,4]]},"210":{"position":[[421,4]]},"442":{"position":[[27,4],[70,6]]}},"keywords":{}}],["ndvi",{"_index":1628,"title":{},"content":{"209":{"position":[[452,5]]},"210":{"position":[[411,5]]},"220":{"position":[[170,4],[197,4],[2746,5]]},"253":{"position":[[1331,4]]},"430":{"position":[[93,4],[383,4]]}},"keywords":{}}],["ndvi_rel",{"_index":3518,"title":{},"content":{"467":{"position":[[2974,13],[4804,15]]}},"keywords":{}}],["near",{"_index":1656,"title":{},"content":{"212":{"position":[[211,4],[444,4]]},"451":{"position":[[493,4]]}},"keywords":{}}],["necessari",{"_index":1285,"title":{},"content":{"117":{"position":[[649,9],[684,9]]},"130":{"position":[[1169,9]]},"269":{"position":[[388,9]]},"287":{"position":[[1812,9]]},"313":{"position":[[59,9]]},"314":{"position":[[59,9]]},"317":{"position":[[1192,9],[1550,9]]},"328":{"position":[[605,9]]},"329":{"position":[[402,9]]},"330":{"position":[[594,9]]},"331":{"position":[[624,9]]},"332":{"position":[[307,9],[590,9]]},"334":{"position":[[59,9]]},"335":{"position":[[59,9]]},"371":{"position":[[124,9]]},"372":{"position":[[99,9]]},"454":{"position":[[113,10]]},"480":{"position":[[5943,9],[11137,9]]}},"keywords":{}}],["need",{"_index":85,"title":{},"content":{"2":{"position":[[453,4]]},"5":{"position":[[2086,4]]},"47":{"position":[[77,7]]},"51":{"position":[[145,6]]},"89":{"position":[[248,5]]},"93":{"position":[[144,5]]},"95":{"position":[[286,5]]},"100":{"position":[[148,5]]},"101":{"position":[[129,5]]},"129":{"position":[[411,4]]},"130":{"position":[[6210,4]]},"222":{"position":[[296,4]]},"226":{"position":[[77,7]]},"232":{"position":[[122,4]]},"242":{"position":[[438,4]]},"244":{"position":[[2161,6]]},"245":{"position":[[532,4]]},"247":{"position":[[77,4],[302,4]]},"262":{"position":[[151,4]]},"263":{"position":[[109,4]]},"301":{"position":[[51,4]]},"302":{"position":[[60,4]]},"303":{"position":[[47,4]]},"304":{"position":[[53,4]]},"305":{"position":[[50,4]]},"310":{"position":[[9,4]]},"311":{"position":[[27,4]]},"313":{"position":[[650,4]]},"314":{"position":[[626,4]]},"317":{"position":[[1424,4]]},"324":{"position":[[9,4]]},"327":{"position":[[27,4],[79,4]]},"328":{"position":[[53,4],[457,4]]},"329":{"position":[[60,4],[260,4]]},"330":{"position":[[47,4],[457,4]]},"331":{"position":[[51,4],[499,4]]},"332":{"position":[[50,4],[467,4]]},"334":{"position":[[649,4]]},"335":{"position":[[623,4]]},"338":{"position":[[1733,4]]},"341":{"position":[[947,4]]},"345":{"position":[[646,4]]},"349":{"position":[[1148,4]]},"353":{"position":[[251,4]]},"354":{"position":[[77,7]]},"395":{"position":[[1158,4]]},"402":{"position":[[77,7]]},"418":{"position":[[407,4]]},"419":{"position":[[693,7]]},"420":{"position":[[589,4]]},"466":{"position":[[27,4],[289,4]]},"467":{"position":[[117,4],[5762,4]]},"468":{"position":[[22,4]]},"471":{"position":[[31,4],[372,5]]},"473":{"position":[[232,5],[260,4],[954,4],[3192,4],[3702,4]]},"474":{"position":[[56,4],[265,4]]},"479":{"position":[[27,4],[577,4]]},"480":{"position":[[1297,4],[2631,4],[3494,4],[4407,4],[10054,4],[10646,4],[12626,8]]},"481":{"position":[[22,4]]},"482":{"position":[[25,4]]},"483":{"position":[[560,4]]},"484":{"position":[[562,4]]},"485":{"position":[[152,5]]},"486":{"position":[[61,4],[703,4]]},"487":{"position":[[243,5],[698,5]]},"492":{"position":[[95,4]]},"496":{"position":[[103,4]]},"498":{"position":[[231,4]]},"502":{"position":[[43,4]]}},"keywords":{}}],["needs.also",{"_index":3140,"title":{},"content":{"387":{"position":[[871,11]]}},"keywords":{}}],["nested_hol",{"_index":2502,"title":{},"content":{"292":{"position":[[257,12]]}},"keywords":{}}],["nested_shel",{"_index":2506,"title":{},"content":{"292":{"position":[[333,13]]}},"keywords":{}}],["never",{"_index":0,"title":{"0":{"position":[[0,5]]}},"content":{"0":{"position":[[204,5],[228,5],[253,5],[291,5],[316,5],[340,5],[619,5],[643,5],[668,5],[706,5],[731,5],[755,5],[791,5],[815,5],[840,5],[878,5],[903,5],[927,5],[1007,5],[1025,5],[1062,5],[1080,5],[1346,5],[1370,5],[1395,5],[1433,5],[1458,5],[1482,5],[1518,5],[1542,5],[1567,5],[1605,5],[1630,5],[1654,5],[1690,5],[1714,5],[1739,5],[1777,5],[1802,5],[1826,5]]}},"keywords":{}}],["new",{"_index":88,"title":{"18":{"position":[[0,3]]},"19":{"position":[[0,3]]},"39":{"position":[[0,3]]},"41":{"position":[[0,3]]},"44":{"position":[[0,3]]}},"content":{"2":{"position":[[507,3]]},"11":{"position":[[324,3],[335,3],[879,3],[920,3],[967,3]]},"13":{"position":[[7,3]]},"15":{"position":[[345,3]]},"16":{"position":[[290,3]]},"18":{"position":[[17,3]]},"19":{"position":[[17,3]]},"28":{"position":[[216,3]]},"31":{"position":[[136,3]]},"33":{"position":[[141,3]]},"35":{"position":[[94,3]]},"39":{"position":[[47,3],[130,3],[335,3]]},"41":{"position":[[26,3],[289,3]]},"44":{"position":[[26,3],[237,3]]},"47":{"position":[[507,3]]},"48":{"position":[[842,3]]},"103":{"position":[[1420,3]]},"114":{"position":[[95,3]]},"117":{"position":[[718,3]]},"130":{"position":[[23,3]]},"209":{"position":[[496,3]]},"222":{"position":[[24,3],[82,3]]},"223":{"position":[[169,3]]},"239":{"position":[[895,3]]},"242":{"position":[[1098,3]]},"252":{"position":[[652,3],[964,3]]},"288":{"position":[[273,3],[932,3],[1480,3]]},"293":{"position":[[263,3]]},"317":{"position":[[301,3]]},"340":{"position":[[628,3]]},"353":{"position":[[266,3],[297,3]]},"413":{"position":[[488,3]]},"415":{"position":[[473,3]]},"423":{"position":[[702,3]]},"436":{"position":[[42,3]]},"437":{"position":[[76,3]]},"438":{"position":[[60,3]]},"440":{"position":[[35,3]]},"443":{"position":[[104,3]]},"446":{"position":[[35,3]]},"447":{"position":[[85,3]]},"448":{"position":[[35,3]]},"449":{"position":[[25,3]]},"450":{"position":[[166,3]]},"451":{"position":[[35,3],[353,3]]},"460":{"position":[[334,3]]},"467":{"position":[[4261,3]]},"470":{"position":[[63,3]]},"473":{"position":[[463,3],[486,3],[517,3],[566,3],[591,3],[623,3],[653,3],[701,3],[726,3],[759,3],[794,3],[830,3],[861,3],[2827,3],[5869,3]]},"480":{"position":[[6670,3],[11012,3]]},"486":{"position":[[265,3],[332,3]]},"488":{"position":[[252,3]]},"490":{"position":[[174,3]]},"503":{"position":[[56,3],[274,3]]}},"keywords":{}}],["newfarmnam",{"_index":2445,"title":{},"content":{"280":{"position":[[353,14]]}},"keywords":{}}],["newgrowerid",{"_index":2446,"title":{},"content":{"280":{"position":[[380,12]]}},"keywords":{}}],["newgrowernam",{"_index":2464,"title":{},"content":{"285":{"position":[[322,17]]}},"keywords":{}}],["newli",{"_index":2888,"title":{},"content":{"353":{"position":[[148,5]]}},"keywords":{}}],["newsatelliteimag",{"_index":194,"title":{},"content":{"5":{"position":[[599,18],[1295,18],[1466,19],[1948,19]]},"6":{"position":[[275,19]]},"7":{"position":[[276,19]]},"39":{"position":[[401,19]]}},"keywords":{}}],["newsatelliteimagesand",{"_index":176,"title":{},"content":{"5":{"position":[[342,21]]}},"keywords":{}}],["next",{"_index":568,"title":{"494":{"position":[[9,5]]}},"content":{"57":{"position":[[1134,4]]},"59":{"position":[[1964,4]]},"63":{"position":[[876,4]]},"70":{"position":[[633,4]]},"71":{"position":[[397,4]]},"78":{"position":[[425,4]]},"79":{"position":[[423,4]]},"82":{"position":[[426,4]]},"137":{"position":[[12,4]]},"218":{"position":[[341,4]]},"232":{"position":[[338,4]]},"244":{"position":[[1930,4],[2372,4]]},"245":{"position":[[930,4],[1319,4]]},"246":{"position":[[643,4]]},"287":{"position":[[1971,4]]},"346":{"position":[[1479,4]]},"390":{"position":[[987,4]]},"424":{"position":[[380,4]]},"425":{"position":[[0,5]]},"456":{"position":[[483,4]]},"464":{"position":[[107,4]]},"467":{"position":[[82,4]]},"472":{"position":[[166,4]]},"473":{"position":[[1800,4]]},"477":{"position":[[107,4]]},"480":{"position":[[1262,4],[5961,4]]},"483":{"position":[[604,4]]},"484":{"position":[[606,4]]},"485":{"position":[[466,4]]},"496":{"position":[[97,5]]},"519":{"position":[[207,4]]},"520":{"position":[[209,4]]},"521":{"position":[[196,4]]},"522":{"position":[[198,4]]}},"keywords":{}}],["ng",{"_index":3581,"title":{},"content":{"470":{"position":[[60,2]]},"471":{"position":[[120,2]]},"472":{"position":[[82,2]]}},"keywords":{}}],["ngoninit",{"_index":3594,"title":{},"content":{"473":{"position":[[377,11]]}},"keywords":{}}],["ngrok",{"_index":3711,"title":{},"content":{"479":{"position":[[124,5],[326,5],[442,5]]},"481":{"position":[[185,5]]}},"keywords":{}}],["ngrok.authtoken(\"your",{"_index":3718,"title":{},"content":{"479":{"position":[[420,21]]}},"keywords":{}}],["ngrok.connect(th",{"_index":3719,"title":{},"content":{"479":{"position":[[473,17]]}},"keywords":{}}],["noaa",{"_index":4018,"title":{},"content":{"510":{"position":[[177,4]]}},"keywords":{}}],["nodej",{"_index":75,"title":{},"content":{"2":{"position":[[257,6]]},"256":{"position":[[314,7]]}},"keywords":{}}],["non",{"_index":1194,"title":{},"content":{"104":{"position":[[1802,3]]}},"keywords":{}}],["none",{"_index":1711,"title":{},"content":{"220":{"position":[[1251,4]]},"222":{"position":[[1267,4]]},"488":{"position":[[2646,4],[2705,8]]},"489":{"position":[[307,8]]}},"keywords":{}}],["normal",{"_index":2473,"title":{},"content":{"287":{"position":[[2389,9]]},"365":{"position":[[226,12]]},"442":{"position":[[39,10]]}},"keywords":{}}],["normalizedgeojson",{"_index":2865,"title":{},"content":{"351":{"position":[[307,20]]}},"keywords":{}}],["not_allowed_geometry_typ",{"_index":2511,"title":{},"content":{"292":{"position":[[413,25]]}},"keywords":{}}],["notconnectedorgan",{"_index":3230,"title":{},"content":{"408":{"position":[[675,28]]}},"keywords":{}}],["note",{"_index":440,"title":{"433":{"position":[[8,5]]}},"content":{"48":{"position":[[612,5]]},"51":{"position":[[515,5]]},"82":{"position":[[823,8]]},"83":{"position":[[645,8]]},"104":{"position":[[422,4],[993,4],[1238,4],[1429,4],[1664,4]]},"105":{"position":[[1337,4],[3239,4]]},"117":{"position":[[867,5]]},"124":{"position":[[177,5]]},"133":{"position":[[681,4]]},"137":{"position":[[79,5]]},"222":{"position":[[345,4],[773,4]]},"223":{"position":[[66,4]]},"245":{"position":[[576,5]]},"251":{"position":[[377,5]]},"253":{"position":[[478,5]]},"283":{"position":[[598,4]]},"293":{"position":[[502,4]]},"387":{"position":[[566,5]]},"415":{"position":[[678,4]]},"423":{"position":[[463,5]]},"503":{"position":[[179,4]]},"512":{"position":[[140,5]]},"517":{"position":[[970,4]]},"523":{"position":[[244,5]]},"525":{"position":[[233,5]]}},"keywords":{}}],["notic",{"_index":3404,"title":{},"content":{"428":{"position":[[21,7]]}},"keywords":{}}],["notif",{"_index":2134,"title":{},"content":{"252":{"position":[[588,13]]}},"keywords":{}}],["notifi",{"_index":165,"title":{},"content":{"5":{"position":[[83,8]]},"47":{"position":[[23,8]]},"226":{"position":[[23,8]]},"252":{"position":[[687,8]]},"354":{"position":[[23,8]]},"387":{"position":[[941,8]]},"402":{"position":[[23,8]]}},"keywords":{}}],["now",{"_index":494,"title":{},"content":{"52":{"position":[[8,3]]},"70":{"position":[[52,3]]},"78":{"position":[[64,3]]},"82":{"position":[[65,3]]},"86":{"position":[[8,3]]},"222":{"position":[[837,3]]},"242":{"position":[[839,3]]},"244":{"position":[[1972,3]]},"245":{"position":[[979,3]]},"246":{"position":[[18,3]]},"415":{"position":[[773,3]]},"426":{"position":[[0,3]]},"434":{"position":[[207,3],[370,3]]},"437":{"position":[[35,3]]},"438":{"position":[[43,3]]},"439":{"position":[[39,3]]},"441":{"position":[[58,3]]},"442":{"position":[[86,3]]},"443":{"position":[[169,3]]},"447":{"position":[[318,3]]},"450":{"position":[[55,3]]},"451":{"position":[[284,3],[387,3]]},"460":{"position":[[59,3]]},"466":{"position":[[276,3]]},"467":{"position":[[3032,4]]},"479":{"position":[[564,3]]}},"keywords":{}}],["npm",{"_index":2583,"title":{},"content":{"313":{"position":[[387,4],[397,3]]},"314":{"position":[[380,4],[390,3]]},"334":{"position":[[387,4],[397,3]]},"335":{"position":[[377,4],[387,3]]}},"keywords":{}}],["null",{"_index":624,"title":{},"content":{"58":{"position":[[358,5],[385,5],[417,5]]},"65":{"position":[[901,5]]},"66":{"position":[[528,5]]},"82":{"position":[[832,5],[1144,5],[1165,5],[1245,5],[1261,5],[1287,5],[1623,5],[1644,5],[1721,5],[1737,5],[1763,5],[2096,5],[2117,5],[2199,5],[2215,5],[2241,5]]},"83":{"position":[[654,5],[966,5],[987,5],[1067,5],[1083,5],[1109,5],[1445,5],[1466,5],[1543,5],[1559,5],[1585,5],[1918,5],[1939,5],[2021,5],[2037,5],[2063,5]]},"104":{"position":[[775,4]]},"480":{"position":[[11118,5]]},"526":{"position":[[3762,5]]}},"keywords":{}}],["number",{"_index":453,"title":{},"content":{"50":{"position":[[60,7]]},"57":{"position":[[341,6],[775,6]]},"72":{"position":[[319,6]]},"74":{"position":[[219,6]]},"80":{"position":[[266,6]]},"83":{"position":[[267,6]]},"103":{"position":[[828,6],[1694,6]]},"210":{"position":[[278,6]]},"220":{"position":[[362,6]]},"251":{"position":[[541,7]]},"314":{"position":[[1069,6]]},"316":{"position":[[195,6]]},"317":{"position":[[1861,6]]},"338":{"position":[[327,7]]},"346":{"position":[[880,6]]},"357":{"position":[[1261,7],[1859,6]]},"362":{"position":[[393,7]]},"378":{"position":[[2427,6]]},"379":{"position":[[2476,6]]},"380":{"position":[[2027,6]]},"382":{"position":[[412,6]]},"383":{"position":[[415,6]]},"384":{"position":[[154,6]]}},"keywords":{}}],["number(obja.d",{"_index":3541,"title":{},"content":{"467":{"position":[[4386,17]]}},"keywords":{}}],["number(objb.d",{"_index":3540,"title":{},"content":{"467":{"position":[[4366,17]]}},"keywords":{}}],["numer",{"_index":3074,"title":{},"content":{"367":{"position":[[28,9]]},"368":{"position":[[37,9]]},"416":{"position":[[37,9]]}},"keywords":{}}],["nv",{"_index":1163,"title":{},"content":{"104":{"position":[[742,2],[970,4]]},"109":{"position":[[624,5]]},"110":{"position":[[736,5]]},"111":{"position":[[1127,5]]},"112":{"position":[[948,5]]},"113":{"position":[[1070,5]]},"239":{"position":[[536,4]]},"349":{"position":[[466,5],[878,2]]},"367":{"position":[[329,5],[609,5],[891,5],[1172,5],[1461,5],[1748,5],[2035,5],[2317,5],[2599,5],[2887,5],[3167,5],[3447,5],[3734,5],[4016,5],[4305,5]]},"395":{"position":[[471,5],[888,2]]},"415":{"position":[[260,4]]}},"keywords":{}}],["nvdi",{"_index":498,"title":{},"content":{"52":{"position":[[56,5]]},"86":{"position":[[51,5]]},"88":{"position":[[152,5]]}},"keywords":{}}],["o",{"_index":729,"title":{},"content":{"65":{"position":[[731,4]]},"66":{"position":[[358,4]]}},"keywords":{}}],["oat",{"_index":1819,"title":{},"content":{"229":{"position":[[221,6],[609,5]]},"320":{"position":[[840,4],[1751,4]]}},"keywords":{}}],["oauth",{"_index":2555,"title":{},"content":{"303":{"position":[[285,5]]},"330":{"position":[[158,5],[230,5]]}},"keywords":{}}],["oauth2",{"_index":2063,"title":{},"content":{"244":{"position":[[608,9]]}},"keywords":{}}],["obj",{"_index":3858,"title":{},"content":{"480":{"position":[[11999,3]]}},"keywords":{}}],["obja",{"_index":3538,"title":{},"content":{"467":{"position":[[4350,6]]}},"keywords":{}}],["objb",{"_index":3539,"title":{},"content":{"467":{"position":[[4357,5]]}},"keywords":{}}],["object",{"_index":254,"title":{},"content":{"7":{"position":[[233,8]]},"8":{"position":[[276,8]]},"218":{"position":[[167,6]]},"219":{"position":[[153,6]]},"222":{"position":[[1177,6]]},"253":{"position":[[503,6]]},"261":{"position":[[281,7]]},"262":{"position":[[138,6]]},"263":{"position":[[1059,7]]},"272":{"position":[[318,7]]},"273":{"position":[[355,7]]},"274":{"position":[[299,7]]},"278":{"position":[[299,7]]},"279":{"position":[[447,7]]},"280":{"position":[[506,7]]},"282":{"position":[[527,7]]},"283":{"position":[[307,7]]},"284":{"position":[[422,7]]},"285":{"position":[[454,7]]},"353":{"position":[[641,6]]},"362":{"position":[[351,7]]},"365":{"position":[[911,7]]},"418":{"position":[[32,9]]},"424":{"position":[[293,6]]},"467":{"position":[[106,7],[4126,6],[6329,7],[6719,6]]},"473":{"position":[[4318,6],[4503,6]]},"480":{"position":[[1286,7],[2423,6],[6417,7]]},"498":{"position":[[699,11],[730,11],[766,11],[798,11],[841,11],[873,11],[908,11],[949,10],[1043,7]]},"500":{"position":[[323,11],[354,11],[390,11],[422,11],[465,11],[497,11],[532,11],[573,10],[675,7]]},"501":{"position":[[526,11],[557,11],[593,11],[625,11],[668,11],[700,11],[735,11],[776,10]]},"502":{"position":[[408,6],[627,7]]},"503":{"position":[[488,7]]}},"keywords":{}}],["observable<ani",{"_index":3619,"title":{},"content":{"473":{"position":[[2015,15],[2709,15],[5837,15]]}},"keywords":{}}],["obtain",{"_index":458,"title":{},"content":{"50":{"position":[[139,9]]},"61":{"position":[[156,8]]},"62":{"position":[[137,8]]},"73":{"position":[[57,8]]},"74":{"position":[[244,8]]},"103":{"position":[[100,8],[247,8]]},"293":{"position":[[386,8]]},"444":{"position":[[87,6]]}},"keywords":{}}],["occur",{"_index":1247,"title":{},"content":{"105":{"position":[[2567,8]]},"252":{"position":[[617,5],[704,7]]},"487":{"position":[[1091,5]]}},"keywords":{}}],["ocur",{"_index":3784,"title":{},"content":{"480":{"position":[[7090,8],[7148,7]]}},"keywords":{}}],["oem",{"_index":1385,"title":{},"content":{"130":{"position":[[2365,3]]},"252":{"position":[[209,4]]}},"keywords":{}}],["offer",{"_index":1635,"title":{},"content":{"210":{"position":[[15,6]]}},"keywords":{}}],["offic",{"_index":2148,"title":{},"content":{"253":{"position":[[104,6]]}},"keywords":{}}],["offset",{"_index":3063,"title":{},"content":{"365":{"position":[[1353,6],[1449,6]]}},"keywords":{}}],["oil",{"_index":1831,"title":{},"content":{"229":{"position":[[368,4],[713,4],[794,4]]},"320":{"position":[[2082,3],[2539,3],[2559,3]]}},"keywords":{}}],["oilse",{"_index":2714,"title":{},"content":{"320":{"position":[[1762,7]]}},"keywords":{}}],["ok",{"_index":2864,"title":{},"content":{"351":{"position":[[299,4],[364,4],[427,4],[489,4],[549,4],[604,4],[657,4],[717,4],[779,4]]},"467":{"position":[[359,3],[981,2],[7017,2]]},"480":{"position":[[930,2],[1539,3],[4465,3]]},"486":{"position":[[670,2]]}},"keywords":{}}],["old",{"_index":3469,"title":{},"content":{"460":{"position":[[181,3]]}},"keywords":{}}],["oliv",{"_index":1961,"title":{},"content":{"229":{"position":[[2315,8]]}},"keywords":{}}],["on",{"_index":179,"title":{},"content":{"5":{"position":[[388,4]]},"13":{"position":[[52,3]]},"20":{"position":[[71,3]]},"26":{"position":[[104,3]]},"29":{"position":[[174,3]]},"32":{"position":[[94,3]]},"34":{"position":[[99,3]]},"57":{"position":[[1139,5]]},"59":{"position":[[1969,5]]},"63":{"position":[[208,3],[881,5]]},"70":{"position":[[348,3]]},"78":{"position":[[140,3]]},"82":{"position":[[141,3]]},"93":{"position":[[173,3]]},"95":{"position":[[344,3]]},"97":{"position":[[168,3]]},"100":{"position":[[177,3]]},"101":{"position":[[158,3],[547,3]]},"105":{"position":[[356,3]]},"117":{"position":[[1344,4]]},"120":{"position":[[404,3]]},"130":{"position":[[490,3],[5335,3]]},"137":{"position":[[272,3]]},"218":{"position":[[346,5]]},"220":{"position":[[2734,3]]},"222":{"position":[[150,3],[1456,4],[2048,4]]},"233":{"position":[[398,3]]},"242":{"position":[[477,3]]},"245":{"position":[[763,4]]},"251":{"position":[[937,3]]},"253":{"position":[[408,3]]},"268":{"position":[[90,3]]},"287":{"position":[[19,3],[120,3]]},"288":{"position":[[106,3],[125,3]]},"292":{"position":[[177,3]]},"293":{"position":[[267,3]]},"298":{"position":[[300,3]]},"300":{"position":[[124,4]]},"308":{"position":[[347,3]]},"310":{"position":[[48,3]]},"324":{"position":[[48,3]]},"338":{"position":[[3196,3]]},"343":{"position":[[6,3]]},"346":{"position":[[226,3]]},"360":{"position":[[760,3]]},"365":{"position":[[1253,3]]},"372":{"position":[[69,3]]},"378":{"position":[[2318,3]]},"390":{"position":[[236,3],[992,5]]},"415":{"position":[[533,4]]},"428":{"position":[[82,3],[230,3],[358,3]]},"429":{"position":[[717,3],[783,3]]},"467":{"position":[[1938,3],[2384,3],[3009,4],[3154,3]]},"471":{"position":[[494,3]]},"473":{"position":[[2351,3],[6318,3],[6498,3]]},"474":{"position":[[168,3],[299,3]]},"480":{"position":[[3722,3],[4113,3],[5225,3],[5344,3],[7283,3],[7817,3]]},"482":{"position":[[42,3]]},"483":{"position":[[609,4]]},"484":{"position":[[611,4]]},"487":{"position":[[634,3]]},"488":{"position":[[319,3],[3041,3]]},"503":{"position":[[60,4]]},"517":{"position":[[1024,3]]}},"keywords":{}}],["onc",{"_index":1282,"title":{},"content":{"117":{"position":[[493,4],[659,5]]},"122":{"position":[[330,4]]},"131":{"position":[[23,4]]},"132":{"position":[[12,4]]},"133":{"position":[[686,4]]},"144":{"position":[[525,4]]},"151":{"position":[[521,4]]},"158":{"position":[[543,4]]},"165":{"position":[[515,4]]},"172":{"position":[[527,4]]},"179":{"position":[[537,4]]},"186":{"position":[[517,4]]},"193":{"position":[[521,4]]},"200":{"position":[[517,4]]},"207":{"position":[[512,4]]},"232":{"position":[[240,4]]},"242":{"position":[[614,4]]},"288":{"position":[[838,4],[1048,4]]},"327":{"position":[[97,5]]},"341":{"position":[[663,4]]},"415":{"position":[[1407,4]]},"418":{"position":[[478,4]]},"419":{"position":[[623,4]]},"480":{"position":[[6364,4]]},"495":{"position":[[0,4]]},"502":{"position":[[264,4]]}},"keywords":{}}],["onclick",{"_index":3874,"title":{},"content":{"482":{"position":[[243,9]]}},"keywords":{}}],["onclick=\"get_json",{"_index":3903,"title":{},"content":{"487":{"position":[[329,20],[931,20]]}},"keywords":{}}],["onclick=\"showimag",{"_index":3933,"title":{},"content":{"488":{"position":[[1418,21]]}},"keywords":{}}],["one(",{"_index":2466,"title":{},"content":{"287":{"position":[[201,6]]}},"keywords":{}}],["onget",{"_index":1453,"title":{},"content":{"130":{"position":[[5088,5]]}},"keywords":{}}],["onion",{"_index":1904,"title":{},"content":{"229":{"position":[[1537,8],[1879,7]]}},"keywords":{}}],["onward",{"_index":700,"title":{},"content":{"63":{"position":[[423,6],[497,6]]},"346":{"position":[[615,6],[685,6],[759,6]]},"390":{"position":[[394,6],[468,6]]},"512":{"position":[[68,7]]},"519":{"position":[[383,6]]},"520":{"position":[[385,6]]},"521":{"position":[[372,6]]},"522":{"position":[[374,6]]},"523":{"position":[[588,6]]},"524":{"position":[[387,6]]},"525":{"position":[[577,6]]},"526":{"position":[[376,6]]}},"keywords":{}}],["ooh",{"_index":47,"title":{},"content":{"0":{"position":[[963,5],[982,5],[1001,5],[1056,5]]}},"keywords":{}}],["oop",{"_index":3506,"title":{},"content":{"467":{"position":[[1222,6],[1375,6]]}},"keywords":{}}],["opac",{"_index":3644,"title":{},"content":{"473":{"position":[[4584,8],[4615,9]]}},"keywords":{}}],["open",{"_index":2152,"title":{},"content":{"253":{"position":[[386,4]]},"341":{"position":[[968,4],[1116,7]]},"479":{"position":[[152,4],[183,4],[533,4]]},"481":{"position":[[202,4]]}},"keywords":{}}],["openstreetmap",{"_index":3677,"title":{},"content":{"474":{"position":[[141,13],[491,13],[1163,14]]}},"keywords":{}}],["oper",{"_index":339,"title":{"30":{"position":[[0,9]]},"35":{"position":[[0,9]]},"36":{"position":[[0,9]]},"37":{"position":[[0,9]]},"65":{"position":[[8,9]]},"66":{"position":[[7,8]]},"74":{"position":[[30,9]]},"105":{"position":[[6,10]]},"247":{"position":[[6,10]]},"248":{"position":[[6,9]]},"264":{"position":[[8,9]]},"265":{"position":[[7,9]]},"289":{"position":[[0,9]]},"342":{"position":[[24,9]]},"355":{"position":[[8,10]]},"362":{"position":[[14,9]]},"386":{"position":[[6,10]]},"387":{"position":[[0,10]]},"388":{"position":[[6,10]]},"390":{"position":[[8,10]]},"391":{"position":[[7,9]]},"399":{"position":[[5,9]]},"400":{"position":[[18,9]]},"401":{"position":[[13,9]]},"403":{"position":[[8,10]]},"409":{"position":[[6,10]]},"411":{"position":[[6,10]]},"412":{"position":[[6,10]]},"413":{"position":[[6,10]]},"414":{"position":[[6,10]]},"415":{"position":[[6,10]]},"416":{"position":[[6,10]]},"424":{"position":[[31,10]]},"425":{"position":[[15,9]]},"426":{"position":[[20,9]]},"427":{"position":[[11,9]]},"428":{"position":[[11,9]]},"429":{"position":[[18,9]]},"454":{"position":[[50,10]]}},"content":{"11":{"position":[[634,9],[787,9],[806,9],[825,9]]},"25":{"position":[[56,10]]},"26":{"position":[[36,10]]},"28":{"position":[[36,10]]},"29":{"position":[[36,10]]},"31":{"position":[[42,9]]},"32":{"position":[[42,9]]},"33":{"position":[[47,9]]},"34":{"position":[[47,9]]},"35":{"position":[[18,9],[98,10],[159,9],[332,9]]},"36":{"position":[[18,9],[93,11],[193,9]]},"37":{"position":[[19,9],[116,9],[249,9]]},"41":{"position":[[62,10]]},"42":{"position":[[58,10]]},"47":{"position":[[551,10]]},"56":{"position":[[559,9],[610,8]]},"59":{"position":[[83,10],[411,9],[682,10],[773,10],[868,10],[975,10],[1080,10],[1183,10],[1346,10],[1487,10]]},"63":{"position":[[391,10],[465,10]]},"65":{"position":[[51,9],[121,9]]},"66":{"position":[[75,8]]},"69":{"position":[[231,9]]},"72":{"position":[[176,9]]},"74":{"position":[[171,10]]},"80":{"position":[[109,9]]},"83":{"position":[[109,9]]},"103":{"position":[[439,9],[594,10],[669,9]]},"104":{"position":[[410,11],[595,11],[1046,10],[1144,11],[1291,10],[1379,11],[1482,10],[1580,11],[1717,10],[1895,10],[2010,9],[2383,10]]},"105":{"position":[[63,11],[177,10],[823,11],[939,11],[1039,10],[1109,10],[1228,10],[1390,10],[1564,11],[2252,10],[2380,10],[2498,10],[2551,10],[2695,10],[2893,9],[2942,11],[2971,10],[3131,10],[3292,10]]},"116":{"position":[[87,10]]},"117":{"position":[[917,10],[1204,10]]},"124":{"position":[[712,13],[829,10]]},"125":{"position":[[597,13],[727,10]]},"130":{"position":[[105,9],[5788,9]]},"233":{"position":[[464,10],[494,11]]},"239":{"position":[[35,10]]},"242":{"position":[[7,9],[1132,9]]},"244":{"position":[[108,10]]},"247":{"position":[[13,10],[150,10],[188,11],[546,11],[585,10]]},"248":{"position":[[169,10],[690,9]]},"251":{"position":[[250,10],[357,10],[449,9],[972,10]]},"252":{"position":[[1159,9],[1455,9]]},"253":{"position":[[796,10]]},"258":{"position":[[541,9],[633,9]]},"264":{"position":[[84,9],[359,10],[462,10],[563,10],[688,10],[759,10],[841,10]]},"265":{"position":[[82,9]]},"287":{"position":[[329,10],[2044,10],[2076,9]]},"289":{"position":[[323,10],[418,10],[505,9],[607,9]]},"341":{"position":[[264,9],[379,10],[925,9],[1044,10]]},"342":{"position":[[220,9]]},"343":{"position":[[17,9],[191,9],[292,10]]},"345":{"position":[[620,9]]},"346":{"position":[[583,10],[655,10],[727,10],[797,10],[949,10],[1061,9],[2045,12],[2175,9]]},"347":{"position":[[304,9]]},"348":{"position":[[339,9]]},"350":{"position":[[330,9]]},"352":{"position":[[99,11]]},"353":{"position":[[33,9],[66,9],[492,9]]},"355":{"position":[[5,10],[63,10]]},"357":{"position":[[822,9],[947,9],[1045,9],[1296,9]]},"360":{"position":[[13,9],[121,9],[188,10],[229,10],[350,9],[565,9],[602,9],[731,9],[884,9]]},"361":{"position":[[89,9],[187,9]]},"364":{"position":[[5,9],[115,9],[658,9]]},"367":{"position":[[60,9]]},"387":{"position":[[5,10],[213,10],[335,9],[399,9],[442,11],[502,10],[530,10],[596,10]]},"389":{"position":[[199,10],[214,11],[233,9],[698,9],[768,9],[828,9]]},"390":{"position":[[5,11],[38,10],[364,10],[436,10],[506,10],[616,9]]},"391":{"position":[[36,9]]},"392":{"position":[[70,9],[354,11]]},"393":{"position":[[87,10]]},"394":{"position":[[87,10]]},"395":{"position":[[590,11]]},"396":{"position":[[939,11]]},"398":{"position":[[346,11]]},"399":{"position":[[91,9],[448,9]]},"400":{"position":[[115,10]]},"401":{"position":[[56,9]]},"403":{"position":[[5,10],[63,10]]},"411":{"position":[[8,9],[179,10],[272,9],[608,10],[741,9]]},"412":{"position":[[53,9]]},"413":{"position":[[138,9],[412,9],[492,10]]},"414":{"position":[[44,10],[120,9],[278,9]]},"415":{"position":[[40,11],[308,10],[1499,10]]},"416":{"position":[[71,11]]},"424":{"position":[[355,10],[421,10]]},"425":{"position":[[20,10],[37,12],[126,9],[170,10]]},"426":{"position":[[51,10]]},"428":{"position":[[56,10],[240,9],[319,10]]},"429":{"position":[[102,9],[186,10],[730,9]]},"434":{"position":[[292,10],[340,9]]},"435":{"position":[[87,11]]},"436":{"position":[[79,11],[211,11]]},"438":{"position":[[147,10]]},"440":{"position":[[139,9]]},"447":{"position":[[65,9]]},"448":{"position":[[123,10]]},"450":{"position":[[280,11]]},"451":{"position":[[186,11]]},"454":{"position":[[74,10],[194,10]]},"459":{"position":[[49,10]]},"488":{"position":[[802,9]]},"519":{"position":[[294,10],[353,10]]},"520":{"position":[[296,10],[355,10]]},"521":{"position":[[283,10],[342,10]]},"522":{"position":[[285,10],[344,10]]},"523":{"position":[[499,10],[558,10]]},"524":{"position":[[298,10],[357,10]]},"525":{"position":[[488,10],[547,10]]},"526":{"position":[[287,10],[346,10]]}},"keywords":{}}],["operation'",{"_index":509,"title":{"392":{"position":[[8,11]]},"393":{"position":[[8,11]]},"394":{"position":[[8,11]]},"395":{"position":[[4,11]]},"396":{"position":[[4,11]]},"397":{"position":[[4,11]]},"398":{"position":[[8,11]]}},"content":{"53":{"position":[[34,11]]},"349":{"position":[[69,11]]},"389":{"position":[[272,11],[329,11],[402,11],[471,11],[522,11],[578,11],[648,11]]},"395":{"position":[[74,11]]},"396":{"position":[[76,11]]},"397":{"position":[[82,11]]}},"keywords":{}}],["operationcr",{"_index":215,"title":{},"content":{"5":{"position":[[1230,17]]},"35":{"position":[[450,18]]}},"keywords":{}}],["operationdescript",{"_index":3035,"title":{},"content":{"362":{"position":[[411,20]]}},"keywords":{}}],["operationid",{"_index":388,"title":{},"content":{"35":{"position":[[302,14]]},"36":{"position":[[163,14]]},"37":{"position":[[219,14]]},"399":{"position":[[268,15]]}},"keywords":{}}],["operationprocessingfinish",{"_index":217,"title":{},"content":{"5":{"position":[[1266,28]]},"37":{"position":[[320,30]]}},"keywords":{}}],["operations'",{"_index":3205,"title":{},"content":{"398":{"position":[[37,12]]}},"keywords":{}}],["operations.it",{"_index":3139,"title":{},"content":{"387":{"position":[[776,13]]}},"keywords":{}}],["operations/cropoperationbyfield",{"_index":3149,"title":{},"content":{"389":{"position":[[722,32]]},"399":{"position":[[6,32]]}},"keywords":{}}],["operations/{id",{"_index":3141,"title":{},"content":{"389":{"position":[[247,16]]},"391":{"position":[[5,16]]}},"keywords":{}}],["operations/{id}/fil",{"_index":3151,"title":{},"content":{"389":{"position":[[843,22]]},"400":{"position":[[6,22]]}},"keywords":{}}],["operations/{id}/filteredgeojson",{"_index":3144,"title":{},"content":{"389":{"position":[[434,32]]},"394":{"position":[[5,32]]}},"keywords":{}}],["operations/{id}/filteredgeojsonendpoint",{"_index":3236,"title":{},"content":{"413":{"position":[[176,41]]}},"keywords":{}}],["operations/{id}/geotiffimag",{"_index":3147,"title":{},"content":{"389":{"position":[[609,30]]},"397":{"position":[[5,30]]}},"keywords":{}}],["operations/{id}/imag",{"_index":3145,"title":{},"content":{"389":{"position":[[494,23]]},"395":{"position":[[5,23]]}},"keywords":{}}],["operations/{id}/imagesv2",{"_index":3146,"title":{},"content":{"389":{"position":[[548,25]]},"396":{"position":[[5,25]]}},"keywords":{}}],["operations/{id}/reprocess",{"_index":3150,"title":{},"content":{"389":{"position":[[783,26]]},"401":{"position":[[6,26]]}},"keywords":{}}],["operations/{id}/standardgeojson",{"_index":3143,"title":{},"content":{"389":{"position":[[361,32]]},"393":{"position":[[5,32]]}},"keywords":{}}],["operations/{id}/summari",{"_index":3142,"title":{},"content":{"389":{"position":[[296,24]]},"392":{"position":[[5,24]]}},"keywords":{}}],["operations/{id}/unit",{"_index":3148,"title":{},"content":{"389":{"position":[[670,22]]},"398":{"position":[[5,22]]}},"keywords":{}}],["operationsautosync",{"_index":1225,"title":{},"content":{"105":{"position":[[856,19]]},"450":{"position":[[188,18]]}},"keywords":{}}],["operationsfilteredgeojson",{"_index":1226,"title":{},"content":{"105":{"position":[[978,26],[1724,25]]},"394":{"position":[[126,25]]},"413":{"position":[[28,25]]}},"keywords":{}}],["operationsimageasgeotiff",{"_index":1228,"title":{},"content":{"105":{"position":[[1153,25]]},"415":{"position":[[1673,24]]}},"keywords":{}}],["operationsimagecr",{"_index":1156,"title":{},"content":{"104":{"position":[[353,24]]},"105":{"position":[[3061,24]]},"109":{"position":[[326,26]]},"110":{"position":[[438,26]]},"111":{"position":[[292,26],[540,26],[829,26]]},"112":{"position":[[210,26],[413,26],[650,26]]},"113":{"position":[[234,26],[483,26],[772,26]]}},"keywords":{}}],["operationsmergerang",{"_index":1239,"title":{},"content":{"105":{"position":[[2177,21]]}},"keywords":{}}],["operationsmergerangeharvest",{"_index":1241,"title":{},"content":{"105":{"position":[[2288,30]]}},"keywords":{}}],["operationsoutlierslimit",{"_index":1231,"title":{},"content":{"105":{"position":[[1618,23],[1767,24]]},"413":{"position":[[795,23]]}},"keywords":{}}],["operationsprocessingrang",{"_index":1243,"title":{},"content":{"105":{"position":[[2417,26]]}},"keywords":{}}],["operationsremoveoutli",{"_index":1229,"title":{},"content":{"105":{"position":[[1419,25],[1842,24]]},"413":{"position":[[882,24]]}},"keywords":{}}],["operationtyp",{"_index":2300,"title":{},"content":{"264":{"position":[[1373,16]]},"265":{"position":[[384,16]]},"289":{"position":[[21,16]]},"346":{"position":[[826,13],[985,14]]},"350":{"position":[[386,14]]},"357":{"position":[[768,13]]},"361":{"position":[[2835,16]]},"362":{"position":[[159,13]]},"364":{"position":[[592,16]]},"365":{"position":[[452,13]]},"390":{"position":[[535,13]]},"398":{"position":[[397,14]]},"414":{"position":[[165,13],[797,16]]}},"keywords":{}}],["operationupd",{"_index":216,"title":{},"content":{"5":{"position":[[1248,17]]},"36":{"position":[[312,18]]}},"keywords":{}}],["opt",{"_index":2043,"title":{},"content":{"242":{"position":[[851,3]]}},"keywords":{}}],["optim",{"_index":2816,"title":{},"content":{"338":{"position":[[3604,8]]}},"keywords":{}}],["option",{"_index":1099,"title":{},"content":{"101":{"position":[[411,8]]},"104":{"position":[[2576,6]]},"105":{"position":[[1017,6],[1076,8],[1716,7]]},"111":{"position":[[173,9]]},"112":{"position":[[171,9]]},"113":{"position":[[195,9]]},"222":{"position":[[797,9]]},"246":{"position":[[338,10]]},"262":{"position":[[409,9],[565,8],[597,8]]},"331":{"position":[[386,6]]},"378":{"position":[[2489,8]]},"379":{"position":[[2538,8]]},"380":{"position":[[2089,8]]},"381":{"position":[[5,6]]},"382":{"position":[[474,8],[916,9]]},"383":{"position":[[477,8],[919,9]]},"384":{"position":[[216,8],[658,9]]},"385":{"position":[[708,6]]},"394":{"position":[[114,7]]},"413":{"position":[[16,7]]},"415":{"position":[[451,6],[1639,6]]},"439":{"position":[[46,6]]},"446":{"position":[[74,8]]},"467":{"position":[[232,9]]},"474":{"position":[[1464,7],[1476,8]]},"480":{"position":[[1412,9],[7697,8],[7957,7]]},"488":{"position":[[1081,7]]},"510":{"position":[[481,6]]}},"keywords":{}}],["options.push(lin",{"_index":3797,"title":{},"content":{"480":{"position":[[8101,19]]}},"keywords":{}}],["optionsshow",{"_index":3929,"title":{},"content":{"488":{"position":[[1228,11]]}},"keywords":{}}],["optionsshow.foreach((",{"_index":3926,"title":{},"content":{"488":{"position":[[1129,23]]}},"keywords":{}}],["optionsshow.length",{"_index":3925,"title":{},"content":{"488":{"position":[[1102,19]]}},"keywords":{}}],["optionsshow.push(e[6",{"_index":3935,"title":{},"content":{"488":{"position":[[1581,23]]}},"keywords":{}}],["or/and",{"_index":1710,"title":{},"content":{"220":{"position":[[1234,6]]}},"keywords":{}}],["ora",{"_index":2465,"title":{},"content":{"287":{"position":[[79,3]]}},"keywords":{}}],["orang",{"_index":1957,"title":{},"content":{"229":{"position":[[2278,9]]}},"keywords":{}}],["orbit",{"_index":1753,"title":{},"content":{"222":{"position":[[262,8]]}},"keywords":{}}],["orchard",{"_index":2716,"title":{},"content":{"320":{"position":[[1788,7]]}},"keywords":{}}],["orchardgrass",{"_index":1990,"title":{},"content":{"229":{"position":[[2734,14]]},"320":{"position":[[1805,12]]}},"keywords":{}}],["order",{"_index":564,"title":{},"content":{"57":{"position":[[1015,5],[1116,8],[1170,5]]},"59":{"position":[[1845,5],[1946,8],[2000,5]]},"63":{"position":[[757,5],[858,8],[912,5]]},"70":{"position":[[528,5],[671,5]]},"71":{"position":[[292,5],[435,5]]},"78":{"position":[[320,5],[463,5]]},"79":{"position":[[318,5],[461,5]]},"82":{"position":[[321,5],[464,5]]},"89":{"position":[[339,5]]},"218":{"position":[[222,5],[323,8],[377,5]]},"288":{"position":[[1539,5]]},"346":{"position":[[1374,5],[1517,5]]},"387":{"position":[[760,5]]},"390":{"position":[[868,5],[969,8],[1023,5]]},"418":{"position":[[360,5]]}},"keywords":{}}],["oregano",{"_index":1905,"title":{},"content":{"229":{"position":[[1546,9]]}},"keywords":{}}],["organ",{"_index":481,"title":{"405":{"position":[[9,13]]},"407":{"position":[[0,13]]},"408":{"position":[[13,13]]}},"content":{"51":{"position":[[398,8]]},"57":{"position":[[297,12]]},"63":{"position":[[340,12]]},"95":{"position":[[235,12]]},"96":{"position":[[219,12]]},"233":{"position":[[44,8],[354,10]]},"252":{"position":[[414,9]]},"253":{"position":[[32,12],[164,12],[279,12]]},"317":{"position":[[1313,9]]},"406":{"position":[[51,13],[353,13]]},"408":{"position":[[91,13],[219,13],[533,13],[743,13]]},"493":{"position":[[56,9]]},"498":{"position":[[176,9]]}},"keywords":{}}],["organization_id_1",{"_index":3226,"title":{},"content":{"408":{"position":[[504,20]]}},"keywords":{}}],["organization_id_2",{"_index":3231,"title":{},"content":{"408":{"position":[[714,20]]}},"keywords":{}}],["organizationid",{"_index":1077,"title":{},"content":{"95":{"position":[[155,14]]},"96":{"position":[[139,14]]},"189":{"position":[[600,17]]},"190":{"position":[[655,17]]},"260":{"position":[[1060,17]]},"269":{"position":[[409,14]]},"287":{"position":[[856,17],[1460,17]]},"346":{"position":[[401,14],[429,14],[1697,15]]}},"keywords":{}}],["organizationid={organization_valu",{"_index":2399,"title":{},"content":{"269":{"position":[[440,36]]}},"keywords":{}}],["organizationnam",{"_index":1613,"title":{},"content":{"189":{"position":[[625,19]]},"190":{"position":[[361,19],[680,19]]}},"keywords":{}}],["organizationname\":\"str",{"_index":1614,"title":{},"content":{"190":{"position":[[153,24]]}},"keywords":{}}],["origin",{"_index":539,"title":{},"content":{"57":{"position":[[371,6]]},"59":{"position":[[272,6]]},"88":{"position":[[834,9],[1469,9]]},"103":{"position":[[1512,8]]},"104":{"position":[[1919,10]]},"220":{"position":[[2277,8],[2371,8],[2440,8]]},"260":{"position":[[1096,11],[1461,11]]},"262":{"position":[[1335,11]]},"264":{"position":[[491,6],[583,6],[1403,9]]},"265":{"position":[[414,9]]},"266":{"position":[[2097,11],[2506,11]]},"287":{"position":[[822,11],[1426,11]]},"289":{"position":[[222,9]]},"293":{"position":[[624,9]]},"346":{"position":[[353,6],[1654,7]]},"360":{"position":[[156,8]]},"363":{"position":[[32,8]]},"510":{"position":[[40,6]]}},"keywords":{}}],["origin=merg",{"_index":3410,"title":{},"content":{"429":{"position":[[498,13]]}},"keywords":{}}],["originalfil",{"_index":2868,"title":{},"content":{"351":{"position":[[665,15]]},"361":{"position":[[409,15]]}},"keywords":{}}],["originaloperationdata",{"_index":1192,"title":{},"content":{"104":{"position":[[1746,22],[2062,24]]},"361":{"position":[[2767,24]]},"414":{"position":[[2879,24]]}},"keywords":{}}],["originaloperationfarm",{"_index":1197,"title":{},"content":{"104":{"position":[[2089,24]]},"414":{"position":[[2906,24]]}},"keywords":{}}],["originaloperationfield",{"_index":1198,"title":{},"content":{"104":{"position":[[2128,25]]},"414":{"position":[[2945,25]]}},"keywords":{}}],["originaloperationgrow",{"_index":1199,"title":{},"content":{"104":{"position":[[2165,26]]},"414":{"position":[[2982,26]]}},"keywords":{}}],["originaloperationtyp",{"_index":1200,"title":{},"content":{"104":{"position":[[2202,24]]},"361":{"position":[[1234,24],[2794,24]]},"362":{"position":[[192,21]]},"364":{"position":[[620,24]]},"365":{"position":[[494,21]]},"414":{"position":[[2625,24],[3019,24]]}},"keywords":{}}],["origintyp",{"_index":538,"title":{},"content":{"57":{"position":[[348,10],[1943,13],[2400,13]]},"58":{"position":[[423,13]]},"59":{"position":[[249,10]]},"60":{"position":[[711,13]]},"61":{"position":[[862,13]]},"63":{"position":[[1654,13]]},"64":{"position":[[521,13]]},"65":{"position":[[857,13]]},"66":{"position":[[484,13]]}},"keywords":{}}],["ortho_analytic_8b",{"_index":1658,"title":{},"content":{"212":{"position":[[225,18]]},"222":{"position":[[1508,18]]}},"keywords":{}}],["ortho_analytic_8b_sr",{"_index":1646,"title":{},"content":{"212":{"position":[[0,21]]},"222":{"position":[[992,22],[1486,21],[1587,21]]},"224":{"position":[[346,23]]}},"keywords":{}}],["ortho_analytic_8b_xml",{"_index":1665,"title":{},"content":{"212":{"position":[[458,22]]},"222":{"position":[[1527,22]]}},"keywords":{}}],["ortho_udm2",{"_index":1666,"title":{},"content":{"212":{"position":[[533,11]]},"222":{"position":[[1554,11]]},"224":{"position":[[370,12]]}},"keywords":{}}],["osm",{"_index":3686,"title":{},"content":{"474":{"position":[[518,3],[1178,4]]}},"keywords":{}}],["osm.addto(this.map",{"_index":3699,"title":{},"content":{"474":{"position":[[1081,20]]}},"keywords":{}}],["other",{"_index":2475,"title":{},"content":{"288":{"position":[[157,6]]}},"keywords":{}}],["otherwis",{"_index":3964,"title":{},"content":{"490":{"position":[[79,10]]}},"keywords":{}}],["ounc",{"_index":3436,"title":{},"content":{"442":{"position":[[180,5]]}},"keywords":{}}],["out",{"_index":2189,"title":{},"content":{"258":{"position":[[304,4]]},"357":{"position":[[181,3]]}},"keywords":{}}],["outlier",{"_index":1230,"title":{},"content":{"105":{"position":[[1580,8],[1824,8],[1992,9]]},"413":{"position":[[511,9],[531,8],[860,8]]},"438":{"position":[[101,9]]}},"keywords":{}}],["output",{"_index":1178,"title":{},"content":{"104":{"position":[[1067,7],[1312,7],[1503,7],[1738,7]]},"105":{"position":[[1411,7],[3313,7]]},"135":{"position":[[404,6]]},"245":{"position":[[404,6]]},"252":{"position":[[1389,7],[1477,6]]},"307":{"position":[[159,6]]},"342":{"position":[[114,7],[243,6]]},"400":{"position":[[379,7]]},"414":{"position":[[90,6]]},"428":{"position":[[181,6]]}},"keywords":{}}],["outsid",{"_index":3207,"title":{},"content":{"399":{"position":[[126,7]]}},"keywords":{}}],["over",{"_index":567,"title":{},"content":{"57":{"position":[[1125,4]]},"59":{"position":[[1955,4]]},"63":{"position":[[867,4]]},"70":{"position":[[624,4]]},"71":{"position":[[388,4]]},"78":{"position":[[416,4]]},"79":{"position":[[414,4]]},"82":{"position":[[417,4]]},"104":{"position":[[1031,4],[1276,4],[1467,4],[1702,4]]},"105":{"position":[[3277,4]]},"209":{"position":[[145,4]]},"218":{"position":[[332,4]]},"222":{"position":[[237,4]]},"346":{"position":[[1470,4]]},"353":{"position":[[1042,4]]},"390":{"position":[[978,4]]},"415":{"position":[[515,4]]}},"keywords":{}}],["overlap",{"_index":1140,"title":{},"content":{"103":{"position":[[847,7],[1713,7]]},"287":{"position":[[282,8]]}},"keywords":{}}],["overview",{"_index":401,"title":{"46":{"position":[[7,8]]},"49":{"position":[[14,8]]},"102":{"position":[[15,8]]},"134":{"position":[[19,8]]},"208":{"position":[[16,8]]},"211":{"position":[[7,8]]},"214":{"position":[[9,8]]},"230":{"position":[[26,8]]},"231":{"position":[[26,8]]},"240":{"position":[[0,8]]},"241":{"position":[[0,8]]},"242":{"position":[[0,8]]},"307":{"position":[[0,8]]},"316":{"position":[[9,8]]},"317":{"position":[[6,8]]},"322":{"position":[[0,8]]},"337":{"position":[[9,8]]},"338":{"position":[[6,8]]},"339":{"position":[[24,8]]},"359":{"position":[[0,8]]},"369":{"position":[[11,8]]},"386":{"position":[[17,8]]},"404":{"position":[[7,8]]},"410":{"position":[[0,8]]},"417":{"position":[[24,8]]},"432":{"position":[[0,8]]},"452":{"position":[[9,8]]},"491":{"position":[[10,8]]},"506":{"position":[[8,8]]}},"content":{"47":{"position":[[878,10]]},"129":{"position":[[503,8]]},"498":{"position":[[31,9]]}},"keywords":{}}],["overwrit",{"_index":2106,"title":{},"content":{"246":{"position":[[852,11]]}},"keywords":{}}],["own",{"_index":1273,"title":{},"content":{"116":{"position":[[214,4]]},"117":{"position":[[183,4]]}},"keywords":{}}],["owner",{"_index":357,"title":{"119":{"position":[[8,5]]},"120":{"position":[[8,5]]},"121":{"position":[[14,5]]},"122":{"position":[[14,5]]}},"content":{"18":{"position":[[212,7]]},"19":{"position":[[261,7]]},"20":{"position":[[232,7]]},"22":{"position":[[189,7]]},"23":{"position":[[189,7]]},"25":{"position":[[458,7]]},"26":{"position":[[373,7]]},"28":{"position":[[384,7]]},"29":{"position":[[443,7]]},"31":{"position":[[311,7]]},"32":{"position":[[370,7]]},"33":{"position":[[320,7]]},"34":{"position":[[379,7]]},"35":{"position":[[386,7]]},"36":{"position":[[248,7]]},"37":{"position":[[304,7]]},"41":{"position":[[337,6]]},"42":{"position":[[330,6]]},"43":{"position":[[267,6]]},"44":{"position":[[292,6]]},"45":{"position":[[293,6]]},"109":{"position":[[48,6],[261,6],[300,7]]},"110":{"position":[[376,7]]},"111":{"position":[[767,7]]},"112":{"position":[[74,6],[585,6],[624,7]]},"113":{"position":[[710,7]]},"114":{"position":[[184,6]]},"116":{"position":[[27,5],[134,7]]},"117":{"position":[[14,5],[55,5],[166,7],[215,5],[245,5],[288,5],[329,5],[340,5],[1158,5]]},"118":{"position":[[81,5],[179,5],[314,5],[413,5]]},"119":{"position":[[80,6]]},"121":{"position":[[105,7]]},"122":{"position":[[295,6]]},"123":{"position":[[162,5]]},"124":{"position":[[217,6]]},"125":{"position":[[176,6]]},"233":{"position":[[105,5]]},"247":{"position":[[359,5]]},"251":{"position":[[945,5],[1005,6]]},"252":{"position":[[19,5],[439,6]]},"301":{"position":[[647,6],[1140,6]]},"302":{"position":[[772,6],[1297,6]]},"303":{"position":[[865,6],[1378,6]]},"304":{"position":[[942,6],[1477,6]]},"305":{"position":[[835,6],[1322,6]]},"493":{"position":[[81,6]]},"498":{"position":[[201,6]]}},"keywords":{}}],["owner'",{"_index":1259,"title":{"109":{"position":[[8,7]]},"112":{"position":[[11,7]]}},"content":{"107":{"position":[[334,7],[496,7]]},"111":{"position":[[240,7]]}},"keywords":{}}],["owners/shar",{"_index":1291,"title":{},"content":{"118":{"position":[[132,14],[237,14],[366,14],[473,14],[582,14],[728,14],[869,14],[1021,14],[1162,14]]},"119":{"position":[[29,14],[299,14]]},"120":{"position":[[29,14],[320,14]]},"121":{"position":[[30,14],[319,14]]},"122":{"position":[[31,14],[607,14]]},"123":{"position":[[29,14],[340,14]]},"124":{"position":[[30,14],[527,14]]},"125":{"position":[[31,14],[401,14]]},"126":{"position":[[30,14],[336,14]]},"127":{"position":[[32,14],[282,14]]}},"keywords":{}}],["p",{"_index":2778,"title":{},"content":{"338":{"position":[[2013,2],[2095,4],[2100,2],[2325,4],[2477,2],[2574,4],[2579,3],[2639,4]]},"485":{"position":[[220,5],[236,6],[642,1]]}},"keywords":{}}],["p1309wam",{"_index":2901,"title":{},"content":{"357":{"position":[[1073,8]]}},"keywords":{}}],["p7326",{"_index":2161,"title":{},"content":{"253":{"position":[[762,5]]}},"keywords":{}}],["p></p",{"_index":3888,"title":{},"content":{"485":{"position":[[387,7]]}},"keywords":{}}],["p>provid",{"_index":2792,"title":{},"content":{"338":{"position":[[2387,12]]}},"keywords":{}}],["packag",{"_index":2582,"title":{},"content":{"313":{"position":[[373,7]]},"314":{"position":[[366,7]]},"334":{"position":[[373,7]]},"335":{"position":[[363,7]]}},"keywords":{}}],["padrão",{"_index":787,"title":{},"content":{"71":{"position":[[762,8]]}},"keywords":{}}],["page",{"_index":422,"title":{},"content":{"47":{"position":[[889,4]]},"57":{"position":[[837,6],[871,5],[903,4],[980,4],[1419,4],[1453,4]]},"59":{"position":[[1667,6],[1701,5],[1733,4],[1810,4]]},"63":{"position":[[579,6],[613,5],[645,4],[722,4],[1145,4],[1179,4]]},"65":{"position":[[198,6],[232,5],[264,4],[341,4],[381,4],[415,4]]},"70":{"position":[[428,4],[446,4],[477,4]]},"71":{"position":[[149,4],[180,4],[257,4]]},"78":{"position":[[220,4],[238,4],[269,4]]},"79":{"position":[[175,4],[206,4],[283,4]]},"82":{"position":[[221,4],[239,4],[270,4]]},"84":{"position":[[65,4]]},"88":{"position":[[39,5],[221,6],[255,5],[287,4],[364,4],[404,4],[438,4]]},"104":{"position":[[2634,5]]},"137":{"position":[[17,4]]},"218":{"position":[[21,5]]},"220":{"position":[[249,4],[1091,4],[1104,4],[1192,4]]},"228":{"position":[[65,4]]},"230":{"position":[[65,4]]},"232":{"position":[[343,5]]},"235":{"position":[[65,4]]},"236":{"position":[[65,4]]},"239":{"position":[[21,5],[678,6]]},"240":{"position":[[65,4]]},"249":{"position":[[65,4]]},"255":{"position":[[23,5],[262,4],[325,4],[399,6]]},"260":{"position":[[20,5],[364,4],[427,4],[501,6]]},"264":{"position":[[66,5],[935,6],[969,5],[1001,4],[1078,4]]},"277":{"position":[[19,5],[292,4],[354,4],[416,6]]},"282":{"position":[[21,5],[81,6],[254,4],[316,4]]},"316":{"position":[[1057,4]]},"328":{"position":[[315,5]]},"330":{"position":[[321,5]]},"331":{"position":[[311,5]]},"337":{"position":[[826,4]]},"346":{"position":[[19,5],[1196,6],[1230,5],[1262,4],[1339,4],[1747,4],[1781,4]]},"357":{"position":[[5,4]]},"359":{"position":[[5,4]]},"387":{"position":[[550,5]]},"390":{"position":[[24,5],[690,6],[724,5],[756,4],[833,4],[1200,4],[1234,4]]},"404":{"position":[[65,4]]},"410":{"position":[[5,4]]},"431":{"position":[[65,4]]},"432":{"position":[[65,4]]},"452":{"position":[[65,4]]},"453":{"position":[[65,4]]},"456":{"position":[[92,4],[107,4],[158,5],[195,5],[254,4],[286,4],[320,4],[328,4],[497,5]]},"473":{"position":[[111,4]]},"480":{"position":[[65,5]]},"482":{"position":[[46,5],[66,4]]},"488":{"position":[[3095,5]]}},"keywords":{}}],["pagin",{"_index":3457,"title":{"456":{"position":[[0,10]]}},"content":{"456":{"position":[[50,10]]}},"keywords":{}}],["paint",{"_index":3954,"title":{},"content":{"488":{"position":[[2572,8]]}},"keywords":{}}],["pair",{"_index":2087,"title":{},"content":{"244":{"position":[[2007,4]]},"245":{"position":[[1014,4]]}},"keywords":{}}],["param",{"_index":3529,"title":{},"content":{"467":{"position":[[3830,6],[3978,6]]},"480":{"position":[[6411,5],[6488,6],[6778,6]]}},"keywords":{}}],["paramet",{"_index":185,"title":{},"content":{"5":{"position":[[466,9]]},"57":{"position":[[132,10],[176,9],[805,10],[1442,10]]},"59":{"position":[[153,10],[202,9],[1635,10]]},"63":{"position":[[158,9],[547,10],[1168,10]]},"65":{"position":[[166,10],[404,10]]},"70":{"position":[[298,9]]},"71":{"position":[[88,9]]},"72":{"position":[[217,9]]},"78":{"position":[[90,9]]},"79":{"position":[[90,9]]},"80":{"position":[[164,9]]},"82":{"position":[[91,9]]},"83":{"position":[[164,9]]},"88":{"position":[[89,9],[189,10],[427,10]]},"89":{"position":[[90,9]]},"95":{"position":[[138,9]]},"96":{"position":[[122,9]]},"101":{"position":[[381,10],[420,9]]},"103":{"position":[[1217,10]]},"130":{"position":[[427,11]]},"220":{"position":[[382,11],[394,9]]},"239":{"position":[[148,11],[183,9],[646,10]]},"255":{"position":[[104,11],[363,10]]},"260":{"position":[[101,11],[465,10]]},"264":{"position":[[208,11],[243,9],[903,10]]},"269":{"position":[[429,10]]},"277":{"position":[[78,11],[380,10]]},"282":{"position":[[66,10]]},"346":{"position":[[141,11],[176,9],[1164,10],[1770,10]]},"378":{"position":[[2476,9]]},"379":{"position":[[2525,9]]},"380":{"position":[[2076,9]]},"382":{"position":[[461,9],[901,10]]},"383":{"position":[[464,9],[904,10]]},"384":{"position":[[203,9],[643,10]]},"390":{"position":[[151,11],[186,9],[658,10],[1223,10]]},"429":{"position":[[475,9]]},"456":{"position":[[138,10]]},"473":{"position":[[6127,9],[6513,10]]},"480":{"position":[[2657,9],[4296,9],[4342,9],[9088,9]]},"484":{"position":[[36,10]]},"488":{"position":[[47,10]]},"489":{"position":[[51,10]]},"519":{"position":[[235,9]]},"520":{"position":[[237,9]]},"521":{"position":[[224,9]]},"522":{"position":[[226,9]]},"523":{"position":[[440,9]]},"524":{"position":[[239,9]]},"525":{"position":[[429,9]]},"526":{"position":[[228,9]]}},"keywords":{}}],["parent",{"_index":1083,"title":{},"content":{"95":{"position":[[543,6]]}},"keywords":{}}],["pars",{"_index":3570,"title":{},"content":{"467":{"position":[[6296,5]]},"480":{"position":[[10921,5]]}},"keywords":{}}],["parsefloat(e[1].split(',')[0",{"_index":3936,"title":{},"content":{"488":{"position":[[1723,31]]}},"keywords":{}}],["parsefloat(e[1].split(',')[1",{"_index":3938,"title":{},"content":{"488":{"position":[[1764,31]]}},"keywords":{}}],["parsefloat(e[2].split(',')[0",{"_index":3939,"title":{},"content":{"488":{"position":[[1804,31]]}},"keywords":{}}],["parsefloat(e[2].split(',')[1",{"_index":3941,"title":{},"content":{"488":{"position":[[1845,31]]}},"keywords":{}}],["parsefloat(e[3].split(',')[0",{"_index":3943,"title":{},"content":{"488":{"position":[[1885,31]]}},"keywords":{}}],["parsefloat(e[3].split(',')[1",{"_index":3945,"title":{},"content":{"488":{"position":[[1926,31]]}},"keywords":{}}],["parsefloat(e[4].split(',')[0",{"_index":3946,"title":{},"content":{"488":{"position":[[1966,31]]}},"keywords":{}}],["parsefloat(e[4].split(',')[1",{"_index":3948,"title":{},"content":{"488":{"position":[[2007,31]]}},"keywords":{}}],["parsefloat(resultado[0].trim",{"_index":3837,"title":{},"content":{"480":{"position":[[11302,32],[11435,31]]}},"keywords":{}}],["parsefloat(resultado[1].trim",{"_index":3843,"title":{},"content":{"480":{"position":[[11489,31]]}},"keywords":{}}],["parsefloat(resultado[3].trim",{"_index":3839,"title":{},"content":{"480":{"position":[[11345,32],[11568,31]]}},"keywords":{}}],["parsefloat(resultado[4].trim",{"_index":3847,"title":{},"content":{"480":{"position":[[11622,31]]}},"keywords":{}}],["parseint(e.height",{"_index":3844,"title":{},"content":{"480":{"position":[[11523,18],[11656,18]]}},"keywords":{}}],["parseint(e.width",{"_index":3842,"title":{},"content":{"480":{"position":[[11469,17],[11602,17]]}},"keywords":{}}],["parser",{"_index":3829,"title":{},"content":{"480":{"position":[[10988,6]]}},"keywords":{}}],["parser.parsestring(data",{"_index":3833,"title":{},"content":{"480":{"position":[[11052,24]]}},"keywords":{}}],["parsley",{"_index":1906,"title":{},"content":{"229":{"position":[[1556,9]]}},"keywords":{}}],["part",{"_index":779,"title":{},"content":{"71":{"position":[[124,4]]},"72":{"position":[[253,4]]},"79":{"position":[[126,4]]},"80":{"position":[[200,4]]},"83":{"position":[[200,4]]},"105":{"position":[[2235,4],[2363,4]]},"468":{"position":[[13,5]]},"480":{"position":[[12149,4]]},"481":{"position":[[13,5]]},"482":{"position":[[112,4]]}},"keywords":{}}],["parti",{"_index":408,"title":{},"content":{"47":{"position":[[213,5]]},"226":{"position":[[213,5]]},"252":{"position":[[222,5],[464,5]]},"354":{"position":[[213,5]]},"402":{"position":[[213,5]]},"493":{"position":[[106,5]]}},"keywords":{}}],["partial",{"_index":790,"title":{},"content":{"72":{"position":[[51,7]]},"80":{"position":[[53,7]]},"83":{"position":[[54,7]]},"103":{"position":[[237,9]]}},"keywords":{}}],["pass",{"_index":556,"title":{},"content":{"57":{"position":[[795,4],[1085,6]]},"59":{"position":[[1625,4],[1915,6]]},"63":{"position":[[537,4],[827,6]]},"65":{"position":[[156,4]]},"70":{"position":[[598,6]]},"71":{"position":[[362,6]]},"78":{"position":[[390,6]]},"79":{"position":[[388,6]]},"82":{"position":[[391,6]]},"88":{"position":[[179,4]]},"103":{"position":[[1185,6]]},"218":{"position":[[292,6]]},"239":{"position":[[129,7],[636,4]]},"255":{"position":[[85,7]]},"260":{"position":[[82,7]]},"264":{"position":[[189,7],[893,4]]},"277":{"position":[[62,4]]},"279":{"position":[[89,4]]},"280":{"position":[[106,4]]},"284":{"position":[[93,4]]},"285":{"position":[[110,4]]},"338":{"position":[[3043,4]]},"346":{"position":[[122,7],[1154,4],[1444,6]]},"353":{"position":[[434,6]]},"362":{"position":[[548,4]]},"365":{"position":[[1583,4]]},"390":{"position":[[132,7],[648,4],[938,6]]},"474":{"position":[[342,7]]},"486":{"position":[[279,7]]}},"keywords":{}}],["passwd",{"_index":3495,"title":{},"content":{"467":{"position":[[627,6],[810,7]]},"480":{"position":[[1781,6],[1915,7]]}},"keywords":{}}],["password",{"_index":1586,"title":{},"content":{"147":{"position":[[624,11]]},"148":{"position":[[197,11],[422,11],[751,11]]},"190":{"position":[[134,11],[342,11]]},"423":{"position":[[98,8]]},"467":{"position":[[150,8],[800,9]]},"473":{"position":[[507,9],[1179,8],[1236,8],[1362,8],[1515,8],[1996,9],[2106,9],[2116,9]]},"480":{"position":[[1330,8],[1905,9]]},"483":{"position":[[353,8],[439,9],[449,9]]}},"keywords":{}}],["password\").v",{"_index":3877,"title":{},"content":{"483":{"position":[[364,21]]}},"keywords":{}}],["password\":\"password",{"_index":434,"title":{},"content":{"48":{"position":[[328,22]]},"423":{"position":[[372,22]]}},"keywords":{}}],["password).subscribe((data",{"_index":3612,"title":{},"content":{"473":{"position":[[1597,26]]}},"keywords":{}}],["past",{"_index":1795,"title":{},"content":{"223":{"position":[[203,5]]},"244":{"position":[[1594,5]]},"245":{"position":[[616,5]]},"316":{"position":[[845,5]]},"508":{"position":[[83,4]]}},"keywords":{}}],["pastur",{"_index":2155,"title":{},"content":{"253":{"position":[[434,7]]}},"keywords":{}}],["patch",{"_index":524,"title":{},"content":{"56":{"position":[[319,5]]},"61":{"position":[[1,5],[449,5]]},"107":{"position":[[518,5],[566,5]]},"112":{"position":[[1,5],[323,5]]},"113":{"position":[[1,5],[393,5]]},"118":{"position":[[443,5],[839,5]]},"122":{"position":[[1,5],[462,5]]},"125":{"position":[[1,5],[235,5]]},"126":{"position":[[231,5]]},"258":{"position":[[503,5]]},"263":{"position":[[1,5],[801,5]]}},"keywords":{}}],["path",{"_index":1738,"title":{},"content":{"220":{"position":[[2432,4]]},"480":{"position":[[5486,4],[5697,4]]},"482":{"position":[[78,5]]}},"keywords":{}}],["path.resolve(`./${files.upload.nam",{"_index":3769,"title":{},"content":{"480":{"position":[[5625,39]]}},"keywords":{}}],["paylaod",{"_index":235,"title":{},"content":{"5":{"position":[[1747,7]]}},"keywords":{}}],["payload",{"_index":195,"title":{},"content":{"5":{"position":[[718,7]]},"222":{"position":[[855,7],[1757,7]]}},"keywords":{}}],["pea",{"_index":1822,"title":{},"content":{"229":{"position":[[240,5],[253,5],[625,5],[1315,5],[1511,5],[2603,4]]},"320":{"position":[[399,4],[519,4],[860,4],[1133,4],[1836,3],[1865,4],[1873,5]]}},"keywords":{}}],["peach",{"_index":1954,"title":{},"content":{"229":{"position":[[2243,9]]}},"keywords":{}}],["peanut",{"_index":1907,"title":{},"content":{"229":{"position":[[1566,9]]},"320":{"position":[[1854,7]]}},"keywords":{}}],["pear",{"_index":1953,"title":{},"content":{"229":{"position":[[2235,7]]}},"keywords":{}}],["pearl",{"_index":2710,"title":{},"content":{"320":{"position":[[1656,5]]}},"keywords":{}}],["pecan",{"_index":1984,"title":{},"content":{"229":{"position":[[2668,7]]},"320":{"position":[[1888,5]]}},"keywords":{}}],["pend",{"_index":1308,"title":{},"content":{"120":{"position":[[433,8],[467,9]]},"121":{"position":[[460,9]]},"122":{"position":[[266,7]]},"269":{"position":[[796,10]]},"308":{"position":[[260,7]]}},"keywords":{}}],["per",{"_index":1213,"title":{},"content":{"105":{"position":[[366,3]]},"220":{"position":[[1188,3]]},"233":{"position":[[418,3]]},"320":{"position":[[1896,3]]},"357":{"position":[[1433,3]]},"517":{"position":[[1136,3]]}},"keywords":{}}],["percent",{"_index":1137,"title":{},"content":{"103":{"position":[[770,8]]},"209":{"position":[[550,7]]}},"keywords":{}}],["percentag",{"_index":1131,"title":{},"content":{"103":{"position":[[560,10]]},"104":{"position":[[625,10]]},"209":{"position":[[605,11]]},"215":{"position":[[78,11]]},"220":{"position":[[867,10],[984,10],[2096,10],[2555,10]]},"266":{"position":[[201,10]]},"349":{"position":[[742,11]]},"361":{"position":[[1653,12],[2308,12]]},"368":{"position":[[170,13]]},"395":{"position":[[752,11]]},"414":{"position":[[2045,12],[2161,12]]},"416":{"position":[[173,13]]}},"keywords":{}}],["perform",{"_index":2013,"title":{},"content":{"233":{"position":[[512,9]]},"251":{"position":[[514,11]]},"253":{"position":[[813,9]]},"338":{"position":[[3613,11]]},"353":{"position":[[79,9],[1060,10]]},"365":{"position":[[1284,11]]},"387":{"position":[[135,9]]},"425":{"position":[[113,9]]}},"keywords":{}}],["perimet",{"_index":1775,"title":{},"content":{"222":{"position":[[1918,9]]}},"keywords":{}}],["period",{"_index":1245,"title":{},"content":{"105":{"position":[[2465,6]]},"252":{"position":[[731,13]]}},"keywords":{}}],["permiss",{"_index":326,"title":{"15":{"position":[[20,10]]},"123":{"position":[[13,11]]},"124":{"position":[[18,11]]},"125":{"position":[[16,11]]},"127":{"position":[[24,11]]}},"content":{"11":{"position":[[271,11]]},"15":{"position":[[58,11]]},"116":{"position":[[42,10]]},"117":{"position":[[37,10],[763,12],[790,11],[878,10],[1009,10]]},"118":{"position":[[542,11],[687,11],[827,11],[1119,11]]},"123":{"position":[[124,11],[441,14]]},"124":{"position":[[120,10],[252,11],[658,14]]},"125":{"position":[[136,11],[543,14]]},"127":{"position":[[112,11]]},"418":{"position":[[291,13]]}},"keywords":{}}],["permissions\":{\"fields\":{\"actions\":[\"read\"]},\"operations\":{\"actions\":[\"read\"],\"types\":[\"pl",{"_index":1313,"title":{},"content":{"124":{"position":[[366,103]]}},"keywords":{}}],["permissions/{leafuserid",{"_index":1297,"title":{},"content":{"118":{"position":[[644,24],[786,24],[1226,24]]},"123":{"position":[[91,24],[398,25]]},"124":{"position":[[88,24],[585,25]]},"127":{"position":[[77,24],[340,25]]}},"keywords":{}}],["permissions/{leafuserid}/oper",{"_index":1316,"title":{},"content":{"125":{"position":[[459,36]]}},"keywords":{}}],["permissions/{leafuserid}/{resourc",{"_index":1299,"title":{},"content":{"118":{"position":[[927,35]]},"125":{"position":[[89,35]]}},"keywords":{}}],["permit",{"_index":2018,"title":{},"content":{"238":{"position":[[13,7]]}},"keywords":{}}],["person",{"_index":2811,"title":{},"content":{"338":{"position":[[3335,8]]}},"keywords":{}}],["pesticid",{"_index":2164,"title":{},"content":{"253":{"position":[[1042,11]]}},"keywords":{}}],["pf",{"_index":1398,"title":{},"content":{"130":{"position":[[2687,2],[2701,2],[2710,2]]}},"keywords":{}}],["pfadvantag",{"_index":1384,"title":{},"content":{"130":{"position":[[2345,11]]}},"keywords":{}}],["pho",{"_index":957,"title":{},"content":{"82":{"position":[[1980,4]]},"83":{"position":[[1802,4]]}},"keywords":{}}],["phone",{"_index":2103,"title":{},"content":{"246":{"position":[[387,7]]},"498":{"position":[[643,8]]},"500":{"position":[[267,8]]},"501":{"position":[[470,8]]},"502":{"position":[[179,8],[830,8],[1002,8]]},"503":{"position":[[144,8],[703,8],[875,8]]}},"keywords":{}}],["picker",{"_index":2564,"title":{},"content":{"308":{"position":[[38,6]]}},"keywords":{}}],["pickler",{"_index":1908,"title":{},"content":{"229":{"position":[[1576,10]]}},"keywords":{}}],["piec",{"_index":892,"title":{},"content":{"78":{"position":[[787,7]]},"80":{"position":[[664,7]]},"253":{"position":[[1152,6]]},"428":{"position":[[298,6],[369,7]]}},"keywords":{}}],["pineappl",{"_index":937,"title":{},"content":{"82":{"position":[[982,11]]},"83":{"position":[[804,11]]}},"keywords":{}}],["pixel",{"_index":1678,"title":{},"content":{"212":{"position":[[741,6]]}},"keywords":{}}],["place",{"_index":2162,"title":{},"content":{"253":{"position":[[936,7]]},"349":{"position":[[956,6]]},"395":{"position":[[966,6]]}},"keywords":{}}],["planet",{"_index":1645,"title":{"211":{"position":[[0,6]]},"224":{"position":[[21,6]]},"404":{"position":[[0,6]]}},"content":{"213":{"position":[[13,6]]},"218":{"position":[[802,8]]},"219":{"position":[[487,8]]},"220":{"position":[[1241,6],[2180,7],[2326,6]]},"222":{"position":[[964,8],[1377,6]]},"224":{"position":[[57,7]]},"441":{"position":[[76,6],[125,6]]},"442":{"position":[[117,7]]},"451":{"position":[[345,7]]},"473":{"position":[[5529,9]]}},"keywords":{}}],["planetassettyp",{"_index":1800,"title":{},"content":{"224":{"position":[[324,19]]}},"keywords":{}}],["planetitemtyp",{"_index":1801,"title":{},"content":{"224":{"position":[[386,18]]}},"keywords":{}}],["planetscop",{"_index":1637,"title":{},"content":{"210":{"position":[[47,11]]},"212":{"position":[[22,11]]}},"keywords":{}}],["planetscope'",{"_index":3455,"title":{},"content":{"451":{"position":[[405,13]]}},"keywords":{}}],["planetscopespati",{"_index":1639,"title":{},"content":{"210":{"position":[[147,18]]}},"keywords":{}}],["plant",{"_index":693,"title":{},"content":{"61":{"position":[[366,10],[1117,10]]},"124":{"position":[[762,9],[865,7]]},"125":{"position":[[647,10],[763,7]]},"130":{"position":[[2007,8],[3181,8],[3403,8]]},"248":{"position":[[226,9]]},"251":{"position":[[307,10],[617,8]]},"252":{"position":[[1214,8],[1415,9]]},"253":{"position":[[412,7],[667,5],[846,9],[915,8]]},"264":{"position":[[318,10]]},"342":{"position":[[140,9]]},"343":{"position":[[201,10]]},"346":{"position":[[849,7],[2127,10]]},"347":{"position":[[256,10]]},"348":{"position":[[291,10]]},"350":{"position":[[282,10]]},"357":{"position":[[107,9],[843,10]]},"362":{"position":[[32,10],[182,9]]},"364":{"position":[[609,10]]},"365":{"position":[[484,9],[704,7],[767,7],[1023,7],[1096,7]]},"387":{"position":[[90,10]]},"390":{"position":[[558,8],[1727,10]]},"391":{"position":[[489,10]]},"392":{"position":[[306,10]]},"398":{"position":[[298,10]]},"436":{"position":[[22,8],[71,7]]},"443":{"position":[[87,8]]}},"keywords":{}}],["plantedappliedharvestedtillag",{"_index":2925,"title":{},"content":{"361":{"position":[[106,30]]},"362":{"position":[[81,30]]},"364":{"position":[[223,30]]},"365":{"position":[[0,30]]}},"keywords":{}}],["plantedharvestedappliedtillag",{"_index":3079,"title":{},"content":{"368":{"position":[[80,30]]},"414":{"position":[[295,30]]},"416":{"position":[[83,30]]}},"keywords":{}}],["planter",{"_index":2171,"title":{},"content":{"253":{"position":[[1214,8]]},"365":{"position":[[1317,7]]}},"keywords":{}}],["platform",{"_index":2035,"title":{},"content":{"242":{"position":[[238,10]]},"252":{"position":[[228,9],[256,8]]},"263":{"position":[[145,9]]},"498":{"position":[[313,8]]}},"keywords":{}}],["play",{"_index":42,"title":{},"content":{"0":{"position":[[539,4],[1274,4]]}},"keywords":{}}],["pleas",{"_index":65,"title":{},"content":{"2":{"position":[[124,6]]},"86":{"position":[[99,6]]},"130":{"position":[[6167,6],[6262,6]]},"133":{"position":[[674,6]]},"135":{"position":[[562,6]]},"242":{"position":[[486,6]]},"244":{"position":[[660,7]]},"256":{"position":[[326,6]]},"320":{"position":[[3406,6]]},"343":{"position":[[361,6]]},"387":{"position":[[644,6]]},"419":{"position":[[64,6]]},"422":{"position":[[101,6],[407,6]]},"505":{"position":[[217,6]]},"512":{"position":[[133,6]]},"523":{"position":[[237,6]]},"525":{"position":[[226,6]]}},"keywords":{}}],["plot",{"_index":3203,"title":{},"content":{"396":{"position":[[1168,8]]},"467":{"position":[[2649,4]]},"473":{"position":[[3400,4]]},"480":{"position":[[12638,4]]}},"keywords":{}}],["png",{"_index":1694,"title":{},"content":{"220":{"position":[[117,4],[2752,3]]},"239":{"position":[[908,3]]},"316":{"position":[[624,4]]},"337":{"position":[[583,4]]},"349":{"position":[[39,3],[1192,3]]},"367":{"position":[[82,3]]},"395":{"position":[[44,3],[1202,3]]},"396":{"position":[[46,3]]},"467":{"position":[[4920,5]]}},"keywords":{}}],["pngcolor",{"_index":1696,"title":{},"content":{"220":{"position":[[157,12]]}},"keywords":{}}],["pngraw",{"_index":1697,"title":{},"content":{"220":{"position":[[190,6]]}},"keywords":{}}],["point",{"_index":1136,"title":{"366":{"position":[[6,6]]}},"content":{"103":{"position":[[746,5],[1620,5]]},"104":{"position":[[79,6],[1536,6]]},"105":{"position":[[1472,6],[2046,6]]},"252":{"position":[[1341,5]]},"342":{"position":[[66,5]]},"353":{"position":[[186,6]]},"360":{"position":[[72,5]]},"364":{"position":[[92,5],[201,5],[302,8]]},"365":{"position":[[83,5],[97,5],[282,5],[334,5],[398,5],[644,5],[715,5],[822,5],[1038,5],[1107,5]]},"366":{"position":[[4,6],[338,6]]},"399":{"position":[[75,6]]},"413":{"position":[[343,6],[647,6]]},"451":{"position":[[145,6],[249,5],[273,6]]},"467":{"position":[[2678,5]]},"480":{"position":[[11272,5],[11405,5]]},"488":{"position":[[1035,6],[1621,6],[1680,6]]},"509":{"position":[[15,5]]},"511":{"position":[[1438,5],[1925,6]]},"513":{"position":[[15,5]]},"515":{"position":[[1421,5],[1908,6]]},"519":{"position":[[3262,8]]},"520":{"position":[[3804,8]]},"521":{"position":[[3228,8]]},"522":{"position":[[3770,8]]},"523":{"position":[[3450,8]]},"524":{"position":[[3636,8]]},"525":{"position":[[3416,8]]},"526":{"position":[[3602,8]]}},"keywords":{}}],["pointer",{"_index":3907,"title":{},"content":{"487":{"position":[[979,8]]},"488":{"position":[[1470,8]]}},"keywords":{}}],["points.foreach((",{"_index":3931,"title":{},"content":{"488":{"position":[[1345,18]]}},"keywords":{}}],["polish",{"_index":1973,"title":{},"content":{"229":{"position":[[2513,7]]},"320":{"position":[[500,6]]}},"keywords":{}}],["poll",{"_index":2135,"title":{},"content":{"252":{"position":[[723,7]]}},"keywords":{}}],["polygon",{"_index":1626,"title":{},"content":{"209":{"position":[[386,8]]},"473":{"position":[[4449,10],[4544,7]]}},"keywords":{}}],["polygonstyl",{"_index":3643,"title":{},"content":{"473":{"position":[[4556,12]]}},"keywords":{}}],["polygonstyle).addto(this.bound",{"_index":3651,"title":{},"content":{"473":{"position":[[4900,33]]}},"keywords":{}}],["pool",{"_index":2822,"title":{},"content":{"340":{"position":[[570,4]]}},"keywords":{}}],["popcorn",{"_index":1823,"title":{},"content":{"229":{"position":[[267,8],[283,8],[641,8]]},"320":{"position":[[880,7],[1912,7],[3134,7],[3280,7]]}},"keywords":{}}],["poppi",{"_index":1909,"title":{},"content":{"229":{"position":[[1587,6]]}},"keywords":{}}],["popul",{"_index":3400,"title":{},"content":{"424":{"position":[[57,9]]}},"keywords":{}}],["popular",{"_index":70,"title":{},"content":{"2":{"position":[[197,7]]}},"keywords":{}}],["port",{"_index":3713,"title":{},"content":{"479":{"position":[[171,4],[501,4]]}},"keywords":{}}],["port=443",{"_index":298,"title":{},"content":{"8":{"position":[[1719,10]]}},"keywords":{}}],["posit",{"_index":3708,"title":{},"content":{"474":{"position":[[1528,9]]}},"keywords":{}}],["possibl",{"_index":170,"title":{},"content":{"5":{"position":[[204,8]]},"103":{"position":[[835,8],[1701,8]]},"220":{"position":[[326,8]]},"239":{"position":[[95,8]]},"255":{"position":[[51,8]]},"260":{"position":[[48,8]]},"264":{"position":[[155,8]]},"269":{"position":[[910,8]]},"277":{"position":[[50,8]]},"279":{"position":[[77,8]]},"280":{"position":[[94,8]]},"284":{"position":[[81,8]]},"285":{"position":[[98,8]]},"346":{"position":[[88,8]]},"390":{"position":[[98,8]]},"408":{"position":[[187,8]]},"443":{"position":[[173,8]]}},"keywords":{}}],["post",{"_index":161,"title":{},"content":{"5":{"position":[[1,4],[1653,4],[2223,4]]},"47":{"position":[[827,4]]},"48":{"position":[[254,4]]},"56":{"position":[[268,4]]},"60":{"position":[[1,4],[314,4]]},"86":{"position":[[492,4]]},"89":{"position":[[1,4],[767,4]]},"92":{"position":[[112,4],[335,4],[479,4],[608,4],[681,4]]},"93":{"position":[[1,4],[516,4]]},"95":{"position":[[1,4],[728,4]]},"98":{"position":[[1,4],[571,4]]},"100":{"position":[[1,4],[520,4]]},"101":{"position":[[1,4],[871,4]]},"107":{"position":[[458,4]]},"111":{"position":[[1,4],[451,4]]},"118":{"position":[[337,4],[699,4],[992,4]]},"121":{"position":[[1,4],[165,4]]},"124":{"position":[[1,4],[316,4]]},"126":{"position":[[1,4]]},"129":{"position":[[205,4]]},"130":{"position":[[1,4],[4478,4]]},"141":{"position":[[1,4],[257,4]]},"148":{"position":[[1,4],[288,4]]},"149":{"position":[[1,4]]},"155":{"position":[[1,4],[271,4]]},"162":{"position":[[1,4],[297,4]]},"169":{"position":[[1,4],[284,4]]},"176":{"position":[[1,4],[244,4]]},"183":{"position":[[1,4],[229,4]]},"190":{"position":[[1,4],[232,4]]},"197":{"position":[[1,4],[254,4]]},"204":{"position":[[1,4],[233,4]]},"222":{"position":[[1,4],[1661,4]]},"225":{"position":[[1,4],[157,4]]},"234":{"position":[[160,4]]},"238":{"position":[[298,4]]},"239":{"position":[[1,4]]},"258":{"position":[[464,4],[749,4],[819,4],[874,4],[930,4],[1460,4],[1635,4]]},"262":{"position":[[1,4],[890,4]]},"266":{"position":[[1,4],[1191,4]]},"267":{"position":[[1,4],[340,4]]},"268":{"position":[[1,4],[530,4]]},"269":{"position":[[1,4],[529,4]]},"279":{"position":[[1,4],[267,4]]},"284":{"position":[[1,4],[236,4]]},"287":{"position":[[2535,4],[2582,4],[2639,4],[2694,4]]},"290":{"position":[[393,4]]},"291":{"position":[[409,4]]},"296":{"position":[[209,4]]},"298":{"position":[[1,4]]},"301":{"position":[[370,4],[1471,4],[1662,4]]},"302":{"position":[[429,4],[1644,4],[1872,4]]},"303":{"position":[[562,4],[1729,4],[1961,4]]},"304":{"position":[[595,4],[1839,4],[2054,4]]},"305":{"position":[[568,4],[1650,4],[1868,4]]},"328":{"position":[[509,4],[871,4]]},"329":{"position":[[312,4],[540,4]]},"330":{"position":[[509,4],[897,4]]},"331":{"position":[[551,4],[755,4]]},"332":{"position":[[519,4],[737,4]]},"345":{"position":[[469,4]]},"353":{"position":[[1,4],[19,5],[776,4]]},"378":{"position":[[237,4],[2027,4],[2714,4]]},"379":{"position":[[268,4],[2118,4],[2751,4]]},"380":{"position":[[236,4],[1929,4],[2274,4]]},"381":{"position":[[316,4],[378,4],[442,4]]},"382":{"position":[[1,4],[1293,4]]},"383":{"position":[[1,4],[1284,4]]},"384":{"position":[[1,4],[994,4]]},"385":{"position":[[911,4]]},"389":{"position":[[717,4],[778,4],[838,4]]},"399":{"position":[[1,4],[209,4]]},"400":{"position":[[1,4],[178,4]]},"401":{"position":[[1,4],[239,4]]},"423":{"position":[[298,4]]},"447":{"position":[[352,4]]},"467":{"position":[[252,4],[753,4],[5611,4],[5861,4],[6751,4],[6959,5]]},"480":{"position":[[1432,4],[2457,4],[6448,4]]},"483":{"position":[[124,4],[401,7]]},"484":{"position":[[89,4],[404,7]]},"486":{"position":[[118,4],[386,7]]},"488":{"position":[[737,4],[926,7]]},"498":{"position":[[1193,4]]},"502":{"position":[[1,4],[733,4]]}},"keywords":{}}],["post(endpoint",{"_index":3497,"title":{},"content":{"467":{"position":[[846,15],[7177,15]]},"480":{"position":[[1951,15],[3116,15],[6745,15]]}},"keywords":{}}],["post/get",{"_index":3480,"title":{},"content":{"466":{"position":[[147,8]]},"479":{"position":[[225,8]]}},"keywords":{}}],["postman",{"_index":1256,"title":{},"content":{"107":{"position":[[119,7]]},"129":{"position":[[363,7]]},"232":{"position":[[52,7]]},"242":{"position":[[349,7]]},"244":{"position":[[1079,7],[1712,7]]},"245":{"position":[[20,7]]},"258":{"position":[[112,7]]},"345":{"position":[[546,7]]},"389":{"position":[[925,7]]},"422":{"position":[[264,7],[360,7],[433,7]]},"517":{"position":[[122,7]]}},"keywords":{}}],["potassium",{"_index":477,"title":{},"content":{"51":{"position":[[313,9]]}},"keywords":{}}],["potato",{"_index":1911,"title":{},"content":{"229":{"position":[[1607,9],[1617,9],[1638,9],[1660,9],[1841,9]]},"320":{"position":[[1927,8],[1939,8],[1964,8],[1990,8],[2624,8]]}},"keywords":{}}],["prd",{"_index":873,"title":{},"content":{"75":{"position":[[557,3],[692,3]]},"76":{"position":[[412,3]]}},"keywords":{}}],["prdbucketregion",{"_index":1733,"title":{},"content":{"220":{"position":[[2340,16]]}},"keywords":{}}],["pre",{"_index":1544,"title":{},"content":{"135":{"position":[[477,3]]},"136":{"position":[[21,3]]},"340":{"position":[[268,3]]},"418":{"position":[[614,3]]}},"keywords":{}}],["precipit",{"_index":4062,"title":{},"content":{"511":{"position":[[1346,13]]},"515":{"position":[[1329,13]]},"520":{"position":[[3008,16]]},"522":{"position":[[2974,16]]},"524":{"position":[[2682,16]]},"526":{"position":[[2648,16]]}},"keywords":{}}],["precipitationsum",{"_index":4061,"title":{},"content":{"511":{"position":[[1289,16]]},"515":{"position":[[1272,16]]},"519":{"position":[[1766,19]]},"521":{"position":[[1732,19]]},"523":{"position":[[1954,19]]},"525":{"position":[[1920,19]]}},"keywords":{}}],["precis",{"_index":1418,"title":{},"content":{"130":{"position":[[3171,9],[3943,9]]},"443":{"position":[[77,9]]}},"keywords":{}}],["precisionpl",{"_index":1333,"title":{},"content":{"130":{"position":[[587,17]]}},"keywords":{}}],["predict",{"_index":852,"title":{},"content":{"74":{"position":[[632,12]]},"75":{"position":[[71,11],[131,11],[188,11],[609,11]]},"76":{"position":[[451,12]]}},"keywords":{}}],["prefer",{"_index":566,"title":{},"content":{"57":{"position":[[1102,10]]},"59":{"position":[[1932,10]]},"63":{"position":[[844,10]]},"218":{"position":[[309,10]]},"338":{"position":[[3344,11]]},"390":{"position":[[955,10]]},"492":{"position":[[171,9]]}},"keywords":{}}],["prefix",{"_index":3473,"title":{},"content":{"460":{"position":[[402,6]]}},"keywords":{}}],["prepend",{"_index":517,"title":{},"content":{"55":{"position":[[27,9]]},"68":{"position":[[27,9]]},"86":{"position":[[208,9]]},"91":{"position":[[27,9]]},"107":{"position":[[166,9]]},"116":{"position":[[256,9]]},"129":{"position":[[27,9]]},"238":{"position":[[124,9]]},"258":{"position":[[159,9]]},"295":{"position":[[27,9]]},"345":{"position":[[27,9]]},"376":{"position":[[27,9]]},"389":{"position":[[27,9]]},"406":{"position":[[138,9]]},"498":{"position":[[355,9]]},"517":{"position":[[169,9]]}},"keywords":{}}],["prescript",{"_index":463,"title":{"51":{"position":[[0,13]]},"90":{"position":[[7,13]]},"92":{"position":[[0,12]]},"93":{"position":[[7,12]]},"94":{"position":[[5,13]]},"95":{"position":[[7,12]]},"96":{"position":[[5,13]]},"97":{"position":[[9,12]]},"98":{"position":[[7,12]]},"99":{"position":[[5,13]]},"100":{"position":[[7,12]]},"101":{"position":[[7,12]]}},"content":{"51":{"position":[[9,13],[39,13],[182,12],[425,14],[525,12]]},"92":{"position":[[80,12],[157,13],[237,13],[308,12],[379,12],[458,12],[514,13],[574,12],[657,12]]},"93":{"position":[[50,12]]},"94":{"position":[[58,13]]},"95":{"position":[[45,12]]},"96":{"position":[[53,13]]},"97":{"position":[[55,12]]},"98":{"position":[[40,12]]},"99":{"position":[[48,13]]},"100":{"position":[[52,12]]},"101":{"position":[[43,12]]},"130":{"position":[[2968,13]]},"251":{"position":[[603,13]]}},"keywords":{}}],["prescription_map",{"_index":1091,"title":{},"content":{"98":{"position":[[407,18]]}},"keywords":{}}],["prescription_map.shpprescription_map.dbfprescription_map.shx",{"_index":1092,"title":{},"content":{"98":{"position":[[458,60]]}},"keywords":{}}],["prescription_rx_map",{"_index":1072,"title":{},"content":{"93":{"position":[[339,22]]},"95":{"position":[[511,22]]},"100":{"position":[[343,22]]},"101":{"position":[[694,22]]}},"keywords":{}}],["prescription_rx_map.shpprescription_rx_map.dbfprescription_rx_map.shx",{"_index":1073,"title":{},"content":{"93":{"position":[[394,69]]},"95":{"position":[[606,69]]},"100":{"position":[[398,69]]},"101":{"position":[[749,69]]}},"keywords":{}}],["presenc",{"_index":3027,"title":{},"content":{"362":{"position":[[116,8]]},"365":{"position":[[35,8]]}},"keywords":{}}],["present",{"_index":1211,"title":{},"content":{"105":{"position":[[114,7],[2593,7]]},"130":{"position":[[669,7],[747,7],[5995,7]]},"252":{"position":[[844,7]]},"293":{"position":[[579,7]]},"320":{"position":[[3383,7]]},"363":{"position":[[17,7]]},"436":{"position":[[157,7]]},"514":{"position":[[139,7],[217,7]]}},"keywords":{}}],["prevent",{"_index":1123,"title":{},"content":{"103":{"position":[[278,8]]},"293":{"position":[[425,8]]}},"keywords":{}}],["preview",{"_index":1121,"title":{},"content":{"103":{"position":[[259,7]]},"287":{"position":[[1042,7],[1156,7],[1181,7],[1626,9],[1844,7],[2058,7]]}},"keywords":{}}],["previou",{"_index":2000,"title":{},"content":{"232":{"position":[[145,8]]},"275":{"position":[[101,8]]},"287":{"position":[[131,8]]},"340":{"position":[[453,8],[664,8]]},"365":{"position":[[389,8]]},"415":{"position":[[524,8],[721,8]]}},"keywords":{}}],["previous",{"_index":3082,"title":{},"content":{"371":{"position":[[142,10]]},"372":{"position":[[117,10]]},"502":{"position":[[415,10]]}},"keywords":{}}],["primari",{"_index":2746,"title":{},"content":{"330":{"position":[[683,8]]}},"keywords":{}}],["primros",{"_index":1879,"title":{},"content":{"229":{"position":[[1171,9]]}},"keywords":{}}],["print(response.json",{"_index":1481,"title":{},"content":{"131":{"position":[[540,22]]},"132":{"position":[[518,22]]}},"keywords":{}}],["prior",{"_index":1621,"title":{},"content":{"209":{"position":[[244,5]]}},"keywords":{}}],["prioriti",{"_index":753,"title":{},"content":{"70":{"position":[[615,8]]},"71":{"position":[[379,8]]},"78":{"position":[[407,8]]},"79":{"position":[[405,8]]},"82":{"position":[[408,8]]},"346":{"position":[[1461,8]]}},"keywords":{}}],["privat",{"_index":3680,"title":{},"content":{"474":{"position":[[366,7]]}},"keywords":{}}],["privatekey",{"_index":1566,"title":{},"content":{"140":{"position":[[631,13]]},"141":{"position":[[183,13],[726,13]]},"301":{"position":[[1562,13],[1715,13],[1973,13],[2125,13]]},"331":{"position":[[808,13]]}},"keywords":{}}],["privatekey\":\"str",{"_index":1569,"title":{},"content":{"141":{"position":[[410,20]]}},"keywords":{}}],["privatekeypublickey",{"_index":2750,"title":{},"content":{"331":{"position":[[649,19]]}},"keywords":{}}],["pro",{"_index":1401,"title":{},"content":{"130":{"position":[[2718,4]]}},"keywords":{}}],["probabl",{"_index":386,"title":{},"content":{"35":{"position":[[218,8]]}},"keywords":{}}],["probe",{"_index":3808,"title":{},"content":{"480":{"position":[[9967,5]]}},"keywords":{}}],["probe(link.url",{"_index":3810,"title":{},"content":{"480":{"position":[[10170,16]]}},"keywords":{}}],["proccess",{"_index":3586,"title":{},"content":{"471":{"position":[[412,8]]}},"keywords":{}}],["proce",{"_index":3789,"title":{},"content":{"480":{"position":[[7499,7]]},"495":{"position":[[78,7]]}},"keywords":{}}],["procedur",{"_index":372,"title":{},"content":{"25":{"position":[[150,9],[233,9]]},"293":{"position":[[533,9]]}},"keywords":{}}],["process",{"_index":335,"title":{"25":{"position":[[14,10]]},"26":{"position":[[14,10]]},"28":{"position":[[14,10]]},"29":{"position":[[14,10]]},"31":{"position":[[12,10]]},"32":{"position":[[12,10]]},"33":{"position":[[16,10]]},"34":{"position":[[16,10]]},"37":{"position":[[10,10]]},"341":{"position":[[14,7]]},"419":{"position":[[24,7]]}},"content":{"11":{"position":[[483,10],[518,10],[581,10],[616,10],[663,10],[696,10],[731,10],[768,10],[835,10]]},"25":{"position":[[32,10],[285,10]]},"26":{"position":[[19,10],[123,10],[229,10]]},"28":{"position":[[19,10],[163,11]]},"29":{"position":[[19,10],[149,10],[193,10],[299,10]]},"31":{"position":[[19,10],[83,11]]},"32":{"position":[[19,10],[69,10],[113,10],[226,10]]},"33":{"position":[[19,10],[88,11]]},"34":{"position":[[19,10],[74,10],[118,10],[235,10]]},"39":{"position":[[34,10],[316,7]]},"47":{"position":[[534,10],[771,9]]},"105":{"position":[[2609,9],[3147,10]]},"130":{"position":[[185,8],[260,10],[698,7],[5255,9],[5311,10]]},"131":{"position":[[711,12]]},"132":{"position":[[691,12]]},"133":{"position":[[189,10]]},"135":{"position":[[240,7],[370,10]]},"137":{"position":[[327,7]]},"140":{"position":[[172,10]]},"147":{"position":[[169,10]]},"154":{"position":[[190,10]]},"161":{"position":[[163,10]]},"168":{"position":[[175,10]]},"175":{"position":[[185,10]]},"182":{"position":[[165,10]]},"189":{"position":[[169,10]]},"196":{"position":[[165,10]]},"203":{"position":[[169,10]]},"209":{"position":[[407,10]]},"220":{"position":[[639,9],[737,9],[818,9],[930,9],[1147,9],[2204,7],[2486,8],[2883,7],[2895,9]]},"221":{"position":[[50,7]]},"242":{"position":[[1087,10]]},"247":{"position":[[237,7]]},"248":{"position":[[57,8],[827,10]]},"252":{"position":[[1353,9],[1529,9]]},"287":{"position":[[1028,11],[2027,10]]},"308":{"position":[[244,7]]},"316":{"position":[[828,9],[921,9]]},"320":{"position":[[3368,7]]},"338":{"position":[[290,7],[576,8]]},"340":{"position":[[255,7],[402,7]]},"341":{"position":[[37,8],[418,10],[482,9],[548,10],[593,10],[677,9]]},"342":{"position":[[78,9],[295,9]]},"343":{"position":[[403,10],[459,7]]},"346":{"position":[[321,10],[342,10],[1017,7]]},"349":{"position":[[1024,10]]},"351":{"position":[[43,10],[275,12],[340,12],[403,12],[465,12],[525,12],[580,12],[633,12],[693,12],[755,12]]},"353":{"position":[[217,9],[344,9],[394,7],[530,10],[1031,10]]},"365":{"position":[[1714,9]]},"378":{"position":[[2299,8]]},"379":{"position":[[2379,8]]},"381":{"position":[[92,8]]},"382":{"position":[[226,7],[315,8]]},"383":{"position":[[229,7],[318,8]]},"384":{"position":[[99,7]]},"385":{"position":[[803,8]]},"387":{"position":[[224,9],[389,9],[576,7],[700,7],[1000,10]]},"395":{"position":[[1034,10]]},"396":{"position":[[135,8]]},"397":{"position":[[141,8]]},"399":{"position":[[464,12],[554,10]]},"401":{"position":[[384,10]]},"411":{"position":[[18,9],[231,11]]},"413":{"position":[[321,8]]},"415":{"position":[[1320,8]]},"420":{"position":[[412,10],[555,10]]},"467":{"position":[[3812,13]]},"480":{"position":[[253,7],[5139,8],[7037,13],[7435,9],[8192,9],[12225,10]]},"486":{"position":[[49,8],[545,12]]},"487":{"position":[[69,9],[486,9],[568,9]]},"492":{"position":[[31,7]]},"493":{"position":[[288,7]]}},"keywords":{}}],["processdata",{"_index":3899,"title":{},"content":{"486":{"position":[[394,12]]}},"keywords":{}}],["processedtim",{"_index":4128,"title":{},"content":{"519":{"position":[[2238,16]]},"520":{"position":[[2832,16]]},"521":{"position":[[2204,16]]},"522":{"position":[[2798,16]]},"523":{"position":[[2426,16]]},"524":{"position":[[2509,16]]},"525":{"position":[[2392,16]]},"526":{"position":[[2475,16]]}},"keywords":{}}],["processedtimestamp",{"_index":1726,"title":{},"content":{"220":{"position":[[1974,21],[2837,19]]},"221":{"position":[[593,21]]}},"keywords":{}}],["processid",{"_index":394,"title":{},"content":{"39":{"position":[[288,12]]},"225":{"position":[[94,10]]}},"keywords":{}}],["produc",{"_index":319,"title":{},"content":{"11":{"position":[[144,7]]},"415":{"position":[[352,8],[1540,8]]},"429":{"position":[[206,7]]},"430":{"position":[[85,7]]}},"keywords":{}}],["product",{"_index":450,"title":{"69":{"position":[[0,8]]},"70":{"position":[[8,8]]},"71":{"position":[[15,8]]},"72":{"position":[[11,8]]},"73":{"position":[[6,7]]},"74":{"position":[[13,8]]},"75":{"position":[[8,7]]},"76":{"position":[[4,7]]},"251":{"position":[[5,7]]},"454":{"position":[[23,8]]}},"content":{"50":{"position":[[5,7]]},"51":{"position":[[332,8]]},"53":{"position":[[102,8],[136,9]]},"69":{"position":[[39,8],[52,9],[77,8],[138,8],[174,7],[214,8],[316,7],[402,7]]},"70":{"position":[[5,9],[23,8],[154,8]]},"71":{"position":[[50,8],[136,7]]},"72":{"position":[[33,8],[97,8],[158,8],[265,7]]},"73":{"position":[[26,7],[81,7]]},"74":{"position":[[120,8],[149,8]]},"79":{"position":[[138,7]]},"105":{"position":[[311,8],[370,7]]},"147":{"position":[[592,12]]},"148":{"position":[[163,12],[388,12],[719,12]]},"161":{"position":[[648,12]]},"162":{"position":[[231,11],[509,13],[840,12]]},"168":{"position":[[727,11]]},"169":{"position":[[218,11],[430,13],[834,11]]},"204":{"position":[[731,11]]},"212":{"position":[[80,8]]},"253":{"position":[[995,8]]},"301":{"position":[[918,12],[1011,12],[1419,12]]},"302":{"position":[[1051,12],[1144,12],[1584,12]]},"303":{"position":[[1142,11],[1244,11],[1683,11]]},"304":{"position":[[1224,11],[1326,11],[1787,11]]},"305":{"position":[[1105,12],[1198,12],[1600,12]]},"328":{"position":[[798,11]]},"330":{"position":[[824,11]]},"365":{"position":[[1156,7]]},"454":{"position":[[47,8]]}},"keywords":{}}],["product'",{"_index":879,"title":{},"content":{"76":{"position":[[84,9]]}},"keywords":{}}],["productid",{"_index":845,"title":{},"content":{"74":{"position":[[551,12],[736,12]]},"75":{"position":[[207,12],[538,12],[673,12]]},"76":{"position":[[393,12]]}},"keywords":{}}],["productindex",{"_index":3056,"title":{},"content":{"365":{"position":[[1113,12]]},"446":{"position":[[105,13]]}},"keywords":{}}],["productpageurl",{"_index":806,"title":{},"content":{"72":{"position":[[792,17],[1196,17]]},"73":{"position":[[487,17]]},"82":{"position":[[1227,17],[1703,17],[2181,17]]},"83":{"position":[[1049,17],[1525,17],[2003,17]]}},"keywords":{}}],["products/matching/operations/{id}/matches/{matchid",{"_index":866,"title":{},"content":{"75":{"position":[[5,52]]}},"keywords":{}}],["products/matching/operations/{operationid",{"_index":837,"title":{},"content":{"74":{"position":[[5,43]]}},"keywords":{}}],["products/matching/operations/{operationid}/matches/{matchid",{"_index":747,"title":{},"content":{"69":{"position":[[336,61]]}},"keywords":{}}],["products/matching/operations/{operationid}/matches/{matchid}/histor",{"_index":749,"title":{},"content":{"69":{"position":[[433,72]]},"76":{"position":[[5,72]]}},"keywords":{}}],["products/search",{"_index":743,"title":{},"content":{"69":{"position":[[151,16]]},"72":{"position":[[5,16]]}},"keywords":{}}],["products/{id",{"_index":744,"title":{},"content":{"69":{"position":[[186,14]]},"73":{"position":[[5,14]]}},"keywords":{}}],["producttyp",{"_index":764,"title":{},"content":{"70":{"position":[[1024,14]]},"72":{"position":[[710,14],[1112,14]]},"73":{"position":[[403,14]]},"82":{"position":[[1171,14],[1650,14],[2123,14]]},"83":{"position":[[993,14],[1472,14],[1945,14]]}},"keywords":{}}],["produto",{"_index":786,"title":{},"content":{"71":{"position":[[753,8]]}},"keywords":{}}],["profil",{"_index":2749,"title":{},"content":{"331":{"position":[[377,8]]}},"keywords":{}}],["programat",{"_index":1458,"title":{},"content":{"130":{"position":[[5558,16]]}},"keywords":{}}],["progress",{"_index":2570,"title":{},"content":{"308":{"position":[[182,8]]}},"keywords":{}}],["project",{"_index":1180,"title":{"470":{"position":[[13,7]]}},"content":{"104":{"position":[[1096,10]]},"239":{"position":[[239,10],[560,13]]},"470":{"position":[[14,8],[131,7],[197,8]]}},"keywords":{}}],["promis",{"_index":3816,"title":{},"content":{"480":{"position":[[10417,8]]}},"keywords":{}}],["properti",{"_index":1079,"title":{"316":{"position":[[0,8]]},"337":{"position":[[0,8]]},"356":{"position":[[25,10]]},"362":{"position":[[0,10]]},"365":{"position":[[0,10]]},"509":{"position":[[0,10]]},"513":{"position":[[0,10]]}},"content":{"95":{"position":[[202,8]]},"96":{"position":[[186,8]]},"98":{"position":[[163,8]]},"99":{"position":[[153,8]]},"103":{"position":[[717,8],[1591,8]]},"104":{"position":[[203,8],[1820,10]]},"222":{"position":[[1359,8]]},"255":{"position":[[1107,10]]},"262":{"position":[[168,10],[301,8],[384,10],[496,8]]},"263":{"position":[[248,10]]},"266":{"position":[[115,8]]},"267":{"position":[[67,8]]},"287":{"position":[[1209,10]]},"291":{"position":[[277,8]]},"293":{"position":[[319,8]]},"298":{"position":[[78,11]]},"300":{"position":[[104,10]]},"313":{"position":[[741,10],[789,10]]},"314":{"position":[[717,10],[764,10]]},"316":{"position":[[385,8]]},"317":{"position":[[396,8]]},"331":{"position":[[248,9]]},"334":{"position":[[740,10],[788,10]]},"335":{"position":[[714,10],[761,10]]},"337":{"position":[[344,8]]},"338":{"position":[[780,8]]},"341":{"position":[[837,11]]},"346":{"position":[[1035,10]]},"349":{"position":[[86,11],[283,11],[538,8],[561,8]]},"350":{"position":[[39,10],[353,10]]},"357":{"position":[[46,10],[469,8],[1109,8]]},"359":{"position":[[90,10]]},"360":{"position":[[258,11],[397,11],[466,10],[510,10]]},"361":{"position":[[687,13]]},"363":{"position":[[134,10]]},"364":{"position":[[370,13]]},"365":{"position":[[1767,11]]},"366":{"position":[[92,8]]},"367":{"position":[[38,10],[154,11],[431,11],[711,11],[993,11],[1274,11],[1563,11],[1850,11],[2137,11],[2419,11],[2701,11],[2989,11],[3269,11],[3549,11],[3836,11],[4118,11]]},"368":{"position":[[47,10]]},"382":{"position":[[692,8],[827,8]]},"383":{"position":[[695,8],[830,8]]},"384":{"position":[[434,8],[569,8]]},"385":{"position":[[39,10],[95,8],[130,8]]},"395":{"position":[[86,11],[288,11],[543,8],[566,8]]},"396":{"position":[[88,10],[383,11],[892,8],[915,8]]},"397":{"position":[[94,10],[394,11],[458,11],[530,11],[600,11]]},"398":{"position":[[50,10],[364,10]]},"410":{"position":[[88,10]]},"414":{"position":[[179,9],[352,13]]},"415":{"position":[[61,11],[797,11],[1794,8],[1823,11],[1936,11],[2048,11],[2162,11],[2274,11],[2384,11],[2503,11],[2617,11],[2738,11],[2858,11],[2977,11],[3090,11],[3209,11],[3318,11],[3430,11],[3551,11]]},"416":{"position":[[47,10]]},"429":{"position":[[740,9]]},"436":{"position":[[31,10],[46,10],[121,11]]},"440":{"position":[[39,10]]},"444":{"position":[[36,8]]},"446":{"position":[[39,10],[83,11]]},"447":{"position":[[89,8],[185,8],[262,10]]},"449":{"position":[[37,10],[109,8]]},"502":{"position":[[231,10]]},"511":{"position":[[31,8]]},"515":{"position":[[14,8]]},"519":{"position":[[780,13]]},"520":{"position":[[783,13]]},"521":{"position":[[746,13]]},"522":{"position":[[749,13]]},"523":{"position":[[968,13]]},"524":{"position":[[768,13]]},"525":{"position":[[934,13]]},"526":{"position":[[734,13],[3733,8]]}},"keywords":{}}],["propertiespng",{"_index":2866,"title":{},"content":{"351":{"position":[[435,17]]}},"keywords":{}}],["propiconazol",{"_index":760,"title":{},"content":{"70":{"position":[[962,16]]}},"keywords":{}}],["proport",{"_index":1133,"title":{},"content":{"103":{"position":[[621,10]]}},"keywords":{}}],["proprietari",{"_index":1543,"title":{},"content":{"135":{"position":[[311,11]]},"341":{"position":[[50,11],[181,11]]}},"keywords":{}}],["protect",{"_index":3467,"title":{},"content":{"460":{"position":[[63,9]]}},"keywords":{}}],["proteinpercentag",{"_index":3444,"title":{},"content":{"446":{"position":[[119,18]]}},"keywords":{}}],["protocolerror('connect",{"_index":303,"title":{},"content":{"8":{"position":[[1774,25]]}},"keywords":{}}],["provid",{"_index":86,"title":{"28":{"position":[[0,8]]},"29":{"position":[[0,8]]},"210":{"position":[[0,9]]},"269":{"position":[[18,8]]},"300":{"position":[[0,9]]},"321":{"position":[[5,8]]},"371":{"position":[[0,8]]},"378":{"position":[[0,8]]},"382":{"position":[[9,8]]},"405":{"position":[[0,8]]},"408":{"position":[[4,8]]},"417":{"position":[[0,8]]},"419":{"position":[[0,8]]},"420":{"position":[[0,8]]},"495":{"position":[[17,8]]},"505":{"position":[[0,9]]}},"content":{"2":{"position":[[480,7]]},"11":{"position":[[567,8],[602,8]]},"15":{"position":[[19,8],[208,11],[225,8]]},"16":{"position":[[153,11],[170,8]]},"18":{"position":[[60,8]]},"28":{"position":[[59,8],[88,8]]},"29":{"position":[[59,8],[88,8]]},"41":{"position":[[88,8]]},"42":{"position":[[84,8]]},"44":{"position":[[56,8]]},"45":{"position":[[52,8]]},"50":{"position":[[110,10],[173,10]]},"51":{"position":[[454,9]]},"52":{"position":[[275,9]]},"57":{"position":[[225,8],[283,8],[1289,9],[1826,11],[2283,11]]},"58":{"position":[[346,11]]},"60":{"position":[[540,11]]},"61":{"position":[[170,9],[691,11]]},"62":{"position":[[151,9]]},"63":{"position":[[226,8],[276,8],[326,8],[1031,9],[1506,11]]},"64":{"position":[[373,11]]},"65":{"position":[[736,11]]},"66":{"position":[[363,11]]},"70":{"position":[[37,9],[199,9],[263,9],[366,8]]},"78":{"position":[[49,9],[158,8],[895,11]]},"80":{"position":[[772,11]]},"82":{"position":[[50,9],[159,8],[2416,11]]},"83":{"position":[[2238,11]]},"88":{"position":[[863,11],[1498,11],[1562,11],[1615,11]]},"94":{"position":[[89,9]]},"96":{"position":[[84,9]]},"99":{"position":[[79,9]]},"103":{"position":[[114,10],[291,8],[404,10]]},"104":{"position":[[242,10],[1937,9]]},"105":{"position":[[2514,10],[2858,8],[3023,9]]},"111":{"position":[[107,8]]},"112":{"position":[[105,8]]},"113":{"position":[[129,8]]},"130":{"position":[[456,8],[467,8],[608,8],[995,8],[1248,8],[4403,8],[4805,11],[5726,11]]},"131":{"position":[[680,11]]},"132":{"position":[[660,11]]},"133":{"position":[[580,11]]},"135":{"position":[[59,8],[191,9],[751,8]]},"136":{"position":[[10,8]]},"137":{"position":[[161,8],[276,9]]},"144":{"position":[[74,8]]},"151":{"position":[[72,8]]},"158":{"position":[[83,8]]},"165":{"position":[[69,8]]},"172":{"position":[[75,8]]},"179":{"position":[[80,8]]},"186":{"position":[[70,8]]},"193":{"position":[[72,8]]},"200":{"position":[[70,8]]},"207":{"position":[[72,8]]},"209":{"position":[[525,7]]},"210":{"position":[[124,10],[342,10]]},"215":{"position":[[22,8]]},"218":{"position":[[485,9],[775,12]]},"219":{"position":[[460,12]]},"220":{"position":[[310,9],[1200,8],[1713,11],[2158,8]]},"221":{"position":[[328,11]]},"222":{"position":[[118,8],[949,12],[1349,9]]},"232":{"position":[[215,8],[277,9]]},"234":{"position":[[89,9]]},"242":{"position":[[328,7]]},"246":{"position":[[754,8]]},"251":{"position":[[297,9],[682,10]]},"252":{"position":[[198,8],[265,8]]},"253":{"position":[[554,8],[1294,8]]},"255":{"position":[[116,9],[156,8],[639,11],[785,11],[958,8],[1170,8]]},"258":{"position":[[921,8]]},"260":{"position":[[258,8]]},"262":{"position":[[97,8],[452,8]]},"263":{"position":[[85,8],[136,8]]},"264":{"position":[[384,8],[482,8],[505,11],[1603,11]]},"265":{"position":[[614,11]]},"268":{"position":[[230,10],[440,9]]},"269":{"position":[[100,9],[196,10],[238,8],[299,9],[947,8]]},"270":{"position":[[93,8]]},"277":{"position":[[186,8]]},"282":{"position":[[105,9],[146,8]]},"283":{"position":[[767,9]]},"287":{"position":[[426,10],[1139,9],[1766,10],[2126,8],[2236,9],[2352,10]]},"288":{"position":[[528,9],[566,8],[700,9],[738,8],[815,9],[858,8],[958,8],[1025,9],[1068,9],[1139,9],[1203,9],[1317,9],[1431,9],[1616,9]]},"289":{"position":[[199,11]]},"292":{"position":[[67,9],[917,8]]},"293":{"position":[[90,9],[400,10]]},"300":{"position":[[60,9],[168,8],[198,8],[255,8]]},"301":{"position":[[24,8],[843,11],[936,11],[1344,11]]},"302":{"position":[[33,8],[976,11],[1069,11],[1509,11]]},"303":{"position":[[20,8],[1057,11],[1159,11],[1598,11]]},"304":{"position":[[26,8],[1139,11],[1241,11],[1702,11]]},"305":{"position":[[23,8],[1030,11],[1123,11],[1525,11]]},"313":{"position":[[260,8]]},"314":{"position":[[252,8]]},"317":{"position":[[153,7],[239,8]]},"319":{"position":[[88,10]]},"322":{"position":[[7,8],[187,8]]},"325":{"position":[[25,9]]},"327":{"position":[[46,10]]},"328":{"position":[[26,8]]},"329":{"position":[[33,8]]},"330":{"position":[[20,8]]},"331":{"position":[[24,8]]},"332":{"position":[[23,8]]},"334":{"position":[[260,8],[871,10],[1013,13]]},"335":{"position":[[252,8],[474,9],[836,10]]},"337":{"position":[[912,9]]},"338":{"position":[[140,9],[181,7],[206,8],[353,7],[459,8],[485,9],[607,8],[843,10],[1000,12],[1071,9],[1672,9],[1786,8],[2531,9],[2748,9],[2849,10],[3156,8]]},"340":{"position":[[225,9],[238,7],[529,9],[706,8]]},"343":{"position":[[94,9],[109,8]]},"345":{"position":[[695,8],[797,8],[897,10]]},"346":{"position":[[244,8],[360,9],[420,8],[1687,9]]},"350":{"position":[[466,10],[538,9]]},"361":{"position":[[250,11]]},"364":{"position":[[687,10]]},"371":{"position":[[15,8],[87,9],[203,10]]},"372":{"position":[[73,8],[166,9]]},"378":{"position":[[45,10],[97,8],[149,8],[217,8],[291,8],[361,8],[465,10],[929,11],[1174,8],[1289,10],[1765,11],[2005,8],[2072,8],[2124,8],[2218,10],[2259,9],[3269,8],[3382,10]]},"379":{"position":[[45,9],[526,9],[1198,11],[1367,9],[2051,11],[2169,8],[2221,8],[2313,9],[2323,9],[2337,8],[2670,11],[2822,11],[3426,9]]},"381":{"position":[[296,8]]},"382":{"position":[[27,8],[79,8],[173,10],[259,9],[273,8]]},"383":{"position":[[33,8],[85,8],[177,9],[262,9],[276,8],[1202,11],[1428,11]]},"385":{"position":[[656,8],[761,8]]},"387":{"position":[[16,7]]},"390":{"position":[[254,8],[1895,12]]},"391":{"position":[[657,12]]},"398":{"position":[[477,10],[549,9]]},"406":{"position":[[344,8]]},"408":{"position":[[55,8],[122,9]]},"411":{"position":[[574,12]]},"418":{"position":[[100,8],[206,10],[321,9],[446,8],[580,10]]},"419":{"position":[[430,10],[514,9]]},"420":{"position":[[23,8],[182,9],[299,9]]},"434":{"position":[[275,10]]},"435":{"position":[[161,9]]},"444":{"position":[[239,9]]},"456":{"position":[[451,7]]},"460":{"position":[[3,7],[38,8],[353,9]]},"467":{"position":[[4691,9],[6853,10]]},"473":{"position":[[851,9]]},"480":{"position":[[5385,8],[5522,8],[6499,9],[6509,9]]},"492":{"position":[[74,10]]},"493":{"position":[[12,8],[252,9],[305,9]]},"495":{"position":[[89,8],[156,8],[180,8]]},"498":{"position":[[132,8],[972,9]]},"500":{"position":[[604,9]]},"501":{"position":[[174,8]]},"502":{"position":[[85,8],[304,8],[537,9]]},"503":{"position":[[417,9]]},"505":{"position":[[109,9]]},"508":{"position":[[32,8]]},"510":{"position":[[31,8],[491,7]]},"512":{"position":[[34,8]]}},"keywords":{}}],["provider'",{"_index":1143,"title":{},"content":{"103":{"position":[[1006,10]]},"105":{"position":[[928,10]]},"419":{"position":[[10,10]]},"450":{"position":[[269,10]]}},"keywords":{}}],["provider(",{"_index":3134,"title":{},"content":{"387":{"position":[[178,11]]},"492":{"position":[[186,12]]},"498":{"position":[[274,11]]}},"keywords":{}}],["provider.inact",{"_index":2480,"title":{},"content":{"288":{"position":[[1265,17]]}},"keywords":{}}],["provider=johndeere&leafuserid=id",{"_index":1436,"title":{},"content":{"130":{"position":[[4609,34]]}},"keywords":{}}],["provider_nam",{"_index":2397,"title":{},"content":{"269":{"position":[[207,14],[350,13]]},"382":{"position":[[1221,15]]},"383":{"position":[[1214,15],[1440,16]]}},"keywords":{}}],["provider_pool",{"_index":542,"title":{},"content":{"57":{"position":[[438,15],[1957,18]]},"58":{"position":[[437,18]]},"59":{"position":[[339,15]]},"63":{"position":[[1668,18]]},"64":{"position":[[535,18]]},"65":{"position":[[871,18]]},"66":{"position":[[498,18]]},"88":{"position":[[844,18],[1479,18]]}},"keywords":{}}],["providerboundaryid",{"_index":2230,"title":{},"content":{"260":{"position":[[958,21]]},"266":{"position":[[1986,21]]},"287":{"position":[[784,21],[1388,21]]},"288":{"position":[[1732,21]]}},"keywords":{}}],["providerconnect",{"_index":2819,"title":{},"content":{"338":{"position":[[3760,19]]}},"keywords":{}}],["providerfarmid",{"_index":2420,"title":{},"content":{"277":{"position":[[686,17]]},"290":{"position":[[81,17]]}},"keywords":{}}],["providerfarmnam",{"_index":2426,"title":{},"content":{"277":{"position":[[744,19]]},"290":{"position":[[107,19]]}},"keywords":{}}],["providerfieldid",{"_index":990,"title":{},"content":{"88":{"position":[[964,18],[1574,18]]},"260":{"position":[[899,18]]},"266":{"position":[[1927,18]]},"287":{"position":[[755,18],[1359,18]]}},"keywords":{}}],["providerfieldnam",{"_index":2236,"title":{},"content":{"260":{"position":[[1020,20]]},"266":{"position":[[2048,20]]},"287":{"position":[[724,20],[1328,20]]}},"keywords":{}}],["providerfileid",{"_index":2304,"title":{},"content":{"264":{"position":[[1545,17]]},"265":{"position":[[556,17]]},"289":{"position":[[171,17]]}},"keywords":{}}],["providerfileprocessingfail",{"_index":210,"title":{},"content":{"5":{"position":[[1076,29]]},"29":{"position":[[560,30]]}},"keywords":{}}],["providerfileprocessingfinish",{"_index":209,"title":{},"content":{"5":{"position":[[1044,31]]},"28":{"position":[[448,32]]}},"keywords":{}}],["providergrowerid",{"_index":2456,"title":{},"content":{"282":{"position":[[681,19]]},"283":{"position":[[459,19]]},"291":{"position":[[103,19]]}},"keywords":{}}],["providerid",{"_index":767,"title":{},"content":{"70":{"position":[[1081,13]]},"78":{"position":[[920,13]]},"80":{"position":[[797,13]]},"82":{"position":[[769,13],[1330,13],[1807,13],[2284,13]]},"83":{"position":[[591,13],[1152,13],[1629,13],[2106,13]]},"260":{"position":[[882,13]]},"266":{"position":[[1910,13]]},"277":{"position":[[640,13]]},"282":{"position":[[663,13]]},"283":{"position":[[441,13]]},"290":{"position":[[36,13]]},"291":{"position":[[84,13]]}},"keywords":{}}],["providerimplementid",{"_index":698,"title":{},"content":{"63":{"position":[[256,19],[1065,20],[1531,22]]},"64":{"position":[[398,22]]}},"keywords":{}}],["providerlayerid",{"_index":988,"title":{},"content":{"88":{"position":[[886,18],[1521,18]]}},"keywords":{}}],["providermachineid",{"_index":571,"title":{},"content":{"57":{"position":[[1323,18],[1846,20],[2303,20]]},"58":{"position":[[364,20]]},"60":{"position":[[560,20]]},"61":{"position":[[711,20]]}},"keywords":{}}],["providernam",{"_index":2224,"title":{},"content":{"260":{"position":[[853,15]]},"266":{"position":[[1874,15]]},"277":{"position":[[657,15]]},"282":{"position":[[634,15]]},"283":{"position":[[412,15]]},"287":{"position":[[698,15],[1302,15]]},"290":{"position":[[55,15]]},"291":{"position":[[58,15]]},"301":{"position":[[855,15],[948,15],[1356,15]]},"302":{"position":[[988,15],[1081,15],[1521,15]]},"303":{"position":[[1069,15],[1171,15],[1610,15]]},"304":{"position":[[1151,15],[1253,15],[1714,15]]},"305":{"position":[[1042,15],[1135,15],[1537,15]]},"361":{"position":[[262,15]]},"378":{"position":[[2643,14],[2805,17]]},"379":{"position":[[1210,14],[2063,14],[2682,14],[2834,15]]},"382":{"position":[[1457,17]]},"390":{"position":[[1910,14]]},"391":{"position":[[672,14]]}},"keywords":{}}],["provideroperatorid",{"_index":730,"title":{},"content":{"65":{"position":[[761,21]]},"66":{"position":[[388,21]]}},"keywords":{}}],["providerorganizationid",{"_index":535,"title":{},"content":{"57":{"position":[[260,22],[1299,23],[1907,25],[2364,25]]},"58":{"position":[[391,25]]},"60":{"position":[[621,25]]},"61":{"position":[[772,25]]},"63":{"position":[[303,22],[1041,23],[1564,25]]},"64":{"position":[[431,25]]},"65":{"position":[[823,25]]},"66":{"position":[[450,25]]},"98":{"position":[[172,23]]},"99":{"position":[[162,23]]}},"keywords":{}}],["providerpng",{"_index":3542,"title":{},"content":{"467":{"position":[[4480,11],[4859,11],[5084,11],[5243,11]]}},"keywords":{}}],["providerpng.length",{"_index":3556,"title":{},"content":{"467":{"position":[[5171,19]]}},"keywords":{}}],["providerpng.push(day",{"_index":3554,"title":{},"content":{"467":{"position":[[5026,22]]}},"keywords":{}}],["providersconnect",{"_index":2769,"title":{},"content":{"338":{"position":[[439,19],[1961,18]]}},"keywords":{}}],["providersconnected.length",{"_index":2791,"title":{},"content":{"338":{"position":[[2350,26]]}},"keywords":{}}],["providersconnected.map((provid",{"_index":2794,"title":{},"content":{"338":{"position":[[2427,34]]}},"keywords":{}}],["providersmodul",{"_index":2754,"title":{},"content":{"334":{"position":[[498,15]]}},"keywords":{}}],["providerstatu",{"_index":2476,"title":{},"content":{"288":{"position":[[367,15],[1149,14],[1327,15],[1521,14],[1704,17]]}},"keywords":{}}],["providerwidgetstatu",{"_index":2768,"title":{},"content":{"338":{"position":[[298,20],[585,21],[1939,21],[3780,22]]}},"keywords":{}}],["providerwidgetstatus.cod",{"_index":2786,"title":{},"content":{"338":{"position":[[2190,27]]}},"keywords":{}}],["providerwidgetstatus.messag",{"_index":2789,"title":{},"content":{"338":{"position":[[2294,30]]}},"keywords":{}}],["provider|merged|automerged|upload",{"_index":2495,"title":{},"content":{"289":{"position":[[232,38]]}},"keywords":{}}],["psscene",{"_index":1679,"title":{"213":{"position":[[0,7]]}},"content":{"224":{"position":[[407,9]]}},"keywords":{}}],["publickey",{"_index":1565,"title":{},"content":{"140":{"position":[[611,12]]},"141":{"position":[[163,12],[706,12]]},"301":{"position":[[1586,12],[1739,12],[1997,12],[2149,12]]},"331":{"position":[[832,12]]}},"keywords":{}}],["pull",{"_index":2120,"title":{},"content":{"251":{"position":[[275,6]]},"253":{"position":[[537,6],[1280,6]]},"430":{"position":[[364,4]]}},"keywords":{}}],["pumpkin",{"_index":1915,"title":{},"content":{"229":{"position":[[1682,10]]}},"keywords":{}}],["purpos",{"_index":1148,"title":{},"content":{"103":{"position":[[1556,8]]},"222":{"position":[[2022,8]]}},"keywords":{}}],["push",{"_index":3070,"title":{},"content":{"365":{"position":[[1682,4]]},"467":{"position":[[4841,4]]}},"keywords":{}}],["put",{"_index":746,"title":{},"content":{"69":{"position":[[332,3]]},"75":{"position":[[1,3]]},"129":{"position":[[286,3]]},"133":{"position":[[1,3],[305,3]]},"246":{"position":[[821,3]]},"258":{"position":[[1334,3],[1505,3],[1684,3]]},"275":{"position":[[1,3],[468,3]]},"280":{"position":[[1,3],[293,3]]},"285":{"position":[[1,3],[262,3]]},"288":{"position":[[2510,3]]},"290":{"position":[[438,3]]},"291":{"position":[[458,3]]},"301":{"position":[[439,3],[1883,3],[2073,3]]},"302":{"position":[[514,3],[2130,3],[2357,3]]},"303":{"position":[[642,3],[2223,3],[2454,3]]},"304":{"position":[[686,3],[2299,3],[2513,3]]},"305":{"position":[[634,3],[2116,3],[2333,3]]},"480":{"position":[[2409,3],[6574,3],[9108,3]]},"498":{"position":[[1224,3]]},"503":{"position":[[1,3],[594,3]]}},"keywords":{}}],["python",{"_index":76,"title":{},"content":{"2":{"position":[[268,7]]},"256":{"position":[[303,6]]},"422":{"position":[[329,7]]}},"keywords":{}}],["pythonjava",{"_index":146,"title":{},"content":{"3":{"position":[[740,10]]}},"keywords":{}}],["qualiti",{"_index":479,"title":{},"content":{"51":{"position":[[363,7]]},"104":{"position":[[514,8]]}},"keywords":{}}],["quantifi",{"_index":4074,"title":{},"content":{"511":{"position":[[1655,10]]},"515":{"position":[[1638,10]]}},"keywords":{}}],["quantil",{"_index":3200,"title":{},"content":{"396":{"position":[[1056,8]]},"415":{"position":[[653,8]]}},"keywords":{}}],["quarter",{"_index":2051,"title":{},"content":{"243":{"position":[[123,7],[171,7]]}},"keywords":{}}],["queri",{"_index":405,"title":{"247":{"position":[[0,5]]}},"content":{"47":{"position":[[99,5]]},"57":{"position":[[126,5]]},"59":{"position":[[147,5]]},"130":{"position":[[4919,7],[4998,5]]},"131":{"position":[[64,5],[116,5],[163,5]]},"132":{"position":[[53,5],[105,5],[152,5]]},"226":{"position":[[99,5]]},"239":{"position":[[142,5]]},"242":{"position":[[996,5]]},"246":{"position":[[264,5],[664,5],[1190,5],[1385,6],[1458,5]]},"247":{"position":[[3,5],[521,5],[575,5],[714,5]]},"248":{"position":[[352,5],[409,5],[445,7],[479,5],[517,5],[578,5],[614,7]]},"255":{"position":[[98,5]]},"260":{"position":[[95,5]]},"264":{"position":[[202,5]]},"277":{"position":[[72,5]]},"287":{"position":[[323,5],[356,8],[495,5],[525,5]]},"346":{"position":[[135,5]]},"354":{"position":[[99,5]]},"390":{"position":[[145,5]]},"402":{"position":[[99,5]]},"422":{"position":[[221,8]]},"426":{"position":[[37,5]]},"449":{"position":[[133,6]]},"456":{"position":[[132,5]]},"502":{"position":[[509,8]]}},"keywords":{}}],["question",{"_index":2186,"title":{},"content":{"256":{"position":[[388,9]]},"357":{"position":[[152,9]]},"470":{"position":[[111,9]]},"505":{"position":[[299,9]]}},"keywords":{}}],["quickli",{"_index":93,"title":{},"content":{"2":{"position":[[543,8]]},"256":{"position":[[231,8]]},"422":{"position":[[45,7]]}},"keywords":{}}],["quickstart",{"_index":66,"title":{"421":{"position":[[0,10]]},"422":{"position":[[5,10]]}},"content":{"2":{"position":[[139,10]]},"232":{"position":[[41,10]]},"242":{"position":[[338,10]]},"245":{"position":[[9,10]]},"422":{"position":[[5,10]]}},"keywords":{}}],["quickstartpostman",{"_index":2056,"title":{},"content":{"244":{"position":[[137,17]]}},"keywords":{}}],["quicktil",{"_index":992,"title":{},"content":{"88":{"position":[[1050,10],[1635,10]]}},"keywords":{}}],["r000",{"_index":823,"title":{},"content":{"72":{"position":[[1307,6]]}},"keywords":{}}],["r0718",{"_index":835,"title":{},"content":{"73":{"position":[[598,5]]}},"keywords":{}}],["raddic",{"_index":1917,"title":{},"content":{"229":{"position":[[1705,9]]}},"keywords":{}}],["radianc",{"_index":1664,"title":{},"content":{"212":{"position":[[311,9]]}},"keywords":{}}],["radiat",{"_index":4069,"title":{},"content":{"511":{"position":[[1514,9],[1554,9],[1636,9],[1941,10],[1962,10]]},"515":{"position":[[1497,9],[1537,9],[1619,9],[1924,10],[1945,10]]}},"keywords":{}}],["radiationlong",{"_index":3996,"title":{},"content":{"509":{"position":[[95,13]]},"513":{"position":[[95,13]]}},"keywords":{}}],["radiationsnowfallsunrisesunsettemperatur",{"_index":3997,"title":{},"content":{"509":{"position":[[114,41]]},"513":{"position":[[114,41]]}},"keywords":{}}],["radicchio",{"_index":1916,"title":{},"content":{"229":{"position":[[1693,11]]}},"keywords":{}}],["radiometr",{"_index":1659,"title":{},"content":{"212":{"position":[[245,15],[481,15]]}},"keywords":{}}],["rain",{"_index":4058,"title":{},"content":{"511":{"position":[[1221,5],[1371,5]]},"515":{"position":[[1204,5],[1354,5]]},"520":{"position":[[799,7]]},"522":{"position":[[765,7]]},"524":{"position":[[784,7]]},"526":{"position":[[750,7]]}},"keywords":{}}],["rainsum",{"_index":4057,"title":{},"content":{"511":{"position":[[1173,7]]},"515":{"position":[[1156,7]]},"519":{"position":[[2285,10]]},"521":{"position":[[2251,10]]},"523":{"position":[[2473,10]]},"525":{"position":[[2439,10]]}},"keywords":{}}],["ramp",{"_index":1161,"title":{},"content":{"104":{"position":[[553,4]]},"238":{"position":[[84,4]]},"239":{"position":[[234,4]]},"349":{"position":[[308,7],[687,4],[705,4],[993,4]]},"367":{"position":[[174,7],[454,7],[736,7],[1017,7],[1306,7],[1593,7],[1880,7],[2162,7],[2444,7],[2732,7],[3012,7],[3292,7],[3579,7],[3861,7],[4150,7]]},"395":{"position":[[313,7],[697,4],[715,4],[1003,4]]},"396":{"position":[[1102,5]]},"415":{"position":[[83,6],[585,4]]}},"keywords":{}}],["rang",{"_index":1240,"title":{},"content":{"105":{"position":[[2199,5],[2319,5]]},"135":{"position":[[264,5]]},"239":{"position":[[213,6]]},"252":{"position":[[1198,5]]},"266":{"position":[[253,5]]},"396":{"position":[[417,9]]},"411":{"position":[[699,7]]},"415":{"position":[[831,9]]},"429":{"position":[[393,5]]}},"keywords":{}}],["rape",{"_index":2715,"title":{},"content":{"320":{"position":[[1770,4],[2016,4]]}},"keywords":{}}],["rapese",{"_index":1824,"title":{},"content":{"229":{"position":[[292,10],[650,9],[782,9]]},"320":{"position":[[2029,8],[2050,8],[2071,8]]}},"keywords":{}}],["raspberri",{"_index":1988,"title":{},"content":{"229":{"position":[[2709,11]]},"320":{"position":[[2092,9]]}},"keywords":{}}],["raster",{"_index":3953,"title":{},"content":{"488":{"position":[[2534,9],[2583,7]]}},"keywords":{}}],["rate",{"_index":468,"title":{},"content":{"51":{"position":[[98,5]]},"105":{"position":[[453,4]]},"357":{"position":[[1139,5]]},"365":{"position":[[690,4],[1003,4]]}},"keywords":{}}],["rateattribut",{"_index":1097,"title":{},"content":{"101":{"position":[[342,13],[451,13]]}},"keywords":{}}],["rateunit",{"_index":1098,"title":{},"content":{"101":{"position":[[360,8],[525,8]]}},"keywords":{}}],["rateunitgal/ac",{"_index":1103,"title":{},"content":{"101":{"position":[[581,14]]}},"keywords":{}}],["ratio",{"_index":2333,"title":{},"content":{"266":{"position":[[382,5],[422,6]]},"511":{"position":[[761,5]]},"515":{"position":[[744,5]]}},"keywords":{}}],["raven",{"_index":1061,"title":{"93":{"position":[[23,5]]},"94":{"position":[[24,5]]},"173":{"position":[[0,5]]},"174":{"position":[[0,5]]},"175":{"position":[[8,5]]},"176":{"position":[[9,5]]},"177":{"position":[[7,5]]},"180":{"position":[[0,5]]},"181":{"position":[[0,5]]},"182":{"position":[[8,5]]},"183":{"position":[[9,5]]},"184":{"position":[[7,5]]}},"content":{"92":{"position":[[96,5],[176,5]]},"93":{"position":[[73,5]]},"130":{"position":[[4296,6]]},"175":{"position":[[62,5]]},"176":{"position":[[63,5],[512,5]]},"177":{"position":[[75,5]]},"179":{"position":[[300,6]]},"182":{"position":[[52,5]]},"183":{"position":[[53,5],[488,5]]},"184":{"position":[[65,5]]},"186":{"position":[[290,6]]},"255":{"position":[[1275,5]]}},"keywords":{}}],["raven'",{"_index":1096,"title":{},"content":{"101":{"position":[[306,7]]}},"keywords":{}}],["ravenagco",{"_index":2052,"title":{},"content":{"243":{"position":[[140,9]]}},"keywords":{}}],["ravencredenti",{"_index":3978,"title":{},"content":{"498":{"position":[[778,19]]},"500":{"position":[[402,19]]},"501":{"position":[[605,19]]}},"keywords":{}}],["ravenslingshotcredenti",{"_index":3982,"title":{},"content":{"498":{"position":[[920,28]]},"500":{"position":[[544,28]]},"501":{"position":[[747,28]]}},"keywords":{}}],["raw",{"_index":135,"title":{},"content":{"3":{"position":[[558,3]]},"252":{"position":[[975,3],[1081,3]]},"267":{"position":[[523,3]]},"341":{"position":[[46,3]]}},"keywords":{}}],["rawgeojson",{"_index":2824,"title":{},"content":{"341":{"position":[[117,10]]},"351":{"position":[[249,13]]},"361":{"position":[[463,13]]}},"keywords":{}}],["rawgeojson.th",{"_index":2823,"title":{},"content":{"341":{"position":[[102,14]]}},"keywords":{}}],["rcd",{"_index":1359,"title":{},"content":{"130":{"position":[[1631,3],[1737,3]]}},"keywords":{}}],["rd",{"_index":2729,"title":{},"content":{"320":{"position":[[2779,2],[2807,2]]}},"keywords":{}}],["re",{"_index":1469,"title":{},"content":{"130":{"position":[[5830,2],[5885,2],[6294,2]]},"467":{"position":[[546,4],[1858,4],[3074,4],[5973,4]]},"480":{"position":[[122,4],[581,4],[1732,4],[2839,4],[3771,4],[4546,4],[5271,4],[7742,4],[8585,4],[9333,4],[9851,4]]}},"keywords":{}}],["reach",{"_index":2893,"title":{},"content":{"357":{"position":[[175,5]]},"467":{"position":[[5730,5]]},"473":{"position":[[2197,5]]},"474":{"position":[[321,5]]}},"keywords":{}}],["react",{"_index":2595,"title":{"314":{"position":[[0,5]]},"335":{"position":[[0,5]]}},"content":{"314":{"position":[[147,5],[202,5],[360,5],[416,5],[516,6]]},"315":{"position":[[25,5]]},"317":{"position":[[1160,6],[1276,7],[1531,7]]},"335":{"position":[[147,5],[202,5],[357,5],[413,5],[512,7]]},"338":{"position":[[1558,6],[1612,7],[1853,7],[2786,6]]}},"keywords":{}}],["react.strictmod",{"_index":2654,"title":{},"content":{"317":{"position":[[1339,18],[1381,19]]}},"keywords":{}}],["reactiv",{"_index":1284,"title":{},"content":{"117":{"position":[[591,10]]}},"keywords":{}}],["read",{"_index":1277,"title":{},"content":{"117":{"position":[[66,4],[892,4]]},"123":{"position":[[483,6]]},"124":{"position":[[700,6],[741,6],[822,4],[840,4]]},"125":{"position":[[585,6],[626,6],[720,4],[738,4]]},"130":{"position":[[6256,5]]},"387":{"position":[[665,4]]}},"keywords":{}}],["real",{"_index":3809,"title":{},"content":{"480":{"position":[[10096,4],[10668,4]]},"486":{"position":[[291,4]]},"488":{"position":[[1634,4]]}},"keywords":{}}],["reanalysi",{"_index":4085,"title":{},"content":{"514":{"position":[[0,10]]}},"keywords":{}}],["reasonfield",{"_index":3466,"title":{},"content":{"459":{"position":[[37,11]]}},"keywords":{}}],["recalcul",{"_index":2818,"title":{},"content":{"338":{"position":[[3649,15]]}},"keywords":{}}],["recap",{"_index":3974,"title":{},"content":{"498":{"position":[[11,5]]}},"keywords":{}}],["receiv",{"_index":101,"title":{},"content":{"3":{"position":[[45,8],[806,8]]},"5":{"position":[[145,9]]},"13":{"position":[[42,7]]},"117":{"position":[[231,8],[316,8],[538,8],[749,9]]},"119":{"position":[[134,9]]},"120":{"position":[[154,10]]},"122":{"position":[[381,8]]},"123":{"position":[[149,8]]},"124":{"position":[[136,8]]},"125":{"position":[[163,8]]},"130":{"position":[[401,8],[4836,11]]},"133":{"position":[[611,11]]},"242":{"position":[[253,7]]},"244":{"position":[[1154,8],[1756,7]]},"251":{"position":[[110,7]]},"269":{"position":[[257,7]]},"338":{"position":[[1756,7]]},"341":{"position":[[723,7]]},"353":{"position":[[618,8]]},"387":{"position":[[257,8]]},"422":{"position":[[135,7]]},"467":{"position":[[2850,9],[5569,7]]},"473":{"position":[[2292,9],[6103,7],[6487,7]]},"480":{"position":[[326,7],[2366,7],[4477,7],[4971,7],[6587,8],[6835,8],[7575,7],[8272,7],[9057,8],[9747,7],[9865,8],[9886,8],[9941,9],[10139,9],[10299,7]]},"486":{"position":[[627,8]]},"488":{"position":[[28,7]]},"489":{"position":[[28,7]]},"495":{"position":[[236,9]]}},"keywords":{}}],["receiver'",{"_index":1300,"title":{"126":{"position":[[11,10]]}},"content":{"118":{"position":[[974,10]]},"126":{"position":[[119,10]]}},"keywords":{}}],["receiverapiown",{"_index":1306,"title":{},"content":{"119":{"position":[[390,19],[410,21]]},"121":{"position":[[218,19],[238,20],[408,19],[428,21]]},"122":{"position":[[715,19],[735,21]]}},"keywords":{}}],["recent",{"_index":3468,"title":{},"content":{"460":{"position":[[159,6]]}},"keywords":{}}],["recevi",{"_index":1309,"title":{},"content":{"122":{"position":[[213,8]]}},"keywords":{}}],["recommend",{"_index":128,"title":{},"content":{"3":{"position":[[446,11]]},"104":{"position":[[482,9]]},"107":{"position":[[96,9]]},"129":{"position":[[343,9]]},"251":{"position":[[640,16]]},"258":{"position":[[89,9]]},"345":{"position":[[526,9]]},"389":{"position":[[905,9]]},"418":{"position":[[594,9]]},"420":{"position":[[164,9]]},"460":{"position":[[286,11]]},"517":{"position":[[99,9]]}},"keywords":{}}],["recomput",{"_index":2815,"title":{},"content":{"338":{"position":[[3538,10]]}},"keywords":{}}],["record",{"_index":546,"title":{},"content":{"57":{"position":[[501,6],[574,7],[666,7]]},"59":{"position":[[470,7],[562,7]]},"365":{"position":[[613,9]]}},"keywords":{}}],["recordingstatu",{"_index":3041,"title":{},"content":{"364":{"position":[[494,18]]},"365":{"position":[[585,15]]},"366":{"position":[[270,15]]}},"keywords":{}}],["recurs",{"_index":2405,"title":{},"content":{"269":{"position":[[872,9]]}},"keywords":{}}],["red",{"_index":1027,"title":{},"content":{"89":{"position":[[345,4]]},"212":{"position":[[184,3],[195,3],[417,3],[428,3]]},"229":{"position":[[412,3],[436,3],[460,3],[1715,4],[1726,4],[1740,4],[1759,4]]},"320":{"position":[[1307,3],[1335,3],[2104,3],[2251,3],[2279,3],[2836,3],[2871,3],[2980,3],[3015,3]]},"442":{"position":[[61,3]]},"451":{"position":[[462,4],[480,3]]}},"keywords":{}}],["redirect",{"_index":2077,"title":{},"content":{"244":{"position":[[1353,8],[1439,10],[1500,10]]},"245":{"position":[[123,8],[369,8],[446,10]]},"304":{"position":[[292,9]]},"328":{"position":[[175,8],[236,9]]},"331":{"position":[[166,11],[230,12]]},"473":{"position":[[1540,10]]}},"keywords":{}}],["redirect_uri",{"_index":2074,"title":{},"content":{"244":{"position":[[1243,12]]},"245":{"position":[[464,13]]}},"keywords":{}}],["redirect_url",{"_index":2078,"title":{},"content":{"244":{"position":[[1457,13]]}},"keywords":{}}],["reed",{"_index":1994,"title":{},"content":{"229":{"position":[[2788,5]]},"320":{"position":[[2124,4]]}},"keywords":{}}],["refer",{"_index":423,"title":{"315":{"position":[[0,9]]},"336":{"position":[[0,9]]}},"content":{"47":{"position":[[1019,9]]},"89":{"position":[[377,9]]},"105":{"position":[[615,5]]},"133":{"position":[[740,5]]},"135":{"position":[[569,5]]},"209":{"position":[[905,9]]},"215":{"position":[[118,9]]},"313":{"position":[[817,9]]},"314":{"position":[[792,9]]},"316":{"position":[[728,9]]},"317":{"position":[[408,9]]},"334":{"position":[[816,9]]},"335":{"position":[[789,9]]},"337":{"position":[[687,9]]},"338":{"position":[[792,9]]},"346":{"position":[[2058,9]]},"349":{"position":[[547,6],[881,6]]},"395":{"position":[[552,6],[891,6]]},"396":{"position":[[901,6]]},"419":{"position":[[71,5]]},"425":{"position":[[50,6]]},"511":{"position":[[1113,9],[1524,6]]},"515":{"position":[[1096,9],[1507,6]]}},"keywords":{}}],["referenc",{"_index":2641,"title":{},"content":{"317":{"position":[[746,10]]},"338":{"position":[[1098,10]]}},"keywords":{}}],["reflect",{"_index":1649,"title":{},"content":{"212":{"position":[[68,11]]},"287":{"position":[[2289,9]]}},"keywords":{}}],["refresh",{"_index":3383,"title":{},"content":{"419":{"position":[[675,7]]}},"keywords":{}}],["refresh_token",{"_index":2099,"title":{},"content":{"245":{"position":[[788,14]]}},"keywords":{}}],["refreshtoken",{"_index":1564,"title":{},"content":{"140":{"position":[[588,15]]},"141":{"position":[[140,15],[683,15]]},"154":{"position":[[690,15]]},"155":{"position":[[195,15],[748,15]]},"161":{"position":[[594,15]]},"162":{"position":[[177,15],[455,15],[786,15]]},"168":{"position":[[673,15]]},"169":{"position":[[164,15],[780,15]]},"182":{"position":[[635,15]]},"183":{"position":[[153,15],[686,15]]},"196":{"position":[[583,15]]},"197":{"position":[[178,15],[411,15],[686,15]]},"203":{"position":[[663,15]]},"204":{"position":[[157,15],[677,15]]}},"keywords":{}}],["regardless",{"_index":1253,"title":{},"content":{"105":{"position":[[2998,10]]},"246":{"position":[[310,10]]},"287":{"position":[[2399,10]]}},"keywords":{}}],["region",{"_index":1735,"title":{},"content":{"220":{"position":[[2361,6]]},"514":{"position":[[17,6]]}},"keywords":{}}],["regist",{"_index":175,"title":{"13":{"position":[[8,10]]},"464":{"position":[[0,8]]},"477":{"position":[[0,8]]}},"content":{"5":{"position":[[307,10],[371,8]]},"11":{"position":[[221,10]]},"13":{"position":[[22,10]]},"47":{"position":[[847,10],[1055,9]]},"48":{"position":[[37,8]]},"218":{"position":[[60,11]]},"288":{"position":[[1596,10]]},"292":{"position":[[472,10]]},"301":{"position":[[89,10]]},"302":{"position":[[98,10]]},"303":{"position":[[85,10],[258,10]]},"304":{"position":[[91,10],[270,10]]},"305":{"position":[[88,10],[264,10]]},"328":{"position":[[83,8]]},"332":{"position":[[239,10]]},"422":{"position":[[108,8]]},"454":{"position":[[124,8],[143,8]]},"464":{"position":[[3,8]]},"466":{"position":[[6,11]]},"477":{"position":[[3,8]]},"479":{"position":[[6,11]]}},"keywords":{}}],["registr",{"_index":248,"title":{},"content":{"5":{"position":[[2334,15]]},"13":{"position":[[146,13]]},"47":{"position":[[722,13]]},"70":{"position":[[979,13],[1215,15]]},"72":{"position":[[641,15],[675,13],[1054,15],[1083,13]]},"73":{"position":[[337,15],[366,13]]},"74":{"position":[[206,12]]},"82":{"position":[[1103,13],[1128,15],[1564,13],[1607,15],[2027,13],[2080,15]]},"83":{"position":[[925,13],[950,15],[1386,13],[1429,15],[1849,13],[1902,15]]},"464":{"position":[[29,12]]},"477":{"position":[[29,12]]},"480":{"position":[[646,14]]}},"keywords":{}}],["registration.geometri",{"_index":1765,"title":{},"content":{"222":{"position":[[1125,22]]}},"keywords":{}}],["registration/authent",{"_index":2001,"title":{},"content":{"232":{"position":[[184,27]]}},"keywords":{}}],["registrationgeometri",{"_index":1681,"title":{},"content":{"218":{"position":[[116,21]]},"219":{"position":[[102,21]]}},"keywords":{}}],["rel",{"_index":1086,"title":{},"content":{"97":{"position":[[152,8]]},"393":{"position":[[71,8]]},"394":{"position":[[71,8]]},"511":{"position":[[1805,8],[2004,8]]},"515":{"position":[[1788,8],[1987,8]]}},"keywords":{}}],["relat",{"_index":369,"title":{"119":{"position":[[22,8]]},"120":{"position":[[22,8]]},"121":{"position":[[28,8]]},"122":{"position":[[28,8]]}},"content":{"22":{"position":[[219,7]]},"23":{"position":[[219,7]]},"57":{"position":[[68,7]]},"97":{"position":[[68,7]]},"117":{"position":[[97,9],[302,9],[392,8],[614,8]]},"118":{"position":[[95,8],[193,8],[328,8],[427,8]]},"119":{"position":[[87,8],[109,8]]},"120":{"position":[[100,8],[129,8]]},"121":{"position":[[80,8]]},"122":{"position":[[106,8],[316,9]]},"253":{"position":[[1255,7]]},"263":{"position":[[320,7]]},"293":{"position":[[608,8]]},"300":{"position":[[80,7]]},"346":{"position":[[1046,7]]},"411":{"position":[[105,7]]},"444":{"position":[[142,7]]},"480":{"position":[[9245,7]]}},"keywords":{}}],["relation/receiv",{"_index":1294,"title":{},"content":{"118":{"position":[[381,17]]},"119":{"position":[[314,18]]},"121":{"position":[[45,17],[334,18]]}},"keywords":{}}],["relation/receiver/{receiverapiown",{"_index":1312,"title":{},"content":{"122":{"position":[[622,37]]}},"keywords":{}}],["relation/receiver/{receiverapiowner}/statu",{"_index":1307,"title":{},"content":{"120":{"position":[[335,44]]}},"keywords":{}}],["relation/receiver/{receiverapiowner}/us",{"_index":1298,"title":{},"content":{"118":{"position":[[743,42],[884,42]]},"123":{"position":[[355,42]]},"124":{"position":[[45,42],[542,42]]},"125":{"position":[[46,42],[416,42]]},"127":{"position":[[297,42]]}},"keywords":{}}],["relation/receiver/{receiverapiowner}/{targetapiowner}/invalid",{"_index":1317,"title":{},"content":{"126":{"position":[[351,64]]}},"keywords":{}}],["relation/{relationrol",{"_index":1292,"title":{},"content":{"118":{"position":[[147,23]]},"119":{"position":[[44,23]]}},"keywords":{}}],["relation/{relationrole}/us",{"_index":1318,"title":{},"content":{"127":{"position":[[47,29]]}},"keywords":{}}],["relation/{relationrole}/{receiverapiowner}/us",{"_index":1302,"title":{},"content":{"118":{"position":[[1177,48]]}},"keywords":{}}],["relation/{relationrole}/{targetapiown",{"_index":1295,"title":{},"content":{"118":{"position":[[488,40]]},"122":{"position":[[46,40]]}},"keywords":{}}],["relation/{relationrole}/{targetapiowner}/invalid",{"_index":1301,"title":{},"content":{"118":{"position":[[1036,51]]},"126":{"position":[[45,51]]}},"keywords":{}}],["relation/{relationrole}/{targetapiowner}/statu",{"_index":1293,"title":{},"content":{"118":{"position":[[252,47]]},"120":{"position":[[44,47]]}},"keywords":{}}],["relation/{relationrole}/{targetapiowner}/us",{"_index":1296,"title":{},"content":{"118":{"position":[[597,46]]},"123":{"position":[[44,46]]}},"keywords":{}}],["relationship",{"_index":1279,"title":{},"content":{"117":{"position":[[137,12],[366,12],[425,12],[520,13]]},"122":{"position":[[195,13]]},"209":{"position":[[715,12]]},"287":{"position":[[2259,13]]}},"keywords":{}}],["relativehumid",{"_index":4081,"title":{},"content":{"511":{"position":[[1786,16]]},"515":{"position":[[1769,16]]},"520":{"position":[[3161,19]]},"522":{"position":[[3127,19]]},"524":{"position":[[2992,19]]},"526":{"position":[[2958,19]]}},"keywords":{}}],["releas",{"_index":3414,"title":{"433":{"position":[[0,7]]}},"content":{},"keywords":{}}],["relev",{"_index":1547,"title":{},"content":{"135":{"position":[[611,8]]},"419":{"position":[[453,8]]},"420":{"position":[[356,8]]}},"keywords":{}}],["remain",{"_index":1149,"title":{},"content":{"103":{"position":[[1569,6]]},"423":{"position":[[247,9]]}},"keywords":{}}],["rememb",{"_index":2107,"title":{},"content":{"246":{"position":[[864,8],[1074,8]]},"473":{"position":[[6383,9]]}},"keywords":{}}],["rememberm",{"_index":444,"title":{},"content":{"48":{"position":[[657,13],[733,12]]},"423":{"position":[[508,13],[592,12]]},"467":{"position":[[218,10],[818,11]]},"480":{"position":[[1398,10],[1923,11]]}},"keywords":{}}],["rememberme\":\"tru",{"_index":435,"title":{},"content":{"48":{"position":[[351,19]]},"423":{"position":[[395,19]]}},"keywords":{}}],["remotedisconnected('remot",{"_index":305,"title":{},"content":{"8":{"position":[[1811,26]]}},"keywords":{}}],["remov",{"_index":1152,"title":{},"content":{"104":{"position":[[64,6]]},"105":{"position":[[1465,6],[1815,8],[2152,8]]},"117":{"position":[[1089,7]]},"287":{"position":[[1825,6]]},"399":{"position":[[68,6]]},"413":{"position":[[330,8],[524,6],[849,7]]},"438":{"position":[[90,7]]},"451":{"position":[[130,6],[255,7],[302,7]]}},"keywords":{}}],["removing/collect",{"_index":2165,"title":{},"content":{"253":{"position":[[1074,19]]}},"keywords":{}}],["render",{"_index":3721,"title":{},"content":{"480":{"position":[[49,6]]}},"keywords":{}}],["repair",{"_index":1339,"title":{},"content":{"130":{"position":[[1130,6]]}},"keywords":{}}],["repeat",{"_index":1286,"title":{},"content":{"117":{"position":[[697,6]]},"320":{"position":[[182,6]]}},"keywords":{}}],["repeated_point",{"_index":2500,"title":{},"content":{"292":{"position":[[223,14]]}},"keywords":{}}],["repeatedli",{"_index":404,"title":{},"content":{"47":{"position":[[88,10]]},"226":{"position":[[88,10]]},"354":{"position":[[88,10]]},"402":{"position":[[88,10]]}},"keywords":{}}],["replac",{"_index":2575,"title":{},"content":{"313":{"position":[[72,7]]},"314":{"position":[[72,7]]},"334":{"position":[[72,7]]},"335":{"position":[[72,7]]},"490":{"position":[[48,7]]}},"keywords":{}}],["repons",{"_index":3630,"title":{},"content":{"473":{"position":[[3005,10]]}},"keywords":{}}],["report",{"_index":1473,"title":{},"content":{"130":{"position":[[6221,8]]}},"keywords":{}}],["repres",{"_index":2045,"title":{},"content":{"242":{"position":[[953,9]]},"262":{"position":[[218,10]]},"263":{"position":[[368,10]]},"288":{"position":[[392,10]]},"325":{"position":[[78,10]]},"343":{"position":[[34,11]]},"346":{"position":[[896,12]]},"349":{"position":[[658,9]]},"365":{"position":[[267,11]]},"395":{"position":[[668,9]]},"396":{"position":[[990,10]]},"424":{"position":[[300,12]]},"428":{"position":[[220,9]]}},"keywords":{}}],["represent",{"_index":418,"title":{},"content":{"47":{"position":[[694,14]]},"319":{"position":[[151,15]]},"400":{"position":[[350,12]]}},"keywords":{}}],["reprocess",{"_index":1524,"title":{"225":{"position":[[0,9]]},"401":{"position":[[0,9]]}},"content":{"133":{"position":[[128,9]]},"225":{"position":[[49,12]]},"389":{"position":[[755,9]]},"401":{"position":[[40,12]]}},"keywords":{}}],["req",{"_index":3492,"title":{},"content":{"467":{"position":[[540,5],[1852,5],[3068,5],[5967,5]]},"480":{"position":[[116,5],[575,5],[1726,5],[2833,5],[3765,5],[4540,5],[5265,5],[7736,5],[8579,5],[9327,5],[9845,5]]}},"keywords":{}}],["req.bodi",{"_index":3806,"title":{},"content":{"480":{"position":[[9876,9]]}},"keywords":{}}],["req.body.boundery_typ",{"_index":3565,"title":{},"content":{"467":{"position":[[6162,23]]}},"keywords":{}}],["req.body.days_befor",{"_index":3569,"title":{},"content":{"467":{"position":[[6250,21]]}},"keywords":{}}],["req.body.email.trim",{"_index":3494,"title":{},"content":{"467":{"position":[[600,22]]},"480":{"position":[[1754,22]]}},"keywords":{}}],["req.body.endd",{"_index":3523,"title":{},"content":{"467":{"position":[[3293,17]]}},"keywords":{}}],["req.body.field_bounderi",{"_index":3567,"title":{},"content":{"467":{"position":[[6207,24]]}},"keywords":{}}],["req.body.field_nam",{"_index":3563,"title":{},"content":{"467":{"position":[[6121,20]]}},"keywords":{}}],["req.body.fileid",{"_index":3732,"title":{},"content":{"480":{"position":[[823,17],[950,17],[982,15]]}},"keywords":{}}],["req.body.id",{"_index":3521,"title":{},"content":{"467":{"position":[[3230,12]]}},"keywords":{}}],["req.body.messag",{"_index":3727,"title":{},"content":{"480":{"position":[[594,17]]}},"keywords":{}}],["req.body.nom",{"_index":3743,"title":{},"content":{"480":{"position":[[2860,14]]}},"keywords":{}}],["req.body.password.trim",{"_index":3496,"title":{},"content":{"467":{"position":[[636,25]]},"480":{"position":[[1790,25]]}},"keywords":{}}],["req.body.provid",{"_index":3765,"title":{},"content":{"480":{"position":[[5533,18]]}},"keywords":{}}],["req.body.startd",{"_index":3522,"title":{},"content":{"467":{"position":[[3259,19]]}},"keywords":{}}],["req.body.typ",{"_index":3730,"title":{},"content":{"480":{"position":[[722,14],[851,14]]}},"keywords":{}}],["req.body.type.trim",{"_index":3744,"title":{},"content":{"480":{"position":[[2896,23]]}},"keywords":{}}],["req.fil",{"_index":3766,"title":{},"content":{"480":{"position":[[5564,10]]}},"keywords":{}}],["req.header(\"author",{"_index":3510,"title":{},"content":{"467":{"position":[[1871,30],[1973,28],[3087,30],[5986,30]]}},"keywords":{}}],["req.params.id",{"_index":3757,"title":{},"content":{"480":{"position":[[4573,14],[8609,14],[9357,14]]}},"keywords":{}}],["req2",{"_index":3822,"title":{},"content":{"480":{"position":[[10763,4]]}},"keywords":{}}],["request",{"_index":100,"title":{},"content":{"3":{"position":[[36,8],[389,7],[475,7],[715,7],[793,7]]},"5":{"position":[[452,7],[1602,7],[2124,7]]},"6":{"position":[[68,7]]},"7":{"position":[[38,7]]},"8":{"position":[[68,7]]},"9":{"position":[[222,7]]},"47":{"position":[[440,8],[832,7],[1133,7]]},"48":{"position":[[112,7],[203,7],[433,7],[794,7]]},"57":{"position":[[1517,7]]},"58":{"position":[[96,7]]},"59":{"position":[[2168,7]]},"60":{"position":[[78,7],[262,7]]},"61":{"position":[[198,7],[397,7]]},"62":{"position":[[179,7]]},"63":{"position":[[1243,7]]},"64":{"position":[[98,7]]},"65":{"position":[[479,7]]},"66":{"position":[[95,7]]},"70":{"position":[[738,7]]},"71":{"position":[[502,7]]},"72":{"position":[[398,7]]},"73":{"position":[[100,7]]},"74":{"position":[[286,7]]},"75":{"position":[[101,7],[242,7]]},"76":{"position":[[110,7]]},"78":{"position":[[530,7]]},"79":{"position":[[528,7]]},"80":{"position":[[400,7]]},"82":{"position":[[531,7]]},"83":{"position":[[346,7]]},"88":{"position":[[502,7]]},"89":{"position":[[715,7]]},"93":{"position":[[464,7]]},"94":{"position":[[99,7]]},"95":{"position":[[130,7],[676,7]]},"96":{"position":[[114,7],[246,7]]},"97":{"position":[[208,7]]},"98":{"position":[[519,7]]},"99":{"position":[[187,7]]},"100":{"position":[[468,7]]},"101":{"position":[[819,7]]},"103":{"position":[[1076,9]]},"111":{"position":[[86,7],[263,7]]},"112":{"position":[[181,7]]},"113":{"position":[[205,7]]},"119":{"position":[[144,7]]},"120":{"position":[[165,7]]},"121":{"position":[[113,7]]},"122":{"position":[[410,7]]},"123":{"position":[[185,7]]},"124":{"position":[[264,7]]},"125":{"position":[[183,7]]},"126":{"position":[[179,7]]},"127":{"position":[[124,7]]},"130":{"position":[[4426,7]]},"131":{"position":[[283,7],[334,8]]},"132":{"position":[[272,7],[323,8]]},"133":{"position":[[253,7]]},"140":{"position":[[276,7]]},"141":{"position":[[97,7],[205,7]]},"142":{"position":[[91,7]]},"144":{"position":[[124,7]]},"147":{"position":[[273,7]]},"148":{"position":[[94,7],[236,7]]},"149":{"position":[[86,7]]},"151":{"position":[[122,7]]},"154":{"position":[[294,7]]},"155":{"position":[[115,7],[219,7]]},"156":{"position":[[109,7]]},"158":{"position":[[133,7]]},"161":{"position":[[267,7]]},"162":{"position":[[88,7],[245,7]]},"163":{"position":[[82,7]]},"165":{"position":[[119,7]]},"168":{"position":[[279,7]]},"169":{"position":[[100,7],[232,7]]},"170":{"position":[[94,7]]},"172":{"position":[[125,7]]},"175":{"position":[[289,7]]},"176":{"position":[[110,7],[192,7]]},"177":{"position":[[104,7]]},"179":{"position":[[130,7]]},"182":{"position":[[269,7]]},"183":{"position":[[90,7],[177,7]]},"184":{"position":[[84,7]]},"186":{"position":[[120,7]]},"189":{"position":[[273,7]]},"190":{"position":[[94,7],[180,7]]},"191":{"position":[[88,7]]},"193":{"position":[[122,7]]},"196":{"position":[[269,7]]},"197":{"position":[[90,7],[202,7]]},"198":{"position":[[84,7]]},"200":{"position":[[120,7]]},"203":{"position":[[273,7]]},"204":{"position":[[94,7],[181,7]]},"205":{"position":[[88,7]]},"207":{"position":[[122,7]]},"210":{"position":[[324,9]]},"218":{"position":[[510,7]]},"219":{"position":[[191,7]]},"220":{"position":[[1421,7]]},"221":{"position":[[73,7]]},"222":{"position":[[863,7],[1609,7]]},"223":{"position":[[230,7]]},"224":{"position":[[129,7]]},"225":{"position":[[105,7]]},"239":{"position":[[342,7]]},"242":{"position":[[311,8]]},"246":{"position":[[825,8]]},"248":{"position":[[96,7],[654,7]]},"252":{"position":[[745,10]]},"255":{"position":[[423,7]]},"256":{"position":[[398,7]]},"260":{"position":[[525,7]]},"261":{"position":[[71,7]]},"262":{"position":[[76,7],[426,7],[525,7],[838,7]]},"263":{"position":[[211,7],[460,7],[749,7]]},"264":{"position":[[1111,7]]},"265":{"position":[[119,7]]},"266":{"position":[[162,7],[858,7],[1139,7]]},"267":{"position":[[218,7],[232,7],[268,7],[330,7]]},"268":{"position":[[241,7],[478,7]]},"269":{"position":[[477,7]]},"272":{"position":[[93,7]]},"273":{"position":[[113,7],[363,7]]},"275":{"position":[[163,7],[416,7]]},"277":{"position":[[440,7]]},"278":{"position":[[91,7]]},"279":{"position":[[148,8],[157,7],[215,7]]},"280":{"position":[[164,8],[173,7],[241,7]]},"282":{"position":[[338,7]]},"283":{"position":[[95,7]]},"284":{"position":[[122,8],[131,7],[184,7]]},"285":{"position":[[148,8],[157,7],[210,7]]},"287":{"position":[[1915,8],[2213,8]]},"297":{"position":[[50,7]]},"298":{"position":[[45,7],[358,7]]},"299":{"position":[[47,7]]},"301":{"position":[[654,7],[1147,7],[1541,7],[1610,7],[1952,7],[2021,7],[2365,7]]},"302":{"position":[[779,7],[1304,7],[1730,7],[1820,7],[2215,7],[2305,7],[2702,7]]},"303":{"position":[[872,7],[1385,7],[1810,7],[1909,7],[2303,7],[2402,7],[2798,7]]},"304":{"position":[[949,7],[1484,7],[1931,7],[2002,7],[2390,7],[2461,7],[2851,7]]},"305":{"position":[[842,7],[1329,7],[1717,7],[1816,7],[2182,7],[2281,7],[2649,7]]},"328":{"position":[[820,7]]},"329":{"position":[[489,7]]},"330":{"position":[[846,7]]},"331":{"position":[[704,7]]},"332":{"position":[[339,7],[686,7]]},"346":{"position":[[1845,7]]},"347":{"position":[[47,7]]},"348":{"position":[[74,7]]},"349":{"position":[[98,7]]},"350":{"position":[[67,7]]},"351":{"position":[[66,7]]},"352":{"position":[[260,7]]},"353":{"position":[[281,7],[668,7],[724,7]]},"378":{"position":[[476,7],[1300,7],[2582,7],[2662,7],[3393,7]]},"379":{"position":[[536,7],[1377,7],[2631,7],[2699,7],[3436,7]]},"380":{"position":[[458,7],[1227,7],[2182,7],[2222,7],[2891,7]]},"382":{"position":[[1087,7],[1241,7]]},"383":{"position":[[1090,7],[1232,7]]},"384":{"position":[[829,7],[942,7]]},"385":{"position":[[859,7]]},"390":{"position":[[1298,7]]},"391":{"position":[[57,7]]},"392":{"position":[[84,7]]},"393":{"position":[[98,7]]},"394":{"position":[[183,7]]},"395":{"position":[[98,7]]},"396":{"position":[[191,7]]},"397":{"position":[[197,7]]},"398":{"position":[[78,7]]},"399":{"position":[[157,7]]},"400":{"position":[[126,7]]},"401":{"position":[[187,7]]},"408":{"position":[[255,7]]},"423":{"position":[[654,7]]},"429":{"position":[[167,7]]},"458":{"position":[[135,8]]},"459":{"position":[[78,7]]},"466":{"position":[[156,8]]},"467":{"position":[[257,7],[1014,7],[1619,7],[1695,7],[2287,11],[2451,7],[2733,7],[4467,8],[5616,7],[5866,8],[6756,7]]},"473":{"position":[[4012,8]]},"479":{"position":[[234,8]]},"480":{"position":[[1437,7],[2462,7],[3511,7],[4366,7],[5883,7],[6625,7],[8337,7],[9155,7],[12581,7]]},"483":{"position":[[129,7]]},"484":{"position":[[94,7]]},"488":{"position":[[282,8],[742,8],[2785,8]]},"500":{"position":[[32,7]]},"501":{"position":[[49,7],[232,7]]},"502":{"position":[[114,7],[681,7]]},"503":{"position":[[65,7],[542,7]]},"504":{"position":[[57,7]]},"505":{"position":[[309,7]]},"517":{"position":[[1013,7],[1140,8]]},"519":{"position":[[541,7]]},"520":{"position":[[543,7]]},"521":{"position":[[530,7]]},"522":{"position":[[532,7]]},"523":{"position":[[727,7]]},"524":{"position":[[526,7]]},"525":{"position":[[716,7]]},"526":{"position":[[515,7]]}},"keywords":{}}],["request_sig",{"_index":156,"title":{},"content":{"3":{"position":[[999,11],[1091,12]]}},"keywords":{}}],["requestbodi",{"_index":274,"title":{},"content":{"8":{"position":[[623,14],[1108,14],[1395,14]]}},"keywords":{}}],["requests.get(endpoint",{"_index":1479,"title":{},"content":{"131":{"position":[[500,22]]}},"keywords":{}}],["requests.put(endpoint",{"_index":1503,"title":{},"content":{"132":{"position":[[478,22]]}},"keywords":{}}],["requir",{"_index":793,"title":{},"content":{"72":{"position":[[293,10]]},"80":{"position":[[240,10]]},"83":{"position":[[241,10]]},"89":{"position":[[217,8],[483,8]]},"95":{"position":[[121,8]]},"96":{"position":[[105,8]]},"101":{"position":[[372,8]]},"105":{"position":[[80,8]]},"129":{"position":[[383,8]]},"130":{"position":[[414,8]]},"136":{"position":[[55,8]]},"296":{"position":[[21,8]]},"298":{"position":[[65,8]]},"300":{"position":[[95,8]]},"303":{"position":[[185,12]]},"304":{"position":[[197,12]]},"305":{"position":[[191,12]]},"308":{"position":[[275,12]]},"313":{"position":[[732,8]]},"314":{"position":[[708,8]]},"326":{"position":[[103,8]]},"334":{"position":[[731,8]]},"335":{"position":[[705,8]]},"345":{"position":[[566,8]]},"352":{"position":[[228,8]]},"362":{"position":[[536,8]]},"365":{"position":[[1571,8],[1742,8]]},"415":{"position":[[1660,8]]}},"keywords":{}}],["require(\"axio",{"_index":3482,"title":{},"content":{"466":{"position":[[258,17]]},"479":{"position":[[365,16]]}},"keywords":{}}],["require(\"express",{"_index":3481,"title":{},"content":{"466":{"position":[[201,19]]},"479":{"position":[[279,18]]}},"keywords":{}}],["require(\"ngrok",{"_index":3715,"title":{},"content":{"479":{"position":[[334,16]]}},"keywords":{}}],["res.dados.foreach((",{"_index":3918,"title":{},"content":{"488":{"position":[[633,21]]}},"keywords":{}}],["res.json",{"_index":3501,"title":{},"content":{"467":{"position":[[1022,10],[1202,10],[1355,10],[5198,10],[5268,9],[5347,9],[6488,9]]},"480":{"position":[[8173,9],[8847,10],[9607,10]]}},"keywords":{}}],["res.json(\"congrat",{"_index":3738,"title":{},"content":{"480":{"position":[[2036,19]]}},"keywords":{}}],["res.json(\"field",{"_index":3575,"title":{},"content":{"467":{"position":[[7240,15]]}},"keywords":{}}],["res.json(\"fil",{"_index":3782,"title":{},"content":{"480":{"position":[[6994,14]]}},"keywords":{}}],["res.json(\"invalid",{"_index":3511,"title":{},"content":{"467":{"position":[[1904,17],[3120,17]]},"480":{"position":[[4075,17]]}},"keywords":{}}],["res.json(\"no",{"_index":3526,"title":{},"content":{"467":{"position":[[3569,12]]}},"keywords":{}}],["res.json(\"oop",{"_index":3739,"title":{},"content":{"480":{"position":[[2136,15],[2218,15]]}},"keywords":{}}],["res.json(\"someth",{"_index":3515,"title":{},"content":{"467":{"position":[[2242,19],[7316,19]]}},"keywords":{}}],["res.json(\"thi",{"_index":3747,"title":{},"content":{"480":{"position":[[3279,14]]}},"keywords":{}}],["res.json(\"y",{"_index":3561,"title":{},"content":{"467":{"position":[[6019,13]]}},"keywords":{}}],["res.json('couldnt",{"_index":3786,"title":{},"content":{"480":{"position":[[7235,17]]}},"keywords":{}}],["res.json('error",{"_index":3785,"title":{},"content":{"480":{"position":[[7132,15]]}},"keywords":{}}],["res.json('not",{"_index":3763,"title":{},"content":{"480":{"position":[[5308,13]]}},"keywords":{}}],["res.json('webhook",{"_index":3746,"title":{},"content":{"480":{"position":[[3173,17]]}},"keywords":{}}],["res.json(`invalid",{"_index":3792,"title":{},"content":{"480":{"position":[[7779,17]]}},"keywords":{}}],["res.json(json.stringify(opt",{"_index":3798,"title":{},"content":{"480":{"position":[[8125,34]]}},"keywords":{}}],["res.json(json.stringify(response.data",{"_index":3753,"title":{},"content":{"480":{"position":[[3999,40]]}},"keywords":{}}],["res.json(json.stringify(result",{"_index":3870,"title":{},"content":{"480":{"position":[[12718,34]]}},"keywords":{}}],["res.json(response.data",{"_index":3513,"title":{},"content":{"467":{"position":[[2188,24]]}},"keywords":{}}],["res.redirect",{"_index":3760,"title":{},"content":{"480":{"position":[[4861,18]]}},"keywords":{}}],["res.render(__dirnam",{"_index":3723,"title":{},"content":{"480":{"position":[[132,20]]}},"keywords":{}}],["res.status(200).send(\"ok",{"_index":3736,"title":{},"content":{"480":{"position":[[1104,27]]}},"keywords":{}}],["res.status(500).send(err",{"_index":3772,"title":{},"content":{"480":{"position":[[5830,26]]}},"keywords":{}}],["res2",{"_index":3824,"title":{},"content":{"480":{"position":[[10809,6]]}},"keywords":{}}],["res2.on(\"data",{"_index":3825,"title":{},"content":{"480":{"position":[[10833,15]]}},"keywords":{}}],["res2.on(\"end",{"_index":3827,"title":{},"content":{"480":{"position":[[10889,14]]}},"keywords":{}}],["resolut",{"_index":1185,"title":{},"content":{"104":{"position":[[1341,10]]},"210":{"position":[[166,10],[202,10],[239,10]]},"220":{"position":[[270,10],[1946,13],[2784,11]]},"221":{"position":[[561,13]]},"222":{"position":[[187,10]]},"239":{"position":[[260,10],[587,13]]},"510":{"position":[[55,10]]},"514":{"position":[[32,10],[52,10]]}},"keywords":{}}],["resolv",{"_index":3817,"title":{},"content":{"480":{"position":[[10430,9]]}},"keywords":{}}],["resons",{"_index":3881,"title":{},"content":{"484":{"position":[[128,10]]}},"keywords":{}}],["resourc",{"_index":162,"title":{"255":{"position":[[17,9]]},"286":{"position":[[5,9]]},"287":{"position":[[6,8]]},"288":{"position":[[9,8]]},"289":{"position":[[10,8]]},"290":{"position":[[5,8]]},"291":{"position":[[7,8]]}},"content":{"5":{"position":[[34,9]]},"6":{"position":[[48,8]]},"9":{"position":[[49,8],[150,9]]},"35":{"position":[[169,9]]},"37":{"position":[[100,9]]},"53":{"position":[[5,8]]},"55":{"position":[[131,9]]},"68":{"position":[[131,9]]},"86":{"position":[[312,9]]},"91":{"position":[[144,9]]},"117":{"position":[[822,9],[928,9]]},"124":{"position":[[167,9],[794,8]]},"125":{"position":[[692,8]]},"255":{"position":[[5,10],[1149,9]]},"258":{"position":[[262,9]]},"286":{"position":[[19,9]]},"287":{"position":[[1739,9]]},"295":{"position":[[141,9]]},"326":{"position":[[211,10]]},"360":{"position":[[413,8],[809,9],[981,8]]},"400":{"position":[[63,9]]},"406":{"position":[[252,9]]},"420":{"position":[[205,9],[248,9],[322,10],[431,9],[471,8],[535,9],[579,9]]},"456":{"position":[[36,9]]},"498":{"position":[[469,9],[537,10],[568,9]]},"503":{"position":[[205,8]]},"505":{"position":[[146,9],[194,8]]}},"keywords":{}}],["respect",{"_index":316,"title":{},"content":{"11":{"position":[[71,10]]},"287":{"position":[[663,13]]},"371":{"position":[[165,10]]}},"keywords":{}}],["respond",{"_index":3868,"title":{},"content":{"480":{"position":[[12569,7]]}},"keywords":{}}],["respons",{"_index":182,"title":{"249":{"position":[[7,9]]},"358":{"position":[[31,9]]},"364":{"position":[[8,8]]},"409":{"position":[[24,9]]}},"content":{"5":{"position":[[410,8],[1837,9]]},"6":{"position":[[232,9]]},"7":{"position":[[197,9]]},"8":{"position":[[240,9],[425,11],[910,11],[1868,13]]},"48":{"position":[[419,8]]},"57":{"position":[[1687,9]]},"58":{"position":[[278,9]]},"59":{"position":[[2356,9]]},"60":{"position":[[457,9]]},"61":{"position":[[605,9]]},"63":{"position":[[1415,9]]},"64":{"position":[[284,9]]},"65":{"position":[[650,9]]},"66":{"position":[[279,9]]},"70":{"position":[[889,9]]},"71":{"position":[[680,9]]},"72":{"position":[[556,9]]},"73":{"position":[[256,9]]},"74":{"position":[[471,9]]},"75":{"position":[[478,9]]},"76":{"position":[[324,9]]},"78":{"position":[[682,9]]},"79":{"position":[[707,9]]},"80":{"position":[[559,9]]},"82":{"position":[[683,9]]},"83":{"position":[[505,9]]},"88":{"position":[[670,9]]},"89":{"position":[[941,9]]},"93":{"position":[[690,9]]},"94":{"position":[[288,9]]},"95":{"position":[[929,9]]},"96":{"position":[[462,9]]},"97":{"position":[[417,9]]},"98":{"position":[[754,9]]},"99":{"position":[[388,9]]},"100":{"position":[[696,9]]},"101":{"position":[[1067,9]]},"109":{"position":[[204,9]]},"110":{"position":[[280,9]]},"111":{"position":[[671,9]]},"112":{"position":[[528,9]]},"113":{"position":[[614,9]]},"119":{"position":[[333,9]]},"120":{"position":[[380,9]]},"121":{"position":[[353,9]]},"122":{"position":[[660,9]]},"123":{"position":[[424,9]]},"124":{"position":[[611,9]]},"125":{"position":[[496,9]]},"130":{"position":[[4644,9]]},"131":{"position":[[489,8],[563,9]]},"132":{"position":[[467,8],[541,9]]},"133":{"position":[[418,9]]},"140":{"position":[[469,9]]},"141":{"position":[[528,9]]},"144":{"position":[[325,9]]},"147":{"position":[[464,9]]},"148":{"position":[[556,9]]},"151":{"position":[[321,9]]},"154":{"position":[[496,9]]},"155":{"position":[[509,9]]},"158":{"position":[[343,9]]},"161":{"position":[[455,9]]},"162":{"position":[[615,9]]},"165":{"position":[[315,9]]},"168":{"position":[[473,9]]},"169":{"position":[[542,9]]},"172":{"position":[[327,9]]},"175":{"position":[[488,9]]},"176":{"position":[[500,9]]},"179":{"position":[[337,9]]},"182":{"position":[[458,9]]},"183":{"position":[[476,9]]},"186":{"position":[[317,9]]},"189":{"position":[[464,9]]},"190":{"position":[[484,9]]},"193":{"position":[[321,9]]},"196":{"position":[[458,9]]},"197":{"position":[[528,9]]},"200":{"position":[[317,9]]},"203":{"position":[[464,9]]},"204":{"position":[[442,9]]},"207":{"position":[[321,9]]},"218":{"position":[[664,9]]},"219":{"position":[[350,9]]},"220":{"position":[[1636,9]]},"221":{"position":[[253,9]]},"224":{"position":[[307,9]]},"239":{"position":[[853,9],[867,8]]},"242":{"position":[[129,9]]},"244":{"position":[[1399,9]]},"255":{"position":[[583,9],[1159,10]]},"260":{"position":[[676,9]]},"261":{"position":[[246,9]]},"262":{"position":[[1078,9]]},"263":{"position":[[1031,9]]},"264":{"position":[[1308,9]]},"265":{"position":[[321,9]]},"266":{"position":[[1581,9]]},"267":{"position":[[544,9]]},"269":{"position":[[689,9]]},"272":{"position":[[279,9]]},"273":{"position":[[317,9]]},"274":{"position":[[261,9]]},"275":{"position":[[671,9]]},"277":{"position":[[590,9]]},"278":{"position":[[265,9]]},"279":{"position":[[413,9]]},"280":{"position":[[472,9]]},"282":{"position":[[490,9]]},"283":{"position":[[271,9]]},"284":{"position":[[386,9]]},"285":{"position":[[418,9]]},"297":{"position":[[235,9]]},"298":{"position":[[594,9]]},"301":{"position":[[824,9],[1327,9]]},"302":{"position":[[957,9],[1492,9]]},"303":{"position":[[1038,9],[1581,9]]},"304":{"position":[[1120,9],[1685,9]]},"305":{"position":[[1011,9],[1508,9]]},"342":{"position":[[204,9],[350,9]]},"346":{"position":[[503,8],[1999,9],[2013,8],[2113,9]]},"347":{"position":[[206,9],[242,9]]},"348":{"position":[[241,9],[277,9]]},"349":{"position":[[264,9]]},"350":{"position":[[232,9],[268,9]]},"351":{"position":[[232,9]]},"352":{"position":[[453,9]]},"353":{"position":[[918,9]]},"359":{"position":[[37,9]]},"360":{"position":[[549,8]]},"362":{"position":[[494,8],[519,8]]},"365":{"position":[[1529,8],[1554,8]]},"367":{"position":[[108,8]]},"378":{"position":[[641,9],[1479,9],[3096,9]]},"379":{"position":[[707,9],[1562,9],[3129,9]]},"380":{"position":[[626,9],[1409,9],[2621,9]]},"382":{"position":[[1729,9]]},"383":{"position":[[1717,9]]},"384":{"position":[[1395,9]]},"390":{"position":[[1457,9]]},"391":{"position":[[221,9]]},"392":{"position":[[256,9],[292,9]]},"393":{"position":[[278,9]]},"394":{"position":[[363,9]]},"395":{"position":[[269,9]]},"396":{"position":[[364,9]]},"397":{"position":[[375,9]]},"398":{"position":[[248,9],[284,9]]},"399":{"position":[[368,9]]},"400":{"position":[[297,9],[324,8]]},"408":{"position":[[451,9]]},"410":{"position":[[37,9]]},"411":{"position":[[774,8]]},"429":{"position":[[760,9]]},"456":{"position":[[383,8]]},"467":{"position":[[309,11],[883,10],[1739,11],[2175,10],[2785,11],[3530,10],[4009,10],[5660,11],[7227,10]]},"472":{"position":[[146,12]]},"473":{"position":[[2182,11],[3256,9],[4260,9]]},"480":{"position":[[34,11],[451,8],[1489,11],[1988,10],[2514,11],[3555,11],[3986,10],[6150,10],[6803,10],[8389,11],[8808,10],[9568,10]]},"483":{"position":[[46,11],[508,9],[635,11]]},"484":{"position":[[503,9],[637,11]]},"485":{"position":[[337,8],[498,8]]},"486":{"position":[[497,9]]},"487":{"position":[[464,9],[592,9],[753,8],[844,8],[1108,8]]},"488":{"position":[[501,9],[846,8],[1706,8]]},"500":{"position":[[190,9]]},"501":{"position":[[395,9]]},"502":{"position":[[927,9]]},"503":{"position":[[800,9]]},"519":{"position":[[164,8],[744,9]]},"520":{"position":[[166,8],[747,9]]},"521":{"position":[[153,8],[710,9]]},"522":{"position":[[155,8],[713,9]]},"523":{"position":[[174,8],[932,9]]},"524":{"position":[[176,8],[732,9]]},"525":{"position":[[163,8],[898,9]]},"526":{"position":[[165,8],[698,9]]}},"keywords":{}}],["response.data",{"_index":3525,"title":{},"content":{"467":{"position":[[3546,14],[4052,14]]},"480":{"position":[[8832,14],[9592,14]]}},"keywords":{}}],["response.data.geometry.coordin",{"_index":3527,"title":{},"content":{"467":{"position":[[3690,35]]}},"keywords":{}}],["response.data[\"id_token",{"_index":3500,"title":{},"content":{"467":{"position":[[944,26]]},"480":{"position":[[2009,26]]}},"keywords":{}}],["response.data[0][\"id",{"_index":3774,"title":{},"content":{"480":{"position":[[6178,23]]}},"keywords":{}}],["response.foreach((",{"_index":3892,"title":{},"content":{"485":{"position":[[558,20]]},"487":{"position":[[877,20]]}},"keywords":{}}],["response.length",{"_index":3891,"title":{},"content":{"485":{"position":[[534,16]]}},"keywords":{}}],["resquest",{"_index":1270,"title":{},"content":{"112":{"position":[[83,8]]},"113":{"position":[[107,8]]}},"keywords":{}}],["rest",{"_index":362,"title":{"286":{"position":[[0,4]]}},"content":{"19":{"position":[[219,7]]},"20":{"position":[[190,7]]},"55":{"position":[[126,4]]},"68":{"position":[[126,4]]},"86":{"position":[[307,4]]},"91":{"position":[[139,4]]},"258":{"position":[[257,4]]},"286":{"position":[[14,4]]},"295":{"position":[[136,4]]},"406":{"position":[[247,4]]},"498":{"position":[[464,4]]}},"keywords":{}}],["result",{"_index":472,"title":{},"content":{"51":{"position":[[225,7]]},"57":{"position":[[852,8],[1028,8],[1508,8]]},"59":{"position":[[1682,8],[1858,8]]},"63":{"position":[[594,8],[770,8],[1234,8]]},"65":{"position":[[213,8],[470,8]]},"70":{"position":[[541,8]]},"71":{"position":[[305,8]]},"72":{"position":[[329,7]]},"78":{"position":[[333,8]]},"79":{"position":[[331,8]]},"80":{"position":[[276,7]]},"82":{"position":[[334,8]]},"83":{"position":[[277,7]]},"88":{"position":[[236,8],[493,8]]},"218":{"position":[[27,7],[235,8]]},"220":{"position":[[349,7]]},"233":{"position":[[483,7]]},"239":{"position":[[118,7],[693,8]]},"248":{"position":[[243,7]]},"255":{"position":[[74,7],[414,8]]},"260":{"position":[[71,7],[516,8]]},"264":{"position":[[178,7],[950,8]]},"277":{"position":[[431,8]]},"282":{"position":[[96,8]]},"287":{"position":[[222,6]]},"338":{"position":[[3511,7]]},"346":{"position":[[111,7],[1211,8],[1387,8],[1836,8]]},"353":{"position":[[589,6],[1016,6]]},"390":{"position":[[121,7],[705,8],[881,8],[1289,8]]},"415":{"position":[[1736,6]]},"480":{"position":[[10155,6],[10485,7],[11094,7],[12706,9]]}},"keywords":{}}],["result.height",{"_index":3814,"title":{},"content":{"480":{"position":[[10228,14]]}},"keywords":{}}],["result.width",{"_index":3812,"title":{},"content":{"480":{"position":[[10200,13]]}},"keywords":{}}],["result[\"pamdataset\"][\"geotransform\"][0].split",{"_index":3835,"title":{},"content":{"480":{"position":[[11196,51]]}},"keywords":{}}],["resultado",{"_index":3834,"title":{},"content":{"480":{"position":[[11184,9]]}},"keywords":{}}],["resultado[2",{"_index":3845,"title":{},"content":{"480":{"position":[[11544,13]]}},"keywords":{}}],["resultado[5",{"_index":3848,"title":{},"content":{"480":{"position":[[11677,13]]}},"keywords":{}}],["results.push(obj",{"_index":3862,"title":{},"content":{"480":{"position":[[12123,18]]}},"keywords":{}}],["retail",{"_index":1913,"title":{},"content":{"229":{"position":[[1652,7]]},"320":{"position":[[1977,6]]}},"keywords":{}}],["retri",{"_index":300,"title":{"133":{"position":[[0,5]]}},"content":{"8":{"position":[[1734,7]]},"129":{"position":[[272,5]]}},"keywords":{}}],["retriev",{"_index":250,"title":{},"content":{"6":{"position":[[20,8]]},"7":{"position":[[15,8]]},"8":{"position":[[28,8]]},"130":{"position":[[223,8],[4930,8]]},"209":{"position":[[214,9]]},"220":{"position":[[463,8],[535,8],[623,8],[721,8],[1046,8]]},"264":{"position":[[350,8],[453,8],[554,8],[679,8],[750,8],[832,8]]},"423":{"position":[[110,8]]},"429":{"position":[[690,8]]},"467":{"position":[[1541,8],[2355,8]]},"473":{"position":[[341,8],[962,8],[2458,9],[3200,8],[6597,8]]},"480":{"position":[[5905,8],[7253,8]]},"487":{"position":[[218,8]]}},"keywords":{}}],["retriv",{"_index":1767,"title":{},"content":{"222":{"position":[[1310,8],[1423,9]]}},"keywords":{}}],["retroact",{"_index":1244,"title":{},"content":{"105":{"position":[[2448,11]]}},"keywords":{}}],["rettich",{"_index":1919,"title":{},"content":{"229":{"position":[[1778,9]]}},"keywords":{}}],["return",{"_index":238,"title":{},"content":{"5":{"position":[[1850,7]]},"7":{"position":[[210,7]]},"8":{"position":[[253,7]]},"9":{"position":[[69,7]]},"48":{"position":[[446,6]]},"57":{"position":[[1498,6]]},"59":{"position":[[856,7],[963,7],[1068,7],[1171,7],[1334,7],[1475,7]]},"63":{"position":[[383,7],[457,7],[1224,6]]},"65":{"position":[[460,6]]},"72":{"position":[[352,8]]},"80":{"position":[[299,8]]},"83":{"position":[[300,8]]},"88":{"position":[[483,6]]},"130":{"position":[[163,7]]},"140":{"position":[[114,7]]},"147":{"position":[[111,7]]},"154":{"position":[[132,7]]},"161":{"position":[[105,7]]},"168":{"position":[[117,7]]},"175":{"position":[[127,7]]},"182":{"position":[[107,7]]},"189":{"position":[[111,7]]},"196":{"position":[[107,7]]},"203":{"position":[[111,7]]},"209":{"position":[[399,7]]},"218":{"position":[[13,7]]},"220":{"position":[[28,7],[68,6],[1181,6]]},"221":{"position":[[33,7]]},"222":{"position":[[372,6],[630,6]]},"224":{"position":[[68,7]]},"242":{"position":[[26,7]]},"244":{"position":[[2268,9]]},"245":{"position":[[739,9],[1214,9]]},"246":{"position":[[561,9]]},"248":{"position":[[334,9]]},"266":{"position":[[663,9]]},"291":{"position":[[294,8]]},"314":{"position":[[1082,6]]},"335":{"position":[[827,6]]},"338":{"position":[[1995,6],[2817,6]]},"346":{"position":[[575,7],[647,7],[719,7],[789,7],[966,8],[1826,6]]},"352":{"position":[[156,8]]},"353":{"position":[[120,6]]},"360":{"position":[[5,7],[444,7],[612,8]]},"361":{"position":[[69,7]]},"364":{"position":[[20,7],[671,8]]},"390":{"position":[[356,7],[428,7],[498,7],[1279,6]]},"411":{"position":[[42,7]]},"414":{"position":[[258,7]]},"415":{"position":[[692,6]]},"424":{"position":[[278,7]]},"456":{"position":[[19,6]]},"467":{"position":[[371,6],[420,8],[974,6],[1180,7],[1341,7],[1791,6],[2505,6],[2800,6],[4181,7],[4453,6],[5126,6],[6420,6],[6436,6],[6973,6],[7089,6]]},"473":{"position":[[2033,6],[2874,6],[3084,6],[3152,6],[5916,6]]},"479":{"position":[[549,6]]},"480":{"position":[[1551,6],[5823,6],[7665,6],[9193,6]]},"483":{"position":[[174,6]]},"488":{"position":[[347,6],[2849,6]]},"492":{"position":[[43,6]]},"501":{"position":[[113,7]]},"519":{"position":[[178,6],[286,7],[345,7]]},"520":{"position":[[180,6],[288,7],[347,7]]},"521":{"position":[[167,6],[275,7],[334,7]]},"522":{"position":[[169,6],[277,7],[336,7]]},"523":{"position":[[188,6],[491,7],[550,7]]},"524":{"position":[[190,6],[290,7],[349,7]]},"525":{"position":[[177,6],[480,7],[539,7]]},"526":{"position":[[179,6],[279,7],[338,7],[3750,8]]}},"keywords":{}}],["revok",{"_index":1287,"title":{"299":{"position":[[0,6]]}},"content":{"117":{"position":[[1038,7]]},"296":{"position":[[224,6]]},"299":{"position":[[18,7]]}},"keywords":{}}],["revokedat",{"_index":2534,"title":{},"content":{"297":{"position":[[521,12]]}},"keywords":{}}],["rgb",{"_index":499,"title":{},"content":{"52":{"position":[[66,4]]},"86":{"position":[[61,4]]},"88":{"position":[[162,3],[827,6],[1061,5],[1462,6],[1646,5]]},"89":{"position":[[117,3],[154,5]]},"104":{"position":[[674,3]]},"209":{"position":[[447,4]]},"210":{"position":[[406,4]]},"220":{"position":[[138,3]]},"253":{"position":[[1340,4]]},"349":{"position":[[857,3]]},"395":{"position":[[867,3]]},"439":{"position":[[135,3]]},"467":{"position":[[2991,4],[4823,6]]}},"keywords":{}}],["rgba",{"_index":1162,"title":{},"content":{"104":{"position":[[681,5]]}},"keywords":{}}],["rhubarb",{"_index":1920,"title":{},"content":{"229":{"position":[[1788,9]]}},"keywords":{}}],["rice",{"_index":1825,"title":{},"content":{"229":{"position":[[303,5],[315,5]]},"320":{"position":[[2144,4],[2155,4],[2168,4],[3209,4]]}},"keywords":{}}],["right",{"_index":419,"title":{},"content":{"47":{"position":[[743,6]]},"467":{"position":[[2672,5]]},"473":{"position":[[5059,5]]},"480":{"position":[[11399,5]]},"483":{"position":[[228,6]]},"488":{"position":[[2066,5]]}},"keywords":{}}],["ring_not_clos",{"_index":2510,"title":{},"content":{"292":{"position":[[397,15]]}},"keywords":{}}],["ring_self_intersect",{"_index":2505,"title":{},"content":{"292":{"position":[[310,22]]}},"keywords":{}}],["roadmap",{"_index":2046,"title":{"243":{"position":[[0,7]]}},"content":{},"keywords":{}}],["role",{"_index":1303,"title":{},"content":{"119":{"position":[[118,5]]},"120":{"position":[[138,4]]}},"keywords":{}}],["role=\"main",{"_index":2588,"title":{},"content":{"313":{"position":[[859,12]]},"334":{"position":[[858,12]]}},"keywords":{}}],["root",{"_index":1940,"title":{},"content":{"229":{"position":[[2071,6]]},"317":{"position":[[843,6]]},"338":{"position":[[1195,6]]}},"keywords":{}}],["round",{"_index":1190,"title":{},"content":{"104":{"position":[[1617,5]]},"239":{"position":[[280,6],[613,7]]}},"keywords":{}}],["roundup",{"_index":825,"title":{},"content":{"72":{"position":[[1398,10]]}},"keywords":{}}],["rout",{"_index":3483,"title":{"467":{"position":[[0,6]]},"480":{"position":[[0,6]]}},"content":{"466":{"position":[[309,6],[381,7]]},"467":{"position":[[0,5],[31,6],[1480,5],[1515,6],[2309,5],[2340,6],[5523,5],[5554,6]]},"479":{"position":[[597,6],[669,7]]},"480":{"position":[[0,5],[20,5],[78,6],[182,5],[205,5],[223,5],[312,5],[1180,5],[1211,6],[2318,5],[2351,6],[2776,5],[3397,5],[3428,6],[4177,5],[4214,6],[4928,5],[4956,6],[7348,5],[7379,6],[7610,6],[7654,5],[8223,5],[8257,6],[8939,5],[8973,6],[9696,5],[9732,6]]}},"keywords":{}}],["row",{"_index":3060,"title":{},"content":{"365":{"position":[[1240,3]]}},"keywords":{}}],["rpm",{"_index":2124,"title":{},"content":{"251":{"position":[[574,4]]}},"keywords":{}}],["rule",{"_index":8,"title":{},"content":{"0":{"position":[[40,5]]},"366":{"position":[[76,5]]}},"keywords":{}}],["rulewetmass",{"_index":3072,"title":{},"content":{"366":{"position":[[101,11]]}},"keywords":{}}],["run",{"_index":22,"title":{},"content":{"0":{"position":[[265,3],[680,3],[852,3],[1407,3],[1579,3],[1751,3]]},"209":{"position":[[700,4]]},"313":{"position":[[17,3]]},"314":{"position":[[17,3]]},"334":{"position":[[17,3]]},"335":{"position":[[17,3]]},"338":{"position":[[3478,4]]},"343":{"position":[[467,4]]},"474":{"position":[[1782,3]]},"490":{"position":[[394,3]]}},"keywords":{}}],["rutabaga",{"_index":1982,"title":{},"content":{"229":{"position":[[2645,10]]},"320":{"position":[[2183,8]]}},"keywords":{}}],["rx",{"_index":1081,"title":{},"content":{"95":{"position":[[328,4],[564,5],[602,3]]}},"keywords":{}}],["rye",{"_index":1827,"title":{},"content":{"229":{"position":[[329,5],[677,4],[1151,3],[1425,3]]},"320":{"position":[[903,3],[2194,3],[2415,3],[3241,3]]}},"keywords":{}}],["ryegrass",{"_index":2671,"title":{},"content":{"320":{"position":[[265,8],[1900,8]]}},"keywords":{}}],["s/ha",{"_index":1113,"title":{},"content":{"101":{"position":[[657,4],[662,4]]}},"keywords":{}}],["s2",{"_index":1718,"title":{},"content":{"220":{"position":[[1761,2],[2311,2]]},"221":{"position":[[376,2]]}},"keywords":{}}],["safflow",{"_index":1828,"title":{},"content":{"229":{"position":[[335,11]]},"320":{"position":[[2201,9]]}},"keywords":{}}],["salad",{"_index":1870,"title":{},"content":{"229":{"position":[[1062,6],[1409,6],[1798,7]]},"320":{"position":[[1426,5]]}},"keywords":{}}],["same",{"_index":173,"title":{},"content":{"5":{"position":[[261,4]]},"48":{"position":[[789,4],[809,4]]},"51":{"position":[[661,4]]},"93":{"position":[[261,4]]},"95":{"position":[[432,4]]},"98":{"position":[[328,4]]},"100":{"position":[[265,4]]},"101":{"position":[[246,4]]},"105":{"position":[[329,4],[2247,4],[2375,4]]},"117":{"position":[[744,4],[1053,4]]},"222":{"position":[[246,4]]},"246":{"position":[[251,4]]},"248":{"position":[[191,4],[669,4]]},"252":{"position":[[1154,4]]},"269":{"position":[[942,4]]},"288":{"position":[[953,4]]},"343":{"position":[[186,4],[229,4]]},"349":{"position":[[1005,4]]},"350":{"position":[[424,5],[512,4]]},"353":{"position":[[460,4],[487,4]]},"395":{"position":[[1015,4]]},"398":{"position":[[435,5],[523,4]]},"423":{"position":[[649,4],[669,4]]},"429":{"position":[[237,4]]},"493":{"position":[[202,4]]}},"keywords":{}}],["sampl",{"_index":69,"title":{"249":{"position":[[0,6]]},"358":{"position":[[24,6]]},"361":{"position":[[13,6]]},"364":{"position":[[17,6]]},"409":{"position":[[17,6]]},"424":{"position":[[4,6]]},"425":{"position":[[8,6]]},"426":{"position":[[13,6]]},"427":{"position":[[4,6]]},"428":{"position":[[4,6]]},"429":{"position":[[4,6]]},"430":{"position":[[4,6]]},"461":{"position":[[15,6]]}},"content":{"2":{"position":[[178,6],[488,6]]},"51":{"position":[[218,6]]},"222":{"position":[[1959,6]]},"256":{"position":[[214,6],[406,6]]},"266":{"position":[[474,6]]},"342":{"position":[[197,6],[343,6]]},"346":{"position":[[2106,6]]},"347":{"position":[[235,6]]},"348":{"position":[[270,6]]},"350":{"position":[[261,6]]},"359":{"position":[[30,6]]},"360":{"position":[[534,6]]},"361":{"position":[[50,6]]},"367":{"position":[[101,6]]},"392":{"position":[[285,6]]},"398":{"position":[[277,6]]},"400":{"position":[[317,6]]},"410":{"position":[[30,6]]},"411":{"position":[[767,6]]},"414":{"position":[[239,6]]},"422":{"position":[[176,6]]},"424":{"position":[[37,6],[133,6]]},"429":{"position":[[266,6],[794,6]]},"430":{"position":[[376,6],[401,6]]},"505":{"position":[[317,6]]}},"keywords":{}}],["samplinginterv",{"_index":3445,"title":{},"content":{"446":{"position":[[138,17]]}},"keywords":{}}],["satellit",{"_index":224,"title":{"39":{"position":[[4,9]]},"218":{"position":[[8,9]]},"219":{"position":[[6,9]]},"220":{"position":[[14,9]]},"221":{"position":[[16,9]]},"222":{"position":[[9,9]]},"223":{"position":[[9,9]]},"225":{"position":[[10,9]]},"430":{"position":[[11,9]]},"462":{"position":[[11,9]]}},"content":{"5":{"position":[[1497,10],[1979,10]]},"6":{"position":[[332,10]]},"7":{"position":[[333,10]]},"11":{"position":[[883,9]]},"39":{"position":[[51,9]]},"47":{"position":[[511,9],[752,9]]},"209":{"position":[[76,9],[891,9]]},"218":{"position":[[43,9]]},"220":{"position":[[1342,9],[2058,9],[2148,9],[2244,9],[2449,9]]},"222":{"position":[[221,9],[1238,9]]},"225":{"position":[[66,9]]},"251":{"position":[[735,9]]},"430":{"position":[[35,9],[197,9]]},"434":{"position":[[181,9]]},"463":{"position":[[39,9]]},"467":{"position":[[1558,9],[2388,9],[5498,9],[5685,9],[7420,9]]},"473":{"position":[[2137,9],[2258,9],[3095,9]]}},"keywords":{}}],["satisfi",{"_index":2335,"title":{},"content":{"266":{"position":[[442,9],[630,9],[729,7]]}},"keywords":{}}],["satisfied3",{"_index":2339,"title":{},"content":{"266":{"position":[[820,10]]}},"keywords":{}}],["save",{"_index":3499,"title":{},"content":{"467":{"position":[[899,4],[2915,4]]},"473":{"position":[[1738,6],[4227,4],[4937,6],[5209,4],[6417,5]]},"480":{"position":[[368,4],[1600,5],[5032,4],[5376,4],[5454,4],[5676,4],[7561,5],[10035,4]]},"488":{"position":[[585,4],[1519,4]]}},"keywords":{}}],["save_fil",{"_index":3761,"title":{},"content":{"480":{"position":[[4934,13]]},"486":{"position":[[366,13]]}},"keywords":{}}],["savoy",{"_index":1921,"title":{},"content":{"229":{"position":[[1806,6]]}},"keywords":{}}],["say",{"_index":3880,"title":{},"content":{"483":{"position":[[704,6]]},"484":{"position":[[718,6]]},"487":{"position":[[539,6],[683,6]]}},"keywords":{}}],["scale",{"_index":1663,"title":{},"content":{"212":{"position":[[304,6]]}},"keywords":{}}],["scenario",{"_index":1275,"title":{},"content":{"117":{"position":[[0,9]]}},"keywords":{}}],["schedul",{"_index":2184,"title":{},"content":{"256":{"position":[[365,8]]},"268":{"position":[[162,9]]},"505":{"position":[[276,8]]}},"keywords":{}}],["scope",{"_index":1594,"title":{},"content":{"154":{"position":[[610,10]]},"155":{"position":[[668,10]]},"168":{"position":[[587,10]]},"169":{"position":[[694,10]]},"182":{"position":[[572,10]]},"183":{"position":[[623,10]]},"203":{"position":[[578,10]]},"204":{"position":[[591,10]]}},"keywords":{}}],["score",{"_index":853,"title":{},"content":{"74":{"position":[[645,8]]},"75":{"position":[[586,8]]},"76":{"position":[[464,8]]}},"keywords":{}}],["scorzonera",{"_index":1922,"title":{},"content":{"229":{"position":[[1822,12]]}},"keywords":{}}],["screen",{"_index":2626,"title":{},"content":{"316":{"position":[[604,7],[709,6]]},"337":{"position":[[563,7],[668,6]]}},"keywords":{}}],["script'",{"_index":2094,"title":{},"content":{"245":{"position":[[395,8]]}},"keywords":{}}],["sea",{"_index":3048,"title":{},"content":{"365":{"position":[[442,3]]}},"keywords":{}}],["search",{"_index":390,"title":{"72":{"position":[[0,6]]},"80":{"position":[[0,6]]},"83":{"position":[[0,6]]}},"content":{"39":{"position":[[111,9]]},"53":{"position":[[19,7]]},"69":{"position":[[127,6]]},"70":{"position":[[139,6]]},"72":{"position":[[22,6],[284,8]]},"77":{"position":[[121,6]]},"80":{"position":[[23,6],[231,8]]},"81":{"position":[[55,6]]},"83":{"position":[[23,6],[232,8]]},"337":{"position":[[296,6],[897,6],[977,6]]},"473":{"position":[[6532,6]]}},"keywords":{}}],["second",{"_index":2538,"title":{},"content":{"298":{"position":[[223,8]]},"357":{"position":[[1437,7]]},"378":{"position":[[2462,8]]},"379":{"position":[[2511,8]]},"380":{"position":[[2062,8]]},"382":{"position":[[447,8]]},"383":{"position":[[450,8]]},"384":{"position":[[189,8]]},"467":{"position":[[2703,6],[3934,6]]}},"keywords":{}}],["secret",{"_index":119,"title":{},"content":{"3":{"position":[[273,6],[825,6],[899,8]]},"5":{"position":[[655,6],[673,6],[736,7],[1526,9],[2008,9]]},"6":{"position":[[298,9]]},"7":{"position":[[299,9]]},"244":{"position":[[806,6]]},"300":{"position":[[159,8]]},"328":{"position":[[669,8]]},"480":{"position":[[2615,6],[2932,7],[2946,8]]}},"keywords":{}}],["secret)subscriptionkey",{"_index":2745,"title":{},"content":{"330":{"position":[[660,22]]}},"keywords":{}}],["secretvari",{"_index":2072,"title":{},"content":{"244":{"position":[[1129,15]]}},"keywords":{}}],["section",{"_index":67,"title":{},"content":{"2":{"position":[[150,7]]},"5":{"position":[[560,7]]},"11":{"position":[[5,7]]},"47":{"position":[[917,7],[1181,8]]},"105":{"position":[[221,7],[3350,7],[3409,7],[3468,7],[3522,7],[3577,7]]},"135":{"position":[[420,8]]},"244":{"position":[[5,7]]},"256":{"position":[[178,7]]},"258":{"position":[[272,7]]},"300":{"position":[[5,7]]},"303":{"position":[[345,7]]},"304":{"position":[[350,7]]},"305":{"position":[[356,7]]},"328":{"position":[[251,8]]},"330":{"position":[[253,8]]},"332":{"position":[[288,8]]},"340":{"position":[[462,7],[673,7]]},"365":{"position":[[870,7]]},"418":{"position":[[19,8]]},"419":{"position":[[476,9]]},"424":{"position":[[385,7]]}},"keywords":{}}],["sectionid",{"_index":3042,"title":{},"content":{"364":{"position":[[548,11]]},"365":{"position":[[828,9]]},"367":{"position":[[2149,12]]}},"keywords":{}}],["secur",{"_index":2033,"title":{},"content":{"242":{"position":[[198,8]]},"256":{"position":[[252,9]]},"460":{"position":[[19,8]]}},"keywords":{}}],["see",{"_index":46,"title":{},"content":{"0":{"position":[[615,3]]},"2":{"position":[[131,3]]},"5":{"position":[[744,3],[1364,3]]},"47":{"position":[[1000,3],[1158,3]]},"55":{"position":[[112,3]]},"68":{"position":[[112,3]]},"86":{"position":[[293,3]]},"91":{"position":[[125,3]]},"105":{"position":[[212,3],[703,3],[3341,3],[3400,3],[3459,3],[3513,3],[3568,3]]},"129":{"position":[[485,3]]},"131":{"position":[[192,3]]},"132":{"position":[[181,3]]},"143":{"position":[[57,3]]},"150":{"position":[[57,3]]},"157":{"position":[[57,3]]},"164":{"position":[[57,3]]},"171":{"position":[[57,3]]},"178":{"position":[[57,3]]},"185":{"position":[[57,3]]},"192":{"position":[[57,3]]},"199":{"position":[[57,3]]},"206":{"position":[[57,3]]},"209":{"position":[[883,3]]},"215":{"position":[[90,3]]},"220":{"position":[[2821,3]]},"222":{"position":[[847,3]]},"251":{"position":[[383,3]]},"286":{"position":[[0,3]]},"295":{"position":[[122,3]]},"308":{"position":[[174,3]]},"340":{"position":[[449,3],[660,3]]},"341":{"position":[[374,4],[539,3]]},"345":{"position":[[811,3]]},"361":{"position":[[44,3]]},"362":{"position":[[27,4]]},"406":{"position":[[233,3]]},"414":{"position":[[233,3]]},"419":{"position":[[505,3]]},"420":{"position":[[55,3]]},"424":{"position":[[125,3],[336,3]]},"428":{"position":[[40,6]]},"429":{"position":[[85,6]]},"467":{"position":[[1442,3],[5490,3],[7412,3]]},"473":{"position":[[2367,3],[6183,4]]},"474":{"position":[[1680,3],[1721,3]]},"480":{"position":[[1150,3],[2280,3],[3366,3],[4146,3],[4897,3],[7319,3],[8910,3],[11691,5],[11979,5],[12107,5]]},"485":{"position":[[125,3]]},"487":{"position":[[745,3]]},"488":{"position":[[1577,3]]},"490":{"position":[[336,3]]},"498":{"position":[[450,3]]}},"keywords":{}}],["seed",{"_index":1815,"title":{},"content":{"229":{"position":[[185,6],[926,5],[1594,5],[1835,5],[2416,5]]},"253":{"position":[[944,5]]},"320":{"position":[[1279,5],[2021,4]]},"357":{"position":[[1134,4]]},"362":{"position":[[404,6]]},"365":{"position":[[698,5],[756,4],[1011,5],[1085,5]]}},"keywords":{}}],["seeddepth",{"_index":3032,"title":{},"content":{"362":{"position":[[300,9]]},"364":{"position":[[798,12]]},"365":{"position":[[1044,9]]}},"keywords":{}}],["seedrat",{"_index":3029,"title":{},"content":{"362":{"position":[[143,8]]},"364":{"position":[[754,11]]},"365":{"position":[[650,8]]},"366":{"position":[[230,8]]}},"keywords":{}}],["seedratetarget",{"_index":3031,"title":{},"content":{"362":{"position":[[277,14]]},"364":{"position":[[773,17]]},"365":{"position":[[949,14]]}},"keywords":{}}],["seeds/ac",{"_index":3051,"title":{},"content":{"365":{"position":[[677,8],[983,8]]}},"keywords":{}}],["seeds/m",{"_index":3050,"title":{},"content":{"365":{"position":[[665,8],[971,8]]}},"keywords":{}}],["seedsens",{"_index":1369,"title":{},"content":{"130":{"position":[[1903,9],[2074,9],[3299,9],[3470,9]]}},"keywords":{}}],["seen",{"_index":2113,"title":{},"content":{"248":{"position":[[677,4]]},"288":{"position":[[319,4]]}},"keywords":{}}],["select",{"_index":1125,"title":{},"content":{"103":{"position":[[342,9]]},"137":{"position":[[148,6]]},"220":{"position":[[1067,8]]},"222":{"position":[[127,9],[1392,6]]},"328":{"position":[[321,6]]},"330":{"position":[[327,6]]},"331":{"position":[[317,6]]},"337":{"position":[[1064,7]]},"357":{"position":[[290,6]]},"362":{"position":[[0,6]]},"456":{"position":[[69,6]]},"467":{"position":[[2550,9],[2834,9],[3623,11],[5323,9],[5402,9]]},"473":{"position":[[3990,9]]},"484":{"position":[[325,6]]}},"keywords":{}}],["selected\").v",{"_index":3885,"title":{},"content":{"484":{"position":[[338,17]]}},"keywords":{}}],["selector",{"_index":2643,"title":{},"content":{"317":{"position":[[828,9]]},"338":{"position":[[1180,9]]}},"keywords":{}}],["self_intersect",{"_index":2504,"title":{},"content":{"292":{"position":[[292,17],[503,18]]}},"keywords":{}}],["send",{"_index":314,"title":{},"content":{"9":{"position":[[178,4]]},"35":{"position":[[139,7]]},"47":{"position":[[275,4],[819,5]]},"89":{"position":[[50,4]]},"244":{"position":[[970,4],[1347,5],[1781,4],[2143,4]]},"245":{"position":[[703,6],[1156,6]]},"246":{"position":[[525,6],[876,4],[1561,7]]},"248":{"position":[[288,6]]},"252":{"position":[[583,4]]},"269":{"position":[[922,4]]},"287":{"position":[[1858,7]]},"328":{"position":[[465,4]]},"329":{"position":[[268,4]]},"330":{"position":[[465,4]]},"331":{"position":[[507,4]]},"332":{"position":[[475,4]]},"467":{"position":[[1630,7],[2617,4],[6739,4]]},"471":{"position":[[425,4]]},"473":{"position":[[1028,4],[1094,4],[1493,7],[1773,4],[2432,7],[2789,4],[3053,4]]},"480":{"position":[[5176,4],[5755,4],[6913,4],[7099,4],[8515,4],[9277,4],[12392,7]]},"488":{"position":[[70,4],[114,4],[299,4],[759,4],[2802,4]]}},"keywords":{}}],["sender",{"_index":1280,"title":{},"content":{"117":{"position":[[203,6],[502,6]]},"119":{"position":[[124,6]]},"120":{"position":[[143,7]]},"122":{"position":[[178,6],[349,7]]}},"keywords":{}}],["senderapiown",{"_index":1305,"title":{},"content":{"119":{"position":[[352,17],[370,19]]},"121":{"position":[[370,17],[388,19]]},"122":{"position":[[677,17],[695,19]]}},"keywords":{}}],["sensor",{"_index":3052,"title":{},"content":{"365":{"position":[[863,6],[1225,6],[1385,6],[1481,6]]}},"keywords":{}}],["sent",{"_index":103,"title":{},"content":{"3":{"position":[[74,4]]},"47":{"position":[[651,4]]},"57":{"position":[[118,4]]},"59":{"position":[[139,4]]},"130":{"position":[[58,4]]},"144":{"position":[[118,5]]},"151":{"position":[[116,5]]},"158":{"position":[[127,5]]},"165":{"position":[[113,5]]},"172":{"position":[[119,5]]},"179":{"position":[[124,5]]},"186":{"position":[[114,5]]},"193":{"position":[[116,5]]},"200":{"position":[[114,5]]},"207":{"position":[[116,5]]},"244":{"position":[[1294,4]]},"245":{"position":[[493,4]]},"251":{"position":[[664,4]]},"266":{"position":[[150,4]]},"268":{"position":[[315,4]]},"316":{"position":[[912,4]]},"399":{"position":[[442,5]]}},"keywords":{}}],["sent_to_merg",{"_index":2890,"title":{},"content":{"353":{"position":[[957,15]]}},"keywords":{}}],["sentera",{"_index":501,"title":{"187":{"position":[[0,7]]},"188":{"position":[[0,7]]},"189":{"position":[[8,7]]},"190":{"position":[[9,7]]},"191":{"position":[[7,7]]}},"content":{"52":{"position":[[82,7],[290,7]]},"86":{"position":[[78,7],[130,7]]},"88":{"position":[[875,10],[1510,10]]},"189":{"position":[[54,7]]},"190":{"position":[[55,7],[496,7]]},"191":{"position":[[67,7]]},"193":{"position":[[292,8]]},"419":{"position":[[368,7]]}},"keywords":{}}],["sentinel",{"_index":1636,"title":{"214":{"position":[[0,8]]},"452":{"position":[[0,8]]}},"content":{"210":{"position":[[32,8],[136,8]]},"215":{"position":[[34,8]]},"218":{"position":[[790,11]]},"219":{"position":[[475,11]]},"220":{"position":[[1225,8],[1289,8],[1725,11],[1751,9],[2167,9]]},"221":{"position":[[340,11],[366,9]]},"222":{"position":[[1286,8]]},"430":{"position":[[70,8]]},"442":{"position":[[104,8]]},"473":{"position":[[5426,11]]}},"keywords":{}}],["seri",{"_index":3014,"title":{},"content":{"361":{"position":[[3132,6]]}},"keywords":{}}],["serial",{"_index":452,"title":{},"content":{"50":{"position":[[53,6]]},"57":{"position":[[334,6]]},"251":{"position":[[533,7]]},"357":{"position":[[1254,6]]}},"keywords":{}}],["serialnumb",{"_index":537,"title":{},"content":{"57":{"position":[[313,12],[1342,13],[2019,15],[2472,15]]},"58":{"position":[[499,15]]},"60":{"position":[[119,15],[837,15]]},"61":{"position":[[242,15],[988,15]]},"63":{"position":[[1086,13],[1687,15]]},"64":{"position":[[554,15]]},"361":{"position":[[3165,15]]},"414":{"position":[[2828,15]]}},"keywords":{}}],["server",{"_index":166,"title":{"466":{"position":[[7,6]]},"468":{"position":[[10,6]]},"479":{"position":[[7,6]]},"481":{"position":[[10,6]]}},"content":{"5":{"position":[[108,7],[814,6]]},"47":{"position":[[285,6]]},"353":{"position":[[50,7]]},"466":{"position":[[43,7],[112,6],[172,7],[326,6]]},"468":{"position":[[40,7]]},"479":{"position":[[43,7],[112,7],[250,7],[614,6]]},"480":{"position":[[2691,6],[5498,6]]},"481":{"position":[[40,7]]},"488":{"position":[[1699,6]]}},"keywords":{}}],["servic",{"_index":191,"title":{"472":{"position":[[13,7]]}},"content":{"5":{"position":[[575,8]]},"11":{"position":[[130,8],[176,7]]},"47":{"position":[[908,8],[965,7]]},"55":{"position":[[179,8]]},"68":{"position":[[179,8]]},"86":{"position":[[360,8]]},"91":{"position":[[192,8]]},"104":{"position":[[2394,9]]},"107":{"position":[[258,7]]},"118":{"position":[[5,7]]},"129":{"position":[[123,7]]},"209":{"position":[[29,7],[692,7],[746,9],[780,9],[874,8]]},"227":{"position":[[21,7]]},"238":{"position":[[5,7],[216,7]]},"244":{"position":[[119,8]]},"252":{"position":[[883,9]]},"258":{"position":[[314,7]]},"295":{"position":[[189,8]]},"345":{"position":[[123,7]]},"355":{"position":[[16,7]]},"389":{"position":[[123,7]]},"399":{"position":[[607,8]]},"401":{"position":[[416,8]]},"403":{"position":[[16,7]]},"406":{"position":[[300,8]]},"430":{"position":[[207,8]]},"434":{"position":[[152,8]]},"435":{"position":[[133,8]]},"459":{"position":[[0,7]]},"471":{"position":[[437,8]]},"472":{"position":[[14,7],[94,7],[102,8]]},"473":{"position":[[1043,8],[1925,8],[2627,8],[5711,8]]},"498":{"position":[[517,8]]},"508":{"position":[[24,7]]},"510":{"position":[[409,7],[465,7]]},"512":{"position":[[26,7],[303,7]]},"517":{"position":[[262,7]]},"523":{"position":[[407,7]]},"525":{"position":[[396,7]]}},"keywords":{}}],["service'",{"_index":518,"title":{},"content":{"55":{"position":[[45,9]]},"68":{"position":[[45,9]]},"86":{"position":[[226,9]]},"91":{"position":[[45,9]]},"107":{"position":[[184,9]]},"116":{"position":[[274,9]]},"129":{"position":[[45,9]]},"238":{"position":[[142,9]]},"258":{"position":[[177,9]]},"295":{"position":[[45,9]]},"345":{"position":[[45,9]]},"376":{"position":[[45,9]]},"389":{"position":[[45,9]]},"406":{"position":[[156,9]]},"498":{"position":[[373,9]]},"517":{"position":[[187,9]]}},"keywords":{}}],["sesam",{"_index":1923,"title":{},"content":{"229":{"position":[[1851,8]]},"320":{"position":[[2216,6]]}},"keywords":{}}],["sessionid",{"_index":1588,"title":{},"content":{"147":{"position":[[664,12]]},"148":{"position":[[791,12]]}},"keywords":{}}],["set",{"_index":438,"title":{"327":{"position":[[0,3]]}},"content":{"48":{"position":[[530,4],[729,3]]},"57":{"position":[[1475,4]]},"63":{"position":[[1201,4]]},"65":{"position":[[437,4]]},"88":{"position":[[460,4]]},"103":{"position":[[25,3],[195,3],[884,7],[908,7],[957,3],[1028,3]]},"104":{"position":[[27,3],[171,3],[1772,3]]},"105":{"position":[[278,3],[879,3],[1182,3],[1792,4],[2655,3],[2819,3],[2957,3],[3089,3],[3167,3]]},"111":{"position":[[152,4]]},"112":{"position":[[150,4]]},"113":{"position":[[174,4]]},"130":{"position":[[483,3],[620,3]]},"133":{"position":[[709,7]]},"135":{"position":[[664,3]]},"220":{"position":[[1157,5]]},"222":{"position":[[576,3],[680,3]]},"229":{"position":[[2138,4]]},"242":{"position":[[1044,4]]},"252":{"position":[[573,3]]},"262":{"position":[[364,3]]},"275":{"position":[[146,3]]},"300":{"position":[[183,7]]},"316":{"position":[[777,4],[867,3],[967,3]]},"327":{"position":[[87,3]]},"328":{"position":[[686,3]]},"329":{"position":[[462,3]]},"330":{"position":[[717,3]]},"331":{"position":[[677,3]]},"332":{"position":[[659,3]]},"341":{"position":[[365,8]]},"346":{"position":[[1803,4]]},"378":{"position":[[941,11],[1777,11],[2112,3],[2823,11]]},"379":{"position":[[1013,11],[1866,11],[2209,3],[2850,11]]},"380":{"position":[[928,11],[1709,11],[2345,11]]},"382":{"position":[[67,3],[1475,11]]},"383":{"position":[[73,3],[1457,11]]},"384":{"position":[[1138,11]]},"385":{"position":[[86,8],[1013,11]]},"387":{"position":[[806,3],[900,3]]},"390":{"position":[[1256,4]]},"418":{"position":[[369,3]]},"423":{"position":[[588,3]]},"448":{"position":[[83,3]]},"450":{"position":[[210,3]]},"451":{"position":[[83,3]]},"473":{"position":[[268,3],[2730,7]]},"480":{"position":[[4415,3],[6389,4]]},"488":{"position":[[2618,3]]},"495":{"position":[[39,7]]},"519":{"position":[[139,3]]},"520":{"position":[[141,3]]},"521":{"position":[[128,3]]},"522":{"position":[[130,3]]}},"keywords":{}}],["setter",{"_index":3593,"title":{},"content":{"473":{"position":[[288,7]]}},"keywords":{}}],["setup",{"_index":2544,"title":{"455":{"position":[[8,5]]}},"content":{"300":{"position":[[177,5]]},"322":{"position":[[95,5]]},"387":{"position":[[857,5]]},"466":{"position":[[35,5]]},"474":{"position":[[273,5]]},"479":{"position":[[35,5]]}},"keywords":{}}],["seven",{"_index":4106,"title":{},"content":{"519":{"position":[[212,5]]},"520":{"position":[[214,5]]},"521":{"position":[[201,5]]},"522":{"position":[[203,5]]},"523":{"position":[[214,5]]},"524":{"position":[[216,5]]},"525":{"position":[[203,5]]},"526":{"position":[[205,5]]}},"keywords":{}}],["sever",{"_index":2832,"title":{},"content":{"343":{"position":[[49,7]]},"371":{"position":[[79,7]]}},"keywords":{}}],["sha",{"_index":117,"title":{},"content":{"3":{"position":[[256,3]]}},"keywords":{}}],["shadow",{"_index":1672,"title":{},"content":{"212":{"position":[[631,6]]}},"keywords":{}}],["shallot",{"_index":1924,"title":{},"content":{"229":{"position":[[1860,10]]}},"keywords":{}}],["shape",{"_index":1189,"title":{},"content":{"104":{"position":[[1527,5]]},"239":{"position":[[274,5],[604,8]]},"357":{"position":[[1323,5]]}},"keywords":{}}],["shapefil",{"_index":487,"title":{},"content":{"51":{"position":[[590,9]]},"101":{"position":[[510,10]]},"130":{"position":[[1436,9],[1472,9],[4263,10],[4309,10]]}},"keywords":{}}],["share",{"_index":1278,"title":{"119":{"position":[[14,7]]},"120":{"position":[[14,7]]},"121":{"position":[[20,7]]},"122":{"position":[[20,7]]},"127":{"position":[[16,7]]}},"content":{"117":{"position":[[89,7],[294,7],[606,7],[975,7],[1250,6]]},"118":{"position":[[87,7],[185,7],[320,7],[419,7],[1111,7]]},"121":{"position":[[72,7]]},"122":{"position":[[98,7]]},"124":{"position":[[183,6]]},"251":{"position":[[872,7]]}},"keywords":{}}],["sharedsecret",{"_index":1608,"title":{},"content":{"175":{"position":[[622,15]]},"176":{"position":[[168,15],[372,15],[677,15]]}},"keywords":{}}],["shi",{"_index":36,"title":{},"content":{"0":{"position":[[451,3],[1186,3]]}},"keywords":{}}],["short",{"_index":2708,"title":{},"content":{"320":{"position":[[1611,5]]}},"keywords":{}}],["shortwav",{"_index":4073,"title":{},"content":{"511":{"position":[[1626,9],[1952,9]]},"515":{"position":[[1609,9],[1935,9]]}},"keywords":{}}],["shortwaveradi",{"_index":4072,"title":{},"content":{"511":{"position":[[1602,18]]},"515":{"position":[[1585,18]]},"520":{"position":[[2670,21]]},"522":{"position":[[2636,21]]},"524":{"position":[[2346,21]]},"526":{"position":[[2312,21]]}},"keywords":{}}],["show",{"_index":416,"title":{"489":{"position":[[0,4]]}},"content":{"47":{"position":[[630,5]]},"244":{"position":[[18,4]]},"357":{"position":[[1185,5],[1280,5]]},"359":{"position":[[10,5]]},"360":{"position":[[428,5]]},"410":{"position":[[10,5]]},"472":{"position":[[232,4]]},"473":{"position":[[2315,4],[4070,4],[6049,4]]},"482":{"position":[[150,4]]},"483":{"position":[[593,6],[684,6]]},"484":{"position":[[595,6],[698,6]]},"488":{"position":[[2421,4],[3057,4]]},"489":{"position":[[121,5]]},"495":{"position":[[128,4]]}},"keywords":{}}],["show/hid",{"_index":2763,"title":{},"content":{"337":{"position":[[282,9]]}},"keywords":{}}],["shower",{"_index":4063,"title":{},"content":{"511":{"position":[[1377,7]]},"515":{"position":[[1360,7]]}},"keywords":{}}],["showimage(id",{"_index":3961,"title":{},"content":{"489":{"position":[[141,13]]}},"keywords":{}}],["showimage(url",{"_index":3673,"title":{},"content":{"473":{"position":[[6239,14]]}},"keywords":{}}],["showleafusernam",{"_index":3100,"title":{},"content":{"378":{"position":[[1061,19],[1897,19],[2943,19]]},"379":{"position":[[1133,19],[1986,19],[2970,19]]},"380":{"position":[[1048,19],[1829,19],[2465,19]]},"382":{"position":[[1595,19]]},"383":{"position":[[1577,19]]},"384":{"position":[[1258,19]]},"385":{"position":[[474,16],[1133,19]]}},"keywords":{}}],["shows/hid",{"_index":2766,"title":{},"content":{"337":{"position":[[881,11]]}},"keywords":{}}],["showsearchbar",{"_index":2762,"title":{},"content":{"337":{"position":[[261,13],[866,14]]}},"keywords":{}}],["shp",{"_index":490,"title":{},"content":{"51":{"position":[[633,5]]},"93":{"position":[[218,4]]},"95":{"position":[[389,4]]},"98":{"position":[[286,4]]},"100":{"position":[[222,4]]},"101":{"position":[[203,4]]},"130":{"position":[[3155,5]]}},"keywords":{}}],["shx",{"_index":492,"title":{},"content":{"51":{"position":[[647,4]]},"93":{"position":[[228,4]]},"95":{"position":[[399,4]]},"98":{"position":[[299,4]]},"100":{"position":[[232,4]]},"101":{"position":[[213,4]]},"130":{"position":[[3165,5]]}},"keywords":{}}],["side",{"_index":536,"title":{},"content":{"57":{"position":[[292,4]]},"63":{"position":[[285,4],[335,4]]},"89":{"position":[[1070,4]]},"97":{"position":[[202,5]]},"117":{"position":[[482,6]]},"270":{"position":[[128,5]]},"287":{"position":[[2135,4]]},"292":{"position":[[926,5]]},"382":{"position":[[589,4]]},"383":{"position":[[592,4]]},"384":{"position":[[331,4]]}},"keywords":{}}],["sidebar",{"_index":3588,"title":{},"content":{"471":{"position":[[539,8]]},"473":{"position":[[160,7]]},"474":{"position":[[1456,7],[1517,10],[1565,7],[1577,7],[1629,7]]}},"keywords":{}}],["sign",{"_index":130,"title":{"310":{"position":[[3,4]]},"324":{"position":[[3,4]]}},"content":{"3":{"position":[[502,6],[784,4]]},"5":{"position":[[713,4]]}},"keywords":{}}],["signatur",{"_index":110,"title":{},"content":{"3":{"position":[[159,11],[186,10],[430,10],[638,9],[955,9]]}},"keywords":{}}],["silag",{"_index":1868,"title":{},"content":{"229":{"position":[[1033,7]]},"320":{"position":[[591,6]]}},"keywords":{}}],["silver",{"_index":1925,"title":{},"content":{"229":{"position":[[1871,7]]}},"keywords":{}}],["simpl",{"_index":2030,"title":{},"content":{"242":{"position":[[117,6]]},"248":{"position":[[50,6]]},"471":{"position":[[328,6]]}},"keywords":{}}],["simpli",{"_index":3124,"title":{},"content":{"385":{"position":[[67,6]]},"429":{"position":[[459,6]]}},"keywords":{}}],["simplot",{"_index":894,"title":{},"content":{"78":{"position":[[810,10]]},"80":{"position":[[687,10]]}},"keywords":{}}],["simul",{"_index":245,"title":{},"content":{"5":{"position":[[2151,8]]}},"keywords":{}}],["singl",{"_index":1747,"title":{},"content":{"221":{"position":[[43,6]]},"242":{"position":[[304,6]]},"252":{"position":[[1263,6]]},"261":{"position":[[44,6],[258,6]]},"265":{"position":[[75,6]]},"273":{"position":[[73,6],[329,6]]},"274":{"position":[[273,6]]},"278":{"position":[[43,6],[277,6]]},"279":{"position":[[425,6]]},"280":{"position":[[484,6]]},"283":{"position":[[45,6],[283,6]]},"284":{"position":[[398,6]]},"285":{"position":[[430,6]]},"287":{"position":[[469,6]]},"343":{"position":[[10,6],[285,6]]},"347":{"position":[[24,6]]},"353":{"position":[[629,6]]},"371":{"position":[[105,6]]},"379":{"position":[[38,6],[519,6],[1360,6],[2306,6],[3419,6]]},"383":{"position":[[170,6]]},"391":{"position":[[29,6]]},"428":{"position":[[312,6]]},"429":{"position":[[2,6]]},"434":{"position":[[226,6]]}},"keywords":{}}],["singul",{"_index":3037,"title":{},"content":{"362":{"position":[[460,11]]},"364":{"position":[[842,14]]},"365":{"position":[[1257,11]]},"436":{"position":[[109,11]]}},"keywords":{}}],["sit",{"_index":2150,"title":{},"content":{"253":{"position":[[149,4]]}},"keywords":{}}],["size",{"_index":561,"title":{},"content":{"57":{"position":[[968,4],[1424,4],[1462,4]]},"59":{"position":[[1798,4]]},"63":{"position":[[710,4],[1150,4],[1188,4]]},"65":{"position":[[329,4],[386,4],[424,4]]},"70":{"position":[[385,4],[416,4]]},"71":{"position":[[214,4],[245,4]]},"78":{"position":[[177,4],[208,4]]},"79":{"position":[[240,4],[271,4]]},"82":{"position":[[178,4],[209,4]]},"88":{"position":[[352,4],[409,4],[447,4],[1067,7],[1652,7]]},"130":{"position":[[276,4],[358,4],[4788,7],[5709,7]]},"133":{"position":[[563,7]]},"220":{"position":[[1125,4]]},"222":{"position":[[1832,4]]},"255":{"position":[[313,4]]},"260":{"position":[[415,4]]},"264":{"position":[[1066,4]]},"277":{"position":[[342,4]]},"282":{"position":[[304,4]]},"346":{"position":[[1327,4],[1752,4],[1790,4]]},"390":{"position":[[821,4],[1205,4],[1243,4]]},"456":{"position":[[80,4],[149,4],[164,4],[183,4],[221,4],[295,4]]},"480":{"position":[[9992,4],[10350,6],[12453,6]]},"486":{"position":[[809,5]]}},"keywords":{}}],["sizeinbyt",{"_index":2846,"title":{},"content":{"346":{"position":[[1674,12]]},"361":{"position":[[385,14]]}},"keywords":{}}],["skip",{"_index":1548,"title":{},"content":{"135":{"position":[[694,4]]},"364":{"position":[[866,8]]}},"keywords":{}}],["slightli",{"_index":3374,"title":{},"content":{"419":{"position":[[44,8]]}},"keywords":{}}],["slingshot",{"_index":1062,"title":{"93":{"position":[[29,9]]},"94":{"position":[[30,9]]},"173":{"position":[[6,9]]},"174":{"position":[[6,9]]},"175":{"position":[[14,9]]},"176":{"position":[[15,9]]},"177":{"position":[[13,9]]}},"content":{"92":{"position":[[102,9],[182,9]]},"93":{"position":[[79,9]]},"175":{"position":[[31,9],[68,9],[465,9]]},"176":{"position":[[32,9],[69,9],[477,9],[518,9]]},"177":{"position":[[34,9],[81,9],[283,9]]},"179":{"position":[[31,9],[307,9]]},"419":{"position":[[260,9]]}},"keywords":{}}],["slingshotcnhi",{"_index":485,"title":{},"content":{"51":{"position":[[501,13]]}},"keywords":{}}],["slingshotsenteraagv",{"_index":3988,"title":{},"content":{"505":{"position":[[61,23]]}},"keywords":{}}],["slingshotsenterastaratrimbl",{"_index":3387,"title":{},"content":{"420":{"position":[[126,28]]}},"keywords":{}}],["slower",{"_index":3464,"title":{},"content":{"458":{"position":[[38,6]]}},"keywords":{}}],["sm",{"_index":1433,"title":{},"content":{"130":{"position":[[4288,3]]}},"keywords":{}}],["small",{"_index":2526,"title":{},"content":{"293":{"position":[[587,5]]}},"keywords":{}}],["smallest",{"_index":1139,"title":{},"content":{"103":{"position":[[819,8],[1685,8]]}},"keywords":{}}],["sml",{"_index":2691,"title":{},"content":{"320":{"position":[[740,3]]}},"keywords":{}}],["smooth",{"_index":1993,"title":{},"content":{"229":{"position":[[2768,7]]},"320":{"position":[[2226,6]]}},"keywords":{}}],["snow",{"_index":1671,"title":{},"content":{"212":{"position":[[615,4]]}},"keywords":{}}],["snowfal",{"_index":4060,"title":{},"content":{"511":{"position":[[1279,9],[1389,10]]},"515":{"position":[[1262,9],[1372,10]]},"520":{"position":[[2362,11]]},"522":{"position":[[2328,11]]},"524":{"position":[[2038,11]]},"526":{"position":[[2004,11]]}},"keywords":{}}],["snowfallsum",{"_index":4059,"title":{},"content":{"511":{"position":[[1227,11]]},"515":{"position":[[1210,11]]},"519":{"position":[[1615,14]]},"521":{"position":[[1581,14]]},"523":{"position":[[1803,14]]},"525":{"position":[[1769,14]]}},"keywords":{}}],["soft",{"_index":1838,"title":{},"content":{"229":{"position":[[454,5]]},"320":{"position":[[2246,4],[2274,4],[2302,4],[2332,4],[2975,4],[3010,4],[3045,4],[3082,4]]}},"keywords":{}}],["softwar",{"_index":409,"title":{},"content":{"47":{"position":[[219,9]]},"226":{"position":[[219,9]]},"354":{"position":[[219,9]]},"402":{"position":[[219,9]]}},"keywords":{}}],["soil",{"_index":471,"title":{},"content":{"51":{"position":[[213,4],[358,4]]},"253":{"position":[[910,4],[957,4]]},"511":{"position":[[721,4],[1986,4]]},"515":{"position":[[704,4],[1969,4]]}},"keywords":{}}],["soilmoistur",{"_index":4043,"title":{},"content":{"511":{"position":[[694,12]]},"515":{"position":[[677,12]]},"520":{"position":[[1100,13],[1259,13],[1418,13],[1577,13],[1737,13]]},"522":{"position":[[1066,13],[1225,13],[1384,13],[1543,13],[1703,13]]},"524":{"position":[[928,13],[1087,13],[1247,13],[1409,13]]},"526":{"position":[[894,13],[1053,13],[1213,13],[1375,13]]}},"keywords":{}}],["soiltemperatur",{"_index":4145,"title":{},"content":{"520":{"position":[[943,18]]},"522":{"position":[[909,18]]},"524":{"position":[[2835,18]]},"526":{"position":[[2801,18]]}},"keywords":{}}],["solar",{"_index":4075,"title":{},"content":{"511":{"position":[[1669,5]]},"515":{"position":[[1652,5]]}},"keywords":{}}],["solutionr",{"_index":929,"title":{},"content":{"82":{"position":[[838,15]]},"83":{"position":[[660,15]]}},"keywords":{}}],["solv",{"_index":3408,"title":{},"content":{"429":{"position":[[139,5]]}},"keywords":{}}],["someth",{"_index":402,"title":{},"content":{"47":{"position":[[37,9]]},"226":{"position":[[37,9]]},"338":{"position":[[3694,11]]},"354":{"position":[[37,9]]},"402":{"position":[[37,9]]},"467":{"position":[[1155,9],[7064,9],[7108,10]]},"473":{"position":[[4075,9]]},"480":{"position":[[5722,9]]}},"keywords":{}}],["sometim",{"_index":2833,"title":{},"content":{"343":{"position":[[57,10]]}},"keywords":{}}],["soon",{"_index":3471,"title":{},"content":{"460":{"position":[[254,5]]}},"keywords":{}}],["sorghum",{"_index":1829,"title":{},"content":{"229":{"position":[[347,9]]},"320":{"position":[[2362,7],[2642,7]]}},"keywords":{}}],["sort",{"_index":563,"title":{},"content":{"57":{"position":[[1007,7],[1254,7]]},"59":{"position":[[1837,7],[2084,7]]},"63":{"position":[[749,7],[996,7]]},"70":{"position":[[511,4],[520,7]]},"71":{"position":[[275,4],[284,7]]},"78":{"position":[[303,4],[312,7]]},"79":{"position":[[301,4],[310,7]]},"82":{"position":[[304,4],[313,7]]},"218":{"position":[[214,7],[461,7]]},"287":{"position":[[274,4]]},"346":{"position":[[1366,7],[1601,7]]},"390":{"position":[[860,7],[1107,7]]},"467":{"position":[[2880,4],[4199,4],[4286,7]]}},"keywords":{}}],["sorted_day",{"_index":3536,"title":{},"content":{"467":{"position":[[4321,11]]}},"keywords":{}}],["sorted_days.foreach((",{"_index":3543,"title":{},"content":{"467":{"position":[[4498,23]]}},"keywords":{}}],["sourc",{"_index":79,"title":{"510":{"position":[[5,7]]},"514":{"position":[[5,7]]}},"content":{"2":{"position":[[355,7]]},"8":{"position":[[1410,13]]},"18":{"position":[[160,9]]},"19":{"position":[[209,9]]},"20":{"position":[[180,9]]},"105":{"position":[[3016,6]]},"209":{"position":[[630,6]]},"222":{"position":[[1256,7]]},"256":{"position":[[151,8]]},"260":{"position":[[1276,10],[1565,10]]},"266":{"position":[[2201,10],[2630,10]]},"287":{"position":[[83,9]]},"360":{"position":[[823,9]]},"488":{"position":[[2148,6],[2544,9]]},"507":{"position":[[180,7]]}},"keywords":{}}],["sowingandpl",{"_index":1201,"title":{},"content":{"104":{"position":[[2227,19]]}},"keywords":{}}],["soybean",{"_index":1806,"title":{},"content":{"229":{"position":[[85,11],[2429,10]]},"253":{"position":[[691,9]]},"264":{"position":[[635,11]]},"320":{"position":[[2376,8]]},"414":{"position":[[783,10],[2609,10],[2698,8]]}},"keywords":{}}],["space",{"_index":138,"title":{},"content":{"3":{"position":[[578,6]]},"511":{"position":[[1595,6]]},"515":{"position":[[1578,6]]}},"keywords":{}}],["span",{"_index":2783,"title":{},"content":{"338":{"position":[[2125,5],[2177,9],[2225,5],[2281,9]]},"428":{"position":[[111,4]]}},"keywords":{}}],["span>{provider.createdtime}</span",{"_index":2799,"title":{},"content":{"338":{"position":[[2603,35]]}},"keywords":{}}],["span>{provider.provider}</span",{"_index":2798,"title":{},"content":{"338":{"position":[[2541,32]]}},"keywords":{}}],["spatial",{"_index":4086,"title":{},"content":{"514":{"position":[[24,7]]}},"keywords":{}}],["spear",{"_index":1926,"title":{},"content":{"229":{"position":[[1887,6]]}},"keywords":{}}],["special",{"_index":2168,"title":{},"content":{"253":{"position":[[1140,11]]}},"keywords":{}}],["specif",{"_index":251,"title":{"426":{"position":[[4,8]]}},"content":{"6":{"position":[[31,8]]},"9":{"position":[[32,8]]},"47":{"position":[[899,8]]},"60":{"position":[[59,8]]},"61":{"position":[[75,8]]},"70":{"position":[[254,8]]},"104":{"position":[[387,12]]},"242":{"position":[[1002,12]]},"246":{"position":[[1120,8],[1144,8],[1217,8]]},"247":{"position":[[43,8],[615,8]]},"248":{"position":[[453,12],[494,8],[622,12]]},"251":{"position":[[700,8]]},"320":{"position":[[3302,8]]},"357":{"position":[[555,13],[685,13]]},"457":{"position":[[38,13]]},"473":{"position":[[2972,8],[3118,8]]}},"keywords":{}}],["specifi",{"_index":120,"title":{},"content":{"3":{"position":[[280,9]]},"5":{"position":[[44,10],[1758,9]]},"47":{"position":[[326,10]]},"57":{"position":[[359,7],[888,10],[953,10],[1158,7]]},"59":{"position":[[260,7],[396,10],[903,9],[1009,9],[1113,9],[1215,9],[1401,9],[1541,9],[1718,10],[1783,10],[1988,7]]},"63":{"position":[[630,10],[695,10],[900,7]]},"65":{"position":[[249,10],[314,10]]},"70":{"position":[[401,10],[462,10],[659,7]]},"71":{"position":[[165,10],[230,10],[423,7]]},"78":{"position":[[193,10],[254,10],[451,7]]},"79":{"position":[[191,10],[256,10],[449,7]]},"82":{"position":[[194,10],[255,10],[452,7]]},"88":{"position":[[272,10],[337,10]]},"112":{"position":[[28,9]]},"113":{"position":[[41,9]]},"218":{"position":[[365,7]]},"222":{"position":[[823,7],[1226,7],[1275,10]]},"246":{"position":[[1086,7]]},"247":{"position":[[310,7]]},"252":{"position":[[1183,9]]},"255":{"position":[[247,10],[298,10]]},"260":{"position":[[349,10],[400,10]]},"264":{"position":[[127,9],[986,10],[1051,10]]},"267":{"position":[[150,9]]},"277":{"position":[[277,10],[327,10]]},"282":{"position":[[239,10],[289,10]]},"313":{"position":[[658,7]]},"314":{"position":[[634,7]]},"334":{"position":[[657,7]]},"335":{"position":[[631,7]]},"346":{"position":[[1247,10],[1312,10],[1505,7]]},"390":{"position":[[741,10],[806,10],[1011,7]]},"502":{"position":[[371,10]]}},"keywords":{}}],["spectral",{"_index":1643,"title":{},"content":{"210":{"position":[[230,8]]}},"keywords":{}}],["speed",{"_index":2125,"title":{},"content":{"251":{"position":[[579,5]]},"357":{"position":[[1390,5]]},"361":{"position":[[1062,8]]},"362":{"position":[[359,5]]},"364":{"position":[[427,8]]},"365":{"position":[[775,5],[802,5]]},"368":{"position":[[373,8]]},"413":{"position":[[379,5]]},"414":{"position":[[432,8]]},"415":{"position":[[2286,8]]},"416":{"position":[[376,8]]},"509":{"position":[[284,5]]},"511":{"position":[[923,5]]},"513":{"position":[[285,5]]},"515":{"position":[[906,5]]}},"keywords":{}}],["spinach",{"_index":1927,"title":{},"content":{"229":{"position":[[1901,9]]}},"keywords":{}}],["split",{"_index":1250,"title":{},"content":{"105":{"position":[[2678,5]]},"137":{"position":[[317,5]]},"448":{"position":[[106,5]]}},"keywords":{}}],["split('.')[0",{"_index":3666,"title":{},"content":{"473":{"position":[[5581,14]]}},"keywords":{}}],["split('_')[0",{"_index":3667,"title":{},"content":{"473":{"position":[[5596,15]]}},"keywords":{}}],["split('_sr.tif/')[1",{"_index":3665,"title":{},"content":{"473":{"position":[[5559,21]]}},"keywords":{}}],["splitoperationsbyfield",{"_index":1249,"title":{},"content":{"105":{"position":[[2628,23]]},"448":{"position":[[57,22]]}},"keywords":{}}],["splitoperationsbyprovid",{"_index":1251,"title":{},"content":{"105":{"position":[[2789,26]]}},"keywords":{}}],["spoof",{"_index":106,"title":{},"content":{"3":{"position":[[102,8]]}},"keywords":{}}],["spr",{"_index":2730,"title":{},"content":{"320":{"position":[[2782,4]]}},"keywords":{}}],["spray",{"_index":1374,"title":{},"content":{"130":{"position":[[2054,8],[3450,8]]}},"keywords":{}}],["sprayer",{"_index":600,"title":{},"content":{"57":{"position":[[2129,10]]},"58":{"position":[[609,10]]},"253":{"position":[[1194,8]]}},"keywords":{}}],["spring",{"_index":1836,"title":{},"content":{"229":{"position":[[416,6],[523,6]]},"320":{"position":[[919,6],[1078,6],[1311,6],[1369,6],[2255,6],[2313,6],[2391,6],[2408,6],[2422,6],[2840,6],[2912,6],[2984,6],[3056,6]]}},"keywords":{}}],["sprout",{"_index":1855,"title":{},"content":{"229":{"position":[[878,8]]}},"keywords":{}}],["squar",{"_index":1191,"title":{},"content":{"104":{"position":[[1627,7],[1656,7]]},"109":{"position":[[409,9]]},"110":{"position":[[521,9]]},"111":{"position":[[912,9]]},"112":{"position":[[733,9]]},"113":{"position":[[855,9]]},"346":{"position":[[926,7]]},"357":{"position":[[1772,6]]}},"keywords":{}}],["squash",{"_index":1965,"title":{},"content":{"229":{"position":[[2359,8]]}},"keywords":{}}],["ss",{"_index":949,"title":{},"content":{"82":{"position":[[1529,4]]},"83":{"position":[[1351,4]]}},"keywords":{}}],["stage",{"_index":1584,"title":{},"content":{"147":{"position":[[582,6]]},"148":{"position":[[153,6],[378,6],[709,6]]},"161":{"position":[[638,6]]},"162":{"position":[[221,6],[499,6],[830,6]]},"168":{"position":[[717,6]]},"169":{"position":[[208,6],[420,6],[824,6]]},"204":{"position":[[721,6]]},"229":{"position":[[2455,5]]},"303":{"position":[[1132,6],[1234,6],[1673,6]]},"304":{"position":[[1214,6],[1316,6],[1777,6]]},"320":{"position":[[441,5]]},"328":{"position":[[789,5]]},"330":{"position":[[815,5]]},"418":{"position":[[498,5]]}},"keywords":{}}],["stand",{"_index":497,"title":{},"content":{"52":{"position":[[43,5]]},"86":{"position":[[38,5]]},"253":{"position":[[1318,5]]}},"keywords":{}}],["stand_count",{"_index":974,"title":{},"content":{"88":{"position":[[139,12]]}},"keywords":{}}],["standard",{"_index":56,"title":{"320":{"position":[[0,8]]},"363":{"position":[[0,8]]},"412":{"position":[[17,8]]}},"content":{"2":{"position":[[43,13],[317,12]]},"74":{"position":[[111,8]]},"104":{"position":[[1811,8],[1975,8],[2457,11]]},"105":{"position":[[1950,8],[2105,8]]},"135":{"position":[[338,12]]},"242":{"position":[[59,12]]},"251":{"position":[[175,12]]},"252":{"position":[[1108,8]]},"256":{"position":[[97,13]]},"320":{"position":[[4,8]]},"341":{"position":[[133,12],[773,8]]},"346":{"position":[[1098,8]]},"350":{"position":[[430,12]]},"360":{"position":[[33,12]]},"363":{"position":[[52,12]]},"364":{"position":[[130,12]]},"387":{"position":[[61,12]]},"396":{"position":[[1087,8]]},"398":{"position":[[441,12]]},"411":{"position":[[716,12]]},"412":{"position":[[23,8]]},"413":{"position":[[622,8],[692,8]]},"415":{"position":[[564,8]]},"418":{"position":[[164,12]]},"440":{"position":[[168,8]]},"446":{"position":[[57,8]]},"492":{"position":[[50,12]]},"495":{"position":[[246,12]]}},"keywords":{}}],["standardgeojson",{"_index":1153,"title":{"393":{"position":[[20,15]]}},"content":{"104":{"position":[[95,15],[2314,16]]},"341":{"position":[[206,15],[977,15]]},"351":{"position":[[372,18]]},"361":{"position":[[513,18]]},"363":{"position":[[95,16],[152,16]]},"364":{"position":[[35,17]]},"366":{"position":[[18,15]]},"389":{"position":[[341,15]]},"393":{"position":[[46,15],[295,18]]},"399":{"position":[[101,15]]},"401":{"position":[[117,16]]},"412":{"position":[[70,18]]},"415":{"position":[[1375,16]]},"436":{"position":[[172,16]]},"451":{"position":[[161,15]]}},"keywords":{}}],["standardgeojson(leaf’",{"_index":2825,"title":{},"content":{"341":{"position":[[158,22]]}},"keywords":{}}],["standardgeojsonfilt",{"_index":3135,"title":{},"content":{"387":{"position":[[268,23]]}},"keywords":{}}],["star",{"_index":1364,"title":{},"content":{"130":{"position":[[1710,4]]}},"keywords":{}}],["stara",{"_index":533,"title":{"194":{"position":[[0,5]]},"195":{"position":[[0,5]]},"196":{"position":[[8,5]]},"197":{"position":[[9,5]]},"198":{"position":[[7,5]]}},"content":{"57":{"position":[[245,5]]},"196":{"position":[[52,5]]},"197":{"position":[[53,5],[540,5]]},"198":{"position":[[65,5]]},"200":{"position":[[290,6]]},"255":{"position":[[1261,5]]},"390":{"position":[[317,5]]},"435":{"position":[[11,5],[59,6]]}},"keywords":{}}],["staracredenti",{"_index":3980,"title":{},"content":{"498":{"position":[[853,19]]},"500":{"position":[[477,19]]},"501":{"position":[[680,19]]}},"keywords":{}}],["starch",{"_index":1914,"title":{},"content":{"229":{"position":[[1674,7]]},"320":{"position":[[2003,6]]}},"keywords":{}}],["start",{"_index":68,"title":{"232":{"position":[[8,7]]},"309":{"position":[[4,7]]},"323":{"position":[[4,7]]},"468":{"position":[[0,5]]},"481":{"position":[[0,5]]}},"content":{"2":{"position":[[165,7],[284,7],[465,7]]},"59":{"position":[[669,5],[884,7],[991,7]]},"220":{"position":[[1036,9]]},"232":{"position":[[16,8]]},"242":{"position":[[1080,6]]},"244":{"position":[[92,5]]},"256":{"position":[[198,5]]},"264":{"position":[[775,7]]},"313":{"position":[[324,8]]},"314":{"position":[[316,8]]},"334":{"position":[[324,8]]},"335":{"position":[[316,8]]},"338":{"position":[[717,7]]},"340":{"position":[[482,7],[561,5],[693,7]]},"341":{"position":[[530,5]]},"387":{"position":[[607,6]]},"401":{"position":[[83,8]]},"418":{"position":[[146,5]]},"422":{"position":[[68,5]]},"468":{"position":[[30,5],[128,11]]},"473":{"position":[[119,8]]},"480":{"position":[[2698,5]]},"481":{"position":[[30,5],[281,11]]},"485":{"position":[[212,5]]},"487":{"position":[[317,5]]},"495":{"position":[[230,5]]},"502":{"position":[[503,5]]}},"keywords":{}}],["start/stop",{"_index":456,"title":{},"content":{"50":{"position":[[89,10]]}},"keywords":{}}],["startdat",{"_index":1757,"title":{},"content":{"222":{"position":[[498,11],[582,9],[922,12]]},"224":{"position":[[106,9],[420,12]]},"467":{"position":[[3247,9],[3841,10],[3852,10]]},"473":{"position":[[612,10],[3532,9],[3634,9],[3803,10],[5791,10],[5989,10],[6000,10]]}},"keywords":{}}],["startprocessedtimestamp",{"_index":1702,"title":{},"content":{"220":{"position":[[574,23]]}},"keywords":{}}],["starttim",{"_index":628,"title":{},"content":{"59":{"position":[[624,9],[2124,10],[2528,12],[2775,12]]},"264":{"position":[[715,9],[1427,12]]},"265":{"position":[[438,12]]},"289":{"position":[[67,12]]},"346":{"position":[[622,9],[675,9]]},"361":{"position":[[1273,12]]},"390":{"position":[[331,9],[384,9],[1136,10],[1604,12]]},"391":{"position":[[366,12]]},"411":{"position":[[365,12]]},"414":{"position":[[541,12]]},"517":{"position":[[1058,9],[1162,9]]},"519":{"position":[[323,9],[373,9]]},"520":{"position":[[325,9],[375,9]]},"521":{"position":[[312,9],[362,9]]},"522":{"position":[[314,9],[364,9]]},"523":{"position":[[528,9],[578,9]]},"524":{"position":[[327,9],[377,9]]},"525":{"position":[[517,9],[567,9]]},"526":{"position":[[316,9],[366,9]]}},"keywords":{}}],["starttunnel",{"_index":3716,"title":{},"content":{"479":{"position":[[386,11]]},"480":{"position":[[2723,14]]},"481":{"position":[[228,14]]}},"keywords":{}}],["state",{"_index":1455,"title":{},"content":{"130":{"position":[[5175,7],[5225,5]]},"338":{"position":[[1910,6],[2081,5],[3731,5]]},"510":{"position":[[189,6]]}},"keywords":{}}],["static",{"_index":2481,"title":{},"content":{"288":{"position":[[1372,6]]}},"keywords":{}}],["statu",{"_index":267,"title":{"120":{"position":[[31,6]]},"122":{"position":[[37,6]]},"351":{"position":[[11,6]]}},"content":{"8":{"position":[[410,9],[895,9]]},"9":{"position":[[81,6]]},"15":{"position":[[330,9],[349,6]]},"16":{"position":[[275,9],[294,6]]},"65":{"position":[[950,9]]},"66":{"position":[[577,9]]},"70":{"position":[[1259,9]]},"74":{"position":[[622,9],[807,9]]},"75":{"position":[[150,9],[346,9],[599,9],[721,9]]},"76":{"position":[[441,9]]},"78":{"position":[[821,9]]},"80":{"position":[[698,9]]},"82":{"position":[[1310,9],[1787,9],[2264,9],[2396,9]]},"83":{"position":[[1132,9],[1609,9],[2086,9],[2218,9]]},"117":{"position":[[401,6],[438,6],[623,7]]},"118":{"position":[[202,6],[436,6]]},"119":{"position":[[432,9]]},"120":{"position":[[109,6]]},"121":{"position":[[450,9]]},"122":{"position":[[115,7],[254,6],[516,9],[757,9]]},"130":{"position":[[4826,9],[5111,7],[5123,6],[5183,6],[5349,6],[5419,6],[5459,6],[5747,9],[5981,6],[6021,6]]},"131":{"position":[[242,6],[701,9]]},"132":{"position":[[231,6],[681,9]]},"133":{"position":[[601,9]]},"140":{"position":[[251,6],[499,9]]},"141":{"position":[[566,7],[594,9]]},"147":{"position":[[248,6],[494,9]]},"148":{"position":[[593,7],[621,9]]},"154":{"position":[[269,6],[526,9]]},"155":{"position":[[556,7],[584,9]]},"161":{"position":[[242,6],[485,9]]},"162":{"position":[[649,7],[677,9]]},"168":{"position":[[254,6],[503,9]]},"169":{"position":[[582,7],[610,9]]},"175":{"position":[[264,6],[518,9]]},"176":{"position":[[545,7],[573,9]]},"182":{"position":[[244,6],[488,9]]},"183":{"position":[[511,7],[539,9]]},"189":{"position":[[248,6],[494,9]]},"190":{"position":[[521,7],[549,9]]},"196":{"position":[[244,6],[488,9]]},"197":{"position":[[563,7],[591,9]]},"203":{"position":[[248,6],[494,9]]},"204":{"position":[[479,7],[507,9]]},"220":{"position":[[999,6],[1076,6],[1843,9],[2472,6]]},"221":{"position":[[458,9]]},"269":{"position":[[786,9]]},"275":{"position":[[734,9]]},"287":{"position":[[1018,9],[1616,9]]},"288":{"position":[[356,6],[383,6],[415,6],[1173,6],[1456,6],[1684,9]]},"338":{"position":[[365,6],[417,6],[620,6],[672,7],[680,6],[1056,6],[2164,6],[2265,6]]},"345":{"position":[[381,6]]},"346":{"position":[[314,6]]},"351":{"position":[[28,6],[265,9],[330,9],[393,9],[455,9],[515,9],[570,9],[623,9],[683,9],[745,9]]},"353":{"position":[[318,7],[328,6],[520,6],[947,9]]},"365":{"position":[[623,6]]},"399":{"position":[[565,6]]},"401":{"position":[[395,6]]},"459":{"position":[[30,6]]},"467":{"position":[[381,6]]},"473":{"position":[[4033,6]]},"480":{"position":[[1561,6],[4488,6]]}},"keywords":{}}],["statuscod",{"_index":1577,"title":{},"content":{"144":{"position":[[449,13]]},"151":{"position":[[445,13]]},"158":{"position":[[467,13]]},"165":{"position":[[439,13]]},"172":{"position":[[451,13]]},"179":{"position":[[461,13]]},"186":{"position":[[441,13]]},"193":{"position":[[445,13]]},"200":{"position":[[441,13]]},"207":{"position":[[436,13]]}},"keywords":{}}],["statusdetail",{"_index":1457,"title":{},"content":{"130":{"position":[[5479,14],[5498,16],[5767,16],[6006,14]]}},"keywords":{}}],["step",{"_index":370,"title":{},"content":{"25":{"position":[[19,5]]},"26":{"position":[[134,6]]},"29":{"position":[[204,6]]},"32":{"position":[[124,6]]},"34":{"position":[[129,6]]},"86":{"position":[[152,5]]},"117":{"position":[[117,4],[636,4],[709,4],[784,5],[1147,6]]},"232":{"position":[[168,5]]},"242":{"position":[[716,6]]},"244":{"position":[[215,4],[280,4],[363,4],[1065,4],[1935,5],[2209,4],[2377,5]]},"245":{"position":[[547,4],[935,5],[1324,5]]},"246":{"position":[[656,4]]},"247":{"position":[[58,5],[103,5],[530,5]]},"313":{"position":[[311,5]]},"314":{"position":[[303,5]]},"328":{"position":[[199,4]]},"330":{"position":[[188,4]]},"331":{"position":[[193,4]]},"332":{"position":[[203,4]]},"334":{"position":[[311,5]]},"335":{"position":[[303,5]]},"338":{"position":[[3176,5],[3200,4]]},"351":{"position":[[54,4]]},"401":{"position":[[107,5]]},"419":{"position":[[108,6]]},"423":{"position":[[54,4],[176,5],[257,6]]},"437":{"position":[[88,5]]},"438":{"position":[[72,4]]},"454":{"position":[[99,5]]},"464":{"position":[[112,6]]},"467":{"position":[[87,6],[2428,5],[2710,5],[3476,4],[3941,4]]},"471":{"position":[[17,5]]},"472":{"position":[[171,6],[218,4]]},"473":{"position":[[1805,5],[2481,5]]},"477":{"position":[[112,5]]},"480":{"position":[[1267,6],[5966,5]]}},"keywords":{}}],["still",{"_index":2469,"title":{},"content":{"287":{"position":[[519,5],[1656,5]]},"419":{"position":[[493,5]]},"460":{"position":[[204,5]]}},"keywords":{}}],["stmax150",{"_index":717,"title":{},"content":{"63":{"position":[[1721,11]]},"64":{"position":[[588,11]]}},"keywords":{}}],["storag",{"_index":3465,"title":{},"content":{"458":{"position":[[45,7]]}},"keywords":{}}],["store",{"_index":451,"title":{},"content":{"50":{"position":[[25,6]]},"53":{"position":[[115,5]]},"89":{"position":[[1055,6]]},"212":{"position":[[287,6]]}},"keywords":{}}],["str",{"_index":623,"title":{},"content":{"58":{"position":[[339,6]]},"60":{"position":[[375,7]]},"61":{"position":[[511,7]]},"93":{"position":[[713,6],[728,5]]},"94":{"position":[[313,6],[328,5],[345,6],[360,5]]},"95":{"position":[[952,6],[967,5]]},"96":{"position":[[487,6],[502,5],[519,6],[534,5]]},"98":{"position":[[777,6],[792,5]]},"99":{"position":[[413,6],[428,5],[445,6],[460,5]]},"100":{"position":[[719,6],[734,5]]},"101":{"position":[[1090,6],[1105,5]]},"140":{"position":[[492,6],[509,6],[581,6],[604,6],[624,6],[645,5]]},"141":{"position":[[133,6],[156,6],[176,6],[197,5],[587,6],[604,6],[676,6],[699,6],[719,6],[740,5]]},"147":{"position":[[487,6],[504,6],[617,6],[636,6],[657,6],[677,6],[694,5]]},"148":{"position":[[125,6],[190,6],[209,6],[228,5],[350,6],[415,6],[434,6],[453,7],[614,6],[631,6],[744,6],[763,6],[784,6],[804,6],[821,5]]},"154":{"position":[[519,6],[536,6],[621,9],[643,6],[666,6],[683,6],[706,6],[728,5]]},"155":{"position":[[148,6],[171,6],[188,6],[211,5],[395,7],[577,6],[594,6],[679,9],[701,6],[724,6],[741,6],[764,6],[786,5]]},"161":{"position":[[478,6],[495,6],[564,6],[587,6],[610,6],[680,5]]},"162":{"position":[[121,6],[144,6],[170,6],[193,6],[399,6],[422,6],[448,6],[471,6],[670,6],[687,6],[756,6],[779,6],[802,6],[872,5]]},"168":{"position":[[496,6],[513,6],[598,9],[621,6],[644,6],[666,6],[689,6]]},"169":{"position":[[134,6],[157,6],[180,6],[603,6],[620,6],[705,9],[728,6],[751,6],[773,6],[796,6]]},"175":{"position":[[511,6],[528,6],[595,6],[615,6],[638,5]]},"176":{"position":[[141,6],[161,6],[184,5],[345,6],[365,6],[388,5],[566,6],[583,6],[650,6],[670,6],[693,5]]},"182":{"position":[[481,6],[498,6],[583,9],[605,6],[628,6],[651,6],[673,5]]},"183":{"position":[[123,6],[146,6],[169,5],[532,6],[549,6],[634,9],[656,6],[679,6],[702,6],[724,5]]},"189":{"position":[[487,6],[504,6],[573,6],[593,6],[618,6],[645,5]]},"190":{"position":[[127,6],[146,6],[335,6],[354,6],[381,7],[542,6],[559,6],[628,6],[648,6],[673,6],[700,5]]},"196":{"position":[[481,6],[498,6],[576,6],[599,6],[621,6],[638,5]]},"197":{"position":[[121,6],[143,6],[171,6],[194,5],[354,6],[376,6],[404,6],[427,7],[584,6],[601,6],[679,6],[702,6],[724,6],[741,5]]},"203":{"position":[[487,6],[504,6],[589,9],[611,6],[634,6],[656,6],[679,5]]},"204":{"position":[[127,6],[150,6],[173,5],[341,7],[500,6],[517,6],[602,9],[625,6],[648,6],[670,6],[693,6]]},"207":{"position":[[348,6],[416,6],[429,6]]},"498":{"position":[[607,6],[652,6],[670,6]]},"500":{"position":[[231,6],[276,6],[294,6]]},"501":{"position":[[434,6],[479,6],[497,6]]},"502":{"position":[[143,6],[188,6],[206,5],[794,6],[839,6],[857,7],[966,6],[1011,6],[1029,5]]},"503":{"position":[[108,6],[153,6],[171,5],[667,6],[712,6],[730,7],[839,6],[884,6],[902,5]]},"520":{"position":[[2849,6]]},"522":{"position":[[2815,6]]},"524":{"position":[[2526,6]]},"526":{"position":[[2492,6]]}},"keywords":{}}],["str\",\"apikey",{"_index":1598,"title":{},"content":{"155":{"position":[[357,15]]}},"keywords":{}}],["str\",\"clientenviron",{"_index":1604,"title":{},"content":{"169":{"position":[[393,26]]}},"keywords":{}}],["str\",\"clientsecret",{"_index":1597,"title":{},"content":{"155":{"position":[[335,21]]},"169":{"position":[[349,21]]},"183":{"position":[[332,21]]},"204":{"position":[[297,21]]}},"keywords":{}}],["str\",\"publickey\":\"str",{"_index":1568,"title":{},"content":{"141":{"position":[[385,24]]}},"keywords":{}}],["str\",\"refreshtoken",{"_index":1567,"title":{},"content":{"141":{"position":[[363,21]]},"155":{"position":[[373,21]]},"169":{"position":[[371,21]]},"204":{"position":[[319,21]]}},"keywords":{}}],["str\",\"refreshtoken\":\"str",{"_index":1609,"title":{},"content":{"183":{"position":[[354,28]]}},"keywords":{}}],["straight",{"_index":1549,"title":{},"content":{"135":{"position":[[699,8]]}},"keywords":{}}],["stranger",{"_index":5,"title":{},"content":{"0":{"position":[[9,9]]}},"keywords":{}}],["strawberri",{"_index":1928,"title":{},"content":{"229":{"position":[[1911,14]]}},"keywords":{}}],["stream",{"_index":3826,"title":{},"content":{"480":{"position":[[10858,8],[10877,7]]}},"keywords":{}}],["string",{"_index":134,"title":{},"content":{"3":{"position":[[544,6]]},"5":{"position":[[623,6],[662,6],[779,6]]},"120":{"position":[[392,6]]},"144":{"position":[[352,9],[423,9],[439,9]]},"151":{"position":[[348,9],[419,9],[435,9]]},"158":{"position":[[370,9],[441,9],[457,9]]},"165":{"position":[[342,9],[413,9],[429,9]]},"172":{"position":[[354,9],[425,9],[441,9]]},"179":{"position":[[364,9],[435,9],[451,9]]},"186":{"position":[[344,9],[415,9],[431,9]]},"193":{"position":[[348,9],[419,9],[435,9]]},"200":{"position":[[344,9],[415,9],[431,9]]},"220":{"position":[[1006,6],[1218,6]]},"264":{"position":[[298,6],[393,6],[498,6],[595,6]]},"287":{"position":[[714,9],[745,9],[774,9],[874,9],[1318,9],[1349,9],[1378,9],[1478,9]]},"289":{"position":[[134,11],[159,11],[189,9]]},"290":{"position":[[26,9],[71,9]]},"291":{"position":[[26,9],[74,9],[123,9]]},"298":{"position":[[111,9],[154,8],[476,9],[519,8]]},"301":{"position":[[1576,9],[1599,8],[1729,9],[1752,8],[1987,9],[2010,8],[2139,9],[2162,8]]},"302":{"position":[[1761,9],[1783,9],[1809,8],[1935,9],[1957,9],[1983,8],[2246,9],[2268,9],[2294,8],[2419,9],[2441,9],[2467,8]]},"303":{"position":[[1843,9],[1869,9],[1898,8],[2026,9],[2052,9],[2081,8],[2336,9],[2362,9],[2391,8],[2518,9],[2544,9],[2573,8]]},"304":{"position":[[1965,9],[1991,8],[2120,9],[2146,8],[2424,9],[2450,8],[2578,9],[2604,8]]},"305":{"position":[[1757,9],[1779,9],[1805,8],[1940,9],[1962,9],[1988,8],[2222,9],[2244,9],[2270,8],[2404,9],[2426,9],[2452,8]]},"314":{"position":[[883,6],[925,6],[970,6],[1015,6]]},"316":{"position":[[24,6],[73,6],[134,6],[306,6],[336,6]]},"317":{"position":[[143,6],[961,6],[990,6],[1026,6],[1063,6],[1679,6],[1721,6],[1766,6],[1811,6]]},"328":{"position":[[937,9],[963,8]]},"329":{"position":[[603,9],[625,9],[651,8]]},"330":{"position":[[962,9],[988,9],[1017,8]]},"331":{"position":[[822,9],[845,8]]},"332":{"position":[[809,9],[831,9],[857,8]]},"337":{"position":[[24,6],[73,6],[134,6],[237,6],[275,6],[313,6]]},"338":{"position":[[150,7],[171,6],[344,6],[1313,6],[1342,6],[1378,6],[1415,6]]},"349":{"position":[[1178,6]]},"362":{"position":[[136,6],[175,6],[217,6],[435,6]]},"364":{"position":[[513,9],[536,11],[582,9],[706,9],[727,9]]},"365":{"position":[[121,6],[207,6],[468,6],[477,6],[519,6],[528,6],[732,6]]},"385":{"position":[[173,6],[313,6],[360,6],[399,6]]},"395":{"position":[[1188,6]]},"396":{"position":[[395,9]]},"411":{"position":[[490,9],[589,8]]},"415":{"position":[[73,9],[809,9]]},"467":{"position":[[4147,6]]},"473":{"position":[[1988,7],[2006,8],[2700,8],[5828,8]]},"487":{"position":[[292,6]]}},"keywords":{}}],["string\"non",{"_index":1807,"title":{},"content":{"229":{"position":[[102,12]]}},"keywords":{}}],["string).farmid",{"_index":2205,"title":{},"content":{"260":{"position":[[154,16]]}},"keywords":{}}],["string).leafuserid",{"_index":2172,"title":{},"content":{"255":{"position":[[165,20]]},"260":{"position":[[267,20]]}},"keywords":{}}],["string).pag",{"_index":2173,"title":{},"content":{"255":{"position":[[221,14]]},"260":{"position":[[323,14]]}},"keywords":{}}],["string)leafuserid",{"_index":2415,"title":{},"content":{"277":{"position":[[195,19]]},"282":{"position":[[155,19]]}},"keywords":{}}],["strip",{"_index":3405,"title":{},"content":{"429":{"position":[[9,5]]}},"keywords":{}}],["stripe",{"_index":1832,"title":{},"content":{"229":{"position":[[384,7]]},"320":{"position":[[2579,6]]}},"keywords":{}}],["strongli",{"_index":3472,"title":{},"content":{"460":{"position":[[277,8]]}},"keywords":{}}],["structur",{"_index":1337,"title":{"233":{"position":[[18,10]]}},"content":{"130":{"position":[[974,10],[1052,10],[1146,9],[1532,10],[1886,10],[2240,10],[2522,10],[2877,10],[3282,10],[3535,10],[3601,10],[3666,10],[3743,10],[3821,10],[3891,10],[3980,10],[6136,9]]},"255":{"position":[[935,9],[1006,9],[1061,9]]},"470":{"position":[[180,9]]}},"keywords":{}}],["stubbel",{"_index":1929,"title":{},"content":{"229":{"position":[[1926,8]]}},"keywords":{}}],["style",{"_index":2787,"title":{},"content":{"338":{"position":[[2231,8]]},"473":{"position":[[4531,5]]},"490":{"position":[[261,6]]}},"keywords":{}}],["style=\"cursor",{"_index":3906,"title":{},"content":{"487":{"position":[[964,14]]},"488":{"position":[[1455,14]]}},"keywords":{}}],["style={{fonts",{"_index":2780,"title":{},"content":{"338":{"position":[[2041,17]]}},"keywords":{}}],["style={{fontweight",{"_index":2784,"title":{},"content":{"338":{"position":[[2131,19]]}},"keywords":{}}],["styleurl",{"_index":2646,"title":{},"content":{"317":{"position":[[887,10]]},"338":{"position":[[1239,10]]}},"keywords":{}}],["subfold",{"_index":1071,"title":{},"content":{"93":{"position":[[300,11]]},"95":{"position":[[471,11]]},"98":{"position":[[367,11]]},"100":{"position":[[304,11]]},"101":{"position":[[285,11]]}},"keywords":{}}],["submit",{"_index":2083,"title":{},"content":{"244":{"position":[[1728,6]]},"486":{"position":[[88,6],[196,6]]},"503":{"position":[[43,10]]}},"keywords":{}}],["subscribe((data",{"_index":3624,"title":{},"content":{"473":{"position":[[2547,17],[3855,17]]}},"keywords":{}}],["subscript",{"_index":1796,"title":{"224":{"position":[[4,12]]}},"content":{"224":{"position":[[39,12]]}},"keywords":{}}],["subscriptionkey",{"_index":1600,"title":{},"content":{"161":{"position":[[661,18]]},"162":{"position":[[151,18],[429,18],[853,18]]},"303":{"position":[[1879,18],[2062,18],[2372,18],[2554,18]]},"330":{"position":[[692,16],[998,18]]}},"keywords":{}}],["subsequ",{"_index":3396,"title":{},"content":{"423":{"position":[[165,10]]}},"keywords":{}}],["subtyp",{"_index":2160,"title":{},"content":{"253":{"position":[[724,7]]}},"keywords":{}}],["succe",{"_index":1527,"title":{},"content":{"133":{"position":[[181,7]]}},"keywords":{}}],["succeed",{"_index":311,"title":{},"content":{"9":{"position":[[107,10]]}},"keywords":{}}],["succefulli",{"_index":3788,"title":{},"content":{"480":{"position":[[7445,11]]}},"keywords":{}}],["success",{"_index":346,"title":{},"content":{"13":{"position":[[61,7]]},"130":{"position":[[5356,7],[5426,7]]},"220":{"position":[[1013,10],[1083,7],[1853,10],[2513,7]]},"221":{"position":[[468,10]]},"255":{"position":[[611,10]]},"293":{"position":[[163,11]]},"317":{"position":[[328,10]]},"483":{"position":[[475,8]]},"484":{"position":[[470,8]]},"485":{"position":[[287,8]]},"486":{"position":[[464,8]]},"487":{"position":[[431,8]]},"488":{"position":[[465,8],[1010,8],[2993,8]]}},"keywords":{}}],["successfulli",{"_index":383,"title":{},"content":{"28":{"position":[[141,12]]},"31":{"position":[[61,12]]},"33":{"position":[[66,12]]},"35":{"position":[[31,12]]},"37":{"position":[[33,12]]},"232":{"position":[[252,12]]},"418":{"position":[[48,12]]},"480":{"position":[[3191,12]]},"484":{"position":[[526,12]]}},"keywords":{}}],["such",{"_index":384,"title":{},"content":{"35":{"position":[[179,4]]},"37":{"position":[[126,4]]},"50":{"position":[[45,4]]},"57":{"position":[[167,4]]},"59":{"position":[[193,4]]},"70":{"position":[[273,4]]},"74":{"position":[[194,4]]},"104":{"position":[[1852,4]]},"246":{"position":[[1237,4],[1504,4]]},"252":{"position":[[279,4]]},"253":{"position":[[89,4],[1177,4]]},"267":{"position":[[179,4]]},"293":{"position":[[634,4]]},"341":{"position":[[755,4]]},"357":{"position":[[1866,4]]},"501":{"position":[[90,5],[195,4]]}},"keywords":{}}],["sudangrass",{"_index":1972,"title":{},"content":{"229":{"position":[[2492,12]]},"320":{"position":[[2438,10]]}},"keywords":{}}],["sugar",{"_index":1932,"title":{},"content":{"229":{"position":[[1954,6],[1967,6]]},"320":{"position":[[2455,5],[2472,5]]},"450":{"position":[[35,5],[72,5]]}},"keywords":{}}],["sugarbeet",{"_index":1931,"title":{},"content":{"229":{"position":[[1942,11]]}},"keywords":{}}],["sugarcan",{"_index":3068,"title":{},"content":{"365":{"position":[[1629,9]]}},"keywords":{}}],["suggest",{"_index":2187,"title":{},"content":{"256":{"position":[[422,7]]},"338":{"position":[[3389,7]]},"505":{"position":[[333,7]]}},"keywords":{}}],["sum",{"_index":1216,"title":{},"content":{"105":{"position":[[441,3]]},"511":{"position":[[1102,3],[1208,3],[1266,3],[1333,3]]},"515":{"position":[[1085,3],[1191,3],[1249,3],[1316,3]]}},"keywords":{}}],["summar",{"_index":741,"title":{"71":{"position":[[4,10]]},"79":{"position":[[4,10]]}},"content":{"69":{"position":[[66,10]]},"77":{"position":[[58,10]]},"341":{"position":[[731,10]]}},"keywords":{}}],["summari",{"_index":321,"title":{"342":{"position":[[13,7],[34,7]]},"348":{"position":[[11,7]]},"364":{"position":[[0,7]]},"392":{"position":[[20,7]]},"414":{"position":[[17,7]]},"427":{"position":[[26,7]]}},"content":{"11":{"position":[[167,8]]},"35":{"position":[[187,8]]},"37":{"position":[[142,7]]},"104":{"position":[[1843,8],[2020,8],[2305,8]]},"105":{"position":[[666,7]]},"210":{"position":[[93,7]]},"251":{"position":[[437,7],[459,7]]},"252":{"position":[[1289,7],[1465,7]]},"255":{"position":[[622,12]]},"341":{"position":[[274,9],[705,8],[864,7]]},"342":{"position":[[13,8],[230,8]]},"345":{"position":[[254,7]]},"348":{"position":[[34,8]]},"351":{"position":[[557,10]]},"360":{"position":[[54,9],[541,7]]},"361":{"position":[[161,7],[655,10]]},"387":{"position":[[362,7]]},"389":{"position":[[284,7]]},"392":{"position":[[39,8]]},"401":{"position":[[151,7]]},"414":{"position":[[23,7],[130,7]]},"420":{"position":[[480,7]]},"426":{"position":[[80,7]]},"436":{"position":[[189,7]]},"440":{"position":[[149,7]]},"447":{"position":[[211,9]]},"488":{"position":[[2886,7]]},"505":{"position":[[121,7]]}},"keywords":{}}],["summarizebyproductentri",{"_index":1212,"title":{},"content":{"105":{"position":[[250,24]]}},"keywords":{}}],["summary.area",{"_index":1214,"title":{},"content":{"105":{"position":[[385,12]]}},"keywords":{}}],["summaryapikey",{"_index":2618,"title":{},"content":{"316":{"position":[[10,13]]},"337":{"position":[[10,13]]}},"keywords":{}}],["summarygeometri",{"_index":1219,"title":{},"content":{"105":{"position":[[540,16]]}},"keywords":{}}],["sunflow",{"_index":1830,"title":{},"content":{"229":{"position":[[357,10],[373,10],[682,10],[700,10]]},"320":{"position":[[2489,9],[2505,9],[2527,9],[2549,9],[2569,9],[2589,10]]}},"keywords":{}}],["sunris",{"_index":4045,"title":{},"content":{"511":{"position":[[811,7],[827,7],[1853,7]]},"515":{"position":[[794,7],[810,7],[1836,7]]},"519":{"position":[[1433,10]]},"521":{"position":[[1399,10]]},"523":{"position":[[1621,10]]},"525":{"position":[[1587,10]]}},"keywords":{}}],["sunset",{"_index":4046,"title":{},"content":{"511":{"position":[[841,6],[856,6],[1865,6]]},"515":{"position":[[824,6],[839,6],[1848,6]]},"519":{"position":[[2901,9]]},"521":{"position":[[2867,9]]},"523":{"position":[[3089,9]]},"525":{"position":[[3055,9]]}},"keywords":{}}],["support",{"_index":406,"title":{"137":{"position":[[14,9]]}},"content":{"47":{"position":[[130,7],[199,9]]},"51":{"position":[[444,9]]},"52":{"position":[[265,9]]},"72":{"position":[[70,10]]},"80":{"position":[[72,10]]},"83":{"position":[[73,10]]},"89":{"position":[[170,9],[641,8]]},"103":{"position":[[726,8],[1600,8]]},"104":{"position":[[2407,8]]},"117":{"position":[[990,10]]},"130":{"position":[[1261,10],[5851,8],[5906,9],[6097,9],[6182,7],[6315,7]]},"135":{"position":[[540,9]]},"137":{"position":[[55,9]]},"226":{"position":[[130,7],[199,9]]},"229":{"position":[[45,8]]},"269":{"position":[[289,9]]},"287":{"position":[[2246,7]]},"320":{"position":[[3425,7]]},"354":{"position":[[130,7],[199,9]]},"402":{"position":[[130,7],[199,9]]},"439":{"position":[[157,10]]},"442":{"position":[[156,7]]},"443":{"position":[[48,7]]},"445":{"position":[[41,7]]},"450":{"position":[[64,7]]},"451":{"position":[[396,8]]},"458":{"position":[[127,7]]},"473":{"position":[[5638,11]]},"507":{"position":[[192,9]]}},"keywords":{}}],["support@withleaf.io",{"_index":2734,"title":{},"content":{"320":{"position":[[3438,19]]}},"keywords":{}}],["sure",{"_index":965,"title":{},"content":{"86":{"position":[[111,4]]},"248":{"position":[[160,4]]},"313":{"position":[[589,4]]},"314":{"position":[[565,4]]},"332":{"position":[[216,4]]},"334":{"position":[[588,4]]},"335":{"position":[[562,4]]},"350":{"position":[[684,5]]},"378":{"position":[[2103,4]]},"379":{"position":[[2200,4]]},"382":{"position":[[58,4]]},"383":{"position":[[64,4]]},"387":{"position":[[656,4]]},"398":{"position":[[695,5]]},"423":{"position":[[205,4]]}},"keywords":{}}],["surfac",{"_index":1648,"title":{},"content":{"212":{"position":[[60,7]]},"511":{"position":[[407,7],[520,7],[633,7],[1725,8]]},"515":{"position":[[390,7],[503,7],[616,7],[1708,8]]}},"keywords":{}}],["svg",{"_index":2628,"title":{},"content":{"316":{"position":[[637,4]]},"337":{"position":[[596,4]]}},"keywords":{}}],["sweet",{"_index":1910,"title":{},"content":{"229":{"position":[[1600,6],[2395,6]]},"320":{"position":[[2604,5],[2618,5],[2636,5]]}},"keywords":{}}],["symbol",{"_index":3201,"title":{},"content":{"396":{"position":[[1069,10]]}},"keywords":{}}],["sync",{"_index":284,"title":{"268":{"position":[[0,4]]}},"content":{"8":{"position":[[1424,9]]},"18":{"position":[[170,7]]},"41":{"position":[[102,5]]},"42":{"position":[[98,5]]},"44":{"position":[[70,5]]},"45":{"position":[[66,5]]},"258":{"position":[[853,4]]},"268":{"position":[[403,4]]},"287":{"position":[[1883,4],[2208,4],[2673,4]]},"341":{"position":[[513,5]]}},"keywords":{}}],["synchron",{"_index":1142,"title":{},"content":{"103":{"position":[[994,11],[1042,16]]},"105":{"position":[[916,11]]},"268":{"position":[[174,15],[340,13]]},"269":{"position":[[882,17]]},"287":{"position":[[1716,15],[1976,15]]},"450":{"position":[[257,11]]}},"keywords":{}}],["syncreferencetim",{"_index":2176,"title":{},"content":{"255":{"position":[[729,20],[867,20]]}},"keywords":{}}],["system",{"_index":420,"title":{},"content":{"47":{"position":[[812,6]]},"89":{"position":[[387,6]]},"130":{"position":[[2369,7]]},"283":{"position":[[610,7]]},"365":{"position":[[1412,6],[1508,6]]},"519":{"position":[[482,6]]},"520":{"position":[[484,6]]},"521":{"position":[[471,6]]},"522":{"position":[[473,6]]},"523":{"position":[[668,6]]},"524":{"position":[[467,6]]},"525":{"position":[[657,6]]},"526":{"position":[[456,6]]}},"keywords":{}}],["t/ha",{"_index":1108,"title":{},"content":{"101":{"position":[[621,4]]}},"keywords":{}}],["ta35",{"_index":872,"title":{},"content":{"75":{"position":[[530,7]]}},"keywords":{}}],["tab",{"_index":2924,"title":{},"content":{"361":{"position":[[30,4]]},"362":{"position":[[11,3]]},"414":{"position":[[219,4]]}},"keywords":{}}],["tabl",{"_index":1102,"title":{"235":{"position":[[6,5]]},"318":{"position":[[6,5]]}},"content":{"101":{"position":[[569,5]]},"220":{"position":[[2825,5]]},"255":{"position":[[1043,5],[1071,6],[1083,5]]},"319":{"position":[[15,5]]},"320":{"position":[[120,6],[3399,6]]},"346":{"position":[[1134,6]]}},"keywords":{}}],["tag",{"_index":1037,"title":{},"content":{"89":{"position":[[466,4]]}},"keywords":{}}],["take",{"_index":375,"title":{},"content":{"25":{"position":[[309,4]]},"70":{"position":[[610,4]]},"71":{"position":[[374,4]]},"78":{"position":[[402,4]]},"79":{"position":[[400,4]]},"82":{"position":[[403,4]]},"220":{"position":[[1366,4]]},"222":{"position":[[207,5]]},"247":{"position":[[253,5]]},"248":{"position":[[852,4]]},"343":{"position":[[428,4]]},"346":{"position":[[1456,4]]},"350":{"position":[[638,4]]},"398":{"position":[[649,4]]},"424":{"position":[[87,4]]},"429":{"position":[[316,4]]},"430":{"position":[[15,4]]}},"keywords":{}}],["taken",{"_index":1700,"title":{},"content":{"220":{"position":[[479,5],[551,5]]}},"keywords":{}}],["talisman",{"_index":877,"title":{},"content":{"75":{"position":[[661,11]]},"76":{"position":[[381,11]]}},"keywords":{}}],["talk",{"_index":3397,"title":{},"content":{"423":{"position":[[185,4]]},"428":{"position":[[273,4]]}},"keywords":{}}],["tall",{"_index":1995,"title":{},"content":{"229":{"position":[[2808,5]]},"320":{"position":[[2654,4]]}},"keywords":{}}],["tank",{"_index":920,"title":{"81":{"position":[[0,4]]},"82":{"position":[[8,4]]},"83":{"position":[[11,4]]}},"content":{"81":{"position":[[29,4],[66,4]]},"82":{"position":[[24,4]]},"83":{"position":[[34,4],[84,4],[212,4]]}},"keywords":{}}],["tankard",{"_index":1934,"title":{},"content":{"229":{"position":[[1980,8]]}},"keywords":{}}],["tankmix",{"_index":922,"title":{},"content":{"81":{"position":[[44,10]]},"82":{"position":[[5,10]]}},"keywords":{}}],["tankmixes/search",{"_index":923,"title":{},"content":{"81":{"position":[[81,17]]},"83":{"position":[[5,17]]}},"keywords":{}}],["tanktest1",{"_index":927,"title":{},"content":{"82":{"position":[[756,12]]},"83":{"position":[[578,12]]}},"keywords":{}}],["target",{"_index":3053,"title":{},"content":{"365":{"position":[[996,6]]}},"keywords":{}}],["targetcrop",{"_index":936,"title":{},"content":{"82":{"position":[[965,14]]},"83":{"position":[[787,14]]}},"keywords":{}}],["task",{"_index":1413,"title":{},"content":{"130":{"position":[[2996,5],[3124,6]]},"233":{"position":[[506,5]]},"252":{"position":[[1410,4]]},"253":{"position":[[807,5],[890,4],[928,4],[978,4],[1066,4]]},"342":{"position":[[135,4]]},"387":{"position":[[84,5]]}},"keywords":{}}],["taskdata",{"_index":1421,"title":{},"content":{"130":{"position":[[3551,8],[3617,8],[3682,8],[3759,8],[3837,8],[3907,8],[3996,8]]}},"keywords":{}}],["tassel",{"_index":495,"title":{},"content":{"52":{"position":[[29,6]]},"86":{"position":[[23,7]]},"253":{"position":[[1303,7]]}},"keywords":{}}],["tassel_count",{"_index":973,"title":{},"content":{"88":{"position":[[125,13]]}},"keywords":{}}],["team",{"_index":2733,"title":{},"content":{"320":{"position":[[3433,4]]},"357":{"position":[[192,4]]}},"keywords":{}}],["teknomika",{"_index":1429,"title":{},"content":{"130":{"position":[[3866,10]]}},"keywords":{}}],["tell",{"_index":16,"title":{},"content":{"0":{"position":[[153,4],[352,4],[587,4],[767,4],[939,4],[1295,4],[1494,4],[1666,4],[1838,4]]},"47":{"position":[[399,4]]},"357":{"position":[[800,4]]}},"keywords":{}}],["temperatur",{"_index":3999,"title":{},"content":{"509":{"position":[[166,11]]},"511":{"position":[[127,11],[223,11],[319,11],[415,11],[528,11],[641,11],[1444,11]]},"513":{"position":[[166,11]]},"515":{"position":[[110,11],[206,11],[302,11],[398,11],[511,11],[624,11],[1427,11]]},"520":{"position":[[3318,14]]},"522":{"position":[[3284,14]]},"524":{"position":[[3149,14]]},"526":{"position":[[3115,14]]}},"keywords":{}}],["templateurl",{"_index":2644,"title":{},"content":{"317":{"position":[[850,12]]},"338":{"position":[[1202,12]]}},"keywords":{}}],["tempor",{"_index":1642,"title":{},"content":{"210":{"position":[[193,8]]},"222":{"position":[[178,8]]},"514":{"position":[[43,8]]}},"keywords":{}}],["temporari",{"_index":2061,"title":{},"content":{"244":{"position":[[384,9]]}},"keywords":{}}],["term",{"_index":2116,"title":{"251":{"position":[[13,5]]},"252":{"position":[[10,5]]},"253":{"position":[[18,5]]}},"content":{"251":{"position":[[0,4]]},"252":{"position":[[0,4]]},"253":{"position":[[0,4]]}},"keywords":{}}],["test",{"_index":244,"title":{},"content":{"5":{"position":[[2094,4]]},"129":{"position":[[318,4]]},"222":{"position":[[2014,7]]},"238":{"position":[[69,4]]},"297":{"position":[[370,7],[513,7]]},"345":{"position":[[498,7]]},"361":{"position":[[647,7]]},"362":{"position":[[553,5]]},"365":{"position":[[1588,5]]},"389":{"position":[[877,7]]},"390":{"position":[[1542,7]]},"391":{"position":[[304,7]]}},"keywords":{}}],["testfile.zip",{"_index":2937,"title":{},"content":{"361":{"position":[[369,15]]}},"keywords":{}}],["testid",{"_index":2797,"title":{},"content":{"338":{"position":[[2515,9]]}},"keywords":{}}],["testid='hook",{"_index":2779,"title":{},"content":{"338":{"position":[[2021,12]]}},"keywords":{}}],["testid='statu",{"_index":2782,"title":{},"content":{"338":{"position":[[2108,16]]}},"keywords":{}}],["testid={`${provider.provid",{"_index":2796,"title":{},"content":{"338":{"position":[[2485,29]]}},"keywords":{}}],["testnam",{"_index":587,"title":{},"content":{"57":{"position":[[1814,11]]}},"keywords":{}}],["text",{"_index":2629,"title":{},"content":{"316":{"position":[[1108,4]]},"337":{"position":[[1102,5]]}},"keywords":{}}],["that'",{"_index":2913,"title":{},"content":{"357":{"position":[[1823,6]]}},"keywords":{}}],["the_field_field",{"_index":2237,"title":{},"content":{"260":{"position":[[1041,18]]}},"keywords":{}}],["theleaf_user_id",{"_index":2104,"title":{},"content":{"246":{"position":[[602,15]]}},"keywords":{}}],["then((respons",{"_index":3745,"title":{},"content":{"480":{"position":[[3151,16],[4788,16]]}},"keywords":{}}],["then(async",{"_index":3530,"title":{},"content":{"467":{"position":[[3988,11]]}},"keywords":{}}],["then(funct",{"_index":3498,"title":{},"content":{"467":{"position":[[868,14],[2160,14],[3515,14],[7212,14]]},"480":{"position":[[1973,14],[3971,14],[6135,14],[6788,14],[8793,14],[9553,14]]}},"keywords":{}}],["theprovid",{"_index":3985,"title":{},"content":{"502":{"position":[[553,12]]}},"keywords":{}}],["thequickstart",{"_index":2182,"title":{},"content":{"256":{"position":[[164,13]]}},"keywords":{}}],["there'",{"_index":414,"title":{},"content":{"47":{"position":[[496,8]]}},"keywords":{}}],["there.inact",{"_index":2477,"title":{},"content":{"288":{"position":[[602,14]]}},"keywords":{}}],["there.outdated_on_provid",{"_index":2478,"title":{},"content":{"288":{"position":[[763,26]]}},"keywords":{}}],["therefor",{"_index":3286,"title":{},"content":{"415":{"position":[[398,9]]},"460":{"position":[[260,10]]}},"keywords":{}}],["thermal",{"_index":4070,"title":{},"content":{"511":{"position":[[1534,7]]},"515":{"position":[[1517,7]]}},"keywords":{}}],["they’r",{"_index":2820,"title":{},"content":{"340":{"position":[[156,7]]}},"keywords":{}}],["thing",{"_index":411,"title":{},"content":{"47":{"position":[[342,6],[455,6]]}},"keywords":{}}],["think",{"_index":12,"title":{},"content":{"0":{"position":[[87,8]]}},"keywords":{}}],["third",{"_index":2050,"title":{},"content":{"243":{"position":[[117,5]]},"252":{"position":[[216,5]]}},"keywords":{}}],["this.apiurl",{"_index":3671,"title":{},"content":{"473":{"position":[[5944,11]]}},"keywords":{}}],["this.appservic",{"_index":3622,"title":{},"content":{"473":{"position":[[2487,15],[3766,15]]}},"keywords":{}}],["this.appservice.login(email",{"_index":3611,"title":{},"content":{"473":{"position":[[1568,28]]}},"keywords":{}}],["this.bound",{"_index":3703,"title":{},"content":{"474":{"position":[[1295,11]]}},"keywords":{}}],["this.bounds.clearlay",{"_index":3646,"title":{},"content":{"473":{"position":[[4709,26]]}},"keywords":{}}],["this.createfieldform",{"_index":3602,"title":{},"content":{"473":{"position":[[678,20]]}},"keywords":{}}],["this.field",{"_index":3625,"title":{},"content":{"473":{"position":[[2594,11]]}},"keywords":{}}],["this.getemail().valu",{"_index":3607,"title":{},"content":{"473":{"position":[[1209,22]]}},"keywords":{}}],["this.getenddate()!.valu",{"_index":3635,"title":{},"content":{"473":{"position":[[3586,25]]}},"keywords":{}}],["this.getfieldid()!.valu",{"_index":3633,"title":{},"content":{"473":{"position":[[3502,25]]}},"keywords":{}}],["this.getpassword().valu",{"_index":3608,"title":{},"content":{"473":{"position":[[1247,25]]}},"keywords":{}}],["this.getstartdate()!.valu",{"_index":3634,"title":{},"content":{"473":{"position":[[3544,27]]}},"keywords":{}}],["this.http.get<any>(this.apiurl",{"_index":3629,"title":{},"content":{"473":{"position":[[2881,30]]}},"keywords":{}}],["this.http.post<ani",{"_index":3670,"title":{},"content":{"473":{"position":[[5923,20]]}},"keywords":{}}],["this.http.post<any>(this.apiurl",{"_index":3620,"title":{},"content":{"473":{"position":[[2040,31]]}},"keywords":{}}],["this.imag",{"_index":3632,"title":{},"content":{"473":{"position":[[3470,11],[4121,11],[4179,11],[4197,11]]}},"keywords":{}}],["this.imagen",{"_index":3701,"title":{},"content":{"474":{"position":[[1248,12]]}},"keywords":{}}],["this.imagens.clearlay",{"_index":3648,"title":{},"content":{"473":{"position":[[4795,27]]}},"keywords":{}}],["this.images.foreach((",{"_index":3658,"title":{},"content":{"473":{"position":[[5285,23],[6659,23]]}},"keywords":{}}],["this.initmap",{"_index":3596,"title":{},"content":{"473":{"position":[[396,15]]}},"keywords":{}}],["this.isload",{"_index":3606,"title":{},"content":{"473":{"position":[[1133,14],[1381,14],[1629,14],[2406,14],[2570,14],[3447,14],[3733,14],[3878,14]]}},"keywords":{}}],["this.islog",{"_index":3615,"title":{},"content":{"473":{"position":[[1811,13],[1885,13]]}},"keywords":{}}],["this.loadimagesmessag",{"_index":3636,"title":{},"content":{"473":{"position":[[3672,22],[3902,22],[4139,22]]}},"keywords":{}}],["this.loginform",{"_index":3598,"title":{},"content":{"473":{"position":[[446,14]]}},"keywords":{}}],["this.loginform.get('email')!.valu",{"_index":3609,"title":{},"content":{"473":{"position":[[1307,34]]}},"keywords":{}}],["this.loginmessag",{"_index":3613,"title":{},"content":{"473":{"position":[[1653,17]]}},"keywords":{}}],["this.map",{"_index":3681,"title":{},"content":{"474":{"position":[[420,8]]}},"keywords":{}}],["this.map.addcontrol(sidebar",{"_index":3710,"title":{},"content":{"474":{"position":[[1648,29]]}},"keywords":{}}],["this.map.flyto(geojsonlayer.getbounds().getcent",{"_index":3656,"title":{},"content":{"473":{"position":[[5090,52]]}},"keywords":{}}],["this.searchimagesform",{"_index":3601,"title":{},"content":{"473":{"position":[[542,21]]}},"keywords":{}}],["those",{"_index":413,"title":{},"content":{"47":{"position":[[449,5]]},"103":{"position":[[471,5]]},"287":{"position":[[1638,5]]},"326":{"position":[[246,5]]},"353":{"position":[[551,5]]},"424":{"position":[[435,5]]}},"keywords":{}}],["three",{"_index":488,"title":{},"content":{"51":{"position":[[611,5]]},"471":{"position":[[322,5]]}},"keywords":{}}],["threshold",{"_index":1233,"title":{},"content":{"105":{"position":[[1801,9]]}},"keywords":{}}],["through",{"_index":431,"title":{},"content":{"48":{"position":[[134,7]]},"57":{"position":[[844,7]]},"59":{"position":[[1674,7]]},"63":{"position":[[586,7]]},"65":{"position":[[205,7]]},"86":{"position":[[66,7]]},"88":{"position":[[228,7]]},"103":{"position":[[1192,7]]},"210":{"position":[[66,7]]},"232":{"position":[[133,7]]},"239":{"position":[[685,7]]},"242":{"position":[[163,7]]},"244":{"position":[[574,7]]},"255":{"position":[[406,7]]},"260":{"position":[[508,7]]},"264":{"position":[[942,7]]},"277":{"position":[[423,7]]},"282":{"position":[[88,7]]},"340":{"position":[[201,7],[297,7]]},"341":{"position":[[15,7]]},"346":{"position":[[1203,7]]},"361":{"position":[[13,7]]},"365":{"position":[[1687,7]]},"387":{"position":[[234,7],[518,7]]},"390":{"position":[[697,7]]},"413":{"position":[[295,7]]},"414":{"position":[[202,7]]},"438":{"position":[[50,7]]},"441":{"position":[[113,7]]},"507":{"position":[[202,7]]}},"keywords":{}}],["thumb",{"_index":2139,"title":{},"content":{"252":{"position":[[1039,5]]},"496":{"position":[[68,5]]}},"keywords":{}}],["ti",{"_index":2011,"title":{},"content":{"233":{"position":[[253,4],[298,4]]}},"keywords":{}}],["tick",{"_index":1936,"title":{},"content":{"229":{"position":[[1997,5]]}},"keywords":{}}],["tide",{"_index":761,"title":{},"content":{"70":{"position":[[993,5]]}},"keywords":{}}],["tif",{"_index":1693,"title":{},"content":{"220":{"position":[[96,5],[1939,6],[2741,4]]},"221":{"position":[[554,6]]},"434":{"position":[[233,3]]}},"keywords":{}}],["tiff",{"_index":1695,"title":{},"content":{"220":{"position":[[145,4],[178,4],[222,5]]},"397":{"position":[[51,4]]}},"keywords":{}}],["tiffal",{"_index":1698,"title":{},"content":{"220":{"position":[[205,7]]}},"keywords":{}}],["tile",{"_index":1632,"title":{},"content":{"209":{"position":[[625,4]]},"220":{"position":[[2286,4]]}},"keywords":{}}],["tiles",{"_index":3695,"title":{},"content":{"474":{"position":[[902,9]]}},"keywords":{}}],["tiles/10/s/fh/2020/6/3/0",{"_index":1721,"title":{},"content":{"220":{"position":[[1783,27]]},"221":{"position":[[398,27]]}},"keywords":{}}],["tillag",{"_index":2121,"title":{},"content":{"251":{"position":[[340,9]]},"252":{"position":[[1234,8],[1445,9]]},"253":{"position":[[836,9],[878,7]]},"342":{"position":[[170,9]]},"346":{"position":[[2165,9]]},"347":{"position":[[294,9]]},"348":{"position":[[329,9]]},"350":{"position":[[320,9]]},"357":{"position":[[97,9],[880,10]]},"362":{"position":[[70,10]]},"387":{"position":[[101,8]]},"390":{"position":[[580,7]]},"392":{"position":[[344,9]]},"398":{"position":[[336,9]]}},"keywords":{}}],["tillagedepthactu",{"_index":3073,"title":{},"content":{"366":{"position":[[245,18]]}},"keywords":{}}],["time",{"_index":345,"title":{},"content":{"13":{"position":[[56,4]]},"25":{"position":[[319,5]]},"47":{"position":[[788,5]]},"50":{"position":[[100,4]]},"57":{"position":[[489,4]]},"59":{"position":[[435,4],[657,4],[750,4],[913,4],[1019,4],[1123,4],[1225,4]]},"89":{"position":[[677,5]]},"105":{"position":[[2460,4]]},"117":{"position":[[1058,4]]},"126":{"position":[[173,5]]},"209":{"position":[[150,5],[325,4],[480,4]]},"220":{"position":[[1380,4]]},"222":{"position":[[198,5]]},"287":{"position":[[979,6],[1011,6],[1577,6],[1609,6]]},"289":{"position":[[90,6],[118,6]]},"291":{"position":[[181,6],[213,5]]},"298":{"position":[[200,4]]},"316":{"position":[[202,4]]},"338":{"position":[[2597,5],[3147,4]]},"341":{"position":[[429,4]]},"343":{"position":[[438,4]]},"372":{"position":[[87,5]]},"378":{"position":[[2453,5]]},"379":{"position":[[2502,5]]},"380":{"position":[[2053,5]]},"382":{"position":[[438,5]]},"383":{"position":[[441,5]]},"384":{"position":[[180,5]]},"444":{"position":[[107,4]]},"467":{"position":[[3608,4],[5308,4],[5387,4]]},"473":{"position":[[3975,4]]},"502":{"position":[[108,5]]},"511":{"position":[[835,5],[863,5]]},"515":{"position":[[818,5],[846,5]]},"519":{"position":[[830,7],[880,7],[991,7],[1041,7],[1151,7],[1201,7],[1311,7],[1361,7],[1460,7],[1524,7],[1646,7],[1695,7],[1802,7],[1851,7],[1954,7],[2004,7],[2116,7],[2166,7],[2312,7],[2361,7],[2464,7],[2514,7],[2623,7],[2673,7],[2779,7],[2829,7],[2927,7],[2991,7],[3115,7],[3166,7]]},"520":{"position":[[823,7],[872,7],[978,7],[1028,7],[1136,7],[1185,7],[1295,7],[1344,7],[1454,7],[1503,7],[1614,7],[1663,7],[1775,7],[1824,7],[1935,7],[1986,7],[2089,7],[2139,7],[2240,7],[2289,7],[2390,7],[2439,7],[2548,7],[2598,7],[2708,7],[2759,7],[2886,7],[2936,7],[3041,7],[3090,7],[3197,7],[3247,7],[3349,7],[3399,7],[3500,7],[3549,7],[3655,7],[3706,7]]},"521":{"position":[[796,7],[846,7],[957,7],[1007,7],[1117,7],[1167,7],[1277,7],[1327,7],[1426,7],[1490,7],[1612,7],[1661,7],[1768,7],[1817,7],[1920,7],[1970,7],[2082,7],[2132,7],[2278,7],[2327,7],[2430,7],[2480,7],[2589,7],[2639,7],[2745,7],[2795,7],[2893,7],[2957,7],[3081,7],[3132,7]]},"522":{"position":[[789,7],[838,7],[944,7],[994,7],[1102,7],[1151,7],[1261,7],[1310,7],[1420,7],[1469,7],[1580,7],[1629,7],[1741,7],[1790,7],[1901,7],[1952,7],[2055,7],[2105,7],[2206,7],[2255,7],[2356,7],[2405,7],[2514,7],[2564,7],[2674,7],[2725,7],[2852,7],[2902,7],[3007,7],[3056,7],[3163,7],[3213,7],[3315,7],[3365,7],[3466,7],[3515,7],[3621,7],[3672,7]]},"523":{"position":[[1018,7],[1068,7],[1179,7],[1229,7],[1339,7],[1389,7],[1499,7],[1549,7],[1648,7],[1712,7],[1834,7],[1883,7],[1990,7],[2039,7],[2142,7],[2192,7],[2304,7],[2354,7],[2500,7],[2549,7],[2652,7],[2702,7],[2811,7],[2861,7],[2967,7],[3017,7],[3115,7],[3179,7],[3303,7],[3354,7]]},"524":{"position":[[808,7],[857,7],[964,7],[1013,7],[1124,7],[1173,7],[1286,7],[1335,7],[1449,7],[1498,7],[1609,7],[1660,7],[1763,7],[1813,7],[1914,7],[1964,7],[2066,7],[2115,7],[2224,7],[2274,7],[2384,7],[2435,7],[2563,7],[2612,7],[2715,7],[2764,7],[2870,7],[2920,7],[3028,7],[3078,7],[3180,7],[3230,7],[3331,7],[3380,7],[3486,7],[3537,7]]},"525":{"position":[[984,7],[1034,7],[1145,7],[1195,7],[1305,7],[1355,7],[1465,7],[1515,7],[1614,7],[1678,7],[1800,7],[1849,7],[1956,7],[2005,7],[2108,7],[2158,7],[2270,7],[2320,7],[2466,7],[2515,7],[2618,7],[2668,7],[2777,7],[2827,7],[2933,7],[2983,7],[3081,7],[3145,7],[3269,7],[3320,7]]},"526":{"position":[[774,7],[823,7],[930,7],[979,7],[1090,7],[1139,7],[1252,7],[1301,7],[1415,7],[1464,7],[1575,7],[1626,7],[1729,7],[1779,7],[1880,7],[1930,7],[2032,7],[2081,7],[2190,7],[2240,7],[2350,7],[2401,7],[2529,7],[2578,7],[2681,7],[2730,7],[2836,7],[2886,7],[2994,7],[3044,7],[3146,7],[3196,7],[3297,7],[3346,7],[3452,7],[3503,7]]}},"keywords":{}}],["time/day",{"_index":4218,"title":{},"content":{"526":{"position":[[3719,9]]}},"keywords":{}}],["timefram",{"_index":3409,"title":{},"content":{"429":{"position":[[251,10]]}},"keywords":{}}],["timestamp",{"_index":277,"title":{},"content":{"8":{"position":[[736,14],[1221,14],[1575,14]]},"15":{"position":[[416,12]]},"16":{"position":[[359,12]]},"18":{"position":[[262,12]]},"19":{"position":[[311,12]]},"20":{"position":[[282,12]]},"22":{"position":[[291,12]]},"23":{"position":[[291,12]]},"25":{"position":[[466,12]]},"26":{"position":[[434,12]]},"28":{"position":[[392,12]]},"29":{"position":[[504,12]]},"31":{"position":[[319,12]]},"32":{"position":[[431,12]]},"33":{"position":[[328,12]]},"34":{"position":[[440,12]]},"35":{"position":[[394,12]]},"36":{"position":[[256,12]]},"37":{"position":[[351,12]]},"39":{"position":[[348,12]]},"41":{"position":[[216,12]]},"42":{"position":[[204,12]]},"43":{"position":[[142,12]]},"44":{"position":[[162,12]]},"45":{"position":[[158,12]]},"220":{"position":[[2861,9]]},"364":{"position":[[569,12]]},"365":{"position":[[109,9]]},"428":{"position":[[100,10]]}},"keywords":{}}],["timezon",{"_index":549,"title":{},"content":{"57":{"position":[[535,8],[628,8],[719,8]]},"59":{"position":[[387,8],[524,8],[615,8],[710,8],[801,8],[846,9],[953,9],[1058,9],[1161,9]]}},"keywords":{}}],["timothi",{"_index":1996,"title":{},"content":{"229":{"position":[[2822,8]]},"320":{"position":[[2668,7]]}},"keywords":{}}],["tip",{"_index":1232,"title":{},"content":{"105":{"position":[[1700,3]]},"256":{"position":[[322,3]]},"263":{"position":[[39,3]]},"268":{"position":[[38,3]]},"270":{"position":[[69,3]]},"313":{"position":[[0,3]]},"314":{"position":[[0,3]]},"334":{"position":[[0,3]]},"335":{"position":[[0,3]]},"338":{"position":[[3215,5]]},"394":{"position":[[98,3]]},"413":{"position":[[0,3]]},"415":{"position":[[1392,3]]},"418":{"position":[[473,4]]},"460":{"position":[[145,3]]},"474":{"position":[[1765,3]]},"490":{"position":[[377,3]]},"505":{"position":[[213,3]]},"511":{"position":[[1849,3]]},"515":{"position":[[1832,3]]}},"keywords":{}}],["titl",{"_index":2625,"title":{},"content":{"316":{"position":[[330,5],[1097,6]]},"337":{"position":[[307,5],[324,5],[1007,6],[1018,5]]},"338":{"position":[[2034,6]]}},"keywords":{}}],["title=\"your_titl",{"_index":2591,"title":{},"content":{"313":{"position":[[933,18]]},"334":{"position":[[930,18]]}},"keywords":{}}],["title]=\"your_titl",{"_index":2637,"title":{},"content":{"317":{"position":[[512,20]]}},"keywords":{}}],["tli",{"_index":3838,"title":{},"content":{"480":{"position":[[11339,3],[11806,3]]}},"keywords":{}}],["tlx",{"_index":3836,"title":{},"content":{"480":{"position":[[11296,3],[11716,4]]}},"keywords":{}}],["tmx",{"_index":1406,"title":{},"content":{"130":{"position":[[2834,3],[2897,3]]}},"keywords":{}}],["tobacco",{"_index":1937,"title":{},"content":{"229":{"position":[[2010,9]]}},"keywords":{}}],["tocfv_access_token",{"_index":2100,"title":{},"content":{"245":{"position":[[843,18]]}},"keywords":{}}],["today",{"_index":2047,"title":{},"content":{"243":{"position":[[0,6]]}},"keywords":{}}],["toget",{"_index":2040,"title":{},"content":{"242":{"position":[[781,5]]}},"keywords":{}}],["togeth",{"_index":2007,"title":{},"content":{"233":{"position":[[175,8]]}},"keywords":{}}],["toggl",{"_index":2765,"title":{},"content":{"337":{"position":[[729,7]]}},"keywords":{}}],["tojd_token_id",{"_index":2085,"title":{},"content":{"244":{"position":[[1850,13]]}},"keywords":{}}],["token",{"_index":429,"title":{"126":{"position":[[22,6]]},"311":{"position":[[17,5]]},"326":{"position":[[31,6]]}},"content":{"48":{"position":[[122,5],[465,5],[548,5],[628,5],[853,6]]},"109":{"position":[[138,9]]},"110":{"position":[[198,9]]},"111":{"position":[[484,9]]},"112":{"position":[[294,5],[357,9]]},"113":{"position":[[427,9]]},"114":{"position":[[327,9]]},"118":{"position":[[985,6],[1088,6]]},"126":{"position":[[97,6],[130,6],[416,7]]},"131":{"position":[[343,5],[479,9]]},"132":{"position":[[332,5],[457,9]]},"242":{"position":[[531,6]]},"244":{"position":[[244,6],[344,5],[394,6],[1269,6],[1666,7],[1769,7]]},"245":{"position":[[691,7]]},"252":{"position":[[134,5],[142,5]]},"311":{"position":[[39,6]]},"326":{"position":[[264,6]]},"418":{"position":[[431,5]]},"419":{"position":[[664,6]]},"423":{"position":[[126,6],[138,5],[233,5],[479,5],[713,6]]},"460":{"position":[[138,6]]},"467":{"position":[[62,5],[335,6],[406,5],[908,5],[921,5],[936,5],[992,5],[1067,6],[1074,5],[1245,6],[1405,6],[1640,5],[1922,6],[1965,5],[2117,5],[3138,6],[3438,5],[3922,5],[6691,5]]},"473":{"position":[[1070,5],[1749,5],[2444,5],[2742,5],[2866,7],[5821,6],[5908,7]]},"474":{"position":[[290,5],[354,6],[717,5],[738,7],[880,6]]},"480":{"position":[[1242,5],[1515,6],[1586,5],[2001,5],[3023,5],[3451,5],[3629,5],[3702,5],[3784,6],[3850,5],[4093,5],[4423,5],[4633,5],[5092,5],[5211,6],[5284,6],[5330,6],[6092,5],[6313,6],[7267,6],[7464,5],[7755,6],[7797,5],[8750,5],[9510,5]]},"487":{"position":[[614,5],[721,5]]},"490":{"position":[[72,6],[154,7]]},"501":{"position":[[224,7]]}},"keywords":{}}],["token=your_token",{"_index":1262,"title":{},"content":{"109":{"position":[[81,16]]},"110":{"position":[[91,16]]},"111":{"position":[[376,16]]},"113":{"position":[[318,16]]},"114":{"position":[[217,16]]}},"keywords":{}}],["token_id",{"_index":2059,"title":{},"content":{"244":{"position":[[317,8],[1786,8]]}},"keywords":{}}],["token_secret",{"_index":2060,"title":{},"content":{"244":{"position":[[330,13]]}},"keywords":{}}],["token_secret_key",{"_index":2084,"title":{},"content":{"244":{"position":[[1799,16]]}},"keywords":{}}],["tokenmetadata",{"_index":1593,"title":{},"content":{"154":{"position":[[593,16]]},"155":{"position":[[651,16]]},"168":{"position":[[570,16]]},"169":{"position":[[677,16]]},"182":{"position":[[555,16]]},"183":{"position":[[606,16]]},"203":{"position":[[561,16]]},"204":{"position":[[574,16]]}},"keywords":{}}],["tokensadd",{"_index":2042,"title":{},"content":{"242":{"position":[[809,9]]}},"keywords":{}}],["tokenvari",{"_index":3737,"title":{},"content":{"480":{"position":[[1613,14]]}},"keywords":{}}],["tomato",{"_index":1938,"title":{},"content":{"229":{"position":[[2020,10]]}},"keywords":{}}],["ton/ac",{"_index":1106,"title":{},"content":{"101":{"position":[[608,6]]}},"keywords":{}}],["too_few_point",{"_index":2508,"title":{},"content":{"292":{"position":[[363,14]]}},"keywords":{}}],["tool",{"_index":3221,"title":{},"content":{"406":{"position":[[33,5]]}},"keywords":{}}],["top",{"_index":2146,"title":{},"content":{"253":{"position":[[52,3]]},"316":{"position":[[1131,3]]},"338":{"position":[[3019,3]]},"480":{"position":[[11263,3]]}},"keywords":{}}],["topcon",{"_index":1430,"title":{},"content":{"130":{"position":[[3936,6]]}},"keywords":{}}],["total",{"_index":2912,"title":{},"content":{"357":{"position":[[1750,5]]},"456":{"position":[[357,5],[405,5]]},"511":{"position":[[1747,5]]},"515":{"position":[[1730,5]]}},"keywords":{}}],["totalappli",{"_index":1215,"title":{},"content":{"105":{"position":[[402,12]]}},"keywords":{}}],["totalarea",{"_index":2911,"title":{},"content":{"357":{"position":[[1737,9]]},"361":{"position":[[3033,12]]},"362":{"position":[[224,9]]},"414":{"position":[[631,12]]}},"keywords":{}}],["totaldist",{"_index":2907,"title":{},"content":{"357":{"position":[[1478,13]]},"361":{"position":[[1310,16]]},"414":{"position":[[368,16]]}},"keywords":{}}],["totaldrymass",{"_index":2947,"title":{},"content":{"361":{"position":[[703,15]]},"414":{"position":[[1055,15]]}},"keywords":{}}],["totaldryvolum",{"_index":2957,"title":{},"content":{"361":{"position":[[879,17]]},"414":{"position":[[1654,17]]}},"keywords":{}}],["totalpl",{"_index":3034,"title":{},"content":{"362":{"position":[[373,12]]}},"keywords":{}}],["totalwetmass",{"_index":3001,"title":{},"content":{"361":{"position":[[2145,15]]},"414":{"position":[[910,15]]}},"keywords":{}}],["totalwetvolum",{"_index":2968,"title":{},"content":{"361":{"position":[[1170,17]]},"414":{"position":[[1471,17]]}},"keywords":{}}],["tractor",{"_index":2137,"title":{},"content":{"252":{"position":[[1016,7]]},"253":{"position":[[828,7]]},"357":{"position":[[1462,7],[1548,7]]}},"keywords":{}}],["tradit",{"_index":751,"title":{},"content":{"70":{"position":[[187,11]]}},"keywords":{}}],["transfer",{"_index":382,"title":{},"content":{"28":{"position":[[127,9]]},"29":{"position":[[127,9]]},"244":{"position":[[1838,11],[2308,11]]},"245":{"position":[[831,11],[1254,11]]}},"keywords":{}}],["translat",{"_index":1553,"title":{},"content":{"136":{"position":[[179,11]]},"251":{"position":[[80,11],[124,10]]},"337":{"position":[[1134,11]]}},"keywords":{}}],["transpar",{"_index":2855,"title":{},"content":{"349":{"position":[[941,11]]},"395":{"position":[[951,11]]}},"keywords":{}}],["trapper",{"_index":1979,"title":{},"content":{"229":{"position":[[2608,8]]},"320":{"position":[[1840,7]]}},"keywords":{}}],["travel",{"_index":2906,"title":{},"content":{"357":{"position":[[1470,7],[1556,7]]},"365":{"position":[[374,8]]}},"keywords":{}}],["tree",{"_index":1956,"title":{},"content":{"229":{"position":[[2272,5]]}},"keywords":{}}],["tri",{"_index":177,"title":{},"content":{"5":{"position":[[364,3]]},"15":{"position":[[96,6]]},"130":{"position":[[5833,6],[5888,6],[6297,6]]},"133":{"position":[[100,3]]},"293":{"position":[[124,3]]},"320":{"position":[[3358,6]]},"467":{"position":[[5720,6],[6289,3],[6366,3],[6536,3],[7159,3],[7373,3]]},"480":{"position":[[7176,3]]}},"keywords":{}}],["trigger",{"_index":371,"title":{},"content":{"25":{"position":[[140,7]]}},"keywords":{}}],["trimbl",{"_index":696,"title":{"101":{"position":[[23,7]]},"201":{"position":[[0,7]]},"202":{"position":[[0,7]]},"203":{"position":[[8,7]]},"204":{"position":[[9,7]]},"205":{"position":[[7,7]]},"305":{"position":[[0,7]]},"332":{"position":[[0,7]]}},"content":{"63":{"position":[[127,7],[248,7]]},"92":{"position":[[673,7]]},"101":{"position":[[66,7]]},"130":{"position":[[560,7],[2749,8]]},"203":{"position":[[54,7]]},"204":{"position":[[55,7],[454,7]]},"205":{"position":[[67,7]]},"207":{"position":[[292,8]]},"239":{"position":[[298,8]]},"255":{"position":[[1247,7]]},"264":{"position":[[421,9]]},"289":{"position":[[211,10]]},"305":{"position":[[10,7],[104,8],[324,7],[427,7],[479,7],[544,7],[610,7],[675,7],[742,7],[798,7],[1221,7],[1285,7],[1624,7],[1692,7],[2090,7],[2157,7],[2554,7],[2624,7]]},"332":{"position":[[10,7],[89,8],[328,7],[449,8],[575,8]]},"346":{"position":[[270,8]]},"390":{"position":[[280,8]]},"408":{"position":[[152,8],[169,7]]}},"keywords":{}}],["trimble.expiresin",{"_index":3103,"title":{},"content":{"378":{"position":[[2397,18]]},"379":{"position":[[2446,18]]},"382":{"position":[[382,18]]},"383":{"position":[[385,18]]}},"keywords":{}}],["trimblecredenti",{"_index":3975,"title":{},"content":{"498":{"position":[[677,21]]},"500":{"position":[[301,21]]},"501":{"position":[[504,21]]}},"keywords":{}}],["tritical",{"_index":1844,"title":{},"content":{"229":{"position":[[728,10]]},"320":{"position":[[948,9],[2687,9]]}},"keywords":{}}],["troubleshoot",{"_index":1571,"title":{"143":{"position":[[0,15]]},"150":{"position":[[0,15]]},"157":{"position":[[0,15]]},"164":{"position":[[0,15]]},"171":{"position":[[0,15]]},"178":{"position":[[0,15]]},"185":{"position":[[0,15]]},"192":{"position":[[0,15]]},"199":{"position":[[0,15]]},"206":{"position":[[0,15]]},"292":{"position":[[0,15]]}},"content":{"143":{"position":[[38,15]]},"150":{"position":[[38,15]]},"157":{"position":[[38,15]]},"164":{"position":[[38,15]]},"171":{"position":[[38,15]]},"178":{"position":[[38,15]]},"185":{"position":[[38,15]]},"192":{"position":[[38,15]]},"199":{"position":[[38,15]]},"206":{"position":[[38,15]]},"288":{"position":[[1646,16]]}},"keywords":{}}],["true",{"_index":445,"title":{},"content":{"48":{"position":[[671,6]]},"70":{"position":[[1290,4]]},"82":{"position":[[1304,5],[2258,5]]},"83":{"position":[[1126,5],[2080,5]]},"89":{"position":[[137,4]]},"103":{"position":[[32,5],[202,5],[964,5],[1121,5],[1245,5]]},"104":{"position":[[34,5],[138,5],[178,5],[1779,5]]},"105":{"position":[[285,5],[850,5],[886,5],[972,5],[1189,5],[1678,5],[2662,5],[2826,5],[3096,5]]},"109":{"position":[[353,5],[664,5]]},"110":{"position":[[465,5],[776,5],[868,4]]},"111":{"position":[[319,5],[343,4],[567,5],[591,4],[856,5],[1167,5],[1259,4]]},"112":{"position":[[237,5],[261,4],[440,5],[464,4],[677,5],[988,5],[1080,4]]},"113":{"position":[[261,5],[285,4],[510,5],[534,4],[799,5],[1110,5],[1202,4]]},"297":{"position":[[387,4]]},"298":{"position":[[681,4]]},"314":{"position":[[860,5]]},"316":{"position":[[974,5]]},"317":{"position":[[1653,5]]},"337":{"position":[[964,5]]},"366":{"position":[[86,5]]},"385":{"position":[[572,4],[822,4]]},"423":{"position":[[522,6]]},"448":{"position":[[90,5]]},"450":{"position":[[217,4]]},"451":{"position":[[90,4]]},"467":{"position":[[830,6],[6443,5]]},"473":{"position":[[1150,5],[1827,5],[2423,5],[3464,5]]},"480":{"position":[[1935,6]]}},"keywords":{}}],["ts",{"_index":3584,"title":{},"content":{"471":{"position":[[263,2]]}},"keywords":{}}],["tsx",{"_index":2598,"title":{},"content":{"314":{"position":[[451,5],[548,5],[735,3]]},"335":{"position":[[448,5],[545,5],[732,3]]}},"keywords":{}}],["tuber",{"_index":1930,"title":{},"content":{"229":{"position":[[1935,6],[2031,6]]}},"keywords":{}}],["tulip",{"_index":1945,"title":{},"content":{"229":{"position":[[2162,7]]}},"keywords":{}}],["turn",{"_index":1324,"title":{},"content":{"130":{"position":[[207,4]]}},"keywords":{}}],["turnip",{"_index":1935,"title":{},"content":{"229":{"position":[[1989,7],[2046,7],[2063,7]]},"320":{"position":[[2703,7]]}},"keywords":{}}],["tutori",{"_index":2031,"title":{"312":{"position":[[0,8]]},"333":{"position":[[0,8]]}},"content":{"242":{"position":[[144,8]]},"419":{"position":[[84,9]]},"422":{"position":[[16,8],[397,9]]}},"keywords":{}}],["two",{"_index":1146,"title":{},"content":{"103":{"position":[[1392,3]]},"130":{"position":[[410,3]]},"135":{"position":[[10,3]]},"222":{"position":[[550,3]]},"251":{"position":[[893,3]]},"252":{"position":[[910,3]]},"255":{"position":[[359,3]]},"260":{"position":[[461,3]]},"340":{"position":[[39,3]]}},"keywords":{}}],["type",{"_index":186,"title":{"212":{"position":[[16,5]]},"362":{"position":[[24,4]]}},"content":{"5":{"position":[[476,4],[522,4],[1672,5],[2242,5]]},"8":{"position":[[688,9],[1173,9],[1547,9]]},"11":{"position":[[27,5],[95,5]]},"15":{"position":[[376,7]]},"16":{"position":[[321,7]]},"18":{"position":[[310,7]]},"19":{"position":[[359,7]]},"20":{"position":[[330,7]]},"22":{"position":[[259,7]]},"23":{"position":[[259,7]]},"25":{"position":[[514,7]]},"26":{"position":[[482,7]]},"28":{"position":[[440,7]]},"29":{"position":[[552,7]]},"31":{"position":[[367,7]]},"32":{"position":[[479,7]]},"33":{"position":[[376,7]]},"34":{"position":[[488,7]]},"35":{"position":[[442,7]]},"36":{"position":[[304,7]]},"37":{"position":[[312,7]]},"39":{"position":[[393,7]]},"41":{"position":[[190,7]]},"42":{"position":[[178,7]]},"43":{"position":[[116,7]]},"44":{"position":[[134,7]]},"45":{"position":[[130,7]]},"48":{"position":[[273,5]]},"88":{"position":[[819,7],[1454,7]]},"103":{"position":[[1433,4]]},"104":{"position":[[1883,4]]},"105":{"position":[[1559,4],[2903,5]]},"111":{"position":[[508,5]]},"112":{"position":[[381,5]]},"113":{"position":[[451,5]]},"124":{"position":[[751,8]]},"125":{"position":[[636,8]]},"135":{"position":[[555,6]]},"141":{"position":[[316,5]]},"162":{"position":[[356,5]]},"176":{"position":[[303,5]]},"183":{"position":[[288,5]]},"190":{"position":[[291,5]]},"197":{"position":[[313,5]]},"210":{"position":[[319,4]]},"218":{"position":[[728,7]]},"219":{"position":[[412,7]]},"220":{"position":[[404,4],[1931,7],[2715,4]]},"221":{"position":[[546,7]]},"222":{"position":[[1032,7],[1680,5],[2074,7]]},"248":{"position":[[196,4]]},"252":{"position":[[1169,4]]},"253":{"position":[[659,4]]},"260":{"position":[[113,5],[149,4],[1088,7],[1453,7]]},"262":{"position":[[179,6],[293,7],[620,7],[957,6],[1279,7],[1327,7]]},"263":{"position":[[531,7],[905,6]]},"264":{"position":[[268,4],[379,4]]},"266":{"position":[[107,7],[893,7],[1258,7],[1826,7],[2089,7],[2450,7],[2498,7]]},"267":{"position":[[59,7],[490,5],[561,7]]},"275":{"position":[[198,7],[534,6],[768,7]]},"287":{"position":[[814,7],[1418,7]]},"288":{"position":[[1776,7]]},"292":{"position":[[827,7],[880,4]]},"316":{"position":[[5,4]]},"317":{"position":[[97,4]]},"337":{"position":[[5,4]]},"338":{"position":[[97,4]]},"353":{"position":[[502,4]]},"357":{"position":[[91,5],[814,4],[912,4],[1007,4],[1195,4],[1238,5],[1368,4]]},"359":{"position":[[125,4]]},"360":{"position":[[220,5]]},"361":{"position":[[99,6],[668,7],[3146,7],[3255,7],[3316,7]]},"364":{"position":[[261,7],[294,7]]},"365":{"position":[[44,4],[221,4]]},"367":{"position":[[70,5]]},"385":{"position":[[139,4]]},"390":{"position":[[1156,4],[1719,7]]},"391":{"position":[[481,7]]},"410":{"position":[[123,4]]},"411":{"position":[[482,7]]},"413":{"position":[[422,6]]},"414":{"position":[[288,6],[333,7],[2740,7],[2809,7],[3078,7]]},"423":{"position":[[317,5]]},"429":{"position":[[242,4]]},"441":{"position":[[143,5]]},"450":{"position":[[160,5]]},"451":{"position":[[363,4],[438,4],[584,6]]},"467":{"position":[[2969,4],[4799,4],[6880,5]]},"473":{"position":[[4398,5],[4443,5]]},"480":{"position":[[442,5],[483,6],[6329,6]]},"483":{"position":[[395,5]]},"484":{"position":[[310,4],[398,5],[456,5],[462,4]]},"485":{"position":[[252,5],[423,4]]},"486":{"position":[[380,5]]},"487":{"position":[[396,5]]},"488":{"position":[[420,5],[691,7],[812,4],[920,5],[1528,4],[2211,4],[2263,7],[2469,4],[2526,7],[2948,5]]},"519":{"position":[[761,7],[3254,7]]},"520":{"position":[[764,7],[3796,7]]},"521":{"position":[[727,7],[3220,7]]},"522":{"position":[[730,7],[3762,7]]},"523":{"position":[[949,7],[3442,7]]},"524":{"position":[[749,7],[3628,7]]},"525":{"position":[[915,7],[3408,7]]},"526":{"position":[[715,7],[3594,7]]}},"keywords":{}}],["type').append(`<a",{"_index":3932,"title":{},"content":{"488":{"position":[[1400,17]]}},"keywords":{}}],["typecrop",{"_index":3028,"title":{},"content":{"362":{"position":[[125,8]]}},"keywords":{}}],["typesfield",{"_index":1314,"title":{},"content":{"124":{"position":[[811,10]]},"125":{"position":[[709,10]]}},"keywords":{}}],["typesplantedappliedharvestedtillag",{"_index":2897,"title":{},"content":{"357":{"position":[[433,35]]}},"keywords":{}}],["typic",{"_index":2921,"title":{},"content":{"360":{"position":[[436,7]]}},"keywords":{}}],["udm2",{"_index":3432,"title":{},"content":{"441":{"position":[[48,6],[132,4]]}},"keywords":{}}],["ui",{"_index":2580,"title":{},"content":{"313":{"position":[[278,2]]},"314":{"position":[[270,2]]},"334":{"position":[[278,2]]},"335":{"position":[[270,2]]},"418":{"position":[[540,2]]}},"keywords":{}}],["uidd",{"_index":870,"title":{},"content":{"75":{"position":[[503,5],[551,5],[634,5],[686,5]]},"76":{"position":[[354,5],[406,5]]}},"keywords":{}}],["ultim",{"_index":3373,"title":{},"content":{"418":{"position":[[217,10]]}},"keywords":{}}],["unabl",{"_index":1472,"title":{},"content":{"130":{"position":[[6060,6],[6246,6]]}},"keywords":{}}],["unaffect",{"_index":1528,"title":{},"content":{"133":{"position":[[241,11]]}},"keywords":{}}],["unauthent",{"_index":327,"title":{"16":{"position":[[12,15]]}},"content":{"11":{"position":[[295,15]]}},"keywords":{}}],["unavail",{"_index":4083,"title":{},"content":{"512":{"position":[[199,12]]},"523":{"position":[[303,12]]},"525":{"position":[[292,12]]}},"keywords":{}}],["uncov",{"_index":2841,"title":{"352":{"position":[[4,9]]}},"content":{"345":{"position":[[415,9]]}},"keywords":{}}],["undefin",{"_index":3749,"title":{},"content":{"480":{"position":[[3642,10],[3794,10],[5157,10],[5295,10],[7766,10]]}},"keywords":{}}],["under",{"_index":2008,"title":{},"content":{"233":{"position":[[184,5],[227,5]]},"252":{"position":[[424,5]]},"253":{"position":[[154,5]]},"447":{"position":[[127,5]]},"493":{"position":[[66,5]]},"498":{"position":[[186,5]]}},"keywords":{}}],["understand",{"_index":20,"title":{},"content":{"0":{"position":[[193,10],[1335,10]]},"47":{"position":[[1093,10]]},"105":{"position":[[726,10]]},"387":{"position":[[674,10]]}},"keywords":{}}],["unifi",{"_index":3133,"title":{},"content":{"387":{"position":[[37,8]]},"507":{"position":[[34,7]]}},"keywords":{}}],["union",{"_index":4025,"title":{},"content":{"510":{"position":[[309,5]]}},"keywords":{}}],["uniqu",{"_index":3116,"title":{},"content":{"381":{"position":[[105,10]]},"382":{"position":[[599,6]]},"383":{"position":[[602,6]]},"384":{"position":[[341,6]]}},"keywords":{}}],["unit",{"_index":385,"title":{"350":{"position":[[13,5]]},"356":{"position":[[0,5]]},"368":{"position":[[14,5]]},"398":{"position":[[20,5]]},"416":{"position":[[17,5]]}},"content":{"35":{"position":[[207,5]]},"37":{"position":[[154,6]]},"59":{"position":[[2641,7],[2694,7],[2880,7],[2933,7]]},"82":{"position":[[876,7]]},"83":{"position":[[698,7]]},"104":{"position":[[2278,4],[2473,5],[2561,5],[2613,5]]},"130":{"position":[[4156,5],[4190,5],[4354,5],[4388,5]]},"262":{"position":[[1191,7]]},"266":{"position":[[507,4],[540,5],[1738,7],[2362,7]]},"275":{"position":[[1025,7]]},"288":{"position":[[2072,7]]},"345":{"position":[[342,5]]},"350":{"position":[[60,6],[477,5],[548,5],[647,5]]},"351":{"position":[[612,8]]},"357":{"position":[[20,5],[218,5],[377,5],[478,4]]},"361":{"position":[[749,7],[863,7],[928,7],[1043,7],[1151,7],[1218,7],[1358,7],[1467,7],[1553,7],[1645,7],[1769,7],[1889,7],[2007,7],[2126,7],[2191,7],[2300,7],[2365,7],[2429,7],[2491,7],[2546,7],[2606,7],[2671,7],[2731,7],[2960,7],[3077,7]]},"363":{"position":[[75,5]]},"365":{"position":[[57,5],[1659,6],[1701,5]]},"368":{"position":[[22,5]]},"389":{"position":[[660,5]]},"398":{"position":[[71,6],[488,5],[559,5],[658,5]]},"411":{"position":[[751,6]]},"414":{"position":[[416,7],[522,7],[674,7],[757,7],[894,7],[956,7],[1039,7],[1101,7],[1217,7],[1335,7],[1455,7],[1520,7],[1638,7],[1703,7],[1822,7],[1943,7],[2037,7],[2153,7],[2218,7],[2283,7],[2346,7],[2400,7],[2460,7],[2525,7],[2585,7]]},"416":{"position":[[22,5]]},"434":{"position":[[313,4]]},"442":{"position":[[186,4]]},"510":{"position":[[182,6]]},"511":{"position":[[40,4]]},"515":{"position":[[23,4]]},"519":{"position":[[476,5],[492,6],[936,7],[1097,7],[1257,7],[1417,7],[1594,7],[1750,7],[1906,7],[2060,7],[2222,7],[2416,7],[2570,7],[2729,7],[2885,7],[3061,7],[3223,7]]},"520":{"position":[[478,5],[494,6],[927,7],[1084,7],[1240,7],[1399,7],[1558,7],[1718,7],[1879,7],[2043,7],[2195,7],[2344,7],[2494,7],[2654,7],[2814,7],[2993,7],[3145,7],[3303,7],[3455,7],[3604,7],[3762,7]]},"521":{"position":[[465,5],[481,6],[902,7],[1063,7],[1223,7],[1383,7],[1560,7],[1716,7],[1872,7],[2026,7],[2188,7],[2382,7],[2536,7],[2695,7],[2851,7],[3027,7],[3189,7]]},"522":{"position":[[467,5],[483,6],[893,7],[1050,7],[1206,7],[1365,7],[1524,7],[1684,7],[1845,7],[2009,7],[2161,7],[2310,7],[2460,7],[2620,7],[2780,7],[2959,7],[3111,7],[3269,7],[3421,7],[3570,7],[3728,7]]},"523":{"position":[[662,5],[678,6],[1124,7],[1285,7],[1445,7],[1605,7],[1782,7],[1938,7],[2094,7],[2248,7],[2410,7],[2604,7],[2758,7],[2917,7],[3073,7],[3249,7],[3411,7]]},"524":{"position":[[461,5],[477,6],[912,7],[1068,7],[1228,7],[1390,7],[1553,7],[1717,7],[1869,7],[2020,7],[2170,7],[2330,7],[2491,7],[2667,7],[2819,7],[2976,7],[3134,7],[3286,7],[3435,7],[3594,7]]},"525":{"position":[[651,5],[667,6],[1090,7],[1251,7],[1411,7],[1571,7],[1748,7],[1904,7],[2060,7],[2214,7],[2376,7],[2570,7],[2724,7],[2883,7],[3039,7],[3215,7],[3377,7]]},"526":{"position":[[450,5],[466,6],[878,7],[1034,7],[1194,7],[1356,7],[1519,7],[1683,7],[1835,7],[1986,7],[2136,7],[2296,7],[2457,7],[2633,7],[2785,7],[2942,7],[3100,7],[3252,7],[3401,7],[3560,7]]}},"keywords":{}}],["unitmeasur",{"_index":1202,"title":{},"content":{"104":{"position":[[2249,16]]},"105":{"position":[[3551,16]]},"357":{"position":[[246,15]]}},"keywords":{}}],["unnecessari",{"_index":2817,"title":{},"content":{"338":{"position":[[3637,11]]}},"keywords":{}}],["unspecifi",{"_index":1980,"title":{},"content":{"229":{"position":[[2617,12]]}},"keywords":{}}],["unsur",{"_index":1557,"title":{},"content":{"137":{"position":[[217,6]]}},"keywords":{}}],["until",{"_index":1271,"title":{},"content":{"114":{"position":[[87,5]]},"220":{"position":[[557,5],[755,5]]},"346":{"position":[[808,5]]},"390":{"position":[[517,5]]},"472":{"position":[[223,5]]},"519":{"position":[[305,5]]},"520":{"position":[[307,5]]},"521":{"position":[[294,5]]},"522":{"position":[[296,5]]},"523":{"position":[[510,5]]},"524":{"position":[[309,5]]},"525":{"position":[[499,5]]},"526":{"position":[[298,5]]}},"keywords":{}}],["unus",{"_index":1677,"title":{},"content":{"212":{"position":[[732,8]]}},"keywords":{}}],["up",{"_index":3,"title":{"0":{"position":[[21,2]]},"327":{"position":[[4,2]]}},"content":{"0":{"position":[[225,2],[640,2],[812,2],[978,3],[997,3],[1052,3],[1107,3],[1367,2],[1539,2],[1711,2]]},"89":{"position":[[656,2],[704,2]]},"133":{"position":[[717,2]]},"135":{"position":[[668,2]]},"252":{"position":[[183,2],[577,2]]},"253":{"position":[[907,2]]},"300":{"position":[[191,2]]},"327":{"position":[[94,2]]},"378":{"position":[[2116,2]]},"379":{"position":[[2213,2]]},"382":{"position":[[71,2]]},"383":{"position":[[77,2]]},"387":{"position":[[810,2],[904,2]]},"418":{"position":[[378,2]]},"430":{"position":[[369,2]]},"495":{"position":[[47,2]]},"501":{"position":[[63,2]]},"508":{"position":[[97,2]]}},"keywords":{}}],["updat",{"_index":330,"title":{"20":{"position":[[13,7]]},"23":{"position":[[15,7]]},"36":{"position":[[10,7]]},"42":{"position":[[0,7]]},"45":{"position":[[0,7]]},"61":{"position":[[0,6]]},"75":{"position":[[0,7]]},"112":{"position":[[0,6]]},"113":{"position":[[0,6]]},"122":{"position":[[0,6]]},"125":{"position":[[0,6]]},"263":{"position":[[0,6]]},"275":{"position":[[0,6]]},"280":{"position":[[0,6]]},"285":{"position":[[0,6]]},"503":{"position":[[0,6]]}},"content":{"11":{"position":[[366,7],[435,7],[816,8],[950,7],[982,7]]},"20":{"position":[[33,7],[61,6]]},"23":{"position":[[34,8],[130,7],[234,7]]},"36":{"position":[[32,8]]},"42":{"position":[[37,8]]},"45":{"position":[[39,7]]},"56":{"position":[[302,6]]},"61":{"position":[[52,6],[135,7],[190,7]]},"69":{"position":[[308,7]]},"75":{"position":[[58,7]]},"84":{"position":[[14,7],[29,8]]},"107":{"position":[[485,6],[533,6]]},"112":{"position":[[16,7]]},"113":{"position":[[29,7]]},"118":{"position":[[399,6],[811,6]]},"122":{"position":[[87,6]]},"125":{"position":[[125,6]]},"228":{"position":[[14,7],[29,8]]},"230":{"position":[[14,7],[29,8]]},"235":{"position":[[14,7],[29,8]]},"236":{"position":[[14,7],[29,8]]},"240":{"position":[[14,7],[29,8]]},"242":{"position":[[266,8]]},"244":{"position":[[668,6],[1680,8]]},"245":{"position":[[172,6],[294,6]]},"246":{"position":[[331,6],[688,6],[709,6],[954,7],[1295,6]]},"247":{"position":[[636,6]]},"248":{"position":[[725,6]]},"249":{"position":[[14,7],[29,8]]},"252":{"position":[[756,9]]},"258":{"position":[[488,6],[1300,6],[1491,6],[1668,6]]},"262":{"position":[[516,8]]},"263":{"position":[[120,7],[155,6],[232,9],[274,6],[309,6]]},"275":{"position":[[51,7]]},"280":{"position":[[36,7],[202,8]]},"285":{"position":[[38,7],[186,8]]},"288":{"position":[[239,8],[254,6],[1466,7],[1513,7],[2476,6]]},"290":{"position":[[424,6]]},"291":{"position":[[442,6]]},"301":{"position":[[404,6],[1846,6],[1916,6]]},"302":{"position":[[471,6],[2085,6],[2171,6]]},"303":{"position":[[612,6],[2191,6],[2272,6]]},"304":{"position":[[650,6],[2261,6],[2353,6]]},"305":{"position":[[601,6],[2081,6],[2148,6]]},"338":{"position":[[1773,7],[3133,7],[3165,6],[3256,7],[3718,7]]},"340":{"position":[[651,8]]},"382":{"position":[[676,7],[811,7]]},"383":{"position":[[679,7],[814,7]]},"384":{"position":[[418,7],[553,7]]},"387":{"position":[[965,7]]},"401":{"position":[[178,8]]},"404":{"position":[[14,7],[29,8]]},"431":{"position":[[14,7],[29,8]]},"432":{"position":[[14,7],[29,8]]},"444":{"position":[[166,8],[224,7]]},"452":{"position":[[14,7],[29,8]]},"453":{"position":[[14,7],[29,8]]},"460":{"position":[[303,7]]},"498":{"position":[[1205,6]]},"503":{"position":[[356,8]]},"510":{"position":[[82,6]]},"514":{"position":[[81,6]]}},"keywords":{}}],["updatedat",{"_index":2403,"title":{},"content":{"269":{"position":[[807,12]]}},"keywords":{}}],["updatednam",{"_index":688,"title":{},"content":{"61":{"position":[[227,14],[676,14],[1004,14]]},"263":{"position":[[489,14],[863,14]]}},"keywords":{}}],["updatedtim",{"_index":701,"title":{},"content":{"63":{"position":[[430,11],[485,11]]},"65":{"position":[[907,14]]},"66":{"position":[[534,14]]},"260":{"position":[[1154,14],[1519,14]]},"262":{"position":[[1413,14]]},"266":{"position":[[2155,14],[2584,14]]},"275":{"position":[[1108,14]]},"277":{"position":[[951,14]]},"282":{"position":[[773,14]]},"283":{"position":[[551,14]]},"287":{"position":[[986,14],[1584,14]]},"288":{"position":[[2155,14]]},"290":{"position":[[248,14]]},"291":{"position":[[188,14]]},"346":{"position":[[692,11],[747,11],[1641,12]]},"390":{"position":[[401,11],[456,11],[1165,12],[1676,14]]},"391":{"position":[[438,14]]},"411":{"position":[[441,14]]}},"keywords":{}}],["upland",{"_index":2726,"title":{},"content":{"320":{"position":[[2714,6]]}},"keywords":{}}],["upload",{"_index":334,"title":{"24":{"position":[[12,6]]},"25":{"position":[[0,8]]},"26":{"position":[[0,8]]},"89":{"position":[[0,6]]},"93":{"position":[[0,6]]},"95":{"position":[[0,6]]},"98":{"position":[[0,6]]},"100":{"position":[[0,6]]},"101":{"position":[[0,6]]},"128":{"position":[[12,6]]},"130":{"position":[[0,6]]},"131":{"position":[[10,6]]},"134":{"position":[[12,6]]},"136":{"position":[[12,6]]},"269":{"position":[[0,6]]},"306":{"position":[[10,6]]},"373":{"position":[[0,6]]},"374":{"position":[[5,6]]},"380":{"position":[[5,6]]},"384":{"position":[[14,6]]},"475":{"position":[[7,6]]},"486":{"position":[[0,6]]},"487":{"position":[[6,8]]},"496":{"position":[[28,6]]}},"content":{"11":{"position":[[455,6],[469,8],[504,8]]},"25":{"position":[[81,8],[408,8]]},"26":{"position":[[61,8],[323,8]]},"28":{"position":[[76,8],[334,8]]},"29":{"position":[[76,8],[393,8]]},"31":{"position":[[261,8]]},"32":{"position":[[320,8]]},"33":{"position":[[270,8]]},"34":{"position":[[329,8]]},"36":{"position":[[203,10]]},"37":{"position":[[259,10]]},"42":{"position":[[285,10]]},"45":{"position":[[243,10]]},"86":{"position":[[456,6]]},"89":{"position":[[1031,8]]},"92":{"position":[[301,6],[451,6],[567,6],[650,6]]},"93":{"position":[[41,6],[135,8]]},"95":{"position":[[36,6],[277,8]]},"98":{"position":[[31,6],[212,8]]},"100":{"position":[[43,6],[139,8]]},"101":{"position":[[34,6],[120,8]]},"104":{"position":[[253,8]]},"129":{"position":[[440,6]]},"130":{"position":[[310,6],[762,8],[835,8],[1196,8]]},"131":{"position":[[35,8],[179,6],[229,6],[256,6]]},"132":{"position":[[24,8],[168,6],[218,6],[245,6]]},"133":{"position":[[34,6],[155,8],[732,7]]},"135":{"position":[[96,7],[116,6],[233,6],[492,6],[519,6],[683,7]]},"136":{"position":[[36,6],[100,6],[139,6]]},"137":{"position":[[99,9]]},"258":{"position":[[903,6]]},"264":{"position":[[543,10]]},"269":{"position":[[74,6]]},"307":{"position":[[12,6],[66,6]]},"308":{"position":[[152,7],[198,6],[237,6]]},"313":{"position":[[878,6],[1048,7]]},"316":{"position":[[232,8]]},"317":{"position":[[195,8],[284,8],[339,7],[465,6],[669,7]]},"340":{"position":[[49,9],[99,6],[283,6],[342,6]]},"341":{"position":[[503,6]]},"343":{"position":[[352,8]]},"346":{"position":[[392,8],[496,6],[532,8]]},"360":{"position":[[692,10],[713,10],[912,6]]},"374":{"position":[[20,6],[64,6]]},"380":{"position":[[18,6],[86,6],[126,6],[144,6],[218,6],[277,6],[298,6],[374,6],[416,6],[436,6],[618,7],[1133,6],[1206,6],[1909,6],[1970,6],[1992,6],[2613,7],[2799,6],[2878,6]]},"381":{"position":[[424,6],[464,6]]},"384":{"position":[[23,6],[44,6],[1387,7]]},"439":{"position":[[23,6],[56,6]]},"454":{"position":[[168,6]]},"459":{"position":[[60,6],[94,8]]},"476":{"position":[[67,8]]},"480":{"position":[[4995,8],[5041,6],[6963,8],[7009,9],[7168,7],[7421,8],[8427,8]]},"486":{"position":[[37,6],[517,9],[767,8]]},"487":{"position":[[97,8]]},"496":{"position":[[43,6]]}},"keywords":{}}],["upload/{magiclinkid",{"_index":3111,"title":{},"content":{"380":{"position":[[183,20],[340,20],[1174,20],[1387,21],[2843,20],[3054,21]]}},"keywords":{}}],["uploadconnect",{"_index":2821,"title":{},"content":{"340":{"position":[[507,16]]}},"keywords":{}}],["uploadedconvert",{"_index":1542,"title":{},"content":{"135":{"position":[[292,18]]}},"keywords":{}}],["uploadedfileprocessingfail",{"_index":208,"title":{},"content":{"5":{"position":[[1014,29]]},"26":{"position":[[490,30]]},"480":{"position":[[741,31]]}},"keywords":{}}],["uploadedfileprocessingfaileduploadedfileprocessingfinish",{"_index":3725,"title":{},"content":{"480":{"position":[[490,58]]}},"keywords":{}}],["uploadedfileprocessingfinish",{"_index":207,"title":{},"content":{"5":{"position":[[982,31]]},"25":{"position":[[522,32]]},"480":{"position":[[870,33]]}},"keywords":{}}],["uploadfil",{"_index":3889,"title":{},"content":{"485":{"position":[[484,13],[660,13]]},"486":{"position":[[164,12]]}},"keywords":{}}],["uploadtimestamp",{"_index":1449,"title":{},"content":{"130":{"position":[[4848,18],[5916,18]]},"133":{"position":[[623,18]]}},"keywords":{}}],["uploadtype=rgb",{"_index":1051,"title":{},"content":{"89":{"position":[[924,16]]}},"keywords":{}}],["upon",{"_index":247,"title":{},"content":{"5":{"position":[[2329,4]]},"13":{"position":[[141,4]]},"458":{"position":[[120,4]]},"480":{"position":[[641,4]]}},"keywords":{}}],["urea",{"_index":812,"title":{},"content":{"72":{"position":[[957,7]]}},"keywords":{}}],["uri",{"_index":2075,"title":{},"content":{"244":{"position":[[1261,3]]},"304":{"position":[[302,4]]},"328":{"position":[[184,4],[246,4]]}},"keywords":{}}],["url",{"_index":167,"title":{},"content":{"5":{"position":[[116,5],[758,3],[775,3],[1552,6],[2034,6],[2364,4]]},"6":{"position":[[361,6]]},"7":{"position":[[362,6]]},"8":{"position":[[370,6],[855,6],[1340,6],[1756,4]]},"47":{"position":[[292,3],[416,4]]},"72":{"position":[[877,6],[1314,6]]},"73":{"position":[[607,6]]},"88":{"position":[[1142,6],[1170,6],[1727,6],[1755,6]]},"101":{"position":[[403,4]]},"130":{"position":[[423,3]]},"220":{"position":[[1895,6],[1902,6],[1924,6],[2655,4],[2660,3],[2689,3]]},"221":{"position":[[510,6],[517,6],[539,6]]},"239":{"position":[[888,3]]},"242":{"position":[[746,3]]},"244":{"position":[[207,4],[655,4],[944,3],[1379,3],[1487,3]]},"245":{"position":[[87,4],[116,3],[411,4]]},"264":{"position":[[144,4]]},"303":{"position":[[246,3]]},"304":{"position":[[258,3]]},"305":{"position":[[252,3],[311,4]]},"316":{"position":[[543,3]]},"328":{"position":[[225,3],[368,3]]},"330":{"position":[[173,4],[214,3],[374,3]]},"331":{"position":[[178,4],[219,3],[243,4],[412,3]]},"332":{"position":[[188,4],[232,3],[282,5]]},"337":{"position":[[502,3]]},"349":{"position":[[489,6],[496,6],[518,5],[1196,4]]},"361":{"position":[[425,6],[456,6],[477,6],[506,6],[532,6],[566,6]]},"364":{"position":[[53,3]]},"367":{"position":[[352,6],[632,6],[914,6],[1195,6],[1484,6],[1771,6],[2058,6],[2340,6],[2622,6],[2910,6],[3190,6],[3470,6],[3757,6],[4039,6],[4328,6]]},"378":{"position":[[1002,6],[1024,6],[1838,6],[1860,6],[2884,6],[2906,6]]},"379":{"position":[[1074,6],[1096,6],[1927,6],[1949,6],[2911,6],[2933,6]]},"380":{"position":[[989,6],[1011,6],[1770,6],[1792,6],[2406,6],[2428,6]]},"382":{"position":[[1536,6],[1558,6]]},"383":{"position":[[1518,6],[1540,6]]},"384":{"position":[[1199,6],[1221,6]]},"385":{"position":[[320,3],[406,3],[1074,6],[1096,6]]},"393":{"position":[[67,3],[314,6],[348,5]]},"394":{"position":[[67,3],[399,6],[433,5]]},"395":{"position":[[494,6],[501,6],[523,5],[1206,4]]},"396":{"position":[[849,6],[856,6],[878,5]]},"397":{"position":[[418,6],[425,6],[447,5],[490,6],[497,6],[519,5],[560,6],[567,6],[589,5],[632,6],[639,6],[661,5]]},"411":{"position":[[694,4]]},"412":{"position":[[89,5]]},"413":{"position":[[244,5]]},"415":{"position":[[285,6],[292,5],[1271,6],[1278,5],[1847,6],[1866,3],[1959,6],[1978,3],[2073,6],[2092,3],[2185,6],[2204,3],[2295,6],[2314,3],[2414,6],[2433,3],[2528,6],[2547,3],[2649,6],[2668,3],[2769,6],[2788,3],[2888,6],[2907,3],[3001,6],[3020,3],[3120,6],[3139,3],[3229,6],[3248,3],[3341,6],[3360,3],[3462,6],[3481,3],[3576,6],[3595,3]]},"473":{"position":[[5218,3],[6114,3],[6441,4],[6502,3],[6543,3],[6584,4],[6738,4]]},"474":{"position":[[338,3]]},"479":{"position":[[461,3],[556,4]]},"480":{"position":[[701,3],[2667,3],[2955,4],[2960,3],[3335,7],[4316,4],[8294,4],[9131,4],[9224,3],[9289,4],[9772,4],[10018,4]]},"481":{"position":[[191,3],[216,3]]},"483":{"position":[[409,4]]},"484":{"position":[[412,4]]},"485":{"position":[[265,4]]},"486":{"position":[[361,4]]},"487":{"position":[[409,4]]},"488":{"position":[[388,4],[605,3],[677,6],[790,4],[893,4],[2296,3],[2313,6],[2915,4]]}},"keywords":{}}],["url(",{"_index":2556,"title":{},"content":{"303":{"position":[[300,7]]},"330":{"position":[[245,7]]}},"keywords":{}}],["url_to_download",{"_index":1089,"title":{},"content":{"97":{"position":[[445,17]]}},"keywords":{}}],["us",{"_index":52,"title":{},"content":{"2":{"position":[[11,3],[205,3]]},"3":{"position":[[197,5],[407,5]]},"5":{"position":[[680,4]]},"20":{"position":[[89,4]]},"25":{"position":[[130,6],[214,4]]},"26":{"position":[[159,6]]},"28":{"position":[[193,6]]},"29":{"position":[[229,6]]},"31":{"position":[[113,6]]},"32":{"position":[[149,6]]},"33":{"position":[[118,6]]},"34":{"position":[[154,6]]},"35":{"position":[[71,6]]},"36":{"position":[[59,6]]},"37":{"position":[[76,6]]},"39":{"position":[[100,6]]},"48":{"position":[[46,5]]},"51":{"position":[[65,4]]},"52":{"position":[[114,4]]},"57":{"position":[[816,4]]},"59":{"position":[[1646,4]]},"63":{"position":[[558,4]]},"65":{"position":[[177,4]]},"74":{"position":[[70,4],[272,5]]},"88":{"position":[[200,4]]},"89":{"position":[[1102,3]]},"93":{"position":[[63,5]]},"95":{"position":[[58,5]]},"97":{"position":[[89,5]]},"98":{"position":[[53,5],[153,5]]},"99":{"position":[[143,5]]},"100":{"position":[[65,5]]},"101":{"position":[[56,5]]},"104":{"position":[[492,5],[564,4],[1113,4],[1549,4]]},"105":{"position":[[45,3],[1102,3],[1707,3],[2205,4],[2325,4]]},"107":{"position":[[106,5]]},"117":{"position":[[1268,5]]},"129":{"position":[[353,5]]},"130":{"position":[[215,4],[4162,5],[4221,5],[4360,5],[4420,5],[5553,4]]},"135":{"position":[[126,6]]},"136":{"position":[[191,5],[249,3]]},"209":{"position":[[0,5]]},"215":{"position":[[3,3]]},"218":{"position":[[96,4]]},"219":{"position":[[82,4]]},"222":{"position":[[1105,4],[2039,3]]},"233":{"position":[[6,4]]},"234":{"position":[[6,3]]},"238":{"position":[[61,4]]},"239":{"position":[[657,4]]},"244":{"position":[[98,5],[1048,3],[1918,4],[2360,4]]},"245":{"position":[[918,4],[1307,4]]},"246":{"position":[[631,4],[812,3]]},"252":{"position":[[60,3],[96,4]]},"255":{"position":[[378,4]]},"256":{"position":[[65,3],[160,3]]},"258":{"position":[[99,5]]},"260":{"position":[[480,4]]},"264":{"position":[[914,4]]},"268":{"position":[[66,4]]},"277":{"position":[[395,4]]},"282":{"position":[[48,3]]},"300":{"position":[[247,3]]},"307":{"position":[[166,5]]},"308":{"position":[[23,5]]},"311":{"position":[[3,3],[46,3]]},"313":{"position":[[28,3],[180,3],[381,5]]},"314":{"position":[[28,3],[174,3],[374,5]]},"316":{"position":[[468,3]]},"317":{"position":[[73,5],[354,3],[371,3],[1992,3],[2020,3]]},"319":{"position":[[105,5]]},"320":{"position":[[31,4]]},"326":{"position":[[55,4]]},"327":{"position":[[3,3]]},"334":{"position":[[28,3],[180,3],[381,5]]},"335":{"position":[[28,3],[174,3],[371,5]]},"337":{"position":[[427,3]]},"338":{"position":[[73,5],[739,3],[756,3]]},"340":{"position":[[127,6]]},"341":{"position":[[883,4]]},"345":{"position":[[536,5]]},"346":{"position":[[1071,5],[1175,4]]},"349":{"position":[[710,4],[868,5],[907,4]]},"357":{"position":[[1213,4]]},"360":{"position":[[64,3]]},"371":{"position":[[97,5]]},"379":{"position":[[2352,4]]},"381":{"position":[[146,5],[228,4]]},"382":{"position":[[288,4]]},"383":{"position":[[291,4]]},"385":{"position":[[28,5],[435,4]]},"389":{"position":[[915,5]]},"390":{"position":[[669,4]]},"394":{"position":[[105,3]]},"395":{"position":[[720,4],[878,5],[917,4]]},"396":{"position":[[1159,4]]},"399":{"position":[[60,4],[572,5]]},"413":{"position":[[7,3],[457,4],[565,3],[874,3]]},"415":{"position":[[647,5]]},"418":{"position":[[604,5]]},"420":{"position":[[174,3]]},"422":{"position":[[314,5]]},"423":{"position":[[158,3]]},"429":{"position":[[75,6],[670,3]]},"430":{"position":[[54,5]]},"437":{"position":[[69,3]]},"444":{"position":[[68,3]]},"449":{"position":[[125,4]]},"454":{"position":[[5,3]]},"456":{"position":[[122,5]]},"460":{"position":[[114,5]]},"463":{"position":[[5,3]]},"464":{"position":[[96,3]]},"466":{"position":[[72,3],[338,4]]},"467":{"position":[[71,3]]},"469":{"position":[[25,3],[87,3]]},"470":{"position":[[30,3]]},"471":{"position":[[84,3]]},"472":{"position":[[66,3]]},"473":{"position":[[1001,5],[1159,5]]},"474":{"position":[[21,5],[199,3],[1793,3]]},"476":{"position":[[5,3]]},"477":{"position":[[96,3]]},"479":{"position":[[72,3],[626,4]]},"480":{"position":[[242,3],[389,3],[1251,3],[2704,5],[3443,3],[4333,3],[6441,3],[8311,3],[9959,3],[10062,3],[10734,5],[10960,5]]},"482":{"position":[[33,3],[179,4],[314,3]]},"490":{"position":[[405,3]]},"505":{"position":[[172,5]]},"510":{"position":[[473,4]]},"512":{"position":[[286,3]]},"517":{"position":[[109,5]]},"523":{"position":[[390,3]]},"525":{"position":[[379,3]]}},"keywords":{}}],["usa,inc",{"_index":763,"title":{},"content":{"70":{"position":[[1013,10]]}},"keywords":{}}],["usabl",{"_index":1667,"title":{},"content":{"212":{"position":[[545,6]]},"441":{"position":[[27,6]]}},"keywords":{}}],["usagecount",{"_index":3096,"title":{},"content":{"378":{"position":[[902,13],[1738,13]]},"379":{"position":[[968,13],[1821,13]]},"380":{"position":[[887,13],[1668,13]]}},"keywords":{}}],["usb",{"_index":2138,"title":{},"content":{"252":{"position":[[1033,5]]}},"keywords":{}}],["useeffect.usememo",{"_index":2813,"title":{},"content":{"338":{"position":[[3460,17]]}},"keywords":{}}],["useleaf",{"_index":2656,"title":{},"content":{"317":{"position":[[1443,7],[1495,7],[1899,10]]},"338":{"position":[[1817,7],[1984,10]]}},"keywords":{}}],["usememo",{"_index":2660,"title":{},"content":{"317":{"position":[[1910,10],[2000,7]]},"338":{"position":[[3416,7],[3678,10]]}},"keywords":{}}],["user",{"_index":396,"title":{"88":{"position":[[30,4]]},"246":{"position":[[5,4]]},"297":{"position":[[13,4]]},"298":{"position":[[14,4]]},"299":{"position":[[14,4]]},"325":{"position":[[24,4]]},"326":{"position":[[14,4]]},"381":{"position":[[21,4]]},"491":{"position":[[5,4]]},"493":{"position":[[15,5]]},"497":{"position":[[5,4]]},"499":{"position":[[0,4]]},"500":{"position":[[13,5]]},"501":{"position":[[11,4]]},"502":{"position":[[14,4]]},"503":{"position":[[14,4]]},"504":{"position":[[14,4]]}},"content":{"41":{"position":[[126,5]]},"42":{"position":[[114,5]]},"43":{"position":[[52,5]]},"44":{"position":[[287,4]]},"45":{"position":[[288,4]]},"47":{"position":[[242,4]]},"61":{"position":[[123,4]]},"62":{"position":[[104,4]]},"63":{"position":[[220,5]]},"70":{"position":[[87,4],[130,4],[360,5]]},"72":{"position":[[205,4]]},"78":{"position":[[152,5]]},"80":{"position":[[152,4]]},"82":{"position":[[153,5]]},"83":{"position":[[152,4]]},"86":{"position":[[420,4]]},"88":{"position":[[83,5]]},"101":{"position":[[323,4]]},"110":{"position":[[59,5],[338,5]]},"111":{"position":[[67,4],[729,5]]},"113":{"position":[[88,4],[672,5]]},"114":{"position":[[70,4],[134,4]]},"116":{"position":[[179,4]]},"117":{"position":[[845,5],[1072,4],[1262,5]]},"123":{"position":[[179,5]]},"124":{"position":[[162,4],[195,5]]},"129":{"position":[[397,4],[423,4],[479,5],[498,4]]},"130":{"position":[[1077,6],[3016,5]]},"136":{"position":[[130,5]]},"140":{"position":[[89,4]]},"141":{"position":[[91,5]]},"144":{"position":[[587,5]]},"147":{"position":[[86,4]]},"148":{"position":[[88,5]]},"151":{"position":[[583,5]]},"154":{"position":[[107,4]]},"155":{"position":[[109,5]]},"158":{"position":[[605,5]]},"161":{"position":[[80,4]]},"162":{"position":[[82,5]]},"165":{"position":[[577,5]]},"168":{"position":[[92,4]]},"169":{"position":[[94,5]]},"172":{"position":[[589,5]]},"175":{"position":[[102,4]]},"176":{"position":[[104,5]]},"179":{"position":[[599,5]]},"182":{"position":[[82,4]]},"183":{"position":[[84,5]]},"186":{"position":[[579,5]]},"189":{"position":[[86,4]]},"190":{"position":[[88,5]]},"193":{"position":[[583,5]]},"196":{"position":[[82,4]]},"197":{"position":[[84,5]]},"200":{"position":[[579,5]]},"203":{"position":[[86,4]]},"204":{"position":[[88,5]]},"207":{"position":[[574,5]]},"209":{"position":[[764,4]]},"233":{"position":[[87,5]]},"234":{"position":[[181,5]]},"239":{"position":[[83,5]]},"242":{"position":[[192,5],[628,5],[901,4],[968,4]]},"244":{"position":[[983,4],[1309,4],[1367,4],[2002,4]]},"245":{"position":[[137,4],[383,4],[1009,4]]},"246":{"position":[[12,5],[62,5],[99,4],[256,4],[515,5],[700,5],[723,5],[1022,4],[1134,5],[1158,4],[1231,5],[1365,4],[1405,6],[1425,5],[1497,6]]},"247":{"position":[[354,4]]},"252":{"position":[[122,6],[374,4],[508,4]]},"255":{"position":[[216,4]]},"260":{"position":[[318,4]]},"261":{"position":[[65,5]]},"262":{"position":[[57,4]]},"263":{"position":[[188,4]]},"264":{"position":[[122,4]]},"277":{"position":[[249,4]]},"278":{"position":[[74,4]]},"279":{"position":[[55,4]]},"280":{"position":[[72,4]]},"282":{"position":[[211,4]]},"283":{"position":[[78,4]]},"284":{"position":[[59,4]]},"285":{"position":[[76,4]]},"288":{"position":[[1102,4]]},"296":{"position":[[96,4],[154,4],[196,4],[238,4]]},"297":{"position":[[44,5]]},"298":{"position":[[31,4],[182,4]]},"299":{"position":[[33,4]]},"308":{"position":[[4,4],[164,5],[356,4]]},"313":{"position":[[623,4],[680,4],[706,4]]},"314":{"position":[[599,4],[656,4],[682,4]]},"316":{"position":[[322,4],[1037,4],[1091,5]]},"322":{"position":[[242,5]]},"325":{"position":[[55,4],[93,4]]},"326":{"position":[[32,4],[147,5],[184,4]]},"328":{"position":[[409,5]]},"329":{"position":[[205,5]]},"330":{"position":[[415,5]]},"331":{"position":[[453,5]]},"332":{"position":[[422,5]]},"334":{"position":[[622,4],[679,4],[705,4]]},"335":{"position":[[596,4],[653,4],[679,4]]},"337":{"position":[[253,4],[806,4],[860,5]]},"340":{"position":[[333,5]]},"345":{"position":[[580,4],[658,4],[754,4],[876,4]]},"346":{"position":[[76,5],[238,5]]},"350":{"position":[[522,5]]},"371":{"position":[[53,4]]},"374":{"position":[[56,4]]},"381":{"position":[[41,5],[124,5]]},"382":{"position":[[193,4],[594,4],[646,4],[726,4],[781,4],[861,4],[953,4]]},"383":{"position":[[196,4],[597,4],[649,4],[729,4],[784,4],[864,4],[956,4]]},"384":{"position":[[66,4],[336,4],[388,4],[468,4],[523,4],[603,4],[695,4]]},"385":{"position":[[526,4],[723,4]]},"390":{"position":[[86,5],[248,5]]},"398":{"position":[[533,5]]},"400":{"position":[[39,4]]},"408":{"position":[[115,5]]},"411":{"position":[[134,5]]},"418":{"position":[[285,5],[388,4],[426,4],[467,5],[520,4]]},"454":{"position":[[226,4],[259,4]]},"467":{"position":[[57,4],[436,5]]},"473":{"position":[[2330,4],[4092,4],[6146,4]]},"480":{"position":[[1237,4],[5087,4],[5923,4],[6378,4]]},"485":{"position":[[112,4]]},"486":{"position":[[739,4]]},"487":{"position":[[534,4],[678,4]]},"488":{"position":[[1290,4],[1553,4]]},"492":{"position":[[118,6]]},"493":{"position":[[7,4],[149,4],[268,4]]},"495":{"position":[[27,4],[214,4]]},"498":{"position":[[26,4],[48,4],[78,4],[127,4],[253,4],[531,5],[563,4],[1124,5],[1134,7],[1153,4],[1188,4],[1198,6],[1219,4],[1228,6],[1249,4]]},"500":{"position":[[5,6],[25,6]]},"501":{"position":[[28,4],[85,4]]},"502":{"position":[[6,6],[28,5],[65,4],[459,4]]},"503":{"position":[[5,6],[35,4],[283,4]]},"504":{"position":[[45,4]]},"519":{"position":[[106,4]]},"520":{"position":[[108,4]]},"521":{"position":[[95,4]]},"522":{"position":[[97,4]]},"523":{"position":[[108,4]]},"524":{"position":[[110,4]]},"525":{"position":[[97,4]]},"526":{"position":[[99,4]]}},"keywords":{}}],["user'",{"_index":1260,"title":{"110":{"position":[[9,6]]},"111":{"position":[[12,6]]},"113":{"position":[[12,6]]},"114":{"position":[[12,6]]}},"content":{"107":{"position":[[378,6],[437,6],[545,6],[606,6]]},"142":{"position":[[62,6]]},"149":{"position":[[58,6]]},"156":{"position":[[71,6]]},"163":{"position":[[57,6]]},"170":{"position":[[63,6]]},"177":{"position":[[68,6]]},"184":{"position":[[58,6]]},"191":{"position":[[60,6]]},"198":{"position":[[58,6]]},"205":{"position":[[60,6]]},"242":{"position":[[802,6]]},"246":{"position":[[405,6],[789,6],[889,6]]}},"keywords":{}}],["user/grow",{"_index":3971,"title":{},"content":{"493":{"position":[[212,11]]}},"keywords":{}}],["user_cr",{"_index":540,"title":{},"content":{"57":{"position":[[409,13]]},"59":{"position":[[310,13]]},"60":{"position":[[725,15]]},"61":{"position":[[876,15]]}},"keywords":{}}],["user_email",{"_index":3122,"title":{},"content":{"382":{"position":[[1138,13],[1376,13]]},"383":{"position":[[1141,13],[1367,13]]},"384":{"position":[[880,13],[1077,13]]}},"keywords":{}}],["user_nam",{"_index":3121,"title":{},"content":{"382":{"position":[[1116,12],[1354,12]]},"383":{"position":[[1119,12],[1345,12]]},"384":{"position":[[858,12],[1055,12]]}},"keywords":{}}],["usermanagement/api/api",{"_index":1290,"title":{},"content":{"118":{"position":[[108,23],[213,23],[342,23],[449,23],[558,23],[704,23],[845,23],[997,23],[1138,23]]},"119":{"position":[[5,23]]},"120":{"position":[[5,23]]},"121":{"position":[[6,23]]},"122":{"position":[[7,23]]},"123":{"position":[[5,23]]},"124":{"position":[[6,23]]},"125":{"position":[[7,23]]},"126":{"position":[[6,23]]},"127":{"position":[[8,23]]}},"keywords":{}}],["usermanagement/api/app",{"_index":2738,"title":{},"content":{"328":{"position":[[514,23]]},"329":{"position":[[317,23]]},"330":{"position":[[514,23]]},"331":{"position":[[556,23]]},"332":{"position":[[524,23]]}},"keywords":{}}],["usernam",{"_index":1585,"title":{},"content":{"147":{"position":[[605,11]]},"148":{"position":[[216,11],[441,11],[732,11]]},"189":{"position":[[561,11]]},"190":{"position":[[115,11],[323,11],[616,11]]},"467":{"position":[[137,8],[783,9]]},"480":{"position":[[1317,8],[1888,9]]}},"keywords":{}}],["username\":\"usernam",{"_index":433,"title":{},"content":{"48":{"position":[[305,22]]},"423":{"position":[[349,22]]}},"keywords":{}}],["useror",{"_index":2844,"title":{},"content":{"345":{"position":[[836,6]]}},"keywords":{}}],["users/{id",{"_index":3983,"title":{},"content":{"498":{"position":[[1162,11],[1261,11]]},"501":{"position":[[5,11]]},"504":{"position":[[8,11]]}},"keywords":{}}],["users/{id}/farms/{id",{"_index":2200,"title":{},"content":{"258":{"position":[[1423,22]]},"290":{"position":[[356,22]]}},"keywords":{}}],["users/{id}/field",{"_index":2191,"title":{},"content":{"258":{"position":[[469,18]]},"287":{"position":[[2540,18]]}},"keywords":{}}],["users/{id}/fields/intersect",{"_index":2195,"title":{},"content":{"258":{"position":[[824,28]]},"267":{"position":[[6,28]]},"287":{"position":[[2644,28]]}},"keywords":{}}],["users/{id}/fields/sync",{"_index":2196,"title":{},"content":{"258":{"position":[[879,23]]},"287":{"position":[[2699,23]]}},"keywords":{}}],["users/{id}/fields/{id",{"_index":2190,"title":{},"content":{"258":{"position":[[425,23],[509,23],[1025,23]]},"270":{"position":[[8,23]]},"287":{"position":[[2496,23],[2745,23]]}},"keywords":{}}],["users/{leaf_user_id}/fields/{field_id}/integration/{provider_nam",{"_index":2197,"title":{},"content":{"258":{"position":[[935,67]]},"269":{"position":[[6,67]]}},"keywords":{}}],["users/{leafuserid}/ag",{"_index":1558,"title":{},"content":{"140":{"position":[[5,22]]},"141":{"position":[[6,22]]},"142":{"position":[[8,22]]},"144":{"position":[[5,22]]}},"keywords":{}}],["users/{leafuserid}/agv",{"_index":1581,"title":{},"content":{"147":{"position":[[5,27]]},"148":{"position":[[6,27]]},"149":{"position":[[6,27]]},"151":{"position":[[5,27]]}},"keywords":{}}],["users/{leafuserid}/clim",{"_index":1590,"title":{},"content":{"154":{"position":[[5,27]]},"155":{"position":[[6,27]]},"156":{"position":[[8,27]]},"158":{"position":[[5,27]]}},"keywords":{}}],["users/{leafuserid}/climatefieldview",{"_index":1068,"title":{},"content":{"92":{"position":[[613,36]]},"100":{"position":[[6,36]]}},"keywords":{}}],["users/{leafuserid}/cnhi",{"_index":1067,"title":{},"content":{"92":{"position":[[484,24],[542,24]]},"98":{"position":[[6,24]]},"99":{"position":[[5,24]]},"161":{"position":[[5,24]]},"162":{"position":[[6,24]]},"163":{"position":[[8,24]]},"165":{"position":[[5,24]]}},"keywords":{}}],["users/{leafuserid}/farm",{"_index":2201,"title":{},"content":{"258":{"position":[[1465,25]]},"279":{"position":[[6,25]]},"290":{"position":[[398,25]]}},"keywords":{}}],["users/{leafuserid}/farms/{id",{"_index":2202,"title":{},"content":{"258":{"position":[[1509,30]]},"278":{"position":[[5,30]]},"280":{"position":[[5,30]]},"290":{"position":[[442,30]]}},"keywords":{}}],["users/{leafuserid}/field",{"_index":2267,"title":{},"content":{"262":{"position":[[6,26]]}},"keywords":{}}],["users/{leafuserid}/fields/intersect",{"_index":2194,"title":{},"content":{"258":{"position":[[754,37]]},"266":{"position":[[6,37]]}},"keywords":{}}],["users/{leafuserid}/fields/sync",{"_index":2393,"title":{},"content":{"268":{"position":[[6,31]]}},"keywords":{}}],["users/{leafuserid}/fields/{fieldid}/boundari",{"_index":2198,"title":{},"content":{"258":{"position":[[1083,46],[1255,44],[1338,44]]},"272":{"position":[[5,47]]},"274":{"position":[[5,45]]},"275":{"position":[[5,45]]},"288":{"position":[[2259,46],[2431,44],[2514,44]]}},"keywords":{}}],["users/{leafuserid}/fields/{fieldid}/boundaries/{boundaryid",{"_index":2199,"title":{},"content":{"258":{"position":[[1160,59]]},"273":{"position":[[5,60]]},"288":{"position":[[2336,59]]}},"keywords":{}}],["users/{leafuserid}/fields/{fieldid}/oper",{"_index":2496,"title":{},"content":{"289":{"position":[[362,47]]}},"keywords":{}}],["users/{leafuserid}/fields/{fieldid}/operations/fil",{"_index":2192,"title":{},"content":{"258":{"position":[[572,53]]},"264":{"position":[[5,53]]},"289":{"position":[[444,53]]}},"keywords":{}}],["users/{leafuserid}/fields/{fieldid}/operations/files/{fileid",{"_index":2193,"title":{},"content":{"258":{"position":[[663,62]]},"265":{"position":[[5,62]]},"289":{"position":[[632,62]]}},"keywords":{}}],["users/{leafuserid}/fields/{fieldid}/operations/{fileid",{"_index":2497,"title":{},"content":{"289":{"position":[[543,56]]}},"keywords":{}}],["users/{leafuserid}/fields/{id",{"_index":2265,"title":{},"content":{"261":{"position":[[5,31]]},"263":{"position":[[7,31]]}},"keywords":{}}],["users/{leafuserid}/grow",{"_index":2204,"title":{},"content":{"258":{"position":[[1640,27]]},"284":{"position":[[6,27]]},"291":{"position":[[414,27]]}},"keywords":{}}],["users/{leafuserid}/growers/{id",{"_index":2203,"title":{},"content":{"258":{"position":[[1586,32],[1688,32]]},"283":{"position":[[5,32]]},"285":{"position":[[5,32]]},"291":{"position":[[462,32]]}},"keywords":{}}],["users/{leafuserid}/impl",{"_index":525,"title":{},"content":{"56":{"position":[[454,30]]}},"keywords":{}}],["users/{leafuserid}/implements/{implementid",{"_index":526,"title":{},"content":{"56":{"position":[[506,44]]},"64":{"position":[[5,44]]}},"keywords":{}}],["users/{leafuserid}/john",{"_index":1601,"title":{},"content":{"168":{"position":[[5,24]]},"169":{"position":[[6,24]]},"170":{"position":[[8,24]]},"172":{"position":[[5,24]]}},"keywords":{}}],["users/{leafuserid}/johndeer",{"_index":1064,"title":{},"content":{"92":{"position":[[271,29],[340,29]]},"95":{"position":[[6,29]]},"96":{"position":[[5,29]]}},"keywords":{}}],["users/{leafuserid}/johndeere/download",{"_index":1066,"title":{},"content":{"92":{"position":[[412,38]]},"97":{"position":[[5,38]]}},"keywords":{}}],["users/{leafuserid}/lay",{"_index":967,"title":{},"content":{"86":{"position":[[429,26]]},"88":{"position":[[5,26]]}},"keywords":{}}],["users/{leafuserid}/layers/climatefieldview",{"_index":970,"title":{},"content":{"86":{"position":[[497,43]]},"89":{"position":[[6,43]]}},"keywords":{}}],["users/{leafuserid}/machin",{"_index":521,"title":{},"content":{"56":{"position":[[94,28],[273,28]]},"57":{"position":[[5,28]]},"60":{"position":[[6,28]]}},"keywords":{}}],["users/{leafuserid}/machines/{machineid",{"_index":522,"title":{},"content":{"56":{"position":[[141,40],[325,40],[390,40]]}},"keywords":{}}],["users/{leafuserid}/machines/{machineid}/fil",{"_index":523,"title":{},"content":{"56":{"position":[[204,46]]}},"keywords":{}}],["users/{leafuserid}/oper",{"_index":527,"title":{},"content":{"56":{"position":[[573,29]]}},"keywords":{}}],["users/{leafuserid}/operators/{operatorid",{"_index":528,"title":{},"content":{"56":{"position":[[623,42]]},"66":{"position":[[5,42]]}},"keywords":{}}],["users/{leafuserid}/organizations/{provid",{"_index":3222,"title":{},"content":{"406":{"position":[[371,44]]},"408":{"position":[[5,44]]}},"keywords":{}}],["users/{leafuserid}/products/matching/operations/{operationid",{"_index":745,"title":{},"content":{"69":{"position":[[245,62]]}},"keywords":{}}],["users/{leafuserid}/products/summari",{"_index":742,"title":{},"content":{"69":{"position":[[90,36]]},"71":{"position":[[5,36]]}},"keywords":{}}],["users/{leafuserid}/raven",{"_index":1605,"title":{},"content":{"175":{"position":[[5,25]]},"176":{"position":[[6,25]]},"177":{"position":[[8,25]]},"179":{"position":[[5,25]]},"182":{"position":[[5,25]]},"183":{"position":[[6,25]]},"184":{"position":[[8,25]]},"186":{"position":[[5,25]]}},"keywords":{}}],["users/{leafuserid}/ravenslingshot",{"_index":1063,"title":{},"content":{"92":{"position":[[117,34],[196,34]]},"93":{"position":[[6,34]]},"94":{"position":[[5,34]]}},"keywords":{}}],["users/{leafuserid}/sentera",{"_index":1610,"title":{},"content":{"189":{"position":[[5,27]]},"190":{"position":[[6,27]]},"191":{"position":[[8,27]]},"193":{"position":[[5,27]]}},"keywords":{}}],["users/{leafuserid}/stara",{"_index":1615,"title":{},"content":{"196":{"position":[[5,25]]},"197":{"position":[[6,25]]},"198":{"position":[[8,25]]},"200":{"position":[[5,25]]}},"keywords":{}}],["users/{leafuserid}/trimbl",{"_index":1069,"title":{},"content":{"92":{"position":[[686,27]]},"101":{"position":[[6,27]]},"203":{"position":[[5,27]]},"204":{"position":[[6,27]]},"205":{"position":[[8,27]]},"207":{"position":[[5,27]]}},"keywords":{}}],["users/{leafuserid}/varieties/summari",{"_index":887,"title":{},"content":{"77":{"position":[[83,37]]},"79":{"position":[[5,37]]}},"keywords":{}}],["users/{leafuserid}/weather/forecast/field/{fieldid}/daili",{"_index":4096,"title":{},"content":{"517":{"position":[[353,58]]},"519":{"position":[[5,58]]}},"keywords":{}}],["users/{leafuserid}/weather/forecast/field/{fieldid}/hourli",{"_index":4097,"title":{},"content":{"517":{"position":[[436,59]]},"520":{"position":[[5,59]]}},"keywords":{}}],["users/{leafuserid}/weather/historical/field/{fieldid}/daili",{"_index":4101,"title":{},"content":{"517":{"position":[[667,60]]},"523":{"position":[[5,60]]}},"keywords":{}}],["users/{leafuserid}/weather/historical/field/{fieldid}/hourli",{"_index":4102,"title":{},"content":{"517":{"position":[[754,61]]},"524":{"position":[[5,61]]}},"keywords":{}}],["user’",{"_index":2062,"title":{},"content":{"244":{"position":[[444,6],[2062,6]]},"245":{"position":[[1069,6]]}},"keywords":{}}],["usual",{"_index":464,"title":{},"content":{"51":{"position":[[57,7]]},"52":{"position":[[235,7]]},"220":{"position":[[2396,7]]},"247":{"position":[[245,7]]},"325":{"position":[[66,8]]},"341":{"position":[[875,7]]},"350":{"position":[[483,7]]},"362":{"position":[[508,7]]},"365":{"position":[[1543,7]]},"398":{"position":[[494,7]]}},"keywords":{}}],["usuallysentinel",{"_index":1732,"title":{},"content":{"220":{"position":[[2295,15]]}},"keywords":{}}],["utf",{"_index":152,"title":{},"content":{"3":{"position":[[908,4]]},"480":{"position":[[7871,4],[8002,4]]}},"keywords":{}}],["utm",{"_index":1032,"title":{},"content":{"89":{"position":[[408,3]]}},"keywords":{}}],["uuid",{"_index":242,"title":{},"content":{"5":{"position":[[1928,7]]},"6":{"position":[[255,7]]},"7":{"position":[[256,7]]},"8":{"position":[[656,9],[678,9],[1141,9],[1163,9]]},"58":{"position":[[301,7],[323,7]]},"59":{"position":[[244,4],[2724,7],[2746,7],[2767,7]]},"63":{"position":[[200,4]]},"70":{"position":[[340,4]]},"78":{"position":[[132,4]]},"82":{"position":[[133,4]]},"88":{"position":[[1540,6],[1593,6]]},"255":{"position":[[678,7],[831,7]]},"262":{"position":[[464,4]]},"268":{"position":[[467,8]]},"269":{"position":[[778,7]]},"287":{"position":[[690,7],[806,7],[848,7],[901,9],[920,9],[944,9],[1294,7],[1410,7],[1452,7],[1505,9],[1524,9]]},"288":{"position":[[1676,7],[1754,7]]},"289":{"position":[[13,7],[285,6]]},"290":{"position":[[99,7],[153,7],[175,6]]},"291":{"position":[[50,7],[146,6]]},"297":{"position":[[260,7],[304,7],[403,7],[447,7]]},"346":{"position":[[218,4],[484,4]]},"360":{"position":[[1013,5]]},"378":{"position":[[879,7],[1715,7],[3148,7]]},"379":{"position":[[945,7],[1798,7],[3181,7]]},"380":{"position":[[864,7],[1645,7],[2673,7]]},"382":{"position":[[1781,7]]},"383":{"position":[[1769,7]]},"384":{"position":[[1447,7]]},"390":{"position":[[228,4]]},"411":{"position":[[295,7],[357,7],[511,6],[541,7]]},"498":{"position":[[591,7]]},"500":{"position":[[215,7]]},"501":{"position":[[418,7]]},"502":{"position":[[672,6],[950,7]]},"503":{"position":[[92,7],[533,6],[652,7],[823,7]]}},"keywords":{}}],["uuid)pag",{"_index":2416,"title":{},"content":{"277":{"position":[[254,11]]},"282":{"position":[[216,11]]}},"keywords":{}}],["v1",{"_index":1158,"title":{},"content":{"104":{"position":[[463,2]]}},"keywords":{}}],["v2",{"_index":1159,"title":{"396":{"position":[[23,2]]}},"content":{"104":{"position":[[498,2],[1064,2],[1309,2],[1500,2],[1735,2]]},"105":{"position":[[1127,3],[1408,2],[3310,2]]},"389":{"position":[[541,2]]},"415":{"position":[[326,3]]}},"keywords":{}}],["v9",{"_index":3968,"title":{},"content":{"490":{"position":[[302,3]]}},"keywords":{}}],["v9/tiles/{z}/{x}/{y}?access_token",{"_index":3694,"title":{},"content":{"474":{"position":[[842,35]]}},"keywords":{}}],["valid",{"_index":197,"title":{"366":{"position":[[0,5]]}},"content":{"5":{"position":[[764,5],[2164,10]]},"16":{"position":[[45,6]]},"51":{"position":[[584,5]]},"57":{"position":[[1237,5]]},"59":{"position":[[2067,5]]},"63":{"position":[[979,5]]},"74":{"position":[[88,10],[817,11]]},"75":{"position":[[160,11],[356,11],[731,11]]},"130":{"position":[[6042,5],[6077,5],[6325,5]]},"140":{"position":[[227,6]]},"147":{"position":[[224,6]]},"154":{"position":[[245,6]]},"161":{"position":[[218,6]]},"168":{"position":[[230,6]]},"175":{"position":[[240,6]]},"182":{"position":[[220,6]]},"189":{"position":[[224,6]]},"196":{"position":[[220,6]]},"203":{"position":[[224,6]]},"218":{"position":[[140,5],[444,5]]},"219":{"position":[[126,5]]},"222":{"position":[[1150,5]]},"275":{"position":[[1041,11],[1053,8]]},"288":{"position":[[2088,11],[2100,8]]},"292":{"position":[[202,8]]},"293":{"position":[[414,10]]},"297":{"position":[[378,8],[564,8]]},"298":{"position":[[672,8]]},"303":{"position":[[274,5]]},"304":{"position":[[286,5]]},"305":{"position":[[280,5]]},"315":{"position":[[6,5]]},"345":{"position":[[668,5]]},"346":{"position":[[1584,5]]},"353":{"position":[[411,12]]},"366":{"position":[[49,5]]},"390":{"position":[[1090,5]]},"467":{"position":[[5824,6],[6551,5]]},"473":{"position":[[1424,11],[6578,5]]},"480":{"position":[[5205,5],[5324,5],[7193,5]]}},"keywords":{}}],["valu",{"_index":82,"title":{},"content":{"2":{"position":[[392,5]]},"57":{"position":[[1050,6],[1073,5],[1243,6],[1409,5]]},"59":{"position":[[1253,5],[1310,5],[1378,5],[1451,5],[1519,5],[1880,6],[1903,5],[2073,6],[2622,8],[2678,8],[2861,8],[2917,8]]},"63":{"position":[[792,6],[815,5],[985,6],[1135,5]]},"65":{"position":[[371,5]]},"70":{"position":[[563,6],[586,5],[638,7]]},"71":{"position":[[327,6],[350,5],[402,7]]},"72":{"position":[[59,6],[366,5]]},"78":{"position":[[355,6],[378,5],[430,7]]},"79":{"position":[[353,6],[376,5],[428,7]]},"80":{"position":[[61,6],[313,5]]},"82":{"position":[[356,6],[379,5],[431,7]]},"83":{"position":[[62,6],[314,5]]},"88":{"position":[[394,5]]},"89":{"position":[[303,6]]},"101":{"position":[[555,6]]},"103":{"position":[[137,5],[497,5],[649,5],[791,5],[1112,5],[1236,5],[1657,5]]},"104":{"position":[[129,5],[313,5],[636,5],[728,5],[780,7],[800,5],[1174,6],[1218,5],[1403,5],[1610,6],[1647,5],[2041,5],[2549,7]]},"105":{"position":[[524,5],[561,6],[963,5],[1321,5],[1519,6],[1669,5],[1905,5],[2014,5],[2075,6],[2271,5],[2399,5],[2773,5],[3045,5],[3223,5]]},"120":{"position":[[425,7]]},"122":{"position":[[127,6]]},"140":{"position":[[238,5]]},"147":{"position":[[235,5]]},"154":{"position":[[256,5]]},"161":{"position":[[229,5]]},"168":{"position":[[241,5]]},"175":{"position":[[251,5]]},"182":{"position":[[231,5]]},"189":{"position":[[235,5]]},"196":{"position":[[231,5]]},"203":{"position":[[235,5]]},"218":{"position":[[257,6],[280,5],[450,6]]},"222":{"position":[[1475,6],[1578,5]]},"238":{"position":[[89,7]]},"244":{"position":[[683,5],[759,5],[841,5],[2327,5]]},"245":{"position":[[569,6],[627,5],[1273,5]]},"246":{"position":[[1306,5]]},"262":{"position":[[1175,8]]},"266":{"position":[[291,5],[684,5],[787,6],[1710,8],[2332,8]]},"275":{"position":[[995,8]]},"288":{"position":[[2055,8]]},"292":{"position":[[188,6]]},"298":{"position":[[252,5],[291,5]]},"319":{"position":[[117,6]]},"320":{"position":[[22,5],[62,7],[98,5],[167,5],[197,7]]},"337":{"position":[[771,5]]},"338":{"position":[[3264,5],[3556,5]]},"341":{"position":[[814,6]]},"346":{"position":[[1409,6],[1432,5],[1484,7],[1590,6],[1737,5]]},"349":{"position":[[804,6],[836,6],[861,6],[894,6]]},"353":{"position":[[335,5]]},"361":{"position":[[721,8],[899,8],[1190,8],[1329,8],[2163,8],[2337,8],[2401,8],[2463,8],[2517,8],[2577,8],[2642,8],[2703,8],[3048,8]]},"378":{"position":[[2514,5]]},"379":{"position":[[2563,5]]},"380":{"position":[[2114,5]]},"382":{"position":[[499,5]]},"383":{"position":[[502,5]]},"384":{"position":[[241,5]]},"390":{"position":[[903,6],[926,5],[1096,6],[1190,5]]},"395":{"position":[[814,6],[846,6],[871,6],[904,6]]},"396":{"position":[[1005,6]]},"413":{"position":[[680,5],[763,5]]},"414":{"position":[[387,8],[646,8],[928,8],[1073,8],[1491,8],[1674,8],[2190,8],[2254,8],[2317,8],[2372,8],[2431,8],[2496,8],[2557,8]]},"448":{"position":[[201,5]]},"473":{"position":[[365,6]]},"511":{"position":[[2107,6]]},"515":{"position":[[2092,6]]},"519":{"position":[[816,9],[861,8],[911,8],[977,9],[1022,8],[1072,8],[1137,9],[1182,8],[1232,8],[1297,9],[1342,8],[1392,8],[1446,9],[1491,8],[1555,8],[1632,9],[1677,8],[1726,8],[1788,9],[1833,8],[1882,8],[1940,9],[1985,8],[2035,8],[2102,9],[2147,8],[2197,8],[2298,9],[2343,8],[2392,8],[2450,9],[2495,8],[2545,8],[2609,9],[2654,8],[2704,8],[2765,9],[2810,8],[2860,8],[2913,9],[2958,8],[3022,8],[3101,9],[3146,8],[3197,8]]},"520":{"position":[[809,9],[854,8],[903,8],[964,9],[1009,8],[1059,8],[1122,9],[1167,8],[1216,8],[1281,9],[1326,8],[1375,8],[1440,9],[1485,8],[1534,8],[1600,9],[1645,8],[1694,8],[1761,9],[1806,8],[1855,8],[1921,9],[1966,8],[2017,8],[2075,9],[2120,8],[2170,8],[2226,9],[2271,8],[2320,8],[2376,9],[2421,8],[2470,8],[2534,9],[2579,8],[2629,8],[2694,9],[2739,8],[2790,8],[2872,9],[2917,8],[2967,8],[3027,9],[3072,8],[3121,8],[3183,9],[3228,8],[3278,8],[3335,9],[3380,8],[3430,8],[3486,9],[3531,8],[3580,8],[3641,9],[3686,8],[3737,8]]},"521":{"position":[[782,9],[827,8],[877,8],[943,9],[988,8],[1038,8],[1103,9],[1148,8],[1198,8],[1263,9],[1308,8],[1358,8],[1412,9],[1457,8],[1521,8],[1598,9],[1643,8],[1692,8],[1754,9],[1799,8],[1848,8],[1906,9],[1951,8],[2001,8],[2068,9],[2113,8],[2163,8],[2264,9],[2309,8],[2358,8],[2416,9],[2461,8],[2511,8],[2575,9],[2620,8],[2670,8],[2731,9],[2776,8],[2826,8],[2879,9],[2924,8],[2988,8],[3067,9],[3112,8],[3163,8]]},"522":{"position":[[775,9],[820,8],[869,8],[930,9],[975,8],[1025,8],[1088,9],[1133,8],[1182,8],[1247,9],[1292,8],[1341,8],[1406,9],[1451,8],[1500,8],[1566,9],[1611,8],[1660,8],[1727,9],[1772,8],[1821,8],[1887,9],[1932,8],[1983,8],[2041,9],[2086,8],[2136,8],[2192,9],[2237,8],[2286,8],[2342,9],[2387,8],[2436,8],[2500,9],[2545,8],[2595,8],[2660,9],[2705,8],[2756,8],[2838,9],[2883,8],[2933,8],[2993,9],[3038,8],[3087,8],[3149,9],[3194,8],[3244,8],[3301,9],[3346,8],[3396,8],[3452,9],[3497,8],[3546,8],[3607,9],[3652,8],[3703,8]]},"523":{"position":[[1004,9],[1049,8],[1099,8],[1165,9],[1210,8],[1260,8],[1325,9],[1370,8],[1420,8],[1485,9],[1530,8],[1580,8],[1634,9],[1679,8],[1743,8],[1820,9],[1865,8],[1914,8],[1976,9],[2021,8],[2070,8],[2128,9],[2173,8],[2223,8],[2290,9],[2335,8],[2385,8],[2486,9],[2531,8],[2580,8],[2638,9],[2683,8],[2733,8],[2797,9],[2842,8],[2892,8],[2953,9],[2998,8],[3048,8],[3101,9],[3146,8],[3210,8],[3289,9],[3334,8],[3385,8]]},"524":{"position":[[794,9],[839,8],[888,8],[950,9],[995,8],[1044,8],[1110,9],[1155,8],[1204,8],[1272,9],[1317,8],[1366,8],[1435,9],[1480,8],[1529,8],[1595,9],[1640,8],[1691,8],[1749,9],[1794,8],[1844,8],[1900,9],[1945,8],[1995,8],[2052,9],[2097,8],[2146,8],[2210,9],[2255,8],[2305,8],[2370,9],[2415,8],[2466,8],[2549,9],[2594,8],[2643,8],[2701,9],[2746,8],[2795,8],[2856,9],[2901,8],[2951,8],[3014,9],[3059,8],[3109,8],[3166,9],[3211,8],[3261,8],[3317,9],[3362,8],[3411,8],[3472,9],[3517,8],[3568,8]]},"525":{"position":[[970,9],[1015,8],[1065,8],[1131,9],[1176,8],[1226,8],[1291,9],[1336,8],[1386,8],[1451,9],[1496,8],[1546,8],[1600,9],[1645,8],[1709,8],[1786,9],[1831,8],[1880,8],[1942,9],[1987,8],[2036,8],[2094,9],[2139,8],[2189,8],[2256,9],[2301,8],[2351,8],[2452,9],[2497,8],[2546,8],[2604,9],[2649,8],[2699,8],[2763,9],[2808,8],[2858,8],[2919,9],[2964,8],[3014,8],[3067,9],[3112,8],[3176,8],[3255,9],[3300,8],[3351,8]]},"526":{"position":[[760,9],[805,8],[854,8],[916,9],[961,8],[1010,8],[1076,9],[1121,8],[1170,8],[1238,9],[1283,8],[1332,8],[1401,9],[1446,8],[1495,8],[1561,9],[1606,8],[1657,8],[1715,9],[1760,8],[1810,8],[1866,9],[1911,8],[1961,8],[2018,9],[2063,8],[2112,8],[2176,9],[2221,8],[2271,8],[2336,9],[2381,8],[2432,8],[2515,9],[2560,8],[2609,8],[2667,9],[2712,8],[2761,8],[2822,9],[2867,8],[2917,8],[2980,9],[3025,8],[3075,8],[3132,9],[3177,8],[3227,8],[3283,9],[3328,8],[3377,8],[3438,9],[3483,8],[3534,8]]}},"keywords":{}}],["valueasdoubl",{"_index":930,"title":{},"content":{"82":{"position":[[856,16]]},"83":{"position":[[678,16]]}},"keywords":{}}],["valuescolorramp",{"_index":2021,"title":{},"content":{"239":{"position":[[193,15]]}},"keywords":{}}],["valuesendtim",{"_index":4107,"title":{},"content":{"519":{"position":[[260,13]]},"520":{"position":[[262,13]]},"521":{"position":[[249,13]]},"522":{"position":[[251,13]]},"523":{"position":[[465,13]]},"524":{"position":[[264,13]]},"525":{"position":[[454,13]]},"526":{"position":[[253,13]]}},"keywords":{}}],["valuesleaffileid",{"_index":626,"title":{},"content":{"59":{"position":[[227,16]]}},"keywords":{}}],["valuesleafuserid",{"_index":697,"title":{},"content":{"63":{"position":[[183,16]]},"70":{"position":[[323,16]]},"78":{"position":[[115,16]]},"82":{"position":[[116,16]]},"346":{"position":[[201,16]]},"390":{"position":[[211,16]]}},"keywords":{}}],["valuesnam",{"_index":531,"title":{},"content":{"57":{"position":[[201,10]]},"71":{"position":[[113,10]]},"72":{"position":[[242,10]]},"79":{"position":[[115,10]]},"80":{"position":[[189,10]]},"83":{"position":[[189,10]]}},"keywords":{}}],["valuestyp",{"_index":972,"title":{},"content":{"88":{"position":[[114,10]]}},"keywords":{}}],["valuesuploadtyp",{"_index":1018,"title":{},"content":{"89":{"position":[[100,16]]}},"keywords":{}}],["valuesvalid",{"_index":2499,"title":{},"content":{"292":{"position":[[211,11]]}},"keywords":{}}],["var",{"_index":3706,"title":{},"content":{"474":{"position":[[1472,3],[1573,3]]},"479":{"position":[[382,3]]},"480":{"position":[[10481,3],[10499,3]]},"486":{"position":[[317,3]]},"488":{"position":[[236,3]]}},"keywords":{}}],["vari",{"_index":2144,"title":{},"content":{"252":{"position":[[1402,4]]},"341":{"position":[[439,4]]},"342":{"position":[[127,4]]},"350":{"position":[[364,4]]},"398":{"position":[[375,4]]}},"keywords":{}}],["variabl",{"_index":467,"title":{},"content":{"51":{"position":[[89,8]]},"244":{"position":[[1622,8],[1896,9]]},"245":{"position":[[191,9],[313,8],[648,8],[896,9]]},"246":{"position":[[1331,8]]},"247":{"position":[[659,8]]},"248":{"position":[[748,8]]},"338":{"position":[[3115,9]]},"467":{"position":[[927,8],[4422,8]]},"474":{"position":[[246,8],[303,8],[410,9]]},"507":{"position":[[141,9]]},"511":{"position":[[1872,9],[2072,9]]},"515":{"position":[[1855,9],[2057,9]]}},"keywords":{}}],["varianc",{"_index":506,"title":{},"content":{"52":{"position":[[197,8]]}},"keywords":{}}],["varieti",{"_index":510,"title":{"77":{"position":[[0,9]]},"78":{"position":[[8,9]]},"79":{"position":[[15,9]]},"80":{"position":[[11,9]]}},"content":{"53":{"position":[[53,9]]},"77":{"position":[[29,9],[43,10],[69,9],[132,9]]},"78":{"position":[[5,10],[24,9]]},"79":{"position":[[51,9],[786,7],[937,7]]},"80":{"position":[[34,9],[83,9],[212,7],[378,9]]},"253":{"position":[[714,7],[773,7]]},"264":{"position":[[1520,12]]},"265":{"position":[[531,12]]},"289":{"position":[[146,12]]},"320":{"position":[[3311,7]]},"357":{"position":[[981,9],[1015,7],[1087,7]]},"361":{"position":[[2207,12]]},"362":{"position":[[259,9]]},"364":{"position":[[716,10]]},"365":{"position":[[721,7],[745,7]]},"414":{"position":[[2061,12]]}},"keywords":{}}],["varieties/search",{"_index":888,"title":{},"content":{"77":{"position":[[146,17]]},"80":{"position":[[5,17]]}},"keywords":{}}],["variou",{"_index":1552,"title":{},"content":{"136":{"position":[[146,7]]},"340":{"position":[[349,7]]}},"keywords":{}}],["vehicl",{"_index":555,"title":{},"content":{"57":{"position":[[752,7]]},"130":{"position":[[3036,8]]}},"keywords":{}}],["veri",{"_index":97,"title":{},"content":{"3":{"position":[[5,4]]},"130":{"position":[[1022,4]]},"248":{"position":[[45,4]]}},"keywords":{}}],["verifi",{"_index":109,"title":{},"content":{"3":{"position":[[144,6],[419,6],[704,6]]},"47":{"position":[[1111,6]]},"244":{"position":[[350,9],[401,9],[556,8],[1276,9]]},"467":{"position":[[1595,6],[5770,6],[7135,6],[7352,6]]},"480":{"position":[[7393,6],[7510,9]]}},"keywords":{}}],["verify_fil",{"_index":3787,"title":{},"content":{"480":{"position":[[7354,16]]},"487":{"position":[[414,16]]}},"keywords":{}}],["versa",{"_index":1392,"title":{},"content":{"130":{"position":[[2467,5],[2567,5]]},"319":{"position":[[203,6]]}},"keywords":{}}],["version",{"_index":1394,"title":{},"content":{"130":{"position":[[2550,9],[2645,8]]},"315":{"position":[[31,8]]},"415":{"position":[[344,7],[730,8]]}},"keywords":{}}],["vertic",{"_index":3062,"title":{},"content":{"365":{"position":[[1344,8]]}},"keywords":{}}],["vetch",{"_index":1941,"title":{},"content":{"229":{"position":[[2086,7]]}},"keywords":{}}],["via",{"_index":380,"title":{"495":{"position":[[26,3]]}},"content":{"28":{"position":[[109,3]]},"29":{"position":[[109,3]]},"52":{"position":[[71,3]]},"103":{"position":[[1086,3]]},"131":{"position":[[131,3]]},"132":{"position":[[120,3]]},"135":{"position":[[49,3],[747,3]]},"246":{"position":[[167,3]]},"263":{"position":[[128,3]]},"288":{"position":[[66,3]]},"340":{"position":[[30,3],[378,3]]},"367":{"position":[[76,3]]},"411":{"position":[[659,3]]},"415":{"position":[[1465,3]]},"422":{"position":[[235,3]]},"439":{"position":[[105,3]]},"482":{"position":[[239,3]]},"493":{"position":[[262,3]]},"495":{"position":[[264,3]]}},"keywords":{}}],["vice",{"_index":2665,"title":{},"content":{"319":{"position":[[198,4]]}},"keywords":{}}],["view",{"_index":1591,"title":{},"content":{"154":{"position":[[39,4],[478,4]]},"155":{"position":[[40,4],[491,4]]},"156":{"position":[[42,4],[296,4]]},"158":{"position":[[39,4],[318,4]]}},"keywords":{}}],["views/ejs/map.ej",{"_index":3724,"title":{},"content":{"480":{"position":[[155,22]]},"482":{"position":[[84,19]]}},"keywords":{}}],["vin",{"_index":554,"title":{},"content":{"57":{"position":[[728,3],[1356,4],[2045,6],[2498,6]]},"58":{"position":[[525,6]]},"60":{"position":[[145,6],[863,6]]},"61":{"position":[[268,6],[1019,6]]},"447":{"position":[[273,4]]},"449":{"position":[[59,4],[105,3]]}},"keywords":{}}],["vine",{"_index":1960,"title":{},"content":{"229":{"position":[[2307,7]]}},"keywords":{}}],["visibl",{"_index":3390,"title":{},"content":{"420":{"position":[[503,10]]},"488":{"position":[[2632,10],[2691,13]]},"489":{"position":[[210,14],[242,10],[293,13],[363,13],[377,11]]}},"keywords":{}}],["visiviel",{"_index":3962,"title":{},"content":{"489":{"position":[[161,8],[228,9]]}},"keywords":{}}],["visual",{"_index":507,"title":{},"content":{"52":{"position":[[223,11]]},"117":{"position":[[1182,9]]}},"keywords":{}}],["vnoyi6a_fi_edovsouthernm_cv_prod_82f9b3d6_211018_151052",{"_index":989,"title":{},"content":{"88":{"position":[[905,58]]}},"keywords":{}}],["void",{"_index":3595,"title":{},"content":{"473":{"position":[[389,4]]},"474":{"position":[[385,4]]}},"keywords":{}}],["volum",{"_index":1237,"title":{},"content":{"105":{"position":[[2068,6]]},"413":{"position":[[673,6]]},"450":{"position":[[104,6]]}},"keywords":{}}],["volumetr",{"_index":2662,"title":{},"content":{"319":{"position":[[140,10]]},"511":{"position":[[743,10]]},"515":{"position":[[726,10]]}},"keywords":{}}],["voyag",{"_index":1379,"title":{},"content":{"130":{"position":[[2251,7]]}},"keywords":{}}],["vrdomainid",{"_index":933,"title":{},"content":{"82":{"position":[[896,13]]},"83":{"position":[[718,13]]}},"keywords":{}}],["vrsolutionrateliquid",{"_index":934,"title":{},"content":{"82":{"position":[[910,22]]},"83":{"position":[[732,22]]}},"keywords":{}}],["vs",{"_index":2830,"title":{"342":{"position":[[21,2]]}},"content":{},"keywords":{}}],["vy1",{"_index":1381,"title":{},"content":{"130":{"position":[[2284,5]]}},"keywords":{}}],["w/m",{"_index":4067,"title":{},"content":{"511":{"position":[[1500,4],[1621,4]]},"515":{"position":[[1483,4],[1604,4]]},"520":{"position":[[2051,6],[2822,6]]},"522":{"position":[[2017,6],[2788,6]]},"524":{"position":[[1725,6],[2499,6]]},"526":{"position":[[1691,6],[2465,6]]}},"keywords":{}}],["wait",{"_index":3783,"title":{},"content":{"480":{"position":[[7019,4]]},"486":{"position":[[527,4]]}},"keywords":{}}],["walk",{"_index":2032,"title":{},"content":{"242":{"position":[[158,4]]}},"keywords":{}}],["walnut",{"_index":1985,"title":{},"content":{"229":{"position":[[2676,8]]},"320":{"position":[[2731,6]]}},"keywords":{}}],["wanna",{"_index":15,"title":{},"content":{"0":{"position":[[147,5],[1289,5]]}},"keywords":{}}],["want",{"_index":164,"title":{},"content":{"5":{"position":[[72,4]]},"47":{"position":[[353,4]]},"48":{"position":[[698,4]]},"222":{"position":[[748,4]]},"223":{"position":[[223,6]]},"242":{"position":[[765,4]]},"246":{"position":[[939,4],[982,4],[1377,4]]},"247":{"position":[[706,4]]},"248":{"position":[[140,4]]},"258":{"position":[[287,4]]},"338":{"position":[[3710,4]]},"345":{"position":[[708,4]]},"362":{"position":[[19,4]]},"418":{"position":[[235,4]]},"423":{"position":[[549,4]]},"474":{"position":[[107,5]]},"479":{"position":[[510,4]]},"486":{"position":[[591,4]]},"512":{"position":[[222,7]]},"523":{"position":[[326,7]]},"525":{"position":[[315,7]]}},"keywords":{}}],["want.here'",{"_index":1625,"title":{},"content":{"209":{"position":[[337,11]]}},"keywords":{}}],["warn",{"_index":312,"title":{},"content":{"9":{"position":[[118,7]]},"144":{"position":[[473,7]]},"151":{"position":[[469,7]]},"158":{"position":[[491,7]]},"165":{"position":[[463,7]]},"172":{"position":[[475,7]]},"179":{"position":[[485,7]]},"186":{"position":[[465,7]]},"193":{"position":[[469,7]]},"200":{"position":[[465,7]]},"207":{"position":[[460,7]]},"223":{"position":[[58,7]]},"255":{"position":[[945,7]]},"269":{"position":[[855,7]]},"293":{"position":[[494,7]]},"510":{"position":[[453,7]]},"526":{"position":[[3673,7]]}},"keywords":{}}],["water",{"_index":939,"title":{},"content":{"82":{"position":[[1064,8]]},"83":{"position":[[886,8]]},"511":{"position":[[453,5],[566,5],[679,5],[726,5],[1152,7]]},"515":{"position":[[436,5],[549,5],[662,5],[709,5],[1135,7]]}},"keywords":{}}],["watermelon",{"_index":1989,"title":{},"content":{"229":{"position":[[2721,12]]},"320":{"position":[[2740,10]]}},"keywords":{}}],["wave",{"_index":3995,"title":{},"content":{"509":{"position":[[90,4],[109,4]]},"513":{"position":[[90,4],[109,4]]}},"keywords":{}}],["way",{"_index":750,"title":{"340":{"position":[[0,4]]}},"content":{"70":{"position":[[104,4]]},"122":{"position":[[369,3]]},"135":{"position":[[14,4]]},"222":{"position":[[554,4]]},"252":{"position":[[381,3]]},"338":{"position":[[3225,3],[3363,3]]},"340":{"position":[[43,5]]},"387":{"position":[[26,3]]},"473":{"position":[[1299,4]]},"493":{"position":[[23,3]]},"498":{"position":[[143,3]]},"517":{"position":[[78,3]]}},"keywords":{}}],["wc",{"_index":1969,"title":{},"content":{"229":{"position":[[2461,4]]},"320":{"position":[[447,3]]}},"keywords":{}}],["we'll",{"_index":3395,"title":{},"content":{"423":{"position":[[152,5]]},"430":{"position":[[150,5]]}},"keywords":{}}],["we'r",{"_index":4,"title":{},"content":{"0":{"position":[[0,5],[527,5],[1262,5]]},"428":{"position":[[34,5],[149,5]]}},"keywords":{}}],["we'v",{"_index":29,"title":{},"content":{"0":{"position":[[376,5],[1111,5]]},"422":{"position":[[161,5],[341,5]]},"424":{"position":[[21,5]]}},"keywords":{}}],["weather",{"_index":2127,"title":{"506":{"position":[[0,7]]},"511":{"position":[[16,7]]},"515":{"position":[[16,7]]},"516":{"position":[[0,7]]}},"content":{"251":{"position":[[799,7],[845,7]]},"419":{"position":[[422,7]]},"507":{"position":[[10,8],[42,7],[133,7]]},"508":{"position":[[7,7],[62,7]]},"510":{"position":[[0,7],[23,7],[401,7]]},"512":{"position":[[18,7],[157,7],[241,7]]},"517":{"position":[[53,7]]},"519":{"position":[[85,7],[396,7]]},"520":{"position":[[87,7],[398,7]]},"521":{"position":[[62,7],[385,7]]},"522":{"position":[[64,7],[387,7]]},"523":{"position":[[87,7],[261,7],[345,7]]},"524":{"position":[[89,7]]},"525":{"position":[[64,7],[250,7],[334,7]]},"526":{"position":[[66,7]]}},"keywords":{}}],["weather/forecast/daily/{lat},{lon",{"_index":4099,"title":{},"content":{"517":{"position":[[532,35]]},"521":{"position":[[5,35]]}},"keywords":{}}],["weather/forecast/hourly/{lat},{lon",{"_index":4100,"title":{},"content":{"517":{"position":[[605,36]]},"522":{"position":[[5,36]]}},"keywords":{}}],["weather/historical/daily/{lat},{lon",{"_index":4103,"title":{},"content":{"517":{"position":[[854,37]]},"525":{"position":[[5,37]]}},"keywords":{}}],["weather/historical/hourly/{lat},{lon",{"_index":4104,"title":{},"content":{"517":{"position":[[931,38]]},"526":{"position":[[5,38]]}},"keywords":{}}],["webhook",{"_index":102,"title":{"5":{"position":[[9,7]]},"6":{"position":[[6,7]]},"7":{"position":[[8,8]]},"8":{"position":[[21,8]]},"9":{"position":[[9,7]]},"13":{"position":[[0,7]]},"484":{"position":[[7,7]]},"485":{"position":[[5,8]]}},"content":{"3":{"position":[[62,7],[151,7],[731,8]]},"5":{"position":[[6,9],[26,7],[126,7],[233,8],[320,7],[647,7],[806,7],[1898,7],[2321,7],[2356,7]]},"6":{"position":[[40,7]]},"7":{"position":[[5,9],[28,9]]},"8":{"position":[[58,9]]},"9":{"position":[[41,7],[142,7],[202,7]]},"11":{"position":[[213,7]]},"13":{"position":[[11,7],[133,7]]},"47":{"position":[[229,8],[664,8],[714,7],[803,8],[858,8],[990,9],[1080,9]]},"252":{"position":[[564,8]]},"387":{"position":[[907,10]]},"480":{"position":[[188,11],[277,7],[633,7],[693,7],[2539,9],[2753,10],[2966,10],[3327,7],[3374,7],[3481,9],[3586,9],[4154,7],[4249,7],[4905,7],[7599,10]]},"483":{"position":[[666,8]]},"484":{"position":[[71,8],[156,7],[517,8],[664,8],[734,7]]},"485":{"position":[[50,8],[136,7],[435,9]]}},"keywords":{}}],["webhook_id",{"_index":3756,"title":{},"content":{"480":{"position":[[4560,10],[4653,11]]}},"keywords":{}}],["webhook_response').text",{"_index":3886,"title":{},"content":{"484":{"position":[[356,32]]}},"keywords":{}}],["webhookcreateclick",{"_index":3882,"title":{},"content":{"484":{"position":[[195,20]]}},"keywords":{}}],["webhooks/fail",{"_index":257,"title":{},"content":{"8":{"position":[[5,16]]}},"keywords":{}}],["webhooks/{id",{"_index":249,"title":{},"content":{"6":{"position":[[5,14]]},"9":{"position":[[8,14]]}},"keywords":{}}],["websit",{"_index":3393,"title":{},"content":{"422":{"position":[[124,7]]}},"keywords":{}}],["weight",{"_index":3058,"title":{},"content":{"365":{"position":[[1191,6]]},"473":{"position":[[4573,7]]}},"keywords":{}}],["welcom",{"_index":48,"title":{"1":{"position":[[0,7]]},"2":{"position":[[0,7]]}},"content":{"256":{"position":[[0,7]]}},"keywords":{}}],["well",{"_index":1633,"title":{},"content":{"209":{"position":[[655,5]]},"291":{"position":[[306,5]]},"317":{"position":[[1463,5]]},"360":{"position":[[524,4]]},"415":{"position":[[1723,5]]},"426":{"position":[[91,5]]},"511":{"position":[[1147,4]]},"515":{"position":[[1130,4]]}},"keywords":{}}],["went",{"_index":3237,"title":{},"content":{"413":{"position":[[290,4]]},"480":{"position":[[5732,4]]}},"keywords":{}}],["wet",{"_index":2667,"title":{},"content":{"320":{"position":[[193,3],[1294,3],[3196,3]]},"429":{"position":[[402,3]]}},"keywords":{}}],["wetmass",{"_index":2920,"title":{},"content":{"360":{"position":[[373,7]]},"361":{"position":[[1374,10],[2324,10]]},"367":{"position":[[443,10]]},"368":{"position":[[432,10]]},"414":{"position":[[827,10],[2177,10]]},"415":{"position":[[3330,10]]},"416":{"position":[[435,10]]}},"keywords":{}}],["wetmassperarea",{"_index":2959,"title":{},"content":{"361":{"position":[[944,17],[2381,17]]},"366":{"position":[[119,14]]},"367":{"position":[[1862,17]]},"368":{"position":[[346,17]]},"414":{"position":[[1117,17],[2234,17]]},"415":{"position":[[2396,17]]},"416":{"position":[[349,17]]}},"keywords":{}}],["wetterdienst",{"_index":4012,"title":{},"content":{"510":{"position":[[113,12]]}},"keywords":{}}],["wetvolum",{"_index":2989,"title":{},"content":{"361":{"position":[[1788,12],[2448,12]]},"366":{"position":[[140,9]]},"367":{"position":[[723,12]]},"368":{"position":[[271,12]]},"414":{"position":[[1354,12],[2302,12]]},"415":{"position":[[3563,12]]},"416":{"position":[[274,12]]}},"keywords":{}}],["wetvolumeperarea",{"_index":2993,"title":{},"content":{"361":{"position":[[1905,19]]},"366":{"position":[[156,16]]},"367":{"position":[[1286,19]]},"368":{"position":[[290,19]]},"397":{"position":[[470,19]]},"414":{"position":[[1719,19]]},"415":{"position":[[2629,19]]},"416":{"position":[[293,19]]}},"keywords":{}}],["we’v",{"_index":1999,"title":{},"content":{"232":{"position":[[25,5]]}},"keywords":{}}],["wgs84",{"_index":1033,"title":{},"content":{"89":{"position":[[417,5]]}},"keywords":{}}],["what'",{"_index":39,"title":{},"content":{"0":{"position":[[485,6],[1220,6]]}},"keywords":{}}],["wheat",{"_index":1834,"title":{},"content":{"229":{"position":[[399,6],[423,6],[447,6],[471,6],[485,6],[749,5],[771,5]]},"253":{"position":[[707,6]]},"320":{"position":[[681,5],[973,5],[999,5],[1318,5],[1346,5],[1376,5],[1406,5],[2262,5],[2290,5],[2320,5],[2350,5],[2429,5],[2753,5],[2768,5],[2796,5],[2824,6],[2859,6],[2894,6],[2931,6],[2968,6],[3003,6],[3038,6],[3075,6],[3154,5],[3255,5]]}},"keywords":{}}],["whenev",{"_index":3287,"title":{},"content":{"415":{"position":[[426,8]]}},"keywords":{}}],["wherea",{"_index":2919,"title":{},"content":{"360":{"position":[[330,7]]}},"keywords":{}}],["whether",{"_index":3130,"title":{},"content":{"385":{"position":[[509,7]]}},"keywords":{}}],["whichev",{"_index":2334,"title":{},"content":{"266":{"position":[[429,9]]}},"keywords":{}}],["white",{"_index":137,"title":{},"content":{"3":{"position":[[572,5]]},"229":{"position":[[276,6],[478,6],[2094,6],[2108,6]]},"320":{"position":[[1363,5],[1393,5],[2307,5],[2337,5],[2906,5],[2943,5],[3050,5],[3087,5],[3112,5],[3128,5],[3148,5]]}},"keywords":{}}],["whole",{"_index":2731,"title":{},"content":{"320":{"position":[[3166,5],[3185,5]]},"425":{"position":[[209,5]]},"429":{"position":[[96,5],[123,5]]}},"keywords":{}}],["whose",{"_index":2131,"title":{},"content":{"252":{"position":[[250,5]]}},"keywords":{}}],["wide",{"_index":2910,"title":{},"content":{"357":{"position":[[1714,4]]}},"keywords":{}}],["widget",{"_index":1546,"title":{"136":{"position":[[19,6]]}},"content":{"135":{"position":[[499,7]]},"136":{"position":[[43,6],[107,6]]},"296":{"position":[[63,8]]},"301":{"position":[[40,6]]},"302":{"position":[[49,6]]},"303":{"position":[[36,6],[239,6]]},"304":{"position":[[42,6],[251,6]]},"305":{"position":[[39,6],[245,6]]},"307":{"position":[[29,6]]},"311":{"position":[[11,6]]},"313":{"position":[[138,6],[281,8]]},"314":{"position":[[135,6],[273,8]]},"316":{"position":[[479,7],[999,6],[1142,7]]},"317":{"position":[[83,8]]},"322":{"position":[[54,6],[131,6]]},"326":{"position":[[48,6]]},"327":{"position":[[11,6]]},"328":{"position":[[42,6],[218,6]]},"329":{"position":[[49,6]]},"330":{"position":[[36,6],[207,6]]},"331":{"position":[[40,6],[212,6]]},"332":{"position":[[39,6],[225,6]]},"334":{"position":[[138,6],[281,8]]},"335":{"position":[[135,6],[273,8]]},"337":{"position":[[337,6],[438,7],[1041,7]]},"338":{"position":[[83,8],[410,6],[665,6],[1795,7]]},"340":{"position":[[290,6]]},"378":{"position":[[919,9],[1755,9]]},"379":{"position":[[985,9],[1838,9]]},"380":{"position":[[904,9],[1685,9]]},"418":{"position":[[634,7]]}},"keywords":{}}],["widgets/link",{"_index":2546,"title":{},"content":{"300":{"position":[[286,13]]}},"keywords":{}}],["width",{"_index":3049,"title":{},"content":{"365":{"position":[[566,5]]}},"keywords":{}}],["wild",{"_index":2732,"title":{},"content":{"320":{"position":[[3204,4]]}},"keywords":{}}],["wind",{"_index":4050,"title":{},"content":{"511":{"position":[[918,4],[988,4],[1034,4]]},"515":{"position":[[901,4],[971,4],[1017,4]]}},"keywords":{}}],["winddirect",{"_index":4052,"title":{},"content":{"511":{"position":[[1009,13]]},"515":{"position":[[992,13]]},"519":{"position":[[3082,16]]},"520":{"position":[[3622,16]]},"521":{"position":[[3048,16]]},"522":{"position":[[3588,16]]},"523":{"position":[[3270,16]]},"524":{"position":[[3453,16]]},"525":{"position":[[3236,16]]},"526":{"position":[[3419,16]]}},"keywords":{}}],["windgust",{"_index":4153,"title":{},"content":{"520":{"position":[[2211,12]]},"522":{"position":[[2177,12]]},"524":{"position":[[1885,12]]},"526":{"position":[[1851,12]]}},"keywords":{}}],["window",{"_index":2472,"title":{},"content":{"287":{"position":[[1992,6]]}},"keywords":{}}],["windspe",{"_index":4164,"title":{},"content":{"520":{"position":[[3471,12]]},"522":{"position":[[3437,12]]},"524":{"position":[[3302,12]]},"526":{"position":[[3268,12]]}},"keywords":{}}],["winter",{"_index":1837,"title":{},"content":{"229":{"position":[[440,6],[464,6],[548,6]]},"320":{"position":[[1024,6],[1339,6],[1399,6],[1775,6],[2283,6],[2343,6],[2875,6],[2949,6],[3019,6],[3093,6],[3217,6],[3234,6],[3248,6]]}},"keywords":{}}],["wireless",{"_index":381,"title":{},"content":{"28":{"position":[[113,8]]},"29":{"position":[[113,8]]}},"keywords":{}}],["wirelessli",{"_index":1541,"title":{},"content":{"135":{"position":[[165,10]]}},"keywords":{}}],["wish",{"_index":2039,"title":{},"content":{"242":{"position":[[678,4]]},"498":{"position":[[290,4]]}},"keywords":{}}],["withget",{"_index":1451,"title":{},"content":{"130":{"position":[[5035,7]]}},"keywords":{}}],["within",{"_index":87,"title":{},"content":{"2":{"position":[[500,6]]},"18":{"position":[[89,6]]},"47":{"position":[[157,6],[192,6]]},"101":{"position":[[392,6]]},"130":{"position":[[1185,6]]},"226":{"position":[[157,6],[192,6]]},"251":{"position":[[917,6]]},"252":{"position":[[1174,6]]},"341":{"position":[[559,6]]},"354":{"position":[[157,6],[192,6]]},"402":{"position":[[157,6],[192,6]]},"512":{"position":[[254,6]]},"523":{"position":[[358,6]]},"525":{"position":[[347,6]]}},"keywords":{}}],["withleaf.io/leaf",{"_index":2597,"title":{},"content":{"314":{"position":[[337,17]]}},"keywords":{}}],["withleaf/leaf",{"_index":2577,"title":{},"content":{"313":{"position":[[188,14],[345,14],[403,14],[522,15]]},"314":{"position":[[182,14],[396,14],[495,15]]},"317":{"position":[[1255,15],[1510,15]]},"334":{"position":[[188,14],[345,14],[403,14],[521,15]]},"335":{"position":[[182,14],[337,14],[393,14],[491,15]]},"338":{"position":[[1591,15],[1832,15],[2765,15]]}},"keywords":{}}],["without",{"_index":308,"title":{},"content":{"8":{"position":[[1860,7]]},"57":{"position":[[527,7],[620,7],[711,7]]},"59":{"position":[[379,7],[516,7],[607,7],[702,7],[793,7],[838,7],[945,7],[1050,7],[1153,7]]},"209":{"position":[[705,7]]},"292":{"position":[[114,7]]},"341":{"position":[[935,7],[1108,7]]},"349":{"position":[[963,7]]},"395":{"position":[[973,7]]},"474":{"position":[[222,7]]}},"keywords":{}}],["won't",{"_index":1254,"title":{},"content":{"105":{"position":[[3186,5]]},"288":{"position":[[1107,5]]}},"keywords":{}}],["wood",{"_index":1942,"title":{},"content":{"229":{"position":[[2124,5]]},"320":{"position":[[3264,4]]}},"keywords":{}}],["work",{"_index":1078,"title":{"117":{"position":[[7,5]]},"308":{"position":[[7,5]]}},"content":{"95":{"position":[[191,5]]},"96":{"position":[[175,5]]},"209":{"position":[[806,7]]},"311":{"position":[[90,6]]},"343":{"position":[[308,5]]},"480":{"position":[[9789,4]]},"490":{"position":[[107,5]]}},"keywords":{}}],["world",{"_index":3820,"title":{},"content":{"480":{"position":[[10673,5]]}},"keywords":{}}],["worldwid",{"_index":4032,"title":{},"content":{"510":{"position":[[540,10]]}},"keywords":{}}],["worri",{"_index":2737,"title":{},"content":{"327":{"position":[[63,6]]}},"keywords":{}}],["wouldn't",{"_index":13,"title":{},"content":{"0":{"position":[[103,8]]}},"keywords":{}}],["wrap",{"_index":2800,"title":{},"content":{"338":{"position":[[2682,4]]}},"keywords":{}}],["written",{"_index":3392,"title":{},"content":{"422":{"position":[[28,7]]}},"keywords":{}}],["wrong",{"_index":3489,"title":{},"content":{"467":{"position":[[457,6],[1165,5],[1334,6],[2262,5],[7077,5],[7119,5],[7336,5]]},"480":{"position":[[1643,6],[5737,6]]},"483":{"position":[[282,6]]}},"keywords":{}}],["wtr",{"_index":1846,"title":{},"content":{"229":{"position":[[777,4]]},"320":{"position":[[1005,3],[2810,4]]}},"keywords":{}}],["x",{"_index":141,"title":{},"content":{"3":{"position":[[631,1],[948,1]]},"5":{"position":[[1651,1],[2221,1]]},"6":{"position":[[117,1]]},"7":{"position":[[87,1]]},"8":{"position":[[117,1]]},"9":{"position":[[271,1]]},"48":{"position":[[252,1]]},"57":{"position":[[1567,1]]},"58":{"position":[[146,1]]},"59":{"position":[[2218,1]]},"60":{"position":[[312,1]]},"61":{"position":[[447,1]]},"62":{"position":[[229,1]]},"63":{"position":[[1293,1]]},"64":{"position":[[148,1]]},"65":{"position":[[529,1]]},"66":{"position":[[145,1]]},"70":{"position":[[788,1]]},"71":{"position":[[552,1]]},"72":{"position":[[448,1]]},"73":{"position":[[150,1]]},"74":{"position":[[336,1]]},"75":{"position":[[292,1]]},"76":{"position":[[160,1]]},"78":{"position":[[580,1]]},"79":{"position":[[578,1]]},"80":{"position":[[450,1]]},"82":{"position":[[581,1]]},"83":{"position":[[396,1]]},"88":{"position":[[552,1]]},"89":{"position":[[765,1]]},"93":{"position":[[514,1]]},"94":{"position":[[149,1]]},"95":{"position":[[726,1]]},"96":{"position":[[296,1]]},"97":{"position":[[258,1]]},"98":{"position":[[569,1]]},"99":{"position":[[237,1]]},"100":{"position":[[518,1]]},"101":{"position":[[869,1]]},"109":{"position":[[104,1]]},"110":{"position":[[164,1]]},"111":{"position":[[449,1]]},"112":{"position":[[321,1]]},"113":{"position":[[391,1]]},"114":{"position":[[290,1]]},"119":{"position":[[194,1]]},"120":{"position":[[215,1]]},"121":{"position":[[163,1]]},"122":{"position":[[460,1]]},"123":{"position":[[235,1]]},"124":{"position":[[314,1]]},"125":{"position":[[233,1]]},"126":{"position":[[229,1]]},"127":{"position":[[174,1]]},"130":{"position":[[4476,1]]},"133":{"position":[[303,1]]},"140":{"position":[[326,1]]},"141":{"position":[[255,1]]},"142":{"position":[[141,1]]},"144":{"position":[[174,1]]},"147":{"position":[[323,1]]},"148":{"position":[[286,1]]},"149":{"position":[[136,1]]},"151":{"position":[[172,1]]},"154":{"position":[[344,1]]},"155":{"position":[[269,1]]},"156":{"position":[[159,1]]},"158":{"position":[[183,1]]},"161":{"position":[[317,1]]},"162":{"position":[[295,1]]},"163":{"position":[[132,1]]},"165":{"position":[[169,1]]},"168":{"position":[[329,1]]},"169":{"position":[[282,1]]},"170":{"position":[[144,1]]},"172":{"position":[[175,1]]},"175":{"position":[[339,1]]},"176":{"position":[[242,1]]},"177":{"position":[[154,1]]},"179":{"position":[[180,1]]},"182":{"position":[[319,1]]},"183":{"position":[[227,1]]},"184":{"position":[[134,1]]},"186":{"position":[[170,1]]},"189":{"position":[[323,1]]},"190":{"position":[[230,1]]},"191":{"position":[[138,1]]},"193":{"position":[[172,1]]},"196":{"position":[[319,1]]},"197":{"position":[[252,1]]},"198":{"position":[[134,1]]},"200":{"position":[[170,1]]},"203":{"position":[[323,1]]},"204":{"position":[[231,1]]},"205":{"position":[[138,1]]},"207":{"position":[[172,1]]},"218":{"position":[[560,1]]},"219":{"position":[[241,1]]},"220":{"position":[[1471,1]]},"221":{"position":[[123,1]]},"222":{"position":[[1659,1]]},"223":{"position":[[280,1]]},"224":{"position":[[179,1]]},"225":{"position":[[155,1]]},"239":{"position":[[744,1]]},"255":{"position":[[473,1]]},"260":{"position":[[575,1]]},"261":{"position":[[121,1]]},"262":{"position":[[888,1]]},"263":{"position":[[799,1]]},"264":{"position":[[1161,1]]},"265":{"position":[[169,1]]},"266":{"position":[[1189,1]]},"268":{"position":[[528,1]]},"269":{"position":[[527,1]]},"272":{"position":[[143,1]]},"273":{"position":[[163,1]]},"274":{"position":[[122,1]]},"275":{"position":[[466,1]]},"277":{"position":[[490,1]]},"278":{"position":[[141,1]]},"279":{"position":[[265,1]]},"280":{"position":[[291,1]]},"282":{"position":[[388,1]]},"283":{"position":[[145,1]]},"284":{"position":[[234,1]]},"285":{"position":[[260,1]]},"297":{"position":[[100,1]]},"298":{"position":[[408,1]]},"299":{"position":[[97,1]]},"301":{"position":[[704,1],[1197,1],[1660,1],[2071,1],[2415,1]]},"302":{"position":[[829,1],[1354,1],[1870,1],[2355,1],[2752,1]]},"303":{"position":[[922,1],[1435,1],[1959,1],[2452,1],[2848,1]]},"304":{"position":[[999,1],[1534,1],[2052,1],[2511,1],[2901,1]]},"305":{"position":[[892,1],[1379,1],[1866,1],[2331,1],[2699,1]]},"328":{"position":[[869,1]]},"329":{"position":[[538,1]]},"330":{"position":[[895,1]]},"331":{"position":[[753,1]]},"332":{"position":[[735,1]]},"346":{"position":[[1895,1]]},"347":{"position":[[97,1]]},"348":{"position":[[124,1]]},"349":{"position":[[148,1]]},"350":{"position":[[117,1]]},"351":{"position":[[116,1]]},"352":{"position":[[310,1]]},"353":{"position":[[774,1]]},"378":{"position":[[526,1],[1350,1],[2712,1],[3443,1]]},"379":{"position":[[586,1],[1427,1],[2749,1],[3486,1]]},"380":{"position":[[508,1],[1277,1],[2272,1],[2941,1]]},"382":{"position":[[1291,1]]},"383":{"position":[[1282,1]]},"384":{"position":[[992,1]]},"385":{"position":[[909,1]]},"390":{"position":[[1348,1]]},"391":{"position":[[107,1]]},"392":{"position":[[134,1]]},"393":{"position":[[148,1]]},"394":{"position":[[233,1]]},"395":{"position":[[148,1]]},"396":{"position":[[241,1]]},"397":{"position":[[247,1]]},"398":{"position":[[128,1]]},"399":{"position":[[207,1]]},"400":{"position":[[176,1]]},"401":{"position":[[237,1]]},"408":{"position":[[305,1]]},"423":{"position":[[296,1]]},"424":{"position":[[169,1]]},"425":{"position":[[246,1]]},"426":{"position":[[119,1]]},"427":{"position":[[22,1]]},"428":{"position":[[399,1]]},"429":{"position":[[534,1],[831,1]]},"430":{"position":[[238,1],[447,1]]},"456":{"position":[[355,1]]},"461":{"position":[[32,1]]},"500":{"position":[[82,1]]},"501":{"position":[[282,1]]},"502":{"position":[[731,1]]},"503":{"position":[[592,1]]},"504":{"position":[[107,1]]},"519":{"position":[[591,1]]},"520":{"position":[[593,1]]},"521":{"position":[[580,1]]},"522":{"position":[[582,1]]},"523":{"position":[[777,1]]},"524":{"position":[[576,1]]},"525":{"position":[[766,1]]},"526":{"position":[[565,1]]}},"keywords":{}}],["x,i",{"_index":3044,"title":{},"content":{"365":{"position":[[89,5],[103,5]]},"488":{"position":[[1628,5]]}},"keywords":{}}],["x0",{"_index":3850,"title":{},"content":{"480":{"position":[[11711,2],[12010,2],[12067,2]]}},"keywords":{}}],["x010",{"_index":3013,"title":{},"content":{"361":{"position":[[3127,4]]}},"keywords":{}}],["x1",{"_index":3855,"title":{},"content":{"480":{"position":[[11847,2],[12029,2],[12048,2]]}},"keywords":{}}],["xmax",{"_index":1689,"title":{},"content":{"219":{"position":[[524,7]]},"396":{"position":[[814,7]]},"415":{"position":[[1230,7]]}},"keywords":{}}],["xmin",{"_index":1687,"title":{},"content":{"219":{"position":[[511,7]]},"396":{"position":[[803,7]]},"415":{"position":[[1217,7]]}},"keywords":{}}],["xml",{"_index":1422,"title":{},"content":{"130":{"position":[[3564,5],[3630,5],[3695,5],[3772,5],[3850,5],[3920,5],[4009,5]]},"349":{"position":[[1065,3]]},"395":{"position":[[1075,3]]},"480":{"position":[[10578,4],[10724,4],[10948,3]]}},"keywords":{}}],["xml2j",{"_index":3828,"title":{},"content":{"480":{"position":[[10978,6],[11003,6]]}},"keywords":{}}],["xml2js.parser",{"_index":3830,"title":{},"content":{"480":{"position":[[11016,15]]}},"keywords":{}}],["xoffset",{"_index":3061,"title":{},"content":{"365":{"position":[[1325,7]]},"446":{"position":[[156,7]]}},"keywords":{}}],["xxxx...xxxx",{"_index":2529,"title":{},"content":{"297":{"position":[[275,14],[418,14]]}},"keywords":{}}],["xxxxxxx",{"_index":2542,"title":{},"content":{"298":{"position":[[618,10]]}},"keywords":{}}],["y0",{"_index":3853,"title":{},"content":{"480":{"position":[[11757,2],[12022,3],[12041,3]]}},"keywords":{}}],["y1",{"_index":3856,"title":{},"content":{"480":{"position":[[11893,2],[12060,3],[12079,3]]}},"keywords":{}}],["ycof8zg_as_edovsouthernm_cv_prod_a025df2d_211015_200456",{"_index":991,"title":{},"content":{"88":{"position":[[983,58]]}},"keywords":{}}],["ye",{"_index":2016,"title":{},"content":{"234":{"position":[[99,4]]},"467":{"position":[[1678,4],[4833,4],[5118,4]]}},"keywords":{}}],["year",{"_index":3104,"title":{},"content":{"378":{"position":[[2576,5]]},"379":{"position":[[2625,5]]},"380":{"position":[[2176,5]]},"517":{"position":[[1028,4]]}},"keywords":{}}],["year.descript",{"_index":2541,"title":{},"content":{"298":{"position":[[304,17]]}},"keywords":{}}],["year.externalid",{"_index":3118,"title":{},"content":{"382":{"position":[[561,16]]},"383":{"position":[[564,16]]},"384":{"position":[[303,16]]}},"keywords":{}}],["yellow",{"_index":1653,"title":{},"content":{"212":{"position":[[170,6],[403,6]]},"229":{"position":[[259,7]]},"320":{"position":[[3273,6]]}},"keywords":{}}],["yield",{"_index":2663,"title":{},"content":{"319":{"position":[[178,5]]},"346":{"position":[[1029,5]]},"360":{"position":[[391,5]]},"437":{"position":[[11,5]]},"438":{"position":[[11,5]]},"440":{"position":[[112,5]]}},"keywords":{}}],["yld",{"_index":1386,"title":{},"content":{"130":{"position":[[2388,4],[2743,5]]}},"keywords":{}}],["ym2000",{"_index":1383,"title":{},"content":{"130":{"position":[[2337,7],[2723,6]]}},"keywords":{}}],["ymax",{"_index":1691,"title":{},"content":{"219":{"position":[[550,7]]},"396":{"position":[[836,7]]},"415":{"position":[[1256,7]]}},"keywords":{}}],["ymin",{"_index":1690,"title":{},"content":{"219":{"position":[[537,7]]},"396":{"position":[[825,7]]},"415":{"position":[[1243,7]]}},"keywords":{}}],["yoffset",{"_index":3066,"title":{},"content":{"365":{"position":[[1419,7]]},"446":{"position":[[168,8]]}},"keywords":{}}],["you'd",{"_index":1550,"title":{},"content":{"135":{"position":[[717,5]]}},"keywords":{}}],["you'll",{"_index":180,"title":{},"content":{"5":{"position":[[393,6]]},"252":{"position":[[446,6],[677,6]]},"422":{"position":[[289,6]]},"493":{"position":[[88,6]]}},"keywords":{}}],["you'r",{"_index":35,"title":{},"content":{"0":{"position":[[440,6],[595,6],[1175,6]]}},"keywords":{}}],["you'v",{"_index":1476,"title":{},"content":{"131":{"position":[[28,6]]},"132":{"position":[[17,6]]},"135":{"position":[[657,6]]}},"keywords":{}}],["your",{"_index":2041,"title":{},"content":{"242":{"position":[[787,5]]},"244":{"position":[[1148,5]]}},"keywords":{}}],["your_api_key",{"_index":2606,"title":{},"content":{"314":{"position":[[934,15]]},"317":{"position":[[1775,15]]}},"keywords":{}}],["your_compani",{"_index":2608,"title":{},"content":{"314":{"position":[[979,15]]},"317":{"position":[[1688,15]]}},"keywords":{}}],["your_company_logo",{"_index":2610,"title":{},"content":{"314":{"position":[[1024,20]]}},"keywords":{}}],["your_leaf_token",{"_index":437,"title":{},"content":{"48":{"position":[[506,17]]},"267":{"position":[[453,16]]},"424":{"position":[[203,16]]},"425":{"position":[[280,16]]},"426":{"position":[[153,16]]},"427":{"position":[[56,16]]},"428":{"position":[[433,16]]},"429":{"position":[[568,16],[865,16]]},"430":{"position":[[272,16],[481,16]]}},"keywords":{}}],["your_leaf_us",{"_index":2604,"title":{},"content":{"314":{"position":[[892,17]]}},"keywords":{}}],["your_leaf_user_id",{"_index":2658,"title":{},"content":{"317":{"position":[[1730,20]]}},"keywords":{}}],["your_token",{"_index":233,"title":{},"content":{"5":{"position":[[1724,11]]},"6":{"position":[[151,11]]},"7":{"position":[[121,11]]},"8":{"position":[[151,11]]},"9":{"position":[[308,11]]},"57":{"position":[[1601,11]]},"58":{"position":[[180,11]]},"59":{"position":[[2252,11]]},"60":{"position":[[347,11]]},"61":{"position":[[483,11]]},"62":{"position":[[266,11]]},"63":{"position":[[1327,11]]},"64":{"position":[[182,11]]},"65":{"position":[[563,11]]},"66":{"position":[[179,11]]},"70":{"position":[[822,11]]},"71":{"position":[[586,11]]},"72":{"position":[[482,11]]},"73":{"position":[[184,11]]},"74":{"position":[[370,11]]},"75":{"position":[[326,11]]},"76":{"position":[[194,11]]},"78":{"position":[[614,11]]},"79":{"position":[[612,11]]},"80":{"position":[[484,11]]},"82":{"position":[[615,11]]},"83":{"position":[[430,11]]},"88":{"position":[[586,11]]},"89":{"position":[[800,11]]},"93":{"position":[[549,11]]},"94":{"position":[[183,11]]},"95":{"position":[[761,11]]},"96":{"position":[[330,11]]},"97":{"position":[[292,11]]},"98":{"position":[[604,11]]},"99":{"position":[[271,11]]},"100":{"position":[[553,11]]},"101":{"position":[[904,11]]},"112":{"position":[[302,12]]},"119":{"position":[[228,11]]},"120":{"position":[[249,11]]},"121":{"position":[[198,11]]},"122":{"position":[[496,11]]},"123":{"position":[[269,11]]},"124":{"position":[[349,11]]},"125":{"position":[[269,11]]},"126":{"position":[[265,11]]},"127":{"position":[[211,11]]},"130":{"position":[[4511,11]]},"131":{"position":[[351,12]]},"132":{"position":[[340,12]]},"133":{"position":[[337,11]]},"140":{"position":[[360,11]]},"141":{"position":[[290,11]]},"142":{"position":[[178,11]]},"144":{"position":[[208,11]]},"147":{"position":[[357,11]]},"148":{"position":[[321,11]]},"149":{"position":[[173,11]]},"151":{"position":[[206,11]]},"154":{"position":[[378,11]]},"155":{"position":[[304,11]]},"156":{"position":[[196,11]]},"158":{"position":[[217,11]]},"161":{"position":[[351,11]]},"162":{"position":[[330,11]]},"163":{"position":[[169,11]]},"165":{"position":[[203,11]]},"168":{"position":[[363,11]]},"169":{"position":[[317,11]]},"170":{"position":[[181,11]]},"172":{"position":[[209,11]]},"175":{"position":[[373,11]]},"176":{"position":[[277,11]]},"177":{"position":[[191,11]]},"179":{"position":[[214,11]]},"182":{"position":[[353,11]]},"183":{"position":[[262,11]]},"184":{"position":[[171,11]]},"186":{"position":[[204,11]]},"189":{"position":[[357,11]]},"190":{"position":[[265,11]]},"191":{"position":[[175,11]]},"193":{"position":[[206,11]]},"196":{"position":[[353,11]]},"197":{"position":[[287,11]]},"198":{"position":[[171,11]]},"200":{"position":[[204,11]]},"203":{"position":[[357,11]]},"204":{"position":[[266,11]]},"205":{"position":[[175,11]]},"207":{"position":[[206,11]]},"218":{"position":[[594,11]]},"219":{"position":[[275,11]]},"220":{"position":[[1511,11]]},"221":{"position":[[163,11]]},"222":{"position":[[1732,11]]},"223":{"position":[[317,11]]},"224":{"position":[[219,11]]},"225":{"position":[[190,11]]},"239":{"position":[[778,11]]},"255":{"position":[[507,11]]},"260":{"position":[[609,11]]},"261":{"position":[[155,11]]},"262":{"position":[[923,11]]},"263":{"position":[[835,11]]},"264":{"position":[[1195,11]]},"265":{"position":[[203,11]]},"266":{"position":[[1224,11]]},"268":{"position":[[563,11]]},"269":{"position":[[562,11]]},"272":{"position":[[177,11]]},"273":{"position":[[197,11]]},"274":{"position":[[156,11]]},"275":{"position":[[500,11]]},"277":{"position":[[524,11]]},"278":{"position":[[175,11]]},"279":{"position":[[300,11]]},"280":{"position":[[325,11]]},"282":{"position":[[422,11]]},"283":{"position":[[179,11]]},"284":{"position":[[269,11]]},"285":{"position":[[294,11]]},"297":{"position":[[134,11]]},"298":{"position":[[442,11]]},"299":{"position":[[134,11]]},"301":{"position":[[738,11],[1231,11],[1695,11],[2105,11],[2452,11]]},"302":{"position":[[863,11],[1388,11],[1905,11],[2389,11],[2789,11]]},"303":{"position":[[956,11],[1469,11],[1994,11],[2486,11],[2885,11]]},"304":{"position":[[1033,11],[1568,11],[2087,11],[2545,11],[2938,11]]},"305":{"position":[[926,11],[1413,11],[1901,11],[2365,11],[2736,11]]},"328":{"position":[[904,11]]},"329":{"position":[[573,11]]},"330":{"position":[[930,11]]},"331":{"position":[[788,11]]},"332":{"position":[[770,11]]},"346":{"position":[[1929,11]]},"347":{"position":[[131,11]]},"348":{"position":[[158,11]]},"349":{"position":[[182,11]]},"350":{"position":[[151,11]]},"351":{"position":[[150,11]]},"352":{"position":[[344,11]]},"353":{"position":[[809,11]]},"378":{"position":[[560,11],[1384,11],[2747,11],[3480,11]]},"379":{"position":[[620,11],[1461,11],[2784,11],[3523,11]]},"380":{"position":[[542,11],[1311,11],[2307,11],[2978,11]]},"382":{"position":[[1326,11]]},"383":{"position":[[1317,11]]},"384":{"position":[[1027,11]]},"385":{"position":[[944,11]]},"390":{"position":[[1382,11]]},"391":{"position":[[141,11]]},"392":{"position":[[168,11]]},"393":{"position":[[182,11]]},"394":{"position":[[267,11]]},"395":{"position":[[182,11]]},"396":{"position":[[275,11]]},"397":{"position":[[281,11]]},"398":{"position":[[162,11]]},"399":{"position":[[242,11]]},"400":{"position":[[211,11]]},"401":{"position":[[272,11]]},"408":{"position":[[339,11]]},"461":{"position":[[66,11]]},"500":{"position":[[116,11]]},"501":{"position":[[316,11]]},"502":{"position":[[766,11]]},"503":{"position":[[626,11]]},"504":{"position":[[144,11]]},"519":{"position":[[625,11]]},"520":{"position":[[627,11]]},"521":{"position":[[614,11]]},"522":{"position":[[616,11]]},"523":{"position":[[811,11]]},"524":{"position":[[610,11]]},"525":{"position":[[800,11]]},"526":{"position":[[599,11]]}},"keywords":{}}],["yourapiown",{"_index":261,"title":{},"content":{"8":{"position":[[317,15],[802,15],[1287,15]]}},"keywords":{}}],["yourappnam",{"_index":2551,"title":{},"content":{"301":{"position":[[882,14],[975,14],[1383,14]]},"302":{"position":[[1015,14],[1108,14],[1548,14]]},"303":{"position":[[1096,14],[1198,14],[1637,14]]},"304":{"position":[[1178,14],[1280,14],[1741,14]]},"305":{"position":[[1069,14],[1162,14],[1564,14]]}},"keywords":{}}],["yourcompanylogo",{"_index":2659,"title":{},"content":{"317":{"position":[[1820,16]]}},"keywords":{}}],["yourfunctionnamehere(leafbatchid",{"_index":2651,"title":{},"content":{"317":{"position":[[1087,34]]}},"keywords":{}}],["yourfunctionnamehere(valu",{"_index":2772,"title":{},"content":{"338":{"position":[[1439,27]]}},"keywords":{}}],["yoursatellitefieldid",{"_index":1761,"title":{},"content":{"222":{"position":[[898,23]]}},"keywords":{}}],["you’ll",{"_index":2831,"title":{},"content":{"342":{"position":[[180,6],[326,6]]},"418":{"position":[[228,6],[400,6]]},"492":{"position":[[131,6]]},"498":{"position":[[224,6]]},"507":{"position":[[79,6]]}},"keywords":{}}],["you’r",{"_index":3972,"title":{},"content":{"496":{"position":[[3,6]]},"512":{"position":[[215,6]]},"523":{"position":[[319,6]]},"525":{"position":[[308,6]]}},"keywords":{}}],["you’v",{"_index":2002,"title":{},"content":{"232":{"position":[[245,6]]},"495":{"position":[[5,6]]}},"keywords":{}}],["yyyi",{"_index":353,"title":{},"content":{"15":{"position":[[429,5]]},"16":{"position":[[372,5]]},"18":{"position":[[275,5]]},"19":{"position":[[324,5]]},"20":{"position":[[295,5]]},"22":{"position":[[304,5]]},"23":{"position":[[304,5]]},"25":{"position":[[479,5]]},"26":{"position":[[447,5]]},"28":{"position":[[405,5]]},"29":{"position":[[517,5]]},"31":{"position":[[332,5]]},"32":{"position":[[444,5]]},"33":{"position":[[341,5]]},"34":{"position":[[453,5]]},"35":{"position":[[407,5]]},"36":{"position":[[269,5]]},"37":{"position":[[364,5]]},"39":{"position":[[361,5]]},"41":{"position":[[229,5]]},"42":{"position":[[217,5]]},"43":{"position":[[155,5]]},"44":{"position":[[175,5]]},"45":{"position":[[171,5]]},"59":{"position":[[2788,5],[2823,5]]},"140":{"position":[[531,5]]},"141":{"position":[[626,5]]},"144":{"position":[[377,5]]},"147":{"position":[[526,5]]},"148":{"position":[[653,5]]},"151":{"position":[[373,5]]},"154":{"position":[[558,5]]},"155":{"position":[[616,5]]},"158":{"position":[[395,5]]},"161":{"position":[[517,5]]},"162":{"position":[[709,5]]},"165":{"position":[[367,5]]},"168":{"position":[[535,5]]},"169":{"position":[[642,5]]},"172":{"position":[[379,5]]},"175":{"position":[[550,5]]},"176":{"position":[[605,5]]},"179":{"position":[[389,5]]},"182":{"position":[[520,5]]},"183":{"position":[[571,5]]},"186":{"position":[[369,5]]},"189":{"position":[[526,5]]},"190":{"position":[[581,5]]},"193":{"position":[[373,5]]},"196":{"position":[[520,5]]},"197":{"position":[[623,5]]},"200":{"position":[[369,5]]},"203":{"position":[[526,5]]},"204":{"position":[[539,5]]},"207":{"position":[[370,5]]},"222":{"position":[[598,5]]},"357":{"position":[[603,5],[733,5]]},"411":{"position":[[378,5],[415,5],[456,5]]},"457":{"position":[[90,5]]}},"keywords":{}}],["z",{"_index":3045,"title":{},"content":{"365":{"position":[[163,2]]}},"keywords":{}}],["zip",{"_index":486,"title":{},"content":{"51":{"position":[[562,3]]},"93":{"position":[[156,4],[276,3],[324,3]]},"95":{"position":[[298,4],[447,3],[495,4]]},"98":{"position":[[231,4],[343,3],[391,4]]},"100":{"position":[[160,4],[280,3],[328,3]]},"101":{"position":[[141,4],[261,3],[679,3]]},"130":{"position":[[68,4],[97,4],[153,5],[684,4],[771,4],[844,5],[1205,5],[1852,3],[2379,3],[2430,3],[2485,3],[3246,3]]},"137":{"position":[[129,3],[191,3]]},"308":{"position":[[131,3]]}},"keywords":{}}],["zone",{"_index":2569,"title":{},"content":{"308":{"position":[[101,5]]}},"keywords":{}}],["zoom",{"_index":3685,"title":{},"content":{"474":{"position":[[475,5]]},"488":{"position":[[2126,5]]},"490":{"position":[[236,5]]}},"keywords":{}}],["zoomoffset",{"_index":3697,"title":{},"content":{"474":{"position":[[917,11]]}},"keywords":{}}]],"pipeline":["stemmer"]} \ No newline at end of file diff --git a/main.80d465f8.js b/main.80d465f8.js new file mode 100644 index 000000000..6d24e7cd0 --- /dev/null +++ b/main.80d465f8.js @@ -0,0 +1,2 @@ +/*! For license information please see main.80d465f8.js.LICENSE.txt */ +(window.webpackJsonp=window.webpackJsonp||[]).push([[95],[function(e,t,n){"use strict";e.exports=n(31)},function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return w})),n.d(t,"c",(function(){return x})),n.d(t,"d",(function(){return C})),n.d(t,"e",(function(){return v})),n.d(t,"f",(function(){return L})),n.d(t,"g",(function(){return j})),n.d(t,"h",(function(){return g})),n.d(t,"i",(function(){return E})),n.d(t,"j",(function(){return P})),n.d(t,"k",(function(){return M})),n.d(t,"l",(function(){return z})),n.d(t,"m",(function(){return U})),n.d(t,"n",(function(){return B})),n.d(t,"o",(function(){return D}));var r=n(3),o=n(0),i=n.n(o),a=(n(7),n(5)),l=n(18),s=n(4),c=n(2),u=n(19),d=n.n(u),p=(n(24),n(6)),f=n(28),m=n.n(f),h=function(e){var t=Object(l.a)();return t.displayName=e,t}("Router-History"),g=function(e){var t=Object(l.a)();return t.displayName=e,t}("Router"),v=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._isMounted?n.setState({location:e}):n._pendingLocation=e}))),n}Object(r.a)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&this.unlisten()},n.render=function(){return i.a.createElement(g.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},i.a.createElement(h.Provider,{children:this.props.children||null,value:this.props.history}))},t}(i.a.Component);var b=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=Object(a.d)(t.props),t}return Object(r.a)(t,e),t.prototype.render=function(){return i.a.createElement(v,{history:this.history,children:this.props.children})},t}(i.a.Component);var y=function(e){function t(){return e.apply(this,arguments)||this}Object(r.a)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(e){this.props.onUpdate&&this.props.onUpdate.call(this,this,e)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},t}(i.a.Component);function w(e){var t=e.message,n=e.when,r=void 0===n||n;return i.a.createElement(g.Consumer,null,(function(e){if(e||Object(s.a)(!1),!r||e.staticContext)return null;var n=e.history.block;return i.a.createElement(y,{onMount:function(e){e.release=n(t)},onUpdate:function(e,r){r.message!==t&&(e.release(),e.release=n(t))},onUnmount:function(e){e.release()},message:t})}))}var _={},k=0;function E(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(_[e])return _[e];var t=d.a.compile(e);return k<1e4&&(_[e]=t,k++),t}(e)(t,{pretty:!0})}function x(e){var t=e.computedMatch,n=e.to,r=e.push,o=void 0!==r&&r;return i.a.createElement(g.Consumer,null,(function(e){e||Object(s.a)(!1);var r=e.history,l=e.staticContext,u=o?r.push:r.replace,d=Object(a.c)(t?"string"==typeof n?E(n,t.params):Object(c.a)({},n,{pathname:E(n.pathname,t.params)}):n);return l?(u(d),null):i.a.createElement(y,{onMount:function(){u(d)},onUpdate:function(e,t){var n=Object(a.c)(t.to);Object(a.f)(n,Object(c.a)({},d,{key:n.key}))||u(d)},to:n})}))}var S={},T=0;function P(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,o=n.exact,i=void 0!==o&&o,a=n.strict,l=void 0!==a&&a,s=n.sensitive,c=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=S[n]||(S[n]={});if(r[e])return r[e];var o=[],i={regexp:d()(e,o,t),keys:o};return T<1e4&&(r[e]=i,T++),i}(n,{end:i,strict:l,sensitive:c}),o=r.regexp,a=r.keys,s=o.exec(e);if(!s)return null;var u=s[0],p=s.slice(1),f=e===u;return i&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:a.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var C=function(e){function t(){return e.apply(this,arguments)||this}return Object(r.a)(t,e),t.prototype.render=function(){var e=this;return i.a.createElement(g.Consumer,null,(function(t){t||Object(s.a)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?P(n.pathname,e.props):t.match,o=Object(c.a)({},t,{location:n,match:r}),a=e.props,l=a.children,u=a.component,d=a.render;return Array.isArray(l)&&0===l.length&&(l=null),i.a.createElement(g.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:u?i.a.createElement(u,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(i.a.Component);function O(e){return"/"===e.charAt(0)?e:"/"+e}function R(e,t){if(!e)return t;var n=O(e);return 0!==t.pathname.indexOf(n)?t:Object(c.a)({},t,{pathname:t.pathname.substr(n.length)})}function A(e){return"string"==typeof e?e:Object(a.e)(e)}function N(e){return function(){Object(s.a)(!1)}}function I(){}var L=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).handlePush=function(e){return t.navigateTo(e,"PUSH")},t.handleReplace=function(e){return t.navigateTo(e,"REPLACE")},t.handleListen=function(){return I},t.handleBlock=function(){return I},t}Object(r.a)(t,e);var n=t.prototype;return n.navigateTo=function(e,t){var n=this.props,r=n.basename,o=void 0===r?"":r,i=n.context,l=void 0===i?{}:i;l.action=t,l.location=function(e,t){return e?Object(c.a)({},t,{pathname:O(e)+t.pathname}):t}(o,Object(a.c)(e)),l.url=A(l.location)},n.render=function(){var e=this.props,t=e.basename,n=void 0===t?"":t,r=e.context,o=void 0===r?{}:r,l=e.location,s=void 0===l?"/":l,u=Object(p.a)(e,["basename","context","location"]),d={createHref:function(e){return O(n+A(e))},action:"POP",location:R(n,Object(a.c)(s)),push:this.handlePush,replace:this.handleReplace,go:N(),goBack:N(),goForward:N(),listen:this.handleListen,block:this.handleBlock};return i.a.createElement(v,Object(c.a)({},u,{history:d,staticContext:o}))},t}(i.a.Component);var j=function(e){function t(){return e.apply(this,arguments)||this}return Object(r.a)(t,e),t.prototype.render=function(){var e=this;return i.a.createElement(g.Consumer,null,(function(t){t||Object(s.a)(!1);var n,r,o=e.props.location||t.location;return i.a.Children.forEach(e.props.children,(function(e){if(null==r&&i.a.isValidElement(e)){n=e;var a=e.props.path||e.props.from;r=a?P(o.pathname,Object(c.a)({},e.props,{path:a})):t.match}})),r?i.a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(i.a.Component);function D(e){var t="withRouter("+(e.displayName||e.name)+")",n=function(t){var n=t.wrappedComponentRef,r=Object(p.a)(t,["wrappedComponentRef"]);return i.a.createElement(g.Consumer,null,(function(t){return t||Object(s.a)(!1),i.a.createElement(e,Object(c.a)({},r,t,{ref:n}))}))};return n.displayName=t,n.WrappedComponent=e,m()(n,e)}var F=i.a.useContext;function M(){return F(h)}function z(){return F(g).location}function U(){var e=F(g).match;return e?e.params:{}}function B(e){var t=z(),n=F(g).match;return e?P(t.pathname,e):n}},function(e,t,n){"use strict";function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";t.a=function(e,t){if(!e)throw new Error("Invariant failed")}},function(e,t,n){"use strict";n.d(t,"a",(function(){return _})),n.d(t,"b",(function(){return T})),n.d(t,"d",(function(){return C})),n.d(t,"c",(function(){return h})),n.d(t,"f",(function(){return g})),n.d(t,"e",(function(){return m}));var r=n(2);function o(e){return"/"===e.charAt(0)}function i(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}var a=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],a=t&&t.split("/")||[],l=e&&o(e),s=t&&o(t),c=l||s;if(e&&o(e)?a=r:r.length&&(a.pop(),a=a.concat(r)),!a.length)return"/";if(a.length){var u=a[a.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,p=a.length;p>=0;p--){var f=a[p];"."===f?i(a,p):".."===f?(i(a,p),d++):d&&(i(a,p),d--)}if(!c)for(;d--;d)a.unshift("..");!c||""===a[0]||a[0]&&o(a[0])||a.unshift("");var m=a.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};function l(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var s=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=l(t),o=l(n);return r!==t||o!==n?e(r,o):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1},c=n(4);function u(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function p(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function f(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function m(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function h(e,t,n,o){var i;"string"==typeof e?(i=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e)).state=t:(void 0===(i=Object(r.a)({},e)).pathname&&(i.pathname=""),i.search?"?"!==i.search.charAt(0)&&(i.search="?"+i.search):i.search="",i.hash?"#"!==i.hash.charAt(0)&&(i.hash="#"+i.hash):i.hash="",void 0!==t&&void 0===i.state&&(i.state=t));try{i.pathname=decodeURI(i.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+i.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(i.key=n),o?i.pathname?"/"!==i.pathname.charAt(0)&&(i.pathname=a(i.pathname,o.pathname)):i.pathname=o.pathname:i.pathname||(i.pathname="/"),i}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&s(e.state,t.state)}function v(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof r?r(i,o):o(!0):o(!1!==i)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var b=!("undefined"==typeof window||!window.document||!window.document.createElement);function y(e,t){t(window.confirm(e))}function w(){try{return window.history.state||{}}catch(e){return{}}}function _(e){void 0===e&&(e={}),b||Object(c.a)(!1);var t,n=window.history,o=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,i=!(-1===window.navigator.userAgent.indexOf("Trident")),a=e,l=a.forceRefresh,s=void 0!==l&&l,d=a.getUserConfirmation,g=void 0===d?y:d,_=a.keyLength,k=void 0===_?6:_,E=e.basename?f(u(e.basename)):"";function x(e){var t=e||{},n=t.key,r=t.state,o=window.location,i=o.pathname+o.search+o.hash;return E&&(i=p(i,E)),h(i,r,n)}function S(){return Math.random().toString(36).substr(2,k)}var T=v();function P(e){Object(r.a)(z,e),z.length=n.length,T.notifyListeners(z.location,z.action)}function C(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||A(x(e.state))}function O(){A(x(w()))}var R=!1;function A(e){if(R)R=!1,P();else{T.confirmTransitionTo(e,"POP",g,(function(t){t?P({action:"POP",location:e}):function(e){var t=z.location,n=I.indexOf(t.key);-1===n&&(n=0);var r=I.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(R=!0,j(o))}(e)}))}}var N=x(w()),I=[N.key];function L(e){return E+m(e)}function j(e){n.go(e)}var D=0;function F(e){1===(D+=e)&&1===e?(window.addEventListener("popstate",C),i&&window.addEventListener("hashchange",O)):0===D&&(window.removeEventListener("popstate",C),i&&window.removeEventListener("hashchange",O))}var M=!1;var z={length:n.length,action:"POP",location:N,createHref:L,push:function(e,t){var r=h(e,t,S(),z.location);T.confirmTransitionTo(r,"PUSH",g,(function(e){if(e){var t=L(r),i=r.key,a=r.state;if(o)if(n.pushState({key:i,state:a},null,t),s)window.location.href=t;else{var l=I.indexOf(z.location.key),c=I.slice(0,l+1);c.push(r.key),I=c,P({action:"PUSH",location:r})}else window.location.href=t}}))},replace:function(e,t){var r=h(e,t,S(),z.location);T.confirmTransitionTo(r,"REPLACE",g,(function(e){if(e){var t=L(r),i=r.key,a=r.state;if(o)if(n.replaceState({key:i,state:a},null,t),s)window.location.replace(t);else{var l=I.indexOf(z.location.key);-1!==l&&(I[l]=r.key),P({action:"REPLACE",location:r})}else window.location.replace(t)}}))},go:j,goBack:function(){j(-1)},goForward:function(){j(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return M||(F(1),M=!0),function(){return M&&(M=!1,F(-1)),t()}},listen:function(e){var t=T.appendListener(e);return F(1),function(){F(-1),t()}}};return z}var k={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+d(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:d,decodePath:u},slash:{encodePath:u,decodePath:u}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function S(e){window.location.replace(E(window.location.href)+"#"+e)}function T(e){void 0===e&&(e={}),b||Object(c.a)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,i=void 0===o?y:o,a=n.hashType,l=void 0===a?"slash":a,s=e.basename?f(u(e.basename)):"",d=k[l],g=d.encodePath,w=d.decodePath;function _(){var e=w(x());return s&&(e=p(e,s)),h(e)}var T=v();function P(e){Object(r.a)(z,e),z.length=t.length,T.notifyListeners(z.location,z.action)}var C=!1,O=null;function R(){var e,t,n=x(),r=g(n);if(n!==r)S(r);else{var o=_(),a=z.location;if(!C&&(t=o,(e=a).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(O===m(o))return;O=null,function(e){if(C)C=!1,P();else{T.confirmTransitionTo(e,"POP",i,(function(t){t?P({action:"POP",location:e}):function(e){var t=z.location,n=L.lastIndexOf(m(t));-1===n&&(n=0);var r=L.lastIndexOf(m(e));-1===r&&(r=0);var o=n-r;o&&(C=!0,j(o))}(e)}))}}(o)}}var A=x(),N=g(A);A!==N&&S(N);var I=_(),L=[m(I)];function j(e){t.go(e)}var D=0;function F(e){1===(D+=e)&&1===e?window.addEventListener("hashchange",R):0===D&&window.removeEventListener("hashchange",R)}var M=!1;var z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+g(s+m(e))},push:function(e,t){var n=h(e,void 0,void 0,z.location);T.confirmTransitionTo(n,"PUSH",i,(function(e){if(e){var t=m(n),r=g(s+t);if(x()!==r){O=t,function(e){window.location.hash=e}(r);var o=L.lastIndexOf(m(z.location)),i=L.slice(0,o+1);i.push(t),L=i,P({action:"PUSH",location:n})}else P()}}))},replace:function(e,t){var n=h(e,void 0,void 0,z.location);T.confirmTransitionTo(n,"REPLACE",i,(function(e){if(e){var t=m(n),r=g(s+t);x()!==r&&(O=t,S(r));var o=L.indexOf(m(z.location));-1!==o&&(L[o]=t),P({action:"REPLACE",location:n})}}))},go:j,goBack:function(){j(-1)},goForward:function(){j(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return M||(F(1),M=!0),function(){return M&&(M=!1,F(-1)),t()}},listen:function(e){var t=T.appendListener(e);return F(1),function(){F(-1),t()}}};return z}function P(e,t,n){return Math.min(Math.max(e,t),n)}function C(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,i=void 0===o?["/"]:o,a=t.initialIndex,l=void 0===a?0:a,s=t.keyLength,c=void 0===s?6:s,u=v();function d(e){Object(r.a)(w,e),w.length=w.entries.length,u.notifyListeners(w.location,w.action)}function p(){return Math.random().toString(36).substr(2,c)}var f=P(l,0,i.length-1),g=i.map((function(e){return h(e,void 0,"string"==typeof e?p():e.key||p())})),b=m;function y(e){var t=P(w.index+e,0,w.entries.length-1),r=w.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:g.length,action:"POP",location:g[f],index:f,entries:g,createHref:b,push:function(e,t){var r=h(e,t,p(),w.location);u.confirmTransitionTo(r,"PUSH",n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,r):n.push(r),d({action:"PUSH",location:r,index:t,entries:n})}}))},replace:function(e,t){var r=h(e,t,p(),w.location);u.confirmTransitionTo(r,"REPLACE",n,(function(e){e&&(w.entries[w.index]=r,d({action:"REPLACE",location:r}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return w}},function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,"a",(function(){return r}))},function(e,t,n){e.exports=n(35)()},function(e,t,n){"use strict";var r=!("undefined"==typeof window||!window.document||!window.document.createElement),o={canUseDOM:r,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&!!window.screen};t.a=o},function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return s}));var r=n(1),o=n(2),i=n(0),a=n.n(i);function l(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?Object(r.j)(t,e):n.length?n[n.length-1].match:r.e.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&l(e.routes,t,n)),o})),n}function s(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.a.createElement(r.g,n,e.map((function(e,n){return a.a.createElement(r.d,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render(Object(o.a)({},n,{},t,{route:e})):a.a.createElement(e.component,Object(o.a)({},n,t,{route:e}))}})}))):null}},function(e,t,n){"use strict";n.r(t),t.default={title:"Leaf",tagline:"The easiest way to connect agriculture data across platforms",organizationName:"leaf-agriculture",projectName:"docs",baseUrl:"/docs/",url:"https://leaf-devops.s3.us-west-2.amazonaws.com/send.sh",favicon:"img/icon4dark_mode.png",onBrokenLinks:"ignore",plugins:["/home/travis/build/Leaf-Agriculture/docs/node_modules/docusaurus-lunr-search/src/index.js"],themeConfig:{googleAnalytics:{trackingID:"UA-151987025-2"},navbar:{logo:{alt:"logo",src:"img/logo4light_mode.png",srcDark:"img/logo4dark_mode.png",href:"https://withleaf.io"},items:[{to:"https://withleaf.io/for-developers/tutorials",activeBasePath:"./",label:"Tutorials",position:"left"},{to:"https://withleaf.io/products/",activeBasePath:"./",label:"Products",position:"left"},{to:"https://withleaf.io",activeBasePath:"./",label:"Website",position:"left"},{to:"https://withleaf.io/company/careers",activeBasePath:"./",label:"Work with us",position:"left"},{to:"https://withleaf.io/blog",label:"Blog",position:"left"},{to:"https://withleaf.io/account/quickstart",activeBasePath:"./",label:"Register",position:"left"},{href:"https://github.com/Leaf-Agriculture/docs",label:"GitHub",position:"right"}],hideOnScroll:!1},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1,switchConfig:{darkIcon:"\ud83c\udf1c",darkIconStyle:{},lightIcon:"\ud83c\udf1e",lightIconStyle:{}}}},presets:[["@docusaurus/preset-classic",{docs:{homePageId:"welcome",sidebarPath:"/home/travis/build/Leaf-Agriculture/docs/sidebars.js",editUrl:"https://github.com/Leaf-Agriculture/docs/tree/master"},blog:{showReadingTime:!0,editUrl:"https://youtu.be/gXVfKrud49c?t=73"},theme:{customCss:"/home/travis/build/Leaf-Agriculture/docs/src/css/custom.css"}}]],onDuplicateRoutes:"warn",customFields:{},themes:[]}},function(e){e.exports=JSON.parse('{"/docs/-7fd":{"component":"c4f5d8e4","config":"5e9f5e1a"},"/docs/blog-d2d":{"component":"a6aa9e1f","items":[{"content":"8c0794ce"}],"metadata":"f4c678d9"},"/docs/blog/tags-13a":{"component":"01a85c17","tags":"36f3e74f"},"/docs/blog/tags/rick-roll-bb0":{"component":"6875c492","items":[{"content":"8c0794ce"}],"metadata":"e8f4d530"},"/docs/blog/Welcome-9a2":{"component":"ccc49370","content":"2e3f99ee"},"/docs/curious-453":{"component":"7843e309","config":"5e9f5e1a"},"/docs/docs-dd2":{"component":"1be78505","docsMetadata":"64f9f2ab"},"/docs/docs/-fcf":{"component":"17896441","content":"ebfee794"},"/docs/docs/alerts_authentication-8e4":{"component":"17896441","content":"7a843a47"},"/docs/docs/alerts_endpoints-e62":{"component":"17896441","content":"c4edeca5"},"/docs/docs/alerts_events-9a7":{"component":"17896441","content":"301cc83b"},"/docs/docs/alerts_overview-f56":{"component":"17896441","content":"25f359fe"},"/docs/docs/authentication-54a":{"component":"17896441","content":"625b1ed7"},"/docs/docs/beta_assets_endpoints-0d0":{"component":"17896441","content":"04b6fe29"},"/docs/docs/beta_features_overview-bd9":{"component":"17896441","content":"2e549593"},"/docs/docs/beta_input_endpoints-a99":{"component":"17896441","content":"de394ffb"},"/docs/docs/beta_layers_endpoints-366":{"component":"17896441","content":"90250b52"},"/docs/docs/beta_machines_endpoints-0f4":{"component":"17896441","content":"b040a816"},"/docs/docs/beta_prescriptions_endpoints-370":{"component":"17896441","content":"e15c931c"},"/docs/docs/configurations_endpoints-f6b":{"component":"17896441","content":"17f45a3e"},"/docs/docs/configurations_overview-6e3":{"component":"17896441","content":"5ce478cd"},"/docs/docs/connect-7d9":{"component":"17896441","content":"9c1722c2"},"/docs/docs/converters_endpoints-61c":{"component":"17896441","content":"7104d79f"},"/docs/docs/converters_overview-26f":{"component":"17896441","content":"f1553b0a"},"/docs/docs/credentials_agleader-ad8":{"component":"17896441","content":"9b982434"},"/docs/docs/credentials_agvance-7cc":{"component":"17896441","content":"beb43c3b"},"/docs/docs/credentials_cfv-64a":{"component":"17896441","content":"07d09fc8"},"/docs/docs/credentials_cnhi-814":{"component":"17896441","content":"47f480c2"},"/docs/docs/credentials_john_deere-b26":{"component":"17896441","content":"1390700c"},"/docs/docs/credentials_raven-57a":{"component":"17896441","content":"5c151b87"},"/docs/docs/credentials_raven_slingshot-dac":{"component":"17896441","content":"ce17bea9"},"/docs/docs/credentials_sentera-822":{"component":"17896441","content":"e87dbf8c"},"/docs/docs/credentials_stara-004":{"component":"17896441","content":"1e1e6f64"},"/docs/docs/credentials_trimble-ba2":{"component":"17896441","content":"b053acf9"},"/docs/docs/crop_monitoring_endpoints-c56":{"component":"17896441","content":"a460bfa0"},"/docs/docs/crop_monitoring_overview-c50":{"component":"17896441","content":"001c4541"},"/docs/docs/crop_monitoring_planet_overview-cc0":{"component":"17896441","content":"bf71106d"},"/docs/docs/crop_monitoring_sentinel_overview-a2c":{"component":"17896441","content":"00890c70"},"/docs/docs/crops-7de":{"component":"17896441","content":"602deefb"},"/docs/docs/field_boundaries_endpoints-cb9":{"component":"17896441","content":"54f8a06c"},"/docs/docs/field_boundaries_overview-216":{"component":"17896441","content":"0f2ebb41"},"/docs/docs/field_boundary_management_endpoints-a12":{"component":"17896441","content":"f1fe53b2"},"/docs/docs/field_boundary_management_overview-e1c":{"component":"17896441","content":"6cdb8341"},"/docs/docs/files_crops_table-0f1":{"component":"17896441","content":"e9c07a87"},"/docs/docs/files_endpoints-88f":{"component":"17896441","content":"8be40c3a"},"/docs/docs/files_images-f36":{"component":"17896441","content":"e8a1e4f1"},"/docs/docs/files_overview-fec":{"component":"17896441","content":"b79b1c45"},"/docs/docs/files_postman-761":{"component":"17896441","content":"d3cdf188"},"/docs/docs/files_sample_output-6d0":{"component":"17896441","content":"eec592a1"},"/docs/docs/glossary-284":{"component":"17896441","content":"e747ec83"},"/docs/docs/glossary(unused)-a13":{"component":"17896441","content":"69aa77ae"},"/docs/docs/integrations_endpoints-aec":{"component":"17896441","content":"0222f66d"},"/docs/docs/introduction-88f":{"component":"17896441","content":"a09c2993"},"/docs/docs/Link_endpoints-62f":{"component":"17896441","content":"1d70fac3"},"/docs/docs/Link_file_upload-00f":{"component":"17896441","content":"ef3b18c7"},"/docs/docs/Link_provider_connection-b8c":{"component":"17896441","content":"b7e9c9e5"},"/docs/docs/machine_file_conversion_crops_table-563":{"component":"17896441","content":"d51f62c8"},"/docs/docs/machine_file_conversion_endpoints-b57":{"component":"17896441","content":"556218c3"},"/docs/docs/machine_file_conversion_overview-743":{"component":"17896441","content":"2cb670c2"},"/docs/docs/machine_file_conversion_sample_output-1c4":{"component":"17896441","content":"7cbe5bda"},"/docs/docs/machine_file_conversion_units-d87":{"component":"17896441","content":"3f24d9c4"},"/docs/docs/Magic_link_endpoints-b90":{"component":"17896441","content":"5c9efad4"},"/docs/docs/Magic_link_overview-4da":{"component":"17896441","content":"8c50fa75"},"/docs/docs/operations_endpoints-570":{"component":"17896441","content":"7bd79131"},"/docs/docs/operations_overview-2cd":{"component":"17896441","content":"43187bfa"},"/docs/docs/operations_sample_output-381":{"component":"17896441","content":"78bf585d"},"/docs/docs/planet_overview-4c2":{"component":"17896441","content":"20ec0c56"},"/docs/docs/provider_organizations-dff":{"component":"17896441","content":"2b9dda6a"},"/docs/docs/provider-authentication-overview-181":{"component":"17896441","content":"ec1d14ba"},"/docs/docs/quickstart-562":{"component":"17896441","content":"8070e160"},"/docs/docs/release_notes-2df":{"component":"17896441","content":"9a2cec18"},"/docs/docs/satellite_endpoints-cce":{"component":"17896441","content":"3abaa289"},"/docs/docs/satellite_overview-58e":{"component":"17896441","content":"59c6c071"},"/docs/docs/sentinel_overview-637":{"component":"17896441","content":"11a48954"},"/docs/docs/setup_information-7f1":{"component":"17896441","content":"f83deafa"},"/docs/docs/sharedata-3d8":{"component":"17896441","content":"ead8574c"},"/docs/docs/usecase_johndeere_products-dc5":{"component":"17896441","content":"59b50206"},"/docs/docs/usecase_satellite-73a":{"component":"17896441","content":"b206d805"},"/docs/docs/usecase_upload-e74":{"component":"17896441","content":"0acb23d9"},"/docs/docs/user_management_endpoints-c2a":{"component":"17896441","content":"ec7e0abd"},"/docs/docs/user_management_overview-b64":{"component":"17896441","content":"c21ad4a8"},"/docs/docs/weather_endpoints-8d2":{"component":"17896441","content":"eb1b3ae9"},"/docs/docs/weather_overview-4ae":{"component":"17896441","content":"96d02e3b"}}')},function(e,t,n){var r,o;void 0===(o="function"==typeof(r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}function i(e){return 100*(-1+e)}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var s=n.render(!t),c=s.querySelector(r.barSelector),u=r.speed,d=r.easing;return s.offsetWidth,a((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,function(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(e)+"%,0)"}:{"margin-left":i(e)+"%"}).transition="all "+t+"ms "+n,o}(e,u,d)),1===e?(l(s,{transition:"none",opacity:1}),s.offsetWidth,setTimeout((function(){l(s,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,a=t.querySelector(r.barSelector),s=e?"-100":i(n.status||0),u=document.querySelector(r.parent);return l(a,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&p(o),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var a=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()})),t[n]||(t[n]=function(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,i=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+i)in n)return r;return t}(n))}function r(e,t,r){t=n(t),e.style[t]=r}return function(e,t){var n,o,i=arguments;if(2==i.length)for(n in t)void 0!==(o=t[n])&&t.hasOwnProperty(n)&&r(e,n,o);else r(e,i[1],i[2])}}();function s(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=d(e),r=n+t;s(n,t)||(e.className=r.substring(1))}function u(e,t){var n,r=d(e);s(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n})?r.call(t,n,t,e):r)||(e.exports=o)},function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return p})),n.d(t,"c",(function(){return b})),n.d(t,"e",(function(){return _}));var r=n(1);n.d(t,"d",(function(){return r.a})),n.d(t,"f",(function(){return r.b})),n.d(t,"g",(function(){return r.c})),n.d(t,"h",(function(){return r.d})),n.d(t,"i",(function(){return r.e})),n.d(t,"j",(function(){return r.f})),n.d(t,"k",(function(){return r.g})),n.d(t,"l",(function(){return r.i})),n.d(t,"m",(function(){return r.j})),n.d(t,"n",(function(){return r.k})),n.d(t,"o",(function(){return r.l})),n.d(t,"p",(function(){return r.m})),n.d(t,"q",(function(){return r.n})),n.d(t,"r",(function(){return r.o}));var o=n(3),i=n(0),a=n.n(i),l=n(5),s=(n(7),n(2)),c=n(6),u=n(4),d=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=Object(l.a)(t.props),t}return Object(o.a)(t,e),t.prototype.render=function(){return a.a.createElement(r.e,{history:this.history,children:this.props.children})},t}(a.a.Component);var p=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=Object(l.b)(t.props),t}return Object(o.a)(t,e),t.prototype.render=function(){return a.a.createElement(r.e,{history:this.history,children:this.props.children})},t}(a.a.Component);var f=function(e,t){return"function"==typeof e?e(t):e},m=function(e,t){return"string"==typeof e?Object(l.c)(e,null,null,t):e},h=function(e){return e},g=a.a.forwardRef;void 0===g&&(g=h);var v=g((function(e,t){var n=e.innerRef,r=e.navigate,o=e.onClick,i=Object(c.a)(e,["innerRef","navigate","onClick"]),l=i.target,u=Object(s.a)({},i,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||l&&"_self"!==l||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=h!==g&&t||n,a.a.createElement("a",u)}));var b=g((function(e,t){var n=e.component,o=void 0===n?v:n,i=e.replace,l=e.to,d=e.innerRef,p=Object(c.a)(e,["component","replace","to","innerRef"]);return a.a.createElement(r.h.Consumer,null,(function(e){e||Object(u.a)(!1);var n=e.history,r=m(f(l,e.location),e.location),c=r?n.createHref(r):"",v=Object(s.a)({},p,{href:c,navigate:function(){var t=f(l,e.location);(i?n.replace:n.push)(t)}});return h!==g?v.ref=t||d:v.innerRef=d,a.a.createElement(o,v)}))})),y=function(e){return e},w=a.a.forwardRef;void 0===w&&(w=y);var _=w((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,i=e.activeClassName,l=void 0===i?"active":i,d=e.activeStyle,p=e.className,h=e.exact,g=e.isActive,v=e.location,_=e.sensitive,k=e.strict,E=e.style,x=e.to,S=e.innerRef,T=Object(c.a)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.a.createElement(r.h.Consumer,null,(function(e){e||Object(u.a)(!1);var n=v||e.location,i=m(f(x,n),n),c=i.pathname,P=c&&c.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),C=P?Object(r.j)(n.pathname,{path:P,exact:h,sensitive:_,strict:k}):null,O=!!(g?g(C,n):C),R=O?function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(p,l):p,A=O?Object(s.a)({},E,{},d):E,N=Object(s.a)({"aria-current":O&&o||null,className:R,style:A,to:i},T);return y!==w?N.ref=t||S:N.innerRef=S,a.a.createElement(b,N)}))}))},,,function(e,t,n){var r={"./":41};function o(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=i,e.exports=o,o.id=16},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var l=n(0),s=n(7),c=[],u=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var o=d(e[r]);o.loading?t.loading=!0:(t.loaded[r]=o.loaded,t.error=o.error),n.push(o.promise),o.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=Object.assign({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return c.push(g),"function"==typeof m.webpack&&u.push((function(){if(e=m.webpack,"object"===r(n.m)&&e().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g();var e})),p=d=function(t){function n(r){o(this,n);var a=i(this,t.call(this,r));return a.retry=function(){a.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),a._loadModule()},g(),a.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},a}return a(n,t),n.preload=function(){return g()},n.prototype.componentWillMount=function(){this._mounted=!0,this._loadModule()},n.prototype._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){e.setState({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){e.setState({timedOut:!0})}),m.timeout));var t=function(){e._mounted&&(e.setState({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts())};h.promise.then((function(){t()})).catch((function(e){t()}))}},n.prototype.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},n.prototype._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},n.prototype.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),d.contextTypes={loadable:s.shape({report:s.func.isRequired})},p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return o(this,t),i(this,e.apply(this,arguments))}return a(t,e),t.prototype.getChildContext=function(){return{loadable:{report:this.props.report}}},t.prototype.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function v(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return v(e)}))}g.propTypes={report:s.func.isRequired},g.childContextTypes={loadable:s.shape({report:s.func.isRequired}).isRequired},h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){v(c).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){v(u).then(e,e)}))},e.exports=h},function(e,t,n){"use strict";(function(e){var r=n(0),o=n.n(r),i=n(3),a=n(7),l=n.n(a),s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==e?e:{};function c(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter((function(t){return t!==e}))},get:function(){return e},set:function(n,r){e=n,t.forEach((function(t){return t(e,r)}))}}}var u=o.a.createContext||function(e,t){var n,o,a,u="__create-react-context-"+((s[a="__global_unique_id__"]=(s[a]||0)+1)+"__"),d=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).emitter=c(t.props.value),t}Object(i.a)(n,e);var r=n.prototype;return r.getChildContext=function(){var e;return(e={})[u]=this.emitter,e},r.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,o=e.value;((i=r)===(a=o)?0!==i||1/i==1/a:i!=i&&a!=a)?n=0:(n="function"==typeof t?t(r,o):1073741823,0!==(n|=0)&&this.emitter.set(e.value,n))}var i,a},r.render=function(){return this.props.children},n}(r.Component);d.childContextTypes=((n={})[u]=l.a.object.isRequired,n);var p=function(t){function n(){var e;return(e=t.apply(this,arguments)||this).state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}Object(i.a)(n,t);var r=n.prototype;return r.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?1073741823:t},r.componentDidMount=function(){this.context[u]&&this.context[u].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?1073741823:e},r.componentWillUnmount=function(){this.context[u]&&this.context[u].off(this.onUpdate)},r.getValue=function(){return this.context[u]?this.context[u].get():e},r.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(r.Component);return p.contextTypes=((o={})[u]=l.a.object,o),{Provider:d,Consumer:p}};t.a=u}).call(this,n(29))},function(e,t,n){var r=n(37);e.exports=f,e.exports.parse=i,e.exports.compile=function(e,t){return l(i(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function i(e,t){for(var n,r=[],i=0,a=0,l="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(a,f),a=f+d.length,p)l+=p[1];else{var m=e[a],h=n[2],g=n[3],v=n[4],b=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var _=null!=h&&null!=m&&m!==h,k="+"===y||"*"===y,E="?"===y||"*"===y,x=n[2]||u,S=v||b;r.push({name:g||i++,prefix:h||"",delimiter:x,optional:E,repeat:k,partial:_,asterisk:!!w,pattern:S?c(S):w?".*":"[^"+s(x)+"]+?"})}}return a<e.length&&(l+=e.substr(a)),l&&r.push(l),r}function a(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),o=0;o<e.length;o++)"object"==typeof e[o]&&(n[o]=new RegExp("^(?:"+e[o].pattern+")$",d(t)));return function(t,o){for(var i="",l=t||{},s=(o||{}).pretty?a:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];if("string"!=typeof u){var d,p=l[u.name];if(null==p){if(u.optional){u.partial&&(i+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=s(p[f]),!n[c].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");i+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(p),!n[c].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');i+=u.prefix+d}}else i+=u}return i}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function c(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,i=!1!==n.end,a="",l=0;l<e.length;l++){var c=e[l];if("string"==typeof c)a+=s(c);else{var p=s(c.prefix),f="(?:"+c.pattern+")";t.push(c),c.repeat&&(f+="(?:"+p+f+")*"),a+=f=c.optional?c.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=s(n.delimiter||"/"),h=a.slice(-m.length)===m;return o||(a=(h?a.slice(0,-m.length):a)+"(?:"+m+"(?=$))?"),a+=i?"$":o&&h?"":"(?="+m+"|$)",u(new RegExp("^"+a,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(f(e[o],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(i(e,n),t,n)}(e,t,n)}},function(e,t,n){"use strict";var r=n(0),o=n.n(r);t.a=o.a.createContext(null)},function(e,t,n){"use strict";var r,o,i,a=(r=0,o={util:{encode:function(e){return e instanceof i?new i(e.type,o.util.encode(e.content),e.alias):"Array"===o.util.type(e)?e.map(o.util.encode):e.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++r}),e.__id},clone:function(e,t){var n=o.util.type(e);switch(t=t||{},n){case"Object":if(t[o.util.objId(e)])return t[o.util.objId(e)];var r={};for(var i in t[o.util.objId(e)]=r,e)e.hasOwnProperty(i)&&(r[i]=o.util.clone(e[i],t));return r;case"Array":return t[o.util.objId(e)]?t[o.util.objId(e)]:(r=[],t[o.util.objId(e)]=r,e.forEach((function(e,n){r[n]=o.util.clone(e,t)})),r)}return e}},languages:{extend:function(e,t){var n=o.util.clone(o.languages[e]);for(var r in t)n[r]=t[r];return n},insertBefore:function(e,t,n,r){var i=(r=r||o.languages)[e];if(2==arguments.length){for(var a in n=arguments[1])n.hasOwnProperty(a)&&(i[a]=n[a]);return i}var l={};for(var s in i)if(i.hasOwnProperty(s)){if(s==t)for(var a in n)n.hasOwnProperty(a)&&(l[a]=n[a]);l[s]=i[s]}return o.languages.DFS(o.languages,(function(t,n){n===r[e]&&t!=e&&(this[t]=l)})),r[e]=l},DFS:function(e,t,n,r){for(var i in r=r||{},e)e.hasOwnProperty(i)&&(t.call(e,i,e[i],n||i),"Object"!==o.util.type(e[i])||r[o.util.objId(e[i])]?"Array"!==o.util.type(e[i])||r[o.util.objId(e[i])]||(r[o.util.objId(e[i])]=!0,o.languages.DFS(e[i],t,i,r)):(r[o.util.objId(e[i])]=!0,o.languages.DFS(e[i],t,null,r)))}},plugins:{},highlight:function(e,t,n){var r={code:e,grammar:t,language:n};return r.tokens=o.tokenize(r.code,r.grammar),i.stringify(o.util.encode(r.tokens),r.language)},matchGrammar:function(e,t,n,r,i,a,l){var s=o.Token;for(var c in n)if(n.hasOwnProperty(c)&&n[c]){if(c==l)return;var u=n[c];u="Array"===o.util.type(u)?u:[u];for(var d=0;d<u.length;++d){var p=u[d],f=p.inside,m=!!p.lookbehind,h=!!p.greedy,g=0,v=p.alias;if(h&&!p.pattern.global){var b=p.pattern.toString().match(/[imuy]*$/)[0];p.pattern=RegExp(p.pattern.source,b+"g")}p=p.pattern||p;for(var y=r,w=i;y<t.length;w+=t[y].length,++y){var _=t[y];if(t.length>e.length)return;if(!(_ instanceof s)){if(h&&y!=t.length-1){if(p.lastIndex=w,!(P=p.exec(e)))break;for(var k=P.index+(m?P[1].length:0),E=P.index+P[0].length,x=y,S=w,T=t.length;x<T&&(S<E||!t[x].type&&!t[x-1].greedy);++x)k>=(S+=t[x].length)&&(++y,w=S);if(t[y]instanceof s)continue;C=x-y,_=e.slice(w,S),P.index-=w}else{p.lastIndex=0;var P=p.exec(_),C=1}if(P){m&&(g=P[1]?P[1].length:0),E=(k=P.index+g)+(P=P[0].slice(g)).length;var O=_.slice(0,k),R=_.slice(E),A=[y,C];O&&(++y,w+=O.length,A.push(O));var N=new s(c,f?o.tokenize(P,f):P,v,P,h);if(A.push(N),R&&A.push(R),Array.prototype.splice.apply(t,A),1!=C&&o.matchGrammar(e,t,n,y,w,!0,c),a)break}else if(a)break}}}}},hooks:{add:function(){}},tokenize:function(e,t,n){var r=[e],i=t.rest;if(i){for(var a in i)t[a]=i[a];delete t.rest}return o.matchGrammar(e,r,t,0,0,!1),r}},(i=o.Token=function(e,t,n,r,o){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length,this.greedy=!!o}).stringify=function(e,t,n){if("string"==typeof e)return e;if("Array"===o.util.type(e))return e.map((function(n){return i.stringify(n,t,e)})).join("");var r={type:e.type,content:i.stringify(e.content,t,n),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:n};if(e.alias){var a="Array"===o.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(r.classes,a)}var l=Object.keys(r.attributes).map((function(e){return e+'="'+(r.attributes[e]||"").replace(/"/g,""")+'"'})).join(" ");return"<"+r.tag+' class="'+r.classes.join(" ")+'"'+(l?" "+l:"")+">"+r.content+"</"+r.tag+">"},o);a.languages.markup={comment:/<!--[\s\S]*?-->/,prolog:/<\?[\s\S]+?\?>/,doctype:/<!DOCTYPE[\s\S]+?>/i,cdata:/<!\[CDATA\[[\s\S]*?]]>/i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[\s\S]*?>)(?:<!\[CDATA\[[\s\S]*?\]\]>\s*|[\s\S])*?(?=<\/__>)/.source.replace(/__/g,e),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),a.languages.xml=a.languages.extend("markup",{}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)\w+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b\w+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+?)\s*(?:\r?\n|\r)(?:[\s\S])*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:n},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s*(?:\r?\n|\r)(?:[\s\S])*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0},{pattern:/(["'])(?:\\[\s\S]|\$\([^)]+\)|`[^`]+`|(?!\1)[^\\])*\1/,greedy:!0,inside:n}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:n.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|==?|!=?|=~|<<[<-]?|[&\d]?>>|\d?[<>]&?|&[>&]?|\|[&|]?|<=?|>=?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}};for(var r=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=n.variable[1].inside,i=0;i<r.length;i++)o[r[i]]=e.languages.bash[r[i]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{"class-name":{pattern:/(\b(?:enum|struct)\s+)\w+/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/,number:/(?:\b0x(?:[\da-f]+\.?[\da-f]*|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ful]*/i}),a.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z]+(?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,alias:"property",inside:{string:{pattern:/(#\s*include\s*)(?:<.+?>|("|')(?:\\?.)+?\2)/,lookbehind:!0},directive:{pattern:/(#\s*)\b(?:define|defined|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\b/,lookbehind:!0,alias:"keyword"}}},constant:/\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/}),delete a.languages.c.boolean,a.languages.cpp=a.languages.extend("c",{"class-name":{pattern:/(\b(?:class|enum|struct)\s+)\w+/,lookbehind:!0},keyword:/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+\.?[\da-f']*|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+\.?[\d']*|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]*/i,greedy:!0},operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:true|false)\b/}),a.languages.insertBefore("cpp","string",{"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/,inside:{rule:/@[\w-]+/}},url:{pattern:RegExp("url\\((?:"+t.source+"|[^\n\r()]*)\\)","i"),inside:{function:/^url/i,punctuation:/^\(|\)$/}},selector:RegExp("[^{}\\s](?:[^{};\"']|"+t.source+")*?(?=\\s*\\{)"),string:{pattern:t,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),e.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:n.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:e.languages.css}},alias:"language-css"}},n.tag))}(a),a.languages.css.selector={pattern:a.languages.css.selector,inside:{"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-:.\w]+/,id:/#[-:.\w]+/,attribute:{pattern:/\[(?:[^[\]"']|("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1)*\]/,greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)[-*\w\xA0-\uFFFF]*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},attribute:{pattern:/^(\s*)[-\w\xA0-\uFFFF]+/,lookbehind:!0},value:[/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,{pattern:/(=\s*)[-\w\xA0-\uFFFF]+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],punctuation:/[()]/}},a.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*/i,lookbehind:!0}}),a.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:/#[\da-f]{3,8}/i,entity:/\\[\da-f]{1,8}/i,unit:{pattern:/(\d)(?:%|[a-z]+)/,lookbehind:!0},number:/-?[\d.]+/}),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,function:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/-[-=]?|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}}}),a.languages.markup&&a.languages.markup.tag.addInlined("script","javascript"),a.languages.js=a.languages.javascript,function(e){var t=e.util.clone(e.languages.javascript);e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=/<\/?(?:[\w.:-]+\s*(?:\s+(?:[\w.:-]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s{'">=]+|\{(?:\{(?:\{[^}]*\}|[^{}])*\}|[^{}])+\}))?|\{\.{3}[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*\}))*\s*\/?)?>/i,e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/i,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">]+)/i,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.insertBefore("inside","attr-name",{spread:{pattern:/\{\.{3}[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*\}/,inside:{punctuation:/\.{3}|[{}.]/,"attr-value":/\w+/}}},e.languages.jsx.tag),e.languages.insertBefore("inside","attr-value",{script:{pattern:/=(\{(?:\{(?:\{[^}]*\}|[^}])*\}|[^}])+\})/i,inside:{"script-punctuation":{pattern:/^=(?={)/,alias:"punctuation"},rest:e.languages.jsx},alias:"language-javascript"}},e.languages.jsx.tag);var n=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(n).join(""):""},r=function(t){for(var o=[],i=0;i<t.length;i++){var a=t[i],l=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?o.length>0&&o[o.length-1].tagName===n(a.content[0].content[1])&&o.pop():"/>"===a.content[a.content.length-1].content||o.push({tagName:n(a.content[0].content[1]),openedBraces:0}):o.length>0&&"punctuation"===a.type&&"{"===a.content?o[o.length-1].openedBraces++:o.length>0&&o[o.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?o[o.length-1].openedBraces--:l=!0),(l||"string"==typeof a)&&o.length>0&&0===o[o.length-1].openedBraces){var s=n(a);i<t.length-1&&("string"==typeof t[i+1]||"plain-text"===t[i+1].type)&&(s+=n(t[i+1]),t.splice(i+1,1)),i>0&&("string"==typeof t[i-1]||"plain-text"===t[i-1].type)&&(s=n(t[i-1])+s,t.splice(i-1,1),i--),t[i]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&r(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||r(e.tokens)}))}(a),function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^\s*(?:\/{3}|\*|\/\*\*)\s*@(?:param|arg|arguments)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^\s*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){"string"==typeof t&&(t=[t]),t.forEach((function(t){!function(t,n){var r=e.languages[t];if(r){var o=r["doc-comment"];if(!o){var i={"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,alias:"comment"}};o=(r=e.languages.insertBefore(t,"comment",i))["doc-comment"]}if(o instanceof RegExp&&(o=r["doc-comment"]={pattern:o}),Array.isArray(o))for(var a=0,l=o.length;a<l;a++)o[a]instanceof RegExp&&(o[a]={pattern:o[a]}),n(o[a]);else n(o)}}(t,(function(e){e.inside||(e.inside={}),e.inside.rest=n}))}))}}),t.addSupport(["java","javascript","php"],t)}(a),function(e){var t=/\b(?:abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while|var|null|exports|module|open|opens|provides|requires|to|transitive|uses|with)\b/,n=/\b[A-Z](?:\w*[a-z]\w*)?\b/;e.languages.java=e.languages.extend("clike",{"class-name":[n,/\b[A-Z]\w*(?=\s+\w+\s*[;,=())])/],keyword:t,function:[e.languages.clike.function,{pattern:/(\:\:)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x[\da-f_]*\.?[\da-f_p+-]+\b|(?:\b\d[\d_]*\.?[\d_]*|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|([-+&|])\2|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","class-name",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0},namespace:{pattern:/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)[a-z]\w*(\.[a-z]\w*)+/,lookbehind:!0,inside:{punctuation:/\./}},generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":n,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})}(a),function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,i){if(n.language===r){var a=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof i&&!i(e))return e;for(var o,l=a.length;-1!==n.code.indexOf(o=t(r,l));)++l;return a[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,i=Object.keys(n.tokenStack);!function a(l){for(var s=0;s<l.length&&!(o>=i.length);s++){var c=l[s];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=i[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),v=p.substring(m+f.length),b=[];h&&b.push.apply(b,a([h])),b.push(g),v&&b.push.apply(b,a([v])),"string"==typeof c?l.splice.apply(l,[s,1].concat(b)):c.content=b}}else c.content&&a(c.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.php=e.languages.extend("clike",{keyword:/\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|new|or|parent|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,boolean:{pattern:/\b(?:false|true)\b/i,alias:"constant"},constant:[/\b[A-Z_][A-Z0-9_]*\b/,/\b(?:null)\b/i],comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0}}),e.languages.insertBefore("php","string",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),e.languages.insertBefore("php","comment",{delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"}}),e.languages.insertBefore("php","keyword",{variable:/\$+(?:\w+\b|(?={))/i,package:{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),e.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}});var t={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[.+?]|->\w+)*)/,lookbehind:!0,inside:{rest:e.languages.php}};e.languages.insertBefore("php","string",{"nowdoc-string":{pattern:/<<<'([^']+)'(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;/,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},"heredoc-string":{pattern:/<<<(?:"([^"]+)"(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;|([a-z_]\w*)(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\2;)/i,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:t}},"single-quoted-string":{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,alias:"string",inside:{interpolation:t}}}),delete e.languages.php.string,e.hooks.add("before-tokenize",(function(t){if(/<\?/.test(t.code)){e.languages["markup-templating"].buildPlaceholders(t,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#)(?:[^?\n\r]|\?(?!>))*|\/\*[\s\S]*?(?:\*\/|$))*?(?:\?>|$)/gi)}})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")}))}(a),function(e){var t=e.languages.javascript,n=/{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})+}/.source,r="(@(?:param|arg|argument|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/[$\w\xA0-\uFFFF.]+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[[$\w\xA0-\uFFFF.]+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{punctuation:/[.,:?=<>|{}()[\]]/}},{pattern:/(@(?:augments|extends|class|interface|memberof!?|this)\s+)[A-Z]\w*(?:\.[A-Z]\w*)*/,lookbehind:!0,inside:{punctuation:/\./}}],example:{pattern:/(@example\s+)[^@]+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^(\s*(?:\*\s*)?).+$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(a),a.languages.actionscript=a.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),a.languages.actionscript["class-name"].alias="function",a.languages.markup&&a.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:{rest:a.languages.markup}}}),function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},rest:e.languages.javascript}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:(?:Uint|Int)(?:8|16|32)|Uint8Clamped|Float(?:32|64))?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|(?:Weak)?(?:Set|Map)|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:/(\.\s*)#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*/,lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|location|navigator|performance|(?:local|session)Storage|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var t=["function","function-variable","method","method-variable","property-access"],n=0;n<t.length;n++){var r=t[n],o=e.languages.javascript[r];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[r]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\b/,alias:"tag"}]}),e.languages.flow["function-variable"].pattern=/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:type|opaque|declare|Class)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\b(?!\$)/,lookbehind:!0})}(a),a.languages.n4js=a.languages.extend("javascript",{keyword:/\b(?:any|Array|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),a.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),a.languages.n4jsd=a.languages.n4js,a.languages.typescript=a.languages.extend("javascript",{keyword:/\b(?:abstract|as|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|var|void|while|with|yield)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/}),a.languages.ts=a.languages.typescript,function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],i=r.pattern.source;function a(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function c(t){var n={};n["interpolation-punctuation"]=o;var i=e.tokenize(t,n);if(3===i.length){var a=[1,1];a.push.apply(a,s(i[1],e.languages.javascript,"javascript")),i.splice.apply(i,a)}return new e.Token("interpolation",i,r.alias,t)}function u(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(i),lookbehind:!0}}),a=0,u={},d=s(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=l(a++,r)););return u[n]=o,n})).join(""),n,r),p=Object.keys(u);return a=0,function e(t){for(var n=0;n<t.length;n++){if(a>=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=p[a],i="string"==typeof r?r:r.content,l=i.indexOf(o);if(-1!==l){++a;var s=i.substring(0,l),d=c(u[o]),f=i.substring(l+o.length),m=[];if(s&&m.push(s),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[a("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),a("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),a("svg",/\bsvg/.source),a("markdown",/\b(?:md|markdown)/.source),a("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,o=n.length;r<o;r++){var i=n[r];if("string"!=typeof i){var a=i.content;if(Array.isArray(a))if("template-string"===i.type){var l=a[1];if(3===a.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=p(l),c=l.alias,d=Array.isArray(c)?c[0]:c,f=e.languages[d];if(!f)continue;a[1]=u(s,f,d)}}else t(a);else"string"!=typeof a&&t([a])}}}(t.tokens)}))}(a),a.languages.graphql={comment:/#.*/,string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:true|false)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+)[a-zA-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:enum|fragment|implements|input|interface|mutation|on|query|scalar|schema|type|union)\b/,operator:/[!=|]|\.{3}/,punctuation:/[!(){}\[\]:=,]/,constant:/\b(?!ID\b)[A-Z][A-Z_\d]*\b/},function(e){var t=/(?:\\.|[^\\\n\r]|(?:\r?\n|\r)(?!\r?\n|\r))/.source;function n(e,n){return e=e.replace(/<inner>/g,t),n&&(e=e+"|"+e.replace(/_/g,"\\*")),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``.+?``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\r?\n|\r)|$)/.source.replace(/__/g,r),i=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\r?\n|\r)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+i+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+i+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+i+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/(^[ \t]*(?:\r?\n|\r))(?: {4}|\t).+(?:(?:\r?\n|\r)(?: {4}|\t).+)*/m,lookbehind:!0,alias:"keyword"},{pattern:/``.+?``|`[^`\r\n]+`/,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\r?\n|\r))[\s\S]+?(?=(?:\r?\n|\r)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\r?\n|\r)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#+.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__/.source,!0),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_/.source,!0),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+?\2/.source,!1),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)| ?\[(?:(?!\])<inner>)+\])/.source,!1),lookbehind:!0,greedy:!0,inside:{variable:{pattern:/(\[)[^\]]+(?=\]$)/,lookbehind:!0},content:{pattern:/(^!?\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},string:{pattern:/"(?:\\.|[^"\\])*"(?=\)$)/}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var o=t[n];if("code"===o.type){var i=o.content[1],a=o.content[3];if(i&&a&&"code-language"===i.type&&"code-block"===a.type&&"string"==typeof i.content){var l="language-"+i.content.trim().split(/\s+/)[0].toLowerCase();a.alias?"string"==typeof a.alias?a.alias=[a.alias,l]:a.alias.push(l):a.alias=[l]}}else e(o.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,o=t.classes.length;r<o;r++){var i=t.classes[r],a=/language-(.+)/.exec(i);if(a){n=a[1];break}}var l=e.languages[n];if(l){var s=t.content.replace(/</g,"<").replace(/&/g,"&");t.content=e.highlight(s,l,n)}else if(n&&"none"!==n&&e.plugins.autoloader){var c="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=c,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}})),e.languages.md=e.languages.markdown}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d+.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/m}},coord:/^@@.*@@$/m,commit_sha1:/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,builtin:/\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/,boolean:/\b(?:_|iota|nil|true|false)\b/,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,number:/(?:\b0x[a-f\d]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[-+]?\d+)?)i?/i,string:{pattern:/(["'`])(\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0}}),delete a.languages.go["class-name"],function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/i,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:true|false)\b/,block:{pattern:/^(\s*~?\s*)[#\/]\S+?(?=\s*~?\s*$|\s)/i,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")}))}(a),a.languages.json={property:{pattern:/"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,greedy:!0},string:{pattern:/"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,greedy:!0},comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,number:/-?\d+\.?\d*(e[+-]?\d+)?/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-]+?(?:\([^{}]+\)|[^(){};])*?(?=\s*\{)/i,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\([^{}]*\)|[^{};@])*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-]+.*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,symbol:{pattern:/^[^:=\r\n]+(?=\s*:(?!=))/m,inside:{variable:/\$+(?:[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:[/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,{pattern:/(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/,lookbehind:!0}],operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{keyword:/\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,string:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|@"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.ocaml={comment:/\(\*[\s\S]*?\*\)/,string:[{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},{pattern:/(['`])(?:\\(?:\d+|x[\da-f]+|.)|(?!\1)[^\\\r\n])\1/i,greedy:!0}],number:/\b(?:0x[\da-f][\da-f_]+|(?:0[bo])?\d[\d_]*\.?[\d_]*(?:e[+-]?[\d_]+)?)/i,type:{pattern:/\B['`]\w*/,alias:"variable"},directive:{pattern:/\B#\w+/,alias:"function"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|prefix|private|rec|then|sig|struct|to|try|type|val|value|virtual|where|while|with)\b/,boolean:/\b(?:false|true)\b/,operator:/:=|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lxor|lsl|lsr|mod|nor|or)\b/,punctuation:/[(){}\[\]|_.,:;]/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"string-interpolation":{pattern:/(?:f|rf|fr)(?:("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|rb|br)?("""|''')[\s\S]+?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|rb|br)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^\s*)@\w+(?:\.\w+)*/i,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:True|False|None)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{comment:{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:mod|land|lor|lxor|lsl|lsr|asr)\b/}),a.languages.insertBefore("reason","class-name",{character:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,alias:"string"},constructor:{pattern:/\b[A-Z]\w*\b(?!\s*\.)/,alias:"variable"},label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t]+.+)*/m,lookbehind:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,inside:{atrule:/(?:@[\w-]+|[+=])/m}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/,{pattern:/(\s+)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s]+.*)/m,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/([ \t]*)\S(?:,?[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,?[^,\r\n]+)*)*/,lookbehind:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-]+(?:\([^()]+\)|[^(])*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()]|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}]+[:{][^}]+))/m,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[\w-]|\$[-\w]+|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:if|else(?: if)?|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)/i,{pattern:/( +)(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:TRUE|FALSE|NULL)\b/i,number:/\b0x[\da-f]+\b|\b\d+\.?\d*|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t={url:/url\((["']?).*?\1\)/i,string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:if|else|for|return|unless)(?=\s+|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,number:/\b\d+(?:\.\d+)?%?/,boolean:/\b(?:true|false)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.+|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],punctuation:/[{}()\[\];:,]/};t.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^{|}$/,alias:"punctuation"},rest:t}},t.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:t}},e.languages.stylus={comment:{pattern:/(^|[^\\])(\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},"atrule-declaration":{pattern:/(^\s*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:t}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:(?:\{[^}]*\}|.+)|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:t}},statement:{pattern:/(^[ \t]*)(?:if|else|for|return|unless)[ \t]+.+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:t}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)[^{\r\n]*(?:;|[^{\r\n,](?=$)(?!(\r?\n|\r)(?:\{|\2[ \t]+)))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:t.interpolation}},rest:t}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t]+)))/m,lookbehind:!0,inside:{interpolation:t.interpolation,punctuation:/[{},]/}},func:t.func,string:t.string,interpolation:t.interpolation,punctuation:/[{}()\[\];:.]/}}(a);var l=a.util.clone(a.languages.typescript);a.languages.tsx=a.languages.extend("jsx",l),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^_`|~]+/i,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/},a.languages.yaml={scalar:{pattern:/([\-:]\s*(?:![^\s]+)?[ \t]*[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)[^\r\n]+(?:\2[^\r\n]+)*)/,lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:/(\s*(?:^|[:\-,[{\r\n?])[ \t]*(?:![^\s]+)?[ \t]*)[^\r\n{[\]},#\s]+?(?=\s*:\s)/,lookbehind:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?)?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?)(?=[ \t]*(?:$|,|]|}))/m,lookbehind:!0,alias:"number"},boolean:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:true|false)[ \t]*(?=$|,|]|})/im,lookbehind:!0,alias:"important"},null:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:null|~)[ \t]*(?=$|,|]|})/im,lookbehind:!0,alias:"important"},string:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)("|')(?:(?!\2)[^\\\r\n]|\\.)*\2(?=[ \t]*(?:$|,|]|}|\s*#))/m,lookbehind:!0,greedy:!0},number:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+\.?\d*|\.?\d+)(?:e[+-]?\d+)?|\.inf|\.nan)[ \t]*(?=$|,|]|})/im,lookbehind:!0},tag:/![^\s]+/,important:/[&*][\w]+/,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},a.languages.yml=a.languages.yaml,t.a=a},function(e,t,n){"use strict";var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,t){for(var n,l,s=a(e),c=1;c<arguments.length;c++){for(var u in n=Object(arguments[c]))o.call(n,u)&&(s[u]=n[u]);if(r){l=r(n);for(var d=0;d<l.length;d++)i.call(n,l[d])&&(s[l[d]]=n[l[d]])}}return s}},function(e,t,n){"use strict";var r=n(9);t.a=r.b},function(e,t,n){"use strict";e.exports=n(38)},function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}}(),e.exports=n(32)},function(e){e.exports=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs/docs","latestVersionName":null,"versions":[{"name":null,"path":"/docs/docs","mainDocId":"welcome","docs":[{"id":"alerts_authentication","path":"/docs/docs/alerts_authentication"},{"id":"alerts_endpoints","path":"/docs/docs/alerts_endpoints"},{"id":"alerts_events","path":"/docs/docs/alerts_events"},{"id":"alerts_overview","path":"/docs/docs/alerts_overview"},{"id":"authentication","path":"/docs/docs/authentication"},{"id":"beta_assets_endpoints","path":"/docs/docs/beta_assets_endpoints"},{"id":"beta_features_overview","path":"/docs/docs/beta_features_overview"},{"id":"beta_input_endpoints","path":"/docs/docs/beta_input_endpoints"},{"id":"beta_layers_endpoints","path":"/docs/docs/beta_layers_endpoints"},{"id":"beta_machines_endpoints","path":"/docs/docs/beta_machines_endpoints"},{"id":"beta_prescriptions_endpoints","path":"/docs/docs/beta_prescriptions_endpoints"},{"id":"configurations_endpoints","path":"/docs/docs/configurations_endpoints"},{"id":"configurations_overview","path":"/docs/docs/configurations_overview"},{"id":"connect","path":"/docs/docs/connect"},{"id":"converters_endpoints","path":"/docs/docs/converters_endpoints"},{"id":"converters_overview","path":"/docs/docs/converters_overview"},{"id":"credentials_agleader","path":"/docs/docs/credentials_agleader"},{"id":"credentials_agvance","path":"/docs/docs/credentials_agvance"},{"id":"credentials_cfv","path":"/docs/docs/credentials_cfv"},{"id":"credentials_cnhi","path":"/docs/docs/credentials_cnhi"},{"id":"credentials_john_deere","path":"/docs/docs/credentials_john_deere"},{"id":"credentials_raven","path":"/docs/docs/credentials_raven"},{"id":"credentials_raven_slingshot","path":"/docs/docs/credentials_raven_slingshot"},{"id":"credentials_sentera","path":"/docs/docs/credentials_sentera"},{"id":"credentials_stara","path":"/docs/docs/credentials_stara"},{"id":"credentials_trimble","path":"/docs/docs/credentials_trimble"},{"id":"crop_monitoring_endpoints","path":"/docs/docs/crop_monitoring_endpoints"},{"id":"crop_monitoring_overview","path":"/docs/docs/crop_monitoring_overview"},{"id":"crop_monitoring_planet_overview","path":"/docs/docs/crop_monitoring_planet_overview"},{"id":"crop_monitoring_sentinel_overview","path":"/docs/docs/crop_monitoring_sentinel_overview"},{"id":"crops","path":"/docs/docs/crops"},{"id":"field_boundaries_endpoints","path":"/docs/docs/field_boundaries_endpoints"},{"id":"field_boundaries_overview","path":"/docs/docs/field_boundaries_overview"},{"id":"field_boundary_management_endpoints","path":"/docs/docs/field_boundary_management_endpoints"},{"id":"field_boundary_management_overview","path":"/docs/docs/field_boundary_management_overview"},{"id":"files_crops_table","path":"/docs/docs/files_crops_table"},{"id":"files_endpoints","path":"/docs/docs/files_endpoints"},{"id":"files_images","path":"/docs/docs/files_images"},{"id":"files_overview","path":"/docs/docs/files_overview"},{"id":"files_postman","path":"/docs/docs/files_postman"},{"id":"files_sample_output","path":"/docs/docs/files_sample_output"},{"id":"glossary","path":"/docs/docs/glossary"},{"id":"glossary(unused)","path":"/docs/docs/glossary(unused)"},{"id":"integrations_endpoints","path":"/docs/docs/integrations_endpoints"},{"id":"introduction","path":"/docs/docs/introduction"},{"id":"Link_endpoints","path":"/docs/docs/Link_endpoints"},{"id":"Link_file_upload","path":"/docs/docs/Link_file_upload"},{"id":"Link_provider_connection","path":"/docs/docs/Link_provider_connection"},{"id":"machine_file_conversion_crops_table","path":"/docs/docs/machine_file_conversion_crops_table"},{"id":"machine_file_conversion_endpoints","path":"/docs/docs/machine_file_conversion_endpoints"},{"id":"machine_file_conversion_overview","path":"/docs/docs/machine_file_conversion_overview"},{"id":"machine_file_conversion_sample_output","path":"/docs/docs/machine_file_conversion_sample_output"},{"id":"machine_file_conversion_units","path":"/docs/docs/machine_file_conversion_units"},{"id":"Magic_link_endpoints","path":"/docs/docs/Magic_link_endpoints"},{"id":"Magic_link_overview","path":"/docs/docs/Magic_link_overview"},{"id":"operations_endpoints","path":"/docs/docs/operations_endpoints"},{"id":"operations_overview","path":"/docs/docs/operations_overview"},{"id":"operations_sample_output","path":"/docs/docs/operations_sample_output"},{"id":"planet_overview","path":"/docs/docs/planet_overview"},{"id":"provider_organizations","path":"/docs/docs/provider_organizations"},{"id":"provider-authentication-overview","path":"/docs/docs/provider-authentication-overview"},{"id":"quickstart","path":"/docs/docs/quickstart"},{"id":"release_notes","path":"/docs/docs/release_notes"},{"id":"satellite_endpoints","path":"/docs/docs/satellite_endpoints"},{"id":"satellite_overview","path":"/docs/docs/satellite_overview"},{"id":"sentinel_overview","path":"/docs/docs/sentinel_overview"},{"id":"setup_information","path":"/docs/docs/setup_information"},{"id":"sharedata","path":"/docs/docs/sharedata"},{"id":"usecase_johndeere_products","path":"/docs/docs/usecase_johndeere_products"},{"id":"usecase_satellite","path":"/docs/docs/usecase_satellite"},{"id":"usecase_upload","path":"/docs/docs/usecase_upload"},{"id":"user_management_endpoints","path":"/docs/docs/user_management_endpoints"},{"id":"user_management_overview","path":"/docs/docs/user_management_overview"},{"id":"weather_endpoints","path":"/docs/docs/weather_endpoints"},{"id":"weather_overview","path":"/docs/docs/weather_overview"},{"id":"welcome","path":"/docs/docs/"}]}]}}}')},function(e){e.exports=JSON.parse('{"docusaurusVersion":"2.0.0-alpha.61","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","version":"2.0.0-alpha.61"},"docusaurus-plugin-content-blog":{"type":"package","version":"2.0.0-alpha.61"},"docusaurus-plugin-content-pages":{"type":"package","version":"2.0.0-alpha.61"},"docusaurus-plugin-google-analytics":{"type":"package","version":"2.0.0-alpha.61"},"docusaurus-plugin-sitemap":{"type":"package","version":"2.0.0-alpha.61"},"docusaurus-theme-classic":{"type":"package","version":"2.0.0-alpha.61"},"docusaurus-lunr-search":{"type":"package","version":"2.1.11"}}}')},function(e,t,n){"use strict";var r=n(24),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?a:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=a;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var a=u(n);d&&(a=a.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<a.length;++g){var v=a[g];if(!(i[v]||r&&r[v]||h&&h[v]||l&&l[v])){var b=p(n,v);try{c(t,v,b)}catch(y){}}}}return t}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){e.exports=n(46)},function(e,t,n){"use strict";var r=n(22),o=60103,i=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var a=60109,l=60110,s=60112;t.Suspense=60113;var c=60115,u=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;o=d("react.element"),i=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),a=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),c=d("react.memo"),u=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function v(){}function b(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=g.prototype;var y=b.prototype=new v;y.constructor=b,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},_=Object.prototype.hasOwnProperty,k={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,i={},a=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(a=""+t.key),t)_.call(t,r)&&!k.hasOwnProperty(r)&&(i[r]=t[r]);var s=arguments.length-2;if(1===s)i.children=n;else if(1<s){for(var c=Array(s),u=0;u<s;u++)c[u]=arguments[u+2];i.children=c}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===i[r]&&(i[r]=s[r]);return{$$typeof:o,type:e,key:a,ref:l,props:i,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var S=/\/+/g;function T(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function P(e,t,n,r,a){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case o:case i:s=!0}}if(s)return a=a(s=e),e=""===r?"."+T(s,0):r,Array.isArray(a)?(n="",null!=e&&(n=e.replace(S,"$&/")+"/"),P(a,t,n,"",(function(e){return e}))):null!=a&&(x(a)&&(a=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(a,n+(!a.key||s&&s.key===a.key?"":(""+a.key).replace(S,"$&/")+"/")+e)),t.push(a)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var c=0;c<e.length;c++){var u=r+T(l=e[c],c);s+=P(l,t,n,u,a)}else if("function"==typeof(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e)))for(e=u.call(e),c=0;!(l=e.next()).done;)s+=P(l=l.value,t,n,u=r+T(l,c++),a);else if("object"===l)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function C(e,t,n){if(null==e)return e;var r=[],o=0;return P(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function O(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var R={current:null};function A(){var e=R.current;if(null===e)throw Error(f(321));return e}var N={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:C,forEach:function(e,t,n){C(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return C(e,(function(){t++})),t},toArray:function(e){return C(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(f(143));return e}},t.Component=g,t.PureComponent=b,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=N,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var i=r({},e.props),a=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(a=""+t.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(u in t)_.call(t,u)&&!k.hasOwnProperty(u)&&(i[u]=void 0===t[u]&&void 0!==c?c[u]:t[u])}var u=arguments.length-2;if(1===u)i.children=n;else if(1<u){c=Array(u);for(var d=0;d<u;d++)c[d]=arguments[d+2];i.children=c}return{$$typeof:o,type:e.type,key:a,ref:l,props:i,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:a,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:u,_payload:{_status:-1,_result:e},_init:O}},t.memo=function(e,t){return{$$typeof:c,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return A().useCallback(e,t)},t.useContext=function(e,t){return A().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return A().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return A().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return A().useLayoutEffect(e,t)},t.useMemo=function(e,t){return A().useMemo(e,t)},t.useReducer=function(e,t,n){return A().useReducer(e,t,n)},t.useRef=function(e){return A().useRef(e)},t.useState=function(e){return A().useState(e)},t.version="17.0.2"},function(e,t,n){"use strict";var r=n(0),o=n(22),i=n(33);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(a(227));function l(e,t,n,r,o,i,a,l,s){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var s=!1,c=null,u=!1,d=null,p={onError:function(e){s=!0,c=e}};function f(e,t,n,r,o,i,a,u,d){s=!1,c=null,l.apply(p,arguments)}var m=null,h=null,g=null;function v(e,t,n){var r=e.type||"unknown-event";e.currentTarget=g(n),function(e,t,n,r,o,i,l,p,m){if(f.apply(this,arguments),s){if(!s)throw Error(a(198));var h=c;s=!1,c=null,u||(u=!0,d=h)}}(r,t,void 0,e),e.currentTarget=null}var b=null,y={};function w(){if(b)for(var e in y){var t=y[e],n=b.indexOf(e);if(!(-1<n))throw Error(a(96,e));if(!k[n]){if(!t.extractEvents)throw Error(a(97,e));for(var r in k[n]=t,n=t.eventTypes){var o=void 0,i=n[r],l=t,s=r;if(E.hasOwnProperty(s))throw Error(a(99,s));E[s]=i;var c=i.phasedRegistrationNames;if(c){for(o in c)c.hasOwnProperty(o)&&_(c[o],l,s);o=!0}else i.registrationName?(_(i.registrationName,l,s),o=!0):o=!1;if(!o)throw Error(a(98,r,e))}}}}function _(e,t,n){if(x[e])throw Error(a(100,e));x[e]=t,S[e]=t.eventTypes[n].dependencies}var k=[],E={},x={},S={};function T(e){var t,n=!1;for(t in e)if(e.hasOwnProperty(t)){var r=e[t];if(!y.hasOwnProperty(t)||y[t]!==r){if(y[t])throw Error(a(102,t));y[t]=r,n=!0}}n&&w()}var P=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),C=null,O=null,R=null;function A(e){if(e=h(e)){if("function"!=typeof C)throw Error(a(280));var t=e.stateNode;t&&(t=m(t),C(e.stateNode,e.type,t))}}function N(e){O?R?R.push(e):R=[e]:O=e}function I(){if(O){var e=O,t=R;if(R=O=null,A(e),t)for(e=0;e<t.length;e++)A(t[e])}}function L(e,t){return e(t)}function j(e,t,n,r,o){return e(t,n,r,o)}function D(){}var F=L,M=!1,z=!1;function U(){null===O&&null===R||(D(),I())}function B(e,t,n){if(z)return e(t,n);z=!0;try{return F(e,t,n)}finally{z=!1,U()}}var $=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,q=Object.prototype.hasOwnProperty,G={},H={};function W(e,t,n,r,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i}var V={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){V[e]=new W(e,0,!1,e,null,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];V[t]=new W(t,1,!1,e[1],null,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){V[e]=new W(e,2,!1,e.toLowerCase(),null,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){V[e]=new W(e,2,!1,e,null,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){V[e]=new W(e,3,!1,e.toLowerCase(),null,!1)})),["checked","multiple","muted","selected"].forEach((function(e){V[e]=new W(e,3,!0,e,null,!1)})),["capture","download"].forEach((function(e){V[e]=new W(e,4,!1,e,null,!1)})),["cols","rows","size","span"].forEach((function(e){V[e]=new W(e,6,!1,e,null,!1)})),["rowSpan","start"].forEach((function(e){V[e]=new W(e,5,!1,e.toLowerCase(),null,!1)}));var Q=/[\-:]([a-z])/g;function K(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(Q,K);V[t]=new W(t,1,!1,e,null,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(Q,K);V[t]=new W(t,1,!1,e,"http://www.w3.org/1999/xlink",!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(Q,K);V[t]=new W(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)})),["tabIndex","crossOrigin"].forEach((function(e){V[e]=new W(e,1,!1,e.toLowerCase(),null,!1)})),V.xlinkHref=new W("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0),["src","href","action","formAction"].forEach((function(e){V[e]=new W(e,1,!1,e.toLowerCase(),null,!0)}));var X=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function Y(e,t,n,r){var o=V.hasOwnProperty(t)?V[t]:null;(null!==o?0===o.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!q.call(H,e)||!q.call(G,e)&&($.test(e)?H[e]=!0:(G[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}X.hasOwnProperty("ReactCurrentDispatcher")||(X.ReactCurrentDispatcher={current:null}),X.hasOwnProperty("ReactCurrentBatchConfig")||(X.ReactCurrentBatchConfig={suspense:null});var Z=/^(.*)[\\\/]/,J="function"==typeof Symbol&&Symbol.for,ee=J?Symbol.for("react.element"):60103,te=J?Symbol.for("react.portal"):60106,ne=J?Symbol.for("react.fragment"):60107,re=J?Symbol.for("react.strict_mode"):60108,oe=J?Symbol.for("react.profiler"):60114,ie=J?Symbol.for("react.provider"):60109,ae=J?Symbol.for("react.context"):60110,le=J?Symbol.for("react.concurrent_mode"):60111,se=J?Symbol.for("react.forward_ref"):60112,ce=J?Symbol.for("react.suspense"):60113,ue=J?Symbol.for("react.suspense_list"):60120,de=J?Symbol.for("react.memo"):60115,pe=J?Symbol.for("react.lazy"):60116,fe=J?Symbol.for("react.block"):60121,me="function"==typeof Symbol&&Symbol.iterator;function he(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=me&&e[me]||e["@@iterator"])?e:null}function ge(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case ne:return"Fragment";case te:return"Portal";case oe:return"Profiler";case re:return"StrictMode";case ce:return"Suspense";case ue:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case ae:return"Context.Consumer";case ie:return"Context.Provider";case se:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case de:return ge(e.type);case fe:return ge(e.render);case pe:if(e=1===e._status?e._result:null)return ge(e)}return null}function ve(e){var t="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var n="";break e;default:var r=e._debugOwner,o=e._debugSource,i=ge(e.type);n=null,r&&(n=ge(r.type)),r=i,i="",o?i=" (at "+o.fileName.replace(Z,"")+":"+o.lineNumber+")":n&&(i=" (created by "+n+")"),n="\n in "+(r||"Unknown")+i}t+=n,e=e.return}while(e);return t}function be(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function ye(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function we(e){e._valueTracker||(e._valueTracker=function(e){var t=ye(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,i.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function _e(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ye(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function ke(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=be(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function xe(e,t){null!=(t=t.checked)&&Y(e,"checked",t,!1)}function Se(e,t){xe(e,t);var n=be(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?Pe(e,t.type,n):t.hasOwnProperty("defaultValue")&&Pe(e,t.type,be(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function Te(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function Pe(e,t,n){"number"===t&&e.ownerDocument.activeElement===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function Ce(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function Oe(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+be(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function Re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(a(91));return o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Ae(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(a(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:be(n)}}function Ne(e,t){var n=be(t.value),r=be(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function Ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var Le="http://www.w3.org/1999/xhtml",je="http://www.w3.org/2000/svg";function De(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Fe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?De(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var Me,ze=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction((function(){return e(t,n)}))}:e}((function(e,t){if(e.namespaceURI!==je||"innerHTML"in e)e.innerHTML=t;else{for((Me=Me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}}));function Ue(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}function Be(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var $e={animationend:Be("Animation","AnimationEnd"),animationiteration:Be("Animation","AnimationIteration"),animationstart:Be("Animation","AnimationStart"),transitionend:Be("Transition","TransitionEnd")},qe={},Ge={};function He(e){if(qe[e])return qe[e];if(!$e[e])return e;var t,n=$e[e];for(t in n)if(n.hasOwnProperty(t)&&t in Ge)return qe[e]=n[t];return e}P&&(Ge=document.createElement("div").style,"AnimationEvent"in window||(delete $e.animationend.animation,delete $e.animationiteration.animation,delete $e.animationstart.animation),"TransitionEvent"in window||delete $e.transitionend.transition);var We=He("animationend"),Ve=He("animationiteration"),Qe=He("animationstart"),Ke=He("transitionend"),Xe="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ye=new("function"==typeof WeakMap?WeakMap:Map);function Ze(e){var t=Ye.get(e);return void 0===t&&(t=new Map,Ye.set(e,t)),t}function Je(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).effectTag)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function et(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function tt(e){if(Je(e)!==e)throw Error(a(188))}function nt(e){if(!(e=function(e){var t=e.alternate;if(!t){if(null===(t=Je(e)))throw Error(a(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var i=o.alternate;if(null===i){if(null!==(r=o.return)){n=r;continue}break}if(o.child===i.child){for(i=o.child;i;){if(i===n)return tt(o),e;if(i===r)return tt(o),t;i=i.sibling}throw Error(a(188))}if(n.return!==r.return)n=o,r=i;else{for(var l=!1,s=o.child;s;){if(s===n){l=!0,n=o,r=i;break}if(s===r){l=!0,r=o,n=i;break}s=s.sibling}if(!l){for(s=i.child;s;){if(s===n){l=!0,n=i,r=o;break}if(s===r){l=!0,r=i,n=o;break}s=s.sibling}if(!l)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function rt(e,t){if(null==t)throw Error(a(30));return null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function ot(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}var it=null;function at(e){if(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))for(var r=0;r<t.length&&!e.isPropagationStopped();r++)v(e,t[r],n[r]);else t&&v(e,t,n);e._dispatchListeners=null,e._dispatchInstances=null,e.isPersistent()||e.constructor.release(e)}}function lt(e){if(null!==e&&(it=rt(it,e)),e=it,it=null,e){if(ot(e,at),it)throw Error(a(95));if(u)throw e=d,u=!1,d=null,e}}function st(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}function ct(e){if(!P)return!1;var t=(e="on"+e)in document;return t||((t=document.createElement("div")).setAttribute(e,"return;"),t="function"==typeof t[e]),t}var ut=[];function dt(e){e.topLevelType=null,e.nativeEvent=null,e.targetInst=null,e.ancestors.length=0,10>ut.length&&ut.push(e)}function pt(e,t,n,r){if(ut.length){var o=ut.pop();return o.topLevelType=e,o.eventSystemFlags=r,o.nativeEvent=t,o.targetInst=n,o}return{topLevelType:e,eventSystemFlags:r,nativeEvent:t,targetInst:n,ancestors:[]}}function ft(e){var t=e.targetInst,n=t;do{if(!n){e.ancestors.push(n);break}var r=n;if(3===r.tag)r=r.stateNode.containerInfo;else{for(;r.return;)r=r.return;r=3!==r.tag?null:r.stateNode.containerInfo}if(!r)break;5!==(t=n.tag)&&6!==t||e.ancestors.push(n),n=Pn(r)}while(n);for(n=0;n<e.ancestors.length;n++){t=e.ancestors[n];var o=st(e.nativeEvent);r=e.topLevelType;var i=e.nativeEvent,a=e.eventSystemFlags;0===n&&(a|=64);for(var l=null,s=0;s<k.length;s++){var c=k[s];c&&(c=c.extractEvents(r,t,i,o,a))&&(l=rt(l,c))}lt(l)}}function mt(e,t,n){if(!n.has(e)){switch(e){case"scroll":Qt(t,"scroll",!0);break;case"focus":case"blur":Qt(t,"focus",!0),Qt(t,"blur",!0),n.set("blur",null),n.set("focus",null);break;case"cancel":case"close":ct(e)&&Qt(t,e,!0);break;case"invalid":case"submit":case"reset":break;default:-1===Xe.indexOf(e)&&Vt(e,t)}n.set(e,null)}}var ht,gt,vt,bt=!1,yt=[],wt=null,_t=null,kt=null,Et=new Map,xt=new Map,St=[],Tt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit".split(" "),Pt="focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture".split(" ");function Ct(e,t,n,r,o){return{blockedOn:e,topLevelType:t,eventSystemFlags:32|n,nativeEvent:o,container:r}}function Ot(e,t){switch(e){case"focus":case"blur":wt=null;break;case"dragenter":case"dragleave":_t=null;break;case"mouseover":case"mouseout":kt=null;break;case"pointerover":case"pointerout":Et.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":xt.delete(t.pointerId)}}function Rt(e,t,n,r,o,i){return null===e||e.nativeEvent!==i?(e=Ct(t,n,r,o,i),null!==t&&(null!==(t=Cn(t))&>(t)),e):(e.eventSystemFlags|=r,e)}function At(e){var t=Pn(e.target);if(null!==t){var n=Je(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=et(n)))return e.blockedOn=t,void i.unstable_runWithPriority(e.priority,(function(){vt(n)}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Nt(e){if(null!==e.blockedOn)return!1;var t=Zt(e.topLevelType,e.eventSystemFlags,e.container,e.nativeEvent);if(null!==t){var n=Cn(t);return null!==n&>(n),e.blockedOn=t,!1}return!0}function It(e,t,n){Nt(e)&&n.delete(t)}function Lt(){for(bt=!1;0<yt.length;){var e=yt[0];if(null!==e.blockedOn){null!==(e=Cn(e.blockedOn))&&ht(e);break}var t=Zt(e.topLevelType,e.eventSystemFlags,e.container,e.nativeEvent);null!==t?e.blockedOn=t:yt.shift()}null!==wt&&Nt(wt)&&(wt=null),null!==_t&&Nt(_t)&&(_t=null),null!==kt&&Nt(kt)&&(kt=null),Et.forEach(It),xt.forEach(It)}function jt(e,t){e.blockedOn===t&&(e.blockedOn=null,bt||(bt=!0,i.unstable_scheduleCallback(i.unstable_NormalPriority,Lt)))}function Dt(e){function t(t){return jt(t,e)}if(0<yt.length){jt(yt[0],e);for(var n=1;n<yt.length;n++){var r=yt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==wt&&jt(wt,e),null!==_t&&jt(_t,e),null!==kt&&jt(kt,e),Et.forEach(t),xt.forEach(t),n=0;n<St.length;n++)(r=St[n]).blockedOn===e&&(r.blockedOn=null);for(;0<St.length&&null===(n=St[0]).blockedOn;)At(n),null===n.blockedOn&&St.shift()}var Ft={},Mt=new Map,zt=new Map,Ut=["abort","abort",We,"animationEnd",Ve,"animationIteration",Qe,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Ke,"transitionEnd","waiting","waiting"];function Bt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],o=e[n+1],i="on"+(o[0].toUpperCase()+o.slice(1));i={phasedRegistrationNames:{bubbled:i,captured:i+"Capture"},dependencies:[r],eventPriority:t},zt.set(r,t),Mt.set(r,i),Ft[o]=i}}Bt("blur blur cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focus focus input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Bt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Bt(Ut,2);for(var $t="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),qt=0;qt<$t.length;qt++)zt.set($t[qt],0);var Gt=i.unstable_UserBlockingPriority,Ht=i.unstable_runWithPriority,Wt=!0;function Vt(e,t){Qt(t,e,!1)}function Qt(e,t,n){var r=zt.get(t);switch(void 0===r?2:r){case 0:r=Kt.bind(null,t,1,e);break;case 1:r=Xt.bind(null,t,1,e);break;default:r=Yt.bind(null,t,1,e)}n?e.addEventListener(t,r,!0):e.addEventListener(t,r,!1)}function Kt(e,t,n,r){M||D();var o=Yt,i=M;M=!0;try{j(o,e,t,n,r)}finally{(M=i)||U()}}function Xt(e,t,n,r){Ht(Gt,Yt.bind(null,e,t,n,r))}function Yt(e,t,n,r){if(Wt)if(0<yt.length&&-1<Tt.indexOf(e))e=Ct(null,e,t,n,r),yt.push(e);else{var o=Zt(e,t,n,r);if(null===o)Ot(e,r);else if(-1<Tt.indexOf(e))e=Ct(o,e,t,n,r),yt.push(e);else if(!function(e,t,n,r,o){switch(t){case"focus":return wt=Rt(wt,e,t,n,r,o),!0;case"dragenter":return _t=Rt(_t,e,t,n,r,o),!0;case"mouseover":return kt=Rt(kt,e,t,n,r,o),!0;case"pointerover":var i=o.pointerId;return Et.set(i,Rt(Et.get(i)||null,e,t,n,r,o)),!0;case"gotpointercapture":return i=o.pointerId,xt.set(i,Rt(xt.get(i)||null,e,t,n,r,o)),!0}return!1}(o,e,t,n,r)){Ot(e,r),e=pt(e,r,null,t);try{B(ft,e)}finally{dt(e)}}}}function Zt(e,t,n,r){if(null!==(n=Pn(n=st(r)))){var o=Je(n);if(null===o)n=null;else{var i=o.tag;if(13===i){if(null!==(n=et(o)))return n;n=null}else if(3===i){if(o.stateNode.hydrate)return 3===o.tag?o.stateNode.containerInfo:null;n=null}else o!==n&&(n=null)}}e=pt(e,r,n,t);try{B(ft,e)}finally{dt(e)}return null}var Jt={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},en=["Webkit","ms","Moz","O"];function tn(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||Jt.hasOwnProperty(e)&&Jt[e]?(""+t).trim():t+"px"}function nn(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=tn(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(Jt).forEach((function(e){en.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Jt[t]=Jt[e]}))}));var rn=o({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function on(e,t){if(t){if(rn[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(a(137,e,""));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(a(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(a(62,""))}}function an(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var ln=Le;function sn(e,t){var n=Ze(e=9===e.nodeType||11===e.nodeType?e:e.ownerDocument);t=S[t];for(var r=0;r<t.length;r++)mt(t[r],e,n)}function cn(){}function un(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(Ws){return e.body}}function dn(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function pn(e,t){var n,r=dn(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=dn(r)}}function fn(){for(var e=window,t=un();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=un((e=t.contentWindow).document)}return t}function mn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var hn=null,gn=null;function vn(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function bn(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var yn="function"==typeof setTimeout?setTimeout:void 0,wn="function"==typeof clearTimeout?clearTimeout:void 0;function _n(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function kn(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var En=Math.random().toString(36).slice(2),xn="__reactInternalInstance$"+En,Sn="__reactEventHandlers$"+En,Tn="__reactContainere$"+En;function Pn(e){var t=e[xn];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Tn]||n[xn]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=kn(e);null!==e;){if(n=e[xn])return n;e=kn(e)}return t}n=(e=n).parentNode}return null}function Cn(e){return!(e=e[xn]||e[Tn])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function On(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function Rn(e){return e[Sn]||null}function An(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function Nn(e,t){var n=e.stateNode;if(!n)return null;var r=m(n);if(!r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(a(231,t,typeof n));return n}function In(e,t,n){(t=Nn(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=rt(n._dispatchListeners,t),n._dispatchInstances=rt(n._dispatchInstances,e))}function Ln(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var t=e._targetInst,n=[];t;)n.push(t),t=An(t);for(t=n.length;0<t--;)In(n[t],"captured",e);for(t=0;t<n.length;t++)In(n[t],"bubbled",e)}}function jn(e,t,n){e&&n&&n.dispatchConfig.registrationName&&(t=Nn(e,n.dispatchConfig.registrationName))&&(n._dispatchListeners=rt(n._dispatchListeners,t),n._dispatchInstances=rt(n._dispatchInstances,e))}function Dn(e){e&&e.dispatchConfig.registrationName&&jn(e._targetInst,null,e)}function Fn(e){ot(e,Ln)}var Mn=null,zn=null,Un=null;function Bn(){if(Un)return Un;var e,t,n=zn,r=n.length,o="value"in Mn?Mn.value:Mn.textContent,i=o.length;for(e=0;e<r&&n[e]===o[e];e++);var a=r-e;for(t=1;t<=a&&n[r-t]===o[i-t];t++);return Un=o.slice(e,1<t?1-t:void 0)}function $n(){return!0}function qn(){return!1}function Gn(e,t,n,r){for(var o in this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n,e=this.constructor.Interface)e.hasOwnProperty(o)&&((t=e[o])?this[o]=t(n):"target"===o?this.target=r:this[o]=n[o]);return this.isDefaultPrevented=(null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue)?$n:qn,this.isPropagationStopped=qn,this}function Hn(e,t,n,r){if(this.eventPool.length){var o=this.eventPool.pop();return this.call(o,e,t,n,r),o}return new this(e,t,n,r)}function Wn(e){if(!(e instanceof this))throw Error(a(279));e.destructor(),10>this.eventPool.length&&this.eventPool.push(e)}function Vn(e){e.eventPool=[],e.getPooled=Hn,e.release=Wn}o(Gn.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=$n)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=$n)},persist:function(){this.isPersistent=$n},isPersistent:qn,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=qn,this._dispatchInstances=this._dispatchListeners=null}}),Gn.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},Gn.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var i=new t;return o(i,n.prototype),n.prototype=i,n.prototype.constructor=n,n.Interface=o({},r.Interface,e),n.extend=r.extend,Vn(n),n},Vn(Gn);var Qn=Gn.extend({data:null}),Kn=Gn.extend({data:null}),Xn=[9,13,27,32],Yn=P&&"CompositionEvent"in window,Zn=null;P&&"documentMode"in document&&(Zn=document.documentMode);var Jn=P&&"TextEvent"in window&&!Zn,er=P&&(!Yn||Zn&&8<Zn&&11>=Zn),tr=String.fromCharCode(32),nr={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},rr=!1;function or(e,t){switch(e){case"keyup":return-1!==Xn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function ir(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var ar=!1;var lr={eventTypes:nr,extractEvents:function(e,t,n,r){var o;if(Yn)e:{switch(e){case"compositionstart":var i=nr.compositionStart;break e;case"compositionend":i=nr.compositionEnd;break e;case"compositionupdate":i=nr.compositionUpdate;break e}i=void 0}else ar?or(e,n)&&(i=nr.compositionEnd):"keydown"===e&&229===n.keyCode&&(i=nr.compositionStart);return i?(er&&"ko"!==n.locale&&(ar||i!==nr.compositionStart?i===nr.compositionEnd&&ar&&(o=Bn()):(zn="value"in(Mn=r)?Mn.value:Mn.textContent,ar=!0)),i=Qn.getPooled(i,t,n,r),o?i.data=o:null!==(o=ir(n))&&(i.data=o),Fn(i),o=i):o=null,(e=Jn?function(e,t){switch(e){case"compositionend":return ir(t);case"keypress":return 32!==t.which?null:(rr=!0,tr);case"textInput":return(e=t.data)===tr&&rr?null:e;default:return null}}(e,n):function(e,t){if(ar)return"compositionend"===e||!Yn&&or(e,t)?(e=Bn(),Un=zn=Mn=null,ar=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return er&&"ko"!==t.locale?null:t.data;default:return null}}(e,n))?((t=Kn.getPooled(nr.beforeInput,t,n,r)).data=e,Fn(t)):t=null,null===o?t:null===t?o:[o,t]}},sr={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function cr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!sr[e.type]:"textarea"===t}var ur={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}};function dr(e,t,n){return(e=Gn.getPooled(ur.change,e,t,n)).type="change",N(n),Fn(e),e}var pr=null,fr=null;function mr(e){lt(e)}function hr(e){if(_e(On(e)))return e}function gr(e,t){if("change"===e)return t}var vr=!1;function br(){pr&&(pr.detachEvent("onpropertychange",yr),fr=pr=null)}function yr(e){if("value"===e.propertyName&&hr(fr))if(e=dr(fr,e,st(e)),M)lt(e);else{M=!0;try{L(mr,e)}finally{M=!1,U()}}}function wr(e,t,n){"focus"===e?(br(),fr=n,(pr=t).attachEvent("onpropertychange",yr)):"blur"===e&&br()}function _r(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return hr(fr)}function kr(e,t){if("click"===e)return hr(t)}function Er(e,t){if("input"===e||"change"===e)return hr(t)}P&&(vr=ct("input")&&(!document.documentMode||9<document.documentMode));var xr={eventTypes:ur,_isInputEventSupported:vr,extractEvents:function(e,t,n,r){var o=t?On(t):window,i=o.nodeName&&o.nodeName.toLowerCase();if("select"===i||"input"===i&&"file"===o.type)var a=gr;else if(cr(o))if(vr)a=Er;else{a=_r;var l=wr}else(i=o.nodeName)&&"input"===i.toLowerCase()&&("checkbox"===o.type||"radio"===o.type)&&(a=kr);if(a&&(a=a(e,t)))return dr(a,n,r);l&&l(e,o,t),"blur"===e&&(e=o._wrapperState)&&e.controlled&&"number"===o.type&&Pe(o,"number",o.value)}},Sr=Gn.extend({view:null,detail:null}),Tr={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Pr(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Tr[e])&&!!t[e]}function Cr(){return Pr}var Or=0,Rr=0,Ar=!1,Nr=!1,Ir=Sr.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Cr,button:null,buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},movementX:function(e){if("movementX"in e)return e.movementX;var t=Or;return Or=e.screenX,Ar?"mousemove"===e.type?e.screenX-t:0:(Ar=!0,0)},movementY:function(e){if("movementY"in e)return e.movementY;var t=Rr;return Rr=e.screenY,Nr?"mousemove"===e.type?e.screenY-t:0:(Nr=!0,0)}}),Lr=Ir.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),jr={mouseEnter:{registrationName:"onMouseEnter",dependencies:["mouseout","mouseover"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["mouseout","mouseover"]},pointerEnter:{registrationName:"onPointerEnter",dependencies:["pointerout","pointerover"]},pointerLeave:{registrationName:"onPointerLeave",dependencies:["pointerout","pointerover"]}},Dr={eventTypes:jr,extractEvents:function(e,t,n,r,o){var i="mouseover"===e||"pointerover"===e,a="mouseout"===e||"pointerout"===e;if(i&&0==(32&o)&&(n.relatedTarget||n.fromElement)||!a&&!i)return null;(i=r.window===r?r:(i=r.ownerDocument)?i.defaultView||i.parentWindow:window,a)?(a=t,null!==(t=(t=n.relatedTarget||n.toElement)?Pn(t):null)&&(t!==Je(t)||5!==t.tag&&6!==t.tag)&&(t=null)):a=null;if(a===t)return null;if("mouseout"===e||"mouseover"===e)var l=Ir,s=jr.mouseLeave,c=jr.mouseEnter,u="mouse";else"pointerout"!==e&&"pointerover"!==e||(l=Lr,s=jr.pointerLeave,c=jr.pointerEnter,u="pointer");if(e=null==a?i:On(a),i=null==t?i:On(t),(s=l.getPooled(s,a,n,r)).type=u+"leave",s.target=e,s.relatedTarget=i,(n=l.getPooled(c,t,n,r)).type=u+"enter",n.target=i,n.relatedTarget=e,u=t,(r=a)&&u)e:{for(c=u,a=0,e=l=r;e;e=An(e))a++;for(e=0,t=c;t;t=An(t))e++;for(;0<a-e;)l=An(l),a--;for(;0<e-a;)c=An(c),e--;for(;a--;){if(l===c||l===c.alternate)break e;l=An(l),c=An(c)}l=null}else l=null;for(c=l,l=[];r&&r!==c&&(null===(a=r.alternate)||a!==c);)l.push(r),r=An(r);for(r=[];u&&u!==c&&(null===(a=u.alternate)||a!==c);)r.push(u),u=An(u);for(u=0;u<l.length;u++)jn(l[u],"bubbled",s);for(u=r.length;0<u--;)jn(r[u],"captured",n);return 0==(64&o)?[s]:[s,n]}};var Fr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},Mr=Object.prototype.hasOwnProperty;function zr(e,t){if(Fr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!Mr.call(t,n[r])||!Fr(e[n[r]],t[n[r]]))return!1;return!0}var Ur=P&&"documentMode"in document&&11>=document.documentMode,Br={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},$r=null,qr=null,Gr=null,Hr=!1;function Wr(e,t){var n=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;return Hr||null==$r||$r!==un(n)?null:("selectionStart"in(n=$r)&&mn(n)?n={start:n.selectionStart,end:n.selectionEnd}:n={anchorNode:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset},Gr&&zr(Gr,n)?null:(Gr=n,(e=Gn.getPooled(Br.select,qr,e,t)).type="select",e.target=$r,Fn(e),e))}var Vr={eventTypes:Br,extractEvents:function(e,t,n,r,o,i){if(!(i=!(o=i||(r.window===r?r.document:9===r.nodeType?r:r.ownerDocument)))){e:{o=Ze(o),i=S.onSelect;for(var a=0;a<i.length;a++)if(!o.has(i[a])){o=!1;break e}o=!0}i=!o}if(i)return null;switch(o=t?On(t):window,e){case"focus":(cr(o)||"true"===o.contentEditable)&&($r=o,qr=t,Gr=null);break;case"blur":Gr=qr=$r=null;break;case"mousedown":Hr=!0;break;case"contextmenu":case"mouseup":case"dragend":return Hr=!1,Wr(n,r);case"selectionchange":if(Ur)break;case"keydown":case"keyup":return Wr(n,r)}return null}},Qr=Gn.extend({animationName:null,elapsedTime:null,pseudoElement:null}),Kr=Gn.extend({clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Xr=Sr.extend({relatedTarget:null});function Yr(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}var Zr={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Jr={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},eo=Sr.extend({key:function(e){if(e.key){var t=Zr[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=Yr(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?Jr[e.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Cr,charCode:function(e){return"keypress"===e.type?Yr(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?Yr(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),to=Ir.extend({dataTransfer:null}),no=Sr.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Cr}),ro=Gn.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),oo=Ir.extend({deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null}),io={eventTypes:Ft,extractEvents:function(e,t,n,r){var o=Mt.get(e);if(!o)return null;switch(e){case"keypress":if(0===Yr(n))return null;case"keydown":case"keyup":e=eo;break;case"blur":case"focus":e=Xr;break;case"click":if(2===n.button)return null;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":e=Ir;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":e=to;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":e=no;break;case We:case Ve:case Qe:e=Qr;break;case Ke:e=ro;break;case"scroll":e=Sr;break;case"wheel":e=oo;break;case"copy":case"cut":case"paste":e=Kr;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":e=Lr;break;default:e=Gn}return Fn(t=e.getPooled(o,t,n,r)),t}};if(b)throw Error(a(101));b=Array.prototype.slice.call("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")),w(),m=Rn,h=Cn,g=On,T({SimpleEventPlugin:io,EnterLeaveEventPlugin:Dr,ChangeEventPlugin:xr,SelectEventPlugin:Vr,BeforeInputEventPlugin:lr});var ao=[],lo=-1;function so(e){0>lo||(e.current=ao[lo],ao[lo]=null,lo--)}function co(e,t){lo++,ao[lo]=e.current,e.current=t}var uo={},po={current:uo},fo={current:!1},mo=uo;function ho(e,t){var n=e.type.contextTypes;if(!n)return uo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,i={};for(o in n)i[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function go(e){return null!=(e=e.childContextTypes)}function vo(){so(fo),so(po)}function bo(e,t,n){if(po.current!==uo)throw Error(a(168));co(po,t),co(fo,n)}function yo(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var i in r=r.getChildContext())if(!(i in e))throw Error(a(108,ge(t)||"Unknown",i));return o({},n,{},r)}function wo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||uo,mo=po.current,co(po,e),co(fo,fo.current),!0}function _o(e,t,n){var r=e.stateNode;if(!r)throw Error(a(169));n?(e=yo(e,t,mo),r.__reactInternalMemoizedMergedChildContext=e,so(fo),so(po),co(po,e)):so(fo),co(fo,n)}var ko=i.unstable_runWithPriority,Eo=i.unstable_scheduleCallback,xo=i.unstable_cancelCallback,So=i.unstable_requestPaint,To=i.unstable_now,Po=i.unstable_getCurrentPriorityLevel,Co=i.unstable_ImmediatePriority,Oo=i.unstable_UserBlockingPriority,Ro=i.unstable_NormalPriority,Ao=i.unstable_LowPriority,No=i.unstable_IdlePriority,Io={},Lo=i.unstable_shouldYield,jo=void 0!==So?So:function(){},Do=null,Fo=null,Mo=!1,zo=To(),Uo=1e4>zo?To:function(){return To()-zo};function Bo(){switch(Po()){case Co:return 99;case Oo:return 98;case Ro:return 97;case Ao:return 96;case No:return 95;default:throw Error(a(332))}}function $o(e){switch(e){case 99:return Co;case 98:return Oo;case 97:return Ro;case 96:return Ao;case 95:return No;default:throw Error(a(332))}}function qo(e,t){return e=$o(e),ko(e,t)}function Go(e,t,n){return e=$o(e),Eo(e,t,n)}function Ho(e){return null===Do?(Do=[e],Fo=Eo(Co,Vo)):Do.push(e),Io}function Wo(){if(null!==Fo){var e=Fo;Fo=null,xo(e)}Vo()}function Vo(){if(!Mo&&null!==Do){Mo=!0;var e=0;try{var t=Do;qo(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Do=null}catch(n){throw null!==Do&&(Do=Do.slice(e+1)),Eo(Co,Wo),n}finally{Mo=!1}}}function Qo(e,t,n){return 1073741821-(1+((1073741821-e+t/10)/(n/=10)|0))*n}function Ko(e,t){if(e&&e.defaultProps)for(var n in t=o({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}var Xo={current:null},Yo=null,Zo=null,Jo=null;function ei(){Jo=Zo=Yo=null}function ti(e){var t=Xo.current;so(Xo),e.type._context._currentValue=t}function ni(e,t){for(;null!==e;){var n=e.alternate;if(e.childExpirationTime<t)e.childExpirationTime=t,null!==n&&n.childExpirationTime<t&&(n.childExpirationTime=t);else{if(!(null!==n&&n.childExpirationTime<t))break;n.childExpirationTime=t}e=e.return}}function ri(e,t){Yo=e,Jo=Zo=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(e.expirationTime>=t&&(Ra=!0),e.firstContext=null)}function oi(e,t){if(Jo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(Jo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Zo){if(null===Yo)throw Error(a(308));Zo=t,Yo.dependencies={expirationTime:0,firstContext:t,responders:null}}else Zo=Zo.next=t;return e._currentValue}var ii=!1;function ai(e){e.updateQueue={baseState:e.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}function li(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,baseQueue:e.baseQueue,shared:e.shared,effects:e.effects})}function si(e,t){return(e={expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null}).next=e}function ci(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function ui(e,t){var n=e.alternate;null!==n&&li(n,e),null===(n=(e=e.updateQueue).baseQueue)?(e.baseQueue=t.next=t,t.next=t):(t.next=n.next,n.next=t)}function di(e,t,n,r){var i=e.updateQueue;ii=!1;var a=i.baseQueue,l=i.shared.pending;if(null!==l){if(null!==a){var s=a.next;a.next=l.next,l.next=s}a=l,i.shared.pending=null,null!==(s=e.alternate)&&(null!==(s=s.updateQueue)&&(s.baseQueue=l))}if(null!==a){s=a.next;var c=i.baseState,u=0,d=null,p=null,f=null;if(null!==s)for(var m=s;;){if((l=m.expirationTime)<r){var h={expirationTime:m.expirationTime,suspenseConfig:m.suspenseConfig,tag:m.tag,payload:m.payload,callback:m.callback,next:null};null===f?(p=f=h,d=c):f=f.next=h,l>u&&(u=l)}else{null!==f&&(f=f.next={expirationTime:1073741823,suspenseConfig:m.suspenseConfig,tag:m.tag,payload:m.payload,callback:m.callback,next:null}),is(l,m.suspenseConfig);e:{var g=e,v=m;switch(l=t,h=n,v.tag){case 1:if("function"==typeof(g=v.payload)){c=g.call(h,c,l);break e}c=g;break e;case 3:g.effectTag=-4097&g.effectTag|64;case 0:if(null==(l="function"==typeof(g=v.payload)?g.call(h,c,l):g))break e;c=o({},c,l);break e;case 2:ii=!0}}null!==m.callback&&(e.effectTag|=32,null===(l=i.effects)?i.effects=[m]:l.push(m))}if(null===(m=m.next)||m===s){if(null===(l=i.shared.pending))break;m=a.next=l.next,l.next=s,i.baseQueue=a=l,i.shared.pending=null}}null===f?d=c:f.next=p,i.baseState=d,i.baseQueue=f,as(u),e.expirationTime=u,e.memoizedState=c}}function pi(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=o,o=n,"function"!=typeof r)throw Error(a(191,r));r.call(o)}}}var fi=X.ReactCurrentBatchConfig,mi=(new r.Component).refs;function hi(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:o({},t,n),e.memoizedState=n,0===e.expirationTime&&(e.updateQueue.baseState=n)}var gi={isMounted:function(e){return!!(e=e._reactInternalFiber)&&Je(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternalFiber;var r=Wl(),o=fi.suspense;(o=si(r=Vl(r,e,o),o)).payload=t,null!=n&&(o.callback=n),ci(e,o),Ql(e,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternalFiber;var r=Wl(),o=fi.suspense;(o=si(r=Vl(r,e,o),o)).tag=1,o.payload=t,null!=n&&(o.callback=n),ci(e,o),Ql(e,r)},enqueueForceUpdate:function(e,t){e=e._reactInternalFiber;var n=Wl(),r=fi.suspense;(r=si(n=Vl(n,e,r),r)).tag=2,null!=t&&(r.callback=t),ci(e,r),Ql(e,n)}};function vi(e,t,n,r,o,i,a){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,i,a):!t.prototype||!t.prototype.isPureReactComponent||(!zr(n,r)||!zr(o,i))}function bi(e,t,n){var r=!1,o=uo,i=t.contextType;return"object"==typeof i&&null!==i?i=oi(i):(o=go(t)?mo:po.current,i=(r=null!=(r=t.contextTypes))?ho(e,o):uo),t=new t(n,i),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=gi,e.stateNode=t,t._reactInternalFiber=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=i),t}function yi(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&gi.enqueueReplaceState(t,t.state,null)}function wi(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=mi,ai(e);var i=t.contextType;"object"==typeof i&&null!==i?o.context=oi(i):(i=go(t)?mo:po.current,o.context=ho(e,i)),di(e,n,o,r),o.state=e.memoizedState,"function"==typeof(i=t.getDerivedStateFromProps)&&(hi(e,t,i,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&gi.enqueueReplaceState(o,o.state,null),di(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.effectTag|=4)}var _i=Array.isArray;function ki(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(a(309));var r=n.stateNode}if(!r)throw Error(a(147,e));var o=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===o?t.ref:((t=function(e){var t=r.refs;t===mi&&(t=r.refs={}),null===e?delete t[o]:t[o]=e})._stringRef=o,t)}if("string"!=typeof e)throw Error(a(284));if(!n._owner)throw Error(a(290,e))}return e}function Ei(e,t){if("textarea"!==e.type)throw Error(a(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t,""))}function xi(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.effectTag=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Ts(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.effectTag=2,n):r:(t.effectTag=2,n):n}function l(t){return e&&null===t.alternate&&(t.effectTag=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Os(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function c(e,t,n,r){return null!==t&&t.elementType===n.type?((r=o(t,n.props)).ref=ki(e,t,n),r.return=e,r):((r=Ps(n.type,n.key,n.props,null,e.mode,r)).ref=ki(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Rs(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function d(e,t,n,r,i){return null===t||7!==t.tag?((t=Cs(n,e.mode,r,i)).return=e,t):((t=o(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Os(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case ee:return(n=Ps(t.type,t.key,t.props,null,e.mode,n)).ref=ki(e,null,t),n.return=e,n;case te:return(t=Rs(t,e.mode,n)).return=e,t}if(_i(t)||he(t))return(t=Cs(t,e.mode,n,null)).return=e,t;Ei(e,t)}return null}function f(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==o?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case ee:return n.key===o?n.type===ne?d(e,t,n.props.children,r,o):c(e,t,n,r):null;case te:return n.key===o?u(e,t,n,r):null}if(_i(n)||he(n))return null!==o?null:d(e,t,n,r,null);Ei(e,n)}return null}function m(e,t,n,r,o){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case ee:return e=e.get(null===r.key?n:r.key)||null,r.type===ne?d(t,e,r.props.children,o,r.key):c(t,e,r,o);case te:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o)}if(_i(r)||he(r))return d(t,e=e.get(n)||null,r,o,null);Ei(t,r)}return null}function h(o,a,l,s){for(var c=null,u=null,d=a,h=a=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var v=f(o,d,l[h],s);if(null===v){null===d&&(d=g);break}e&&d&&null===v.alternate&&t(o,d),a=i(v,a,h),null===u?c=v:u.sibling=v,u=v,d=g}if(h===l.length)return n(o,d),c;if(null===d){for(;h<l.length;h++)null!==(d=p(o,l[h],s))&&(a=i(d,a,h),null===u?c=d:u.sibling=d,u=d);return c}for(d=r(o,d);h<l.length;h++)null!==(g=m(d,o,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),a=i(g,a,h),null===u?c=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(o,e)})),c}function g(o,l,s,c){var u=he(s);if("function"!=typeof u)throw Error(a(150));if(null==(s=u.call(s)))throw Error(a(151));for(var d=u=null,h=l,g=l=0,v=null,b=s.next();null!==h&&!b.done;g++,b=s.next()){h.index>g?(v=h,h=null):v=h.sibling;var y=f(o,h,b.value,c);if(null===y){null===h&&(h=v);break}e&&h&&null===y.alternate&&t(o,h),l=i(y,l,g),null===d?u=y:d.sibling=y,d=y,h=v}if(b.done)return n(o,h),u;if(null===h){for(;!b.done;g++,b=s.next())null!==(b=p(o,b.value,c))&&(l=i(b,l,g),null===d?u=b:d.sibling=b,d=b);return u}for(h=r(o,h);!b.done;g++,b=s.next())null!==(b=m(h,o,g,b.value,c))&&(e&&null!==b.alternate&&h.delete(null===b.key?g:b.key),l=i(b,l,g),null===d?u=b:d.sibling=b,d=b);return e&&h.forEach((function(e){return t(o,e)})),u}return function(e,r,i,s){var c="object"==typeof i&&null!==i&&i.type===ne&&null===i.key;c&&(i=i.props.children);var u="object"==typeof i&&null!==i;if(u)switch(i.$$typeof){case ee:e:{for(u=i.key,c=r;null!==c;){if(c.key===u){switch(c.tag){case 7:if(i.type===ne){n(e,c.sibling),(r=o(c,i.props.children)).return=e,e=r;break e}break;default:if(c.elementType===i.type){n(e,c.sibling),(r=o(c,i.props)).ref=ki(e,c,i),r.return=e,e=r;break e}}n(e,c);break}t(e,c),c=c.sibling}i.type===ne?((r=Cs(i.props.children,e.mode,s,i.key)).return=e,e=r):((s=Ps(i.type,i.key,i.props,null,e.mode,s)).ref=ki(e,r,i),s.return=e,e=s)}return l(e);case te:e:{for(c=i.key;null!==r;){if(r.key===c){if(4===r.tag&&r.stateNode.containerInfo===i.containerInfo&&r.stateNode.implementation===i.implementation){n(e,r.sibling),(r=o(r,i.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Rs(i,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof i||"number"==typeof i)return i=""+i,null!==r&&6===r.tag?(n(e,r.sibling),(r=o(r,i)).return=e,e=r):(n(e,r),(r=Os(i,e.mode,s)).return=e,e=r),l(e);if(_i(i))return h(e,r,i,s);if(he(i))return g(e,r,i,s);if(u&&Ei(e,i),void 0===i&&!c)switch(e.tag){case 1:case 0:throw e=e.type,Error(a(152,e.displayName||e.name||"Component"))}return n(e,r)}}var Si=xi(!0),Ti=xi(!1),Pi={},Ci={current:Pi},Oi={current:Pi},Ri={current:Pi};function Ai(e){if(e===Pi)throw Error(a(174));return e}function Ni(e,t){switch(co(Ri,t),co(Oi,e),co(Ci,Pi),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Fe(null,"");break;default:t=Fe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}so(Ci),co(Ci,t)}function Ii(){so(Ci),so(Oi),so(Ri)}function Li(e){Ai(Ri.current);var t=Ai(Ci.current),n=Fe(t,e.type);t!==n&&(co(Oi,e),co(Ci,n))}function ji(e){Oi.current===e&&(so(Ci),so(Oi))}var Di={current:0};function Fi(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.effectTag))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function Mi(e,t){return{responder:e,props:t}}var zi=X.ReactCurrentDispatcher,Ui=X.ReactCurrentBatchConfig,Bi=0,$i=null,qi=null,Gi=null,Hi=!1;function Wi(){throw Error(a(321))}function Vi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Fr(e[n],t[n]))return!1;return!0}function Qi(e,t,n,r,o,i){if(Bi=i,$i=t,t.memoizedState=null,t.updateQueue=null,t.expirationTime=0,zi.current=null===e||null===e.memoizedState?va:ba,e=n(r,o),t.expirationTime===Bi){i=0;do{if(t.expirationTime=0,!(25>i))throw Error(a(301));i+=1,Gi=qi=null,t.updateQueue=null,zi.current=ya,e=n(r,o)}while(t.expirationTime===Bi)}if(zi.current=ga,t=null!==qi&&null!==qi.next,Bi=0,Gi=qi=$i=null,Hi=!1,t)throw Error(a(300));return e}function Ki(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===Gi?$i.memoizedState=Gi=e:Gi=Gi.next=e,Gi}function Xi(){if(null===qi){var e=$i.alternate;e=null!==e?e.memoizedState:null}else e=qi.next;var t=null===Gi?$i.memoizedState:Gi.next;if(null!==t)Gi=t,qi=e;else{if(null===e)throw Error(a(310));e={memoizedState:(qi=e).memoizedState,baseState:qi.baseState,baseQueue:qi.baseQueue,queue:qi.queue,next:null},null===Gi?$i.memoizedState=Gi=e:Gi=Gi.next=e}return Gi}function Yi(e,t){return"function"==typeof t?t(e):t}function Zi(e){var t=Xi(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=qi,o=r.baseQueue,i=n.pending;if(null!==i){if(null!==o){var l=o.next;o.next=i.next,i.next=l}r.baseQueue=o=i,n.pending=null}if(null!==o){o=o.next,r=r.baseState;var s=l=i=null,c=o;do{var u=c.expirationTime;if(u<Bi){var d={expirationTime:c.expirationTime,suspenseConfig:c.suspenseConfig,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null};null===s?(l=s=d,i=r):s=s.next=d,u>$i.expirationTime&&($i.expirationTime=u,as(u))}else null!==s&&(s=s.next={expirationTime:1073741823,suspenseConfig:c.suspenseConfig,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null}),is(u,c.suspenseConfig),r=c.eagerReducer===e?c.eagerState:e(r,c.action);c=c.next}while(null!==c&&c!==o);null===s?i=r:s.next=l,Fr(r,t.memoizedState)||(Ra=!0),t.memoizedState=r,t.baseState=i,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function Ji(e){var t=Xi(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,i=t.memoizedState;if(null!==o){n.pending=null;var l=o=o.next;do{i=e(i,l.action),l=l.next}while(l!==o);Fr(i,t.memoizedState)||(Ra=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function ea(e){var t=Ki();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:Yi,lastRenderedState:e}).dispatch=ha.bind(null,$i,e),[t.memoizedState,e]}function ta(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=$i.updateQueue)?(t={lastEffect:null},$i.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function na(){return Xi().memoizedState}function ra(e,t,n,r){var o=Ki();$i.effectTag|=e,o.memoizedState=ta(1|t,n,void 0,void 0===r?null:r)}function oa(e,t,n,r){var o=Xi();r=void 0===r?null:r;var i=void 0;if(null!==qi){var a=qi.memoizedState;if(i=a.destroy,null!==r&&Vi(r,a.deps))return void ta(t,n,i,r)}$i.effectTag|=e,o.memoizedState=ta(1|t,n,i,r)}function ia(e,t){return ra(516,4,e,t)}function aa(e,t){return oa(516,4,e,t)}function la(e,t){return oa(4,2,e,t)}function sa(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function ca(e,t,n){return n=null!=n?n.concat([e]):null,oa(4,2,sa.bind(null,t,e),n)}function ua(){}function da(e,t){return Ki().memoizedState=[e,void 0===t?null:t],e}function pa(e,t){var n=Xi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Vi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function fa(e,t){var n=Xi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Vi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function ma(e,t,n){var r=Bo();qo(98>r?98:r,(function(){e(!0)})),qo(97<r?97:r,(function(){var r=Ui.suspense;Ui.suspense=void 0===t?null:t;try{e(!1),n()}finally{Ui.suspense=r}}))}function ha(e,t,n){var r=Wl(),o=fi.suspense;o={expirationTime:r=Vl(r,e,o),suspenseConfig:o,action:n,eagerReducer:null,eagerState:null,next:null};var i=t.pending;if(null===i?o.next=o:(o.next=i.next,i.next=o),t.pending=o,i=e.alternate,e===$i||null!==i&&i===$i)Hi=!0,o.expirationTime=Bi,$i.expirationTime=Bi;else{if(0===e.expirationTime&&(null===i||0===i.expirationTime)&&null!==(i=t.lastRenderedReducer))try{var a=t.lastRenderedState,l=i(a,n);if(o.eagerReducer=i,o.eagerState=l,Fr(l,a))return}catch(s){}Ql(e,r)}}var ga={readContext:oi,useCallback:Wi,useContext:Wi,useEffect:Wi,useImperativeHandle:Wi,useLayoutEffect:Wi,useMemo:Wi,useReducer:Wi,useRef:Wi,useState:Wi,useDebugValue:Wi,useResponder:Wi,useDeferredValue:Wi,useTransition:Wi},va={readContext:oi,useCallback:da,useContext:oi,useEffect:ia,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,ra(4,2,sa.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ra(4,2,e,t)},useMemo:function(e,t){var n=Ki();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ki();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=ha.bind(null,$i,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Ki().memoizedState=e},useState:ea,useDebugValue:ua,useResponder:Mi,useDeferredValue:function(e,t){var n=ea(e),r=n[0],o=n[1];return ia((function(){var n=Ui.suspense;Ui.suspense=void 0===t?null:t;try{o(e)}finally{Ui.suspense=n}}),[e,t]),r},useTransition:function(e){var t=ea(!1),n=t[0];return t=t[1],[da(ma.bind(null,t,e),[t,e]),n]}},ba={readContext:oi,useCallback:pa,useContext:oi,useEffect:aa,useImperativeHandle:ca,useLayoutEffect:la,useMemo:fa,useReducer:Zi,useRef:na,useState:function(){return Zi(Yi)},useDebugValue:ua,useResponder:Mi,useDeferredValue:function(e,t){var n=Zi(Yi),r=n[0],o=n[1];return aa((function(){var n=Ui.suspense;Ui.suspense=void 0===t?null:t;try{o(e)}finally{Ui.suspense=n}}),[e,t]),r},useTransition:function(e){var t=Zi(Yi),n=t[0];return t=t[1],[pa(ma.bind(null,t,e),[t,e]),n]}},ya={readContext:oi,useCallback:pa,useContext:oi,useEffect:aa,useImperativeHandle:ca,useLayoutEffect:la,useMemo:fa,useReducer:Ji,useRef:na,useState:function(){return Ji(Yi)},useDebugValue:ua,useResponder:Mi,useDeferredValue:function(e,t){var n=Ji(Yi),r=n[0],o=n[1];return aa((function(){var n=Ui.suspense;Ui.suspense=void 0===t?null:t;try{o(e)}finally{Ui.suspense=n}}),[e,t]),r},useTransition:function(e){var t=Ji(Yi),n=t[0];return t=t[1],[pa(ma.bind(null,t,e),[t,e]),n]}},wa=null,_a=null,ka=!1;function Ea(e,t){var n=xs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function xa(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);case 13:default:return!1}}function Sa(e){if(ka){var t=_a;if(t){var n=t;if(!xa(e,t)){if(!(t=_n(n.nextSibling))||!xa(e,t))return e.effectTag=-1025&e.effectTag|2,ka=!1,void(wa=e);Ea(wa,n)}wa=e,_a=_n(t.firstChild)}else e.effectTag=-1025&e.effectTag|2,ka=!1,wa=e}}function Ta(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;wa=e}function Pa(e){if(e!==wa)return!1;if(!ka)return Ta(e),ka=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!bn(t,e.memoizedProps))for(t=_a;t;)Ea(e,t),t=_n(t.nextSibling);if(Ta(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(a(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){_a=_n(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}_a=null}}else _a=wa?_n(e.stateNode.nextSibling):null;return!0}function Ca(){_a=wa=null,ka=!1}var Oa=X.ReactCurrentOwner,Ra=!1;function Aa(e,t,n,r){t.child=null===e?Ti(t,null,n,r):Si(t,e.child,n,r)}function Na(e,t,n,r,o){n=n.render;var i=t.ref;return ri(t,o),r=Qi(e,t,n,r,i,o),null===e||Ra?(t.effectTag|=1,Aa(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=o&&(e.expirationTime=0),Qa(e,t,o))}function Ia(e,t,n,r,o,i){if(null===e){var a=n.type;return"function"!=typeof a||Ss(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ps(n.type,null,r,null,t.mode,i)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,La(e,t,a,r,o,i))}return a=e.child,o<i&&(o=a.memoizedProps,(n=null!==(n=n.compare)?n:zr)(o,r)&&e.ref===t.ref)?Qa(e,t,i):(t.effectTag|=1,(e=Ts(a,r)).ref=t.ref,e.return=t,t.child=e)}function La(e,t,n,r,o,i){return null!==e&&zr(e.memoizedProps,r)&&e.ref===t.ref&&(Ra=!1,o<i)?(t.expirationTime=e.expirationTime,Qa(e,t,i)):Da(e,t,n,r,i)}function ja(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.effectTag|=128)}function Da(e,t,n,r,o){var i=go(n)?mo:po.current;return i=ho(t,i),ri(t,o),n=Qi(e,t,n,r,i,o),null===e||Ra?(t.effectTag|=1,Aa(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=o&&(e.expirationTime=0),Qa(e,t,o))}function Fa(e,t,n,r,o){if(go(n)){var i=!0;wo(t)}else i=!1;if(ri(t,o),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),bi(t,n,r),wi(t,n,r,o),r=!0;else if(null===e){var a=t.stateNode,l=t.memoizedProps;a.props=l;var s=a.context,c=n.contextType;"object"==typeof c&&null!==c?c=oi(c):c=ho(t,c=go(n)?mo:po.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof a.getSnapshotBeforeUpdate;d||"function"!=typeof a.UNSAFE_componentWillReceiveProps&&"function"!=typeof a.componentWillReceiveProps||(l!==r||s!==c)&&yi(t,a,r,c),ii=!1;var p=t.memoizedState;a.state=p,di(t,r,a,o),s=t.memoizedState,l!==r||p!==s||fo.current||ii?("function"==typeof u&&(hi(t,n,u,r),s=t.memoizedState),(l=ii||vi(t,n,l,r,p,s,c))?(d||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||("function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),"function"==typeof a.componentDidMount&&(t.effectTag|=4)):("function"==typeof a.componentDidMount&&(t.effectTag|=4),t.memoizedProps=r,t.memoizedState=s),a.props=r,a.state=s,a.context=c,r=l):("function"==typeof a.componentDidMount&&(t.effectTag|=4),r=!1)}else a=t.stateNode,li(e,t),l=t.memoizedProps,a.props=t.type===t.elementType?l:Ko(t.type,l),s=a.context,"object"==typeof(c=n.contextType)&&null!==c?c=oi(c):c=ho(t,c=go(n)?mo:po.current),(d="function"==typeof(u=n.getDerivedStateFromProps)||"function"==typeof a.getSnapshotBeforeUpdate)||"function"!=typeof a.UNSAFE_componentWillReceiveProps&&"function"!=typeof a.componentWillReceiveProps||(l!==r||s!==c)&&yi(t,a,r,c),ii=!1,s=t.memoizedState,a.state=s,di(t,r,a,o),p=t.memoizedState,l!==r||s!==p||fo.current||ii?("function"==typeof u&&(hi(t,n,u,r),p=t.memoizedState),(u=ii||vi(t,n,l,r,s,p,c))?(d||"function"!=typeof a.UNSAFE_componentWillUpdate&&"function"!=typeof a.componentWillUpdate||("function"==typeof a.componentWillUpdate&&a.componentWillUpdate(r,p,c),"function"==typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(r,p,c)),"function"==typeof a.componentDidUpdate&&(t.effectTag|=4),"function"==typeof a.getSnapshotBeforeUpdate&&(t.effectTag|=256)):("function"!=typeof a.componentDidUpdate||l===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=4),"function"!=typeof a.getSnapshotBeforeUpdate||l===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=256),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):("function"!=typeof a.componentDidUpdate||l===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=4),"function"!=typeof a.getSnapshotBeforeUpdate||l===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=256),r=!1);return Ma(e,t,n,r,i,o)}function Ma(e,t,n,r,o,i){ja(e,t);var a=0!=(64&t.effectTag);if(!r&&!a)return o&&_o(t,n,!1),Qa(e,t,i);r=t.stateNode,Oa.current=t;var l=a&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.effectTag|=1,null!==e&&a?(t.child=Si(t,e.child,null,i),t.child=Si(t,null,l,i)):Aa(e,t,l,i),t.memoizedState=r.state,o&&_o(t,n,!0),t.child}function za(e){var t=e.stateNode;t.pendingContext?bo(0,t.pendingContext,t.pendingContext!==t.context):t.context&&bo(0,t.context,!1),Ni(e,t.containerInfo)}var Ua,Ba,$a,qa={dehydrated:null,retryTime:0};function Ga(e,t,n){var r,o=t.mode,i=t.pendingProps,a=Di.current,l=!1;if((r=0!=(64&t.effectTag))||(r=0!=(2&a)&&(null===e||null!==e.memoizedState)),r?(l=!0,t.effectTag&=-65):null!==e&&null===e.memoizedState||void 0===i.fallback||!0===i.unstable_avoidThisFallback||(a|=1),co(Di,1&a),null===e){if(void 0!==i.fallback&&Sa(t),l){if(l=i.fallback,(i=Cs(null,o,0,null)).return=t,0==(2&t.mode))for(e=null!==t.memoizedState?t.child.child:t.child,i.child=e;null!==e;)e.return=i,e=e.sibling;return(n=Cs(l,o,n,null)).return=t,i.sibling=n,t.memoizedState=qa,t.child=i,n}return o=i.children,t.memoizedState=null,t.child=Ti(t,null,o,n)}if(null!==e.memoizedState){if(o=(e=e.child).sibling,l){if(i=i.fallback,(n=Ts(e,e.pendingProps)).return=t,0==(2&t.mode)&&(l=null!==t.memoizedState?t.child.child:t.child)!==e.child)for(n.child=l;null!==l;)l.return=n,l=l.sibling;return(o=Ts(o,i)).return=t,n.sibling=o,n.childExpirationTime=0,t.memoizedState=qa,t.child=n,o}return n=Si(t,e.child,i.children,n),t.memoizedState=null,t.child=n}if(e=e.child,l){if(l=i.fallback,(i=Cs(null,o,0,null)).return=t,i.child=e,null!==e&&(e.return=i),0==(2&t.mode))for(e=null!==t.memoizedState?t.child.child:t.child,i.child=e;null!==e;)e.return=i,e=e.sibling;return(n=Cs(l,o,n,null)).return=t,i.sibling=n,n.effectTag|=2,i.childExpirationTime=0,t.memoizedState=qa,t.child=i,n}return t.memoizedState=null,t.child=Si(t,e,i.children,n)}function Ha(e,t){e.expirationTime<t&&(e.expirationTime=t);var n=e.alternate;null!==n&&n.expirationTime<t&&(n.expirationTime=t),ni(e.return,t)}function Wa(e,t,n,r,o,i){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailExpiration:0,tailMode:o,lastEffect:i}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailExpiration=0,a.tailMode=o,a.lastEffect=i)}function Va(e,t,n){var r=t.pendingProps,o=r.revealOrder,i=r.tail;if(Aa(e,t,r.children,n),0!=(2&(r=Di.current)))r=1&r|2,t.effectTag|=64;else{if(null!==e&&0!=(64&e.effectTag))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Ha(e,n);else if(19===e.tag)Ha(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(co(Di,r),0==(2&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===Fi(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Wa(t,!1,o,n,i,t.lastEffect);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===Fi(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}Wa(t,!0,n,null,i,t.lastEffect);break;case"together":Wa(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function Qa(e,t,n){null!==e&&(t.dependencies=e.dependencies);var r=t.expirationTime;if(0!==r&&as(r),t.childExpirationTime<n)return null;if(null!==e&&t.child!==e.child)throw Error(a(153));if(null!==t.child){for(n=Ts(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ts(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Ka(e,t){switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Xa(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return go(t.type)&&vo(),null;case 3:return Ii(),so(fo),so(po),(n=t.stateNode).pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),null!==e&&null!==e.child||!Pa(t)||(t.effectTag|=4),null;case 5:ji(t),n=Ai(Ri.current);var i=t.type;if(null!==e&&null!=t.stateNode)Ba(e,t,i,r,n),e.ref!==t.ref&&(t.effectTag|=128);else{if(!r){if(null===t.stateNode)throw Error(a(166));return null}if(e=Ai(Ci.current),Pa(t)){r=t.stateNode,i=t.type;var l=t.memoizedProps;switch(r[xn]=t,r[Sn]=l,i){case"iframe":case"object":case"embed":Vt("load",r);break;case"video":case"audio":for(e=0;e<Xe.length;e++)Vt(Xe[e],r);break;case"source":Vt("error",r);break;case"img":case"image":case"link":Vt("error",r),Vt("load",r);break;case"form":Vt("reset",r),Vt("submit",r);break;case"details":Vt("toggle",r);break;case"input":Ee(r,l),Vt("invalid",r),sn(n,"onChange");break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Vt("invalid",r),sn(n,"onChange");break;case"textarea":Ae(r,l),Vt("invalid",r),sn(n,"onChange")}for(var s in on(i,l),e=null,l)if(l.hasOwnProperty(s)){var c=l[s];"children"===s?"string"==typeof c?r.textContent!==c&&(e=["children",c]):"number"==typeof c&&r.textContent!==""+c&&(e=["children",""+c]):x.hasOwnProperty(s)&&null!=c&&sn(n,s)}switch(i){case"input":we(r),Te(r,l,!0);break;case"textarea":we(r),Ie(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=cn)}n=e,t.updateQueue=n,null!==n&&(t.effectTag|=4)}else{switch(s=9===n.nodeType?n:n.ownerDocument,e===ln&&(e=De(i)),e===ln?"script"===i?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=s.createElement(i,{is:r.is}):(e=s.createElement(i),"select"===i&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,i),e[xn]=t,e[Sn]=r,Ua(e,t),t.stateNode=e,s=an(i,r),i){case"iframe":case"object":case"embed":Vt("load",e),c=r;break;case"video":case"audio":for(c=0;c<Xe.length;c++)Vt(Xe[c],e);c=r;break;case"source":Vt("error",e),c=r;break;case"img":case"image":case"link":Vt("error",e),Vt("load",e),c=r;break;case"form":Vt("reset",e),Vt("submit",e),c=r;break;case"details":Vt("toggle",e),c=r;break;case"input":Ee(e,r),c=ke(e,r),Vt("invalid",e),sn(n,"onChange");break;case"option":c=Ce(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},c=o({},r,{value:void 0}),Vt("invalid",e),sn(n,"onChange");break;case"textarea":Ae(e,r),c=Re(e,r),Vt("invalid",e),sn(n,"onChange");break;default:c=r}on(i,c);var u=c;for(l in u)if(u.hasOwnProperty(l)){var d=u[l];"style"===l?nn(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ze(e,d):"children"===l?"string"==typeof d?("textarea"!==i||""!==d)&&Ue(e,d):"number"==typeof d&&Ue(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(x.hasOwnProperty(l)?null!=d&&sn(n,l):null!=d&&Y(e,l,d,s))}switch(i){case"input":we(e),Te(e,r,!1);break;case"textarea":we(e),Ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+be(r.value));break;case"select":e.multiple=!!r.multiple,null!=(n=r.value)?Oe(e,!!r.multiple,n,!1):null!=r.defaultValue&&Oe(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof c.onClick&&(e.onclick=cn)}vn(i,r)&&(t.effectTag|=4)}null!==t.ref&&(t.effectTag|=128)}return null;case 6:if(e&&null!=t.stateNode)$a(0,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(a(166));n=Ai(Ri.current),Ai(Ci.current),Pa(t)?(n=t.stateNode,r=t.memoizedProps,n[xn]=t,n.nodeValue!==r&&(t.effectTag|=4)):((n=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[xn]=t,t.stateNode=n)}return null;case 13:return so(Di),r=t.memoizedState,0!=(64&t.effectTag)?(t.expirationTime=n,t):(n=null!==r,r=!1,null===e?void 0!==t.memoizedProps.fallback&&Pa(t):(r=null!==(i=e.memoizedState),n||null===i||null!==(i=e.child.sibling)&&(null!==(l=t.firstEffect)?(t.firstEffect=i,i.nextEffect=l):(t.firstEffect=t.lastEffect=i,i.nextEffect=null),i.effectTag=8)),n&&!r&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Di.current)?Pl===wl&&(Pl=_l):(Pl!==wl&&Pl!==_l||(Pl=kl),0!==Nl&&null!==xl&&(Is(xl,Tl),Ls(xl,Nl)))),(n||r)&&(t.effectTag|=4),null);case 4:return Ii(),null;case 10:return ti(t),null;case 17:return go(t.type)&&vo(),null;case 19:if(so(Di),null===(r=t.memoizedState))return null;if(i=0!=(64&t.effectTag),null===(l=r.rendering)){if(i)Ka(r,!1);else if(Pl!==wl||null!==e&&0!=(64&e.effectTag))for(l=t.child;null!==l;){if(null!==(e=Fi(l))){for(t.effectTag|=64,Ka(r,!1),null!==(i=e.updateQueue)&&(t.updateQueue=i,t.effectTag|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=t.child;null!==r;)l=n,(i=r).effectTag&=2,i.nextEffect=null,i.firstEffect=null,i.lastEffect=null,null===(e=i.alternate)?(i.childExpirationTime=0,i.expirationTime=l,i.child=null,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null):(i.childExpirationTime=e.childExpirationTime,i.expirationTime=e.expirationTime,i.child=e.child,i.memoizedProps=e.memoizedProps,i.memoizedState=e.memoizedState,i.updateQueue=e.updateQueue,l=e.dependencies,i.dependencies=null===l?null:{expirationTime:l.expirationTime,firstContext:l.firstContext,responders:l.responders}),r=r.sibling;return co(Di,1&Di.current|2),t.child}l=l.sibling}}else{if(!i)if(null!==(e=Fi(l))){if(t.effectTag|=64,i=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.effectTag|=4),Ka(r,!0),null===r.tail&&"hidden"===r.tailMode&&!l.alternate)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Uo()-r.renderingStartTime>r.tailExpiration&&1<n&&(t.effectTag|=64,i=!0,Ka(r,!1),t.expirationTime=t.childExpirationTime=n-1);r.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=r.last)?n.sibling=l:t.child=l,r.last=l)}return null!==r.tail?(0===r.tailExpiration&&(r.tailExpiration=Uo()+500),n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Uo(),n.sibling=null,t=Di.current,co(Di,i?1&t|2:1&t),n):null}throw Error(a(156,t.tag))}function Ya(e){switch(e.tag){case 1:go(e.type)&&vo();var t=e.effectTag;return 4096&t?(e.effectTag=-4097&t|64,e):null;case 3:if(Ii(),so(fo),so(po),0!=(64&(t=e.effectTag)))throw Error(a(285));return e.effectTag=-4097&t|64,e;case 5:return ji(e),null;case 13:return so(Di),4096&(t=e.effectTag)?(e.effectTag=-4097&t|64,e):null;case 19:return so(Di),null;case 4:return Ii(),null;case 10:return ti(e),null;default:return null}}function Za(e,t){return{value:e,source:t,stack:ve(t)}}Ua=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ba=function(e,t,n,r,i){var a=e.memoizedProps;if(a!==r){var l,s,c=t.stateNode;switch(Ai(Ci.current),e=null,n){case"input":a=ke(c,a),r=ke(c,r),e=[];break;case"option":a=Ce(c,a),r=Ce(c,r),e=[];break;case"select":a=o({},a,{value:void 0}),r=o({},r,{value:void 0}),e=[];break;case"textarea":a=Re(c,a),r=Re(c,r),e=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(c.onclick=cn)}for(l in on(n,r),n=null,a)if(!r.hasOwnProperty(l)&&a.hasOwnProperty(l)&&null!=a[l])if("style"===l)for(s in c=a[l])c.hasOwnProperty(s)&&(n||(n={}),n[s]="");else"dangerouslySetInnerHTML"!==l&&"children"!==l&&"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(x.hasOwnProperty(l)?e||(e=[]):(e=e||[]).push(l,null));for(l in r){var u=r[l];if(c=null!=a?a[l]:void 0,r.hasOwnProperty(l)&&u!==c&&(null!=u||null!=c))if("style"===l)if(c){for(s in c)!c.hasOwnProperty(s)||u&&u.hasOwnProperty(s)||(n||(n={}),n[s]="");for(s in u)u.hasOwnProperty(s)&&c[s]!==u[s]&&(n||(n={}),n[s]=u[s])}else n||(e||(e=[]),e.push(l,n)),n=u;else"dangerouslySetInnerHTML"===l?(u=u?u.__html:void 0,c=c?c.__html:void 0,null!=u&&c!==u&&(e=e||[]).push(l,u)):"children"===l?c===u||"string"!=typeof u&&"number"!=typeof u||(e=e||[]).push(l,""+u):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&(x.hasOwnProperty(l)?(null!=u&&sn(i,l),e||c===u||(e=[])):(e=e||[]).push(l,u))}n&&(e=e||[]).push("style",n),i=e,(t.updateQueue=i)&&(t.effectTag|=4)}},$a=function(e,t,n,r){n!==r&&(t.effectTag|=4)};var Ja="function"==typeof WeakSet?WeakSet:Set;function el(e,t){var n=t.source,r=t.stack;null===r&&null!==n&&(r=ve(n)),null!==n&&ge(n.type),t=t.value,null!==e&&1===e.tag&&ge(e.type);try{console.error(t)}catch(o){setTimeout((function(){throw o}))}}function tl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){bs(e,n)}else t.current=null}function nl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:return;case 1:if(256&t.effectTag&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Ko(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:case 5:case 6:case 4:case 17:return}throw Error(a(163))}function rl(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.destroy;n.destroy=void 0,void 0!==r&&r()}n=n.next}while(n!==t)}}function ol(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function il(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:return void ol(3,n);case 1:if(e=n.stateNode,4&n.effectTag)if(null===t)e.componentDidMount();else{var r=n.elementType===n.type?t.memoizedProps:Ko(n.type,t.memoizedProps);e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate)}return void(null!==(t=n.updateQueue)&&pi(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:e=n.child.stateNode;break;case 1:e=n.child.stateNode}pi(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.effectTag&&vn(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&Dt(n)))));case 19:case 17:case 20:case 21:return}throw Error(a(163))}function al(e,t,n){switch("function"==typeof ks&&ks(t),t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var r=e.next;qo(97<n?97:n,(function(){var e=r;do{var n=e.destroy;if(void 0!==n){var o=t;try{n()}catch(i){bs(o,i)}}e=e.next}while(e!==r)}))}break;case 1:tl(t),"function"==typeof(n=t.stateNode).componentWillUnmount&&function(e,t){try{t.props=e.memoizedProps,t.state=e.memoizedState,t.componentWillUnmount()}catch(n){bs(e,n)}}(t,n);break;case 5:tl(t);break;case 4:ul(e,t,n)}}function ll(e){var t=e.alternate;e.return=null,e.child=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.alternate=null,e.firstEffect=null,e.lastEffect=null,e.pendingProps=null,e.memoizedProps=null,e.stateNode=null,null!==t&&ll(t)}function sl(e){return 5===e.tag||3===e.tag||4===e.tag}function cl(e){e:{for(var t=e.return;null!==t;){if(sl(t)){var n=t;break e}t=t.return}throw Error(a(160))}switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(a(161))}16&n.effectTag&&(Ue(t,""),n.effectTag&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||sl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.effectTag)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.effectTag)){n=n.stateNode;break e}}r?function e(t,n,r){var o=t.tag,i=5===o||6===o;if(i)t=i?t.stateNode:t.stateNode.instance,n?8===r.nodeType?r.parentNode.insertBefore(t,n):r.insertBefore(t,n):(8===r.nodeType?(n=r.parentNode).insertBefore(t,r):(n=r).appendChild(t),null!==(r=r._reactRootContainer)&&void 0!==r||null!==n.onclick||(n.onclick=cn));else if(4!==o&&null!==(t=t.child))for(e(t,n,r),t=t.sibling;null!==t;)e(t,n,r),t=t.sibling}(e,n,t):function e(t,n,r){var o=t.tag,i=5===o||6===o;if(i)t=i?t.stateNode:t.stateNode.instance,n?r.insertBefore(t,n):r.appendChild(t);else if(4!==o&&null!==(t=t.child))for(e(t,n,r),t=t.sibling;null!==t;)e(t,n,r),t=t.sibling}(e,n,t)}function ul(e,t,n){for(var r,o,i=t,l=!1;;){if(!l){l=i.return;e:for(;;){if(null===l)throw Error(a(160));switch(r=l.stateNode,l.tag){case 5:o=!1;break e;case 3:case 4:r=r.containerInfo,o=!0;break e}l=l.return}l=!0}if(5===i.tag||6===i.tag){e:for(var s=e,c=i,u=n,d=c;;)if(al(s,d,u),null!==d.child&&4!==d.tag)d.child.return=d,d=d.child;else{if(d===c)break e;for(;null===d.sibling;){if(null===d.return||d.return===c)break e;d=d.return}d.sibling.return=d.return,d=d.sibling}o?(s=r,c=i.stateNode,8===s.nodeType?s.parentNode.removeChild(c):s.removeChild(c)):r.removeChild(i.stateNode)}else if(4===i.tag){if(null!==i.child){r=i.stateNode.containerInfo,o=!0,i.child.return=i,i=i.child;continue}}else if(al(e,i,n),null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)return;4===(i=i.return).tag&&(l=!1)}i.sibling.return=i.return,i=i.sibling}}function dl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:return void rl(3,t);case 1:return;case 5:var n=t.stateNode;if(null!=n){var r=t.memoizedProps,o=null!==e?e.memoizedProps:r;e=t.type;var i=t.updateQueue;if(t.updateQueue=null,null!==i){for(n[Sn]=r,"input"===e&&"radio"===r.type&&null!=r.name&&xe(n,r),an(e,o),t=an(e,r),o=0;o<i.length;o+=2){var l=i[o],s=i[o+1];"style"===l?nn(n,s):"dangerouslySetInnerHTML"===l?ze(n,s):"children"===l?Ue(n,s):Y(n,l,s,t)}switch(e){case"input":Se(n,r);break;case"textarea":Ne(n,r);break;case"select":t=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(e=r.value)?Oe(n,!!r.multiple,e,!1):t!==!!r.multiple&&(null!=r.defaultValue?Oe(n,!!r.multiple,r.defaultValue,!0):Oe(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(a(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((t=t.stateNode).hydrate&&(t.hydrate=!1,Dt(t.containerInfo)));case 12:return;case 13:if(n=t,null===t.memoizedState?r=!1:(r=!0,n=t.child,Ll=Uo()),null!==n)e:for(e=n;;){if(5===e.tag)i=e.stateNode,r?"function"==typeof(i=i.style).setProperty?i.setProperty("display","none","important"):i.display="none":(i=e.stateNode,o=null!=(o=e.memoizedProps.style)&&o.hasOwnProperty("display")?o.display:null,i.style.display=tn("display",o));else if(6===e.tag)e.stateNode.nodeValue=r?"":e.memoizedProps;else{if(13===e.tag&&null!==e.memoizedState&&null===e.memoizedState.dehydrated){(i=e.child.sibling).return=e,e=i;continue}if(null!==e.child){e.child.return=e,e=e.child;continue}}if(e===n)break;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}return void pl(t);case 19:return void pl(t);case 17:return}throw Error(a(163))}function pl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Ja),t.forEach((function(t){var r=ws.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}var fl="function"==typeof WeakMap?WeakMap:Map;function ml(e,t,n){(n=si(n,null)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Dl||(Dl=!0,Fl=r),el(e,t)},n}function hl(e,t,n){(n=si(n,null)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return el(e,t),r(o)}}var i=e.stateNode;return null!==i&&"function"==typeof i.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Ml?Ml=new Set([this]):Ml.add(this),el(e,t));var n=t.stack;this.componentDidCatch(t.value,{componentStack:null!==n?n:""})}),n}var gl,vl=Math.ceil,bl=X.ReactCurrentDispatcher,yl=X.ReactCurrentOwner,wl=0,_l=3,kl=4,El=0,xl=null,Sl=null,Tl=0,Pl=wl,Cl=null,Ol=1073741823,Rl=1073741823,Al=null,Nl=0,Il=!1,Ll=0,jl=null,Dl=!1,Fl=null,Ml=null,zl=!1,Ul=null,Bl=90,$l=null,ql=0,Gl=null,Hl=0;function Wl(){return 0!=(48&El)?1073741821-(Uo()/10|0):0!==Hl?Hl:Hl=1073741821-(Uo()/10|0)}function Vl(e,t,n){if(0==(2&(t=t.mode)))return 1073741823;var r=Bo();if(0==(4&t))return 99===r?1073741823:1073741822;if(0!=(16&El))return Tl;if(null!==n)e=Qo(e,0|n.timeoutMs||5e3,250);else switch(r){case 99:e=1073741823;break;case 98:e=Qo(e,150,100);break;case 97:case 96:e=Qo(e,5e3,250);break;case 95:e=2;break;default:throw Error(a(326))}return null!==xl&&e===Tl&&--e,e}function Ql(e,t){if(50<ql)throw ql=0,Gl=null,Error(a(185));if(null!==(e=Kl(e,t))){var n=Bo();1073741823===t?0!=(8&El)&&0==(48&El)?Jl(e):(Yl(e),0===El&&Wo()):Yl(e),0==(4&El)||98!==n&&99!==n||(null===$l?$l=new Map([[e,t]]):(void 0===(n=$l.get(e))||n>t)&&$l.set(e,t))}}function Kl(e,t){e.expirationTime<t&&(e.expirationTime=t);var n=e.alternate;null!==n&&n.expirationTime<t&&(n.expirationTime=t);var r=e.return,o=null;if(null===r&&3===e.tag)o=e.stateNode;else for(;null!==r;){if(n=r.alternate,r.childExpirationTime<t&&(r.childExpirationTime=t),null!==n&&n.childExpirationTime<t&&(n.childExpirationTime=t),null===r.return&&3===r.tag){o=r.stateNode;break}r=r.return}return null!==o&&(xl===o&&(as(t),Pl===kl&&Is(o,Tl)),Ls(o,t)),o}function Xl(e){var t=e.lastExpiredTime;if(0!==t)return t;if(!Ns(e,t=e.firstPendingTime))return t;var n=e.lastPingedTime;return 2>=(e=n>(e=e.nextKnownPendingLevel)?n:e)&&t!==e?0:e}function Yl(e){if(0!==e.lastExpiredTime)e.callbackExpirationTime=1073741823,e.callbackPriority=99,e.callbackNode=Ho(Jl.bind(null,e));else{var t=Xl(e),n=e.callbackNode;if(0===t)null!==n&&(e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90);else{var r=Wl();if(1073741823===t?r=99:1===t||2===t?r=95:r=0>=(r=10*(1073741821-t)-10*(1073741821-r))?99:250>=r?98:5250>=r?97:95,null!==n){var o=e.callbackPriority;if(e.callbackExpirationTime===t&&o>=r)return;n!==Io&&xo(n)}e.callbackExpirationTime=t,e.callbackPriority=r,t=1073741823===t?Ho(Jl.bind(null,e)):Go(r,Zl.bind(null,e),{timeout:10*(1073741821-t)-Uo()}),e.callbackNode=t}}}function Zl(e,t){if(Hl=0,t)return js(e,t=Wl()),Yl(e),null;var n=Xl(e);if(0!==n){if(t=e.callbackNode,0!=(48&El))throw Error(a(327));if(hs(),e===xl&&n===Tl||ns(e,n),null!==Sl){var r=El;El|=16;for(var o=os();;)try{ss();break}catch(s){rs(e,s)}if(ei(),El=r,bl.current=o,1===Pl)throw t=Cl,ns(e,n),Is(e,n),Yl(e),t;if(null===Sl)switch(o=e.finishedWork=e.current.alternate,e.finishedExpirationTime=n,r=Pl,xl=null,r){case wl:case 1:throw Error(a(345));case 2:js(e,2<n?2:n);break;case _l:if(Is(e,n),n===(r=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=ds(o)),1073741823===Ol&&10<(o=Ll+500-Uo())){if(Il){var i=e.lastPingedTime;if(0===i||i>=n){e.lastPingedTime=n,ns(e,n);break}}if(0!==(i=Xl(e))&&i!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}e.timeoutHandle=yn(ps.bind(null,e),o);break}ps(e);break;case kl:if(Is(e,n),n===(r=e.lastSuspendedTime)&&(e.nextKnownPendingLevel=ds(o)),Il&&(0===(o=e.lastPingedTime)||o>=n)){e.lastPingedTime=n,ns(e,n);break}if(0!==(o=Xl(e))&&o!==n)break;if(0!==r&&r!==n){e.lastPingedTime=r;break}if(1073741823!==Rl?r=10*(1073741821-Rl)-Uo():1073741823===Ol?r=0:(r=10*(1073741821-Ol)-5e3,0>(r=(o=Uo())-r)&&(r=0),(n=10*(1073741821-n)-o)<(r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*vl(r/1960))-r)&&(r=n)),10<r){e.timeoutHandle=yn(ps.bind(null,e),r);break}ps(e);break;case 5:if(1073741823!==Ol&&null!==Al){i=Ol;var l=Al;if(0>=(r=0|l.busyMinDurationMs)?r=0:(o=0|l.busyDelayMs,r=(i=Uo()-(10*(1073741821-i)-(0|l.timeoutMs||5e3)))<=o?0:o+r-i),10<r){Is(e,n),e.timeoutHandle=yn(ps.bind(null,e),r);break}}ps(e);break;default:throw Error(a(329))}if(Yl(e),e.callbackNode===t)return Zl.bind(null,e)}}return null}function Jl(e){var t=e.lastExpiredTime;if(t=0!==t?t:1073741823,0!=(48&El))throw Error(a(327));if(hs(),e===xl&&t===Tl||ns(e,t),null!==Sl){var n=El;El|=16;for(var r=os();;)try{ls();break}catch(o){rs(e,o)}if(ei(),El=n,bl.current=r,1===Pl)throw n=Cl,ns(e,t),Is(e,t),Yl(e),n;if(null!==Sl)throw Error(a(261));e.finishedWork=e.current.alternate,e.finishedExpirationTime=t,xl=null,ps(e),Yl(e)}return null}function es(e,t){var n=El;El|=1;try{return e(t)}finally{0===(El=n)&&Wo()}}function ts(e,t){var n=El;El&=-2,El|=8;try{return e(t)}finally{0===(El=n)&&Wo()}}function ns(e,t){e.finishedWork=null,e.finishedExpirationTime=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,wn(n)),null!==Sl)for(n=Sl.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&vo();break;case 3:Ii(),so(fo),so(po);break;case 5:ji(r);break;case 4:Ii();break;case 13:case 19:so(Di);break;case 10:ti(r)}n=n.return}xl=e,Sl=Ts(e.current,null),Tl=t,Pl=wl,Cl=null,Rl=Ol=1073741823,Al=null,Nl=0,Il=!1}function rs(e,t){for(;;){try{if(ei(),zi.current=ga,Hi)for(var n=$i.memoizedState;null!==n;){var r=n.queue;null!==r&&(r.pending=null),n=n.next}if(Bi=0,Gi=qi=$i=null,Hi=!1,null===Sl||null===Sl.return)return Pl=1,Cl=t,Sl=null;e:{var o=e,i=Sl.return,a=Sl,l=t;if(t=Tl,a.effectTag|=2048,a.firstEffect=a.lastEffect=null,null!==l&&"object"==typeof l&&"function"==typeof l.then){var s=l;if(0==(2&a.mode)){var c=a.alternate;c?(a.updateQueue=c.updateQueue,a.memoizedState=c.memoizedState,a.expirationTime=c.expirationTime):(a.updateQueue=null,a.memoizedState=null)}var u=0!=(1&Di.current),d=i;do{var p;if(p=13===d.tag){var f=d.memoizedState;if(null!==f)p=null!==f.dehydrated;else{var m=d.memoizedProps;p=void 0!==m.fallback&&(!0!==m.unstable_avoidThisFallback||!u)}}if(p){var h=d.updateQueue;if(null===h){var g=new Set;g.add(s),d.updateQueue=g}else h.add(s);if(0==(2&d.mode)){if(d.effectTag|=64,a.effectTag&=-2981,1===a.tag)if(null===a.alternate)a.tag=17;else{var v=si(1073741823,null);v.tag=2,ci(a,v)}a.expirationTime=1073741823;break e}l=void 0,a=t;var b=o.pingCache;if(null===b?(b=o.pingCache=new fl,l=new Set,b.set(s,l)):void 0===(l=b.get(s))&&(l=new Set,b.set(s,l)),!l.has(a)){l.add(a);var y=ys.bind(null,o,s,a);s.then(y,y)}d.effectTag|=4096,d.expirationTime=t;break e}d=d.return}while(null!==d);l=Error((ge(a.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display."+ve(a))}5!==Pl&&(Pl=2),l=Za(l,a),d=i;do{switch(d.tag){case 3:s=l,d.effectTag|=4096,d.expirationTime=t,ui(d,ml(d,s,t));break e;case 1:s=l;var w=d.type,_=d.stateNode;if(0==(64&d.effectTag)&&("function"==typeof w.getDerivedStateFromError||null!==_&&"function"==typeof _.componentDidCatch&&(null===Ml||!Ml.has(_)))){d.effectTag|=4096,d.expirationTime=t,ui(d,hl(d,s,t));break e}}d=d.return}while(null!==d)}Sl=us(Sl)}catch(k){t=k;continue}break}}function os(){var e=bl.current;return bl.current=ga,null===e?ga:e}function is(e,t){e<Ol&&2<e&&(Ol=e),null!==t&&e<Rl&&2<e&&(Rl=e,Al=t)}function as(e){e>Nl&&(Nl=e)}function ls(){for(;null!==Sl;)Sl=cs(Sl)}function ss(){for(;null!==Sl&&!Lo();)Sl=cs(Sl)}function cs(e){var t=gl(e.alternate,e,Tl);return e.memoizedProps=e.pendingProps,null===t&&(t=us(e)),yl.current=null,t}function us(e){Sl=e;do{var t=Sl.alternate;if(e=Sl.return,0==(2048&Sl.effectTag)){if(t=Xa(t,Sl,Tl),1===Tl||1!==Sl.childExpirationTime){for(var n=0,r=Sl.child;null!==r;){var o=r.expirationTime,i=r.childExpirationTime;o>n&&(n=o),i>n&&(n=i),r=r.sibling}Sl.childExpirationTime=n}if(null!==t)return t;null!==e&&0==(2048&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=Sl.firstEffect),null!==Sl.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=Sl.firstEffect),e.lastEffect=Sl.lastEffect),1<Sl.effectTag&&(null!==e.lastEffect?e.lastEffect.nextEffect=Sl:e.firstEffect=Sl,e.lastEffect=Sl))}else{if(null!==(t=Ya(Sl)))return t.effectTag&=2047,t;null!==e&&(e.firstEffect=e.lastEffect=null,e.effectTag|=2048)}if(null!==(t=Sl.sibling))return t;Sl=e}while(null!==Sl);return Pl===wl&&(Pl=5),null}function ds(e){var t=e.expirationTime;return t>(e=e.childExpirationTime)?t:e}function ps(e){var t=Bo();return qo(99,fs.bind(null,e,t)),null}function fs(e,t){do{hs()}while(null!==Ul);if(0!=(48&El))throw Error(a(327));var n=e.finishedWork,r=e.finishedExpirationTime;if(null===n)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,n===e.current)throw Error(a(177));e.callbackNode=null,e.callbackExpirationTime=0,e.callbackPriority=90,e.nextKnownPendingLevel=0;var o=ds(n);if(e.firstPendingTime=o,r<=e.lastSuspendedTime?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:r<=e.firstSuspendedTime&&(e.firstSuspendedTime=r-1),r<=e.lastPingedTime&&(e.lastPingedTime=0),r<=e.lastExpiredTime&&(e.lastExpiredTime=0),e===xl&&(Sl=xl=null,Tl=0),1<n.effectTag?null!==n.lastEffect?(n.lastEffect.nextEffect=n,o=n.firstEffect):o=n:o=n.firstEffect,null!==o){var i=El;El|=32,yl.current=null,hn=Wt;var l=fn();if(mn(l)){if("selectionStart"in l)var s={start:l.selectionStart,end:l.selectionEnd};else e:{var c=(s=(s=l.ownerDocument)&&s.defaultView||window).getSelection&&s.getSelection();if(c&&0!==c.rangeCount){s=c.anchorNode;var u=c.anchorOffset,d=c.focusNode;c=c.focusOffset;try{s.nodeType,d.nodeType}catch(T){s=null;break e}var p=0,f=-1,m=-1,h=0,g=0,v=l,b=null;t:for(;;){for(var y;v!==s||0!==u&&3!==v.nodeType||(f=p+u),v!==d||0!==c&&3!==v.nodeType||(m=p+c),3===v.nodeType&&(p+=v.nodeValue.length),null!==(y=v.firstChild);)b=v,v=y;for(;;){if(v===l)break t;if(b===s&&++h===u&&(f=p),b===d&&++g===c&&(m=p),null!==(y=v.nextSibling))break;b=(v=b).parentNode}v=y}s=-1===f||-1===m?null:{start:f,end:m}}else s=null}s=s||{start:0,end:0}}else s=null;gn={activeElementDetached:null,focusedElem:l,selectionRange:s},Wt=!1,jl=o;do{try{ms()}catch(T){if(null===jl)throw Error(a(330));bs(jl,T),jl=jl.nextEffect}}while(null!==jl);jl=o;do{try{for(l=e,s=t;null!==jl;){var w=jl.effectTag;if(16&w&&Ue(jl.stateNode,""),128&w){var _=jl.alternate;if(null!==_){var k=_.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&w){case 2:cl(jl),jl.effectTag&=-3;break;case 6:cl(jl),jl.effectTag&=-3,dl(jl.alternate,jl);break;case 1024:jl.effectTag&=-1025;break;case 1028:jl.effectTag&=-1025,dl(jl.alternate,jl);break;case 4:dl(jl.alternate,jl);break;case 8:ul(l,u=jl,s),ll(u)}jl=jl.nextEffect}}catch(T){if(null===jl)throw Error(a(330));bs(jl,T),jl=jl.nextEffect}}while(null!==jl);if(k=gn,_=fn(),w=k.focusedElem,s=k.selectionRange,_!==w&&w&&w.ownerDocument&&function e(t,n){return!(!t||!n)&&(t===n||(!t||3!==t.nodeType)&&(n&&3===n.nodeType?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}(w.ownerDocument.documentElement,w)){null!==s&&mn(w)&&(_=s.start,void 0===(k=s.end)&&(k=_),"selectionStart"in w?(w.selectionStart=_,w.selectionEnd=Math.min(k,w.value.length)):(k=(_=w.ownerDocument||document)&&_.defaultView||window).getSelection&&(k=k.getSelection(),u=w.textContent.length,l=Math.min(s.start,u),s=void 0===s.end?l:Math.min(s.end,u),!k.extend&&l>s&&(u=s,s=l,l=u),u=pn(w,l),d=pn(w,s),u&&d&&(1!==k.rangeCount||k.anchorNode!==u.node||k.anchorOffset!==u.offset||k.focusNode!==d.node||k.focusOffset!==d.offset)&&((_=_.createRange()).setStart(u.node,u.offset),k.removeAllRanges(),l>s?(k.addRange(_),k.extend(d.node,d.offset)):(_.setEnd(d.node,d.offset),k.addRange(_))))),_=[];for(k=w;k=k.parentNode;)1===k.nodeType&&_.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof w.focus&&w.focus(),w=0;w<_.length;w++)(k=_[w]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Wt=!!hn,gn=hn=null,e.current=n,jl=o;do{try{for(w=e;null!==jl;){var E=jl.effectTag;if(36&E&&il(w,jl.alternate,jl),128&E){_=void 0;var x=jl.ref;if(null!==x){var S=jl.stateNode;switch(jl.tag){case 5:_=S;break;default:_=S}"function"==typeof x?x(_):x.current=_}}jl=jl.nextEffect}}catch(T){if(null===jl)throw Error(a(330));bs(jl,T),jl=jl.nextEffect}}while(null!==jl);jl=null,jo(),El=i}else e.current=n;if(zl)zl=!1,Ul=e,Bl=t;else for(jl=o;null!==jl;)t=jl.nextEffect,jl.nextEffect=null,jl=t;if(0===(t=e.firstPendingTime)&&(Ml=null),1073741823===t?e===Gl?ql++:(ql=0,Gl=e):ql=0,"function"==typeof _s&&_s(n.stateNode,r),Yl(e),Dl)throw Dl=!1,e=Fl,Fl=null,e;return 0!=(8&El)||Wo(),null}function ms(){for(;null!==jl;){var e=jl.effectTag;0!=(256&e)&&nl(jl.alternate,jl),0==(512&e)||zl||(zl=!0,Go(97,(function(){return hs(),null}))),jl=jl.nextEffect}}function hs(){if(90!==Bl){var e=97<Bl?97:Bl;return Bl=90,qo(e,gs)}}function gs(){if(null===Ul)return!1;var e=Ul;if(Ul=null,0!=(48&El))throw Error(a(331));var t=El;for(El|=32,e=e.current.firstEffect;null!==e;){try{var n=e;if(0!=(512&n.effectTag))switch(n.tag){case 0:case 11:case 15:case 22:rl(5,n),ol(5,n)}}catch(r){if(null===e)throw Error(a(330));bs(e,r)}n=e.nextEffect,e.nextEffect=null,e=n}return El=t,Wo(),!0}function vs(e,t,n){ci(e,t=ml(e,t=Za(n,t),1073741823)),null!==(e=Kl(e,1073741823))&&Yl(e)}function bs(e,t){if(3===e.tag)vs(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){vs(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Ml||!Ml.has(r))){ci(n,e=hl(n,e=Za(t,e),1073741823)),null!==(n=Kl(n,1073741823))&&Yl(n);break}}n=n.return}}function ys(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),xl===e&&Tl===n?Pl===kl||Pl===_l&&1073741823===Ol&&Uo()-Ll<500?ns(e,Tl):Il=!0:Ns(e,n)&&(0!==(t=e.lastPingedTime)&&t<n||(e.lastPingedTime=n,Yl(e)))}function ws(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(t=Vl(t=Wl(),e,null)),null!==(e=Kl(e,t))&&Yl(e)}gl=function(e,t,n){var r=t.expirationTime;if(null!==e){var o=t.pendingProps;if(e.memoizedProps!==o||fo.current)Ra=!0;else{if(r<n){switch(Ra=!1,t.tag){case 3:za(t),Ca();break;case 5:if(Li(t),4&t.mode&&1!==n&&o.hidden)return t.expirationTime=t.childExpirationTime=1,null;break;case 1:go(t.type)&&wo(t);break;case 4:Ni(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value,o=t.type._context,co(Xo,o._currentValue),o._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!==(r=t.child.childExpirationTime)&&r>=n?Ga(e,t,n):(co(Di,1&Di.current),null!==(t=Qa(e,t,n))?t.sibling:null);co(Di,1&Di.current);break;case 19:if(r=t.childExpirationTime>=n,0!=(64&e.effectTag)){if(r)return Va(e,t,n);t.effectTag|=64}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null),co(Di,Di.current),!r)return null}return Qa(e,t,n)}Ra=!1}}else Ra=!1;switch(t.expirationTime=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,o=ho(t,po.current),ri(t,n),o=Qi(null,t,r,e,o,n),t.effectTag|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,go(r)){var i=!0;wo(t)}else i=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,ai(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&hi(t,r,l,e),o.updater=gi,t.stateNode=o,o._reactInternalFiber=t,wi(t,r,e,n),t=Ma(null,t,r,!0,i,n)}else t.tag=0,Aa(null,t,o,n),t=t.child;return t;case 16:e:{if(o=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,function(e){if(-1===e._status){e._status=0;var t=e._ctor;t=t(),e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}}(o),1!==o._status)throw o._result;switch(o=o._result,t.type=o,i=t.tag=function(e){if("function"==typeof e)return Ss(e)?1:0;if(null!=e){if((e=e.$$typeof)===se)return 11;if(e===de)return 14}return 2}(o),e=Ko(o,e),i){case 0:t=Da(null,t,o,e,n);break e;case 1:t=Fa(null,t,o,e,n);break e;case 11:t=Na(null,t,o,e,n);break e;case 14:t=Ia(null,t,o,Ko(o.type,e),r,n);break e}throw Error(a(306,o,""))}return t;case 0:return r=t.type,o=t.pendingProps,Da(e,t,r,o=t.elementType===r?o:Ko(r,o),n);case 1:return r=t.type,o=t.pendingProps,Fa(e,t,r,o=t.elementType===r?o:Ko(r,o),n);case 3:if(za(t),r=t.updateQueue,null===e||null===r)throw Error(a(282));if(r=t.pendingProps,o=null!==(o=t.memoizedState)?o.element:null,li(e,t),di(t,r,null,n),(r=t.memoizedState.element)===o)Ca(),t=Qa(e,t,n);else{if((o=t.stateNode.hydrate)&&(_a=_n(t.stateNode.containerInfo.firstChild),wa=t,o=ka=!0),o)for(n=Ti(t,null,r,n),t.child=n;n;)n.effectTag=-3&n.effectTag|1024,n=n.sibling;else Aa(e,t,r,n),Ca();t=t.child}return t;case 5:return Li(t),null===e&&Sa(t),r=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,l=o.children,bn(r,o)?l=null:null!==i&&bn(r,i)&&(t.effectTag|=16),ja(e,t),4&t.mode&&1!==n&&o.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(Aa(e,t,l,n),t=t.child),t;case 6:return null===e&&Sa(t),null;case 13:return Ga(e,t,n);case 4:return Ni(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Si(t,null,r,n):Aa(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,Na(e,t,r,o=t.elementType===r?o:Ko(r,o),n);case 7:return Aa(e,t,t.pendingProps,n),t.child;case 8:case 12:return Aa(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,o=t.pendingProps,l=t.memoizedProps,i=o.value;var s=t.type._context;if(co(Xo,s._currentValue),s._currentValue=i,null!==l)if(s=l.value,0===(i=Fr(s,i)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,i):1073741823))){if(l.children===o.children&&!fo.current){t=Qa(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var c=s.dependencies;if(null!==c){l=s.child;for(var u=c.firstContext;null!==u;){if(u.context===r&&0!=(u.observedBits&i)){1===s.tag&&((u=si(n,null)).tag=2,ci(s,u)),s.expirationTime<n&&(s.expirationTime=n),null!==(u=s.alternate)&&u.expirationTime<n&&(u.expirationTime=n),ni(s.return,n),c.expirationTime<n&&(c.expirationTime=n);break}u=u.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Aa(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=(i=t.pendingProps).children,ri(t,n),r=r(o=oi(o,i.unstable_observedBits)),t.effectTag|=1,Aa(e,t,r,n),t.child;case 14:return i=Ko(o=t.type,t.pendingProps),Ia(e,t,o,i=Ko(o.type,i),r,n);case 15:return La(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Ko(r,o),null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),t.tag=1,go(r)?(e=!0,wo(t)):e=!1,ri(t,n),bi(t,r,o),wi(t,r,o,n),Ma(null,t,r,!0,e,n);case 19:return Va(e,t,n)}throw Error(a(156,t.tag))};var _s=null,ks=null;function Es(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function xs(e,t,n,r){return new Es(e,t,n,r)}function Ss(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ts(e,t){var n=e.alternate;return null===n?((n=xs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.effectTag=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childExpirationTime=e.childExpirationTime,n.expirationTime=e.expirationTime,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{expirationTime:t.expirationTime,firstContext:t.firstContext,responders:t.responders},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ps(e,t,n,r,o,i){var l=2;if(r=e,"function"==typeof e)Ss(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case ne:return Cs(n.children,o,i,t);case le:l=8,o|=7;break;case re:l=8,o|=1;break;case oe:return(e=xs(12,n,t,8|o)).elementType=oe,e.type=oe,e.expirationTime=i,e;case ce:return(e=xs(13,n,t,o)).type=ce,e.elementType=ce,e.expirationTime=i,e;case ue:return(e=xs(19,n,t,o)).elementType=ue,e.expirationTime=i,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case ie:l=10;break e;case ae:l=9;break e;case se:l=11;break e;case de:l=14;break e;case pe:l=16,r=null;break e;case fe:l=22;break e}throw Error(a(130,null==e?e:typeof e,""))}return(t=xs(l,n,t,o)).elementType=e,t.type=r,t.expirationTime=i,t}function Cs(e,t,n,r){return(e=xs(7,e,r,t)).expirationTime=n,e}function Os(e,t,n){return(e=xs(6,e,null,t)).expirationTime=n,e}function Rs(e,t,n){return(t=xs(4,null!==e.children?e.children:[],e.key,t)).expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function As(e,t,n){this.tag=t,this.current=null,this.containerInfo=e,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=90,this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}function Ns(e,t){var n=e.firstSuspendedTime;return e=e.lastSuspendedTime,0!==n&&n>=t&&e<=t}function Is(e,t){var n=e.firstSuspendedTime,r=e.lastSuspendedTime;n<t&&(e.firstSuspendedTime=t),(r>t||0===n)&&(e.lastSuspendedTime=t),t<=e.lastPingedTime&&(e.lastPingedTime=0),t<=e.lastExpiredTime&&(e.lastExpiredTime=0)}function Ls(e,t){t>e.firstPendingTime&&(e.firstPendingTime=t);var n=e.firstSuspendedTime;0!==n&&(t>=n?e.firstSuspendedTime=e.lastSuspendedTime=e.nextKnownPendingLevel=0:t>=e.lastSuspendedTime&&(e.lastSuspendedTime=t+1),t>e.nextKnownPendingLevel&&(e.nextKnownPendingLevel=t))}function js(e,t){var n=e.lastExpiredTime;(0===n||n>t)&&(e.lastExpiredTime=t)}function Ds(e,t,n,r){var o=t.current,i=Wl(),l=fi.suspense;i=Vl(i,o,l);e:if(n){t:{if(Je(n=n._reactInternalFiber)!==n||1!==n.tag)throw Error(a(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(go(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(a(171))}if(1===n.tag){var c=n.type;if(go(c)){n=yo(n,c,s);break e}}n=s}else n=uo;return null===t.context?t.context=n:t.pendingContext=n,(t=si(i,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),ci(o,t),Ql(o,i),i}function Fs(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:default:return e.child.stateNode}}function Ms(e,t){null!==(e=e.memoizedState)&&null!==e.dehydrated&&e.retryTime<t&&(e.retryTime=t)}function zs(e,t){Ms(e,t),(e=e.alternate)&&Ms(e,t)}function Us(e,t,n){var r=new As(e,t,n=null!=n&&!0===n.hydrate),o=xs(3,null,null,2===t?7:1===t?3:0);r.current=o,o.stateNode=r,ai(o),e[Tn]=r.current,n&&0!==t&&function(e,t){var n=Ze(t);Tt.forEach((function(e){mt(e,t,n)})),Pt.forEach((function(e){mt(e,t,n)}))}(0,9===e.nodeType?e:e.ownerDocument),this._internalRoot=r}function Bs(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function $s(e,t,n,r,o){var i=n._reactRootContainer;if(i){var a=i._internalRoot;if("function"==typeof o){var l=o;o=function(){var e=Fs(a);l.call(e)}}Ds(t,a,e,o)}else{if(i=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new Us(e,0,t?{hydrate:!0}:void 0)}(n,r),a=i._internalRoot,"function"==typeof o){var s=o;o=function(){var e=Fs(a);s.call(e)}}ts((function(){Ds(t,a,e,o)}))}return Fs(a)}function qs(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:te,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function Gs(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Bs(t))throw Error(a(200));return qs(e,t,null,n)}Us.prototype.render=function(e){Ds(e,this._internalRoot,null,null)},Us.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Ds(null,e,null,(function(){t[Tn]=null}))},ht=function(e){if(13===e.tag){var t=Qo(Wl(),150,100);Ql(e,t),zs(e,t)}},gt=function(e){13===e.tag&&(Ql(e,3),zs(e,3))},vt=function(e){if(13===e.tag){var t=Wl();Ql(e,t=Vl(t,e,null)),zs(e,t)}},C=function(e,t,n){switch(t){case"input":if(Se(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=Rn(r);if(!o)throw Error(a(90));_e(r),Se(r,o)}}}break;case"textarea":Ne(e,n);break;case"select":null!=(t=n.value)&&Oe(e,!!n.multiple,t,!1)}},L=es,j=function(e,t,n,r,o){var i=El;El|=4;try{return qo(98,e.bind(null,t,n,r,o))}finally{0===(El=i)&&Wo()}},D=function(){0==(49&El)&&(function(){if(null!==$l){var e=$l;$l=null,e.forEach((function(e,t){js(t,e),Yl(t)})),Wo()}}(),hs())},F=function(e,t){var n=El;El|=2;try{return e(t)}finally{0===(El=n)&&Wo()}};var Hs,Ws,Vs={Events:[Cn,On,Rn,T,E,Fn,function(e){ot(e,Dn)},N,I,Yt,lt,hs,{current:!1}]};Ws=(Hs={findFiberByHostInstance:Pn,bundleType:0,version:"16.13.1",rendererPackageName:"react-dom"}).findFiberByHostInstance,function(e){if("undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);_s=function(e){try{t.onCommitFiberRoot(n,e,void 0,64==(64&e.current.effectTag))}catch(r){}},ks=function(e){try{t.onCommitFiberUnmount(n,e)}catch(r){}}}catch(r){}}(o({},Hs,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:X.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=nt(e))?null:e.stateNode},findFiberByHostInstance:function(e){return Ws?Ws(e):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null})),t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Vs,t.createPortal=Gs,t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternalFiber;if(void 0===t){if("function"==typeof e.render)throw Error(a(188));throw Error(a(268,Object.keys(e)))}return e=null===(e=nt(t))?null:e.stateNode},t.flushSync=function(e,t){if(0!=(48&El))throw Error(a(187));var n=El;El|=1;try{return qo(99,e.bind(null,t))}finally{El=n,Wo()}},t.hydrate=function(e,t,n){if(!Bs(t))throw Error(a(200));return $s(null,e,t,!0,n)},t.render=function(e,t,n){if(!Bs(t))throw Error(a(200));return $s(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Bs(e))throw Error(a(40));return!!e._reactRootContainer&&(ts((function(){$s(null,null,e,!1,(function(){e._reactRootContainer=null,e[Tn]=null}))})),!0)},t.unstable_batchedUpdates=es,t.unstable_createPortal=function(e,t){return Gs(e,t,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)},t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Bs(n))throw Error(a(200));if(null==e||void 0===e._reactInternalFiber)throw Error(a(38));return $s(e,t,n,!1,r)},t.version="16.13.1"},function(e,t,n){"use strict";e.exports=n(34)},function(e,t,n){"use strict";var r,o,i,a,l;if("undefined"==typeof window||"function"!=typeof MessageChannel){var s=null,c=null,u=function(){if(null!==s)try{var e=t.unstable_now();s(!0,e),s=null}catch(n){throw setTimeout(u,0),n}},d=Date.now();t.unstable_now=function(){return Date.now()-d},r=function(e){null!==s?setTimeout(r,0,e):(s=e,setTimeout(u,0))},o=function(e,t){c=setTimeout(e,t)},i=function(){clearTimeout(c)},a=function(){return!1},l=t.unstable_forceFrameRate=function(){}}else{var p=window.performance,f=window.Date,m=window.setTimeout,h=window.clearTimeout;if("undefined"!=typeof console){var g=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof g&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")}if("object"==typeof p&&"function"==typeof p.now)t.unstable_now=function(){return p.now()};else{var v=f.now();t.unstable_now=function(){return f.now()-v}}var b=!1,y=null,w=-1,_=5,k=0;a=function(){return t.unstable_now()>=k},l=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported"):_=0<e?Math.floor(1e3/e):5};var E=new MessageChannel,x=E.port2;E.port1.onmessage=function(){if(null!==y){var e=t.unstable_now();k=e+_;try{y(!0,e)?x.postMessage(null):(b=!1,y=null)}catch(n){throw x.postMessage(null),n}}else b=!1},r=function(e){y=e,b||(b=!0,x.postMessage(null))},o=function(e,n){w=m((function(){e(t.unstable_now())}),n)},i=function(){h(w),w=-1}}function S(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,o=e[r];if(!(void 0!==o&&0<C(o,t)))break e;e[r]=t,e[n]=o,n=r}}function T(e){return void 0===(e=e[0])?null:e}function P(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length;r<o;){var i=2*(r+1)-1,a=e[i],l=i+1,s=e[l];if(void 0!==a&&0>C(a,n))void 0!==s&&0>C(s,a)?(e[r]=s,e[l]=n,r=l):(e[r]=a,e[i]=n,r=i);else{if(!(void 0!==s&&0>C(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function C(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var O=[],R=[],A=1,N=null,I=3,L=!1,j=!1,D=!1;function F(e){for(var t=T(R);null!==t;){if(null===t.callback)P(R);else{if(!(t.startTime<=e))break;P(R),t.sortIndex=t.expirationTime,S(O,t)}t=T(R)}}function M(e){if(D=!1,F(e),!j)if(null!==T(O))j=!0,r(z);else{var t=T(R);null!==t&&o(M,t.startTime-e)}}function z(e,n){j=!1,D&&(D=!1,i()),L=!0;var r=I;try{for(F(n),N=T(O);null!==N&&(!(N.expirationTime>n)||e&&!a());){var l=N.callback;if(null!==l){N.callback=null,I=N.priorityLevel;var s=l(N.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?N.callback=s:N===T(O)&&P(O),F(n)}else P(O);N=T(O)}if(null!==N)var c=!0;else{var u=T(R);null!==u&&o(M,u.startTime-n),c=!1}return c}finally{N=null,I=r,L=!1}}function U(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var B=l;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){j||L||(j=!0,r(z))},t.unstable_getCurrentPriorityLevel=function(){return I},t.unstable_getFirstCallbackNode=function(){return T(O)},t.unstable_next=function(e){switch(I){case 1:case 2:case 3:var t=3;break;default:t=I}var n=I;I=t;try{return e()}finally{I=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=B,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=I;I=e;try{return t()}finally{I=n}},t.unstable_scheduleCallback=function(e,n,a){var l=t.unstable_now();if("object"==typeof a&&null!==a){var s=a.delay;s="number"==typeof s&&0<s?l+s:l,a="number"==typeof a.timeout?a.timeout:U(e)}else a=U(e),s=l;return e={id:A++,callback:n,priorityLevel:e,startTime:s,expirationTime:a=s+a,sortIndex:-1},s>l?(e.sortIndex=s,S(R,e),null===T(O)&&e===T(R)&&(D?i():D=!0,o(M,s-l))):(e.sortIndex=a,S(O,e),j||L||(j=!0,r(z))),e},t.unstable_shouldYield=function(){var e=t.unstable_now();F(e);var n=T(O);return n!==N&&null!==N&&null!==n&&null!==n.callback&&n.startTime<=e&&n.expirationTime<N.expirationTime||a()},t.unstable_wrapCallback=function(e){var t=I;return function(){var n=I;I=t;try{return e.apply(this,arguments)}finally{I=n}}}},function(e,t,n){"use strict";var r=n(36);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103,i=r?Symbol.for("react.portal"):60106,a=r?Symbol.for("react.fragment"):60107,l=r?Symbol.for("react.strict_mode"):60108,s=r?Symbol.for("react.profiler"):60114,c=r?Symbol.for("react.provider"):60109,u=r?Symbol.for("react.context"):60110,d=r?Symbol.for("react.async_mode"):60111,p=r?Symbol.for("react.concurrent_mode"):60111,f=r?Symbol.for("react.forward_ref"):60112,m=r?Symbol.for("react.suspense"):60113,h=r?Symbol.for("react.suspense_list"):60120,g=r?Symbol.for("react.memo"):60115,v=r?Symbol.for("react.lazy"):60116,b=r?Symbol.for("react.block"):60121,y=r?Symbol.for("react.fundamental"):60117,w=r?Symbol.for("react.responder"):60118,_=r?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case d:case p:case a:case s:case l:case m:return e;default:switch(e=e&&e.$$typeof){case u:case f:case v:case g:case c:return e;default:return t}}case i:return t}}}function E(e){return k(e)===p}t.AsyncMode=d,t.ConcurrentMode=p,t.ContextConsumer=u,t.ContextProvider=c,t.Element=o,t.ForwardRef=f,t.Fragment=a,t.Lazy=v,t.Memo=g,t.Portal=i,t.Profiler=s,t.StrictMode=l,t.Suspense=m,t.isAsyncMode=function(e){return E(e)||k(e)===d},t.isConcurrentMode=E,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===c},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return k(e)===f},t.isFragment=function(e){return k(e)===a},t.isLazy=function(e){return k(e)===v},t.isMemo=function(e){return k(e)===g},t.isPortal=function(e){return k(e)===i},t.isProfiler=function(e){return k(e)===s},t.isStrictMode=function(e){return k(e)===l},t.isSuspense=function(e){return k(e)===m},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===p||e===s||e===l||e===m||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===v||e.$$typeof===g||e.$$typeof===c||e.$$typeof===u||e.$$typeof===f||e.$$typeof===y||e.$$typeof===w||e.$$typeof===_||e.$$typeof===b)},t.typeOf=k},function(e,t,n){"use strict";n.r(t);var r=n(8);t.default=r.a.canUseDOM?{onRouteUpdate:function(e){var t=e.location;window.ga("set","page",t.pathname),window.ga("send","pageview")}}:null},,function(e,t,n){const r=n(42),o=n(43),i=new Set;function a(e){void 0===e?e=Object.keys(r.languages).filter(e=>"meta"!=e):Array.isArray(e)||(e=[e]);const t=[...i,...Object.keys(Prism.languages)];o(r,e,t).load(e=>{if(!(e in r.languages))return void(a.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(16).resolve(t)],delete Prism.languages[e],n(16)(t),i.add(e)})}a.silent=!1,e.exports=a},function(e,t,n){e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",owner:"eisbehr-"},arff:{title:"ARFF",owner:"Golmote"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},bash:{title:"Bash",alias:"shell",aliasTitles:{shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cil:{title:"CIL",owner:"sbrl"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},go:{title:"Go",require:"clike",owner:"arnehormann"},graphql:{title:"GraphQL",optional:["markdown"],owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},http:{title:"HTTP",optional:["css","javascript","json","markup"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},matlab:{title:"MATLAB",owner:"Golmote"},mel:{title:"MEL",owner:"Golmote"},mizar:{title:"Mizar",owner:"Golmote"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nginx:{title:"nginx",owner:"westonganger",require:"clike"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:["clike","markup-templating"],owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},python:{title:"Python",alias:"py",owner:"multipetros"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",modify:["actionscript","coffeescript","flow","javascript","typescript","vala"],owner:"RunDevelopment"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",owner:"Golmote"},scss:{title:"Sass (Scss)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",owner:"Golmote"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},swift:{title:"Swift",require:"clike",owner:"chrischares"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},vala:{title:"Vala",require:"clike",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword matched in the code. For example, the keyword <code>if</code> will have the class <code>keyword-if</code> as well. You can have fine grained control over the appearance of each keyword by providing your own CSS rules.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},function(e,t,n){"use strict";var r=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];return function(o){var i=n[o];return i||(!function r(o,i){if(!(o in n)){i.push(o);var a=i.indexOf(o);if(a<i.length-1)throw new Error("Circular dependency: "+i.slice(a).join(" -> "));var l={},s=e[o];if(s){function c(t){if(!(t in e))throw new Error(o+" depends on an unknown component "+t);if(!(t in l))for(var a in r(t,i),l[t]=!0,n[t])l[a]=!0}t(s.require,c),t(s.optional,c),t(s.modify,c)}n[o]=l,i.pop()}}(o,r),i=n[o]),i}}function o(e){for(var t in e)return!0;return!1}return function(i,a,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var i=r[o];t[o]="string"==typeof i?{title:i}:i}}return t}(i),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var i=e[o];t(i&&i.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(s);a=a.map(c),l=(l||[]).map(c);var u=n(a),d=n(l);a.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(s),m=u;o(m);){for(var h in p={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var v in d)if(!(v in u))for(var b in f(v))if(b in u){p[v]=!0;break}for(var y in m=p)u[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){const i=o?o.series:void 0,a=o?o.parallel:e;var l={},s={};function c(e){if(e in l)return l[e];s[e]=!0;var o,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)o=r(e);else{var p=a(u.map((function(e){var t=c(e);return delete s[e],t})));i?o=i(p,(function(){return r(e)})):r(e)}return l[e]=o}for(var u in n)c(u);var d=[];for(var p in s)d.push(l[p]);return a(d)}(f,u,t,n)}};return w}}();e.exports=r},,,function(e,t,n){"use strict";n.r(t);var r=n(0),o=n.n(r),i=n(25),a=n(13),l=n(17),s=n.n(l),c=function(e){var t=e.error,n=e.retry,r=e.pastDelay;return t?o.a.createElement("div",{style:{align:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},o.a.createElement("p",null,t.message),o.a.createElement("div",null,o.a.createElement("button",{type:"button",onClick:n},"Retry"))):r?o.a.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},o.a.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},o.a.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},o.a.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},o.a.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),o.a.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),o.a.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),o.a.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},o.a.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),o.a.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),o.a.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),o.a.createElement("circle",{cx:"22",cy:"22",r:"8"},o.a.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null},u=n(11),d={"001c4541":[function(){return Promise.all([n.e(0),n.e(4)]).then(n.bind(null,55))},"@site/docs/crop_monitoring_overview.md",55],"00890c70":[function(){return Promise.all([n.e(0),n.e(5)]).then(n.bind(null,56))},"@site/docs/crop_monitoring_sentinel_overview.md",56],"01a85c17":[function(){return Promise.all([n.e(0),n.e(1),n.e(2),n.e(6)]).then(n.bind(null,57))},"@theme/BlogTagsListPage",57],"0222f66d":[function(){return Promise.all([n.e(0),n.e(7)]).then(n.bind(null,58))},"@site/docs/integrations_endpoints.md",58],"04b6fe29":[function(){return Promise.all([n.e(0),n.e(8)]).then(n.bind(null,59))},"@site/docs/beta_assets_endpoints.md",59],"07d09fc8":[function(){return Promise.all([n.e(0),n.e(9)]).then(n.bind(null,60))},"@site/docs/credentials_cfv.md",60],"0acb23d9":[function(){return n.e(10).then(n.bind(null,61))},"@site/docs/usecase_upload.md",61],"0f2ebb41":[function(){return Promise.all([n.e(0),n.e(11)]).then(n.bind(null,62))},"@site/docs/field_boundaries_overview.md",62],"11a48954":[function(){return Promise.all([n.e(0),n.e(12)]).then(n.bind(null,63))},"@site/docs/sentinel_overview.md",63],"1390700c":[function(){return Promise.all([n.e(0),n.e(13)]).then(n.bind(null,64))},"@site/docs/credentials_john_deere.md",64],17896441:[function(){return Promise.all([n.e(0),n.e(1),n.e(14)]).then(n.bind(null,149))},"@theme/DocItem",149],"17f45a3e":[function(){return Promise.all([n.e(0),n.e(15)]).then(n.bind(null,66))},"@site/docs/configurations_endpoints.md",66],"1be78505":[function(){return Promise.all([n.e(0),n.e(1),n.e(2),n.e(3),n.e(16)]).then(n.bind(null,150))},"@theme/DocPage",150],"1d70fac3":[function(){return Promise.all([n.e(0),n.e(17)]).then(n.bind(null,73))},"@site/docs/Link_endpoints.md",73],"1e1e6f64":[function(){return Promise.all([n.e(0),n.e(18)]).then(n.bind(null,74))},"@site/docs/credentials_stara.md",74],"20ec0c56":[function(){return Promise.all([n.e(0),n.e(19)]).then(n.bind(null,75))},"@site/docs/planet_overview.md",75],"25f359fe":[function(){return Promise.all([n.e(0),n.e(20)]).then(n.bind(null,76))},"@site/docs/alerts_overview.md",76],"2b9dda6a":[function(){return Promise.all([n.e(0),n.e(21)]).then(n.bind(null,77))},"@site/docs/provider_organizations.md",77],"2cb670c2":[function(){return Promise.all([n.e(0),n.e(22)]).then(n.bind(null,78))},"@site/docs/machine_file_conversion_overview.md",78],"2e3f99ee":[function(){return n.e(23).then(n.bind(null,79))},"@site/blog/2019-05-28-welcome.md",79],"2e549593":[function(){return n.e(24).then(n.bind(null,80))},"@site/docs/beta_features_overview.md",80],"301cc83b":[function(){return n.e(25).then(n.bind(null,81))},"@site/docs/alerts_events.md",81],"36f3e74f":[function(){return n.e(26).then(n.t.bind(null,82,3))},"~blog/docs-blog-tags-tags-b47.json",82],"3abaa289":[function(){return Promise.all([n.e(0),n.e(27)]).then(n.bind(null,83))},"@site/docs/satellite_endpoints.md",83],"3f24d9c4":[function(){return Promise.all([n.e(0),n.e(28)]).then(n.bind(null,84))},"@site/docs/machine_file_conversion_units.md",84],"43187bfa":[function(){return n.e(29).then(n.bind(null,85))},"@site/docs/operations_overview.md",85],"47f480c2":[function(){return Promise.all([n.e(0),n.e(30)]).then(n.bind(null,86))},"@site/docs/credentials_cnhi.md",86],"54f8a06c":[function(){return Promise.all([n.e(0),n.e(31)]).then(n.bind(null,87))},"@site/docs/field_boundaries_endpoints.md",87],"556218c3":[function(){return Promise.all([n.e(0),n.e(32)]).then(n.bind(null,88))},"@site/docs/machine_file_conversion_endpoints.md",88],"59b50206":[function(){return n.e(33).then(n.bind(null,89))},"@site/docs/usecase_johndeere_products.md",89],"59c6c071":[function(){return Promise.all([n.e(0),n.e(34)]).then(n.bind(null,90))},"@site/docs/satellite_overview.md",90],"5c151b87":[function(){return Promise.all([n.e(0),n.e(35)]).then(n.bind(null,91))},"@site/docs/credentials_raven.md",91],"5c9efad4":[function(){return Promise.all([n.e(0),n.e(36)]).then(n.bind(null,92))},"@site/docs/Magic_link_endpoints.md",92],"5ce478cd":[function(){return Promise.all([n.e(0),n.e(37)]).then(n.bind(null,93))},"@site/docs/configurations_overview.md",93],"5e9f5e1a":[function(){return Promise.resolve().then(n.bind(null,10))},"@generated/docusaurus.config",10],"602deefb":[function(){return n.e(38).then(n.bind(null,94))},"@site/docs/crops.md",94],"625b1ed7":[function(){return Promise.all([n.e(0),n.e(39)]).then(n.bind(null,95))},"@site/docs/authentication.md",95],"64f9f2ab":[function(){return n.e(40).then(n.t.bind(null,96,3))},"~docs/docs-docs-route-bc6.json",96],"6875c492":[function(){return Promise.all([n.e(0),n.e(1),n.e(2),n.e(3),n.e(41)]).then(n.bind(null,97))},"@theme/BlogTagsPostsPage",97],"69aa77ae":[function(){return n.e(42).then(n.bind(null,98))},"@site/docs/glossary(unused).md",98],"6cdb8341":[function(){return Promise.all([n.e(0),n.e(43)]).then(n.bind(null,99))},"@site/docs/field_boundary_management_overview.md",99],"7104d79f":[function(){return Promise.all([n.e(0),n.e(44)]).then(n.bind(null,100))},"@site/docs/converters_endpoints.md",100],"7843e309":[function(){return Promise.all([n.e(0),n.e(1),n.e(2),n.e(45)]).then(n.bind(null,101))},"@site/src/pages/curious.js",101],"78bf585d":[function(){return Promise.all([n.e(0),n.e(46)]).then(n.bind(null,102))},"@site/docs/operations_sample_output.md",102],"7a843a47":[function(){return Promise.all([n.e(0),n.e(47)]).then(n.bind(null,103))},"@site/docs/alerts_authentication.md",103],"7bd79131":[function(){return Promise.all([n.e(0),n.e(48)]).then(n.bind(null,104))},"@site/docs/operations_endpoints.md",104],"7cbe5bda":[function(){return Promise.all([n.e(0),n.e(49)]).then(n.bind(null,105))},"@site/docs/machine_file_conversion_sample_output.md",105],"8070e160":[function(){return Promise.all([n.e(0),n.e(50)]).then(n.bind(null,106))},"@site/docs/quickstart.md",106],"8be40c3a":[function(){return Promise.all([n.e(0),n.e(51)]).then(n.bind(null,107))},"@site/docs/files_endpoints.md",107],"8c0794ce":[function(){return n.e(52).then(n.bind(null,108))},"@site/blog/2019-05-28-welcome.md?truncated=true",108],"8c50fa75":[function(){return Promise.all([n.e(0),n.e(53)]).then(n.bind(null,109))},"@site/docs/Magic_link_overview.md",109],"90250b52":[function(){return Promise.all([n.e(0),n.e(54)]).then(n.bind(null,110))},"@site/docs/beta_layers_endpoints.md",110],"96d02e3b":[function(){return Promise.all([n.e(0),n.e(55)]).then(n.bind(null,111))},"@site/docs/weather_overview.md",111],"9a2cec18":[function(){return n.e(56).then(n.bind(null,112))},"@site/docs/release_notes.md",112],"9b982434":[function(){return Promise.all([n.e(0),n.e(57)]).then(n.bind(null,113))},"@site/docs/credentials_agleader.md",113],"9c1722c2":[function(){return Promise.all([n.e(0),n.e(58)]).then(n.bind(null,114))},"@site/docs/connect.md",114],a09c2993:[function(){return n.e(59).then(n.bind(null,115))},"@site/docs/introduction.md",115],a460bfa0:[function(){return Promise.all([n.e(0),n.e(60)]).then(n.bind(null,116))},"@site/docs/crop_monitoring_endpoints.md",116],a6aa9e1f:[function(){return Promise.all([n.e(0),n.e(1),n.e(2),n.e(3),n.e(61)]).then(n.bind(null,151))},"@theme/BlogListPage",151],b040a816:[function(){return Promise.all([n.e(0),n.e(63)]).then(n.bind(null,117))},"@site/docs/beta_machines_endpoints.md",117],b053acf9:[function(){return Promise.all([n.e(0),n.e(64)]).then(n.bind(null,118))},"@site/docs/credentials_trimble.md",118],b206d805:[function(){return n.e(65).then(n.bind(null,119))},"@site/docs/usecase_satellite.md",119],b79b1c45:[function(){return Promise.all([n.e(0),n.e(66)]).then(n.bind(null,120))},"@site/docs/files_overview.md",120],b7e9c9e5:[function(){return Promise.all([n.e(0),n.e(67)]).then(n.bind(null,121))},"@site/docs/Link_provider_connection.md",121],beb43c3b:[function(){return Promise.all([n.e(0),n.e(68)]).then(n.bind(null,122))},"@site/docs/credentials_agvance.md",122],bf71106d:[function(){return Promise.all([n.e(0),n.e(69)]).then(n.bind(null,123))},"@site/docs/crop_monitoring_planet_overview.md",123],c21ad4a8:[function(){return n.e(70).then(n.bind(null,124))},"@site/docs/user_management_overview.md",124],c4edeca5:[function(){return Promise.all([n.e(0),n.e(71)]).then(n.bind(null,125))},"@site/docs/alerts_endpoints.md",125],c4f5d8e4:[function(){return Promise.all([n.e(0),n.e(1),n.e(2),n.e(72)]).then(n.bind(null,126))},"@site/src/pages/index.js",126],ccc49370:[function(){return Promise.all([n.e(0),n.e(1),n.e(2),n.e(3),n.e(73)]).then(n.bind(null,152))},"@theme/BlogPostPage",152],ce17bea9:[function(){return Promise.all([n.e(0),n.e(74)]).then(n.bind(null,128))},"@site/docs/credentials_raven_slingshot.md",128],d3cdf188:[function(){return n.e(75).then(n.bind(null,129))},"@site/docs/files_postman.md",129],d51f62c8:[function(){return Promise.all([n.e(0),n.e(76)]).then(n.bind(null,130))},"@site/docs/machine_file_conversion_crops_table.md",130],de394ffb:[function(){return Promise.all([n.e(0),n.e(77)]).then(n.bind(null,131))},"@site/docs/beta_input_endpoints.md",131],e15c931c:[function(){return Promise.all([n.e(0),n.e(78)]).then(n.bind(null,132))},"@site/docs/beta_prescriptions_endpoints.md",132],e747ec83:[function(){return n.e(79).then(n.bind(null,133))},"@site/docs/glossary.md",133],e87dbf8c:[function(){return Promise.all([n.e(0),n.e(80)]).then(n.bind(null,134))},"@site/docs/credentials_sentera.md",134],e8a1e4f1:[function(){return Promise.all([n.e(0),n.e(81)]).then(n.bind(null,135))},"@site/docs/files_images.md",135],e8f4d530:[function(){return n.e(82).then(n.t.bind(null,136,3))},"~blog/docs-blog-tags-rick-roll-28f.json",136],e9c07a87:[function(){return Promise.all([n.e(0),n.e(83)]).then(n.bind(null,137))},"@site/docs/files_crops_table.md",137],ead8574c:[function(){return Promise.all([n.e(0),n.e(84)]).then(n.bind(null,138))},"@site/docs/sharedata.md",138],eb1b3ae9:[function(){return Promise.all([n.e(0),n.e(85)]).then(n.bind(null,139))},"@site/docs/weather_endpoints.md",139],ebfee794:[function(){return Promise.all([n.e(0),n.e(86)]).then(n.bind(null,140))},"@site/docs/welcome.md",140],ec1d14ba:[function(){return n.e(87).then(n.bind(null,141))},"@site/docs/provider-authentication-overview.md",141],ec7e0abd:[function(){return Promise.all([n.e(0),n.e(88)]).then(n.bind(null,142))},"@site/docs/user_management_endpoints.md",142],eec592a1:[function(){return Promise.all([n.e(0),n.e(89)]).then(n.bind(null,143))},"@site/docs/files_sample_output.md",143],ef3b18c7:[function(){return Promise.all([n.e(0),n.e(90)]).then(n.bind(null,144))},"@site/docs/Link_file_upload.md",144],f1553b0a:[function(){return n.e(91).then(n.bind(null,145))},"@site/docs/converters_overview.md",145],f1fe53b2:[function(){return Promise.all([n.e(0),n.e(92)]).then(n.bind(null,146))},"@site/docs/field_boundary_management_endpoints.md",146],f4c678d9:[function(){return n.e(93).then(n.t.bind(null,147,3))},"~blog/docs-blog-c43.json",147],f83deafa:[function(){return Promise.all([n.e(0),n.e(94)]).then(n.bind(null,148))},"@site/docs/setup_information.md",148]};var p=function(e){var t={};return function e(n,r){Object.keys(n).forEach((function(o){var i=n[o],a=r?r+"."+o:o;"object"===typeof i&&!!i&&Object.keys(i).length?e(i,a):t[a]=i}))}(e),t};var f=function(e,t){if("*"===e)return s()({loading:c,loader:function(){return Promise.all([n.e(0),n.e(1),n.e(2),n.e(98)]).then(n.bind(null,179))}});var r=u[e+"-"+t],i=[],a=[],l={},f=p(r);return Object.keys(f).forEach((function(e){var t=d[f[e]];t&&(l[e]=t[0],i.push(t[1]),a.push(t[2]))})),s.a.Map({loading:c,loader:l,modules:i,webpack:function(){return a},render:function(e,t){var n=JSON.parse(JSON.stringify(r));Object.keys(e).forEach((function(t){for(var r=n,o=t.split("."),i=0;i<o.length-1;i+=1)r=r[o[i]];r[o[o.length-1]]=e[t].default;var a=Object.keys(e[t]).filter((function(e){return"default"!==e}));a&&a.length&&a.forEach((function(n){r[o[o.length-1]][n]=e[t][n]}))}));var i=n.component;return delete n.component,o.a.createElement(i,Object.assign({},n,t))}})},m=[{path:"/docs/",component:f("/docs/","7fd"),exact:!0},{path:"/docs/blog",component:f("/docs/blog","d2d"),exact:!0},{path:"/docs/blog/tags",component:f("/docs/blog/tags","13a"),exact:!0},{path:"/docs/blog/tags/rick-roll",component:f("/docs/blog/tags/rick-roll","bb0"),exact:!0},{path:"/docs/blog/Welcome",component:f("/docs/blog/Welcome","9a2"),exact:!0},{path:"/docs/curious",component:f("/docs/curious","453"),exact:!0},{path:"/docs/docs",component:f("/docs/docs","dd2"),routes:[{path:"/docs/docs/",component:f("/docs/docs/","fcf"),exact:!0},{path:"/docs/docs/alerts_authentication",component:f("/docs/docs/alerts_authentication","8e4"),exact:!0},{path:"/docs/docs/alerts_endpoints",component:f("/docs/docs/alerts_endpoints","e62"),exact:!0},{path:"/docs/docs/alerts_events",component:f("/docs/docs/alerts_events","9a7"),exact:!0},{path:"/docs/docs/alerts_overview",component:f("/docs/docs/alerts_overview","f56"),exact:!0},{path:"/docs/docs/authentication",component:f("/docs/docs/authentication","54a"),exact:!0},{path:"/docs/docs/beta_assets_endpoints",component:f("/docs/docs/beta_assets_endpoints","0d0"),exact:!0},{path:"/docs/docs/beta_features_overview",component:f("/docs/docs/beta_features_overview","bd9"),exact:!0},{path:"/docs/docs/beta_input_endpoints",component:f("/docs/docs/beta_input_endpoints","a99"),exact:!0},{path:"/docs/docs/beta_layers_endpoints",component:f("/docs/docs/beta_layers_endpoints","366"),exact:!0},{path:"/docs/docs/beta_machines_endpoints",component:f("/docs/docs/beta_machines_endpoints","0f4"),exact:!0},{path:"/docs/docs/beta_prescriptions_endpoints",component:f("/docs/docs/beta_prescriptions_endpoints","370"),exact:!0},{path:"/docs/docs/configurations_endpoints",component:f("/docs/docs/configurations_endpoints","f6b"),exact:!0},{path:"/docs/docs/configurations_overview",component:f("/docs/docs/configurations_overview","6e3"),exact:!0},{path:"/docs/docs/connect",component:f("/docs/docs/connect","7d9"),exact:!0},{path:"/docs/docs/converters_endpoints",component:f("/docs/docs/converters_endpoints","61c"),exact:!0},{path:"/docs/docs/converters_overview",component:f("/docs/docs/converters_overview","26f"),exact:!0},{path:"/docs/docs/credentials_agleader",component:f("/docs/docs/credentials_agleader","ad8"),exact:!0},{path:"/docs/docs/credentials_agvance",component:f("/docs/docs/credentials_agvance","7cc"),exact:!0},{path:"/docs/docs/credentials_cfv",component:f("/docs/docs/credentials_cfv","64a"),exact:!0},{path:"/docs/docs/credentials_cnhi",component:f("/docs/docs/credentials_cnhi","814"),exact:!0},{path:"/docs/docs/credentials_john_deere",component:f("/docs/docs/credentials_john_deere","b26"),exact:!0},{path:"/docs/docs/credentials_raven",component:f("/docs/docs/credentials_raven","57a"),exact:!0},{path:"/docs/docs/credentials_raven_slingshot",component:f("/docs/docs/credentials_raven_slingshot","dac"),exact:!0},{path:"/docs/docs/credentials_sentera",component:f("/docs/docs/credentials_sentera","822"),exact:!0},{path:"/docs/docs/credentials_stara",component:f("/docs/docs/credentials_stara","004"),exact:!0},{path:"/docs/docs/credentials_trimble",component:f("/docs/docs/credentials_trimble","ba2"),exact:!0},{path:"/docs/docs/crop_monitoring_endpoints",component:f("/docs/docs/crop_monitoring_endpoints","c56"),exact:!0},{path:"/docs/docs/crop_monitoring_overview",component:f("/docs/docs/crop_monitoring_overview","c50"),exact:!0},{path:"/docs/docs/crop_monitoring_planet_overview",component:f("/docs/docs/crop_monitoring_planet_overview","cc0"),exact:!0},{path:"/docs/docs/crop_monitoring_sentinel_overview",component:f("/docs/docs/crop_monitoring_sentinel_overview","a2c"),exact:!0},{path:"/docs/docs/crops",component:f("/docs/docs/crops","7de"),exact:!0},{path:"/docs/docs/field_boundaries_endpoints",component:f("/docs/docs/field_boundaries_endpoints","cb9"),exact:!0},{path:"/docs/docs/field_boundaries_overview",component:f("/docs/docs/field_boundaries_overview","216"),exact:!0},{path:"/docs/docs/field_boundary_management_endpoints",component:f("/docs/docs/field_boundary_management_endpoints","a12"),exact:!0},{path:"/docs/docs/field_boundary_management_overview",component:f("/docs/docs/field_boundary_management_overview","e1c"),exact:!0},{path:"/docs/docs/files_crops_table",component:f("/docs/docs/files_crops_table","0f1"),exact:!0},{path:"/docs/docs/files_endpoints",component:f("/docs/docs/files_endpoints","88f"),exact:!0},{path:"/docs/docs/files_images",component:f("/docs/docs/files_images","f36"),exact:!0},{path:"/docs/docs/files_overview",component:f("/docs/docs/files_overview","fec"),exact:!0},{path:"/docs/docs/files_postman",component:f("/docs/docs/files_postman","761"),exact:!0},{path:"/docs/docs/files_sample_output",component:f("/docs/docs/files_sample_output","6d0"),exact:!0},{path:"/docs/docs/glossary",component:f("/docs/docs/glossary","284"),exact:!0},{path:"/docs/docs/glossary(unused)",component:f("/docs/docs/glossary(unused)","a13"),exact:!0},{path:"/docs/docs/integrations_endpoints",component:f("/docs/docs/integrations_endpoints","aec"),exact:!0},{path:"/docs/docs/introduction",component:f("/docs/docs/introduction","88f"),exact:!0},{path:"/docs/docs/Link_endpoints",component:f("/docs/docs/Link_endpoints","62f"),exact:!0},{path:"/docs/docs/Link_file_upload",component:f("/docs/docs/Link_file_upload","00f"),exact:!0},{path:"/docs/docs/Link_provider_connection",component:f("/docs/docs/Link_provider_connection","b8c"),exact:!0},{path:"/docs/docs/machine_file_conversion_crops_table",component:f("/docs/docs/machine_file_conversion_crops_table","563"),exact:!0},{path:"/docs/docs/machine_file_conversion_endpoints",component:f("/docs/docs/machine_file_conversion_endpoints","b57"),exact:!0},{path:"/docs/docs/machine_file_conversion_overview",component:f("/docs/docs/machine_file_conversion_overview","743"),exact:!0},{path:"/docs/docs/machine_file_conversion_sample_output",component:f("/docs/docs/machine_file_conversion_sample_output","1c4"),exact:!0},{path:"/docs/docs/machine_file_conversion_units",component:f("/docs/docs/machine_file_conversion_units","d87"),exact:!0},{path:"/docs/docs/Magic_link_endpoints",component:f("/docs/docs/Magic_link_endpoints","b90"),exact:!0},{path:"/docs/docs/Magic_link_overview",component:f("/docs/docs/Magic_link_overview","4da"),exact:!0},{path:"/docs/docs/operations_endpoints",component:f("/docs/docs/operations_endpoints","570"),exact:!0},{path:"/docs/docs/operations_overview",component:f("/docs/docs/operations_overview","2cd"),exact:!0},{path:"/docs/docs/operations_sample_output",component:f("/docs/docs/operations_sample_output","381"),exact:!0},{path:"/docs/docs/planet_overview",component:f("/docs/docs/planet_overview","4c2"),exact:!0},{path:"/docs/docs/provider_organizations",component:f("/docs/docs/provider_organizations","dff"),exact:!0},{path:"/docs/docs/provider-authentication-overview",component:f("/docs/docs/provider-authentication-overview","181"),exact:!0},{path:"/docs/docs/quickstart",component:f("/docs/docs/quickstart","562"),exact:!0},{path:"/docs/docs/release_notes",component:f("/docs/docs/release_notes","2df"),exact:!0},{path:"/docs/docs/satellite_endpoints",component:f("/docs/docs/satellite_endpoints","cce"),exact:!0},{path:"/docs/docs/satellite_overview",component:f("/docs/docs/satellite_overview","58e"),exact:!0},{path:"/docs/docs/sentinel_overview",component:f("/docs/docs/sentinel_overview","637"),exact:!0},{path:"/docs/docs/setup_information",component:f("/docs/docs/setup_information","7f1"),exact:!0},{path:"/docs/docs/sharedata",component:f("/docs/docs/sharedata","3d8"),exact:!0},{path:"/docs/docs/usecase_johndeere_products",component:f("/docs/docs/usecase_johndeere_products","dc5"),exact:!0},{path:"/docs/docs/usecase_satellite",component:f("/docs/docs/usecase_satellite","73a"),exact:!0},{path:"/docs/docs/usecase_upload",component:f("/docs/docs/usecase_upload","e74"),exact:!0},{path:"/docs/docs/user_management_endpoints",component:f("/docs/docs/user_management_endpoints","c2a"),exact:!0},{path:"/docs/docs/user_management_overview",component:f("/docs/docs/user_management_overview","b64"),exact:!0},{path:"/docs/docs/weather_endpoints",component:f("/docs/docs/weather_endpoints","8d2"),exact:!0},{path:"/docs/docs/weather_overview",component:f("/docs/docs/weather_overview","4ae"),exact:!0}]},{path:"*",component:f("*")}],h=n(8),g=n(10),v=n(26),b=n(27),y=n(23),w=n(20),_=n(3),k=n(1),E=n(12),x=n.n(E),S=[n(15),n(15),n(15),n(39),n(40),n(47),n(44)];function T(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];S.forEach((function(t){var r=t.__esModule?t.default:t;r&&r[e]&&r[e].apply(r,n)}))}var P={onRouteUpdate:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];T.apply(void 0,["onRouteUpdate"].concat(t))},onRouteUpdateDelayed:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];T.apply(void 0,["onRouteUpdateDelayed"].concat(t))}},C=n(9);function O(e,t){var n=Object(C.a)(e,t);return Promise.all(n.map((function(e){var t=e.route.component;if(t&&t.preload)return t.preload()})))}var R={};var A=function(e){if(R[e.pathname])return Object.assign(Object.assign({},e),{pathname:R[e.pathname]});var t=e.pathname||"/";return""===(t=t.trim().replace(/\/index\.html$/,""))&&(t="/"),R[e.pathname]=t,Object.assign(Object.assign({},e),{pathname:t})};n(45);x.a.configure({showSpinner:!1});var N=function(e){function t(t){var n;return(n=e.call(this,t)||this).previousLocation=null,n.progressBarTimeout=null,n.state={nextRouteHasLoaded:!0},n}Object(_.a)(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e,t){var n=this,r=e.location!==this.props.location,o=this.props,i=o.routes,a=o.delay,l=void 0===a?1e3:a;if(r){var s=A(e.location);return this.startProgressBar(l),this.previousLocation=A(this.props.location),this.setState({nextRouteHasLoaded:!1}),O(i,s.pathname).then((function(){P.onRouteUpdate({previousLocation:n.previousLocation,location:s}),n.previousLocation=null,n.setState({nextRouteHasLoaded:!0},n.stopProgressBar);var e=s.hash;if(e){var t=e.substring(1),r=document.getElementById(t);r&&r.scrollIntoView()}else window.scrollTo(0,0)})).catch((function(e){return console.warn(e)})),!1}return!!t.nextRouteHasLoaded},n.clearProgressBarTimeout=function(){this.progressBarTimeout&&(clearTimeout(this.progressBarTimeout),this.progressBarTimeout=null)},n.startProgressBar=function(e){var t=this;this.clearProgressBarTimeout(),this.progressBarTimeout=setTimeout((function(){P.onRouteUpdateDelayed({location:A(t.props.location)}),x.a.start()}),e)},n.stopProgressBar=function(){this.clearProgressBarTimeout(),x.a.done()},n.render=function(){var e=this.props,t=e.children,n=e.location;return o.a.createElement(k.d,{location:A(n),render:function(){return t}})},t}(o.a.Component),I=Object(k.o)(N);var L=function(){var e=Object(r.useState)(!1),t=e[0],n=e[1];return Object(r.useEffect)((function(){n(!0)}),[]),o.a.createElement(w.a.Provider,{value:{siteConfig:g.default,siteMetadata:b,globalData:v,isClient:t}},o.a.createElement(I,{routes:m},Object(y.a)(m)))};var j=function(e){if("undefined"==typeof document)return!1;var t=document.createElement("link");try{if(t.relList&&"function"==typeof t.relList.supports)return t.relList.supports(e)}catch(n){return!1}return!1}("prefetch")?function(e){return new Promise((function(t,n){if("undefined"!=typeof document){var r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=t,r.onerror=n,(document.getElementsByTagName("head")[0]||document.getElementsByName("script")[0].parentNode).appendChild(r)}else n()}))}:function(e){return new Promise((function(t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=function(){200===r.status?t():n()},r.send(null)}))},D={};var F=function(e){return new Promise((function(t){D[e]?t():j(e).then((function(){t(),D[e]=!0})).catch((function(){}))}))},M={},z={},U=function(){return!(!("connection"in navigator)||-1===(navigator.connection.effectiveType||"").indexOf("2g")||!navigator.connection.saveData)},B={prefetch:function(e){return!!function(e){return!U()&&!z[e]&&!M[e]}(e)&&(M[e]=!0,Object(C.a)(m,e).reduce((function(e,t){var n=u[t.route.path];if(!n)return e;var r=Object.values(p(n));return e.concat(r)}),[]).forEach((function(e){var t=n.gca(e);t&&!/undefined/.test(t)&&F(t)})),!0)},preload:function(e){return!!function(e){return!U()&&!z[e]}(e)&&(z[e]=!0,O(m,e),!0)}};if(h.a.canUseDOM){window.docusaurus=B;var $=i.hydrate;O(m,window.location.pathname).then((function(){$(o.a.createElement(a.a,null,o.a.createElement(L,null)),document.getElementById("__docusaurus"))}))}},function(e,t,n){"use strict";n.r(t);var r=n(21),o=n(8),i=n(10);(function(e){if(o.a.canUseDOM){var t=i.default.themeConfig.prism,r=(t=void 0===t?{}:t).additionalLanguages,a=void 0===r?[]:r;window.Prism=e,a.forEach((function(e){n(16)("./prism-"+e)})),delete window.Prism}})(r.a)}],[[30,96,0]]]); \ No newline at end of file diff --git a/main.80d465f8.js.LICENSE.txt b/main.80d465f8.js.LICENSE.txt new file mode 100644 index 000000000..89f7db01c --- /dev/null +++ b/main.80d465f8.js.LICENSE.txt @@ -0,0 +1,44 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ + +/** @license React v0.19.1 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v17.0.2 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/runtime~main.e332a604.js b/runtime~main.e332a604.js new file mode 100644 index 000000000..140cb11f4 --- /dev/null +++ b/runtime~main.e332a604.js @@ -0,0 +1 @@ +!function(e){function c(c){for(var d,a,r=c[0],n=c[1],o=c[2],u=0,i=[];u<r.length;u++)a=r[u],Object.prototype.hasOwnProperty.call(b,a)&&b[a]&&i.push(b[a][0]),b[a]=0;for(d in n)Object.prototype.hasOwnProperty.call(n,d)&&(e[d]=n[d]);for(l&&l(c);i.length;)i.shift()();return t.push.apply(t,o||[]),f()}function f(){for(var e,c=0;c<t.length;c++){for(var f=t[c],d=!0,a=1;a<f.length;a++){var r=f[a];0!==b[r]&&(d=!1)}d&&(t.splice(c--,1),e=n(n.s=f[0]))}return e}var d={},a={96:0},b={96:0},t=[];function r(e){return n.p+""+({4:"001c4541",5:"00890c70",6:"01a85c17",7:"0222f66d",8:"04b6fe29",9:"07d09fc8",10:"0acb23d9",11:"0f2ebb41",12:"11a48954",13:"1390700c",14:"17896441",15:"17f45a3e",16:"1be78505",17:"1d70fac3",18:"1e1e6f64",19:"20ec0c56",20:"25f359fe",21:"2b9dda6a",22:"2cb670c2",23:"2e3f99ee",24:"2e549593",25:"301cc83b",26:"36f3e74f",27:"3abaa289",28:"3f24d9c4",29:"43187bfa",30:"47f480c2",31:"54f8a06c",32:"556218c3",33:"59b50206",34:"59c6c071",35:"5c151b87",36:"5c9efad4",37:"5ce478cd",38:"602deefb",39:"625b1ed7",40:"64f9f2ab",41:"6875c492",42:"69aa77ae",43:"6cdb8341",44:"7104d79f",45:"7843e309",46:"78bf585d",47:"7a843a47",48:"7bd79131",49:"7cbe5bda",50:"8070e160",51:"8be40c3a",52:"8c0794ce",53:"8c50fa75",54:"90250b52",55:"96d02e3b",56:"9a2cec18",57:"9b982434",58:"9c1722c2",59:"a09c2993",60:"a460bfa0",61:"a6aa9e1f",62:"algolia",63:"b040a816",64:"b053acf9",65:"b206d805",66:"b79b1c45",67:"b7e9c9e5",68:"beb43c3b",69:"bf71106d",70:"c21ad4a8",71:"c4edeca5",72:"c4f5d8e4",73:"ccc49370",74:"ce17bea9",75:"d3cdf188",76:"d51f62c8",77:"de394ffb",78:"e15c931c",79:"e747ec83",80:"e87dbf8c",81:"e8a1e4f1",82:"e8f4d530",83:"e9c07a87",84:"ead8574c",85:"eb1b3ae9",86:"ebfee794",87:"ec1d14ba",88:"ec7e0abd",89:"eec592a1",90:"ef3b18c7",91:"f1553b0a",92:"f1fe53b2",93:"f4c678d9",94:"f83deafa"}[e]||e)+"."+{1:"bda8eb90",2:"5741a8b9",3:"ec14083e",4:"c5f5acfe",5:"844d6034",6:"fee51e9f",7:"426684e2",8:"ff7c24e5",9:"7dde20ed",10:"da436df9",11:"47bc0d25",12:"2502dd93",13:"2104a6ac",14:"e3fd7c18",15:"ef8fed6b",16:"f9975dfd",17:"6f4d1f4d",18:"8ae6d74b",19:"76971a69",20:"1a365705",21:"cdc0f14d",22:"c99d393f",23:"170f6d15",24:"4368ef76",25:"034f9ca9",26:"e7271484",27:"2ef0af65",28:"1b3c957a",29:"aa81678a",30:"ff7f0714",31:"285d7779",32:"39bcd7f7",33:"239ae4a1",34:"0b3e61b0",35:"725b8036",36:"1ae929c0",37:"68dd9400",38:"a9498399",39:"aab13bb1",40:"f9026e24",41:"aeafad51",42:"286f198b",43:"e1707401",44:"c19d2d43",45:"4e789bea",46:"e8b668a9",47:"8d2eaf02",48:"318ebf84",49:"0ec15956",50:"37d31ee5",51:"ebcd00be",52:"0049b63e",53:"09c7e3cd",54:"45e95ebf",55:"cde96db9",56:"9d5c815b",57:"137d2634",58:"5a8aa826",59:"ce5afd31",60:"cd41f0a5",61:"5d6e53ff",62:"8bc702d5",63:"1aa1828d",64:"6826653d",65:"f32551bb",66:"ea7246d5",67:"ce4e4c5e",68:"7790bcf3",69:"9ca91f24",70:"264c6c7b",71:"fa53fa2f",72:"4577a6b9",73:"edf5372d",74:"35e7cd94",75:"5edfe6c0",76:"1d611e3d",77:"51c44474",78:"1a35e8ca",79:"c4d1c38e",80:"0083447a",81:"d2da9e7b",82:"051c3b8b",83:"28131379",84:"ea97e7dc",85:"1cfa3cc3",86:"8a973fa5",87:"aba8be5c",88:"51dad4ab",89:"950bbb08",90:"14de2969",91:"aa4b7283",92:"3d1a7cfb",93:"1aa34695",94:"f9724df8",97:"18698cea",98:"7e7109fb",99:"28207fcd"}[e]+".js"}function n(c){if(d[c])return d[c].exports;var f=d[c]={i:c,l:!1,exports:{}};return e[c].call(f.exports,f,f.exports,n),f.l=!0,f.exports}n.e=function(e){var c=[];a[e]?c.push(a[e]):0!==a[e]&&{62:1}[e]&&c.push(a[e]=new Promise((function(c,f){for(var d=({4:"001c4541",5:"00890c70",6:"01a85c17",7:"0222f66d",8:"04b6fe29",9:"07d09fc8",10:"0acb23d9",11:"0f2ebb41",12:"11a48954",13:"1390700c",14:"17896441",15:"17f45a3e",16:"1be78505",17:"1d70fac3",18:"1e1e6f64",19:"20ec0c56",20:"25f359fe",21:"2b9dda6a",22:"2cb670c2",23:"2e3f99ee",24:"2e549593",25:"301cc83b",26:"36f3e74f",27:"3abaa289",28:"3f24d9c4",29:"43187bfa",30:"47f480c2",31:"54f8a06c",32:"556218c3",33:"59b50206",34:"59c6c071",35:"5c151b87",36:"5c9efad4",37:"5ce478cd",38:"602deefb",39:"625b1ed7",40:"64f9f2ab",41:"6875c492",42:"69aa77ae",43:"6cdb8341",44:"7104d79f",45:"7843e309",46:"78bf585d",47:"7a843a47",48:"7bd79131",49:"7cbe5bda",50:"8070e160",51:"8be40c3a",52:"8c0794ce",53:"8c50fa75",54:"90250b52",55:"96d02e3b",56:"9a2cec18",57:"9b982434",58:"9c1722c2",59:"a09c2993",60:"a460bfa0",61:"a6aa9e1f",62:"algolia",63:"b040a816",64:"b053acf9",65:"b206d805",66:"b79b1c45",67:"b7e9c9e5",68:"beb43c3b",69:"bf71106d",70:"c21ad4a8",71:"c4edeca5",72:"c4f5d8e4",73:"ccc49370",74:"ce17bea9",75:"d3cdf188",76:"d51f62c8",77:"de394ffb",78:"e15c931c",79:"e747ec83",80:"e87dbf8c",81:"e8a1e4f1",82:"e8f4d530",83:"e9c07a87",84:"ead8574c",85:"eb1b3ae9",86:"ebfee794",87:"ec1d14ba",88:"ec7e0abd",89:"eec592a1",90:"ef3b18c7",91:"f1553b0a",92:"f1fe53b2",93:"f4c678d9",94:"f83deafa"}[e]||e)+"."+{1:"31d6cfe0",2:"31d6cfe0",3:"31d6cfe0",4:"31d6cfe0",5:"31d6cfe0",6:"31d6cfe0",7:"31d6cfe0",8:"31d6cfe0",9:"31d6cfe0",10:"31d6cfe0",11:"31d6cfe0",12:"31d6cfe0",13:"31d6cfe0",14:"31d6cfe0",15:"31d6cfe0",16:"31d6cfe0",17:"31d6cfe0",18:"31d6cfe0",19:"31d6cfe0",20:"31d6cfe0",21:"31d6cfe0",22:"31d6cfe0",23:"31d6cfe0",24:"31d6cfe0",25:"31d6cfe0",26:"31d6cfe0",27:"31d6cfe0",28:"31d6cfe0",29:"31d6cfe0",30:"31d6cfe0",31:"31d6cfe0",32:"31d6cfe0",33:"31d6cfe0",34:"31d6cfe0",35:"31d6cfe0",36:"31d6cfe0",37:"31d6cfe0",38:"31d6cfe0",39:"31d6cfe0",40:"31d6cfe0",41:"31d6cfe0",42:"31d6cfe0",43:"31d6cfe0",44:"31d6cfe0",45:"31d6cfe0",46:"31d6cfe0",47:"31d6cfe0",48:"31d6cfe0",49:"31d6cfe0",50:"31d6cfe0",51:"31d6cfe0",52:"31d6cfe0",53:"31d6cfe0",54:"31d6cfe0",55:"31d6cfe0",56:"31d6cfe0",57:"31d6cfe0",58:"31d6cfe0",59:"31d6cfe0",60:"31d6cfe0",61:"31d6cfe0",62:"f375e564",63:"31d6cfe0",64:"31d6cfe0",65:"31d6cfe0",66:"31d6cfe0",67:"31d6cfe0",68:"31d6cfe0",69:"31d6cfe0",70:"31d6cfe0",71:"31d6cfe0",72:"31d6cfe0",73:"31d6cfe0",74:"31d6cfe0",75:"31d6cfe0",76:"31d6cfe0",77:"31d6cfe0",78:"31d6cfe0",79:"31d6cfe0",80:"31d6cfe0",81:"31d6cfe0",82:"31d6cfe0",83:"31d6cfe0",84:"31d6cfe0",85:"31d6cfe0",86:"31d6cfe0",87:"31d6cfe0",88:"31d6cfe0",89:"31d6cfe0",90:"31d6cfe0",91:"31d6cfe0",92:"31d6cfe0",93:"31d6cfe0",94:"31d6cfe0",97:"31d6cfe0",98:"31d6cfe0",99:"31d6cfe0"}[e]+".css",b=n.p+d,t=document.getElementsByTagName("link"),r=0;r<t.length;r++){var o=(i=t[r]).getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(o===d||o===b))return c()}var u=document.getElementsByTagName("style");for(r=0;r<u.length;r++){var i;if((o=(i=u[r]).getAttribute("data-href"))===d||o===b)return c()}var l=document.createElement("link");l.rel="stylesheet",l.type="text/css",l.onload=c,l.onerror=function(c){var d=c&&c.target&&c.target.src||b,t=new Error("Loading CSS chunk "+e+" failed.\n("+d+")");t.code="CSS_CHUNK_LOAD_FAILED",t.request=d,delete a[e],l.parentNode.removeChild(l),f(t)},l.href=b,document.getElementsByTagName("head")[0].appendChild(l)})).then((function(){a[e]=0})));var f=b[e];if(0!==f)if(f)c.push(f[2]);else{var d=new Promise((function(c,d){f=b[e]=[c,d]}));c.push(f[2]=d);var t,o=document.createElement("script");o.charset="utf-8",o.timeout=120,n.nc&&o.setAttribute("nonce",n.nc),o.src=r(e);var u=new Error;t=function(c){o.onerror=o.onload=null,clearTimeout(i);var f=b[e];if(0!==f){if(f){var d=c&&("load"===c.type?"missing":c.type),a=c&&c.target&&c.target.src;u.message="Loading chunk "+e+" failed.\n("+d+": "+a+")",u.name="ChunkLoadError",u.type=d,u.request=a,f[1](u)}b[e]=void 0}};var i=setTimeout((function(){t({type:"timeout",target:o})}),12e4);o.onerror=o.onload=t,document.head.appendChild(o)}return Promise.all(c)},n.m=e,n.c=d,n.d=function(e,c,f){n.o(e,c)||Object.defineProperty(e,c,{enumerable:!0,get:f})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,c){if(1&c&&(e=n(e)),8&c)return e;if(4&c&&"object"==typeof e&&e&&e.__esModule)return e;var f=Object.create(null);if(n.r(f),Object.defineProperty(f,"default",{enumerable:!0,value:e}),2&c&&"string"!=typeof e)for(var d in e)n.d(f,d,function(c){return e[c]}.bind(null,d));return f},n.n=function(e){var c=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(c,"a",c),c},n.o=function(e,c){return Object.prototype.hasOwnProperty.call(e,c)},n.p="/docs/",n.gca=function(e){return r(e={17896441:"14","001c4541":"4","00890c70":"5","01a85c17":"6","0222f66d":"7","04b6fe29":"8","07d09fc8":"9","0acb23d9":"10","0f2ebb41":"11","11a48954":"12","1390700c":"13","17f45a3e":"15","1be78505":"16","1d70fac3":"17","1e1e6f64":"18","20ec0c56":"19","25f359fe":"20","2b9dda6a":"21","2cb670c2":"22","2e3f99ee":"23","2e549593":"24","301cc83b":"25","36f3e74f":"26","3abaa289":"27","3f24d9c4":"28","43187bfa":"29","47f480c2":"30","54f8a06c":"31","556218c3":"32","59b50206":"33","59c6c071":"34","5c151b87":"35","5c9efad4":"36","5ce478cd":"37","602deefb":"38","625b1ed7":"39","64f9f2ab":"40","6875c492":"41","69aa77ae":"42","6cdb8341":"43","7104d79f":"44","7843e309":"45","78bf585d":"46","7a843a47":"47","7bd79131":"48","7cbe5bda":"49","8070e160":"50","8be40c3a":"51","8c0794ce":"52","8c50fa75":"53","90250b52":"54","96d02e3b":"55","9a2cec18":"56","9b982434":"57","9c1722c2":"58",a09c2993:"59",a460bfa0:"60",a6aa9e1f:"61",algolia:"62",b040a816:"63",b053acf9:"64",b206d805:"65",b79b1c45:"66",b7e9c9e5:"67",beb43c3b:"68",bf71106d:"69",c21ad4a8:"70",c4edeca5:"71",c4f5d8e4:"72",ccc49370:"73",ce17bea9:"74",d3cdf188:"75",d51f62c8:"76",de394ffb:"77",e15c931c:"78",e747ec83:"79",e87dbf8c:"80",e8a1e4f1:"81",e8f4d530:"82",e9c07a87:"83",ead8574c:"84",eb1b3ae9:"85",ebfee794:"86",ec1d14ba:"87",ec7e0abd:"88",eec592a1:"89",ef3b18c7:"90",f1553b0a:"91",f1fe53b2:"92",f4c678d9:"93",f83deafa:"94"}[e]||e)},n.oe=function(e){throw console.error(e),e};var o=window.webpackJsonp=window.webpackJsonp||[],u=o.push.bind(o);o.push=c,o=o.slice();for(var i=0;i<o.length;i++)c(o[i]);var l=u;f()}([]); \ No newline at end of file diff --git a/search-doc.json b/search-doc.json new file mode 100644 index 000000000..4308eeef5 --- /dev/null +++ b/search-doc.json @@ -0,0 +1 @@ +[{"title":"Never Gonna Give You Up","type":0,"sectionRef":"#","url":"blog/Welcome","content":"We're no strangers to love You know the rules and so do I A full commitment's what I'm thinking of You wouldn't get this from any other guy I just wanna tell you how I'm feeling Gotta make you understand Never gonna give you up Never gonna let you down Never gonna run around and desert you Never gonna make you cry Never gonna say goodbye Never gonna tell a lie and hurt you We've known each other for so long Your heart's been aching but you're too shy to say it Inside we both know what's been going on We know the game and we're gonna play it And if you ask me how I'm feeling Don't tell me you're too blind to see Never gonna give you up Never gonna let you down Never gonna run around and desert you Never gonna make you cry Never gonna say goodbye Never gonna tell a lie and hurt you Never gonna give you up Never gonna let you down Never gonna run around and desert you Never gonna make you cry Never gonna say goodbye Never gonna tell a lie and hurt you (Ooh, give you up) (Ooh, give you up) (Ooh) Never gonna give, never gonna give (Give you up) (Ooh) Never gonna give, never gonna give (Give you up) We've known each other for so long Your heart's been aching but you're too shy to say it Inside we both know what's been going on We know the game and we're gonna play it I just wanna tell you how I'm feeling Gotta make you understand Never gonna give you up Never gonna let you down Never gonna run around and desert you Never gonna make you cry Never gonna say goodbye Never gonna tell a lie and hurt you Never gonna give you up Never gonna let you down Never gonna run around and desert you Never gonna make you cry Never gonna say goodbye Never gonna tell a lie and hurt you Never gonna give you up Never gonna let you down Never gonna run around and desert you Never gonna make you cry Never gonna say goodbye Never gonna tell a lie and hurt you","keywords":""},{"title":"Welcome","type":0,"sectionRef":"#","url":"docs/","content":"","keywords":""},{"title":"Welcome to Leaf's Documentation!","type":1,"pageTitle":"Welcome","url":"docs/#welcome-to-leafs-documentation","content":"Developers use Leaf's API to access clean, standardized, and aggregated Farm data from all major food & agriculture brands. Please see the Quickstart section to get started with sample farm data & popular use cases. We have implementation examples in cURL, NodeJS and Python! Getting Started Leaf's API abstracts and standardizes across agricultural data sources so you can focus on building value with farm data. There are just a few concepts that you need to get started and we provide sample data within new Leaf accounts to help you learn quickly. "},{"title":"Authentication Alerts","type":0,"sectionRef":"#","url":"docs/alerts_authentication","content":"It’s very important to confirm that requests received on your webhook are sent from Leaf, to avoid IP spoofing attacks. To this end, you should verify webhook signatures. Leaf generates signatures using a hash-based message authentication code (HMAC) with SHA-256, and the secret specified when you created the alerts' configuration as the HMAC key. Be careful with deserialization of the request body when using it to verify the signature. It's recommended that you get the request body as bytes. The signed content has no line breaks, it's a string of the raw JSON with white-spaces after “:” and “,”. The digest is added to the X-Leaf-Signature header encoded in base 64. Here is an example on how to verify the request in your webhook: PythonJava Copy import hmac import base64 # Sign the request body received with your secret expected_sig = hmac.digest(msg=request_body_bytes, key=bytes('your secret', 'utf-8'), digest='sha256') # Decode the X-Leaf-Signature header that is encoded in base 64 request_sig = base64.b64decode(sig_header) # Compare both hmac.compare_digest(expected_sig, request_sig)","keywords":""},{"title":"Alerts Endpoints","type":0,"sectionRef":"#","url":"docs/alerts_endpoints","content":"","keywords":""},{"title":"Create a webhook","type":1,"pageTitle":"Alerts Endpoints","url":"docs/alerts_endpoints#create-a-webhook","content":" POST /webhooks Creates a webhook resource, specifying which events you want to be notified about and where (server URL). The webhook will begin receiving events immediately after it is created. It's not possible to create different webhooks that listen to the same events. For example, if you have already registered a webhook listening for newSatelliteImagesand try to register another one, you'll get a 400 response with error eventRegisteredTwice. Request body# Parameter\tType\tDescriptionevents\tenum name of the event type\tThey are defined in the \"Events\" section of the services chapters (e.g. newSatelliteImage) name\tstring\tThe name of your webhook secret\tstring\tThe secret used for HMAC authentication. We sign payload with this secret. See more here url\ta valid HTTP URL string\tThe address of your webhook server The allowed keys to be filled in events are: credentialsLimitedPermission, credentialsUnauthenticated, fieldCreated, fieldBoundaryCreated, fieldBoundaryUpdated, uploadedFileProcessingFinished, uploadedFileProcessingFailed, providerFileProcessingFinished, providerFileProcessingFailed, mergedFileProcessingFinished, mergedFileProcessingFailed, automergedFileProcessingFinished, automergedFileProcessingFailed, operationCreated, operationUpdated, operationProcessingFinished, newSatelliteImage, machineCreated, machineUpdated, machineDeleted To see the detailed description of each of these events, click here. Example in JSON: Copy { \"events\": [ \"newSatelliteImage\" ], \"name\": \"Satellite images listener\", \"secret\": \"mRyT257XpFWX\", \"url\": \"https://yourwebhook.com/leaf/satellite\" } Request example# cURLPythonJavaScript Copy curl -X POST \\ -H 'Content-Type: application/json' \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d 'Your paylaod as specified above' 'https://api.withleaf.io/services/alerts/api/alerts/webhooks' Response# It returns a JSON containing information about the webhook created. Copy { \"id\": \"UUID\", \"events\": [ \"newSatelliteImage\" ], \"name\": \"Satellite images listener\", \"secret\": \"mRyT257XpFWX\", \"url\": \"https://agtech.com/leaf/satellite\" } If you need to test your endpoint, here is a request example so you can simulate the validation Leaf will do. cURLPythonJavaScript Copy curl -X POST \\ -H 'Content-Type: application/json' \\ -H 'accept: */*' \\ -d '{\"message\" : \"confirmation of webhook upon registration\"}' 'your-webhook-url' "},{"title":"Get a webhook","type":1,"pageTitle":"Alerts Endpoints","url":"docs/alerts_endpoints#get-a-webhook","content":" GET /webhooks/{id} Retrieve a specific webhook resource by its id. Request example# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/alerts/api/alerts/webhooks/{id}' Response# Copy { \"id\": \"UUID\", \"events\": [ \"newSatelliteImage\" ], \"secret\": \"mRyT257XpFWX\", \"name\": \"Satellite images listener\", \"url\": \"https://agtech.com/leaf/satellite\" } "},{"title":"Get all webhooks","type":1,"pageTitle":"Alerts Endpoints","url":"docs/alerts_endpoints#get-all-webhooks","content":" GET /webhooks Retrieve all Webhooks. Request example# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/alerts/api/alerts/webhooks' Response# It returns a list of JSON objects. Copy [{ \"id\": \"UUID\", \"events\": [ \"newSatelliteImage\" ], \"secret\": \"mRyT257XpFWX\", \"name\": \"Satellite images listener\", \"url\": \"https://agtech.com/leaf/satellite\" }] "},{"title":"Get failed calls for webhooks","type":1,"pageTitle":"Alerts Endpoints","url":"docs/alerts_endpoints#get-failed-calls-for-webhooks","content":" GET /webhooks/failed-calls Retrieve all failed calls for webhooks. Request example# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/alerts/api/alerts/webhooks/failed-calls' Response# It returns a list of JSON objects. Copy { \"items\": [ { \"apiOwner\": \"yourApiOwner\", \"createdAt\": \"2023-04-21T12:16:30Z\", \"url\": \"https://webhook.site/{{uuid}}\", \"status\": 502, \"response\": \"<html>\\r\\n<head><title>502 Bad Gateway\\r\\n\\r\\n

502 Bad Gateway

\\r\\n
nginx
\\r\\n\\r\\n\\r\\n\", \"requestBody\": \"{\\\"leafUserId\\\": \\\"uuid\\\", \\\"fileId\\\": \\\"uuid\\\", \\\"type\\\": \\\"automergedFileProcessingFinished\\\", \\\"timestamp\\\": \\\"2023-04-21T12:16:27.997586Z\\\"}\" }, { \"apiOwner\": \"yourApiOwner\", \"createdAt\": \"2023-04-24T18:35:53Z\", \"url\": \"https://webhook.site/{{uuid}}\", \"status\": 502, \"response\": \"\\r\\n502 Bad Gateway\\r\\n\\r\\n

502 Bad Gateway

\\r\\n
nginx
\\r\\n\\r\\n\\r\\n\", \"requestBody\": \"{\\\"leafUserId\\\": \\\"uuid\\\", \\\"fileId\\\": \\\"uuid\\\", \\\"type\\\": \\\"automergedFileProcessingFinished\\\", \\\"timestamp\\\": \\\"2023-04-24T18:35:52.187785Z\\\"}\" }, { \"apiOwner\": \"yourApiOwner\", \"createdAt\": \"2023-04-24T18:35:53Z\", \"url\": \"https://flamboyant-flower-64651.pktriot.net/\", \"requestBody\": \"{\\\"source\\\": \\\"SYNC\\\", \\\"leafUserId\\\": \\\"ff044168-45aa-00d8-8b7e-8632d5c23616\\\", \\\"fieldId\\\": \\\"ed080ca3-69fe-365c-972f-a0d000fe7c0e\\\", \\\"type\\\": \\\"fieldCreated\\\", \\\"timestamp\\\": \\\"2023-04-24T18:35:53Z\\\"}\", \"connectionError\": \"ConnectionError: HTTPSConnectionPool(host='flamboyant-flower-64651.pktriot.net', port=443): Max retries exceeded with url: / (Caused by ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')))\" } ] } "},{"title":"Delete a webhook","type":1,"pageTitle":"Alerts Endpoints","url":"docs/alerts_endpoints#delete-a-webhook","content":" DELETE /webhooks/{id} Delete a specific Webhook resource by its id. Returns 204 status code if the delete succeeded. Warning If you delete a Webhook resource, we no longer will send you the events the webhook listens to. Request example# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/alerts/api/alerts/webhooks/{id}' "},{"title":"List of Events","type":0,"sectionRef":"#","url":"docs/alerts_events","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#about","content":"This section describes all types of events generated by Leaf and their respective formats. The types of events are grouped by the services that produce it. Below is a summary: Service\tAvailable EventsAlert Events\tWebhook registered Credentials Alerts\tCredentials missing permission, credentials unauthenticated Field Events\tNew field, New Merged Field, Merged field updated Field Boundary Events\tField boundary created, field boundary updated Manual File Upload Events\tUploaded file processing finished, uploaded file processing failed Machine File Conversion Events\tProvider file processing finished, provider file processing failed Operation Events\tMerged file processing finished, merged file processing failed, automerged file processing finished, automerged file processing failed, operation created, operation updated, operation processing finished. Crop Monitoring Events\tNew satellite image Assets (Beta) Events\tNew machine, deleted machine, updated machine, new implement, updated implement "},{"title":"Alert Events","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#alert-events","content":""},{"title":"Webhook registered","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#webhook-registered","content":"When a new webhook is registered you will receive a one time success message in the below format: Copy { \"message\": \"confirmation of webhook upon registration\" } "},{"title":"Credentials Alerts","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#credentials-alerts","content":""},{"title":"Credentials Missing Permission","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#credentials-missing-permission","content":"Event for when the provided credentials don't have enough permissions to do the actions you are trying to. Alerts for this event are in the following format: Copy { \"credential\": \"the client identification\", \"provider\": \"the provider from the credential\", \"credentialId\": \"the credential id\", \"message\": \"message from the alert\", \"status\": \"the new status of the credential\", \"type\": \"credentialsLimitedPermission\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\" } "},{"title":"Credentials Unauthenticated","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#credentials-unauthenticated","content":"Event for when the credentials are no longer valid. Alerts for this event are in the following format: Copy { \"credential\": \"the client identification\", \"provider\": \"the provider from the credential\", \"credentialId\": \"the credential id\", \"message\": \"message from the alert\", \"status\": \"the new status of the credential\", \"type\": \"credentialsUnauthenticated\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\" } "},{"title":"Field Events","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#field-events","content":""},{"title":"New Field","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#new-field","content":"Event for when a new field is created either in a connected provider account or directly within Leaf. Alerts for this event are in the following format: Copy { \"source\": \"SYNC\", \"leafUserId\": \"the id of the file owner\", \"fieldId\": \"the id of the created field\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"type\": \"fieldCreated\" } "},{"title":"New Merged Field","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#new-merged-field","content":"Event for when a new merged field is created. The creation of a merged field depends of the fieldsAutoSync and fieldsMergeIntersection configurations. Alerts for this event are in the following format: Copy { \"source\": \"REST\", \"leafUserId\": \"the id of the file owner\", \"fieldId\": \"the id of the created field\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"type\": \"mergedFieldCreated\" } "},{"title":"Merged Field updated","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#merged-field-updated","content":"Event for when a merged field is updated due to the geometry update of one of the fields used to create the merged field. Alerts for this event are in the following format: Copy { \"source\": \"REST\", \"leafUserId\": \"the id of the file owner\", \"fieldId\": \"the id of the created field\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"type\": \"mergedFieldUpdated\" } "},{"title":"Field Boundary Events","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#field-boundary-events","content":""},{"title":"Field Boundary Created","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#field-boundary-created","content":"Event for when a fieldBoundary is created. Alerts for this event are in the following format: Copy { \"boundaryId\": \"the id of the created field boundary\", \"leafUserId\": \"the id of the file owner\", \"fieldId\": \"the field related to the created field boundary\", \"type\": \"fieldBoundaryCreated\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\" } "},{"title":"Field Boundary Updated","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#field-boundary-updated","content":"Event for when a fieldBoundary is updated. Alerts for this event are in the following format: Copy { \"boundaryId\": \"the id of the updated field boundary\", \"leafUserId\": \"the id of the file owner\", \"fieldId\": \"the field related to the updated field boundary\", \"type\": \"fieldBoundaryUpdated\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\" } "},{"title":"Manual File Upload Events","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#manual-file-upload-events","content":""},{"title":"Uploaded File Processing Finished","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#uploaded-file-processing-finished","content":"Event for when all steps of the processing of a machine operations file that was uploaded to Leaf are finished. This event can be useful to trigger a procedure that fetches the file from the API. This event can be used to activate a procedure that fetches the file from the api, since processing the file may take some time. Alerts for this event are in the following format: Copy { \"fileId\": \"the id of the uploaded file\", \"leafUserId\": \"the id of the file owner\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"type\": \"uploadedFileProcessingFinished\" } "},{"title":"Uploaded File Processing Failed","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#uploaded-file-processing-failed","content":"Event for when the processing of an operations file that was uploaded to Leaf is finished but failed in one or more of the processing steps. This event can be useful for identifying files that have failed and are no longer being processed. Alerts for this event are in the following format: Copy { \"fileId\": \"the id of the uploaded file\", \"leafUserId\": \"the id of the file owner\", \"message\": \"details of what happened. May be empty\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"type\": \"uploadedFileProcessingFailed\" } "},{"title":"Machine File Conversion Events","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#machine-file-conversion-events","content":""},{"title":"Provider File Processing Finished","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#provider-file-processing-finished","content":"Event for when the processing of an operations file from a provider (either uploaded to provider manually or via Wireless Data Transfer) has successfully finished processing. This event can be useful for identifying new files when they are available. Alerts for this event are in the following format: Copy { \"fileId\": \"the id of the uploaded file\", \"leafUserId\": \"the id of the file owner\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"type\": \"providerFileProcessingFinished\" } "},{"title":"Provider File Processing Failed","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#provider-file-processing-failed","content":"Event for when the processing of an operations file from a provider (either uploaded to provider manually or via Wireless Data Transfer) is finished processing but failed in one or more of the processing steps. This event can be useful for identifying files that have failed and are no longer being processed. Alerts for this event are in the following format: Copy { \"fileId\": \"the id of the uploaded file\", \"leafUserId\": \"the id of the file owner\", \"message\": \"details of what happened. May be empty\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"type\": \"providerFileProcessingFailed\" } "},{"title":"Operation Events","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#operation-events","content":""},{"title":"Merged File Processing Finished","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#merged-file-processing-finished","content":"Event for when the processing of a merged operation file has successfully finished processing. This event can be useful for identifying new merged files when they are available. Alerts for this event are in the following format: Copy { \"fileId\": \"the id of the uploaded file\", \"leafUserId\": \"the id of the file owner\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"type\": \"mergedFileProcessingFinished\" } "},{"title":"Merged File Processing Failed","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#merged-file-processing-failed","content":"Event for when the processing of a merged operation file is finished processing but failed in one or more of the processing steps. This event can be useful for identifying merged files that have failed and are no longer being processed. Alerts for this event are in the following format: Copy { \"fileId\": \"the id of the uploaded file\", \"leafUserId\": \"the id of the file owner\", \"message\": \"details of what happened. May be empty\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"type\": \"mergedFileProcessingFailed\" } "},{"title":"Automerged File Processing Finished","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#automerged-file-processing-finished","content":"Event for when the processing of an automerged operation file has successfully finished processing. This event can be useful for identifying new automerged files when they are available. Alerts for this event are in the following format: Copy { \"fileId\": \"the id of the uploaded file\", \"leafUserId\": \"the id of the file owner\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"type\": \"automergedFileProcessingFinished\" } "},{"title":"Automerged File Processing Failed","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#automerged-file-processing-failed","content":"Event for when the processing of an automerged operation file is finished processing but failed in one or more of the processing steps. This event can be useful for identifying automerged files that have failed and are no longer being processed. Alerts for this event are in the following format: Copy { \"fileId\": \"the id of the uploaded file\", \"leafUserId\": \"the id of the file owner\", \"message\": \"details of what happened. May be empty\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"type\": \"automergedFileProcessingFailed\" } "},{"title":"Operation created","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#operation-created","content":"Event for when an operation is successfully created. This event can be useful for identifying new operations when they are available. When sending this event, operation resources such as summary, images and units will probably not be complete. Alerts for this event are in the following format: Copy { \"operationId\": \"the id of the operation created\", \"leafUserId\": \"the id of the file owner\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"type\": \"operationCreated\" } "},{"title":"Operation updated","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#operation-updated","content":"Event for when an operation has updated. This event can be useful for identifying changes to operations. Alerts for this event are in the following format: Copy { \"operationId\": \"the id of the operation uploaded\", \"leafUserId\": \"the id of the file owner\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"type\": \"operationUpdated\" } "},{"title":"Operation Processing Finished","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#operation-processing-finished","content":"Event when a Field Operation has successfully finished. This event could be useful for fetching the resources of an operation such as images, summary and units. Alerts for this event are in the following format: Copy { \"operationId\": \"the id of the operation uploaded\", \"leafUserId\": \"the id of the file owner\", \"type\": \"operationProcessingFinished\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\" } "},{"title":"Crop Monitoring Events","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#crop-monitoring-events","content":""},{"title":"New Satellite Image","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#new-satellite-image","content":"This event happens when we finish processing a new satellite image for a monitored field. It can be useful for searching only the new and latest images available in our API. Alerts for this event are in the following format: Copy { \"externalId\": \"the external id of the monitored field\", \"processId\": \"the id of the process containing new images\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\", \"type\": \"newSatelliteImage\" } "},{"title":"Assets (Beta) Events","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#assets-beta-events","content":""},{"title":"New Machine","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#new-machine","content":"This event happens when a new machine is created, either from operations files, or from provider data sync, or created by the user. Alerts for this event are in the following format: Copy { \"type\": \"machineCreated\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\", \"machineId\": \"the id of the new machine\", \"leafUserId\": \"the id of the file owner\" } "},{"title":"Updated Machine","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#updated-machine","content":"This event happens when a machine is updated, either from operations files, or from provider data sync, or by the user. Alerts for this event are in the following format: Copy { \"type\": \"machineUpdated\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\", \"machineId\": \"the id of the machine uploaded\", \"leafUserId\": \"the id of the file owner\" } "},{"title":"Deleted Machine","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#deleted-machine","content":"This event happens when a machine is deleted by the user. Alerts for this event are in the following format: Copy { \"type\": \"machineDeleted\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\", \"machineId\": \"the id of the machine deleted\", \"leafUserId\": \"the id of the file owner\" } "},{"title":"New Implement","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#new-implement","content":"This event happens when a new implement is created from provider data sync. Alerts for this event are in the following format: Copy { \"type\": \"implementCreated\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\", \"implementId\": \"the id of the new implement\", \"leafUserId\": \"the id of the leaf user owner\" } "},{"title":"Updated Implement","type":1,"pageTitle":"List of Events","url":"docs/alerts_events#updated-implement","content":"This event happens when a implement is updated from provider data sync. Alerts for this event are in the following format: Copy { \"type\": \"implementUpdated\", \"timestamp\": \"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\", \"implementId\": \"the id of the implement uploaded\", \"leafUserId\": \"the id of the leaf user owner\" } "},{"title":"Alerts Overview","type":0,"sectionRef":"#","url":"docs/alerts_overview","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Alerts Overview","url":"docs/alerts_overview#about","content":"With Alerts you can be notified when something happens or changes instead of needing to repeatedly query for changes. Leaf Alerts support events that happen within Leaf and events that happen within supported 3rd party software. Webhooks are user-defined HTTP callbacks. You send us a server URL (the address of the callback) specifying what things you want to know about so when they do happen, we tell you on that URL, by means of a HTTP request. Those things are called \"events\", for example: \"there's a new satellite image\", \"the processing of an operations file finished\", or \"these credentials expired\". The following image shows how events are sent to your webhook. On the left, its the representation of a webhook registration. On the right, a satellite image is processed at any time, then the webhooks system sends a POST request to the registered webhook. Check the \"Overview\" page of a specific service, section \"Events\", to know what events from that service are available to webhooks. See the Alerts API Reference for information on how to register, get and delete webhooks. To understand how to verify if an incoming request comes from Leaf, see the Authentication section. "},{"title":"Authentication","type":0,"sectionRef":"#","url":"docs/authentication","content":"To access our API, you first have to register using this link. After confirming your email, you will be able to request a token (JWT) through this endpoint: Copy https://api.withleaf.io/api/authenticate Request examples cURLPythonJavaScript Copy curl -X POST \\ -H 'Content-Type: application/json' \\ -d '{ \"username\":\"username\", \"password\":\"password\", \"rememberMe\":\"true\" }' \\ 'https://api.withleaf.io/api/authenticate' Response This request will return your access token to Leaf's API: Copy { \"id_token\" : \"YOUR_LEAF_TOKEN\" } All set! Include this token in your API calls and you will have access to Leaf's API. Note: Your Leaf Token lasts for 30 days with \"rememberMe\": \"true\" in the json. If you want it to last only 24 hours, set \"rememberMe\" to \"false\".After expiration, just make the same request to the same endpoint and you will get a new access token. ","keywords":""},{"title":"Beta Features Overview","type":0,"sectionRef":"#","url":"docs/beta_features_overview","content":"","keywords":""},{"title":"Machines","type":1,"pageTitle":"Beta Features Overview","url":"docs/beta_features_overview#machines","content":"This product fetches and stores machine data such as serial number, fuel consumption and start/stop time from providers. Currently, we are obtaining data from the following providers: CNHIJohnDeereStara Implement Data Copy Implement Data is only available for customers with John Deere credentials "},{"title":"Prescriptions","type":1,"pageTitle":"Beta Features Overview","url":"docs/beta_features_overview#prescriptions","content":"What are prescriptions in agriculture? Prescriptions are usually used to apply inputs at variable rates across a field, applying only the amount needed for each area. For example, a prescription could be based on soil sample results or crop monitoring data, and instructs a machine where to best distribute lime, potassium or other products that can improve soil quality or crop health. Leaf helps organize the data flow for prescriptions. Our supported providers are: ClimateFieldViewJohn DeereRaven SlingshotCNHI Note: The prescription should be included as a zip file containing a valid shapefile with least three file extentions (shp, dbf and shx) with the same naming. "},{"title":"Layers","type":1,"pageTitle":"Beta Features Overview","url":"docs/beta_features_overview#layers","content":"You can now get layers (e.g. tassel count, stand count, NVDI, and RGB) via Leaf’s Sentera integration. Layers are used to display crop monitoring information geospatially on a farm map so that any variance in a crop can be visualized, usually at a field level. Our supported providers are: Sentera "},{"title":"Input","type":1,"pageTitle":"Beta Features Overview","url":"docs/beta_features_overview#input","content":"This resource will search, in the operation's files, varieties of harvested/planted crops and applied products and store this data. For products, data from Agrian and CDMS will also be made available globally, so that all customers can access it. "},{"title":"Beta > Assets Endpoints","type":0,"sectionRef":"#","url":"docs/beta_assets_endpoints","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Beta > Assets Endpoints","url":"docs/beta_assets_endpoints#about","content":"All HTTP methods should be prepended by this service's endpoint: Copy https://api.withleaf.io/services/beta/api See below the REST resources and their endpoints available in this service. "},{"title":"Assets (BETA)","type":1,"pageTitle":"Beta > Assets Endpoints","url":"docs/beta_assets_endpoints#assets-beta","content":"This feature has the following endpoints available: Description\tEndpointsGet all machines\tGET /users/{leafUserId}/machines Get a machine\tGET /users/{leafUserId}/machines/{machineId} Get machine files\tGET /users/{leafUserId}/machines/{machineId}/files Create a machine\tPOST /users/{leafUserId}/machines Update a machine\tPATCH /users/{leafUserId}/machines/{machineId} Delete a machine\tDELETE /users/{leafUserId}/machines/{machineId} Get all implements\tGET /users/{leafUserId}/implements Get an implement\tGET /users/{leafUserId}/implements/{implementId} Get all operators\tGET /users/{leafUserId}/operators Get an operator\tGET /users/{leafUserId}/operators/{operatorId} "},{"title":"Get all machines","type":1,"pageTitle":"Beta > Assets Endpoints","url":"docs/beta_assets_endpoints#get-all-machines","content":" GET /users/{leafUserId}/machines Get the list of machines that are related to a given LeafUserId. Some fields can be sent as query parameters to filter the machines, such as: Parameter (to filter by)\tValuesname\tmachine name provider\tJohnDeere, Stara and CNHI providerOrganizationId\tprovider side organization id serialNumber\tmachine serial number originType\tspecify the origin of the machine, must be either USER_CREATED, FILE_POOLED or PROVIDER_POOLED createdTime\tmust match exactly the time of the record creation, ISO 8601 without timezone beforeCreatedTime\tfilters for records created before the datetime, ISO 8601 without timezone afterCreatedTime\tfilters for records created after the datetime, ISO 8601 without timezone vin\tfilters machines by Vehicle Identification Number You can also pass some parameters used exclusively for paging through results. They are: page, an integer specifying the page being fetched (default is 0)size, an integer specifying the size of the page (max is 100)sort, the sorting order of the results; can be multi-value, where the first value to be passed will have preference in ordering over the next ones; you can also specify the order as asc or desc with asc being the default. Example: id, desc Valid values for sorting are: id, leafUserId, name, provider, providerOrganizationId, providerMachineId, serialNumber, vin, model, make, category and modelYear the default value for page size is 20 If the parameters page and size are not set, the endpoint will return 20 results. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines' Response# Copy [ { \"id\": \"e89b1861-bdbb-49b9-8e11-74840f7e1ea8\", \"leafUserId\": \"faa6691a-7bf7-49c2-8934-b5b4c823aef8\", \"name\": \"TestName\", \"provider\": \"Leaf\", \"providerMachineId\": \"08790ae9-d451-4158-9920-09d1ab1ba5e6\", \"providerOrganizationId\": \"123456\", \"originType\": \"PROVIDER_POOLED\", \"createdTime\": \"2022-02-22T20:06:25.411Z\", \"serialNumber\": \"123456\", \"vin\": \"1234567890ABC\", \"model\": \"ModelName\", \"make\": \"MakerOfMachine\", \"category\": \"Sprayer\", \"modelYear\": 2000 }, { \"id\": \"82725746-3150-490d-9f3f-a47151ac0669\", \"leafUserId\": \"325f5ac0-6c57-4b4a-bdea-490ccddb06c4\", \"name\": \"nameTest\", \"provider\": \"Leaf\", \"providerMachineId\": \"75f362b4-8f61-46f9-905b-a357fb239930\", \"providerOrganizationId\": \"654321\", \"originType\": \"FILE_POOLED\", \"createdTime\": \"2022-02-22T20:06:25.411Z\", \"serialNumber\": \"123456\", \"vin\": \"1234567890ABC\", \"model\": \"ModelName\", \"make\": \"MakerOfMachine\", \"category\": \"Harvester\", \"modelYear\": 2020 }, .... ] "},{"title":"Get a machine","type":1,"pageTitle":"Beta > Assets Endpoints","url":"docs/beta_assets_endpoints#get-a-machine","content":" GET /api/users/{leafUserId}/machines/{machineId} Get the details of a given machine by its id. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}' Response# Copy { \"id\": \"UUID\", \"leafUserId\": \"UUID\", \"name\": \"str\", \"provider\": null, \"providerMachineId\": null, \"providerOrganizationId\": null, \"originType\": \"PROVIDER_POOLED\", \"createdTime\": \"2022-02-22T20:06:25.411Z\", \"serialNumber\": \"123456\", \"vin\": \"1234567890ABC\", \"model\": \"ModelName\", \"make\": \"MakerOfMachine\", \"category\": \"Sprayer\", \"modelYear\": 2000 } "},{"title":"Get machine files","type":1,"pageTitle":"Beta > Assets Endpoints","url":"docs/beta_assets_endpoints#get-machine-files","content":" GET /api/users/{leafUserId}/machines/{machineId}/files Get the details of machine operations files given a machine id. Some fields can be sent as query parameters to filter the machine files, such as: Parameter (to filter by)\tValuesleafFileId\tUUID originType\tspecify the origin of the machine, must be either USER_CREATED, FILE_POOLED or PROVIDER_POOLED createdTime\tan ISO 8601 without timezone specifying the operation exact created time beforeCreatedTime\tfilters for records created before the datetime, ISO 8601 without timezone afterCreatedTime\tfilters for records created after the datetime, ISO 8601 without timezone startTime\tmust match exactly the time of the start of the operation, ISO 8601 without timezone endTime\tmust match exactly the time of the end of the operation, ISO 8601 without timezone beforeStartTime\tan ISO 8601 without timezone, returns all operations that started before the specified time afterStartTime\tan ISO 8601 without timezone, returns all operations that started after the specified time beforeEndTime\tan ISO 8601 without timezone, returns all operations that ended before the specified time afterEndTime\tan ISO 8601 without timezone, returns all operations that ended after the specified time distanceValue\ta double value for the distance greaterThanDistanceValue\ta double value for the distance, returns all operations that have a distance value greater than the specified distance lessThanDistanceValue\ta double value for the distance, returns all operations that have a distance value lesser than the specified distance distanceUnit\tmust be \"Mile\", \"mile\", \"Feet\" or \"ft\" You can also pass some parameters used exclusively for paging through results. They are: page, an integer specifying the page being fetched (default is 0)size, an integer specifying the size of the page (max is 100)sort, the sorting order of the results; can be multi-value, where the first value to be passed will have preference in ordering over the next ones; you can also specify the order as asc or desc with asc being the default. Example: id, desc Valid values for sorting are: id, leafUserId, machineId, startTime, endTime, createdTime, leafFileId Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}/files' Response# Copy [ { \"id\": \"e7916d05-97ae-404a-a467-e2512c202a2f\", \"leafFileId\": \"e0e18a6f-4f88-4801-96e2-f39143f260e1\", \"machineId\": \"98b244fc-7b2d-4acf-a51a-58d20ae27355\", \"startTime\": \"2022-02-22T20:06:25.411Z\", \"endTime\": \"2022-02-22T20:07:25.411Z\", \"distance\": { \"value\": 4152.255, \"unit\": \"ft\" }, \"fuelConsumption\": { \"value\": 28.89, \"unit\": \"US gal\" } }, { \"id\": \"UUID\", \"leafFileId\": \"UUID\", \"machineId\": \"UUID\", \"startTime\": \"YYYY-mm-ddThh:mm:ssZ\", \"endTime\": \"YYYY-mm-ddThh:mm:ssZ\", \"distance\": { \"value\": 5075.145, \"unit\": \"ft\" }, \"fuelConsumption\": { \"value\": 25.55, \"unit\": \"US gal\" } } ] "},{"title":"Create a machine","type":1,"pageTitle":"Beta > Assets Endpoints","url":"docs/beta_assets_endpoints#create-a-machine","content":" POST /users/{leafUserId}/machines Creates a machine for a specific LeafUser. Request body# Copy { \"name\": \"nameTest\", \"serialNumber\": \"123456\", \"vin\": \"1234567890ABC\", \"model\": \"ModelName\", \"make\": \"MakerOfMachine\", \"category\": \"Harvester\", \"modelYear\": 2020 } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"name\": \"str\"}' \\ 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines' Response# Copy { \"id\": \"d5efe8a1-98be-40db-b2b2-2da332e8f69c\", \"name\": \"nameTest\", \"provider\": \"Leaf\", \"providerMachineId\": \"24de86ff-e6f0-4f8f-b429-0571c30a7ddf\", \"providerOrganizationId\": \"654321\", \"leafUserId\": \"9e081c9d-6185-49e1-8df7-7788d6aa1211\", \"originType\": \"USER_CREATED\", \"createdTime\": \"2023-06-12T17:38:09.148568906Z\", \"createdAt\": \"2023-06-12T17:38:09.148568906Z\", \"serialNumber\": \"123456\", \"vin\": \"1234567890ABC\", \"model\": \"ModelName\", \"make\": \"MakerOfMachine\", \"category\": \"Harvester\", \"modelYear\": 2020 } "},{"title":"Update a machine","type":1,"pageTitle":"Beta > Assets Endpoints","url":"docs/beta_assets_endpoints#update-a-machine","content":" PATCH /api/users/{leafUserId}/machines/{machineId} Update a machine for a specific LeafUser. Only machines created by the user can be updated Machine data obtained from providers cannot be updated Request body# Copy { \"name\": \"updatedName\", \"serialNumber\": \"000123\", \"vin\": \"1234567890EFR\", \"model\": \"ModelNameUpdated\", \"make\": \"MakerOfMachineUpdated\", \"category\": \"Planted\", \"modelYear\": 2021 } Request examples# cURLPythonJavaScript Copy curl -X PATCH \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"name\": \"str\"}' \\ 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}' Response# Copy { \"id\": \"d5efe8a1-98be-40db-b2b2-2da332e8f69c\", \"name\": \"updatedName\", \"provider\": \"Leaf\", \"providerMachineId\": \"24de86ff-e6f0-4f8f-b429-0571c30a7ddf\", \"providerOrganizationId\": \"654321\", \"leafUserId\": \"9e081c9d-6185-49e1-8df7-7788d6aa1211\", \"originType\": \"USER_CREATED\", \"createdTime\": \"2023-06-12T17:38:09.148568906Z\", \"createdAt\": \"2023-06-12T17:38:09.148568906Z\", \"serialNumber\": \"updatedName\", \"vin\": \"1234567890EFR\", \"model\": \"ModelNameUpdated\", \"make\": \"MakerOfMachineUpdated\", \"category\": \"Planted\", \"modelYear\": 2021 } "},{"title":"Delete a machine","type":1,"pageTitle":"Beta > Assets Endpoints","url":"docs/beta_assets_endpoints#delete-a-machine","content":" DELETE /api/users/{leafUserId}/machines/{machineId} Delete a machine data Only machines created by the user can be Deleted Machine data obtained from providers cannot be deleted Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/machines/{machineId}' "},{"title":"Get all implements","type":1,"pageTitle":"Beta > Assets Endpoints","url":"docs/beta_assets_endpoints#get-all-implements","content":" GET /api/users/{leafUserId}/implements Get all the implements information based on your leafUserId. Currently, John Deere and Trimble implements are listed. Parameter (to filter by)\tValuesleafUserId\tuuid of one of your users provider\tJohnDeere or Trimble providerImplementId\tprovider side implement id providerOrganizationId\tprovider side organization id createdTime\tISO 8601 date. Returns operations from the createdTime onward updatedTime\tISO 8601 date. Returns operations from the updatedTime onward name\timplement name You can also pass some parameters used exclusively for paging through results. They are: page, an integer specifying the page being fetched (default is 0)size, an integer specifying the size of the page (max is 100)sort, the sorting order of the results; can be multi-value, where the first value to be passed will have preference in ordering over the next ones; you can also specify the order as asc or desc with asc being the default. Example: id, desc Valid values for sorting are: id, leafUserId, name, provider, providerOrganizationId, providerImplementId, serialNumber, model, make, category. the default value for page size is 20 If the parameters page and size are not set, the endpoint will return 20 results. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/implements' Response# Copy [ { \"id\": \"38d313fc-e4ce-442b-9147-f469b30aedab\", \"name\": \"c3po_implement\", \"provider\": \"JohnDeere\", \"providerImplementId\": \"110237\", \"providerOrganizationId\": \"296264\", \"leafUserId\": \"mbba54fb-3710-4f7d-9aaf-703107930193\", \"originType\": \"PROVIDER_POOLED\", \"serialNumber\": \"00000\", \"model\": \"StMax150\", \"make\": \"JOHN DEERE\", \"category\": \"Cotton Harvester Implement\" }, ... ] "},{"title":"Get an implement","type":1,"pageTitle":"Beta > Assets Endpoints","url":"docs/beta_assets_endpoints#get-an-implement","content":" GET /users/{leafUserId}/implements/{implementId} Get the details of a given implement by its id. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/implements/{implementId}' Response# Copy { \"id\": \"38d313fc-e4ce-442b-9147-f469b30aedab\", \"name\": \"c3po_implement\", \"provider\": \"JohnDeere\", \"providerImplementId\": \"110237\", \"providerOrganizationId\": \"296264\", \"leafUserId\": \"mbba54fb-3710-4f7d-9aaf-703107930193\", \"originType\": \"PROVIDER_POOLED\", \"serialNumber\": \"00000\", \"model\": \"StMax150\", \"make\": \"JOHN DEERE\", \"category\": \"Cotton Harvester Implement\" } "},{"title":"Get all operators","type":1,"pageTitle":"Beta > Assets Endpoints","url":"docs/beta_assets_endpoints#get-all-operators","content":" GET /api/users/{leafUserId}/operators Get all the operators information based on your leafUserId. Currently, John Deere operators are listed. You can also pass some parameters used exclusively for paging through results. They are: page, an integer specifying the page being fetched (default is 0)size, an integer specifying the size of the page (max is 100) the default value for page size is 20 If the parameters page and size are not set, the endpoint will return 20 results. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/operators' Response# Copy [ { \"id\": \"aa8c917bc-7e9b-47bc-99b8-4a0df818ab07\", \"name\": \"Brian O.\", \"provider\": \"JohnDeere\", \"providerOperatorId\": \"bbd3a3e8-5ac3-4ab8-4619-d582da4568cc\", \"providerOrganizationId\": \"9999\", \"originType\": \"PROVIDER_POOLED\", \"license\": null, \"updatedTime\": \"2023-10-10T10:10:10.000Z\", \"status\": \"ACTIVE\" }, ... ] "},{"title":"Get an operator","type":1,"pageTitle":"Beta > Assets Endpoints","url":"docs/beta_assets_endpoints#get-an-operator","content":" GET /users/{leafUserId}/operators/{operatorId} Get the details of a given operator by its id. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/operators/{operatorId}' Response# Copy { \"id\": \"aa8c917bc-7e9b-47bc-99b8-4a0df818ab07\", \"name\": \"Brian O.\", \"provider\": \"JohnDeere\", \"providerOperatorId\": \"bbd3a3e8-5ac3-4ab8-4619-d582da4568cc\", \"providerOrganizationId\": \"9999\", \"originType\": \"PROVIDER_POOLED\", \"license\": null, \"updatedTime\": \"2023-10-10T10:10:10.000Z\", \"status\": \"ACTIVE\" } "},{"title":"Beta > Input Endpoints","type":0,"sectionRef":"#","url":"docs/beta_input_endpoints","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Beta > Input Endpoints","url":"docs/beta_input_endpoints#about","content":"All HTTP methods should be prepended by this service's endpoint: Copy https://api.withleaf.io/services/beta/api See below the REST resources and their endpoints available in this service. "},{"title":"Products","type":1,"pageTitle":"Beta > Input Endpoints","url":"docs/beta_input_endpoints#products","content":"Endpoints Description\tEndpointsGet all products\tGET /products Get summarized products\tGET /users/{leafUserId}/products/summary Search for products\tGET /products/search Get a product\tGET /products/{id} Get matching products from an operation\tGET /users/{leafUserId}/products/matching/operations/{operationId} Updated product matches\tPUT /products/matching/operations/{operationId}/matches/{matchId} Get product matches historical\tGET /products/matching/operations/{operationId}/matches/{matchId}/historical "},{"title":"Get all products","type":1,"pageTitle":"Beta > Input Endpoints","url":"docs/beta_input_endpoints#get-all-products","content":" GET /products List of products from providers (for now only for John Deere) in a Leaf User level. This way, on this endpoint the user can search for all products that are available from traditional providers (e.g. John Deere), so here we do not include specific providers such as Agrian and CDMS. Parameter (to filter by)\tValuesleafUserId\tuuid of one of your users provider\tJohnDeere size\tan integer specifying the size of the page (max is 100) page\tan integer specifying the page being fetched (default is 0) sort\tthe sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as asc or desc with asc being the default. Example: id, desc Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/products' Response# Copy [ { \"id\": \"07b3f270-8af8-11ee-b9d1-0242ac120002\", \"name\": \"Propiconazole\", \"registrant\": \"Tide International USA,Inc.\", \"productType\": \"Chemical\", \"labelProvider\": \"JohnDeere\", \"providerId\": \"020c55f6-8af8-11ee-b9d1-0242ac120002\", \"formulationType\": \"DRY\", \"leafUserId\": \"fb6fcda4-8af7-11ee-b9d1-0242ac120002\", \"registration\": \"0084229-00011-AA-0000000\", \"status\": \"ACTIVE\", \"carrier\": true }, .... ] "},{"title":"Get summarized products","type":1,"pageTitle":"Beta > Input Endpoints","url":"docs/beta_input_endpoints#get-summarized-products","content":" GET /users/{leafUserId}/products/summary List of products extracted from machine file. Parameter (to filter by)\tValuesname\tpart of the product name page\tan integer specifying the page being fetched (default is 0) size\tan integer specifying the size of the page (max is 100) sort\tthe sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as asc or desc with asc being the default. Example: id, desc Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/products/summary' Response# Copy [ { \"id\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\", \"name\": \"Produto padrão\", \"leafUserId\": \"8bbe50a0-992c-11ee-b9d1-0242ac120002\" }, .... ] "},{"title":"Search for products","type":1,"pageTitle":"Beta > Input Endpoints","url":"docs/beta_input_endpoints#search-for-products","content":" GET /products/search Search for products by name, partial values are supported. Agrian and CDMS products are currently available to everyone, and John Deere products from the Operation Center at the Leaf User level. Parameter (to filter by)\tValuesname\tpart of the product name to be searched (required) maxResults\tthe number of results that should be returned (max value is 20). The default is 10 Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/products/search' Response# Copy [ { \"id\": \"7d85c556-0ac5-4f0b-b7cc-b35ac559af8f\", \"name\": \"CompostX\", \"registration\": \"00000-00-00000\", \"registrant\": \"Leaf Company, LLC\", \"productType\": \"Dry\", \"formulationType\": \"Dry Flowable\", \"labelProvider\": \"CDMS\", \"productPageUrl\": \"https://www.cdms.net/ldat/\", \"labels\": [ { \"name\": \"meE2000.pdf\", \"url\": \"https://www.cdms.net/ldat/meE2000.pdf\" }, .... ], \"activeIngredient\": [ \"Urea\", \"Calcium\", .... ] }, { \"id\": \"81ffe756-1fd0-4d97-b2ec-e33b5232f507\", \"name\": \"CompostY\", \"registration\": \"00000-000\", \"registrant\": \"Agriscience\", \"productType\": \"Dry\", \"formulationType\": \"Dry Flowable\", \"labelProvider\": \"AGRIAN\", \"productPageUrl\": \"https://www.agrian.com/searchcenter/demonstration=00000\", \"labels\": [ { \"name\": \"Label - 00-R000\", \"url\": \"https://www.agrian.com/pdfs/new/00000.pdf\" }, .... ], \"activeIngredient\": [ \"Roundup\", \"Glyphosate\", .... ] }, .... ] "},{"title":"Get a product","type":1,"pageTitle":"Beta > Input Endpoints","url":"docs/beta_input_endpoints#get-a-product","content":" GET /products/{id} Get a product by its id. The data is obtained from different product databases. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/products/{id}' Response# Copy { \"id\": \"81ffe756-1fd0-4d97-b2ec-e33b5232f507\", \"name\": \"GameOn\", \"registration\": \"62719-724\", \"registrant\": \"Corteva Agriscience\", \"productType\": \"Dry\", \"formulationType\": \"Dry Flowable\", \"labelProvider\": \"AGRIAN\", \"productPageUrl\": \"https://www.agrian.com/labelcenter/results.cfm?d=21666\", \"labels\": [ { \"name\": \" Label - 03-R0718 \", \"url\": \"https://www.agrian.com/pdfs/current/Badge_X2_FungicideBactericide_Label1p.pdf\" }, .... ] } "},{"title":"Get matching products from an operation","type":1,"pageTitle":"Beta > Input Endpoints","url":"docs/beta_input_endpoints#get-matching-products-from-an-operation","content":" GET /products/matching/operations/{operationId} This endpoint can be used as the input validator, getting the standard products that best match the products from a Field Operation. Information such as the registration number and labels can be obtained from this endpoint using the id. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/products/matching/operations/{operationId}' Response# Copy [ { \"id\": \"37159c45-4c1f-48e4-aa87-90b34cc6e789\", \"name\": \"ams\", \"productId\": \"e5b91778-0714-4e1f-850c-b458d1bdc7ed\", \"matchDetails\": { \"status\": \"PREDICTED\", \"score\": 14.354036 } }, { \"id\": \"7fb70242-498b-42c1-92c3-a7d2361d2125\", \"name\": \"counter\", \"productId\": \"a85c1d0d-b673-46aa-a3a3-31cb65f57598\", \"matchDetails\": { \"status\": \"VALIDATED\" } }, .... ] "},{"title":"Updated product matches","type":1,"pageTitle":"Beta > Input Endpoints","url":"docs/beta_input_endpoints#updated-product-matches","content":" PUT /products/matching/operations/{id}/matches/{matchId} Updated Leaf predictions or approves them. Request body# To approve Leaf prediction: Copy { \"status\": \"VALIDATED\" } Or, to change prediction: Copy { \"productId\": \"expectedProductID\" } Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"status\": \"VALIDATED\" }' \\ 'https://api.withleaf.io/services/beta/api/products/matching/operations/{operationId}/matches/{matchId}' Response# Copy [ { \"id\": \"uidd-match-0001\", \"name\": \"Ta35\", \"productId\": \"uidd-prd-1001\", \"matchDetails\": { \"score\": 91, \"status\": \"PREDICTED\" } }, { \"id\": \"uidd-match-0002\", \"name\": \"Talisman\", \"productId\": \"uidd-prd-1003\", \"matchDetails\": { \"status\": \"VALIDATED\" } } ] "},{"title":"Get product matches historical","type":1,"pageTitle":"Beta > Input Endpoints","url":"docs/beta_input_endpoints#get-product-matches-historical","content":" GET /products/matching/operations/{operationId}/matches/{matchId}/historical Get a product's change history. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/products/matching/operations/{operationId}/matches/{matchId}/historical' Response# Copy [ { \"matchId\": \"uidd-match-0002\", \"name\": \"Talisman\", \"productId\": \"uidd-prd-1003\", \"matchDetails\": { \"status\": \"PREDICTED\", \"score\": 8.225217 }, \"historicalTime\": \"2023-12-19T13:18:44.709Z\" } ] "},{"title":"Varieties","type":1,"pageTitle":"Beta > Input Endpoints","url":"docs/beta_input_endpoints#varieties","content":"Description\tEndpointsGet all varieties\tGET /varieties Get summarized varieties\tGET /users/{leafUserId}/varieties/summary Search for varieties\tGET /varieties/search "},{"title":"Get all varieties","type":1,"pageTitle":"Beta > Input Endpoints","url":"docs/beta_input_endpoints#get-all-varieties","content":" GET /varieties List of varieties available from providers (for now only for John Deere). Parameter (to filter by)\tValuesleafUserId\tuuid of one of your users provider\tJohnDeere size\tan integer specifying the size of the page (max is 100) page\tan integer specifying the page being fetched (default is 0) sort\tthe sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as asc or desc with asc being the default. Example: id, desc Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/varieties' Response# Copy [ { \"id\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\", \"crops\": [ \"ALFALFA\" ], \"name\": \"Master Piece\", \"companyName\": \"Simplot\", \"status\": \"ACTIVE\", \"leafUserId\": \"028c30fa-6d2a-11ee-b962-0242ac120002\", \"provider\": \"JohnDeere\", \"providerId\": \"8e1e0920-1265-4066-8067-8ce2ce5012b2\" }, .... ] "},{"title":"Get summarized varieties","type":1,"pageTitle":"Beta > Input Endpoints","url":"docs/beta_input_endpoints#get-summarized-varieties","content":" GET /users/{leafUserId}/varieties/summary List of varieties extracted from machine file. Parameter (to filter by)\tValuesname\tpart of the product name crops\tdesired crop name page\tan integer specifying the page being fetched (default is 0) size\tan integer specifying the size of the page (max is 100) sort\tthe sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as asc or desc with asc being the default. Example: id, desc Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/varieties/summary' Response# Copy [ { \"id\": \"680ff073-18d0-4951-ba69-b2ca0b098bc3\", \"name\": \"corn variety 2\", \"leafUserId\": \"028c30fa-6d2a-11ee-b962-0242ac120002\", \"crops\": [ \"corn\" ] }, { \"id\": \"1544de06-682d-4549-92a3-a06b2ccdc96d\", \"name\": \"corn variety 2 (1)\", \"leafUserId\": \"8e1e0920-1265-4066-8067-8ce2ce5012b2\", \"crops\": [ \"corn\" ] }, .... ] "},{"title":"Search for varieties","type":1,"pageTitle":"Beta > Input Endpoints","url":"docs/beta_input_endpoints#search-for-varieties","content":" GET /varieties/search Search for varieties by name, partial values are supported. Varieties from John Deere Operation Center are available at the Leaf User level. Parameter (to filter by)\tValuesname\tpart of the variety name to be searched (required) maxResults\tthe number of results that should be returned (max value is 20). The default is 10 crop\tthe name of the crop of the varieties of interest Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/varieties/search' Response# Copy [ { \"id\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\", \"crops\": [ \"ALFALFA\" ], \"name\": \"Master Piece\", \"companyName\": \"Simplot\", \"status\": \"ACTIVE\", \"leafUserId\": \"028c30fa-6d2a-11ee-b962-0242ac120002\", \"provider\": \"JohnDeere\", \"providerId\": \"8e1e0920-1265-4066-8067-8ce2ce5012b2\" }, .... ] "},{"title":"Tank Mixes","type":1,"pageTitle":"Beta > Input Endpoints","url":"docs/beta_input_endpoints#tank-mixes","content":"Description\tEndpointsGet all tank mixes\tGET /tankMixes Search for tank mixes\tGET /tankMixes/search "},{"title":"Get all tank mixes","type":1,"pageTitle":"Beta > Input Endpoints","url":"docs/beta_input_endpoints#get-all-tank-mixes","content":" GET /tankMixes List of tank mixes available from providers (for now only for John Deere). Parameter (to filter by)\tValuesleafUserId\tuuid of one of your users provider\tJohnDeere size\tan integer specifying the size of the page (max is 100) page\tan integer specifying the page being fetched (default is 0) sort\tthe sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as asc or desc with asc being the default. Example: id, desc Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/tankMixes' Response# Copy [ { \"id\": \"abc59ca6-937c-11ee-b9d1-0242ac120002\", \"name\": \"TankTest1\", \"providerId\": \"b74878dc-937c-11ee-b9d1-0242ac120002\", \"notes\": null, \"solutionRate\": { \"valueAsDouble\": 5, \"unit\": \"gal1ac-1\", \"vrDomainId\": \"vrSolutionRateLiquid\" }, \"formulationType\": \"LIQUID\", \"targetCrops\": [ \"PINEAPPLE\" ], \"carrier\": { \"id\": \"c0cb84d0-937c-11ee-b9d1-0242ac120002\", \"name\": \"Water\", \"labelProvider\": \"JohnDeere\", \"registrant\": \"GENERIC\", \"registration\": null, \"distributor\": null, \"productType\": \"ADDITIVE\", \"formulationType\": \"LIQUID\", \"productPageUrl\": null, \"labels\": null, \"activeIngredient\": null, \"carrier\": true, \"status\": \"ACTIVE\", \"providerId\": \"e0daf77e-937c-11ee-b9d1-0242ac120002\", \"leafUserId\": \"cd06377c-937c-11ee-b9d1-0242ac120002\" }, \"components\": [ { \"id\": \"d1fb3aac-937c-11ee-b9d1-0242ac120002\", \"name\": \"Brandt Big Foot SS\", \"labelProvider\": \"JohnDeere\", \"registrant\": \"Brandt Consolidated, Inc.\", \"registration\": null, \"distributor\": null, \"productType\": \"ADDITIVE\", \"formulationType\": \"DRY\", \"productPageUrl\": null, \"labels\": null, \"activeIngredient\": null, \"carrier\": false, \"status\": \"ACTIVE\", \"providerId\": \"06da2738-937d-11ee-b9d1-0242ac120002\", \"leafUserId\": \"cd06377c-937c-11ee-b9d1-0242ac120002\" }, { \"id\": \"eaee0878-937c-11ee-b9d1-0242ac120002\", \"name\": \"Ferti-Phos Mg 0-25-0\", \"labelProvider\": \"JohnDeere\", \"registrant\": \"Fertilizer Company of Arizona, Inc.\", \"registration\": null, \"distributor\": null, \"productType\": \"FERTILIZER\", \"formulationType\": \"LIQUID\", \"productPageUrl\": null, \"labels\": null, \"activeIngredient\": null, \"carrier\": true, \"status\": \"ACTIVE\", \"providerId\": \"0e0f1c66-937d-11ee-b9d1-0242ac120002\", \"leafUserId\": \"cd06377c-937c-11ee-b9d1-0242ac120002\" } ], \"status\": \"ACTIVE\", \"provider\": \"JohnDeere\", \"leafUserId\": \"cd06377c-937c-11ee-b9d1-0242ac120002\" }, .... ] "},{"title":"Search for tank mixes","type":1,"pageTitle":"Beta > Input Endpoints","url":"docs/beta_input_endpoints#search-for-tank-mixes","content":" GET /tankMixes/search Search for tank mixes by name, partial values are supported. Tank mix from John Deere Operation Center are available at the Leaf User level. Parameter (to filter by)\tValuesname\tpart of the tank mix name to be searched (required) maxResults\tthe number of results that should be returned (max value is 20). The default is 10 Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/tankMixes/search' Response# Copy [ { \"id\": \"abc59ca6-937c-11ee-b9d1-0242ac120002\", \"name\": \"TankTest1\", \"providerId\": \"b74878dc-937c-11ee-b9d1-0242ac120002\", \"notes\": null, \"solutionRate\": { \"valueAsDouble\": 5, \"unit\": \"gal1ac-1\", \"vrDomainId\": \"vrSolutionRateLiquid\" }, \"formulationType\": \"LIQUID\", \"targetCrops\": [ \"PINEAPPLE\" ], \"carrier\": { \"id\": \"c0cb84d0-937c-11ee-b9d1-0242ac120002\", \"name\": \"Water\", \"labelProvider\": \"JohnDeere\", \"registrant\": \"GENERIC\", \"registration\": null, \"distributor\": null, \"productType\": \"ADDITIVE\", \"formulationType\": \"LIQUID\", \"productPageUrl\": null, \"labels\": null, \"activeIngredient\": null, \"carrier\": true, \"status\": \"ACTIVE\", \"providerId\": \"e0daf77e-937c-11ee-b9d1-0242ac120002\", \"leafUserId\": \"cd06377c-937c-11ee-b9d1-0242ac120002\" }, \"components\": [ { \"id\": \"d1fb3aac-937c-11ee-b9d1-0242ac120002\", \"name\": \"Brandt Big Foot SS\", \"labelProvider\": \"JohnDeere\", \"registrant\": \"Brandt Consolidated, Inc.\", \"registration\": null, \"distributor\": null, \"productType\": \"ADDITIVE\", \"formulationType\": \"DRY\", \"productPageUrl\": null, \"labels\": null, \"activeIngredient\": null, \"carrier\": false, \"status\": \"ACTIVE\", \"providerId\": \"06da2738-937d-11ee-b9d1-0242ac120002\", \"leafUserId\": \"cd06377c-937c-11ee-b9d1-0242ac120002\" }, { \"id\": \"eaee0878-937c-11ee-b9d1-0242ac120002\", \"name\": \"Ferti-Phos Mg 0-25-0\", \"labelProvider\": \"JohnDeere\", \"registrant\": \"Fertilizer Company of Arizona, Inc.\", \"registration\": null, \"distributor\": null, \"productType\": \"FERTILIZER\", \"formulationType\": \"LIQUID\", \"productPageUrl\": null, \"labels\": null, \"activeIngredient\": null, \"carrier\": true, \"status\": \"ACTIVE\", \"providerId\": \"0e0f1c66-937d-11ee-b9d1-0242ac120002\", \"leafUserId\": \"cd06377c-937c-11ee-b9d1-0242ac120002\" } ], \"status\": \"ACTIVE\", \"provider\": \"JohnDeere\", \"leafUserId\": \"cd06377c-937c-11ee-b9d1-0242ac120002\" }, .... ] "},{"title":"Beta > Machines Endpoints","type":0,"sectionRef":"#","url":"docs/beta_machines_endpoints","content":"Documentation update! We are updating our documentation and this page was moved to here.","keywords":""},{"title":"Beta > Layers Endpoints","type":0,"sectionRef":"#","url":"docs/beta_layers_endpoints","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Beta > Layers Endpoints","url":"docs/beta_layers_endpoints#about","content":"You can now get layers (tassel count, stand count, NVDI, and RGB) through the Sentera integration. Please make sure to follow the Sentera integratation steps before getting layers. All HTTP methods should be prepended by this service's endpoint: Copy https://api.withleaf.io/services/beta/api See below the REST resources and their endpoints available in this service. Description\tEndpointsGet all the layers for a Leaf User\tGET /users/{leafUserId}/layers Upload a layer to Climate FieldView\tPOST /users/{leafUserId}/layers/climateFieldView "},{"title":"Layers (BETA)","type":1,"pageTitle":"Beta > Layers Endpoints","url":"docs/beta_layers_endpoints#layers-beta","content":""},{"title":"Get all the layers for a Leaf User","type":1,"pageTitle":"Beta > Layers Endpoints","url":"docs/beta_layers_endpoints#get-all-the-layers-for-a-leaf-user","content":" GET /users/{leafUserId}/layers Gets a paged list of layers that belong for a Leaf User. Parameter (to filter by)\tValuestype\tTASSEL_COUNT, STAND_COUNT, NVDI, and RGB You can also pass some parameters used exclusively for paging through results. They are: page, an integer specifying the page being fetched (default is 0)size, an integer specifying the size of the page (max is 100) the default value for page size is 20 If the parameters page and size are not set, the endpoint will return 20 results. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/layers' Response# Copy [ { \"id\": \"96a098e0-f1d0-47e8-968d-9d55d54da114\", \"leafUserId\": \"055c4d61-b1e2-4fa9-873c-23433a11c271\", \"apiOwnerUsername\": \"fabyan\", \"type\": \"RGB\", \"origin\": \"PROVIDER_POOLED\", \"provider\": \"Sentera\", \"providerLayerId\": \"vnoyi6a_FI_edovSouthernM_CV_prod_82f9b3d6_211018_151052\", \"providerFieldId\": \"ycof8zg_AS_edovSouthernM_CV_prod_a025df2d_211015_200456\", \"name\": \"QuickTile RGB\", \"size\": 159135298, \"md5\": \"7ff746c6f5f06fc25b46420328402bed\", \"contentS3\": \"URL\", \"downloadContentS3\": \"URL\", \"createdTime\": \"2022-02-16T21:40:20.257Z\", \"leafFieldIds\": [ \"f43ca7cc-c73a-43b9-8685-070b03876475\", \"edcf7b8b-913e-4e53-a0b5-91aa16699dfc\" ] }, { \"id\": \"4d9b0139-f528-43ab-8bc9-a31043fa87d2\", \"leafUserId\": \"055c4d61-b1e2-4fa9-873c-23433a11c271\", \"apiOwnerUsername\": \"fabyan\", \"type\": \"RGB\", \"origin\": \"PROVIDER_POOLED\", \"provider\": \"Sentera\", \"providerLayerId\": \"\", \"providerFieldId\": \"\", \"name\": \"QuickTile RGB\", \"size\": 121910506, \"md5\": \"759d1f68962e30ea78f40025c8b64972\", \"contentS3\": \"URL\", \"downloadContentS3\": \"URL\", \"createdTime\": \"2022-02-16T21:40:35.341Z\", \"leafFieldIds\": [ \"f43ca7cc-c73a-43b9-8685-070b03876475\", \"edcf7b8b-913e-4e53-a0b5-91aa16699dfc\" ] }, .... ] "},{"title":"Upload a layer to Climate FieldView","type":1,"pageTitle":"Beta > Layers Endpoints","url":"docs/beta_layers_endpoints#upload-a-layer-to-climate-fieldview","content":" POST /users/{leafUserId}/layers/climateFieldView Send a layer file to Climate FieldView. Parameter\tValuesuploadType\tRGB Currently, only true color image (RGB) files are supported and must meet the following criteria required by Climate: The image needs to be a multi band GeoTIFF with 24-bit composite values (must contain 3 bands in the order Red, Green, Blue)The Coordinate Reference System (CRS) must be UTM with WGS84 datumThe following metadata (GDAL_METADATA tag) entries are required to be embedded in the GeoTIFF: acquisitionStartDate - ISO8601 dateacquisitionEndDate - ISO8601 dateisCalibrated - boolean Although Climate FieldView supports files up to 500MB, at this time, we only accept files up to 5MB. Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -F 'file=rgb.tif' \\ 'https://api.withleaf.io/services/beta/api/users/{leafUserId}/layers/climateFieldView?' \\ 'uploadType=RGB' Response# Copy { \"id\": \"86fb8bea-1670-48ea-a85d-fbdf6feefb35\", \"name\": \"LayerName\" } info Uploaded layers are not stored on Leaf side and are only available for use directly in Climate FieldView "},{"title":"Beta > Prescriptions Endpoints","type":0,"sectionRef":"#","url":"docs/beta_prescriptions_endpoints","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Beta > Prescriptions Endpoints","url":"docs/beta_prescriptions_endpoints#about","content":"All HTTP methods should be prepended by this service's endpoint: Copy https://api.withleaf.io/services/beta/prescription/api See below the REST resources and their endpoints available in this service. "},{"title":"Prescription (BETA)","type":1,"pageTitle":"Beta > Prescriptions Endpoints","url":"docs/beta_prescriptions_endpoints#prescription-beta","content":"This feature has the following endpoints available: Description\tEndpointsUpload prescription to Raven Slingshot\tPOST /users/{leafUserId}/ravenSlingshot List prescriptions from Raven Slingshot\tGET /users/{leafUserId}/ravenSlingshot Lists prescriptions from John Deere\tGET /users/{leafUserId}/johnDeere Upload prescription to John Deere\tPOST /users/{leafUserId}/johnDeere Download prescription from John Deere\tGET /users/{leafUserId}/johnDeere/download Upload prescription to CNHi\tPOST /users/{leafUserId}/cnhi List prescriptions from CNHi\tGET /users/{leafUserId}/cnhi Upload prescription to Climate FieldView\tPOST /users/{leafUserId}/climateFieldView Upload prescription to Trimble\tPOST /users/{leafUserId}/trimble "},{"title":"Upload prescription to Raven Slingshot","type":1,"pageTitle":"Beta > Prescriptions Endpoints","url":"docs/beta_prescriptions_endpoints#upload-prescription-to-raven-slingshot","content":" POST /users/{leafUserId}/ravenSlingshot Upload a prescription using the Raven Slingshot credentials of the LeafUserId. The file to be uploaded needs to be .zip and contain one of each of the following file extension: shp, dbf, shx; and all files must have the same name. The zip file cannot contain subfolders. Example:# A zip file named “prescription_rx_map”, containing the following files: prescription_rx_map.shpprescription_rx_map.dbfprescription_rx_map.shx Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -F 'file=prescription_rx_map.zip' \\ 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/ravenSlingshot' Response# Copy { \"id\": \"str\", \"name\": \"str\" } "},{"title":"List prescriptions from Raven Slingshot","type":1,"pageTitle":"Beta > Prescriptions Endpoints","url":"docs/beta_prescriptions_endpoints#list-prescriptions-from-raven-slingshot","content":" GET /users/{leafUserId}/ravenSlingshot List the existing prescriptions available in the provider. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/ravenSlingshot' Response# Copy [ { \"id\": \"str\", \"name\": \"str\" }, { \"id\": \"str\", \"name\": \"str\" } ] "},{"title":"Upload prescription to John Deere","type":1,"pageTitle":"Beta > Prescriptions Endpoints","url":"docs/beta_prescriptions_endpoints#upload-prescription-to-john-deere","content":" POST /users/{leafUserId}/johnDeere Upload a prescription using the John Deere credentials of the LeafUserId. There is a required request parameter called organizationId for this endpoint to work. This property should be the id of the organization at JohnDeere. The file to be uploaded needs to be .zip and have a folder called \"Rx\" containing one of each of the following file extension: shp, dbf, shx; and all files must have the same name. The zip file cannot contain subfolders. Example:# A .zip file named “prescription_rx_map”, having a parent folder called \"Rx\", containing the following files: Rx/ prescription_rx_map.shpprescription_rx_map.dbfprescription_rx_map.shx Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -F 'file=prescription_rx_map.zip' \\ 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/johnDeere?organizationId={organizationId}' Response# Copy { \"id\": \"str\", \"name\": \"str\" } "},{"title":"List prescriptions from John Deere","type":1,"pageTitle":"Beta > Prescriptions Endpoints","url":"docs/beta_prescriptions_endpoints#list-prescriptions-from-john-deere","content":" GET /users/{leafUserId}/johnDeere List the existing prescriptions available in the provider. There is a required request parameter called organizationId for this endpoint to work. This property should be the id of the organization at JohnDeere. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/johnDeere?organizationId={organizationId}' Response# Copy [ { \"id\": \"str\", \"name\": \"str\" }, { \"id\": \"str\", \"name\": \"str\" } ] "},{"title":"Download prescription from John Deere","type":1,"pageTitle":"Beta > Prescriptions Endpoints","url":"docs/beta_prescriptions_endpoints#download-prescription-from-john-deere","content":" GET /users/{leafUserId}/johnDeere/download Download a prescription related to a file ID using the LeafUserId's John Deere credentials. This file ID is relative to the one available from the John Deere side. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/johnDeere/download?fileId={fileId}' Response# Copy { \"fileUrl\": \"url_to_download\" } "},{"title":"Upload prescription to CNHi","type":1,"pageTitle":"Beta > Prescriptions Endpoints","url":"docs/beta_prescriptions_endpoints#upload-prescription-to-cnhi","content":" POST /users/{leafUserId}/cnhi Upload a prescription using the CNHi credentials of the LeafUserId. You can get the company Id from the grower endpoints using the property providerOrganizationId. The file to be uploaded must be a .zip and contain each of the following file extension: shp, dbf and shx. All files must have the same name. The zip file cannot contain subfolders. Example:# A .zip file named “prescription_map” containing the following files: prescription_map.shpprescription_map.dbfprescription_map.shx Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -F 'file=prescription_map.zip' \\ 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/cnhi?companyId={companyId}' Response# Copy { \"id\": \"str\", \"name\": \"str\" } "},{"title":"List prescriptions from CNHi","type":1,"pageTitle":"Beta > Prescriptions Endpoints","url":"docs/beta_prescriptions_endpoints#list-prescriptions-from-cnhi","content":" GET /users/{leafUserId}/cnhi List the existing prescriptions available in the provider. You can get the company Id from the grower endpoints using the property providerOrganizationId. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/cnhi?companyId={companyId}' Response# Copy [ { \"id\": \"str\", \"name\": \"str\" }, { \"id\": \"str\", \"name\": \"str\" } ] "},{"title":"Upload prescription to Climate FieldView","type":1,"pageTitle":"Beta > Prescriptions Endpoints","url":"docs/beta_prescriptions_endpoints#upload-prescription-to-climate-fieldview","content":" POST /users/{leafUserId}/climateFieldView Upload a prescription using the Climate FieldView credentials of the LeafUserId. The file to be uploaded needs to be .zip and contain one of each of the following file extension: shp, dbf, shx; and all files must have the same name. The zip file cannot contain subfolders. Example:# A zip file named “prescription_rx_map”, containing the following files: prescription_rx_map.shpprescription_rx_map.dbfprescription_rx_map.shx Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -F 'file=prescription_rx_map.zip' \\ 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/climateFieldView' Response# Copy { \"id\": \"str\", \"name\": \"str\" } "},{"title":"Upload prescription to Trimble","type":1,"pageTitle":"Beta > Prescriptions Endpoints","url":"docs/beta_prescriptions_endpoints#upload-prescription-to-trimble","content":" POST /users/{leafUserId}/trimble Upload a prescription using the Trimble credentials of the LeafUserId. The file to be uploaded needs to be .zip and contain one of each of the following file extension: shp, dbf, shx; and all files must have the same name. The zip file cannot contain subfolders. Also, in Raven's case the user must fill the rateAttribute and rateUnit as required parameters within the URL. An optional parameter is the fileName. The rateAttribute must contain the name of the column from the Shapefile. The rateUnit must contain one the values in the table below rateUnitgal/ac l/ha lbs/ac ton/ac kg/ha t/ha kS/ac kS/ha lbs(N)/ac kg(N)/ha S/ha S/ha Example:# A zip file named “prescription_rx_map”, containing the following files: prescription_rx_map.shpprescription_rx_map.dbfprescription_rx_map.shx Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -F 'file=prescription_rx_map.zip' \\ 'https://api.withleaf.io/services/beta/prescription/api/users/{leafUserId}/trimble?rateAttribute={}&rateUnit={}' Response# Copy { \"id\": \"str\", \"name\": \"str\" } "},{"title":"Configurations Overview","type":0,"sectionRef":"#","url":"docs/configurations_overview","content":"","keywords":""},{"title":"Field Boundary Management","type":1,"pageTitle":"Configurations Overview","url":"docs/configurations_overview#field-boundary-management","content":"automaticFixBoundary# If set to true, this configuration will attempt to correct invalid geometries obtained from providers. The default value is false. More information here. customDataSync# If set to true, the field boundaries will be partially obtained in PREVIEW mode. This prevents all provider fields from being fetched, allowing later selection of fields that will be fetched completely. For some providers, it will also affect the operation files associated with those fields. The default value is false. fieldsAttachIntersection# Minimum intersection percentage between a field and an operation. An intersection proportion higher than this value will make the operation to be linked to the given field. This property supports a floating point between 0 and 100 percent. The default value is 0.01, which is the smallest number possible of overlap between the fields. Example: Setting this to 1 = 1%, setting this to 0.01 = 0.01%. fieldsAutoSync# If set to true, Leaf will automatically synchronize provider's fields. If set to false, synchronizations must be manually requested via endpoint. The default value is true. fieldsAutoMerge# Feature automatically merges fields that passes through the intersection parameter. Default value is true. The merge intersection can be controlled by the fieldsMergeIntersection configuration. fieldsMergeIntersection# Minimum intersection between two fields to merge them. A new field of type MERGED will be created based in the intersection of the fields, while the original fields will be kept for historical purposes but remain inactive. This property supports a floating point between 0 and 100. The default value is 0.01, which is the smallest number possible of overlap between the fields. "},{"title":"Machine File Conversion","type":1,"pageTitle":"Configurations Overview","url":"docs/configurations_overview#machine-file-conversion","content":"cleanupStandardGeojson# If set to true, Leaf will automatically remove invalid points from the standardGeoJSON file. The default value is true. generateProviderImages# If set to true, Leaf will generate property images for files fetched from providers. Uploaded files are not affected by this change. The default value is false. Not to be confused with operationsImageCreation, which is specifically for Field Operations. note All geoimage configurations are for V1 images only. We recommend using V2 for the best quality. geoimagesColorRamp# The color ramp to be used when generating images of operations. It's a map from a percentage value to a list containing a color in RGB or RGBA. The last entry in the map must contain a value for the nv key, mapping to the color for null values. The default value is Copy { \"0%\" : [200, 0, 0], \"35%\" : [255, 40, 0], \"45%\" : [255, 150, 0], \"55%\" : [255, 240, 0], \"65%\" : [ 0, 230, 0], \"75%\" : [ 0, 190, 0], \"100%\": [ 0, 130, 0], \"nv\" : [ 0, 0, 0, 0] } note This configuration has no effect over the Field Operations Images V2 output. geoimagesProjection# Projection to be used when generating images of operations. It can assume the values EPSG:3857 and EPSG:4326. The default value is EPSG:3857. note This configuration has no effect over the Field Operations Images V2 output. geoimagesResolution# Resolution of the generated images of operations. The default value is 0.00001 degrees. note This configuration has no effect over the Field Operations Images V2 output. geoimagesShape# Shape of points to be used when generating images of operations. It can assume the values ROUND and SQUARE. The default value is SQUARE. note This configuration has no effect over the Field Operations Images V2 output. originalOperationData# If set to true, it will add some non Leaf-standard properties to the File summary, such as the field name and the type of the operation, as described originally by the provider. It is not applicable to the standard GeoJSON file or the Field Operation summary. The default value is false. Copy \"originalOperationData\": { \"originalOperationFarm\": \"Farm Green\", \"originalOperationField\": \"Field A\", \"originalOperationGrower\": \"Grower\", \"originalOperationType\": \"SowingAndPlanting\" } unitMeasurement# Defines the unit of measurement of the summary, standardGeoJSON, and filteredGeoJSON for the Machine Files and Field Operations services. It supports METRIC, IMPERIAL, and DEFAULT - that not standardize the units and keep them as available in the files/provider (this is the default value). The units for each option available can be found on the Units of Measurement page. "},{"title":"Field Operations","type":1,"pageTitle":"Configurations Overview","url":"docs/configurations_overview#field-operations","content":"These configurations can be enabled with the use of Leaf Field Operations. This requires an active boundary to be present so Leaf can merge the machine files and create a Field Operation. cleanupStandardGeojson# See this section for more information summarizeByProductEntry# If set to true, Leaf will aggregate products with the same name and display only one entry per product in the summary.area and totalApplied will be aggregated by the sum and the rate by the average. This config is only for applied data. The default value is false. summaryGeometry# The values to be defined are BUFFER and CONVEX_HULL, that refer to the geometry calculation algorithm in the summary of the machine files. Buffer See the image below to understand the model of each calculation. fieldOperationCreation# Enables the creation of Field Operations. The default is true. operationsAutoSync# If set to true, Leaf will automatically synchronize provider's operations. The default value is true. operationsFilteredGeojson# Enables the option to clear Field Operations data based on some filter options. Also enables the use of operations images V2. The default is false. operationsImageAsGeoTiff# If set to true, Leaf will generate the images of operations in the GeoTIFF format too. The data can be accessed in this endpoint. The default value is false. note This configuration has effect only in the Field Operations Images V2 output. operationsRemoveOutliers# If enabled, it will remove points in the filteredGeojson based on harvest values so it is only applied to harvest type operations. The outliers will be defined based on the operationsOutliersLimit configuration. The default value is true. More info here. tip To use this option, operationsFilteredGeojson must be enabled. operationsOutliersLimit# Sets the threshold for removing outliers when the operationsRemoveOutliers configuration is enabled. The defined value will be considered to measure how many standard deviations will be considered as outliers. The default value is 3 which means that all points with harvested volume values ​​that are more than 3 standard deviations away from the mean will be removed. More info here. operationsMergeRange# Range used to consider if files are part of the same operation. Default value is 5 days. operationsMergeRangeHarvested# Range used to consider if harvest files are part of the same operation. Default value is 21 days. operationsProcessingRange# The retroactive time period (in months) to fetch file operations from providers. The default is 12 so only operations that occurred 12 months ago to present will be processed by Leaf. splitOperationsByField# If set to true, Leaf will split your Field Operations based on the intersection of each Leaf Field Boundary. The default value is false. splitOperationsByProvider# If set to true, files will be filtered by provider in addition to the field, operation type, crop and date interval to create operations. If set to false, operations will be created regardless of the source provider. The default value is false. operationsImageCreation# If set to true, Leaf will generate images of operations when processing them. If set to false, Leaf won't create the images. The default value is false. note This configuration has no effect over the Field Operations Images V2 output. geoimagesColorRamp# See this section for more information geoimagesProjection# See this section for more information geoimagesResolution# See this section for more information geoimagesShape# See this section for more information unitMeasurement# See this section for more information "},{"title":"Configurations Endpoints","type":0,"sectionRef":"#","url":"docs/configurations_endpoints","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Configurations Endpoints","url":"docs/configurations_endpoints#about","content":"Here we list all the available endpoints from Leaf's Configuration API. To call them easily, we recommend using Leaf's Postman collection. All HTTP methods should be prepended by this service's endpoint: Copy https://api.withleaf.io/services/config/api This service has the following endpoints available: Description\tEndpointsGet API Owner's Configuration\tGET /configs Get Leaf User's Configuration\tGET /configs/{leafUserId} Create Leaf User's Configuration\tPOST /configs/{leafUserId} Update API Owner's Configuration\tPATCH /configs Update Leaf User's Configuration\tPATCH /configs/{leafUserId} Delete Leaf User's Configuration\tDELETE /configs/{leafUserId} "},{"title":"Endpoints","type":1,"pageTitle":"Configurations Endpoints","url":"docs/configurations_endpoints#endpoints","content":""},{"title":"Get API Owner's Configuration","type":1,"pageTitle":"Configurations Endpoints","url":"docs/configurations_endpoints#get-api-owners-configuration","content":" GET /configs Gets the configuration of the API Owner. cURLPythonJavaScript Copy TOKEN=YOUR_TOKEN curl -X GET \\ -H \"Authorization: Bearer ${TOKEN}\" \\ \"https://api.withleaf.io/services/config/api/configs\" Response# A JSON containing the configuration of the API Owner. Copy { \"apiOwnerUsername\": \"api-owner\", \"leafUserId\": \"\", \"operationsImageCreation\": true, \"geoimagesResolution\": 0.00001, \"geoimagesShape\": \"SQUARE\", \"geoimagesProjection\": \"EPSG:3857\", \"geoimagesColorRamp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0] }, \"fieldsAutoSync\": true, \"fieldsMergeIntersection\": 0.01, \"fieldsAttachIntersection\": 0.01 } "},{"title":"Get Leaf User's Configuration","type":1,"pageTitle":"Configurations Endpoints","url":"docs/configurations_endpoints#get-leaf-users-configuration","content":" GET configs/{leafUserId} Gets the configuration of a Leaf User. cURLPythonJavaScript Copy TOKEN=YOUR_TOKEN LEAF_USER_ID=00000000-0000-0000-0000-000000000000 curl -X GET \\ -H \"Authorization: Bearer ${TOKEN}\" \\ \"https://api.withleaf.io/services/config/api/configs/${LEAF_USER_ID}\" Response# A JSON containing the configuration of the Leaf User. Copy { \"apiOwnerUsername\": \"api-owner\", \"leafUserId\": \"00000000-0000-0000-0000-000000000000\", \"operationsImageCreation\": true, \"geoimagesResolution\": 0.00001, \"geoimagesShape\": \"SQUARE\", \"geoimagesProjection\": \"EPSG:3857\", \"geoimagesColorRamp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0] }, \"fieldsAutoSync\": true, \"fieldsMergeIntersection\": 0.01, \"fieldsAttachIntersection\": 0.01, \"fieldsAutoMerge\": true } "},{"title":"Create Leaf User's Configuration","type":1,"pageTitle":"Configurations Endpoints","url":"docs/configurations_endpoints#create-leaf-users-configuration","content":" POST /configs/{leafUserId} Creates the Configuration for the Leaf User leafUserId. A request body must be provided containing the configurations to be set. All entries are optional, any missing configuration will be inherited from the API Owner's Configuration. Request body example: Copy { \"operationsImageCreation\": true, \"fieldsAutoSync\": true } cURLPythonJavaScript Copy TOKEN=YOUR_TOKEN LEAF_USER_ID=00000000-0000-0000-0000-000000000000 curl -X POST \\ -H \"Authorization: Bearer ${TOKEN}\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"operationsImageCreation\": true, \"fieldsAutoSync\": true }' \\ \"https://api.withleaf.io/services/config/api/configs/${LEAF_USER_ID}\" Response# A JSON containing the configuration of the Leaf User. Copy { \"apiOwnerUsername\": \"api-owner\", \"leafUserId\": \"00000000-0000-0000-0000-000000000000\", \"operationsImageCreation\": true, \"geoimagesResolution\": 0.00001, \"geoimagesShape\": \"SQUARE\", \"geoimagesProjection\": \"EPSG:3857\", \"geoimagesColorRamp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0] }, \"fieldsAutoSync\": true, \"fieldsMergeIntersection\": 0.01, \"fieldsAttachIntersection\": 0.01, \"fieldsAutoMerge\": true } "},{"title":"Update API Owner's Configuration","type":1,"pageTitle":"Configurations Endpoints","url":"docs/configurations_endpoints#update-api-owners-configuration","content":" PATCH /configs Updates the specified fields of Configuration for the API Owner. A resquest body must be provided containing the configurations to be set. All entries are optional. Request body example: Copy { \"operationsImageCreation\": true, \"fieldsAutoSync\": true } cURLPythonJavaScript Copy TOKEN = 'YOUR_TOKEN' curl -X PATCH \\ -H \"Authorization: Bearer ${TOKEN}\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"operationsImageCreation\": true, \"fieldsAutoSync\": true }' \\ 'https://api.withleaf.io/services/config/api/configs' Response# A JSON containing the configuration of the API Owner. Copy { \"apiOwnerUsername\": \"api-owner\", \"leafUserId\": \"\", \"operationsImageCreation\": true, \"geoimagesResolution\": 0.00001, \"geoimagesShape\": \"SQUARE\", \"geoimagesProjection\": \"EPSG:3857\", \"geoimagesColorRamp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0] }, \"fieldsAutoSync\": true, \"fieldsMergeIntersection\": 0.01, \"fieldsAttachIntersection\": 0.01, \"fieldsAutoMerge\": true } "},{"title":"Update Leaf User's Configuration","type":1,"pageTitle":"Configurations Endpoints","url":"docs/configurations_endpoints#update-leaf-users-configuration","content":" PATCH /configs/{leafUserId} Updates the specified fields of Configuration for the Leaf User leafUserId. A resquest body must be provided containing the configurations to be set. All entries are optional. Request body example: Copy { \"operationsImageCreation\": true, \"fieldsAutoSync\": true } cURLPythonJavaScript Copy TOKEN=YOUR_TOKEN LEAF_USER_ID=00000000-0000-0000-0000-000000000000 curl -X PATCH \\ -H \"Authorization: Bearer ${TOKEN}\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"operationsImageCreation\": true, \"fieldsAutoSync\": true }' \\ \"https://api.withleaf.io/services/config/api/configs/${LEAF_USER_ID}\" Response# A JSON containing the configuration of the Leaf User. Copy { \"apiOwnerUsername\": \"api-owner\", \"leafUserId\": \"00000000-0000-0000-0000-000000000000\", \"operationsImageCreation\": true, \"geoimagesResolution\": 0.00001, \"geoimagesShape\": \"SQUARE\", \"geoimagesProjection\": \"EPSG:3857\", \"geoimagesColorRamp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0] }, \"fieldsAutoSync\": true, \"fieldsMergeIntersection\": 0.01, \"fieldsAttachIntersection\": 0.01, \"fieldsAutoMerge\": true } "},{"title":"Delete Leaf User's Configuration","type":1,"pageTitle":"Configurations Endpoints","url":"docs/configurations_endpoints#delete-leaf-users-configuration","content":" DELETE /configs/{leafUserId} Deletes the Configuration from the Leaf User leafUserId. Until a new Configuration is created, the Leaf User will inherit all configurations from the API Owner. cURLPythonJavaScript Copy TOKEN=YOUR_TOKEN LEAF_USER_ID=00000000-0000-0000-0000-000000000000 curl -X DELETE \\ -H \"Authorization: Bearer ${TOKEN}\" \\ \"https://api.withleaf.io/services/config/api/configs/${LEAF_USER_ID}\" "},{"title":"Leaf Connect","type":0,"sectionRef":"#","url":"docs/connect","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Leaf Connect","url":"docs/connect#about","content":"The Leaf API allows an API Owner to grant permission to access Field Boundaries, Field Operations and Machine Data Files to other API Owners. The access is controlled at the Leaf user level by the API account that owns the data. All HTTP methods should be prepended by this service's endpoint: Copy https://api.withleaf.io/services/usermanagement/api "},{"title":"How it works","type":1,"pageTitle":"Leaf Connect","url":"docs/connect#how-it-works","content":"Scenario# API Owner A wants to grant permission to API Owner B to read their fields. 1 - Sharing Relation# The first step is to create a relationship between the API Owners, from who owns the data - the sender (API Owner A) to the receiver (API Owner B). Check the endpoint Create an API Owner sharing relation. The receiver API Owner (API Owner B) must confirm the relationship changing the relation status to ALLOWED. This relationship status can be changed in the future by both sides, but once the sender blocks the relationship, the receiver will not be able to access the data, nor to reactivate the sharing relation status. This step is only necessary once, that is, it is not necessary to repeat this step for new integrations with the same receiver. 2 - Permissions# In this step, permissions are granted for the resources of each Leaf user. More info here. Note: This permission is READ only and FIELDS and OPERATIONS resources are available. Company Company-level sharing is not supported, but the permission can be granted or revoked at the same time the Leaf user is added or removed from the company. 3 - Access# At the end of these steps, API Owner B will be able to visualize the fields, operations and/or machine data files from the shared Leaf user, using the existing field/operations/machine data files endpoints, like this one. "},{"title":"Endpoints","type":1,"pageTitle":"Leaf Connect","url":"docs/connect#endpoints","content":"This service has the following endpoints available: Description\tEndpointsGet API Owner sharing relation\tGET /usermanagement/api/api-owners/sharing-relation/{RelationRole} Get API Owner sharing relation status\tGET /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{targetApiOwner}/status Create an API Owner sharing relation\tPOST /usermanagement/api/api-owners/sharing-relation/receiver Update an API Owner sharing relation status\tPATCH /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{targetApiOwner} Get LeafUser permissions\tGET /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{TargetApiOwner}/users-permissions/{leafUserId} Create a LeafUser permissions\tPOST /usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId} Update LeafUser permissions\tPATCH /usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}/{RESOURCE} Invalidate receiver's tokens\tPOST /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{TargetApiOwner}/invalidate-tokens Delete LeafUser sharing permissions\tDELETE /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{ReceiverApiOwner}/users-permissions/{leafUserId} "},{"title":"Get API Owner sharing relation","type":1,"pageTitle":"Leaf Connect","url":"docs/connect#get-api-owner-sharing-relation","content":" GET /usermanagement/api/api-owners/sharing-relation/{RelationRole} Get all API Owners relation based on the relation role: SENDER or RECEIVER. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver' Response# Copy [ { \"senderApiOwner\": \"{senderApiOwner}\", \"receiverApiOwner\": \"{receiverApiOwner}\", \"status\": \"ALLOWED\" } ] "},{"title":"Get API Owner sharing relation status","type":1,"pageTitle":"Leaf Connect","url":"docs/connect#get-api-owner-sharing-relation-status","content":" GET /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{targetApiOwner}/status Get the relation status based in the relation role (SENDER or RECEIVER). Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/status' Response# A string with one of the following values: PENDING, ALLOWED or BLOCKED. Copy \"PENDING\" "},{"title":"Create an API Owner sharing relation","type":1,"pageTitle":"Leaf Connect","url":"docs/connect#create-an-api-owner-sharing-relation","content":" POST /usermanagement/api/api-owners/sharing-relation/receiver Create a sharing relation between the API Owners. Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"receiverApiOwner\": \"{ReceiverApiOwner}\" }' 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver' Response# Copy { \"senderApiOwner\": \"{senderApiOwner}\", \"receiverApiOwner\": \"{receiverApiOwner}\", \"status\": \"PENDING\" } "},{"title":"Update an API Owner sharing relation status","type":1,"pageTitle":"Leaf Connect","url":"docs/connect#update-an-api-owner-sharing-relation-status","content":" PATCH /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{targetApiOwner} Update the sharing relation status. The values available are ALLOWED or BLOCKED. After the sender creates a relationship, the recevier must approve it by changing the status from PENDING to ALLOWED. Both API Owners can block the relation, but once locked by the sender, there is no way for the receiver to change it again. Request examples# cURLPythonJavaScript Copy curl -X PATCH \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"status\": \"ALLOWED or BLOCKED\" }' 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}' Response# Copy { \"senderApiOwner\": \"{senderApiOwner}\", \"receiverApiOwner\": \"{receiverApiOwner}\", \"status\": \"ALLOWED\" } "},{"title":"Get LeafUser permissions","type":1,"pageTitle":"Leaf Connect","url":"docs/connect#get-leafuser-permissions","content":" GET /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{TargetApiOwner}/users-permissions/{leafUserId} Get all permissions granted to a receiver API Owner for a Leaf user. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}' Response# Copy { \"permissions\": { \"FIELDS\": { \"actions\": [ \"READ\" ] } } } "},{"title":"Create a LeafUser permissions","type":1,"pageTitle":"Leaf Connect","url":"docs/connect#create-a-leafuser-permissions","content":" POST /usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId} Grants permission to a receiver for a given Leaf user resource. Note: shared Leaf users (from other API Owner) are not available for grant permissions Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{\"permissions\":{\"FIELDS\":{\"actions\":[\"READ\"]},\"OPERATIONS\":{\"actions\":[\"READ\"],\"types\":[\"PLANTED\"]}}}' 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}' Response# Copy { \"leafUserId\": \"{leafUserId}\", \"permissions\": { \"FIELDS\": { \"actions\": [ \"READ\" ] }, \"OPERATIONS\": { \"actions\": [ \"READ\" ], \"types\": [ \"PLANTED\" ] } } } Availability# Resource\tActions\tTypesFIELD\tREAD\t- OPERATIONS\tREAD\tAPPLIED, HARVESTED, PLANTED "},{"title":"Update LeafUser permissions","type":1,"pageTitle":"Leaf Connect","url":"docs/connect#update-leafuser-permissions","content":" PATCH /usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}/{RESOURCE} Update the permissions granted to the receiver API Owner. Request examples# cURLPythonJavaScript Copy curl -X PATCH \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{\"actions\":[\"READ\"],\"types\":[\"PLANTED\", \"HARVESTED\"]}' \\ 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}/OPERATIONS' Response# Copy { \"leafUserId\": \"{leafUserId}\", \"permissions\": { \"FIELDS\": { \"actions\": [ \"READ\" ] }, \"OPERATIONS\": { \"actions\": [ \"READ\" ], \"types\": [ \"PLANTED\", \"HARVESTED\" ] } } } Availability# Resource\tActions\tTypesFIELD\tREAD\t- OPERATIONS\tREAD\tAPPLIED, HARVESTED, PLANTED "},{"title":"Invalidate receiver's tokens","type":1,"pageTitle":"Leaf Connect","url":"docs/connect#invalidate-receivers-tokens","content":" POST /usermanagement/api/api-owners/sharing-relation/{RelationRole}/{TargetApiOwner}/invalidate-tokens Invalidate the receiver's tokens created before the current date and time. Request examples# cURLPythonJavaScript Copy curl -X PATCH \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/{TargetApiOwner}/invalidate-tokens' "},{"title":"Delete LeafUser sharing permissions","type":1,"pageTitle":"Leaf Connect","url":"docs/connect#delete-leafuser-sharing-permissions","content":" DELETE /usermanagement/api/api-owners/sharing-relation/{RelationRole}/users-permissions/{leafUserId} Deletes a permission. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/api-owners/sharing-relation/receiver/{ReceiverApiOwner}/users-permissions/{leafUserId}' "},{"title":"Manual File Upload Endpoints","type":0,"sectionRef":"#","url":"docs/converters_endpoints","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Manual File Upload Endpoints","url":"docs/converters_endpoints#about","content":"All HTTP methods should be prepended by this service's endpoint: Copy https://api.withleaf.io/services/operations/api This service has the following endpoints available: Description\tEndpointsUpload a file\tPOST /batch Get a batch\tGET /batch/{id} Get all batches\tGET /batch Retry a batch\tPUT /batch/{id}/retry To easily test these endpoints, we recommend using our Postman collection. requires Leaf User You will need a Leaf User to manually upload files. If you don't have a Leaf User, see the Leaf user overview "},{"title":"Upload a file","type":1,"pageTitle":"Manual File Upload Endpoints","url":"docs/converters_endpoints#upload-a-file","content":" POST /batch Creates a new file in Leaf. The file must be sent as a zip. This endpoint accepts a .zip of operation files, detects which files are in the .zip, and returns the ID of the process, which can in turn be used to retrieve the ID's of the files being processed. File size limit of 3 GB Currently, our upload endpoints accepts files with the maximum size limited to 3 gigabytes. This endpoint receives two required URL parameters, a leafUserId and provider A provider can be set as one of the following: Copy Other Leaf ClimateFieldView CNHI JohnDeere Trimble AgLeader Farmobile PrecisionPlanting If provider is set to \"Other\", Leaf will detect which files are present in the .zip file and process them accordingly. Leaf will detect files present in the uploaded .zip and create file ids for the files that are detected in the uploaded .zip. These files can then be accessed individually by their file ID, batch ID, or their associated field boundary. Expected file structures from each provider are listed below. Very often these default file structures are edited by users. In these cases Leaf attempts to automatically repair the file structure and find all necessary files within any uploaded .zip. The following file formats from each provider are supported: JohnDeere# File Format\tMonitor Model\tDetailsGS3\tGreenStar 3 – 2630\t/GS3_2630/profile/RCD/EIC/global.ver Gen4\tGen 4 - 4600/4630\t/JD-Data/log/user defined name/*.jdl Shapefile\tExported from MyJohnDeere\tShapefile with extra metadata in a .json file Expected file structure# GreenStar 4 (4600+) Copy jd-data └── log └── *.jdl GreenStar 3 (2630) Copy GS3_2630 └── RCD └── EIC └── global.ver └── documentation └── ... ├── *.fdd └── *.fdl Green Star 2 (2600) Copy ... └── RCD ├── *.fdd └── *.fdl Climate FieldView# File Format\tMonitor Model\tDetailsdat\tAll files from Climate FieldView\tA zip with .dat files Expected file structure# 20|20 SeedSense Generation 1 and Generation 2 Copy ... ├── harvest_*.dat – Harvest data ├── field_map_*.dat – Planting data └── liquid_map_*.dat - AsApplied spraying data 20|20 SeedSense Generation 3 Copy ... └── *.2020 CNHI# File Format\tMonitor Model\tDetailsCN1\tCaseIH monitors or exported from CNH Connects\t/file.cn1/index.vy1 Expected file structure# Voyager 2 Copy *.cn1 └── ... └── *.vy1 AgLeader# File Format\tMonitor Model\tDetailsyld\tYM2000, PFAdvantage & other OEM systems\tA zip with .yld files ilf\tINTEGRA / Insight / Edge\tA zip with .ilf files agdata\tINTEGRA / VERSA / COMPASS\tA zip with .agdata files Expected file structure# AgLeader Integra (versions 3.5+), Versa Copy ... ├── *.agdata └── *.agsetup AgLeader Edge, Insight, and Integra (version 3.4) Copy ... └── *.ilf AgLeader PF Advantage, PF 3000, PF 3000 Pro, YM2000 Copy ... └── *.yld Trimble# File Format\tMonitor Model\tDetailsAgData\tFMX and CFX monitors\t/AgData/ AgGPS\tTMX and GFX monitors\t/AgGPS/ Expected file structure# GFX-750, TMX-2050 Copy Agdata ├── Fields └── *.agf ├── implements └── *.agi ├── prescriptions └── *.agm ├── Tasks └── *.agt ├── Users └── *.agu └── vehicles └── *.agv CFX-750, FMX Copy AgGPS └── Data └── \"Grower\" └── Farm └── field └── \"Task\" ├── *.cpg ├── *.dbf ├── *.shp └── *.shx Precision Planting (beta)# File Format\tMonitor Model\tDetailsPP2020\t20|20\tA zip with .2020 files. Expected file structure# 20|20 SeedSense Generation 1 and Generation 2 Copy ... ├── harvest_*.dat – Harvest data ├── field_map_*.dat – Planting data └── liquid_map_*.dat - AsApplied spraying data 20|20 SeedSense Generation 3 Copy ... └── *.2020 ISOXML# Expected file structure# Copy TASKDATA ├── *.XML └── *.bin CLAAS# Expected file structure# Copy TASKDATA ├── *.XML └── *.bin Kuhn# Expected file structure# Copy TASKDATA ├── *.XML └── *.bin Kverneland Group# Expected file structure# Copy TASKDATA ├── *.XML └── *.bin Müller-Elektronik# Expected file structure# Copy TASKDATA ├── *.XML └── *.bin Teknomika# Expected file structure# Copy TASKDATA ├── *.XML └── *.bin Topcon Precision Agriculture# Expected file structure# Copy TASKDATA ├── *.XML └── *.bin Farmobile# File Format\tDetailsGeoJSON\tGeoJSON files exported from Farmobile. Since GeoJSON files do not contain information on the units used, we assume the default units from Farmobile are being used. Other# File Format\tDetailsShapefile\tShapefiles exported from SMS and Raven. Since Shapefiles do not contain information on the units used, we assume the default units from the provider will be used. Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -F 'file=shapefile.zip' \\ 'https://api.withleaf.io/services/operations/api/batch' \\ 'provider=JohnDeere&leafUserId=id' Response# Copy { \"id\": \"996aea67-52bc-4d4b-9b77-028756dc0ee9\", \"leafUserId\": \"ede8f781-1d55-4b2d-83a1-6785ddab6e1d\", \"fileName\": \"Climate.zip\", \"size\": 8652951, \"provider\": \"Other\", \"status\": \"RECEIVED\", \"uploadTimestamp\": \"2021-03-12T19:50:55.567755Z\" } This id can then be queried to retrieve on Get batch to get the individual file ID's. Then you can query each of the files individually withGet a File or all of them, filtering by batchId, onGet all Files. Batch status# The status key will evolve accordingly to the following states: Status\tDescriptionRECEIVED\tIs the default state for every batch created PROCESSED\tWhen all the files included in the batch were processed, and at least one file have status SUCCESS FAILED\tThe batch did not generated any leaf files with status SUCCESS The messages with FAILED status have the key statusDetails. The `statusDetails`` is just informative and should not be used programatically. Copy { \"id\": \"c21e6495-3e39-4c5f-b35c-d33fa06c25d8\", \"leafUserId\": \"fc7c52ad-d228-4332-9e18-de979a293457\", \"fileName\": \"Climate.zip\", \"size\": 8652951, \"provider\": \"Other\", \"status\": \"FAILED\", \"statusDetails\": \"No operation found. Check file format before re-trying or contact support. Check file format before re-trying or contact support\", \"uploadTimestamp\": \"2021-03-12T19:50:55.567755Z\" } The following status can be present on statusDetails: Status\tDescriptionNo valid files found\tUnable to find a valid file based on supported extensions and expected file structure Leaf internal error. Please contact Support\tInternal error that need to be reported Files found but unable to read. Please check file format before re-trying or contact Support\tA valid file was found but could not be converted "},{"title":"Get Batch upload","type":1,"pageTitle":"Manual File Upload Endpoints","url":"docs/converters_endpoints#get-batch-upload","content":" GET /batch/{batch_id} Once you've uploaded files, you can then query these files individually, merge the files, or query for them via Get all Files. You can also query the batch upload ID to see a list of files generated in the upload and a status of the upload with this endpoint. Request examples# cURLPythonJavaScript Copy import requests TOKEN = 'YOUR_TOKEN' endpoint = 'https://api.withleaf.io/services/operations/api/batch/{batch_id}' headers = {'Authorization': f'Bearer {TOKEN}'} response = requests.get(endpoint, headers=headers) print(response.json()) Response# Copy { \"id\": \"9b561906-efac-43a3-9378-641e3698da5d\", \"leafUserId\": \"1481bc9b-cdc7-45c1-9f0e-592da6306dfe\", \"provider\": \"Other\", \"status\": \"PROCESSED\", \"leafFiles\": [ \"f14203df-4144-43b7-a383-2ed321f395ce\", \"810b1475-cb49-437b-8658-d29038ce2fa4\" ] } "},{"title":"Get all Batches","type":1,"pageTitle":"Manual File Upload Endpoints","url":"docs/converters_endpoints#get-all-batches","content":" GET /batch Once you've uploaded files, you can then query these files individually, merge the files, or query for them via Get all Files. You can also query the batch upload ID to see a list of files generated in the upload and a status of the upload with this endpoint. Request examples# cURLPythonJavaScript Copy import requests TOKEN = 'YOUR_TOKEN' endpoint = 'https://api.withleaf.io/services/operations/api/batch' headers = {'Authorization': f'Bearer {TOKEN}'} response = requests.put(endpoint, headers=headers) print(response.json()) Response# Copy [ { \"id\": \"9e47ae29-6a84-4a9c-9e5f-01802f6dceea\", \"leafUserId\": \"5ded9409-c99f-4379-9173-c01b1631f274\", \"provider\": \"Other\", \"status\": \"PROCESSED\", \"leafFiles\": [ \"74d5aeb6-9a0e-43c6-986c-a5f17eecbddc\", \"475fcad3-b534-409d-8c8b-cec4dabd1b8b\" ] } ] "},{"title":"Retry a batch","type":1,"pageTitle":"Manual File Upload Endpoints","url":"docs/converters_endpoints#retry-a-batch","content":" PUT /batch/{id}/retry If a batch upload does not complete as expected, this endpoint allows you to try again. This action will reprocess the fragments of uploaded data that didn't succeed processing before, keeping existing converted files unaffected. Request examples# cURLPythonJavaScript Copy curl -X PUT \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/batch/{id}/retry' Response# Copy { \"id\": \"36d8551f-409d-41f2-94b4-04c9fe16289b\", \"leafUserId\": \"089bb77b-2415-43df-a246-6c0a5937c774\", \"fileName\": \"filename.zip\", \"size\": 8652951, \"provider\": \"Other\", \"status\": \"RECEIVED\", \"uploadTimestamp\": \"2021-03-12T19:50:55.567755Z\" } Please note Once you have finished setting up manual file upload, refer to machine file conversionnext "},{"title":"Manual File Upload Overview","type":0,"sectionRef":"#","url":"docs/converters_overview","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Manual File Upload Overview","url":"docs/converters_overview#about","content":"There are two ways machine files can be imported via Leaf: provider integration and manual file upload. Manual file upload is useful for your customers that are not wirelessly connected to a provider. Leaf helps with the manual file upload process by: Detecting a range of file formats being uploadedConverting proprietary formats into a standardized format Merging and processing files into the desired output In this section, you will find more information on the Leaf Link pre-built file upload widget, manual file upload endpoints and supported file types. Please refer to machine file conversion for more relevant information on file conversion after you've set up manual file upload. Or skip straight there if you'd rather import the files via provider authentication. "},{"title":"Leaf Link - Upload Widget","type":1,"pageTitle":"Manual File Upload Overview","url":"docs/converters_overview#leaf-link---upload-widget","content":"Leaf Link provides a pre-built file upload widget that requires minimal code to implement. The file upload widget allows your end users to upload various machine file formats for translation using Leaf’s API. You can find more information on how to use Leaf Link here. "},{"title":"Endpoints and supported file formats","type":1,"pageTitle":"Manual File Upload Overview","url":"docs/converters_overview#endpoints-and-supported-file-formats","content":"Head to the next page for the details on endpoints and supported file formats. Note: When manually uploading fieldops data (in a zip file), you can select which provider the files inside the zip came from. If you are unsure or you know that there are files from more than one provider, Leaf can automatically detect, split and process each file format. "},{"title":"AgLeader Credentials","type":0,"sectionRef":"#","url":"docs/credentials_agleader","content":"","keywords":""},{"title":"AgLeader Credentials Endpoints","type":1,"pageTitle":"AgLeader Credentials","url":"docs/credentials_agleader#agleader-credentials-endpoints","content":""},{"title":"Get the AgLeader credentials","type":1,"pageTitle":"AgLeader Credentials","url":"docs/credentials_agleader#get-the-agleader-credentials","content":" GET /users/{leafUserId}/ag-leader-credentials Get the AgLeader credentials of the Leaf User based on its id and returns a JSON with the credentials. If during background processing we detect that this credential is no longer valid, the value of the status will be changed. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/ag-leader-credentials' Response# Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"accessToken\": \"str\", \"refreshToken\": \"str\", \"publicKey\": \"str\", \"privateKey\": \"str\" } "},{"title":"Create a AgLeader credentials","type":1,"pageTitle":"AgLeader Credentials","url":"docs/credentials_agleader#create-a-agleader-credentials","content":" POST /users/{leafUserId}/ag-leader-credentials Create a AgLeader credentials for the Leaf User. Request body# Copy { \"accessToken\": \"str\", \"refreshToken\": \"str\", \"publicKey\": \"str\", \"privateKey\": \"str\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -H 'Content-Type: application/json' \\ -d '{ \"accessToken\": \"str\",\"refreshToken\": \"str\",\"publicKey\":\"str\", \"privateKey\":\"str\"}' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/ag-leader-credentials' Response# A AgLeader Credentials with status. Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"accessToken\": \"str\", \"refreshToken\": \"str\", \"publicKey\": \"str\", \"privateKey\": \"str\" } "},{"title":"Delete AgLeader credentials","type":1,"pageTitle":"AgLeader Credentials","url":"docs/credentials_agleader#delete-agleader-credentials","content":" DELETE /users/{leafUserId}/ag-leader-credentials Delete Leaf User's AgLeader credentials. Request examples# cURLJavaScriptPython Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/ag-leader-credentials' "},{"title":"Troubleshooting","type":1,"pageTitle":"AgLeader Credentials","url":"docs/credentials_agleader#troubleshooting","content":"With these endpoints, you can do some troubleshooting to see your credential's health. "},{"title":"Events","type":1,"pageTitle":"AgLeader Credentials","url":"docs/credentials_agleader#events","content":" GET /users/{leafUserId}/ag-leader-credentials/events Get the logs of the provider credential based on the LeafUserId sent. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId} /ag-leader-credentials/events' Response# Copy [ { \"body\": \"string\", \"createdDate\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"headers\": \"string\", \"id\": \"string\", \"statusCode\": \"int\" } ] warning The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available. "},{"title":"Agvance Credentials","type":0,"sectionRef":"#","url":"docs/credentials_agvance","content":"","keywords":""},{"title":"Agvance Credentials Endpoints","type":1,"pageTitle":"Agvance Credentials","url":"docs/credentials_agvance#agvance-credentials-endpoints","content":""},{"title":"Get the Agvance credentials","type":1,"pageTitle":"Agvance Credentials","url":"docs/credentials_agvance#get-the-agvance-credentials","content":" GET /users/{leafUserId}/agvance-credentials Get the Agvance credentials of the Leaf User based on its id and returns a JSON with the credentials. If during background processing we detect that this credential is no longer valid, the value of the status will be changed. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/agvance-credentials' Response# Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"clientEnvironment\": \"STAGE or PRODUCTION\", \"username\": \"str\", \"password\": \"str\", \"databaseId\": \"str\", \"sessionId\": \"str\", \"apiKey\": \"str\" } "},{"title":"Create a Agvance credentials","type":1,"pageTitle":"Agvance Credentials","url":"docs/credentials_agvance#create-a-agvance-credentials","content":" POST /users/{leafUserId}/agvance-credentials Create a Agvance credentials for the Leaf User. Request body# Copy { \"apiKey\": \"str\", \"clientEnvironment\": \"STAGE or PRODUCTION\", \"databaseId\": \"str\", \"password\": \"str\", \"username\": \"str\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{\"apiKey\": \"str\", \"clientEnvironment\": \"STAGE or PRODUCTION\", \"databaseId\": \"str\", \"password\": \"str\", \"username\": \"str\"}' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/agvance-credentials' Response# A Agvance Credentials with status. Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"clientEnvironment\": \"STAGE or PRODUCTION\", \"username\": \"str\", \"password\": \"str\", \"databaseId\": \"str\", \"sessionId\": \"str\", \"apiKey\": \"str\" } "},{"title":"Delete Agvance credentials","type":1,"pageTitle":"Agvance Credentials","url":"docs/credentials_agvance#delete-agvance-credentials","content":" POST /users/{leafUserId}/agvance-credentials Delete Leaf User's Agvance credentials. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/agvance-credentials' "},{"title":"Troubleshooting","type":1,"pageTitle":"Agvance Credentials","url":"docs/credentials_agvance#troubleshooting","content":"With these endpoints, you can do some troubleshooting to see your credential's health. "},{"title":"Events","type":1,"pageTitle":"Agvance Credentials","url":"docs/credentials_agvance#events","content":" GET /users/{leafUserId}/agvance-credentials/events Get the logs of the provider credential based on the LeafUserId sent. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId} /agvance-credentials/events' Response# Copy [ { \"body\": \"string\", \"createdDate\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"headers\": \"string\", \"id\": \"string\", \"statusCode\": \"int\" } ] warning The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available. "},{"title":"Climate FieldView Credentials","type":0,"sectionRef":"#","url":"docs/credentials_cfv","content":"","keywords":""},{"title":"Climate FieldView Credentials Endpoints","type":1,"pageTitle":"Climate FieldView Credentials","url":"docs/credentials_cfv#climate-fieldview-credentials-endpoints","content":""},{"title":"Get the Climate Fieldview credentials","type":1,"pageTitle":"Climate FieldView Credentials","url":"docs/credentials_cfv#get-the-climate-fieldview-credentials","content":" GET /users/{leafUserId}/climate-field-view-credentials Get the Climate FieldView credentials of the Leaf User based on its id and returns a JSON with the credentials. If during background processing we detect that this credential is no longer valid, the value of the status will be changed. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/climate-field-view-credentials' Response# Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"tokenMetadata\": {\"scopes\": [\"str\"]}, \"clientId\": \"str\", \"clientSecret\": \"str\", \"apiKey\": \"str\", \"refreshToken\": \"str\", \"accessToken\": \"str\" } "},{"title":"Create a Climate Fieldview credentials","type":1,"pageTitle":"Climate FieldView Credentials","url":"docs/credentials_cfv#create-a-climate-fieldview-credentials","content":" POST /users/{leafUserId}/climate-field-view-credentials Create a Climate FieldView credentials for the Leaf User. Request body# Copy { \"clientId\": \"str\", \"clientSecret\": \"str\", \"apiKey\": \"str\", \"refreshToken\": \"str\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{\"clientId\": \"str\",\"clientSecret\": \"str\",\"apiKey\": \"str\",\"refreshToken\": \"str\"}' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/climate-field-view-credentials' Response# A Climate FieldView credentials with status. Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"tokenMetadata\": {\"scopes\": [\"str\"]}, \"clientId\": \"str\", \"clientSecret\": \"str\", \"apiKey\": \"str\", \"refreshToken\": \"str\", \"accessToken\": \"str\" } "},{"title":"Delete Climate Fieldview credentials","type":1,"pageTitle":"Climate FieldView Credentials","url":"docs/credentials_cfv#delete-climate-fieldview-credentials","content":" DELETE /users/{leafUserId}/climate-field-view-credentials Delete Leaf User's Climate FieldView credentials. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/climate-field-view-credentials' "},{"title":"Troubleshooting","type":1,"pageTitle":"Climate FieldView Credentials","url":"docs/credentials_cfv#troubleshooting","content":"With these endpoints, you can do some troubleshooting to see your credential's health. "},{"title":"Events","type":1,"pageTitle":"Climate FieldView Credentials","url":"docs/credentials_cfv#events","content":" GET /users/{leafUserId}/climate-field-view-credentials/events Get the logs of the provider credential based on the LeafUserId sent. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId} /climate-field-view-credentials/events' Response# Copy [ { \"body\": \"string\", \"createdDate\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"headers\": \"string\", \"id\": \"string\", \"statusCode\": \"int\" } ] warning The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available. "},{"title":"CNHI Credentials","type":0,"sectionRef":"#","url":"docs/credentials_cnhi","content":"","keywords":""},{"title":"CNHI Credentials Endpoints","type":1,"pageTitle":"CNHI Credentials","url":"docs/credentials_cnhi#cnhi-credentials-endpoints","content":""},{"title":"Get the CNHI credentials","type":1,"pageTitle":"CNHI Credentials","url":"docs/credentials_cnhi#get-the-cnhi-credentials","content":" GET /users/{leafUserId}/cnhi-credentials Get the CNHI credentials of the Leaf User based on its id and returns a JSON with the credentials. If during background processing we detect that this credential is no longer valid, the value of the status will be changed. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/cnhi-credentials' Response# Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"clientId\": \"str\", \"clientSecret\": \"str\", \"refreshToken\": \"str\", \"clientEnvironment\": \"STAGE or PRODUCTION\", \"subscriptionKey\": \"str\" } "},{"title":"Create a CNHI credentials","type":1,"pageTitle":"CNHI Credentials","url":"docs/credentials_cnhi#create-a-cnhi-credentials","content":" POST /users/{leafUserId}/cnhi-credentials Create a CNHI credentials for the Leaf User. Request body# Copy { \"clientId\": \"str\", \"clientSecret\": \"str\", \"subscriptionKey\": \"str\", \"refreshToken\": \"str\", \"clientEnvironment\": \"STAGE or PRODUCTION\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -H 'Content-Type: application/json' \\ -d '{\"clientId\": \"str\", \"clientSecret\": \"str\", \"subscriptionKey\": \"str\", \"refreshToken\": \"str\", \"clientEnvironment\": \"STAGE or PRODUCTION\"}' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/cnhi-credentials' Response# A CNHI credentials with status. Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"clientId\": \"str\", \"clientSecret\": \"str\", \"refreshToken\": \"str\", \"clientEnvironment\": \"STAGE or PRODUCTION\", \"subscriptionKey\": \"str\" } "},{"title":"Delete CNHI credentials","type":1,"pageTitle":"CNHI Credentials","url":"docs/credentials_cnhi#delete-cnhi-credentials","content":" DELETE /users/{leafUserId}/cnhi-credentials Delete Leaf User's CNHI credentials. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/cnhi-credentials' "},{"title":"Troubleshooting","type":1,"pageTitle":"CNHI Credentials","url":"docs/credentials_cnhi#troubleshooting","content":"With these endpoints, you can do some troubleshooting to see your credential's health. "},{"title":"Events","type":1,"pageTitle":"CNHI Credentials","url":"docs/credentials_cnhi#events","content":" GET /users/{leafUserId}/cnhi-credentials/events Get the logs of the provider credential based on the LeafUserId sent. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId} /cnhi-credentials/events' Response# Copy [ { \"body\": \"string\", \"createdDate\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"headers\": \"string\", \"id\": \"string\", \"statusCode\": \"int\" } ] warning The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available. "},{"title":"John Deere Credentials","type":0,"sectionRef":"#","url":"docs/credentials_john_deere","content":"","keywords":""},{"title":"John Deere Credentials Endpoints","type":1,"pageTitle":"John Deere Credentials","url":"docs/credentials_john_deere#john-deere-credentials-endpoints","content":""},{"title":"Get the John Deere credentials","type":1,"pageTitle":"John Deere Credentials","url":"docs/credentials_john_deere#get-the-john-deere-credentials","content":" GET /users/{leafUserId}/john-deere-credentials Get the John Deere credentials of the Leaf User based on its id and returns a JSON with the credentials. If during background processing we detect that this credential is no longer valid, the value of the status will be changed. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/john-deere-credentials' Response# Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"tokenMetadata\": {\"scopes\": [\"str\"]}, \"clientKey\": \"str\", \"clientSecret\": \"str\", \"accessToken\": \"str\", \"refreshToken\": \"str\", \"clientEnvironment\": \"STAGE or PRODUCTION\" } "},{"title":"Create a John Deere credentials","type":1,"pageTitle":"John Deere Credentials","url":"docs/credentials_john_deere#create-a-john-deere-credentials","content":" POST /users/{leafUserId}/john-deere-credentials Create a John Deere credentials for the Leaf User. Request body# Copy { \"clientKey\": \"str\", \"clientSecret\": \"str\", \"refreshToken\": \"str\", \"clientEnvironment\": \"STAGE or PRODUCTION\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{\"clientKey\": \"str\",\"clientSecret\": \"str\",\"refreshToken\": \"str\",\"clientEnvironment\": \"STAGE or PRODUCTION\"}' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/john-deere-credentials' Response# A John Deere credentials with status. Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"tokenMetadata\": {\"scopes\": [\"str\"]}, \"clientKey\": \"str\", \"clientSecret\": \"str\", \"accessToken\": \"str\", \"refreshToken\": \"str\", \"clientEnvironment\": \"STAGE or PRODUCTION\" } "},{"title":"Delete John Deere credentials","type":1,"pageTitle":"John Deere Credentials","url":"docs/credentials_john_deere#delete-john-deere-credentials","content":" DELETE /users/{leafUserId}/john-deere-credentials Delete Leaf User's John Deere credentials. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/john-deere-credentials' "},{"title":"Troubleshooting","type":1,"pageTitle":"John Deere Credentials","url":"docs/credentials_john_deere#troubleshooting","content":"With these endpoints, you can do some troubleshooting to see your credential's health. "},{"title":"Events","type":1,"pageTitle":"John Deere Credentials","url":"docs/credentials_john_deere#events","content":" GET /users/{leafUserId}/john-deere-credentials/events Get the logs of the provider credential based on the LeafUserId sent. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId} /john-deere-credentials/events' Response# Copy [ { \"body\": \"string\", \"createdDate\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"headers\": \"string\", \"id\": \"string\", \"statusCode\": \"int\" } ] warning The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available. "},{"title":"Raven Slingshot Credentials","type":0,"sectionRef":"#","url":"docs/credentials_raven_slingshot","content":"","keywords":""},{"title":"Raven Slingshot Credentials Endpoints","type":1,"pageTitle":"Raven Slingshot Credentials","url":"docs/credentials_raven_slingshot#raven-slingshot-credentials-endpoints","content":""},{"title":"Get the Raven Slingshot credentials","type":1,"pageTitle":"Raven Slingshot Credentials","url":"docs/credentials_raven_slingshot#get-the-raven-slingshot-credentials","content":" GET /users/{leafUserId}/raven-slingshot-credentials Get the Raven Slingshot credentials of the Leaf User based on its id and returns a JSON with the credentials. If during background processing we detect that this credential is no longer valid, the value of the status will be changed. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials' Response# Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"apiKey\": \"str\", \"accessKey\": \"str\", \"sharedSecret\": \"str\" } "},{"title":"Create a Raven Slingshot credentials","type":1,"pageTitle":"Raven Slingshot Credentials","url":"docs/credentials_raven_slingshot#create-a-raven-slingshot-credentials","content":" POST /users/{leafUserId}/raven-slingshot-credentials Create a Raven Slingshot credentials for the Leaf User. Request body# Copy { \"apiKey\": \"str\", \"accessKey\": \"str\", \"sharedSecret\": \"str\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -H 'Content-Type: application/json' \\ -d '{ \"apiKey\": \"str\", \"accessKey\": \"str\", \"sharedSecret\": \"str\" }' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials' Response# A Raven Slingshot Credentials with status. Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"apiKey\": \"str\", \"accessKey\": \"str\", \"sharedSecret\": \"str\" } "},{"title":"Delete Raven Slingshot credentials","type":1,"pageTitle":"Raven Slingshot Credentials","url":"docs/credentials_raven_slingshot#delete-raven-slingshot-credentials","content":" DELETE /users/{leafUserId}/raven-slingshot-credentials Delete Leaf User's Raven Slingshot credentials. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-slingshot-credentials' "},{"title":"Troubleshooting","type":1,"pageTitle":"Raven Slingshot Credentials","url":"docs/credentials_raven_slingshot#troubleshooting","content":"With these endpoints, you can do some troubleshooting to see your credential's health. "},{"title":"Events","type":1,"pageTitle":"Raven Slingshot Credentials","url":"docs/credentials_raven_slingshot#events","content":" GET /users/{leafUserId}/raven-slingshot-credentials/events Get the logs of the provider credential based on the LeafUserId sent. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId} /raven-slingshot-credentials/events' Response# Copy [ { \"body\": \"string\", \"createdDate\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"headers\": \"string\", \"id\": \"string\", \"statusCode\": \"int\" } ] warning The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available. "},{"title":"Raven Credentials","type":0,"sectionRef":"#","url":"docs/credentials_raven","content":"","keywords":""},{"title":"Raven Credentials Endpoints","type":1,"pageTitle":"Raven Credentials","url":"docs/credentials_raven#raven-credentials-endpoints","content":""},{"title":"Get the Raven credentials","type":1,"pageTitle":"Raven Credentials","url":"docs/credentials_raven#get-the-raven-credentials","content":" GET /users/{leafUserId}/raven-credentials Get the Raven credentials of the Leaf User based on its id and returns a JSON with the credentials. If during background processing we detect that this credential is no longer valid, the value of the status will be changed. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-credentials' Response# Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"tokenMetadata\": {\"scopes\": [\"str\"]}, \"clientId\": \"str\", \"clientSecret\": \"str\", \"refreshToken\": \"str\", \"accessToken\": \"str\" } "},{"title":"Create a Raven credentials","type":1,"pageTitle":"Raven Credentials","url":"docs/credentials_raven#create-a-raven-credentials","content":" POST /users/{leafUserId}/raven-credentials Create a Raven credentials for the Leaf User. Request body# Copy { \"clientId\": \"str\", \"clientSecret\": \"str\", \"refreshToken\": \"str\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -H 'Content-Type: application/json' \\ -d '{ \"clientId\": \"str\",\"clientSecret\": \"str\",\"refreshToken\":\"str\"}' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-credentials' Response# A Raven Credentials with status. Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"tokenMetadata\": {\"scopes\": [\"str\"]}, \"clientId\": \"str\", \"clientSecret\": \"str\", \"refreshToken\": \"str\", \"accessToken\": \"str\" } "},{"title":"Delete Raven credentials","type":1,"pageTitle":"Raven Credentials","url":"docs/credentials_raven#delete-raven-credentials","content":" DELETE /users/{leafUserId}/raven-credentials Delete Leaf User's Raven credentials. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/raven-credentials' "},{"title":"Troubleshooting","type":1,"pageTitle":"Raven Credentials","url":"docs/credentials_raven#troubleshooting","content":"With these endpoints, you can do some troubleshooting to see your credential's health. "},{"title":"Events","type":1,"pageTitle":"Raven Credentials","url":"docs/credentials_raven#events","content":" GET /users/{leafUserId}/raven-credentials/events Get the logs of the provider credential based on the LeafUserId sent. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId} /raven-credentials/events' Response# Copy [ { \"body\": \"string\", \"createdDate\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"headers\": \"string\", \"id\": \"string\", \"statusCode\": \"int\" } ] warning The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available. "},{"title":"Sentera Credentials","type":0,"sectionRef":"#","url":"docs/credentials_sentera","content":"","keywords":""},{"title":"Sentera Credentials Endpoints","type":1,"pageTitle":"Sentera Credentials","url":"docs/credentials_sentera#sentera-credentials-endpoints","content":""},{"title":"Get the Sentera credentials","type":1,"pageTitle":"Sentera Credentials","url":"docs/credentials_sentera#get-the-sentera-credentials","content":" GET /users/{leafUserId}/sentera-credentials Get the Sentera credentials of the Leaf User based on its id and returns a JSON with the credentials. If during background processing we detect that this credential is no longer valid, the value of the status will be changed. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/sentera-credentials' Response# Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"username\": \"str\", \"authToken\": \"str\", \"organizationId\": \"str\", \"organizationName\": \"str\" } "},{"title":"Create a Sentera credentials","type":1,"pageTitle":"Sentera Credentials","url":"docs/credentials_sentera#create-a-sentera-credentials","content":" POST /users/{leafUserId}/sentera-credentials Create a Sentera credentials for the Leaf User. Request body# Copy { \"username\": \"str\", \"password\": \"str\", \"organizationName\":\"str\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -H 'Content-Type: application/json' \\ -d '{ \"username\": \"str\", \"password\": \"str\", \"organizationName\": \"str\"}' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/sentera-credentials' Response# A Sentera Credentials with status. Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"username\": \"str\", \"authToken\": \"str\", \"organizationId\": \"str\", \"organizationName\": \"str\" } "},{"title":"Delete Sentera credentials","type":1,"pageTitle":"Sentera Credentials","url":"docs/credentials_sentera#delete-sentera-credentials","content":" DELETE /users/{leafUserId}/sentera-credentials Delete Leaf User's Sentera credentials. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/sentera-credentials' "},{"title":"Troubleshooting","type":1,"pageTitle":"Sentera Credentials","url":"docs/credentials_sentera#troubleshooting","content":"With these endpoints, you can do some troubleshooting to see your credential's health. "},{"title":"Events","type":1,"pageTitle":"Sentera Credentials","url":"docs/credentials_sentera#events","content":" GET /users/{leafUserId}/sentera-credentials/events Get the logs of the provider credential based on the LeafUserId sent. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId} /sentera-credentials/events' Response# Copy [ { \"body\": \"string\", \"createdDate\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"headers\": \"string\", \"id\": \"string\", \"statusCode\": \"int\" } ] warning The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available. "},{"title":"Stara Credentials","type":0,"sectionRef":"#","url":"docs/credentials_stara","content":"","keywords":""},{"title":"Stara Credentials Endpoints","type":1,"pageTitle":"Stara Credentials","url":"docs/credentials_stara#stara-credentials-endpoints","content":""},{"title":"Get the Stara credentials","type":1,"pageTitle":"Stara Credentials","url":"docs/credentials_stara#get-the-stara-credentials","content":" GET /users/{leafUserId}/stara-credentials Get the Stara credentials of the Leaf User based on its id and returns a JSON with the credentials. If during background processing we detect that this credential is no longer valid, the value of the status will be changed. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/stara-credentials' Response# Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"accessTokenClient\": \"str\", \"refreshToken\": \"str\", \"accessToken\": \"str\", \"apiKey\": \"str\" } "},{"title":"Create a Stara credentials","type":1,"pageTitle":"Stara Credentials","url":"docs/credentials_stara#create-a-stara-credentials","content":" POST /users/{leafUserId}/stara-credentials Create a Stara credentials for the Leaf User. Request body# Copy { \"apiKey\": \"str\", \"accessToken\": \"str\", \"accessTokenClient\": \"str\", \"refreshToken\": \"str\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -H 'Content-Type: application/json' \\ -d '{\"apiKey\": \"str\", \"accessToken\": \"str\", \"accessTokenClient\": \"str\", \"refreshToken\": \"str\"}' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/stara-credentials' Response# A Stara Credentials with status. Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"accessTokenClient\": \"str\", \"refreshToken\": \"str\", \"accessToken\": \"str\", \"apiKey\": \"str\" } "},{"title":"Delete Stara credentials","type":1,"pageTitle":"Stara Credentials","url":"docs/credentials_stara#delete-stara-credentials","content":" DELETE /users/{leafUserId}/stara-credentials Delete Leaf User's Stara credentials. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/stara-credentials' "},{"title":"Troubleshooting","type":1,"pageTitle":"Stara Credentials","url":"docs/credentials_stara#troubleshooting","content":"With these endpoints, you can do some troubleshooting to see your credential's health. "},{"title":"Events","type":1,"pageTitle":"Stara Credentials","url":"docs/credentials_stara#events","content":" GET /users/{leafUserId}/stara-credentials/events Get the logs of the provider credential based on the LeafUserId sent. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId} /stara-credentials/events' Response# Copy [ { \"body\": \"string\", \"createdDate\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"headers\": \"string\", \"id\": \"string\", \"statusCode\": \"int\" } ] warning The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available. "},{"title":"Trimble Credentials","type":0,"sectionRef":"#","url":"docs/credentials_trimble","content":"","keywords":""},{"title":"Trimble Credentials Endpoints","type":1,"pageTitle":"Trimble Credentials","url":"docs/credentials_trimble#trimble-credentials-endpoints","content":""},{"title":"Get the Trimble credentials","type":1,"pageTitle":"Trimble Credentials","url":"docs/credentials_trimble#get-the-trimble-credentials","content":" GET /users/{leafUserId}/trimble-credentials Get the Trimble credentials of the Leaf User based on its id and returns a JSON with the credentials. If during background processing we detect that this credential is no longer valid, the value of the status will be changed. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials' Response# Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"tokenMetadata\": {\"scopes\": [\"str\"]}, \"clientId\": \"str\", \"clientSecret\": \"str\", \"accessToken\": \"str\", \"refreshToken\": \"str\" } "},{"title":"Create a Trimble credentials","type":1,"pageTitle":"Trimble Credentials","url":"docs/credentials_trimble#create-a-trimble-credentials","content":" POST /users/{leafUserId}/trimble-credentials Create a Trimble credentials for the Leaf User. Request body# Copy { \"clientId\": \"str\", \"clientSecret\": \"str\", \"refreshToken\": \"str\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{\"clientId\": \"str\",\"clientSecret\": \"str\",\"refreshToken\": \"str\"}' 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials' Response# A Trimble credentials with status. Copy { \"id\": \"str\", \"status\": \"str\", \"createdTime\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"tokenMetadata\": {\"scopes\": [\"str\"]}, \"clientKey\": \"str\", \"clientSecret\": \"str\", \"accessToken\": \"str\", \"refreshToken\": \"str\", \"clientEnvironment\": \"STAGE or PRODUCTION\" } "},{"title":"Delete Trimble credentials","type":1,"pageTitle":"Trimble Credentials","url":"docs/credentials_trimble#delete-trimble-credentials","content":" DELETE /users/{leafUserId}/trimble-credentials Delete Leaf User's Trimble credentials. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/trimble-credentials' "},{"title":"Troubleshooting","type":1,"pageTitle":"Trimble Credentials","url":"docs/credentials_trimble#troubleshooting","content":"With these endpoints, you can do some troubleshooting to see your credential's health. "},{"title":"Events","type":1,"pageTitle":"Trimble Credentials","url":"docs/credentials_trimble#events","content":" GET /users/{leafUserId}/trimble-credentials/events Get the logs of the provider credential based on the LeafUserId sent. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId} /trimble-credentials/events' Response# Copy [ { \"body\": \"str\", \"createdDate\": \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\", \"headers\": \"str\", \"id\": \"str\", \"statusCode\": \"int\" } ] warning The logs are available only for 30 days and once the credential is deleted or disassociated with the Leaf User, the logs are no longer available. "},{"title":"Crop Monitoring Overview","type":0,"sectionRef":"#","url":"docs/crop_monitoring_overview","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Crop Monitoring Overview","url":"docs/crop_monitoring_overview#about","content":"Using Leaf's Crop Monitoring service you will be able to easily implement a satellite imagery application and compare the field health evolution over time. You can get historical images with Leaf. By default, Leaf retrieves images from 30 days prior to the creation of your field. But you can increase that to as far back in time as you want.Here's how This API accepts field boundary polygons and returns processed, clipped, and color-corrected RGB, NDVI, and NDRE images every time there is a new image available. We also provide information like percent cloud coverage of the field, the data coverage percentage, and the tile source for each image as well. Currently, our Crop Monitoring service runs without a relationship between our Field Services, and the User Management Services. However, we are working to integrate it into the leafUser hierarchy, and the Fields Service. See the Satellite API Reference for more information. "},{"title":"Providers","type":1,"pageTitle":"Crop Monitoring Overview","url":"docs/crop_monitoring_overview#providers","content":"Leaf currently offers access to Sentinel-2 and PlanetScope images through its API. Here is a summary comparison between the providers: \tSentinel-2\tPlanetScopeSpatial resolution\t10 m - 60 m\t3 m Temporal resolution\t3 - 5 days\t1 day Spectral resolution\t12 bands\t4 - 5* bands * the number of bands will depend on the asset type requested For all providers, in addition to the images of the isolated bands, the RGB, NDVI, and NDRE composition are available: "},{"title":"Planet Overview","type":0,"sectionRef":"#","url":"docs/crop_monitoring_planet_overview","content":"","keywords":""},{"title":"Available asset types","type":1,"pageTitle":"Planet Overview","url":"docs/crop_monitoring_planet_overview#available-asset-types","content":"ortho_analytic_8b_sr# PlanetScope atmospherically corrected surface reflectance product. File\tBand nameBand 1\tCoastal Blue Band 2\tBlue Band 3\tGreen I Band 4\tGreen Band 5\tYellow Band 6\tRed Band 7\tRed Edge Band 8\tNear-infrared ortho_analytic_8b# Radiometrically-calibrated analytic image stored as 16-bit scaled radiance. File\tBand nameBand 1\tCoastal Blue Band 2\tBlue Band 3\tGreen I Band 4\tGreen Band 5\tYellow Band 6\tRed Band 7\tRed Edge Band 8\tNear-infrared ortho_analytic_8b_xml# Radiometrically-calibrated analytic image metadata. ortho_udm2# Usable data mask (Cloud 2.0). File\tDescriptionBand 1\tClear map Band 2\tSnow map Band 3\tShadow map Band 4\tLight haze map Band 5\tHeavy haze map Band 6\tCloud map Band 7\tConfidence map Band 8\tUnusable pixels "},{"title":"PSScene","type":1,"pageTitle":"Planet Overview","url":"docs/crop_monitoring_planet_overview#psscene","content":"More info at Planet documentation. "},{"title":"Sentinel Overview","type":0,"sectionRef":"#","url":"docs/crop_monitoring_sentinel_overview","content":"","keywords":""},{"title":"Clouds","type":1,"pageTitle":"Sentinel Overview","url":"docs/crop_monitoring_sentinel_overview#clouds","content":"We use the cloud mask provided by Sentinel-2 to calculate the clouds coverage percentage. See the Crop Monitoring API Reference for more information. "},{"title":"Crop Monitoring Endpoints","type":0,"sectionRef":"#","url":"docs/crop_monitoring_endpoints","content":"","keywords":""},{"title":"Endpoints","type":1,"pageTitle":"Crop Monitoring Endpoints","url":"docs/crop_monitoring_endpoints#endpoints","content":""},{"title":"Get all satellite fields","type":1,"pageTitle":"Crop Monitoring Endpoints","url":"docs/crop_monitoring_endpoints#get-all-satellite-fields","content":" GET /fields Returns paged results for all satellite fields registered. externalId: external ID used in the field's registrationgeometry: a valid MultiPolygon GeoJSON object with the geometry of the fieldsort, the sorting order of the results; can be multi-value, where the first value to be passed will have preference in ordering over the next ones; you can also specify the order as asc or desc with asc being the default. Example: id, desc Valid values for sorting are: createdAt, providers and externalId Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/satellite/api/fields' Response# Copy [ { \"externalId\": \"your field id\", \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [...] } \"providers\": [ \"sentinel\", \"planet\" ] }, .... ] "},{"title":"Get a satellite field","type":1,"pageTitle":"Crop Monitoring Endpoints","url":"docs/crop_monitoring_endpoints#get-a-satellite-field","content":" GET /fields/{id} Fetches a field entry based on its external id. id: external ID used in the field's registrationgeometry: a valid MultiPolygon GeoJSON object with the geometry of the field Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/satellite/api/fields/{id}' Response# Copy { \"externalId\": \"your field id\", \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [...] }, \"providers\": [ \"sentinel\", \"planet\" ], \"extent\": { \"xmin\": 0.0, \"xmax\": 0.0, \"ymin\": 0.0, \"ymax\": 0.0 } } "},{"title":"Get images of satellite field","type":1,"pageTitle":"Crop Monitoring Endpoints","url":"docs/crop_monitoring_endpoints#get-images-of-satellite-field","content":" GET /fields/{id}/processes Returns images for a given field id. We return the following images (tifs are EPSG:4326, pngs are EPSG:3857): RGB as tiff and as pngColorized NDVI as tiff and as pngRaw NDVI as tiffAll bands as tiff. Check the comparison page to identify the resolution and bands available for each provider. It is possible to filter the results by a number of different parameters: Parameter\tType\tDescription\tDefaultstartDate\tISO 8601 datetime format\tretrieve images taken after this day\t- endDate\tISO 8601 datetime format\tretrieve images taken until this day\t- startProcessedTimestamp\tISO 8601 datetime format\tretrieve images processed by Leaf after this day\t- endProcessedTimestamp\tISO 8601 datetime format\tretrieve images processed by Leaf until this day\t- maxClouds\tdouble between 0.0 and 100.0\tfilter processes with clouds less than or equal to this percentage\t100 minCoverage\tdouble between 0.0 and 100.0\tfilter processes with coverage greater than or equal to this percentage\t0.0 status\tstring \"SUCCESS\", \"FAILED\" or \"STARTED\"\tretrieve images with selected status\tSUCCESS page\tinteger\tpage being fetched\t0 size\tinteger\thow many processes (sets of all images) to return per page\t20 provider\tarray of string\tsentinel or/and planet\tIf none is defined, it will created with sentinel only Important If you have just created the satellite field, it may take a moment time for the images to become available. Request examples# cURLPythonJavaScript Copy curl -X GET \\ --header 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/satellite/api/fields/{id}/processes?startDate=2020-06-03&endDate=2020-06-10' Response# Copy [ { \"id\": 0, \"date\": \"2020-06-03T19:03:57.882Z\", \"clouds\": 0, \"provider\": \"sentinel\", \"bucketName\": \"sentinel-s2-l2a\", \"bucketKey\": \"tiles/10/S/FH/2020/6/3/0\", \"bucketRegion\": \"eu-central-1\", \"status\": \"SUCCESS\", \"coverage\": 100, \"images\": [ { \"url\": \"URL\", \"downloadUrl\": \"URL\", \"type\": \"tif\", \"resolution\": 20 }, .... ], \"processedTimestamp\": \"2020-06-03T19:03:58.881731Z\" }, .... ] date: the date of the satellite imageclouds: cloud coverage percentage of the field, from 0 to 100provider: the satellite provider (sentinel or planet) from where this process was created.bucketName: name of satellite image bucket where the original tile is. Usuallysentinel-s2-l2a or leaf-planet-images-prdbucketRegion: AWS region of original image's bucket. Usually eu-central-1bucketKey: base path of original satellite imagestatus: status of the process. It will be either SUCCESS or FAILUREcoverage: data coverage percentage of the field, from 0 to 100images: each image in this list will have the following data: url: URL of the imagedownloadUrl: URL of the imagetype: the type of the image. One of tif, ndvi, png andtif_colorizedresolution: resolution, in meters, of the image. See table below processedTimestamp: the timestamp of when the process was processed "},{"title":"Get an image of satellite field","type":1,"pageTitle":"Crop Monitoring Endpoints","url":"docs/crop_monitoring_endpoints#get-an-image-of-satellite-field","content":" GET /fields/{id}/processes/{id} Returns a single process for the field. Request examples# cURLPythonJavaScript Copy curl -X GET \\ --header 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/satellite/api/fields/{id}/processes/{id}' Response# Copy { \"id\": 0, \"date\": \"2020-06-03T19:03:57.882Z\", \"clouds\": 0, \"provider\": \"sentinel\", \"bucketName\": \"sentinel-s2-l2a\", \"bucketKey\": \"tiles/10/S/FH/2020/6/3/0\", \"bucketRegion\": \"eu-central-1\", \"status\": \"SUCCESS\", \"coverage\": 100, \"images\": [ { \"url\": \"URL\", \"downloadUrl\": \"URL\", \"type\": \"tif\", \"resolution\": 20 }, # etc... ], \"processedTimestamp\": \"2020-06-03T19:03:58.881731Z\" } "},{"title":"Create a satellite field","type":1,"pageTitle":"Crop Monitoring Endpoints","url":"docs/crop_monitoring_endpoints#create-a-satellite-field","content":" POST /fields Creates a new field. It will be continuously monitored forever, and new images will arrive based on the provider selected, because each one of them has a different temporal resolution (time it takes for the satellite to go over the same field when orbiting the Earth). If you don't need the field anymore, you candelete the field. Note By default, Leaf will return images for your field from the last 30 days (from the moment you create the field). You can change that by including a \"startDate\" or a \"daysBefore\" to the body There are two ways you can do that: set a startDate (ISO, \"yyyy-mm-dd\") meaning Leaf will return all images for your field since this date. set how many daysBefore (an integer greater than or equal to 0) you want to get images from. Note that they are both optional, but you can not specify both. Now let's see the Payload Request body# Copy { \"externalId\": \"yourSatelliteFieldId\", \"startDate\": \"2019-01-01\", \"providers\": [ \"planet\" ], \"assetTypes\": [ \"ortho_analytic_8b_sr\" ], \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [...] } } externalId: external ID used in the field's registration.geometry: a valid MultiPolygon GeoJSON object with the geometry of the field.providers: Specify the satellite imagery source, if none is specified, Sentinel images will be retrived by default.assetTypes: If the providers property contains planet you can select which assetType will be retrived, which can be more than one. The available values are ortho_analytic_8b_sr, ortho_analytic_8b, ortho_analytic_8b_xml, and ortho_udm2. The default value is ortho_analytic_8b_sr. Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Content-Type: application/json' \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ your payload }' \\ 'https://api.withleaf.io/services/satellite/api/fields' field size limit the field cannot be larger than 50k hectares (123k acres) andcannot have a perimeter bigger than 300km (180 miles). Sample geometry# If you are looking for a geometry for testing purposes you can use this one. Copy { \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [ [[[ -48.95275447, -22.49608], [ -48.95379286, -22.49675703], [ -48.9591836, -22.50310243], [ -48.96225525, -22.5067235], [ -48.94852019, -22.50648371], [ -48.94780839, -22.49693998], [ -48.95275447, -22.49608] ]]] } } "},{"title":"Delete a satellite field","type":1,"pageTitle":"Crop Monitoring Endpoints","url":"docs/crop_monitoring_endpoints#delete-a-satellite-field","content":" DELETE /fields/{id} Deletes the field from our database. warning Note that the field deletion is irreversible and all images will be lost. (But you can always create a new field and get images from the past, as far as you want). Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/satellite/api/fields/{id}' "},{"title":"Get subscription for Planet","type":1,"pageTitle":"Crop Monitoring Endpoints","url":"docs/crop_monitoring_endpoints#get-subscription-for-planet","content":" GET /fields/{id}/subscription Get the subscription from Planet. It returns the assetTypes, itemTypes and startDate for a field. Request examples# cURLPythonJavaScript Copy curl -X GET \\ --header 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/satellite/api/fields/{id}/subscription' Response# Copy { \"planetAssetTypes\": [ \"ortho_analytic_8b_sr\", \"ortho_udm2\" ], \"planetItemTypes\": [ \"PSScene\" ], \"startDate\": \"2023-04-09T00:00:00Z\" } "},{"title":"Reprocess satellite images","type":1,"pageTitle":"Crop Monitoring Endpoints","url":"docs/crop_monitoring_endpoints#reprocess-satellite-images","content":" POST /fields/{id}/process/{id}/reprocess Allows reprocessing the satellite images based on a processId. Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/fields/{id}/process/{id}/reprocess' "},{"title":"Alerts","type":1,"pageTitle":"Crop Monitoring Endpoints","url":"docs/crop_monitoring_endpoints#alerts","content":"With Alerts you can be notified when something happens or changes instead of needing to repeatedly query for changes. Leaf Alerts support events that happen within Leaf and events that happen within supported 3rd party software. "},{"title":"List of Crop Monitoring Events","type":1,"pageTitle":"Crop Monitoring Endpoints","url":"docs/crop_monitoring_endpoints#list-of-crop-monitoring-events","content":"Leaf Crop Monitoring Service can Alert you on these events: list of Crop Monitoring Events "},{"title":"Field Boundary Management Endpoints","type":0,"sectionRef":"#","url":"docs/field_boundaries_endpoints","content":"Documentation update! We are updating our documentation and this page was moved to here.","keywords":""},{"title":"Crops","type":0,"sectionRef":"#","url":"docs/crops","content":"Here is a list of all the crops we currently support. The most common are \"corn\" and \"soybeans\". Crop String\"none\" \"alfalfa\" \"barley\" \"edible beans\" \"navy beans\" \"canola\" \"flax\" \"grass seeds\" \"lentils\" \"millet\" \"mustard\" \"oats\" \"black eyed peas\" \"field peas\" \"yellow popcorn\" \"white popcorn\" \"rapeseed\" \"rice long\" \"rice medium\" \"rye\" \"safflower\" \"sorghum\" \"sunflower oil\" \"sunflower stripe\" \"durum wheat\" \"hard red spring wheat\" \"hard red winter wheat\" \"soft red winter wheat\" \"white wheat\" \"chickpeas\" \"lupins\" \"european spring barley\" \"european winter barley\" \"european barley 6\" \"european corn\" \"european oats\" \"european peas\" \"european popcorn\" \"rapeseed e ind\" \"european rye\" \"sunflower e ind\" \"sunflower e oil\" \"european triticale\" \"european wheat feed\" \"european wheat wtr\" \"rapeseed e oil\" \"asparagus\" \"balm\" \"beets\" \"belgian endive\" \"broad beans\" \"broccoli\" \"brussels sprouts\" \"buckwheat\" \"cabbage lettuce\" \"caraway seed\" \"carrots\" \"castor beans\" \"cauliflower\" \"celery\" \"chervil\" \"chicory\" \"chinese cabbage\" \"clover\" \"corn silage\" \"corn cob mix\" \"corn salad\" \"crambe\" \"cucumber\" \"digitalis lanate\" \"dill\" \"elephant grass\" \"endives\" \"english rye grass\" \"evening primrose\" \"field meadow grass\" \"fodder beet\" \"french beans\" \"gherkin\" \"ginseng\" \"grain maize\" \"grass forage\" \"grassland\" \"green cabbage\" \"green peas\" \"hard fescue grass\" \"haricot beans\" \"headed cabbage\" \"hemp\" \"hops\" \"hypericum\" \"iceberg salad\" \"italian rye grass\" \"jerusalem artichoke\" \"kale\" \"leek\" \"lettuce\" \"lucerne\" \"lupine\" \"marowfat peas\" \"melon\" \"mushrooms\" \"onions\" \"oregano\" \"parsley\" \"peanuts\" \"picklers\" \"poppy seed\" \"sweet potatoes\" \"potatoes for chips\" \"potatoes for retail\" \"potatoes for starch\" \"pumpkins\" \"radicchio\" \"raddice\" \"red beet\" \"red cabbage\" \"red fescue grass\" \"red kidney beans\" \"rettich\" \"rhubarb\" \"salad\" \"savoy cabbage\" \"scorzonera\" \"seed potatoes\" \"sesame\" \"shallots\" \"silver onions\" \"spear grass\" \"spinach\" \"strawberries\" \"stubbel tuber\" \"sugarbeet\" \"sugar cane\" \"sugar corn\" \"tankard turnip\" \"tick beans\" \"tobacco\" \"tomatoes\" \"tuber fennel\" \"turnip cabbage\" \"turnip rooted celery\" \"vetch\" \"white beans\" \"white cabbage\" \"wood carrot\" \"set aside\" \"hyracinth\" \"tulip\" \"narcissus\" \"gladiolus\" \"crocus\" \"lily\" \"iris\" \"dahlia\" \"apples\" \"pears\" \"peaches\" \"apricots\" \"melons tree\" \"oranges\" \"lemons\" \"almonds\" \"vines\" \"olives\" \"jalapeno\" \"cantaloupe\" \"honeydew\" \"squash\" \"green beans\" \"lima beans\" \"sweet corn\" \"canary seed\" \"corn\" \"soybeans\" \"cotton\" \"boot stage wcs\" \"energy cane\" \"mung bean\" \"sudangrass\" \"canola polish\" \"mustard gisilba\" \"lentil crimson\" \"lentil eston\" \"lentil chilean\" \"lentil laird\" \"pea trapper\" \"unspecified crop\" \"garlic\" \"rutabaga\" \"macadamia\" \"pecan\" \"walnut\" \"blueberry\" \"cranberry\" \"raspberry\" \"watermelon\" \"orchardgrass\" \"downy bromegrass\" \"smooth bromegrass\" \"reed canary grass\" \"tall fescue\" \"timothy grass\" \"bermuda grass\" \"festulolium\" \"grass clover\" \"grass alfalfa\" \"forage mix\"","keywords":""},{"title":"Field Boundary Management Overview","type":0,"sectionRef":"#","url":"docs/field_boundaries_overview","content":"Documentation update! We are updating our documentation and this page was moved to here.","keywords":""},{"title":"Field Boundary Management Overview","type":0,"sectionRef":"#","url":"docs/field_boundary_management_overview","content":"","keywords":""},{"title":"Getting started","type":1,"pageTitle":"Field Boundary Management Overview","url":"docs/field_boundary_management_overview#getting-started","content":"To help you get started, we’ve created a quickstart Postman collection. To make calls to Leaf's field API, you will first need to go through the previous documentation steps from Leaf registration/authentication to provider authentication. Once you’ve successfully connected a provider, you can manage the field boundary endpoints on the next page. "},{"title":"How field data is structured","type":1,"pageTitle":"Field Boundary Management Overview","url":"docs/field_boundary_management_overview#how-field-data-is-structured","content":" Leaf uses a Grower/Farm/Field hierarchy to organize data.A grower (also known as Leaf User) is the data owner entity to which credentials are attached.Farm(s) can be grouped together under a Grower and Field(s) can be grouped under a FarmEach field is tied to a field ID and its field boundary is tied to a boundary ID, which is the central concept for organizing boundary data. There can only be one active boundary per field.Machine Files that Leaf merges into Operations are the results of operational tasks performed in a given Field. "},{"title":"FAQs","type":1,"pageTitle":"Field Boundary Management Overview","url":"docs/field_boundary_management_overview#faqs","content":"Can I use the fields and boundaries from my app/platform instead of connecting it from a provider? Yes, you can manually create boundaries from geoJSONs with a POST call for a Leaf User. "},{"title":"Crops Table","type":0,"sectionRef":"#","url":"docs/files_crops_table","content":"Documentation update! We are updating our documentation and this page was moved to here.","keywords":""},{"title":"Endpoints","type":0,"sectionRef":"#","url":"docs/files_endpoints","content":"Documentation update! We are updating our documentation and this page was moved to here.","keywords":""},{"title":"Geo Images","type":0,"sectionRef":"#","url":"docs/files_images","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Geo Images","url":"docs/files_images#about","content":"This service permits to generate images for files. It can be used to test the color ramp values. All HTTP methods should be prepended by this service's endpoint: Copy https://api.withleaf.io/services/images/api This service has the following endpoints available: Description\tEndpointsCreate images\tPOST /images "},{"title":"Create images","type":1,"pageTitle":"Geo Images","url":"docs/files_images#create-images","content":" POST /images Gets a paged list of operations that belong to the current logged in user. It is possible to filter the results by passing some query parameters. They are listed below. Parameter\tValuescolorRamp\tthe ranges for the color ramp projection\tEPSG_3857 resolution\t>0 shape\tROUND, JohnDeere, Trimble, ClimateFieldView, AgLeader or Leaf Request examples# Copy { \"colorRamp\": { \"0%\" : [200, 0, 0], \"35%\" : [255, 40, 0], \"45%\" : [255, 150, 0], \"55%\" : [255, 240, 0], \"65%\" : [ 0, 230, 0], \"75%\" : [ 0, 190, 0], \"100%\": [ 0, 130, 0], \"nv\" : [ 0, 0, 0, 0] }, \"projection\": \"EPSG_3857\", \"resolution\": 1, \"shape\": \"ROUND\" } You can also pass some parameters used exclusively for paging through results. They are: cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/operations' Response# The response will be the URL of new image in PNG format. https://api.withleaf.io/services/geoimages/api/images/a84e6627-4526-4560-a0ac-47eb57865a03/harvestMoisture "},{"title":"Overview","type":0,"sectionRef":"#","url":"docs/files_overview","content":"Documentation update! We are updating our documentation and this page was moved to here.","keywords":""},{"title":"Overview","type":0,"sectionRef":"#","url":"docs/files_postman","content":"","keywords":""},{"title":"Overview","type":1,"pageTitle":"Overview","url":"docs/files_postman#overview","content":"Leaf's Operation Data API returns aggregated, cleaned, and standardized data from all major machine data brands in a simple JSON response. This tutorial will walk through how to create a Leaf user, securely authenticate with their chosen platforms, and receive auto-updating data from all of them with a single request. We also provide a quickstart Postman collection so you can follow along easily. To make calls to Leaf's API, you will need a Leaf account. If you don't have one yet, please create your Leaf account and get your token. You can integrate with many different companies, and you only have to do it once for each user. To connect, you just choose the company you wish to connect to and follow these 3 steps: Get the authentication URL of company you want to connect toGet yours and your user's tokensAdd credentials to Leaf Now you can opt to connect to more companies or Create a Leaf User and attach these credentials, so that Leaf can represent your user internally and you can query specifically for them and their data. All set! Leaf automatically detects and starts processing new files. You can access in \"Get Operation Files\". "},{"title":"Roadmap","type":1,"pageTitle":"Overview","url":"docs/files_postman#roadmap","content":"Today, you can to connect to these companies: John Deere (Medium)Climate FieldView (Medium)CNHiTrimble Coming in the third quarter of 2020: RavenAGCO Coming in the fourth quarter of 2020: AgLeaderStara "},{"title":"John Deere","type":1,"pageTitle":"Overview","url":"docs/files_postman#john-deere","content":"This section will show you how you can integrate Leaf's API with you John Deere account and start using our operations service. Grab our quickstartPostman collection and follow along! 1. Get John Deere auth URL# In Step 1 we will be generating tokens from John Deere. The goal In step 2 is we will get our John Deere token_id and token_secret. Token Verifier# In step 1 we will get a temporary \"token verifier\" from John Deere that confirms an user’s authentication of your application to access their John Deere data and generate credentials. We get that verifier by going through their authentication flow (OAuth2). Before generating the authentication URL, please: Update current value of jd_client_key to your app's client key on John DeereUpdate current value of jd_client_secret to your app's client secret on John DeereUpdate current value of jd_callback_url to your app's callback_url on John Deere Then, to generate the authentication URL your application will send to your user so they can authorize access to their account files you can use the included step 2 in the Postman Collection. Change client_key and client_ secretvariables to yours received from John Deere when you created an app on your developer account with them and redirect_uri to a uri the \"token verifier\" will be sent after the user authorizes your application. Hit Send. Redirect your user to the url included in the response. They will authenticate and be redirected to the redirect_url. Copy the entire url you were redirected to. It looks like: Copy https://withleaf.io/?oauth_token=TOKEN&oauth_verifier=CODE Paste it in the environment variable jd_response_url. 2. Get John Deere Tokens# After updating the jd_response_url in Postman you can submit your credentials and receive your tokens. Hit Send token_id and token_secret_key will be automatically transferred tojd_token_id and jd_token_secret environment variables and will be used in the next step. 3. Add John Deere credentials# Now we can create a Developer-User pair credentials ID that will allow you to access your user’s John Deere data. We first add the John Deere credentials to Leaf API. Hit Send All the info needed has already been filled automatically in Step 2. An id for the credentials you just created will be returned. This id will be automatically transferred to the value of jd_credentials_id to be used in the next step. "},{"title":"Climate FieldView","type":1,"pageTitle":"Overview","url":"docs/files_postman#climate-fieldview","content":"Grab our quickstart Postman collection and follow along! 1. Get Climate FieldView auth URL# We will be generating a url to redirect your user to authenticate with Climate. Update environment variables cfv_client_id and cfv_client_secret to your Climate FieldView developer account credentials. Update environment variable cfv_redirect_url to your application's backend Redirect your user to the script's output url. They will authenticate and be redirected to the redirect_uri. A code will be sent to that cfv_redirect_url. We will need this code Step 2. Copy the code value. note: this code expires after 1 minute. Paste code value to environment variable cfv_code 2. Get Climate FieldView tokens# Hit \"Send\" A lot of information will be returned. The important ones are access_tokenand refresh_token. These will be automatically transferred tocfv_access_token and cfv_refresh_token environment variables and will be used in the next step. 3. Add Climate FieldView credentials# Now we can create a Developer-User pair credentials ID that will allow you to access your user’s Climate data. We first add the Climate credentials to Leaf API, to do that: Hit \"Send\" An id for the credentials you just created will be returned. This id will be automatically transferred to the value of cfv_credentials_id to be used in the next step. "},{"title":"Leaf User","type":1,"pageTitle":"Overview","url":"docs/files_postman#leaf-user","content":"Create Leaf User# Now we have to attach credentials to a Leaf User. To do so, we can create a Leaf user and attach our John Deere and/or Climate FieldView credentials via the credentials id. We can also attach credentials from other companies to this same user to query all available data by Grower/Farm/Field regardless of brand. Update (optional) fields \"address\", \"email\", \"name\" and \"phone\" with your user's information. We have automatically included our jd_credentials_id to this call and attached it to this user. Hit \"Send\" Along with other information returned, there is an \"id\". This \"id\" is theleaf_user_id that will be used in the next (final) Step to query and access files. Update Leaf User# To update a Leaf User, let's say to add another provider credentials or change the user's address, we can use this PUT request. Since this method overwrites, remember to send all the user's information along with the information you want to add or update. For example, if you want to add John Deere credentials to a user that already has ClimateFieldView credentials, remember to specify both credentials ids. Get specific Leaf User# Get specific Leaf User With this endpoint you can query all information on a specific Leaf User, such as their address, email, credentials, etc. To do so, update the value of the environment variable leaf_user_id to the Leaf User id you want to query. Gel all Leaf Users# Get all Leaf Users With this endpoint you can query all information on all your Leaf Users, such as their address, email, credentials, etc. Just hit 'send'. "},{"title":"Query Operations by Field","type":1,"pageTitle":"Overview","url":"docs/files_postman#query-operations-by-field","content":"To query all operations that happened in a specific field (step 2), we first need to create that field (step 1). Then, Leaf will automatically detect operations of that field based on the operations' and on the field's coordinates. This process usually takes about 30 minutes. 1. Create Field# Here we need to specify a leafUserId (that will be the Leaf User owner of that field), a externalId (that will be the name we give to the field) and the geojson geometry of the field (location). After creating the field we can query it (step 2) 2. Get operations' ids by Field# To query all operations that happened in a specific field, just update the environment variable field_external_id to the field id you want to query files. "},{"title":"Merge Operation Files","type":1,"pageTitle":"Overview","url":"docs/files_postman#merge-operation-files","content":"1. Merge files# Merging files with Leaf is a very simple process. You just have to list, in the request json body, the ids of the files you want to merge. Make sure the operations are of the same type (APPLIED or HARVESTED or PLANTED), so the results are consistent. After that, just hit \"send\" and an id for that merged file will be returned. You can query that file as any other. It will be listed when you query for all files and can also be queried specifically by its id 2. Query & access specific file# You can query a merged file as any other. It will be listed when you query for all files and can also be queried specifically by its id. So this request is the same as seen on \"Get Operation Files\". You just have to update the environment variable \"id\" to the id of the merged file. Keep in mind that merging files is processing-heavy and may take about 20 minutes to finish. "},{"title":"Sample responses","type":0,"sectionRef":"#","url":"docs/files_sample_output","content":"Documentation update! We are updating our documentation and this page was moved to here.","keywords":""},{"title":"Glossary","type":0,"sectionRef":"#","url":"docs/glossary","content":"","keywords":""},{"title":"Leaf product terms","type":1,"pageTitle":"Glossary","url":"docs/glossary#leaf-product-terms","content":"Term\tDefinitionField Boundaries\tGeospatial boundary/shape/area of a field. Data Translation | File Conversion\tReceive data, translated by Leaf to a consistent, aggregated and standardized format, from all major machinery brands. Machine Data | Field Operations\tFieldOps data pulled from machinery providers (planting, application, harvest, tillage). Called operations in Leaf. Note: see further down, the difference between Machine File Summary and Operation Summary Machine Information | Assets\tData on machinery performance itself (serial number, hours, fuel consumption, rpm, speed and calibration). Prescriptions\tPlanting and fertility recommendations. Can be sent from Leaf to Providers, not to specific machines. Crop Monitoring\tSatellite and drone images of fields based on their boundaries. Weather\tForecasted and historical field-level weather data. Leaf Connect\tSharing data between two different companies within Leaf. Allows one API owner to access fields and operations data from another API owner. "},{"title":"More Leaf terms","type":1,"pageTitle":"Glossary","url":"docs/glossary#more-leaf-terms","content":"Term\tDefinitionAPI Owner\tThe company email address that you use to create a Leaf account and is used to create/store Leaf Users. Leaf Token\tA token that will allow access to Leaf for up to 30 days. Provider | OEMs | third-party platforms\tThe company whose platform provides data such as field boundaries, machine data, imagery etc (e.g. Climate FieldView, John Deere). Leaf User\tA way to keep your customers' data organized under your API owner. You'll attach 3rd party credentials to these entities. A Leaf User is equivalent to a Customer/Grower account. Alerts\tWebhooks set up to send notifications of events that occur in Leaf. For example, when a new boundary is created, you'll be notified when it occurs, instead of polling (periodically requesting updates). Configurations\tConfigurations allow your Leaf environment to be customized to present different behaviors across our services. Field Merge\tWhen two fields intersect, Leaf can merge them to create a new field. Raw data\tData downloaded directly from a tractor monitor. (USB, Thumb Drive Data) File Converter\tConverts raw data formats to Leaf’s standard JSON format. File Merge\tFiles of the same operation type within a specified date range (applied, planted, harvested, tillage) are combined into a single file. Machine File Summary\tBasic information of files derived from the point data, processed and cleaned by Leaf. Data outputs will vary by task (planted, applied, harvested, tillage). Operation Summary\tThe output of files merged to a field boundary that are processed and cleaned by Leaf. "},{"title":"More agricultural terms","type":1,"pageTitle":"Glossary","url":"docs/glossary#more-agricultural-terms","content":"Term\tDefinitionOrganization\tThe organization is the top-level entity for a farm business such as a head office of a corporate farm Grower\tThe grower sits under the organization level and is equivalent to a farmer. A grower is often linked to farms and fields with a hierarchy of organization > grower > farm > field Farm\tA Farm is a group of fields managed by a grower Field\tAn area of open land, especially one planted with crops or pasture bound by a fence or other landmark. Note: in Leaf, the field object has no boundary but can be pulled in from a provider (e.g. field name, field ID, area) Field Boundary\tGeospatial boundary/shape/area of a field Crop\tType of plant being grown (e.g. soybeans, corn, wheat) Variety\tA subtype of the crop being grown (e.g. P7326 is a variety of corn) Field Operations\tTasks performed by a tractor (tillage, planting, application, harvest) Tillage\tThe task of breaking up soil Planting\tThe task of placing seeds in the soil Application\tThe task of applying products to an area of a field (eg fertilizer, pesticides) Harvest\tThe task of removing/collecting a fully mature crop Implements\tImplements are specialized pieces of farm equipment such as a drill, sprayer, combine or planter. Layers\tAdditional crop or field-related data that can be pulled from a provider (Tassel count, Stand count, NDVI and RGB) "},{"title":"Integrations Endpoints","type":0,"sectionRef":"#","url":"docs/integrations_endpoints","content":"","keywords":""},{"title":"Get Integrations Resources","type":1,"pageTitle":"Integrations Endpoints","url":"docs/integrations_endpoints#get-integrations-resources","content":" GET /resources Gets a paged list of Fields. It is possible to filter the results by passing some query parameters. provider, only matches fields from this provider (string).leafUserId, only matches fields from this user (string).page, an integer specifying the page being fetched.size, an integer specifying the size of the page (defaults to 20). These last two parameters are used exclusively for paging through results. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/integrations/api/resources' Response# Copy { \"message\": \"SUCCESS\", \"summaries\": [ { \"provider\": \"JohnDeere\", \"leafUserId\": \"UUID\", \"growers\": 12, \"farms\": 12, \"fields\": 100, \"syncReferenceTime\": \"2023-08-30T18:39:33.230612Z\" }, { \"provider\": \"ClimateFieldView\", \"leafUserId\": \"UUID\", \"farms\": 12, \"fields\": 100, \"syncReferenceTime\": \"2023-08-30T18:39:33.230612Z\" }, .... ] } FMIS Structure Warning Each provider has its own implementation of the FMIS structure which you can check on the table below. FMIS Structure Table# This table contains the FMIS properties available for the Integrations Resources responses. Provider\tGrower\tFarm\tFieldJohnDeere\t✅\t✅\t✅ ClimateFieldView\t✖️\t✅\t✅ CNHI\t✅\t✅\t✅ Trimble\t✅\t✅\t✅ Stara\t✖️\t✖️\t✅ Raven\t✅\t✅\t✅ AgVance\t✅\t✅\t✅ "},{"title":"Introduction","type":0,"sectionRef":"#","url":"docs/introduction","content":"Welcome to Leaf's Documentation! Food and Agriculture developers use Leaf's API to access clean, standardized, and aggregated Farm data from all major sources. Use theQuickstart section to help you start accessing sample farm data quickly, easily, and securely. We have implementation examples in cURL, Python and NodeJS! tip Please don't hesitate to contact us to schedule a demo, ask a question, request sample data, or suggest a feature!","keywords":""},{"title":"Field Boundary Management Endpoints","type":0,"sectionRef":"#","url":"docs/field_boundary_management_endpoints","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#about","content":"Here we list all the available endpoints from Leaf's Fields API. To call them easily, we recommend using Leaf's Postman collection. All HTTP methods should be prepended by this service's endpoint: Copy https://api.withleaf.io/services/fields/api There is a REST resources section if you want to check it out. This service has the following endpoints available: Description\tEndpointsGet all fields\tGET /fields Get a field\tGET /users/{id}/fields/{id} Create a field\tPOST /users/{id}/fields Update a field\tPATCH /users/{id}/fields/{id} Get all operation files of a field\tGET /users/{leafUserId}/fields/{fieldId}/operations/files Get an operation file of a field\tGET /users/{leafUserId}/fields/{fieldId}/operations/files/{fileId} Get fields by geometry\tPOST /users/{leafUserId}/fields/intersects Get intersection of fields\tPOST /users/{id}/fields/intersect Sync fields manually\tPOST /users/{id}/fields/sync Upload a Field to Provider\tPOST /users/{leaf_user_id}/fields/{field_id}/integration/{provider_name} Delete a field\tDELETE /users/{id}/fields/{id} Get all boundaries from field\tGET users/{leafUserId}/fields/{fieldId}/boundaries Get a boundary from field\tGET users/{leafUserId}/fields/{fieldId}/boundaries/{boundaryId} Get active boundary from field\tGET users/{leafUserId}/fields/{fieldId}/boundary Update active boundary from field\tPUT users/{leafUserId}/fields/{fieldId}/boundary Get all farms\tGET /farms Get a farm\tGET /users/{id}/farms/{id} Create a farm\tPOST /users/{leafUserId}/farms Update a farm\tPUT /users/{leafUserId}/farms/{id} Get all growers\tGET /growers Get a grower\tGET /users/{leafUserId}/growers/{id} Create a grower\tPOST /users/{leafUserId}/growers Update a grower\tPUT /users/{leafUserId}/growers/{id} "},{"title":"Fields","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#fields","content":""},{"title":"Get all fields","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#get-all-fields","content":" GET /fields Gets a paged list of Fields. It is possible to filter the results by passing some query parameters. type, only matches fields with this type (string).farmId, only matches fields from this farmId (integer).provider, only matches fields from this provider (string).leafUserId, only matches fields from this user (string).page, an integer specifying the page being fetched.size, an integer specifying the size of the page (defaults to 20). These last two parameters are used exclusively for paging through results. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/fields/api/fields' Response# Copy [ { \"id\": \"1a952614-3673-4d1e-b677-1f7224339ec6\", \"leafUserId\": \"58800d61-91ac-4922-8e2a-f0216b9f052a\", \"boundaries\": [ \"279b52d5-ec6d-4459-a06a-4f47ffab0659\" ], \"providerName\": \"JohnDeere\", \"providerId\": 2, \"providerFieldId\": \"b96ed268-728f-489e-b928-9d3e70082be4\", \"providerBoundaryId\": \"125fc49f-7e75-43fe-89f2-af976addb392\", \"providerFieldName\": \"The_Field_field\", \"organizationId\": \"428214\", \"type\": \"ORIGINAL\", \"createdTime\": \"2021-10-20T21:21:24.732030Z\", \"updatedTime\": \"2021-11-03T01:34:15.154051Z\", \"farmId\": 3746117, \"mergedFieldId\": \"f97c5bbc-2dbf-4400-8d59-39eba37f8847\", \"sources\": [] }, { \"id\": \"68c354f2-eb20-4512-816f-2edea4b6fca4\", \"leafUserId\": \"9ffc7b1c-617b-46cb-a8ef-927b26285b7f\", \"boundaries\": [ \"39d171d7-9ec3-4201-81bf-9d57473b2a67\" ], \"type\": \"ORIGINAL\", \"createdTime\": \"2023-06-14T18:31:01.702615Z\", \"updatedTime\": \"2023-06-14T18:31:01.702615Z\", \"sources\": [] }, .... ] "},{"title":"Get a field","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#get-a-field","content":" GET /users/{leafUserId}/fields/{id} Gets a single Field by Leaf User. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{id}' Response# A single Field as a JSON object. "},{"title":"Create a field","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#create-a-field","content":" POST /users/{leafUserId}/fields Creates a Field for the user leafUserId. A request body must be provided containing the entry \"geometry\" object which need to have the properties \"type\" and \"coordinates\". The geometry represents the boundaries of the Field being created as a GeoJSON geometry (\"type\" property must be a \"MultiPolygon\"). Consider that you can also set the id and name properties (both of them optional) in the request body. If no id is provided an UUID will be generated and this property can not be updated. Request body# Copy { \"id\": \"idTest\", // optional \"name\": \"nameTest\", // optional \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [ [ [ [-93.48821327980518, 41.77137549568163], [-93.48817333680519, 41.77143534378164], [-93.48821327390516, 41.76068857977987], [-93.48821327980518, 41.77137549568163] ] ] ] } } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"geometry\": { \"type: \"MultiPolygon\", \"coordinates\": [...] } }' 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields' Response# Copy { \"id\": \"idTest\", \"leafUserId\": \"95eb7d79-b93d-4fc2-877a-3f2b366f8beb\", \"area\": { \"value\": float, \"unit\": \"ha\" }, \"boundaries\": [ \"d0245010-157d-4988-96a2-5f3637098475\" ], \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [...] }, \"type\": \"ORIGINAL\", \"name\": \"nameTest\", \"createdTime\": \"2023-06-07T19:48:51.017280Z\", \"updatedTime\": \"2023-06-07T19:48:51.017280Z\", \"files\": [ \"2762a5f2-ed53-4999-afac-f2d4b136dc1f\" ] } "},{"title":"Update a Field","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#update-a-field","content":" PATCH /users/{leafUserId}/fields/{id} tip This is for manually created fields only. Provider created fields need to be updated via the Provider platform. Update the Field by \"id\" for the user \"leafUserId\". The request body accepts updatable field properties like \"name\" to update the field name, \"farmId\" to update the related Farm of the Field and \"geometry\", which represents the boundaries of the Field as a GeoJSON geometry (it must be a \"MultiPolygon\"). Request body# Copy { \"name\": \"updatedName\", \"farmId\": 1, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [ [ [ [-93.48821327980518, 41.77137549568163], [-93.48817333680519, 41.77143534378164], [-93.48821327390516, 41.76068857977987], [-93.48821327980518, 41.77137549568163] ] ] ] } } Request examples# cURLPythonJavaScript Copy curl -X PATCH \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"name\": \"updatedName\", \"farmId\": 1, \"geometry\": { \"type: \"MultiPolygon\", \"coordinates\": [...] } }' 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{id}' Response# A Field as a JSON object. "},{"title":"Get all operation files of a field","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#get-all-operation-files-of-a-field","content":" GET /users/{leafUserId}/fields/{fieldId}/operations/files Gets a paged list of all operation files of the Field and Leaf User specified in the URL. It is possible to filter the results by passing some query parameters. They are listed below. Parameter (to filter by)\tType\tDescriptionoperationType\tString \"harvested\", \"planted\", \"applied\" or \"other\"\tretrieve operations of given type provider\tString \"CNHI\", \"JohnDeere\", \"Trimble\" or \"ClimateFieldView\"\tretrieve operations of given provider origin\tString \"provider\", \"automerged\", \"merged\" or \"uploaded\"\tretrieve operations of given origin crop\tString name of the crop, like \"corn\" or \"soybeans\". Entire crop list available here\tretrieve operations with this crop. startTime\tISO 8601 datetime format\tretrieve operations that started after this date endTime\tISO 8601 datetime format\tretrieve operations that ended before this date You can also pass some parameters used exclusively for paging through results. They are: page, an integer specifying the page being fetched (default is 0)size, an integer specifying the size of the page (default is 20, max is 100) Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/operations/files' Response# Copy [ { \"id\": \"abbac24d-7f13-414a-989a-ee5dc9de624b\", \"operationType\": \"harvested\", \"origin\": \"automerged\", \"startTime\": \"2017-10-27T08:59:58Z\", \"endTime\": \"2017-10-27T09:40:33Z\", \"crops\": [ \"corn\" ], \"varieties\": [ \"Corn\" ], \"providerFileId\": \"cacde0d5-55b9-4bff-bf2c-05ec1def1c95\", \"provider\": \"Leaf\", \"leafUserId\": \"dcb6fd16-b6f4-40bc-805e-659c7f7350d6\" }, .... ] "},{"title":"Get an operation file of a field","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#get-an-operation-file-of-a-field","content":" GET /users/{leafUserId}/fields/{fieldId}/operations/files/{fileId} Gets a single Operation File of a field by its id. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/operations/files/{id}' Response# Copy { \"id\": \"75127023-190a-4579-b76c-ccbcfcf00d3c\", \"operationType\": \"harvested\", \"origin\": \"automerged\", \"startTime\": \"2017-10-27T08:59:58Z\", \"endTime\": \"2017-10-27T09:40:33Z\", \"crops\": [ \"corn\" ], \"varieties\": [ \"Corn\" ], \"providerFileId\": \"a3602817-57e4-4056-bdef-4fb687ba4c2e\", \"provider\": \"Leaf\", \"leafUserId\": \"01a17a22-e6fa-4d83-b343-ea23eddbd936\" } "},{"title":"Get Fields by geometry","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#get-fields-by-geometry","content":" POST /users/{leafUserId}/fields/intersects Gets a list of fields that intersect with the GeoJSON geometry (\"type\" property must be a \"MultiPolygon\") sent in the request body. The minimum intersection percentage is given byintersectionThreshold and can range from 0.01% to 100%, its default value is 0.01. The intersectionThreshold can be compared with the \"intersection by field\" ratio or the \"intersection by geometry\" ratio. Whichever is satisfied first. Here we have a sample for a field with 100 area unit and a geometry with 10 area unit: So, in this case, if the intersectionThreshold were 3, then the condition would be satisfied and the field would be returned, but if the value was greater than 50, then it would not satisfy the condition, as 50% is the highest intersection value: intersectionThreshold (%)\tsatisfied3\t✅ 5\t✅ 37\t✅ 50\t✅ 75\t❌ 100\t❌ Request body# Copy { \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [ [ [ [-93.48821327980518, 41.77137549568163], [-93.48817333680519, 41.77143534378164], [-93.48821327390516, 41.76068857977987], [-93.48821327980518, 41.77137549568163] ] ] ] }, \"intersectionThreshold\": 3 } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[-93.48821327980518, 41.77137549568163], [-93.48817333680519, 41.77143534378164], [-93.48821327390516, 41.76068857977987], [-93.48821327980518, 41.77137549568163]]]]}, \"intersectionThreshold\": 3 }' 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/intersects' Response# Copy [ { \"id\": \"7740ce52-ae37-45e8-b6ed-5d55eea1dc09\", \"leafUserId\": \"04526587-21eb-42a0-8de5-59964340db4d\", \"area\": { \"value\": 16.71391976284981, \"unit\": \"ha\" }, \"boundaries\": [ \"f748db67-1885-4936-bc93-a3fbaf249957\" ], \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [...] }, \"providerName\": \"ClimateFieldView\", \"providerId\": 4, \"providerFieldId\": \"62cf2326-8525-4c40-9e37-23fd1c76eeba\", \"providerBoundaryId\": \"bac50a8c-a3bc-4a90-9c4b-df7ea5f5d28b\", \"providerFieldName\": \"behav_test_field\", \"type\": \"ORIGINAL\", \"createdTime\": \"2023-06-06T09:35:07.676376Z\", \"updatedTime\": \"2023-06-06T09:35:07.965139Z\", \"sources\": [] }, { { \"id\": \"8bfe22fa-af4a-41ad-a167-fa792c3faa5f\", \"leafUserId\": \"04526587-21eb-42a0-8de5-59964340db4d\", \"area\": { \"value\": 0.19710594050867244, \"unit\": \"ha\" }, \"boundaries\": [ \"c329f54f-f979-47f1-96f6-bcf95a771be8\" ], \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [...] }, \"type\": \"ORIGINAL\", \"name\": \"nameTest\", \"createdTime\": \"2023-06-07T13:55:04.028129Z\", \"updatedTime\": \"2023-06-07T14:08:13.101100Z\", \"sources\": [] }, .... ] "},{"title":"Get intersection of fields","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#get-intersection-of-fields","content":" POST /users/{id}/fields/intersect Gets a GeoJSON geometry (\"type\" property must be a \"MultiPolygon\") corresponding to the intersection of the Fields specified by the given id's. Such Field id's goes in a list, in the request body. Request body# Copy [ \"id1\", \"id2\" ] Request examples# cURLPythonJavaScript Copy curl --location --request \\ POST 'https://api.withleaf.io/services/fields/api/users/{id}/fields/intersect' \\ --header 'Authorization: Bearer YOUR_LEAF_TOKEN' \\ --header 'Content-Type: application/json' \\ --data-raw '[\"id1\", \"id2\"]' Response# Copy { \"type\": \"MultiPolygon\", \"coordinates\": [ [ [ [-89.84388470649719,39.71943436012731], [-89.84392762184143,39.72439389620628], [-89.83936786651611,39.725392361998416], [-89.83928203582764,39.71951688444436], [-89.84388470649719,39.71943436012731] ] ] ] } "},{"title":"Sync fields manually","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#sync-fields-manually","content":" POST /users/{leafUserId}/fields/sync tip This endpoint should be used to fetch data when one of the configurations is enabled: customDataSync or fieldsAutoSync. Schedules a synchronization to fetch Field Boundaries data from the providers. Request body# If the customSync configuration is enabled, only the fields sent in the body will be synchronized. For the fieldsAutoSync leave the body empty will sync all the fields available in the provider. Copy { \"fields\": [\"UUID\"] } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"fields\": [\"1a952614-3673-4d1e-b677-1f7224339ec6\"] }' 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/sync' "},{"title":"Upload a Field to Provider","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#upload-a-field-to-provider","content":" POST /users/{leaf_user_id}/fields/{field_id}/integration/{provider_name} Upload a field boundary a provider. The field must be available on the Leaf API first (manually created or fetched from a provider). provider_name: the name of the provider that will receive the field boundary. The supported providers are JohnDeere or ClimateFieldView.if the provider_name is JohnDeere it will be necessary to add the organizationId as a parameter: ?organizationId={organization_value} Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/fields/api/users/{leaf_user_id}/fields/{field_id}/integration/{provider_name}' Response# Copy [ { \"ba518264-7f2a-11ee-b962-0242ac120002\": { \"ClimateFieldView\": { \"id\": \"uuid\", \"status\": \"PENDING\", \"updatedAt\": \"2023-11-09T18:02:17.834Z\" } } } ] Warning To avoid recursive synchronizations, it is not possible to send a field to the same provider from which it was fetched. "},{"title":"Delete a field","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#delete-a-field","content":" DELETE /users/{id}/fields/{id} Deletes the field with the given id. tip Fields created by a provider cannot be deleted on Leaf side. "},{"title":"Boundaries","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#boundaries","content":""},{"title":"Get all boundaries from field","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#get-all-boundaries-from-field","content":" GET /users/{leafUserId}/fields/{fieldId}/boundaries Gets a list of boundaries from a field. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{id}/boundaries' Response# A list of Boundary as a JSON object. "},{"title":"Get a boundary from field","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#get-a-boundary-from-field","content":" GET /users/{leafUserId}/fields/{fieldId}/boundaries/{boundaryId} Gets a single Boundary from a field by its id. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/boundaries/{boundaryId}' Response# A single Boundary as a JSON object. Request examples# "},{"title":"Get active boundary from field","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#get-active-boundary-from-field","content":" GET /users/{leafUserId}/fields/{fieldId}/boundary Gets the active Boundary from a field. cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/boundary' Response# A single Boundary as a JSON object. "},{"title":"Update active boundary from field","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#update-active-boundary-from-field","content":" PUT /users/{leafUserId}/fields/{fieldId}/boundary Updates the active boundary of field fieldId. The previous active boundary is not deleted, but set as inactive. Request body# Copy { \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [ [ [ [-93.48821327980518, 41.77137549568163], [-93.48817333680519, 41.77143534378164], [-93.48821327390516, 41.76068857977987], [-93.48821327980518, 41.77137549568163] ] ] ] } } Request examples# cURLPythonJavaScript Copy curl -X PUT \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"geometry\": { \"type: \"MultiPolygon\", \"geometry\": [...] } }' 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/fields/{fieldId}/boundary' Response# Copy { \"id\": \"g7941ef8-iddf-42c1-b43c-d36b0df369e8\", \"status\": \"ACTIVE\", \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [ [ [ [-93.48821327980518, 41.77137549568163], [-93.48817333680519, 41.77143534378164], [-93.48821327390516, 41.76068857977987], [-93.48821327980518, 41.77137549568163] ] ] ] }, \"area\": { \"value\": 0.19710594050867244, \"unit\": \"ha\" }, \"validity\": \"VALID\", \"createdTime\": \"2023-06-07T19:48:51.017280Z\", \"updatedTime\": \"2023-06-07T19:48:51.017280Z\" } "},{"title":"Farms","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#farms","content":""},{"title":"Get all farms","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#get-all-farms","content":" GET /farms Gets a paged list of all farms. It is possible to pass some query parameters. growerId, only matches Farms from this growerId (integer)provider, only matches Farms from this provider (string)leafUserId, only matches Farms from this Leaf User (UUID)page, an integer specifying the page being fetchedsize, an integer specifying the size of the page (defaults to 20) The parameters are used exclusively for paging through results. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/fields/api/farms' Response# Copy [ { \"id\": 1538766, \"name\": \"name\", \"providerId\": 2, \"providerName\": \"JohnDeere\", \"providerFarmId\": \"2f4a03ed-ac81-4c6d-810d-1db6b47baec2\", \"providerFarmName\": \"farmName\", \"leafUserId\": \"ace92e9c-2e83-4d85-ab34-1f76a480abc8\", \"fieldIds\": [ \"6595418e-11d2-4260-9e6b-e8c452fb8375\" ], \"growerId\": 12345, \"createdTime\": \"2023-06-06T09:34:11.759672Z\", \"updatedTime\": \"2023-06-07T09:15:42.855759Z\" }, .... ] "},{"title":"Get a farm","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#get-a-farm","content":" GET /users/{leafUserId}/farms/{id} Gets a single farm by its id from the user leafUserId. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/farms/{id}' Response# A single Farm as a JSON object. "},{"title":"Create a farm","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#create-a-farm","content":" POST /users/{leafUserId}/farms Creates a farm for the user leafUserId. It's possible to pass both the farmName and the growerId on the body of the request. Request body# Copy { \"name\": \"Farm 01\", \"growerId\": 123 } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"name\": \"farmName\" }' 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/farms' Response# A single Farm as a JSON object. "},{"title":"Update a farm","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#update-a-farm","content":" PUT /users/{leafUserId}/farms/{id} Updates the farm with id id for the user leafUserId. It's possible to pass both the farmName and the growerIdon the body of the request. Request body# Copy { \"name\": \"Updated Farm Name\", \"growerId\": 123 } Request examples# cURLPythonJavaScript Copy curl -X PUT \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"name\": \"newFarmName\", \"growerId\": \"newGrowerId }' 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/farms/{id}' Response# A single Farm as a JSON object. "},{"title":"Grower","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#grower","content":""},{"title":"Get all growers","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#get-all-growers","content":" GET /growers Gets a paged list of all growers. Use the following parameters for paging through results. provider, only matches Growers from this provider (string)leafUserId, only matches Growers from this Leaf User (UUID)page, an integer specifying the page being fetchedsize, an integer specifying the size of the page (defaults to 20) Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/fields/api/growers' Response# A list of Grower as a JSON object. Copy [ { \"id\": 873300016, \"name\": \"1Grower\", \"leafUserId\": \"1d3ecb0f-bf3d-42db-aae6-8c45c045d28c\", \"providerName\": \"JohnDeere\", \"providerId\": 23, \"providerGrowerId\": \"1Grower\", \"farmIds\": [], \"createdTime\": \"2023-06-06T03:31:39.966630Z\", \"updatedTime\": \"2023-06-07T20:01:14.814346Z\" }, .... ] "},{"title":"Get a grower","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#get-a-grower","content":" GET /users/{leafUserId}/growers/{id} Gets a single grower by its id from the user leafUserId. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/growers/{id}' Response# A single Grower as a JSON object. Copy { \"id\": 873300016, \"name\": \"1Grower\", \"leafUserId\": \"1d3ecb0f-bf3d-42db-aae6-8c45c045d28c\", \"providerName\": \"JohnDeere\", \"providerId\": 23, \"providerGrowerId\": \"1Grower\", \"farmIds\": [], \"createdTime\": \"2023-06-06T03:31:39.966630Z\", \"updatedTime\": \"2023-06-07T20:01:14.814346Z\" } Note In our system, Growers are equivalent to John Deere Client. That been said, the attribute name comes directly from the Client's name for growers with John Deere as provider. "},{"title":"Create a grower","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#create-a-grower","content":" POST /users/{leafUserId}/growers Creates a grower for the user leafUserId. It's possible to pass name on the body of the request. Request body# Copy { \"name\": \"Example Grower Name\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"name\": \"growerName\" }' 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/growers' Response# A single Grower as a JSON object. "},{"title":"Update a grower","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#update-a-grower","content":" PUT /users/{leafUserId}/growers/{id} Updates the grower with id id for the user leafUserId. It's possible to pass only the name on the body of the request. Request body# Copy { \"name\": \"Updated Grower Name\" } Request examples# cURLPythonJavaScript Copy curl -X PUT \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"name\": \"newGrowerName\"}' 'https://api.withleaf.io/services/fields/api/users/{leafUserId}/growers/{id}' Response# A single Grower as a JSON object. "},{"title":"REST Resources","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#rest-resources","content":"See below the REST resources and their endpoints. "},{"title":"Field Resource","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#field-resource","content":"A field might have one or neither of the following keys: a \"mergedFieldId\" key ora \"sources\" key A Field will only have one of the previous keys if it is either a field that has been merged with other one(s) or if it is a result of a merge. Leaf merges fields that have any sort of overlap. This makes it easier for you to query operations from a field by querying by the merged field. Because a field might exist in multiple providers, Leaf detects that and creates a single field that you can query for - and you can still query by the individual fields too. geometry and area are deprecated keys that contains the geometry of the active boundary and its area, respectively. Copy { \"id\": \"UUID\", \"providerName\": \"string\", \"providerFieldName\": \"string\", \"providerFieldId\": \"string\", \"providerBoundaryId\": \"UUID\", \"type\": \"ORIGINAL\", \"leafUserId\": \"UUID\", \"organizationId\": \"string\", \"mergedFieldId\": [\"UUID\"], \"files\": [\"UUID\"], \"boundaries\": [\"UUID\"], \"createdTime\": \"ISO date-time\", \"updatedTime\": \"ISO date-time\", \"status\": \"PROCESSED\" } Preview mode# If the customDataSync configuration is enabled, the field will be fetched from the providers in the PREVIEW mode. A Field in PREVIEW mode has almost all properties except the geometry so that no boundaries will be available. Copy { \"id\": \"UUID\", \"providerName\": \"string\", \"providerFieldName\": \"string\", \"providerFieldId\": \"string\", \"providerBoundaryId\": \"UUID\", \"type\": \"ORIGINAL\", \"leafUserId\": \"UUID\", \"organizationId\": \"string\", \"mergedFieldId\": [\"UUID\"], \"files\": [\"UUID\"], \"boundaries\": [], \"createdTime\": \"ISO date-time\", \"updatedTime\": \"ISO date-time\", \"status\": \"PREVIEW\" } Those Fields will still be listed in the field endpoints, allowing the custom synchronization of the resources available in the providers. To fetch a Field completely, it is necessary to remove it from the PREVIEW mode, sending it in the manual sync endpoint. After the change request, the field(s) will be fetched completely in the next synchronization window and it will be available as PROCESSED. Field operations In PREVIEW mode, the operation files associated with the fields on the provider side will also not be fetched and will only be available after the field sync request. Since not all providers support this relationship, it will only be reflected in John Deere and Climate FieldView files. For other providers, all files will be fetched normally, regardless of the configuration. Description\tEndpointsGet all fields\tGET /fields Get a field\tGET /users/{id}/fields/{id} Create a field\tPOST /users/{id}/fields Get fields by geometry\tPOST /fields/query/intersects Get intersection of fields\tPOST /users/{id}/fields/intersect Sync fields manually\tPOST /users/{id}/fields/sync Delete a field\tDELETE /users/{id}/fields/{id} "},{"title":"Boundary Resource","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#boundary-resource","content":"Every Field at Leaf can have 0 or many boundaries. Fields created via Leaf's endpoints must have at least one boundary. Only one boundary may be active, the others are inactive boundaries. Boundaries cannot be deleted or have its geometry updated. Every update generates a new Boundary, and Leaf keeps a history of all seen Boundaries. Each boundary has a status and providerStatus. status - Represents the current status of the boundary: ACTIVE - If the boundary was created at Leaf, it is the active boundary. If it is from a provider, this boundary exists at the provider and is the active boundary there.INACTIVE - If the boundary was created at Leaf, it is an inactive boundary. If it is from a provider, this boundary exists at the provider and is inactive there.OUTDATED_ON_PROVIDER - The boundary is from a provider. The boundary once existed on the provider exactly as it is in that boundary, but it was edited (e.g. has a new geometry but the same provider boundary id).DELETED_ON_PROVIDER - The boundary is from a provider. The boundary once existed on the provider, but it was deleted. The user won't find that boundary in the provider. providerStatus - Is the status of the boundary on the provider. ACTIVE - The boundary is the active boundary in the provider.INACTIVE - The boundary is inactive in the provider. providerStatus, just like the geometry, is a static attribute. In case this attribute is changed at the provider, the boundary's status is updated and a new boundary is created with the updated providerStatus in order to maintain history. The geometry may be invalidly registered with the provider, more information in Troubleshooting. Copy { \"id\": \"UUID\", \"status\": \"ACTIVE\", \"providerStatus\": \"ACTIVE\", \"providerBoundaryId\": \"UUID\", \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [ [ [ [ -89.84392762184143, 39.72439389620628 ], [ -89.84388470649719, 39.71943436012731 ], [ -89.83928203582764, 39.71951688444436 ], [ -89.83936786651611, 39.725392361998416 ], [ -89.84392762184143, 39.72439389620628 ] ] ] ] }, \"area\": { \"value\": double, \"unit\": \"ha\" }, \"validity\": \"VALID\", \"createdTime\": \"2023-06-06T03:33:51.528534Z\", \"updatedTime\": \"2023-06-06T03:33:51.528534Z\" } } Description\tEndpointsGet all boundaries from field\tGET users/{leafUserId}/fields/{fieldId}/boundaries Get a boundary from field\tGET users/{leafUserId}/fields/{fieldId}/boundaries/{boundaryId} Get active boundary from field\tGET users/{leafUserId}/fields/{fieldId}/boundary Update active boundary from field\tPUT users/{leafUserId}/fields/{fieldId}/boundary "},{"title":"Operation Resource","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#operation-resource","content":"Copy { \"id\": \"UUID\", \"operationType\": \"harvested|planted|applied\", \"startTime\": \"ISO date-time\", \"endTime\": \"ISO date-time\", \"crops\": [\"string\"], \"varieties\": [\"string\"], \"providerFileId\": \"string\", \"provider\": \"Trimble\", \"origin\": \"provider|merged|automerged|uploaded\", \"leafUserId\": \"UUID\" } Description\tEndpointsGet all operations of a field (deprecated)\tGET /users/{leafUserId}/fields/{fieldId}/operations Get all operations of a field\tGET /users/{leafUserId}/fields/{fieldId}/operations/files Get an operation of a field (deprecated)\tGET /users/{leafUserId}/fields/{fieldId}/operations/{fileId} Get an operation of a field\tGET /users/{leafUserId}/fields/{fieldId}/operations/files/{fileId} "},{"title":"Farm Resource","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#farm-resource","content":"Copy { \"id\": int, \"name\": \"string\", \"providerId\": int, \"providerName\": \"string\", \"providerFarmId\": \"UUID\", \"providerFarmName\": \"farmName\", \"leafUserId\": \"UUID\", \"fieldIds\": [ \"UUID\" ], \"growerId\": int, \"createdTime\": \"2023-06-06T09:34:11.759672Z\", \"updatedTime\": \"2023-06-07T09:15:42.855759Z\" } Description\tEndpointsGet all farms\tGET /farms Get a farm\tGET /users/{id}/farms/{id} Create a farm\tPOST /users/{leafUserId}/farms Update a farm\tPUT /users/{leafUserId}/farms/{id} "},{"title":"Grower Resource","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#grower-resource","content":"Copy { \"id\": int, \"name\": \"string\", \"leafUserId\": \"UUID\", \"providerName\": \"string\", \"providerId\": int, \"providerGrowerId\": \"string\", \"farmIds\": [ \"UUID\" ], \"createdTime\": \"ISO date-time\", \"updatedTime\": \"ISO date-time\" } If there is a name available for the grower so the name property will be returned as well. Description\tEndpointsGet all growers\tGET /growers Get a grower\tGET /growers/{id} Create a grower\tPOST /users/{leafUserId}/growers Update a grower\tPUT /users/{leafUserId}/growers/{id} "},{"title":"Troubleshooting","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#troubleshooting","content":"Currently, Leaf gets the field boundary data as available from the provider, so in some cases there may be fields without boundaries or with invalid boundaries, identified with one of the values below: Validity valuesVALID REPEATED_POINT HOLE_OUTSIDE_SHELL NESTED_HOLES DISCONNECTED_INTERIOR SELF_INTERSECTION RING_SELF_INTERSECTION NESTED_SHELLS DUPLICATE_RINGS TOO_FEW_POINTS INVALID_COORDINATE RING_NOT_CLOSED NOT_ALLOWED_GEOMETRY_TYPE Here is an example of a geometry registered as invalid due to a SELF_INTERSECTION. Copy { \"geometry\": { \"coordinates\": [ [ [ [-47.779352980393611,-21.192167369960515], [-47.775885948768021,-21.192669687635007], [-47.775917640099145,-21.194602117356858], [-47.780062866210912,-21.195033512590314], [-47.77870013897234,-21.191730056712402], [-47.779352980393611,-21.192167369960515] ] ] ], \"type\": \"MultiPolygon\" } } This is what this invalid type of geometry looks like from the provider side: "},{"title":"Automatic geometry fix","type":1,"pageTitle":"Field Boundary Management Endpoints","url":"docs/field_boundary_management_endpoints#automatic-geometry-fix","content":"There is a configuration available to fix the invalid geometry that Leaf fetches from the provider. When enabled, Leaf will try to fix the geometry. If the fix is successful, then the invalid boundary will be disabled (available as a historical boundary) and the new one will be available as the main boundary with the property \"fixStatus\": \"FIXED\" This behavior only applies to Fields obtained from providers, as validation prevents Fields from being created manually with invalid geometries. Warning Note that this is an automatic procedure and that the corrected geometry may present small differences in relation to the original, such as an increase or decrease in area. "},{"title":"Leaf Link > Endpoints","type":0,"sectionRef":"#","url":"docs/Link_endpoints","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Leaf Link > Endpoints","url":"docs/Link_endpoints#about","content":"All HTTP methods should be prepended by this service's endpoint: Copy https://api.withleaf.io/services/usermanagement/api See below the REST resources and their endpoints available in this service. "},{"title":"API key","type":1,"pageTitle":"Leaf Link > Endpoints","url":"docs/Link_endpoints#api-key","content":"The API keys are the required authentication info for the Leaf widgets. It is created at a Leaf user level. Endpoints Description\tEndpointsGet all Leaf user API keys\tGET /api-keys Create a Leaf user API key\tPOST /api-keys Revoke a Leaf user API key\tDELETE /api-keys "},{"title":"Get all Leaf user API keys","type":1,"pageTitle":"Leaf Link > Endpoints","url":"docs/Link_endpoints#get-all-leaf-user-api-keys","content":" GET /api-keys Get all API keys from a Leaf user. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/api-keys?leafUserId={leafUserId}' Response# Copy [ { \"id\": \"uuid\", \"key\": \"xxxx...xxxx\", \"leafUserId\": \"uuid\", \"expiresAt\": \"2024-04-25T18:32:25.530259\", \"description\": \"test\", \"valid\": true }, { \"id\": \"uuid\", \"key\": \"xxxx...xxxx\", \"leafUserId\": \"uuid\", \"expiresAt\": \"2024-04-25T18:36:37.965906\", \"description\": \"test\", \"revokedAt\": \"2023-04-26T21:27:55.674731\", \"valid\": false } ] "},{"title":"Create a Leaf user API key","type":1,"pageTitle":"Leaf Link > Endpoints","url":"docs/Link_endpoints#create-a-leaf-user-api-key","content":" POST /api-keys Creates a Leaf user API key. Request body# It is requires few properties: Copy { \"leafUserId\": \"string\", \"expiresIn\": int, \"description\": \"string\" } leafUserId: leaf user IdexpiresIn: time to expiration, in seconds. The minimum allowed value is 900 (15 minutes). The default value is one year.description: description to identify the API Key Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"leafUserId\": \"string\", \"expiresIn\": 900, \"description\": \"string\" }' 'https://api.withleaf.io/services/usermanagement/api/api-keys' Response# Copy { \"key\": \"xxxxxxx\", \"expiresAt\": \"2024-04-25T18:36:37.965906\", \"valid\": true } "},{"title":"Revoke a Leaf user API key","type":1,"pageTitle":"Leaf Link > Endpoints","url":"docs/Link_endpoints#revoke-a-leaf-user-api-key","content":" DELETE /api-keys Revokes a Leaf user API key. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/api-keys/{apiKeyId}' "},{"title":"Providers application info","type":1,"pageTitle":"Leaf Link > Endpoints","url":"docs/Link_endpoints#providers-application-info","content":"This section is about your application information from the provider, basically related to the required properties for each one, like the client ID, keys, and secrets. Provider setup Setting up the provider application information is mandatory to use the provider in the authentication widgets/links from Leaf Link. "},{"title":"AgLeader","type":1,"pageTitle":"Leaf Link > Endpoints","url":"docs/Link_endpoints#agleader","content":"To enable AgLeader as a provider in the widget you need to have your application already registered with AgLeader. You can find more info on how to create a developer account here. Endpoints Description\tEndpointsGet all AgLeader app information\tGET /app-keys/AgLeader Get an AgLeader app information\tGET /app-keys/AgLeader/{appName} Create an AgLeader app information\tPOST /app-keys/AgLeader/{appName} Update an AgLeader app information\tPUT /app-keys/AgLeader/{appName} Delete an AgLeader app information\tDELETE /app-keys/AgLeader/{appName} Get all AgLeader app information#  GET /app-keys/AgLeader Get all AgLeader app information from the API Owner. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader' Response# Copy [ { \"provider\": \"providerName\", \"appName\": \"yourAppName\", \"clientEnvironment\": \"PRODUCTION\" }, { \"provider\": \"providerName\", \"appName\": \"yourAppName\", \"clientEnvironment\": \"PRODUCTION\" } ] Get an AgLeader app information#  GET /app-keys/AgLeader/{appName} Get an AgLeader app information from the API Owner. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}' Response# Copy { \"provider\": \"providerName\", \"appName\": \"yourAppName\", \"clientEnvironment\": \"PRODUCTION\" } Create an AgLeader app information#  POST /app-keys/AgLeader/{appName} Create an AgLeader app information. Request body# Copy { \"privateKey\": \"string\", \"publicKey\": \"string\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"privateKey\": \"string\", \"publicKey\": \"string\" }' 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}' Update an AgLeader app information#  PUT /app-keys/AgLeader/{appName} Update an AgLeader app information. Request body# Copy { \"privateKey\": \"string\", \"publicKey\": \"string\" } Request examples# cURLPythonJavaScript Copy curl -X PUT \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"privateKey\": \"string\", \"publicKey\": \"string\" }' 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}' Delete an AgLeader app information#  DELETE /app-keys/AgLeader/{appName} Delete an AgLeader app information. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/{appName}' "},{"title":"Climate FieldView","type":1,"pageTitle":"Leaf Link > Endpoints","url":"docs/Link_endpoints#climate-fieldview","content":"To enable Climate FieldView as a provider in the widget you need to have your application already registered with Climate FieldView. You can find more info on how to create a developer account here. Endpoints Description\tEndpointsGet all Climate FieldView app information\tGET /app-keys/ClimateFieldView Get a Climate FieldView app information\tGET /app-keys/ClimateFieldView/{appName} Create a Climate FieldView app information\tPOST /app-keys/ClimateFieldView/{appName} Update a Climate FieldView app information\tPUT /app-keys/ClimateFieldView/{appName} Delete a Climate FieldView app information\tDELETE /app-keys/ClimateFieldView/{appName} Get all Climate FieldView app information#  GET /app-keys/ClimateFieldView Get all Climate FieldView app information from the API Owner. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView' Response# Copy [ { \"provider\": \"providerName\", \"appName\": \"yourAppName\", \"clientEnvironment\": \"PRODUCTION\" }, { \"provider\": \"providerName\", \"appName\": \"yourAppName\", \"clientEnvironment\": \"PRODUCTION\" } ] Get a Climate FieldView app information#  GET /app-keys/ClimateFieldView/{appName} Get a Climate FieldView app information from the API Owner. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}' Response# Copy { \"provider\": \"providerName\", \"appName\": \"yourAppName\", \"clientEnvironment\": \"PRODUCTION\" } Create a Climate FieldView app information#  POST /app-keys/ClimateFieldView/{appName} Create a Climate FieldView app information. Request body# Copy { \"apiKey\": \"string\", \"clientId\": \"string\", \"clientSecret\": \"string\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"apiKey\": \"string\", \"clientId\": \"string\", \"clientSecret\": \"string\" }' 'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}' Update a Climate FieldView app information#  PUT /app-keys/ClimateFieldView/{appName} Update a Climate FieldView app information. Request body# Copy { \"apiKey\": \"string\", \"clientId\": \"string\", \"clientSecret\": \"string\" } Request examples# cURLPythonJavaScript Copy curl -X PUT \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"apiKey\": \"string\", \"clientId\": \"string\", \"clientSecret\": \"string\" }' 'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}' Delete a Climate FieldView app information#  DELETE /app-keys/ClimateFieldView/{appName} Delete a Climate FieldView app information. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/{appName}' "},{"title":"CNHI","type":1,"pageTitle":"Leaf Link > Endpoints","url":"docs/Link_endpoints#cnhi","content":"To enable CNHI as a provider in the widget you need to have your application already registered with CNHI. You can find more info on how to create a developer account here. Integration requirements Copy https://widget.withleaf.io The Leaf widget URL must be registered as a valid \"App OAuth Callback URL(s)\" in your CNHi application. Check this section for more information. Endpoints Description\tEndpointsGet all CNHI app information\tGET /app-keys/CNHI Get a CNHI app information\tGET /app-keys/CNHI/{appName}/{clientEnvironment} Create a CNHI app information\tPOST /app-keys/CNHI/{appName}/{clientEnvironment} Update a CNHI app information\tPUT /app-keys/CNHI/{appName}/{clientEnvironment} Delete a CNHI app information\tDELETE /app-keys/CNHI/{appName}/{clientEnvironment} Get all CNHI app information#  GET /app-keys/CNHI Get all CNHI app information from the API Owner. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI' Response# Copy [ { \"provider\": \"providerName\", \"appName\": \"yourAppName\", \"clientEnvironment\": \"STAGE or PRODUCTION\" }, { \"provider\": \"providerName\", \"appName\": \"yourAppName\", \"clientEnvironment\": \"STAGE or PRODUCTION\" } ] Get a CNHI app information#  GET /app-keys/CNHI/{appName}/{clientEnvironment} Get a CNHI app information from the API Owner. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}' Response# Copy { \"provider\": \"providerName\", \"appName\": \"yourAppName\", \"clientEnvironment\": \"STAGE or PRODUCTION\" } Create a CNHI app information#  POST /app-keys/CNHI/{appName}/{clientEnvironment} Create a CNHI app information. Request body# Copy { \"clientId\": \"string\", \"clientSecret\": \"string\", \"subscriptionKey\": \"string\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"clientId\": \"string\", \"clientSecret\": \"string\", \"subscriptionKey\": \"string\" }' 'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}' Update a CNHI app information#  PUT /app-keys/CNHI/{appName}/{clientEnvironment} Update a CNHI app information. Request body# Copy { \"clientId\": \"string\", \"clientSecret\": \"string\", \"subscriptionKey\": \"string\" } Request examples# cURLPythonJavaScript Copy curl -X PUT \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"clientId\": \"string\", \"clientSecret\": \"string\", \"subscriptionKey\": \"string\" }' 'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}' Delete a CNHI app information#  DELETE /app-keys/CNHI/{appName}/{clientEnvironment} Delete a CNHI app information. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment}' "},{"title":"John Deere","type":1,"pageTitle":"Leaf Link > Endpoints","url":"docs/Link_endpoints#john-deere","content":"To enable John Deere as a provider in the widget you need to have your application already registered with John Deere. You can find more info on how to create a developer account here. Integration requirements Copy https://widget.withleaf.io The Leaf widget URL must be registered as a valid \"Redirect URI\" in your John Deere application. Check this section for more information. Endpoints Description\tEndpointsGet all John Deere app information\tGET /app-keys/JohnDeere Get a John Deere app information\tGET /app-keys/JohnDeere/{appName}/{clientEnvironment} Create a John Deere app information\tPOST /app-keys/JohnDeere/{appName}/{clientEnvironment} Update a John Deere app information\tPUT /app-keys/JohnDeere/{appName}/{clientEnvironment} Delete a John Deere app information\tDELETE /app-keys/JohnDeere/{appName}/{clientEnvironment} Get all John Deere app information#  GET /app-keys/JohnDeere Get all John Deere app information from the API Owner. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere' Response# Copy [ { \"provider\": \"providerName\", \"appName\": \"yourAppName\", \"clientEnvironment\": \"STAGE or PRODUCTION\" }, { \"provider\": \"providerName\", \"appName\": \"yourAppName\", \"clientEnvironment\": \"STAGE or PRODUCTION\" } ] Get a John Deere app information#  GET /app-keys/JohnDeere/{appName}/{clientEnvironment} Get a John Deere app information from the API Owner. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}' Response# Copy { \"provider\": \"providerName\", \"appName\": \"yourAppName\", \"clientEnvironment\": \"STAGE or PRODUCTION\" } Create a John Deere app information#  POST /app-keys/JohnDeere/{appName}/{clientEnvironment} Create a John Deere app information. Request body# Copy { \"clientKey\": \"string\", \"clientSecret\": \"string\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"clientKey\": \"string\", \"clientSecret\": \"string\" }' 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}' Update a John Deere app information#  PUT /app-keys/JohnDeere/{appName}/{clientEnvironment} Update a John Deere app information. Request body# Copy { \"clientKey\": \"string\", \"clientSecret\": \"string\" } Request examples# cURLPythonJavaScript Copy curl -X PUT \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"clientKey\": \"string\", \"clientSecret\": \"string\" }' 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}' Delete a John Deere app information#  DELETE /app-keys/JohnDeere/{appName}/{clientEnvironment} Delete a John Deere app information. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment}' "},{"title":"Trimble","type":1,"pageTitle":"Leaf Link > Endpoints","url":"docs/Link_endpoints#trimble","content":"To enable Trimble as a provider in the widget you need to have your application already registered with Trimble. You can find more info on how to create a developer account here. Integration requirements Copy https://widget.withleaf.io The Leaf widget URL must be registered as a valid \"Authentication Callback URL\" in your Trimble application. Check this section for more information. Endpoints Description\tEndpointsGet all Trimble app information\tGET /app-keys/Trimble Get a Trimble app information\tGET /app-keys/Trimble/{appName} Create a Trimble app information\tPOST /app-keys/Trimble/{appName} Update a Trimble app information\tPUT /app-keys/Trimble/{appName} Delete a Trimble app information\tDELETE /app-keys/Trimble/{appName} Get all Trimble app information#  GET /app-keys/Trimble Get all Trimble app information from the API Owner. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble' Response# Copy [ { \"provider\": \"providerName\", \"appName\": \"yourAppName\", \"clientEnvironment\": \"PRODUCTION\" }, { \"provider\": \"providerName\", \"appName\": \"yourAppName\", \"clientEnvironment\": \"PRODUCTION\" } ] Get a Trimble app information#  GET /app-keys/Trimble/{appName} Get a Trimble app information from the API Owner. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}' Response# Copy { \"provider\": \"providerName\", \"appName\": \"yourAppName\", \"clientEnvironment\": \"PRODUCTION\" } Create a Trimble app information#  POST /app-keys/Trimble/{appName} Create a Trimble app information. Request body# Copy { \"applicationName\": \"string\", \"clientId\": \"string\", \"clientSecret\": \"string\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"applicationName\": \"string\", \"clientId\": \"string\", \"clientSecret\": \"string\" }' 'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}' Update a Trimble app information#  PUT /app-keys/Trimble/{appName} Update a Trimble app information. Request body# Copy { \"applicationName\": \"string\", \"clientId\": \"string\", \"clientSecret\": \"string\" } Request examples# cURLPythonJavaScript Copy curl -X PUT \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"applicationName\": \"string\", \"clientId\": \"string\", \"clientSecret\": \"string\" }' 'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}' Delete a Trimble app information#  DELETE /app-keys/Trimble/{appName} Delete a Trimble app information. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/{appName}' "},{"title":"Leaf File Upload Link","type":0,"sectionRef":"#","url":"docs/Link_file_upload","content":"","keywords":""},{"title":"Overview","type":1,"pageTitle":"Leaf File Upload Link","url":"docs/Link_file_upload#overview","content":"Leaf's File Upload Link is a widget that allows your customers to upload different machine file formats. These files will then get converted into a consistent output using the Leaf API. Beta This is a beta feature. "},{"title":"How it works","type":1,"pageTitle":"Leaf File Upload Link","url":"docs/Link_file_upload#how-it-works","content":"The user can add files using the file picker from the Browse button or drop files in the Drag & drop zone. Your files must be in a zip file. During the upload, the users can see the progress of the upload and they are able to cancel the upload process for the pending files. Requirements In addition to being authenticated, you must have at least one Leaf user created. Learn more here. "},{"title":"Get started","type":1,"pageTitle":"Leaf File Upload Link","url":"docs/Link_file_upload#get-started","content":""},{"title":"1. Sign in with a Leaf account","type":1,"pageTitle":"Leaf File Upload Link","url":"docs/Link_file_upload#1-sign-in-with-a-leaf-account","content":"You will need a Leaf account. If you don't have one yet, you can create it here. "},{"title":"2. Get an access token","type":1,"pageTitle":"Leaf File Upload Link","url":"docs/Link_file_upload#2-get-an-access-token","content":"To use the widget you will need a Leaf token. Use our authentication guide to know how it works. "},{"title":"Tutorial","type":1,"pageTitle":"Leaf File Upload Link","url":"docs/Link_file_upload#tutorial","content":""},{"title":"Angular","type":1,"pageTitle":"Leaf File Upload Link","url":"docs/Link_file_upload#angular","content":"tip Here you can run a live use case demo! It will only be necessary to replace your information in the .html component. To add this Leaf widget in an Angular application, you can use the @withleaf/leaf-link-angular library, which is a JavaScript library that provides all Leaf UI Widgets. Here are the general steps to get started: Install the @withleaf/leaf-link-angular package using npm: Copy npm i @withleaf/leaf-link-angular Import the library in your component or module file: Copy import { FileUploadModule } from '@withleaf/leaf-link-angular'; Add the component to the HTML. Make sure you already created the Leaf user API key (apiKey); you need to specify both the Leaf User API Key and the Leaf User ID (leafUser) in the required properties in the HTML component. Check all the properties available on the reference here. Copy
"},{"title":"React","type":1,"pageTitle":"Leaf File Upload Link","url":"docs/Link_file_upload#react","content":"tip Here you can run a live use case demo! It will only be necessary to replace your information in the App.tsx file. To add this Leaf widget in a React application, you can use the @withleaf/leaf-link-react library, which is a JavaScript library that provides all Leaf UI Widgets. Here are the general steps to get started: Install the @withleaf.io/leaf-link-react package using npm: Copy npm i @withleaf/leaf-link-react Import the component in your *.tsx file: Copy import { FileUpload } from '@withleaf/leaf-link-react' Add the component to the *.tsx file. Make sure you already created the Leaf user API key (apiKey); you need to specify both the Leaf User API Key and the Leaf User ID (leafUser) in the required properties in the tsx component. Check all the properties available on the reference here. Copy function App() { const IS_DARK_MODE: boolean = true; const LEAF_USER: string = \"Your_Leaf_User\"; const API_KEY: string = \"Your_API_Key\"; const COMPANY_NAME: string = \"Your_Company\"; const COMPANY_LOGO: string = \"Your_Company_Logo\"; const FILES_TIME_RANGE: number = 30; return ( ); } "},{"title":"Reference","type":1,"pageTitle":"Leaf File Upload Link","url":"docs/Link_file_upload#reference","content":"It is valid only for the React version. "},{"title":"Property Overview","type":1,"pageTitle":"Leaf File Upload Link","url":"docs/Link_file_upload#property-overview","content":"Name\tType\tSummaryapiKey\tString\tThe authentication API Key companyLogoUrl\tString\tCustomization: a link to the company logo companyName\tString\tCustomization: the name of the company filesTimeRange\tNumber\tTime to get the historical of uploaded files isDarkMode\tBoolean\tEnables/disables the dark mode leafUser\tString\tThe Leaf User ID title\tString\tCustomization: a link to the company logo Property Details# apiKey# The apiKey is the authentication key that will allow the use of the widget. It can be created and managed here. companyLogoUrl# The URL to the company logo. It will be displayed in the landing screen. It can be a PNG, JPEG or SVG. companyName# The company name. It will be displayed in the landing screen and in each reference about the customer. filesTimeRange# It sets the interval in days to display files already processed in the past. For example, if set to 30, it will display the list of files sent and processed in the last 30 days. isDarkMode# If set to true, it will enable the widget dark mode. leafUser# The Leaf User ID. Check this page for more info about the Leaf User. title# The text to display on the top of the widget. "},{"title":"Hooks Overview","type":1,"pageTitle":"Leaf File Upload Link","url":"docs/Link_file_upload#hooks-overview","content":"Leaf Link also have hooks that can improve the developer experience when using the widgets. Name\tType\tDescriptionleafBatchIds\tArray<{ batchId: string }>\tProvide the array with the batchId of the uploaded files Hooks Details# leafBatchIds# Provides the array with the batchId for each uploaded file. A new ID is added after each successful upload. How to use it# Angular# Use the getLeafBatchData property to reference a function in your component. Copy
From the component, you can get the leafBatchIds array in the referenced function. Copy import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { apiKey: string = 'apiKey'; leafUser: string = 'leafUserId'; companyName: string = 'companyName'; companyLogo: string = 'companyLogo'; yourFunctionNameHere(leafBatchIds: any) { console.log(leafBatchIds); } } React# In the index.tsx will be necessary import the component Leaf. Copy import { Leaf } from '@withleaf/leaf-link-react'; And this component should be organized like this: Copy Additionally, you will need to import the useLeaf function as well: Copy import { FileUpload, useLeaf } from \"@withleaf/leaf-link-react\"; So will be necessary adjust the function in the App.tsx file: Copy function App() { const IS_DARK_MODE: boolean = true; const COMPANY_NAME: string = \"Your_Company\"; const LEAF_USER: string = \"Your_Leaf_User_Id\"; const API_KEY: string = \"Your_API_Key\"; const COMPANY_LOGO: string = YourCompanyLogo; const FILES_TIME_RANGE: number = 30; const { leafBatchIds } = useLeaf(); useMemo(() => { console.log(leafBatchIds); }, [leafBatchIds]); In this example we use the useMemo but you can use another hooks. "},{"title":"Crops Table","type":0,"sectionRef":"#","url":"docs/machine_file_conversion_crops_table","content":"","keywords":""},{"title":"Density","type":1,"pageTitle":"Crops Table","url":"docs/machine_file_conversion_crops_table#density","content":"Here we have a table containing the density for most of the crops extracted from Leaf's providers, where using these values we can generate volumetric representations of harvest yield from mass and vice-versa. "},{"title":"Standard Moisture","type":1,"pageTitle":"Crops Table","url":"docs/machine_file_conversion_crops_table#standard-moisture","content":"The standard moisture value is used to calculate the dry crop values. If the crop does not have a value defined in this table, then the API will not calculate the dry value and will repeat the wet values. Crops\tDensity (lb/bu)\tDry Moisture (%)alfalfa\t100\t13 annual ryegrass\t56 apples\t48\tn/a barley\t47.99\t15 bean, black\t60 bean, navy\t67.2\t15 beans, edible\t60 bent grass\t14 bermuda grass\t1 black eyed peas\t60.01 blue grass\t14 blueberry\t1 boot stage wcs\t60.01 borage\t60 buckwheat\t44 canola\t50\t15 canola polish\t52.01 chick peas\t60\t14 chickpeas\t60.98 clover\t60 corn\t56\t15 corn cob mix\t77.69 corn silage\t49.8 corn2\t56 cotton\t120.42 cranberry\t1 crimson clover\t60 downy bromegrass\t1 durum wheat\t60 edible bean lrg\t30 edible bean med\t30 edible bean sml\t30 edible beans\t60\t15 els\t32 energy cane\t7.38 european barley 6\t47.99 european corn\t56 european oats\t31.99 european peas\t60.01 european popcorn\t60.01 european rye\t56 european spring barley\t47.99 european triticale\t57.98 european wheat feed\t60.01 european wheat wtr\t60.01 european winter barley\t47.99 faber beans\t60 fall barley\t48 fan spring barley\t48 festulolium\t1 field beans\t60\t15 field peas\t60\t12 flax\t60\t10 forage mix\t1 garlic\t1 girasol (aceite)\t71.85 grass\t14 grass alfalfa\t1 grass clover\t1 grass dry\t100 grass half dry\t100 grass seeds\t22 grass wet\t100 hard red spring wheat\t60.01 hard red winter wheat\t60.01 hard white spring wheat\t60.01 hard white winter wheat\t60.01 iceberg salad\t18.65 lentil chilean\t60.01 lentil crimson\t60.01 lentil eston\t60.01 lentil laird\t60.01 lentils\t60\t13 lucerne\t54.38 lupins\t60 macadamia\t1 maize\t56 maize ccm\t56 maize long\t100 maize short\t100 meadowfoam\t60 millet\t50\t13 millet, pearl\t48 miscanthus\t100 mung bean\t60.01 mustard\t55\t9.50 mustard gisilba\t60.01 navy beans\t61.99 oats\t32\t12 oilseed rape winter\t52.01 orchard grass\t14 orchardgrass\t1 other grains\t40 pea trapper\t60.01 peanuts\t45 peas\t60 peas, green\t60 pecan\t1 per ryegrass\t56 popcorn\t100\t14 potatoes\t60 potatoes for chips\t60.01 potatoes for retail\t60.01 potatoes for starch\t60.01 rape seed\t60 rapeseed\t52.01\t12.50 rapeseed e ind\t52.01 rapeseed e oil\t52.01 raspberry\t1 red grass fescue\t14 reed canary grass\t1 rice\t45\t13 rice long\t45 rice medium\t45 rutabaga\t1 rye\t56 safflower\t38\t8 sesame\t46 smooth bromegrass\t1 soft red spring wheat\t60.01 soft red winter wheat\t60.01 soft white spring wheat\t60.01 soft white winter wheat\t60.01 sorghum\t56\t14 soybeans\t60\t13 spring barley\t48 spring rye\t56 spring wheat\t60 sudangrass\t39.99 sugar beet\t74.66 sugar cane\t80.87 sunflower\t30\t10 sunflower e ind\t24.98 sunflower e oil\t24.98 sunflower oil\t28.97 sunflower stripe\t20 sunflowers\t100 sweet corn\t70 sweet potatoes\t50 sweet sorghum\t100 tall fescue\t1 timothy grass\t1\t12 triticale\t50\t13 turnips\t55 upland cotton\t32 walnut\t1 watermelon\t1 wheat\t60\t13.50 wheat (hrd rd spr)\t60\t13.50 wheat (hrd rd wtr)\t60\t13.50 wheat, hard red spring\t60.01\t13.50 wheat, hard red winter\t60.01\t13.50 wheat, hard white spring\t60.01\t13.50 wheat, hard white winter\t60.01\t13.50 wheat, soft red spring\t60.01\t13.50 wheat, soft red winter\t60.01\t13.50 wheat, soft white spring\t60.01\t13.50 wheat, soft white winter\t60.01\t13.50 white clover\t60 white popcorn\t60.01 white wheat\t60.01 whole crop dry\t100 whole crop wet\t100 wild rice\t45 winter barley\t48 winter rye\t56 winter wheat\t60 wood\t100 yellow popcorn\t60.01\t If the specific variety of the crop from the file that you are trying to process is not present in this table, please contact our support team support@withleaf.io "},{"title":"Leaf Provider Connection / Authentication Link","type":0,"sectionRef":"#","url":"docs/Link_provider_connection","content":"","keywords":""},{"title":"Overview","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#overview","content":"Leaf's Provider Connection / Authentication Link is a widget that you can install with minimal setup and a few lines of code. This widget enables your customers to connect their existing provider accounts, which associates it with their Leaf User. Beta This is a beta feature. "},{"title":"Get started","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#get-started","content":""},{"title":"1. Sign in with a Leaf account","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#1-sign-in-with-a-leaf-account","content":"You will need a Leaf account. If you don't have one yet, you can create it here. "},{"title":"2. Get to know the Leaf user entity","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#2-get-to-know-the-leaf-user-entity","content":"All control of connected providers is done at the Leaf user level (usually it represents the user of your application), so it's important to know more about it here. "},{"title":"3. Create the user application tokens","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#3-create-the-user-application-tokens","content":"Since the connection is at Leaf user level, the widget uses a different authentication method. We will required to create an API key for each Leaf user. This will ensure that the Leaf user only accesses its own resources. The endpoints to manage those application tokens are here. "},{"title":"Set up","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#set-up","content":"To use the widget you will need to enable the providers. Don't worry, you only need to set it up once. "},{"title":"John Deere","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#john-deere","content":"To enable John Deere as a provider in the widget you need your application already registed with John Deere. You can find more info on how to create a developer account here. Redirect URI# The first step is to add our widget URL in the \"Redirect URI\" section: Copy https://widget.withleaf.io In the My applications page, select your application and edit it to add the URL here Application info# To allow the users to authenticate with John Deere, you will need to send your application info to this endpoint POST /usermanagement/api/app-keys/JohnDeere/{appName}/{clientEnvironment} For John Deere, it is necessary to inform the: clientKey (Application Id)clientSecret (Secret) You can set the appName and the clientEnvironmentas the environment your application is enabled on John Deere: STAGE or PRODUCTION. Here is a request example: cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"clientKey\": \"string\", \"clientSecret\": \"string\" }' 'https://api.withleaf.io/services/usermanagement/api/app-keys/JohnDeere/LeafWidget/PRODUCTION' "},{"title":"Climate FieldView","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#climate-fieldview","content":"To enable Climate FieldView as a provider in the widget you need your application credentials from Climate. You can find more info on how to create a developer account here. Application info# To allow the users to authenticate with Climate FieldView, you will need to send your application info to this endpoint POST /usermanagement/api/app-keys/ClimateFieldView/{appName} For Climate FieldView, it is necessary to inform the: apiKeyclientIdclientSecret You can set the appName. Here is a request example: cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"apiKey\": \"string\", \"clientId\": \"string\", \"clientSecret\": \"string\" }' 'https://api.withleaf.io/services/usermanagement/api/app-keys/ClimateFieldView/LeafWidget' "},{"title":"CNHi","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#cnhi","content":"To enable CNHi as a provider in the widget you need your application credentials from CNHi. You can find more info on how to create a developer account here. OAuth Callback URL# The first step is to add our widget URL in the \"App OAuth Callback URL(s)\" section: Copy https://widget.withleaf.io In the Developer Dashboard page, select your application and edit it to add the URL here Application info# To allow the users to authenticate with CNHi, you will need to send your application info to this endpoint POST /usermanagement/api/app-keys/CNHI/{appName}/{clientEnvironment} For CNHi, it is necessary to inform the: clientId (Client Id)clientSecret (Client Secret)subscriptionKey (Primary SubscriptionKey) You can set the appName and the clientEnvironment as the environment your application is enabled on CNHi: STAGE or PRODUCTION. Here is a request example: cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"clientId\": \"string\", \"clientSecret\": \"string\", \"subscriptionKey\": \"string\" }' 'https://api.withleaf.io/services/usermanagement/api/app-keys/CNHI/LeafWidget/PRODUCTION' "},{"title":"AgLeader","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#agleader","content":"To enable AgLeader as a provider in the widget you need your application credentials from AgLeader. You can find more info on how to create a developer account here. Redirection URL# The first step is to add our widget URL in the \"Redirection URL\" property: Copy https://widget.withleaf.io In the Consumer Keys page, select your application and click in the \"Edit Consumer Key Profile\" option to edit it add the URL here Application info# To allow the users to authenticate with AgLeader, you will need to send your application info to this endpoint POST /usermanagement/api/app-keys/AgLeader/{appName} For AgLeader, it is necessary to inform the: privateKeypublicKey You can set the appName. Here is a request example: cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"privateKey\": \"string\", \"publicKey\": \"string\" }' 'https://api.withleaf.io/services/usermanagement/api/app-keys/AgLeader/LeafWidget' "},{"title":"Trimble","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#trimble","content":"To enable Trimble as a provider in the widget you need your application credentials from Trimble. You can find more info on how to create a developer account here. Authentication Callback URL# The first step is make sure our widget URL is registered in the \"Authentication Callback URLs\" section. It may be necessary to contact Trimble to request the change. Copy https://widget.withleaf.io Application info# To allow the users to authenticate with Trimble, you will need to send your application info to this endpoint POST /usermanagement/api/app-keys/Trimble/{appName} For Trimble, it is necessary to inform the: applicationNameclientIdclientSecret You can set the appName. Here is a request example: cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"applicationName\": \"string\", \"clientId\": \"string\", \"clientSecret\": \"string\" }' 'https://api.withleaf.io/services/usermanagement/api/app-keys/Trimble/LeafWidget' "},{"title":"Tutorial","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#tutorial","content":""},{"title":"Angular","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#angular","content":"tip Here you can run a live use case demo! It will only be necessary to replace your information in the .html component. To add this Leaf widget in an Angular application, you can use the @withleaf/leaf-link-angular library, which is a JavaScript library that provides all Leaf UI Widgets. Here are the general steps to get started: Install the @withleaf/leaf-link-angular package using npm: Copy npm i @withleaf/leaf-link-angular Import the library in your component or module file: Copy import { ProvidersModule } from '@withleaf/leaf-link-angular'; Add the component to the HTML. Make sure you already created the Leaf user API key (apiKey); you need to specify both the Leaf User API Key and the Leaf User ID (leafUser) in the required properties in the HTML component. Check all the properties available on the reference here. Copy
"},{"title":"React","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#react","content":"tip Here you can run a live use case demo! It will only be necessary to replace your information in the App.tsx file. To add this Leaf widget in a React application, you can use the @withleaf/leaf-link-react library, which is a JavaScript library that provides all Leaf UI Widgets. Here are the general steps to get started: Install the @withleaf/leaf-link-react package using npm: Copy npm i @withleaf/leaf-link-react Import the component in your *.tsx file: Copy import { Providers } from '@withleaf/leaf-link-react'; Add the component to the *.tsx file. Make sure you already created the Leaf user API key (apiKey); you need to specify both the Leaf User API Key and the Leaf User ID (leafUser) in the required properties in the tsx component. Check all the properties available on the reference here. Copy function App() { return ( ); } "},{"title":"Reference","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#reference","content":""},{"title":"Property Overview","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#property-overview","content":"Name\tType\tSummaryapiKey\tString\tThe authentication API Key companyLogoUrl\tString\tCustomization: a link to the company logo companyName\tString\tCustomization: the name of the company isDarkMode\tBoolean\tEnable/disable the dark mode leafUser\tString\tThe Leaf User ID showSearchbar\tString\tShow/hide the search bar title\tString\tThe title of the widget Property Details# apiKey# The apiKey is the authentication key that will allow the use of the widget. It can be created and managed here. companyLogoUrl# The URL to the company logo. It will be displayed in the landing screen. It can be a PNG, JPEG or SVG. companyName# The company name. It will be displayed in the landing screen and in each reference about the customer. isDarkMode# Toggles dark mode on and off. The default value is false. leafUser# The Leaf User ID. Check this page for more info about the Leaf User. showSearchbar# Shows/hides the search bar for providers available for integration. The default is true, so the search bar will be displayed. title# The title displayed in the widget. The default is \"Select your integration\". Customized texts will not be automatically translated. "},{"title":"Hooks Overview","type":1,"pageTitle":"Leaf Provider Connection / Authentication Link","url":"docs/Link_provider_connection#hooks-overview","content":"Leaf Link also have hooks that can improve the developer experience when using the widgets. Name\tType\tDescriptionprovidersConnected\tArray<{ provider: string; createdTime: string }>\tProvide the array of the provider connected and also the createdTime - available after finish the connection process providerWidgetStatus\t{ code: number; message: string }\tProvide the status code and the message from the current widget Status Hooks Details# providersConnected# Provides the array of the providers connected with the createdTime. It will be available after finish the connection process. providerWidgetStatus# Provides the status code and the message from the current widget status: Status Codes# Code\tMessage-1\tError 0\tStarted 1\tDone How to use it# Angular# Use the getWidgetStatus property to reference a function in your component. Copy
From the component, you can get the status and the providers connected in the referenced function. Copy import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { apiKey: string = 'apiKey'; leafUser: string = 'leafUserId'; companyName: string = 'companyName'; companyLogo: string = 'companyLogo'; yourFunctionNameHere(value: any) { console.log(value.providersConnected); console.log(value.providerWidgetStatus); } } React# Copy import { Leaf } from '@withleaf/leaf-link-react'; { Leaf } import is the context that handle with the providers data. Considering you have a custom component that need to handle or just receive the data updates from Provider Widget: Copy import { useLeaf } from '@withleaf/leaf-link-react'; export const MyComponent = () => { // Import the states from the hook const { providerWidgetStatus, providersConnected } = useLeaf(); return ( <>

{' '} Hook State Example

Status Code: {' '} {providerWidgetStatus.code} |{' '} Status Message: {' '} {providerWidgetStatus.message}


{providersConnected.length === 0 ? (

Providers List is empty

) : ( <> {providersConnected.map((provider, index) => ( <>

{' '} Provider: {provider.provider}

{' '} Created Time: {provider.createdTime}

))} )}
); }; Then, wrap your component in the hook as a children Copy import { Leaf, Providers } from '@withleaf/leaf-link-react' const Example = () => { return ( ); }; From your top-level component can pass the current data to all components below, no matter how deep. This variables will be updated every time the Provider update the steps i.e move from one step to other. Tips# The way that the developer get the updated value from the hook can be different depending the of the application, personal preferences or the way it is architected. We suggest the following with useMemo but it can be also implemented with useEffect.useMemo runs the function and caches its result, which will only be recomputed if any value in the dependency array changes. It helps optimize performance by avoiding unnecessary recalculations. Example Copy useMemo(() => { //Something you want to update, as a state from the component. }, [providerConnected, providerWidgetStatus]) "},{"title":"Machine File Conversion Overview","type":0,"sectionRef":"#","url":"docs/machine_file_conversion_overview","content":"","keywords":""},{"title":"Ways to import machine data into Leaf","type":1,"pageTitle":"Machine File Conversion Overview","url":"docs/machine_file_conversion_overview#ways-to-import-machine-data-into-leaf","content":"Machine files can be imported via Leaf two ways: Uploading the files manually to Leaf: Manual file upload functionality can be useful for your customers if they’re not yet connected to a cloud account through their machinery provider. We provide a manual process or a pre-built file upload widget through Leaf Link to allow your end users to upload various machine file formats via Leaf, which we then process for you into a consistent file format. See previous section for getting started with manual file uploadConnecting to a provider: Leaf will immediately start to pool machine data from the authorized account and monitor new files to keep them updated. See previous section for getting started with provider authentication. "},{"title":"How does Leaf process machine files?","type":1,"pageTitle":"Machine File Conversion Overview","url":"docs/machine_file_conversion_overview#how-does-leaf-process-machine-files","content":"All files move through the following process: Raw proprietary format machine files are converted to a rawGeojson.The rawGeojson gets standardized to become a standardGeojson(Leaf’s proprietary format). The standardGeojson is also cleaned by default.Operations and operation summaries are created by merging machine files based on field boundaries and configuration settings (see operations for more information). File processing time will vary depending on the amount of data being processed on initial upload or sync. You should start to see data processing within a few minutes. After that, processing will happen continuously in the background every 24 hours. Once Leaf has processed files into a file summary, you will receive summarized information, such as averages, standard deviations, maximum and minimum values ​​for important properties, and more. This summary is usually used to get general information about the operation without the need to download and open the standardGeojson file. For example, you can display the area of the operation, how much was harvested and the date it happened, all without opening large files. "},{"title":"Machine file summary vs operation summary","type":1,"pageTitle":"Machine File Conversion Overview","url":"docs/machine_file_conversion_overview#machine-file-summary-vs-operation-summary","content":"Machine file summary: Basic information of files derived from the point data, processed and cleaned by Leaf. Data outputs will vary by task (planted, applied, harvested, tillage). You’ll find some sample responses here. Operation summary: The output of files merged to a field boundary that are processed and cleaned by Leaf. You’ll find some sample responses here. "},{"title":"Why does Leaf merge files?","type":1,"pageTitle":"Machine File Conversion Overview","url":"docs/machine_file_conversion_overview#why-does-leaf-merge-files","content":"Since one single operation can be represented in several (sometimes hundreds of) files by the provider, Leaf provides an auto-merge feature, which will identify files that belong to the same operation (planting, for example) and same field boundary and automatically merge them into a single operation. This works for both integrations and manual file uploads. Please keep in mind that merging files is processing-heavy and can take some time to finish. This process runs every 4 hours. "},{"title":"Machine File Conversion Endpoints","type":0,"sectionRef":"#","url":"docs/machine_file_conversion_endpoints","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Machine File Conversion Endpoints","url":"docs/machine_file_conversion_endpoints#about","content":"All HTTP methods should be prepended by this service's endpoint: Copy https://api.withleaf.io/services/operations/api This service has the following endpoints available: Description\tEndpointsGet all files\tGET /files Get a file\tGET /files/{id} Get a file summary\tGET /files/{id}/summary Get a file's images\tGET /files/{id}/images Get a file's units\tGET /files/{id}/units Get a file status\tGET /files/{id}/status Get uncovered files\tGET /files/uncoveredFiles Merge files\tPOST /files/merge For easily testing these endpoints, we recommend using our Postman collection. requires Leaf User with credentials To have access to operation files, you will need a Leaf User with valid credentials from the provider you want to access data. If you don't have a Leaf User or you have not connected it with any provider yet, see how to create a Leaf Useror how to add credentials to a Leaf User for each of the providers. "},{"title":"Get all files","type":1,"pageTitle":"Machine File Conversion Endpoints","url":"docs/machine_file_conversion_endpoints#get-all-files","content":" GET /files Gets a paged list of files that belong to the current logged in user. It is possible to filter the results by passing some query parameters. They are listed below. Parameter (to filter by)\tValuesleafUserId\tuuid of one of your users provider\tCNHI, JohnDeere, Trimble, ClimateFieldView, AgLeader or Leaf status\tprocessed, failed or processing origin\tprovider, automerged, merged or uploaded organizationId\tthe provider organizationId (only available for John Deere) batchId\tuuid of the upload response (only available for uploaded files) createdTime\tISO 8601 date. Returns operations from the createdTime onward startTime\tISO 8601 date. Returns operations from the startTime onward updatedTime\tISO 8601 date. Returns operations from the updatedTime onward endTime\tISO 8601 date. Returns operations until the endTime operationType\tapplied, planted or harvested minArea\ta number (Double) representing the minimum area (square meters) of the operations to be returned Also, for operationType: harvested we can process the yield properties related to the operation using the crop density and standard moisture available in this table. You can also pass some parameters used exclusively for paging through results. They are: page, an integer specifying the page being fetched (default is 0)size, an integer specifying the size of the page (max is 100)sort, the sorting order of the results; can be multi-value, where the first value to be passed will take priority over the next values; you can also specify the order as asc or desc with asc being the default. Example: id, desc Valid values for sorting are: id, fileName, createdTime, updatedTime, origin, leafUserId, sizeInBytes, provider, organizationId, fileFormat. the default value for page size is 20 If the parameters page and size are not set, the endpoint will return 20 results. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/files' Response# The response is a JSON with the key \"operations\" referring to a list of files.Here's a link with sample responses for \"planted\", \"applied\", \"harvested\" and \"tillage\" operation files. "},{"title":"Get a file","type":1,"pageTitle":"Machine File Conversion Endpoints","url":"docs/machine_file_conversion_endpoints#get-a-file","content":" GET /files/{id} Gets a single file by its id. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/files/{id}' Response# Here's a link with sample responses for \"planted\", \"applied\", \"harvested\" and \"tillage\" operation files. "},{"title":"Get a file summary","type":1,"pageTitle":"Machine File Conversion Endpoints","url":"docs/machine_file_conversion_endpoints#get-a-file-summary","content":" GET /files/{id}/summary Gets the summary, if available, for the file id. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/files/{id}/summary' Response# Here's a link with sample responses for \"planted\", \"applied\", \"harvested\" and \"tillage\" operation files. "},{"title":"Get a file's images","type":1,"pageTitle":"Machine File Conversion Endpoints","url":"docs/machine_file_conversion_endpoints#get-a-files-images","content":" GET /files/{id}/images Gets a list of PNG images generated from the operation's file properties. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/files/{id}/images' Response# Copy [ { \"property\": \"elevation\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [ 0, 230, 0], \"75%\": [ 0, 190, 0], \"100%\": [ 0, 130, 0], \"nv\": [ 0, 0, 0, 0] }, \"url\": \"URL\", \"downloadUrl\": \"URL\" }, .... ] The property refers to the property extracted from files' data to generate the image. In the example above, the image would represent the elevation. The ramp is the color ramp used to generate the image. The percentages correspond to the minimum (0%) and maximum (100%) values in the image. The listed values correspond to RGB values used. The nv refers to no value. It is used internally to make the image transparent on places without data. Currently, this ramp is the same in all images processed. We also generate an auxiliary xml with geographic information to handle this image on GIS environments. You just need to append the \".aux.xml\" string to the png url. "},{"title":"Get a file's units","type":1,"pageTitle":"Machine File Conversion Endpoints","url":"docs/machine_file_conversion_endpoints#get-a-files-units","content":" GET /files/{id}/units Gets the file's properties and their units. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/files/{id}/units' Response# Here's a link with sample responses for \"planted\", \"applied\", \"harvested\" and \"tillage\" operation files. These properties vary depending on the operationType, but you can expect the same, standardized keys, across different providers. Units usually don't change for the same Leaf User, since the providers units configuration is based on their location. But keep in mind that it's best to always take the units into consideration, just to be sure. "},{"title":"Get a file status","type":1,"pageTitle":"Machine File Conversion Endpoints","url":"docs/machine_file_conversion_endpoints#get-a-file-status","content":" GET /files/{id}/status Get status by file processing step by id. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/files/{id}/status' Response# Copy { \"rawGeojson\": { \"status\": \"processed\", \"message\": \"ok\" }, \"normalizedGeojson\": { \"status\": \"processed\", \"message\": \"ok\" }, \"standardGeojson\": { \"status\": \"processed\", \"message\": \"ok\" }, \"propertiesPNGs\": { \"status\": \"processed\", \"message\": \"ok\" }, \"areaAndYield\": { \"status\": \"processed\", \"message\": \"ok\" }, \"summary\": { \"status\": \"processed\", \"message\": \"ok\" }, \"units\": { \"status\": \"processed\", \"message\": \"ok\" }, \"originalFile\": { \"status\": \"processed\", \"message\": \"ok\" }, \"cleanupGeojson\": { \"status\": \"processed\", \"message\": \"ok\" } } "},{"title":"Get uncovered files","type":1,"pageTitle":"Machine File Conversion Endpoints","url":"docs/machine_file_conversion_endpoints#get-uncovered-files","content":" GET /files/uncoveredFiles?leafUserId={leafUserId} Get a list of files that did not generate Field Operations, as they do not intersect with any field. The returned IDs can be consulted in the Get a file endpoint. This endpoint requires the leafUserId filter. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/files/uncoveredFiles?leafUserId={leafUserId}' Response# Copy { \"files\": [ \"c3ad6c7b-19b8-4cd7-580a-dfab82043465\", \"c3ad6c7b-c472-49e9-aab2-7ad222843465\", \"9aa68735-5a04-42ef-0983-dbdd2bcdfa16\" ] } "},{"title":"Merge files","type":1,"pageTitle":"Machine File Conversion Endpoints","url":"docs/machine_file_conversion_endpoints#merge-files","content":" POST /files/merge Posts a merge operation to our server. A merge operation is performed asynchronously. This call will return immediately with the newly created file entry, but at this point, the file is not already processed and available. You will need to make a new GET /files request for the new id and check the status. A status value of processed means the file is done merging. A merge process has some validations, the files passed must belong to the same leafUserId, be of the same operation type and have the status as processed. If any of those filters fail, the endpoint will result in HTTP 400 error. It receives a single JSON object with the ids entry. Request body# Copy { \"ids\": [ \"id1\", \"id2\", \"so on\" ] } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"ids\": [ \"id1\", \"id2\" ] }' 'https://api.withleaf.io/services/operations/api/files/merge' Response# Copy { \"id\": \"id\", \"status\": \"SENT_TO_MERGE\" } After a few minutes, you can consult the result of Leaf processing over this file by performing GET consults in this. "},{"title":"Alerts","type":1,"pageTitle":"Machine File Conversion Endpoints","url":"docs/machine_file_conversion_endpoints#alerts","content":"With Alerts you can be notified when something happens or changes instead of needing to repeatedly query for changes. Leaf Alerts support events that happen within Leaf and events that happen within supported 3rd party software. "},{"title":"List of Operations Events","type":1,"pageTitle":"Machine File Conversion Endpoints","url":"docs/machine_file_conversion_endpoints#list-of-operations-events","content":"Leaf Operations Service can Alert you on these events: list of Operations Events "},{"title":"Units of Measurement and Properties","type":0,"sectionRef":"#","url":"docs/machine_file_conversion_units","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Units of Measurement and Properties","url":"docs/machine_file_conversion_units#about","content":"This page lists the units of measurements and properties across all machine file/operation types (tillage, planting, applied, harvest). If you have any questions or feedback, reach out to our team at help@withleaf.io. Units are determined by the unitMeasurement configuration where you can select IMPERIAL or METRIC. The default is DEFAULT. DefaultImperialMetric These are the units of measurement for the DEFAULT configuration. All typesPlantedAppliedHarvestedTillage Property\tUnit of measurement\tDescriptionstartTime\t-\tAll dates follow ISO 8601 format. Specifically, all dates should be in the format \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\". finishTime\t-\tAll dates follow ISO 8601 format. Specifically, all dates should be in the format \"yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'\". operationType\t-\tThis field will tell you what type of operation it is e.g. \"planted\", \"harvested\", \"applied\" or \"tillage\". crop\t-\tIndicates the type of crop being grown where the operation is happening e.g. corn. varieties\t-\tIndicates the type of variety being grown where the operation is happening e.g. P1309WAM is a variety of corn. This property also comes with seed rate, count and area information. machinery\t-\tShows the type of machinery used including the name, type, brand and serial number. geometry\t-\tShows where the operation happened and the shape of the area covered, includes geometry type and coordinates. speed\tImperial: ft/s or m/s\tFeet or meters per second. How fast did the tractor travel? totalDistance\tImperial: ft, Metric: m\tFeet or meters. How far did the tractor travel? elevation\tImperial: ft, Metric: m\tFeet or meters. What was the elevation of the landscape? equipmentWidth\tImperial: ft, Metric: m\tFeet or meters. How wide is the equipment? totalArea\tm²\tTotal area covered in square meters. The m² is a common area measurement that's then calculated into another number such as acres (ac) or hectares (ha). "},{"title":"Machine File Conversion Sample Responses","type":0,"sectionRef":"#","url":"docs/machine_file_conversion_sample_output","content":"","keywords":""},{"title":"Overview","type":1,"pageTitle":"Machine File Conversion Sample Responses","url":"docs/machine_file_conversion_sample_output#overview","content":"This page shows and describes sample responses from Leaf's API, along with a list of what properties you can expect for each type of data. "},{"title":"Machine Files","type":1,"pageTitle":"Machine File Conversion Sample Responses","url":"docs/machine_file_conversion_sample_output#machine-files","content":"Leaf returns operation file in a standardized format. Summaries use the point data to derive basic information about the operation and include links to the original files and images of an operation. Naturally, different types of operations contain different properties. For instance, an appliedoperation will contain appliedRate, whereas a harvested operation will contain wetMass and other Yield properties. The resource below shows a typical return. A list of all properties is available here. A list of the properties as well as a sample summary response for an operation file is included below. An operation returned by Leaf can be an individual file or contain multiple individual files (uploaded, merged or uploaded). If the operation contains more than one individual file, another key is added to the resource, the \"sources\" key, that is a list of individual file ids. If the operation was created by an upload on the /batch endpoint, the \"batchId\"key will be added to the resource with the corresponding uuid. "},{"title":"Machine File Sample","type":1,"pageTitle":"Machine File Conversion Sample Responses","url":"docs/machine_file_conversion_sample_output#machine-file-sample","content":"You can move through the four tabs below to see a sample of how Leaf returns each of the operation types. PlantedAppliedHarvestedTillage This is an example of a summary for a \"harvested\" operation Copy { \"id\": \"7b525b72-a8e7-4d34-80bb-9ea2dde87a09\", \"provider\": \"providerName\", \"fields\": [ \"696b5df6-e401-4d13-bafe-3d2689723254\" ], \"fileType\": \"HARVESTED\", \"fileName\": \"testFile.zip\", \"sizeInBytes\": 1244007, \"originalFile\": \"url\", \"downloadOriginalFile\": \"url\", \"rawGeojson\": \"url\", \"downloadRawGeojson\": \"url\", \"standardGeojson\": \"url\", \"downloadStandardGeojson\": \"url\", \"leafUserId\": \"286eeb50-8e85-4e33-9f2d-1b9dcf0e56d7\", \"apiOwnerUsername\": \"test\", \"summary\": { \"type\": \"Feature\", \"properties\": { \"totalDryMass\": { \"value\": 69707.74072725822, \"unit\": \"lb\" }, \"dryVolume\": { \"avg\": 0.10060462979191162, \"min\": 0.0006342037622996388, \"max\": 0.19444628348991, \"unit\": \"bu\" }, \"totalDryVolume\": { \"value\": 1244.7810844153173, \"unit\": \"bu\" }, \"wetMassPerArea\": { \"avg\": 11752.315810068158, \"min\": 87.79542055062868, \"max\": 40340.87999553387, \"unit\": \"lb/ac\" }, \"speed\": { \"avg\": 4.926574796479164, \"min\": 2.430000066757202, \"max\": 6.389999866485596, \"unit\": \"mi/hr\" }, \"totalWetVolume\": { \"value\": 1294.538978069886, \"unit\": \"bu\" }, \"originalOperationType\": \"Harvesting\", \"startTime\": \"2015-09-23T00:00:00Z\", \"totalDistance\": { \"value\": 17978.417202127104, \"unit\": \"ft\" }, \"wetMass\": { \"avg\": 5.859062698772619, \"min\": 0.03795335565182652, \"max\": 11.06340317250743, \"unit\": \"lb\" }, \"elevation\": { \"avg\": 155.78382768932352, \"min\": 147.6, \"max\": 162.4, \"unit\": \"ft\" }, \"harvestMoisture\": { \"avg\": 18.224961609957166, \"min\": 12.75, \"max\": 21.18, \"unit\": \"percentage\" }, \"dryVolumePerArea\": { \"avg\": 201.7963353621763, \"min\": 1.467068855167438, \"max\": 687.8289538734305, \"unit\": \"bu/ac\" }, \"wetVolume\": { \"avg\": 0.10462611962093962, \"min\": 0.0006777384937826164, \"max\": 0.19756077093763266, \"unit\": \"bu\" }, \"wetVolumePerArea\": { \"avg\": 209.86278232264567, \"min\": 1.5677753669755121, \"max\": 720.3728570631048, \"unit\": \"bu/ac\" }, \"dryMassPerArea\": { \"avg\": 11300.594780281874, \"min\": 82.15585588937653, \"max\": 38518.421416912104, \"unit\": \"lb/ac\" }, \"totalWetMass\": { \"value\": 72494.18277191388, \"unit\": \"lb\" }, \"varieties\": [ { \"harvestMoisture\": { \"avg\": 18.224961609957166, \"min\": 12.75, \"max\": 21.18, \"unit\": \"percentage\" }, \"wetMass\": { \"value\": 72494.18277191388, \"unit\": \"lb\" }, \"wetMassPerArea\": { \"value\": 2.904060481369501, \"unit\": \"lb/ac\" }, \"wetVolume\": { \"value\": 1294.538978069886, \"unit\": \"bu\" }, \"area\": { \"value\": 24963.041657357968, \"unit\": \"m2\" }, \"dryVolume\": { \"value\": 1244.7810844153173, \"unit\": \"bu\" }, \"dryMassPerArea\": { \"value\": 2.7924377839874155, \"unit\": \"lb/ac\" }, \"dryMass\": { \"value\": 69707.74072725822, \"unit\": \"lb\" }, \"name\": \"Corn\" } ], \"originalOperationData\": { \"originalOperationType\": \"Harvesting\" }, \"operationType\": \"harvested\", \"dryMass\": { \"avg\": 5.6338592683470505, \"min\": 0.035515410688779774, \"max\": 10.88899187543496, \"unit\": \"lb\" }, \"endTime\": \"2015-09-24T00:36:55.8Z\", \"crop\": [ \"corn\" ], \"totalArea\": { \"value\": 24963.041657357968, \"unit\": \"m2\" }, \"machinery\": [ { \"name\": \"Case IH X010 Series 7010\", \"type\": \"machine\", \"serialNumber\": \"8227260\", \"brand\": \"Case IH\" }, { \"name\": \"Case IH Corn Head 15ft 6row\", \"type\": \"implement\", \"brand\": \"Case IH\" } ] }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[ [-89.80434894561768,40.47791686563837], [-89.80756759643555,40.4757623387113], [-89.80746030807495,40.47302011353734], [-89.80475664138794,40.47070219301965], [-89.80080842971802,40.47068586935202], [-89.79797601699828,40.472709973879255], [-89.7978687286377,40.47569704893722], [-89.80117321014404,40.47808008455794], [-89.80434894561768,40.47791686563837] ]]] } } } "},{"title":"Properties by Operation Type","type":1,"pageTitle":"Machine File Conversion Sample Responses","url":"docs/machine_file_conversion_sample_output#properties-by-operation-type","content":"Select the tab you want to see: \"planted\", \"applied\", \"harvested\", or \"tillage\". PlantedAppliedHarvestedTillage key\tpresence\ttypecrop\t*\tstring seedRate\t*\tdict operationType\t*\tstring \"planted\" originalOperationType\t**\tstring totalArea\t*\tfloat elevation\t*\tdict varieties\t**\tdict seedRateTarget\t**\tdict seedDepth\t**\tdict machinery\t**\tlist of machineInfo objects speed\t**\tdict totalPlanted\t**\tint (number of seeds) operationDescription\t**\tstring downForce\t**\tdict singulation\t**\tdict * = Always in response ** = Usually in response but not required to pass tests "},{"title":"Standard Geojson","type":1,"pageTitle":"Machine File Conversion Sample Responses","url":"docs/machine_file_conversion_sample_output#standard-geojson","content":"When the data is present in the original file, Leaf standardizes names and units to create the standardGeojson. Below we list all the properties in the standardGeojson. "},{"title":"Summary Response Sample","type":1,"pageTitle":"Machine File Conversion Sample Responses","url":"docs/machine_file_conversion_sample_output#summary-response-sample","content":"Each operation file returns with a \"standardgeojson\" URL that allows you to download a full point dataset from the operation in a standardized geojson format. Below is an example of the format of each point in these files. PlantedAppliedHarvestedTillage Copy { \"type\": \"Feature\", \"geometry\": { \"type\": \"Point\", \"coordinates\": [-74.83762110788625, 28.686604864693564] }, \"properties\": { \"distance\": \"float\", \"heading\": \"float\", \"speed\": \"float\", \"elevation\": \"float\", \"equipmentWidth\": \"float\", \"recordingStatus\": \"string\", \"machinery\": [\"string\"], \"sectionId\" : \"int\", \"timestamp\": \"string\", \"operationType\": \"planted\", \"originalOperationType\": \"name of the operation as returned by the provider\", \"crop\": \"string\", \"variety\": \"string\", \"area\": \"float\", \"seedRate\": \"int\", \"seedRateTarget\": \"int\", \"seedDepth\": \"float\", \"downForce\": \"float\", \"singulation\": \"float\", \"skips\": \"float\", \"doubles\": \"float\" } } "},{"title":"Properties","type":1,"pageTitle":"Machine File Conversion Sample Responses","url":"docs/machine_file_conversion_sample_output#properties","content":"PlantedAppliedHarvestedTillage key\tpresence\ttype\texample units\tdescriptioncoords\t*\tPoint (x,y)\t-\tPoint (x,y) timestamp\t*\tstring\t-\tISO 8601 date, complete and with Z. example: 2011-10-05T14:48:00.000Z crop\t*\tstring\t-\tCrop type (normalized) area\t*\tfloat\tft² or m²\tArea represented by point heading\t*\tfloat\tdegrees\tHeading of machine at point distance\t*\tfloat\tft or m\tDistance traveled since previous point elevation\t*\tfloat\tft or m\tDistance to sea level operationType\t*\tstring\t-\tstring \"planted\" originalOperationType\t**\tstring\t-\tstring equipmentWidth\t*\tfloat\tft or m\tWidth of implement recordingStatus\t*\tBoolean\t-\tRecording status of machine at point seedRate\t*\tint\tseeds/m² or seeds/ac\tThe rate of seeds planted at point variety\t**\tstring\t-\tThe variety of seed being planted speed\t**\tfloat\tft/s or m/s\tSpeed of machine at point sectionId\t**\tint\t-\tID of implement sensor section machinery\t**\tlist of machineInfo objects\t-\tname of machine & implement seedRateTarget\t**\tint\tseeds/m² or seeds/ac\tThe target rate of seeds to be planted at the point seedDepth\t**\tfloat\tcm\tThe depth at which seeds were planted at point productIndex\t**\tint\t-\tIndex of the applied product downForce\t**\tfloat\tlbf\tThe weight detected by the down force sensor on each row that has one singulation\t**\tfloat\t%\tThe performance of each meter on the planter xOffset\t**\tfloat\tm\tVertical offset from the instrumentation sensor and the monitor GPS system yOffset\t**\tfloat\tm\tHorizontal offset from the instrumentation sensor and the monitor GPS system * = Always in response ** = Usually in response but not required to pass tests $ = Not available when the crop is sugarcane Despite the example units, Leaf's API will push through every unit, if the processed file contains the required (marked with *) properties. "},{"title":"Valid points","type":1,"pageTitle":"Machine File Conversion Sample Responses","url":"docs/machine_file_conversion_sample_output#valid-points","content":"The points in the standardGeoJSON are considered valid if all the following rules are true: property\trulewetMass\t> 0.0 wetMassPerArea\t> 0.0 wetVolume\t> 0.0 wetVolumePerArea\t> 0.0 harvestMoisture\t> 0.0 and <100.0 appliedRate\t> 0.0 seedRate\t> 0.0 tillageDepthActual\t> 0.0 recordingStatus\t= \"On\" The API will automatically clean the invalid points when the cleanupStandardGeojson configuration is enabled. "},{"title":"Images","type":1,"pageTitle":"Machine File Conversion Sample Responses","url":"docs/machine_file_conversion_sample_output#images","content":"Also, Leaf displays all the numerical properties across all operation types via a png file. Here's a sample response from a Leaf harvested file. Copy [ { \"property\": \"area\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0 ] }, \"url\": \"https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png\" }, { \"property\": \"wetMass\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0 ] }, \"url\": \"https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png\" }, { \"property\": \"wetVolume\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0 ] }, \"url\": \"https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png\" }, { \"property\": \"distance\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0 ] }, \"url\": \"https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png\" }, { \"property\": \"wetVolumePerArea\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0 ] }, \"url\": \"https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png\" }, { \"property\": \"equipmentWidth\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0 ] }, \"url\": \"https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png\" }, { \"property\": \"wetMassPerArea\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0 ] }, \"url\": \"https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png\" }, { \"property\": \"sectionId\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0 ] }, \"url\": \"https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png\" }, { \"property\": \"elevation\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0 ] }, \"url\": \"https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png\" }, { \"property\": \"harvestMoisture\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0 ] }, \"url\": \"https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png\" }, { \"property\": \"heading\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0 ] }, \"url\": \"https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png\" }, { \"property\": \"dryMass\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0 ] }, \"url\": \"https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png\" }, { \"property\": \"dryMassPerArea\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0 ] }, \"url\": \"https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png\" }, { \"property\": \"dryVolume\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0 ] }, \"url\": \"https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png\" }, { \"property\": \"dryVolumePerArea\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [0, 230, 0], \"75%\": [0, 190, 0], \"100%\": [0, 130, 0], \"nv\": [0, 0, 0, 0 ] }, \"url\": \"https://png-files-bucket-dev.s3.us-east-1.amazonaws.com/uuid.png\" } ] "},{"title":"Machine Files Units","type":1,"pageTitle":"Machine File Conversion Sample Responses","url":"docs/machine_file_conversion_sample_output#machine-files-units","content":"Here is an example of Units from the numerical properties of the Machine Files. PlantedHarvestedAppliedTillage Copy { \"elevation\": \"ft\", \"area\": \"m2\", \"harvestMoisture\": \"percentage\", \"dryVolumePerArea\": \"bu/ac\", \"distance\": \"ft\", \"heading\": \"arcdeg\", \"dryVolume\": \"bu\", \"wetVolume\": \"bu\", \"wetVolumePerArea\": \"bu/ac\", \"dryMassPerArea\": \"lb/ac\", \"wetMassPerArea\": \"lb/ac\", \"speed\": \"mi/hr\", \"equipmentWidth\": \"ft\", \"dryMass\": \"lb\", \"wetMass\": \"lb\" } "},{"title":"Magic Link Overview","type":0,"sectionRef":"#","url":"docs/Magic_link_overview","content":"","keywords":""},{"title":"Authenticate with Magic Link","type":1,"pageTitle":"Magic Link Overview","url":"docs/Magic_link_overview#authenticate-with-magic-link","content":" "},{"title":"Provider","type":1,"pageTitle":"Magic Link Overview","url":"docs/Magic_link_overview#provider","content":"The Magic Link Provider is a feature that allows the user to authenticate with several providers using a single link. It is necessary to have previously created the respective application info for these providers. "},{"title":"Authentication","type":1,"pageTitle":"Magic Link Overview","url":"docs/Magic_link_overview#authentication","content":"The Magic Link Authentication is a feature to authenticate with only one provider at a time. It is necessary to have previously created the application info for this provider. "},{"title":"Upload file with Magic Link","type":1,"pageTitle":"Magic Link Overview","url":"docs/Magic_link_overview#upload-file-with-magic-link","content":" "},{"title":"File upload","type":1,"pageTitle":"Magic Link Overview","url":"docs/Magic_link_overview#file-upload","content":"The Magic Link File upload is a feature that allows the user to upload machine files to the Leaf API. "},{"title":"Magic Link Endpoints","type":0,"sectionRef":"#","url":"docs/Magic_link_endpoints","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Magic Link Endpoints","url":"docs/Magic_link_endpoints#about","content":"All HTTP methods should be prepended by this service's endpoint: Copy https://api.withleaf.io/services/widgets/api "},{"title":"Magic Link","type":1,"pageTitle":"Magic Link Endpoints","url":"docs/Magic_link_endpoints#magic-link","content":""},{"title":"Provider","type":1,"pageTitle":"Magic Link Endpoints","url":"docs/Magic_link_endpoints#provider","content":"This is a link to authenticate with multiple providers. Endpoints Description\tEndpointsGet all provider Magic Links\tGET /magic-link/provider Get a provider Magic Link\tGET /magic-link/provider/{magicLinkId} Create a provider Magic Link\tPOST /magic-link/users/{leafUserId}/provider Delete a provider Magic Link\tDELETE /magic-link/provider/{magicLinkId} Get all provider Magic Link#  GET /magic-link/provider Get all created links for authentication across multiple providers. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/widgets/api/magic-link/provider' Response# Copy [ { \"id\": \"magicLinkId\", \"link\": \"https://magic-link.withleaf.io/{magicLinkId}\", \"createdAt\": \"2023-11-02T19:17:16.494Z\", \"expiresAt\": \"2024-10-26T14:23:56.584Z\", \"lastAccessedAt\": \"2023-11-02T19:17:18.906Z\", \"leafUserId\": \"UUID\", \"maxUsage\": 3, \"usageCount\": 0, \"widget\": \"PROVIDER\", \"settings\": { \"backgroundColor\": \"codeColor\", \"headerImage\": \"URL\", \"companyLogo\": \"URL\", \"companyName\": \"companyName\", \"showLeafUserName\": \"boolean\", \"disconnectEnabled\": \"boolean\" }, \"allowedProviders\": [ \"Other\" ] }, .... ] Get a provider Magic Link#  GET /magic-link/provider/{magicLinkId} Get a created link for authentication across multiple providers. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/widgets/api/magic-link/provider/{magicLinkId}' Response# Copy { \"id\": \"magicLinkId\", \"link\": \"https://magic-link.withleaf.io/{magicLinkId}\", \"createdAt\": \"2023-11-02T19:17:16.494Z\", \"expiresAt\": \"2024-10-26T14:23:56.584Z\", \"lastAccessedAt\": \"2023-11-02T19:17:18.906Z\", \"leafUserId\": \"UUID\", \"maxUsage\": 3, \"usageCount\": 0, \"widget\": \"PROVIDER\", \"settings\": { \"backgroundColor\": \"codeColor\", \"headerImage\": \"URL\", \"companyLogo\": \"URL\", \"companyName\": \"companyName\", \"showLeafUserName\": \"boolean\", \"disconnectEnabled\": \"boolean\" }, \"allowedProviders\": [ \"Other\" ] } Create a provider Magic Link#  POST /magic-link/users/{leafUserId}/provider Provider application info Make sure you set up your provider application first. More info here. Creates a link for authentication across multiple providers. allowedProviders: the list of providers allowed in the authentication process. It can be one or more of the following: JohnDeere, ClimateFieldView, CNHI, AgLeader, and Trimble.expiresIn: an integer number for the expiration time, in seconds. This parameter is optional and the default value is 900 (minimum) and the maximum is the equivalent to 1 year. Request body# Copy { \"expiresIn\": int, \"allowedProviders\": [ \"providerName\" ] } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"expiresIn\": int, \"allowedProviders\": [\"providerName\"], \"settings\": { \"backgroundColor\": \"codeColor\", \"headerImage\": \"URL\", \"companyLogo\": \"URL\", \"companyName\": \"companyName\", \"showLeafUserName\": \"boolean\", \"disconnectEnabled\": \"boolean\" } }' 'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/provider' Response# Copy { \"id\": \"magicLinkId\", \"leafUserId\": \"UUID\", \"link\": \"https://magic-link.withleaf.io/{magicLinkId}\", \"expiresAt\": \"2010-10-10T10:10:10.000000000Z\" } Delete a provider Magic Link#  DELETE /magic-link/provider/{magicLinkId} Delete a link for authentication across multiple providers. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/widgets/api/magic-link/provider/{magicLinkId}' "},{"title":"Authentication","type":1,"pageTitle":"Magic Link Endpoints","url":"docs/Magic_link_endpoints#authentication","content":"This is a link to authenticate with a single provider. Endpoints Description\tEndpointsGet all authentication Magic Links\tGET /magic-link/authentication Get an authentication Magic Link\tGET /magic-link/authentication/{magicLinkId} Create an authentication Magic Link\tPOST /magic-link/users/{leafUserId}/authentication Delete an authentication Magic Link\tDELETE /magic-link/authentication/{magicLinkId} Get all authentication Magic Links#  GET /magic-link/authentication Get all created links for authentication with a single provider. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/widgets/api/magic-link/authentication' Response# Copy [ { \"id\": \"magicLinkId\", \"link\": \"https://magic-link.withleaf.io/{magicLinkId}\", \"createdAt\": \"2023-11-02T19:17:16.494Z\", \"expiresAt\": \"2024-10-26T14:23:56.584Z\", \"lastAccessedAt\": \"2023-11-02T19:17:18.906Z\", \"leafUserId\": \"UUID\", \"maxUsage\": 3, \"usageCount\": 0, \"widget\": \"AUTHENTICATION\", \"settings\": { \"backgroundColor\": \"codeColor\", \"headerImage\": \"URL\", \"companyLogo\": \"URL\", \"companyName\": \"companyName\", \"showLeafUserName\": \"boolean\", \"disconnectEnabled\": \"boolean\" }, \"provider\": \"providerName\" }, .... ] Get an authentication Magic Link#  GET /magic-link/authentication/{magicLinkId} Get a created link for authentication with a single provider. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/widgets/api/magic-link/authentication/{magicLinkId}' Response# Copy { \"id\": \"magicLinkId\", \"link\": \"https://magic-link.withleaf.io/{magicLinkId}\", \"createdAt\": \"2023-11-02T19:17:16.494Z\", \"expiresAt\": \"2024-10-26T14:23:56.584Z\", \"lastAccessedAt\": \"2023-11-02T19:17:18.906Z\", \"leafUserId\": \"UUID\", \"maxUsage\": 3, \"usageCount\": 0, \"widget\": \"AUTHENTICATION\", \"settings\": { \"backgroundColor\": \"codeColor\", \"headerImage\": \"URL\", \"companyLogo\": \"URL\", \"companyName\": \"companyName\", \"showLeafUserName\": \"boolean\", \"disconnectEnabled\": \"boolean\" }, \"provider\": \"providerName\" } Create an authentication Magic Link#  POST /magic-link/users/{leafUserId}/authentication Provider application info Make sure you set up your provider application first. More info here. Creates a link for authentication with a single provider. provider: the provider to be used in the authentication process. It can be: JohnDeere, ClimateFieldView, CNHI, AgLeader or Trimble.expiresIn: an integer number for the expiration time, in seconds. This parameter is optional and the default value is 900 (minimum) and the maximum is the equivalent to 1 year. Request body# Copy { \"expiresIn\": int, \"provider\": \"providerName\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"expiresIn\": int, \"provider\": \"providerName\", \"settings\": { \"backgroundColor\": \"codeColor\", \"headerImage\": \"URL\", \"companyLogo\": \"URL\", \"companyName\": \"companyName\", \"showLeafUserName\": \"boolean\", \"disconnectEnabled\": \"boolean\" } }' 'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/authentication' Response# Copy { \"id\": \"magicLinkId\", \"leafUserId\": \"UUID\", \"link\": \"https://magic-link.withleaf.io/{magicLinkId}\", \"expiresAt\": \"2010-10-10T10:10:10.000000000Z\" } Delete an authentication Magic Link#  DELETE /magic-link/authentication/{magicLinkId} Delete a link for authentication with a single provider. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/widgets/api/magic-link/authentication/{magicLinkId}' "},{"title":"File upload","type":1,"pageTitle":"Magic Link Endpoints","url":"docs/Magic_link_endpoints#file-upload","content":"This is a link to upload machine files. Endpoints Description\tEndpointsGet all file upload Magic Links\tGET /magic-link/file-upload Get a file upload Magic Link\tGET /magic-link/file-upload/{magicLinkId} Create a file upload Magic Link\tPOST /magic-link/users/{leafUserId}/file-upload Delete a file upload Magic Link\tDELETE /magic-link/file-upload/{magicLinkId} Get all file upload Magic Links#  GET /magic-link/file-upload Get all file upload created links. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/widgets/api/magic-link/file-upload' Response# Copy [ { \"id\": \"magicLinkId\", \"link\": \"https://magic-link.withleaf.io/{magicLinkId}\", \"createdAt\": \"2023-10-30T20:47:22.630Z\", \"expiresAt\": \"2023-10-30T21:02:22.729Z\", \"lastAccessedAt\": \"2023-10-30T20:47:28.209Z\", \"leafUserId\": \"UUID\", \"maxUsage\": 3, \"usageCount\": 0, \"widget\": \"FILEUPLOAD\", \"settings\": { \"backgroundColor\": \"codeColor\", \"headerImage\": \"URL\", \"companyLogo\": \"URL\", \"companyName\": \"companyName\", \"showLeafUserName\": \"boolean\", \"disconnectEnabled\": \"boolean\" } }, .... ] Get a file upload Magic Link#  GET /magic-link/file-upload/{magicLinkId} Get a file upload created link. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/widgets/api/magic-link/file-upload/{magicLinkId}' Response# Copy { \"id\": \"magicLinkId\", \"link\": \"https://magic-link.withleaf.io/{magicLinkId}\", \"createdAt\": \"2023-10-30T20:47:22.630Z\", \"expiresAt\": \"2023-10-30T21:02:22.729Z\", \"lastAccessedAt\": \"2023-10-30T20:47:28.209Z\", \"leafUserId\": \"UUID\", \"maxUsage\": 3, \"usageCount\": 0, \"widget\": \"FILEUPLOAD\", \"settings\": { \"backgroundColor\": \"codeColor\", \"headerImage\": \"URL\", \"companyLogo\": \"URL\", \"companyName\": \"companyName\", \"showLeafUserName\": \"boolean\", \"disconnectEnabled\": \"boolean\" } } Create a file upload Magic Link#  POST /magic-link/users/{leafUserId}/file-upload Creates a file upload link. expiresIn: an integer number for the expiration time, in seconds. This parameter is optional and the default value is 900 (minimum) and the maximum is the equivalent to 1 year. Request body# Copy { \"expiresIn\": int } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"expiresIn\": int, \"settings\": { \"backgroundColor\": \"codeColor\", \"headerImage\": \"URL\", \"companyLogo\": \"URL\", \"companyName\": \"companyName\", \"showLeafUserName\": \"boolean\", \"disconnectEnabled\": \"boolean\" } }' 'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/file-upload' Response# Copy { \"id\": \"magicLinkId\", \"leafUserId\": \"UUID\", \"link\": \"https://magic-link.withleaf.io/{magicLinkId}\", \"expiresAt\": \"2010-10-10T10:10:10.000000000Z\" } Delete a file upload Magic Link#  DELETE /magic-link/file-upload/{magicLinkId} Delete a file upload link. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/widgets/api/magic-link/file-upload/{magicLinkId}' "},{"title":"Magic Link with Leaf User Creation","type":1,"pageTitle":"Magic Link Endpoints","url":"docs/Magic_link_endpoints#magic-link-with-leaf-user-creation","content":"This option enables the creation of Leaf users automatically during the Magic Link creation process. The uniqueness of leaf users can be achieved using a mandatory external identifier, the externalId, which can be an ID already used in your application. Endpoints Description\tEndpointsCreate a Provider Magic Link\tPOST /magic-link/provider Create an Authentication Magic Link\tPOST /magic-link/authentication Create a File Upload Magic Link\tPOST /magic-link/file-upload "},{"title":"Create a Provider Magic Link","type":1,"pageTitle":"Magic Link Endpoints","url":"docs/Magic_link_endpoints#create-a-provider-magic-link-1","content":" POST /magic-link/provider Provider application info Make sure you set up your provider application first. More info here. Creates a link for authentication across multiple providers. The leaf user will be created during this process based on the externalId. provider: the provider to be used in the authentication process. It can be: JohnDeere, ClimateFieldView, CNHI, AgLeader or Trimble.expiresIn: an integer number for the expiration time, in seconds. This parameter is optional and the default value is 900 (minimum) and the maximum is the equivalent to 1 year.externalId: the client side user unique IDname: it will be the name of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints.email: it will be the email of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints. info The name and email parameters are optional, they will fill in the leaf user information that we will create, when they are not informed, we will fill in the name and email with the externalId information. Request body# Copy { \"name\": \"user_name\", \"email\": \"user_email\", \"externalId\": \"external_id\", \"expiresIn\": 900, \"allowedProviders\": [ \"provider_name\" ] } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"name\": \"user_name\", \"email\": \"user_email\", \"externalId\": \"external_id\", \"expiresIn\": int, \"allowedProviders\": [\"providerName\"], \"settings\": { \"backgroundColor\": \"codeColor\", \"headerImage\": \"URL\", \"companyLogo\": \"URL\", \"companyName\": \"companyName\", \"showLeafUserName\": \"boolean\", \"disconnectEnabled\": \"boolean\" } }' 'https://api.withleaf.io/services/widgets/api/magic-link/provider' Response# Copy { \"id\": \"magicLinkId\", \"leafUserId\": \"UUID\", \"link\": \"https://magic-link.withleaf.io/{magicLinkId}\", \"expiresAt\": \"2010-10-10T10:10:10.000000000Z\" } "},{"title":"Create an Authentication Magic Link","type":1,"pageTitle":"Magic Link Endpoints","url":"docs/Magic_link_endpoints#create-an-authentication-magic-link-1","content":" POST /magic-link/authentication Provider application info Make sure you set up your provider application first. More info here. Creates a link for authentication with a single provider. The leaf user will be created during this process based on the externalId. provider: the provider to be used in the authentication process. It can be: JohnDeere, ClimateFieldView, CNHI, AgLeader or Trimble.expiresIn: an integer number for the expiration time, in seconds. This parameter is optional and the default value is 900 (minimum) and the maximum is the equivalent to 1 year.externalId: the client side user unique IDname: it will be the name of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints.email: it will be the email of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints. info The name and email parameters are optional, they will fill in the leaf user information that we will create, when they are not informed, we will fill in the name and email with the externalId information. Request body# Copy { \"name\": \"user_name\", \"email\": \"user_email\", \"externalId\": \"external_id\", \"expiresIn\": 900, \"provider\": \"provider_name\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"name\": \"user_name\", \"email\": \"user_email\", \"externalId\": \"external_id\", \"expiresIn\": int, \"provider\": \"provider_name\", \"settings\": { \"backgroundColor\": \"codeColor\", \"headerImage\": \"URL\", \"companyLogo\": \"URL\", \"companyName\": \"companyName\", \"showLeafUserName\": \"boolean\", \"disconnectEnabled\": \"boolean\" } }' 'https://api.withleaf.io/services/widgets/api/magic-link/authentication' Response# Copy { \"id\": \"magicLinkId\", \"leafUserId\": \"UUID\", \"link\": \"https://magic-link.withleaf.io/{magicLinkId}\", \"expiresAt\": \"2010-10-10T10:10:10.000000000Z\" } "},{"title":"Create a File Upload Magic Link","type":1,"pageTitle":"Magic Link Endpoints","url":"docs/Magic_link_endpoints#create-a-file-upload-magic-link-1","content":" POST /magic-link/file-upload Create a file upload link. The leaf user will be created during this process based on the externalId. expiresIn: an integer number for the expiration time, in seconds. This parameter is optional and the default value is 900 (minimum) and the maximum is the equivalent to 1 year.externalId: the client side user unique IDname: it will be the name of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints.email: it will be the email of the leaf user that we will be created. Updates in this property must be done in the Leaf user endpoints. info The name and email parameters are optional, they will fill in the leaf user information that we will create, when they are not informed, we will fill in the name and email with the externalId information. Request body# Copy { \"name\": \"user_name\", \"email\": \"user_email\", \"externalId\": \"external_id\", \"expiresIn\": 900 } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"name\": \"user_name\", \"email\": \"user_email\", \"externalId\": \"external_id\", \"expiresIn\": int, \"settings\": { \"backgroundColor\": \"codeColor\", \"headerImage\": \"URL\", \"companyLogo\": \"URL\", \"companyName\": \"companyName\", \"showLeafUserName\": \"boolean\", \"disconnectEnabled\": \"boolean\" } }' 'https://api.withleaf.io/services/widgets/api/magic-link/file-upload' Response# Copy { \"id\": \"magicLinkId\", \"leafUserId\": \"UUID\", \"link\": \"https://magic-link.withleaf.io/{magicLinkId}\", \"expiresAt\": \"2010-10-10T10:10:10.000000000Z\" } "},{"title":"Link customization","type":1,"pageTitle":"Magic Link Endpoints","url":"docs/Magic_link_endpoints#link-customization","content":"The links can be customized using some properties described below. Simply fill in the settings property when creating the link. \tProperty\tType\tDescription1\tbackgroundColor\tstring\tThe application's background color in hexadecimal format, for example: \"#c0392b\" or \"#27ae60\". The default is #F5F5F5. 2\tcompanyLogo\tstring\tURL for the company logo. 3\tcompanyName\tstring\tThe company name. 4\theaderImage\tstring\tURL to an image that will be used as a header in the application. 5\tshowLeafUserName\tboolean\tIndicates whether the Leaf user name will be displayed or not. It can be true or false. The default is false. 6\tdisconnectedEnabled\tboolean\tOnly enabled for provider and authentication Magic Link. Enables the option for the user to choose to disconnect from the provider at the end of the authentication process. It can be true or false. The default is false. Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"expiresIn\": int, \"allowedProviders\": [\"Other\"], \"settings\": { \"backgroundColor\": \"codeColor\", \"headerImage\": \"URL\", \"companyLogo\": \"URL\", \"companyName\": \"companyName\", \"showLeafUserName\": \"boolean\", \"disconnectEnabled\": \"boolean\" } }' 'https://api.withleaf.io/services/widgets/api/magic-link/users/{leafUserId}/provider' "},{"title":"Field Operations Overview","type":0,"sectionRef":"#","url":"docs/operations_overview","content":"","keywords":""},{"title":"Operations","type":1,"pageTitle":"Field Operations Overview","url":"docs/operations_overview#operations","content":"Leaf operations provide a way to get unified, consistent and standardized data from tasks (planting, tillage, application and harvest) performed in a given field, across all the provider(s) you integrate. For all operations processed through Leaf, you will receive: A standardGeoJsonFiltered GeoJson (if enabled)Relevant images of the operation (if enabled)File summary Leaf automatically processes operation files and merges them into field operations. You can find more information on how to extract operations data through the Operations endpoint page. IMPORTANT NOTE: The process of creating operations starts at Machine File Conversion so please make sure you read and understand the conversion process before continuing.You MUST have field boundaries in order to create operations.It is important to set up configurations to ensure you customize your setup to your needs.Also, alerts should be set up (webhooks) to ensure that you are notified when there are updates to your data and that data processing is finished. "},{"title":"Field Operations Endpoints","type":0,"sectionRef":"#","url":"docs/operations_endpoints","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Field Operations Endpoints","url":"docs/operations_endpoints#about","content":"All HTTP methods should be prepended by this service's endpoint: Copy https://api.withleaf.io/services/operations/api This service has the following endpoints available: Description\tEndpointsGet all operations\tGET /operations Get an operation\tGET /operations/{id} Get the operation's summary\tGET /operations/{id}/summary Get the operation's standardGeojson\tGET /operations/{id}/standardGeojson Get the operation's filteredGeojson\tGET /operations/{id}/filteredGeojson Get operation's images\tGET /operations/{id}/images Get operation's images V2\tGET /operations/{id}/imagesV2 Get operation's geotiff images\tGET /operations/{id}/geotiffImages Get the operation's units\tGET /operations/{id}/units Crop operation by field\tPOST /operations/cropOperationByField Reprocess an operation\tPOST /operations/{id}/reprocess Get files from an operation\tPOST /operations/{id}/files For easily testing these endpoints, we recommend using our Postman collection. "},{"title":"Get all operations","type":1,"pageTitle":"Field Operations Endpoints","url":"docs/operations_endpoints#get-all-operations","content":" GET /operations Gets a paged list of operations that belong to the current logged in user. It is possible to filter the results by passing some query parameters. They are listed below. Parameter (to filter by)\tValuesleafUserId\tuuid of one of your users provider\tCNHI, JohnDeere, Trimble, ClimateFieldView, AgLeader, Stara or Leaf startTime\tISO 8601 date. Returns operations from the startTime onward updatedTime\tISO 8601 date. Returns operations from the updatedTime onward endTime\tISO 8601 date. Returns operations until the endTime operationType\tapplied, planted, harvested or tillage fieldId\tthe field where the operation happened You can also pass some parameters used exclusively for paging through results. They are: page, an integer specifying the page being fetched (default is 0)size, an integer specifying the size of the page (max is 100)sort, the sorting order of the results; can be multi-value, where the first value to be passed will have preference in ordering over the next ones; you can also specify the order as asc or desc with asc being the default. Example: id, desc Valid values for sorting are: id, leafUserId, startTime, endTime, type and updatedTime. the default value for page size is 20 If the parameters page and size are not set, the endpoint will return 20 results. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/operations' Response# Copy [ { \"id\": \"5c8fdb34-4dc4-4b96-bfd5-53e6206ce971\", \"apiOwnerUsername\": \"test\", \"leafUserId\": \"7494c90e-28b8-4bb2-9ede-95c1cc894349\", \"startTime\": \"2015-04-18T19:31:27Z\", \"endTime\": \"2015-04-18T19:58:50Z\", \"updatedTime\": \"2021-08-24T16:00:15.062Z\", \"type\": \"planted\", \"files\": [ \"a10b85c2-ac2e-4b0f-8e65-74edbd2ca53e\", \"759e1b62-dc69-4332-b618-6449a37470fa\" ], \"fields\": [ { \"id\": \"0071484f-4a75-4190-9fd0-f5995d241c2c\" } ], \"providers\": [ \"providerName\" ] }, .... ] "},{"title":"Get an operation","type":1,"pageTitle":"Field Operations Endpoints","url":"docs/operations_endpoints#get-an-operation","content":" GET /operations/{id} Gets a single operation by its id. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/operations/{id}' Response# Copy { \"id\": \"5c8fdb34-4dc4-4b96-bfd5-53e6206ce971\", \"apiOwnerUsername\": \"test\", \"leafUserId\": \"7494c90e-28b8-4bb2-9ede-95c1cc894349\", \"startTime\": \"2015-04-18T19:31:27Z\", \"endTime\": \"2015-04-18T19:58:50Z\", \"updatedTime\": \"2021-08-24T16:00:15.062Z\", \"type\": \"planted\", \"files\": [ \"a10b85c2-ac2e-4b0f-8e65-74edbd2ca53e\", \"759e1b62-dc69-4332-b618-6449a37470fa\" ], \"fields\": [ { \"id\": \"0071484f-4a75-4190-9fd0-f5995d241c2c\" } ], \"providers\": [ \"providerName\" ] } "},{"title":"Get the operation's summary","type":1,"pageTitle":"Field Operations Endpoints","url":"docs/operations_endpoints#get-the-operations-summary","content":" GET /operations/{id}/summary Gets the summary, if available, for the operation id. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/operations/{id}/summary' Response# Here's a link with sample responses for \"planted\", \"applied\", \"harvested\" and \"tillage\" operations. "},{"title":"Get the operation's standardGeojson","type":1,"pageTitle":"Field Operations Endpoints","url":"docs/operations_endpoints#get-the-operations-standardgeojson","content":" GET /operations/{id}/standardGeojson Get the standardGeojson file URL relative to the operation. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/operations/{id}/standardGeojson' Response# Copy { \"standardGeojson\": \"URL\", \"downloadStandardGeojson\": \"URL\" } "},{"title":"Get the operation's filteredGeojson","type":1,"pageTitle":"Field Operations Endpoints","url":"docs/operations_endpoints#get-the-operations-filteredgeojson","content":" GET /operations/{id}/filteredGeojson Get the filteredGeojson file URL relative to the operation. tip To use this option, the operationsFilteredGeojson configuration must be enabled. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/operations/{id}/filteredGeojson' Response# Copy { \"filteredGeojson\": \"URL\", \"downloadFilteredGeojson\": \"URL\" } "},{"title":"Get operation's images","type":1,"pageTitle":"Field Operations Endpoints","url":"docs/operations_endpoints#get-operations-images","content":" GET /operations/{id}/images Gets a list of PNG images generated from the operation's properties. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/operations/{id}/images' Response# Copy [ { \"property\": \"elevation\", \"ramp\": { \"0%\": [200, 0, 0], \"35%\": [255, 40, 0], \"45%\": [255, 150, 0], \"55%\": [255, 240, 0], \"65%\": [ 0, 230, 0], \"75%\": [ 0, 190, 0], \"100%\": [ 0, 130, 0], \"nv\": [ 0, 0, 0, 0] }, \"url\": \"URL\", \"downloadUrl\": \"URL\" }, .... ] The property refers to the property extracted from operations' data to generate the image. In the example above, the image would represent the elevation. The ramp is the color ramp used to generate the image. The percentages correspond to the minimum (0%) and maximum (100%) values in the image. The listed values correspond to RGB values used. The nv refers to no value. It is used internally to make the image transparent on places without data. Currently, this ramp is the same in all images processed. We also generate an auxiliary xml with geographic information to handle this image on GIS environments. You just need to append the \".aux.xml\" string to the png url. "},{"title":"Get operation's images V2","type":1,"pageTitle":"Field Operations Endpoints","url":"docs/operations_endpoints#get-operations-images-v2","content":" GET /operations/{id}/imagesV2 Gets a list of PNG images generated from the operation's properties with improvements in the generation process. These images are based on the filteredGeojson. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/operations/{id}/imagesV2' Response# Copy [ { \"property\": \"string\", \"legend\": { \"ranges\": [ { \"colorCode\": \"#C80000\", \"max\": 20, \"min\": 0 }, { \"colorCode\": \"#FF2800\", \"max\": 50, \"min\": 20 }, { \"colorCode\": \"#FF9600\", \"max\": 100, \"min\": 50 }, { \"colorCode\": \"#FFF000\", \"max\": 250, \"min\": 100 }, { \"colorCode\": \"#00E600\", \"max\": 340, \"min\": 250 }, { \"colorCode\": \"#00BE00\", \"max\": 480, \"min\": 340 }, { \"colorCode\": \"#008200\", \"max\": 570, \"min\": 480 } ] }, \"extent\": { \"xmin\": 0, \"xmax\": 0, \"ymin\": 0, \"ymax\": 0 }, \"url\": \"URL\", \"downloadUrl\": \"URL\" } ] The property refers to the property extracted from operations' data to generate the image. The legend represents the values distributed in 7 classes, classified by the quantile and symbolized by the standard color ramp. The extent is the coordinates of the image, mainly used for plotting images in map applications. More information here. "},{"title":"Get operation's geotiff images","type":1,"pageTitle":"Field Operations Endpoints","url":"docs/operations_endpoints#get-operations-geotiff-images","content":" GET /operations/{id}/geotiffImages Gets a list of TIFF images generated from the operation's properties with improvements in the generation process. These images are based on the filteredGeojson. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/operations/{id}/geotiffImages' Response# Copy [ { \"property\": \"distance\", \"url\": \"URL\", \"downloadUrl\": \"URL\" }, { \"property\": \"wetVolumePerArea\", \"url\": \"URL\", \"downloadUrl\": \"URL\" }, { \"property\": \"dryMassPerArea\", \"url\": \"URL\", \"downloadUrl\": \"URL\" }, { \"property\": \"dryVolumePerArea\", \"url\": \"URL\", \"downloadUrl\": \"URL\" } ] "},{"title":"Get the operation's units","type":1,"pageTitle":"Field Operations Endpoints","url":"docs/operations_endpoints#get-the-operations-units","content":" GET /operations/{id}/units Gets the operations's properties and their units. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/operations/{id}/units' Response# Here's a link with sample responses for \"planted\", \"applied\", \"harvested\" and \"tillage\" operations. These properties vary depending on the operationType, but you can expect the same, standardized keys, across different providers. Units usually don't change for the same Leaf User, since the providers units configuration is based on their location. But keep in mind that it's best to always take the units into consideration, just to be sure. "},{"title":"Crop operation by field","type":1,"pageTitle":"Field Operations Endpoints","url":"docs/operations_endpoints#crop-operation-by-field","content":" POST /operations/cropOperationByField This endpoint can be used to remove points from the operation standardGeojson that are outside of the field geometry. Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"id\": \"operationId\"}' \\ 'https://api.withleaf.io/services/operations/api/operations/cropOperationByField' Response# Copy { \"id\": \"1162a1c6-9872-4d7f-9833-5d48add8eed4\", \"message\": \"Sent operation to be processed.\", \"leafFileId\": \"33020f03-5889-4c0f-b465-7a7e2c03a91d\" } You could monitor the processing status using the leafFileId by our Alerts Service. "},{"title":"Get files from an operation","type":1,"pageTitle":"Field Operations Endpoints","url":"docs/operations_endpoints#get-files-from-an-operation","content":" POST /operations/{id}/files Allow the user to fetch all files resources that were aggregated to generate an Field Operation. Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/operations/{id}/files' Response# Check our sample response to have complete represention on the expected output. "},{"title":"Reprocess an operation","type":1,"pageTitle":"Field Operations Endpoints","url":"docs/operations_endpoints#reprocess-an-operation","content":" POST /operations/{id}/reprocess Allows reprocessing an operation already created, starting from the merge step. The standardGeoJSON, filteredGeoJSON, summary and images will be updated. Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/operations/{id}/reprocess' You could monitor the processing status by our Alerts Service. "},{"title":"Alerts","type":1,"pageTitle":"Field Operations Endpoints","url":"docs/operations_endpoints#alerts","content":"With Alerts you can be notified when something happens or changes instead of needing to repeatedly query for changes. Leaf Alerts support events that happen within Leaf and events that happen within supported 3rd party software. "},{"title":"List of Operations Events","type":1,"pageTitle":"Field Operations Endpoints","url":"docs/operations_endpoints#list-of-operations-events","content":"Leaf Operations Service can Alert you on these events: list of Operations Events "},{"title":"Planet Overview","type":0,"sectionRef":"#","url":"docs/planet_overview","content":"Documentation update! We are updating our documentation and this page was moved to here.","keywords":""},{"title":"Provider Organizations","type":0,"sectionRef":"#","url":"docs/provider_organizations","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Provider Organizations","url":"docs/provider_organizations#about","content":"The endpoints described here are tools for listing organizations that have or have not granted access to Leaf. All HTTP methods should be prepended by this service's endpoint: Copy https://api.withleaf.io/services/usermanagement/api See below the REST resources and their endpoints available in this service. Endpoints Description\tEndpointsGet Provider Organizations\tGET /users/{leafUserId}/organizations/{provider} "},{"title":"Organizations List","type":1,"pageTitle":"Provider Organizations","url":"docs/provider_organizations#organizations-list","content":""},{"title":"Get Provider Organizations","type":1,"pageTitle":"Provider Organizations","url":"docs/provider_organizations#get-provider-organizations","content":" GET /users/{leafUserId}/organizations/{provider} Get provider connected and disconnected organizations from Leaf User. provider: can be JohnDeere or Trimble. info At Trimble it is not possible to differentiate which organizations are connected or not. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{leafUserId}/organizations/{provider}' Response# Copy { \"connectedOrganizations\": [ { \"id\": \"organization_id_1\", \"name\": \"Organization Name 1\", \"managementUri\": \"https://connections.deere.com/connections/clientKey/connections-dialog?orgId=organization_id_1\" } ], \"notConnectedOrganizations\": [ { \"id\": \"organization_id_2\", \"name\": \"Organization Name 2\", \"managementUri\": \"https://connections.deere.com/connections/clientKey/connections-dialog?orgId=organization_id_2\" } ] } "},{"title":"Field Operations sample responses","type":0,"sectionRef":"#","url":"docs/operations_sample_output","content":"","keywords":""},{"title":"Overview","type":1,"pageTitle":"Field Operations sample responses","url":"docs/operations_sample_output#overview","content":"This page shows and describes sample responses from Leaf API, along with a list of what properties you can expect for each type of data. "},{"title":"Field Operations","type":1,"pageTitle":"Field Operations sample responses","url":"docs/operations_sample_output#field-operations","content":"A Field Operation processed by Leaf's API returns a list of content that contains most of the basic info related to the authenticated user, and also the Field Boundaries and File Operations attached to each other by the background processing. Here's an example of a Field Operation Copy { \"id\": \"uuid\", \"apiOwnerUsername\": \"leaf@withleaf.io\", \"leafUserId\": \"uuid\", \"startTime\": \"yyyy-MM-ddTHH:mm:ss.SZ\", \"endTime\": \"yyyy-MM-ddTHH:mm:ss.SZ\", \"updatedTime\": \"yyyy-MM-ddTHH:mm:ss.SZ\", \"type\": \"string\", \"files\": [ \"uuid\" ], \"fields\": [ { \"id\": \"uuid\", \"coverage\": \"float\" } ], \"providers\": [ \"string\" ] } Field operations have many features that can be accessed via /featureName added to the base url, ranging from the standardized data to the operation units. Here's a sample response of each of these features. "},{"title":"Field Operations Standard GeoJSON","type":1,"pageTitle":"Field Operations sample responses","url":"docs/operations_sample_output#field-operations-standard-geojson","content":"Here's an example of a standard geojson from a Field Operation Copy { \"standardGeojson\": \"URL\" } "},{"title":"Field Operations Filtered GeoJSON","type":1,"pageTitle":"Field Operations sample responses","url":"docs/operations_sample_output#field-operations-filtered-geojson","content":"tip To use this option, the operationsFilteredGeojson configuration must be enabled. Here's an example of a filtered geojson from a Field Operation that can be access from the /operations/{id}/filteredGeojsonendpoint. Copy { \"filteredGeojson\": \"URL\" } The filtered GeoJSON is the file that went through the data cleaning process, removing the points with the following criteria: speed less than 0.5 m/s (for all operation types) The generated files will be used as a basis for generating new operations images. Outliers# To remove outliers in harvest data, you can use configurations to clean the filteredGeoJSON based on standard deviation. All points with the harvested volume value far 3 standard deviation from the mean will be excluded. This is the default value and can be changed in the operationsOutliersLimit configuration. To disable the removal of outliers just use the operationsRemoveOutliers configuration. "},{"title":"Field Operations Summary","type":1,"pageTitle":"Field Operations sample responses","url":"docs/operations_sample_output#field-operations-summary","content":"Here's an example of a summary from a Field Operation. It's important to mention that the output displayed in the Field Operation Summary is heavily impacted by the operationType property. You can move through the four tabs below to see a sample of how Leaf returns each of the operation types. PlantedHarvestedAppliedTillage Copy { \"type\": \"Feature\", \"properties\": { \"totalDistance\": { \"value\": 21062.354662275786, \"unit\": \"ft\" }, \"speed\": { \"avg\": 3.441336296949484, \"min\": 0.006131406407803297, \"max\": 6.3555588722229, \"unit\": \"mi/hr\" }, \"startTime\": \"2016-09-19T18:30:51.640+00:00\", \"endTime\": \"2016-09-21T21:48:25.000+00:00\", \"totalArea\": { \"value\": 61820.13638528271, \"unit\": \"m2\" }, \"elevation\": { \"avg\": 59.13738317757009, \"min\": 58.9, \"max\": 59.6, \"unit\": \"ft\" }, \"crop\": [ \"soybeans\" ], \"operationType\": \"harvested\", \"wetMass\": { \"avg\": 17.492758207524563, \"min\": 0.01, \"max\": 29.59, \"unit\": \"lb\" }, \"totalWetMass\": { \"value\": 72997.28000000014, \"unit\": \"lb\" }, \"dryMass\": { \"avg\": 17.112920091943007, \"min\": 0.01, \"max\": 29.59, \"unit\": \"lb\" }, \"totalDryMass\": { \"value\": 71412.21554367829, \"unit\": \"lb\" }, \"wetMassPerArea\": { \"avg\": 4778.532184798924, \"min\": 3.2892456102410352, \"max\": 235466.19310582182, \"unit\": \"lb/ac\" }, \"dryMassPerArea\": { \"avg\": 4674.771037540907, \"min\": 3.2892456102410352, \"max\": 232434.9041830802, \"unit\": \"lb/ac\" }, \"wetVolume\": { \"avg\": 0.2915459701254094, \"min\": 0.00016666666666666666, \"max\": 0.49316666666666664, \"unit\": \"bu\" }, \"totalWetVolume\": { \"value\": 1216.6213333333362, \"unit\": \"bu\" }, \"dryVolume\": { \"avg\": 0.28521533486571676, \"min\": 0.00016666666666666666, \"max\": 0.49316666666666664, \"unit\": \"bu\" }, \"totalDryVolume\": { \"value\": 1190.2035923946364, \"unit\": \"bu\" }, \"wetVolumePerArea\": { \"avg\": 79.64220307998207, \"min\": 0.05482076017068392, \"max\": 3924.4365517636966, \"unit\": \"bu/ac\" }, \"dryVolumePerArea\": { \"avg\": 77.91285062568178, \"min\": 0.05482076017068392, \"max\": 3873.915069718003, \"unit\": \"bu/ac\" }, \"harvestMoisture\": { \"avg\": 14.221756530074288, \"min\": 1.36, \"max\": 21.05, \"unit\": \"percentage\" }, \"varieties\": [ { \"harvestMoisture\": { \"avg\": 14.221756530074288, \"min\": 1.36, \"max\": 21.05, \"unit\": \"percentage\" }, \"wetMass\": { \"value\": 72997.28000000014, \"unit\": \"lb\" }, \"wetMassPerArea\": { \"value\": 1.1808010183778619, \"unit\": \"lb/ac\" }, \"wetVolume\": { \"value\": 1216.6213333333362, \"unit\": \"bu\" }, \"area\": { \"value\": 61820.13638528271, \"unit\": \"m2\" }, \"dryVolume\": { \"value\": 1190.2035923946364, \"unit\": \"bu\" }, \"dryMassPerArea\": { \"value\": 1.1551610805031989, \"unit\": \"lb/ac\" }, \"dryMass\": { \"value\": 71412.21554367829, \"unit\": \"lb\" }, \"name\": \"Soybeans\" } ], \"originalOperationType\": \"Harvesting\", \"machinery\": [ { \"name\": \"Case IH Soybeans Head 35.000018900000015ft 8row\", \"type\": \"implement\", \"brand\": \"Case IH\" }, { \"name\": \"Case IH 8120\", \"type\": \"machine\", \"serialNumber\": \"8000001\", \"brand\": \"Case IH\" } ], \"originalOperationData\": { \"originalOperationFarm\": \"Farm Green\", \"originalOperationField\": \"Field A\", \"originalOperationGrower\": \"Grower\", \"originalOperationType\": \"CropOriginal\" } }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[ [-89.80434894561768,40.47791686563837], [-89.80756759643555,40.4757623387113], [-89.80746030807495,40.47302011353734], [-89.80475664138794,40.47070219301965], [-89.80080842971802,40.47068586935202], [-89.79797601699828,40.472709973879255], [-89.7978687286377,40.47569704893722], [-89.80117321014404,40.47808008455794], [-89.80434894561768,40.47791686563837] ]]] } } "},{"title":"Field Operations Images","type":1,"pageTitle":"Field Operations sample responses","url":"docs/operations_sample_output#field-operations-images","content":"Here is an example of Images from Field Operations. Copy [ { \"property\": \"string\", \"ramp\" : { \"0%\" : [ 200, 0, 0 ], \"35%\" : [ 255, 40, 0 ], \"45%\" : [ 255, 150, 0 ], \"55%\" : [ 255, 240, 0 ], \"65%\" : [ 0, 230, 0 ], \"75%\" : [ 0, 190, 0 ], \"100%\" : [ 0, 130, 0 ], \"nv\" : [ 0, 0, 0, 0 ] }, \"url\": \"URL\" } ] Field Operations Images V2# This endpoint version produces images based on the filteredGeoJSON, therefore it will be active whenever the data filter option is active. The new images have considerable improvements over the previous one. They are generated with a standard fixed color ramp and the data is automatically distributed into 7 classes using quantile classification. Note that the return is different from the previous version, with extent and legend attributes now available. Copy [ { \"property\": \"string\", \"legend\": { \"ranges\": [ { \"colorCode\": \"#C80000\", \"max\": 20, \"min\": 0 }, { \"colorCode\": \"#FF2800\", \"max\": 50, \"min\": 20 }, { \"colorCode\": \"#FF9600\", \"max\": 100, \"min\": 50 }, { \"colorCode\": \"#FFF000\", \"max\": 250, \"min\": 100 }, { \"colorCode\": \"#00E600\", \"max\": 340, \"min\": 250 }, { \"colorCode\": \"#00BE00\", \"max\": 480, \"min\": 340 }, { \"colorCode\": \"#008200\", \"max\": 570, \"min\": 480 } ] }, \"extent\": { \"xmin\": 0.0, \"xmax\": 0.0, \"ymin\": 0.0, \"ymax\": 0.0 }, \"url\": \"URL\" } ] If the filteredGeoJSON fails to process, images will continue to be generated from the standardGeoJSON. tip Important: once active, the images will be available for access only via the /imagesV2 endpoint. Field Operations GeoTIFF Images# This endpoint produces images based on the filteredGeoJSON. To access the images, besides having the data filter option active, it is required the operationsImageAsGeoTiff configuration enabled as well. In the result we displayed a list of the GeoTIFF images for each property available. Copy [ { \"property\": \"distance\", \"url\": \"https://s3-url-to-geotiff/geotiff-cca01ca7-75eb-4028-83ad-3a9af8a08667.tif\" }, { \"property\": \"dryMass\", \"url\": \"https://s3-url-to-geotiff/geotiff-f1604ea5-ee0a-44a1-ac11-03a0c275cecb.tif\" }, { \"property\": \"elevation\", \"url\": \"https://s3-url-to-geotiff/geotiff-45efa9d2-9f60-4704-ae91-d7edd72388bd.tif\" }, { \"property\": \"heading\", \"url\": \"https://s3-url-to-geotiff/geotiff-08f2f811-55a6-4028-8197-3ca535f93b46.tif\" }, { \"property\": \"speed\", \"url\": \"https://s3-url-to-geotiff/geotiff-e52c9f2f-399b-4e03-9d81-0abbacdc51f7.tif\" }, { \"property\": \"wetMassPerArea\", \"url\": \"https://s3-url-to-geotiff/geotiff-184b7394-6f86-41c2-8742-fd27bfc82ffc.tif\" }, { \"property\": \"dryVolume\", \"url\": \"https://s3-url-to-geotiff/geotiff-8248c5e2-5853-4f64-8b7a-3c7f3a16cfe0.tif\" }, { \"property\": \"wetVolumePerArea\", \"url\": \"https://s3-url-to-geotiff/geotiff-27f721e8-7ba6-41ba-8acb-6d038c87d87d.tif\" }, { \"property\": \"harvestMoisture\", \"url\": \"https://s3-url-to-geotiff/geotiff-b00a39b1-4ac6-4ba6-a5bf-e5798d9f8393.tif\" }, { \"property\": \"dryMassPerArea\", \"url\": \"https://s3-url-to-geotiff/geotiff-5d027967-6488-4339-a4b6-1e2f8b25e05f.tif\" }, { \"property\": \"fuelRate\", \"url\": \"https://s3-url-to-geotiff/geotiff-18f8f9e9-3e43-4074-a3d4-70098db365c9.tif\" }, { \"property\": \"equipmentWidth\", \"url\": \"https://s3-url-to-geotiff/geotiff-d49900a3-ceaf-4c6f-8348-7f9977f2751d.tif\" }, { \"property\": \"area\", \"url\": \"https://s3-url-to-geotiff/geotiff-1f81a342-eb2b-4623-b580-53d5296888aa.tif\" }, { \"property\": \"wetMass\", \"url\": \"https://s3-url-to-geotiff/geotiff-3332529c-01d3-4c13-ac12-10341bcc3ade.tif\" }, { \"property\": \"dryVolumePerArea\", \"url\": \"https://s3-url-to-geotiff/geotiff-aaf2f4ab-a0e0-4280-96a3-7df443779af8.tif\" }, { \"property\": \"wetVolume\", \"url\": \"https://s3-url-to-geotiff/geotiff-69570599-76f1-49ab-b3cc-9926705da2c9.tif\" } ] "},{"title":"Field Operations Units","type":1,"pageTitle":"Field Operations sample responses","url":"docs/operations_sample_output#field-operations-units","content":"Here is an example of Units from the numerical properties of the Field Operations. PlantedHarvestedAppliedTillage Copy { \"elevation\": \"ft\", \"area\": \"m2\", \"harvestMoisture\": \"percentage\", \"dryVolumePerArea\": \"bu/ac\", \"distance\": \"ft\", \"heading\": \"arcdeg\", \"dryVolume\": \"bu\", \"wetVolume\": \"bu\", \"wetVolumePerArea\": \"bu/ac\", \"dryMassPerArea\": \"lb/ac\", \"wetMassPerArea\": \"lb/ac\", \"speed\": \"mi/hr\", \"equipmentWidth\": \"ft\", \"dryMass\": \"lb\", \"wetMass\": \"lb\" } "},{"title":"Provider Authentication Overview","type":0,"sectionRef":"#","url":"docs/provider-authentication-overview","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Provider Authentication Overview","url":"docs/provider-authentication-overview#about","content":"By the end of this section, the objective is to successfully authenticate your application and link provider credentials to Leaf, enabling you to start integrating standardized data from major agricultural providers. Ultimately you’ll want your customers to be able to integrate their (user-permissioned) data from their providers into your application. So in order to set this up at the user level, you’ll need to attach the user token from the provider to the Leaf User. TIP: Once you get to the stage of building the user authentication UI for your customers integrating their providers, we recommend using our pre-built Leaf Link widget. "},{"title":"Provider authentication process with Leaf","type":1,"pageTitle":"Provider Authentication Overview","url":"docs/provider-authentication-overview#provider-authentication-process-with-leaf","content":"Each data provider's authentication flow is slightly different. Please refer to the tutorials below for the steps: AgLeader authentication with LeafClimate Fieldview authentication with LeafCNHi authentication with LeafJohn Deere authentication with LeafRaven Slingshot authentication with LeafStara authentication with LeafTrimble authentication with LeafIntegrating Sentera layers and imageryFor more crop monitoring or weather providers, head to the relevant documentation sections. If you still don't see your provider, contact us at help@withleaf.io for more information. This authentication flow has to be done only once in most cases. Leaf will manage the tokens and refresh them when needed. "},{"title":"Provider credentials endpoints","type":1,"pageTitle":"Provider Authentication Overview","url":"docs/provider-authentication-overview#provider-credentials-endpoints","content":"For more details about provider credentials endpoints, see below for: AgLeaderAgVanceClimate FielviewCNHiJohn DeereRavenRaven SlingshotSenteraStaraTrimble Also, we recommend use our Providers Integrations Resources endpoint to debrief the ingested resources from the authenticated account. With the Providers Integrations Resources, you can access all the relevant information between the authentication and the processing of your resources ingested into Leaf's API. The resource summary gives you more visibility on what and how many resources are being processed. Integrations Resources Need more guidance? Contact us at help@withleaf.io. "},{"title":"Quickstart","type":0,"sectionRef":"#","url":"docs/quickstart","content":"","keywords":""},{"title":"Leaf Quickstart","type":1,"pageTitle":"Quickstart","url":"docs/quickstart#leaf-quickstart","content":"This quickstart tutorial is written help you quickly experience and start building with Leaf. First, please register on our website to receive your credentials. We've included sample data in your account so you can begin querying data via Leaf immediately. Leaf's Postman collection Below you'll find instructions using curl and python, and we've also built a Postman collection to accompany this tutorial. Please find it here: Leaf Postman collection "},{"title":"Authentication","type":1,"pageTitle":"Quickstart","url":"docs/quickstart#authentication","content":"After creating and confirming your account, the first step is to authenticate with your email and password to retrieve a Leaf token. This token is what we'll use in subsequent steps to talk to the API. Be sure to keep a copy of this token for the remaining steps. cURLPythonJavaScript Copy curl -X POST \\ -H 'Content-Type: application/json' \\ -d '{ \"username\":\"username\", \"password\":\"password\", \"rememberMe\":\"true\" }' \\ 'https://api.withleaf.io/api/authenticate' note: Your Leaf Token lasts for 30 days with \"rememberMe\": \"true\" in the json. If you want it to last only 24h, feel free to set \"rememberMe\" to \"false\". After expiration, just make the same request to the same endpoint and you will get a new access token. "},{"title":"Get sample Field with attached operations","type":1,"pageTitle":"Quickstart","url":"docs/quickstart#get-sample-field-with-attached-operations","content":"Inside your account, we've created a sample LeafUser and populated it with data. Let's take a look at the fields endpoint to see the sample field: cURLPython Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\ 'https://api.withleaf.io/services/fields/api/fields' It returns a JSON object representing the Fields and you can see that there are operations ids attached. Next section will explain how to get the operations by those ids. "},{"title":"Get all sample operation files","type":1,"pageTitle":"Quickstart","url":"docs/quickstart#get-all-sample-operation-files","content":"Next, let's look at operations data. 'Operations' refers to the data collected when a machine and any implements performed an operation on a farm. This command will list operations files available across your whole account: cURLPython Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/files' "},{"title":"Get specific sample operation file","type":1,"pageTitle":"Quickstart","url":"docs/quickstart#get-specific-sample-operation-file","content":"Now that you have a file ID, you can query for the operations data itself and a summary as well. cURLPython Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/files/{id}' "},{"title":"Get sample operation file summary","type":1,"pageTitle":"Quickstart","url":"docs/quickstart#get-sample-operation-file-summary","content":"cURLPython Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/files/{id}/summary' "},{"title":"Get sample operation file image","type":1,"pageTitle":"Quickstart","url":"docs/quickstart#get-sample-operation-file-image","content":"You may have already noticed that we're seeing a lot of operations files for this one field and the timestamps span just a few days. This is because we're looking at multiple files output from a machine that effectively represent one large operation - a harvest. Before we talk about merging these pieces into a single operation, let's look at an image from one of the pieces: cURLPython Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/files/{id}/images' "},{"title":"Get sample merged operation file","type":1,"pageTitle":"Quickstart","url":"docs/quickstart#get-sample-merged-operation-file","content":"A single strip appears in that image which is no mistake. It's also not as useful as seeing the whole operation across the whole field! To solve this, we allow you to request a merge of operations data and produce images for data of the same type and timeframe. The sample data already includes a merged file. Let's take a look at that merged harvesting image which is colored to indicate the range of wet mass collected. First, let's find the merged file by simply adding a parameter to filter to origin=merged cURLPython Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/files?origin=merged' And finally, use that file ID to retrieve a list of images, one for each operation property. From this response, you can load one of the sample images: cURLPython Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\ 'https://api.withleaf.io/services/operations/api/files/{id}/images' "},{"title":"Get sample satellite imagery","type":1,"pageTitle":"Quickstart","url":"docs/quickstart#get-sample-satellite-imagery","content":"Finally, let's take a look at some satellite imagery. Using data from Sentinel-2, we produce NDVI images for fields you define to be monitored. First we'll list the fields being monitored from the satellite service: cURLPython Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\ 'https://api.withleaf.io/services/satellite/api/fields/' And then we can pull up the sample NDVI image of the sample field like this: cURLPython Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_LEAF_TOKEN' \\ 'https://api.withleaf.io/services/satellite/api/fields/{field_id}/processes' "},{"title":"Endpoints","type":0,"sectionRef":"#","url":"docs/satellite_endpoints","content":"Documentation update! We are updating our documentation and this page was moved to here.","keywords":""},{"title":"Overview","type":0,"sectionRef":"#","url":"docs/satellite_overview","content":"Documentation update! We are updating our documentation and this page was moved to here.","keywords":""},{"title":"Release notes","type":0,"sectionRef":"#","url":"docs/release_notes","content":"","keywords":""},{"title":"2.115.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#21150","content":"2023-02-16 Agvance integrationNew integration available. Agvance Grower, Farm, Field, and boundaries will be available in our Field Boundary Management service. Crop monitoring The satellite image bands are now grouped into a single tif file multiband.tif, available for all providers. Field operations Fixed the unit of measure for cotton operation files (John Deere), now calculated based on bales. "},{"title":"2.113.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#21130","content":"2023-01-19 Stara integrationNew integrations available for Stara. Machine Files, Field Operations, Field Boundaries and Machines are services available for this provider. "},{"title":"2.110.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#21100","content":"2022-12-08 Additional planting properties New properties available for planted operations. The downForce and singulation properties, when available, will be present in the standardGeojson, summary and images of operations. "},{"title":"2.106.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#21060","content":"2022-10-13 Yield cleaning There is now a configuration to enable the use of new cleanup step. "},{"title":"2.105.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#21050","content":"2022-10-05 Yield cleaning Harvest data can now go through a new cleanup step based on the removal of outliers. More info here.We also improved the operations images. More info here. "},{"title":"2.100.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#21000","content":"2022-08-31 Beta Layers upload There is now an option to upload layer files directly to Climate FieldView via Leaf API. Currently, only RGB GeoTIFF files are supported. More info here. "},{"title":"2.98.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#2980","content":"2022-08-16 Machine file conversion New properties dryMass dryMassPerArea dryVolume and dryVolumePerArea for dry Yield are available in the operation summary and in the standard GeoJSON. "},{"title":"2.92.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#2920","content":"2022-07-05 Crop Monitoring Usable Data Mask 2.0 (UDM2) is now available for Planet The mask images are available through the Planet udm2 asset type. More info here. "},{"title":"2.91.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#2910","content":"2022-06-29 Crop Monitoring NDRE images Normalized difference red edge (NDRE) index is now available for Sentinel and Planet. Machine file conversion Added support for Avoirdupois ounce unit of measure. "},{"title":"2.89.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#2890","content":"2022-06-14 Machine file conversion [beta] Added support for 20|20 files from Precision Planting Fields New filter available in the fields and farms GET endpoints It is now possible to filter fields by farm and farms by grower. "},{"title":"2.88.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#2880","content":"2022-06-07 Beta Machines Deprecated property createdAt in Machines. Use createdTime to obtain the creation time instead. Fields Fixing alerts related to creating and updating field boundaries There was an issue interpreting updates from a provider. More information about alerts here. "},{"title":"2.87.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#2870","content":"2022-05-24 Machine file conversion Added support for ISOXML files "},{"title":"2.86.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#2860","content":"2022-05-24 Machine file conversion New properties on the Standard GeoJSON Optional properties: cropFlow, productIndex, proteinPercentage, samplingInterval, xOffset and yOffset. More information here. "},{"title":"2.85.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#2850","content":"2022-05-17 Machine file conversion Machine list available in the operation files The new property machine list all machine ids under the files entity (not to be confused with machinery property available in the summary). More information here. Beta Machines The properties vin, model, make, category and modelYear are now also available in the Machine POST endpoint. "},{"title":"2.84.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#2840","content":"2022-05-11 Machine file conversion New config available: splitOperationsByField If set to true, Leaf will split your Field Operations based on the intersection of each Leaf Field Boundary. The default value is false. Check all the configurations available here. "},{"title":"2.83.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#2830","content":"2022-05-03 Beta Machines New machine properties available: vin, model, make, category and modelYear. The vin property can be used to query. "},{"title":"2.82.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#2820","content":"2022-04-26 Machine file conversion Sugar cane Leaf API now also support sugar cane files. Be aware that volume measurements will not be available for this crop type. New config available: operationsAutoSync If set to true (default), Leaf will automatically synchronize provider's operations. Check all the configurations available here. "},{"title":"2.81.0","type":1,"pageTitle":"Release notes","url":"docs/release_notes#2810","content":"2022-04-20 Machine file conversion New config available: cleanupStandardGeojson If set to true (default), Leaf will automatically remove invalid points from the standardGeoJSON file for operations. Check all the configurations available here. (0,0) point removed All (0,0) points are now automatically removed in our converters. Crop monitoring Planet: new asset type available Leaf API now also supports PlanetScope's analytics_5b asset type which has 5 bands: Red, Green, Blue, Red-Edge and Near infrared. You can check our documentation for how to filter images by different asset types. "},{"title":"Sentinel Overview","type":0,"sectionRef":"#","url":"docs/sentinel_overview","content":"Documentation update! We are updating our documentation and this page was moved to here.","keywords":""},{"title":"Leaf Connect","type":0,"sectionRef":"#","url":"docs/sharedata","content":"Documentation update! We are updating our documentation and this page was moved to here.","keywords":""},{"title":"How to get the list of products from a John Deere operation?","type":0,"sectionRef":"#","url":"docs/usecase_johndeere_products","content":"This use case describes how to get the list of products from a John Deere operation. The following steps will be necessary: Register with Leaf Register with John Deere Upload data in John Deere Operations Center Create a Leaf User Add credentials to the Leaf User","keywords":""},{"title":"General Setup Information","type":0,"sectionRef":"#","url":"docs/setup_information","content":"","keywords":""},{"title":"Pagination","type":1,"pageTitle":"General Setup Information","url":"docs/setup_information#pagination","content":"All endpoints that return a list of resources are paginated. You can select the size of the page and which page to get by using the query parameters size and page. size - Defines the size of the page. Defaults to 20. Max size is 100.page - Defines which page to fetch, considering each page has size elements. The first page is page 0. Defaults to 0. The X-Total-Count header in the response indicate the total existent items, and the Link header can provide the link for the first, next and last pages available: Copy ;rel=\"next\", ;rel=\"last\", ;rel=\"first\" "},{"title":"Date format","type":1,"pageTitle":"General Setup Information","url":"docs/setup_information#date-format","content":"All the dates follow ISO 8601 format. Specifically, all the dates should be in the format \"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\". "},{"title":"File archiving","type":1,"pageTitle":"General Setup Information","url":"docs/setup_information#file-archiving","content":"By default, our API archives files to slower storage after 180 days of no access. The file will only be available again upon a support request. "},{"title":"Error codes","type":1,"pageTitle":"General Setup Information","url":"docs/setup_information#error-codes","content":"Service\tEndpoint\tMessage\tHTTP Status\tReasonField Operations\tUpload a file\tBad Request\t400\tThe uploaded file is bigger than 3 GB "},{"title":"Downloading files from Leaf","type":1,"pageTitle":"General Setup Information","url":"docs/setup_information#downloading-files-from-leaf","content":"To provide greater security all files provided by Leaf are now protected and must be accessed with authentication using the existing Leaf token. tip This is a recent change, so the old download links are still available, however, it will be discontinued soon. Therefore, it is strongly recommended that updates are made to access the new download links providers by Leaf (it can be identified with the prefix download-). "},{"title":"Authentication sample","type":1,"pageTitle":"General Setup Information","url":"docs/setup_information#authentication-sample","content":"cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'downloadUrl' "},{"title":"How to get satellite field images","type":0,"sectionRef":"#","url":"docs/usecase_satellite","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"How to get satellite field images","url":"docs/usecase_satellite#about","content":"This use case describes how to get the satellite field images and display them on Leaflet JS. "},{"title":"Register","type":1,"pageTitle":"How to get satellite field images","url":"docs/usecase_satellite#register","content":"To register with Leaf: Go to registration link and create your account.Save your credentials to use in the next steps. "},{"title":"Backend","type":1,"pageTitle":"How to get satellite field images","url":"docs/usecase_satellite#backend","content":""},{"title":"Create server","type":1,"pageTitle":"How to get satellite field images","url":"docs/usecase_satellite#create-server","content":"After registered, you will need to setup a server, in this case we will use the Express Framework to create the server and the Axios library to do POST/GET requests in our server: Copy const express = require(\"express\"); const app = express(); const axios = require(\"axios\"); Now you will need to define some routes that your server will use, in this example, we define the follow routes: "},{"title":"Routes","type":1,"pageTitle":"How to get satellite field images","url":"docs/usecase_satellite#routes","content":"Route '/create_token'# In this route, we will create the user token to use in the next steps. In the data object, we need the attributes username and password that comes from a form in the front-end, and the attribute rememberMe is optional. We make a POST request with AXIOS to the Leaf API endpoint that is responsible to create our token, if everything is ok, it will return an status code 200, and the token will be returned to the user, if anything is wrong, it will be catched by the .catch() function. Copy app.post(\"/create_token\", (req, res) => { // Comes from the frontend form let email = req.body.email.trim(); let passwd = req.body.password.trim(); // Leaf API endpoint let endpoint = \"https://api.withleaf.io/api/authenticate\"; // Data to post to endpoint let data = { username: email, password: passwd, rememberMe: \"true\" }; axios .post(endpoint, data) .then(function (response) { // Save the token in the token variable token = response.data[\"id_token\"]; // Return ok and the token to the frontend request res.json({ message: \"Congrats! Login done!\", token: token }); }) .catch((error) => { if (error.response.data.status === 400) { // If something wrong happens, returns login failed. res.json({ message: \"Oops! Login failed!\", token: \"\" }); } else if (error.response.data.status === 401) { // If the credentials are wrong, returns that. res.json({ message: \"Oops! Invalid credentials!\", token: \"\" }); } }); }); Here you can see the Authentication documentation. Route '/monitored_fields'# In this route, we will be able to retrieve all our satellite monitored fields. First we verify if the front-end request is sending a token in the Authorization header, if yes, we do a GET request with AXIOS to the Leaf API endpoint responsible to give us that information and then we return it to the frontend. Copy app.get(\"/monitored_fields\", (req, res) => { if (!req.header(\"authorization\")) { res.json(\"Invalid token, generate one first!\"); } else { let token = req.header(\"authorization\"); let endpoint = \"https://api.withleaf.io/services/satellite/api/fields\"; let headers = { Authorization: `Bearer ` + token }; axios .get(endpoint, { headers }) .then(function (response) { res.json(response.data); }) .catch(function (error) { res.json(\"Something wrong happend during the request!\"); }); } }); Route '/field_images'# In this route, we will retrieve all the images from one satellite monitored field. In the first step, we will do a GET request with AXIOS to the Leaf API endpoint that will return to us the information about the field selected, with this endpoint, we can get the field coordinates and send to the frontend, so we can plot the images in the right point of the map. In the second step, we will do a GET request with AXIOS to the Leaf API endpoint that is responsible to return the images about the field selected, after receiving the images, we will sort them by the date, and we will save in another array just the images that are of the type NDVI_RELATIVE or RGB, that are the ones we are interested now. Copy app.post(\"/field_images\", (req, res) => { if (!req.header(\"authorization\")) { res.json(\"Invalid token, generate one first!\"); } else { // This comes from the frontend form. let field_id = req.body.id; let startDate = req.body.startDate; let endDate = req.body.endDate; let endpoint = \"https://api.withleaf.io/services/satellite/api/fields/\" + field_id; let headers = { Authorization: `Bearer ` + token }; let field_geometry; // First step axios .get(endpoint, { headers }) .then(function (response) { if (response.data <= 0) { res.json(\"No images were found for the time and field selected\"); } else { // Get the field coordinates field_geometry = response.data.geometry.coordinates; endpoint = \"https://api.withleaf.io/services/satellite/api\" + \"/fields/\" + field_id + \"/processes\"; let params = { startDate: startDate, endDate: endDate }; headers = { Authorization: `Bearer ` + token }; // Second step axios .get(endpoint, { headers, params }) .then(async function (response) { let data_obj = []; data_obj = response.data; if (data_obj.length > 0) { // Here we are creating an Date Object with the date string that comes // from the API return, so we can sort the days by the date. data_obj.forEach((e) => { e.date = new Date(e.date); }); // Sorting the days by the dates. let sorted_days = data_obj.sort( (objA, objB) => Number(objB.date) - Number(objA.date) ); // This is the variable that we will fill and return in the request. let providerPNG = []; sorted_days.forEach((e) => { // Checking if the clouds coverage of that image is less than 80%. if (e.clouds < 80) { let day = { id: e.id, date: e.date, clouds: e.clouds, coverage: e.coverage, provider: e.provider, images: [], }; // For each image of each day, we will check if the image is of // the type 'NDVI_RELATIVE' or 'RGB', if yes, we push it to the // providerPNG array. e.images.forEach((f) => { if ( f.type === \"png\" && (f.url.includes(\"NDVI_relative.png\") || f.url.includes(\"RGB.png\")) ) { day.images.push(f); } }); providerPNG.push(day); } }); // Checking if the length of providerPNG is greater then 0, if yes, // return the images and the field geometry. if (providerPNG.length > 0) { res.json({ geometry: field_geometry, images: providerPNG }); } else { res.json( \"No images were found for the time and field selected\" ); } } else { res.json( \"No images were found for the time and field selected\" ); } }) .catch(console.error); } }) .catch(console.error); } }); Here you can see the Satellite documentation. Route '/create_field'# In this route, we will receive data from the frontend and make a POST request with AXIOS to the Leaf API endpoint responsible for creating satellite monitored fields. Before trying to reach the Leaf API endpoint, we need to verify if the GEOJSON that comes from the frontend is valid, so we will not make irregular post requests to the endpoint. You can check here more info about GEOJSON. Copy app.post(\"/create_field\", (req, res) => { if (!req.header(\"authorization\")) { res.json(\"You have to login first!\"); } else { // This comes from the frontend form. let field_name = req.body.field_name; let boundery_type = req.body.boundery_type; let field_boundery = req.body.field_boundery; let days_before = req.body.days_before; // A function to try to parse the form geojson data to a object. function isJsonString(str) { try { field_boundery = JSON.parse(str); } catch (e) { return false; } return true; } if (!isJsonString(field_boundery)) { res.json( \"Error during compiling your geojson, try again with valid data.\" ); } else { let endpoint = \"https://api.withleaf.io/services/satellite/api/fields\"; let headers = { Authorization: `Bearer ` + token }; // Define the DATA object that we will send in the POST request to // Leaf API endpoint. const data = { externalId: field_name, daysBefore: days_before, providers: [], geometry: { type: boundery_type, coordinates: [field_boundery], }, }; // Here is the AXIOS post, we will return 'Field created' if everything // was ok with the data and the field was created. If something is wrong // we return the message 'Something wrong happened, verify your data and // try again!' axios .post(endpoint, data, { headers }) .then(function (response) { res.json(\"Field created\"); }) .catch(function (error) { console.log(error); res.json(\"Something wrong happened, verify your data and try again!\"); }); } } }); Here you can see the Satellite documentation. "},{"title":"Start the server","type":1,"pageTitle":"How to get satellite field images","url":"docs/usecase_satellite#start-the-server","content":"For the last part, we need to start our server, and make the front-end! Copy app.listen(3000, async () => { console.log(\"Server started!\"); }); "},{"title":"Frontend","type":1,"pageTitle":"How to get satellite field images","url":"docs/usecase_satellite#frontend","content":"In the frontend, we will use the Angular Framework! It's important to say that we will use the LeafletJS to display the map and images on it. "},{"title":"Creating the project","type":1,"pageTitle":"How to get satellite field images","url":"docs/usecase_satellite#creating-the-project","content":"To create our project, we can use this command from angular ng new . This command will ask some questions about the project and them create all the files and folder structure to our project. "},{"title":"Creating the component","type":1,"pageTitle":"How to get satellite field images","url":"docs/usecase_satellite#creating-the-component","content":"After doing this step, we will need to create our Map Component, to do this you can use also this command from angular: ng generate component , this will generate 3 files for your component: The CSS File for your component, the HTML file, and the TS file, where the logic will be. In our HTML we will have three simple forms to get the information that we need, and with that information we will proccess and send to our service, that will communicate with our API, e will have one
that will contain our map, and our sidebar. "},{"title":"Creating the service","type":1,"pageTitle":"How to get satellite field images","url":"docs/usecase_satellite#creating-the-service","content":"To create our service that will communicate with our API, we will use the command ng generate service , this will generate the file responsible. In the next steps, it will be demonstrated how to do every step until we show the images in the map. "},{"title":"Main functions","type":1,"pageTitle":"How to get satellite field images","url":"docs/usecase_satellite#main-functions","content":"Initializing the forms and the map# This is our function that will be called automatically by angular when the page is started, it initializes the map with the sidebar in the function initMap() and also initialize the forms that we need. Don't forget that you need to set the GETTERS and SETTERS for each attribute defined below, so you can retrieve and change the value. Copy ngOnInit(): void { this.initMap(); localStorage.removeItem('token'); this.loginForm = new FormGroup({ email: new FormControl(''), password: new FormControl(''), }); this.searchImagesForm = new FormGroup({ fieldId: new FormControl(''), startDate: new FormControl(''), endDate: new FormControl(''), }); this.createFieldForm = new FormGroup({ fieldId: new FormControl(''), daysBefore: new FormControl(''), bounderyType: new FormControl(''), fieldBoundery: new FormControl(''), provider: new FormControl(''), }); } Login# This function will be called by our button in the form, we need to retrieve the information from the form using the getters and then send it to our service, that will add our token to the header and send to the back-end. Copy doLogin() { this.isLoading = true; // Using the email and password getters: let email = this.getEmail().value; let password = this.getPassword().value; // You could also do this way: // this.loginForm.get('email')!.value if (email === '' || password === '') { this.isLoading = false; // You can do some validations here } else { // Calling a function from our appService, sending the email and password // that will be redirected to the back-end. this.appService.login(email, password).subscribe((data) => { this.isLoading = false; this.loginMessage = data.message; if (data.message === 'Congrats! Login done!') { // Saving our token that the back-end send back to us // for the next steps this.isLogged = true; localStorage.setItem('token', data.token); } else { this.isLogged = false; } }); } } In our service, we will define the function login() Copy login(email: string, password: string): Observable { return this.http.post(this.apiUrl + 'create_token', { email: email, password: password, }); } Load satellite monitored fields# This function is responsible to reach our backend and give us back the list of the available satellite monitored fields. After receiving them you can show it to the user to choose which one he wants to see images. Copy loadCreatedFields() { this.isLoading = true; // Sending our token that we retrieved in the first step. this.appService .loadFields(localStorage.getItem('token')!) .subscribe((data) => { this.isLoading = false; this.fields = data; }); } In our service, we will define the function loadFields() Copy loadFields(token: string): Observable { // Setting our token in the Authorization header so we // can send it to the back-end let headers = new HttpHeaders().set('Authorization', token); return this.http.get(this.apiUrl + 'monitored_fields', { headers }); } Load the images for a specific field# This function is reponsible for getting the form information and send to our back-end that will return the satellite images for a specific field. After our backend return to us the list of the images, we need to retrieve the coordinates of that field from the backend response, and also the images. With the geometry, we can create a GEOJSON layer, to display the bounds of the field, and with the images we can plot them in the map. Copy loadFieldImages() { this.isLoading = true; this.images = []; let fieldId = this.getFieldId()!.value; let startDate = this.getStartDate()!.value; let endDate = this.getEndDate()!.value; if (fieldId === '' || startDate === '' || endDate === '') { this.loadImagesMessage = 'You need to fill all the inputs.'; this.isLoading = false; } else { this.appService .loadImages(fieldId, startDate, endDate, localStorage.getItem('token')!) .subscribe((data) => { this.isLoading = false; this.loadImagesMessage = ''; if ( data === 'No images were found for the time and field selected' || data === 'Request failed with status code 404' ) { // Here you can show something to the user if no images were found this.images = []; this.loadImagesMessage = data; } else { this.images = []; this.images = data.images; // Save the field geometry from the response. let geometry = data.geometry[0][0]; // Create a object containing the field coordinates to create a Leaflet Layer. let json = { type: 'Feature' as GeoJsonTypes, geometry: { type: 'Polygon', coordinates: [geometry], }, }; // Create a object that will define the style of the polygon let polygonStyle = { weight: 2, opacity: 1, fill: false, 'fill-opacity': 0, } as L.GeoJSONOptions; // Clear all the bounds created in the bounds group layer this.bounds.clearLayers(); // Clear all the images created in the imagens group layer this.imagens.clearLayers(); // Create the geoJson layer of LeafletJS. let geoJsonLayer = L.geoJson(json, polygonStyle).addTo(this.bounds); // Saving the bounds of the field from the geoJsonLayer let geoBounds = geoJsonLayer.getBounds(); // Make the map fly to the right coordintes of the field. this.map.flyTo(geoJsonLayer.getBounds().getCenter(), 15); // Checking if are any avaiable images and for each image // save the url of the image and the bound of the field in // the images array this.images.forEach((e: any) => { e.images.forEach((f: any) => { f.bounds = geoBounds; f.date = e.date.substring(11, 23); if (e.provider === 'sentinel') { f.imgtype = f.url.split('/0/')[1].split('.')[0].split('_')[0]; } else if (e.provider === 'planet') { f.imgtype = f.url .split('_SR.tif/')[1] .split('.')[0] .split('_')[0]; } else { f.imgtype = 'not supported'; } }); e.date = e.date.substring(0, 10); }); } }); } } In our service, we will define the function loadImages() Copy loadImages(fieldId: any, startDate: any, endDate: any, token: string): Observable { let headers = new HttpHeaders().set('Authorization', token); return this.http.post( this.apiUrl + 'field_images', { id: fieldId, startDate: startDate, endDate: endDate, }, { headers } ); } Show and hide map layers# With this function, we will receive an url from the parameter when the user clicks in the image he wants to see, and then we will display that image. Copy function showImage(url) { // Clear all the images from the imagens group layer, so only one // image will be displayed. imagens.clearLayers(); // If you remember, in the images array, we saved all the // images url, and the bounds of the fields. So when we receive // one url in the parameter, we will search the url in the array // and if it is a valid url, we will retrieve the bounds and then // display the image in the map. this.images.forEach((e: any) => { e.images.forEach((f: any) => { if (f.url === url) { L.imageOverlay(f.url, f.bounds).addTo(this.imagens); } }); }); } "},{"title":"Extra","type":1,"pageTitle":"How to get satellite field images","url":"docs/usecase_satellite#extra","content":"In this case, we are using the LeafletJS library, so we need to create our map, and add the base layers we want. We will add a layer for the OpenStreetMap basemap, and one for the Mapbox basemap. To use the MapBox basemap without creating an map variable to it, we need to setup our MapBox token in one variable and then reach the mapbox url passing our token. Copy private initMap(): void { // Create the Map variable. this.map = L.map('map', { center: [39.8282, -98.5795], zoom: 3, }); // OpenStreetMap Layer. const osm = L.tileLayer( 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 18, minZoom: 3, attribution: '© OpenStreetMap', } ); let token = \"YOUR MAPBOX TOKEN\"; // MapBox Layer. const mapBox = L.tileLayer( 'https://api.mapbox.com/styles/v1/mapbox/satellite-v9/tiles/{z}/{x}/{y}?access_token=' + token, { maxZoom: 21, tileSize: 512, zoomOffset: -1, attribution: '© Mapbox © OpenStreetMap', } ); osm.addTo(this.map); mapBox.addTo(this.map); // The base maps. const baseMaps = { OpenStreetMap: osm, MapBox: mapBox, }; //Group layers for the images and the bounds. this.imagens = L.layerGroup().addTo(this.map); this.bounds = L.layerGroup().addTo(this.map); // Create the base maps control in the map const layerControl = L.control.layers(baseMaps).addTo(this.map); // The sidebar options var options: L.SidebarOptions = { container: 'sidebar', position: 'left', }; // Creating the sidebar var sidebar = L.control.sidebar(options); // Adding the sidebar to the map this.map.addControl(sidebar); } See here more informations about Mapbox! See here more informations about LeafletJS! tip Here you can run a live use case demo! "},{"title":"How to upload a file and get images","type":0,"sectionRef":"#","url":"docs/usecase_upload","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"How to upload a file and get images","url":"docs/usecase_upload#about","content":"This use case describes how to get the information and images from uploaded files. Follow this documentation. "},{"title":"Register","type":1,"pageTitle":"How to upload a file and get images","url":"docs/usecase_upload#register","content":"To register with Leaf: Go to registration link and create your account.Save your credentials to use in the next step. "},{"title":"Backend","type":1,"pageTitle":"How to upload a file and get images","url":"docs/usecase_upload#backend","content":""},{"title":"Create server","type":1,"pageTitle":"How to upload a file and get images","url":"docs/usecase_upload#create-server","content":"After registered, you will need to setup a server, in this case we will use the Express Framework to create the server, the Ngrok library to be able to open our localhost port to the open internet and the Axios library to do POST/GET requests in our server: Copy const express = require(\"express\") const app = express() const ngrok = require(\"ngrok\") const axios = require(\"axios\") var startTunnel = async () => { await ngrok.authtoken(\"YOUR NGROK AUTHTOKEN\"); url = await ngrok.connect(THE LOCALHOST PORT YOU WANT TO DISPOSE TO THE OPEN INTERNET); return url; }; Now you will need to define some routes that your server will use, in this example, we define the follow routes: "},{"title":"Routes","type":1,"pageTitle":"How to upload a file and get images","url":"docs/usecase_upload#routes","content":"Route '/main'# This route will be responsible to render our main page, in the route: '/main'. Copy app.get(\"/main\", (req, res) => { res.render(__dirname + \"/views/ejs/map.ejs\"); }); Route '/webhook'# This route will be the route that we will use in the process of creating our webhook in the Leaf API, with this route we will receive the alerts from the Leaf API, and save the files id to use it in the future. In this example, we just get 2 types of response from the Leaf API, the types: uploadedFileProcessingFaileduploadedFileProcessingFinished Copy app.post(\"/webhook\", (req, res) => { if (req.body.message === \"confirmation of webhook upon registration\") { console.log(\"Just checking if webhook url is alive\"); } if (req.body.type === \"uploadedFileProcessingFailed\") { console.log(\"Processing failed to the file: \" + req.body.fileId); } else if (req.body.type === \"uploadedFileProcessingFinished\") { console.log(\"Processing ok to the file: \" + req.body.fileId); let content = req.body.fileId + \"\\n\"; fs.appendFile(\"./files/all.txt\", content, (error) => { if (error) { console.error(error); } }); } res.status(200).send(\"Ok\"); }); Here you can see the Alerts Documentation. Route '/create_token'# In this route, we will create the user token to use in the next steps. In the data object, we need the attributes username and password that comes from a form in the front-end, and the attribute rememberMe is optional. We make a POST request with AXIOS to the Leaf API endpoint that is responsible to create our token, if everything is ok, it will return an status code 200, and the token will be saved in the tokenvariable, if anything is wrong, it will be catched by the .catch() function. Copy app.post(\"/create_token\", (req, res) => { let email = req.body.email.trim(); let passwd = req.body.password.trim(); let endpoint = \"https://api.withleaf.io/api/authenticate\"; let data = { username: email, password: passwd, rememberMe: \"true\" }; axios .post(endpoint, data) .then(function (response) { token = response.data[\"id_token\"]; res.json(\"Congrats! Login done!\"); }) .catch((error) => { if (error.response.data.status === 400) { res.json(\"Oops! Login failed!\"); } else if (error.response.data.status === 401) { res.json(\"Oops! Invalid credentials!\") } }); }); Here you can see the Authentication Documentation. Route '/create_webhook'# In this route, we will receive data from a form in the front-end, put them in a object named data and then make a post request with AXIOS to the Leaf API endpoint that is responsible for creating webhooks. The attributes name and events comes from the form, the attribute secret you will need to generate, and the parameter url is created when the server start using the function startTunnel(); and we add the '/webhook' that is the route we defined early. Copy app.post(\"/create_webhook\", (req, res) => { let name = req.body.nome; let data = { events: [req.body.type.trim()], name: name, secret: \"YOUR SECRET\", url: url + \"/webhook\" }; let headers = { Authorization: `Bearer ` + token }; let endpoint = \"https://api.withleaf.io/services/alerts/api/alerts/webhooks\"; axios .post(endpoint, data, { headers }) .then((response) => { res.json('Webhook successfully created') }) .catch((error) => { if (error.response.data.status === 400) { res.json(\"This event is already created at some webhook url.\"); } }); }); Here you can see the Webhook Documentation. Route '/list_webhook'# In this route, we will use our token to list all our created webhooks. We need to do a GET request with AXIOS to the Leaf API endpoint responsible to give us all our webhooks. And all will be done just if our token is not undefined, in other case, it will give us the error'Invalid token btw, generate one first!'. Copy app.get(\"/list_webhook\", (req, res) => { if (token != undefined) { let headers = { Authorization: `Bearer ` + token }; let endpoint = \"https://api.withleaf.io/services/alerts/api/alerts/webhooks\"; axios .get(endpoint, { headers }) .then(function (response) { res.json(JSON.stringify(response.data)); }) .catch(console.error); } else { res.json(\"Invalid token btw, generate one first!\"); } }); Here you can see the Webhook Documentation. Route '/delete_webhook/:id'# In this route, we will be able to delete a webhook that we created. The id comes from the parameter id in the url, and we will use this parameter in the DELETE request that we make with AXIOS, we also need to set our token in the header, and if everything is ok, we will receive an status code 204 Copy app.get(\"/delete_webhook/:id\", (req, res) => { let webhook_id = req.params.id; const headers = { Authorization: `Bearer ` + token }; const id = webhook_id; const endpoint = 'https://api.withleaf.io/services/alerts/api/alerts/webhooks/' + id; axios .delete(endpoint, { headers }) .then((response) => console.log(response.status)) .catch(console.error); res.redirect(\"/\"); }); Here you can see the Webhook Documentation. Route '/save_file'# In this route, we will receive a file that was uploaded from the front-end, we will save it, upload to Leaf API and then delete it. If the user token is already generated, it will follow the process, if it is undefined, it will send back the message 'Not a valid token, create one first'. Copy app.post(\"/save_file\", (req, res) => { if (token === undefined) { res.json('Not a valid token, create one first'); } else { //Here we save the provider and the file that is comming from the front end, // we also save the file name and create a path in the server to the file. let provider = req.body.provider; let files = req.files; let filename = files.upload.name; let file_path = path.resolve(`./${files.upload.name}`); // Here we save the file in the path that we created, if something went wrong, // it will send back the error. files.upload.mv(file_path, (err) => { if (err) return res.status(500).send(err); }); // Here we make a get request with axios to retrieve our Leaf User Id, that is // necessary for the next step. let endpoint = \"https://api.withleaf.io/services/usermanagement/api/users/\"; let headers = { Authorization: `Bearer ` + token }; axios .get(endpoint, { headers }) .then(function (response) { leaf_user_id = response.data[0][\"id\"]; endpoint = \"https://api.withleaf.io/services/operations/api/batch\"; let headers = { Authorization: `Bearer ` + token, \"Content-Type\": \"multipart/form-data\" }; // Once the Leaf User Id is set, we add it to the param object, that // we will use to post the file to Leaf API endpoint. let params = { provider: provider, leafUserId: leaf_user_id }; // Create a form so we can put the file received from the front-end // in the request to the Leaf API endpoint. let form = new FormData(); form.append(\"file\", fs.createReadStream(file_path)); axios .post(endpoint, form, { headers, params }) .then(function (response) { // Delete the file received fs.unlink(file_path, (erro) => { if (erro) console.log(erro); }); // Send a json to the front-end that the file // was uploaded to Leaf API endpoint. res.json(\"File uploaded, wait for it to be processed!\"); }) .catch(function () { // If an error ocurred, send the error to the front-end. res.json('Error ocurred during file upload, try again with a valid file') } ); }) .catch(function () { res.json('Couldnt retrieve your token, generate one first.') }); } }); Here you can see the Files Documentation. Route '/verify_files'# In this route, we can verify if any files that we uploaded were processed succefully. If the token is already generated it will proceed to verifying the all.txt file, where the files id are saved when we receive an alert in the '/webhook' route. If are any files id in the file, the route will return the files id in the JSON options. Copy app.get(\"/verify_files\", (req, res) => { if (token === undefined) { res.json(`Invalid token btw, generate one first!`); } else { fs.readFile(\"./files/all.txt\", \"utf-8\", (err, data) => { if (err) { console.error(err); } if (data.length > 0) { let options = []; fs.readFile(\"./files/all.txt\", \"utf-8\", (err, data) => { if (err) { console.error(err); } data.split(/\\r?\\n/).forEach((line) => { options.push(line); }); res.json(JSON.stringify(options)); }); } else { res.json( 'No file processed yet!' ); } }); } }); Route '/detail_file/:id'# In this route, we will receive and id in the url, and we will use this id to make a GET request with AXIOS in the Leaf API endpoint that is responsible to give us the content of uploaded files. The API endpoint will give us an JSON with the information, and we will send it back to the front-end. Copy app.get(\"/detail_file/:id\", (req, res) => { let file_id = req.params.id; let endpoint = \"https://api.withleaf.io/services/operations/api/files/\" + file_id; let headers = { Authorization: `Bearer ` + token }; axios .get(endpoint, { headers }) .then(function (response) { let data = response.data; res.json({ data }); }) .catch(console.error); }); Here you can see the Files Documentation. Route '/file_images/:id'# In this route, we will be able to get the images from the Leaf API endpoint. The file id is received from the form, in the parameter id and we put it in the endpoint url. When we make a GET request with AXIOS, the endpoint will return an JSON with the images url and informations related to that file id that we send in the url. Copy app.get(\"/file_images/:id\", (req, res) => { let file_id = req.params.id; let endpoint = \"https://api.withleaf.io/services/operations/api/files/\" + file_id + \"/images\"; let headers = { Authorization: `Bearer ` + token }; axios .get(endpoint, { headers }) .then(function (response) { let data = response.data; res.json({ data }); }) .catch(console.error); }); Here is the File Images Documentation. Route '/image_coordinates'# In this route, we will receive a list of images url, and we will work with it. Copy app.post(\"/image_coordinates\", async (req, res) => { let received = req.body; received = JSON.parse(received.dados); //For each link received, we will use the Probe library to get the size of an image //from a url, and we will save it because we need to use it in the future to //get the real coordinates. for await (const link of received) { let result = await probe(link.url); link.width = result.width; link.height = result.height; } //Here we define a function getCoordintes() that will receive an array, filled with //the images and its sizes, and an callback function that will be called when all //the Promises are resolved. function getCoordinates(arr, callback) { var results = []; var expecting = arr.length; //For each link in the array, we will get an extra .xml file from the Leaf API //that contains the information that we need to calculate the real world coordinates. arr.forEach((e) => { // Get the .xml file using the https library. let req2 = https.get(e.url + \".aux.xml\", function (res2) { let data = \"\"; res2.on(\"data\", function (stream) { data += stream; }); res2.on(\"end\", function () { // Parse the information from xml to json using the library xml2js // parser is from xml2js = new xml2js.Parser({ attrkey: \"ATTR\" }); parser.parseString(data, function (error, result) { if (error === null) { // Get the necessary information from inside the JSON let resultado = result[\"PAMDataset\"][\"GeoTransform\"][0].split(\",\"); // This is the top left point of the image: let TLX = parseFloat(resultado[0].trim()); let TLY = parseFloat(resultado[3].trim()); //This is the bottom right point of the image: let BRX = parseFloat(resultado[0].trim()) + parseInt(e.width) * parseFloat(resultado[1].trim()) + parseInt(e.height) * resultado[2]; let BRY = parseFloat(resultado[3].trim()) + parseInt(e.width) * parseFloat(resultado[4].trim()) + parseInt(e.height) * resultado[5]; /*See image1.*/ let x0 = (TLX * (180 / Math.PI)) / 6378137.0; let y0 = ((Math.PI * 0.5 - 2.0 * Math.atan(Math.exp(-TLY / 6378137.0))) * 180) / Math.PI; let x1 = (BRX * (180 / Math.PI)) / 6378137.0; let y1 = ((Math.PI * 0.5 - 2.0 * Math.atan(Math.exp(-BRY / 6378137.0))) * 180) / Math.PI; /*See image2.*/ let obj = { 1: x0 + \", \" + y0, 2: x1 + \", \" + y0, 3: x1 + \", \" + y1, 4: x0 + \", \" + y1, 5: e.url, 6: e.type, }; /*See image3.*/ results.push(obj); //This part does 'expeting - 1' every forEach, and when it hits 0 //(all the array processed) it calls the callback function. if (--expecting === 0) { callback(results); } } else { console.log(error); } }); }); }); }); } //Here we call the function, sending the array that we created with the image links //and sizes, and we define the function that will be called when everything is finishid, //in this case,the function just respond the request with an JSON containing all the data //needed to plot the images in the front end. getCoordinates(received, function (results) { res.json(JSON.stringify(results)); }); }); Image 1 - Image 2 - Image 3 "},{"title":"Start the server","type":1,"pageTitle":"How to upload a file and get images","url":"docs/usecase_upload#start-the-server","content":"For the last part, we need to start our server, and make the front-end! Copy app.listen(3000, async () => { //Clear the all.txt file fs.writeFileSync('./files/all.txt', ''); // Get the ngrok url to the open internet url = await startTunnel(); console.log(url); console.log(\"Server started!\"); }); "},{"title":"Frontend","type":1,"pageTitle":"How to upload a file and get images","url":"docs/usecase_upload#frontend","content":"In the frontend, we will need to use just one page! We define the page in the path: /views/ejs/map.ejs. In this part of the documentation, it will be show some functions that are used in the map.ejs file, all this functions will be called via onClick() method from form buttons. It's important to say that we will use the Mapbox API to display the map and images on it. "},{"title":"Login","type":1,"pageTitle":"How to upload a file and get images","url":"docs/usecase_upload#login","content":"This function is called by our button that is responsible for doing the login. It will get the data from the form, and do a POST request with AXIOS to our backend. That will return 'Congrats! Login done!' if the credentials are right, and another message depending on what happened wrong. Copy function loginClick() { let email = $(\"#email\").val(); let password = $(\"#password\").val(); $.ajax({ type: \"POST\", url: '/create_token', data: { password: password, email: email }, success: function(response) { if (response === 'Congrats! Login done!') { //Here you need to disable this element and //show the next one, in the case, the div responsible //for creating the webhook. } else { //Show some message saying that the login failed. } } }); } "},{"title":"Create Webhook","type":1,"pageTitle":"How to upload a file and get images","url":"docs/usecase_upload#create-webhook","content":"With this function, we will get the parameters from the form about the webhook, and do a POST request with AXIOS to our backend resonsible for creating the webhook in the Leaf API. Copy function webhookCreateClick() { if ($('YOUR FORM INPUT ID').val() != false) { let name = $(\"YOUR FORM INPUT ID\").val(); let type = $(\"YOUR SELECT INPUT SELECTED\").val(); $('#webhook_response').text(''); $.ajax({ type: \"POST\", url: '/create_webhook', data: { name: name, type: type }, success: function(response) { if (response === 'Webhook successfully created') { //Here you need to disable this element and //show the next one, in the case, the div responsible //for list the webhook. listWebhooks(); } else { //Show some message saying that the webhook creation failed. } } }); } } "},{"title":"List webhooks","type":1,"pageTitle":"How to upload a file and get images","url":"docs/usecase_upload#list-webhooks","content":"In this function, we will be able to list all the webhooks that our Leaf Account have. We will list them to the user just to see if the webhook that he needs is created or not. Copy function listWebhooks() { let start = '

' let end = '

' $.ajax({ type: \"GET\", url: '/list_webhook', success: function(response) { // Here, we get the response from our backend and build a div with //

inside of it containing the type of the webhooks. // Then, we call the next element, the uploadFile(); response = JSON.parse(response); if (response.length > 0) { response.forEach((e) => { e.events.forEach((p) => { $('YOUR DIV ID').append(start + p + end); }) }) } uploadFile(); }, error: function(response) { console.log(response); } }); }; "},{"title":"Upload a file","type":1,"pageTitle":"How to upload a file and get images","url":"docs/usecase_upload#upload-a-file","content":"In this function, we will handle the upload file process. We need to intercept the form submit action and then make a POST with AXIOS to our backend. Copy function uploadFile() { // Intercept the submit form action $(\"YOUR FORM ID\").submit(function() { // Create a new formData, passing the real formData file to it. var formData = new FormData(this); $.ajax({ url: '/save_file', type: 'POST', processData: false, contentType: false, cache: false, data: formData, success: function(response) { if (response === 'File uploaded, wait for it to be processed!') { // Here you will make what you want to happen when the file // was received in the backend and everything was ok with it. } else { // Here you need to display some message to the user if the file // that he uploaded was not in the correct format or size. } }, error: function(response) { console.log(response); }, }); }); }; "},{"title":"Check uploaded files","type":1,"pageTitle":"How to upload a file and get images","url":"docs/usecase_upload#check-uploaded-files","content":"With this function, we will be able to check if the Leaf API already processed any files that we uploaded to our backend. We will build a div with links inside of it, linking to another function: get_json(), that will retrieve all the data we need. Copy function checkFiles() { // Define the string we will build let start = ``; let end = `\"` $.ajax({ type: \"GET\", url: '/verify_files', success: function(response) { if (response == 'No file processed yet!') { // Display a message to your user saying that no files // were processed yet } else if (response == 'Invalid token btw, generate one first!') { // Display a message to your user saying that he needs // to generate a token first } else { // See the response from the backend and build an div // containing the links to check files content. response = JSON.parse(response); response.forEach((e) => { $('YOUR DIV ID').append(`

` + e + ``); }); } }, error: function(response) { // Display any error that cant occur during the response from backend. console.log(response); } }); }; "},{"title":"Get JSON data from files","type":1,"pageTitle":"How to upload a file and get images","url":"docs/usecase_upload#get-json-data-from-files","content":"With this function, we will receive an id from parameter, and we will send it to our backend, so the backend will send us the follow informations: File detailsFile imagesImages coordinates Copy function get_json(id) { let file_id = id; var allImages = new Array(); // With this GET request, we will send to the backend one file_id, // and it will return the images linked to it. $.ajax({ url: \"/file_images/\" + file_id, type: 'GET', async: false, dataType: 'json', success: function(res) { // In this response, we will get all the images that // are linked to the file_id, and we will save // this images url in the allImages array. res.dados.forEach((e) => { allImages.push({ 'url': e.url, 'type': e.property }); }); } }); // With this POST request, we will send to our backend all images url, // the operation type of that images, and with the response we will // build map layers. $.ajax({ url: \"/image_coordinates\", type: 'POST', async: false, dataType: 'json', data: { dados: JSON.stringify(allImages) }, success: function(res) { points = JSON.parse(res); // Clear the actual options of layers if (optionsShow.length > 0) { optionsShow.forEach((e) => { map.removeLayer(`'` + e + `'`); map.removeSource(`'` + e + `'`); }) } optionsShow = []; // Creating a list of avaible images so the user can click it and // display the image on the map. points.forEach((e) => { $('YOUR DIV TO LIST THE IMAGES TYPE').append(`

` + e[6] + ``) // Save the type of the image so the user can choose what to see optionsShow.push(e[6]); // Create the 4 points (x,y) real coordinates // of the image, getting the points // from the server response let a = parseFloat(e[1].split(',')[0]); let a1 = parseFloat(e[1].split(',')[1]); let b = parseFloat(e[2].split(',')[0]); let b1 = parseFloat(e[2].split(',')[1]); let c = parseFloat(e[3].split(',')[0]); let c1 = parseFloat(e[3].split(',')[1]); let d = parseFloat(e[4].split(',')[0]); let d1 = parseFloat(e[4].split(',')[1]); // Make the map fly to the right coordinate of the images map.flyTo({ center: [a, a1], zoom: 17 }); // Add a source to the map, so we can add a layer to it // e[6] has the type of the image map.addSource(`'` + e[6] + `'`, { 'type': 'image', // e[5] has the url of the image 'url': e[5], 'coordinates': [ [a, a1], [b, b1], [c, c1], [d, d1] ] }); // Add a layer to the map, so we can show and hide it in the future. // e[6] has the type of the image map.addLayer({ 'id': `'` + e[6] + `'`, 'type': 'raster', 'source': `'` + e[6] + `'`, 'paint': { 'raster-fade-duration': 0 } }); // set the layer visibility to none map.setLayoutProperty(`'` + e[6] + `'`, 'visibility', 'none'); }); }, error: function(res) { console.log(res); } }); // With this GET request, we will send an file id to the backend, // and it will return the data about that file. e.g summary information $.ajax({ url: \"/file_details/\" + file_id, type: 'GET', async: false, dataType: 'json', success: function(res) { // Here you can define one function to show this data // in some div of your page. } }) }; "},{"title":"Show and hide map layers","type":1,"pageTitle":"How to upload a file and get images","url":"docs/usecase_upload#show-and-hide-map-layers","content":"With this function, we will receive an id from the parameter, and display that image if it's hidden, and hide it if it's show. Copy function showImage(id) { let visiviel = map.getLayoutProperty(`'` + id + `'`, 'visibility'); if (visiviel === 'visible') { map.setLayoutProperty(`'` + id + `'`, 'visibility', 'none'); } else { map.setLayoutProperty(`'` + id + `'`, 'visibility', 'visible'); } } "},{"title":"Extra","type":1,"pageTitle":"How to upload a file and get images","url":"docs/usecase_upload#extra","content":"Don't forget to create an Map, a div for it and replace the YOUR MAPBOX TOKEN, otherwise, the map will not work! Copy mapboxgl.accessToken = 'YOUR MAPBOX TOKEN'; const map = new mapboxgl.Map({ container: 'map', maxZoom: 20, minZoom: 1, zoom: 0, center: [0, 0], style: 'mapbox://styles/mapbox/satellite-v9' }); map.on('load', () => {}); See here more informations about Mapbox! tip Here you can run a live use case demo! "},{"title":"Leaf User Overview","type":0,"sectionRef":"#","url":"docs/user_management_overview","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Leaf User Overview","url":"docs/user_management_overview#about","content":"For Leaf to be able to access, process and return standardized files from providers, you first need to create a ‘Leaf User’, which you’ll later connect to your customers’ preferred data provider(s). "},{"title":"What is a Leaf user?","type":1,"pageTitle":"Leaf User Overview","url":"docs/user_management_overview#what-is-a-leaf-user","content":"A Leaf User provides a way to keep your customers' data organized under your API owner. You'll attach 3rd party credentials to these entities.A Leaf User is equivalent to a customer/grower account. The same Leaf User/grower can integrate with multiple providers via a user-authentication process for each provider. "},{"title":"Where to next?","type":1,"pageTitle":"Leaf User Overview","url":"docs/user_management_overview#where-to-next","content":""},{"title":"If integrating a provider via Leaf’s API","type":1,"pageTitle":"Leaf User Overview","url":"docs/user_management_overview#if-integrating-a-provider-via-leafs-api","content":"Once you’ve created a Leaf User (after setting up configurations and alerts), proceed to provider authentication. There we will show you how to integrate a provider and attach the provider credentials to your Leaf User so you can start receiving standardized data via Leaf. "},{"title":"If implementing manual file upload","type":1,"pageTitle":"Leaf User Overview","url":"docs/user_management_overview#if-implementing-manual-file-upload","content":"If you’re looking to implement manual file upload functionality for thumb drive data, click here next. Need more guidance? Contact us at help@withleaf.io. "},{"title":"Leaf User Endpoints","type":0,"sectionRef":"#","url":"docs/user_management_endpoints","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Leaf User Endpoints","url":"docs/user_management_endpoints#about","content":"To briefly recap the Leaf User overview: a Leaf User is equivalent to the end user of your application (e.g. a grower). A Leaf User provides a way to keep your customers' data organized under your API owner. As a developer, you’ll need to create a Leaf User and connect the provider(s) you wish to integrate your platform with. All HTTP methods should be prepended by this service's endpoint: Copy https://api.withleaf.io/services/usermanagement/api See below the REST resources and their endpoints available in this service. Leaf Users Resources# Form of a Leaf User resource: Copy { \"id\": \"UUID\", \"name\": \"str\", \"email\": \"help@withleaf.io\", \"phone\": \"str\", \"address\": \"str\", \"trimbleCredentials\": {\"Object\"}, \"cnhiCredentials\": {\"Object\"}, \"johnDeereCredentials\": {\"Object\"}, \"ravenCredentials\": {\"Object\"}, \"climateFieldViewCredentials\": {\"Object\"}, \"staraCredentials\": {\"Object\"}, \"agLeaderCredentials\": {\"Object\"}, \"ravenSlingshotCredentials\": {\"Object\"} } Check the providers credentials endpoints for more details about the credentials object. The following endpoints are available: Description\tEndpointsGet all Leaf Users\tGET /users/ Get a Leaf User\tGET /users/{id} Create a Leaf User\tPOST /users Update a Leaf User\tPUT /users Delete a Leaf User\tDELETE /users/{id} "},{"title":"User Endpoints","type":1,"pageTitle":"Leaf User Endpoints","url":"docs/user_management_endpoints#user-endpoints","content":""},{"title":"Get all Leaf Users","type":1,"pageTitle":"Leaf User Endpoints","url":"docs/user_management_endpoints#get-all-leaf-users","content":" GET /users Get all Leaf Users. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users' Response# Copy [ { \"id\": \"UUID\", \"name\": \"str\", \"email\": \"help@withleaf.io\", \"phone\": \"str\", \"address\": \"str\", \"trimbleCredentials\": {\"Object\"}, \"cnhiCredentials\": {\"Object\"}, \"johnDeereCredentials\": {\"Object\"}, \"ravenCredentials\": {\"Object\"}, \"climateFieldViewCredentials\": {\"Object\"}, \"staraCredentials\": {\"Object\"}, \"agLeaderCredentials\": {\"Object\"}, \"ravenSlingshotCredentials\": {\"Object\"} }, .... ] Check the providers credentials endpoints for more details about the credentials object. "},{"title":"Get a Leaf User","type":1,"pageTitle":"Leaf User Endpoints","url":"docs/user_management_endpoints#get-a-leaf-user","content":" GET /users/{id} Get a Leaf User by its id. This request looks up an individual Leaf User (such as a grower) and returns the details associated with their account, including provider credentials such as ID, created date and tokens. Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{id}' Response# Copy { \"id\": \"UUID\", \"name\": \"str\", \"email\": \"help@withleaf.io\", \"phone\": \"str\", \"address\": \"str\", \"trimbleCredentials\": {\"Object\"}, \"cnhiCredentials\": {\"Object\"}, \"johnDeereCredentials\": {\"Object\"}, \"ravenCredentials\": {\"Object\"}, \"climateFieldViewCredentials\": {\"Object\"}, \"staraCredentials\": {\"Object\"}, \"agLeaderCredentials\": {\"Object\"}, \"ravenSlingshotCredentials\": {\"Object\"} } "},{"title":"Create a Leaf User","type":1,"pageTitle":"Leaf User Endpoints","url":"docs/user_management_endpoints#create-a-leaf-user","content":" POST /users Creates a Leaf User. You will need to create a Leaf User when linking a provider for the first time. Request body# Copy { \"name\": \"str\", \"email\": \"help@withleaf.io\", \"phone\": \"str\", \"address\": \"str\" } Besides the four properties of the example above, once you have created credentials for a provider like John Deere, you can add an entry like the following. Specifying the ID of the credentials object previously created will link it to the Leaf User being created. This will enable you to start querying farm data from the provider. Check theproviders credentials endpoints for more details about the credentials object. Copy \"johnDeereCredentials\": { \"id\": \"UUID\" } Request examples# cURLPythonJavaScript Copy curl -X POST \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"name\": \"str\", \"email\": \"help@withleaf.io\", \"phone\": \"str\", \"address\": \"str\"}' \\ 'https://api.withleaf.io/services/usermanagement/api/users' Response# Copy { \"id\": \"UUID\", \"name\": \"str\", \"email\": \"help@withleaf.io\", \"phone\": \"str\", \"address\": \"str\" } "},{"title":"Update a Leaf User","type":1,"pageTitle":"Leaf User Endpoints","url":"docs/user_management_endpoints#update-a-leaf-user","content":" PUT /users Edits an existing Leaf User by submitting a new one. Request body# Copy { \"id\": \"UUID\", \"name\": \"str\", \"email\": \"help@withleaf.io\", \"phone\": \"str\", \"address\": \"str\" } Note that if the existing resource has credentials and you don't include them in the body, the new Leaf User will have no credentials. Said that, for keeping the credentials or updating them, include in the JSON above an entry. Check the providers credentials endpoints for more details about the credentials object. Copy \"johnDeereCredentials\": { \"id\": \"UUID\" } Request examples# cURLPythonJavaScript Copy curl -X PUT \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ -d '{ \"id\": \"UUID\", name\": \"str\", \"email\": \"help@withleaf.io\", \"phone\": \"str\", \"address\": \"str\"}' \\ 'https://api.withleaf.io/services/usermanagement/api/users' Response# Copy { \"id\": \"UUID\", \"name\": \"str\", \"email\": \"help@withleaf.io\", \"phone\": \"str\", \"address\": \"str\" } "},{"title":"Delete a Leaf User","type":1,"pageTitle":"Leaf User Endpoints","url":"docs/user_management_endpoints#delete-a-leaf-user","content":" DELETE /users/{id} Deletes an existing Leaf User by id. Request examples# cURLPythonJavaScript Copy curl -X DELETE \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/usermanagement/api/users/{id}' "},{"title":"Providers credentials endpoints","type":1,"pageTitle":"Leaf User Endpoints","url":"docs/user_management_endpoints#providers-credentials-endpoints","content":"John DeereClimate FielviewTrimbleCNHiStaraRavenAgLeaderRaven SlingshotSenteraAgVance After connecting with a provider, a summary of the available resources can be accessed using the Integration resource endpoint. tip Please don't hesitate to contact us at help@withleaf.io to schedule a demo, ask a question, request sample data, or suggest a feature! "},{"title":"Weather Overview","type":0,"sectionRef":"#","url":"docs/weather_overview","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Weather Overview","url":"docs/weather_overview#about","content":"With Leaf Weather, you can access unified weather data at a field level. Below you’ll find more about what forecasted and historical weather variables are available and which data sources are supported through Leaf’s API. "},{"title":"Forecast","type":1,"pageTitle":"Weather Overview","url":"docs/weather_overview#forecast","content":"Leaf’s weather forecast service provides access to forecasted weather data for the past 5 days - up to 10 days in the future. The data can be fetched daily or hourly. "},{"title":"Properties","type":1,"pageTitle":"Weather Overview","url":"docs/weather_overview#properties","content":"Cloud coverDew-point (2 m)EvapotranspirationPrecipitationRainRelative Humidity (2 m)Short Wave RadiationLong Wave RadiationSnowfallSunriseSunsetTemperature (2 m)Soil Temperature (0 cm)Soil Moisture (0-1 cm; 1-3 cm; 3-9 cm; 9-27 cm; 27-81 cm)Wind Direction (10 m)Wind Gusts (10 m)Wind Speed (10 m) "},{"title":"Data sources","type":1,"pageTitle":"Weather Overview","url":"docs/weather_overview#data-sources","content":"Weather Model\tNational Weather Provider\tOrigin Country\tResolution\tForecast Length\tUpdate FrequencyICON\tDeutscher Wetterdienst (DWD)\tGermany\t2 - 11 km\t7.5 days\tEvery 3 hours GFS\tNOAA\tUnited States\t3 - 25 km\t16 days\tEvery hour Arpege & Arome\tMeteoFrance\tFrance\t1 - 40 km\t4 days\tEvery 6 hours IFS\tECMWF\tEuropean Union\t44 km\t7 days\tEvery 6 hours JMA\tJMA\tJapan\t5 - 55 km\t11 days\tEvery 3 hours GEM\tCanadian Weather Service\tCanada\t2.5 km\t10 days\tEvery 6 hours Warning The service uses an option to provide the best forecast for any given location worldwide, based on the models available. "},{"title":"Availability by Weather Model","type":1,"pageTitle":"Weather Overview","url":"docs/weather_overview#availability-by-weather-model","content":"ICONGFSArpege & AromeIFSJMAGEM Property\tUnit of measurement\tDescriptionmeanTemperature\tImperial: ºF; Metric: ºC\tMean daily air temperature at 2 meters above ground. minTemperature\tImperial: ºF; Metric: ºC\tMinimum daily air temperature at 2 meters above ground. maxTemperature\tImperial: ºF; Metric: ºC\tMaximum daily air temperature at 2 meters above ground. meanSoilTemperature\tImperial: ºF; Metric: ºC\tMean surface temperature (0 cm deep), which can be water or land. minSoilTemperature\tImperial: ºF; Metric: ºC\tMinimum surface temperature (0 cm deep), which can be water or land. maxSoilTemperature\tImperial: ºF; Metric: ºC\tMaximum surface temperature (0 cm deep), which can be water or land. soilMoisture\tm³/m³\tAverage soil water content as volumetric mixing ratio at 0-1, 1-3, 3-9, 9-27 and 27-81 cm depths. sunrise\tiso8601\tSunrise time. sunset\tiso8601\tSunset time. maxWindspeed\tImperial: mph, Metric: km/h\tMaximum wind speed on a day. maxWindgusts\tImperial: mph, Metric: km/h\tMaximum wind gusts on a day. windDirection\tº\tDominant wind direction. evapotranspiration\tImperial: inch, Metric: mm\tDaily sum of ET₀ Reference Evapotranspiration of a well watered grass field. rainSum\tImperial: inch, Metric: mm\tSum of daily rain. snowfallSum\tImperial: inch, Metric: cm\tSum of daily snowfall. precipitationSum\tImperial: inch, Metric: mm\tSum of daily precipitation (including rain, showers and snowfall). dewpoint\tImperial: ºF, Metric: ºC\tDew point temperature at 2 meters above ground. longwaveRadiation\tW/m²\tLongwave radiation refers to thermal or infrared radiation emitted by the Earth back into space. shortwaveRadiation\tW/m²\tShortwave radiation is often quantified as solar irradiation incident on the Earth's atmosphere or surface. cloudcover\t%\tTotal cloud cover as an area fraction. relativeHumidity\t%\tRelative humidity at 2 meters above ground. tip Sunrise and sunset variables are only available for daily forecast. Dew point, longwave radiation, shortwave radiation, cloud cover, soil moisture and relative humidity are only available for hourly forecast. The other variables have their corresponding values in both hourly and daily. "},{"title":"Historical Data","type":1,"pageTitle":"Weather Overview","url":"docs/weather_overview#historical-data","content":"Leaf's historical weather service provides access to data from 1940 onwards when available. The data can be fetched daily or hourly. Please note, historical weather data from less than 5 days ago is unavailable. If you’re wanting historical weather data within the last 5 days, you can use the forecast service to get this information. "},{"title":"Properties","type":1,"pageTitle":"Weather Overview","url":"docs/weather_overview#properties-1","content":"Cloud coverDew-point (2 m)EvapotranspirationPrecipitationRainRelative Humidity (2 m)Short Wave RadiationLong Wave RadiationSnowfallSunriseSunsetTemperature (2 m)Soil Temperature (0 - 7 cm)Soil Moisture (0-7 cm; 7-28 cm; 28-100 cm; 100-255 cm)Wind Direction (10 m)Wind Gusts (10 m)Wind Speed (10 m) "},{"title":"Data sources","type":1,"pageTitle":"Weather Overview","url":"docs/weather_overview#data-sources-1","content":"Reanalysis Model\tRegion\tSpatial Resolution\tTemporal Resolution\tData Availability\tUpdate FrequencyERA5\tGlobal\t0.25° (~25 km)\tHourly\t1940 to present\tDaily with 5 days delay ERA5-Land\tGlobal\t0.1° (~11 km)\tHourly\t1950 to present\tDaily with 5 days delay "},{"title":"Availability by Weather Model","type":1,"pageTitle":"Weather Overview","url":"docs/weather_overview#availability-by-weather-model-1","content":"ERA5ERA5-Land Property\tUnit of measurement\tDescriptionmeanTemperature\tImperial: ºF; Metric: ºC\tMean daily air temperature at 2 meters above ground. minTemperature\tImperial: ºF; Metric: ºC\tMinimum daily air temperature at 2 meters above ground. maxTemperature\tImperial: ºF; Metric: ºC\tMaximum daily air temperature at 2 meters above ground. meanSoilTemperature\tImperial: ºF; Metric: ºC\tMean surface temperature (0 cm deep), which can be water or land. minSoilTemperature\tImperial: ºF; Metric: ºC\tMinimum surface temperature (0 cm deep), which can be water or land. maxSoilTemperature\tImperial: ºF; Metric: ºC\tMaximum surface temperature (0 cm deep), which can be water or land. soilMoisture\tm³/m³\tAverage soil water content as volumetric mixing ratio at 0-7, 7-28, 28-100 and 100-255 cm depths. sunrise\tiso8601\tSunrise time. sunset\tiso8601\tSunset time. maxWindspeed\tImperial: mph, Metric: km/h\tMaximum wind speed on a day. maxWindgusts\tImperial: mph, Metric: km/h\tMaximum wind gusts on a day. windDirection\tº\tDominant wind direction. evapotranspiration\tImperial: inch, Metric: mm\tDaily sum of ET₀ Reference Evapotranspiration of a well watered grass field. rainSum\tImperial: inch, Metric: mm\tSum of daily rain. snowfallSum\tImperial: inch, Metric: cm\tSum of daily snowfall. precipitationSum\tImperial: inch, Metric: mm\tSum of daily precipitation (including rain, showers and snowfall). dewpoint\tImperial: ºF, Metric: ºC\tDew point temperature at 2 meters above ground. longwaveRadiation\tW/m²\tLongwave radiation refers to thermal or infrared radiation emitted by the Earth back into space. shortwaveRadiation\tW/m²\tShortwave radiation is often quantified as solar irradiation incident on the Earth's atmosphere or surface. cloudcover\t%\tTotal cloud cover as an area fraction. relativeHumidity\t%\tRelative humidity at 2 meters above ground. tip Sunrise and sunset variables are only available for daily forecast. Dew point, longwave radiation, shortwave radiation, cloud cover, soil moisture and relative humidity are only available for hourly historical. The other variables have their corresponding values in both hourly and daily. "},{"title":"Weather Endpoints","type":0,"sectionRef":"#","url":"docs/weather_endpoints","content":"","keywords":""},{"title":"About","type":1,"pageTitle":"Weather Endpoints","url":"docs/weather_endpoints#about","content":"Here we list all the available endpoints from Leaf's Weather API. For an easy way to call them, we recommend using Leaf's Postman collection. All HTTP methods should be prepended by this service's endpoint: Copy https://api.withleaf.io/services/weather/api This service has the following endpoints available: Description\tEndpointsGet Daily Forecast\tGET /users/{leafUserId}/weather/forecast/field/{fieldId}/daily Get Hourly Forecast\tGET /users/{leafUserId}/weather/forecast/field/{fieldId}/hourly Get Daily Forecast for lat/long\tGET /weather/forecast/daily/{lat},{lon} Get Hourly Forecast for lat/long\tGET /weather/forecast/hourly/{lat},{lon} Get Daily Historical\tGET /users/{leafUserId}/weather/historical/field/{fieldId}/daily Get Hourly Historical\tGET /users/{leafUserId}/weather/historical/field/{fieldId}/hourly Get Daily Historical for lat/long\tGET /weather/historical/daily/{lat},{lon} Get Hourly Historical for lat/long\tGET /weather/historical/hourly/{lat},{lon} Note Daily data endpoints are limited to a request of one year (366 days), so endTime - startTime <= 366. Hourly data endpoints are limited to an interval of 30 days per request, so endTime - startTime <= 30. "},{"title":"Endpoints","type":1,"pageTitle":"Weather Endpoints","url":"docs/weather_endpoints#endpoints","content":""},{"title":"Get Daily Forecast","type":1,"pageTitle":"Weather Endpoints","url":"docs/weather_endpoints#get-daily-forecast","content":" GET /users/{leafUserId}/weather/forecast/field/{fieldId}/daily Get daily forecasted weather data by leaf user and field. If dates are not set on the endpoint, the response will return forecast data for the next seven days by default. Parameter (to filter by)\tvaluesendTime\tLocal date. Returns operations until the endTime startTime\tLocal date. Returns operations from the startTime onward model\tWeather model data: icon, gfs, ifs, jma, gem or arpegeArome. The default is gfs units\tSystem of units: imperial or metric. The default is metric Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/forecast/field/{fieldId}/daily' Response# Copy { \"type\": \"Feature\", \"properties\": { \"maxTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 28.8 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 28.1 }, .... ], \"unit\": \"ºC\" }, \"meanSoilTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 25.3 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 25.1 }, .... ], \"unit\": \"°C\" }, \"minSoilTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 18.7 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 17.2 }, .... ], \"unit\": \"°C\" }, \"maxSoilTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 28.9 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 27.9 }, .... ], \"unit\": \"°C\" }, \"sunrise\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": \"2023-07-21T10:52\" }, { \"time\": \"2023-07-22T00:00:00\", \"value\": \"2023-07-22T10:53\" }, .... ], \"unit\": \"iso8601\" }, \"snowfallSum\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"cm\" }, \"precipitationSum\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"cm\" }, \"maxWindspeed\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 15.2 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 19.9 }, .... ], \"unit\": \"km/h\" }, \"evapotranspiration\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 3.76 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 4.93 }, .... ], \"unit\": \"mm\" }, \"processedTime\": \"2023-07-21T13:01:11.662397\", \"rainSum\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"mm\" }, \"maxWindgusts\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 27.0 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 24.1 }, .... ], \"unit\": \"km/h\" }, \"meanTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 25.0 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 23.6 }, .... ], \"unit\": \"ºC\" }, \"minTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 21.1 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 18.9 }, .... ], \"unit\": \"ºC\" }, \"sunset\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": \"2023-07-22T01:11\" }, { \"time\": \"2023-07-22T00:00:00\", \"value\": \"2023-07-23T01:10\" }, .... ], \"unit\": \"iso8601\" }, \"windDirection\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 350.0 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 332.0 }, .... ], \"unit\": \"°\" } }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ -89.64355775454169, 39.802794365611476 ] } } "},{"title":"Get Hourly Forecast","type":1,"pageTitle":"Weather Endpoints","url":"docs/weather_endpoints#get-hourly-forecast","content":" GET /users/{leafUserId}/weather/forecast/field/{fieldId}/hourly Get hourly forecasted weather data by Leaf User and field. If dates are not set on the endpoint, the response will return forecast data for the next seven days by default. Parameter (to filter by)\tvaluesendTime\tLocal date. Returns operations until the endTime startTime\tLocal date. Returns operations from the startTime onward model\tWeather model data: icon, gfs, ifs, jma, gem or arpegeArome. The default is gfs units\tSystem of units: imperial or metric. The default is metric Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/forecast/field/{fieldId}/hourly' Response# Copy { \"type\": \"Feature\", \"properties\": { \"rain\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"mm\" }, \"soilTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 28.2 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 27.9 }, .... ], \"unit\": \"°C\" }, \"soilMoisture 0-1\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.1 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.1 }, .... ], \"unit\": \"m³/m³\" }, \"soilMoisture 1-3\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.2 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.2 }, .... ], \"unit\": \"m³/m³\" }, \"soilMoisture 3-9\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.3 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.3 }, .... ], \"unit\": \"m³/m³\" }, \"soilMoisture 9-27\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.4 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.4 }, .... ], \"unit\": \"m³/m³\" }, \"soilMoisture 27-81\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.5 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.5 }, .... ], \"unit\": \"m³/m³\" }, \"longwaveRadiation\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 563.8 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 642.3 }, .... ], \"unit\": \"W/m²\" }, \"dewpoint\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 22.6 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 22.6 }, .... ], \"unit\": \"ºC\" }, \"windgusts\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 9.4 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 5.8 }, .... ], \"unit\": \"km/h\" }, \"snowfall\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"mm\" }, \"evapotranspiration\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.11 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.04 }, .... ], \"unit\": \"mm\" }, \"shortwaveRadiation\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 146.0 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 2.0 }, .... ], \"unit\": \"W/m²\" }, \"processedTime\": \"str\", \"cloudcover\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 51.0 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 100.0 }, .... ], \"unit\": \"%\" }, \"precipitation\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"mm\" }, \"relativeHumidity\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 75.0 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 80.0 }, .... ], \"unit\": \"%\" }, \"temperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 27.4 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 26.3 }, .... ], \"unit\": \"ºC\" }, \"windspeed\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 3.1 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 5.7 }, .... ], \"unit\": \"km/h\" }, \"windDirection\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 234.0 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 72.0 }, .... ], \"unit\": \"km/h\" } }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ -89.64355775454169, 39.802794365611476 ] } } "},{"title":"Get Daily Forecast for lat/lon","type":1,"pageTitle":"Weather Endpoints","url":"docs/weather_endpoints#get-daily-forecast-for-latlon","content":" GET /weather/forecast/daily/{lat},{lon} Get daily forecasted weather data for lat/lon by leaf user and field. If dates are not set on the endpoint, the response will return forecast data for the next seven days by default. Parameter (to filter by)\tvaluesendTime\tLocal date. Returns operations until the endTime startTime\tLocal date. Returns operations from the startTime onward model\tWeather model data: icon, gfs, ifs, jma, gem or arpegeArome. The default is gfs units\tSystem of units: imperial or metric. The default is metric Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/weather/api/weather/forecast/daily/{lat},{lon}' Response# Copy { \"type\": \"Feature\", \"properties\": { \"maxTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 28.8 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 28.1 }, .... ], \"unit\": \"ºC\" }, \"meanSoilTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 25.3 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 25.1 }, .... ], \"unit\": \"°C\" }, \"minSoilTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 18.7 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 17.2 }, .... ], \"unit\": \"°C\" }, \"maxSoilTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 28.9 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 27.9 }, .... ], \"unit\": \"°C\" }, \"sunrise\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": \"2023-07-21T10:52\" }, { \"time\": \"2023-07-22T00:00:00\", \"value\": \"2023-07-22T10:53\" }, .... ], \"unit\": \"iso8601\" }, \"snowfallSum\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"cm\" }, \"precipitationSum\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"cm\" }, \"maxWindspeed\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 15.2 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 19.9 }, .... ], \"unit\": \"km/h\" }, \"evapotranspiration\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 3.76 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 4.93 }, .... ], \"unit\": \"mm\" }, \"processedTime\": \"2023-07-21T13:01:11.662397\", \"rainSum\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"mm\" }, \"maxWindgusts\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 27.0 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 24.1 }, .... ], \"unit\": \"km/h\" }, \"meanTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 25.0 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 23.6 }, .... ], \"unit\": \"ºC\" }, \"minTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 21.1 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 18.9 }, .... ], \"unit\": \"ºC\" }, \"sunset\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": \"2023-07-22T01:11\" }, { \"time\": \"2023-07-22T00:00:00\", \"value\": \"2023-07-23T01:10\" }, .... ], \"unit\": \"iso8601\" }, \"windDirection\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 350.0 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 332.0 }, .... ], \"unit\": \"°\" } }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ -89.64355775454169, 39.802794365611476 ] } } "},{"title":"Get Hourly Forecast for lat/lon","type":1,"pageTitle":"Weather Endpoints","url":"docs/weather_endpoints#get-hourly-forecast-for-latlon","content":" GET /weather/forecast/hourly/{lat},{lon} Get hourly forecasted weather data for lat/lon by Leaf User and field. If dates are not set on the endpoint, the response will return forecast data for the next seven days by default. Parameter (to filter by)\tvaluesendTime\tLocal date. Returns operations until the endTime startTime\tLocal date. Returns operations from the startTime onward model\tWeather model data: icon, gfs, ifs, jma, gem or arpegeArome. The default is gfs units\tSystem of units: imperial or metric. The default is metric Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/weather/api/weather/forecast/hourly/{lat},{lon}' Response# Copy { \"type\": \"Feature\", \"properties\": { \"rain\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"mm\" }, \"soilTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 28.7 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 27.9 }, .... ], \"unit\": \"°C\" }, \"soilMoisture 0-1\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.1 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.1 }, .... ], \"unit\": \"m³/m³\" }, \"soilMoisture 1-3\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.2 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.2 }, .... ], \"unit\": \"m³/m³\" }, \"soilMoisture 3-9\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.3 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.3 }, .... ], \"unit\": \"m³/m³\" }, \"soilMoisture 9-27\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.4 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.4 }, .... ], \"unit\": \"m³/m³\" }, \"soilMoisture 27-81\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.5 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.5 }, .... ], \"unit\": \"m³/m³\" }, \"longwaveRadiation\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 563.8 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 642.3 }, .... ], \"unit\": \"W/m²\" }, \"dewpoint\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 22.6 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 22.6 }, .... ], \"unit\": \"ºC\" }, \"windgusts\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 9.4 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 5.8 }, .... ], \"unit\": \"km/h\" }, \"snowfall\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"mm\" }, \"evapotranspiration\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.11 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.04 }, .... ], \"unit\": \"mm\" }, \"shortwaveRadiation\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 146.0 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 2.0 }, .... ], \"unit\": \"W/m²\" }, \"processedTime\": \"str\", \"cloudcover\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 51.0 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 100.0 }, .... ], \"unit\": \"%\" }, \"precipitation\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"mm\" }, \"relativeHumidity\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 75.0 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 80.0 }, .... ], \"unit\": \"%\" }, \"temperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 27.4 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 26.3 }, .... ], \"unit\": \"ºC\" }, \"windspeed\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 3.1 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 5.7 }, .... ], \"unit\": \"km/h\" }, \"windDirection\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 234.0 }, { \"time\": \"2023-07-21T01:00:00\", \"value\": 72.0 }, .... ], \"unit\": \"km/h\" } }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ -89.64355775454169, 39.802794365611476 ] } } "},{"title":"Get Daily Historical","type":1,"pageTitle":"Weather Endpoints","url":"docs/weather_endpoints#get-daily-historical","content":" GET /users/{leafUserId}/weather/historical/field/{fieldId}/daily Get daily historical weather data by Leaf User and field. If the dates are not defined in the endpoint, the response will return data from the last seven days by default. Please note, historical weather data from less than 5 days ago is unavailable. If you’re wanting historical weather data within the last 5 days, you can use the forecast service to get this information. Parameter (to filter by)\tvaluesendTime\tLocal date. Returns operations until the endTime startTime\tLocal date. Returns operations from the startTime onward model\tHistorical model data: era5 or era5Land. The default is era5 units\tSystem of units: imperial or metric. The default is metric Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/historical/field/{fieldId}/daily' Response# Copy { \"type\": \"Feature\", \"properties\": { \"maxTemperature\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 31.9 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 32.0 }, .... ], \"unit\": \"ºC\" }, \"meanSoilTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 25.3 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 25.1 }, .... ], \"unit\": \"°C\" }, \"minSoilTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 18.7 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 17.2 }, .... ], \"unit\": \"°C\" }, \"maxSoilTemperature\": { \"values\": [ { \"time\": \"2023-07-21T00:00:00\", \"value\": 28.9 }, { \"time\": \"2023-07-22T00:00:00\", \"value\": 27.9 }, .... ], \"unit\": \"°C\" }, \"sunrise\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": \"2023-07-14T10:47\" }, { \"time\": \"2023-07-15T00:00:00\", \"value\": \"2023-07-15T10:48\" }, .... ], \"unit\": \"iso8601\" }, \"snowfallSum\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"cm\" }, \"precipitationSum\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.3 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 0.2 }, .... ], \"unit\": \"mm\" }, \"maxWindspeed\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 14.1 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 13.5 }, .... ], \"unit\": \"km/h\" }, \"evapotranspiration\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 4.51 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 3.62 }, .... ], \"unit\": \"mm\" }, \"processedTime\": \"2023-07-21T16:50:17.965109\", \"rainSum\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.3 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 0.2 }, .... ], \"unit\": \"mm\" }, \"maxWindgusts\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 26.3 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 25.8 }, .... ], \"unit\": \"km/h\" }, \"meanTemperature\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 28.1 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 26.8 }, .... ], \"unit\": \"ºC\" }, \"minTemperature\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 26.1 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 23.2 }, .... ], \"unit\": \"ºC\" }, \"sunset\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": \"2023-07-15T01:15\" }, { \"time\": \"2023-07-15T00:00:00\", \"value\": \"2023-07-16T01:14\" }, .... ], \"unit\": \"iso8601\" }, \"windDirection\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 206.0 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 209.0 }, .... ], \"unit\": \"°\" } }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ -89.64355775454169, 39.802794365611476 ] } } "},{"title":"Get Hourly Historical","type":1,"pageTitle":"Weather Endpoints","url":"docs/weather_endpoints#get-hourly-historical","content":" GET /users/{leafUserId}/weather/historical/field/{fieldId}/hourly Get hourly historical weather data by Leaf User and field. If the dates are not defined in the endpoint, the response will return data from the last seven days by default. Parameter (to filter by)\tvaluesendTime\tLocal date. Returns operations until the endTime startTime\tLocal date. Returns operations from the startTime onward model\tHistorical model data: era5 or era5Land. The default is era5 units\tSystem of units: imperial or metric. The default is metric Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/weather/api/users/{leafUserId}/weather/historical/field/{fieldId}/hourly' Response# Copy { \"type\": \"Feature\", \"properties\": { \"rain\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"mm\" }, \"soilMoisture 0-7\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.1 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 0.1 }, .... ], \"unit\": \"m³/m³\" }, \"soilMoisture 7-28\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.2 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 0.2 }, .... ], \"unit\": \"m³/m³\" }, \"soilMoisture 28-100\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.3 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 0.3 }, .... ], \"unit\": \"m³/m³\" }, \"soilMoisture 100-255\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.4 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 0.4 }, .... ], \"unit\": \"m³/m³\" }, \"longwaveRadiation\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 563.8 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 642.3 }, .... ], \"unit\": \"W/m²\" }, \"dewpoint\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 23.4 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 23.3 }, .... ], \"unit\": \"ºC\" }, \"windgusts\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 17.6 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 19.1 }, .... ], \"unit\": \"km/h\" }, \"snowfall\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"mm\" }, \"evapotranspiration\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.18 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 0.08 }, .... ], \"unit\": \"mm\" }, \"shortwaveRadiation\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 176.0 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 40.0 }, .... ], \"unit\": \"W/m²\" }, \"processedTime\": \"str\", \"cloudcover\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 9.0 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 5.0 }, .... ], \"unit\": \"%\" }, \"precipitation\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"mm\" }, \"soilTemperature\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 30.2 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 29.8 }, .... ], \"unit\": \"ºC\" }, \"relativeHumidity\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 61.0 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 62.0 }, .... ], \"unit\": \"%\" }, \"temperature\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 31.9 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 31.4 }, .... ], \"unit\": \"ºC\" }, \"windspeed\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 7.7 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 6.4 }, .... ], \"unit\": \"km/h\" }, \"windDirection\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 233.0 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 223.0 }, .... ], \"unit\": \"km/h\" } }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ -89.64355775454169, 39.802794365611476 ] } } "},{"title":"Get Daily Historical for lat/lon","type":1,"pageTitle":"Weather Endpoints","url":"docs/weather_endpoints#get-daily-historical-for-latlon","content":" GET /weather/historical/daily/{lat},{lon} Get daily historical weather data for lat/lon by Leaf User and field. If the dates are not defined in the endpoint, the response will return data from the last seven days by default. Please note, historical weather data from less than 5 days ago is unavailable. If you’re wanting historical weather data within the last 5 days, you can use the forecast service to get this information. Parameter (to filter by)\tvaluesendTime\tLocal date. Returns operations until the endTime startTime\tLocal date. Returns operations from the startTime onward model\tHistorical model data: era5 or era5Land. The default is era5 units\tSystem of units: imperial or metric. The default is metric Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/weather/api/weather/historical/daily/{lat},{lon}' Response# Copy { \"type\": \"Feature\", \"properties\": { \"maxTemperature\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 31.9 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 32.0 }, .... ], \"unit\": \"ºC\" }, \"meanSoilTemperature\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 25.3 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 25.1 }, .... ], \"unit\": \"°C\" }, \"minSoilTemperature\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 18.7 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 17.2 }, .... ], \"unit\": \"°C\" }, \"maxSoilTemperature\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 28.6 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 27.9 }, .... ], \"unit\": \"°C\" }, \"sunrise\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": \"2023-07-14T10:47\" }, { \"time\": \"2023-07-15T00:00:00\", \"value\": \"2023-07-15T10:48\" }, .... ], \"unit\": \"iso8601\" }, \"snowfallSum\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"cm\" }, \"precipitationSum\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.3 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 0.2 }, .... ], \"unit\": \"mm\" }, \"maxWindspeed\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 14.1 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 13.5 }, .... ], \"unit\": \"km/h\" }, \"evapotranspiration\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 4.51 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 3.62 }, .... ], \"unit\": \"mm\" }, \"processedTime\": \"2023-07-21T16:50:17.965109\", \"rainSum\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.3 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 0.2 }, .... ], \"unit\": \"mm\" }, \"maxWindgusts\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 26.3 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 25.8 }, .... ], \"unit\": \"km/h\" }, \"meanTemperature\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 28.1 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 26.8 }, .... ], \"unit\": \"ºC\" }, \"minTemperature\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 26.1 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 23.2 }, .... ], \"unit\": \"ºC\" }, \"sunset\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": \"2023-07-15T01:15\" }, { \"time\": \"2023-07-15T00:00:00\", \"value\": \"2023-07-16T01:14\" }, .... ], \"unit\": \"iso8601\" }, \"windDirection\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 206.0 }, { \"time\": \"2023-07-15T00:00:00\", \"value\": 209.0 }, .... ], \"unit\": \"°\" } }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ -89.64355775454169, 39.802794365611476 ] } } "},{"title":"Get Hourly Historical for lat/lon","type":1,"pageTitle":"Weather Endpoints","url":"docs/weather_endpoints#get-hourly-historical-for-latlon","content":" GET /weather/historical/hourly/{lat},{lon} Get hourly historical weather data for lat/lon by Leaf User and field. If the dates are not defined in the endpoint, the response will return data from the last seven days by default. Parameter (to filter by)\tvaluesendTime\tLocal date. Returns operations until the endTime startTime\tLocal date. Returns operations from the startTime onward model\tHistorical model data: era5 or era5Land. The default is era5 units\tSystem of units: imperial or metric. The default is metric Request examples# cURLPythonJavaScript Copy curl -X GET \\ -H 'Authorization: Bearer YOUR_TOKEN' \\ 'https://api.withleaf.io/services/weather/api/weather/historical/hourly/{lat},{lon}' Response# Copy { \"type\": \"Feature\", \"properties\": { \"rain\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"mm\" }, \"soilMoisture 0-7\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.1 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 0.1 }, .... ], \"unit\": \"m³/m³\" }, \"soilMoisture 7-28\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.2 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 0.2 }, .... ], \"unit\": \"m³/m³\" }, \"soilMoisture 28-100\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.3 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 0.3 }, .... ], \"unit\": \"m³/m³\" }, \"soilMoisture 100-255\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.4 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 0.4 }, .... ], \"unit\": \"m³/m³\" }, \"longwaveRadiation\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 563.8 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 642.3 }, .... ], \"unit\": \"W/m²\" }, \"dewpoint\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 23.4 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 23.3 }, .... ], \"unit\": \"ºC\" }, \"windgusts\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 17.6 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 19.1 }, .... ], \"unit\": \"km/h\" }, \"snowfall\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"mm\" }, \"evapotranspiration\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.18 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 0.08 }, .... ], \"unit\": \"mm\" }, \"shortwaveRadiation\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 176.0 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 40.0 }, .... ], \"unit\": \"W/m²\" }, \"processedTime\": \"str\", \"cloudcover\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 9.0 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 5.0 }, .... ], \"unit\": \"%\" }, \"precipitation\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 0.0 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 0.0 }, .... ], \"unit\": \"mm\" }, \"soilTemperature\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 30.2 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 29.8 }, .... ], \"unit\": \"ºC\" }, \"relativeHumidity\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 61.0 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 62.0 }, .... ], \"unit\": \"%\" }, \"temperature\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 31.9 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 31.4 }, .... ], \"unit\": \"ºC\" }, \"windspeed\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 7.7 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 6.4 }, .... ], \"unit\": \"km/h\" }, \"windDirection\": { \"values\": [ { \"time\": \"2023-07-14T00:00:00\", \"value\": 233.0 }, { \"time\": \"2023-07-14T01:00:00\", \"value\": 223.0 }, .... ], \"unit\": \"km/h\" } }, \"geometry\": { \"type\": \"Point\", \"coordinates\": [ -89.64355775454169, 39.802794365611476 ] } } Warning If there is no data available at that time/day, the property will be returned as null. "}] \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 000000000..aa0513d37 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://leaf-devops.s3.us-west-2.amazonaws.com/docs/weekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/blogweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/blog/tagsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/blog/tags/rick-rollweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/blog/Welcomeweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/curiousweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/weekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/alerts_authenticationweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/alerts_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/alerts_eventsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/alerts_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/authenticationweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/beta_assets_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/beta_features_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/beta_input_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/beta_layers_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/beta_machines_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/beta_prescriptions_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/configurations_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/configurations_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/connectweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/converters_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/converters_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/credentials_agleaderweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/credentials_agvanceweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/credentials_cfvweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/credentials_cnhiweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/credentials_john_deereweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/credentials_ravenweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/credentials_raven_slingshotweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/credentials_senteraweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/credentials_staraweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/credentials_trimbleweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/crop_monitoring_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/crop_monitoring_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/crop_monitoring_planet_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/crop_monitoring_sentinel_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/cropsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/field_boundaries_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/field_boundaries_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/field_boundary_management_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/field_boundary_management_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/files_crops_tableweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/files_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/files_imagesweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/files_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/files_postmanweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/files_sample_outputweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/glossaryweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/glossary(unused)weekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/integrations_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/introductionweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/Link_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/Link_file_uploadweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/Link_provider_connectionweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/machine_file_conversion_crops_tableweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/machine_file_conversion_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/machine_file_conversion_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/machine_file_conversion_sample_outputweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/machine_file_conversion_unitsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/Magic_link_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/Magic_link_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/operations_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/operations_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/operations_sample_outputweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/planet_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/provider_organizationsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/provider-authentication-overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/quickstartweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/release_notesweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/satellite_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/satellite_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/sentinel_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/setup_informationweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/sharedataweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/usecase_johndeere_productsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/usecase_satelliteweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/usecase_uploadweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/user_management_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/user_management_overviewweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/weather_endpointsweekly0.5https://leaf-devops.s3.us-west-2.amazonaws.com/docs/docs/weather_overviewweekly0.5 \ No newline at end of file diff --git a/styles.41499034.js b/styles.41499034.js new file mode 100644 index 000000000..8b49587ca --- /dev/null +++ b/styles.41499034.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{127:function(e,n,o){e.exports={heroBanner:"heroBanner_2Ftp",buttons:"buttons_1Wc3",features:"features_P2SU",featureImage:"featureImage_3Xqx"}},15:function(e,n,o){},40:function(e,n,o){},44:function(e,n,o){},45:function(e,n,o){},48:function(e,n,o){e.exports={tabItem:"tabItem_1w39"}},49:function(e,n,o){e.exports={blogPostTitle:"blogPostTitle_1mse",blogPostDate:"blogPostDate_3bQP"}},50:function(e,n,o){e.exports={announcementBar:"announcementBar_1l0Z",announcementBarClose:"announcementBarClose_21wD",announcementBarContent:"announcementBarContent_1xni"}},51:function(e,n,o){e.exports={toggle:"toggle_BsTx"}},52:function(e,n,o){e.exports={displayOnlyInLargeViewport:"displayOnlyInLargeViewport_2aTZ",hideLogoText:"hideLogoText_GP-Q",navbarHideable:"navbarHideable_3046",navbarHidden:"navbarHidden_1Uo_"}},53:function(e,n,o){e.exports={footerLogoLink:"footerLogoLink_1zJy"}},54:function(e,n,o){},65:function(e,n,o){e.exports={docTitle:"docTitle_1Lrw",docItemContainer:"docItemContainer_3QWW",docItemCol:"docItemCol_2ASc",docItemWrapper:"docItemWrapper_1EkI",tableOfContents:"tableOfContents_3klQ",docLastUpdatedAt:"docLastUpdatedAt_217_"}},67:function(e,n,o){e.exports={sidebar:"sidebar_2urC",sidebarWithHideableNavbar:"sidebarWithHideableNavbar_2IoJ",sidebarLogo:"sidebarLogo_Snse",menu:"menu_5FrY",menuLinkText:"menuLinkText_2zSB",menuWithAnnouncementBar:"menuWithAnnouncementBar_18ic",sidebarMenuIcon:"sidebarMenuIcon_Dm3K",sidebarMenuCloseIcon:"sidebarMenuCloseIcon_hir9"}},68:function(e,n,o){e.exports={codeBlockContent:"codeBlockContent_1u-d",codeBlockTitle:"codeBlockTitle_3nn1",codeBlock:"codeBlock_3iAC",codeBlockWithTitle:"codeBlockWithTitle_3QsD",copyButton:"copyButton_10dd",codeBlockLines:"codeBlockLines_b7E3"}},69:function(e,n,o){},70:function(e,n,o){e.exports={enhancedAnchor:"enhancedAnchor_2cZh"}},71:function(e,n,o){e.exports={mdxCodeBlock:"mdxCodeBlock_1XEh"}},72:function(e,n,o){e.exports={docPage:"docPage_2gpo",docSidebarContainer:"docSidebarContainer_3_JD",docMainContainer:"docMainContainer_3EyW"}}}]); \ No newline at end of file diff --git a/styles.70498a45.css b/styles.70498a45.css new file mode 100644 index 000000000..59210746a --- /dev/null +++ b/styles.70498a45.css @@ -0,0 +1 @@ +:root{--ra-admonition-background-color:var(--ifm-alert-background-color);--ra-admonition-border-width:var(--ifm-alert-border-width);--ra-admonition-border-color:var(--ifm-alert-border-color);--ra-admonition-border-radius:var(--ifm-alert-border-radius);--ra-admonition-color:var(--ifm-alert-color);--ra-admonition-padding-vertical:var(--ifm-alert-padding-vertical);--ra-admonition-padding-horizontal:var(--ifm-alert-padding-horizontal);--ra-color-note:var(--ifm-color-secondary);--ra-color-important:var(--ifm-color-info);--ra-color-tip:var(--ifm-color-success);--ra-color-caution:var(--ifm-color-warning);--ra-color-warning:var(--ifm-color-danger);--ra-color-text-dark:var(--ifm-color-gray-900)}.admonition{margin-bottom:1em}.admonition:not(.alert){background-color:var(--ifm-alert-background-color);background-color:var(--ra-admonition-background-color);border:var(--ra-admonition-border-width) solid var(--ra-admonition-border-color);border-radius:var(--ifm-alert-border-radius);border-radius:var(--ra-admonition-border-radius);box-sizing:border-box;color:var(--ifm-alert-color);color:var(--ra-admonition-color);padding:var(--ra-admonition-padding-vertical) var(--ra-admonition-padding-horizontal);--ra-admonition-background-color:var(--ifm-color-primary)}.admonition h5{margin-top:0;margin-bottom:8px;text-transform:uppercase}.admonition-icon{display:inline-block;vertical-align:middle;margin-right:.2em}.admonition-icon svg{display:inline-block;width:22px;height:22px;stroke-width:0;fill:var(--ra-admonition-icon-color);stroke:var(--ra-admonition-icon-color)}.admonition-content>:last-child{margin-bottom:0}.admonition{--ra-admonition-icon-color:var(--ra-admonition-color)}.admonition-note{--ra-admonition-color:var(--ra-color-text-dark)}:root{--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-color-primary:#3578e5;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-secondary:#ebedf0;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-success:#00a400;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-info:#54c7ec;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-warning:#ffba00;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-danger:#fa383e;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#606770;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:rgba(0,0,0,0.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,0.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,0.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,0.2),0 2px 4px 0 rgba(0,0,0,0.1);--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400}*,html{box-sizing:border-box}html{background-color:transparent;background-color:var(--ifm-background-color);color:#1c1e21;color:var(--ifm-font-color-base);line-height:1.65;line-height:var(--ifm-line-height-base);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,Helvetica,Arial,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-family:var(--ifm-font-family-base);font-size:100%;font-size:var(--ifm-font-size-base);text-rendering:optimizelegibility;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{word-wrap:break-word}:root{--ifm-container-width:1140px}.container{margin-left:auto;margin-right:auto;max-width:1140px;max-width:var(--ifm-container-width);padding-left:1rem;padding-left:var(--ifm-spacing-horizontal);padding-right:1rem;padding-right:var(--ifm-spacing-horizontal);width:100%}.container--fluid{max-width:inherit}.row{display:flex;flex-direction:row;flex-wrap:wrap;margin-left:-1rem;margin-left:calc(var(--ifm-spacing-horizontal)*-1);margin-right:-1rem;margin-right:calc(var(--ifm-spacing-horizontal)*-1)}.row--no-gutters{margin-left:0;margin-right:0}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.row .col{--ifm-col-width:100%;display:block;flex:1 0;margin-left:0;max-width:100%;padding-left:1rem;padding-left:var(--ifm-spacing-horizontal);padding-right:1rem;padding-right:var(--ifm-spacing-horizontal);width:100%}.row .col[class*=col--]{flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}@media (max-width:996px){.row .col.col.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0;max-width:var(--ifm-col-width)}}.row .col.col--1{--ifm-col-width:8.33333%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-1{margin-left:8.33333%}.row .col.col--2{--ifm-col-width:16.66667%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-2{margin-left:16.66667%}.row .col.col--3{--ifm-col-width:25%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-3{margin-left:25%}.row .col.col--4{--ifm-col-width:33.33333%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-4{margin-left:33.33333%}.row .col.col--5{--ifm-col-width:41.66667%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-5{margin-left:41.66667%}.row .col.col--6{--ifm-col-width:50%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-6{margin-left:50%}.row .col.col--7{--ifm-col-width:58.33333%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-7{margin-left:58.33333%}.row .col.col--8{--ifm-col-width:66.66667%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-8{margin-left:66.66667%}.row .col.col--9{--ifm-col-width:75%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-9{margin-left:75%}.row .col.col--10{--ifm-col-width:83.33333%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-10{margin-left:83.33333%}.row .col.col--11{--ifm-col-width:91.66667%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-11{margin-left:91.66667%}.row .col.col--12{--ifm-col-width:100%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-12{margin-left:100%}.margin--none{margin:0!important}.margin-top--none{margin-top:0!important}.margin-left--none{margin-left:0!important}.margin-bottom--none{margin-bottom:0!important}.margin-right--none{margin-right:0!important}.margin-vert--none{margin-bottom:0!important;margin-top:0!important}.margin-horiz--none{margin-left:0!important;margin-right:0!important}.margin--xs{margin:.25rem!important}.margin-top--xs{margin-top:.25rem!important}.margin-left--xs{margin-left:.25rem!important}.margin-bottom--xs{margin-bottom:.25rem!important}.margin-right--xs{margin-right:.25rem!important}.margin-vert--xs{margin-bottom:.25rem!important;margin-top:.25rem!important}.margin-horiz--xs{margin-left:.25rem!important;margin-right:.25rem!important}.margin--sm{margin:.5rem!important}.margin-top--sm{margin-top:.5rem!important}.margin-left--sm{margin-left:.5rem!important}.margin-bottom--sm{margin-bottom:.5rem!important}.margin-right--sm{margin-right:.5rem!important}.margin-vert--sm{margin-bottom:.5rem!important;margin-top:.5rem!important}.margin-horiz--sm{margin-left:.5rem!important;margin-right:.5rem!important}.margin--md{margin:1rem!important}.margin-top--md{margin-top:1rem!important}.margin-left--md{margin-left:1rem!important}.margin-bottom--md{margin-bottom:1rem!important}.margin-right--md{margin-right:1rem!important}.margin-vert--md{margin-bottom:1rem!important;margin-top:1rem!important}.margin-horiz--md{margin-left:1rem!important;margin-right:1rem!important}.margin--lg{margin:2rem!important}.margin-top--lg{margin-top:2rem!important}.margin-left--lg{margin-left:2rem!important}.margin-bottom--lg{margin-bottom:2rem!important}.margin-right--lg{margin-right:2rem!important}.margin-vert--lg{margin-bottom:2rem!important;margin-top:2rem!important}.margin-horiz--lg{margin-left:2rem!important;margin-right:2rem!important}.margin--xl{margin:5rem!important}.margin-top--xl{margin-top:5rem!important}.margin-left--xl{margin-left:5rem!important}.margin-bottom--xl{margin-bottom:5rem!important}.margin-right--xl{margin-right:5rem!important}.margin-vert--xl{margin-bottom:5rem!important;margin-top:5rem!important}.margin-horiz--xl{margin-left:5rem!important;margin-right:5rem!important}.padding--none{padding:0!important}.padding-top--none{padding-top:0!important}.padding-left--none{padding-left:0!important}.padding-bottom--none{padding-bottom:0!important}.padding-right--none{padding-right:0!important}.padding-vert--none{padding-bottom:0!important;padding-top:0!important}.padding-horiz--none{padding-left:0!important;padding-right:0!important}.padding--xs{padding:.25rem!important}.padding-top--xs{padding-top:.25rem!important}.padding-left--xs{padding-left:.25rem!important}.padding-bottom--xs{padding-bottom:.25rem!important}.padding-right--xs{padding-right:.25rem!important}.padding-vert--xs{padding-bottom:.25rem!important;padding-top:.25rem!important}.padding-horiz--xs{padding-left:.25rem!important;padding-right:.25rem!important}.padding--sm{padding:.5rem!important}.padding-top--sm{padding-top:.5rem!important}.padding-left--sm{padding-left:.5rem!important}.padding-bottom--sm{padding-bottom:.5rem!important}.padding-right--sm{padding-right:.5rem!important}.padding-vert--sm{padding-bottom:.5rem!important;padding-top:.5rem!important}.padding-horiz--sm{padding-left:.5rem!important;padding-right:.5rem!important}.padding--md{padding:1rem!important}.padding-top--md{padding-top:1rem!important}.padding-left--md{padding-left:1rem!important}.padding-bottom--md{padding-bottom:1rem!important}.padding-right--md{padding-right:1rem!important}.padding-vert--md{padding-bottom:1rem!important;padding-top:1rem!important}.padding-horiz--md{padding-left:1rem!important;padding-right:1rem!important}.padding--lg{padding:2rem!important}.padding-top--lg{padding-top:2rem!important}.padding-left--lg{padding-left:2rem!important}.padding-bottom--lg{padding-bottom:2rem!important}.padding-right--lg{padding-right:2rem!important}.padding-vert--lg{padding-bottom:2rem!important;padding-top:2rem!important}.padding-horiz--lg{padding-left:2rem!important;padding-right:2rem!important}.padding--xl{padding:5rem!important}.padding-top--xl{padding-top:5rem!important}.padding-left--xl{padding-left:5rem!important}.padding-bottom--xl{padding-bottom:5rem!important}.padding-right--xl{padding-right:5rem!important}.padding-vert--xl{padding-bottom:5rem!important;padding-top:5rem!important}.padding-horiz--xl{padding-left:5rem!important;padding-right:5rem!important}:root{--ifm-code-background:var(--ifm-color-emphasis-200);--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-color:var(--ifm-color-emphasis-900);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.4rem;--ifm-code-padding-vertical:0.2rem;--ifm-pre-background:var(--ifm-color-emphasis-100);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem}code{background-color:#ebedf0;background-color:var(--ifm-code-background);border-radius:.4rem;border-radius:var(--ifm-code-border-radius);color:#1c1e21;color:var(--ifm-code-color);font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-family:var(--ifm-font-family-monospace);font-size:90%;font-size:var(--ifm-code-font-size);margin:0;padding:.2rem .4rem;padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:#f5f6f7;background-color:var(--ifm-pre-background);border-radius:.4rem;border-radius:var(--ifm-pre-border-radius);color:inherit;color:var(--ifm-pre-color);font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-family:var(--ifm-font-family-monospace);font-size:90%;font-size:var(--ifm-code-font-size);line-height:1.45;line-height:var(--ifm-pre-line-height);margin-bottom:1rem;margin-bottom:var(--ifm-spacing-vertical);margin-top:0;overflow:auto;padding:1rem;padding:var(--ifm-pre-padding)}pre,pre code{word-wrap:normal}pre code{background-color:transparent;border:0;display:inline;font-size:100%;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0;white-space:pre;word-break:normal}kbd{background-color:#fff;background-color:var(--ifm-color-emphasis-0);border:1px solid #ccd0d5;border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 #ccd0d5;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:#444950;color:var(--ifm-color-emphasis-800);font:80% SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}:root{--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:inherit;--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem}h1,h2,h3,h4,h5,h6{color:inherit;color:var(--ifm-heading-color);font-weight:700;font-weight:var(--ifm-heading-font-weight);line-height:1.25;line-height:var(--ifm-heading-line-height);margin-bottom:1rem;margin-bottom:var(--ifm-heading-margin-bottom);margin-top:0;margin-top:var(--ifm-heading-margin-top)}h1{font-size:2rem;font-size:var(--ifm-h1-font-size)}h2{font-size:1.5rem;font-size:var(--ifm-h2-font-size)}h3{font-size:1.25rem;font-size:var(--ifm-h3-font-size)}h4{font-size:1rem;font-size:var(--ifm-h4-font-size)}h5{font-size:.875rem;font-size:var(--ifm-h5-font-size)}h6{font-size:.85rem;font-size:var(--ifm-h6-font-size)}:root{--ifm-image-alignment-padding:1.25rem}img{border-style:none;box-sizing:content-box;max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}:root{--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown>:first-child{margin-top:0!important}.markdown>:last-child{margin-bottom:0!important}.markdown>h1{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h1-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h2,.markdown>h3{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:1.25rem;margin-bottom:var(--ifm-leading)}.markdown li{word-wrap:break-all}.markdown li>p{margin-top:1rem;margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:.25rem;margin-top:var(--ifm-list-item-margin)}:root{--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem}ol,ul{margin-bottom:1rem;margin-bottom:var(--ifm-list-margin);margin-top:0;padding-left:2rem;padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol,ol ul,ul ol,ul ul{margin-bottom:0;margin-top:0}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}:root{--ifm-table-cell-padding:0.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:var(--ifm-color-emphasis-100);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit}table{border-collapse:collapse;border-spacing:0;display:block;margin-bottom:1rem;margin-bottom:var(--ifm-spacing-vertical);margin-top:0;overflow:auto;width:100%}table tr{background-color:transparent;background-color:var(--ifm-table-background);border-top:1px solid #dadde1;border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table tr:nth-child(2n){background-color:#f5f6f7;background-color:var(--ifm-table-stripe-background)}table td,table th{border:1px solid #dadde1;border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:.75rem;padding:var(--ifm-table-cell-padding)}table th{background-color:inherit;background-color:var(--ifm-table-head-background);color:inherit;color:var(--ifm-table-head-color);font-weight:700;font-weight:var(--ifm-table-head-font-weight)}table td{color:inherit;color:var(--ifm-table-cell-color)}:root{--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-color:#6a737d;--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-padding-horizontal:1rem;--ifm-blockquote-padding-vertical:1rem;--ifm-hr-border-color:var(--ifm-color-emphasis-500);--ifm-hr-border-width:1px;--ifm-hr-margin-vertical:1.5rem}strong{font-weight:700;font-weight:var(--ifm-font-weight-bold)}a{color:#3578e5;color:var(--ifm-link-color);-webkit-text-decoration:none;-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:none;text-decoration:var(--ifm-link-decoration)}a:hover{color:#3578e5;color:var(--ifm-link-hover-color);-webkit-text-decoration:underline;-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:underline;text-decoration:var(--ifm-link-hover-decoration)}a:active,a:hover{outline-width:0}a:not([href]){text-decoration:none}p{margin-top:0;margin-bottom:1.25rem;margin-bottom:var(--ifm-paragraph-margin-bottom)}blockquote{border-left:6px solid #dadde1;border-left:6px solid var(--ifm-color-emphasis-300);color:#6a737d;color:var(--ifm-blockquote-color);font-size:100%;font-size:var(--ifm-blockquote-font-size);margin:0 0 1rem;margin-bottom:var(--ifm-spacing-vertical);padding:1rem;padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{border-color:#bec3c9;border-width:1px;border:var(--ifm-hr-border-width) solid var(--ifm-hr-border-color);box-sizing:content-box;margin:1.5rem 0;margin:var(--ifm-hr-margin-vertical) 0;overflow:hidden;padding:0}hr:after,hr:before{content:"";display:table}hr:after{clear:both}:root{--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:var(--ifm-global-border-width);--ifm-alert-color:var(--ifm-font-color-base-inverse);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical)}.alert{background-color:inherit;background-color:var(--ifm-alert-background-color);border-color:inherit;border-width:1px;border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-radius:.4rem;border-radius:var(--ifm-alert-border-radius);box-sizing:border-box;color:#fff;color:var(--ifm-alert-color);padding:1rem;padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary);--ifm-alert-border-color:var(--ifm-color-primary)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary);--ifm-alert-border-color:var(--ifm-color-secondary)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success);--ifm-alert-border-color:var(--ifm-color-success)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info);--ifm-alert-border-color:var(--ifm-color-info)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning);--ifm-alert-border-color:var(--ifm-color-warning)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger);--ifm-alert-border-color:var(--ifm-color-danger)}.alert a{color:#fff;color:var(--ifm-alert-color);text-decoration:underline}.alert--secondary{--ifm-alert-color:var(--ifm-color-gray-900)}.alert .close{margin-right:-1rem;margin-right:calc(var(--ifm-alert-padding-horizontal)*-1);margin-top:-1rem;margin-top:calc(var(--ifm-alert-padding-vertical)*-1)}:root{--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size-sm:2rem;--ifm-avatar-photo-size-md:3rem;--ifm-avatar-photo-size-lg:4rem;--ifm-avatar-photo-size-xl:6rem}.avatar{display:flex}.avatar__photo-link{display:block}.avatar__photo{overflow:hidden;border-radius:50%;height:3rem;height:var(--ifm-avatar-photo-size-md);width:3rem;width:var(--ifm-avatar-photo-size-md)}.avatar__photo--sm{height:2rem;height:var(--ifm-avatar-photo-size-sm);width:2rem;width:var(--ifm-avatar-photo-size-sm)}.avatar__photo--lg{height:4rem;height:var(--ifm-avatar-photo-size-lg);width:4rem;width:var(--ifm-avatar-photo-size-lg)}.avatar__photo--xl{height:6rem;height:var(--ifm-avatar-photo-size-xl);width:6rem;width:var(--ifm-avatar-photo-size-xl)}.avatar__photo+.avatar__intro{margin-left:1rem;margin-left:var(--ifm-avatar-intro-margin)}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:inherit;text-align:var(--ifm-avatar-intro-alignment)}.avatar__name{margin:0}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.avatar--vertical .avatar__intro{margin-left:0}:root{--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25)}.badge{background-color:inherit;background-color:var(--ifm-badge-background-color);border-color:inherit;border-width:1px;border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:.4rem;border-radius:var(--ifm-badge-border-radius);box-sizing:border-box;color:#fff;color:var(--ifm-badge-color);display:inline-block;font-size:75%;font-weight:700;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:.25rem .5rem;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal);vertical-align:baseline}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--primary,.badge--secondary{--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info,.badge--success{--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.badge--secondary{color:#000;color:var(--ifm-color-black)}:root{--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.0625rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:1rem;--ifm-breadcrumb-padding-vertical:0.5rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item{display:inline-block;list-style-type:none}.breadcrumbs__item:not(:first-child){margin-left:.0625rem;margin-left:var(--ifm-breadcrumb-spacing)}.breadcrumbs__item:not(:last-child){margin-right:.0625rem;margin-right:var(--ifm-breadcrumb-spacing)}.breadcrumbs__item:not(:last-child):after{background-image:url('data:image/svg+xml;utf8,');background-image:var(--ifm-breadcrumb-separator);background-position:50%;content:" ";display:inline-block;height:.625rem;height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 .5rem;opacity:.5;width:.625rem;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:rgba(0,0,0,.05);background:var(--ifm-breadcrumb-item-background-active);color:#3578e5;color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__item:not(.breadcrumbs__item--active):hover .breadcrumbs__link{background:rgba(0,0,0,.05);background:var(--ifm-breadcrumb-item-background-active);transition:background .2s cubic-bezier(.08,.52,.52,1);transition:background var(--ifm-transition-fast) cubic-bezier(.08,.52,.52,1)}.breadcrumbs__link{border-radius:1.5rem;border-radius:var(--ifm-breadcrumb-border-radius);color:#1c1e21;color:var(--ifm-font-color-base);display:inline-block;font-size:1rem;font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:.5rem 1rem;padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier))}.breadcrumbs__link:hover{text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}:root{--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-color:var(--ifm-font-color-base-inverse);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier))}.button{-webkit-appearance:none;appearance:none;background-color:inherit;background-color:var(--ifm-button-background-color);border-color:inherit;border-width:1px;border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:.4rem;border-radius:var(--ifm-button-border-radius);box-sizing:border-box;cursor:pointer;display:inline-block;font-size:.875rem;font-size:calc(0.875rem*var(--ifm-button-size-multiplier));font-weight:700;font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:.375rem 1.5rem;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition:color .2s cubic-bezier(.08,.52,.52,1),background .2s cubic-bezier(.08,.52,.52,1),border-color .2s cubic-bezier(.08,.52,.52,1);transition:color var(--ifm-button-transition-duration) cubic-bezier(.08,.52,.52,1),background var(--ifm-button-transition-duration) cubic-bezier(.08,.52,.52,1),border-color var(--ifm-button-transition-duration) cubic-bezier(.08,.52,.52,1);-webkit-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.button,.button:hover{color:#fff;color:var(--ifm-button-color);outline:0;text-decoration:none}.button:focus{outline:0}.button--outline{--ifm-button-background-color:transparent;--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--outline.button--active,.button--outline:active,.button--outline:hover{--ifm-button-color:var(--ifm-font-color-base-inverse)}.button--link{--ifm-button-background-color:transparent;--ifm-button-border-color:transparent;color:#3578e5;color:var(--ifm-link-color);-webkit-text-decoration:none;-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:none;text-decoration:var(--ifm-link-decoration)}.button--link..button--active,.button--link:active,.button--link:hover{color:#3578e5;color:var(--ifm-link-hover-color);-webkit-text-decoration:underline;-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:underline;text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:#1c1e21;color:var(--ifm-color-gray-900)}.button.button--secondary.button--outline:not(.button--active):not(:hover){color:#1c1e21;color:var(--ifm-font-color-base)}.button--primary{--ifm-button-border-color:var(--ifm-color-primary)}.button--primary:not(.button--outline){--ifm-button-background-color:var(--ifm-color-primary)}.button--primary:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-border-color:var(--ifm-color-primary-darker);--ifm-button-background-color:var(--ifm-color-primary-darker);background-color:#2d66c3;background-color:var(--ifm-color-primary-darker);border-color:#2d66c3;border-color:var(--ifm-color-primary-darker)}.button--secondary{--ifm-button-border-color:var(--ifm-color-secondary)}.button--secondary:not(.button--outline){--ifm-button-background-color:var(--ifm-color-secondary)}.button--secondary:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-border-color:var(--ifm-color-secondary-darker);--ifm-button-background-color:var(--ifm-color-secondary-darker);background-color:#c8c9cc;background-color:var(--ifm-color-secondary-darker);border-color:#c8c9cc;border-color:var(--ifm-color-secondary-darker)}.button--success{--ifm-button-border-color:var(--ifm-color-success)}.button--success:not(.button--outline){--ifm-button-background-color:var(--ifm-color-success)}.button--success:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-border-color:var(--ifm-color-success-darker);--ifm-button-background-color:var(--ifm-color-success-darker);background-color:#008b00;background-color:var(--ifm-color-success-darker);border-color:#008b00;border-color:var(--ifm-color-success-darker)}.button--info{--ifm-button-border-color:var(--ifm-color-info)}.button--info:not(.button--outline){--ifm-button-background-color:var(--ifm-color-info)}.button--info:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-border-color:var(--ifm-color-info-darker);--ifm-button-background-color:var(--ifm-color-info-darker);background-color:#47a9c9;background-color:var(--ifm-color-info-darker);border-color:#47a9c9;border-color:var(--ifm-color-info-darker)}.button--warning{--ifm-button-border-color:var(--ifm-color-warning)}.button--warning:not(.button--outline){--ifm-button-background-color:var(--ifm-color-warning)}.button--warning:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-border-color:var(--ifm-color-warning-darker);--ifm-button-background-color:var(--ifm-color-warning-darker);background-color:#d99e00;background-color:var(--ifm-color-warning-darker);border-color:#d99e00;border-color:var(--ifm-color-warning-darker)}.button--danger{--ifm-button-border-color:var(--ifm-color-danger)}.button--danger:not(.button--outline){--ifm-button-background-color:var(--ifm-color-danger)}.button--danger:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-border-color:var(--ifm-color-danger-darker);--ifm-button-background-color:var(--ifm-color-danger-darker);background-color:#d53035;background-color:var(--ifm-color-danger-darker);border-color:#d53035;border-color:var(--ifm-color-danger-darker)}:root{--ifm-button-group-margin:2px}.button-group{display:inline-flex}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:2px;margin-left:var(--ifm-button-group-margin)}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group>.button--active{z-index:1}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}:root{--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing)}.card{background-color:#fff;background-color:var(--ifm-card-background-color);border-radius:.8rem;border-radius:var(--ifm-card-border-radius);box-shadow:0 1px 2px 0 rgba(0,0,0,.1);box-shadow:var(--ifm-global-shadow-lw);overflow:hidden;display:flex;flex-direction:column}.card--full-height{height:100%}.card__image{padding-top:1rem;padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:1rem;padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}:root{--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-left:0.5rem;--ifm-toc-padding-vertical:0.5rem}.table-of-contents{font-size:.8rem;margin-bottom:0;padding-bottom:.5rem;padding-bottom:var(--ifm-toc-padding-vertical);padding-top:.5rem;padding-top:var(--ifm-toc-padding-vertical)}.table-of-contents,.table-of-contents ul{list-style-type:none;padding-left:.5rem;padding-left:var(--ifm-toc-padding-left)}.table-of-contents li{margin:.5rem;margin:var(--ifm-toc-padding-vertical)}.table-of-contents__left-border{border-left:1px solid #dadde1;border-left-color:var(--ifm-toc-border-color)}.table-of-contents__link{color:#606770;color:var(--ifm-toc-link-color)}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:#3578e5;color:var(--ifm-color-primary);text-decoration:none}.close{-webkit-appearance:none;appearance:none;background:none;border:none;color:#000;color:var(--ifm-color-black);cursor:pointer;float:right;font-size:1.5rem;font-weight:700;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;outline:0;padding:1rem}.close:hover{opacity:.7}.close:focus{opacity:.8}:root{--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay)}.dropdown{display:inline-flex;font-weight:500;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{display:block}.dropdown--right .dropdown__menu{right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:#fff;background-color:var(--ifm-dropdown-background-color);border-radius:.4rem;border-radius:var(--ifm-global-radius);box-shadow:0 5px 40px rgba(0,0,0,.2);box-shadow:var(--ifm-global-shadow-md);display:none;min-width:10rem;list-style:none;padding:.5rem;position:absolute;top:100%;z-index:100;z-index:var(--ifm-z-index-dropdown)}.dropdown__link{border-radius:.375rem;color:#1c1e21;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;padding:.375rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:rgba(0,0,0,.05);background-color:var(--ifm-dropdown-hover-background-color);text-decoration:none;color:#1c1e21;color:var(--ifm-dropdown-link-color)}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentColor;border-top:.4em solid;border-right:.4em solid transparent;border-bottom:0;border-left:.4em solid transparent;content:"";display:inline-block;margin-left:.3em;vertical-align:.15em}:root{--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit}.footer{background-color:#f5f6f7;background-color:var(--ifm-footer-background-color);color:inherit;color:var(--ifm-footer-color);padding:2rem;padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal);width:100%}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:#606770;color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:#3578e5;color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin-left:.5rem;margin-left:var(--ifm-footer-link-horizontal-spacing);margin-right:.5rem;margin-right:var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:10rem}.footer__title{color:inherit;color:var(--ifm-footer-title-color)}.footer__item{margin-top:0}.footer__items{list-style-type:none;margin-bottom:0;padding-left:0}@media (max-width:996px){.footer{--ifm-footer-padding-horizontal:0}.footer__link-separator{display:none}.footer__col{margin-bottom:3rem;margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}}[type=checkbox]{padding:0}:root{--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800)}.hero{align-items:center;background-color:#fff;background-color:var(--ifm-hero-background-color);color:#444950;color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}@media (max-width:996px){.hero{padding-left:0;padding-right:0}}:root{--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:1rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,')}.menu{font-weight:500;font-weight:var(--ifm-font-weight-semibold);overflow-x:hidden}.menu__list{margin:0;list-style-type:none;padding-left:0;transition:height .2s cubic-bezier(.08,.52,.52,1);transition:height var(--ifm-transition-fast) cubic-bezier(.08,.52,.52,1)}.menu__list .menu__list{margin-left:1rem;margin-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item{margin-bottom:.25rem;margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.menu__list-item--collapsed .menu__link--sublist:after{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.menu__link{border-radius:.25rem;color:#606770;color:var(--ifm-menu-color);cursor:pointer;display:flex;line-height:20px;justify-content:space-between;margin:0;padding:.375rem 1rem;padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__link:hover{text-decoration:none}.menu__link--sublist:after{background-image:url('data:image/svg+xml;utf8,');background-image:var(--ifm-menu-link-sublist-icon);background-size:2rem 2rem;background-position:50%;content:" ";display:inline-block;height:1.25rem;width:1.25rem;transition:-webkit-transform .2s linear;transition:transform .2s linear;transition:transform .2s linear,-webkit-transform .2s linear;transition:-webkit-transform var(--ifm-transition-fast) linear;transition:transform var(--ifm-transition-fast) linear;transition:transform var(--ifm-transition-fast) linear,-webkit-transform var(--ifm-transition-fast) linear;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.menu__link:hover{background:rgba(0,0,0,.05);background:var(--ifm-menu-color-background-hover);color:#606770;color:var(--ifm-menu-color)}.menu__link--active,.menu__link--active:hover{color:#3578e5;color:var(--ifm-menu-color-active)}.menu__link--active:not(.menu__link--sublist){background:rgba(0,0,0,.05);background:var(--ifm-menu-color-background-active)}.menu--responsive .menu__button{bottom:2rem;display:none;position:fixed;right:1rem;z-index:200;z-index:var(--ifm-z-index-fixed)}@media (max-width:996px){.menu--responsive .menu__button{display:inherit}}@media (max-width:996px){.menu--responsive .menu__list{display:none;opacity:0}}.menu--show{-ms-scroll-chaining:none;background:#fff;background:var(--ifm-background-surface-color);bottom:0;left:0;overscroll-behavior:contain;padding:1rem;position:fixed;right:0;top:0;z-index:400;z-index:var(--ifm-z-index-overlay)}.menu--show .menu__list{display:inherit;opacity:1;transition:opacity .2s linear;transition:opacity var(--ifm-transition-fast) linear}:root{--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:1rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:80vw}.navbar{background-color:#fff;background-color:var(--ifm-navbar-background-color);box-shadow:0 1px 2px 0 rgba(0,0,0,.1);box-shadow:var(--ifm-navbar-shadow);box-sizing:border-box;height:3.75rem;height:var(--ifm-navbar-height);padding:.5rem 1rem;padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal);width:100%}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}@media (max-width:996px){.navbar>.container,.navbar>.container-fluid{padding:0}}.navbar--fixed-top{position:-webkit-sticky;position:sticky;top:0;z-index:200;z-index:var(--ifm-z-index-fixed)}.navbar__inner{align-items:stretch;display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;color:#1c1e21;color:var(--ifm-navbar-link-color);display:flex;font-weight:700;height:2rem;margin-right:1rem}.navbar__brand:hover{text-decoration:none;color:inherit}.navbar__title{flex-shrink:0;max-width:100%}.navbar__toggle{cursor:pointer;display:none;margin-right:.5rem}@media (max-width:996px){.navbar__toggle{display:inherit}}.navbar__logo{height:100%;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1 1 auto}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--right{justify-content:flex-end}.navbar__item{display:inline-block;padding:.25rem 1rem;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__item.dropdown{padding:0}.navbar__item.dropdown .navbar__link{pointer-events:none}@media (max-width:996px){.navbar__item{display:none}}.navbar__link{color:#1c1e21;color:var(--ifm-navbar-link-color);cursor:pointer;font-weight:500;font-weight:var(--ifm-font-weight-semibold);padding:.25rem 1rem;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal);text-decoration:none}.navbar__link--active,.navbar__link:hover{color:#3578e5;color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar __brand{color:#1c1e21;color:var(--ifm-navbar-link-color)}.navbar--dark{--ifm-navbar-background-color:#303846;--ifm-navbar-link-color:var(--ifm-color-white);--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-navbar-search-input-background-color:hsla(0,0%,100%,0.1);--ifm-navbar-search-input-color:var(--ifm-color-white);--ifm-navbar-search-input-placeholder-color:hsla(0,0%,100%,0.5)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-navbar-search-input-background-color:hsla(0,0%,100%,0.1);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-placeholder-color:hsla(0,0%,100%,0.5)}.navbar__search{padding-left:1rem;padding-left:var(--ifm-navbar-padding-horizontal)}.navbar__search-input{-webkit-appearance:none;appearance:none;background-color:#ebedf0;background-color:var(--ifm-navbar-search-input-background-color);background-image:url('data:image/svg+xml;utf8,');background-image:var(--ifm-navbar-search-input-icon);background-position-x:.75rem;background-position-y:center;background-repeat:no-repeat;background-size:1rem 1rem;border-radius:2rem;border-width:0;cursor:text;color:#444950;color:var(--ifm-navbar-search-input-color);display:inline-block;font-size:.9rem;line-height:2rem;outline:none;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::-webkit-input-placeholder{color:#bec3c9;color:var(--ifm-navbar-search-input-placeholder-color)}.navbar__search-input:-ms-input-placeholder{color:#bec3c9;color:var(--ifm-navbar-search-input-placeholder-color)}.navbar__search-input::placeholder{color:#bec3c9;color:var(--ifm-navbar-search-input-placeholder-color)}@media (max-width:996px){.navbar__search-input{width:9rem}}.navbar-sidebar{background-color:#fff;background-color:var(--ifm-navbar-background-color);bottom:0;box-shadow:0 5px 40px rgba(0,0,0,.2);box-shadow:var(--ifm-global-shadow-md);display:none;left:0;position:fixed;top:0;-webkit-transform:translateX(-100%);transform:translateX(-100%);transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease;transition:-webkit-transform var(--ifm-transition-fast) ease;transition:transform var(--ifm-transition-fast) ease;transition:transform var(--ifm-transition-fast) ease,-webkit-transform var(--ifm-transition-fast) ease;width:80vw;width:var(--ifm-navbar-sidebar-width);overflow:auto}.navbar-sidebar--show .navbar-sidebar{-webkit-transform:translateX(0);transform:translateX(0)}.navbar-sidebar--show .navbar-sidebar__backdrop{display:block}@media (max-width:996px){.navbar-sidebar{display:block}}.navbar-sidebar__backdrop{background-color:rgba(0,0,0,.6);bottom:0;display:none;left:0;right:0;position:fixed;top:0}.navbar-sidebar__brand{align-items:center;box-shadow:0 1px 2px 0 rgba(0,0,0,.1);box-shadow:var(--ifm-navbar-shadow);display:flex;height:3.75rem;height:var(--ifm-navbar-height);padding:.5rem 1rem;padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{padding:.5rem}:root{--ifm-pagination-border-radius:calc(var(--ifm-global-radius)*var(--ifm-pagination-size-multiplier));--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.0625rem;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-size-multiplier:1}.pagination{font-size:1rem;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-block;list-style-type:none}.pagination__item:not(:first-child){margin-left:.0625rem;margin-left:var(--ifm-pagination-page-spacing)}.pagination__item:not(:last-child){margin-right:.0625rem;margin-right:var(--ifm-pagination-page-spacing)}.pagination__item>span{padding:.25rem;padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{background:rgba(0,0,0,.05);background:var(--ifm-pagination-item-active-background);color:#3578e5;color:var(--ifm-pagination-color-active)}.pagination__item:not(.pagination__item--active):hover .pagination__link{background:rgba(0,0,0,.05);background:var(--ifm-pagination-item-active-background);transition:background .2s cubic-bezier(.08,.52,.52,1);transition:background var(--ifm-transition-fast) cubic-bezier(.08,.52,.52,1)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:.4rem;border-radius:var(--ifm-pagination-border-radius);color:#1c1e21;color:var(--ifm-font-color-base);display:inline-block;padding:.25rem 1rem;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal)}.pagination__link:hover{text-decoration:none}:root{--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary)}.pagination-nav{display:flex}.pagination-nav__item{display:flex;flex-basis:50%;flex-grow:1;max-width:50%}.pagination-nav__item--next{text-align:right}.pagination-nav__item+.pagination-nav__item{margin-left:1rem;margin-left:var(--ifm-spacing-horizontal)}.pagination-nav__link{border-radius:.4rem;border-radius:var(--ifm-pagination-nav-border-radius);border:1px solid #dadde1;border-color:var(--ifm-color-emphasis-300);display:block;flex-grow:1;padding:1rem;padding:var(--ifm-global-spacing)}.pagination-nav__link:hover{border-color:#3578e5;border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__label{font-size:1rem;font-size:var(--ifm-h4-font-size);font-weight:700;font-weight:var(--ifm-heading-font-weight);margin-bottom:0;margin-top:0;word-break:break-word}.pagination-nav__label,.pagination-nav__sublabel{line-height:1.25;line-height:var(--ifm-heading-line-height)}.pagination-nav__sublabel{font-size:.875rem;font-size:var(--ifm-h5-font-size);color:#606770;color:var(--ifm-color-content-secondary);font-weight:500;font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}:root{--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.0625rem}.pills{font-weight:700;font-weight:var(--ifm-font-weight-bold);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;list-style-type:none;padding:.25rem 1rem}.pills__item--active{background:rgba(0,0,0,.05);background:var(--ifm-pills-color-background-active);color:#3578e5;color:var(--ifm-pills-color-active)}.pills__item:not(.pills__item--active):hover{background-color:rgba(0,0,0,.05);background-color:var(--ifm-pills-color-background-active);transition:background .2s cubic-bezier(.08,.52,.52,1);transition:background var(--ifm-transition-fast) cubic-bezier(.08,.52,.52,1)}.pills__item:not(:first-child){margin-left:.0625rem;margin-left:var(--ifm-pills-spacing)}.pills__item:not(:last-child){margin-right:.0625rem;margin-right:var(--ifm-pills-spacing)}.pills__item+.pills__item{margin-top:0}.pills--block{display:flex;justify-content:stretch}@media (max-width:996px){.pills--block{flex-direction:column}}.pills--block .pills__item{flex-grow:1;text-align:center}@media (max-width:996px){.pills--block .pills__item:not(:first-child){margin-top:.0625rem;margin-top:var(--ifm-pills-spacing)}.pills--block .pills__item:not(:last-child){margin-bottom:.0625rem;margin-bottom:var(--ifm-pills-spacing)}}:root{--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--ifm-tabs-spacing:0.0625rem}.tabs{display:flex;overflow-x:auto;color:#606770;color:var(--ifm-tabs-color);font-weight:700;font-weight:var(--ifm-font-weight-bold);margin-bottom:0;padding-left:0}.tabs__item{box-sizing:content-box;border-bottom:3px solid transparent;border-radius:.4rem;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;list-style-type:none;padding:1rem;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);margin:0}.tabs__item--active{border-bottom-color:#3578e5;border-bottom-color:var(--ifm-tabs-color-active);border-bottom-left-radius:0;border-bottom-right-radius:0;color:#3578e5;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:rgba(0,0,0,.05);background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}@media (max-width:996px){.tabs--block{flex-direction:column}}.tabs--block .tabs__item{flex-grow:1;justify-content:center}@media (max-width:996px){.tabs--block .tabs__item:not(:first-child){margin-top:.0625rem;margin-top:var(--ifm-tabs-spacing)}.tabs--block .tabs__item:not(:last-child){margin-bottom:.0625rem;margin-bottom:var(--ifm-tabs-spacing)}}.shadow--lw{box-shadow:0 1px 2px 0 rgba(0,0,0,.1)!important;box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:0 5px 40px rgba(0,0,0,.2)!important;box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:0 12px 28px 0 rgba(0,0,0,.2),0 2px 4px 0 rgba(0,0,0,.1)!important;box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary{color:#3578e5;color:var(--ifm-color-primary)}.text--secondary{color:#ebedf0;color:var(--ifm-color-secondary)}.text--success{color:#00a400;color:var(--ifm-color-success)}.text--info{color:#54c7ec;color:var(--ifm-color-info)}.text--warning{color:#ffba00;color:var(--ifm-color-warning)}.text--danger{color:#fa383e;color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.text--uppercase{text-transform:uppercase}.text--light{font-weight:300;font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:400;font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:500;font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:700;font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-break:break-word!important;word-wrap:break-word!important}.text--no-decoration,.text--no-decoration:hover{text-decoration:none}html[data-theme=dark]{--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#18191a;--ifm-background-surface-color:#242526;--ifm-hover-overlay:hsla(0,0%,100%,0.05);--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-color-content-secondary:#fff}:root{--ifm-color-primary:#1d8d77;--ifm-color-primary-dark:#1d8d77;--ifm-color-primary-darker:#1fa588;--ifm-color-primary-darkest:#1a8870;--ifm-color-primary-light:#1d8d77;--ifm-color-primary-lighter:#66d4bd;--ifm-color-primary-lightest:#92e0d0;--ifm-code-font-size:95%;--ifm-color-secondary:#f4f5f7;--ifm-color-success:#00866d;--ifm-color-info:#2e8fa6;--ifm-color-warning:#edc043;--ifm-color-danger:#f25924}.docusaurus-highlight-code-line{background-color:#484d5b;display:block;margin:0 calc(-1*var(--ifm-pre-padding));padding:0 var(--ifm-pre-padding)}#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translateY(-4px);transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#29d transparent transparent #29d;border-style:solid;border-width:2px;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:root{--docusaurus-announcement-bar-height:auto}.announcementBar_1l0Z{position:relative;width:100%;height:auto;height:var(--docusaurus-announcement-bar-height);background-color:var(--ifm-color-primary);color:var(--ifm-color-black)}@media screen and (min-width:1024px){:root{--docusaurus-announcement-bar-height:30px}}.announcementBarClose_21wD{position:absolute;right:0;top:0;width:55px;font-size:1.25rem;padding:0;border:none;cursor:pointer;background:none;color:inherit;height:100%}.announcementBarContent_1xni{font-size:85%;width:100%;text-align:center;padding:5px 0;margin-right:55px}@media screen and (max-width:576px){.announcementBarClose_21wD{width:35px}.announcementBarContent_1xni{width:auto;margin-right:35px}}.announcementBarContent_1xni a{color:inherit;text-decoration:underline}.toggle_BsTx{align-items:center;display:flex;height:10px;justify-content:center;position:relative;width:10px}.toggle_BsTx:before{position:absolute}.react-toggle{touch-action:pan-x;display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#4d4d4d;transition:all .2s ease}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check,.react-toggle-track-x,[data-theme=dark] .react-toggle .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px}.react-toggle--checked .react-toggle-track-x,[data-theme=dark] .react-toggle .react-toggle-track-x{opacity:0}.react-toggle-thumb{transition:all .5s cubic-bezier(.23,1,.32,1) 0ms;position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #4d4d4d;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease}.react-toggle--checked .react-toggle-thumb,[data-theme=dark] .react-toggle .react-toggle-thumb{left:27px;border-color:#19ab27}.react-toggle--focus .react-toggle-thumb{box-shadow:0 0 2px 3px #0099e0}.react-toggle:active:not(.react-toggle--disabled) .react-toggle-thumb{box-shadow:0 0 5px 5px #0099e0}@media screen and (max-width:997px){.displayOnlyInLargeViewport_2aTZ{display:none!important}}@media (max-width:768px){.hideLogoText_GP-Q{display:none}}.navbarHideable_3046{transition:top .2s ease-in-out}.navbarHidden_1Uo_{top:calc(var(--ifm-navbar-height)*-1)!important}.footerLogoLink_1zJy{opacity:.5;transition:opacity .15s ease-in-out}.footerLogoLink_1zJy:hover{opacity:1}body,html{height:100%}body{margin:0;transition:var(--ifm-transition-fast) ease color}#__docusaurus{min-height:100%;display:flex;flex-direction:column}.main-wrapper{flex:1 0 auto}@media (min-width:997px){.sidebar_2urC{display:flex;flex-direction:column;height:100vh;overflow-y:auto;position:-webkit-sticky;position:sticky;top:0;padding-top:var(--ifm-navbar-height)}.sidebarWithHideableNavbar_2IoJ{padding-top:0}.sidebarLogo_Snse{display:flex!important;align-items:center;margin:0 var(--ifm-navbar-padding-horizontal);min-height:var(--ifm-navbar-height);max-height:var(--ifm-navbar-height);color:inherit!important;text-decoration:none!important}.sidebarLogo_Snse img{margin-right:.5rem;height:2rem}.menu_5FrY{flex-grow:1;padding:.5rem}.menu_5FrY::-webkit-scrollbar{width:7px}.menu_5FrY::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.menu_5FrY::-webkit-scrollbar-thumb{background:#888;border-radius:10px}.menu_5FrY::-webkit-scrollbar-thumb:hover{background:#555}.menuLinkText_2zSB{cursor:auto}.menuLinkText_2zSB:hover{background:none}.menuWithAnnouncementBar_18ic{margin-bottom:var(--docusaurus-announcement-bar-height)}}.sidebarLogo_Snse{display:none}.sidebarMenuIcon_Dm3K{vertical-align:middle}.sidebarMenuCloseIcon_hir9{display:inline-flex;justify-content:center;align-items:center;height:24px;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:.9;width:24px}.codeBlockContent_1u-d{position:relative}.codeBlockTitle_3nn1{border-top-left-radius:var(--ifm-global-radius);border-top-right-radius:var(--ifm-global-radius);border-bottom:1px solid var(--ifm-color-emphasis-200);font-family:var(--ifm-font-family-monospace);font-weight:700;padding:.75rem var(--ifm-pre-padding);width:100%}.codeBlock_3iAC{overflow:auto;border-radius:var(--ifm-global-radius)}.codeBlockWithTitle_3QsD{border-top-left-radius:0;border-top-right-radius:0}.copyButton_10dd{background:rgba(0,0,0,.3);border:none;border-radius:var(--ifm-global-radius);color:var(--ifm-color-white);cursor:pointer;opacity:0;outline:none;padding:.4rem .5rem;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2);visibility:hidden;transition:opacity .2s ease-in-out,visibility .2s ease-in-out,bottom .2s ease-in-out}.codeBlockContent_1u-d:hover>.copyButton_10dd,.codeBlockTitle_3nn1:hover+.codeBlockContent_1u-d .copyButton_10dd{visibility:visible;opacity:1}.codeBlockLines_b7E3{font-family:var(--ifm-font-family-monospace);font-size:inherit;line-height:var(--ifm-pre-line-height);white-space:pre;float:left;min-width:100%;padding:var(--ifm-pre-padding)}.anchor{display:block;position:relative;top:-.5rem;outline:none}.hash-link{opacity:0;padding-left:.5rem}:hover>.hash-link{opacity:1}.enhancedAnchor_2cZh{top:calc(var(--ifm-navbar-height)*-1)}.mdxCodeBlock_1XEh{position:relative;margin-bottom:var(--ifm-leading);font-size:var(--ifm-code-font-size)}.mdxCodeBlock_1XEh pre{font-size:inherit}.docPage_2gpo{display:flex}.docSidebarContainer_3_JD{border-right:1px solid var(--ifm-toc-border-color);box-sizing:border-box;width:300px;position:relative;margin-top:calc(-1*var(--ifm-navbar-height))}.docMainContainer_3EyW{flex-grow:1}@media (max-width:996px){.docPage_2gpo{display:inherit}.docSidebarContainer_3_JD{margin-top:0}}.blogPostTitle_1mse{font-size:3rem}.blogPostDate_3bQP{font-size:.9rem}.heroBanner_2Ftp{padding:4rem 0;text-align:center;position:relative;overflow:hidden}@media screen and (max-width:966px){.heroBanner_2Ftp{padding:2rem}}.buttons_1Wc3{justify-content:center}.buttons_1Wc3,.features_P2SU{display:flex;align-items:center}.features_P2SU{padding:2rem 0;width:100%}.featureImage_3Xqx{height:200px;width:200px}.tabItem_1w39{margin-top:0!important}.docTitle_1Lrw{font-size:3rem;margin-bottom:calc(var(--ifm-leading-desktop)*var(--ifm-leading))}.docItemContainer_3QWW{margin:0 auto;padding:0 .5rem}@media only screen and (min-width:997px){.docItemCol_2ASc{max-width:75%!important}}@media (min-width:997px) and (max-width:1320px){.docItemWrapper_1EkI{max-width:calc(var(--ifm-container-width) - 300px - var(--ifm-spacing-horizontal)*2)}}.tableOfContents_3klQ{display:inherit;max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:-webkit-sticky;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.tableOfContents_3klQ::-webkit-scrollbar{width:7px}.tableOfContents_3klQ::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.tableOfContents_3klQ::-webkit-scrollbar-thumb{background:#888;border-radius:10px}.tableOfContents_3klQ::-webkit-scrollbar-thumb:hover{background:#555}@media only screen and (max-width:996px){.tableOfContents_3klQ{display:none}.docItemContainer_3QWW{padding:0 .3rem}}.docLastUpdatedAt_217_{font-weight:700} \ No newline at end of file