(self.webpackChunk=self.webpackChunk||[]).push([[282],{232:(e,t,a)=>{"use strict";a.r(t);var n=a(7760),s=a.n(n),o=a(7152),i=a(4605);window.$=window.jQuery=a(9755),window.axios=a(9669),window.axios.defaults.headers.common["X-Requested-With"]="XMLHttpRequest";var r=document.head.querySelector('meta[name="csrf-token"]');r?window.axios.defaults.headers.common["X-CSRF-TOKEN"]=r.content:console.error("CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token");var c=document.head.querySelector('meta[name="locale"]');localStorage.locale=c?c.content:"en_US",a(6891),a(3734),a(7632),a(5432),window.vuei18n=o.Z,window.uiv=i,s().use(vuei18n),s().use(i),window.Vue=s()},9899:(e,t,a)=>{"use strict";a.d(t,{Z:()=>m});var n=a(7760),s=a.n(n),o=a(629),i=a(4478),r=a(3465);const c={namespaced:!0,state:function(){return{transactionType:"any",groupTitle:"",transactions:[],customDateFields:{interest_date:!1,book_date:!1,process_date:!1,due_date:!1,payment_date:!1,invoice_date:!1},defaultTransaction:(0,i.f$)(),defaultErrors:(0,i.kQ)()}},getters:{transactions:function(e){return e.transactions},groupTitle:function(e){return e.groupTitle},transactionType:function(e){return e.transactionType},accountToTransaction:function(e){return e.accountToTransaction},defaultTransaction:function(e){return e.defaultTransaction},sourceAllowedTypes:function(e){return e.sourceAllowedTypes},destinationAllowedTypes:function(e){return e.destinationAllowedTypes},allowedOpposingTypes:function(e){return e.allowedOpposingTypes},customDateFields:function(e){return e.customDateFields}},actions:{},mutations:{addTransaction:function(e){var t=r(e.defaultTransaction);t.errors=r(e.defaultErrors),e.transactions.push(t)},resetErrors:function(e,t){e.transactions[t.index].errors=r(e.defaultErrors)},resetTransactions:function(e){e.transactions=[]},setGroupTitle:function(e,t){e.groupTitle=t.groupTitle},setCustomDateFields:function(e,t){e.customDateFields=t},deleteTransaction:function(e,t){e.transactions.splice(t.index,1),e.transactions.length},setTransactionType:function(e,t){e.transactionType=t},setAllowedOpposingTypes:function(e,t){e.allowedOpposingTypes=t},setAccountToTransaction:function(e,t){e.accountToTransaction=t},updateField:function(e,t){e.transactions[t.index][t.field]=t.value},setTransactionError:function(e,t){e.transactions[t.index].errors[t.field]=t.errors},setDestinationAllowedTypes:function(e,t){e.destinationAllowedTypes=t},setSourceAllowedTypes:function(e,t){e.sourceAllowedTypes=t}}};const l={namespaced:!0,state:function(){return{}},getters:{},actions:{},mutations:{}};const u={namespaced:!0,state:function(){return{viewRange:"default",start:null,end:null,defaultStart:null,defaultEnd:null}},getters:{start:function(e){return e.start},end:function(e){return e.end},defaultStart:function(e){return e.defaultStart},defaultEnd:function(e){return e.defaultEnd},viewRange:function(e){return e.viewRange}},actions:{initialiseStore:function(e){"default"===e.state.viewRange&&axios.get("./api/v1/preferences/viewRange").then((function(t){var a=t.data.data.attributes.data;e.commit("setViewRange",a),e.dispatch("setDatesFromViewRange")})).catch((function(t){e.commit("setViewRange","1M"),e.dispatch("setDatesFromViewRange")}))},setDatesFromViewRange:function(e){if(localStorage.viewRangeStart&&e.commit("setStart",new Date(localStorage.viewRangeStart)),localStorage.viewRangeEnd&&e.commit("setEnd",new Date(localStorage.viewRangeEnd)),localStorage.viewRangeDefaultStart&&e.commit("setDefaultStart",new Date(localStorage.viewRangeDefaultStart)),localStorage.viewRangeDefaultEnd&&e.commit("setDefaultEnd",new Date(localStorage.viewRangeDefaultEnd)),null===e.getters.end||null===e.getters.start){var t,a;switch(e.getters.viewRange){case"1D":t=new Date,a=new Date(t.getTime()),t.setHours(0,0,0,0),a.setHours(23,59,59,999);break;case"1W":t=new Date,a=new Date(t.getTime());var n=t.getDate()-t.getDay()+(0===t.getDay()?-6:1);t.setDate(n),t.setHours(0,0,0,0);var s=a.getDate()-(a.getDay()-1)+6;a.setDate(s),a.setHours(23,59,59,999);break;case"1M":t=new Date,(t=new Date(t.getFullYear(),t.getMonth(),1)).setHours(0,0,0,0),(a=new Date(t.getFullYear(),t.getMonth()+1,0)).setHours(23,59,59,999);break;case"3M":t=new Date,a=new Date;var o=Math.floor((t.getMonth()+3)/3)-1;(t=new Date(t.getFullYear(),[0,3,6,9][o],1)).setHours(0,0,0,0),a=new Date(a.getFullYear(),[2,5,8,11][o],1),(a=new Date(a.getFullYear(),a.getMonth()+1,0)).setHours(23,59,59,999);break;case"6M":t=new Date,a=new Date;var i=t.getMonth()<=5?0:1;(t=new Date(t.getFullYear(),[0,6][i],1)).setHours(0,0,0,0),a=new Date(a.getFullYear(),[5,11][i],1),(a=new Date(a.getFullYear(),a.getMonth()+1,0)).setHours(23,59,59,999);break;case"1Y":t=new Date,a=new Date,t=new Date(t.getFullYear(),0,1),a=new Date(a.getFullYear(),11,31),t.setHours(0,0,0,0),a.setHours(23,59,59,999)}e.commit("setStart",t),e.commit("setEnd",a),e.commit("setDefaultStart",t),e.commit("setDefaultEnd",a)}}},mutations:{setStart:function(e,t){e.start=t,window.localStorage.setItem("viewRangeStart",t)},setEnd:function(e,t){e.end=t,window.localStorage.setItem("viewRangeEnd",t)},setDefaultStart:function(e,t){e.defaultStart=t,window.localStorage.setItem("viewRangeDefaultStart",t)},setDefaultEnd:function(e,t){e.defaultEnd=t,window.localStorage.setItem("viewRangeDefaultEnd",t)},setViewRange:function(e,t){e.viewRange=t}}};var _=function(){return{listPageSize:33}},d={initialiseStore:function(e){localStorage.listPageSize&&(_.listPageSize=localStorage.listPageSize,e.commit("setListPageSize",{length:localStorage.listPageSize})),localStorage.listPageSize||axios.get("./api/v1/preferences/listPageSize").then((function(t){e.commit("setListPageSize",{length:parseInt(t.data.data.attributes.data)})}))}};const p={namespaced:!0,state:_,getters:{listPageSize:function(e){return e.listPageSize}},actions:d,mutations:{setListPageSize:function(e,t){var a=parseInt(t.length);0!==a&&(e.listPageSize=a)}}};const g={namespaced:!0,state:function(){return{orderMode:!1,activeFilter:1}},getters:{orderMode:function(e){return e.orderMode},activeFilter:function(e){return e.activeFilter}},actions:{},mutations:{setOrderMode:function(e,t){e.orderMode=t},setActiveFilter:function(e,t){e.activeFilter=t}}};s().use(o.ZP);const m=new o.ZP.Store({namespaced:!0,modules:{root:p,transactions:{namespaced:!0,modules:{create:c,edit:l}},accounts:{namespaced:!0,modules:{index:g}},dashboard:{namespaced:!0,modules:{index:u}}},strict:false,plugins:[],state:{currencyPreference:{},locale:"en-US",listPageSize:50},mutations:{setCurrencyPreference:function(e,t){e.currencyPreference=t.payload},initialiseStore:function(e){if(localStorage.locale)e.locale=localStorage.locale;else{var t=document.head.querySelector('meta[name="locale"]');t&&(e.locale=t.content,localStorage.locale=t.content)}}},getters:{currencyCode:function(e){return e.currencyPreference.code},currencyPreference:function(e){return e.currencyPreference},currencyId:function(e){return e.currencyPreference.id},locale:function(e){return e.locale}},actions:{updateCurrencyPreference:function(e){localStorage.currencyPreference?e.commit("setCurrencyPreference",{payload:JSON.parse(localStorage.currencyPreference)}):axios.get("./api/v1/currencies/default").then((function(t){var a={id:parseInt(t.data.data.id),name:t.data.data.attributes.name,symbol:t.data.data.attributes.symbol,code:t.data.data.attributes.code,decimal_places:parseInt(t.data.data.attributes.decimal_places)};localStorage.currencyPreference=JSON.stringify(a),e.commit("setCurrencyPreference",{payload:a})})).catch((function(t){console.error(t),e.commit("setCurrencyPreference",{payload:{id:1,name:"Euro",symbol:"€",code:"EUR",decimal_places:2}})}))}}})},157:(e,t,a)=>{e.exports=new vuei18n({locale:document.documentElement.lang,fallbackLocale:"en",messages:{bg:a(7154),cs:a(6407),de:a(4726),en:a(3340),"en-us":a(3340),"en-gb":a(6318),es:a(5394),el:a(3636),fr:a(2551),hu:a(995),it:a(9112),nl:a(4671),nb:a(9085),pl:a(6238),fi:a(7868),"pt-br":a(6586),"pt-pt":a(8664),ro:a(1102),ru:a(753),"zh-tw":a(1715),"zh-cn":a(4556),sk:a(7049),sv:a(7921),vi:a(1497)}})},4221:(e,t,a)=>{"use strict";var n=a(9899),s=a(629),o=a(3324),i=a(7661),r=a(5524),c=a(9321),l=a(4478);function u(e){return(u="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})(e)}function _(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 d(e){for(var t=1;t0&&(e.group_title=this.groupTitle),this.transactions)this.transactions.hasOwnProperty(t)&&/^0$|^[1-9]\d*$/.test(t)&&t<=4294967294&&e.transactions.push(this.convertSplit(t,this.transactions[t]));return e.transactions.length>1&&""!==e.transactions[0].description&&(e.group_title=e.transactions[0].description),e.transactions.length>1&&(e=this.synchronizeAccounts(e)),e},synchronizeAccounts:function(e){for(var t in e.transactions)e.transactions.hasOwnProperty(t)&&/^0$|^[1-9]\d*$/.test(t)&&t<=4294967294&&("Transfer"===this.transactionType&&(e.transactions[t].source_name=null,e.transactions[t].destination_name=null,t>0&&(e.transactions[t].source_id=e.transactions[0].source_id,e.transactions[t].destination_id=e.transactions[0].destination_id)),"Deposit"===this.transactionType&&(e.transactions[t].destination_name=null,t>0&&(e.transactions[t].destination_id=e.transactions[0].destination_id)),"Withdrawal"===this.transactionType&&(e.transactions[t].source_name=null,t>0&&(e.transactions[t].source_id=e.transactions[0].source_id)));return e},convertSplit:function(e,t){var a,n,s,o,i="invalid";if(this.time instanceof Date&&!isNaN(this.time)&&this.date instanceof Date&&!isNaN(this.date)){var r=new Date(this.date);i=(0,l.u6)(r)}console.log("Date is now "+i),console.log(i),""===t.destination_account_name&&(t.destination_account_name=null),0===t.destination_account_id&&(t.destination_account_name=null),""===t.source_account_name&&(t.source_account_name=null),0===t.source_account_id&&(t.source_account_id=null);var c={description:t.description,date:i,type:this.transactionType.toLowerCase(),source_id:null!==(a=t.source_account_id)&&void 0!==a?a:null,source_name:null!==(n=t.source_account_name)&&void 0!==n?n:null,destination_id:null!==(s=t.destination_account_id)&&void 0!==s?s:null,destination_name:null!==(o=t.destination_account_name)&&void 0!==o?o:null,currency_id:t.currency_id,amount:t.amount,budget_id:t.budget_id,category_name:t.category,interest_date:t.interest_date,book_date:t.book_date,process_date:t.process_date,due_date:t.due_date,payment_date:t.payment_date,invoice_date:t.invoice_date,internal_reference:t.internal_reference,external_url:t.external_url,notes:t.notes,external_id:t.external_id,zoom_level:t.zoom_level,longitude:t.longitude,latitude:t.latitude,tags:[],order:0,reconciled:!1};if(0!==t.tags.length)for(var _ in t.tags)if(t.tags.hasOwnProperty(_)&&/^0$|^[1-9]\d*$/.test(_)&&_<=4294967294){var d=t.tags[_];"object"===u(d)&&null!==d&&c.tags.push(d.text),"string"==typeof d&&c.tags.push(d)}0!==t.piggy_bank_id&&(c.piggy_bank_id=t.piggy_bank_id),0!==t.bill_id&&(c.bill_id=t.bill_id),0!==t.foreign_currency_id&&""!==t.foreign_amount&&(c.foreign_currency_id=t.foreign_currency_id),""!==t.foreign_amount&&(c.foreign_amount=t.foreign_amount),c.currency_id=t.source_account_currency_id,"Deposit"===this.transactionType&&(c.currency_id=t.destination_account_currency_id);var p=[];for(var g in t.links)if(t.links.hasOwnProperty(g)&&/^0$|^[1-9]\d*$/.test(g)&&g<=4294967294){var m=t.links[g],h=m.link_type_id.split("-"),y="outward"===h[1]?0:parseInt(m.transaction_journal_id),b="inward"===h[1]?0:parseInt(m.transaction_journal_id),f={link_type_id:parseInt(h[0]),inward_id:y,outward_id:b};p.push(f)}return c.links=p,null===c.source_id&&delete c.source_id,null===c.source_name&&delete c.source_name,null===c.destination_id&&delete c.destination_id,null===c.destination_name&&delete c.destination_name,console.log("Current split is: "),console.log(c),c},getAllowedOpposingTypes:function(){var e=this;axios.get("./api/v1/configuration/firefly.allowed_opposing_types").then((function(t){console.log("opposing types things."),console.log(t.data.data.value),e.allowedOpposingTypes=t.data.data.value}))},getExpectedSourceTypes:function(){var e=this;axios.get("./api/v1/configuration/firefly.expected_source_types").then((function(t){console.log("getExpectedSourceTypes."),e.sourceAllowedTypes=t.data.data.value.source[e.transactionType],e.destinationAllowedTypes=t.data.data.value.destination[e.transactionType]}))},getAccountToTransaction:function(){var e=this;axios.get("./api/v1/configuration/firefly.account_to_transaction").then((function(t){e.accountToTransaction=t.data.data.value}))},getCustomFields:function(){var e=this;axios.get("./api/v1/preferences/transaction_journal_optional_fields").then((function(t){e.customFields=t.data.data.attributes.data}))},setDestinationAllowedTypes:function(e){0!==e.length?this.destinationAllowedTypes=e:this.destinationAllowedTypes=this.defaultDestinationAllowedTypes},setSourceAllowedTypes:function(e){0!==e.length?this.sourceAllowedTypes=e:this.sourceAllowedTypes=this.defaultSourceAllowedTypes}})};const b=(0,a(1900).Z)(y,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("alert",{attrs:{message:e.errorMessage,type:"danger"}}),e._v(" "),a("alert",{attrs:{message:e.successMessage,type:"success"}}),e._v(" "),a("form",{on:{submit:e.submitTransaction}},[a("SplitPills",{attrs:{transactions:e.transactions}}),e._v(" "),a("div",{staticClass:"tab-content"},e._l(this.transactions,(function(t,n){return a("SplitForm",{key:n,attrs:{count:e.transactions.length,"custom-fields":e.customFields,date:e.date,"destination-allowed-types":e.destinationAllowedTypes,index:n,"source-allowed-types":e.sourceAllowedTypes,"submitted-transaction":e.submittedTransaction,time:e.time,transaction:t,"transaction-type":e.transactionType},on:{"uploaded-attachments":function(t){return e.uploadedAttachment(t)},"set-marker-location":function(t){return e.storeLocation(t)},"set-account":function(t){return e.storeAccountValue(t)},"set-date":function(t){return e.storeDate(t)},"set-time":function(t){return e.storeTime(t)},"set-field":function(t){return e.storeField(t)},"remove-transaction":function(t){return e.removeTransaction(t)},"set-dest-types":function(t){return e.setDestinationAllowedTypes(t)},"set-src-types":function(t){return e.setSourceAllowedTypes(t)}}})})),1),e._v(" "),a("div",{staticClass:"row"},[a("div",{staticClass:"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12"},[e.transactions.length>1?a("div",{staticClass:"card"},[a("div",{staticClass:"card-body"},[a("div",{staticClass:"row"},[a("div",{staticClass:"col"},[a("TransactionGroupTitle",{attrs:{errors:this.groupTitleErrors},on:{"set-group-title":function(t){return e.storeGroupTitle(t)}},model:{value:this.groupTitle,callback:function(t){e.$set(this,"groupTitle",t)},expression:"this.groupTitle"}})],1)])])]):e._e()]),e._v(" "),a("div",{staticClass:"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12"},[a("div",{staticClass:"card card-primary"},[a("div",{staticClass:"card-body"},[a("div",{staticClass:"row"},[a("div",{staticClass:"col"},[a("div",{staticClass:"text-xs d-none d-lg-block d-xl-block"},[e._v("\n  \n ")]),e._v(" "),a("button",{staticClass:"btn btn-outline-primary btn-block",on:{click:e.addTransaction}},[a("i",{staticClass:"far fa-clone"}),e._v(" "+e._s(e.$t("firefly.add_another_split"))+"\n ")])]),e._v(" "),a("div",{staticClass:"col"},[a("div",{staticClass:"text-xs d-none d-lg-block d-xl-block"},[e._v("\n  \n ")]),e._v(" "),a("button",{staticClass:"btn btn-success btn-block",attrs:{disabled:!e.enableSubmit},on:{click:e.submitTransaction}},[e.enableSubmit?a("span",[a("i",{staticClass:"far fa-save"}),e._v(" "+e._s(e.$t("firefly.store_transaction")))]):e._e(),e._v(" "),e.enableSubmit?e._e():a("span",[a("i",{staticClass:"fas fa-spinner fa-spin"})])])])]),e._v(" "),a("div",{staticClass:"row"},[a("div",{staticClass:"col"},[e._v("\n  \n ")]),e._v(" "),a("div",{staticClass:"col"},[a("div",{staticClass:"form-check"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.createAnother,expression:"createAnother"}],staticClass:"form-check-input",attrs:{id:"createAnother",type:"checkbox"},domProps:{checked:Array.isArray(e.createAnother)?e._i(e.createAnother,null)>-1:e.createAnother},on:{change:function(t){var a=e.createAnother,n=t.target,s=!!n.checked;if(Array.isArray(a)){var o=e._i(a,null);n.checked?o<0&&(e.createAnother=a.concat([null])):o>-1&&(e.createAnother=a.slice(0,o).concat(a.slice(o+1)))}else e.createAnother=s}}}),e._v(" "),a("label",{staticClass:"form-check-label",attrs:{for:"createAnother"}},[a("span",{staticClass:"small"},[e._v(e._s(e.$t("firefly.create_another")))])])]),e._v(" "),a("div",{staticClass:"form-check"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.resetFormAfter,expression:"resetFormAfter"}],staticClass:"form-check-input",attrs:{id:"resetFormAfter",disabled:!e.createAnother,type:"checkbox"},domProps:{checked:Array.isArray(e.resetFormAfter)?e._i(e.resetFormAfter,null)>-1:e.resetFormAfter},on:{change:function(t){var a=e.resetFormAfter,n=t.target,s=!!n.checked;if(Array.isArray(a)){var o=e._i(a,null);n.checked?o<0&&(e.resetFormAfter=a.concat([null])):o>-1&&(e.resetFormAfter=a.slice(0,o).concat(a.slice(o+1)))}else e.resetFormAfter=s}}}),e._v(" "),a("label",{staticClass:"form-check-label",attrs:{for:"resetFormAfter"}},[a("span",{staticClass:"small"},[e._v(e._s(e.$t("firefly.reset_after")))])])])])])])])])])],1)],1)}),[],!1,null,"8de2ba34",null).exports;var f=a(7760),v=a.n(f);a(232),v().config.productionTip=!1;var k=a(157),w={};new(v())({i18n:k,store:n.Z,render:function(e){return e(b,{props:w})},beforeCreate:function(){this.$store.commit("initialiseStore"),this.$store.dispatch("updateCurrencyPreference")}}).$mount("#transactions_create")},4478:(e,t,a)=>{"use strict";function n(){return{description:[],amount:[],source:[],destination:[],currency:[],foreign_currency:[],foreign_amount:[],date:[],custom_dates:[],budget:[],category:[],bill:[],tags:[],piggy_bank:[],internal_reference:[],external_url:[],notes:[],location:[]}}function s(){return{description:"",transaction_journal_id:0,source_account_id:null,source_account_name:null,source_account_type:null,source_account_currency_id:null,source_account_currency_code:null,source_account_currency_symbol:null,destination_account_id:null,destination_account_name:null,destination_account_type:null,destination_account_currency_id:null,destination_account_currency_code:null,destination_account_currency_symbol:null,source_account:{id:0,name:"",name_with_balance:"",type:"",currency_id:0,currency_name:"",currency_code:"",currency_decimal_places:2},destination_account:{id:0,name:"",type:"",currency_id:0,currency_name:"",currency_code:"",currency_decimal_places:2},amount:"",currency_id:0,foreign_amount:"",foreign_currency_id:0,category:null,budget_id:0,bill_id:0,piggy_bank_id:0,tags:[],interest_date:null,book_date:null,process_date:null,due_date:null,payment_date:null,invoice_date:null,internal_reference:null,external_url:null,external_id:null,notes:null,links:[],attachments:[],zoom_level:null,longitude:null,latitude:null,errors:{}}}function o(e){var t=e.getFullYear(),a=e.getMonth();++a<10&&(a="0"+a);var n=e.getDate();n<10&&(n="0"+n);var s=e.getHours();s<10&&(s="0"+s);var o=e.getMinutes();o<10&&(o="0"+o);var i=e.getSeconds();i<10&&(i="0"+i);var r=-e.getTimezoneOffset(),c=Math.abs(Math.floor(r/60)),l=Math.abs(r)-60*c;c<10&&(c="0"+c),l<10&&(l="0"+l);var u="+";return r<0&&(u="-"),t+"-"+a+"-"+n+"T"+s+":"+o+":"+i+u+c+":"+l}a.d(t,{kQ:()=>n,f$:()=>s,u6:()=>o})},6665:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>r});var n=a(4015),s=a.n(n),o=a(3645),i=a.n(o)()(s());i.push([e.id,".vue-tags-input{max-width:100%!important;display:block}.ti-input,.vue-tags-input{width:100%;border-radius:.25rem}.ti-input{max-width:100%}.ti-new-tag-input{font-size:1rem}","",{version:3,sources:["webpack://./src/components/transactions/TransactionTags.vue"],names:[],mappings:"AA2HA,gBAEA,wBAAA,CACA,aAEA,CAEA,0BANA,UAAA,CAGA,oBAOA,CAJA,UAEA,cAEA,CAEA,kBACA,cACA",sourcesContent:['\x3c!--\n - TransactionTags.vue\n - Copyright (c) 2021 james@firefly-iii.org\n -\n - This file is part of Firefly III (https://github.com/firefly-iii).\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see .\n --\x3e\n\n\n\n